@latticexyz/world 2.0.0-alpha.1.21 → 2.0.0-alpha.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/abi/AccessControl.sol/AccessControl.json +241 -241
  2. package/abi/AccessManagementSystem.sol/AccessManagementSystem.json +157 -157
  3. package/abi/AddressArray.sol/AddressArray.json +1124 -1124
  4. package/abi/ArrayLib.sol/ArrayLib.json +139 -139
  5. package/abi/Bool.sol/Bool.json +704 -704
  6. package/abi/Bytes.sol/Bytes.json +6 -6
  7. package/abi/Call.sol/Call.json +112 -112
  8. package/abi/Callbacks.sol/Callbacks.json +1100 -1100
  9. package/abi/CoreModule.sol/CoreModule.json +542 -542
  10. package/abi/CoreSystem.sol/CoreSystem.json +92 -92
  11. package/abi/DecodeSlice.sol/DecodeSlice.json +3891 -3891
  12. package/abi/EncodeArray.sol/EncodeArray.json +3344 -3344
  13. package/abi/FunctionSelectors.sol/FunctionSelectors.json +1678 -1678
  14. package/abi/Hooks.sol/Hooks.json +1100 -1100
  15. package/abi/IAccessManagementSystem.sol/IAccessManagementSystem.json +32 -32
  16. package/abi/IBaseWorld.sol/IBaseWorld.json +224 -99
  17. package/abi/ICoreSystem.sol/ICoreSystem.json +6 -6
  18. package/abi/IModule.sol/IModule.json +28 -28
  19. package/abi/IModuleInstallationSystem.sol/IModuleInstallationSystem.json +40 -40
  20. package/abi/IStore.sol/IStore.json +551 -349
  21. package/abi/IStore.sol/IStoreData.json +551 -349
  22. package/abi/IStore.sol/IStoreHook.json +495 -349
  23. package/abi/IStore.sol/IStoreRead.json +495 -349
  24. package/abi/IStore.sol/IStoreRegistration.json +495 -349
  25. package/abi/IStore.sol/IStoreWrite.json +551 -349
  26. package/abi/IStoreRegistrationSystem.sol/IStoreRegistrationSystem.json +80 -80
  27. package/abi/ISystemHook.sol/ISystemHook.json +19 -19
  28. package/abi/IUniqueEntitySystem.sol/IUniqueEntitySystem.json +13 -13
  29. package/abi/IWorldKernel.sol/IWorldCall.json +455 -276
  30. package/abi/IWorldKernel.sol/IWorldData.json +524 -276
  31. package/abi/IWorldKernel.sol/IWorldKernel.json +524 -276
  32. package/abi/IWorldKernel.sol/IWorldModuleInstallation.json +455 -276
  33. package/abi/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.json +198 -198
  34. package/abi/InstalledModules.sol/InstalledModules.json +1351 -1351
  35. package/abi/KeysWithValue.sol/KeysWithValue.json +1124 -1124
  36. package/abi/KeysWithValueHook.sol/KeysWithValueHook.json +416 -416
  37. package/abi/KeysWithValueModule.sol/KeysWithValueModule.json +293 -293
  38. package/abi/Memory.sol/Memory.json +131 -131
  39. package/abi/Mixed.sol/Mixed.json +2781 -2781
  40. package/abi/ModuleInstallationSystem.sol/ModuleInstallationSystem.json +138 -138
  41. package/abi/NamespaceOwner.sol/NamespaceOwner.json +782 -782
  42. package/abi/PackedCounter.sol/PackedCounterLib.json +665 -665
  43. package/abi/ResourceAccess.sol/ResourceAccess.json +926 -926
  44. package/abi/ResourceSelector.sol/ResourceSelector.json +253 -253
  45. package/abi/ResourceType.sol/ResourceType.json +831 -831
  46. package/abi/Schema.sol/SchemaLib.json +1469 -1469
  47. package/abi/SchemaType.sol/SchemaType.json +315 -315
  48. package/abi/Slice.sol/SliceInstance.json +429 -429
  49. package/abi/Slice.sol/SliceLib.json +429 -429
  50. package/abi/Storage.sol/Storage.json +1024 -1061
  51. package/abi/StoreCore.sol/StoreCore.json +10434 -7652
  52. package/abi/StoreCore.sol/StoreCoreExtended.json +10434 -7652
  53. package/abi/StoreCore.sol/StoreCoreInternal.json +10434 -7652
  54. package/abi/StoreMetadata.sol/StoreMetadata.json +2116 -2116
  55. package/abi/StoreRead.sol/StoreRead.json +247 -247
  56. package/abi/StoreRegistrationSystem.sol/StoreRegistrationSystem.json +339 -339
  57. package/abi/StoreSwitch.sol/StoreSwitch.json +1814 -1359
  58. package/abi/System.sol/System.json +31 -31
  59. package/abi/SystemRegistry.sol/SystemRegistry.json +794 -794
  60. package/abi/Systems.sol/Systems.json +1412 -1412
  61. package/abi/TableId.sol/TableId.json +27 -27
  62. package/abi/Tables.sol/Tables.json +92 -92
  63. package/abi/TightCoder.sol/TightCoder.json +275 -275
  64. package/abi/Types.sol/Types.json +8 -8
  65. package/abi/UniqueEntity.sol/UniqueEntity.json +683 -683
  66. package/abi/UniqueEntityModule.sol/UniqueEntityModule.json +232 -232
  67. package/abi/UniqueEntitySystem.sol/UniqueEntitySystem.json +114 -114
  68. package/abi/Utils.sol/Utils.json +67 -67
  69. package/abi/Vector2.sol/Vector2.json +1473 -1473
  70. package/abi/World.sol/World.json +2426 -1491
  71. package/abi/WorldContext.sol/WorldContext.json +65 -65
  72. package/abi/WorldRegistrationSystem.sol/WorldRegistrationSystem.json +1140 -1140
  73. package/abi/console.sol/console.json +11417 -11417
  74. package/abi/constants.sol/constants.json +34 -34
  75. package/abi/getKeysWithValue.sol/getKeysWithValue.json +129 -129
  76. package/abi/getTargetTableSelector.sol/getTargetTableSelector.json +75 -75
  77. package/abi/getUniqueEntity.sol/getUniqueEntity.json +88 -88
  78. package/abi/interfaces/IErrors.sol/IErrors.json +57 -57
  79. package/abi/src/Bytes.sol/Bytes.json +1225 -1225
  80. package/abi/src/IStore.sol/IStore.json +727 -525
  81. package/abi/src/IStore.sol/IStoreData.json +727 -525
  82. package/abi/src/IStore.sol/IStoreHook.json +671 -525
  83. package/abi/src/IStore.sol/IStoreRead.json +671 -525
  84. package/abi/src/IStore.sol/IStoreRegistration.json +671 -525
  85. package/abi/src/IStore.sol/IStoreWrite.json +727 -525
  86. package/abi/src/Memory.sol/Memory.json +131 -131
  87. package/abi/src/PackedCounter.sol/PackedCounterLib.json +683 -683
  88. package/abi/src/Schema.sol/SchemaLib.json +1493 -1493
  89. package/abi/src/Slice.sol/SliceInstance.json +429 -429
  90. package/abi/src/Slice.sol/SliceLib.json +429 -429
  91. package/abi/src/StoreCore.sol/StoreCore.json +12500 -9718
  92. package/abi/src/StoreCore.sol/StoreCoreExtended.json +12500 -9718
  93. package/abi/src/StoreCore.sol/StoreCoreInternal.json +12500 -9718
  94. package/abi/src/StoreSwitch.sol/StoreSwitch.json +1822 -1367
  95. package/abi/tightcoder/EncodeArray.sol/EncodeArray.json +3344 -3344
  96. package/package.json +6 -6
  97. package/src/World.sol +32 -0
  98. package/src/interfaces/IWorldKernel.sol +12 -0
  99. package/types/ethers-contracts/IBaseWorld.ts +116 -0
  100. package/types/ethers-contracts/IStore.sol/IStore.ts +55 -0
  101. package/types/ethers-contracts/IStore.sol/IStoreData.ts +55 -0
  102. package/types/ethers-contracts/IStore.sol/IStoreWrite.ts +55 -0
  103. package/types/ethers-contracts/IWorldKernel.sol/IWorldData.ts +61 -0
  104. package/types/ethers-contracts/IWorldKernel.sol/IWorldKernel.ts +61 -0
  105. package/types/ethers-contracts/World.ts +116 -0
  106. package/types/ethers-contracts/factories/AccessManagementSystem__factory.ts +1 -1
  107. package/types/ethers-contracts/factories/CoreModule__factory.ts +1 -1
  108. package/types/ethers-contracts/factories/CoreSystem__factory.ts +1 -1
  109. package/types/ethers-contracts/factories/IBaseWorld__factory.ts +61 -0
  110. package/types/ethers-contracts/factories/IStore.sol/IStoreData__factory.ts +28 -0
  111. package/types/ethers-contracts/factories/IStore.sol/IStoreWrite__factory.ts +28 -0
  112. package/types/ethers-contracts/factories/IStore.sol/IStore__factory.ts +28 -0
  113. package/types/ethers-contracts/factories/IWorldKernel.sol/IWorldData__factory.ts +33 -0
  114. package/types/ethers-contracts/factories/IWorldKernel.sol/IWorldKernel__factory.ts +33 -0
  115. package/types/ethers-contracts/factories/KeysWithValueHook__factory.ts +1 -1
  116. package/types/ethers-contracts/factories/KeysWithValueModule__factory.ts +1 -1
  117. package/types/ethers-contracts/factories/ModuleInstallationSystem__factory.ts +1 -1
  118. package/types/ethers-contracts/factories/StoreCore__factory.ts +1 -1
  119. package/types/ethers-contracts/factories/StoreRead__factory.ts +1 -1
  120. package/types/ethers-contracts/factories/StoreRegistrationSystem__factory.ts +1 -1
  121. package/types/ethers-contracts/factories/StoreSwitch__factory.ts +1 -1
  122. package/types/ethers-contracts/factories/UniqueEntityModule__factory.ts +1 -1
  123. package/types/ethers-contracts/factories/UniqueEntitySystem__factory.ts +1 -1
  124. package/types/ethers-contracts/factories/WorldRegistrationSystem__factory.ts +1 -1
  125. package/types/ethers-contracts/factories/World__factory.ts +62 -1
  126. package/types/ethers-contracts/factories/src/IStore.sol/IStoreData__factory.ts +28 -0
  127. package/types/ethers-contracts/factories/src/IStore.sol/IStoreWrite__factory.ts +28 -0
  128. package/types/ethers-contracts/factories/src/IStore.sol/IStore__factory.ts +28 -0
  129. package/types/ethers-contracts/factories/src/StoreCore__factory.ts +1 -1
  130. package/types/ethers-contracts/factories/src/StoreSwitch__factory.ts +1 -1
  131. package/types/ethers-contracts/src/IStore.sol/IStore.ts +55 -0
  132. package/types/ethers-contracts/src/IStore.sol/IStoreData.ts +55 -0
  133. package/types/ethers-contracts/src/IStore.sol/IStoreWrite.ts +55 -0
@@ -140,16 +140,16 @@
140
140
  }
141
141
  ],
142
142
  "bytecode": {
143
- "object": "0x60a0604052604051620000129062000050565b604051809103906000f0801580156200002f573d6000803e3d6000fd5b506001600160a01b03166080523480156200004957600080fd5b506200005e565b614a918062003a1a83390190565b6080516139996200008160003960008181610165015261049a01526139996000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806313861fb51461003b57806317d7de7c14610050575b600080fd5b61004e610049366004613372565b610083565b005b604080517f636f72652e6d0000000000000000000000000000000000000000000000000000815290519081900360200190f35b61008b61009e565b610093610128565b61009b610236565b50565b6100a66105ae565b6100ae610615565b6100b6610678565b6100be6106c4565b6100c6610722565b6100da60006100d361076e565b60016107a0565b6100e2610896565b6100ea6108f4565b6100f2610940565b6100fa61099e565b6101026109ea565b61010a610a48565b610112610a94565b61011a610aea565b61012660006001610b36565b565b61009b61013361076e565b604051600060248201527f636f72652e73000000000000000000000000000000000000000000000000000060448201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8116606483015260016084830152907f4c9e9f11000000000000000000000000000000000000000000000000000000009060a4015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915260016000610c1b565b604080516101e0810182527fa886545e0000000000000000000000000000000000000000000000000000000081527f31b99d890000000000000000000000000000000000000000000000000000000060208201527f096fcaa900000000000000000000000000000000000000000000000000000000918101919091527f7a58dce40000000000000000000000000000000000000000000000000000000060608201527f8ae710e90000000000000000000000000000000000000000000000000000000060808201527f3ca90f220000000000000000000000000000000000000000000000000000000060a08201527f4c9e9f110000000000000000000000000000000000000000000000000000000060c08201527fca4c1f5e0000000000000000000000000000000000000000000000000000000060e08201527f56f55a97000000000000000000000000000000000000000000000000000000006101008201527fd5933686000000000000000000000000000000000000000000000000000000006101208201527ffe86a89f000000000000000000000000000000000000000000000000000000006101408201527f6e81fd71000000000000000000000000000000000000000000000000000000006101608201527f8da798da000000000000000000000000000000000000000000000000000000006101808201527ff227e653000000000000000000000000000000000000000000000000000000006101a08201527f1e42269e000000000000000000000000000000000000000000000000000000006101c082015260005b600f8110156105aa5761059761049861076e565b7f00000000000000000000000000000000000000000000000000000000000000007f56f55a970000000000000000000000000000000000000000000000000000000060007f636f72652e7300000000000000000000000000000000000000000000000000008787600f811061050f5761050f6133f2565b60200201518888600f8110610526576105266133f2565b60200201516040517fffffffffffffffffffffffffffffffff0000000000000000000000000000000094851660248201529390921660448401527fffffffff00000000000000000000000000000000000000000000000000000000908116606484015216608482015260a4016101ce565b50806105a28161341e565b915050610484565b5050565b6000806105b9610d45565b60408051600060208201527f4e616d6573706163654f776e657200000000000000000000000000000000000060308201529294509092506105aa91015b60405160208183030381529060405261060e90613438565b8383610e0d565b60408051600060208201527f496e7374616c6c65644d6f64756c6573000000000000000000000000000000006030820152610126910160405160208183030381529060405261066390613438565b61066b610e9c565b610673610f14565b610f93565b600080610683610ff6565b60408051600060208201527f496e7374616c6c65644d6f64756c65730000000000000000000000000000000060308201529294509092506105aa91016105f6565b60408051600060208201527f5265736f757263654163636573730000000000000000000000000000000000006030820152610126910160405160208183030381529060405261071290613438565b61071a6110be565b6106736110f8565b60008061072d611177565b60408051600060208201527f5265736f7572636541636365737300000000000000000000000000000000000060308201529294509092506105aa91016105f6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c8061079d5750335b90565b60408051600280825260608201835260009260208301908036833701905050905083816000815181106107d5576107d56133f2565b6020026020010181815250508260601b6bffffffffffffffffffffffff191681600181518110610807576108076133f2565b602090810291909101810191909152604080516000818401527f5265736f75726365416363657373000000000000000000000000000000000000603082015281518082039093018352810190526108909061086190613438565b8260008560405160200161087c91151560f81b815260010190565b60405160208183030381529060405261123f565b50505050565b60408051600060208201527f53797374656d7300000000000000000000000000000000000000000000000000603082015261012691016040516020818303038152906040526108e490613438565b6108ec6112d7565b610673611356565b6000806108ff611390565b60408051600060208201527f53797374656d730000000000000000000000000000000000000000000000000060308201529294509092506105aa91016105f6565b60408051600060208201527f66756e6353656c6563746f7273000000000000000000000000000000000000006030820152610126910160405160208183030381529060405261098e90613438565b6109966114ab565b610673611570565b6000806109a96115aa565b60408051600060208201527f66756e6353656c6563746f72730000000000000000000000000000000000000060308201529294509092506105aa91016105f6565b60408051600060208201527f53797374656d526567697374727900000000000000000000000000000000000060308201526101269101604051602081830303815290604052610a3890613438565b610a40611356565b610673610e9c565b600080610a5361171b565b60408051600060208201527f53797374656d526567697374727900000000000000000000000000000000000060308201529294509092506105aa91016105f6565b60408051600060208201527f5265736f7572636554797065000000000000000000000000000000000000000060308201526101269101604051602081830303815290604052610ae290613438565b6108ec6117e3565b600080610af561181d565b60408051600060208201527f5265736f7572636554797065000000000000000000000000000000000000000060308201529294509092506105aa91016105f6565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610b6c57610b6c6133f2565b602090810291909101810191909152604080516000818401527f5265736f7572636554797065000000000000000000000000000000000000000060308201528151808203909301835281019052610c1690610bc690613438565b826000856003811115610bdb57610bdb61345f565b60405160200161087c919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b505050565b606060008487604051602001610c329291906134a1565b604051602081830303815290604052905060008085610cb9578773ffffffffffffffffffffffffffffffffffffffff168584604051610c7191906134eb565b60006040518083038185875af1925050503d8060008114610cae576040519150601f19603f3d011682016040523d82523d6000602084013e610cb3565b606091505b50610d20565b8773ffffffffffffffffffffffffffffffffffffffff1683604051610cde91906134eb565b600060405180830381855af49150503d8060008114610d19576040519150601f19603f3d011682016040523d82523d6000602084013e610d1e565b606091505b505b915091508115610d34579250610d3c915050565b805160208201fd5b95945050505050565b6040805160018082528183019092526060918291600091816020015b6060815260200190600190039081610d615790505090506040518060400160405280600581526020017f6f776e657200000000000000000000000000000000000000000000000000000081525081600081518110610dc157610dc16133f2565b6020026020010181905250806040518060400160405280600e81526020017f4e616d6573706163654f776e65720000000000000000000000000000000000008152509092509250509091565b610e156118e5565b15610e2557610c16838383611963565b6040517ffe86a89f000000000000000000000000000000000000000000000000000000008152339063fe86a89f90610e6590869086908690600401613588565b600060405180830381600087803b158015610e7f57600080fd5b505af1158015610e93573d6000803e3d6000fd5b50505050505050565b60408051600180825281830190925260009182919060208083019080368337019050509050606181600081518110610ed657610ed66133f2565b602002602001019060c5811115610eef57610eef61345f565b908160c5811115610f0257610f0261345f565b905250610f0e81611a06565b91505090565b60408051600280825260608201835260009283929190602083019080368337019050509050604f81600081518110610f4e57610f4e6133f2565b602002602001019060c5811115610f6757610f6761345f565b908160c5811115610f7a57610f7a61345f565b81525050605f81600181518110610ed657610ed66133f2565b610f9b6118e5565b15610fab57610c16838383611c60565b6040517fd5933686000000000000000000000000000000000000000000000000000000008152600481018490526024810183905260448101829052339063d593368690606401610e65565b6040805160018082528183019092526060918291600091816020015b60608152602001906001900390816110125790505090506040518060400160405280600d81526020017f6d6f64756c65416464726573730000000000000000000000000000000000000081525081600081518110611072576110726133f2565b6020026020010181905250806040518060400160405280601081526020017f496e7374616c6c65644d6f64756c6573000000000000000000000000000000008152509092509250509091565b60408051600180825281830190925260009182919060208083019080368337019050509050606081600081518110610ed657610ed66133f2565b60408051600280825260608201835260009283929190602083019080368337019050509050605f81600081518110611132576111326133f2565b602002602001019060c581111561114b5761114b61345f565b908160c581111561115e5761115e61345f565b81525050606181600181518110610ed657610ed66133f2565b6040805160018082528183019092526060918291600091816020015b60608152602001906001900390816111935790505090506040518060400160405280600681526020017f6163636573730000000000000000000000000000000000000000000000000000815250816000815181106111f3576111f36133f2565b6020026020010181905250806040518060400160405280600e81526020017f5265736f757263654163636573730000000000000000000000000000000000008152509092509250509091565b6112476118e5565b1561125d5761125884848484611ccd565b610890565b6040517f114a7266000000000000000000000000000000000000000000000000000000008152339063114a72669061129f9087908790879087906004016135f8565b600060405180830381600087803b1580156112b957600080fd5b505af11580156112cd573d6000803e3d6000fd5b5050505050505050565b60408051600280825260608201835260009283929190602083019080368337019050509050606181600081518110611311576113116133f2565b602002602001019060c581111561132a5761132a61345f565b908160c581111561133d5761133d61345f565b81525050606081600181518110610ed657610ed66133f2565b60408051600180825281830190925260009182919060208083019080368337019050509050605f81600081518110610ed657610ed66133f2565b60408051600280825260608281019093528291600091816020015b60608152602001906001900390816113ab5790505090506040518060400160405280600681526020017f73797374656d00000000000000000000000000000000000000000000000000008152508160008151811061140b5761140b6133f2565b60200260200101819052506040518060400160405280600c81526020017f7075626c696341636365737300000000000000000000000000000000000000008152508160018151811061145f5761145f6133f2565b6020026020010181905250806040518060400160405280600781526020017f53797374656d73000000000000000000000000000000000000000000000000008152509092509250509091565b6040805160038082526080820190925260009182919060208201606080368337019050509050604f816000815181106114e6576114e66133f2565b602002602001019060c58111156114ff576114ff61345f565b908160c58111156115125761151261345f565b81525050604f8160018151811061152b5761152b6133f2565b602002602001019060c58111156115445761154461345f565b908160c58111156115575761155761345f565b81525050604381600281518110610ed657610ed66133f2565b60408051600180825281830190925260009182919060208083019080368337019050509050604381600081518110610ed657610ed66133f2565b604080516003808252608082019092526060918291600091816020015b60608152602001906001900390816115c75790505090506040518060400160405280600981526020017f6e616d657370616365000000000000000000000000000000000000000000000081525081600081518110611627576116276133f2565b60200260200101819052506040518060400160405280600481526020017f6e616d65000000000000000000000000000000000000000000000000000000008152508160018151811061167b5761167b6133f2565b60200260200101819052506040518060400160405280601681526020017f73797374656d46756e6374696f6e53656c6563746f7200000000000000000000815250816002815181106116cf576116cf6133f2565b6020026020010181905250806040518060400160405280601181526020017f46756e6374696f6e53656c6563746f72730000000000000000000000000000008152509092509250509091565b6040805160018082528183019092526060918291600091816020015b60608152602001906001900390816117375790505090506040518060400160405280601081526020017f7265736f7572636553656c6563746f720000000000000000000000000000000081525081600081518110611797576117976133f2565b6020026020010181905250806040518060400160405280600e81526020017f53797374656d52656769737472790000000000000000000000000000000000008152509092509250509091565b60408051600180825281830190925260009182919060208083019080368337019050509050600081600081518110610ed657610ed66133f2565b6040805160018082528183019092526060918291600091816020015b60608152602001906001900390816118395790505090506040518060400160405280600c81526020017f7265736f7572636554797065000000000000000000000000000000000000000081525081600081518110611899576118996133f2565b6020026020010181905250806040518060400160405280600c81526020017f5265736f757263655479706500000000000000000000000000000000000000008152509092509250509091565b6000303b8082036118f857600191505090565b3073ffffffffffffffffffffffffffffffffffffffff1663a5c2f0076040518163ffffffff1660e01b815260040160006040518083038186803b15801561193e57600080fd5b505afa92505050801561194f575060015b61195b57600091505090565b600191505090565b600061196e84611eb8565b905081516000148061198b575061198481611f0d565b60ff168251145b6119dc5761199881611f0d565b82516040517ff2b2755900000000000000000000000000000000000000000000000000000000815260ff909216600483015260248201526044015b60405180910390fd5b6108908484846040516020016119f2919061362c565b604051602081830303815290604052611f31565b6000601c82511115611a30578151604051635318beb960e01b81526004016119d391815260200190565b60008060008060005b8651811015611b5c576000611a77888381518110611a5957611a596133f2565b602002602001015160c5811115611a7257611a7261345f565b611fe9565b905061ffff811615611acd578215611abb576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83611ac58161363f565b945050611ad2565b600192505b611adc818661365e565b9450611b5186611aed846004613684565b8a8581518110611aff57611aff6133f2565b602002602001015160c5811115611b1857611b1861345f565b60f81b6008820281811c7fff0000000000000000000000000000000000000000000000000000000000000090911c198416179392505050565b955050600101611a39565b506000828751611b6c919061369c565b9050600e8160ff161115611b9857604051635318beb960e01b815260ff821660048201526024016119d3565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff851660f085901b1794507fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85167dff000000000000000000000000000000000000000000000000000000000060e885901b161794507fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff85167cff0000000000000000000000000000000000000000000000000000000060e083901b16175b979650505050505050565b611c6b8260006120a1565b611c768160016120a1565b611c7f83612272565b15611cc25782611c8e8461228b565b6040517f147bbb8c0000000000000000000000000000000000000000000000000000000081526004016119d39291906136bf565b610c168383836122b6565b6000611cd885611eb8565b90507fd01f9f1368f831528fc9fe6442366b2b7d957fbfff3bcf7c24d9ab5fe51f8c4685858585604051611d0f94939291906135f8565b60405180910390a16000611d228661242d565b905060005b8151811015611dd3576000828281518110611d4457611d446133f2565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff1663469b7ee2898989896040518563ffffffff1660e01b8152600401611d8d94939291906135f8565b600060405180830381600087803b158015611da757600080fd5b505af1158015611dbb573d6000803e3d6000fd5b50505050508080611dcb9061341e565b915050611d27565b50611ddd826124f5565b60ff168460ff161015611dfc57611df78686848787612506565b611e09565b611e0986868487876125ac565b60005b8151811015610e93576000828281518110611e2957611e296133f2565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16636b3d7d5f898989896040518563ffffffff1660e01b8152600401611e7294939291906135f8565b600060405180830381600087803b158015611e8c57600080fd5b505af1158015611ea0573d6000803e3d6000fd5b50505050508080611eb09061341e565b915050611e0c565b6000611ec3826125e9565b905080611f085781611ed48361228b565b6040517fd623a70d0000000000000000000000000000000000000000000000000000000081526004016119d39291906136bf565b919050565b6000611f1882612685565b611f21836124f5565b611f2b91906136d8565b92915050565b6000611f3d8383612691565b60408051600180825281830190925291925060009190602080830190803683370190505090508481600081518110611f7757611f776133f2565b60209081029190910181019190915260408051676d756473746f726560c01b818401527f53746f72654d657461646174610000000000000000000000000000000000000060308201528151808203909301835281019052611fe290611fdb90613438565b8284612747565b5050505050565b6000808260c5811115611ffe57611ffe61345f565b60ff169050602081101561201e57612017816001613684565b9392505050565b604081101561203e576020612034826001613684565b61201791906136fd565b6060811015612054576040612034826001613684565b60608360c58111156120685761206861345f565b036120765750600192915050565b60618360c581111561208a5761208a61345f565b036120985750601492915050565b50600092915050565b801580156120ad575081155b156120ce57604051635318beb960e01b8152600060048201526024016119d3565b60006120d983612685565b60ff169050600e81111561210357604051635318beb960e01b8152600481018290526024016119d3565b600061210e846124f5565b60ff169050601c61211f8383613684565b111561214b5761212f8282613684565b604051635318beb960e01b81526004016119d391815260200190565b60008060005b61215b8585613684565b811015612223576000612182612171898461279f565b60c5811115611a7257611a7261345f565b11156121d3578381106121c1576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826121cb8161341e565b93505061221b565b8381101561220d576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816122178161341e565b9250505b600101612151565b5082821461224757604051635318beb960e01b8152600481018390526024016119d3565b83811461226a57604051635318beb960e01b8152600481018290526024016119d3565b505050505050565b6000612284612280836125e9565b1590565b1592915050565b6060816040516020016122a091815260200190565b6040516020818303038152906040529050919050565b6040805160018082528183019092526000916020808301908036833701905050905083816000815181106122ec576122ec6133f2565b60209081029190910181019190915260408051676d756473746f726560c01b928101929092527f736368656d610000000000000000000000000000000000000000000000000000603083015260009161235f91015b60405160208183030381529060405261235990613438565b836127cb565b8481559050612377612372826020613684565b849055565b60408051676d756473746f726560c01b60208201527f736368656d61000000000000000000000000000000000000000000000000000060308201527f912af873e852235aae78a1d25ae9bb28b616a67c36898c53a14fd8184504ee3291016040516020818303038152906040526123ed90613438565b83868660408051602081019390935282015260600160408051601f198184030181529082905261241e939291613714565b60405180910390a15050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612467576124676133f2565b60209081029190910181019190915260408051676d756473746f726560c01b818401527f486f6f6b73000000000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000906124d6906124ce90613438565b836000612821565b90506124ed6124e882600084516128c7565b612957565b949350505050565b6000601082901b5b60f81c92915050565b60006125158460ff851661279f565b9050815161252e8260c5811115611a7257611a7261345f565b14612585576125488160c5811115611a7257611a7261345f565b82516040517f521b3d33000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016119d3565b600061259187876127cb565b9050600061259f8686612968565b90506112cd8282866129ab565b60006125b7846124f5565b6125c1908461369c565b90506125d086868385516129c0565b60006125dd8787846129f2565b9050610e938184612a4b565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612622576126226133f2565b60209081029190910181019190915260408051676d756473746f726560c01b928101929092527f736368656d610000000000000000000000000000000000000000000000000000603083015260009161267b9101612341565b90506124ed815490565b6000601882901b6124fd565b604080516002808252606080830184529260009291906020830190803683370190505090508351816000815181106126cb576126cb6133f2565b602002602001019061ffff16908161ffff16815250508251816001815181106126f6576126f66133f2565b602002602001019061ffff16908161ffff1681525050600061271782612a57565b905080858560405160200161272e9392919061373f565b6040516020818303038152906040529250505092915050565b61274f6118e5565b1561275f57610c16838383612b34565b6040517f8ed41f2f0000000000000000000000000000000000000000000000000000000081523390638ed41f2f90610e6590869086908690600401613714565b60006127b7836127b0846004613684565b6008021b90565b60f81c60c58111156120175761201761345f565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d983836040516020016128029392919061377c565b60408051601f1981840301815291905280516020909101209392505050565b606061282b6118e5565b156128425761283b848484612d96565b9050612017565b6040517fd03edb8c000000000000000000000000000000000000000000000000000000008152339063d03edb8c906128829087908790879060040161379b565b600060405180830381865afa15801561289f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261283b91908101906137c7565b60008183111580156128da575083518211155b612916578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016119d393929190613835565b602084016129248482613684565b9050600061293285856136fd565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006120178360146000612db1565b600080805b8360ff168110156129a357612985612171868361279f565b61298f9083613684565b91508061299b8161341e565b91505061296d565b509392505050565b60006020820190506108908484838551612ef4565b60006129cc8585612fb2565b905060006129d8825490565b90506129e88160ff861685612fe9565b808355905061226a565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9848484604051602001612a2b949392919061385a565b60408051601f198184030181529190528051602090910120949350505050565b6105aa826000836129ab565b6000806000805b8451811015612b0957612ad483612a7683600261388d565b612a81906004613684565b878481518110612a9357612a936133f2565b602002602001015160f01b6008820281811c7fffff00000000000000000000000000000000000000000000000000000000000090911c198416179392505050565b9250848181518110612ae857612ae86133f2565b602002602001015161ffff1682612aff91906138ac565b9150600101612a5e565b507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff821660e082901b176124ed565b6000612b3f84611eb8565b90506000612b4d8260f01c90565b905080600080612b5c85612685565b60ff161115612b8a57506020848301015160e081901c612b7d906020613684565b612b879083613684565b91505b84518214612bd15784516040517f521b3d330000000000000000000000000000000000000000000000000000000081526119d3918491600401918252602082015260400190565b7f912af873e852235aae78a1d25ae9bb28b616a67c36898c53a14fd8184504ee32878787604051612c0493929190613714565b60405180910390a16000612c178861242d565b905060005b8151811015612cc6576000828281518110612c3957612c396133f2565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff166382b6745f8b8b8b6040518463ffffffff1660e01b8152600401612c8093929190613714565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b50505050508080612cbe9061341e565b915050612c1c565b506000612cd389896127cb565b905060208701612ce68260008389612ef4565b612cf1866020613684565b612cfb9082613684565b9050612d0687612685565b60ff16600003612d1c5750505050505050505050565b6000612d288b8b612fb2565b858155905060008060005b612d3c8b612685565b60ff168160ff161015612d8657612d548e8e836129f2565b9250612d638860ff83166130c5565b9150612d728360008785612ef4565b612d7c8286613684565b9450600101612d33565b5050505050505050505050505050565b60606000612da385611eb8565b9050610d3c858585846130f7565b60606000612dbf8560801c90565b90506fffffffffffffffffffffffffffffffff8516600084612df757612de686600861388d565b612df2906101006136fd565b612dfa565b60005b90506000868381612e0d57612e0d6138cb565b049050612e1a87846138e1565b15612ea7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f756e7061636b546f41727261793a207061636b65644c656e677468206d75737460448201527f2062652061206d756c7469706c65206f6620656c656d656e7453697a6500000060648201526084016119d3565b602080820201604051955080860160405250808552600060208601855b83831015612ee6578051851c8252600192909201916020909101908901612ec4565b505050505050509392505050565b602083048401935060208381612f0c57612f0c6138cb565b0692508215612f655760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311612f50575050610890565b612f5b600187613684565b9550509182019190035b60208110612f8e5781518455612f7c600185613684565b935060209190910190601f1901612f65565b8015610890576000600019600883021c198554845182169119161785555050505050565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9838360405160200161280293929190613903565b60008381612ff78260e01c90565b90506000613008878760ff166130c5565b905080851061302c5761301b81866136fd565b6130259083613684565b9150613043565b61303685826136fd565b61304090836136fd565b91505b600061305087600261388d565b61305b906004613684565b90507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1793507fffff0000000000000000000000000000000000000000000000000000000000006008820290811c19851660f088901b90911c175b98975050505050505050565b6000806130d383600261388d565b6130de906004613684565b90506130ec84826008021b90565b60f01c949350505050565b6060613102826124f5565b60ff168360ff1610156131225761311b8585858561312e565b90506124ed565b61311b8585858561318e565b6060600061313f8360ff861661279f565b905060006131588260c5811115611a7257611a7261345f565b9050600061316688886127cb565b905060006131748688612968565b90506131818284836131db565b9998505050505050505050565b6060600061319b836124f5565b6131a5908561369c565b905060006131b48787846129f2565b905060006131cf8360ff166131c98a8a613233565b906130c5565b90506130b98282613240565b60608267ffffffffffffffff8111156131f6576131f6613303565b6040519080825280601f01601f191660200182016040528015613220576020820181803683370190505b509050602081016129a38585858461324e565b60008061267b8484612fb2565b6060612017838360006131db565b602082048401935060208281613266576132666138cb565b06915081156132b75760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116132a2575050610890565b6132ad600187613684565b9550509283900392015b602083106132df57835481526132ce600185613684565b9350601f19909201916020016132b7565b8215610890576000600019600885021c198251865482169119161782525050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561334257613342613303565b604052919050565b600067ffffffffffffffff82111561336457613364613303565b50601f01601f191660200190565b60006020828403121561338457600080fd5b813567ffffffffffffffff81111561339b57600080fd5b8201601f810184136133ac57600080fd5b80356133bf6133ba8261334a565b613319565b8181528560208385010111156133d457600080fd5b81602084016020830137600091810160200191909152949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019820361343157613431613408565b5060010190565b80516020808301519190811015613459576000198160200360031b1b821691505b50919050565b634e487b7160e01b600052602160045260246000fd5b60005b83811015613490578181015183820152602001613478565b838111156108905750506000910152565b600083516134b3818460208801613475565b60609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190920190815260140192915050565b600082516134fd818460208701613475565b9190910192915050565b6000815180845261351f816020860160208601613475565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b8581101561357b578284038952613569848351613507565b98850198935090840190600101613551565b5091979650505050505050565b8381526060602082015260006135a16060830185613507565b82810360408401526135b38185613533565b9695505050505050565b600081518084526020808501945080840160005b838110156135ed578151875295820195908201906001016135d1565b509495945050505050565b84815260806020820152600061361160808301866135bd565b60ff851660408401528281036060840152611c558185613507565b6020815260006120176020830184613533565b600060ff821660ff810361365557613655613408565b60010192915050565b600061ffff80831681851680830382111561367b5761367b613408565b01949350505050565b6000821982111561369757613697613408565b500190565b600060ff821660ff8416808210156136b6576136b6613408565b90039392505050565b8281526040602082015260006124ed6040830184613507565b600060ff821660ff84168060ff038211156136f5576136f5613408565b019392505050565b60008282101561370f5761370f613408565b500390565b83815260606020820152600061372d60608301856135bd565b82810360408401526135b38185613507565b83815260008351613757816020850160208801613475565b8083019050835161376f816020840160208801613475565b0160200195945050505050565b838152826020820152606060408201526000610d3c60608301846135bd565b8381526060602082015260006137b460608301856135bd565b905060ff83166040830152949350505050565b6000602082840312156137d957600080fd5b815167ffffffffffffffff8111156137f057600080fd5b8201601f8101841361380157600080fd5b805161380f6133ba8261334a565b81815285602083850101111561382457600080fd5b610d3c826020830160208601613475565b6060815260006138486060830186613507565b60208301949094525060400152919050565b84815283602082015260806040820152600061387960808301856135bd565b905060ff8316606083015295945050505050565b60008160001904831182151516156138a7576138a7613408565b500290565b600063ffffffff80831681851680830382111561367b5761367b613408565b634e487b7160e01b600052601260045260246000fd5b6000826138fe57634e487b7160e01b600052601260045260246000fd5b500690565b83815282602082015260806040820152600061392260808301846135bd565b8281036060840152600681527f6c656e677468000000000000000000000000000000000000000000000000000060208201526040810191505094935050505056fea2646970667358221220985115c808c53dcfa8d034647e3ba5ed35e13cfbd1d761e2d3869eff86d56a3664736f6c634300080d0033608060405234801561001057600080fd5b50614a71806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80637a58dce411610097578063ca4c1f5e11610066578063ca4c1f5e14610211578063d593368614610224578063f227e65314610237578063fe86a89f1461024a57600080fd5b80637a58dce4146101c55780638ae710e9146101d85780638da798da146101eb578063a886545e146101fe57600080fd5b80633ca90f22116100d35780633ca90f22146101485780634c9e9f111461015b57806356f55a971461016e5780636e81fd71146101b257600080fd5b8063096fcaa9146100fa5780631e42269e1461010f57806331b99d8914610122575b600080fd5b61010d610108366004613d31565b61025d565b005b61010d61011d366004613ddb565b6102c8565b610135610130366004613e26565b6102e9565b6040519081526020015b60405180910390f35b61010d610156366004613ddb565b505050565b610135610169366004613e6c565b610416565b61018161017c366004613efd565b610537565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161013f565b61010d6101c0366004613f55565b6105f2565b61010d6101d3366004613ddb565b6106de565b61010d6101e6366004613ddb565b610751565b61010d6101f9366004614032565b61076c565b61010d61020c366004614096565b61086f565b61018161021f3660046140d3565b6108dd565b61010d61023236600461415c565b610a28565b61010d610245366004613ddb565b610ab6565b61010d610258366004614188565b610ad3565b6000610271878761026c610b42565b610b74565b90506102bf8186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506102ba9250879150889050614202565b610c02565b50505050505050565b60006102d7848461026c610b42565b90506102e38183610ca0565b50505050565b60006001600160801b03198516608085901c1790506001600160801b031984166103525761031681610d67565b6040517fe56728c000000000000000000000000000000000000000000000000000000000815260040161034991906142de565b60405180910390fd5b60006103676001600160801b03198716610e3b565b6003811115610378576103786142f1565b0361038b576103868561086f565b61039b565b61039985600061026c610b42565b505b60006103a682610e3b565b60038111156103b7576103b76142f1565b146103f8576103c581610d67565b6040517f0f2fac6100000000000000000000000000000000000000000000000000000000815260040161034991906142de565b610403816002610ef7565b61040e818484610feb565b949350505050565b60006001600160801b03198516608085901c1790506001600160801b031984166104435761031681610d67565b61044c83611058565b1561048e576040517fb86487840000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610349565b60006104a36001600160801b03198716610e3b565b60038111156104b4576104b46142f1565b036104c7576104c28561086f565b6104d7565b6104d585600061026c610b42565b505b60006104e282610e3b565b60038111156104f3576104f36142f1565b14610501576103c581610d67565b61050c816003610ef7565b6105178184846110fb565b61052183826111d3565b61040e6001600160801b0319861684600161128b565b6000610546818061026c610b42565b50600061055284611367565b9050600061055f8561140a565b90506001600160801b0319821615801561058157506001600160801b03198116155b6105db576040517f9b2a16a90000000000000000000000000000000000000000000000000000000081527fffffffff0000000000000000000000000000000000000000000000000000000086166004820152602401610349565b6105e7858888876114c8565b509295945050505050565b600061060d6f636f72652e73000000000000000000006115c8565b5090506102e361061b610b42565b827f8ae710e900000000000000000000000000000000000000000000000000000000866106488860801b90565b6040516001600160801b03199283166024820152911660448201526001600160a01b03871660648201526084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526001600061168d565b60006106f96001600160801b03198516608085901c17610e3b565b9050600281600381111561070f5761070f6142f1565b0361071f576102e3848484610751565b6003816003811115610733576107336142f1565b146102e3576103166001600160801b03198516608085901c17610d67565b6000610760848461026c610b42565b90506102e3818361179d565b6107f8610777610b42565b836313861fb560e01b8460405160240161079191906142de565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915260008061168d565b5061086b826001600160a01b03166317d7de7c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e9190614307565b82516020840120846117a7565b5050565b6001600160801b03198116600061088582610e3b565b6003811115610896576108966142f1565b146108a4576103c581610d67565b6108b96001600160801b031983166001610ef7565b6108ca826108c5610b42565b61186b565b61086b816108d6610b42565b600161128b565b60006108ec858561026c610b42565b5060006108f886611937565b9050600061090586611937565b90508181868660405160200161091e9493929190614324565b604051602081830303815290604052805190602001209250600061094184611367565b9050600061094e8561140a565b90506001600160801b0319821615158061097157506001600160801b0319811615155b156109cc576040517f9b2a16a90000000000000000000000000000000000000000000000000000000081527fffffffff0000000000000000000000000000000000000000000000000000000086166004820152602401610349565b600087876040516020016109e19291906143b1565b604051602081830303815290604052905060008151600014610a095781516020830120610a0c565b60005b9050610a1a878c8c846114c8565b505050505050949350505050565b6000610a436f636f72652e73000000000000000000006115c8565b509050610aaf610a51610b42565b827f31b99d890000000000000000000000000000000000000000000000000000000087610a7e8960801b90565b6040516001600160801b0319928316602482015291166044820152606481018890526084810187905260a401610676565b5050505050565b6000610ac5848461026c610b42565b90506102e38183600161128b565b6000610aee6f636f72652e73000000000000000000006115c8565b5090506102bf610afc610b42565b827f096fcaa90000000000000000000000000000000000000000000000000000000089610b298b60801b90565b8a8a8a8a6040516024016106769695949392919061440b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c80610b715750335b90565b608082901c6001600160801b03198416176001600160a01b0382163014801590610bb85750816001600160a01b0316610bac856119b5565b6001600160a01b031614155b15610bfb57610bc681610d67565b826040517fe64c03480000000000000000000000000000000000000000000000000000000081526004016103499291906144f4565b9392505050565b6000610c0d84611a5b565b9050815160001480610c2a5750610c2381611ab0565b60ff168251145b610c7657610c3781611ab0565b82516040517ff2b2755900000000000000000000000000000000000000000000000000000000815260ff90921660048301526024820152604401610349565b6102e3848484604051602001610c8c919061451f565b604051602081830303815290604052611ad4565b6040805160028082526060820183526000926020830190803683370190505090508281600081518110610cd557610cd561459f565b6020026020010181815250508160601b6bffffffffffffffffffffffff191681600181518110610d0757610d0761459f565b602090810291909101810191909152604080516000818401527f5265736f757263654163636573730000000000000000000000000000000000006030820152815180820390930183528101905261015690610d61906145b5565b82611b70565b606081608081901b6001600160801b0319821615610d855781610da7565b7f524f4f545f4e414d4553504143450000000000000000000000000000000000005b6001600160801b0319821615610dbd5781610ddf565b7f524f4f545f4e414d4500000000000000000000000000000000000000000000005b6040516001600160801b031992831660208201527f2f0000000000000000000000000000000000000000000000000000000000000060308201529116603182015260410160405160208183030381529060405292505050919050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610e7457610e7461459f565b6020908102919091018101919091526040805160009281018390527f5265736f757263655479706500000000000000000000000000000000000000006030820152610edb91015b604051602081830303815290604052610ed3906145b5565b836000611bf3565b602081015190915060f81c600381111561040e5761040e6142f1565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f2d57610f2d61459f565b602090810291909101810191909152604080516000818401527f5265736f757263655479706500000000000000000000000000000000000000006030820152815180820390930183528101905261015690610f87906145b5565b826000856003811115610f9c57610f9c6142f1565b604051602001610fd7919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b604051602081830303815290604052611c99565b610ff6826000611d31565b611001816001611d31565b61100a83611eff565b1561104d578261101984611f18565b6040517f147bbb8c0000000000000000000000000000000000000000000000000000000081526004016103499291906145dc565b610156838383611f43565b604080516001808252818301909252600091829190602080830190803683370190505090508260601b6bffffffffffffffffffffffff1916816000815181106110a3576110a361459f565b6020908102919091018101919091526040805160009281018390527f53797374656d526567697374727900000000000000000000000000000000000060308201526110ee9101610ebb565b602081015190915061040e565b60408051606084901b6bffffffffffffffffffffffff191660208083019190915283151560f81b603483015282518083036015018152600160358401818152607585019095529093600093909260559091019080368337019050509050848160008151811061116c5761116c61459f565b602090810291909101810191909152604080516000928101929092527f53797374656d73000000000000000000000000000000000000000000000000006030830152610aaf91015b6040516020818303038152906040526111cc906145b5565b82846120ba565b604080516001808252818301909252600091602080830190803683370190505090508260601b6bffffffffffffffffffffffff19168160008151811061121b5761121b61459f565b602090810291909101810191909152604080516000818401527f53797374656d52656769737472790000000000000000000000000000000000006030820152815180820390930183528101905261015690611275906145b5565b82600085604051602001610fd791815260200190565b60408051600280825260608201835260009260208301908036833701905050905083816000815181106112c0576112c061459f565b6020026020010181815250508260601b6bffffffffffffffffffffffff1916816001815181106112f2576112f261459f565b602090810291909101810191909152604080516000818401527f5265736f75726365416363657373000000000000000000000000000000000000603082015281518082039093018352810190526102e39061134c906145b5565b82600085604051602001610fd791151560f81b815260010190565b60408051600180825281830190925260009182919060208083019080368337019050509050827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916816000815181106113bf576113bf61459f565b6020908102919091018101919091526040805160009281018390527f66756e6353656c6563746f72730000000000000000000000000000000000000060308201526110ee9101610ebb565b60408051600180825281830190925260009182919060208083019080368337019050509050827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916816000815181106114625761146261459f565b6020908102919091018101919091526040805160009281018390527f66756e6353656c6563746f72730000000000000000000000000000000000000060308201526110ee91016040516020818303038152906040526114c0906145b5565b836001611bf3565b604080516001600160801b031985811660208084019190915290851660308301527fffffffff0000000000000000000000000000000000000000000000000000000084168284015282516024818403018152600160448401818152608485019095529093600093909260649091019080368337019050509050857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916816000815181106115745761157461459f565b602090810291909101810191909152604080516000928101929092527f66756e6353656c6563746f72730000000000000000000000000000000000000060308301526115c091016111b4565b505050505050565b604080516001808252818301909252600091829182916020808301908036833701905050905083816000815181106116025761160261459f565b6020908102919091018101919091526040805160009281018390527f53797374656d7300000000000000000000000000000000000000000000000000603082015261166e9101604051602081830303815290604052611660906145b5565b83611669612140565b6121fd565b6020810151603482015191925060601c9060f81c935093505050915091565b6060600084876040516020016116a49291906145f5565b60405160208183030381529060405290506000808561171e57876001600160a01b031685846040516116d6919061462c565b60006040518083038185875af1925050503d8060008114611713576040519150601f19603f3d011682016040523d82523d6000602084013e611718565b606091505b50611778565b876001600160a01b031683604051611736919061462c565b600060405180830381855af49150503d8060008114611771576040519150601f19603f3d011682016040523d82523d6000602084013e611776565b606091505b505b91509150811561178c579250611794915050565b805160208201fd5b95945050505050565b61086b8282612257565b60006117b282612329565b6040805160028082526060820183529293506000929091602083019080368337019050509050846fffffffffffffffffffffffffffffffff1916816000815181106117ff576117ff61459f565b602002602001018181525050838160018151811061181f5761181f61459f565b602090810291909101810191909152604080516000928101929092527f496e7374616c6c65644d6f64756c6573000000000000000000000000000000006030830152610aaf91016111b4565b60408051600180825281830190925260009160208083019080368337019050509050826fffffffffffffffffffffffffffffffff1916816000815181106118b4576118b461459f565b602090810291909101810191909152604080516000818401527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526101569061190e906145b5565b6040516bffffffffffffffffffffffff19606086901b1660208201528390600090603401610fd7565b606060005b601081101561198e576001600160801b03198316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561198e57806119868161465e565b91505061193c565b604080516001600160801b031985166020820152815160309091019091528181528061040e565b60408051600180825281830190925260009182919060208083019080368337019050509050826fffffffffffffffffffffffffffffffff191681600081518110611a0157611a0161459f565b6020908102919091018101919091526040805160009281018390527f4e616d6573706163654f776e65720000000000000000000000000000000000006030820152611a4c9101610ebb565b6020015160601c949350505050565b6000611a668261234e565b905080611aab5781611a7783611f18565b6040517fd623a70d0000000000000000000000000000000000000000000000000000000081526004016103499291906145dc565b919050565b6000611abb826123ea565b611ac4836123fb565b611ace9190614678565b92915050565b6000611ae08383612407565b60408051600180825281830190925291925060009190602080830190803683370190505090508481600081518110611b1a57611b1a61459f565b60209081029190910181019190915260408051676d756473746f726560c01b928101929092527f53746f72654d65746164617461000000000000000000000000000000000000006030830152610aaf91016111b4565b611b786124bd565b15611b875761086b828261252e565b6040517f505a181d000000000000000000000000000000000000000000000000000000008152339063505a181d90611bc590859085906004016146d8565b600060405180830381600087803b158015611bdf57600080fd5b505af11580156115c0573d6000803e3d6000fd5b6060611bfd6124bd565b15611c1457611c0d8484846126b7565b9050610bfb565b6040517fd03edb8c000000000000000000000000000000000000000000000000000000008152339063d03edb8c90611c54908790879087906004016146f1565b600060405180830381865afa158015611c71573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c0d919081019061471d565b611ca16124bd565b15611cb757611cb2848484846126d2565b6102e3565b6040517f114a7266000000000000000000000000000000000000000000000000000000008152339063114a726690611cf990879087908790879060040161478b565b600060405180830381600087803b158015611d1357600080fd5b505af1158015611d27573d6000803e3d6000fd5b5050505050505050565b80158015611d3d575081155b15611d5e57604051635318beb960e01b815260006004820152602401610349565b6000611d69836123ea565b60ff169050600e811115611d9357604051635318beb960e01b815260048101829052602401610349565b6000611d9e846123fb565b60ff169050601c611daf83836147bf565b1115611ddb57611dbf82826147bf565b604051635318beb960e01b815260040161034991815260200190565b60008060005b611deb85856147bf565b811015611eb8576000611e17611e0189846128a3565b60c5811115611e1257611e126142f1565b6128cf565b1115611e6857838110611e56576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82611e608161465e565b935050611eb0565b83811015611ea2576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81611eac8161465e565b9250505b600101611de1565b50828214611edc57604051635318beb960e01b815260048101839052602401610349565b8381146115c057604051635318beb960e01b815260048101829052602401610349565b6000611f11611f0d8361234e565b1590565b1592915050565b606081604051602001611f2d91815260200190565b6040516020818303038152906040529050919050565b604080516001808252818301909252600091602080830190803683370190505090508381600081518110611f7957611f7961459f565b60209081029190910181019190915260408051676d756473746f726560c01b928101929092527f736368656d6100000000000000000000000000000000000000000000000000006030830152600091611fec91015b604051602081830303815290604052611fe6906145b5565b83612980565b8481559050612004611fff8260206147bf565b849055565b60408051676d756473746f726560c01b60208201527f736368656d61000000000000000000000000000000000000000000000000000060308201527f912af873e852235aae78a1d25ae9bb28b616a67c36898c53a14fd8184504ee32910160405160208183030381529060405261207a906145b5565b83868660408051602081019390935282015260600160408051601f19818403018152908290526120ab9392916147d7565b60405180910390a15050505050565b6120c26124bd565b156120d2576101568383836129d6565b6040517f8ed41f2f0000000000000000000000000000000000000000000000000000000081523390638ed41f2f90612112908690869086906004016147d7565b600060405180830381600087803b15801561212c57600080fd5b505af11580156102bf573d6000803e3d6000fd5b6040805160028082526060820183526000928392919060208301908036833701905050905060618160008151811061217a5761217a61459f565b602002602001019060c5811115612193576121936142f1565b908160c58111156121a6576121a66142f1565b815250506060816001815181106121bf576121bf61459f565b602002602001019060c58111156121d8576121d86142f1565b908160c58111156121eb576121eb6142f1565b9052506121f781612c2b565b91505090565b60606122076124bd565b1561221757611c0d848484612e80565b6040517f419b58fd000000000000000000000000000000000000000000000000000000008152339063419b58fd90611c549087908790879060040161480c565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061228d5761228d61459f565b60209081029190910181019190915260408051676d756473746f726560c01b818401527f486f6f6b7300000000000000000000000000000000000000000000000000000060308201528151808203909301835281019052610156906122f1906145b5565b6040516bffffffffffffffffffffffff19606086901b1660208201528390600090603401604051602081830303815290604052612fe5565b604051606082811b6bffffffffffffffffffffffff1916602083015290603401611f2d565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106123875761238761459f565b60209081029190910181019190915260408051676d756473746f726560c01b928101929092527f736368656d61000000000000000000000000000000000000000000000000000060308301526000916123e09101611fce565b905061040e815490565b6000601882901b5b60f81c92915050565b6000601082901b6123f2565b604080516002808252606080830184529260009291906020830190803683370190505090508351816000815181106124415761244161459f565b602002602001019061ffff16908161ffff168152505082518160018151811061246c5761246c61459f565b602002602001019061ffff16908161ffff1681525050600061248d82613040565b90508085856040516020016124a493929190614835565b6040516020818303038152906040529250505092915050565b6000303b8082036124d057600191505090565b306001600160a01b031663a5c2f0076040518163ffffffff1660e01b815260040160006040518083038186803b15801561250957600080fd5b505afa92505050801561251a575060015b61252657600091505090565b600191505090565b600061253983611a5b565b90507f2cc8610b80ef19409ae51ecbdd9c137960fb22ae9ef2d817d36ec1b685d68ecd838360405161256c9291906146d8565b60405180910390a1600061257f8461311d565b905060005b815181101561261f5760008282815181106125a1576125a161459f565b60200260200101519050806001600160a01b031663b51fef6c87876040518363ffffffff1660e01b81526004016125d99291906146d8565b600060405180830381600087803b1580156125f357600080fd5b505af1158015612607573d6000803e3d6000fd5b505050505080806126179061465e565b915050612584565b50600061262c8585612980565b905061268681600061263e8660f01c90565b67ffffffffffffffff81111561265657612656613f85565b6040519080825280601f01601f191660200182016040528015612680576020820181803683370190505b506131c7565b61268f836123ea565b60ff166000036126a0575050505050565b60006126ac86866131dc565b6000815590506115c0565b606060006126c485611a5b565b905061179485858584613213565b60006126dd85611a5b565b90507fd01f9f1368f831528fc9fe6442366b2b7d957fbfff3bcf7c24d9ab5fe51f8c4685858585604051612714949392919061478b565b60405180910390a160006127278661311d565b905060005b81518110156127cb5760008282815181106127495761274961459f565b60200260200101519050806001600160a01b031663469b7ee2898989896040518563ffffffff1660e01b8152600401612785949392919061478b565b600060405180830381600087803b15801561279f57600080fd5b505af11580156127b3573d6000803e3d6000fd5b505050505080806127c39061465e565b91505061272c565b506127d5826123fb565b60ff168460ff1610156127f4576127ef868684878761324a565b612801565b61280186868487876132f0565b60005b81518110156102bf5760008282815181106128215761282161459f565b60200260200101519050806001600160a01b0316636b3d7d5f898989896040518563ffffffff1660e01b815260040161285d949392919061478b565b600060405180830381600087803b15801561287757600080fd5b505af115801561288b573d6000803e3d6000fd5b5050505050808061289b9061465e565b915050612804565b60006128bb836128b48460046147bf565b6008021b90565b60f81c60c5811115610bfb57610bfb6142f1565b6000808260c58111156128e4576128e46142f1565b60ff16905060208110156128fd57610bfb8160016147bf565b604081101561291d5760206129138260016147bf565b610bfb9190614872565b60608110156129335760406129138260016147bf565b60608360c5811115612947576129476142f1565b036129555750600192915050565b60618360c5811115612969576129696142f1565b036129775750601492915050565b50600092915050565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d983836040516020016129b793929190614889565b60408051601f1981840301815291905280516020909101209392505050565b60006129e184611a5b565b905060006129ef8260f01c90565b9050806000806129fe856123ea565b60ff161115612a2c57506020848301015160e081901c612a1f9060206147bf565b612a2990836147bf565b91505b84518214612a735784516040517f521b3d33000000000000000000000000000000000000000000000000000000008152610349918491600401918252602082015260400190565b7f912af873e852235aae78a1d25ae9bb28b616a67c36898c53a14fd8184504ee32878787604051612aa6939291906147d7565b60405180910390a16000612ab98861311d565b905060005b8151811015612b5b576000828281518110612adb57612adb61459f565b60200260200101519050806001600160a01b03166382b6745f8b8b8b6040518463ffffffff1660e01b8152600401612b15939291906147d7565b600060405180830381600087803b158015612b2f57600080fd5b505af1158015612b43573d6000803e3d6000fd5b50505050508080612b539061465e565b915050612abe565b506000612b688989612980565b905060208701612b7b826000838961332d565b612b868660206147bf565b612b9090826147bf565b9050612b9b876123ea565b60ff16600003612bb15750505050505050505050565b6000612bbd8b8b6131dc565b858155905060008060005b612bd18b6123ea565b60ff168160ff161015612c1b57612be98e8e836133eb565b9250612bf88860ff8316613444565b9150612c07836000878561332d565b612c1182866147bf565b9450600101612bc8565b5050505050505050505050505050565b6000601c82511115612c55578151604051635318beb960e01b815260040161034991815260200190565b60008060008060005b8651811015612d7c576000612c97888381518110612c7e57612c7e61459f565b602002602001015160c5811115611e1257611e126142f1565b905061ffff811615612ced578215612cdb576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83612ce5816148a8565b945050612cf2565b600192505b612cfc81866148c7565b9450612d7186612d0d8460046147bf565b8a8581518110612d1f57612d1f61459f565b602002602001015160c5811115612d3857612d386142f1565b60f81b6008820281811c7fff0000000000000000000000000000000000000000000000000000000000000090911c198416179392505050565b955050600101612c5e565b506000828751612d8c91906148e4565b9050600e8160ff161115612db857604051635318beb960e01b815260ff82166004820152602401610349565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff851660f085901b1794507fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85167dff000000000000000000000000000000000000000000000000000000000060e885901b161794507fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff85167cff0000000000000000000000000000000000000000000000000000000060e083901b16175b979650505050505050565b60606000612e8e8360f01c90565b905080600080612e9d866123ea565b60ff1690508015612ee857612eb28888613476565b91506000612ec08360e01c90565b1115612ee857612ed08260e01c90565b612edb9060206147bf565b612ee590846147bf565b92505b60008367ffffffffffffffff811115612f0357612f03613f85565b6040519080825280601f01601f191660200182016040528015612f2d576020820181803683370190505b50905060208101612f408a8a8884613483565b612f4a8460e01c90565b600003612f5e57509450610bfb9350505050565b612f6886826147bf565b8481529050612f786020826147bf565b905060005b838160ff161015612fd6576000612f958c8c846133eb565b90506000612fa68760ff8516613444565b9050612fb582826000876134a0565b612fbf81856147bf565b935050508080612fce906148a8565b915050612f7d565b50909998505050505050505050565b612fed6124bd565b15612ffe57611cb284848484613555565b6040517f0c1a60000000000000000000000000000000000000000000000000000000000081523390630c1a600090611cf990879087908790879060040161478b565b6000806000805b84518110156130f2576130bd8361305f836002614907565b61306a9060046147bf565b87848151811061307c5761307c61459f565b602002602001015160f01b6008820281811c7fffff00000000000000000000000000000000000000000000000000000000000090911c198416179392505050565b92508481815181106130d1576130d161459f565b602002602001015161ffff16826130e89190614926565b9150600101613047565b507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff821660e082901b1761040e565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106131575761315761459f565b60209081029190910181019190915260408051676d756473746f726560c01b928101929092527f486f6f6b7300000000000000000000000000000000000000000000000000000060308301526000916131b09101610ebb565b905061040e6131c28260008451613777565b613807565b60006020820190506102e3848483855161332d565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d983836040516020016129b793929190614945565b606061321e826123fb565b60ff168360ff16101561323e5761323785858585613818565b905061040e565b61323785858585613878565b60006132598460ff85166128a3565b905081516132728260c5811115611e1257611e126142f1565b146132c95761328c8160c5811115611e1257611e126142f1565b82516040517f521b3d3300000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610349565b60006132d58787612980565b905060006132e386866138d1565b9050611d278282866131c7565b60006132fb846123fb565b61330590846148e4565b90506133148686838551613914565b60006133218787846133eb565b90506102bf8184613946565b602083048401935060208381613345576133456149a5565b069250821561339e5760208390036000600019600884021c1990506008850281811c91508451811c90508119875416828216178755508183116133895750506102e3565b6133946001876147bf565b9550509182019190035b602081106133c757815184556133b56001856147bf565b935060209190910190601f190161339e565b80156102e3576000600019600883021c198554845182169119161785555050505050565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d984848460405160200161342494939291906149bb565b60408051601f198184030181529190528051602090910120949350505050565b600080613452836002614907565b61345d9060046147bf565b905061346b84826008021b90565b60f01c949350505050565b6000806123e084846131dc565b81156102e35760006134958585612980565b9050610aaf81846000855b6020820484019350602082816134b8576134b86149a5565b06915081156135095760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116134f45750506102e3565b6134ff6001876147bf565b9550509283900392015b6020831061353157835481526135206001856147bf565b9350601f1990920191602001613509565b82156102e3576000600019600885021c198251865482169119161782525050505050565b600061356085611a5b565b905061356b816123fb565b60ff168360ff1610156135aa576040517f14306eb800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006135b886868685613878565b836040516020016135ca9291906143b1565b60405160208183030381529060405290507fd01f9f1368f831528fc9fe6442366b2b7d957fbfff3bcf7c24d9ab5fe51f8c4686868684604051613610949392919061478b565b60405180910390a160006136238761311d565b905060005b81518110156136c75760008282815181106136455761364561459f565b60200260200101519050806001600160a01b031663469b7ee28a8a8a886040518563ffffffff1660e01b8152600401613681949392919061478b565b600060405180830381600087803b15801561369b57600080fd5b505af11580156136af573d6000803e3d6000fd5b505050505080806136bf9061465e565b915050613628565b506136d58787858888613952565b60005b8151811015611d275760008282815181106136f5576136f561459f565b60200260200101519050806001600160a01b0316636b3d7d5f8a8a8a886040518563ffffffff1660e01b8152600401613731949392919061478b565b600060405180830381600087803b15801561374b57600080fd5b505af115801561375f573d6000803e3d6000fd5b5050505050808061376f9061465e565b9150506136d8565b600081831115801561378a575083518211155b6137c6578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401610349939291906149ee565b602084016137d484826147bf565b905060006137e28585614872565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610bfb83601460006139cd565b606060006138298360ff86166128a3565b905060006138428260c5811115611e1257611e126142f1565b905060006138508888612980565b9050600061385e86886138d1565b905061386b828483613b10565b9998505050505050505050565b60606000613885836123fb565b61388f90856148e4565b9050600061389e8787846133eb565b905060006138b98360ff166138b38a8a613476565b90613444565b90506138c58282613b68565b98975050505050505050565b600080805b8360ff1681101561390c576138ee611e0186836128a3565b6138f890836147bf565b9150806139048161465e565b9150506138d6565b509392505050565b600061392085856131dc565b9050600061392c825490565b905061393c8160ff861685613b76565b80835590506115c0565b61086b826000836131c7565b600061395d846123fb565b61396790846148e4565b9050600061397587876131dc565b90506000613981825490565b905060006139928260ff8616613444565b90506139b08460ff168651836139a891906147bf565b849190613b76565b80845591506139c28989868489613c4a565b505050505050505050565b606060006139db8560801c90565b90506fffffffffffffffffffffffffffffffff8516600084613a1357613a02866008614907565b613a0e90610100614872565b613a16565b60005b90506000868381613a2957613a296149a5565b049050613a368784614a13565b15613ac3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f756e7061636b546f41727261793a207061636b65644c656e677468206d75737460448201527f2062652061206d756c7469706c65206f6620656c656d656e7453697a650000006064820152608401610349565b602080820201604051955080860160405250808552600060208601855b83831015613b02578051851c8252600192909201916020909101908901613ae0565b505050505050509392505050565b60608267ffffffffffffffff811115613b2b57613b2b613f85565b6040519080825280601f01601f191660200182016040528015613b55576020820181803683370190505b5090506020810161390c858585846134a0565b6060610bfb83836000613b10565b60008381613b848260e01c90565b90506000613b95878760ff16613444565b9050808510613bb957613ba88186614872565b613bb290836147bf565b9150613bd0565b613bc38582614872565b613bcd9083614872565b91505b6000613bdd876002614907565b613be89060046147bf565b90507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1793507fffff0000000000000000000000000000000000000000000000000000000000006008820290811c19851660f088901b90911c176138c5565b6000613c578686866133eb565b9050613c64602084614a27565b613c6e90826147bf565b90506000613c7d602085614a13565b90506102bf8282856131c7565b6001600160801b031981168114613ca057600080fd5b50565b60008083601f840112613cb557600080fd5b50813567ffffffffffffffff811115613ccd57600080fd5b602083019150836020828501011115613ce557600080fd5b9250929050565b60008083601f840112613cfe57600080fd5b50813567ffffffffffffffff811115613d1657600080fd5b6020830191508360208260051b8501011115613ce557600080fd5b60008060008060008060808789031215613d4a57600080fd5b8635613d5581613c8a565b95506020870135613d6581613c8a565b9450604087013567ffffffffffffffff80821115613d8257600080fd5b613d8e8a838b01613ca3565b90965094506060890135915080821115613da757600080fd5b50613db489828a01613cec565b979a9699509497509295939492505050565b6001600160a01b0381168114613ca057600080fd5b600080600060608486031215613df057600080fd5b8335613dfb81613c8a565b92506020840135613e0b81613c8a565b91506040840135613e1b81613dc6565b809150509250925092565b60008060008060808587031215613e3c57600080fd5b8435613e4781613c8a565b93506020850135613e5781613c8a565b93969395505050506040820135916060013590565b60008060008060808587031215613e8257600080fd5b8435613e8d81613c8a565b93506020850135613e9d81613c8a565b92506040850135613ead81613dc6565b915060608501358015158114613ec257600080fd5b939692955090935050565b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114611aab57600080fd5b60008060008060808587031215613f1357600080fd5b8435613f1e81613c8a565b93506020850135613f2e81613c8a565b9250613f3c60408601613ecd565b9150613f4a60608601613ecd565b905092959194509250565b60008060408385031215613f6857600080fd5b823591506020830135613f7a81613dc6565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fc457613fc4613f85565b604052919050565b600067ffffffffffffffff821115613fe657613fe6613f85565b50601f01601f191660200190565b600061400761400284613fcc565b613f9b565b905082815283838301111561401b57600080fd5b828260208301376000602084830101529392505050565b6000806040838503121561404557600080fd5b823561405081613dc6565b9150602083013567ffffffffffffffff81111561406c57600080fd5b8301601f8101851361407d57600080fd5b61408c85823560208401613ff4565b9150509250929050565b6000602082840312156140a857600080fd5b8135610bfb81613c8a565b600082601f8301126140c457600080fd5b610bfb83833560208501613ff4565b600080600080608085870312156140e957600080fd5b84356140f481613c8a565b9350602085013561410481613c8a565b9250604085013567ffffffffffffffff8082111561412157600080fd5b61412d888389016140b3565b9350606087013591508082111561414357600080fd5b50614150878288016140b3565b91505092959194509250565b60008060006060848603121561417157600080fd5b505081359360208301359350604090920135919050565b6000806000806000606086880312156141a057600080fd5b85359450602086013567ffffffffffffffff808211156141bf57600080fd5b6141cb89838a01613ca3565b909650945060408801359150808211156141e457600080fd5b506141f188828901613cec565b969995985093965092949392505050565b600067ffffffffffffffff8084111561421d5761421d613f85565b8360051b602061422e818301613f9b565b86815291850191818101903684111561424657600080fd5b865b8481101561427a578035868111156142605760008081fd5b61426c36828b016140b3565b845250918301918301614248565b50979650505050505050565b60005b838110156142a1578181015183820152602001614289565b838111156102e35750506000910152565b600081518084526142ca816020860160208601614286565b601f01601f19169290920160200192915050565b602081526000610bfb60208301846142b2565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561431957600080fd5b8151610bfb81613c8a565b60008551614336818460208a01614286565b80830190507f5f000000000000000000000000000000000000000000000000000000000000008082528651614372816001850160208b01614286565b6001920191820152845161438d816002840160208901614286565b84519101906143a3816002840160208801614286565b016002019695505050505050565b600083516143c3818460208801614286565b8351908301906143d7818360208801614286565b01949350505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b60006001600160801b031980891683526020818916818501526080604085015261443960808501888a6143e0565b84810360608601528581529150808201600586901b830182018760005b888110156144e257601f1986840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18b360301811261449957600080fd5b8a01803567ffffffffffffffff8111156144b257600080fd5b8036038c13156144c157600080fd5b6144ce85828985016143e0565b958701959450505090840190600101614456565b50909c9b505050505050505050505050565b60408152600061450760408301856142b2565b90506001600160a01b03831660208301529392505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614592577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526145808583516142b2565b94509285019290850190600101614546565b5092979650505050505050565b634e487b7160e01b600052603260045260246000fd5b805160208083015191908110156145d6576000198160200360031b1b821691505b50919050565b82815260406020820152600061040e60408301846142b2565b60008351614607818460208801614286565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b6000825161463e818460208701614286565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b6000600019820361467157614671614648565b5060010190565b600060ff821660ff84168060ff0382111561469557614695614648565b019392505050565b600081518084526020808501945080840160005b838110156146cd578151875295820195908201906001016146b1565b509495945050505050565b82815260406020820152600061040e604083018461469d565b83815260606020820152600061470a606083018561469d565b905060ff83166040830152949350505050565b60006020828403121561472f57600080fd5b815167ffffffffffffffff81111561474657600080fd5b8201601f8101841361475757600080fd5b805161476561400282613fcc565b81815285602083850101111561477a57600080fd5b611794826020830160208601614286565b8481526080602082015260006147a4608083018661469d565b60ff851660408401528281036060840152612e7581856142b2565b600082198211156147d2576147d2614648565b500190565b8381526060602082015260006147f0606083018561469d565b828103604084015261480281856142b2565b9695505050505050565b838152606060208201526000614825606083018561469d565b9050826040830152949350505050565b8381526000835161484d816020850160208801614286565b80830190508351614865816020840160208801614286565b0160200195945050505050565b60008282101561488457614884614648565b500390565b838152826020820152606060408201526000611794606083018461469d565b600060ff821660ff81036148be576148be614648565b60010192915050565b600061ffff8083168185168083038211156143d7576143d7614648565b600060ff821660ff8416808210156148fe576148fe614648565b90039392505050565b600081600019048311821515161561492157614921614648565b500290565b600063ffffffff8083168185168083038211156143d7576143d7614648565b838152826020820152608060408201526000614964608083018461469d565b8281036060840152600681527f6c656e6774680000000000000000000000000000000000000000000000000000602082015260408101915050949350505050565b634e487b7160e01b600052601260045260246000fd5b8481528360208201526080604082015260006149da608083018561469d565b905060ff8316606083015295945050505050565b606081526000614a0160608301866142b2565b60208301949094525060400152919050565b600082614a2257614a226149a5565b500690565b600082614a3657614a366149a5565b50049056fea264697066735822122010ceeb8b5f9de83bf940078c2717e60ca5d870f9600190b03cdcd9e6cbb455a164736f6c634300080d0033",
143
+ "object": "0x60a0604052604051620000129062000050565b604051809103906000f0801580156200002f573d6000803e3d6000fd5b506001600160a01b03166080523480156200004957600080fd5b506200005e565b614a918062003a1a83390190565b6080516139996200008160003960008181610165015261049a01526139996000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806313861fb51461003b57806317d7de7c14610050575b600080fd5b61004e610049366004613372565b610083565b005b604080517f636f72652e6d0000000000000000000000000000000000000000000000000000815290519081900360200190f35b61008b61009e565b610093610128565b61009b610236565b50565b6100a66105ae565b6100ae610615565b6100b6610678565b6100be6106c4565b6100c6610722565b6100da60006100d361076e565b60016107a0565b6100e2610896565b6100ea6108f4565b6100f2610940565b6100fa61099e565b6101026109ea565b61010a610a48565b610112610a94565b61011a610aea565b61012660006001610b36565b565b61009b61013361076e565b604051600060248201527f636f72652e73000000000000000000000000000000000000000000000000000060448201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8116606483015260016084830152907f4c9e9f11000000000000000000000000000000000000000000000000000000009060a4015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915260016000610c1b565b604080516101e0810182527fa886545e0000000000000000000000000000000000000000000000000000000081527f31b99d890000000000000000000000000000000000000000000000000000000060208201527f096fcaa900000000000000000000000000000000000000000000000000000000918101919091527f7a58dce40000000000000000000000000000000000000000000000000000000060608201527f8ae710e90000000000000000000000000000000000000000000000000000000060808201527f3ca90f220000000000000000000000000000000000000000000000000000000060a08201527f4c9e9f110000000000000000000000000000000000000000000000000000000060c08201527fca4c1f5e0000000000000000000000000000000000000000000000000000000060e08201527f56f55a97000000000000000000000000000000000000000000000000000000006101008201527fd5933686000000000000000000000000000000000000000000000000000000006101208201527ffe86a89f000000000000000000000000000000000000000000000000000000006101408201527f6e81fd71000000000000000000000000000000000000000000000000000000006101608201527f8da798da000000000000000000000000000000000000000000000000000000006101808201527ff227e653000000000000000000000000000000000000000000000000000000006101a08201527f1e42269e000000000000000000000000000000000000000000000000000000006101c082015260005b600f8110156105aa5761059761049861076e565b7f00000000000000000000000000000000000000000000000000000000000000007f56f55a970000000000000000000000000000000000000000000000000000000060007f636f72652e7300000000000000000000000000000000000000000000000000008787600f811061050f5761050f6133f2565b60200201518888600f8110610526576105266133f2565b60200201516040517fffffffffffffffffffffffffffffffff0000000000000000000000000000000094851660248201529390921660448401527fffffffff00000000000000000000000000000000000000000000000000000000908116606484015216608482015260a4016101ce565b50806105a28161341e565b915050610484565b5050565b6000806105b9610d45565b60408051600060208201527f4e616d6573706163654f776e657200000000000000000000000000000000000060308201529294509092506105aa91015b60405160208183030381529060405261060e90613438565b8383610e0d565b60408051600060208201527f496e7374616c6c65644d6f64756c6573000000000000000000000000000000006030820152610126910160405160208183030381529060405261066390613438565b61066b610e9c565b610673610f14565b610f93565b600080610683610ff6565b60408051600060208201527f496e7374616c6c65644d6f64756c65730000000000000000000000000000000060308201529294509092506105aa91016105f6565b60408051600060208201527f5265736f757263654163636573730000000000000000000000000000000000006030820152610126910160405160208183030381529060405261071290613438565b61071a6110be565b6106736110f8565b60008061072d611177565b60408051600060208201527f5265736f7572636541636365737300000000000000000000000000000000000060308201529294509092506105aa91016105f6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c8061079d5750335b90565b60408051600280825260608201835260009260208301908036833701905050905083816000815181106107d5576107d56133f2565b6020026020010181815250508260601b6bffffffffffffffffffffffff191681600181518110610807576108076133f2565b602090810291909101810191909152604080516000818401527f5265736f75726365416363657373000000000000000000000000000000000000603082015281518082039093018352810190526108909061086190613438565b8260008560405160200161087c91151560f81b815260010190565b60405160208183030381529060405261123f565b50505050565b60408051600060208201527f53797374656d7300000000000000000000000000000000000000000000000000603082015261012691016040516020818303038152906040526108e490613438565b6108ec6112d7565b610673611356565b6000806108ff611390565b60408051600060208201527f53797374656d730000000000000000000000000000000000000000000000000060308201529294509092506105aa91016105f6565b60408051600060208201527f66756e6353656c6563746f7273000000000000000000000000000000000000006030820152610126910160405160208183030381529060405261098e90613438565b6109966114ab565b610673611570565b6000806109a96115aa565b60408051600060208201527f66756e6353656c6563746f72730000000000000000000000000000000000000060308201529294509092506105aa91016105f6565b60408051600060208201527f53797374656d526567697374727900000000000000000000000000000000000060308201526101269101604051602081830303815290604052610a3890613438565b610a40611356565b610673610e9c565b600080610a5361171b565b60408051600060208201527f53797374656d526567697374727900000000000000000000000000000000000060308201529294509092506105aa91016105f6565b60408051600060208201527f5265736f7572636554797065000000000000000000000000000000000000000060308201526101269101604051602081830303815290604052610ae290613438565b6108ec6117e3565b600080610af561181d565b60408051600060208201527f5265736f7572636554797065000000000000000000000000000000000000000060308201529294509092506105aa91016105f6565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610b6c57610b6c6133f2565b602090810291909101810191909152604080516000818401527f5265736f7572636554797065000000000000000000000000000000000000000060308201528151808203909301835281019052610c1690610bc690613438565b826000856003811115610bdb57610bdb61345f565b60405160200161087c919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b505050565b606060008487604051602001610c329291906134a1565b604051602081830303815290604052905060008085610cb9578773ffffffffffffffffffffffffffffffffffffffff168584604051610c7191906134eb565b60006040518083038185875af1925050503d8060008114610cae576040519150601f19603f3d011682016040523d82523d6000602084013e610cb3565b606091505b50610d20565b8773ffffffffffffffffffffffffffffffffffffffff1683604051610cde91906134eb565b600060405180830381855af49150503d8060008114610d19576040519150601f19603f3d011682016040523d82523d6000602084013e610d1e565b606091505b505b915091508115610d34579250610d3c915050565b805160208201fd5b95945050505050565b6040805160018082528183019092526060918291600091816020015b6060815260200190600190039081610d615790505090506040518060400160405280600581526020017f6f776e657200000000000000000000000000000000000000000000000000000081525081600081518110610dc157610dc16133f2565b6020026020010181905250806040518060400160405280600e81526020017f4e616d6573706163654f776e65720000000000000000000000000000000000008152509092509250509091565b610e156118e5565b15610e2557610c16838383611963565b6040517ffe86a89f000000000000000000000000000000000000000000000000000000008152339063fe86a89f90610e6590869086908690600401613588565b600060405180830381600087803b158015610e7f57600080fd5b505af1158015610e93573d6000803e3d6000fd5b50505050505050565b60408051600180825281830190925260009182919060208083019080368337019050509050606181600081518110610ed657610ed66133f2565b602002602001019060c5811115610eef57610eef61345f565b908160c5811115610f0257610f0261345f565b905250610f0e81611a06565b91505090565b60408051600280825260608201835260009283929190602083019080368337019050509050604f81600081518110610f4e57610f4e6133f2565b602002602001019060c5811115610f6757610f6761345f565b908160c5811115610f7a57610f7a61345f565b81525050605f81600181518110610ed657610ed66133f2565b610f9b6118e5565b15610fab57610c16838383611c60565b6040517fd5933686000000000000000000000000000000000000000000000000000000008152600481018490526024810183905260448101829052339063d593368690606401610e65565b6040805160018082528183019092526060918291600091816020015b60608152602001906001900390816110125790505090506040518060400160405280600d81526020017f6d6f64756c65416464726573730000000000000000000000000000000000000081525081600081518110611072576110726133f2565b6020026020010181905250806040518060400160405280601081526020017f496e7374616c6c65644d6f64756c6573000000000000000000000000000000008152509092509250509091565b60408051600180825281830190925260009182919060208083019080368337019050509050606081600081518110610ed657610ed66133f2565b60408051600280825260608201835260009283929190602083019080368337019050509050605f81600081518110611132576111326133f2565b602002602001019060c581111561114b5761114b61345f565b908160c581111561115e5761115e61345f565b81525050606181600181518110610ed657610ed66133f2565b6040805160018082528183019092526060918291600091816020015b60608152602001906001900390816111935790505090506040518060400160405280600681526020017f6163636573730000000000000000000000000000000000000000000000000000815250816000815181106111f3576111f36133f2565b6020026020010181905250806040518060400160405280600e81526020017f5265736f757263654163636573730000000000000000000000000000000000008152509092509250509091565b6112476118e5565b1561125d5761125884848484611ccd565b610890565b6040517f114a7266000000000000000000000000000000000000000000000000000000008152339063114a72669061129f9087908790879087906004016135f8565b600060405180830381600087803b1580156112b957600080fd5b505af11580156112cd573d6000803e3d6000fd5b5050505050505050565b60408051600280825260608201835260009283929190602083019080368337019050509050606181600081518110611311576113116133f2565b602002602001019060c581111561132a5761132a61345f565b908160c581111561133d5761133d61345f565b81525050606081600181518110610ed657610ed66133f2565b60408051600180825281830190925260009182919060208083019080368337019050509050605f81600081518110610ed657610ed66133f2565b60408051600280825260608281019093528291600091816020015b60608152602001906001900390816113ab5790505090506040518060400160405280600681526020017f73797374656d00000000000000000000000000000000000000000000000000008152508160008151811061140b5761140b6133f2565b60200260200101819052506040518060400160405280600c81526020017f7075626c696341636365737300000000000000000000000000000000000000008152508160018151811061145f5761145f6133f2565b6020026020010181905250806040518060400160405280600781526020017f53797374656d73000000000000000000000000000000000000000000000000008152509092509250509091565b6040805160038082526080820190925260009182919060208201606080368337019050509050604f816000815181106114e6576114e66133f2565b602002602001019060c58111156114ff576114ff61345f565b908160c58111156115125761151261345f565b81525050604f8160018151811061152b5761152b6133f2565b602002602001019060c58111156115445761154461345f565b908160c58111156115575761155761345f565b81525050604381600281518110610ed657610ed66133f2565b60408051600180825281830190925260009182919060208083019080368337019050509050604381600081518110610ed657610ed66133f2565b604080516003808252608082019092526060918291600091816020015b60608152602001906001900390816115c75790505090506040518060400160405280600981526020017f6e616d657370616365000000000000000000000000000000000000000000000081525081600081518110611627576116276133f2565b60200260200101819052506040518060400160405280600481526020017f6e616d65000000000000000000000000000000000000000000000000000000008152508160018151811061167b5761167b6133f2565b60200260200101819052506040518060400160405280601681526020017f73797374656d46756e6374696f6e53656c6563746f7200000000000000000000815250816002815181106116cf576116cf6133f2565b6020026020010181905250806040518060400160405280601181526020017f46756e6374696f6e53656c6563746f72730000000000000000000000000000008152509092509250509091565b6040805160018082528183019092526060918291600091816020015b60608152602001906001900390816117375790505090506040518060400160405280601081526020017f7265736f7572636553656c6563746f720000000000000000000000000000000081525081600081518110611797576117976133f2565b6020026020010181905250806040518060400160405280600e81526020017f53797374656d52656769737472790000000000000000000000000000000000008152509092509250509091565b60408051600180825281830190925260009182919060208083019080368337019050509050600081600081518110610ed657610ed66133f2565b6040805160018082528183019092526060918291600091816020015b60608152602001906001900390816118395790505090506040518060400160405280600c81526020017f7265736f7572636554797065000000000000000000000000000000000000000081525081600081518110611899576118996133f2565b6020026020010181905250806040518060400160405280600c81526020017f5265736f757263655479706500000000000000000000000000000000000000008152509092509250509091565b6000303b8082036118f857600191505090565b3073ffffffffffffffffffffffffffffffffffffffff1663a5c2f0076040518163ffffffff1660e01b815260040160006040518083038186803b15801561193e57600080fd5b505afa92505050801561194f575060015b61195b57600091505090565b600191505090565b600061196e84611eb8565b905081516000148061198b575061198481611f0d565b60ff168251145b6119dc5761199881611f0d565b82516040517ff2b2755900000000000000000000000000000000000000000000000000000000815260ff909216600483015260248201526044015b60405180910390fd5b6108908484846040516020016119f2919061362c565b604051602081830303815290604052611f31565b6000601c82511115611a30578151604051635318beb960e01b81526004016119d391815260200190565b60008060008060005b8651811015611b5c576000611a77888381518110611a5957611a596133f2565b602002602001015160c5811115611a7257611a7261345f565b611fe9565b905061ffff811615611acd578215611abb576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83611ac58161363f565b945050611ad2565b600192505b611adc818661365e565b9450611b5186611aed846004613684565b8a8581518110611aff57611aff6133f2565b602002602001015160c5811115611b1857611b1861345f565b60f81b6008820281811c7fff0000000000000000000000000000000000000000000000000000000000000090911c198416179392505050565b955050600101611a39565b506000828751611b6c919061369c565b9050600e8160ff161115611b9857604051635318beb960e01b815260ff821660048201526024016119d3565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff851660f085901b1794507fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85167dff000000000000000000000000000000000000000000000000000000000060e885901b161794507fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff85167cff0000000000000000000000000000000000000000000000000000000060e083901b16175b979650505050505050565b611c6b8260006120a1565b611c768160016120a1565b611c7f83612272565b15611cc25782611c8e8461228b565b6040517f147bbb8c0000000000000000000000000000000000000000000000000000000081526004016119d39291906136bf565b610c168383836122b6565b6000611cd885611eb8565b90507fd01f9f1368f831528fc9fe6442366b2b7d957fbfff3bcf7c24d9ab5fe51f8c4685858585604051611d0f94939291906135f8565b60405180910390a16000611d228661242d565b905060005b8151811015611dd3576000828281518110611d4457611d446133f2565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff1663469b7ee2898989896040518563ffffffff1660e01b8152600401611d8d94939291906135f8565b600060405180830381600087803b158015611da757600080fd5b505af1158015611dbb573d6000803e3d6000fd5b50505050508080611dcb9061341e565b915050611d27565b50611ddd826124f5565b60ff168460ff161015611dfc57611df78686848787612506565b611e09565b611e0986868487876125ac565b60005b8151811015610e93576000828281518110611e2957611e296133f2565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16636b3d7d5f898989896040518563ffffffff1660e01b8152600401611e7294939291906135f8565b600060405180830381600087803b158015611e8c57600080fd5b505af1158015611ea0573d6000803e3d6000fd5b50505050508080611eb09061341e565b915050611e0c565b6000611ec3826125e9565b905080611f085781611ed48361228b565b6040517fd623a70d0000000000000000000000000000000000000000000000000000000081526004016119d39291906136bf565b919050565b6000611f1882612685565b611f21836124f5565b611f2b91906136d8565b92915050565b6000611f3d8383612691565b60408051600180825281830190925291925060009190602080830190803683370190505090508481600081518110611f7757611f776133f2565b60209081029190910181019190915260408051676d756473746f726560c01b818401527f53746f72654d657461646174610000000000000000000000000000000000000060308201528151808203909301835281019052611fe290611fdb90613438565b8284612747565b5050505050565b6000808260c5811115611ffe57611ffe61345f565b60ff169050602081101561201e57612017816001613684565b9392505050565b604081101561203e576020612034826001613684565b61201791906136fd565b6060811015612054576040612034826001613684565b60608360c58111156120685761206861345f565b036120765750600192915050565b60618360c581111561208a5761208a61345f565b036120985750601492915050565b50600092915050565b801580156120ad575081155b156120ce57604051635318beb960e01b8152600060048201526024016119d3565b60006120d983612685565b60ff169050600e81111561210357604051635318beb960e01b8152600481018290526024016119d3565b600061210e846124f5565b60ff169050601c61211f8383613684565b111561214b5761212f8282613684565b604051635318beb960e01b81526004016119d391815260200190565b60008060005b61215b8585613684565b811015612223576000612182612171898461279f565b60c5811115611a7257611a7261345f565b11156121d3578381106121c1576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826121cb8161341e565b93505061221b565b8381101561220d576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816122178161341e565b9250505b600101612151565b5082821461224757604051635318beb960e01b8152600481018390526024016119d3565b83811461226a57604051635318beb960e01b8152600481018290526024016119d3565b505050505050565b6000612284612280836125e9565b1590565b1592915050565b6060816040516020016122a091815260200190565b6040516020818303038152906040529050919050565b6040805160018082528183019092526000916020808301908036833701905050905083816000815181106122ec576122ec6133f2565b60209081029190910181019190915260408051676d756473746f726560c01b928101929092527f736368656d610000000000000000000000000000000000000000000000000000603083015260009161235f91015b60405160208183030381529060405261235990613438565b836127cb565b8481559050612377612372826020613684565b849055565b60408051676d756473746f726560c01b60208201527f736368656d61000000000000000000000000000000000000000000000000000060308201527f912af873e852235aae78a1d25ae9bb28b616a67c36898c53a14fd8184504ee3291016040516020818303038152906040526123ed90613438565b83868660408051602081019390935282015260600160408051601f198184030181529082905261241e939291613714565b60405180910390a15050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612467576124676133f2565b60209081029190910181019190915260408051676d756473746f726560c01b818401527f486f6f6b73000000000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000906124d6906124ce90613438565b836000612821565b90506124ed6124e882600084516128c7565b612957565b949350505050565b6000601082901b5b60f81c92915050565b60006125158460ff851661279f565b9050815161252e8260c5811115611a7257611a7261345f565b14612585576125488160c5811115611a7257611a7261345f565b82516040517f521b3d33000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016119d3565b600061259187876127cb565b9050600061259f8686612968565b90506112cd8282866129ab565b60006125b7846124f5565b6125c1908461369c565b90506125d086868385516129c0565b60006125dd8787846129f2565b9050610e938184612a4b565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612622576126226133f2565b60209081029190910181019190915260408051676d756473746f726560c01b928101929092527f736368656d610000000000000000000000000000000000000000000000000000603083015260009161267b9101612341565b90506124ed815490565b6000601882901b6124fd565b604080516002808252606080830184529260009291906020830190803683370190505090508351816000815181106126cb576126cb6133f2565b602002602001019061ffff16908161ffff16815250508251816001815181106126f6576126f66133f2565b602002602001019061ffff16908161ffff1681525050600061271782612a57565b905080858560405160200161272e9392919061373f565b6040516020818303038152906040529250505092915050565b61274f6118e5565b1561275f57610c16838383612b34565b6040517f8ed41f2f0000000000000000000000000000000000000000000000000000000081523390638ed41f2f90610e6590869086908690600401613714565b60006127b7836127b0846004613684565b6008021b90565b60f81c60c58111156120175761201761345f565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d983836040516020016128029392919061377c565b60408051601f1981840301815291905280516020909101209392505050565b606061282b6118e5565b156128425761283b848484612d96565b9050612017565b6040517fd03edb8c000000000000000000000000000000000000000000000000000000008152339063d03edb8c906128829087908790879060040161379b565b600060405180830381865afa15801561289f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261283b91908101906137c7565b60008183111580156128da575083518211155b612916578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016119d393929190613835565b602084016129248482613684565b9050600061293285856136fd565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006120178360146000612db1565b600080805b8360ff168110156129a357612985612171868361279f565b61298f9083613684565b91508061299b8161341e565b91505061296d565b509392505050565b60006020820190506108908484838551612ef4565b60006129cc8585612fb2565b905060006129d8825490565b90506129e88160ff861685612fe9565b808355905061226a565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9848484604051602001612a2b949392919061385a565b60408051601f198184030181529190528051602090910120949350505050565b6105aa826000836129ab565b6000806000805b8451811015612b0957612ad483612a7683600261388d565b612a81906004613684565b878481518110612a9357612a936133f2565b602002602001015160f01b6008820281811c7fffff00000000000000000000000000000000000000000000000000000000000090911c198416179392505050565b9250848181518110612ae857612ae86133f2565b602002602001015161ffff1682612aff91906138ac565b9150600101612a5e565b507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff821660e082901b176124ed565b6000612b3f84611eb8565b90506000612b4d8260f01c90565b905080600080612b5c85612685565b60ff161115612b8a57506020848301015160e081901c612b7d906020613684565b612b879083613684565b91505b84518214612bd15784516040517f521b3d330000000000000000000000000000000000000000000000000000000081526119d3918491600401918252602082015260400190565b7f912af873e852235aae78a1d25ae9bb28b616a67c36898c53a14fd8184504ee32878787604051612c0493929190613714565b60405180910390a16000612c178861242d565b905060005b8151811015612cc6576000828281518110612c3957612c396133f2565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff166382b6745f8b8b8b6040518463ffffffff1660e01b8152600401612c8093929190613714565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b50505050508080612cbe9061341e565b915050612c1c565b506000612cd389896127cb565b905060208701612ce68260008389612ef4565b612cf1866020613684565b612cfb9082613684565b9050612d0687612685565b60ff16600003612d1c5750505050505050505050565b6000612d288b8b612fb2565b858155905060008060005b612d3c8b612685565b60ff168160ff161015612d8657612d548e8e836129f2565b9250612d638860ff83166130c5565b9150612d728360008785612ef4565b612d7c8286613684565b9450600101612d33565b5050505050505050505050505050565b60606000612da385611eb8565b9050610d3c858585846130f7565b60606000612dbf8560801c90565b90506fffffffffffffffffffffffffffffffff8516600084612df757612de686600861388d565b612df2906101006136fd565b612dfa565b60005b90506000868381612e0d57612e0d6138cb565b049050612e1a87846138e1565b15612ea7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f756e7061636b546f41727261793a207061636b65644c656e677468206d75737460448201527f2062652061206d756c7469706c65206f6620656c656d656e7453697a6500000060648201526084016119d3565b602080820201604051955080860160405250808552600060208601855b83831015612ee6578051851c8252600192909201916020909101908901612ec4565b505050505050509392505050565b602083048401935060208381612f0c57612f0c6138cb565b0692508215612f655760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311612f50575050610890565b612f5b600187613684565b9550509182019190035b60208110612f8e5781518455612f7c600185613684565b935060209190910190601f1901612f65565b8015610890576000600019600883021c198554845182169119161785555050505050565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9838360405160200161280293929190613903565b60008381612ff78260e01c90565b90506000613008878760ff166130c5565b905080851061302c5761301b81866136fd565b6130259083613684565b9150613043565b61303685826136fd565b61304090836136fd565b91505b600061305087600261388d565b61305b906004613684565b90507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1793507fffff0000000000000000000000000000000000000000000000000000000000006008820290811c19851660f088901b90911c175b98975050505050505050565b6000806130d383600261388d565b6130de906004613684565b90506130ec84826008021b90565b60f01c949350505050565b6060613102826124f5565b60ff168360ff1610156131225761311b8585858561312e565b90506124ed565b61311b8585858561318e565b6060600061313f8360ff861661279f565b905060006131588260c5811115611a7257611a7261345f565b9050600061316688886127cb565b905060006131748688612968565b90506131818284836131db565b9998505050505050505050565b6060600061319b836124f5565b6131a5908561369c565b905060006131b48787846129f2565b905060006131cf8360ff166131c98a8a613233565b906130c5565b90506130b98282613240565b60608267ffffffffffffffff8111156131f6576131f6613303565b6040519080825280601f01601f191660200182016040528015613220576020820181803683370190505b509050602081016129a38585858461324e565b60008061267b8484612fb2565b6060612017838360006131db565b602082048401935060208281613266576132666138cb565b06915081156132b75760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116132a2575050610890565b6132ad600187613684565b9550509283900392015b602083106132df57835481526132ce600185613684565b9350601f19909201916020016132b7565b8215610890576000600019600885021c198251865482169119161782525050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561334257613342613303565b604052919050565b600067ffffffffffffffff82111561336457613364613303565b50601f01601f191660200190565b60006020828403121561338457600080fd5b813567ffffffffffffffff81111561339b57600080fd5b8201601f810184136133ac57600080fd5b80356133bf6133ba8261334a565b613319565b8181528560208385010111156133d457600080fd5b81602084016020830137600091810160200191909152949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019820361343157613431613408565b5060010190565b80516020808301519190811015613459576000198160200360031b1b821691505b50919050565b634e487b7160e01b600052602160045260246000fd5b60005b83811015613490578181015183820152602001613478565b838111156108905750506000910152565b600083516134b3818460208801613475565b60609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190920190815260140192915050565b600082516134fd818460208701613475565b9190910192915050565b6000815180845261351f816020860160208601613475565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b8581101561357b578284038952613569848351613507565b98850198935090840190600101613551565b5091979650505050505050565b8381526060602082015260006135a16060830185613507565b82810360408401526135b38185613533565b9695505050505050565b600081518084526020808501945080840160005b838110156135ed578151875295820195908201906001016135d1565b509495945050505050565b84815260806020820152600061361160808301866135bd565b60ff851660408401528281036060840152611c558185613507565b6020815260006120176020830184613533565b600060ff821660ff810361365557613655613408565b60010192915050565b600061ffff80831681851680830382111561367b5761367b613408565b01949350505050565b6000821982111561369757613697613408565b500190565b600060ff821660ff8416808210156136b6576136b6613408565b90039392505050565b8281526040602082015260006124ed6040830184613507565b600060ff821660ff84168060ff038211156136f5576136f5613408565b019392505050565b60008282101561370f5761370f613408565b500390565b83815260606020820152600061372d60608301856135bd565b82810360408401526135b38185613507565b83815260008351613757816020850160208801613475565b8083019050835161376f816020840160208801613475565b0160200195945050505050565b838152826020820152606060408201526000610d3c60608301846135bd565b8381526060602082015260006137b460608301856135bd565b905060ff83166040830152949350505050565b6000602082840312156137d957600080fd5b815167ffffffffffffffff8111156137f057600080fd5b8201601f8101841361380157600080fd5b805161380f6133ba8261334a565b81815285602083850101111561382457600080fd5b610d3c826020830160208601613475565b6060815260006138486060830186613507565b60208301949094525060400152919050565b84815283602082015260806040820152600061387960808301856135bd565b905060ff8316606083015295945050505050565b60008160001904831182151516156138a7576138a7613408565b500290565b600063ffffffff80831681851680830382111561367b5761367b613408565b634e487b7160e01b600052601260045260246000fd5b6000826138fe57634e487b7160e01b600052601260045260246000fd5b500690565b83815282602082015260806040820152600061392260808301846135bd565b8281036060840152600681527f6c656e677468000000000000000000000000000000000000000000000000000060208201526040810191505094935050505056fea2646970667358221220c82ab3a39f0d8f00c3fbf56a3b1ece823cd2cbecd8d1e12278e6e2bdba17d7db64736f6c634300080d0033608060405234801561001057600080fd5b50614a71806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80637a58dce411610097578063ca4c1f5e11610066578063ca4c1f5e14610211578063d593368614610224578063f227e65314610237578063fe86a89f1461024a57600080fd5b80637a58dce4146101c55780638ae710e9146101d85780638da798da146101eb578063a886545e146101fe57600080fd5b80633ca90f22116100d35780633ca90f22146101485780634c9e9f111461015b57806356f55a971461016e5780636e81fd71146101b257600080fd5b8063096fcaa9146100fa5780631e42269e1461010f57806331b99d8914610122575b600080fd5b61010d610108366004613d31565b61025d565b005b61010d61011d366004613ddb565b6102c8565b610135610130366004613e26565b6102e9565b6040519081526020015b60405180910390f35b61010d610156366004613ddb565b505050565b610135610169366004613e6c565b610416565b61018161017c366004613efd565b610537565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161013f565b61010d6101c0366004613f55565b6105f2565b61010d6101d3366004613ddb565b6106de565b61010d6101e6366004613ddb565b610751565b61010d6101f9366004614032565b61076c565b61010d61020c366004614096565b61086f565b61018161021f3660046140d3565b6108dd565b61010d61023236600461415c565b610a28565b61010d610245366004613ddb565b610ab6565b61010d610258366004614188565b610ad3565b6000610271878761026c610b42565b610b74565b90506102bf8186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506102ba9250879150889050614202565b610c02565b50505050505050565b60006102d7848461026c610b42565b90506102e38183610ca0565b50505050565b60006001600160801b03198516608085901c1790506001600160801b031984166103525761031681610d67565b6040517fe56728c000000000000000000000000000000000000000000000000000000000815260040161034991906142de565b60405180910390fd5b60006103676001600160801b03198716610e3b565b6003811115610378576103786142f1565b0361038b576103868561086f565b61039b565b61039985600061026c610b42565b505b60006103a682610e3b565b60038111156103b7576103b76142f1565b146103f8576103c581610d67565b6040517f0f2fac6100000000000000000000000000000000000000000000000000000000815260040161034991906142de565b610403816002610ef7565b61040e818484610feb565b949350505050565b60006001600160801b03198516608085901c1790506001600160801b031984166104435761031681610d67565b61044c83611058565b1561048e576040517fb86487840000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610349565b60006104a36001600160801b03198716610e3b565b60038111156104b4576104b46142f1565b036104c7576104c28561086f565b6104d7565b6104d585600061026c610b42565b505b60006104e282610e3b565b60038111156104f3576104f36142f1565b14610501576103c581610d67565b61050c816003610ef7565b6105178184846110fb565b61052183826111d3565b61040e6001600160801b0319861684600161128b565b6000610546818061026c610b42565b50600061055284611367565b9050600061055f8561140a565b90506001600160801b0319821615801561058157506001600160801b03198116155b6105db576040517f9b2a16a90000000000000000000000000000000000000000000000000000000081527fffffffff0000000000000000000000000000000000000000000000000000000086166004820152602401610349565b6105e7858888876114c8565b509295945050505050565b600061060d6f636f72652e73000000000000000000006115c8565b5090506102e361061b610b42565b827f8ae710e900000000000000000000000000000000000000000000000000000000866106488860801b90565b6040516001600160801b03199283166024820152911660448201526001600160a01b03871660648201526084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526001600061168d565b60006106f96001600160801b03198516608085901c17610e3b565b9050600281600381111561070f5761070f6142f1565b0361071f576102e3848484610751565b6003816003811115610733576107336142f1565b146102e3576103166001600160801b03198516608085901c17610d67565b6000610760848461026c610b42565b90506102e3818361179d565b6107f8610777610b42565b836313861fb560e01b8460405160240161079191906142de565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915260008061168d565b5061086b826001600160a01b03166317d7de7c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085e9190614307565b82516020840120846117a7565b5050565b6001600160801b03198116600061088582610e3b565b6003811115610896576108966142f1565b146108a4576103c581610d67565b6108b96001600160801b031983166001610ef7565b6108ca826108c5610b42565b61186b565b61086b816108d6610b42565b600161128b565b60006108ec858561026c610b42565b5060006108f886611937565b9050600061090586611937565b90508181868660405160200161091e9493929190614324565b604051602081830303815290604052805190602001209250600061094184611367565b9050600061094e8561140a565b90506001600160801b0319821615158061097157506001600160801b0319811615155b156109cc576040517f9b2a16a90000000000000000000000000000000000000000000000000000000081527fffffffff0000000000000000000000000000000000000000000000000000000086166004820152602401610349565b600087876040516020016109e19291906143b1565b604051602081830303815290604052905060008151600014610a095781516020830120610a0c565b60005b9050610a1a878c8c846114c8565b505050505050949350505050565b6000610a436f636f72652e73000000000000000000006115c8565b509050610aaf610a51610b42565b827f31b99d890000000000000000000000000000000000000000000000000000000087610a7e8960801b90565b6040516001600160801b0319928316602482015291166044820152606481018890526084810187905260a401610676565b5050505050565b6000610ac5848461026c610b42565b90506102e38183600161128b565b6000610aee6f636f72652e73000000000000000000006115c8565b5090506102bf610afc610b42565b827f096fcaa90000000000000000000000000000000000000000000000000000000089610b298b60801b90565b8a8a8a8a6040516024016106769695949392919061440b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c80610b715750335b90565b608082901c6001600160801b03198416176001600160a01b0382163014801590610bb85750816001600160a01b0316610bac856119b5565b6001600160a01b031614155b15610bfb57610bc681610d67565b826040517fe64c03480000000000000000000000000000000000000000000000000000000081526004016103499291906144f4565b9392505050565b6000610c0d84611a5b565b9050815160001480610c2a5750610c2381611ab0565b60ff168251145b610c7657610c3781611ab0565b82516040517ff2b2755900000000000000000000000000000000000000000000000000000000815260ff90921660048301526024820152604401610349565b6102e3848484604051602001610c8c919061451f565b604051602081830303815290604052611ad4565b6040805160028082526060820183526000926020830190803683370190505090508281600081518110610cd557610cd561459f565b6020026020010181815250508160601b6bffffffffffffffffffffffff191681600181518110610d0757610d0761459f565b602090810291909101810191909152604080516000818401527f5265736f757263654163636573730000000000000000000000000000000000006030820152815180820390930183528101905261015690610d61906145b5565b82611b70565b606081608081901b6001600160801b0319821615610d855781610da7565b7f524f4f545f4e414d4553504143450000000000000000000000000000000000005b6001600160801b0319821615610dbd5781610ddf565b7f524f4f545f4e414d4500000000000000000000000000000000000000000000005b6040516001600160801b031992831660208201527f2f0000000000000000000000000000000000000000000000000000000000000060308201529116603182015260410160405160208183030381529060405292505050919050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610e7457610e7461459f565b6020908102919091018101919091526040805160009281018390527f5265736f757263655479706500000000000000000000000000000000000000006030820152610edb91015b604051602081830303815290604052610ed3906145b5565b836000611bf3565b602081015190915060f81c600381111561040e5761040e6142f1565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610f2d57610f2d61459f565b602090810291909101810191909152604080516000818401527f5265736f757263655479706500000000000000000000000000000000000000006030820152815180820390930183528101905261015690610f87906145b5565b826000856003811115610f9c57610f9c6142f1565b604051602001610fd7919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b604051602081830303815290604052611c99565b610ff6826000611d31565b611001816001611d31565b61100a83611eff565b1561104d578261101984611f18565b6040517f147bbb8c0000000000000000000000000000000000000000000000000000000081526004016103499291906145dc565b610156838383611f43565b604080516001808252818301909252600091829190602080830190803683370190505090508260601b6bffffffffffffffffffffffff1916816000815181106110a3576110a361459f565b6020908102919091018101919091526040805160009281018390527f53797374656d526567697374727900000000000000000000000000000000000060308201526110ee9101610ebb565b602081015190915061040e565b60408051606084901b6bffffffffffffffffffffffff191660208083019190915283151560f81b603483015282518083036015018152600160358401818152607585019095529093600093909260559091019080368337019050509050848160008151811061116c5761116c61459f565b602090810291909101810191909152604080516000928101929092527f53797374656d73000000000000000000000000000000000000000000000000006030830152610aaf91015b6040516020818303038152906040526111cc906145b5565b82846120ba565b604080516001808252818301909252600091602080830190803683370190505090508260601b6bffffffffffffffffffffffff19168160008151811061121b5761121b61459f565b602090810291909101810191909152604080516000818401527f53797374656d52656769737472790000000000000000000000000000000000006030820152815180820390930183528101905261015690611275906145b5565b82600085604051602001610fd791815260200190565b60408051600280825260608201835260009260208301908036833701905050905083816000815181106112c0576112c061459f565b6020026020010181815250508260601b6bffffffffffffffffffffffff1916816001815181106112f2576112f261459f565b602090810291909101810191909152604080516000818401527f5265736f75726365416363657373000000000000000000000000000000000000603082015281518082039093018352810190526102e39061134c906145b5565b82600085604051602001610fd791151560f81b815260010190565b60408051600180825281830190925260009182919060208083019080368337019050509050827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916816000815181106113bf576113bf61459f565b6020908102919091018101919091526040805160009281018390527f66756e6353656c6563746f72730000000000000000000000000000000000000060308201526110ee9101610ebb565b60408051600180825281830190925260009182919060208083019080368337019050509050827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916816000815181106114625761146261459f565b6020908102919091018101919091526040805160009281018390527f66756e6353656c6563746f72730000000000000000000000000000000000000060308201526110ee91016040516020818303038152906040526114c0906145b5565b836001611bf3565b604080516001600160801b031985811660208084019190915290851660308301527fffffffff0000000000000000000000000000000000000000000000000000000084168284015282516024818403018152600160448401818152608485019095529093600093909260649091019080368337019050509050857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916816000815181106115745761157461459f565b602090810291909101810191909152604080516000928101929092527f66756e6353656c6563746f72730000000000000000000000000000000000000060308301526115c091016111b4565b505050505050565b604080516001808252818301909252600091829182916020808301908036833701905050905083816000815181106116025761160261459f565b6020908102919091018101919091526040805160009281018390527f53797374656d7300000000000000000000000000000000000000000000000000603082015261166e9101604051602081830303815290604052611660906145b5565b83611669612140565b6121fd565b6020810151603482015191925060601c9060f81c935093505050915091565b6060600084876040516020016116a49291906145f5565b60405160208183030381529060405290506000808561171e57876001600160a01b031685846040516116d6919061462c565b60006040518083038185875af1925050503d8060008114611713576040519150601f19603f3d011682016040523d82523d6000602084013e611718565b606091505b50611778565b876001600160a01b031683604051611736919061462c565b600060405180830381855af49150503d8060008114611771576040519150601f19603f3d011682016040523d82523d6000602084013e611776565b606091505b505b91509150811561178c579250611794915050565b805160208201fd5b95945050505050565b61086b8282612257565b60006117b282612329565b6040805160028082526060820183529293506000929091602083019080368337019050509050846fffffffffffffffffffffffffffffffff1916816000815181106117ff576117ff61459f565b602002602001018181525050838160018151811061181f5761181f61459f565b602090810291909101810191909152604080516000928101929092527f496e7374616c6c65644d6f64756c6573000000000000000000000000000000006030830152610aaf91016111b4565b60408051600180825281830190925260009160208083019080368337019050509050826fffffffffffffffffffffffffffffffff1916816000815181106118b4576118b461459f565b602090810291909101810191909152604080516000818401527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526101569061190e906145b5565b6040516bffffffffffffffffffffffff19606086901b1660208201528390600090603401610fd7565b606060005b601081101561198e576001600160801b03198316600882021b7fff00000000000000000000000000000000000000000000000000000000000000161561198e57806119868161465e565b91505061193c565b604080516001600160801b031985166020820152815160309091019091528181528061040e565b60408051600180825281830190925260009182919060208083019080368337019050509050826fffffffffffffffffffffffffffffffff191681600081518110611a0157611a0161459f565b6020908102919091018101919091526040805160009281018390527f4e616d6573706163654f776e65720000000000000000000000000000000000006030820152611a4c9101610ebb565b6020015160601c949350505050565b6000611a668261234e565b905080611aab5781611a7783611f18565b6040517fd623a70d0000000000000000000000000000000000000000000000000000000081526004016103499291906145dc565b919050565b6000611abb826123ea565b611ac4836123fb565b611ace9190614678565b92915050565b6000611ae08383612407565b60408051600180825281830190925291925060009190602080830190803683370190505090508481600081518110611b1a57611b1a61459f565b60209081029190910181019190915260408051676d756473746f726560c01b928101929092527f53746f72654d65746164617461000000000000000000000000000000000000006030830152610aaf91016111b4565b611b786124bd565b15611b875761086b828261252e565b6040517f505a181d000000000000000000000000000000000000000000000000000000008152339063505a181d90611bc590859085906004016146d8565b600060405180830381600087803b158015611bdf57600080fd5b505af11580156115c0573d6000803e3d6000fd5b6060611bfd6124bd565b15611c1457611c0d8484846126b7565b9050610bfb565b6040517fd03edb8c000000000000000000000000000000000000000000000000000000008152339063d03edb8c90611c54908790879087906004016146f1565b600060405180830381865afa158015611c71573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c0d919081019061471d565b611ca16124bd565b15611cb757611cb2848484846126d2565b6102e3565b6040517f114a7266000000000000000000000000000000000000000000000000000000008152339063114a726690611cf990879087908790879060040161478b565b600060405180830381600087803b158015611d1357600080fd5b505af1158015611d27573d6000803e3d6000fd5b5050505050505050565b80158015611d3d575081155b15611d5e57604051635318beb960e01b815260006004820152602401610349565b6000611d69836123ea565b60ff169050600e811115611d9357604051635318beb960e01b815260048101829052602401610349565b6000611d9e846123fb565b60ff169050601c611daf83836147bf565b1115611ddb57611dbf82826147bf565b604051635318beb960e01b815260040161034991815260200190565b60008060005b611deb85856147bf565b811015611eb8576000611e17611e0189846128a3565b60c5811115611e1257611e126142f1565b6128cf565b1115611e6857838110611e56576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82611e608161465e565b935050611eb0565b83811015611ea2576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81611eac8161465e565b9250505b600101611de1565b50828214611edc57604051635318beb960e01b815260048101839052602401610349565b8381146115c057604051635318beb960e01b815260048101829052602401610349565b6000611f11611f0d8361234e565b1590565b1592915050565b606081604051602001611f2d91815260200190565b6040516020818303038152906040529050919050565b604080516001808252818301909252600091602080830190803683370190505090508381600081518110611f7957611f7961459f565b60209081029190910181019190915260408051676d756473746f726560c01b928101929092527f736368656d6100000000000000000000000000000000000000000000000000006030830152600091611fec91015b604051602081830303815290604052611fe6906145b5565b83612980565b8481559050612004611fff8260206147bf565b849055565b60408051676d756473746f726560c01b60208201527f736368656d61000000000000000000000000000000000000000000000000000060308201527f912af873e852235aae78a1d25ae9bb28b616a67c36898c53a14fd8184504ee32910160405160208183030381529060405261207a906145b5565b83868660408051602081019390935282015260600160408051601f19818403018152908290526120ab9392916147d7565b60405180910390a15050505050565b6120c26124bd565b156120d2576101568383836129d6565b6040517f8ed41f2f0000000000000000000000000000000000000000000000000000000081523390638ed41f2f90612112908690869086906004016147d7565b600060405180830381600087803b15801561212c57600080fd5b505af11580156102bf573d6000803e3d6000fd5b6040805160028082526060820183526000928392919060208301908036833701905050905060618160008151811061217a5761217a61459f565b602002602001019060c5811115612193576121936142f1565b908160c58111156121a6576121a66142f1565b815250506060816001815181106121bf576121bf61459f565b602002602001019060c58111156121d8576121d86142f1565b908160c58111156121eb576121eb6142f1565b9052506121f781612c2b565b91505090565b60606122076124bd565b1561221757611c0d848484612e80565b6040517f419b58fd000000000000000000000000000000000000000000000000000000008152339063419b58fd90611c549087908790879060040161480c565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061228d5761228d61459f565b60209081029190910181019190915260408051676d756473746f726560c01b818401527f486f6f6b7300000000000000000000000000000000000000000000000000000060308201528151808203909301835281019052610156906122f1906145b5565b6040516bffffffffffffffffffffffff19606086901b1660208201528390600090603401604051602081830303815290604052612fe5565b604051606082811b6bffffffffffffffffffffffff1916602083015290603401611f2d565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106123875761238761459f565b60209081029190910181019190915260408051676d756473746f726560c01b928101929092527f736368656d61000000000000000000000000000000000000000000000000000060308301526000916123e09101611fce565b905061040e815490565b6000601882901b5b60f81c92915050565b6000601082901b6123f2565b604080516002808252606080830184529260009291906020830190803683370190505090508351816000815181106124415761244161459f565b602002602001019061ffff16908161ffff168152505082518160018151811061246c5761246c61459f565b602002602001019061ffff16908161ffff1681525050600061248d82613040565b90508085856040516020016124a493929190614835565b6040516020818303038152906040529250505092915050565b6000303b8082036124d057600191505090565b306001600160a01b031663a5c2f0076040518163ffffffff1660e01b815260040160006040518083038186803b15801561250957600080fd5b505afa92505050801561251a575060015b61252657600091505090565b600191505090565b600061253983611a5b565b90507f2cc8610b80ef19409ae51ecbdd9c137960fb22ae9ef2d817d36ec1b685d68ecd838360405161256c9291906146d8565b60405180910390a1600061257f8461311d565b905060005b815181101561261f5760008282815181106125a1576125a161459f565b60200260200101519050806001600160a01b031663b51fef6c87876040518363ffffffff1660e01b81526004016125d99291906146d8565b600060405180830381600087803b1580156125f357600080fd5b505af1158015612607573d6000803e3d6000fd5b505050505080806126179061465e565b915050612584565b50600061262c8585612980565b905061268681600061263e8660f01c90565b67ffffffffffffffff81111561265657612656613f85565b6040519080825280601f01601f191660200182016040528015612680576020820181803683370190505b506131c7565b61268f836123ea565b60ff166000036126a0575050505050565b60006126ac86866131dc565b6000815590506115c0565b606060006126c485611a5b565b905061179485858584613213565b60006126dd85611a5b565b90507fd01f9f1368f831528fc9fe6442366b2b7d957fbfff3bcf7c24d9ab5fe51f8c4685858585604051612714949392919061478b565b60405180910390a160006127278661311d565b905060005b81518110156127cb5760008282815181106127495761274961459f565b60200260200101519050806001600160a01b031663469b7ee2898989896040518563ffffffff1660e01b8152600401612785949392919061478b565b600060405180830381600087803b15801561279f57600080fd5b505af11580156127b3573d6000803e3d6000fd5b505050505080806127c39061465e565b91505061272c565b506127d5826123fb565b60ff168460ff1610156127f4576127ef868684878761324a565b612801565b61280186868487876132f0565b60005b81518110156102bf5760008282815181106128215761282161459f565b60200260200101519050806001600160a01b0316636b3d7d5f898989896040518563ffffffff1660e01b815260040161285d949392919061478b565b600060405180830381600087803b15801561287757600080fd5b505af115801561288b573d6000803e3d6000fd5b5050505050808061289b9061465e565b915050612804565b60006128bb836128b48460046147bf565b6008021b90565b60f81c60c5811115610bfb57610bfb6142f1565b6000808260c58111156128e4576128e46142f1565b60ff16905060208110156128fd57610bfb8160016147bf565b604081101561291d5760206129138260016147bf565b610bfb9190614872565b60608110156129335760406129138260016147bf565b60608360c5811115612947576129476142f1565b036129555750600192915050565b60618360c5811115612969576129696142f1565b036129775750601492915050565b50600092915050565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d983836040516020016129b793929190614889565b60408051601f1981840301815291905280516020909101209392505050565b60006129e184611a5b565b905060006129ef8260f01c90565b9050806000806129fe856123ea565b60ff161115612a2c57506020848301015160e081901c612a1f9060206147bf565b612a2990836147bf565b91505b84518214612a735784516040517f521b3d33000000000000000000000000000000000000000000000000000000008152610349918491600401918252602082015260400190565b7f912af873e852235aae78a1d25ae9bb28b616a67c36898c53a14fd8184504ee32878787604051612aa6939291906147d7565b60405180910390a16000612ab98861311d565b905060005b8151811015612b5b576000828281518110612adb57612adb61459f565b60200260200101519050806001600160a01b03166382b6745f8b8b8b6040518463ffffffff1660e01b8152600401612b15939291906147d7565b600060405180830381600087803b158015612b2f57600080fd5b505af1158015612b43573d6000803e3d6000fd5b50505050508080612b539061465e565b915050612abe565b506000612b688989612980565b905060208701612b7b826000838961332d565b612b868660206147bf565b612b9090826147bf565b9050612b9b876123ea565b60ff16600003612bb15750505050505050505050565b6000612bbd8b8b6131dc565b858155905060008060005b612bd18b6123ea565b60ff168160ff161015612c1b57612be98e8e836133eb565b9250612bf88860ff8316613444565b9150612c07836000878561332d565b612c1182866147bf565b9450600101612bc8565b5050505050505050505050505050565b6000601c82511115612c55578151604051635318beb960e01b815260040161034991815260200190565b60008060008060005b8651811015612d7c576000612c97888381518110612c7e57612c7e61459f565b602002602001015160c5811115611e1257611e126142f1565b905061ffff811615612ced578215612cdb576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83612ce5816148a8565b945050612cf2565b600192505b612cfc81866148c7565b9450612d7186612d0d8460046147bf565b8a8581518110612d1f57612d1f61459f565b602002602001015160c5811115612d3857612d386142f1565b60f81b6008820281811c7fff0000000000000000000000000000000000000000000000000000000000000090911c198416179392505050565b955050600101612c5e565b506000828751612d8c91906148e4565b9050600e8160ff161115612db857604051635318beb960e01b815260ff82166004820152602401610349565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff851660f085901b1794507fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85167dff000000000000000000000000000000000000000000000000000000000060e885901b161794507fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff85167cff0000000000000000000000000000000000000000000000000000000060e083901b16175b979650505050505050565b60606000612e8e8360f01c90565b905080600080612e9d866123ea565b60ff1690508015612ee857612eb28888613476565b91506000612ec08360e01c90565b1115612ee857612ed08260e01c90565b612edb9060206147bf565b612ee590846147bf565b92505b60008367ffffffffffffffff811115612f0357612f03613f85565b6040519080825280601f01601f191660200182016040528015612f2d576020820181803683370190505b50905060208101612f408a8a8884613483565b612f4a8460e01c90565b600003612f5e57509450610bfb9350505050565b612f6886826147bf565b8481529050612f786020826147bf565b905060005b838160ff161015612fd6576000612f958c8c846133eb565b90506000612fa68760ff8516613444565b9050612fb582826000876134a0565b612fbf81856147bf565b935050508080612fce906148a8565b915050612f7d565b50909998505050505050505050565b612fed6124bd565b15612ffe57611cb284848484613555565b6040517f0c1a60000000000000000000000000000000000000000000000000000000000081523390630c1a600090611cf990879087908790879060040161478b565b6000806000805b84518110156130f2576130bd8361305f836002614907565b61306a9060046147bf565b87848151811061307c5761307c61459f565b602002602001015160f01b6008820281811c7fffff00000000000000000000000000000000000000000000000000000000000090911c198416179392505050565b92508481815181106130d1576130d161459f565b602002602001015161ffff16826130e89190614926565b9150600101613047565b507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff821660e082901b1761040e565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106131575761315761459f565b60209081029190910181019190915260408051676d756473746f726560c01b928101929092527f486f6f6b7300000000000000000000000000000000000000000000000000000060308301526000916131b09101610ebb565b905061040e6131c28260008451613777565b613807565b60006020820190506102e3848483855161332d565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d983836040516020016129b793929190614945565b606061321e826123fb565b60ff168360ff16101561323e5761323785858585613818565b905061040e565b61323785858585613878565b60006132598460ff85166128a3565b905081516132728260c5811115611e1257611e126142f1565b146132c95761328c8160c5811115611e1257611e126142f1565b82516040517f521b3d3300000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610349565b60006132d58787612980565b905060006132e386866138d1565b9050611d278282866131c7565b60006132fb846123fb565b61330590846148e4565b90506133148686838551613914565b60006133218787846133eb565b90506102bf8184613946565b602083048401935060208381613345576133456149a5565b069250821561339e5760208390036000600019600884021c1990506008850281811c91508451811c90508119875416828216178755508183116133895750506102e3565b6133946001876147bf565b9550509182019190035b602081106133c757815184556133b56001856147bf565b935060209190910190601f190161339e565b80156102e3576000600019600883021c198554845182169119161785555050505050565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d984848460405160200161342494939291906149bb565b60408051601f198184030181529190528051602090910120949350505050565b600080613452836002614907565b61345d9060046147bf565b905061346b84826008021b90565b60f01c949350505050565b6000806123e084846131dc565b81156102e35760006134958585612980565b9050610aaf81846000855b6020820484019350602082816134b8576134b86149a5565b06915081156135095760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116134f45750506102e3565b6134ff6001876147bf565b9550509283900392015b6020831061353157835481526135206001856147bf565b9350601f1990920191602001613509565b82156102e3576000600019600885021c198251865482169119161782525050505050565b600061356085611a5b565b905061356b816123fb565b60ff168360ff1610156135aa576040517f14306eb800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006135b886868685613878565b836040516020016135ca9291906143b1565b60405160208183030381529060405290507fd01f9f1368f831528fc9fe6442366b2b7d957fbfff3bcf7c24d9ab5fe51f8c4686868684604051613610949392919061478b565b60405180910390a160006136238761311d565b905060005b81518110156136c75760008282815181106136455761364561459f565b60200260200101519050806001600160a01b031663469b7ee28a8a8a886040518563ffffffff1660e01b8152600401613681949392919061478b565b600060405180830381600087803b15801561369b57600080fd5b505af11580156136af573d6000803e3d6000fd5b505050505080806136bf9061465e565b915050613628565b506136d58787858888613952565b60005b8151811015611d275760008282815181106136f5576136f561459f565b60200260200101519050806001600160a01b0316636b3d7d5f8a8a8a886040518563ffffffff1660e01b8152600401613731949392919061478b565b600060405180830381600087803b15801561374b57600080fd5b505af115801561375f573d6000803e3d6000fd5b5050505050808061376f9061465e565b9150506136d8565b600081831115801561378a575083518211155b6137c6578383836040517f23230fa3000000000000000000000000000000000000000000000000000000008152600401610349939291906149ee565b602084016137d484826147bf565b905060006137e28585614872565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b60606000610bfb83601460006139cd565b606060006138298360ff86166128a3565b905060006138428260c5811115611e1257611e126142f1565b905060006138508888612980565b9050600061385e86886138d1565b905061386b828483613b10565b9998505050505050505050565b60606000613885836123fb565b61388f90856148e4565b9050600061389e8787846133eb565b905060006138b98360ff166138b38a8a613476565b90613444565b90506138c58282613b68565b98975050505050505050565b600080805b8360ff1681101561390c576138ee611e0186836128a3565b6138f890836147bf565b9150806139048161465e565b9150506138d6565b509392505050565b600061392085856131dc565b9050600061392c825490565b905061393c8160ff861685613b76565b80835590506115c0565b61086b826000836131c7565b600061395d846123fb565b61396790846148e4565b9050600061397587876131dc565b90506000613981825490565b905060006139928260ff8616613444565b90506139b08460ff168651836139a891906147bf565b849190613b76565b80845591506139c28989868489613c4a565b505050505050505050565b606060006139db8560801c90565b90506fffffffffffffffffffffffffffffffff8516600084613a1357613a02866008614907565b613a0e90610100614872565b613a16565b60005b90506000868381613a2957613a296149a5565b049050613a368784614a13565b15613ac3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f756e7061636b546f41727261793a207061636b65644c656e677468206d75737460448201527f2062652061206d756c7469706c65206f6620656c656d656e7453697a650000006064820152608401610349565b602080820201604051955080860160405250808552600060208601855b83831015613b02578051851c8252600192909201916020909101908901613ae0565b505050505050509392505050565b60608267ffffffffffffffff811115613b2b57613b2b613f85565b6040519080825280601f01601f191660200182016040528015613b55576020820181803683370190505b5090506020810161390c858585846134a0565b6060610bfb83836000613b10565b60008381613b848260e01c90565b90506000613b95878760ff16613444565b9050808510613bb957613ba88186614872565b613bb290836147bf565b9150613bd0565b613bc38582614872565b613bcd9083614872565b91505b6000613bdd876002614907565b613be89060046147bf565b90507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1793507fffff0000000000000000000000000000000000000000000000000000000000006008820290811c19851660f088901b90911c176138c5565b6000613c578686866133eb565b9050613c64602084614a27565b613c6e90826147bf565b90506000613c7d602085614a13565b90506102bf8282856131c7565b6001600160801b031981168114613ca057600080fd5b50565b60008083601f840112613cb557600080fd5b50813567ffffffffffffffff811115613ccd57600080fd5b602083019150836020828501011115613ce557600080fd5b9250929050565b60008083601f840112613cfe57600080fd5b50813567ffffffffffffffff811115613d1657600080fd5b6020830191508360208260051b8501011115613ce557600080fd5b60008060008060008060808789031215613d4a57600080fd5b8635613d5581613c8a565b95506020870135613d6581613c8a565b9450604087013567ffffffffffffffff80821115613d8257600080fd5b613d8e8a838b01613ca3565b90965094506060890135915080821115613da757600080fd5b50613db489828a01613cec565b979a9699509497509295939492505050565b6001600160a01b0381168114613ca057600080fd5b600080600060608486031215613df057600080fd5b8335613dfb81613c8a565b92506020840135613e0b81613c8a565b91506040840135613e1b81613dc6565b809150509250925092565b60008060008060808587031215613e3c57600080fd5b8435613e4781613c8a565b93506020850135613e5781613c8a565b93969395505050506040820135916060013590565b60008060008060808587031215613e8257600080fd5b8435613e8d81613c8a565b93506020850135613e9d81613c8a565b92506040850135613ead81613dc6565b915060608501358015158114613ec257600080fd5b939692955090935050565b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114611aab57600080fd5b60008060008060808587031215613f1357600080fd5b8435613f1e81613c8a565b93506020850135613f2e81613c8a565b9250613f3c60408601613ecd565b9150613f4a60608601613ecd565b905092959194509250565b60008060408385031215613f6857600080fd5b823591506020830135613f7a81613dc6565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613fc457613fc4613f85565b604052919050565b600067ffffffffffffffff821115613fe657613fe6613f85565b50601f01601f191660200190565b600061400761400284613fcc565b613f9b565b905082815283838301111561401b57600080fd5b828260208301376000602084830101529392505050565b6000806040838503121561404557600080fd5b823561405081613dc6565b9150602083013567ffffffffffffffff81111561406c57600080fd5b8301601f8101851361407d57600080fd5b61408c85823560208401613ff4565b9150509250929050565b6000602082840312156140a857600080fd5b8135610bfb81613c8a565b600082601f8301126140c457600080fd5b610bfb83833560208501613ff4565b600080600080608085870312156140e957600080fd5b84356140f481613c8a565b9350602085013561410481613c8a565b9250604085013567ffffffffffffffff8082111561412157600080fd5b61412d888389016140b3565b9350606087013591508082111561414357600080fd5b50614150878288016140b3565b91505092959194509250565b60008060006060848603121561417157600080fd5b505081359360208301359350604090920135919050565b6000806000806000606086880312156141a057600080fd5b85359450602086013567ffffffffffffffff808211156141bf57600080fd5b6141cb89838a01613ca3565b909650945060408801359150808211156141e457600080fd5b506141f188828901613cec565b969995985093965092949392505050565b600067ffffffffffffffff8084111561421d5761421d613f85565b8360051b602061422e818301613f9b565b86815291850191818101903684111561424657600080fd5b865b8481101561427a578035868111156142605760008081fd5b61426c36828b016140b3565b845250918301918301614248565b50979650505050505050565b60005b838110156142a1578181015183820152602001614289565b838111156102e35750506000910152565b600081518084526142ca816020860160208601614286565b601f01601f19169290920160200192915050565b602081526000610bfb60208301846142b2565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561431957600080fd5b8151610bfb81613c8a565b60008551614336818460208a01614286565b80830190507f5f000000000000000000000000000000000000000000000000000000000000008082528651614372816001850160208b01614286565b6001920191820152845161438d816002840160208901614286565b84519101906143a3816002840160208801614286565b016002019695505050505050565b600083516143c3818460208801614286565b8351908301906143d7818360208801614286565b01949350505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b60006001600160801b031980891683526020818916818501526080604085015261443960808501888a6143e0565b84810360608601528581529150808201600586901b830182018760005b888110156144e257601f1986840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18b360301811261449957600080fd5b8a01803567ffffffffffffffff8111156144b257600080fd5b8036038c13156144c157600080fd5b6144ce85828985016143e0565b958701959450505090840190600101614456565b50909c9b505050505050505050505050565b60408152600061450760408301856142b2565b90506001600160a01b03831660208301529392505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614592577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526145808583516142b2565b94509285019290850190600101614546565b5092979650505050505050565b634e487b7160e01b600052603260045260246000fd5b805160208083015191908110156145d6576000198160200360031b1b821691505b50919050565b82815260406020820152600061040e60408301846142b2565b60008351614607818460208801614286565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b6000825161463e818460208701614286565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b6000600019820361467157614671614648565b5060010190565b600060ff821660ff84168060ff0382111561469557614695614648565b019392505050565b600081518084526020808501945080840160005b838110156146cd578151875295820195908201906001016146b1565b509495945050505050565b82815260406020820152600061040e604083018461469d565b83815260606020820152600061470a606083018561469d565b905060ff83166040830152949350505050565b60006020828403121561472f57600080fd5b815167ffffffffffffffff81111561474657600080fd5b8201601f8101841361475757600080fd5b805161476561400282613fcc565b81815285602083850101111561477a57600080fd5b611794826020830160208601614286565b8481526080602082015260006147a4608083018661469d565b60ff851660408401528281036060840152612e7581856142b2565b600082198211156147d2576147d2614648565b500190565b8381526060602082015260006147f0606083018561469d565b828103604084015261480281856142b2565b9695505050505050565b838152606060208201526000614825606083018561469d565b9050826040830152949350505050565b8381526000835161484d816020850160208801614286565b80830190508351614865816020840160208801614286565b0160200195945050505050565b60008282101561488457614884614648565b500390565b838152826020820152606060408201526000611794606083018461469d565b600060ff821660ff81036148be576148be614648565b60010192915050565b600061ffff8083168185168083038211156143d7576143d7614648565b600060ff821660ff8416808210156148fe576148fe614648565b90039392505050565b600081600019048311821515161561492157614921614648565b500290565b600063ffffffff8083168185168083038211156143d7576143d7614648565b838152826020820152608060408201526000614964608083018461469d565b8281036060840152600681527f6c656e6774680000000000000000000000000000000000000000000000000000602082015260408101915050949350505050565b634e487b7160e01b600052601260045260246000fd5b8481528360208201526080604082015260006149da608083018561469d565b905060ff8316606083015295945050505050565b606081526000614a0160608301866142b2565b60208301949094525060400152919050565b600082614a2257614a226149a5565b500690565b600082614a3657614a366149a5565b50049056fea2646970667358221220905962ba502ea527d76f2d73e12b935efd02bbcc23fda2dd7efefd1135f2255664736f6c634300080d0033",
144
144
  "sourceMap": "1556:3464:65:-:0;;;1788:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1749:56:65;;;1556:3464;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;",
145
145
  "linkReferences": {}
146
146
  },
147
147
  "deployedBytecode": {
148
- "object": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806313861fb51461003b57806317d7de7c14610050575b600080fd5b61004e610049366004613372565b610083565b005b604080517f636f72652e6d0000000000000000000000000000000000000000000000000000815290519081900360200190f35b61008b61009e565b610093610128565b61009b610236565b50565b6100a66105ae565b6100ae610615565b6100b6610678565b6100be6106c4565b6100c6610722565b6100da60006100d361076e565b60016107a0565b6100e2610896565b6100ea6108f4565b6100f2610940565b6100fa61099e565b6101026109ea565b61010a610a48565b610112610a94565b61011a610aea565b61012660006001610b36565b565b61009b61013361076e565b604051600060248201527f636f72652e73000000000000000000000000000000000000000000000000000060448201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8116606483015260016084830152907f4c9e9f11000000000000000000000000000000000000000000000000000000009060a4015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915260016000610c1b565b604080516101e0810182527fa886545e0000000000000000000000000000000000000000000000000000000081527f31b99d890000000000000000000000000000000000000000000000000000000060208201527f096fcaa900000000000000000000000000000000000000000000000000000000918101919091527f7a58dce40000000000000000000000000000000000000000000000000000000060608201527f8ae710e90000000000000000000000000000000000000000000000000000000060808201527f3ca90f220000000000000000000000000000000000000000000000000000000060a08201527f4c9e9f110000000000000000000000000000000000000000000000000000000060c08201527fca4c1f5e0000000000000000000000000000000000000000000000000000000060e08201527f56f55a97000000000000000000000000000000000000000000000000000000006101008201527fd5933686000000000000000000000000000000000000000000000000000000006101208201527ffe86a89f000000000000000000000000000000000000000000000000000000006101408201527f6e81fd71000000000000000000000000000000000000000000000000000000006101608201527f8da798da000000000000000000000000000000000000000000000000000000006101808201527ff227e653000000000000000000000000000000000000000000000000000000006101a08201527f1e42269e000000000000000000000000000000000000000000000000000000006101c082015260005b600f8110156105aa5761059761049861076e565b7f00000000000000000000000000000000000000000000000000000000000000007f56f55a970000000000000000000000000000000000000000000000000000000060007f636f72652e7300000000000000000000000000000000000000000000000000008787600f811061050f5761050f6133f2565b60200201518888600f8110610526576105266133f2565b60200201516040517fffffffffffffffffffffffffffffffff0000000000000000000000000000000094851660248201529390921660448401527fffffffff00000000000000000000000000000000000000000000000000000000908116606484015216608482015260a4016101ce565b50806105a28161341e565b915050610484565b5050565b6000806105b9610d45565b60408051600060208201527f4e616d6573706163654f776e657200000000000000000000000000000000000060308201529294509092506105aa91015b60405160208183030381529060405261060e90613438565b8383610e0d565b60408051600060208201527f496e7374616c6c65644d6f64756c6573000000000000000000000000000000006030820152610126910160405160208183030381529060405261066390613438565b61066b610e9c565b610673610f14565b610f93565b600080610683610ff6565b60408051600060208201527f496e7374616c6c65644d6f64756c65730000000000000000000000000000000060308201529294509092506105aa91016105f6565b60408051600060208201527f5265736f757263654163636573730000000000000000000000000000000000006030820152610126910160405160208183030381529060405261071290613438565b61071a6110be565b6106736110f8565b60008061072d611177565b60408051600060208201527f5265736f7572636541636365737300000000000000000000000000000000000060308201529294509092506105aa91016105f6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c8061079d5750335b90565b60408051600280825260608201835260009260208301908036833701905050905083816000815181106107d5576107d56133f2565b6020026020010181815250508260601b6bffffffffffffffffffffffff191681600181518110610807576108076133f2565b602090810291909101810191909152604080516000818401527f5265736f75726365416363657373000000000000000000000000000000000000603082015281518082039093018352810190526108909061086190613438565b8260008560405160200161087c91151560f81b815260010190565b60405160208183030381529060405261123f565b50505050565b60408051600060208201527f53797374656d7300000000000000000000000000000000000000000000000000603082015261012691016040516020818303038152906040526108e490613438565b6108ec6112d7565b610673611356565b6000806108ff611390565b60408051600060208201527f53797374656d730000000000000000000000000000000000000000000000000060308201529294509092506105aa91016105f6565b60408051600060208201527f66756e6353656c6563746f7273000000000000000000000000000000000000006030820152610126910160405160208183030381529060405261098e90613438565b6109966114ab565b610673611570565b6000806109a96115aa565b60408051600060208201527f66756e6353656c6563746f72730000000000000000000000000000000000000060308201529294509092506105aa91016105f6565b60408051600060208201527f53797374656d526567697374727900000000000000000000000000000000000060308201526101269101604051602081830303815290604052610a3890613438565b610a40611356565b610673610e9c565b600080610a5361171b565b60408051600060208201527f53797374656d526567697374727900000000000000000000000000000000000060308201529294509092506105aa91016105f6565b60408051600060208201527f5265736f7572636554797065000000000000000000000000000000000000000060308201526101269101604051602081830303815290604052610ae290613438565b6108ec6117e3565b600080610af561181d565b60408051600060208201527f5265736f7572636554797065000000000000000000000000000000000000000060308201529294509092506105aa91016105f6565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610b6c57610b6c6133f2565b602090810291909101810191909152604080516000818401527f5265736f7572636554797065000000000000000000000000000000000000000060308201528151808203909301835281019052610c1690610bc690613438565b826000856003811115610bdb57610bdb61345f565b60405160200161087c919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b505050565b606060008487604051602001610c329291906134a1565b604051602081830303815290604052905060008085610cb9578773ffffffffffffffffffffffffffffffffffffffff168584604051610c7191906134eb565b60006040518083038185875af1925050503d8060008114610cae576040519150601f19603f3d011682016040523d82523d6000602084013e610cb3565b606091505b50610d20565b8773ffffffffffffffffffffffffffffffffffffffff1683604051610cde91906134eb565b600060405180830381855af49150503d8060008114610d19576040519150601f19603f3d011682016040523d82523d6000602084013e610d1e565b606091505b505b915091508115610d34579250610d3c915050565b805160208201fd5b95945050505050565b6040805160018082528183019092526060918291600091816020015b6060815260200190600190039081610d615790505090506040518060400160405280600581526020017f6f776e657200000000000000000000000000000000000000000000000000000081525081600081518110610dc157610dc16133f2565b6020026020010181905250806040518060400160405280600e81526020017f4e616d6573706163654f776e65720000000000000000000000000000000000008152509092509250509091565b610e156118e5565b15610e2557610c16838383611963565b6040517ffe86a89f000000000000000000000000000000000000000000000000000000008152339063fe86a89f90610e6590869086908690600401613588565b600060405180830381600087803b158015610e7f57600080fd5b505af1158015610e93573d6000803e3d6000fd5b50505050505050565b60408051600180825281830190925260009182919060208083019080368337019050509050606181600081518110610ed657610ed66133f2565b602002602001019060c5811115610eef57610eef61345f565b908160c5811115610f0257610f0261345f565b905250610f0e81611a06565b91505090565b60408051600280825260608201835260009283929190602083019080368337019050509050604f81600081518110610f4e57610f4e6133f2565b602002602001019060c5811115610f6757610f6761345f565b908160c5811115610f7a57610f7a61345f565b81525050605f81600181518110610ed657610ed66133f2565b610f9b6118e5565b15610fab57610c16838383611c60565b6040517fd5933686000000000000000000000000000000000000000000000000000000008152600481018490526024810183905260448101829052339063d593368690606401610e65565b6040805160018082528183019092526060918291600091816020015b60608152602001906001900390816110125790505090506040518060400160405280600d81526020017f6d6f64756c65416464726573730000000000000000000000000000000000000081525081600081518110611072576110726133f2565b6020026020010181905250806040518060400160405280601081526020017f496e7374616c6c65644d6f64756c6573000000000000000000000000000000008152509092509250509091565b60408051600180825281830190925260009182919060208083019080368337019050509050606081600081518110610ed657610ed66133f2565b60408051600280825260608201835260009283929190602083019080368337019050509050605f81600081518110611132576111326133f2565b602002602001019060c581111561114b5761114b61345f565b908160c581111561115e5761115e61345f565b81525050606181600181518110610ed657610ed66133f2565b6040805160018082528183019092526060918291600091816020015b60608152602001906001900390816111935790505090506040518060400160405280600681526020017f6163636573730000000000000000000000000000000000000000000000000000815250816000815181106111f3576111f36133f2565b6020026020010181905250806040518060400160405280600e81526020017f5265736f757263654163636573730000000000000000000000000000000000008152509092509250509091565b6112476118e5565b1561125d5761125884848484611ccd565b610890565b6040517f114a7266000000000000000000000000000000000000000000000000000000008152339063114a72669061129f9087908790879087906004016135f8565b600060405180830381600087803b1580156112b957600080fd5b505af11580156112cd573d6000803e3d6000fd5b5050505050505050565b60408051600280825260608201835260009283929190602083019080368337019050509050606181600081518110611311576113116133f2565b602002602001019060c581111561132a5761132a61345f565b908160c581111561133d5761133d61345f565b81525050606081600181518110610ed657610ed66133f2565b60408051600180825281830190925260009182919060208083019080368337019050509050605f81600081518110610ed657610ed66133f2565b60408051600280825260608281019093528291600091816020015b60608152602001906001900390816113ab5790505090506040518060400160405280600681526020017f73797374656d00000000000000000000000000000000000000000000000000008152508160008151811061140b5761140b6133f2565b60200260200101819052506040518060400160405280600c81526020017f7075626c696341636365737300000000000000000000000000000000000000008152508160018151811061145f5761145f6133f2565b6020026020010181905250806040518060400160405280600781526020017f53797374656d73000000000000000000000000000000000000000000000000008152509092509250509091565b6040805160038082526080820190925260009182919060208201606080368337019050509050604f816000815181106114e6576114e66133f2565b602002602001019060c58111156114ff576114ff61345f565b908160c58111156115125761151261345f565b81525050604f8160018151811061152b5761152b6133f2565b602002602001019060c58111156115445761154461345f565b908160c58111156115575761155761345f565b81525050604381600281518110610ed657610ed66133f2565b60408051600180825281830190925260009182919060208083019080368337019050509050604381600081518110610ed657610ed66133f2565b604080516003808252608082019092526060918291600091816020015b60608152602001906001900390816115c75790505090506040518060400160405280600981526020017f6e616d657370616365000000000000000000000000000000000000000000000081525081600081518110611627576116276133f2565b60200260200101819052506040518060400160405280600481526020017f6e616d65000000000000000000000000000000000000000000000000000000008152508160018151811061167b5761167b6133f2565b60200260200101819052506040518060400160405280601681526020017f73797374656d46756e6374696f6e53656c6563746f7200000000000000000000815250816002815181106116cf576116cf6133f2565b6020026020010181905250806040518060400160405280601181526020017f46756e6374696f6e53656c6563746f72730000000000000000000000000000008152509092509250509091565b6040805160018082528183019092526060918291600091816020015b60608152602001906001900390816117375790505090506040518060400160405280601081526020017f7265736f7572636553656c6563746f720000000000000000000000000000000081525081600081518110611797576117976133f2565b6020026020010181905250806040518060400160405280600e81526020017f53797374656d52656769737472790000000000000000000000000000000000008152509092509250509091565b60408051600180825281830190925260009182919060208083019080368337019050509050600081600081518110610ed657610ed66133f2565b6040805160018082528183019092526060918291600091816020015b60608152602001906001900390816118395790505090506040518060400160405280600c81526020017f7265736f7572636554797065000000000000000000000000000000000000000081525081600081518110611899576118996133f2565b6020026020010181905250806040518060400160405280600c81526020017f5265736f757263655479706500000000000000000000000000000000000000008152509092509250509091565b6000303b8082036118f857600191505090565b3073ffffffffffffffffffffffffffffffffffffffff1663a5c2f0076040518163ffffffff1660e01b815260040160006040518083038186803b15801561193e57600080fd5b505afa92505050801561194f575060015b61195b57600091505090565b600191505090565b600061196e84611eb8565b905081516000148061198b575061198481611f0d565b60ff168251145b6119dc5761199881611f0d565b82516040517ff2b2755900000000000000000000000000000000000000000000000000000000815260ff909216600483015260248201526044015b60405180910390fd5b6108908484846040516020016119f2919061362c565b604051602081830303815290604052611f31565b6000601c82511115611a30578151604051635318beb960e01b81526004016119d391815260200190565b60008060008060005b8651811015611b5c576000611a77888381518110611a5957611a596133f2565b602002602001015160c5811115611a7257611a7261345f565b611fe9565b905061ffff811615611acd578215611abb576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83611ac58161363f565b945050611ad2565b600192505b611adc818661365e565b9450611b5186611aed846004613684565b8a8581518110611aff57611aff6133f2565b602002602001015160c5811115611b1857611b1861345f565b60f81b6008820281811c7fff0000000000000000000000000000000000000000000000000000000000000090911c198416179392505050565b955050600101611a39565b506000828751611b6c919061369c565b9050600e8160ff161115611b9857604051635318beb960e01b815260ff821660048201526024016119d3565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff851660f085901b1794507fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85167dff000000000000000000000000000000000000000000000000000000000060e885901b161794507fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff85167cff0000000000000000000000000000000000000000000000000000000060e083901b16175b979650505050505050565b611c6b8260006120a1565b611c768160016120a1565b611c7f83612272565b15611cc25782611c8e8461228b565b6040517f147bbb8c0000000000000000000000000000000000000000000000000000000081526004016119d39291906136bf565b610c168383836122b6565b6000611cd885611eb8565b90507fd01f9f1368f831528fc9fe6442366b2b7d957fbfff3bcf7c24d9ab5fe51f8c4685858585604051611d0f94939291906135f8565b60405180910390a16000611d228661242d565b905060005b8151811015611dd3576000828281518110611d4457611d446133f2565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff1663469b7ee2898989896040518563ffffffff1660e01b8152600401611d8d94939291906135f8565b600060405180830381600087803b158015611da757600080fd5b505af1158015611dbb573d6000803e3d6000fd5b50505050508080611dcb9061341e565b915050611d27565b50611ddd826124f5565b60ff168460ff161015611dfc57611df78686848787612506565b611e09565b611e0986868487876125ac565b60005b8151811015610e93576000828281518110611e2957611e296133f2565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16636b3d7d5f898989896040518563ffffffff1660e01b8152600401611e7294939291906135f8565b600060405180830381600087803b158015611e8c57600080fd5b505af1158015611ea0573d6000803e3d6000fd5b50505050508080611eb09061341e565b915050611e0c565b6000611ec3826125e9565b905080611f085781611ed48361228b565b6040517fd623a70d0000000000000000000000000000000000000000000000000000000081526004016119d39291906136bf565b919050565b6000611f1882612685565b611f21836124f5565b611f2b91906136d8565b92915050565b6000611f3d8383612691565b60408051600180825281830190925291925060009190602080830190803683370190505090508481600081518110611f7757611f776133f2565b60209081029190910181019190915260408051676d756473746f726560c01b818401527f53746f72654d657461646174610000000000000000000000000000000000000060308201528151808203909301835281019052611fe290611fdb90613438565b8284612747565b5050505050565b6000808260c5811115611ffe57611ffe61345f565b60ff169050602081101561201e57612017816001613684565b9392505050565b604081101561203e576020612034826001613684565b61201791906136fd565b6060811015612054576040612034826001613684565b60608360c58111156120685761206861345f565b036120765750600192915050565b60618360c581111561208a5761208a61345f565b036120985750601492915050565b50600092915050565b801580156120ad575081155b156120ce57604051635318beb960e01b8152600060048201526024016119d3565b60006120d983612685565b60ff169050600e81111561210357604051635318beb960e01b8152600481018290526024016119d3565b600061210e846124f5565b60ff169050601c61211f8383613684565b111561214b5761212f8282613684565b604051635318beb960e01b81526004016119d391815260200190565b60008060005b61215b8585613684565b811015612223576000612182612171898461279f565b60c5811115611a7257611a7261345f565b11156121d3578381106121c1576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826121cb8161341e565b93505061221b565b8381101561220d576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816122178161341e565b9250505b600101612151565b5082821461224757604051635318beb960e01b8152600481018390526024016119d3565b83811461226a57604051635318beb960e01b8152600481018290526024016119d3565b505050505050565b6000612284612280836125e9565b1590565b1592915050565b6060816040516020016122a091815260200190565b6040516020818303038152906040529050919050565b6040805160018082528183019092526000916020808301908036833701905050905083816000815181106122ec576122ec6133f2565b60209081029190910181019190915260408051676d756473746f726560c01b928101929092527f736368656d610000000000000000000000000000000000000000000000000000603083015260009161235f91015b60405160208183030381529060405261235990613438565b836127cb565b8481559050612377612372826020613684565b849055565b60408051676d756473746f726560c01b60208201527f736368656d61000000000000000000000000000000000000000000000000000060308201527f912af873e852235aae78a1d25ae9bb28b616a67c36898c53a14fd8184504ee3291016040516020818303038152906040526123ed90613438565b83868660408051602081019390935282015260600160408051601f198184030181529082905261241e939291613714565b60405180910390a15050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612467576124676133f2565b60209081029190910181019190915260408051676d756473746f726560c01b818401527f486f6f6b73000000000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000906124d6906124ce90613438565b836000612821565b90506124ed6124e882600084516128c7565b612957565b949350505050565b6000601082901b5b60f81c92915050565b60006125158460ff851661279f565b9050815161252e8260c5811115611a7257611a7261345f565b14612585576125488160c5811115611a7257611a7261345f565b82516040517f521b3d33000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016119d3565b600061259187876127cb565b9050600061259f8686612968565b90506112cd8282866129ab565b60006125b7846124f5565b6125c1908461369c565b90506125d086868385516129c0565b60006125dd8787846129f2565b9050610e938184612a4b565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612622576126226133f2565b60209081029190910181019190915260408051676d756473746f726560c01b928101929092527f736368656d610000000000000000000000000000000000000000000000000000603083015260009161267b9101612341565b90506124ed815490565b6000601882901b6124fd565b604080516002808252606080830184529260009291906020830190803683370190505090508351816000815181106126cb576126cb6133f2565b602002602001019061ffff16908161ffff16815250508251816001815181106126f6576126f66133f2565b602002602001019061ffff16908161ffff1681525050600061271782612a57565b905080858560405160200161272e9392919061373f565b6040516020818303038152906040529250505092915050565b61274f6118e5565b1561275f57610c16838383612b34565b6040517f8ed41f2f0000000000000000000000000000000000000000000000000000000081523390638ed41f2f90610e6590869086908690600401613714565b60006127b7836127b0846004613684565b6008021b90565b60f81c60c58111156120175761201761345f565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d983836040516020016128029392919061377c565b60408051601f1981840301815291905280516020909101209392505050565b606061282b6118e5565b156128425761283b848484612d96565b9050612017565b6040517fd03edb8c000000000000000000000000000000000000000000000000000000008152339063d03edb8c906128829087908790879060040161379b565b600060405180830381865afa15801561289f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261283b91908101906137c7565b60008183111580156128da575083518211155b612916578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016119d393929190613835565b602084016129248482613684565b9050600061293285856136fd565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006120178360146000612db1565b600080805b8360ff168110156129a357612985612171868361279f565b61298f9083613684565b91508061299b8161341e565b91505061296d565b509392505050565b60006020820190506108908484838551612ef4565b60006129cc8585612fb2565b905060006129d8825490565b90506129e88160ff861685612fe9565b808355905061226a565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9848484604051602001612a2b949392919061385a565b60408051601f198184030181529190528051602090910120949350505050565b6105aa826000836129ab565b6000806000805b8451811015612b0957612ad483612a7683600261388d565b612a81906004613684565b878481518110612a9357612a936133f2565b602002602001015160f01b6008820281811c7fffff00000000000000000000000000000000000000000000000000000000000090911c198416179392505050565b9250848181518110612ae857612ae86133f2565b602002602001015161ffff1682612aff91906138ac565b9150600101612a5e565b507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff821660e082901b176124ed565b6000612b3f84611eb8565b90506000612b4d8260f01c90565b905080600080612b5c85612685565b60ff161115612b8a57506020848301015160e081901c612b7d906020613684565b612b879083613684565b91505b84518214612bd15784516040517f521b3d330000000000000000000000000000000000000000000000000000000081526119d3918491600401918252602082015260400190565b7f912af873e852235aae78a1d25ae9bb28b616a67c36898c53a14fd8184504ee32878787604051612c0493929190613714565b60405180910390a16000612c178861242d565b905060005b8151811015612cc6576000828281518110612c3957612c396133f2565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff166382b6745f8b8b8b6040518463ffffffff1660e01b8152600401612c8093929190613714565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b50505050508080612cbe9061341e565b915050612c1c565b506000612cd389896127cb565b905060208701612ce68260008389612ef4565b612cf1866020613684565b612cfb9082613684565b9050612d0687612685565b60ff16600003612d1c5750505050505050505050565b6000612d288b8b612fb2565b858155905060008060005b612d3c8b612685565b60ff168160ff161015612d8657612d548e8e836129f2565b9250612d638860ff83166130c5565b9150612d728360008785612ef4565b612d7c8286613684565b9450600101612d33565b5050505050505050505050505050565b60606000612da385611eb8565b9050610d3c858585846130f7565b60606000612dbf8560801c90565b90506fffffffffffffffffffffffffffffffff8516600084612df757612de686600861388d565b612df2906101006136fd565b612dfa565b60005b90506000868381612e0d57612e0d6138cb565b049050612e1a87846138e1565b15612ea7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f756e7061636b546f41727261793a207061636b65644c656e677468206d75737460448201527f2062652061206d756c7469706c65206f6620656c656d656e7453697a6500000060648201526084016119d3565b602080820201604051955080860160405250808552600060208601855b83831015612ee6578051851c8252600192909201916020909101908901612ec4565b505050505050509392505050565b602083048401935060208381612f0c57612f0c6138cb565b0692508215612f655760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311612f50575050610890565b612f5b600187613684565b9550509182019190035b60208110612f8e5781518455612f7c600185613684565b935060209190910190601f1901612f65565b8015610890576000600019600883021c198554845182169119161785555050505050565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9838360405160200161280293929190613903565b60008381612ff78260e01c90565b90506000613008878760ff166130c5565b905080851061302c5761301b81866136fd565b6130259083613684565b9150613043565b61303685826136fd565b61304090836136fd565b91505b600061305087600261388d565b61305b906004613684565b90507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1793507fffff0000000000000000000000000000000000000000000000000000000000006008820290811c19851660f088901b90911c175b98975050505050505050565b6000806130d383600261388d565b6130de906004613684565b90506130ec84826008021b90565b60f01c949350505050565b6060613102826124f5565b60ff168360ff1610156131225761311b8585858561312e565b90506124ed565b61311b8585858561318e565b6060600061313f8360ff861661279f565b905060006131588260c5811115611a7257611a7261345f565b9050600061316688886127cb565b905060006131748688612968565b90506131818284836131db565b9998505050505050505050565b6060600061319b836124f5565b6131a5908561369c565b905060006131b48787846129f2565b905060006131cf8360ff166131c98a8a613233565b906130c5565b90506130b98282613240565b60608267ffffffffffffffff8111156131f6576131f6613303565b6040519080825280601f01601f191660200182016040528015613220576020820181803683370190505b509050602081016129a38585858461324e565b60008061267b8484612fb2565b6060612017838360006131db565b602082048401935060208281613266576132666138cb565b06915081156132b75760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116132a2575050610890565b6132ad600187613684565b9550509283900392015b602083106132df57835481526132ce600185613684565b9350601f19909201916020016132b7565b8215610890576000600019600885021c198251865482169119161782525050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561334257613342613303565b604052919050565b600067ffffffffffffffff82111561336457613364613303565b50601f01601f191660200190565b60006020828403121561338457600080fd5b813567ffffffffffffffff81111561339b57600080fd5b8201601f810184136133ac57600080fd5b80356133bf6133ba8261334a565b613319565b8181528560208385010111156133d457600080fd5b81602084016020830137600091810160200191909152949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019820361343157613431613408565b5060010190565b80516020808301519190811015613459576000198160200360031b1b821691505b50919050565b634e487b7160e01b600052602160045260246000fd5b60005b83811015613490578181015183820152602001613478565b838111156108905750506000910152565b600083516134b3818460208801613475565b60609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190920190815260140192915050565b600082516134fd818460208701613475565b9190910192915050565b6000815180845261351f816020860160208601613475565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b8581101561357b578284038952613569848351613507565b98850198935090840190600101613551565b5091979650505050505050565b8381526060602082015260006135a16060830185613507565b82810360408401526135b38185613533565b9695505050505050565b600081518084526020808501945080840160005b838110156135ed578151875295820195908201906001016135d1565b509495945050505050565b84815260806020820152600061361160808301866135bd565b60ff851660408401528281036060840152611c558185613507565b6020815260006120176020830184613533565b600060ff821660ff810361365557613655613408565b60010192915050565b600061ffff80831681851680830382111561367b5761367b613408565b01949350505050565b6000821982111561369757613697613408565b500190565b600060ff821660ff8416808210156136b6576136b6613408565b90039392505050565b8281526040602082015260006124ed6040830184613507565b600060ff821660ff84168060ff038211156136f5576136f5613408565b019392505050565b60008282101561370f5761370f613408565b500390565b83815260606020820152600061372d60608301856135bd565b82810360408401526135b38185613507565b83815260008351613757816020850160208801613475565b8083019050835161376f816020840160208801613475565b0160200195945050505050565b838152826020820152606060408201526000610d3c60608301846135bd565b8381526060602082015260006137b460608301856135bd565b905060ff83166040830152949350505050565b6000602082840312156137d957600080fd5b815167ffffffffffffffff8111156137f057600080fd5b8201601f8101841361380157600080fd5b805161380f6133ba8261334a565b81815285602083850101111561382457600080fd5b610d3c826020830160208601613475565b6060815260006138486060830186613507565b60208301949094525060400152919050565b84815283602082015260806040820152600061387960808301856135bd565b905060ff8316606083015295945050505050565b60008160001904831182151516156138a7576138a7613408565b500290565b600063ffffffff80831681851680830382111561367b5761367b613408565b634e487b7160e01b600052601260045260246000fd5b6000826138fe57634e487b7160e01b600052601260045260246000fd5b500690565b83815282602082015260806040820152600061392260808301846135bd565b8281036060840152600681527f6c656e677468000000000000000000000000000000000000000000000000000060208201526040810191505094935050505056fea2646970667358221220985115c808c53dcfa8d034647e3ba5ed35e13cfbd1d761e2d3869eff86d56a3664736f6c634300080d0033",
149
- "sourceMap": "1556:3464:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1897:140;;;;;;:::i;:::-;;:::i;:::-;;1810:83;;;;94:17:67;1614:98:93;;1810:83:65;;;;;;1602:2:93;1810:83:65;;;1897:140;1950:21;:19;:21::i;:::-;1977;:19;:21::i;:::-;2004:28;:26;:28::i;:::-;1897:140;:::o;2092:621::-;2138:28;:26;:28::i;:::-;2173:33;:31;:33::i;:::-;2212:30;:28;:30::i;:::-;2249:31;:29;:31::i;:::-;2286:28;:26;:28::i;:::-;2320:54;92:1:53;2355:12:65;:10;:12::i;:::-;2369:4;2320:18;:54::i;:::-;2381:24;:22;:24::i;:::-;2411:21;:19;:21::i;:::-;2439:34;:32;:34::i;:::-;2479:31;:29;:31::i;:::-;2517;:29;:31::i;:::-;2554:28;:26;:28::i;:::-;2589:29;:27;:29::i;:::-;2624:26;:24;:26::i;:::-;2656:52;92:1:53;2689:18:65;2656:16;:52::i;:::-;2092:621::o;2771:462::-;2910:318;2945:12;:10;:12::i;:::-;3050:171;;92:1:53;3050:171:65;;;2033:34:93;149:17:67;2083:18:93;;;2076:43;2973:10:65;2167:42:93;2155:55;;2135:18;;;2128:83;3209:4:65;2227:18:93;;;2220:50;2973:10:65;3082:47;;1920:19:93;;3050:171:65;;;;-1:-1:-1;;3050:171:65;;;;;;;;;;;;;;;;;;;;;;;;;;;3001:4;-1:-1:-1;2910:15:65;:318::i;3324:1694::-;3377:1054;;;;;;;;3464:50;3377:1054;;3522:46;3377:1054;;;;3576:44;3377:1054;;;;;;;3628:45;3377:1054;;;;3681:50;3377:1054;;;;3739:51;3377:1054;;;;3798:47;3377:1054;;;;3853:57;3464:50;3377:1054;;;3918:61;3377:1054;;;;4028:47;3377:1054;;;;4083:44;3377:1054;;;;4135:50;3377:1054;;;;4235:47;3377:1054;;;;4330:43;3377:1054;;;;4381:44;3377:1054;;;;:35;4438:576;4462:24;4458:1;:28;4438:576;;;4625:382;4662:12;:10;:12::i;:::-;4692:10;4809:61;92:1:53;149:17:67;4936::65;4954:1;4936:20;;;;;;;:::i;:::-;;;;;4968:17;4986:1;4968:20;;;;;;;:::i;:::-;;;;;4775:223;;2707:66:93;2800:15;;;4775:223:65;;;2782:34:93;2852:15;;;;2832:18;;;2825:43;2887:66;2989:15;;;2969:18;;;2962:43;3041:15;3021:18;;;3014:43;2669:19;;4775:223:65;2470:593:93;4625:382:65;-1:-1:-1;4488:3:65;;;;:::i;:::-;;;;4438:576;;;;3371:1647;3324:1694::o;2062:178:89:-;2101:24;2127:27;2158:13;:11;:13::i;:::-;885:56;;;902:11;885:56;;;3699:28:93;915:25:89;3743:12:93;;;3736:37;2100:71:89;;-1:-1:-1;2100:71:89;;-1:-1:-1;2177:58:89;;3789:12:93;885:56:89;;;;;;;;;;;;;877:65;;;:::i;:::-;2211:10;2223:11;2177:23;:58::i;1836:111:88:-;885:58;;;902:11;885:58;;;3699:28:93;915:27:88;3743:12:93;;;3736:37;1877:65:88;;3789:12:93;885:58:88;;;;;;;;;;;;877:67;;;:::i;:::-;1914:11;:9;:11::i;:::-;1927:14;:12;:14::i;:::-;1877:26;:65::i;2173:178::-;2212:24;2238:27;2269:13;:11;:13::i;:::-;885:58;;;902:11;885:58;;;3699:28:93;915:27:88;3743:12:93;;;3736:37;2211:71:88;;-1:-1:-1;2211:71:88;;-1:-1:-1;2288:58:88;;3789:12:93;885:58:88;3457:350:93;1760:111:90;885:56;;;902:11;885:56;;;3699:28:93;915:25:90;3743:12:93;;;3736:37;1801:65:90;;3789:12:93;885:56:90;;;;;;;;;;;;877:65;;;:::i;:::-;1838:11;:9;:11::i;:::-;1851:14;:12;:14::i;2097:178::-;2136:24;2162:27;2193:13;:11;:13::i;:::-;885:56;;;902:11;885:56;;;3699:28:93;915:25:90;3743:12:93;;;3736:37;2135:71:90;;-1:-1:-1;2135:71:90;;-1:-1:-1;2212:58:90;;3789:12:93;885:56:90;3457:350:93;409:228:52;551:23;555:14;551:23;538:37;534:2;530:46;;587:45;;-1:-1:-1;622:10:52;587:45;409:228;:::o;3395:319:90:-;3510:16;;;3524:1;3510:16;;;;;;;;3478:29;;3510:16;;;;;;;;;;-1:-1:-1;3510:16:90;3478:48;;3559:16;3532:12;3545:1;3532:15;;;;;;;;:::i;:::-;;;;;;:45;;;;;3618:6;3609:17;;3601:26;;;3583:12;3596:1;3583:15;;;;;;;;:::i;:::-;;;;;;;;;;;:44;;;;885:56;;;902:11;885:56;;;3699:28:93;915:25:90;3743:12:93;;;3736:37;885:56:90;;;;;;;;;;3789:12:93;;885:56:90;;3634:75;;877:65;;;:::i;:::-;3665:12;3679:1;3700:6;3682:26;;;;;;4325:14:93;4318:22;4313:3;4309:32;4297:45;;4367:1;4358:11;;4174:201;3682:26:90;;;;;;;;;;;;;3634:20;:75::i;:::-;3472:242;3395:319;;;:::o;1769:111:75:-;885:49;;;902:11;885:49;;;3699:28:93;915:18:75;3743:12:93;;;3736:37;1810:65:75;;3789:12:93;885:49:75;;;;;;;;;;;;877:58;;;:::i;:::-;1847:11;:9;:11::i;:::-;1860:14;:12;:14::i;2106:178::-;2145:24;2171:27;2202:13;:11;:13::i;:::-;885:49;;;902:11;885:49;;;3699:28:93;915:18:75;3743:12:93;;;3736:37;2144:71:75;;-1:-1:-1;2144:71:75;;-1:-1:-1;2221:58:75;;3789:12:93;885:49:75;3457:350:93;1885:111:72;885:55;;;902:11;885:55;;;3699:28:93;915:24:72;3743:12:93;;;3736:37;1926:65:72;;3789:12:93;885:55:72;;;;;;;;;;;;877:64;;;:::i;:::-;1963:11;:9;:11::i;:::-;1976:14;:12;:14::i;2222:178::-;2261:24;2287:27;2318:13;:11;:13::i;:::-;885:55;;;902:11;885:55;;;3699:28:93;915:24:72;3743:12:93;;;3736:37;2260:71:72;;-1:-1:-1;2260:71:72;;-1:-1:-1;2337:58:72;;3789:12:93;885:55:72;3457:350:93;1736:111:74;885:56;;;902:11;885:56;;;3699:28:93;915:25:74;3743:12:93;;;3736:37;1777:65:74;;3789:12:93;885:56:74;;;;;;;;;;;;877:65;;;:::i;:::-;1814:11;:9;:11::i;:::-;1827:14;:12;:14::i;2073:178::-;2112:24;2138:27;2169:13;:11;:13::i;:::-;885:56;;;902:11;885:56;;;3699:28:93;915:25:74;3743:12:93;;;3736:37;2111:71:74;;-1:-1:-1;2111:71:74;;-1:-1:-1;2188:58:74;;3789:12:93;885:56:74;3457:350:93;1793:111:73;956:54;;;973:11;956:54;;;3699:28:93;986:23:73;3743:12:93;;;3736:37;1834:65:73;;3789:12:93;956:54:73;;;;;;;;;;;;948:63;;;:::i;:::-;1871:11;:9;:11::i;2130:178::-;2169:24;2195:27;2226:13;:11;:13::i;:::-;956:54;;;973:11;956:54;;;3699:28:93;986:23:73;3743:12:93;;;3736:37;2168:71:73;;-1:-1:-1;2168:71:73;;-1:-1:-1;2245:58:73;;3789:12:93;956:54:73;3457:350:93;3332:274:73;3441:16;;;3455:1;3441:16;;;;;;;;;3409:29;;3441:16;;;;;;;;;;;-1:-1:-1;3441:16:73;3409:48;;3490:16;3463:12;3476:1;3463:15;;;;;;;;:::i;:::-;;;;;;;;;;;:45;;;;956:54;;;973:11;956:54;;;3699:28:93;986:23:73;3743:12:93;;;3736:37;956:54:73;;;;;;;;;;3789:12:93;;956:54:73;;3515:86;;948:63;;;:::i;:::-;3546:12;3560:1;3586:12;3580:19;;;;;;;;:::i;:::-;3563:37;;;;;;;4714:3:93;4710:16;;;;4728:66;4706:89;4694:102;;4821:1;4812:11;;4569:260;3515:86:73;3403:203;3332:274;;:::o;499:808:46:-;660:12;721:21;762:19;783:9;745:48;;;;;;;;;:::i;:::-;;;;;;;;;;;;;721:72;;855:12;869:17;890:8;:107;;960:6;:11;;980:5;988:8;960:37;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;890:107;;;907:6;:19;;927:8;907:29;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;890:107;854:143;;;;1078:7;1074:24;;;1094:4;-1:-1:-1;1087:11:46;;-1:-1:-1;;1087:11:46;1074:24;1291:4;1285:11;1278:4;1272;1268:15;1261:36;499:808;;;;;;;;:::o;1476:208:89:-;1590:15;;;1603:1;1590:15;;;;;;;;;1522:13;;;;1560:27;;1590:15;;;;;;;;;;;;;;;;;;;;1560:45;;1611:24;;;;;;;;;;;;;;;;;:11;1623:1;1611:14;;;;;;;;:::i;:::-;;;;;;:24;;;;1667:11;1641:38;;;;;;;;;;;;;;;;;;;;;;;1476:208;;:::o;1705:277:32:-;1813:16;:14;:16::i;:::-;1809:169;;;1839:51;1861:5;1868:9;1879:10;1839:21;:51::i;1809:169::-;1911:60;;;;;1918:10;;1911:30;;:60;;1942:5;;1949:9;;1960:10;;1911:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1705:277;;;:::o;1119:188:88:-;1207:19;;;1224:1;1207:19;;;;;;;;;1163:6;;;;1207:19;;;;;;;;;;;;-1:-1:-1;1207:19:88;1177:49;;1245:18;1232:7;1240:1;1232:10;;;;;;;;:::i;:::-;;;;;;:31;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1277:25:88;1294:7;1277:16;:25::i;:::-;1270:32;;;1119:188;:::o;1311:228::-;1402:19;;;1419:1;1402:19;;;;;;;;1358:6;;;;1402:19;1419:1;1402:19;;;;;;;;;;-1:-1:-1;1402:19:88;1372:49;;1440:18;1427:7;1435:1;1427:10;;;;;;;;:::i;:::-;;;;;;:31;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;1477:18;1464:7;1472:1;1464:10;;;;;;;;:::i;1986:258:32:-;2077:16;:14;:16::i;:::-;2073:167;;;2103:50;2128:5;2135:6;2143:9;2103:24;:50::i;2073:167::-;2174:59;;;;;;;;7551:25:93;;;7592:18;;;7585:34;;;7635:18;;;7628:34;;;2181:10:32;;2174:33;;7524:18:93;;2174:59:32;7293:375:93;1577:218:88;1691:15;;;1704:1;1691:15;;;;;;;;;1623:13;;;;1661:27;;1691:15;;;;;;;;;;;;;;;;;;;;1661:45;;1712:32;;;;;;;;;;;;;;;;;:11;1724:1;1712:14;;;;;;;;:::i;:::-;;;;;;:32;;;;1778:11;1750:40;;;;;;;;;;;;;;;;;;;;;;;1577:218;;:::o;1055:185:90:-;1143:19;;;1160:1;1143:19;;;;;;;;;1099:6;;;;1143:19;;;;;;;;;;;;-1:-1:-1;1143:19:90;1113:49;;1181:15;1168:7;1176:1;1168:10;;;;;;;;:::i;1244:228::-;1335:19;;;1352:1;1335:19;;;;;;;;1291:6;;;;1335:19;1352:1;1335:19;;;;;;;;;;-1:-1:-1;1335:19:90;1305:49;;1373:18;1360:7;1368:1;1360:10;;;;;;;;:::i;:::-;;;;;;:31;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;1410:18;1397:7;1405:1;1397:10;;;;;;;;:::i;1510:209::-;1624:15;;;1637:1;1624:15;;;;;;;;;1556:13;;;;1594:27;;1624:15;;;;;;;;;;;;;;;;;;;;1594:45;;1645:25;;;;;;;;;;;;;;;;;:11;1657:1;1645:14;;;;;;;;:::i;:::-;;;;;;:25;;;;1702:11;1676:38;;;;;;;;;;;;;;;;;;;;;;;1510:209;;:::o;2487:274:32:-;2598:16;:14;:16::i;:::-;2594:163;;;2624:48;2643:5;2650:3;2655:10;2667:4;2624:18;:48::i;:::-;2594:163;;;2693:57;;;;;2700:10;;2693:27;;:57;;2721:5;;2728:3;;2733:10;;2745:4;;2693:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2487:274;;;;:::o;1034:222:75:-;1122:19;;;1139:1;1122:19;;;;;;;;1078:6;;;;1122:19;1139:1;1122:19;;;;;;;;;;-1:-1:-1;1122:19:75;1092:49;;1160:18;1147:7;1155:1;1147:10;;;;;;;;:::i;:::-;;;;;;:31;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;1197:15;1184:7;1192:1;1184:10;;;;;;;;:::i;1260:191::-;1351:19;;;1368:1;1351:19;;;;;;;;;1307:6;;;;1351:19;;;;;;;;;;;;-1:-1:-1;1351:19:75;1321:49;;1389:18;1376:7;1384:1;1376:10;;;;;;;;:::i;1489:239::-;1603:15;;;1616:1;1603:15;;;1535:13;1603:15;;;;;;1535:13;;1573:27;;1603:15;;;;;;;;;;;;;;;;;;;;1573:45;;1624:25;;;;;;;;;;;;;;;;;:11;1636:1;1624:14;;;;;;;;:::i;:::-;;;;;;:25;;;;1655:31;;;;;;;;;;;;;;;;;:11;1667:1;1655:14;;;;;;;;:::i;:::-;;;;;;:31;;;;1711:11;1692:31;;;;;;;;;;;;;;;;;;;;;;;1489:239;;:::o;1060:261:72:-;1148:19;;;1165:1;1148:19;;;;;;;;;1104:6;;;;1148:19;;;;;;;;;;;-1:-1:-1;1148:19:72;1118:49;;1186:18;1173:7;1181:1;1173:10;;;;;;;;:::i;:::-;;;;;;:31;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;1223:18;1210:7;1218:1;1210:10;;;;;;;;:::i;:::-;;;;;;:31;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;1260:17;1247:7;1255:1;1247:10;;;;;;;;:::i;1325:190::-;1416:19;;;1433:1;1416:19;;;;;;;;;1372:6;;;;1416:19;;;;;;;;;;;;-1:-1:-1;1416:19:72;1386:49;;1454:17;1441:7;1449:1;1441:10;;;;;;;;:::i;1553:291::-;1667:15;;;1680:1;1667:15;;;;;;;;;1599:13;;;;1637:27;;1667:15;;;;;;;;;;;;;;;;;;;;1637:45;;1688:28;;;;;;;;;;;;;;;;;:11;1700:1;1688:14;;;;;;;;:::i;:::-;;;;;;:28;;;;1722:23;;;;;;;;;;;;;;;;;:11;1734:1;1722:14;;;;;;;;:::i;:::-;;;;;;:23;;;;1751:41;;;;;;;;;;;;;;;;;:11;1763:1;1751:14;;;;;;;;:::i;:::-;;;;;;:41;;;;1827:11;1798:41;;;;;;;;;;;;;;;;;;;;;;;1553:291;;:::o;1476:219:74:-;1590:15;;;1603:1;1590:15;;;;;;;;;1522:13;;;;1560:27;;1590:15;;;;;;;;;;;;;;;;;;;;1560:45;;1611:35;;;;;;;;;;;;;;;;;:11;1623:1;1611:14;;;;;;;;:::i;:::-;;;;;;:35;;;;1678:11;1652:38;;;;;;;;;;;;;;;;;;;;;;;1476:219;;:::o;1120:186:73:-;1208:19;;;1225:1;1208:19;;;;;;;;;1164:6;;;;1208:19;;;;;;;;;;;;-1:-1:-1;1208:19:73;1178:49;;1246:16;1233:7;1241:1;1233:10;;;;;;;;:::i;1539:213::-;1653:15;;;1666:1;1653:15;;;;;;;;;1585:13;;;;1623:27;;1653:15;;;;;;;;;;;;;;;;;;;;1623:45;;1674:31;;;;;;;;;;;;;;;;;:11;1686:1;1674:14;;;;;;;;:::i;:::-;;;;;;:31;;;;1735:11;1711:36;;;;;;;;;;;;;;;;;;;;;;;1539:213;;:::o;624:497:32:-;673:12;802:9;790:22;915:13;;;911:30;;937:4;930:11;;;624:497;:::o;911:30::-;1034:4;1019:29;;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1015:102;;1105:5;1095:15;;687:434;624:497;:::o;1015:102::-;1069:4;1059:14;;687:434;624:497;:::o;3926:488:30:-;4032:13;4048:18;4058:7;4048:9;:18::i;:::-;4032:34;;4152:10;:17;4173:1;4152:22;:65;;;;4199:18;:6;:16;:18::i;:::-;4178:39;;:10;:17;:39;4152:65;4146:176;;4277:18;:6;:16;:18::i;:::-;4297:17;;4235:80;;;;;8893:4:93;8881:17;;;4235:80:30;;;8863:36:93;8915:18;;;8908:34;8836:18;;4235:80:30;;;;;;;;4146:176;4348:61;4366:7;4375:9;4397:10;4386:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;4348:17;:61::i;842:1591:27:-;910:6;945:2;928:7;:14;:19;924:71;;;980:7;:14;956:39;;-1:-1:-1;;;956:39:27;;;;;;9384:25:93;;9372:2;9357:18;;9238:177;924:71:27;1001:14;1021:13;1040:18;1193:21;1225:9;1220:665;1244:7;:14;1240:1;:18;1220:665;;;1270:23;1303:32;:7;1311:1;1303:10;;;;;;;;:::i;:::-;;;;;;;:30;;;;;;;;:::i;:::-;;:32::i;:::-;1270:66;-1:-1:-1;1413:20:27;;;;1409:322;;1537:16;1533:67;;;1562:38;;;;;;;;;;;;;;1533:67;1610:14;;;;:::i;:::-;;;;1409:322;;;1718:4;1699:23;;1409:322;1739:26;1749:16;1739:26;;:::i;:::-;;-1:-1:-1;1782:57:27;1798:6;1806:5;:1;1810;1806:5;:::i;:::-;1826:7;1834:1;1826:10;;;;;;;;:::i;:::-;;;;;;;1820:17;;;;;;;;:::i;:::-;1813:25;;1768:1:22;1764:13;;1935:29;;;1711:18;1760:24;;;1867:9;1856:21;;1924:41;1599:420;;;;;;1782:57:27;1773:66;-1:-1:-1;;1867:3:27;;1220:665;;;;1928:19;1974:12;1956:7;:14;1950:36;;;;:::i;:::-;1928:58;;2012:2;1996:13;:18;;;1992:69;;;2023:38;;-1:-1:-1;;;2023:38:27;;10336:4:93;10324:17;;2023:38:27;;;10306:36:93;10279:18;;2023:38:27;10162:186:93;1992:69:27;2379:9:22;2368:21;;2179:14:27;;;;2436:41:22;2142:53:27;-1:-1:-1;1867:9:22;1856:21;;1935:29;;;;;;1924:41;2219:57:27;-1:-1:-1;1867:9:22;1856:21;;1935:29;;;;;;1924:41;2318:49:27;2309:58;842:1591;-1:-1:-1;;;;;;;842:1591:27:o;3382:490:30:-;3510:43;:11;3545:5;3510:20;:43::i;:::-;3559:40;:9;3592:4;3559:18;:40::i;:::-;3653:17;3662:7;3653:8;:17::i;:::-;3649:110;;;3724:7;3733:18;:7;:16;:18::i;:::-;3687:65;;;;;;;;;;;;:::i;3649:110::-;3792:75;3835:7;3844:11;3857:9;3792:42;:75::i;7911:974::-;8021:13;8037:18;8047:7;8037:9;:18::i;:::-;8021:34;;8104:46;8118:7;8127:3;8132:11;8145:4;8104:46;;;;;;;;;:::i;:::-;;;;;;;;8221:22;8246:18;8256:7;8246:9;:18::i;:::-;8221:43;;8276:9;8271:154;8291:5;:12;8287:1;:16;8271:154;;;8318:15;8347:5;8353:1;8347:8;;;;;;;;:::i;:::-;;;;;;;8318:38;;8364:4;:21;;;8386:7;8395:3;8400:11;8413:4;8364:54;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8310:115;8305:3;;;;;:::i;:::-;;;;8271:154;;;;8449:24;:6;:22;:24::i;:::-;8435:38;;:11;:38;;;8431:229;;;8483:74;8517:7;8526:3;8531:6;8539:11;8552:4;8483:33;:74::i;:::-;8431:229;;;8578:75;8613:7;8622:3;8627:6;8635:11;8648:4;8578:34;:75::i;:::-;8733:9;8728:153;8748:5;:12;8744:1;:16;8728:153;;;8775:15;8804:5;8810:1;8804:8;;;;;;;;:::i;:::-;;;;;;;8775:38;;8821:4;:20;;;8842:7;8851:3;8856:11;8869:4;8821:53;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8767:114;8762:3;;;;;:::i;:::-;;;;8728:153;;2576:240;2635:13;2665:37;2694:7;2665:28;:37::i;:::-;2656:46;-1:-1:-1;5426:35:27;2708:104:30;;2777:7;2786:18;:7;:16;:18::i;:::-;2745:60;;;;;;;;;;;;:::i;2708:104::-;2576:240;;;:::o;5164:132:27:-;5221:5;5267:24;5284:6;5267:16;:24::i;:::-;5241:23;5257:6;5241:15;:23::i;:::-;:50;;;;:::i;:::-;5234:57;5164:132;-1:-1:-1;;5164:132:27:o;8652:326:39:-;8757:18;8778:39;8785:9;8796:20;8778:6;:39::i;:::-;8856:16;;;8870:1;8856:16;;;;;;;;;8757:60;;-1:-1:-1;8824:29:39;;8856:16;;;;;;;;;;;;-1:-1:-1;8856:16:39;8824:48;;8905:7;8878:12;8891:1;8878:15;;;;;;;;:::i;:::-;;;;;;;;;;;:36;;;;741:63;;;-1:-1:-1;;;741:63:39;;;3699:28:93;779:24:39;3743:12:93;;;3736:37;741:63:39;;;;;;;;;;3789:12:93;;741:63:39;;8921:52;;733:72;;;:::i;:::-;8953:12;8967:5;8921:21;:52::i;:::-;8751:227;;8652:326;;;:::o;3194:543:21:-;3260:7;3273:13;3295:10;3289:17;;;;;;;;:::i;:::-;3273:33;;;;3323:2;3315:5;:10;3311:229;;;3357:9;:5;3365:1;3357:9;:::i;:::-;3350:16;3194:543;-1:-1:-1;;;3194:543:21:o;3311:229::-;3389:2;3381:5;:10;3377:163;;;3448:2;3436:9;:5;3444:1;3436:9;:::i;:::-;:14;;;;:::i;3377:163::-;3473:2;3465:5;:10;3461:79;;;3533:2;3521:9;:5;3529:1;3521:9;:::i;3461:79::-;3586:15;3572:10;:29;;;;;;;;:::i;:::-;;3568:118;;-1:-1:-1;3616:1:21;;3194:543;-1:-1:-1;;3194:543:21:o;3568:118::-;3646:18;3632:10;:32;;;;;;;;:::i;:::-;;3628:58;;-1:-1:-1;3679:2:21;;3194:543;-1:-1:-1;;3194:543:21:o;3628:58::-;-1:-1:-1;3733:1:21;;3194:543;-1:-1:-1;;3194:543:21:o;5470:1506:27:-;5577:10;5576:11;:31;;;;-1:-1:-1;5426:35:27;;5591:16;5572:70;;;5616:26;;-1:-1:-1;;;5616:26:27;;5640:1;5616:26;;;9384:25:93;9357:18;;5616:26:27;9238:177:93;5572:70:27;5704:25;5732;:6;:23;:25::i;:::-;5704:53;;;;5787:2;5767:17;:22;5763:77;;;5798:42;;-1:-1:-1;;;5798:42:27;;;;;9384:25:93;;;9357:18;;5798:42:27;9238:177:93;5763:77:27;5847:24;5874;:6;:22;:24::i;:::-;5847:51;;;-1:-1:-1;6004:2:27;5965:36;5984:17;5847:51;5965:36;:::i;:::-;:41;5961:115;;;6039:36;6058:17;6039:16;:36;:::i;:::-;6015:61;;-1:-1:-1;;;6015:61:27;;;;;;9384:25:93;;9372:2;9357:18;;9238:177;5961:115:27;6135:25;6166:26;6203:9;6198:488;6218:36;6237:17;6218:16;:36;:::i;:::-;6214:1;:40;6198:488;;;6312:1;6270:39;:17;:6;6285:1;6270:14;:17::i;:::-;:37;;;;;;;;:::i;:39::-;:43;6266:375;;;6374:16;6369:1;:21;6365:72;;6399:38;;;;;;;;;;;;;;6365:72;6447:19;;;;:::i;:::-;;;;6266:375;;;6539:16;6535:1;:20;6531:71;;;6564:38;;;;;;;;;;;;;;6531:71;6612:20;;;;:::i;:::-;;;;6266:375;6668:3;;6198:488;;;;6759:16;6738:17;:37;6734:92;;6784:42;;-1:-1:-1;;;6784:42:27;;;;;9384:25:93;;;9357:18;;6784:42:27;9238:177:93;6734:92:27;6902:17;6880:18;:39;6876:95;;6928:43;;-1:-1:-1;;;6928:43:27;;;;;9384:25:93;;;9357:18;;6928:43:27;9238:177:93;6876:95:27;5534:1442;;;;5470:1506;;:::o;3201:130:30:-;3259:4;3279:47;:37;3308:7;3279:28;:37::i;:::-;5426:35:27;;5352:114;3279:47:30;3278:48;;3201:130;-1:-1:-1;;3201:130:30:o;78:124:33:-;136:13;188:7;171:25;;;;;;11307:19:93;;11351:2;11342:12;;11178:182;171:25:33;;;;;;;;;;;;;157:40;;78:124;;;:::o;17458:550:30:-;17585:16;;;17599:1;17585:16;;;;;;;;;17562:20;;17585:16;;;;;;;;;;;-1:-1:-1;17585:16:30;17562:39;;17616:7;17607:3;17611:1;17607:6;;;;;;;;:::i;:::-;;;;;;;;;;;:16;;;;16544:56;;;-1:-1:-1;;;16544:56:30;;;3699:28:93;;;;16582:17:30;3743:12:93;;;3736:37;17629:16:30;;17648:41;;3789:12:93;16544:56:30;;;;;;;;;;;;;16536:65;;;:::i;:::-;17685:3;17648:22;:41::i;:::-;461:28:29;;;17629:60:30;-1:-1:-1;17772:76:30;17804:15;:8;17815:4;17804:15;:::i;:::-;17827:9;461:28:29;;376:123;17772:76:30;16544:56;;;-1:-1:-1;;;16544:56:30;;;3699:28:93;16582:17:30;3743:12:93;;;3736:37;17900:103:30;;3789:12:93;16544:56:30;;;;;;;;;;;;16536:65;;;:::i;:::-;17939:3;17961:11;17983:9;17944:58;;;;;;11522:19:93;;;;11557:12;;11550:28;11594:12;;17944:58:30;;;-1:-1:-1;;17944:58:30;;;;;;;;;;17900:103;;;;;:::i;:::-;;;;;;;;17556:452;;17458:550;;;:::o;2349:326:37:-;2460:16;;;2474:1;2460:16;;;;;;;;;2398:22;;2428:29;;2460:16;;;;;;;;;;;;-1:-1:-1;2460:16:37;2428:48;;2509:3;2482:12;2495:1;2482:15;;;;;;;;:::i;:::-;;;;;;;;;;;:32;;;;741:55;;;-1:-1:-1;;;741:55:37;;;3699:28:93;779:16:37;3743:12:93;;;3736:37;741:55:37;;;;;;;;;;3789:12:93;;741:55:37;;-1:-1:-1;;2542:47:37;;733:64;;;:::i;:::-;2573:12;2587:1;2542:20;:47::i;:::-;2521:68;;2603:66;:44;2624:5;2631:1;2634:5;:12;2603:20;:44::i;:::-;:64;:66::i;:::-;2595:75;2349:326;-1:-1:-1;;;;2349:326:37:o;4958:133:27:-;5021:5;4191:13:22;4187:24;;;5047:38:27;5041:45;;;4958:133;-1:-1:-1;;4958:133:27:o;18193:681:30:-;18410:21;18434:27;:6;:27;;;:14;:27::i;:::-;18410:51;;18507:4;:11;18471:32;:10;:30;;;;;;;;:::i;:32::-;:47;18467:157;;18571:32;:10;:30;;;;;;;;:::i;:32::-;18605:11;;18535:82;;;;;;;;12289:25:93;;;;12330:18;;;12323:34;12262:18;;18535:82:30;12115:248:93;18467:157:30;18673:16;18692:36;18715:7;18724:3;18692:22;:36::i;:::-;18673:55;;18734:14;18751:41;18772:6;18780:11;18751:20;:41::i;:::-;18734:58;;18798:71;18830:8;18848:6;18862:4;18798:13;:71::i;18878:556::-;19035:24;19076;:6;:22;:24::i;:::-;19062:38;;:11;:38;:::i;:::-;19035:65;;19145:75;19174:7;19183:3;19188:18;19208:4;:11;19145:28;:75::i;:::-;19270:27;19300:57;19324:7;19333:3;19338:18;19300:23;:57::i;:::-;19270:87;;19363:66;19395:19;19422:4;19363:13;:66::i;16785:292::-;16882:16;;;16896:1;16882:16;;;;;;;;;16845:6;;;;16882:16;;;;;;;;;;;;-1:-1:-1;16882:16:30;16859:39;;16913:7;16904:3;16908:1;16904:6;;;;;;;;:::i;:::-;;;;;;;;;;;:16;;;;16544:56;;;-1:-1:-1;;;16544:56:30;;;3699:28:93;;;;16582:17:30;3743:12:93;;;3736:37;16926:16:30;;16945:59;;3789:12:93;16544:56:30;3457:350:93;16945:59:30;16926:78;;17029:42;17060:8;3218:21:29;;3112:137;4749:134:27;4813:5;4191:13:22;4187:24;;;4839:38:27;4059:181:22;10709:459:39;10856:15;;;10869:1;10856:15;;;10808:12;10856:15;;;;;10808:12;10828:25;;10856:15;10869:1;10856:15;;;;;;;;;;-1:-1:-1;10856:15:39;10828:43;;10905:9;10899:23;10877:9;10887:1;10877:12;;;;;;;;:::i;:::-;;;;;;:46;;;;;;;;;;;10957:20;10951:34;10929:9;10939:1;10929:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;;;;;;;10992:29;11024:32;11046:9;11024:21;:32::i;:::-;10992:64;-1:-1:-1;10992:64:39;11120:9;11140:20;11070:93;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11063:100;;;;10709:459;;;;:::o;2248:235:32:-;2342:16;:14;:16::i;:::-;2338:141;;;2368:37;2388:5;2395:3;2400:4;2368:19;:37::i;2338:141::-;2426:46;;;;;2433:10;;2426:28;;:46;;2455:5;;2462:3;;2467:4;;2426:46;;;:::i;4502:165:27:-;4572:10;4614:46;4641:6;4650:9;:5;4658:1;4650:9;:::i;:::-;4195:1:22;4191:13;4187:24;;4059:181;4614:46:27;4608:53;;4597:65;;;;;;;;:::i;23642:171:30:-;23736:7;16469:22;23793:7;23802:3;23776:30;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;23776:30:30;;;;;;;;;23766:41;;23776:30;23766:41;;;;;23642:171;-1:-1:-1;;;23642:171:30:o;4206:285:32:-;4302:12;4326:16;:14;:16::i;:::-;4322:165;;;4359:42;4378:5;4385:3;4390:10;4359:18;:42::i;:::-;4352:49;;;;4322:165;4429:51;;;;;4436:10;;4429:27;;:51;;4457:5;;4464:3;;4469:10;;4429:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4429:51:32;;;;;;;;;;;;:::i;1563:570:28:-;1654:5;1752:3;1743:5;:12;;:34;;;;;1766:4;:11;1759:3;:18;;1743:34;1737:85;;1805:4;1811:5;1818:3;1787:35;;;;;;;;;;;;;:::i;1737:85::-;1890:4;1880:15;;1937:17;1949:5;1880:15;1937:17;:::i;:::-;;-1:-1:-1;1960:12:28;1975:11;1981:5;1975:3;:11;:::i;:::-;642:17;2111:15;2103:3;2091:15;;;;2090:37;;;;;;-1:-1:-1;;;;;1563:570:28:o;22003:279:41:-;22067:23;22161:29;22193:34;22211:4;22217:2;22221:5;22193:17;:34::i;23900:251:30:-;23987:7;;;24026:102;24046:11;24042:15;;:1;:15;24026:102;;;24082:39;:17;:6;24097:1;24082:14;:17::i;:39::-;24072:49;;;;:::i;:::-;;-1:-1:-1;24059:3:30;;;;:::i;:::-;;;;24026:102;;;-1:-1:-1;24140:6:30;23900:251;-1:-1:-1;;;23900:251:30:o;503:238:29:-;592:21;663:4;657;653:15;636:32;;679:57;685:14;701:6;709:13;724:4;:11;679:5;:57::i;25428:682:30:-;25670:31;25704:43;25734:7;25743:3;25704:29;:43::i;:::-;25670:77;;25753:28;25803:57;25834:23;3218:21:29;;3112:137;25803:57:30;25753:108;-1:-1:-1;25919:63:30;25753:108;25919:63;;;25965:16;25919:25;:63::i;:::-;461:28:29;;;25902:80:30;-1:-1:-1;26016:89:30;376:123:29;24411:220:30;24541:7;16469:22;24598:7;24607:3;24612:11;24581:43;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;24581:43:30;;;;;;;;;24571:54;;24581:43;24571:54;;;;;24411:220;-1:-1:-1;;;;24411:220:30:o;264:108:29:-;337:30;343:14;359:1;362:4;337:5;:30::i;621:563:26:-;684:13;705:21;732:18;830:9;825:205;845:8;:15;841:1;:19;825:205;;;888:62;904:13;923:5;927:1;923;:5;:::i;:::-;919:9;;:1;:9;:::i;:::-;937:8;946:1;937:11;;;;;;;;:::i;:::-;;;;;;;930:19;;2278:1:22;2274:13;;2447:29;;;2219:20;2270:24;;;2379:9;2368:21;;2436:41;2107:424;;;;;;888:62:26;872:78;;973:8;982:1;973:11;;;;;;;;:::i;:::-;;;;;;;958:26;;;;;;;:::i;:::-;;-1:-1:-1;1012:3:26;;825:205;;;-1:-1:-1;2900:9:22;2889:21;;1112:19:26;;;;2957:41:22;1078:54:26;2620:432:22;5090:2817:30;5326:13;5342:18;5352:7;5342:9;:18::i;:::-;5326:34;;5445:20;5468:25;:6;4373:37:27;;;4279:137;5468:25:30;5445:48;-1:-1:-1;5445:48:30;5499:22;;5579:25;:6;:23;:25::i;:::-;:29;;;5575:271;;;-1:-1:-1;12471:4:22;12457:27;;;;12451:34;2453:51:26;;;;5788:26:30;;:2;:26;:::i;:::-;5770:44;;;;:::i;:::-;;;5575:271;5874:4;:11;5856:14;:29;5852:121;;5954:11;;5902:64;;;;;;;5938:14;;5902:64;;12289:25:93;;;12345:2;12330:18;;12323:34;12277:2;12262:18;;12115:248;5852:121:30;6021:34;6036:7;6045:3;6050:4;6021:34;;;;;;;;:::i;:::-;;;;;;;;6188:22;6213:18;6223:7;6213:9;:18::i;:::-;6188:43;;6242:9;6237:136;6257:5;:12;6253:1;:16;6237:136;;;6284:15;6313:5;6319:1;6313:8;;;;;;;;:::i;:::-;;;;;;;6284:38;;6330:4;:16;;;6347:7;6356:3;6361:4;6330:36;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6276:97;6271:3;;;;;:::i;:::-;;;;6237:136;;;;6436:26;6465:54;6506:7;6515:3;6465:40;:54::i;:::-;6436:83;-1:-1:-1;558:4:25;548:15;;6579:144:30;6436:83;6525:21;548:15:25;6704:12:30;6579:13;:144::i;:::-;6746:17;:12;6761:2;6746:17;:::i;:::-;6729:34;;;;:::i;:::-;;;6915:25;:6;:23;:25::i;:::-;:30;;6944:1;6915:30;6911:43;;6947:7;;;;;;;5090:2817;;;:::o;6911:43::-;7033:33;7069:61;7117:7;7126:3;7069:47;:61::i;:::-;461:28:29;;;7033:97:30;-1:-1:-1;7331:27:30;7364:25;7400:7;7395:508;7413:25;:6;:23;:25::i;:::-;7409:29;;:1;:29;;;7395:508;;;7472:58;7514:7;7523:3;7528:1;7472:41;:58::i;:::-;7450:80;-1:-1:-1;7558:24:30;:13;:24;;;:21;:24::i;:::-;7538:44;;7590:160;7630:19;7667:1;7693:13;7724:17;7590:13;:160::i;:::-;7758:34;7775:17;7758:34;;:::i;:::-;;-1:-1:-1;7885:3:30;;7395:508;;;;5176:2731;;;;;;;;;;5090:2817;;;:::o;15699:214::-;15798:12;15818:13;15834:18;15844:7;15834:9;:18::i;:::-;15818:34;;15865:43;15874:7;15883:3;15888:11;15901:6;15865:8;:43::i;2422:1642:43:-;2535:22;2565:21;2589;:11;2372:3:28;2350:25;;2276:104;2589:21:43;2565:45;-1:-1:-1;642:17:28;2513:38;;2616:20:43;2683:11;:39;;2707:15;:11;2721:1;2707:15;:::i;:::-;2701:21;;:3;:21;:::i;:::-;2683:39;;;2697:1;2683:39;2665:57;;2769:19;2841:11;2826:12;:26;;;;;:::i;:::-;;;-1:-1:-1;3009:26:43;3024:11;3009:12;:26;:::i;:::-;:31;3005:123;;3050:71;;;;;16352:2:93;3050:71:43;;;16334:21:93;16391:2;16371:18;;;16364:30;16430:34;16410:18;;;16403:62;16501:31;16481:18;;;16474:59;16550:19;;3050:71:43;16150:425:93;3005:123:43;3314:4;3309:2;3296:11;3292:20;3288:31;3401:4;3395:11;3386:20;;3437:13;3430:5;3426:25;3420:4;3413:39;;3502:11;3495:5;3488:26;3545:1;3585:4;3578:5;3574:16;3640:13;3522:532;3668:11;3665:1;3662:18;3522:532;;;3997:19;;3984:33;;3964:54;;3755:1;3748:9;;;;;3798:4;3781:22;;;;3867:30;;3522:532;;;3526:135;;;3182:878;;;;2422:1642;;;;;:::o;875:2233:29:-;1146:2;1137:6;:11;1119:29;;;;1166:2;1156:12;;;;;;:::i;:::-;;;-1:-1:-1;1261:10:29;;1257:1071;;1459:2;:11;;;1339:21;-1:-1:-1;;790:1:34;777:14;;755:37;753:40;1487:37:29;;1685:1;1677:6;1673:14;1719:4;1708:9;1704:20;1696:28;;1772:13;1766:20;1755:9;1751:36;1733:54;;2006:4;2002:9;1985:14;1979:21;1975:37;1910:4;1898:10;1894:21;1841:183;1815:14;1797:237;;2087:13;2077:6;:23;2073:36;;2102:7;;;;2073:36;2143:19;2161:1;2143:19;;:::i;:::-;;-1:-1:-1;;2250:30:29;;;;2290:23;;1257:1071;2375:2;2365:6;:12;2358:301;;2470:20;;2447:44;;2506:19;2524:1;2454:14;2506:19;:::i;:::-;;-1:-1:-1;2620:2:29;2603:19;;;;;-1:-1:-1;;2632:12:29;2358:301;;;2727:10;;2723:381;;2747:12;-1:-1:-1;;790:1:34;777:14;;755:37;753:40;3035:21:29;;2951:20;;2947:31;;3058:9;;3031:37;2896:184;2852:238;;-1:-1:-1;875:2233:29;;;;:::o;24716:188:30:-;24817:7;16469:22;24874:7;24883:3;24857:40;;;;;;;;;;:::i;2931:1018:26:-;3059:13;3128;3059;3219:20;3128:13;2453:51;;;2356:154;3219:20;3197:42;;3245:27;3275:36;3283:13;3304:5;3275:36;;:7;:36::i;:::-;3245:66;;3398:19;3379:15;:38;3375:184;;3442:37;3460:19;3442:15;:37;:::i;:::-;3427:52;;;;:::i;:::-;;;3375:184;;;3515:37;3537:15;3515:19;:37;:::i;:::-;3500:52;;;;:::i;:::-;;;3375:184;3621:14;3642:9;:5;3650:1;3642:9;:::i;:::-;3638:13;;:1;:13;:::i;:::-;3621:30;-1:-1:-1;2900:9:22;2889:21;;3767:27:26;;;;2957:41:22;3711:84:26;-1:-1:-1;2219:20:22;2278:1;2274:13;;2270:24;;;2379:9;2368:21;;3862:31:26;;;;2447:29:22;;;2436:41;3820:74:26;3801:93;2931:1018;-1:-1:-1;;;;;;;;2931:1018:26:o;2625:221::-;2709:7;;2745:9;:5;2753:1;2745:9;:::i;:::-;2741:13;;:1;:13;:::i;:::-;2724:30;;2782:57;2816:13;2832:6;4195:1:22;4191:13;4187:24;;4059:181;2782:57:26;2775:65;;;2625:221;-1:-1:-1;;;;2625:221:26:o;16013:389:30:-;16147:12;16185:24;:6;:22;:24::i;:::-;16171:38;;:11;:38;;;16167:231;;;16226:68;16260:7;16269:3;16274:11;16287:6;16226:33;:68::i;:::-;16219:75;;;;16167:231;16322:69;16357:7;16366:3;16371:11;16384:6;16322:34;:69::i;21935:599::-;22076:12;22167:21;22191:27;:6;:27;;;:14;:27::i;:::-;22167:51;;22224:18;22245:32;:10;:30;;;;;;;;:::i;:32::-;22224:53;;22283:16;22302:36;22325:7;22334:3;22302:22;:36::i;:::-;22283:55;;22344:14;22361:41;22382:6;22390:11;22361:20;:41::i;:::-;22344:58;;22451:78;22482:8;22500:10;22520:6;22451:12;:78::i;:::-;22444:85;21935:599;-1:-1:-1;;;;;;;;;21935:599:30:o;22642:552::-;22784:12;22868:24;22909;:6;:22;:24::i;:::-;22895:38;;:11;:38;:::i;:::-;22868:65;;22939:16;22958:57;22982:7;22991:3;22996:18;22958:23;:57::i;:::-;22939:76;;23021:18;23042:71;23094:18;23042:71;;:43;23072:7;23081:3;23042:29;:43::i;:::-;:51;;:71::i;:::-;23021:92;;23127:62;23158:8;23176:10;23127:12;:62::i;3498:447:29:-;3591:19;3768:6;3758:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3758:17:29;-1:-1:-1;3749:26:29;-1:-1:-1;3854:4:29;3842:17;;3870:51;3875:14;3891:6;3899;3842:17;3870:4;:51::i;24991:339:30:-;25092:13;25158:31;25192:43;25222:7;25231:3;25192:29;:43::i;3253:140:29:-;3330:12;3357:31;3362:14;3378:6;3386:1;3357:4;:31::i;4079:2169::-;4354:2;4345:6;:11;4327:29;;;;4374:2;4364:12;;;;;;:::i;:::-;;;-1:-1:-1;4469:10:29;;4465:1005;;4667:2;:11;;;4547:21;-1:-1:-1;;790:1:34;777:14;;755:37;753:40;4695:44:29;;4915:14;4909:21;4905:1;4897:6;4893:14;4889:42;5148:4;5144:9;5128:13;5122:20;5118:36;5053:4;5041:10;5037:21;4984:182;4959:13;4941:235;;5229:13;5219:6;:23;5215:36;;5244:7;;;;5215:36;5285:19;5303:1;5285:19;;:::i;:::-;;-1:-1:-1;;5432:23:29;;;;;5392:30;4465:1005;5516:2;5506:6;:12;5499:301;;5610:21;;5588:44;;5647:19;5665:1;5616:14;5647:19;:::i;:::-;;-1:-1:-1;;;5773:12:29;;;;5761:2;5744:19;5499:301;;;5868:10;;5864:380;;5888:12;-1:-1:-1;;790:1:34;777:14;;755:37;753:40;6176:20:29;;6091:21;;6087:32;;6198:9;;6172:36;6036:184;5993:237;;-1:-1:-1;4079:2169:29;;;;:::o;14:184:93:-;-1:-1:-1;;;63:1:93;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:334;274:2;268:9;330:2;320:13;;-1:-1:-1;;316:86:93;304:99;;433:18;418:34;;454:22;;;415:62;412:88;;;480:18;;:::i;:::-;516:2;509:22;203:334;;-1:-1:-1;203:334:93:o;542:245::-;590:4;623:18;615:6;612:30;609:56;;;645:18;;:::i;:::-;-1:-1:-1;702:2:93;690:15;-1:-1:-1;;686:88:93;776:4;682:99;;542:245::o;792:671::-;860:6;913:2;901:9;892:7;888:23;884:32;881:52;;;929:1;926;919:12;881:52;969:9;956:23;1002:18;994:6;991:30;988:50;;;1034:1;1031;1024:12;988:50;1057:22;;1110:4;1102:13;;1098:27;-1:-1:-1;1088:55:93;;1139:1;1136;1129:12;1088:55;1175:2;1162:16;1200:48;1216:31;1244:2;1216:31;:::i;:::-;1200:48;:::i;:::-;1271:2;1264:5;1257:17;1311:7;1306:2;1301;1297;1293:11;1289:20;1286:33;1283:53;;;1332:1;1329;1322:12;1283:53;1387:2;1382;1378;1374:11;1369:2;1362:5;1358:14;1345:45;1431:1;1410:14;;;1426:2;1406:23;1399:34;;;;1414:5;792:671;-1:-1:-1;;;;792:671:93:o;2281:184::-;-1:-1:-1;;;2330:1:93;2323:88;2430:4;2427:1;2420:15;2454:4;2451:1;2444:15;3068:184;-1:-1:-1;;;3117:1:93;3110:88;3217:4;3214:1;3207:15;3241:4;3238:1;3231:15;3257:195;3296:3;-1:-1:-1;;3320:5:93;3317:77;3314:103;;3397:18;;:::i;:::-;-1:-1:-1;3444:1:93;3433:13;;3257:195::o;3812:357::-;3930:12;;3977:4;3966:16;;;3960:23;;3930:12;3995:16;;3992:171;;;-1:-1:-1;;4075:6:93;4069:4;4065:17;4062:1;4058:25;4054:98;4047:5;4043:110;4034:119;;3992:171;;3812:357;;;:::o;4380:184::-;-1:-1:-1;;;4429:1:93;4422:88;4529:4;4526:1;4519:15;4553:4;4550:1;4543:15;4834:258;4906:1;4916:113;4930:6;4927:1;4924:13;4916:113;;;5006:11;;;5000:18;4987:11;;;4980:39;4952:2;4945:10;4916:113;;;5047:6;5044:1;5041:13;5038:48;;;-1:-1:-1;;5082:1:93;5064:16;;5057:27;4834:258::o;5097:450::-;5254:3;5292:6;5286:13;5308:53;5354:6;5349:3;5342:4;5334:6;5330:17;5308:53;:::i;:::-;5430:2;5426:15;;;;5443:66;5422:88;5383:16;;;;5408:103;;;5538:2;5527:14;;5097:450;-1:-1:-1;;5097:450:93:o;5552:274::-;5681:3;5719:6;5713:13;5735:53;5781:6;5776:3;5769:4;5761:6;5757:17;5735:53;:::i;:::-;5804:16;;;;;5552:274;-1:-1:-1;;5552:274:93:o;5831:317::-;5873:3;5911:5;5905:12;5938:6;5933:3;5926:19;5954:63;6010:6;6003:4;5998:3;5994:14;5987:4;5980:5;5976:16;5954:63;:::i;:::-;6062:2;6050:15;-1:-1:-1;;6046:88:93;6037:98;;;;6137:4;6033:109;;5831:317;-1:-1:-1;;5831:317:93:o;6153:616::-;6205:3;6243:5;6237:12;6270:6;6265:3;6258:19;6296:4;6337:2;6332:3;6328:12;6362:11;6389;6382:18;;6439:6;6436:1;6432:14;6425:5;6421:26;6409:38;;6481:2;6474:5;6470:14;6502:1;6512:231;6526:6;6523:1;6520:13;6512:231;;;6597:5;6591:4;6587:16;6582:3;6575:29;6625:38;6658:4;6649:6;6643:13;6625:38;:::i;:::-;6721:12;;;;6617:46;-1:-1:-1;6686:15:93;;;;6548:1;6541:9;6512:231;;;-1:-1:-1;6759:4:93;;6153:616;-1:-1:-1;;;;;;;6153:616:93:o;6774:514::-;7049:6;7038:9;7031:25;7092:2;7087;7076:9;7072:18;7065:30;7012:4;7118:45;7159:2;7148:9;7144:18;7136:6;7118:45;:::i;:::-;7211:9;7203:6;7199:22;7194:2;7183:9;7179:18;7172:50;7239:43;7275:6;7267;7239:43;:::i;:::-;7231:51;6774:514;-1:-1:-1;;;;;;6774:514:93:o;7673:435::-;7726:3;7764:5;7758:12;7791:6;7786:3;7779:19;7817:4;7846:2;7841:3;7837:12;7830:19;;7883:2;7876:5;7872:14;7904:1;7914:169;7928:6;7925:1;7922:13;7914:169;;;7989:13;;7977:26;;8023:12;;;;8058:15;;;;7950:1;7943:9;7914:169;;;-1:-1:-1;8099:3:93;;7673:435;-1:-1:-1;;;;;7673:435:93:o;8113:573::-;8390:6;8379:9;8372:25;8433:3;8428:2;8417:9;8413:18;8406:31;8353:4;8460:57;8512:3;8501:9;8497:19;8489:6;8460:57;:::i;:::-;8565:4;8557:6;8553:17;8548:2;8537:9;8533:18;8526:45;8619:9;8611:6;8607:22;8602:2;8591:9;8587:18;8580:50;8647:33;8673:6;8665;8647:33;:::i;8953:280::-;9152:2;9141:9;9134:21;9115:4;9172:55;9223:2;9212:9;9208:18;9200:6;9172:55;:::i;9420:175::-;9457:3;9501:4;9494:5;9490:16;9530:4;9521:7;9518:17;9515:43;;9538:18;;:::i;:::-;9587:1;9574:15;;9420:175;-1:-1:-1;;9420:175:93:o;9600:224::-;9639:3;9667:6;9700:2;9697:1;9693:10;9730:2;9727:1;9723:10;9761:3;9757:2;9753:12;9748:3;9745:21;9742:47;;;9769:18;;:::i;:::-;9805:13;;9600:224;-1:-1:-1;;;;9600:224:93:o;9829:128::-;9869:3;9900:1;9896:6;9893:1;9890:13;9887:39;;;9906:18;;:::i;:::-;-1:-1:-1;9942:9:93;;9829:128::o;9962:195::-;10000:4;10037;10034:1;10030:12;10069:4;10066:1;10062:12;10094:3;10089;10086:12;10083:38;;;10101:18;;:::i;:::-;10138:13;;;9962:195;-1:-1:-1;;;9962:195:93:o;10353:291::-;10530:6;10519:9;10512:25;10573:2;10568;10557:9;10553:18;10546:30;10493:4;10593:45;10634:2;10623:9;10619:18;10611:6;10593:45;:::i;10649:204::-;10687:3;10723:4;10720:1;10716:12;10755:4;10752:1;10748:12;10790:3;10784:4;10780:14;10775:3;10772:23;10769:49;;;10798:18;;:::i;:::-;10834:13;;10649:204;-1:-1:-1;;;10649:204:93:o;10858:125::-;10898:4;10926:1;10923;10920:8;10917:34;;;10931:18;;:::i;:::-;-1:-1:-1;10968:9:93;;10858:125::o;11617:493::-;11870:6;11859:9;11852:25;11913:2;11908;11897:9;11893:18;11886:30;11833:4;11939:56;11991:2;11980:9;11976:18;11968:6;11939:56;:::i;:::-;12043:9;12035:6;12031:22;12026:2;12015:9;12011:18;12004:50;12071:33;12097:6;12089;12071:33;:::i;12368:536::-;12601:6;12596:3;12589:19;12571:3;12637:6;12631:13;12653:60;12706:6;12701:2;12696:3;12692:12;12687:2;12679:6;12675:15;12653:60;:::i;:::-;12741:6;12736:3;12732:16;12722:26;;12779:6;12773:13;12795:61;12847:8;12842:2;12838;12834:11;12829:2;12821:6;12817:15;12795:61;:::i;:::-;12876:17;12895:2;12872:26;;12368:536;-1:-1:-1;;;;;12368:536:93:o;12909:403::-;13144:6;13133:9;13126:25;13187:6;13182:2;13171:9;13167:18;13160:34;13230:2;13225;13214:9;13210:18;13203:30;13107:4;13250:56;13302:2;13291:9;13287:18;13279:6;13250:56;:::i;13317:410::-;13548:6;13537:9;13530:25;13591:2;13586;13575:9;13571:18;13564:30;13511:4;13611:56;13663:2;13652:9;13648:18;13640:6;13611:56;:::i;:::-;13603:64;;13715:4;13707:6;13703:17;13698:2;13687:9;13683:18;13676:45;13317:410;;;;;;:::o;13732:634::-;13811:6;13864:2;13852:9;13843:7;13839:23;13835:32;13832:52;;;13880:1;13877;13870:12;13832:52;13913:9;13907:16;13946:18;13938:6;13935:30;13932:50;;;13978:1;13975;13968:12;13932:50;14001:22;;14054:4;14046:13;;14042:27;-1:-1:-1;14032:55:93;;14083:1;14080;14073:12;14032:55;14112:2;14106:9;14137:48;14153:31;14181:2;14153:31;:::i;14137:48::-;14208:2;14201:5;14194:17;14248:7;14243:2;14238;14234;14230:11;14226:20;14223:33;14220:53;;;14269:1;14266;14259:12;14220:53;14282:54;14333:2;14328;14321:5;14317:14;14312:2;14308;14304:11;14282:54;:::i;14371:360::-;14574:2;14563:9;14556:21;14537:4;14594:45;14635:2;14624:9;14620:18;14612:6;14594:45;:::i;:::-;14670:2;14655:18;;14648:34;;;;-1:-1:-1;14713:2:93;14698:18;14691:34;14586:53;14371:360;-1:-1:-1;14371:360:93:o;14736:483::-;14995:6;14984:9;14977:25;15038:6;15033:2;15022:9;15018:18;15011:34;15081:3;15076:2;15065:9;15061:18;15054:31;14958:4;15102:57;15154:3;15143:9;15139:19;15131:6;15102:57;:::i;:::-;15094:65;;15207:4;15199:6;15195:17;15190:2;15179:9;15175:18;15168:45;14736:483;;;;;;;:::o;15224:228::-;15264:7;15390:1;-1:-1:-1;;15318:74:93;15315:1;15312:81;15307:1;15300:9;15293:17;15289:105;15286:131;;;15397:18;;:::i;:::-;-1:-1:-1;15437:9:93;;15224:228::o;15457:::-;15496:3;15524:10;15561:2;15558:1;15554:10;15591:2;15588:1;15584:10;15622:3;15618:2;15614:12;15609:3;15606:21;15603:47;;;15630:18;;:::i;15690:184::-;-1:-1:-1;;;15739:1:93;15732:88;15839:4;15836:1;15829:15;15863:4;15860:1;15853:15;15879:266;15911:1;15937;15927:189;;-1:-1:-1;;;15969:1:93;15962:88;16073:4;16070:1;16063:15;16101:4;16098:1;16091:15;15927:189;-1:-1:-1;16130:9:93;;15879:266::o;16580:671::-;16916:6;16905:9;16898:25;16959:6;16954:2;16943:9;16939:18;16932:34;17002:3;16997:2;16986:9;16982:18;16975:31;16879:4;17029:57;17081:3;17070:9;17066:19;17058:6;17029:57;:::i;:::-;17134:9;17126:6;17122:22;17117:2;17106:9;17102:18;17095:50;17169:1;17161:6;17154:17;17204:8;17199:2;17191:6;17187:15;17180:33;17242:2;17234:6;17230:15;17222:23;;;16580:671;;;;;;:::o",
148
+ "object": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806313861fb51461003b57806317d7de7c14610050575b600080fd5b61004e610049366004613372565b610083565b005b604080517f636f72652e6d0000000000000000000000000000000000000000000000000000815290519081900360200190f35b61008b61009e565b610093610128565b61009b610236565b50565b6100a66105ae565b6100ae610615565b6100b6610678565b6100be6106c4565b6100c6610722565b6100da60006100d361076e565b60016107a0565b6100e2610896565b6100ea6108f4565b6100f2610940565b6100fa61099e565b6101026109ea565b61010a610a48565b610112610a94565b61011a610aea565b61012660006001610b36565b565b61009b61013361076e565b604051600060248201527f636f72652e73000000000000000000000000000000000000000000000000000060448201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8116606483015260016084830152907f4c9e9f11000000000000000000000000000000000000000000000000000000009060a4015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915260016000610c1b565b604080516101e0810182527fa886545e0000000000000000000000000000000000000000000000000000000081527f31b99d890000000000000000000000000000000000000000000000000000000060208201527f096fcaa900000000000000000000000000000000000000000000000000000000918101919091527f7a58dce40000000000000000000000000000000000000000000000000000000060608201527f8ae710e90000000000000000000000000000000000000000000000000000000060808201527f3ca90f220000000000000000000000000000000000000000000000000000000060a08201527f4c9e9f110000000000000000000000000000000000000000000000000000000060c08201527fca4c1f5e0000000000000000000000000000000000000000000000000000000060e08201527f56f55a97000000000000000000000000000000000000000000000000000000006101008201527fd5933686000000000000000000000000000000000000000000000000000000006101208201527ffe86a89f000000000000000000000000000000000000000000000000000000006101408201527f6e81fd71000000000000000000000000000000000000000000000000000000006101608201527f8da798da000000000000000000000000000000000000000000000000000000006101808201527ff227e653000000000000000000000000000000000000000000000000000000006101a08201527f1e42269e000000000000000000000000000000000000000000000000000000006101c082015260005b600f8110156105aa5761059761049861076e565b7f00000000000000000000000000000000000000000000000000000000000000007f56f55a970000000000000000000000000000000000000000000000000000000060007f636f72652e7300000000000000000000000000000000000000000000000000008787600f811061050f5761050f6133f2565b60200201518888600f8110610526576105266133f2565b60200201516040517fffffffffffffffffffffffffffffffff0000000000000000000000000000000094851660248201529390921660448401527fffffffff00000000000000000000000000000000000000000000000000000000908116606484015216608482015260a4016101ce565b50806105a28161341e565b915050610484565b5050565b6000806105b9610d45565b60408051600060208201527f4e616d6573706163654f776e657200000000000000000000000000000000000060308201529294509092506105aa91015b60405160208183030381529060405261060e90613438565b8383610e0d565b60408051600060208201527f496e7374616c6c65644d6f64756c6573000000000000000000000000000000006030820152610126910160405160208183030381529060405261066390613438565b61066b610e9c565b610673610f14565b610f93565b600080610683610ff6565b60408051600060208201527f496e7374616c6c65644d6f64756c65730000000000000000000000000000000060308201529294509092506105aa91016105f6565b60408051600060208201527f5265736f757263654163636573730000000000000000000000000000000000006030820152610126910160405160208183030381529060405261071290613438565b61071a6110be565b6106736110f8565b60008061072d611177565b60408051600060208201527f5265736f7572636541636365737300000000000000000000000000000000000060308201529294509092506105aa91016105f6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c8061079d5750335b90565b60408051600280825260608201835260009260208301908036833701905050905083816000815181106107d5576107d56133f2565b6020026020010181815250508260601b6bffffffffffffffffffffffff191681600181518110610807576108076133f2565b602090810291909101810191909152604080516000818401527f5265736f75726365416363657373000000000000000000000000000000000000603082015281518082039093018352810190526108909061086190613438565b8260008560405160200161087c91151560f81b815260010190565b60405160208183030381529060405261123f565b50505050565b60408051600060208201527f53797374656d7300000000000000000000000000000000000000000000000000603082015261012691016040516020818303038152906040526108e490613438565b6108ec6112d7565b610673611356565b6000806108ff611390565b60408051600060208201527f53797374656d730000000000000000000000000000000000000000000000000060308201529294509092506105aa91016105f6565b60408051600060208201527f66756e6353656c6563746f7273000000000000000000000000000000000000006030820152610126910160405160208183030381529060405261098e90613438565b6109966114ab565b610673611570565b6000806109a96115aa565b60408051600060208201527f66756e6353656c6563746f72730000000000000000000000000000000000000060308201529294509092506105aa91016105f6565b60408051600060208201527f53797374656d526567697374727900000000000000000000000000000000000060308201526101269101604051602081830303815290604052610a3890613438565b610a40611356565b610673610e9c565b600080610a5361171b565b60408051600060208201527f53797374656d526567697374727900000000000000000000000000000000000060308201529294509092506105aa91016105f6565b60408051600060208201527f5265736f7572636554797065000000000000000000000000000000000000000060308201526101269101604051602081830303815290604052610ae290613438565b6108ec6117e3565b600080610af561181d565b60408051600060208201527f5265736f7572636554797065000000000000000000000000000000000000000060308201529294509092506105aa91016105f6565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610b6c57610b6c6133f2565b602090810291909101810191909152604080516000818401527f5265736f7572636554797065000000000000000000000000000000000000000060308201528151808203909301835281019052610c1690610bc690613438565b826000856003811115610bdb57610bdb61345f565b60405160200161087c919060f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016815260010190565b505050565b606060008487604051602001610c329291906134a1565b604051602081830303815290604052905060008085610cb9578773ffffffffffffffffffffffffffffffffffffffff168584604051610c7191906134eb565b60006040518083038185875af1925050503d8060008114610cae576040519150601f19603f3d011682016040523d82523d6000602084013e610cb3565b606091505b50610d20565b8773ffffffffffffffffffffffffffffffffffffffff1683604051610cde91906134eb565b600060405180830381855af49150503d8060008114610d19576040519150601f19603f3d011682016040523d82523d6000602084013e610d1e565b606091505b505b915091508115610d34579250610d3c915050565b805160208201fd5b95945050505050565b6040805160018082528183019092526060918291600091816020015b6060815260200190600190039081610d615790505090506040518060400160405280600581526020017f6f776e657200000000000000000000000000000000000000000000000000000081525081600081518110610dc157610dc16133f2565b6020026020010181905250806040518060400160405280600e81526020017f4e616d6573706163654f776e65720000000000000000000000000000000000008152509092509250509091565b610e156118e5565b15610e2557610c16838383611963565b6040517ffe86a89f000000000000000000000000000000000000000000000000000000008152339063fe86a89f90610e6590869086908690600401613588565b600060405180830381600087803b158015610e7f57600080fd5b505af1158015610e93573d6000803e3d6000fd5b50505050505050565b60408051600180825281830190925260009182919060208083019080368337019050509050606181600081518110610ed657610ed66133f2565b602002602001019060c5811115610eef57610eef61345f565b908160c5811115610f0257610f0261345f565b905250610f0e81611a06565b91505090565b60408051600280825260608201835260009283929190602083019080368337019050509050604f81600081518110610f4e57610f4e6133f2565b602002602001019060c5811115610f6757610f6761345f565b908160c5811115610f7a57610f7a61345f565b81525050605f81600181518110610ed657610ed66133f2565b610f9b6118e5565b15610fab57610c16838383611c60565b6040517fd5933686000000000000000000000000000000000000000000000000000000008152600481018490526024810183905260448101829052339063d593368690606401610e65565b6040805160018082528183019092526060918291600091816020015b60608152602001906001900390816110125790505090506040518060400160405280600d81526020017f6d6f64756c65416464726573730000000000000000000000000000000000000081525081600081518110611072576110726133f2565b6020026020010181905250806040518060400160405280601081526020017f496e7374616c6c65644d6f64756c6573000000000000000000000000000000008152509092509250509091565b60408051600180825281830190925260009182919060208083019080368337019050509050606081600081518110610ed657610ed66133f2565b60408051600280825260608201835260009283929190602083019080368337019050509050605f81600081518110611132576111326133f2565b602002602001019060c581111561114b5761114b61345f565b908160c581111561115e5761115e61345f565b81525050606181600181518110610ed657610ed66133f2565b6040805160018082528183019092526060918291600091816020015b60608152602001906001900390816111935790505090506040518060400160405280600681526020017f6163636573730000000000000000000000000000000000000000000000000000815250816000815181106111f3576111f36133f2565b6020026020010181905250806040518060400160405280600e81526020017f5265736f757263654163636573730000000000000000000000000000000000008152509092509250509091565b6112476118e5565b1561125d5761125884848484611ccd565b610890565b6040517f114a7266000000000000000000000000000000000000000000000000000000008152339063114a72669061129f9087908790879087906004016135f8565b600060405180830381600087803b1580156112b957600080fd5b505af11580156112cd573d6000803e3d6000fd5b5050505050505050565b60408051600280825260608201835260009283929190602083019080368337019050509050606181600081518110611311576113116133f2565b602002602001019060c581111561132a5761132a61345f565b908160c581111561133d5761133d61345f565b81525050606081600181518110610ed657610ed66133f2565b60408051600180825281830190925260009182919060208083019080368337019050509050605f81600081518110610ed657610ed66133f2565b60408051600280825260608281019093528291600091816020015b60608152602001906001900390816113ab5790505090506040518060400160405280600681526020017f73797374656d00000000000000000000000000000000000000000000000000008152508160008151811061140b5761140b6133f2565b60200260200101819052506040518060400160405280600c81526020017f7075626c696341636365737300000000000000000000000000000000000000008152508160018151811061145f5761145f6133f2565b6020026020010181905250806040518060400160405280600781526020017f53797374656d73000000000000000000000000000000000000000000000000008152509092509250509091565b6040805160038082526080820190925260009182919060208201606080368337019050509050604f816000815181106114e6576114e66133f2565b602002602001019060c58111156114ff576114ff61345f565b908160c58111156115125761151261345f565b81525050604f8160018151811061152b5761152b6133f2565b602002602001019060c58111156115445761154461345f565b908160c58111156115575761155761345f565b81525050604381600281518110610ed657610ed66133f2565b60408051600180825281830190925260009182919060208083019080368337019050509050604381600081518110610ed657610ed66133f2565b604080516003808252608082019092526060918291600091816020015b60608152602001906001900390816115c75790505090506040518060400160405280600981526020017f6e616d657370616365000000000000000000000000000000000000000000000081525081600081518110611627576116276133f2565b60200260200101819052506040518060400160405280600481526020017f6e616d65000000000000000000000000000000000000000000000000000000008152508160018151811061167b5761167b6133f2565b60200260200101819052506040518060400160405280601681526020017f73797374656d46756e6374696f6e53656c6563746f7200000000000000000000815250816002815181106116cf576116cf6133f2565b6020026020010181905250806040518060400160405280601181526020017f46756e6374696f6e53656c6563746f72730000000000000000000000000000008152509092509250509091565b6040805160018082528183019092526060918291600091816020015b60608152602001906001900390816117375790505090506040518060400160405280601081526020017f7265736f7572636553656c6563746f720000000000000000000000000000000081525081600081518110611797576117976133f2565b6020026020010181905250806040518060400160405280600e81526020017f53797374656d52656769737472790000000000000000000000000000000000008152509092509250509091565b60408051600180825281830190925260009182919060208083019080368337019050509050600081600081518110610ed657610ed66133f2565b6040805160018082528183019092526060918291600091816020015b60608152602001906001900390816118395790505090506040518060400160405280600c81526020017f7265736f7572636554797065000000000000000000000000000000000000000081525081600081518110611899576118996133f2565b6020026020010181905250806040518060400160405280600c81526020017f5265736f757263655479706500000000000000000000000000000000000000008152509092509250509091565b6000303b8082036118f857600191505090565b3073ffffffffffffffffffffffffffffffffffffffff1663a5c2f0076040518163ffffffff1660e01b815260040160006040518083038186803b15801561193e57600080fd5b505afa92505050801561194f575060015b61195b57600091505090565b600191505090565b600061196e84611eb8565b905081516000148061198b575061198481611f0d565b60ff168251145b6119dc5761199881611f0d565b82516040517ff2b2755900000000000000000000000000000000000000000000000000000000815260ff909216600483015260248201526044015b60405180910390fd5b6108908484846040516020016119f2919061362c565b604051602081830303815290604052611f31565b6000601c82511115611a30578151604051635318beb960e01b81526004016119d391815260200190565b60008060008060005b8651811015611b5c576000611a77888381518110611a5957611a596133f2565b602002602001015160c5811115611a7257611a7261345f565b611fe9565b905061ffff811615611acd578215611abb576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83611ac58161363f565b945050611ad2565b600192505b611adc818661365e565b9450611b5186611aed846004613684565b8a8581518110611aff57611aff6133f2565b602002602001015160c5811115611b1857611b1861345f565b60f81b6008820281811c7fff0000000000000000000000000000000000000000000000000000000000000090911c198416179392505050565b955050600101611a39565b506000828751611b6c919061369c565b9050600e8160ff161115611b9857604051635318beb960e01b815260ff821660048201526024016119d3565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff851660f085901b1794507fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85167dff000000000000000000000000000000000000000000000000000000000060e885901b161794507fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff85167cff0000000000000000000000000000000000000000000000000000000060e083901b16175b979650505050505050565b611c6b8260006120a1565b611c768160016120a1565b611c7f83612272565b15611cc25782611c8e8461228b565b6040517f147bbb8c0000000000000000000000000000000000000000000000000000000081526004016119d39291906136bf565b610c168383836122b6565b6000611cd885611eb8565b90507fd01f9f1368f831528fc9fe6442366b2b7d957fbfff3bcf7c24d9ab5fe51f8c4685858585604051611d0f94939291906135f8565b60405180910390a16000611d228661242d565b905060005b8151811015611dd3576000828281518110611d4457611d446133f2565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff1663469b7ee2898989896040518563ffffffff1660e01b8152600401611d8d94939291906135f8565b600060405180830381600087803b158015611da757600080fd5b505af1158015611dbb573d6000803e3d6000fd5b50505050508080611dcb9061341e565b915050611d27565b50611ddd826124f5565b60ff168460ff161015611dfc57611df78686848787612506565b611e09565b611e0986868487876125ac565b60005b8151811015610e93576000828281518110611e2957611e296133f2565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16636b3d7d5f898989896040518563ffffffff1660e01b8152600401611e7294939291906135f8565b600060405180830381600087803b158015611e8c57600080fd5b505af1158015611ea0573d6000803e3d6000fd5b50505050508080611eb09061341e565b915050611e0c565b6000611ec3826125e9565b905080611f085781611ed48361228b565b6040517fd623a70d0000000000000000000000000000000000000000000000000000000081526004016119d39291906136bf565b919050565b6000611f1882612685565b611f21836124f5565b611f2b91906136d8565b92915050565b6000611f3d8383612691565b60408051600180825281830190925291925060009190602080830190803683370190505090508481600081518110611f7757611f776133f2565b60209081029190910181019190915260408051676d756473746f726560c01b818401527f53746f72654d657461646174610000000000000000000000000000000000000060308201528151808203909301835281019052611fe290611fdb90613438565b8284612747565b5050505050565b6000808260c5811115611ffe57611ffe61345f565b60ff169050602081101561201e57612017816001613684565b9392505050565b604081101561203e576020612034826001613684565b61201791906136fd565b6060811015612054576040612034826001613684565b60608360c58111156120685761206861345f565b036120765750600192915050565b60618360c581111561208a5761208a61345f565b036120985750601492915050565b50600092915050565b801580156120ad575081155b156120ce57604051635318beb960e01b8152600060048201526024016119d3565b60006120d983612685565b60ff169050600e81111561210357604051635318beb960e01b8152600481018290526024016119d3565b600061210e846124f5565b60ff169050601c61211f8383613684565b111561214b5761212f8282613684565b604051635318beb960e01b81526004016119d391815260200190565b60008060005b61215b8585613684565b811015612223576000612182612171898461279f565b60c5811115611a7257611a7261345f565b11156121d3578381106121c1576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826121cb8161341e565b93505061221b565b8381101561220d576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816122178161341e565b9250505b600101612151565b5082821461224757604051635318beb960e01b8152600481018390526024016119d3565b83811461226a57604051635318beb960e01b8152600481018290526024016119d3565b505050505050565b6000612284612280836125e9565b1590565b1592915050565b6060816040516020016122a091815260200190565b6040516020818303038152906040529050919050565b6040805160018082528183019092526000916020808301908036833701905050905083816000815181106122ec576122ec6133f2565b60209081029190910181019190915260408051676d756473746f726560c01b928101929092527f736368656d610000000000000000000000000000000000000000000000000000603083015260009161235f91015b60405160208183030381529060405261235990613438565b836127cb565b8481559050612377612372826020613684565b849055565b60408051676d756473746f726560c01b60208201527f736368656d61000000000000000000000000000000000000000000000000000060308201527f912af873e852235aae78a1d25ae9bb28b616a67c36898c53a14fd8184504ee3291016040516020818303038152906040526123ed90613438565b83868660408051602081019390935282015260600160408051601f198184030181529082905261241e939291613714565b60405180910390a15050505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612467576124676133f2565b60209081029190910181019190915260408051676d756473746f726560c01b818401527f486f6f6b73000000000000000000000000000000000000000000000000000000603082015281518082039093018352810190526000906124d6906124ce90613438565b836000612821565b90506124ed6124e882600084516128c7565b612957565b949350505050565b6000601082901b5b60f81c92915050565b60006125158460ff851661279f565b9050815161252e8260c5811115611a7257611a7261345f565b14612585576125488160c5811115611a7257611a7261345f565b82516040517f521b3d33000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016119d3565b600061259187876127cb565b9050600061259f8686612968565b90506112cd8282866129ab565b60006125b7846124f5565b6125c1908461369c565b90506125d086868385516129c0565b60006125dd8787846129f2565b9050610e938184612a4b565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110612622576126226133f2565b60209081029190910181019190915260408051676d756473746f726560c01b928101929092527f736368656d610000000000000000000000000000000000000000000000000000603083015260009161267b9101612341565b90506124ed815490565b6000601882901b6124fd565b604080516002808252606080830184529260009291906020830190803683370190505090508351816000815181106126cb576126cb6133f2565b602002602001019061ffff16908161ffff16815250508251816001815181106126f6576126f66133f2565b602002602001019061ffff16908161ffff1681525050600061271782612a57565b905080858560405160200161272e9392919061373f565b6040516020818303038152906040529250505092915050565b61274f6118e5565b1561275f57610c16838383612b34565b6040517f8ed41f2f0000000000000000000000000000000000000000000000000000000081523390638ed41f2f90610e6590869086908690600401613714565b60006127b7836127b0846004613684565b6008021b90565b60f81c60c58111156120175761201761345f565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d983836040516020016128029392919061377c565b60408051601f1981840301815291905280516020909101209392505050565b606061282b6118e5565b156128425761283b848484612d96565b9050612017565b6040517fd03edb8c000000000000000000000000000000000000000000000000000000008152339063d03edb8c906128829087908790879060040161379b565b600060405180830381865afa15801561289f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261283b91908101906137c7565b60008183111580156128da575083518211155b612916578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016119d393929190613835565b602084016129248482613684565b9050600061293285856136fd565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006120178360146000612db1565b600080805b8360ff168110156129a357612985612171868361279f565b61298f9083613684565b91508061299b8161341e565b91505061296d565b509392505050565b60006020820190506108908484838551612ef4565b60006129cc8585612fb2565b905060006129d8825490565b90506129e88160ff861685612fe9565b808355905061226a565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9848484604051602001612a2b949392919061385a565b60408051601f198184030181529190528051602090910120949350505050565b6105aa826000836129ab565b6000806000805b8451811015612b0957612ad483612a7683600261388d565b612a81906004613684565b878481518110612a9357612a936133f2565b602002602001015160f01b6008820281811c7fffff00000000000000000000000000000000000000000000000000000000000090911c198416179392505050565b9250848181518110612ae857612ae86133f2565b602002602001015161ffff1682612aff91906138ac565b9150600101612a5e565b507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff821660e082901b176124ed565b6000612b3f84611eb8565b90506000612b4d8260f01c90565b905080600080612b5c85612685565b60ff161115612b8a57506020848301015160e081901c612b7d906020613684565b612b879083613684565b91505b84518214612bd15784516040517f521b3d330000000000000000000000000000000000000000000000000000000081526119d3918491600401918252602082015260400190565b7f912af873e852235aae78a1d25ae9bb28b616a67c36898c53a14fd8184504ee32878787604051612c0493929190613714565b60405180910390a16000612c178861242d565b905060005b8151811015612cc6576000828281518110612c3957612c396133f2565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff166382b6745f8b8b8b6040518463ffffffff1660e01b8152600401612c8093929190613714565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b50505050508080612cbe9061341e565b915050612c1c565b506000612cd389896127cb565b905060208701612ce68260008389612ef4565b612cf1866020613684565b612cfb9082613684565b9050612d0687612685565b60ff16600003612d1c5750505050505050505050565b6000612d288b8b612fb2565b858155905060008060005b612d3c8b612685565b60ff168160ff161015612d8657612d548e8e836129f2565b9250612d638860ff83166130c5565b9150612d728360008785612ef4565b612d7c8286613684565b9450600101612d33565b5050505050505050505050505050565b60606000612da385611eb8565b9050610d3c858585846130f7565b60606000612dbf8560801c90565b90506fffffffffffffffffffffffffffffffff8516600084612df757612de686600861388d565b612df2906101006136fd565b612dfa565b60005b90506000868381612e0d57612e0d6138cb565b049050612e1a87846138e1565b15612ea7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f756e7061636b546f41727261793a207061636b65644c656e677468206d75737460448201527f2062652061206d756c7469706c65206f6620656c656d656e7453697a6500000060648201526084016119d3565b602080820201604051955080860160405250808552600060208601855b83831015612ee6578051851c8252600192909201916020909101908901612ec4565b505050505050509392505050565b602083048401935060208381612f0c57612f0c6138cb565b0692508215612f655760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311612f50575050610890565b612f5b600187613684565b9550509182019190035b60208110612f8e5781518455612f7c600185613684565b935060209190910190601f1901612f65565b8015610890576000600019600883021c198554845182169119161785555050505050565b60007f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9838360405160200161280293929190613903565b60008381612ff78260e01c90565b90506000613008878760ff166130c5565b905080851061302c5761301b81866136fd565b6130259083613684565b9150613043565b61303685826136fd565b61304090836136fd565b91505b600061305087600261388d565b61305b906004613684565b90507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841660e084901b1793507fffff0000000000000000000000000000000000000000000000000000000000006008820290811c19851660f088901b90911c175b98975050505050505050565b6000806130d383600261388d565b6130de906004613684565b90506130ec84826008021b90565b60f01c949350505050565b6060613102826124f5565b60ff168360ff1610156131225761311b8585858561312e565b90506124ed565b61311b8585858561318e565b6060600061313f8360ff861661279f565b905060006131588260c5811115611a7257611a7261345f565b9050600061316688886127cb565b905060006131748688612968565b90506131818284836131db565b9998505050505050505050565b6060600061319b836124f5565b6131a5908561369c565b905060006131b48787846129f2565b905060006131cf8360ff166131c98a8a613233565b906130c5565b90506130b98282613240565b60608267ffffffffffffffff8111156131f6576131f6613303565b6040519080825280601f01601f191660200182016040528015613220576020820181803683370190505b509050602081016129a38585858461324e565b60008061267b8484612fb2565b6060612017838360006131db565b602082048401935060208281613266576132666138cb565b06915081156132b75760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116132a2575050610890565b6132ad600187613684565b9550509283900392015b602083106132df57835481526132ce600185613684565b9350601f19909201916020016132b7565b8215610890576000600019600885021c198251865482169119161782525050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561334257613342613303565b604052919050565b600067ffffffffffffffff82111561336457613364613303565b50601f01601f191660200190565b60006020828403121561338457600080fd5b813567ffffffffffffffff81111561339b57600080fd5b8201601f810184136133ac57600080fd5b80356133bf6133ba8261334a565b613319565b8181528560208385010111156133d457600080fd5b81602084016020830137600091810160200191909152949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019820361343157613431613408565b5060010190565b80516020808301519190811015613459576000198160200360031b1b821691505b50919050565b634e487b7160e01b600052602160045260246000fd5b60005b83811015613490578181015183820152602001613478565b838111156108905750506000910152565b600083516134b3818460208801613475565b60609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190920190815260140192915050565b600082516134fd818460208701613475565b9190910192915050565b6000815180845261351f816020860160208601613475565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b8581101561357b578284038952613569848351613507565b98850198935090840190600101613551565b5091979650505050505050565b8381526060602082015260006135a16060830185613507565b82810360408401526135b38185613533565b9695505050505050565b600081518084526020808501945080840160005b838110156135ed578151875295820195908201906001016135d1565b509495945050505050565b84815260806020820152600061361160808301866135bd565b60ff851660408401528281036060840152611c558185613507565b6020815260006120176020830184613533565b600060ff821660ff810361365557613655613408565b60010192915050565b600061ffff80831681851680830382111561367b5761367b613408565b01949350505050565b6000821982111561369757613697613408565b500190565b600060ff821660ff8416808210156136b6576136b6613408565b90039392505050565b8281526040602082015260006124ed6040830184613507565b600060ff821660ff84168060ff038211156136f5576136f5613408565b019392505050565b60008282101561370f5761370f613408565b500390565b83815260606020820152600061372d60608301856135bd565b82810360408401526135b38185613507565b83815260008351613757816020850160208801613475565b8083019050835161376f816020840160208801613475565b0160200195945050505050565b838152826020820152606060408201526000610d3c60608301846135bd565b8381526060602082015260006137b460608301856135bd565b905060ff83166040830152949350505050565b6000602082840312156137d957600080fd5b815167ffffffffffffffff8111156137f057600080fd5b8201601f8101841361380157600080fd5b805161380f6133ba8261334a565b81815285602083850101111561382457600080fd5b610d3c826020830160208601613475565b6060815260006138486060830186613507565b60208301949094525060400152919050565b84815283602082015260806040820152600061387960808301856135bd565b905060ff8316606083015295945050505050565b60008160001904831182151516156138a7576138a7613408565b500290565b600063ffffffff80831681851680830382111561367b5761367b613408565b634e487b7160e01b600052601260045260246000fd5b6000826138fe57634e487b7160e01b600052601260045260246000fd5b500690565b83815282602082015260806040820152600061392260808301846135bd565b8281036060840152600681527f6c656e677468000000000000000000000000000000000000000000000000000060208201526040810191505094935050505056fea2646970667358221220c82ab3a39f0d8f00c3fbf56a3b1ece823cd2cbecd8d1e12278e6e2bdba17d7db64736f6c634300080d0033",
149
+ "sourceMap": "1556:3464:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1897:140;;;;;;:::i;:::-;;:::i;:::-;;1810:83;;;;94:17:67;1614:98:93;;1810:83:65;;;;;;1602:2:93;1810:83:65;;;1897:140;1950:21;:19;:21::i;:::-;1977;:19;:21::i;:::-;2004:28;:26;:28::i;:::-;1897:140;:::o;2092:621::-;2138:28;:26;:28::i;:::-;2173:33;:31;:33::i;:::-;2212:30;:28;:30::i;:::-;2249:31;:29;:31::i;:::-;2286:28;:26;:28::i;:::-;2320:54;92:1:53;2355:12:65;:10;:12::i;:::-;2369:4;2320:18;:54::i;:::-;2381:24;:22;:24::i;:::-;2411:21;:19;:21::i;:::-;2439:34;:32;:34::i;:::-;2479:31;:29;:31::i;:::-;2517;:29;:31::i;:::-;2554:28;:26;:28::i;:::-;2589:29;:27;:29::i;:::-;2624:26;:24;:26::i;:::-;2656:52;92:1:53;2689:18:65;2656:16;:52::i;:::-;2092:621::o;2771:462::-;2910:318;2945:12;:10;:12::i;:::-;3050:171;;92:1:53;3050:171:65;;;2033:34:93;149:17:67;2083:18:93;;;2076:43;2973:10:65;2167:42:93;2155:55;;2135:18;;;2128:83;3209:4:65;2227:18:93;;;2220:50;2973:10:65;3082:47;;1920:19:93;;3050:171:65;;;;-1:-1:-1;;3050:171:65;;;;;;;;;;;;;;;;;;;;;;;;;;;3001:4;-1:-1:-1;2910:15:65;:318::i;3324:1694::-;3377:1054;;;;;;;;3464:50;3377:1054;;3522:46;3377:1054;;;;3576:44;3377:1054;;;;;;;3628:45;3377:1054;;;;3681:50;3377:1054;;;;3739:51;3377:1054;;;;3798:47;3377:1054;;;;3853:57;3464:50;3377:1054;;;3918:61;3377:1054;;;;4028:47;3377:1054;;;;4083:44;3377:1054;;;;4135:50;3377:1054;;;;4235:47;3377:1054;;;;4330:43;3377:1054;;;;4381:44;3377:1054;;;;:35;4438:576;4462:24;4458:1;:28;4438:576;;;4625:382;4662:12;:10;:12::i;:::-;4692:10;4809:61;92:1:53;149:17:67;4936::65;4954:1;4936:20;;;;;;;:::i;:::-;;;;;4968:17;4986:1;4968:20;;;;;;;:::i;:::-;;;;;4775:223;;2707:66:93;2800:15;;;4775:223:65;;;2782:34:93;2852:15;;;;2832:18;;;2825:43;2887:66;2989:15;;;2969:18;;;2962:43;3041:15;3021:18;;;3014:43;2669:19;;4775:223:65;2470:593:93;4625:382:65;-1:-1:-1;4488:3:65;;;;:::i;:::-;;;;4438:576;;;;3371:1647;3324:1694::o;2062:178:89:-;2101:24;2127:27;2158:13;:11;:13::i;:::-;885:56;;;902:11;885:56;;;3699:28:93;915:25:89;3743:12:93;;;3736:37;2100:71:89;;-1:-1:-1;2100:71:89;;-1:-1:-1;2177:58:89;;3789:12:93;885:56:89;;;;;;;;;;;;;877:65;;;:::i;:::-;2211:10;2223:11;2177:23;:58::i;1836:111:88:-;885:58;;;902:11;885:58;;;3699:28:93;915:27:88;3743:12:93;;;3736:37;1877:65:88;;3789:12:93;885:58:88;;;;;;;;;;;;877:67;;;:::i;:::-;1914:11;:9;:11::i;:::-;1927:14;:12;:14::i;:::-;1877:26;:65::i;2173:178::-;2212:24;2238:27;2269:13;:11;:13::i;:::-;885:58;;;902:11;885:58;;;3699:28:93;915:27:88;3743:12:93;;;3736:37;2211:71:88;;-1:-1:-1;2211:71:88;;-1:-1:-1;2288:58:88;;3789:12:93;885:58:88;3457:350:93;1760:111:90;885:56;;;902:11;885:56;;;3699:28:93;915:25:90;3743:12:93;;;3736:37;1801:65:90;;3789:12:93;885:56:90;;;;;;;;;;;;877:65;;;:::i;:::-;1838:11;:9;:11::i;:::-;1851:14;:12;:14::i;2097:178::-;2136:24;2162:27;2193:13;:11;:13::i;:::-;885:56;;;902:11;885:56;;;3699:28:93;915:25:90;3743:12:93;;;3736:37;2135:71:90;;-1:-1:-1;2135:71:90;;-1:-1:-1;2212:58:90;;3789:12:93;885:56:90;3457:350:93;409:228:52;551:23;555:14;551:23;538:37;534:2;530:46;;587:45;;-1:-1:-1;622:10:52;587:45;409:228;:::o;3395:319:90:-;3510:16;;;3524:1;3510:16;;;;;;;;3478:29;;3510:16;;;;;;;;;;-1:-1:-1;3510:16:90;3478:48;;3559:16;3532:12;3545:1;3532:15;;;;;;;;:::i;:::-;;;;;;:45;;;;;3618:6;3609:17;;3601:26;;;3583:12;3596:1;3583:15;;;;;;;;:::i;:::-;;;;;;;;;;;:44;;;;885:56;;;902:11;885:56;;;3699:28:93;915:25:90;3743:12:93;;;3736:37;885:56:90;;;;;;;;;;3789:12:93;;885:56:90;;3634:75;;877:65;;;:::i;:::-;3665:12;3679:1;3700:6;3682:26;;;;;;4325:14:93;4318:22;4313:3;4309:32;4297:45;;4367:1;4358:11;;4174:201;3682:26:90;;;;;;;;;;;;;3634:20;:75::i;:::-;3472:242;3395:319;;;:::o;1769:111:75:-;885:49;;;902:11;885:49;;;3699:28:93;915:18:75;3743:12:93;;;3736:37;1810:65:75;;3789:12:93;885:49:75;;;;;;;;;;;;877:58;;;:::i;:::-;1847:11;:9;:11::i;:::-;1860:14;:12;:14::i;2106:178::-;2145:24;2171:27;2202:13;:11;:13::i;:::-;885:49;;;902:11;885:49;;;3699:28:93;915:18:75;3743:12:93;;;3736:37;2144:71:75;;-1:-1:-1;2144:71:75;;-1:-1:-1;2221:58:75;;3789:12:93;885:49:75;3457:350:93;1885:111:72;885:55;;;902:11;885:55;;;3699:28:93;915:24:72;3743:12:93;;;3736:37;1926:65:72;;3789:12:93;885:55:72;;;;;;;;;;;;877:64;;;:::i;:::-;1963:11;:9;:11::i;:::-;1976:14;:12;:14::i;2222:178::-;2261:24;2287:27;2318:13;:11;:13::i;:::-;885:55;;;902:11;885:55;;;3699:28:93;915:24:72;3743:12:93;;;3736:37;2260:71:72;;-1:-1:-1;2260:71:72;;-1:-1:-1;2337:58:72;;3789:12:93;885:55:72;3457:350:93;1736:111:74;885:56;;;902:11;885:56;;;3699:28:93;915:25:74;3743:12:93;;;3736:37;1777:65:74;;3789:12:93;885:56:74;;;;;;;;;;;;877:65;;;:::i;:::-;1814:11;:9;:11::i;:::-;1827:14;:12;:14::i;2073:178::-;2112:24;2138:27;2169:13;:11;:13::i;:::-;885:56;;;902:11;885:56;;;3699:28:93;915:25:74;3743:12:93;;;3736:37;2111:71:74;;-1:-1:-1;2111:71:74;;-1:-1:-1;2188:58:74;;3789:12:93;885:56:74;3457:350:93;1793:111:73;956:54;;;973:11;956:54;;;3699:28:93;986:23:73;3743:12:93;;;3736:37;1834:65:73;;3789:12:93;956:54:73;;;;;;;;;;;;948:63;;;:::i;:::-;1871:11;:9;:11::i;2130:178::-;2169:24;2195:27;2226:13;:11;:13::i;:::-;956:54;;;973:11;956:54;;;3699:28:93;986:23:73;3743:12:93;;;3736:37;2168:71:73;;-1:-1:-1;2168:71:73;;-1:-1:-1;2245:58:73;;3789:12:93;956:54:73;3457:350:93;3332:274:73;3441:16;;;3455:1;3441:16;;;;;;;;;3409:29;;3441:16;;;;;;;;;;;-1:-1:-1;3441:16:73;3409:48;;3490:16;3463:12;3476:1;3463:15;;;;;;;;:::i;:::-;;;;;;;;;;;:45;;;;956:54;;;973:11;956:54;;;3699:28:93;986:23:73;3743:12:93;;;3736:37;956:54:73;;;;;;;;;;3789:12:93;;956:54:73;;3515:86;;948:63;;;:::i;:::-;3546:12;3560:1;3586:12;3580:19;;;;;;;;:::i;:::-;3563:37;;;;;;;4714:3:93;4710:16;;;;4728:66;4706:89;4694:102;;4821:1;4812:11;;4569:260;3515:86:73;3403:203;3332:274;;:::o;499:808:46:-;660:12;721:21;762:19;783:9;745:48;;;;;;;;;:::i;:::-;;;;;;;;;;;;;721:72;;855:12;869:17;890:8;:107;;960:6;:11;;980:5;988:8;960:37;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;890:107;;;907:6;:19;;927:8;907:29;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;890:107;854:143;;;;1078:7;1074:24;;;1094:4;-1:-1:-1;1087:11:46;;-1:-1:-1;;1087:11:46;1074:24;1291:4;1285:11;1278:4;1272;1268:15;1261:36;499:808;;;;;;;;:::o;1476:208:89:-;1590:15;;;1603:1;1590:15;;;;;;;;;1522:13;;;;1560:27;;1590:15;;;;;;;;;;;;;;;;;;;;1560:45;;1611:24;;;;;;;;;;;;;;;;;:11;1623:1;1611:14;;;;;;;;:::i;:::-;;;;;;:24;;;;1667:11;1641:38;;;;;;;;;;;;;;;;;;;;;;;1476:208;;:::o;1656:277:32:-;1764:16;:14;:16::i;:::-;1760:169;;;1790:51;1812:5;1819:9;1830:10;1790:21;:51::i;1760:169::-;1862:60;;;;;1869:10;;1862:30;;:60;;1893:5;;1900:9;;1911:10;;1862:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:277;;;:::o;1119:188:88:-;1207:19;;;1224:1;1207:19;;;;;;;;;1163:6;;;;1207:19;;;;;;;;;;;;-1:-1:-1;1207:19:88;1177:49;;1245:18;1232:7;1240:1;1232:10;;;;;;;;:::i;:::-;;;;;;:31;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1277:25:88;1294:7;1277:16;:25::i;:::-;1270:32;;;1119:188;:::o;1311:228::-;1402:19;;;1419:1;1402:19;;;;;;;;1358:6;;;;1402:19;1419:1;1402:19;;;;;;;;;;-1:-1:-1;1402:19:88;1372:49;;1440:18;1427:7;1435:1;1427:10;;;;;;;;:::i;:::-;;;;;;:31;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;1477:18;1464:7;1472:1;1464:10;;;;;;;;:::i;1937:258:32:-;2028:16;:14;:16::i;:::-;2024:167;;;2054:50;2079:5;2086:6;2094:9;2054:24;:50::i;2024:167::-;2125:59;;;;;;;;7551:25:93;;;7592:18;;;7585:34;;;7635:18;;;7628:34;;;2132:10:32;;2125:33;;7524:18:93;;2125:59:32;7293:375:93;1577:218:88;1691:15;;;1704:1;1691:15;;;;;;;;;1623:13;;;;1661:27;;1691:15;;;;;;;;;;;;;;;;;;;;1661:45;;1712:32;;;;;;;;;;;;;;;;;:11;1724:1;1712:14;;;;;;;;:::i;:::-;;;;;;:32;;;;1778:11;1750:40;;;;;;;;;;;;;;;;;;;;;;;1577:218;;:::o;1055:185:90:-;1143:19;;;1160:1;1143:19;;;;;;;;;1099:6;;;;1143:19;;;;;;;;;;;;-1:-1:-1;1143:19:90;1113:49;;1181:15;1168:7;1176:1;1168:10;;;;;;;;:::i;1244:228::-;1335:19;;;1352:1;1335:19;;;;;;;;1291:6;;;;1335:19;1352:1;1335:19;;;;;;;;;;-1:-1:-1;1335:19:90;1305:49;;1373:18;1360:7;1368:1;1360:10;;;;;;;;:::i;:::-;;;;;;:31;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;1410:18;1397:7;1405:1;1397:10;;;;;;;;:::i;1510:209::-;1624:15;;;1637:1;1624:15;;;;;;;;;1556:13;;;;1594:27;;1624:15;;;;;;;;;;;;;;;;;;;;1594:45;;1645:25;;;;;;;;;;;;;;;;;:11;1657:1;1645:14;;;;;;;;:::i;:::-;;;;;;:25;;;;1702:11;1676:38;;;;;;;;;;;;;;;;;;;;;;;1510:209;;:::o;2438:274:32:-;2549:16;:14;:16::i;:::-;2545:163;;;2575:48;2594:5;2601:3;2606:10;2618:4;2575:18;:48::i;:::-;2545:163;;;2644:57;;;;;2651:10;;2644:27;;:57;;2672:5;;2679:3;;2684:10;;2696:4;;2644:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2438:274;;;;:::o;1034:222:75:-;1122:19;;;1139:1;1122:19;;;;;;;;1078:6;;;;1122:19;1139:1;1122:19;;;;;;;;;;-1:-1:-1;1122:19:75;1092:49;;1160:18;1147:7;1155:1;1147:10;;;;;;;;:::i;:::-;;;;;;:31;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;1197:15;1184:7;1192:1;1184:10;;;;;;;;:::i;1260:191::-;1351:19;;;1368:1;1351:19;;;;;;;;;1307:6;;;;1351:19;;;;;;;;;;;;-1:-1:-1;1351:19:75;1321:49;;1389:18;1376:7;1384:1;1376:10;;;;;;;;:::i;1489:239::-;1603:15;;;1616:1;1603:15;;;1535:13;1603:15;;;;;;1535:13;;1573:27;;1603:15;;;;;;;;;;;;;;;;;;;;1573:45;;1624:25;;;;;;;;;;;;;;;;;:11;1636:1;1624:14;;;;;;;;:::i;:::-;;;;;;:25;;;;1655:31;;;;;;;;;;;;;;;;;:11;1667:1;1655:14;;;;;;;;:::i;:::-;;;;;;:31;;;;1711:11;1692:31;;;;;;;;;;;;;;;;;;;;;;;1489:239;;:::o;1060:261:72:-;1148:19;;;1165:1;1148:19;;;;;;;;;1104:6;;;;1148:19;;;;;;;;;;;-1:-1:-1;1148:19:72;1118:49;;1186:18;1173:7;1181:1;1173:10;;;;;;;;:::i;:::-;;;;;;:31;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;1223:18;1210:7;1218:1;1210:10;;;;;;;;:::i;:::-;;;;;;:31;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;1260:17;1247:7;1255:1;1247:10;;;;;;;;:::i;1325:190::-;1416:19;;;1433:1;1416:19;;;;;;;;;1372:6;;;;1416:19;;;;;;;;;;;;-1:-1:-1;1416:19:72;1386:49;;1454:17;1441:7;1449:1;1441:10;;;;;;;;:::i;1553:291::-;1667:15;;;1680:1;1667:15;;;;;;;;;1599:13;;;;1637:27;;1667:15;;;;;;;;;;;;;;;;;;;;1637:45;;1688:28;;;;;;;;;;;;;;;;;:11;1700:1;1688:14;;;;;;;;:::i;:::-;;;;;;:28;;;;1722:23;;;;;;;;;;;;;;;;;:11;1734:1;1722:14;;;;;;;;:::i;:::-;;;;;;:23;;;;1751:41;;;;;;;;;;;;;;;;;:11;1763:1;1751:14;;;;;;;;:::i;:::-;;;;;;:41;;;;1827:11;1798:41;;;;;;;;;;;;;;;;;;;;;;;1553:291;;:::o;1476:219:74:-;1590:15;;;1603:1;1590:15;;;;;;;;;1522:13;;;;1560:27;;1590:15;;;;;;;;;;;;;;;;;;;;1560:45;;1611:35;;;;;;;;;;;;;;;;;:11;1623:1;1611:14;;;;;;;;:::i;:::-;;;;;;:35;;;;1678:11;1652:38;;;;;;;;;;;;;;;;;;;;;;;1476:219;;:::o;1120:186:73:-;1208:19;;;1225:1;1208:19;;;;;;;;;1164:6;;;;1208:19;;;;;;;;;;;;-1:-1:-1;1208:19:73;1178:49;;1246:16;1233:7;1241:1;1233:10;;;;;;;;:::i;1539:213::-;1653:15;;;1666:1;1653:15;;;;;;;;;1585:13;;;;1623:27;;1653:15;;;;;;;;;;;;;;;;;;;;1623:45;;1674:31;;;;;;;;;;;;;;;;;:11;1686:1;1674:14;;;;;;;;:::i;:::-;;;;;;:31;;;;1735:11;1711:36;;;;;;;;;;;;;;;;;;;;;;;1539:213;;:::o;575:497:32:-;624:12;753:9;741:22;866:13;;;862:30;;888:4;881:11;;;575:497;:::o;862:30::-;985:4;970:29;;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;966:102;;1056:5;1046:15;;638:434;575:497;:::o;966:102::-;1020:4;1010:14;;638:434;575:497;:::o;3926:488:30:-;4032:13;4048:18;4058:7;4048:9;:18::i;:::-;4032:34;;4152:10;:17;4173:1;4152:22;:65;;;;4199:18;:6;:16;:18::i;:::-;4178:39;;:10;:17;:39;4152:65;4146:176;;4277:18;:6;:16;:18::i;:::-;4297:17;;4235:80;;;;;8893:4:93;8881:17;;;4235:80:30;;;8863:36:93;8915:18;;;8908:34;8836:18;;4235:80:30;;;;;;;;4146:176;4348:61;4366:7;4375:9;4397:10;4386:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;4348:17;:61::i;842:1591:27:-;910:6;945:2;928:7;:14;:19;924:71;;;980:7;:14;956:39;;-1:-1:-1;;;956:39:27;;;;;;9384:25:93;;9372:2;9357:18;;9238:177;924:71:27;1001:14;1021:13;1040:18;1193:21;1225:9;1220:665;1244:7;:14;1240:1;:18;1220:665;;;1270:23;1303:32;:7;1311:1;1303:10;;;;;;;;:::i;:::-;;;;;;;:30;;;;;;;;:::i;:::-;;:32::i;:::-;1270:66;-1:-1:-1;1413:20:27;;;;1409:322;;1537:16;1533:67;;;1562:38;;;;;;;;;;;;;;1533:67;1610:14;;;;:::i;:::-;;;;1409:322;;;1718:4;1699:23;;1409:322;1739:26;1749:16;1739:26;;:::i;:::-;;-1:-1:-1;1782:57:27;1798:6;1806:5;:1;1810;1806:5;:::i;:::-;1826:7;1834:1;1826:10;;;;;;;;:::i;:::-;;;;;;;1820:17;;;;;;;;:::i;:::-;1813:25;;1768:1:22;1764:13;;1935:29;;;1711:18;1760:24;;;1867:9;1856:21;;1924:41;1599:420;;;;;;1782:57:27;1773:66;-1:-1:-1;;1867:3:27;;1220:665;;;;1928:19;1974:12;1956:7;:14;1950:36;;;;:::i;:::-;1928:58;;2012:2;1996:13;:18;;;1992:69;;;2023:38;;-1:-1:-1;;;2023:38:27;;10336:4:93;10324:17;;2023:38:27;;;10306:36:93;10279:18;;2023:38:27;10162:186:93;1992:69:27;2379:9:22;2368:21;;2179:14:27;;;;2436:41:22;2142:53:27;-1:-1:-1;1867:9:22;1856:21;;1935:29;;;;;;1924:41;2219:57:27;-1:-1:-1;1867:9:22;1856:21;;1935:29;;;;;;1924:41;2318:49:27;2309:58;842:1591;-1:-1:-1;;;;;;;842:1591:27:o;3382:490:30:-;3510:43;:11;3545:5;3510:20;:43::i;:::-;3559:40;:9;3592:4;3559:18;:40::i;:::-;3653:17;3662:7;3653:8;:17::i;:::-;3649:110;;;3724:7;3733:18;:7;:16;:18::i;:::-;3687:65;;;;;;;;;;;;:::i;3649:110::-;3792:75;3835:7;3844:11;3857:9;3792:42;:75::i;7911:974::-;8021:13;8037:18;8047:7;8037:9;:18::i;:::-;8021:34;;8104:46;8118:7;8127:3;8132:11;8145:4;8104:46;;;;;;;;;:::i;:::-;;;;;;;;8221:22;8246:18;8256:7;8246:9;:18::i;:::-;8221:43;;8276:9;8271:154;8291:5;:12;8287:1;:16;8271:154;;;8318:15;8347:5;8353:1;8347:8;;;;;;;;:::i;:::-;;;;;;;8318:38;;8364:4;:21;;;8386:7;8395:3;8400:11;8413:4;8364:54;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8310:115;8305:3;;;;;:::i;:::-;;;;8271:154;;;;8449:24;:6;:22;:24::i;:::-;8435:38;;:11;:38;;;8431:229;;;8483:74;8517:7;8526:3;8531:6;8539:11;8552:4;8483:33;:74::i;:::-;8431:229;;;8578:75;8613:7;8622:3;8627:6;8635:11;8648:4;8578:34;:75::i;:::-;8733:9;8728:153;8748:5;:12;8744:1;:16;8728:153;;;8775:15;8804:5;8810:1;8804:8;;;;;;;;:::i;:::-;;;;;;;8775:38;;8821:4;:20;;;8842:7;8851:3;8856:11;8869:4;8821:53;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8767:114;8762:3;;;;;:::i;:::-;;;;8728:153;;2576:240;2635:13;2665:37;2694:7;2665:28;:37::i;:::-;2656:46;-1:-1:-1;5426:35:27;2708:104:30;;2777:7;2786:18;:7;:16;:18::i;:::-;2745:60;;;;;;;;;;;;:::i;2708:104::-;2576:240;;;:::o;5164:132:27:-;5221:5;5267:24;5284:6;5267:16;:24::i;:::-;5241:23;5257:6;5241:15;:23::i;:::-;:50;;;;:::i;:::-;5234:57;5164:132;-1:-1:-1;;5164:132:27:o;8652:326:39:-;8757:18;8778:39;8785:9;8796:20;8778:6;:39::i;:::-;8856:16;;;8870:1;8856:16;;;;;;;;;8757:60;;-1:-1:-1;8824:29:39;;8856:16;;;;;;;;;;;;-1:-1:-1;8856:16:39;8824:48;;8905:7;8878:12;8891:1;8878:15;;;;;;;;:::i;:::-;;;;;;;;;;;:36;;;;741:63;;;-1:-1:-1;;;741:63:39;;;3699:28:93;779:24:39;3743:12:93;;;3736:37;741:63:39;;;;;;;;;;3789:12:93;;741:63:39;;8921:52;;733:72;;;:::i;:::-;8953:12;8967:5;8921:21;:52::i;:::-;8751:227;;8652:326;;;:::o;3194:543:21:-;3260:7;3273:13;3295:10;3289:17;;;;;;;;:::i;:::-;3273:33;;;;3323:2;3315:5;:10;3311:229;;;3357:9;:5;3365:1;3357:9;:::i;:::-;3350:16;3194:543;-1:-1:-1;;;3194:543:21:o;3311:229::-;3389:2;3381:5;:10;3377:163;;;3448:2;3436:9;:5;3444:1;3436:9;:::i;:::-;:14;;;;:::i;3377:163::-;3473:2;3465:5;:10;3461:79;;;3533:2;3521:9;:5;3529:1;3521:9;:::i;3461:79::-;3586:15;3572:10;:29;;;;;;;;:::i;:::-;;3568:118;;-1:-1:-1;3616:1:21;;3194:543;-1:-1:-1;;3194:543:21:o;3568:118::-;3646:18;3632:10;:32;;;;;;;;:::i;:::-;;3628:58;;-1:-1:-1;3679:2:21;;3194:543;-1:-1:-1;;3194:543:21:o;3628:58::-;-1:-1:-1;3733:1:21;;3194:543;-1:-1:-1;;3194:543:21:o;5470:1506:27:-;5577:10;5576:11;:31;;;;-1:-1:-1;5426:35:27;;5591:16;5572:70;;;5616:26;;-1:-1:-1;;;5616:26:27;;5640:1;5616:26;;;9384:25:93;9357:18;;5616:26:27;9238:177:93;5572:70:27;5704:25;5732;:6;:23;:25::i;:::-;5704:53;;;;5787:2;5767:17;:22;5763:77;;;5798:42;;-1:-1:-1;;;5798:42:27;;;;;9384:25:93;;;9357:18;;5798:42:27;9238:177:93;5763:77:27;5847:24;5874;:6;:22;:24::i;:::-;5847:51;;;-1:-1:-1;6004:2:27;5965:36;5984:17;5847:51;5965:36;:::i;:::-;:41;5961:115;;;6039:36;6058:17;6039:16;:36;:::i;:::-;6015:61;;-1:-1:-1;;;6015:61:27;;;;;;9384:25:93;;9372:2;9357:18;;9238:177;5961:115:27;6135:25;6166:26;6203:9;6198:488;6218:36;6237:17;6218:16;:36;:::i;:::-;6214:1;:40;6198:488;;;6312:1;6270:39;:17;:6;6285:1;6270:14;:17::i;:::-;:37;;;;;;;;:::i;:39::-;:43;6266:375;;;6374:16;6369:1;:21;6365:72;;6399:38;;;;;;;;;;;;;;6365:72;6447:19;;;;:::i;:::-;;;;6266:375;;;6539:16;6535:1;:20;6531:71;;;6564:38;;;;;;;;;;;;;;6531:71;6612:20;;;;:::i;:::-;;;;6266:375;6668:3;;6198:488;;;;6759:16;6738:17;:37;6734:92;;6784:42;;-1:-1:-1;;;6784:42:27;;;;;9384:25:93;;;9357:18;;6784:42:27;9238:177:93;6734:92:27;6902:17;6880:18;:39;6876:95;;6928:43;;-1:-1:-1;;;6928:43:27;;;;;9384:25:93;;;9357:18;;6928:43:27;9238:177:93;6876:95:27;5534:1442;;;;5470:1506;;:::o;3201:130:30:-;3259:4;3279:47;:37;3308:7;3279:28;:37::i;:::-;5426:35:27;;5352:114;3279:47:30;3278:48;;3201:130;-1:-1:-1;;3201:130:30:o;78:124:33:-;136:13;188:7;171:25;;;;;;11307:19:93;;11351:2;11342:12;;11178:182;171:25:33;;;;;;;;;;;;;157:40;;78:124;;;:::o;18779:550:30:-;18906:16;;;18920:1;18906:16;;;;;;;;;18883:20;;18906:16;;;;;;;;;;;-1:-1:-1;18906:16:30;18883:39;;18937:7;18928:3;18932:1;18928:6;;;;;;;;:::i;:::-;;;;;;;;;;;:16;;;;17865:56;;;-1:-1:-1;;;17865:56:30;;;3699:28:93;;;;17903:17:30;3743:12:93;;;3736:37;18950:16:30;;18969:41;;3789:12:93;17865:56:30;;;;;;;;;;;;;17857:65;;;:::i;:::-;19006:3;18969:22;:41::i;:::-;412:28:29;;;18950:60:30;-1:-1:-1;19093:76:30;19125:15;:8;19136:4;19125:15;:::i;:::-;19148:9;412:28:29;;327:123;19093:76:30;17865:56;;;-1:-1:-1;;;17865:56:30;;;3699:28:93;17903:17:30;3743:12:93;;;3736:37;19221:103:30;;3789:12:93;17865:56:30;;;;;;;;;;;;17857:65;;;:::i;:::-;19260:3;19282:11;19304:9;19265:58;;;;;;11522:19:93;;;;11557:12;;11550:28;11594:12;;19265:58:30;;;-1:-1:-1;;19265:58:30;;;;;;;;;;19221:103;;;;;:::i;:::-;;;;;;;;18877:452;;18779:550;;;:::o;2349:326:37:-;2460:16;;;2474:1;2460:16;;;;;;;;;2398:22;;2428:29;;2460:16;;;;;;;;;;;;-1:-1:-1;2460:16:37;2428:48;;2509:3;2482:12;2495:1;2482:15;;;;;;;;:::i;:::-;;;;;;;;;;;:32;;;;741:55;;;-1:-1:-1;;;741:55:37;;;3699:28:93;779:16:37;3743:12:93;;;3736:37;741:55:37;;;;;;;;;;3789:12:93;;741:55:37;;-1:-1:-1;;2542:47:37;;733:64;;;:::i;:::-;2573:12;2587:1;2542:20;:47::i;:::-;2521:68;;2603:66;:44;2624:5;2631:1;2634:5;:12;2603:20;:44::i;:::-;:64;:66::i;:::-;2595:75;2349:326;-1:-1:-1;;;;2349:326:37:o;4958:133:27:-;5021:5;4191:13:22;4187:24;;;5047:38:27;5041:45;;;4958:133;-1:-1:-1;;4958:133:27:o;19514:681:30:-;19731:21;19755:27;:6;:27;;;:14;:27::i;:::-;19731:51;;19828:4;:11;19792:32;:10;:30;;;;;;;;:::i;:32::-;:47;19788:157;;19892:32;:10;:30;;;;;;;;:::i;:32::-;19926:11;;19856:82;;;;;;;;12289:25:93;;;;12330:18;;;12323:34;12262:18;;19856:82:30;12115:248:93;19788:157:30;19994:16;20013:36;20036:7;20045:3;20013:22;:36::i;:::-;19994:55;;20055:14;20072:41;20093:6;20101:11;20072:20;:41::i;:::-;20055:58;;20119:71;20151:8;20169:6;20183:4;20119:13;:71::i;20199:556::-;20356:24;20397;:6;:22;:24::i;:::-;20383:38;;:11;:38;:::i;:::-;20356:65;;20466:75;20495:7;20504:3;20509:18;20529:4;:11;20466:28;:75::i;:::-;20591:27;20621:57;20645:7;20654:3;20659:18;20621:23;:57::i;:::-;20591:87;;20684:66;20716:19;20743:4;20684:13;:66::i;18106:292::-;18203:16;;;18217:1;18203:16;;;;;;;;;18166:6;;;;18203:16;;;;;;;;;;;;-1:-1:-1;18203:16:30;18180:39;;18234:7;18225:3;18229:1;18225:6;;;;;;;;:::i;:::-;;;;;;;;;;;:16;;;;17865:56;;;-1:-1:-1;;;17865:56:30;;;3699:28:93;;;;17903:17:30;3743:12:93;;;3736:37;18247:16:30;;18266:59;;3789:12:93;17865:56:30;3457:350:93;18266:59:30;18247:78;;18350:42;18381:8;3169:21:29;;3063:137;4749:134:27;4813:5;4191:13:22;4187:24;;;4839:38:27;4059:181:22;10709:459:39;10856:15;;;10869:1;10856:15;;;10808:12;10856:15;;;;;10808:12;10828:25;;10856:15;10869:1;10856:15;;;;;;;;;;-1:-1:-1;10856:15:39;10828:43;;10905:9;10899:23;10877:9;10887:1;10877:12;;;;;;;;:::i;:::-;;;;;;:46;;;;;;;;;;;10957:20;10951:34;10929:9;10939:1;10929:12;;;;;;;;:::i;:::-;;;;;;:57;;;;;;;;;;;10992:29;11024:32;11046:9;11024:21;:32::i;:::-;10992:64;-1:-1:-1;10992:64:39;11120:9;11140:20;11070:93;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11063:100;;;;10709:459;;;;:::o;2199:235:32:-;2293:16;:14;:16::i;:::-;2289:141;;;2319:37;2339:5;2346:3;2351:4;2319:19;:37::i;2289:141::-;2377:46;;;;;2384:10;;2377:28;;:46;;2406:5;;2413:3;;2418:4;;2377:46;;;:::i;4502:165:27:-;4572:10;4614:46;4641:6;4650:9;:5;4658:1;4650:9;:::i;:::-;4195:1:22;4191:13;4187:24;;4059:181;4614:46:27;4608:53;;4597:65;;;;;;;;:::i;25854:171:30:-;25948:7;17790:22;26005:7;26014:3;25988:30;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;25988:30:30;;;;;;;;;25978:41;;25988:30;25978:41;;;;;25854:171;-1:-1:-1;;;25854:171:30:o;4477:285:32:-;4573:12;4597:16;:14;:16::i;:::-;4593:165;;;4630:42;4649:5;4656:3;4661:10;4630:18;:42::i;:::-;4623:49;;;;4593:165;4700:51;;;;;4707:10;;4700:27;;:51;;4728:5;;4735:3;;4740:10;;4700:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4700:51:32;;;;;;;;;;;;:::i;1563:570:28:-;1654:5;1752:3;1743:5;:12;;:34;;;;;1766:4;:11;1759:3;:18;;1743:34;1737:85;;1805:4;1811:5;1818:3;1787:35;;;;;;;;;;;;;:::i;1737:85::-;1890:4;1880:15;;1937:17;1949:5;1880:15;1937:17;:::i;:::-;;-1:-1:-1;1960:12:28;1975:11;1981:5;1975:3;:11;:::i;:::-;642:17;2111:15;2103:3;2091:15;;;;2090:37;;;;;;-1:-1:-1;;;;;1563:570:28:o;22003:279:41:-;22067:23;22161:29;22193:34;22211:4;22217:2;22221:5;22193:17;:34::i;26112:251:30:-;26199:7;;;26238:102;26258:11;26254:15;;:1;:15;26238:102;;;26294:39;:17;:6;26309:1;26294:14;:17::i;:39::-;26284:49;;;;:::i;:::-;;-1:-1:-1;26271:3:30;;;;:::i;:::-;;;;26238:102;;;-1:-1:-1;26352:6:30;26112:251;-1:-1:-1;;;26112:251:30:o;454:238:29:-;543:21;614:4;608;604:15;587:32;;630:57;636:14;652:6;660:13;675:4;:11;630:5;:57::i;27640:682:30:-;27882:31;27916:43;27946:7;27955:3;27916:29;:43::i;:::-;27882:77;;27965:28;28015:57;28046:23;3169:21:29;;3063:137;28015:57:30;27965:108;-1:-1:-1;28131:63:30;27965:108;28131:63;;;28177:16;28131:25;:63::i;:::-;412:28:29;;;28114:80:30;-1:-1:-1;28228:89:30;327:123:29;26623:220:30;26753:7;17790:22;26810:7;26819:3;26824:11;26793:43;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;26793:43:30;;;;;;;;;26783:54;;26793:43;26783:54;;;;;26623:220;-1:-1:-1;;;;26623:220:30:o;215:108:29:-;288:30;294:14;310:1;313:4;288:5;:30::i;621:563:26:-;684:13;705:21;732:18;830:9;825:205;845:8;:15;841:1;:19;825:205;;;888:62;904:13;923:5;927:1;923;:5;:::i;:::-;919:9;;:1;:9;:::i;:::-;937:8;946:1;937:11;;;;;;;;:::i;:::-;;;;;;;930:19;;2278:1:22;2274:13;;2447:29;;;2219:20;2270:24;;;2379:9;2368:21;;2436:41;2107:424;;;;;;888:62:26;872:78;;973:8;982:1;973:11;;;;;;;;:::i;:::-;;;;;;;958:26;;;;;;;:::i;:::-;;-1:-1:-1;1012:3:26;;825:205;;;-1:-1:-1;2900:9:22;2889:21;;1112:19:26;;;;2957:41:22;1078:54:26;2620:432:22;5090:2817:30;5326:13;5342:18;5352:7;5342:9;:18::i;:::-;5326:34;;5445:20;5468:25;:6;4373:37:27;;;4279:137;5468:25:30;5445:48;-1:-1:-1;5445:48:30;5499:22;;5579:25;:6;:23;:25::i;:::-;:29;;;5575:271;;;-1:-1:-1;12471:4:22;12457:27;;;;12451:34;2453:51:26;;;;5788:26:30;;:2;:26;:::i;:::-;5770:44;;;;:::i;:::-;;;5575:271;5874:4;:11;5856:14;:29;5852:121;;5954:11;;5902:64;;;;;;;5938:14;;5902:64;;12289:25:93;;;12345:2;12330:18;;12323:34;12277:2;12262:18;;12115:248;5852:121:30;6021:34;6036:7;6045:3;6050:4;6021:34;;;;;;;;:::i;:::-;;;;;;;;6188:22;6213:18;6223:7;6213:9;:18::i;:::-;6188:43;;6242:9;6237:136;6257:5;:12;6253:1;:16;6237:136;;;6284:15;6313:5;6319:1;6313:8;;;;;;;;:::i;:::-;;;;;;;6284:38;;6330:4;:16;;;6347:7;6356:3;6361:4;6330:36;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6276:97;6271:3;;;;;:::i;:::-;;;;6237:136;;;;6436:26;6465:54;6506:7;6515:3;6465:40;:54::i;:::-;6436:83;-1:-1:-1;558:4:25;548:15;;6579:144:30;6436:83;6525:21;548:15:25;6704:12:30;6579:13;:144::i;:::-;6746:17;:12;6761:2;6746:17;:::i;:::-;6729:34;;;;:::i;:::-;;;6915:25;:6;:23;:25::i;:::-;:30;;6944:1;6915:30;6911:43;;6947:7;;;;;;;5090:2817;;;:::o;6911:43::-;7033:33;7069:61;7117:7;7126:3;7069:47;:61::i;:::-;412:28:29;;;7033:97:30;-1:-1:-1;7331:27:30;7364:25;7400:7;7395:508;7413:25;:6;:23;:25::i;:::-;7409:29;;:1;:29;;;7395:508;;;7472:58;7514:7;7523:3;7528:1;7472:41;:58::i;:::-;7450:80;-1:-1:-1;7558:24:30;:13;:24;;;:21;:24::i;:::-;7538:44;;7590:160;7630:19;7667:1;7693:13;7724:17;7590:13;:160::i;:::-;7758:34;7775:17;7758:34;;:::i;:::-;;-1:-1:-1;7885:3:30;;7395:508;;;;5176:2731;;;;;;;;;;5090:2817;;;:::o;17020:214::-;17119:12;17139:13;17155:18;17165:7;17155:9;:18::i;:::-;17139:34;;17186:43;17195:7;17204:3;17209:11;17222:6;17186:8;:43::i;2422:1642:43:-;2535:22;2565:21;2589;:11;2372:3:28;2350:25;;2276:104;2589:21:43;2565:45;-1:-1:-1;642:17:28;2513:38;;2616:20:43;2683:11;:39;;2707:15;:11;2721:1;2707:15;:::i;:::-;2701:21;;:3;:21;:::i;:::-;2683:39;;;2697:1;2683:39;2665:57;;2769:19;2841:11;2826:12;:26;;;;;:::i;:::-;;;-1:-1:-1;3009:26:43;3024:11;3009:12;:26;:::i;:::-;:31;3005:123;;3050:71;;;;;16352:2:93;3050:71:43;;;16334:21:93;16391:2;16371:18;;;16364:30;16430:34;16410:18;;;16403:62;16501:31;16481:18;;;16474:59;16550:19;;3050:71:43;16150:425:93;3005:123:43;3314:4;3309:2;3296:11;3292:20;3288:31;3401:4;3395:11;3386:20;;3437:13;3430:5;3426:25;3420:4;3413:39;;3502:11;3495:5;3488:26;3545:1;3585:4;3578:5;3574:16;3640:13;3522:532;3668:11;3665:1;3662:18;3522:532;;;3997:19;;3984:33;;3964:54;;3755:1;3748:9;;;;;3798:4;3781:22;;;;3867:30;;3522:532;;;3526:135;;;3182:878;;;;2422:1642;;;;;:::o;826:2233:29:-;1097:2;1088:6;:11;1070:29;;;;1117:2;1107:12;;;;;;:::i;:::-;;;-1:-1:-1;1212:10:29;;1208:1071;;1410:2;:11;;;1290:21;-1:-1:-1;;790:1:34;777:14;;755:37;753:40;1438:37:29;;1636:1;1628:6;1624:14;1670:4;1659:9;1655:20;1647:28;;1723:13;1717:20;1706:9;1702:36;1684:54;;1957:4;1953:9;1936:14;1930:21;1926:37;1861:4;1849:10;1845:21;1792:183;1766:14;1748:237;;2038:13;2028:6;:23;2024:36;;2053:7;;;;2024:36;2094:19;2112:1;2094:19;;:::i;:::-;;-1:-1:-1;;2201:30:29;;;;2241:23;;1208:1071;2326:2;2316:6;:12;2309:301;;2421:20;;2398:44;;2457:19;2475:1;2405:14;2457:19;:::i;:::-;;-1:-1:-1;2571:2:29;2554:19;;;;;-1:-1:-1;;2583:12:29;2309:301;;;2678:10;;2674:381;;2698:12;-1:-1:-1;;790:1:34;777:14;;755:37;753:40;2986:21:29;;2902:20;;2898:31;;3009:9;;2982:37;2847:184;2803:238;;-1:-1:-1;826:2233:29;;;;:::o;26928:188:30:-;27029:7;17790:22;27086:7;27095:3;27069:40;;;;;;;;;;:::i;2931:1018:26:-;3059:13;3128;3059;3219:20;3128:13;2453:51;;;2356:154;3219:20;3197:42;;3245:27;3275:36;3283:13;3304:5;3275:36;;:7;:36::i;:::-;3245:66;;3398:19;3379:15;:38;3375:184;;3442:37;3460:19;3442:15;:37;:::i;:::-;3427:52;;;;:::i;:::-;;;3375:184;;;3515:37;3537:15;3515:19;:37;:::i;:::-;3500:52;;;;:::i;:::-;;;3375:184;3621:14;3642:9;:5;3650:1;3642:9;:::i;:::-;3638:13;;:1;:13;:::i;:::-;3621:30;-1:-1:-1;2900:9:22;2889:21;;3767:27:26;;;;2957:41:22;3711:84:26;-1:-1:-1;2219:20:22;2278:1;2274:13;;2270:24;;;2379:9;2368:21;;3862:31:26;;;;2447:29:22;;;2436:41;3820:74:26;3801:93;2931:1018;-1:-1:-1;;;;;;;;2931:1018:26:o;2625:221::-;2709:7;;2745:9;:5;2753:1;2745:9;:::i;:::-;2741:13;;:1;:13;:::i;:::-;2724:30;;2782:57;2816:13;2832:6;4195:1:22;4191:13;4187:24;;4059:181;2782:57:26;2775:65;;;2625:221;-1:-1:-1;;;;2625:221:26:o;17334:389:30:-;17468:12;17506:24;:6;:22;:24::i;:::-;17492:38;;:11;:38;;;17488:231;;;17547:68;17581:7;17590:3;17595:11;17608:6;17547:33;:68::i;:::-;17540:75;;;;17488:231;17643:69;17678:7;17687:3;17692:11;17705:6;17643:34;:69::i;24147:599::-;24288:12;24379:21;24403:27;:6;:27;;;:14;:27::i;:::-;24379:51;;24436:18;24457:32;:10;:30;;;;;;;;:::i;:32::-;24436:53;;24495:16;24514:36;24537:7;24546:3;24514:22;:36::i;:::-;24495:55;;24556:14;24573:41;24594:6;24602:11;24573:20;:41::i;:::-;24556:58;;24663:78;24694:8;24712:10;24732:6;24663:12;:78::i;:::-;24656:85;24147:599;-1:-1:-1;;;;;;;;;24147:599:30:o;24854:552::-;24996:12;25080:24;25121;:6;:22;:24::i;:::-;25107:38;;:11;:38;:::i;:::-;25080:65;;25151:16;25170:57;25194:7;25203:3;25208:18;25170:23;:57::i;:::-;25151:76;;25233:18;25254:71;25306:18;25254:71;;:43;25284:7;25293:3;25254:29;:43::i;:::-;:51;;:71::i;:::-;25233:92;;25339:62;25370:8;25388:10;25339:12;:62::i;3449:447:29:-;3542:19;3719:6;3709:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3709:17:29;-1:-1:-1;3700:26:29;-1:-1:-1;3805:4:29;3793:17;;3821:51;3826:14;3842:6;3850;3793:17;3821:4;:51::i;27203:339:30:-;27304:13;27370:31;27404:43;27434:7;27443:3;27404:29;:43::i;3204:140:29:-;3281:12;3308:31;3313:14;3329:6;3337:1;3308:4;:31::i;4030:2169::-;4305:2;4296:6;:11;4278:29;;;;4325:2;4315:12;;;;;;:::i;:::-;;;-1:-1:-1;4420:10:29;;4416:1005;;4618:2;:11;;;4498:21;-1:-1:-1;;790:1:34;777:14;;755:37;753:40;4646:44:29;;4866:14;4860:21;4856:1;4848:6;4844:14;4840:42;5099:4;5095:9;5079:13;5073:20;5069:36;5004:4;4992:10;4988:21;4935:182;4910:13;4892:235;;5180:13;5170:6;:23;5166:36;;5195:7;;;;5166:36;5236:19;5254:1;5236:19;;:::i;:::-;;-1:-1:-1;;5383:23:29;;;;;5343:30;4416:1005;5467:2;5457:6;:12;5450:301;;5561:21;;5539:44;;5598:19;5616:1;5567:14;5598:19;:::i;:::-;;-1:-1:-1;;;5724:12:29;;;;5712:2;5695:19;5450:301;;;5819:10;;5815:380;;5839:12;-1:-1:-1;;790:1:34;777:14;;755:37;753:40;6127:20:29;;6042:21;;6038:32;;6149:9;;6123:36;5987:184;5944:237;;-1:-1:-1;4030:2169:29;;;;:::o;14:184:93:-;-1:-1:-1;;;63:1:93;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:334;274:2;268:9;330:2;320:13;;-1:-1:-1;;316:86:93;304:99;;433:18;418:34;;454:22;;;415:62;412:88;;;480:18;;:::i;:::-;516:2;509:22;203:334;;-1:-1:-1;203:334:93:o;542:245::-;590:4;623:18;615:6;612:30;609:56;;;645:18;;:::i;:::-;-1:-1:-1;702:2:93;690:15;-1:-1:-1;;686:88:93;776:4;682:99;;542:245::o;792:671::-;860:6;913:2;901:9;892:7;888:23;884:32;881:52;;;929:1;926;919:12;881:52;969:9;956:23;1002:18;994:6;991:30;988:50;;;1034:1;1031;1024:12;988:50;1057:22;;1110:4;1102:13;;1098:27;-1:-1:-1;1088:55:93;;1139:1;1136;1129:12;1088:55;1175:2;1162:16;1200:48;1216:31;1244:2;1216:31;:::i;:::-;1200:48;:::i;:::-;1271:2;1264:5;1257:17;1311:7;1306:2;1301;1297;1293:11;1289:20;1286:33;1283:53;;;1332:1;1329;1322:12;1283:53;1387:2;1382;1378;1374:11;1369:2;1362:5;1358:14;1345:45;1431:1;1410:14;;;1426:2;1406:23;1399:34;;;;1414:5;792:671;-1:-1:-1;;;;792:671:93:o;2281:184::-;-1:-1:-1;;;2330:1:93;2323:88;2430:4;2427:1;2420:15;2454:4;2451:1;2444:15;3068:184;-1:-1:-1;;;3117:1:93;3110:88;3217:4;3214:1;3207:15;3241:4;3238:1;3231:15;3257:195;3296:3;-1:-1:-1;;3320:5:93;3317:77;3314:103;;3397:18;;:::i;:::-;-1:-1:-1;3444:1:93;3433:13;;3257:195::o;3812:357::-;3930:12;;3977:4;3966:16;;;3960:23;;3930:12;3995:16;;3992:171;;;-1:-1:-1;;4075:6:93;4069:4;4065:17;4062:1;4058:25;4054:98;4047:5;4043:110;4034:119;;3992:171;;3812:357;;;:::o;4380:184::-;-1:-1:-1;;;4429:1:93;4422:88;4529:4;4526:1;4519:15;4553:4;4550:1;4543:15;4834:258;4906:1;4916:113;4930:6;4927:1;4924:13;4916:113;;;5006:11;;;5000:18;4987:11;;;4980:39;4952:2;4945:10;4916:113;;;5047:6;5044:1;5041:13;5038:48;;;-1:-1:-1;;5082:1:93;5064:16;;5057:27;4834:258::o;5097:450::-;5254:3;5292:6;5286:13;5308:53;5354:6;5349:3;5342:4;5334:6;5330:17;5308:53;:::i;:::-;5430:2;5426:15;;;;5443:66;5422:88;5383:16;;;;5408:103;;;5538:2;5527:14;;5097:450;-1:-1:-1;;5097:450:93:o;5552:274::-;5681:3;5719:6;5713:13;5735:53;5781:6;5776:3;5769:4;5761:6;5757:17;5735:53;:::i;:::-;5804:16;;;;;5552:274;-1:-1:-1;;5552:274:93:o;5831:317::-;5873:3;5911:5;5905:12;5938:6;5933:3;5926:19;5954:63;6010:6;6003:4;5998:3;5994:14;5987:4;5980:5;5976:16;5954:63;:::i;:::-;6062:2;6050:15;-1:-1:-1;;6046:88:93;6037:98;;;;6137:4;6033:109;;5831:317;-1:-1:-1;;5831:317:93:o;6153:616::-;6205:3;6243:5;6237:12;6270:6;6265:3;6258:19;6296:4;6337:2;6332:3;6328:12;6362:11;6389;6382:18;;6439:6;6436:1;6432:14;6425:5;6421:26;6409:38;;6481:2;6474:5;6470:14;6502:1;6512:231;6526:6;6523:1;6520:13;6512:231;;;6597:5;6591:4;6587:16;6582:3;6575:29;6625:38;6658:4;6649:6;6643:13;6625:38;:::i;:::-;6721:12;;;;6617:46;-1:-1:-1;6686:15:93;;;;6548:1;6541:9;6512:231;;;-1:-1:-1;6759:4:93;;6153:616;-1:-1:-1;;;;;;;6153:616:93:o;6774:514::-;7049:6;7038:9;7031:25;7092:2;7087;7076:9;7072:18;7065:30;7012:4;7118:45;7159:2;7148:9;7144:18;7136:6;7118:45;:::i;:::-;7211:9;7203:6;7199:22;7194:2;7183:9;7179:18;7172:50;7239:43;7275:6;7267;7239:43;:::i;:::-;7231:51;6774:514;-1:-1:-1;;;;;;6774:514:93:o;7673:435::-;7726:3;7764:5;7758:12;7791:6;7786:3;7779:19;7817:4;7846:2;7841:3;7837:12;7830:19;;7883:2;7876:5;7872:14;7904:1;7914:169;7928:6;7925:1;7922:13;7914:169;;;7989:13;;7977:26;;8023:12;;;;8058:15;;;;7950:1;7943:9;7914:169;;;-1:-1:-1;8099:3:93;;7673:435;-1:-1:-1;;;;;7673:435:93:o;8113:573::-;8390:6;8379:9;8372:25;8433:3;8428:2;8417:9;8413:18;8406:31;8353:4;8460:57;8512:3;8501:9;8497:19;8489:6;8460:57;:::i;:::-;8565:4;8557:6;8553:17;8548:2;8537:9;8533:18;8526:45;8619:9;8611:6;8607:22;8602:2;8591:9;8587:18;8580:50;8647:33;8673:6;8665;8647:33;:::i;8953:280::-;9152:2;9141:9;9134:21;9115:4;9172:55;9223:2;9212:9;9208:18;9200:6;9172:55;:::i;9420:175::-;9457:3;9501:4;9494:5;9490:16;9530:4;9521:7;9518:17;9515:43;;9538:18;;:::i;:::-;9587:1;9574:15;;9420:175;-1:-1:-1;;9420:175:93:o;9600:224::-;9639:3;9667:6;9700:2;9697:1;9693:10;9730:2;9727:1;9723:10;9761:3;9757:2;9753:12;9748:3;9745:21;9742:47;;;9769:18;;:::i;:::-;9805:13;;9600:224;-1:-1:-1;;;;9600:224:93:o;9829:128::-;9869:3;9900:1;9896:6;9893:1;9890:13;9887:39;;;9906:18;;:::i;:::-;-1:-1:-1;9942:9:93;;9829:128::o;9962:195::-;10000:4;10037;10034:1;10030:12;10069:4;10066:1;10062:12;10094:3;10089;10086:12;10083:38;;;10101:18;;:::i;:::-;10138:13;;;9962:195;-1:-1:-1;;;9962:195:93:o;10353:291::-;10530:6;10519:9;10512:25;10573:2;10568;10557:9;10553:18;10546:30;10493:4;10593:45;10634:2;10623:9;10619:18;10611:6;10593:45;:::i;10649:204::-;10687:3;10723:4;10720:1;10716:12;10755:4;10752:1;10748:12;10790:3;10784:4;10780:14;10775:3;10772:23;10769:49;;;10798:18;;:::i;:::-;10834:13;;10649:204;-1:-1:-1;;;10649:204:93:o;10858:125::-;10898:4;10926:1;10923;10920:8;10917:34;;;10931:18;;:::i;:::-;-1:-1:-1;10968:9:93;;10858:125::o;11617:493::-;11870:6;11859:9;11852:25;11913:2;11908;11897:9;11893:18;11886:30;11833:4;11939:56;11991:2;11980:9;11976:18;11968:6;11939:56;:::i;:::-;12043:9;12035:6;12031:22;12026:2;12015:9;12011:18;12004:50;12071:33;12097:6;12089;12071:33;:::i;12368:536::-;12601:6;12596:3;12589:19;12571:3;12637:6;12631:13;12653:60;12706:6;12701:2;12696:3;12692:12;12687:2;12679:6;12675:15;12653:60;:::i;:::-;12741:6;12736:3;12732:16;12722:26;;12779:6;12773:13;12795:61;12847:8;12842:2;12838;12834:11;12829:2;12821:6;12817:15;12795:61;:::i;:::-;12876:17;12895:2;12872:26;;12368:536;-1:-1:-1;;;;;12368:536:93:o;12909:403::-;13144:6;13133:9;13126:25;13187:6;13182:2;13171:9;13167:18;13160:34;13230:2;13225;13214:9;13210:18;13203:30;13107:4;13250:56;13302:2;13291:9;13287:18;13279:6;13250:56;:::i;13317:410::-;13548:6;13537:9;13530:25;13591:2;13586;13575:9;13571:18;13564:30;13511:4;13611:56;13663:2;13652:9;13648:18;13640:6;13611:56;:::i;:::-;13603:64;;13715:4;13707:6;13703:17;13698:2;13687:9;13683:18;13676:45;13317:410;;;;;;:::o;13732:634::-;13811:6;13864:2;13852:9;13843:7;13839:23;13835:32;13832:52;;;13880:1;13877;13870:12;13832:52;13913:9;13907:16;13946:18;13938:6;13935:30;13932:50;;;13978:1;13975;13968:12;13932:50;14001:22;;14054:4;14046:13;;14042:27;-1:-1:-1;14032:55:93;;14083:1;14080;14073:12;14032:55;14112:2;14106:9;14137:48;14153:31;14181:2;14153:31;:::i;14137:48::-;14208:2;14201:5;14194:17;14248:7;14243:2;14238;14234;14230:11;14226:20;14223:33;14220:53;;;14269:1;14266;14259:12;14220:53;14282:54;14333:2;14328;14321:5;14317:14;14312:2;14308;14304:11;14282:54;:::i;14371:360::-;14574:2;14563:9;14556:21;14537:4;14594:45;14635:2;14624:9;14620:18;14612:6;14594:45;:::i;:::-;14670:2;14655:18;;14648:34;;;;-1:-1:-1;14713:2:93;14698:18;14691:34;14586:53;14371:360;-1:-1:-1;14371:360:93:o;14736:483::-;14995:6;14984:9;14977:25;15038:6;15033:2;15022:9;15018:18;15011:34;15081:3;15076:2;15065:9;15061:18;15054:31;14958:4;15102:57;15154:3;15143:9;15139:19;15131:6;15102:57;:::i;:::-;15094:65;;15207:4;15199:6;15195:17;15190:2;15179:9;15175:18;15168:45;14736:483;;;;;;;:::o;15224:228::-;15264:7;15390:1;-1:-1:-1;;15318:74:93;15315:1;15312:81;15307:1;15300:9;15293:17;15289:105;15286:131;;;15397:18;;:::i;:::-;-1:-1:-1;15437:9:93;;15224:228::o;15457:::-;15496:3;15524:10;15561:2;15558:1;15554:10;15591:2;15588:1;15584:10;15622:3;15618:2;15614:12;15609:3;15606:21;15603:47;;;15630:18;;:::i;15690:184::-;-1:-1:-1;;;15739:1:93;15732:88;15839:4;15836:1;15829:15;15863:4;15860:1;15853:15;15879:266;15911:1;15937;15927:189;;-1:-1:-1;;;15969:1:93;15962:88;16073:4;16070:1;16063:15;16101:4;16098:1;16091:15;15927:189;-1:-1:-1;16130:9:93;;15879:266::o;16580:671::-;16916:6;16905:9;16898:25;16959:6;16954:2;16943:9;16939:18;16932:34;17002:3;16997:2;16986:9;16982:18;16975:31;16879:4;17029:57;17081:3;17070:9;17066:19;17058:6;17029:57;:::i;:::-;17134:9;17126:6;17122:22;17117:2;17106:9;17102:18;17095:50;17169:1;17161:6;17154:17;17204:8;17199:2;17191:6;17187:15;17180:33;17242:2;17234:6;17230:15;17222:23;;;16580:671;;;;;;:::o",
150
150
  "linkReferences": {},
151
151
  "immutableReferences": {
152
- "33621": [
152
+ "34222": [
153
153
  {
154
154
  "start": 357,
155
155
  "length": 32
@@ -165,7 +165,7 @@
165
165
  "getName()": "17d7de7c",
166
166
  "install(bytes)": "13861fb5"
167
167
  },
168
- "rawMetadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resourceSelector\",\"type\":\"string\"}],\"name\":\"RequiredModuleNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"SchemaLib_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SchemaLib_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\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"StoreCore_InvalidDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"StoreCore_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"StoreCore_TableAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"StoreCore_TableNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes16\",\"name\":\"\",\"type\":\"bytes16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"install\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getName()\":{\"notice\":\"Return the module name as a bytes16.\"}},\"notice\":\"The CoreModule registers internal World tables, the CoreSystem, and its function selectors. Note: This module is required to be delegatecalled (via `World.registerRootSystem`), because it needs to install root tables, systems and function selectors.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/modules/core/CoreModule.sol\":\"CoreModule\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@latticexyz/=node_modules/@latticexyz/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0xe881f296ba0fe410faa6395ee4a65b9bf154947aebc6aa323d41a0484504221e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba7f706464d14365ff751936ba96f79f200df7bcd9d9f8abccd0b41387ca7967\",\"dweb:/ipfs/QmTiHgH3ZM2oJoqsbNs3iwwPFNYFNU7m8co87woxRLaUZ6\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x117331c70b8cda783991a6b3e14861176068086526548d334cef8e1c24e16d5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://613026caf6782e8a4ad0f366781fc13141492b667a723bdea69250c9b517c790\",\"dweb:/ipfs/QmQqwBSjcrDUoVvmXxeKZZpyGSEpeMTh2QZRExQTdZLrCt\"]},\"node_modules/@latticexyz/store/src/IErrors.sol\":{\"keccak256\":\"0xc29b8d9d2597c6e9fcfbb37714cfa02270983c95e5a54b4c70eb9d99abcfe4e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df9591141bec48fb57df31c0c5632085d5347d194292b14b479930bac5c8274\",\"dweb:/ipfs/Qmaa3yV9YeJ14wYyWcFYHjAhRc9qaU6WrejNAmdSP7oQRV\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x83954f095b02ffb6ea0d391ecf6092e8304b03119dced171fbce4ee7483d3de2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02aeafbedef0b4d5845cd8e707673872fd4fc165fe8508ad348506f053e73ee5\",\"dweb:/ipfs/QmcE33C9Mw7fdnhHKmrabwzBH2JyjF4XCG3S4D9AtzMXs2\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0x706d0d1ddd874bdcd4f73422721420b32939c1c96d4718db8b1b8e9f78bfa76c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ed8c858fa9c3756cb70cb92bb860e0ae6429eb62551b502fb4a883e1344eb42\",\"dweb:/ipfs/QmezLAADZmFj8bKS9dccTQYHcpy4g8PSZ75AuvppSwjrW7\"]},\"node_modules/@latticexyz/store/src/PackedCounter.sol\":{\"keccak256\":\"0xd3d6a9bb72f5580e7b9794530a186e05e8d6da7c9172cb01e62fcc6e558dd052\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0625cb2a0d0e544800dff8194182aa440e1e6d61cc77b9e2d8d0186bce261146\",\"dweb:/ipfs/QmRmWWwTaJ7JPZZnJXavjJNXBzEjaK4KEzxaWj5MeJQUuH\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0xf06793dc2e9e9994403d29125359eb2f326b0e6e502d51a8e6e4e45fc9d90a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb23bf421b29839200e5584a770186309dd05cd77d4345c964f47528117a244\",\"dweb:/ipfs/QmQBvrDAtoqibky7CjCLKxGz3MquxK1iNk2Yac55Lc4xF5\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0x14879c6c859cad89451616dcee1ab6222fd565849809b89407de48f0c1a01133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924caa18aa0e656a295da626d586dfb120bbea321123010462b0640c7e0c52c4\",\"dweb:/ipfs/QmNueqwy4g5mwq9kXaPzue8X2mqyFjH2P2AFi3pNN3WTAt\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x86e1be7e58fbd1535c533a829f8a78c65136af92c9066e7d99d221a91dde8f9b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d5e232aefc4a518b0cc724b4b22e7b059a7bdde02e6512b627ce8693749c8de\",\"dweb:/ipfs/QmYsxGsak61jdiyq921tKzbWC7AtgA5FVsqsT1UL6CqzPT\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0xce2d227fc668c385bfded0a5af295a63363eb02233bafb60b4acbf048d4d4500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://597a716eed53c2bbbc911f94e7b6440684210dec82f9dbcb31c1f18fe10d3e8e\",\"dweb:/ipfs/QmSyaRAoh56KznH1zEArkwNUg3b6r8tanP7EALnZBcs5DE\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x1f0ba0265027e9f6e945ce3ab319bafb5312f285f82bdcc2f2beabd9d7e99d64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa22ad06665c32e8794eea0f93d8b9e3ce08d752d37a08a669688eb53f8faa08\",\"dweb:/ipfs/QmYLTumckjQcZwt7vCj2YzM91N5mtwaSQBLEYkBJPCpMtm\"]},\"node_modules/@latticexyz/store/src/TableId.sol\":{\"keccak256\":\"0x8c55662dc4f66be577bb96bfdcb65d95fe1323c733443ab749cb9ec1e58f0a6e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://209ed70247c1c64b56d9b21f2902e67e0994cb89ac19be8e1553dac9d978fb76\",\"dweb:/ipfs/QmVLYNDwBL3GZidDpwqFZx916zoGZ5tWVztxKQFEEzVybP\"]},\"node_modules/@latticexyz/store/src/Utils.sol\":{\"keccak256\":\"0x426216bfa1c0e70640787007a6e39257cf09e586fd04831ea4fb3dd9c5768fc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38e657fa9cfaebe39477eaff27d1ad4d7eeaf0c0058539d2ec7e6976d93df4f4\",\"dweb:/ipfs/QmRuaxqRjUrHHC2ZyTnpmq6sfrWGCDh91B6F5chFAToU6U\"]},\"node_modules/@latticexyz/store/src/codegen/Tables.sol\":{\"keccak256\":\"0x2eba8dd4e9f07b505438a2fb744ac7da26b1f6321b8a88054e9442db947ab435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd1a60dfff209a3f1df84aeb5d7f8a5cf0419c19be63bac428df0a779d5ba437\",\"dweb:/ipfs/QmaHem2GMJPHrtr1f7fk1ThTBESdYipmBxEEoKT1DBRmsd\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Callbacks.sol\":{\"keccak256\":\"0x81f25ea159146621a7add30f6701d4787bdf828f8782488d5f9be3eb9b965130\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64c3fdcafe59b27faaf03d5102b83defad59679099d9d1616b2d928ab1e86727\",\"dweb:/ipfs/Qmdr1W6j6bHnE7tjjLMo3G4sAWr4mKePWGDycPEDuKUAJX\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xc06e9aef4d145b3e10c1b210ea48a609744638609674c74bc7f77628f1b051d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94ea702795469b50d8c2cab53869caa456fe17d8b850445c59b9a1fd516d4b75\",\"dweb:/ipfs/QmNyiNVHyL2YnhiJfCpfjgNq7bSqCHghfS9wgQ8tTQ5x6e\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Mixed.sol\":{\"keccak256\":\"0xe48f64075029fd088e33201f451bf3fe9baed3db4360a58f7c710e5fd904fb21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e58e6ee54b6681f9ccb39259c4e22e74fdc1876c915c0143048810b03f4b3be\",\"dweb:/ipfs/QmQrxD8NDMd9DvrY5A9f1uRBjPwMgppoGn7w8R79qgdXuo\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreMetadata.sol\":{\"keccak256\":\"0x03eac5a0bbface43a3a01da3226443356a7aeeb6a88a063f6d9d18551613346c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f681ef065f0fed547f2675f4f21d8dd38e6d4845cccff0ac01e3d5b7b1a5c156\",\"dweb:/ipfs/QmcjEWQghNK2g1QHRqUWRmDXwweWhZTAJNRdyhyLpJf1V4\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Vector2.sol\":{\"keccak256\":\"0x6f77096a6301fa2438365eb4c577e5086f4e45369be801705f2a064af7de0d51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b3fa75b4475ff46cbdb9bc9907a766716090e077e1e4a95314b20857a70136\",\"dweb:/ipfs/QmNwqMe3ehQL8aJkvU93nXMSyr9vMCYFXBUdZZ3BqKRKdz\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0xe760dfb8ff20cfb44eee6a5f03ac84abbc91382fca2e36c88c92046e6b3a66e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75eb4b355c547ffee62031d8dfb80844fa31fa4460543a088278083662dc4c12\",\"dweb:/ipfs/Qmf8sRcrjJ6hEQ8TPwwe6KcXcE2MPw7Juvf7fKBZ1fBCt6\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x046f0a2dc543c7a80be91ff26b19990a10fbe73cb605f4944af38e04326a43df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d94f038e70179571d2aed3cbe03e812ce79a471372171fb78e8189bebd7ae1ac\",\"dweb:/ipfs/QmUV4bkaEc8hefLpLRaGwmu4WZsqRLE9e6R8UdaKPExb6p\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0xff0278a4e35174bbed8a38dad8ae7506f725bfe95f0b7c13829c353d68dd25dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26249ec0c2fa3a3430a2f8edbfc5cd678e34ea1cf1d7490ecaf1e925c976eb85\",\"dweb:/ipfs/QmUpkhr5kFiDKc7rZ2z5HcTf5PkrWVJu5sa31tYv911cPL\"]},\"node_modules/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"src/AccessControl.sol\":{\"keccak256\":\"0x1709609787c064269c201ba1683bb965746ecfffc2fd3ca945665150c1452b61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d40409726d6ebb08666be0c098a45ae2992535d0acb785cd9283daf3173fe45b\",\"dweb:/ipfs/QmdELXD8o41THzejXXWeBBYgb38U5TcK3Q4EygbmBkMRE9\"]},\"src/Call.sol\":{\"keccak256\":\"0x27114d009081f1f0a5c0b62c9ebe30415c76ed02fa46b305202bb5163711d926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a553cf84c877160c8db6978083f09632800032de6dcc5d8a5c3b9c18cabeb578\",\"dweb:/ipfs/QmWyCDz5NobNAHEs1PCftXJzV5oCu5SKfmzfA9BynSccGn\"]},\"src/ResourceSelector.sol\":{\"keccak256\":\"0xf6a1714d556e95fda532f630ac1bd8fd9843e980dffce29f81a29c0b6f02d368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5075e64cc1224bcd8ab46c16f85874ac91efecbf5cbeb82e5c1e3fa4f1a1edfa\",\"dweb:/ipfs/QmTqCVF6k7CMsiUJ223mXumjVyoCCNU2uE9fUHDgBmDdRj\"]},\"src/System.sol\":{\"keccak256\":\"0xf1342c8461adb4c5821c1ca106a67ba34402b36265fa63bf766eed937bd92bf9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea41f96a27a26d56d62824e007b3b0234d44fcd94361e5c8f40fdb334cbf444b\",\"dweb:/ipfs/QmRfj4iS5Lu9V4e47wsPQy4op1qQ6hqaJpERLB5EyzqW38\"]},\"src/Types.sol\":{\"keccak256\":\"0xc5784c3845cb97da4e1147a62163865bfb0090f43a6c3f672d5d69b7806e6545\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e849e5c0f3cf032ae2d5e77117f15cc942aa65f276e63a14feefe5b9bdd8b545\",\"dweb:/ipfs/QmSCpGZSBHjxrKm8LGD5tTEwe16aVd2ugQv5itA648hsVm\"]},\"src/WorldContext.sol\":{\"keccak256\":\"0xd44a445ff07ac1551e5a8f17450381664ecf68dcb1c89fee8fb11b9b73c9cd7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1235cc5636743b9afbb313676fc4c84ac5607142c758b0bfc59107aff79ed30c\",\"dweb:/ipfs/QmUtTUFjxKy7GtQC1Uzn6B2bRNZpcASFySPDjd16T47Rcz\"]},\"src/constants.sol\":{\"keccak256\":\"0xa0ae422aceefe0e7f200448201769e2bc527fa9e647475f65401558a03c0a83d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2473ca8ab5e184b7320c476fd07bdff31ff450fc750ab9eabb9c0a2ee43776e\",\"dweb:/ipfs/QmQ7sBqwPgj4AtsENyzCMFWVQeMzV5uuCN8ygNU2pKYotE\"]},\"src/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0xba4f728be36df11f4a988b61a577998d45da89314e26dcfa139e465840cef116\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0226026036fed756d36bde2f2fa9f8ad0ab21595a82740500d187e84a87e5a11\",\"dweb:/ipfs/QmZu2MPVGWvfP59KeKPzJXNt5pd5sqyVqFS1YYANocYsmG\"]},\"src/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0x9d15d5ac7512631590eda71cb19937d10a9b253d8a9b61bec54e7b0471b3b785\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b18f736784a0f38d5d6b62733fba106ecb84fc8d1b2390236ab8b162511e38\",\"dweb:/ipfs/QmPdvnPupSTBv8Vi2fRFe7A9NYfVuf2LtbdS1DiWXjHf9D\"]},\"src/interfaces/ICoreSystem.sol\":{\"keccak256\":\"0x21e72828243fbf26d21594a423e9a32e86df07d3e435ea216a27c326546df106\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ac8c4b2cdeddaf458e562e3f236a5c798664443eca1658038540d5585ee090\",\"dweb:/ipfs/QmPbh7JmBcxqJV4YP78zVXpsmCSGnSN6g7M27MTkyUjRgG\"]},\"src/interfaces/IErrors.sol\":{\"keccak256\":\"0x8a8a5caf964d336b38123704893463589b3bf6195405c9929c21291faf0e2f6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3aa3dcd4d059015580dbcad309db99db7a18fe7c015f1f83f56d84684f27bd14\",\"dweb:/ipfs/QmVpQW1kF4ruDmXtnTSnGRuxr7RtJqo8NwEXtfdA5TVKq1\"]},\"src/interfaces/IModule.sol\":{\"keccak256\":\"0x0c9f5a12f8b27ae6f02b6ca7ccfd7ab1de349e5c4773f99cfab1fd4721bc4a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cafb66fbd4b3587121a2f2ff6fc5e4c32796e6469719899e181c3abac1479178\",\"dweb:/ipfs/QmT6GKskhqmLadhuNVVbgDEgJ92jMsCdyLcfrSaiVQeZYf\"]},\"src/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0xa46d19a0e2e8291f363ff4af0241d4e20253ffdad61701daf859ed0255eac842\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46829c84dd28d04a060d2b602724589f23ab5f783a22c7dfd7f5c4ecdd41ad5d\",\"dweb:/ipfs/QmVi1ac1q4mX7gpsUH5RRP8tFRj7mYPQr7WzFJdTbUwxxu\"]},\"src/interfaces/ISystemHook.sol\":{\"keccak256\":\"0x6302d7467fb8b6ddf1bc089037e2b5c06441e8f975caf172f4875686b822448d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6adcd8e6d0a1d8c1e027398e5159533561002bb321df887baedcb0fbdc05c91f\",\"dweb:/ipfs/QmXAVXzE6hMysP7SXvxKt6XetH7bnvGVUuXJVJqmG22RSn\"]},\"src/interfaces/IWorldKernel.sol\":{\"keccak256\":\"0x5634912fe97592848fb360d55c442f3b37d6a9e77db46695891f0d5d942138c8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a48252b3e5286bd9119aad18366ec8b484334b93872239790717e44f2b125af2\",\"dweb:/ipfs/QmZddb4vrvyKNotTqr3gW3KsrVeH7fDYNv5Tr23uVema4x\"]},\"src/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0xddfb5dbefc5b2e53cda52363efac5bb8ae4fb1753c0443623da35be4f216edfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fec23b4a08823f7ed5c95944826c7affa43870dccfdbb76e12843a665961faa5\",\"dweb:/ipfs/QmWdQ8gh4UXQpvpdYvi8unPb8tdba4KRkq2rDA2caiDmx1\"]},\"src/modules/core/CoreModule.sol\":{\"keccak256\":\"0xb6141a50da84688082b1fac67f6d8a50b1a8ff17a76c88853794a769106bf4cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b3c2c7f67bed6c48b0fbba1589c021826c1c3325d91e4e0373a153c766fee1\",\"dweb:/ipfs/QmT1BCpRgeahseGPN3QLECQpr1NHAENdN2M3H3McWengon\"]},\"src/modules/core/CoreSystem.sol\":{\"keccak256\":\"0x46a094b89e7b5f7315e314137e58e5c1a0e941b1b911548400c98502568de490\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e152579926bacf280a3b2d5e3b3478ba5c8cbe850a4736516acc4af36d4a1dc\",\"dweb:/ipfs/QmcEgDCRpThAQ1WcThhXSeZ3FuH393SbmuEe4cKjPxruWC\"]},\"src/modules/core/constants.sol\":{\"keccak256\":\"0xf8dd287f03dad9b27801f74977c49e9fd8d4f36b8084ef8a742fa39a18f158bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c391d8f7b843a8e71b696218e4463167ee5ee220a783fac0d17adf41d6fc04cf\",\"dweb:/ipfs/QmWNQQWpzrG8oXaZdUYSixkEpf3Dci9F2BtUJnWhjNyQaw\"]},\"src/modules/core/implementations/AccessManagementSystem.sol\":{\"keccak256\":\"0x0a423051cc36004d7deadbc109c545e0f40230acc4f9d770a352f3e3ae84cacb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dfc31e43d8b64f58db6faa9f2cd72c8ad5fdd1c9161a6444c8f4e880f456be6\",\"dweb:/ipfs/QmQa9bP1bw18JRhWd9yBwz8HpNDxqbWwQZH1W6necobdP7\"]},\"src/modules/core/implementations/ModuleInstallationSystem.sol\":{\"keccak256\":\"0x0c464af021df4bcc2e8e79d7e8a646a447f4b32cb286de5f45d23da5781fd082\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://958ff6c39938acad1cc6b39823f6aa358de357dbbc8ec853208e262dd580bd26\",\"dweb:/ipfs/QmPxKoWPNYVorZs8SQhUkwRWEFmD3N5Ry8ZBckDuhtumqD\"]},\"src/modules/core/implementations/StoreRegistrationSystem.sol\":{\"keccak256\":\"0x621c5fbb3e6d80b91002169da8a7b0a3401f36a6f238de3d6c6f63d2472ccefc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a5529a9a1834a164a1f29336b57f80c7a53990939fe277dd230e0efd8fbd775f\",\"dweb:/ipfs/QmdHYDKPub4Euvt3fg9wRxRUPy7S9bfB139tXLByGnHsLn\"]},\"src/modules/core/implementations/WorldRegistrationSystem.sol\":{\"keccak256\":\"0x473a0da9d67d524222a1b69b5358be1ea978bee25f7779adc41c7d94d661b64f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7519eb2ec796dd7ac37a0766f281317f1dfbcdf6a723256bd39e872e56fa2bbf\",\"dweb:/ipfs/QmZ6MAyZWF6f2QstpV33KBPH9ZvoDmHCAHQ8KhMJALQMDj\"]},\"src/modules/core/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x3d8a4cac9dcd5f479faa48b5e5a82f4100615afa674c96e35a840847fedd043e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1f1136dc47239b2032ddbc77f907a2aac632f66f7a8b7f4596e848b2b47263c\",\"dweb:/ipfs/Qmd4XZ8mZs5R1B4oVJwSxxFWGj5VcZ6buKoWPeHJQr6oCu\"]},\"src/modules/core/tables/ResourceType.sol\":{\"keccak256\":\"0x86bbd2b81790839870cdd22ace8b8ac220e9e4c802eaa60d80cbd6317e38b860\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc057e0c3e180abc83147f4aa7d5f0137685b6b424305a4d9b524889ea34c4c8\",\"dweb:/ipfs/QmQUsuwGSF15Xe7qxvEiJbR8RgWoLBzjvTjC3gFVio1XXw\"]},\"src/modules/core/tables/SystemRegistry.sol\":{\"keccak256\":\"0x0a1155046675fe9cb96657672edc580e96dedc65795e7218a874950e8c39d0d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e484c6527ce4dce3f8adec9eb43c3d3cc44ecf57405078afe235afd06f706f3d\",\"dweb:/ipfs/QmfUysQS3YRW64KMyMDgYfwcXJJ8CrQsntwpD8bh22d91Y\"]},\"src/modules/core/tables/Systems.sol\":{\"keccak256\":\"0x4bac2d11ed8b4c4ebd9a5ad7fe194c23c799d21aa222877896f0781c71c46eec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8df7240855a018acdc348724c495110ef8313841bfb33a1fe4bd2c67c378cbc\",\"dweb:/ipfs/QmevZAkn4ohkjUzzTp1nYEFENKTt8p8xY2eXAkofV7Pwkk\"]},\"src/tables/InstalledModules.sol\":{\"keccak256\":\"0x0a2a13f174a53839754ab151d26d6d30018a9811e386691431660d0f19cd37fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c1e2784f21144cb127d3f18473541d33c7ad8f2f8e18f64fccc6f03bc34a667\",\"dweb:/ipfs/QmbAVUb6feHKm8weavZw4bzovsYHp9GqVzAw1LmA15xgNf\"]},\"src/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x305c60ea746f91db681eb9beaadbe3cd39e5d6839bb9499c0181c53fa312beb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3166cf67b2dc066ccd2145452b26069b8b849b68de52d759b226396f0f95c362\",\"dweb:/ipfs/QmSkM1zDeAVQay9XHNtKBS8Vv9hPmhzDbJ1Y9ihZjQsziU\"]},\"src/tables/ResourceAccess.sol\":{\"keccak256\":\"0x8bbcbae889a7c9b71d3606309f9013911693a23f110d869aa24f4c19636ef97c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d49a931783a91c903e7915c7489a6813dfb30bfdc9a634aaff0cb6b9894a45a\",\"dweb:/ipfs/QmeU9CzyZBAoYK7pRxDsAq22vXd6o5cnEAGQ26q7eQUoRc\"]}},\"version\":1}",
168
+ "rawMetadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resourceSelector\",\"type\":\"string\"}],\"name\":\"RequiredModuleNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"SchemaLib_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SchemaLib_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\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"StoreCore_InvalidDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"StoreCore_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"StoreCore_TableAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"StoreCore_TableNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes16\",\"name\":\"\",\"type\":\"bytes16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"install\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getName()\":{\"notice\":\"Return the module name as a bytes16.\"}},\"notice\":\"The CoreModule registers internal World tables, the CoreSystem, and its function selectors. Note: This module is required to be delegatecalled (via `World.registerRootSystem`), because it needs to install root tables, systems and function selectors.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/modules/core/CoreModule.sol\":\"CoreModule\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@latticexyz/=node_modules/@latticexyz/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0xe881f296ba0fe410faa6395ee4a65b9bf154947aebc6aa323d41a0484504221e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba7f706464d14365ff751936ba96f79f200df7bcd9d9f8abccd0b41387ca7967\",\"dweb:/ipfs/QmTiHgH3ZM2oJoqsbNs3iwwPFNYFNU7m8co87woxRLaUZ6\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x117331c70b8cda783991a6b3e14861176068086526548d334cef8e1c24e16d5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://613026caf6782e8a4ad0f366781fc13141492b667a723bdea69250c9b517c790\",\"dweb:/ipfs/QmQqwBSjcrDUoVvmXxeKZZpyGSEpeMTh2QZRExQTdZLrCt\"]},\"node_modules/@latticexyz/store/src/IErrors.sol\":{\"keccak256\":\"0xc29b8d9d2597c6e9fcfbb37714cfa02270983c95e5a54b4c70eb9d99abcfe4e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df9591141bec48fb57df31c0c5632085d5347d194292b14b479930bac5c8274\",\"dweb:/ipfs/Qmaa3yV9YeJ14wYyWcFYHjAhRc9qaU6WrejNAmdSP7oQRV\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x465c23c85a77fdc6001f06a6899080c1d6cfef9858886d7d922e54fce1eb79e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6358088868fa52711e65d3462eb6b6762fe736eb7f033909e3260280b6a87957\",\"dweb:/ipfs/QmdkwwvTa9Hzc5SDP4C1hvrKzc8SxWNDrxNqQKw4ZoCKzL\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0x706d0d1ddd874bdcd4f73422721420b32939c1c96d4718db8b1b8e9f78bfa76c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ed8c858fa9c3756cb70cb92bb860e0ae6429eb62551b502fb4a883e1344eb42\",\"dweb:/ipfs/QmezLAADZmFj8bKS9dccTQYHcpy4g8PSZ75AuvppSwjrW7\"]},\"node_modules/@latticexyz/store/src/PackedCounter.sol\":{\"keccak256\":\"0xd3d6a9bb72f5580e7b9794530a186e05e8d6da7c9172cb01e62fcc6e558dd052\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0625cb2a0d0e544800dff8194182aa440e1e6d61cc77b9e2d8d0186bce261146\",\"dweb:/ipfs/QmRmWWwTaJ7JPZZnJXavjJNXBzEjaK4KEzxaWj5MeJQUuH\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0xf06793dc2e9e9994403d29125359eb2f326b0e6e502d51a8e6e4e45fc9d90a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb23bf421b29839200e5584a770186309dd05cd77d4345c964f47528117a244\",\"dweb:/ipfs/QmQBvrDAtoqibky7CjCLKxGz3MquxK1iNk2Yac55Lc4xF5\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0x14879c6c859cad89451616dcee1ab6222fd565849809b89407de48f0c1a01133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924caa18aa0e656a295da626d586dfb120bbea321123010462b0640c7e0c52c4\",\"dweb:/ipfs/QmNueqwy4g5mwq9kXaPzue8X2mqyFjH2P2AFi3pNN3WTAt\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x2ccca6556a3c2595479914d30efa84fc3b61cff30036522714a0ef99289ee2af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d169812a4159454be580d42fedee63d121646102e6462fe3b2ea905b69bee07\",\"dweb:/ipfs/QmXiKsMeN4nsdiqDwhuWfb4J3UF57B4rkuwkfbrRXA6vtb\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0xba4d729be15ad4fd887f2bbaadd12a902af5470b62c58bd9157661177c60a671\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfcf8588c9641afb6e2ed658f584f378909f0615da7a5bc5c919cf51c15b12ff\",\"dweb:/ipfs/QmZEbMyZZRL7oLKC8VMLmTFEK5LL1BAJyxnvmgSNiy5kVg\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x341c555b911581dc6a19e8eb6f64f9875ff92f8e1c9f3a9c3333129e802e130c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0809c8e9a4e46d7cce2d9a21fb315d5a3895d0e9af862fcc9b84733431ec94e0\",\"dweb:/ipfs/QmetNXMWrE1K57YJTEZMiFuEPa3yxnRvFnZFpSJRpQoTQi\"]},\"node_modules/@latticexyz/store/src/TableId.sol\":{\"keccak256\":\"0x8c55662dc4f66be577bb96bfdcb65d95fe1323c733443ab749cb9ec1e58f0a6e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://209ed70247c1c64b56d9b21f2902e67e0994cb89ac19be8e1553dac9d978fb76\",\"dweb:/ipfs/QmVLYNDwBL3GZidDpwqFZx916zoGZ5tWVztxKQFEEzVybP\"]},\"node_modules/@latticexyz/store/src/Utils.sol\":{\"keccak256\":\"0x426216bfa1c0e70640787007a6e39257cf09e586fd04831ea4fb3dd9c5768fc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38e657fa9cfaebe39477eaff27d1ad4d7eeaf0c0058539d2ec7e6976d93df4f4\",\"dweb:/ipfs/QmRuaxqRjUrHHC2ZyTnpmq6sfrWGCDh91B6F5chFAToU6U\"]},\"node_modules/@latticexyz/store/src/codegen/Tables.sol\":{\"keccak256\":\"0x2eba8dd4e9f07b505438a2fb744ac7da26b1f6321b8a88054e9442db947ab435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd1a60dfff209a3f1df84aeb5d7f8a5cf0419c19be63bac428df0a779d5ba437\",\"dweb:/ipfs/QmaHem2GMJPHrtr1f7fk1ThTBESdYipmBxEEoKT1DBRmsd\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Callbacks.sol\":{\"keccak256\":\"0x81f25ea159146621a7add30f6701d4787bdf828f8782488d5f9be3eb9b965130\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64c3fdcafe59b27faaf03d5102b83defad59679099d9d1616b2d928ab1e86727\",\"dweb:/ipfs/Qmdr1W6j6bHnE7tjjLMo3G4sAWr4mKePWGDycPEDuKUAJX\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xc06e9aef4d145b3e10c1b210ea48a609744638609674c74bc7f77628f1b051d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://94ea702795469b50d8c2cab53869caa456fe17d8b850445c59b9a1fd516d4b75\",\"dweb:/ipfs/QmNyiNVHyL2YnhiJfCpfjgNq7bSqCHghfS9wgQ8tTQ5x6e\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Mixed.sol\":{\"keccak256\":\"0xe48f64075029fd088e33201f451bf3fe9baed3db4360a58f7c710e5fd904fb21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e58e6ee54b6681f9ccb39259c4e22e74fdc1876c915c0143048810b03f4b3be\",\"dweb:/ipfs/QmQrxD8NDMd9DvrY5A9f1uRBjPwMgppoGn7w8R79qgdXuo\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreMetadata.sol\":{\"keccak256\":\"0x03eac5a0bbface43a3a01da3226443356a7aeeb6a88a063f6d9d18551613346c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f681ef065f0fed547f2675f4f21d8dd38e6d4845cccff0ac01e3d5b7b1a5c156\",\"dweb:/ipfs/QmcjEWQghNK2g1QHRqUWRmDXwweWhZTAJNRdyhyLpJf1V4\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Vector2.sol\":{\"keccak256\":\"0x6f77096a6301fa2438365eb4c577e5086f4e45369be801705f2a064af7de0d51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b3fa75b4475ff46cbdb9bc9907a766716090e077e1e4a95314b20857a70136\",\"dweb:/ipfs/QmNwqMe3ehQL8aJkvU93nXMSyr9vMCYFXBUdZZ3BqKRKdz\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0xe760dfb8ff20cfb44eee6a5f03ac84abbc91382fca2e36c88c92046e6b3a66e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75eb4b355c547ffee62031d8dfb80844fa31fa4460543a088278083662dc4c12\",\"dweb:/ipfs/Qmf8sRcrjJ6hEQ8TPwwe6KcXcE2MPw7Juvf7fKBZ1fBCt6\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x046f0a2dc543c7a80be91ff26b19990a10fbe73cb605f4944af38e04326a43df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d94f038e70179571d2aed3cbe03e812ce79a471372171fb78e8189bebd7ae1ac\",\"dweb:/ipfs/QmUV4bkaEc8hefLpLRaGwmu4WZsqRLE9e6R8UdaKPExb6p\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0xff0278a4e35174bbed8a38dad8ae7506f725bfe95f0b7c13829c353d68dd25dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26249ec0c2fa3a3430a2f8edbfc5cd678e34ea1cf1d7490ecaf1e925c976eb85\",\"dweb:/ipfs/QmUpkhr5kFiDKc7rZ2z5HcTf5PkrWVJu5sa31tYv911cPL\"]},\"node_modules/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"src/AccessControl.sol\":{\"keccak256\":\"0x1709609787c064269c201ba1683bb965746ecfffc2fd3ca945665150c1452b61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d40409726d6ebb08666be0c098a45ae2992535d0acb785cd9283daf3173fe45b\",\"dweb:/ipfs/QmdELXD8o41THzejXXWeBBYgb38U5TcK3Q4EygbmBkMRE9\"]},\"src/Call.sol\":{\"keccak256\":\"0x27114d009081f1f0a5c0b62c9ebe30415c76ed02fa46b305202bb5163711d926\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a553cf84c877160c8db6978083f09632800032de6dcc5d8a5c3b9c18cabeb578\",\"dweb:/ipfs/QmWyCDz5NobNAHEs1PCftXJzV5oCu5SKfmzfA9BynSccGn\"]},\"src/ResourceSelector.sol\":{\"keccak256\":\"0xf6a1714d556e95fda532f630ac1bd8fd9843e980dffce29f81a29c0b6f02d368\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5075e64cc1224bcd8ab46c16f85874ac91efecbf5cbeb82e5c1e3fa4f1a1edfa\",\"dweb:/ipfs/QmTqCVF6k7CMsiUJ223mXumjVyoCCNU2uE9fUHDgBmDdRj\"]},\"src/System.sol\":{\"keccak256\":\"0xf1342c8461adb4c5821c1ca106a67ba34402b36265fa63bf766eed937bd92bf9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea41f96a27a26d56d62824e007b3b0234d44fcd94361e5c8f40fdb334cbf444b\",\"dweb:/ipfs/QmRfj4iS5Lu9V4e47wsPQy4op1qQ6hqaJpERLB5EyzqW38\"]},\"src/Types.sol\":{\"keccak256\":\"0xc5784c3845cb97da4e1147a62163865bfb0090f43a6c3f672d5d69b7806e6545\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e849e5c0f3cf032ae2d5e77117f15cc942aa65f276e63a14feefe5b9bdd8b545\",\"dweb:/ipfs/QmSCpGZSBHjxrKm8LGD5tTEwe16aVd2ugQv5itA648hsVm\"]},\"src/WorldContext.sol\":{\"keccak256\":\"0xd44a445ff07ac1551e5a8f17450381664ecf68dcb1c89fee8fb11b9b73c9cd7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1235cc5636743b9afbb313676fc4c84ac5607142c758b0bfc59107aff79ed30c\",\"dweb:/ipfs/QmUtTUFjxKy7GtQC1Uzn6B2bRNZpcASFySPDjd16T47Rcz\"]},\"src/constants.sol\":{\"keccak256\":\"0xa0ae422aceefe0e7f200448201769e2bc527fa9e647475f65401558a03c0a83d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2473ca8ab5e184b7320c476fd07bdff31ff450fc750ab9eabb9c0a2ee43776e\",\"dweb:/ipfs/QmQ7sBqwPgj4AtsENyzCMFWVQeMzV5uuCN8ygNU2pKYotE\"]},\"src/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0xba4f728be36df11f4a988b61a577998d45da89314e26dcfa139e465840cef116\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0226026036fed756d36bde2f2fa9f8ad0ab21595a82740500d187e84a87e5a11\",\"dweb:/ipfs/QmZu2MPVGWvfP59KeKPzJXNt5pd5sqyVqFS1YYANocYsmG\"]},\"src/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0x9d15d5ac7512631590eda71cb19937d10a9b253d8a9b61bec54e7b0471b3b785\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b18f736784a0f38d5d6b62733fba106ecb84fc8d1b2390236ab8b162511e38\",\"dweb:/ipfs/QmPdvnPupSTBv8Vi2fRFe7A9NYfVuf2LtbdS1DiWXjHf9D\"]},\"src/interfaces/ICoreSystem.sol\":{\"keccak256\":\"0x21e72828243fbf26d21594a423e9a32e86df07d3e435ea216a27c326546df106\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8ac8c4b2cdeddaf458e562e3f236a5c798664443eca1658038540d5585ee090\",\"dweb:/ipfs/QmPbh7JmBcxqJV4YP78zVXpsmCSGnSN6g7M27MTkyUjRgG\"]},\"src/interfaces/IErrors.sol\":{\"keccak256\":\"0x8a8a5caf964d336b38123704893463589b3bf6195405c9929c21291faf0e2f6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3aa3dcd4d059015580dbcad309db99db7a18fe7c015f1f83f56d84684f27bd14\",\"dweb:/ipfs/QmVpQW1kF4ruDmXtnTSnGRuxr7RtJqo8NwEXtfdA5TVKq1\"]},\"src/interfaces/IModule.sol\":{\"keccak256\":\"0x0c9f5a12f8b27ae6f02b6ca7ccfd7ab1de349e5c4773f99cfab1fd4721bc4a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cafb66fbd4b3587121a2f2ff6fc5e4c32796e6469719899e181c3abac1479178\",\"dweb:/ipfs/QmT6GKskhqmLadhuNVVbgDEgJ92jMsCdyLcfrSaiVQeZYf\"]},\"src/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0xa46d19a0e2e8291f363ff4af0241d4e20253ffdad61701daf859ed0255eac842\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46829c84dd28d04a060d2b602724589f23ab5f783a22c7dfd7f5c4ecdd41ad5d\",\"dweb:/ipfs/QmVi1ac1q4mX7gpsUH5RRP8tFRj7mYPQr7WzFJdTbUwxxu\"]},\"src/interfaces/ISystemHook.sol\":{\"keccak256\":\"0x6302d7467fb8b6ddf1bc089037e2b5c06441e8f975caf172f4875686b822448d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6adcd8e6d0a1d8c1e027398e5159533561002bb321df887baedcb0fbdc05c91f\",\"dweb:/ipfs/QmXAVXzE6hMysP7SXvxKt6XetH7bnvGVUuXJVJqmG22RSn\"]},\"src/interfaces/IWorldKernel.sol\":{\"keccak256\":\"0x9baf07e472a70ec8aba9dffb71a7dd7d970c1352c2b11fdbf4c21a54b61458e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c270f22eec9ee162bcb973349e4e96ffcacd70c7df53d0ce7eb33f3bdb1dd6e3\",\"dweb:/ipfs/QmWRgyG2o7cM8dJRNN3d72khRsaGVJBNjVP6XPW2uSyGmU\"]},\"src/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0xddfb5dbefc5b2e53cda52363efac5bb8ae4fb1753c0443623da35be4f216edfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fec23b4a08823f7ed5c95944826c7affa43870dccfdbb76e12843a665961faa5\",\"dweb:/ipfs/QmWdQ8gh4UXQpvpdYvi8unPb8tdba4KRkq2rDA2caiDmx1\"]},\"src/modules/core/CoreModule.sol\":{\"keccak256\":\"0xb6141a50da84688082b1fac67f6d8a50b1a8ff17a76c88853794a769106bf4cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b3c2c7f67bed6c48b0fbba1589c021826c1c3325d91e4e0373a153c766fee1\",\"dweb:/ipfs/QmT1BCpRgeahseGPN3QLECQpr1NHAENdN2M3H3McWengon\"]},\"src/modules/core/CoreSystem.sol\":{\"keccak256\":\"0x46a094b89e7b5f7315e314137e58e5c1a0e941b1b911548400c98502568de490\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e152579926bacf280a3b2d5e3b3478ba5c8cbe850a4736516acc4af36d4a1dc\",\"dweb:/ipfs/QmcEgDCRpThAQ1WcThhXSeZ3FuH393SbmuEe4cKjPxruWC\"]},\"src/modules/core/constants.sol\":{\"keccak256\":\"0xf8dd287f03dad9b27801f74977c49e9fd8d4f36b8084ef8a742fa39a18f158bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c391d8f7b843a8e71b696218e4463167ee5ee220a783fac0d17adf41d6fc04cf\",\"dweb:/ipfs/QmWNQQWpzrG8oXaZdUYSixkEpf3Dci9F2BtUJnWhjNyQaw\"]},\"src/modules/core/implementations/AccessManagementSystem.sol\":{\"keccak256\":\"0x0a423051cc36004d7deadbc109c545e0f40230acc4f9d770a352f3e3ae84cacb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dfc31e43d8b64f58db6faa9f2cd72c8ad5fdd1c9161a6444c8f4e880f456be6\",\"dweb:/ipfs/QmQa9bP1bw18JRhWd9yBwz8HpNDxqbWwQZH1W6necobdP7\"]},\"src/modules/core/implementations/ModuleInstallationSystem.sol\":{\"keccak256\":\"0x0c464af021df4bcc2e8e79d7e8a646a447f4b32cb286de5f45d23da5781fd082\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://958ff6c39938acad1cc6b39823f6aa358de357dbbc8ec853208e262dd580bd26\",\"dweb:/ipfs/QmPxKoWPNYVorZs8SQhUkwRWEFmD3N5Ry8ZBckDuhtumqD\"]},\"src/modules/core/implementations/StoreRegistrationSystem.sol\":{\"keccak256\":\"0x621c5fbb3e6d80b91002169da8a7b0a3401f36a6f238de3d6c6f63d2472ccefc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a5529a9a1834a164a1f29336b57f80c7a53990939fe277dd230e0efd8fbd775f\",\"dweb:/ipfs/QmdHYDKPub4Euvt3fg9wRxRUPy7S9bfB139tXLByGnHsLn\"]},\"src/modules/core/implementations/WorldRegistrationSystem.sol\":{\"keccak256\":\"0x473a0da9d67d524222a1b69b5358be1ea978bee25f7779adc41c7d94d661b64f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7519eb2ec796dd7ac37a0766f281317f1dfbcdf6a723256bd39e872e56fa2bbf\",\"dweb:/ipfs/QmZ6MAyZWF6f2QstpV33KBPH9ZvoDmHCAHQ8KhMJALQMDj\"]},\"src/modules/core/tables/FunctionSelectors.sol\":{\"keccak256\":\"0x3d8a4cac9dcd5f479faa48b5e5a82f4100615afa674c96e35a840847fedd043e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1f1136dc47239b2032ddbc77f907a2aac632f66f7a8b7f4596e848b2b47263c\",\"dweb:/ipfs/Qmd4XZ8mZs5R1B4oVJwSxxFWGj5VcZ6buKoWPeHJQr6oCu\"]},\"src/modules/core/tables/ResourceType.sol\":{\"keccak256\":\"0x86bbd2b81790839870cdd22ace8b8ac220e9e4c802eaa60d80cbd6317e38b860\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc057e0c3e180abc83147f4aa7d5f0137685b6b424305a4d9b524889ea34c4c8\",\"dweb:/ipfs/QmQUsuwGSF15Xe7qxvEiJbR8RgWoLBzjvTjC3gFVio1XXw\"]},\"src/modules/core/tables/SystemRegistry.sol\":{\"keccak256\":\"0x0a1155046675fe9cb96657672edc580e96dedc65795e7218a874950e8c39d0d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e484c6527ce4dce3f8adec9eb43c3d3cc44ecf57405078afe235afd06f706f3d\",\"dweb:/ipfs/QmfUysQS3YRW64KMyMDgYfwcXJJ8CrQsntwpD8bh22d91Y\"]},\"src/modules/core/tables/Systems.sol\":{\"keccak256\":\"0x4bac2d11ed8b4c4ebd9a5ad7fe194c23c799d21aa222877896f0781c71c46eec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8df7240855a018acdc348724c495110ef8313841bfb33a1fe4bd2c67c378cbc\",\"dweb:/ipfs/QmevZAkn4ohkjUzzTp1nYEFENKTt8p8xY2eXAkofV7Pwkk\"]},\"src/tables/InstalledModules.sol\":{\"keccak256\":\"0x0a2a13f174a53839754ab151d26d6d30018a9811e386691431660d0f19cd37fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c1e2784f21144cb127d3f18473541d33c7ad8f2f8e18f64fccc6f03bc34a667\",\"dweb:/ipfs/QmbAVUb6feHKm8weavZw4bzovsYHp9GqVzAw1LmA15xgNf\"]},\"src/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x305c60ea746f91db681eb9beaadbe3cd39e5d6839bb9499c0181c53fa312beb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3166cf67b2dc066ccd2145452b26069b8b849b68de52d759b226396f0f95c362\",\"dweb:/ipfs/QmSkM1zDeAVQay9XHNtKBS8Vv9hPmhzDbJ1Y9ihZjQsziU\"]},\"src/tables/ResourceAccess.sol\":{\"keccak256\":\"0x8bbcbae889a7c9b71d3606309f9013911693a23f110d869aa24f4c19636ef97c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d49a931783a91c903e7915c7489a6813dfb30bfdc9a634aaff0cb6b9894a45a\",\"dweb:/ipfs/QmeU9CzyZBAoYK7pRxDsAq22vXd6o5cnEAGQ26q7eQUoRc\"]}},\"version\":1}",
169
169
  "metadata": {
170
170
  "compiler": {
171
171
  "version": "0.8.13+commit.abaa5c0e"
@@ -371,10 +371,10 @@
371
371
  "license": "MIT"
372
372
  },
373
373
  "node_modules/@latticexyz/store/src/IStore.sol": {
374
- "keccak256": "0x83954f095b02ffb6ea0d391ecf6092e8304b03119dced171fbce4ee7483d3de2",
374
+ "keccak256": "0x465c23c85a77fdc6001f06a6899080c1d6cfef9858886d7d922e54fce1eb79e6",
375
375
  "urls": [
376
- "bzz-raw://02aeafbedef0b4d5845cd8e707673872fd4fc165fe8508ad348506f053e73ee5",
377
- "dweb:/ipfs/QmcE33C9Mw7fdnhHKmrabwzBH2JyjF4XCG3S4D9AtzMXs2"
376
+ "bzz-raw://6358088868fa52711e65d3462eb6b6762fe736eb7f033909e3260280b6a87957",
377
+ "dweb:/ipfs/QmdkwwvTa9Hzc5SDP4C1hvrKzc8SxWNDrxNqQKw4ZoCKzL"
378
378
  ],
379
379
  "license": "MIT"
380
380
  },
@@ -411,26 +411,26 @@
411
411
  "license": "MIT"
412
412
  },
413
413
  "node_modules/@latticexyz/store/src/Storage.sol": {
414
- "keccak256": "0x86e1be7e58fbd1535c533a829f8a78c65136af92c9066e7d99d221a91dde8f9b",
414
+ "keccak256": "0x2ccca6556a3c2595479914d30efa84fc3b61cff30036522714a0ef99289ee2af",
415
415
  "urls": [
416
- "bzz-raw://3d5e232aefc4a518b0cc724b4b22e7b059a7bdde02e6512b627ce8693749c8de",
417
- "dweb:/ipfs/QmYsxGsak61jdiyq921tKzbWC7AtgA5FVsqsT1UL6CqzPT"
416
+ "bzz-raw://9d169812a4159454be580d42fedee63d121646102e6462fe3b2ea905b69bee07",
417
+ "dweb:/ipfs/QmXiKsMeN4nsdiqDwhuWfb4J3UF57B4rkuwkfbrRXA6vtb"
418
418
  ],
419
419
  "license": "MIT"
420
420
  },
421
421
  "node_modules/@latticexyz/store/src/StoreCore.sol": {
422
- "keccak256": "0xce2d227fc668c385bfded0a5af295a63363eb02233bafb60b4acbf048d4d4500",
422
+ "keccak256": "0xba4d729be15ad4fd887f2bbaadd12a902af5470b62c58bd9157661177c60a671",
423
423
  "urls": [
424
- "bzz-raw://597a716eed53c2bbbc911f94e7b6440684210dec82f9dbcb31c1f18fe10d3e8e",
425
- "dweb:/ipfs/QmSyaRAoh56KznH1zEArkwNUg3b6r8tanP7EALnZBcs5DE"
424
+ "bzz-raw://cfcf8588c9641afb6e2ed658f584f378909f0615da7a5bc5c919cf51c15b12ff",
425
+ "dweb:/ipfs/QmZEbMyZZRL7oLKC8VMLmTFEK5LL1BAJyxnvmgSNiy5kVg"
426
426
  ],
427
427
  "license": "MIT"
428
428
  },
429
429
  "node_modules/@latticexyz/store/src/StoreSwitch.sol": {
430
- "keccak256": "0x1f0ba0265027e9f6e945ce3ab319bafb5312f285f82bdcc2f2beabd9d7e99d64",
430
+ "keccak256": "0x341c555b911581dc6a19e8eb6f64f9875ff92f8e1c9f3a9c3333129e802e130c",
431
431
  "urls": [
432
- "bzz-raw://fa22ad06665c32e8794eea0f93d8b9e3ce08d752d37a08a669688eb53f8faa08",
433
- "dweb:/ipfs/QmYLTumckjQcZwt7vCj2YzM91N5mtwaSQBLEYkBJPCpMtm"
432
+ "bzz-raw://0809c8e9a4e46d7cce2d9a21fb315d5a3895d0e9af862fcc9b84733431ec94e0",
433
+ "dweb:/ipfs/QmetNXMWrE1K57YJTEZMiFuEPa3yxnRvFnZFpSJRpQoTQi"
434
434
  ],
435
435
  "license": "MIT"
436
436
  },
@@ -643,10 +643,10 @@
643
643
  "license": "MIT"
644
644
  },
645
645
  "src/interfaces/IWorldKernel.sol": {
646
- "keccak256": "0x5634912fe97592848fb360d55c442f3b37d6a9e77db46695891f0d5d942138c8",
646
+ "keccak256": "0x9baf07e472a70ec8aba9dffb71a7dd7d970c1352c2b11fdbf4c21a54b61458e7",
647
647
  "urls": [
648
- "bzz-raw://a48252b3e5286bd9119aad18366ec8b484334b93872239790717e44f2b125af2",
649
- "dweb:/ipfs/QmZddb4vrvyKNotTqr3gW3KsrVeH7fDYNv5Tr23uVema4x"
648
+ "bzz-raw://c270f22eec9ee162bcb973349e4e96ffcacd70c7df53d0ce7eb33f3bdb1dd6e3",
649
+ "dweb:/ipfs/QmWRgyG2o7cM8dJRNN3d72khRsaGVJBNjVP6XPW2uSyGmU"
650
650
  ],
651
651
  "license": "MIT"
652
652
  },
@@ -775,77 +775,77 @@
775
775
  },
776
776
  "ast": {
777
777
  "absolutePath": "src/modules/core/CoreModule.sol",
778
- "id": 33854,
778
+ "id": 34455,
779
779
  "exportedSymbols": {
780
780
  "AccessManagementSystem": [
781
- 33966
781
+ 34567
782
782
  ],
783
783
  "CORE_MODULE_NAME": [
784
- 33885
784
+ 34486
785
785
  ],
786
786
  "CORE_SYSTEM_NAME": [
787
- 33891
787
+ 34492
788
788
  ],
789
789
  "Call": [
790
- 32352
790
+ 32876
791
791
  ],
792
792
  "CoreModule": [
793
- 33853
793
+ 34454
794
794
  ],
795
795
  "CoreSystem": [
796
- 33877
796
+ 34478
797
797
  ],
798
798
  "FunctionSelectors": [
799
- 35950
799
+ 36551
800
800
  ],
801
801
  "IBaseWorld": [
802
- 33218
802
+ 33804
803
803
  ],
804
804
  "IModule": [
805
- 33277
805
+ 33863
806
806
  ],
807
807
  "InstalledModules": [
808
- 40742
808
+ 41343
809
809
  ],
810
810
  "ModuleInstallationSystem": [
811
- 34029
811
+ 34630
812
812
  ],
813
813
  "NamespaceOwner": [
814
- 41233
814
+ 41834
815
815
  ],
816
816
  "ROOT_NAMESPACE": [
817
- 33166
817
+ 33752
818
818
  ],
819
819
  "Resource": [
820
- 32571
820
+ 33095
821
821
  ],
822
822
  "ResourceAccess": [
823
- 41825
823
+ 42426
824
824
  ],
825
825
  "ResourceType": [
826
- 36454
826
+ 37055
827
827
  ],
828
828
  "StoreRegistrationSystem": [
829
- 34199
829
+ 34800
830
830
  ],
831
831
  "SystemRegistry": [
832
- 36957
832
+ 37558
833
833
  ],
834
834
  "Systems": [
835
- 37887
835
+ 38488
836
836
  ],
837
837
  "WorldContext": [
838
- 33161
838
+ 33747
839
839
  ],
840
840
  "WorldRegistrationSystem": [
841
- 34823
841
+ 35424
842
842
  ]
843
843
  },
844
844
  "nodeType": "SourceUnit",
845
845
  "src": "32:4989:65",
846
846
  "nodes": [
847
847
  {
848
- "id": 33568,
848
+ "id": 34169,
849
849
  "nodeType": "PragmaDirective",
850
850
  "src": "32:24:65",
851
851
  "nodes": [],
@@ -857,23 +857,23 @@
857
857
  ]
858
858
  },
859
859
  {
860
- "id": 33570,
860
+ "id": 34171,
861
861
  "nodeType": "ImportDirective",
862
862
  "src": "58:38:65",
863
863
  "nodes": [],
864
864
  "absolutePath": "src/Call.sol",
865
865
  "file": "../../Call.sol",
866
866
  "nameLocation": "-1:-1:-1",
867
- "scope": 33854,
868
- "sourceUnit": 32353,
867
+ "scope": 34455,
868
+ "sourceUnit": 32877,
869
869
  "symbolAliases": [
870
870
  {
871
871
  "foreign": {
872
- "id": 33569,
872
+ "id": 34170,
873
873
  "name": "Call",
874
874
  "nodeType": "Identifier",
875
875
  "overloadedDeclarations": [],
876
- "referencedDeclaration": 32352,
876
+ "referencedDeclaration": 32876,
877
877
  "src": "67:4:65",
878
878
  "typeDescriptions": {}
879
879
  },
@@ -883,23 +883,23 @@
883
883
  "unitAlias": ""
884
884
  },
885
885
  {
886
- "id": 33572,
886
+ "id": 34173,
887
887
  "nodeType": "ImportDirective",
888
888
  "src": "97:53:65",
889
889
  "nodes": [],
890
890
  "absolutePath": "src/constants.sol",
891
891
  "file": "../../constants.sol",
892
892
  "nameLocation": "-1:-1:-1",
893
- "scope": 33854,
894
- "sourceUnit": 33170,
893
+ "scope": 34455,
894
+ "sourceUnit": 33756,
895
895
  "symbolAliases": [
896
896
  {
897
897
  "foreign": {
898
- "id": 33571,
898
+ "id": 34172,
899
899
  "name": "ROOT_NAMESPACE",
900
900
  "nodeType": "Identifier",
901
901
  "overloadedDeclarations": [],
902
- "referencedDeclaration": 33166,
902
+ "referencedDeclaration": 33752,
903
903
  "src": "106:14:65",
904
904
  "typeDescriptions": {}
905
905
  },
@@ -909,23 +909,23 @@
909
909
  "unitAlias": ""
910
910
  },
911
911
  {
912
- "id": 33574,
912
+ "id": 34175,
913
913
  "nodeType": "ImportDirective",
914
914
  "src": "151:54:65",
915
915
  "nodes": [],
916
916
  "absolutePath": "src/WorldContext.sol",
917
917
  "file": "../../WorldContext.sol",
918
918
  "nameLocation": "-1:-1:-1",
919
- "scope": 33854,
920
- "sourceUnit": 33162,
919
+ "scope": 34455,
920
+ "sourceUnit": 33748,
921
921
  "symbolAliases": [
922
922
  {
923
923
  "foreign": {
924
- "id": 33573,
924
+ "id": 34174,
925
925
  "name": "WorldContext",
926
926
  "nodeType": "Identifier",
927
927
  "overloadedDeclarations": [],
928
- "referencedDeclaration": 33161,
928
+ "referencedDeclaration": 33747,
929
929
  "src": "160:12:65",
930
930
  "typeDescriptions": {}
931
931
  },
@@ -935,23 +935,23 @@
935
935
  "unitAlias": ""
936
936
  },
937
937
  {
938
- "id": 33576,
938
+ "id": 34177,
939
939
  "nodeType": "ImportDirective",
940
940
  "src": "206:43:65",
941
941
  "nodes": [],
942
942
  "absolutePath": "src/Types.sol",
943
943
  "file": "../../Types.sol",
944
944
  "nameLocation": "-1:-1:-1",
945
- "scope": 33854,
946
- "sourceUnit": 32572,
945
+ "scope": 34455,
946
+ "sourceUnit": 33096,
947
947
  "symbolAliases": [
948
948
  {
949
949
  "foreign": {
950
- "id": 33575,
950
+ "id": 34176,
951
951
  "name": "Resource",
952
952
  "nodeType": "Identifier",
953
953
  "overloadedDeclarations": [],
954
- "referencedDeclaration": 32571,
954
+ "referencedDeclaration": 33095,
955
955
  "src": "215:8:65",
956
956
  "typeDescriptions": {}
957
957
  },
@@ -961,23 +961,23 @@
961
961
  "unitAlias": ""
962
962
  },
963
963
  {
964
- "id": 33578,
964
+ "id": 34179,
965
965
  "nodeType": "ImportDirective",
966
966
  "src": "251:61:65",
967
967
  "nodes": [],
968
968
  "absolutePath": "src/interfaces/IBaseWorld.sol",
969
969
  "file": "../../interfaces/IBaseWorld.sol",
970
970
  "nameLocation": "-1:-1:-1",
971
- "scope": 33854,
972
- "sourceUnit": 33219,
971
+ "scope": 34455,
972
+ "sourceUnit": 33805,
973
973
  "symbolAliases": [
974
974
  {
975
975
  "foreign": {
976
- "id": 33577,
976
+ "id": 34178,
977
977
  "name": "IBaseWorld",
978
978
  "nodeType": "Identifier",
979
979
  "overloadedDeclarations": [],
980
- "referencedDeclaration": 33218,
980
+ "referencedDeclaration": 33804,
981
981
  "src": "260:10:65",
982
982
  "typeDescriptions": {}
983
983
  },
@@ -987,23 +987,23 @@
987
987
  "unitAlias": ""
988
988
  },
989
989
  {
990
- "id": 33580,
990
+ "id": 34181,
991
991
  "nodeType": "ImportDirective",
992
992
  "src": "313:55:65",
993
993
  "nodes": [],
994
994
  "absolutePath": "src/interfaces/IModule.sol",
995
995
  "file": "../../interfaces/IModule.sol",
996
996
  "nameLocation": "-1:-1:-1",
997
- "scope": 33854,
998
- "sourceUnit": 33278,
997
+ "scope": 34455,
998
+ "sourceUnit": 33864,
999
999
  "symbolAliases": [
1000
1000
  {
1001
1001
  "foreign": {
1002
- "id": 33579,
1002
+ "id": 34180,
1003
1003
  "name": "IModule",
1004
1004
  "nodeType": "Identifier",
1005
1005
  "overloadedDeclarations": [],
1006
- "referencedDeclaration": 33277,
1006
+ "referencedDeclaration": 33863,
1007
1007
  "src": "322:7:65",
1008
1008
  "typeDescriptions": {}
1009
1009
  },
@@ -1013,23 +1013,23 @@
1013
1013
  "unitAlias": ""
1014
1014
  },
1015
1015
  {
1016
- "id": 33582,
1016
+ "id": 34183,
1017
1017
  "nodeType": "ImportDirective",
1018
1018
  "src": "370:65:65",
1019
1019
  "nodes": [],
1020
1020
  "absolutePath": "src/tables/NamespaceOwner.sol",
1021
1021
  "file": "../../tables/NamespaceOwner.sol",
1022
1022
  "nameLocation": "-1:-1:-1",
1023
- "scope": 33854,
1024
- "sourceUnit": 41234,
1023
+ "scope": 34455,
1024
+ "sourceUnit": 41835,
1025
1025
  "symbolAliases": [
1026
1026
  {
1027
1027
  "foreign": {
1028
- "id": 33581,
1028
+ "id": 34182,
1029
1029
  "name": "NamespaceOwner",
1030
1030
  "nodeType": "Identifier",
1031
1031
  "overloadedDeclarations": [],
1032
- "referencedDeclaration": 41233,
1032
+ "referencedDeclaration": 41834,
1033
1033
  "src": "379:14:65",
1034
1034
  "typeDescriptions": {}
1035
1035
  },
@@ -1039,23 +1039,23 @@
1039
1039
  "unitAlias": ""
1040
1040
  },
1041
1041
  {
1042
- "id": 33584,
1042
+ "id": 34185,
1043
1043
  "nodeType": "ImportDirective",
1044
1044
  "src": "436:65:65",
1045
1045
  "nodes": [],
1046
1046
  "absolutePath": "src/tables/ResourceAccess.sol",
1047
1047
  "file": "../../tables/ResourceAccess.sol",
1048
1048
  "nameLocation": "-1:-1:-1",
1049
- "scope": 33854,
1050
- "sourceUnit": 41835,
1049
+ "scope": 34455,
1050
+ "sourceUnit": 42436,
1051
1051
  "symbolAliases": [
1052
1052
  {
1053
1053
  "foreign": {
1054
- "id": 33583,
1054
+ "id": 34184,
1055
1055
  "name": "ResourceAccess",
1056
1056
  "nodeType": "Identifier",
1057
1057
  "overloadedDeclarations": [],
1058
- "referencedDeclaration": 41825,
1058
+ "referencedDeclaration": 42426,
1059
1059
  "src": "445:14:65",
1060
1060
  "typeDescriptions": {}
1061
1061
  },
@@ -1065,23 +1065,23 @@
1065
1065
  "unitAlias": ""
1066
1066
  },
1067
1067
  {
1068
- "id": 33586,
1068
+ "id": 34187,
1069
1069
  "nodeType": "ImportDirective",
1070
1070
  "src": "502:69:65",
1071
1071
  "nodes": [],
1072
1072
  "absolutePath": "src/tables/InstalledModules.sol",
1073
1073
  "file": "../../tables/InstalledModules.sol",
1074
1074
  "nameLocation": "-1:-1:-1",
1075
- "scope": 33854,
1076
- "sourceUnit": 40743,
1075
+ "scope": 34455,
1076
+ "sourceUnit": 41344,
1077
1077
  "symbolAliases": [
1078
1078
  {
1079
1079
  "foreign": {
1080
- "id": 33585,
1080
+ "id": 34186,
1081
1081
  "name": "InstalledModules",
1082
1082
  "nodeType": "Identifier",
1083
1083
  "overloadedDeclarations": [],
1084
- "referencedDeclaration": 40742,
1084
+ "referencedDeclaration": 41343,
1085
1085
  "src": "511:16:65",
1086
1086
  "typeDescriptions": {}
1087
1087
  },
@@ -1091,23 +1091,23 @@
1091
1091
  "unitAlias": ""
1092
1092
  },
1093
1093
  {
1094
- "id": 33588,
1094
+ "id": 34189,
1095
1095
  "nodeType": "ImportDirective",
1096
1096
  "src": "573:46:65",
1097
1097
  "nodes": [],
1098
1098
  "absolutePath": "src/modules/core/CoreSystem.sol",
1099
1099
  "file": "./CoreSystem.sol",
1100
1100
  "nameLocation": "-1:-1:-1",
1101
- "scope": 33854,
1102
- "sourceUnit": 33878,
1101
+ "scope": 34455,
1102
+ "sourceUnit": 34479,
1103
1103
  "symbolAliases": [
1104
1104
  {
1105
1105
  "foreign": {
1106
- "id": 33587,
1106
+ "id": 34188,
1107
1107
  "name": "CoreSystem",
1108
1108
  "nodeType": "Identifier",
1109
1109
  "overloadedDeclarations": [],
1110
- "referencedDeclaration": 33877,
1110
+ "referencedDeclaration": 34478,
1111
1111
  "src": "582:10:65",
1112
1112
  "typeDescriptions": {}
1113
1113
  },
@@ -1117,23 +1117,23 @@
1117
1117
  "unitAlias": ""
1118
1118
  },
1119
1119
  {
1120
- "id": 33591,
1120
+ "id": 34192,
1121
1121
  "nodeType": "ImportDirective",
1122
1122
  "src": "620:69:65",
1123
1123
  "nodes": [],
1124
1124
  "absolutePath": "src/modules/core/constants.sol",
1125
1125
  "file": "./constants.sol",
1126
1126
  "nameLocation": "-1:-1:-1",
1127
- "scope": 33854,
1128
- "sourceUnit": 33892,
1127
+ "scope": 34455,
1128
+ "sourceUnit": 34493,
1129
1129
  "symbolAliases": [
1130
1130
  {
1131
1131
  "foreign": {
1132
- "id": 33589,
1132
+ "id": 34190,
1133
1133
  "name": "CORE_MODULE_NAME",
1134
1134
  "nodeType": "Identifier",
1135
1135
  "overloadedDeclarations": [],
1136
- "referencedDeclaration": 33885,
1136
+ "referencedDeclaration": 34486,
1137
1137
  "src": "629:16:65",
1138
1138
  "typeDescriptions": {}
1139
1139
  },
@@ -1141,11 +1141,11 @@
1141
1141
  },
1142
1142
  {
1143
1143
  "foreign": {
1144
- "id": 33590,
1144
+ "id": 34191,
1145
1145
  "name": "CORE_SYSTEM_NAME",
1146
1146
  "nodeType": "Identifier",
1147
1147
  "overloadedDeclarations": [],
1148
- "referencedDeclaration": 33891,
1148
+ "referencedDeclaration": 34492,
1149
1149
  "src": "647:16:65",
1150
1150
  "typeDescriptions": {}
1151
1151
  },
@@ -1155,23 +1155,23 @@
1155
1155
  "unitAlias": ""
1156
1156
  },
1157
1157
  {
1158
- "id": 33593,
1158
+ "id": 34194,
1159
1159
  "nodeType": "ImportDirective",
1160
1160
  "src": "691:47:65",
1161
1161
  "nodes": [],
1162
1162
  "absolutePath": "src/modules/core/tables/Systems.sol",
1163
1163
  "file": "./tables/Systems.sol",
1164
1164
  "nameLocation": "-1:-1:-1",
1165
- "scope": 33854,
1166
- "sourceUnit": 37897,
1165
+ "scope": 34455,
1166
+ "sourceUnit": 38498,
1167
1167
  "symbolAliases": [
1168
1168
  {
1169
1169
  "foreign": {
1170
- "id": 33592,
1170
+ "id": 34193,
1171
1171
  "name": "Systems",
1172
1172
  "nodeType": "Identifier",
1173
1173
  "overloadedDeclarations": [],
1174
- "referencedDeclaration": 37887,
1174
+ "referencedDeclaration": 38488,
1175
1175
  "src": "700:7:65",
1176
1176
  "typeDescriptions": {}
1177
1177
  },
@@ -1181,23 +1181,23 @@
1181
1181
  "unitAlias": ""
1182
1182
  },
1183
1183
  {
1184
- "id": 33595,
1184
+ "id": 34196,
1185
1185
  "nodeType": "ImportDirective",
1186
1186
  "src": "739:67:65",
1187
1187
  "nodes": [],
1188
1188
  "absolutePath": "src/modules/core/tables/FunctionSelectors.sol",
1189
1189
  "file": "./tables/FunctionSelectors.sol",
1190
1190
  "nameLocation": "-1:-1:-1",
1191
- "scope": 33854,
1192
- "sourceUnit": 35951,
1191
+ "scope": 34455,
1192
+ "sourceUnit": 36552,
1193
1193
  "symbolAliases": [
1194
1194
  {
1195
1195
  "foreign": {
1196
- "id": 33594,
1196
+ "id": 34195,
1197
1197
  "name": "FunctionSelectors",
1198
1198
  "nodeType": "Identifier",
1199
1199
  "overloadedDeclarations": [],
1200
- "referencedDeclaration": 35950,
1200
+ "referencedDeclaration": 36551,
1201
1201
  "src": "748:17:65",
1202
1202
  "typeDescriptions": {}
1203
1203
  },
@@ -1207,23 +1207,23 @@
1207
1207
  "unitAlias": ""
1208
1208
  },
1209
1209
  {
1210
- "id": 33597,
1210
+ "id": 34198,
1211
1211
  "nodeType": "ImportDirective",
1212
1212
  "src": "807:57:65",
1213
1213
  "nodes": [],
1214
1214
  "absolutePath": "src/modules/core/tables/ResourceType.sol",
1215
1215
  "file": "./tables/ResourceType.sol",
1216
1216
  "nameLocation": "-1:-1:-1",
1217
- "scope": 33854,
1218
- "sourceUnit": 36455,
1217
+ "scope": 34455,
1218
+ "sourceUnit": 37056,
1219
1219
  "symbolAliases": [
1220
1220
  {
1221
1221
  "foreign": {
1222
- "id": 33596,
1222
+ "id": 34197,
1223
1223
  "name": "ResourceType",
1224
1224
  "nodeType": "Identifier",
1225
1225
  "overloadedDeclarations": [],
1226
- "referencedDeclaration": 36454,
1226
+ "referencedDeclaration": 37055,
1227
1227
  "src": "816:12:65",
1228
1228
  "typeDescriptions": {}
1229
1229
  },
@@ -1233,23 +1233,23 @@
1233
1233
  "unitAlias": ""
1234
1234
  },
1235
1235
  {
1236
- "id": 33599,
1236
+ "id": 34200,
1237
1237
  "nodeType": "ImportDirective",
1238
1238
  "src": "865:61:65",
1239
1239
  "nodes": [],
1240
1240
  "absolutePath": "src/modules/core/tables/SystemRegistry.sol",
1241
1241
  "file": "./tables/SystemRegistry.sol",
1242
1242
  "nameLocation": "-1:-1:-1",
1243
- "scope": 33854,
1244
- "sourceUnit": 36958,
1243
+ "scope": 34455,
1244
+ "sourceUnit": 37559,
1245
1245
  "symbolAliases": [
1246
1246
  {
1247
1247
  "foreign": {
1248
- "id": 33598,
1248
+ "id": 34199,
1249
1249
  "name": "SystemRegistry",
1250
1250
  "nodeType": "Identifier",
1251
1251
  "overloadedDeclarations": [],
1252
- "referencedDeclaration": 36957,
1252
+ "referencedDeclaration": 37558,
1253
1253
  "src": "874:14:65",
1254
1254
  "typeDescriptions": {}
1255
1255
  },
@@ -1259,23 +1259,23 @@
1259
1259
  "unitAlias": ""
1260
1260
  },
1261
1261
  {
1262
- "id": 33601,
1262
+ "id": 34202,
1263
1263
  "nodeType": "ImportDirective",
1264
1264
  "src": "928:88:65",
1265
1265
  "nodes": [],
1266
1266
  "absolutePath": "src/modules/core/implementations/WorldRegistrationSystem.sol",
1267
1267
  "file": "./implementations/WorldRegistrationSystem.sol",
1268
1268
  "nameLocation": "-1:-1:-1",
1269
- "scope": 33854,
1270
- "sourceUnit": 34824,
1269
+ "scope": 34455,
1270
+ "sourceUnit": 35425,
1271
1271
  "symbolAliases": [
1272
1272
  {
1273
1273
  "foreign": {
1274
- "id": 33600,
1274
+ "id": 34201,
1275
1275
  "name": "WorldRegistrationSystem",
1276
1276
  "nodeType": "Identifier",
1277
1277
  "overloadedDeclarations": [],
1278
- "referencedDeclaration": 34823,
1278
+ "referencedDeclaration": 35424,
1279
1279
  "src": "937:23:65",
1280
1280
  "typeDescriptions": {}
1281
1281
  },
@@ -1285,23 +1285,23 @@
1285
1285
  "unitAlias": ""
1286
1286
  },
1287
1287
  {
1288
- "id": 33603,
1288
+ "id": 34204,
1289
1289
  "nodeType": "ImportDirective",
1290
1290
  "src": "1017:88:65",
1291
1291
  "nodes": [],
1292
1292
  "absolutePath": "src/modules/core/implementations/StoreRegistrationSystem.sol",
1293
1293
  "file": "./implementations/StoreRegistrationSystem.sol",
1294
1294
  "nameLocation": "-1:-1:-1",
1295
- "scope": 33854,
1296
- "sourceUnit": 34200,
1295
+ "scope": 34455,
1296
+ "sourceUnit": 34801,
1297
1297
  "symbolAliases": [
1298
1298
  {
1299
1299
  "foreign": {
1300
- "id": 33602,
1300
+ "id": 34203,
1301
1301
  "name": "StoreRegistrationSystem",
1302
1302
  "nodeType": "Identifier",
1303
1303
  "overloadedDeclarations": [],
1304
- "referencedDeclaration": 34199,
1304
+ "referencedDeclaration": 34800,
1305
1305
  "src": "1026:23:65",
1306
1306
  "typeDescriptions": {}
1307
1307
  },
@@ -1311,23 +1311,23 @@
1311
1311
  "unitAlias": ""
1312
1312
  },
1313
1313
  {
1314
- "id": 33605,
1314
+ "id": 34206,
1315
1315
  "nodeType": "ImportDirective",
1316
1316
  "src": "1106:90:65",
1317
1317
  "nodes": [],
1318
1318
  "absolutePath": "src/modules/core/implementations/ModuleInstallationSystem.sol",
1319
1319
  "file": "./implementations/ModuleInstallationSystem.sol",
1320
1320
  "nameLocation": "-1:-1:-1",
1321
- "scope": 33854,
1322
- "sourceUnit": 34030,
1321
+ "scope": 34455,
1322
+ "sourceUnit": 34631,
1323
1323
  "symbolAliases": [
1324
1324
  {
1325
1325
  "foreign": {
1326
- "id": 33604,
1326
+ "id": 34205,
1327
1327
  "name": "ModuleInstallationSystem",
1328
1328
  "nodeType": "Identifier",
1329
1329
  "overloadedDeclarations": [],
1330
- "referencedDeclaration": 34029,
1330
+ "referencedDeclaration": 34630,
1331
1331
  "src": "1115:24:65",
1332
1332
  "typeDescriptions": {}
1333
1333
  },
@@ -1337,23 +1337,23 @@
1337
1337
  "unitAlias": ""
1338
1338
  },
1339
1339
  {
1340
- "id": 33607,
1340
+ "id": 34208,
1341
1341
  "nodeType": "ImportDirective",
1342
1342
  "src": "1197:86:65",
1343
1343
  "nodes": [],
1344
1344
  "absolutePath": "src/modules/core/implementations/AccessManagementSystem.sol",
1345
1345
  "file": "./implementations/AccessManagementSystem.sol",
1346
1346
  "nameLocation": "-1:-1:-1",
1347
- "scope": 33854,
1348
- "sourceUnit": 33967,
1347
+ "scope": 34455,
1348
+ "sourceUnit": 34568,
1349
1349
  "symbolAliases": [
1350
1350
  {
1351
1351
  "foreign": {
1352
- "id": 33606,
1352
+ "id": 34207,
1353
1353
  "name": "AccessManagementSystem",
1354
1354
  "nodeType": "Identifier",
1355
1355
  "overloadedDeclarations": [],
1356
- "referencedDeclaration": 33966,
1356
+ "referencedDeclaration": 34567,
1357
1357
  "src": "1206:22:65",
1358
1358
  "typeDescriptions": {}
1359
1359
  },
@@ -1363,12 +1363,12 @@
1363
1363
  "unitAlias": ""
1364
1364
  },
1365
1365
  {
1366
- "id": 33853,
1366
+ "id": 34454,
1367
1367
  "nodeType": "ContractDefinition",
1368
1368
  "src": "1556:3464:65",
1369
1369
  "nodes": [
1370
1370
  {
1371
- "id": 33621,
1371
+ "id": 34222,
1372
1372
  "nodeType": "VariableDeclaration",
1373
1373
  "src": "1749:56:65",
1374
1374
  "nodes": [],
@@ -1376,7 +1376,7 @@
1376
1376
  "mutability": "immutable",
1377
1377
  "name": "coreSystem",
1378
1378
  "nameLocation": "1767:10:65",
1379
- "scope": 33853,
1379
+ "scope": 34454,
1380
1380
  "stateVariable": true,
1381
1381
  "storageLocation": "default",
1382
1382
  "typeDescriptions": {
@@ -1384,7 +1384,7 @@
1384
1384
  "typeString": "address"
1385
1385
  },
1386
1386
  "typeName": {
1387
- "id": 33613,
1387
+ "id": 34214,
1388
1388
  "name": "address",
1389
1389
  "nodeType": "ElementaryTypeName",
1390
1390
  "src": "1749:7:65",
@@ -1400,7 +1400,7 @@
1400
1400
  "arguments": [],
1401
1401
  "expression": {
1402
1402
  "argumentTypes": [],
1403
- "id": 33618,
1403
+ "id": 34219,
1404
1404
  "isConstant": false,
1405
1405
  "isLValue": false,
1406
1406
  "isPure": false,
@@ -1408,28 +1408,28 @@
1408
1408
  "nodeType": "NewExpression",
1409
1409
  "src": "1788:14:65",
1410
1410
  "typeDescriptions": {
1411
- "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_CoreSystem_$33877_$",
1411
+ "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_CoreSystem_$34478_$",
1412
1412
  "typeString": "function () returns (contract CoreSystem)"
1413
1413
  },
1414
1414
  "typeName": {
1415
- "id": 33617,
1415
+ "id": 34218,
1416
1416
  "nodeType": "UserDefinedTypeName",
1417
1417
  "pathNode": {
1418
- "id": 33616,
1418
+ "id": 34217,
1419
1419
  "name": "CoreSystem",
1420
1420
  "nodeType": "IdentifierPath",
1421
- "referencedDeclaration": 33877,
1421
+ "referencedDeclaration": 34478,
1422
1422
  "src": "1792:10:65"
1423
1423
  },
1424
- "referencedDeclaration": 33877,
1424
+ "referencedDeclaration": 34478,
1425
1425
  "src": "1792:10:65",
1426
1426
  "typeDescriptions": {
1427
- "typeIdentifier": "t_contract$_CoreSystem_$33877",
1427
+ "typeIdentifier": "t_contract$_CoreSystem_$34478",
1428
1428
  "typeString": "contract CoreSystem"
1429
1429
  }
1430
1430
  }
1431
1431
  },
1432
- "id": 33619,
1432
+ "id": 34220,
1433
1433
  "isConstant": false,
1434
1434
  "isLValue": false,
1435
1435
  "isPure": false,
@@ -1440,7 +1440,7 @@
1440
1440
  "src": "1788:16:65",
1441
1441
  "tryCall": false,
1442
1442
  "typeDescriptions": {
1443
- "typeIdentifier": "t_contract$_CoreSystem_$33877",
1443
+ "typeIdentifier": "t_contract$_CoreSystem_$34478",
1444
1444
  "typeString": "contract CoreSystem"
1445
1445
  }
1446
1446
  }
@@ -1448,11 +1448,11 @@
1448
1448
  "expression": {
1449
1449
  "argumentTypes": [
1450
1450
  {
1451
- "typeIdentifier": "t_contract$_CoreSystem_$33877",
1451
+ "typeIdentifier": "t_contract$_CoreSystem_$34478",
1452
1452
  "typeString": "contract CoreSystem"
1453
1453
  }
1454
1454
  ],
1455
- "id": 33615,
1455
+ "id": 34216,
1456
1456
  "isConstant": false,
1457
1457
  "isLValue": false,
1458
1458
  "isPure": true,
@@ -1464,14 +1464,14 @@
1464
1464
  "typeString": "type(address)"
1465
1465
  },
1466
1466
  "typeName": {
1467
- "id": 33614,
1467
+ "id": 34215,
1468
1468
  "name": "address",
1469
1469
  "nodeType": "ElementaryTypeName",
1470
1470
  "src": "1780:7:65",
1471
1471
  "typeDescriptions": {}
1472
1472
  }
1473
1473
  },
1474
- "id": 33620,
1474
+ "id": 34221,
1475
1475
  "isConstant": false,
1476
1476
  "isLValue": false,
1477
1477
  "isPure": false,
@@ -1489,38 +1489,38 @@
1489
1489
  "visibility": "internal"
1490
1490
  },
1491
1491
  {
1492
- "id": 33629,
1492
+ "id": 34230,
1493
1493
  "nodeType": "FunctionDefinition",
1494
1494
  "src": "1810:83:65",
1495
1495
  "nodes": [],
1496
1496
  "body": {
1497
- "id": 33628,
1497
+ "id": 34229,
1498
1498
  "nodeType": "Block",
1499
1499
  "src": "1859:34:65",
1500
1500
  "nodes": [],
1501
1501
  "statements": [
1502
1502
  {
1503
1503
  "expression": {
1504
- "id": 33626,
1504
+ "id": 34227,
1505
1505
  "name": "CORE_MODULE_NAME",
1506
1506
  "nodeType": "Identifier",
1507
1507
  "overloadedDeclarations": [],
1508
- "referencedDeclaration": 33885,
1508
+ "referencedDeclaration": 34486,
1509
1509
  "src": "1872:16:65",
1510
1510
  "typeDescriptions": {
1511
1511
  "typeIdentifier": "t_bytes16",
1512
1512
  "typeString": "bytes16"
1513
1513
  }
1514
1514
  },
1515
- "functionReturnParameters": 33625,
1516
- "id": 33627,
1515
+ "functionReturnParameters": 34226,
1516
+ "id": 34228,
1517
1517
  "nodeType": "Return",
1518
1518
  "src": "1865:23:65"
1519
1519
  }
1520
1520
  ]
1521
1521
  },
1522
1522
  "baseFunctions": [
1523
- 33270
1523
+ 33856
1524
1524
  ],
1525
1525
  "functionSelector": "17d7de7c",
1526
1526
  "implemented": true,
@@ -1529,23 +1529,23 @@
1529
1529
  "name": "getName",
1530
1530
  "nameLocation": "1819:7:65",
1531
1531
  "parameters": {
1532
- "id": 33622,
1532
+ "id": 34223,
1533
1533
  "nodeType": "ParameterList",
1534
1534
  "parameters": [],
1535
1535
  "src": "1826:2:65"
1536
1536
  },
1537
1537
  "returnParameters": {
1538
- "id": 33625,
1538
+ "id": 34226,
1539
1539
  "nodeType": "ParameterList",
1540
1540
  "parameters": [
1541
1541
  {
1542
1542
  "constant": false,
1543
- "id": 33624,
1543
+ "id": 34225,
1544
1544
  "mutability": "mutable",
1545
1545
  "name": "",
1546
1546
  "nameLocation": "-1:-1:-1",
1547
1547
  "nodeType": "VariableDeclaration",
1548
- "scope": 33629,
1548
+ "scope": 34230,
1549
1549
  "src": "1850:7:65",
1550
1550
  "stateVariable": false,
1551
1551
  "storageLocation": "default",
@@ -1554,7 +1554,7 @@
1554
1554
  "typeString": "bytes16"
1555
1555
  },
1556
1556
  "typeName": {
1557
- "id": 33623,
1557
+ "id": 34224,
1558
1558
  "name": "bytes16",
1559
1559
  "nodeType": "ElementaryTypeName",
1560
1560
  "src": "1850:7:65",
@@ -1568,18 +1568,18 @@
1568
1568
  ],
1569
1569
  "src": "1849:9:65"
1570
1570
  },
1571
- "scope": 33853,
1571
+ "scope": 34454,
1572
1572
  "stateMutability": "pure",
1573
1573
  "virtual": false,
1574
1574
  "visibility": "public"
1575
1575
  },
1576
1576
  {
1577
- "id": 33645,
1577
+ "id": 34246,
1578
1578
  "nodeType": "FunctionDefinition",
1579
1579
  "src": "1897:140:65",
1580
1580
  "nodes": [],
1581
1581
  "body": {
1582
- "id": 33644,
1582
+ "id": 34245,
1583
1583
  "nodeType": "Block",
1584
1584
  "src": "1944:93:65",
1585
1585
  "nodes": [],
@@ -1589,18 +1589,18 @@
1589
1589
  "arguments": [],
1590
1590
  "expression": {
1591
1591
  "argumentTypes": [],
1592
- "id": 33635,
1592
+ "id": 34236,
1593
1593
  "name": "_registerCoreTables",
1594
1594
  "nodeType": "Identifier",
1595
1595
  "overloadedDeclarations": [],
1596
- "referencedDeclaration": 33732,
1596
+ "referencedDeclaration": 34333,
1597
1597
  "src": "1950:19:65",
1598
1598
  "typeDescriptions": {
1599
1599
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
1600
1600
  "typeString": "function ()"
1601
1601
  }
1602
1602
  },
1603
- "id": 33636,
1603
+ "id": 34237,
1604
1604
  "isConstant": false,
1605
1605
  "isLValue": false,
1606
1606
  "isPure": false,
@@ -1615,7 +1615,7 @@
1615
1615
  "typeString": "tuple()"
1616
1616
  }
1617
1617
  },
1618
- "id": 33637,
1618
+ "id": 34238,
1619
1619
  "nodeType": "ExpressionStatement",
1620
1620
  "src": "1950:21:65"
1621
1621
  },
@@ -1624,18 +1624,18 @@
1624
1624
  "arguments": [],
1625
1625
  "expression": {
1626
1626
  "argumentTypes": [],
1627
- "id": 33638,
1627
+ "id": 34239,
1628
1628
  "name": "_registerCoreSystem",
1629
1629
  "nodeType": "Identifier",
1630
1630
  "overloadedDeclarations": [],
1631
- "referencedDeclaration": 33757,
1631
+ "referencedDeclaration": 34358,
1632
1632
  "src": "1977:19:65",
1633
1633
  "typeDescriptions": {
1634
1634
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
1635
1635
  "typeString": "function ()"
1636
1636
  }
1637
1637
  },
1638
- "id": 33639,
1638
+ "id": 34240,
1639
1639
  "isConstant": false,
1640
1640
  "isLValue": false,
1641
1641
  "isPure": false,
@@ -1650,7 +1650,7 @@
1650
1650
  "typeString": "tuple()"
1651
1651
  }
1652
1652
  },
1653
- "id": 33640,
1653
+ "id": 34241,
1654
1654
  "nodeType": "ExpressionStatement",
1655
1655
  "src": "1977:21:65"
1656
1656
  },
@@ -1659,18 +1659,18 @@
1659
1659
  "arguments": [],
1660
1660
  "expression": {
1661
1661
  "argumentTypes": [],
1662
- "id": 33641,
1662
+ "id": 34242,
1663
1663
  "name": "_registerFunctionSelectors",
1664
1664
  "nodeType": "Identifier",
1665
1665
  "overloadedDeclarations": [],
1666
- "referencedDeclaration": 33852,
1666
+ "referencedDeclaration": 34453,
1667
1667
  "src": "2004:26:65",
1668
1668
  "typeDescriptions": {
1669
1669
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
1670
1670
  "typeString": "function ()"
1671
1671
  }
1672
1672
  },
1673
- "id": 33642,
1673
+ "id": 34243,
1674
1674
  "isConstant": false,
1675
1675
  "isLValue": false,
1676
1676
  "isPure": false,
@@ -1685,14 +1685,14 @@
1685
1685
  "typeString": "tuple()"
1686
1686
  }
1687
1687
  },
1688
- "id": 33643,
1688
+ "id": 34244,
1689
1689
  "nodeType": "ExpressionStatement",
1690
1690
  "src": "2004:28:65"
1691
1691
  }
1692
1692
  ]
1693
1693
  },
1694
1694
  "baseFunctions": [
1695
- 33276
1695
+ 33862
1696
1696
  ],
1697
1697
  "functionSelector": "13861fb5",
1698
1698
  "implemented": true,
@@ -1701,23 +1701,23 @@
1701
1701
  "name": "install",
1702
1702
  "nameLocation": "1906:7:65",
1703
1703
  "overrides": {
1704
- "id": 33633,
1704
+ "id": 34234,
1705
1705
  "nodeType": "OverrideSpecifier",
1706
1706
  "overrides": [],
1707
1707
  "src": "1935:8:65"
1708
1708
  },
1709
1709
  "parameters": {
1710
- "id": 33632,
1710
+ "id": 34233,
1711
1711
  "nodeType": "ParameterList",
1712
1712
  "parameters": [
1713
1713
  {
1714
1714
  "constant": false,
1715
- "id": 33631,
1715
+ "id": 34232,
1716
1716
  "mutability": "mutable",
1717
1717
  "name": "",
1718
1718
  "nameLocation": "-1:-1:-1",
1719
1719
  "nodeType": "VariableDeclaration",
1720
- "scope": 33645,
1720
+ "scope": 34246,
1721
1721
  "src": "1914:12:65",
1722
1722
  "stateVariable": false,
1723
1723
  "storageLocation": "memory",
@@ -1726,7 +1726,7 @@
1726
1726
  "typeString": "bytes"
1727
1727
  },
1728
1728
  "typeName": {
1729
- "id": 33630,
1729
+ "id": 34231,
1730
1730
  "name": "bytes",
1731
1731
  "nodeType": "ElementaryTypeName",
1732
1732
  "src": "1914:5:65",
@@ -1741,23 +1741,23 @@
1741
1741
  "src": "1913:14:65"
1742
1742
  },
1743
1743
  "returnParameters": {
1744
- "id": 33634,
1744
+ "id": 34235,
1745
1745
  "nodeType": "ParameterList",
1746
1746
  "parameters": [],
1747
1747
  "src": "1944:0:65"
1748
1748
  },
1749
- "scope": 33853,
1749
+ "scope": 34454,
1750
1750
  "stateMutability": "nonpayable",
1751
1751
  "virtual": false,
1752
1752
  "visibility": "public"
1753
1753
  },
1754
1754
  {
1755
- "id": 33732,
1755
+ "id": 34333,
1756
1756
  "nodeType": "FunctionDefinition",
1757
1757
  "src": "2092:621:65",
1758
1758
  "nodes": [],
1759
1759
  "body": {
1760
- "id": 33731,
1760
+ "id": 34332,
1761
1761
  "nodeType": "Block",
1762
1762
  "src": "2132:581:65",
1763
1763
  "nodes": [],
@@ -1768,32 +1768,32 @@
1768
1768
  "expression": {
1769
1769
  "argumentTypes": [],
1770
1770
  "expression": {
1771
- "id": 33649,
1771
+ "id": 34250,
1772
1772
  "name": "NamespaceOwner",
1773
1773
  "nodeType": "Identifier",
1774
1774
  "overloadedDeclarations": [],
1775
- "referencedDeclaration": 41233,
1775
+ "referencedDeclaration": 41834,
1776
1776
  "src": "2138:14:65",
1777
1777
  "typeDescriptions": {
1778
- "typeIdentifier": "t_type$_t_contract$_NamespaceOwner_$41233_$",
1778
+ "typeIdentifier": "t_type$_t_contract$_NamespaceOwner_$41834_$",
1779
1779
  "typeString": "type(library NamespaceOwner)"
1780
1780
  }
1781
1781
  },
1782
- "id": 33651,
1782
+ "id": 34252,
1783
1783
  "isConstant": false,
1784
1784
  "isLValue": false,
1785
1785
  "isPure": false,
1786
1786
  "lValueRequested": false,
1787
1787
  "memberName": "setMetadata",
1788
1788
  "nodeType": "MemberAccess",
1789
- "referencedDeclaration": 40933,
1789
+ "referencedDeclaration": 41534,
1790
1790
  "src": "2138:26:65",
1791
1791
  "typeDescriptions": {
1792
1792
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
1793
1793
  "typeString": "function ()"
1794
1794
  }
1795
1795
  },
1796
- "id": 33652,
1796
+ "id": 34253,
1797
1797
  "isConstant": false,
1798
1798
  "isLValue": false,
1799
1799
  "isPure": false,
@@ -1808,7 +1808,7 @@
1808
1808
  "typeString": "tuple()"
1809
1809
  }
1810
1810
  },
1811
- "id": 33653,
1811
+ "id": 34254,
1812
1812
  "nodeType": "ExpressionStatement",
1813
1813
  "src": "2138:28:65"
1814
1814
  },
@@ -1818,32 +1818,32 @@
1818
1818
  "expression": {
1819
1819
  "argumentTypes": [],
1820
1820
  "expression": {
1821
- "id": 33654,
1821
+ "id": 34255,
1822
1822
  "name": "InstalledModules",
1823
1823
  "nodeType": "Identifier",
1824
1824
  "overloadedDeclarations": [],
1825
- "referencedDeclaration": 40742,
1825
+ "referencedDeclaration": 41343,
1826
1826
  "src": "2173:16:65",
1827
1827
  "typeDescriptions": {
1828
- "typeIdentifier": "t_type$_t_contract$_InstalledModules_$40742_$",
1828
+ "typeIdentifier": "t_type$_t_contract$_InstalledModules_$41343_$",
1829
1829
  "typeString": "type(library InstalledModules)"
1830
1830
  }
1831
1831
  },
1832
- "id": 33656,
1832
+ "id": 34257,
1833
1833
  "isConstant": false,
1834
1834
  "isLValue": false,
1835
1835
  "isPure": false,
1836
1836
  "lValueRequested": false,
1837
1837
  "memberName": "registerSchema",
1838
1838
  "nodeType": "MemberAccess",
1839
- "referencedDeclaration": 40033,
1839
+ "referencedDeclaration": 40634,
1840
1840
  "src": "2173:31:65",
1841
1841
  "typeDescriptions": {
1842
1842
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
1843
1843
  "typeString": "function ()"
1844
1844
  }
1845
1845
  },
1846
- "id": 33657,
1846
+ "id": 34258,
1847
1847
  "isConstant": false,
1848
1848
  "isLValue": false,
1849
1849
  "isPure": false,
@@ -1858,7 +1858,7 @@
1858
1858
  "typeString": "tuple()"
1859
1859
  }
1860
1860
  },
1861
- "id": 33658,
1861
+ "id": 34259,
1862
1862
  "nodeType": "ExpressionStatement",
1863
1863
  "src": "2173:33:65"
1864
1864
  },
@@ -1868,32 +1868,32 @@
1868
1868
  "expression": {
1869
1869
  "argumentTypes": [],
1870
1870
  "expression": {
1871
- "id": 33659,
1871
+ "id": 34260,
1872
1872
  "name": "InstalledModules",
1873
1873
  "nodeType": "Identifier",
1874
1874
  "overloadedDeclarations": [],
1875
- "referencedDeclaration": 40742,
1875
+ "referencedDeclaration": 41343,
1876
1876
  "src": "2212:16:65",
1877
1877
  "typeDescriptions": {
1878
- "typeIdentifier": "t_type$_t_contract$_InstalledModules_$40742_$",
1878
+ "typeIdentifier": "t_type$_t_contract$_InstalledModules_$41343_$",
1879
1879
  "typeString": "type(library InstalledModules)"
1880
1880
  }
1881
1881
  },
1882
- "id": 33661,
1882
+ "id": 34262,
1883
1883
  "isConstant": false,
1884
1884
  "isLValue": false,
1885
1885
  "isPure": false,
1886
1886
  "lValueRequested": false,
1887
1887
  "memberName": "setMetadata",
1888
1888
  "nodeType": "MemberAccess",
1889
- "referencedDeclaration": 40072,
1889
+ "referencedDeclaration": 40673,
1890
1890
  "src": "2212:28:65",
1891
1891
  "typeDescriptions": {
1892
1892
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
1893
1893
  "typeString": "function ()"
1894
1894
  }
1895
1895
  },
1896
- "id": 33662,
1896
+ "id": 34263,
1897
1897
  "isConstant": false,
1898
1898
  "isLValue": false,
1899
1899
  "isPure": false,
@@ -1908,7 +1908,7 @@
1908
1908
  "typeString": "tuple()"
1909
1909
  }
1910
1910
  },
1911
- "id": 33663,
1911
+ "id": 34264,
1912
1912
  "nodeType": "ExpressionStatement",
1913
1913
  "src": "2212:30:65"
1914
1914
  },
@@ -1918,32 +1918,32 @@
1918
1918
  "expression": {
1919
1919
  "argumentTypes": [],
1920
1920
  "expression": {
1921
- "id": 33664,
1921
+ "id": 34265,
1922
1922
  "name": "ResourceAccess",
1923
1923
  "nodeType": "Identifier",
1924
1924
  "overloadedDeclarations": [],
1925
- "referencedDeclaration": 41825,
1925
+ "referencedDeclaration": 42426,
1926
1926
  "src": "2249:14:65",
1927
1927
  "typeDescriptions": {
1928
- "typeIdentifier": "t_type$_t_contract$_ResourceAccess_$41825_$",
1928
+ "typeIdentifier": "t_type$_t_contract$_ResourceAccess_$42426_$",
1929
1929
  "typeString": "type(library ResourceAccess)"
1930
1930
  }
1931
1931
  },
1932
- "id": 33666,
1932
+ "id": 34267,
1933
1933
  "isConstant": false,
1934
1934
  "isLValue": false,
1935
1935
  "isPure": false,
1936
1936
  "lValueRequested": false,
1937
1937
  "memberName": "registerSchema",
1938
1938
  "nodeType": "MemberAccess",
1939
- "referencedDeclaration": 41392,
1939
+ "referencedDeclaration": 41993,
1940
1940
  "src": "2249:29:65",
1941
1941
  "typeDescriptions": {
1942
1942
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
1943
1943
  "typeString": "function ()"
1944
1944
  }
1945
1945
  },
1946
- "id": 33667,
1946
+ "id": 34268,
1947
1947
  "isConstant": false,
1948
1948
  "isLValue": false,
1949
1949
  "isPure": false,
@@ -1958,7 +1958,7 @@
1958
1958
  "typeString": "tuple()"
1959
1959
  }
1960
1960
  },
1961
- "id": 33668,
1961
+ "id": 34269,
1962
1962
  "nodeType": "ExpressionStatement",
1963
1963
  "src": "2249:31:65"
1964
1964
  },
@@ -1968,32 +1968,32 @@
1968
1968
  "expression": {
1969
1969
  "argumentTypes": [],
1970
1970
  "expression": {
1971
- "id": 33669,
1971
+ "id": 34270,
1972
1972
  "name": "ResourceAccess",
1973
1973
  "nodeType": "Identifier",
1974
1974
  "overloadedDeclarations": [],
1975
- "referencedDeclaration": 41825,
1975
+ "referencedDeclaration": 42426,
1976
1976
  "src": "2286:14:65",
1977
1977
  "typeDescriptions": {
1978
- "typeIdentifier": "t_type$_t_contract$_ResourceAccess_$41825_$",
1978
+ "typeIdentifier": "t_type$_t_contract$_ResourceAccess_$42426_$",
1979
1979
  "typeString": "type(library ResourceAccess)"
1980
1980
  }
1981
1981
  },
1982
- "id": 33671,
1982
+ "id": 34272,
1983
1983
  "isConstant": false,
1984
1984
  "isLValue": false,
1985
1985
  "isPure": false,
1986
1986
  "lValueRequested": false,
1987
1987
  "memberName": "setMetadata",
1988
1988
  "nodeType": "MemberAccess",
1989
- "referencedDeclaration": 41431,
1989
+ "referencedDeclaration": 42032,
1990
1990
  "src": "2286:26:65",
1991
1991
  "typeDescriptions": {
1992
1992
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
1993
1993
  "typeString": "function ()"
1994
1994
  }
1995
1995
  },
1996
- "id": 33672,
1996
+ "id": 34273,
1997
1997
  "isConstant": false,
1998
1998
  "isLValue": false,
1999
1999
  "isPure": false,
@@ -2008,7 +2008,7 @@
2008
2008
  "typeString": "tuple()"
2009
2009
  }
2010
2010
  },
2011
- "id": 33673,
2011
+ "id": 34274,
2012
2012
  "nodeType": "ExpressionStatement",
2013
2013
  "src": "2286:28:65"
2014
2014
  },
@@ -2016,11 +2016,11 @@
2016
2016
  "expression": {
2017
2017
  "arguments": [
2018
2018
  {
2019
- "id": 33677,
2019
+ "id": 34278,
2020
2020
  "name": "ROOT_NAMESPACE",
2021
2021
  "nodeType": "Identifier",
2022
2022
  "overloadedDeclarations": [],
2023
- "referencedDeclaration": 33166,
2023
+ "referencedDeclaration": 33752,
2024
2024
  "src": "2339:14:65",
2025
2025
  "typeDescriptions": {
2026
2026
  "typeIdentifier": "t_bytes16",
@@ -2031,18 +2031,18 @@
2031
2031
  "arguments": [],
2032
2032
  "expression": {
2033
2033
  "argumentTypes": [],
2034
- "id": 33678,
2034
+ "id": 34279,
2035
2035
  "name": "_msgSender",
2036
2036
  "nodeType": "Identifier",
2037
2037
  "overloadedDeclarations": [],
2038
- "referencedDeclaration": 33150,
2038
+ "referencedDeclaration": 33736,
2039
2039
  "src": "2355:10:65",
2040
2040
  "typeDescriptions": {
2041
2041
  "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
2042
2042
  "typeString": "function () view returns (address)"
2043
2043
  }
2044
2044
  },
2045
- "id": 33679,
2045
+ "id": 34280,
2046
2046
  "isConstant": false,
2047
2047
  "isLValue": false,
2048
2048
  "isPure": false,
@@ -2059,7 +2059,7 @@
2059
2059
  },
2060
2060
  {
2061
2061
  "hexValue": "74727565",
2062
- "id": 33680,
2062
+ "id": 34281,
2063
2063
  "isConstant": false,
2064
2064
  "isLValue": false,
2065
2065
  "isPure": true,
@@ -2090,32 +2090,32 @@
2090
2090
  }
2091
2091
  ],
2092
2092
  "expression": {
2093
- "id": 33674,
2093
+ "id": 34275,
2094
2094
  "name": "ResourceAccess",
2095
2095
  "nodeType": "Identifier",
2096
2096
  "overloadedDeclarations": [],
2097
- "referencedDeclaration": 41825,
2097
+ "referencedDeclaration": 42426,
2098
2098
  "src": "2320:14:65",
2099
2099
  "typeDescriptions": {
2100
- "typeIdentifier": "t_type$_t_contract$_ResourceAccess_$41825_$",
2100
+ "typeIdentifier": "t_type$_t_contract$_ResourceAccess_$42426_$",
2101
2101
  "typeString": "type(library ResourceAccess)"
2102
2102
  }
2103
2103
  },
2104
- "id": 33676,
2104
+ "id": 34277,
2105
2105
  "isConstant": false,
2106
2106
  "isLValue": false,
2107
2107
  "isPure": false,
2108
2108
  "lValueRequested": false,
2109
2109
  "memberName": "set",
2110
2110
  "nodeType": "MemberAccess",
2111
- "referencedDeclaration": 41648,
2111
+ "referencedDeclaration": 42249,
2112
2112
  "src": "2320:18:65",
2113
2113
  "typeDescriptions": {
2114
2114
  "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_bool_$returns$__$",
2115
2115
  "typeString": "function (bytes32,address,bool)"
2116
2116
  }
2117
2117
  },
2118
- "id": 33681,
2118
+ "id": 34282,
2119
2119
  "isConstant": false,
2120
2120
  "isLValue": false,
2121
2121
  "isPure": false,
@@ -2130,7 +2130,7 @@
2130
2130
  "typeString": "tuple()"
2131
2131
  }
2132
2132
  },
2133
- "id": 33682,
2133
+ "id": 34283,
2134
2134
  "nodeType": "ExpressionStatement",
2135
2135
  "src": "2320:54:65"
2136
2136
  },
@@ -2140,32 +2140,32 @@
2140
2140
  "expression": {
2141
2141
  "argumentTypes": [],
2142
2142
  "expression": {
2143
- "id": 33683,
2143
+ "id": 34284,
2144
2144
  "name": "Systems",
2145
2145
  "nodeType": "Identifier",
2146
2146
  "overloadedDeclarations": [],
2147
- "referencedDeclaration": 37887,
2147
+ "referencedDeclaration": 38488,
2148
2148
  "src": "2381:7:65",
2149
2149
  "typeDescriptions": {
2150
- "typeIdentifier": "t_type$_t_contract$_Systems_$37887_$",
2150
+ "typeIdentifier": "t_type$_t_contract$_Systems_$38488_$",
2151
2151
  "typeString": "type(library Systems)"
2152
2152
  }
2153
2153
  },
2154
- "id": 33685,
2154
+ "id": 34286,
2155
2155
  "isConstant": false,
2156
2156
  "isLValue": false,
2157
2157
  "isPure": false,
2158
2158
  "lValueRequested": false,
2159
2159
  "memberName": "registerSchema",
2160
2160
  "nodeType": "MemberAccess",
2161
- "referencedDeclaration": 37122,
2161
+ "referencedDeclaration": 37723,
2162
2162
  "src": "2381:22:65",
2163
2163
  "typeDescriptions": {
2164
2164
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
2165
2165
  "typeString": "function ()"
2166
2166
  }
2167
2167
  },
2168
- "id": 33686,
2168
+ "id": 34287,
2169
2169
  "isConstant": false,
2170
2170
  "isLValue": false,
2171
2171
  "isPure": false,
@@ -2180,7 +2180,7 @@
2180
2180
  "typeString": "tuple()"
2181
2181
  }
2182
2182
  },
2183
- "id": 33687,
2183
+ "id": 34288,
2184
2184
  "nodeType": "ExpressionStatement",
2185
2185
  "src": "2381:24:65"
2186
2186
  },
@@ -2190,32 +2190,32 @@
2190
2190
  "expression": {
2191
2191
  "argumentTypes": [],
2192
2192
  "expression": {
2193
- "id": 33688,
2193
+ "id": 34289,
2194
2194
  "name": "Systems",
2195
2195
  "nodeType": "Identifier",
2196
2196
  "overloadedDeclarations": [],
2197
- "referencedDeclaration": 37887,
2197
+ "referencedDeclaration": 38488,
2198
2198
  "src": "2411:7:65",
2199
2199
  "typeDescriptions": {
2200
- "typeIdentifier": "t_type$_t_contract$_Systems_$37887_$",
2200
+ "typeIdentifier": "t_type$_t_contract$_Systems_$38488_$",
2201
2201
  "typeString": "type(library Systems)"
2202
2202
  }
2203
2203
  },
2204
- "id": 33690,
2204
+ "id": 34291,
2205
2205
  "isConstant": false,
2206
2206
  "isLValue": false,
2207
2207
  "isPure": false,
2208
2208
  "lValueRequested": false,
2209
2209
  "memberName": "setMetadata",
2210
2210
  "nodeType": "MemberAccess",
2211
- "referencedDeclaration": 37161,
2211
+ "referencedDeclaration": 37762,
2212
2212
  "src": "2411:19:65",
2213
2213
  "typeDescriptions": {
2214
2214
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
2215
2215
  "typeString": "function ()"
2216
2216
  }
2217
2217
  },
2218
- "id": 33691,
2218
+ "id": 34292,
2219
2219
  "isConstant": false,
2220
2220
  "isLValue": false,
2221
2221
  "isPure": false,
@@ -2230,7 +2230,7 @@
2230
2230
  "typeString": "tuple()"
2231
2231
  }
2232
2232
  },
2233
- "id": 33692,
2233
+ "id": 34293,
2234
2234
  "nodeType": "ExpressionStatement",
2235
2235
  "src": "2411:21:65"
2236
2236
  },
@@ -2240,32 +2240,32 @@
2240
2240
  "expression": {
2241
2241
  "argumentTypes": [],
2242
2242
  "expression": {
2243
- "id": 33693,
2243
+ "id": 34294,
2244
2244
  "name": "FunctionSelectors",
2245
2245
  "nodeType": "Identifier",
2246
2246
  "overloadedDeclarations": [],
2247
- "referencedDeclaration": 35950,
2247
+ "referencedDeclaration": 36551,
2248
2248
  "src": "2439:17:65",
2249
2249
  "typeDescriptions": {
2250
- "typeIdentifier": "t_type$_t_contract$_FunctionSelectors_$35950_$",
2250
+ "typeIdentifier": "t_type$_t_contract$_FunctionSelectors_$36551_$",
2251
2251
  "typeString": "type(library FunctionSelectors)"
2252
2252
  }
2253
2253
  },
2254
- "id": 33695,
2254
+ "id": 34296,
2255
2255
  "isConstant": false,
2256
2256
  "isLValue": false,
2257
2257
  "isPure": false,
2258
2258
  "lValueRequested": false,
2259
2259
  "memberName": "registerSchema",
2260
2260
  "nodeType": "MemberAccess",
2261
- "referencedDeclaration": 35001,
2261
+ "referencedDeclaration": 35602,
2262
2262
  "src": "2439:32:65",
2263
2263
  "typeDescriptions": {
2264
2264
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
2265
2265
  "typeString": "function ()"
2266
2266
  }
2267
2267
  },
2268
- "id": 33696,
2268
+ "id": 34297,
2269
2269
  "isConstant": false,
2270
2270
  "isLValue": false,
2271
2271
  "isPure": false,
@@ -2280,7 +2280,7 @@
2280
2280
  "typeString": "tuple()"
2281
2281
  }
2282
2282
  },
2283
- "id": 33697,
2283
+ "id": 34298,
2284
2284
  "nodeType": "ExpressionStatement",
2285
2285
  "src": "2439:34:65"
2286
2286
  },
@@ -2290,32 +2290,32 @@
2290
2290
  "expression": {
2291
2291
  "argumentTypes": [],
2292
2292
  "expression": {
2293
- "id": 33698,
2293
+ "id": 34299,
2294
2294
  "name": "FunctionSelectors",
2295
2295
  "nodeType": "Identifier",
2296
2296
  "overloadedDeclarations": [],
2297
- "referencedDeclaration": 35950,
2297
+ "referencedDeclaration": 36551,
2298
2298
  "src": "2479:17:65",
2299
2299
  "typeDescriptions": {
2300
- "typeIdentifier": "t_type$_t_contract$_FunctionSelectors_$35950_$",
2300
+ "typeIdentifier": "t_type$_t_contract$_FunctionSelectors_$36551_$",
2301
2301
  "typeString": "type(library FunctionSelectors)"
2302
2302
  }
2303
2303
  },
2304
- "id": 33700,
2304
+ "id": 34301,
2305
2305
  "isConstant": false,
2306
2306
  "isLValue": false,
2307
2307
  "isPure": false,
2308
2308
  "lValueRequested": false,
2309
2309
  "memberName": "setMetadata",
2310
2310
  "nodeType": "MemberAccess",
2311
- "referencedDeclaration": 35040,
2311
+ "referencedDeclaration": 35641,
2312
2312
  "src": "2479:29:65",
2313
2313
  "typeDescriptions": {
2314
2314
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
2315
2315
  "typeString": "function ()"
2316
2316
  }
2317
2317
  },
2318
- "id": 33701,
2318
+ "id": 34302,
2319
2319
  "isConstant": false,
2320
2320
  "isLValue": false,
2321
2321
  "isPure": false,
@@ -2330,7 +2330,7 @@
2330
2330
  "typeString": "tuple()"
2331
2331
  }
2332
2332
  },
2333
- "id": 33702,
2333
+ "id": 34303,
2334
2334
  "nodeType": "ExpressionStatement",
2335
2335
  "src": "2479:31:65"
2336
2336
  },
@@ -2340,32 +2340,32 @@
2340
2340
  "expression": {
2341
2341
  "argumentTypes": [],
2342
2342
  "expression": {
2343
- "id": 33703,
2343
+ "id": 34304,
2344
2344
  "name": "SystemRegistry",
2345
2345
  "nodeType": "Identifier",
2346
2346
  "overloadedDeclarations": [],
2347
- "referencedDeclaration": 36957,
2347
+ "referencedDeclaration": 37558,
2348
2348
  "src": "2517:14:65",
2349
2349
  "typeDescriptions": {
2350
- "typeIdentifier": "t_type$_t_contract$_SystemRegistry_$36957_$",
2350
+ "typeIdentifier": "t_type$_t_contract$_SystemRegistry_$37558_$",
2351
2351
  "typeString": "type(library SystemRegistry)"
2352
2352
  }
2353
2353
  },
2354
- "id": 33705,
2354
+ "id": 34306,
2355
2355
  "isConstant": false,
2356
2356
  "isLValue": false,
2357
2357
  "isPure": false,
2358
2358
  "lValueRequested": false,
2359
2359
  "memberName": "registerSchema",
2360
2360
  "nodeType": "MemberAccess",
2361
- "referencedDeclaration": 36606,
2361
+ "referencedDeclaration": 37207,
2362
2362
  "src": "2517:29:65",
2363
2363
  "typeDescriptions": {
2364
2364
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
2365
2365
  "typeString": "function ()"
2366
2366
  }
2367
2367
  },
2368
- "id": 33706,
2368
+ "id": 34307,
2369
2369
  "isConstant": false,
2370
2370
  "isLValue": false,
2371
2371
  "isPure": false,
@@ -2380,7 +2380,7 @@
2380
2380
  "typeString": "tuple()"
2381
2381
  }
2382
2382
  },
2383
- "id": 33707,
2383
+ "id": 34308,
2384
2384
  "nodeType": "ExpressionStatement",
2385
2385
  "src": "2517:31:65"
2386
2386
  },
@@ -2390,32 +2390,32 @@
2390
2390
  "expression": {
2391
2391
  "argumentTypes": [],
2392
2392
  "expression": {
2393
- "id": 33708,
2393
+ "id": 34309,
2394
2394
  "name": "SystemRegistry",
2395
2395
  "nodeType": "Identifier",
2396
2396
  "overloadedDeclarations": [],
2397
- "referencedDeclaration": 36957,
2397
+ "referencedDeclaration": 37558,
2398
2398
  "src": "2554:14:65",
2399
2399
  "typeDescriptions": {
2400
- "typeIdentifier": "t_type$_t_contract$_SystemRegistry_$36957_$",
2400
+ "typeIdentifier": "t_type$_t_contract$_SystemRegistry_$37558_$",
2401
2401
  "typeString": "type(library SystemRegistry)"
2402
2402
  }
2403
2403
  },
2404
- "id": 33710,
2404
+ "id": 34311,
2405
2405
  "isConstant": false,
2406
2406
  "isLValue": false,
2407
2407
  "isPure": false,
2408
2408
  "lValueRequested": false,
2409
2409
  "memberName": "setMetadata",
2410
2410
  "nodeType": "MemberAccess",
2411
- "referencedDeclaration": 36645,
2411
+ "referencedDeclaration": 37246,
2412
2412
  "src": "2554:26:65",
2413
2413
  "typeDescriptions": {
2414
2414
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
2415
2415
  "typeString": "function ()"
2416
2416
  }
2417
2417
  },
2418
- "id": 33711,
2418
+ "id": 34312,
2419
2419
  "isConstant": false,
2420
2420
  "isLValue": false,
2421
2421
  "isPure": false,
@@ -2430,7 +2430,7 @@
2430
2430
  "typeString": "tuple()"
2431
2431
  }
2432
2432
  },
2433
- "id": 33712,
2433
+ "id": 34313,
2434
2434
  "nodeType": "ExpressionStatement",
2435
2435
  "src": "2554:28:65"
2436
2436
  },
@@ -2440,32 +2440,32 @@
2440
2440
  "expression": {
2441
2441
  "argumentTypes": [],
2442
2442
  "expression": {
2443
- "id": 33713,
2443
+ "id": 34314,
2444
2444
  "name": "ResourceType",
2445
2445
  "nodeType": "Identifier",
2446
2446
  "overloadedDeclarations": [],
2447
- "referencedDeclaration": 36454,
2447
+ "referencedDeclaration": 37055,
2448
2448
  "src": "2589:12:65",
2449
2449
  "typeDescriptions": {
2450
- "typeIdentifier": "t_type$_t_contract$_ResourceType_$36454_$",
2450
+ "typeIdentifier": "t_type$_t_contract$_ResourceType_$37055_$",
2451
2451
  "typeString": "type(library ResourceType)"
2452
2452
  }
2453
2453
  },
2454
- "id": 33715,
2454
+ "id": 34316,
2455
2455
  "isConstant": false,
2456
2456
  "isLValue": false,
2457
2457
  "isPure": false,
2458
2458
  "lValueRequested": false,
2459
2459
  "memberName": "registerSchema",
2460
2460
  "nodeType": "MemberAccess",
2461
- "referencedDeclaration": 36104,
2461
+ "referencedDeclaration": 36705,
2462
2462
  "src": "2589:27:65",
2463
2463
  "typeDescriptions": {
2464
2464
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
2465
2465
  "typeString": "function ()"
2466
2466
  }
2467
2467
  },
2468
- "id": 33716,
2468
+ "id": 34317,
2469
2469
  "isConstant": false,
2470
2470
  "isLValue": false,
2471
2471
  "isPure": false,
@@ -2480,7 +2480,7 @@
2480
2480
  "typeString": "tuple()"
2481
2481
  }
2482
2482
  },
2483
- "id": 33717,
2483
+ "id": 34318,
2484
2484
  "nodeType": "ExpressionStatement",
2485
2485
  "src": "2589:29:65"
2486
2486
  },
@@ -2490,32 +2490,32 @@
2490
2490
  "expression": {
2491
2491
  "argumentTypes": [],
2492
2492
  "expression": {
2493
- "id": 33718,
2493
+ "id": 34319,
2494
2494
  "name": "ResourceType",
2495
2495
  "nodeType": "Identifier",
2496
2496
  "overloadedDeclarations": [],
2497
- "referencedDeclaration": 36454,
2497
+ "referencedDeclaration": 37055,
2498
2498
  "src": "2624:12:65",
2499
2499
  "typeDescriptions": {
2500
- "typeIdentifier": "t_type$_t_contract$_ResourceType_$36454_$",
2500
+ "typeIdentifier": "t_type$_t_contract$_ResourceType_$37055_$",
2501
2501
  "typeString": "type(library ResourceType)"
2502
2502
  }
2503
2503
  },
2504
- "id": 33720,
2504
+ "id": 34321,
2505
2505
  "isConstant": false,
2506
2506
  "isLValue": false,
2507
2507
  "isPure": false,
2508
2508
  "lValueRequested": false,
2509
2509
  "memberName": "setMetadata",
2510
2510
  "nodeType": "MemberAccess",
2511
- "referencedDeclaration": 36143,
2511
+ "referencedDeclaration": 36744,
2512
2512
  "src": "2624:24:65",
2513
2513
  "typeDescriptions": {
2514
2514
  "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
2515
2515
  "typeString": "function ()"
2516
2516
  }
2517
2517
  },
2518
- "id": 33721,
2518
+ "id": 34322,
2519
2519
  "isConstant": false,
2520
2520
  "isLValue": false,
2521
2521
  "isPure": false,
@@ -2530,7 +2530,7 @@
2530
2530
  "typeString": "tuple()"
2531
2531
  }
2532
2532
  },
2533
- "id": 33722,
2533
+ "id": 34323,
2534
2534
  "nodeType": "ExpressionStatement",
2535
2535
  "src": "2624:26:65"
2536
2536
  },
@@ -2538,11 +2538,11 @@
2538
2538
  "expression": {
2539
2539
  "arguments": [
2540
2540
  {
2541
- "id": 33726,
2541
+ "id": 34327,
2542
2542
  "name": "ROOT_NAMESPACE",
2543
2543
  "nodeType": "Identifier",
2544
2544
  "overloadedDeclarations": [],
2545
- "referencedDeclaration": 33166,
2545
+ "referencedDeclaration": 33752,
2546
2546
  "src": "2673:14:65",
2547
2547
  "typeDescriptions": {
2548
2548
  "typeIdentifier": "t_bytes16",
@@ -2551,28 +2551,28 @@
2551
2551
  },
2552
2552
  {
2553
2553
  "expression": {
2554
- "id": 33727,
2554
+ "id": 34328,
2555
2555
  "name": "Resource",
2556
2556
  "nodeType": "Identifier",
2557
2557
  "overloadedDeclarations": [],
2558
- "referencedDeclaration": 32571,
2558
+ "referencedDeclaration": 33095,
2559
2559
  "src": "2689:8:65",
2560
2560
  "typeDescriptions": {
2561
- "typeIdentifier": "t_type$_t_enum$_Resource_$32571_$",
2561
+ "typeIdentifier": "t_type$_t_enum$_Resource_$33095_$",
2562
2562
  "typeString": "type(enum Resource)"
2563
2563
  }
2564
2564
  },
2565
- "id": 33728,
2565
+ "id": 34329,
2566
2566
  "isConstant": false,
2567
2567
  "isLValue": false,
2568
2568
  "isPure": true,
2569
2569
  "lValueRequested": false,
2570
2570
  "memberName": "NAMESPACE",
2571
2571
  "nodeType": "MemberAccess",
2572
- "referencedDeclaration": 32568,
2572
+ "referencedDeclaration": 33092,
2573
2573
  "src": "2689:18:65",
2574
2574
  "typeDescriptions": {
2575
- "typeIdentifier": "t_enum$_Resource_$32571",
2575
+ "typeIdentifier": "t_enum$_Resource_$33095",
2576
2576
  "typeString": "enum Resource"
2577
2577
  }
2578
2578
  }
@@ -2584,37 +2584,37 @@
2584
2584
  "typeString": "bytes16"
2585
2585
  },
2586
2586
  {
2587
- "typeIdentifier": "t_enum$_Resource_$32571",
2587
+ "typeIdentifier": "t_enum$_Resource_$33095",
2588
2588
  "typeString": "enum Resource"
2589
2589
  }
2590
2590
  ],
2591
2591
  "expression": {
2592
- "id": 33723,
2592
+ "id": 34324,
2593
2593
  "name": "ResourceType",
2594
2594
  "nodeType": "Identifier",
2595
2595
  "overloadedDeclarations": [],
2596
- "referencedDeclaration": 36454,
2596
+ "referencedDeclaration": 37055,
2597
2597
  "src": "2656:12:65",
2598
2598
  "typeDescriptions": {
2599
- "typeIdentifier": "t_type$_t_contract$_ResourceType_$36454_$",
2599
+ "typeIdentifier": "t_type$_t_contract$_ResourceType_$37055_$",
2600
2600
  "typeString": "type(library ResourceType)"
2601
2601
  }
2602
2602
  },
2603
- "id": 33725,
2603
+ "id": 34326,
2604
2604
  "isConstant": false,
2605
2605
  "isLValue": false,
2606
2606
  "isPure": false,
2607
2607
  "lValueRequested": false,
2608
2608
  "memberName": "set",
2609
2609
  "nodeType": "MemberAccess",
2610
- "referencedDeclaration": 36318,
2610
+ "referencedDeclaration": 36919,
2611
2611
  "src": "2656:16:65",
2612
2612
  "typeDescriptions": {
2613
- "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_enum$_Resource_$32571_$returns$__$",
2613
+ "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_enum$_Resource_$33095_$returns$__$",
2614
2614
  "typeString": "function (bytes32,enum Resource)"
2615
2615
  }
2616
2616
  },
2617
- "id": 33729,
2617
+ "id": 34330,
2618
2618
  "isConstant": false,
2619
2619
  "isLValue": false,
2620
2620
  "isPure": false,
@@ -2629,14 +2629,14 @@
2629
2629
  "typeString": "tuple()"
2630
2630
  }
2631
2631
  },
2632
- "id": 33730,
2632
+ "id": 34331,
2633
2633
  "nodeType": "ExpressionStatement",
2634
2634
  "src": "2656:52:65"
2635
2635
  }
2636
2636
  ]
2637
2637
  },
2638
2638
  "documentation": {
2639
- "id": 33646,
2639
+ "id": 34247,
2640
2640
  "nodeType": "StructuredDocumentation",
2641
2641
  "src": "2041:48:65",
2642
2642
  "text": " Register core tables in the World"
@@ -2647,29 +2647,29 @@
2647
2647
  "name": "_registerCoreTables",
2648
2648
  "nameLocation": "2101:19:65",
2649
2649
  "parameters": {
2650
- "id": 33647,
2650
+ "id": 34248,
2651
2651
  "nodeType": "ParameterList",
2652
2652
  "parameters": [],
2653
2653
  "src": "2120:2:65"
2654
2654
  },
2655
2655
  "returnParameters": {
2656
- "id": 33648,
2656
+ "id": 34249,
2657
2657
  "nodeType": "ParameterList",
2658
2658
  "parameters": [],
2659
2659
  "src": "2132:0:65"
2660
2660
  },
2661
- "scope": 33853,
2661
+ "scope": 34454,
2662
2662
  "stateMutability": "nonpayable",
2663
2663
  "virtual": false,
2664
2664
  "visibility": "internal"
2665
2665
  },
2666
2666
  {
2667
- "id": 33757,
2667
+ "id": 34358,
2668
2668
  "nodeType": "FunctionDefinition",
2669
2669
  "src": "2771:462:65",
2670
2670
  "nodes": [],
2671
2671
  "body": {
2672
- "id": 33756,
2672
+ "id": 34357,
2673
2673
  "nodeType": "Block",
2674
2674
  "src": "2811:422:65",
2675
2675
  "nodes": [],
@@ -2681,18 +2681,18 @@
2681
2681
  "arguments": [],
2682
2682
  "expression": {
2683
2683
  "argumentTypes": [],
2684
- "id": 33739,
2684
+ "id": 34340,
2685
2685
  "name": "_msgSender",
2686
2686
  "nodeType": "Identifier",
2687
2687
  "overloadedDeclarations": [],
2688
- "referencedDeclaration": 33150,
2688
+ "referencedDeclaration": 33736,
2689
2689
  "src": "2945:10:65",
2690
2690
  "typeDescriptions": {
2691
2691
  "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
2692
2692
  "typeString": "function () view returns (address)"
2693
2693
  }
2694
2694
  },
2695
- "id": 33740,
2695
+ "id": 34341,
2696
2696
  "isConstant": false,
2697
2697
  "isLValue": false,
2698
2698
  "isPure": false,
@@ -2708,11 +2708,11 @@
2708
2708
  }
2709
2709
  },
2710
2710
  {
2711
- "id": 33741,
2711
+ "id": 34342,
2712
2712
  "name": "coreSystem",
2713
2713
  "nodeType": "Identifier",
2714
2714
  "overloadedDeclarations": [],
2715
- "referencedDeclaration": 33621,
2715
+ "referencedDeclaration": 34222,
2716
2716
  "src": "2973:10:65",
2717
2717
  "typeDescriptions": {
2718
2718
  "typeIdentifier": "t_address",
@@ -2721,7 +2721,7 @@
2721
2721
  },
2722
2722
  {
2723
2723
  "hexValue": "74727565",
2724
- "id": 33742,
2724
+ "id": 34343,
2725
2725
  "isConstant": false,
2726
2726
  "isLValue": false,
2727
2727
  "isPure": true,
@@ -2737,7 +2737,7 @@
2737
2737
  },
2738
2738
  {
2739
2739
  "hexValue": "30",
2740
- "id": 33743,
2740
+ "id": 34344,
2741
2741
  "isConstant": false,
2742
2742
  "isLValue": false,
2743
2743
  "isPure": true,
@@ -2756,32 +2756,32 @@
2756
2756
  {
2757
2757
  "expression": {
2758
2758
  "expression": {
2759
- "id": 33746,
2759
+ "id": 34347,
2760
2760
  "name": "WorldRegistrationSystem",
2761
2761
  "nodeType": "Identifier",
2762
2762
  "overloadedDeclarations": [],
2763
- "referencedDeclaration": 34823,
2763
+ "referencedDeclaration": 35424,
2764
2764
  "src": "3082:23:65",
2765
2765
  "typeDescriptions": {
2766
- "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$34823_$",
2766
+ "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$35424_$",
2767
2767
  "typeString": "type(contract WorldRegistrationSystem)"
2768
2768
  }
2769
2769
  },
2770
- "id": 33747,
2770
+ "id": 34348,
2771
2771
  "isConstant": false,
2772
2772
  "isLValue": false,
2773
2773
  "isPure": true,
2774
2774
  "lValueRequested": false,
2775
2775
  "memberName": "registerSystem",
2776
2776
  "nodeType": "MemberAccess",
2777
- "referencedDeclaration": 34643,
2777
+ "referencedDeclaration": 35244,
2778
2778
  "src": "3082:38:65",
2779
2779
  "typeDescriptions": {
2780
- "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$_t_bytes16_$_t_contract$_System_$32532_$_t_bool_$returns$_t_bytes32_$",
2780
+ "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$_t_bytes16_$_t_contract$_System_$33056_$_t_bool_$returns$_t_bytes32_$",
2781
2781
  "typeString": "function WorldRegistrationSystem.registerSystem(bytes16,bytes16,contract System,bool) returns (bytes32)"
2782
2782
  }
2783
2783
  },
2784
- "id": 33748,
2784
+ "id": 34349,
2785
2785
  "isConstant": false,
2786
2786
  "isLValue": false,
2787
2787
  "isPure": true,
@@ -2795,11 +2795,11 @@
2795
2795
  }
2796
2796
  },
2797
2797
  {
2798
- "id": 33749,
2798
+ "id": 34350,
2799
2799
  "name": "ROOT_NAMESPACE",
2800
2800
  "nodeType": "Identifier",
2801
2801
  "overloadedDeclarations": [],
2802
- "referencedDeclaration": 33166,
2802
+ "referencedDeclaration": 33752,
2803
2803
  "src": "3139:14:65",
2804
2804
  "typeDescriptions": {
2805
2805
  "typeIdentifier": "t_bytes16",
@@ -2807,11 +2807,11 @@
2807
2807
  }
2808
2808
  },
2809
2809
  {
2810
- "id": 33750,
2810
+ "id": 34351,
2811
2811
  "name": "CORE_SYSTEM_NAME",
2812
2812
  "nodeType": "Identifier",
2813
2813
  "overloadedDeclarations": [],
2814
- "referencedDeclaration": 33891,
2814
+ "referencedDeclaration": 34492,
2815
2815
  "src": "3163:16:65",
2816
2816
  "typeDescriptions": {
2817
2817
  "typeIdentifier": "t_bytes16",
@@ -2819,11 +2819,11 @@
2819
2819
  }
2820
2820
  },
2821
2821
  {
2822
- "id": 33751,
2822
+ "id": 34352,
2823
2823
  "name": "coreSystem",
2824
2824
  "nodeType": "Identifier",
2825
2825
  "overloadedDeclarations": [],
2826
- "referencedDeclaration": 33621,
2826
+ "referencedDeclaration": 34222,
2827
2827
  "src": "3189:10:65",
2828
2828
  "typeDescriptions": {
2829
2829
  "typeIdentifier": "t_address",
@@ -2832,7 +2832,7 @@
2832
2832
  },
2833
2833
  {
2834
2834
  "hexValue": "74727565",
2835
- "id": 33752,
2835
+ "id": 34353,
2836
2836
  "isConstant": false,
2837
2837
  "isLValue": false,
2838
2838
  "isPure": true,
@@ -2871,7 +2871,7 @@
2871
2871
  }
2872
2872
  ],
2873
2873
  "expression": {
2874
- "id": 33744,
2874
+ "id": 34345,
2875
2875
  "name": "abi",
2876
2876
  "nodeType": "Identifier",
2877
2877
  "overloadedDeclarations": [],
@@ -2882,7 +2882,7 @@
2882
2882
  "typeString": "abi"
2883
2883
  }
2884
2884
  },
2885
- "id": 33745,
2885
+ "id": 34346,
2886
2886
  "isConstant": false,
2887
2887
  "isLValue": false,
2888
2888
  "isPure": true,
@@ -2895,7 +2895,7 @@
2895
2895
  "typeString": "function (bytes4) pure returns (bytes memory)"
2896
2896
  }
2897
2897
  },
2898
- "id": 33753,
2898
+ "id": 34354,
2899
2899
  "isConstant": false,
2900
2900
  "isLValue": false,
2901
2901
  "isPure": false,
@@ -2935,32 +2935,32 @@
2935
2935
  }
2936
2936
  ],
2937
2937
  "expression": {
2938
- "id": 33736,
2938
+ "id": 34337,
2939
2939
  "name": "Call",
2940
2940
  "nodeType": "Identifier",
2941
2941
  "overloadedDeclarations": [],
2942
- "referencedDeclaration": 32352,
2942
+ "referencedDeclaration": 32876,
2943
2943
  "src": "2910:4:65",
2944
2944
  "typeDescriptions": {
2945
- "typeIdentifier": "t_type$_t_contract$_Call_$32352_$",
2945
+ "typeIdentifier": "t_type$_t_contract$_Call_$32876_$",
2946
2946
  "typeString": "type(library Call)"
2947
2947
  }
2948
2948
  },
2949
- "id": 33738,
2949
+ "id": 34339,
2950
2950
  "isConstant": false,
2951
2951
  "isLValue": false,
2952
2952
  "isPure": false,
2953
2953
  "lValueRequested": false,
2954
2954
  "memberName": "withSender",
2955
2955
  "nodeType": "MemberAccess",
2956
- "referencedDeclaration": 32351,
2956
+ "referencedDeclaration": 32875,
2957
2957
  "src": "2910:15:65",
2958
2958
  "typeDescriptions": {
2959
2959
  "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_uint256_$returns$_t_bytes_memory_ptr_$",
2960
2960
  "typeString": "function (address,address,bytes memory,bool,uint256) returns (bytes memory)"
2961
2961
  }
2962
2962
  },
2963
- "id": 33754,
2963
+ "id": 34355,
2964
2964
  "isConstant": false,
2965
2965
  "isLValue": false,
2966
2966
  "isPure": false,
@@ -2981,14 +2981,14 @@
2981
2981
  "typeString": "bytes memory"
2982
2982
  }
2983
2983
  },
2984
- "id": 33755,
2984
+ "id": 34356,
2985
2985
  "nodeType": "ExpressionStatement",
2986
2986
  "src": "2910:318:65"
2987
2987
  }
2988
2988
  ]
2989
2989
  },
2990
2990
  "documentation": {
2991
- "id": 33733,
2991
+ "id": 34334,
2992
2992
  "nodeType": "StructuredDocumentation",
2993
2993
  "src": "2717:51:65",
2994
2994
  "text": " Register the CoreSystem in the World"
@@ -2999,46 +2999,46 @@
2999
2999
  "name": "_registerCoreSystem",
3000
3000
  "nameLocation": "2780:19:65",
3001
3001
  "parameters": {
3002
- "id": 33734,
3002
+ "id": 34335,
3003
3003
  "nodeType": "ParameterList",
3004
3004
  "parameters": [],
3005
3005
  "src": "2799:2:65"
3006
3006
  },
3007
3007
  "returnParameters": {
3008
- "id": 33735,
3008
+ "id": 34336,
3009
3009
  "nodeType": "ParameterList",
3010
3010
  "parameters": [],
3011
3011
  "src": "2811:0:65"
3012
3012
  },
3013
- "scope": 33853,
3013
+ "scope": 34454,
3014
3014
  "stateMutability": "nonpayable",
3015
3015
  "virtual": false,
3016
3016
  "visibility": "internal"
3017
3017
  },
3018
3018
  {
3019
- "id": 33852,
3019
+ "id": 34453,
3020
3020
  "nodeType": "FunctionDefinition",
3021
3021
  "src": "3324:1694:65",
3022
3022
  "nodes": [],
3023
3023
  "body": {
3024
- "id": 33851,
3024
+ "id": 34452,
3025
3025
  "nodeType": "Block",
3026
3026
  "src": "3371:1647:65",
3027
3027
  "nodes": [],
3028
3028
  "statements": [
3029
3029
  {
3030
3030
  "assignments": [
3031
- 33766
3031
+ 34367
3032
3032
  ],
3033
3033
  "declarations": [
3034
3034
  {
3035
3035
  "constant": false,
3036
- "id": 33766,
3036
+ "id": 34367,
3037
3037
  "mutability": "mutable",
3038
3038
  "name": "functionSelectors",
3039
3039
  "nameLocation": "3395:17:65",
3040
3040
  "nodeType": "VariableDeclaration",
3041
- "scope": 33851,
3041
+ "scope": 34452,
3042
3042
  "src": "3377:35:65",
3043
3043
  "stateVariable": false,
3044
3044
  "storageLocation": "memory",
@@ -3048,7 +3048,7 @@
3048
3048
  },
3049
3049
  "typeName": {
3050
3050
  "baseType": {
3051
- "id": 33764,
3051
+ "id": 34365,
3052
3052
  "name": "bytes4",
3053
3053
  "nodeType": "ElementaryTypeName",
3054
3054
  "src": "3377:6:65",
@@ -3057,10 +3057,10 @@
3057
3057
  "typeString": "bytes4"
3058
3058
  }
3059
3059
  },
3060
- "id": 33765,
3060
+ "id": 34366,
3061
3061
  "length": {
3062
3062
  "hexValue": "3135",
3063
- "id": 33763,
3063
+ "id": 34364,
3064
3064
  "isConstant": false,
3065
3065
  "isLValue": false,
3066
3066
  "isPure": true,
@@ -3084,38 +3084,38 @@
3084
3084
  "visibility": "internal"
3085
3085
  }
3086
3086
  ],
3087
- "id": 33813,
3087
+ "id": 34414,
3088
3088
  "initialValue": {
3089
3089
  "components": [
3090
3090
  {
3091
3091
  "expression": {
3092
3092
  "expression": {
3093
- "id": 33767,
3093
+ "id": 34368,
3094
3094
  "name": "WorldRegistrationSystem",
3095
3095
  "nodeType": "Identifier",
3096
3096
  "overloadedDeclarations": [],
3097
- "referencedDeclaration": 34823,
3097
+ "referencedDeclaration": 35424,
3098
3098
  "src": "3464:23:65",
3099
3099
  "typeDescriptions": {
3100
- "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$34823_$",
3100
+ "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$35424_$",
3101
3101
  "typeString": "type(contract WorldRegistrationSystem)"
3102
3102
  }
3103
3103
  },
3104
- "id": 33768,
3104
+ "id": 34369,
3105
3105
  "isConstant": false,
3106
3106
  "isLValue": false,
3107
3107
  "isPure": true,
3108
3108
  "lValueRequested": false,
3109
3109
  "memberName": "registerNamespace",
3110
3110
  "nodeType": "MemberAccess",
3111
- "referencedDeclaration": 34295,
3111
+ "referencedDeclaration": 34896,
3112
3112
  "src": "3464:41:65",
3113
3113
  "typeDescriptions": {
3114
3114
  "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$returns$__$",
3115
3115
  "typeString": "function WorldRegistrationSystem.registerNamespace(bytes16)"
3116
3116
  }
3117
3117
  },
3118
- "id": 33769,
3118
+ "id": 34370,
3119
3119
  "isConstant": false,
3120
3120
  "isLValue": false,
3121
3121
  "isPure": true,
@@ -3131,32 +3131,32 @@
3131
3131
  {
3132
3132
  "expression": {
3133
3133
  "expression": {
3134
- "id": 33770,
3134
+ "id": 34371,
3135
3135
  "name": "WorldRegistrationSystem",
3136
3136
  "nodeType": "Identifier",
3137
3137
  "overloadedDeclarations": [],
3138
- "referencedDeclaration": 34823,
3138
+ "referencedDeclaration": 35424,
3139
3139
  "src": "3522:23:65",
3140
3140
  "typeDescriptions": {
3141
- "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$34823_$",
3141
+ "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$35424_$",
3142
3142
  "typeString": "type(contract WorldRegistrationSystem)"
3143
3143
  }
3144
3144
  },
3145
- "id": 33771,
3145
+ "id": 34372,
3146
3146
  "isConstant": false,
3147
3147
  "isLValue": false,
3148
3148
  "isPure": true,
3149
3149
  "lValueRequested": false,
3150
3150
  "memberName": "registerTable",
3151
3151
  "nodeType": "MemberAccess",
3152
- "referencedDeclaration": 34382,
3152
+ "referencedDeclaration": 34983,
3153
3153
  "src": "3522:37:65",
3154
3154
  "typeDescriptions": {
3155
- "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$_t_bytes16_$_t_userDefinedValueType$_Schema_$17918_$_t_userDefinedValueType$_Schema_$17918_$returns$_t_bytes32_$",
3155
+ "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$_t_bytes16_$_t_userDefinedValueType$_Schema_$18191_$_t_userDefinedValueType$_Schema_$18191_$returns$_t_bytes32_$",
3156
3156
  "typeString": "function WorldRegistrationSystem.registerTable(bytes16,bytes16,Schema,Schema) returns (bytes32)"
3157
3157
  }
3158
3158
  },
3159
- "id": 33772,
3159
+ "id": 34373,
3160
3160
  "isConstant": false,
3161
3161
  "isLValue": false,
3162
3162
  "isPure": true,
@@ -3172,32 +3172,32 @@
3172
3172
  {
3173
3173
  "expression": {
3174
3174
  "expression": {
3175
- "id": 33773,
3175
+ "id": 34374,
3176
3176
  "name": "WorldRegistrationSystem",
3177
3177
  "nodeType": "Identifier",
3178
3178
  "overloadedDeclarations": [],
3179
- "referencedDeclaration": 34823,
3179
+ "referencedDeclaration": 35424,
3180
3180
  "src": "3576:23:65",
3181
3181
  "typeDescriptions": {
3182
- "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$34823_$",
3182
+ "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$35424_$",
3183
3183
  "typeString": "type(contract WorldRegistrationSystem)"
3184
3184
  }
3185
3185
  },
3186
- "id": 33774,
3186
+ "id": 34375,
3187
3187
  "isConstant": false,
3188
3188
  "isLValue": false,
3189
3189
  "isPure": true,
3190
3190
  "lValueRequested": false,
3191
3191
  "memberName": "setMetadata",
3192
3192
  "nodeType": "MemberAccess",
3193
- "referencedDeclaration": 34414,
3193
+ "referencedDeclaration": 35015,
3194
3194
  "src": "3576:35:65",
3195
3195
  "typeDescriptions": {
3196
3196
  "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$_t_bytes16_$_t_string_calldata_ptr_$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$returns$__$",
3197
3197
  "typeString": "function WorldRegistrationSystem.setMetadata(bytes16,bytes16,string calldata,string calldata[] calldata)"
3198
3198
  }
3199
3199
  },
3200
- "id": 33775,
3200
+ "id": 34376,
3201
3201
  "isConstant": false,
3202
3202
  "isLValue": false,
3203
3203
  "isPure": true,
@@ -3213,32 +3213,32 @@
3213
3213
  {
3214
3214
  "expression": {
3215
3215
  "expression": {
3216
- "id": 33776,
3216
+ "id": 34377,
3217
3217
  "name": "WorldRegistrationSystem",
3218
3218
  "nodeType": "Identifier",
3219
3219
  "overloadedDeclarations": [],
3220
- "referencedDeclaration": 34823,
3220
+ "referencedDeclaration": 35424,
3221
3221
  "src": "3628:23:65",
3222
3222
  "typeDescriptions": {
3223
- "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$34823_$",
3223
+ "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$35424_$",
3224
3224
  "typeString": "type(contract WorldRegistrationSystem)"
3225
3225
  }
3226
3226
  },
3227
- "id": 33777,
3227
+ "id": 34378,
3228
3228
  "isConstant": false,
3229
3229
  "isLValue": false,
3230
3230
  "isPure": true,
3231
3231
  "lValueRequested": false,
3232
3232
  "memberName": "registerHook",
3233
3233
  "nodeType": "MemberAccess",
3234
- "referencedDeclaration": 34475,
3234
+ "referencedDeclaration": 35076,
3235
3235
  "src": "3628:36:65",
3236
3236
  "typeDescriptions": {
3237
3237
  "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$_t_bytes16_$_t_address_$returns$__$",
3238
3238
  "typeString": "function WorldRegistrationSystem.registerHook(bytes16,bytes16,address)"
3239
3239
  }
3240
3240
  },
3241
- "id": 33778,
3241
+ "id": 34379,
3242
3242
  "isConstant": false,
3243
3243
  "isLValue": false,
3244
3244
  "isPure": true,
@@ -3254,32 +3254,32 @@
3254
3254
  {
3255
3255
  "expression": {
3256
3256
  "expression": {
3257
- "id": 33779,
3257
+ "id": 34380,
3258
3258
  "name": "WorldRegistrationSystem",
3259
3259
  "nodeType": "Identifier",
3260
3260
  "overloadedDeclarations": [],
3261
- "referencedDeclaration": 34823,
3261
+ "referencedDeclaration": 35424,
3262
3262
  "src": "3681:23:65",
3263
3263
  "typeDescriptions": {
3264
- "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$34823_$",
3264
+ "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$35424_$",
3265
3265
  "typeString": "type(contract WorldRegistrationSystem)"
3266
3266
  }
3267
3267
  },
3268
- "id": 33780,
3268
+ "id": 34381,
3269
3269
  "isConstant": false,
3270
3270
  "isLValue": false,
3271
3271
  "isPure": true,
3272
3272
  "lValueRequested": false,
3273
3273
  "memberName": "registerTableHook",
3274
3274
  "nodeType": "MemberAccess",
3275
- "referencedDeclaration": 34504,
3275
+ "referencedDeclaration": 35105,
3276
3276
  "src": "3681:41:65",
3277
3277
  "typeDescriptions": {
3278
- "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$_t_bytes16_$_t_contract$_IStoreHook_$17411_$returns$__$",
3278
+ "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$_t_bytes16_$_t_contract$_IStoreHook_$17684_$returns$__$",
3279
3279
  "typeString": "function WorldRegistrationSystem.registerTableHook(bytes16,bytes16,contract IStoreHook)"
3280
3280
  }
3281
3281
  },
3282
- "id": 33781,
3282
+ "id": 34382,
3283
3283
  "isConstant": false,
3284
3284
  "isLValue": false,
3285
3285
  "isPure": true,
@@ -3295,32 +3295,32 @@
3295
3295
  {
3296
3296
  "expression": {
3297
3297
  "expression": {
3298
- "id": 33782,
3298
+ "id": 34383,
3299
3299
  "name": "WorldRegistrationSystem",
3300
3300
  "nodeType": "Identifier",
3301
3301
  "overloadedDeclarations": [],
3302
- "referencedDeclaration": 34823,
3302
+ "referencedDeclaration": 35424,
3303
3303
  "src": "3739:23:65",
3304
3304
  "typeDescriptions": {
3305
- "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$34823_$",
3305
+ "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$35424_$",
3306
3306
  "typeString": "type(contract WorldRegistrationSystem)"
3307
3307
  }
3308
3308
  },
3309
- "id": 33783,
3309
+ "id": 34384,
3310
3310
  "isConstant": false,
3311
3311
  "isLValue": false,
3312
3312
  "isPure": true,
3313
3313
  "lValueRequested": false,
3314
3314
  "memberName": "registerSystemHook",
3315
3315
  "nodeType": "MemberAccess",
3316
- "referencedDeclaration": 34516,
3316
+ "referencedDeclaration": 35117,
3317
3317
  "src": "3739:42:65",
3318
3318
  "typeDescriptions": {
3319
- "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$_t_bytes16_$_t_contract$_ISystemHook_$33337_$returns$__$",
3319
+ "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$_t_bytes16_$_t_contract$_ISystemHook_$33923_$returns$__$",
3320
3320
  "typeString": "function WorldRegistrationSystem.registerSystemHook(bytes16,bytes16,contract ISystemHook)"
3321
3321
  }
3322
3322
  },
3323
- "id": 33784,
3323
+ "id": 34385,
3324
3324
  "isConstant": false,
3325
3325
  "isLValue": false,
3326
3326
  "isPure": true,
@@ -3336,32 +3336,32 @@
3336
3336
  {
3337
3337
  "expression": {
3338
3338
  "expression": {
3339
- "id": 33785,
3339
+ "id": 34386,
3340
3340
  "name": "WorldRegistrationSystem",
3341
3341
  "nodeType": "Identifier",
3342
3342
  "overloadedDeclarations": [],
3343
- "referencedDeclaration": 34823,
3343
+ "referencedDeclaration": 35424,
3344
3344
  "src": "3798:23:65",
3345
3345
  "typeDescriptions": {
3346
- "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$34823_$",
3346
+ "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$35424_$",
3347
3347
  "typeString": "type(contract WorldRegistrationSystem)"
3348
3348
  }
3349
3349
  },
3350
- "id": 33786,
3350
+ "id": 34387,
3351
3351
  "isConstant": false,
3352
3352
  "isLValue": false,
3353
3353
  "isPure": true,
3354
3354
  "lValueRequested": false,
3355
3355
  "memberName": "registerSystem",
3356
3356
  "nodeType": "MemberAccess",
3357
- "referencedDeclaration": 34643,
3357
+ "referencedDeclaration": 35244,
3358
3358
  "src": "3798:38:65",
3359
3359
  "typeDescriptions": {
3360
- "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$_t_bytes16_$_t_contract$_System_$32532_$_t_bool_$returns$_t_bytes32_$",
3360
+ "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$_t_bytes16_$_t_contract$_System_$33056_$_t_bool_$returns$_t_bytes32_$",
3361
3361
  "typeString": "function WorldRegistrationSystem.registerSystem(bytes16,bytes16,contract System,bool) returns (bytes32)"
3362
3362
  }
3363
3363
  },
3364
- "id": 33787,
3364
+ "id": 34388,
3365
3365
  "isConstant": false,
3366
3366
  "isLValue": false,
3367
3367
  "isPure": true,
@@ -3377,32 +3377,32 @@
3377
3377
  {
3378
3378
  "expression": {
3379
3379
  "expression": {
3380
- "id": 33788,
3380
+ "id": 34389,
3381
3381
  "name": "WorldRegistrationSystem",
3382
3382
  "nodeType": "Identifier",
3383
3383
  "overloadedDeclarations": [],
3384
- "referencedDeclaration": 34823,
3384
+ "referencedDeclaration": 35424,
3385
3385
  "src": "3853:23:65",
3386
3386
  "typeDescriptions": {
3387
- "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$34823_$",
3387
+ "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$35424_$",
3388
3388
  "typeString": "type(contract WorldRegistrationSystem)"
3389
3389
  }
3390
3390
  },
3391
- "id": 33789,
3391
+ "id": 34390,
3392
3392
  "isConstant": false,
3393
3393
  "isLValue": false,
3394
3394
  "isPure": true,
3395
3395
  "lValueRequested": false,
3396
3396
  "memberName": "registerFunctionSelector",
3397
3397
  "nodeType": "MemberAccess",
3398
- "referencedDeclaration": 34759,
3398
+ "referencedDeclaration": 35360,
3399
3399
  "src": "3853:48:65",
3400
3400
  "typeDescriptions": {
3401
3401
  "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$_t_bytes16_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes4_$",
3402
3402
  "typeString": "function WorldRegistrationSystem.registerFunctionSelector(bytes16,bytes16,string memory,string memory) returns (bytes4)"
3403
3403
  }
3404
3404
  },
3405
- "id": 33790,
3405
+ "id": 34391,
3406
3406
  "isConstant": false,
3407
3407
  "isLValue": false,
3408
3408
  "isPure": true,
@@ -3418,32 +3418,32 @@
3418
3418
  {
3419
3419
  "expression": {
3420
3420
  "expression": {
3421
- "id": 33791,
3421
+ "id": 34392,
3422
3422
  "name": "WorldRegistrationSystem",
3423
3423
  "nodeType": "Identifier",
3424
3424
  "overloadedDeclarations": [],
3425
- "referencedDeclaration": 34823,
3425
+ "referencedDeclaration": 35424,
3426
3426
  "src": "3918:23:65",
3427
3427
  "typeDescriptions": {
3428
- "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$34823_$",
3428
+ "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$35424_$",
3429
3429
  "typeString": "type(contract WorldRegistrationSystem)"
3430
3430
  }
3431
3431
  },
3432
- "id": 33792,
3432
+ "id": 34393,
3433
3433
  "isConstant": false,
3434
3434
  "isLValue": false,
3435
3435
  "isPure": true,
3436
3436
  "lValueRequested": false,
3437
3437
  "memberName": "registerRootFunctionSelector",
3438
3438
  "nodeType": "MemberAccess",
3439
- "referencedDeclaration": 34822,
3439
+ "referencedDeclaration": 35423,
3440
3440
  "src": "3918:52:65",
3441
3441
  "typeDescriptions": {
3442
3442
  "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$_t_bytes16_$_t_bytes4_$_t_bytes4_$returns$_t_bytes4_$",
3443
3443
  "typeString": "function WorldRegistrationSystem.registerRootFunctionSelector(bytes16,bytes16,bytes4,bytes4) returns (bytes4)"
3444
3444
  }
3445
3445
  },
3446
- "id": 33793,
3446
+ "id": 34394,
3447
3447
  "isConstant": false,
3448
3448
  "isLValue": false,
3449
3449
  "isPure": true,
@@ -3459,32 +3459,32 @@
3459
3459
  {
3460
3460
  "expression": {
3461
3461
  "expression": {
3462
- "id": 33794,
3462
+ "id": 34395,
3463
3463
  "name": "StoreRegistrationSystem",
3464
3464
  "nodeType": "Identifier",
3465
3465
  "overloadedDeclarations": [],
3466
- "referencedDeclaration": 34199,
3466
+ "referencedDeclaration": 34800,
3467
3467
  "src": "4028:23:65",
3468
3468
  "typeDescriptions": {
3469
- "typeIdentifier": "t_type$_t_contract$_StoreRegistrationSystem_$34199_$",
3469
+ "typeIdentifier": "t_type$_t_contract$_StoreRegistrationSystem_$34800_$",
3470
3470
  "typeString": "type(contract StoreRegistrationSystem)"
3471
3471
  }
3472
3472
  },
3473
- "id": 33795,
3473
+ "id": 34396,
3474
3474
  "isConstant": false,
3475
3475
  "isLValue": false,
3476
3476
  "isPure": true,
3477
3477
  "lValueRequested": false,
3478
3478
  "memberName": "registerSchema",
3479
3479
  "nodeType": "MemberAccess",
3480
- "referencedDeclaration": 34107,
3480
+ "referencedDeclaration": 34708,
3481
3481
  "src": "4028:38:65",
3482
3482
  "typeDescriptions": {
3483
- "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes32_$_t_userDefinedValueType$_Schema_$17918_$_t_userDefinedValueType$_Schema_$17918_$returns$__$",
3483
+ "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes32_$_t_userDefinedValueType$_Schema_$18191_$_t_userDefinedValueType$_Schema_$18191_$returns$__$",
3484
3484
  "typeString": "function StoreRegistrationSystem.registerSchema(bytes32,Schema,Schema)"
3485
3485
  }
3486
3486
  },
3487
- "id": 33796,
3487
+ "id": 34397,
3488
3488
  "isConstant": false,
3489
3489
  "isLValue": false,
3490
3490
  "isPure": true,
@@ -3500,32 +3500,32 @@
3500
3500
  {
3501
3501
  "expression": {
3502
3502
  "expression": {
3503
- "id": 33797,
3503
+ "id": 34398,
3504
3504
  "name": "StoreRegistrationSystem",
3505
3505
  "nodeType": "Identifier",
3506
3506
  "overloadedDeclarations": [],
3507
- "referencedDeclaration": 34199,
3507
+ "referencedDeclaration": 34800,
3508
3508
  "src": "4083:23:65",
3509
3509
  "typeDescriptions": {
3510
- "typeIdentifier": "t_type$_t_contract$_StoreRegistrationSystem_$34199_$",
3510
+ "typeIdentifier": "t_type$_t_contract$_StoreRegistrationSystem_$34800_$",
3511
3511
  "typeString": "type(contract StoreRegistrationSystem)"
3512
3512
  }
3513
3513
  },
3514
- "id": 33798,
3514
+ "id": 34399,
3515
3515
  "isConstant": false,
3516
3516
  "isLValue": false,
3517
3517
  "isPure": true,
3518
3518
  "lValueRequested": false,
3519
3519
  "memberName": "setMetadata",
3520
3520
  "nodeType": "MemberAccess",
3521
- "referencedDeclaration": 34154,
3521
+ "referencedDeclaration": 34755,
3522
3522
  "src": "4083:35:65",
3523
3523
  "typeDescriptions": {
3524
3524
  "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes32_$_t_string_calldata_ptr_$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$returns$__$",
3525
3525
  "typeString": "function StoreRegistrationSystem.setMetadata(bytes32,string calldata,string calldata[] calldata)"
3526
3526
  }
3527
3527
  },
3528
- "id": 33799,
3528
+ "id": 34400,
3529
3529
  "isConstant": false,
3530
3530
  "isLValue": false,
3531
3531
  "isPure": true,
@@ -3541,32 +3541,32 @@
3541
3541
  {
3542
3542
  "expression": {
3543
3543
  "expression": {
3544
- "id": 33800,
3544
+ "id": 34401,
3545
3545
  "name": "StoreRegistrationSystem",
3546
3546
  "nodeType": "Identifier",
3547
3547
  "overloadedDeclarations": [],
3548
- "referencedDeclaration": 34199,
3548
+ "referencedDeclaration": 34800,
3549
3549
  "src": "4135:23:65",
3550
3550
  "typeDescriptions": {
3551
- "typeIdentifier": "t_type$_t_contract$_StoreRegistrationSystem_$34199_$",
3551
+ "typeIdentifier": "t_type$_t_contract$_StoreRegistrationSystem_$34800_$",
3552
3552
  "typeString": "type(contract StoreRegistrationSystem)"
3553
3553
  }
3554
3554
  },
3555
- "id": 33801,
3555
+ "id": 34402,
3556
3556
  "isConstant": false,
3557
3557
  "isLValue": false,
3558
3558
  "isPure": true,
3559
3559
  "lValueRequested": false,
3560
3560
  "memberName": "registerStoreHook",
3561
3561
  "nodeType": "MemberAccess",
3562
- "referencedDeclaration": 34198,
3562
+ "referencedDeclaration": 34799,
3563
3563
  "src": "4135:41:65",
3564
3564
  "typeDescriptions": {
3565
- "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes32_$_t_contract$_IStoreHook_$17411_$returns$__$",
3565
+ "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes32_$_t_contract$_IStoreHook_$17684_$returns$__$",
3566
3566
  "typeString": "function StoreRegistrationSystem.registerStoreHook(bytes32,contract IStoreHook)"
3567
3567
  }
3568
3568
  },
3569
- "id": 33802,
3569
+ "id": 34403,
3570
3570
  "isConstant": false,
3571
3571
  "isLValue": false,
3572
3572
  "isPure": true,
@@ -3582,32 +3582,32 @@
3582
3582
  {
3583
3583
  "expression": {
3584
3584
  "expression": {
3585
- "id": 33803,
3585
+ "id": 34404,
3586
3586
  "name": "ModuleInstallationSystem",
3587
3587
  "nodeType": "Identifier",
3588
3588
  "overloadedDeclarations": [],
3589
- "referencedDeclaration": 34029,
3589
+ "referencedDeclaration": 34630,
3590
3590
  "src": "4235:24:65",
3591
3591
  "typeDescriptions": {
3592
- "typeIdentifier": "t_type$_t_contract$_ModuleInstallationSystem_$34029_$",
3592
+ "typeIdentifier": "t_type$_t_contract$_ModuleInstallationSystem_$34630_$",
3593
3593
  "typeString": "type(contract ModuleInstallationSystem)"
3594
3594
  }
3595
3595
  },
3596
- "id": 33804,
3596
+ "id": 34405,
3597
3597
  "isConstant": false,
3598
3598
  "isLValue": false,
3599
3599
  "isPure": true,
3600
3600
  "lValueRequested": false,
3601
3601
  "memberName": "installModule",
3602
3602
  "nodeType": "MemberAccess",
3603
- "referencedDeclaration": 34028,
3603
+ "referencedDeclaration": 34629,
3604
3604
  "src": "4235:38:65",
3605
3605
  "typeDescriptions": {
3606
- "typeIdentifier": "t_function_declaration_nonpayable$_t_contract$_IModule_$33277_$_t_bytes_memory_ptr_$returns$__$",
3606
+ "typeIdentifier": "t_function_declaration_nonpayable$_t_contract$_IModule_$33863_$_t_bytes_memory_ptr_$returns$__$",
3607
3607
  "typeString": "function ModuleInstallationSystem.installModule(contract IModule,bytes memory)"
3608
3608
  }
3609
3609
  },
3610
- "id": 33805,
3610
+ "id": 34406,
3611
3611
  "isConstant": false,
3612
3612
  "isLValue": false,
3613
3613
  "isPure": true,
@@ -3623,32 +3623,32 @@
3623
3623
  {
3624
3624
  "expression": {
3625
3625
  "expression": {
3626
- "id": 33806,
3626
+ "id": 34407,
3627
3627
  "name": "AccessManagementSystem",
3628
3628
  "nodeType": "Identifier",
3629
3629
  "overloadedDeclarations": [],
3630
- "referencedDeclaration": 33966,
3630
+ "referencedDeclaration": 34567,
3631
3631
  "src": "4330:22:65",
3632
3632
  "typeDescriptions": {
3633
- "typeIdentifier": "t_type$_t_contract$_AccessManagementSystem_$33966_$",
3633
+ "typeIdentifier": "t_type$_t_contract$_AccessManagementSystem_$34567_$",
3634
3634
  "typeString": "type(contract AccessManagementSystem)"
3635
3635
  }
3636
3636
  },
3637
- "id": 33807,
3637
+ "id": 34408,
3638
3638
  "isConstant": false,
3639
3639
  "isLValue": false,
3640
3640
  "isPure": true,
3641
3641
  "lValueRequested": false,
3642
3642
  "memberName": "grantAccess",
3643
3643
  "nodeType": "MemberAccess",
3644
- "referencedDeclaration": 33937,
3644
+ "referencedDeclaration": 34538,
3645
3645
  "src": "4330:34:65",
3646
3646
  "typeDescriptions": {
3647
3647
  "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$_t_bytes16_$_t_address_$returns$__$",
3648
3648
  "typeString": "function AccessManagementSystem.grantAccess(bytes16,bytes16,address)"
3649
3649
  }
3650
3650
  },
3651
- "id": 33808,
3651
+ "id": 34409,
3652
3652
  "isConstant": false,
3653
3653
  "isLValue": false,
3654
3654
  "isPure": true,
@@ -3664,32 +3664,32 @@
3664
3664
  {
3665
3665
  "expression": {
3666
3666
  "expression": {
3667
- "id": 33809,
3667
+ "id": 34410,
3668
3668
  "name": "AccessManagementSystem",
3669
3669
  "nodeType": "Identifier",
3670
3670
  "overloadedDeclarations": [],
3671
- "referencedDeclaration": 33966,
3671
+ "referencedDeclaration": 34567,
3672
3672
  "src": "4381:22:65",
3673
3673
  "typeDescriptions": {
3674
- "typeIdentifier": "t_type$_t_contract$_AccessManagementSystem_$33966_$",
3674
+ "typeIdentifier": "t_type$_t_contract$_AccessManagementSystem_$34567_$",
3675
3675
  "typeString": "type(contract AccessManagementSystem)"
3676
3676
  }
3677
3677
  },
3678
- "id": 33810,
3678
+ "id": 34411,
3679
3679
  "isConstant": false,
3680
3680
  "isLValue": false,
3681
3681
  "isPure": true,
3682
3682
  "lValueRequested": false,
3683
3683
  "memberName": "revokeAccess",
3684
3684
  "nodeType": "MemberAccess",
3685
- "referencedDeclaration": 33965,
3685
+ "referencedDeclaration": 34566,
3686
3686
  "src": "4381:35:65",
3687
3687
  "typeDescriptions": {
3688
3688
  "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$_t_bytes16_$_t_address_$returns$__$",
3689
3689
  "typeString": "function AccessManagementSystem.revokeAccess(bytes16,bytes16,address)"
3690
3690
  }
3691
3691
  },
3692
- "id": 33811,
3692
+ "id": 34412,
3693
3693
  "isConstant": false,
3694
3694
  "isLValue": false,
3695
3695
  "isPure": true,
@@ -3703,7 +3703,7 @@
3703
3703
  }
3704
3704
  }
3705
3705
  ],
3706
- "id": 33812,
3706
+ "id": 34413,
3707
3707
  "isConstant": false,
3708
3708
  "isInlineArray": true,
3709
3709
  "isLValue": false,
@@ -3721,7 +3721,7 @@
3721
3721
  },
3722
3722
  {
3723
3723
  "body": {
3724
- "id": 33849,
3724
+ "id": 34450,
3725
3725
  "nodeType": "Block",
3726
3726
  "src": "4493:521:65",
3727
3727
  "statements": [
@@ -3732,18 +3732,18 @@
3732
3732
  "arguments": [],
3733
3733
  "expression": {
3734
3734
  "argumentTypes": [],
3735
- "id": 33828,
3735
+ "id": 34429,
3736
3736
  "name": "_msgSender",
3737
3737
  "nodeType": "Identifier",
3738
3738
  "overloadedDeclarations": [],
3739
- "referencedDeclaration": 33150,
3739
+ "referencedDeclaration": 33736,
3740
3740
  "src": "4662:10:65",
3741
3741
  "typeDescriptions": {
3742
3742
  "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
3743
3743
  "typeString": "function () view returns (address)"
3744
3744
  }
3745
3745
  },
3746
- "id": 33829,
3746
+ "id": 34430,
3747
3747
  "isConstant": false,
3748
3748
  "isLValue": false,
3749
3749
  "isPure": false,
@@ -3759,11 +3759,11 @@
3759
3759
  }
3760
3760
  },
3761
3761
  {
3762
- "id": 33830,
3762
+ "id": 34431,
3763
3763
  "name": "coreSystem",
3764
3764
  "nodeType": "Identifier",
3765
3765
  "overloadedDeclarations": [],
3766
- "referencedDeclaration": 33621,
3766
+ "referencedDeclaration": 34222,
3767
3767
  "src": "4692:10:65",
3768
3768
  "typeDescriptions": {
3769
3769
  "typeIdentifier": "t_address",
@@ -3772,7 +3772,7 @@
3772
3772
  },
3773
3773
  {
3774
3774
  "hexValue": "74727565",
3775
- "id": 33831,
3775
+ "id": 34432,
3776
3776
  "isConstant": false,
3777
3777
  "isLValue": false,
3778
3778
  "isPure": true,
@@ -3788,7 +3788,7 @@
3788
3788
  },
3789
3789
  {
3790
3790
  "hexValue": "30",
3791
- "id": 33832,
3791
+ "id": 34433,
3792
3792
  "isConstant": false,
3793
3793
  "isLValue": false,
3794
3794
  "isPure": true,
@@ -3807,32 +3807,32 @@
3807
3807
  {
3808
3808
  "expression": {
3809
3809
  "expression": {
3810
- "id": 33835,
3810
+ "id": 34436,
3811
3811
  "name": "WorldRegistrationSystem",
3812
3812
  "nodeType": "Identifier",
3813
3813
  "overloadedDeclarations": [],
3814
- "referencedDeclaration": 34823,
3814
+ "referencedDeclaration": 35424,
3815
3815
  "src": "4809:23:65",
3816
3816
  "typeDescriptions": {
3817
- "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$34823_$",
3817
+ "typeIdentifier": "t_type$_t_contract$_WorldRegistrationSystem_$35424_$",
3818
3818
  "typeString": "type(contract WorldRegistrationSystem)"
3819
3819
  }
3820
3820
  },
3821
- "id": 33836,
3821
+ "id": 34437,
3822
3822
  "isConstant": false,
3823
3823
  "isLValue": false,
3824
3824
  "isPure": true,
3825
3825
  "lValueRequested": false,
3826
3826
  "memberName": "registerRootFunctionSelector",
3827
3827
  "nodeType": "MemberAccess",
3828
- "referencedDeclaration": 34822,
3828
+ "referencedDeclaration": 35423,
3829
3829
  "src": "4809:52:65",
3830
3830
  "typeDescriptions": {
3831
3831
  "typeIdentifier": "t_function_declaration_nonpayable$_t_bytes16_$_t_bytes16_$_t_bytes4_$_t_bytes4_$returns$_t_bytes4_$",
3832
3832
  "typeString": "function WorldRegistrationSystem.registerRootFunctionSelector(bytes16,bytes16,bytes4,bytes4) returns (bytes4)"
3833
3833
  }
3834
3834
  },
3835
- "id": 33837,
3835
+ "id": 34438,
3836
3836
  "isConstant": false,
3837
3837
  "isLValue": false,
3838
3838
  "isPure": true,
@@ -3846,11 +3846,11 @@
3846
3846
  }
3847
3847
  },
3848
3848
  {
3849
- "id": 33838,
3849
+ "id": 34439,
3850
3850
  "name": "ROOT_NAMESPACE",
3851
3851
  "nodeType": "Identifier",
3852
3852
  "overloadedDeclarations": [],
3853
- "referencedDeclaration": 33166,
3853
+ "referencedDeclaration": 33752,
3854
3854
  "src": "4882:14:65",
3855
3855
  "typeDescriptions": {
3856
3856
  "typeIdentifier": "t_bytes16",
@@ -3858,11 +3858,11 @@
3858
3858
  }
3859
3859
  },
3860
3860
  {
3861
- "id": 33839,
3861
+ "id": 34440,
3862
3862
  "name": "CORE_SYSTEM_NAME",
3863
3863
  "nodeType": "Identifier",
3864
3864
  "overloadedDeclarations": [],
3865
- "referencedDeclaration": 33891,
3865
+ "referencedDeclaration": 34492,
3866
3866
  "src": "4908:16:65",
3867
3867
  "typeDescriptions": {
3868
3868
  "typeIdentifier": "t_bytes16",
@@ -3871,24 +3871,24 @@
3871
3871
  },
3872
3872
  {
3873
3873
  "baseExpression": {
3874
- "id": 33840,
3874
+ "id": 34441,
3875
3875
  "name": "functionSelectors",
3876
3876
  "nodeType": "Identifier",
3877
3877
  "overloadedDeclarations": [],
3878
- "referencedDeclaration": 33766,
3878
+ "referencedDeclaration": 34367,
3879
3879
  "src": "4936:17:65",
3880
3880
  "typeDescriptions": {
3881
3881
  "typeIdentifier": "t_array$_t_bytes4_$15_memory_ptr",
3882
3882
  "typeString": "bytes4[15] memory"
3883
3883
  }
3884
3884
  },
3885
- "id": 33842,
3885
+ "id": 34443,
3886
3886
  "indexExpression": {
3887
- "id": 33841,
3887
+ "id": 34442,
3888
3888
  "name": "i",
3889
3889
  "nodeType": "Identifier",
3890
3890
  "overloadedDeclarations": [],
3891
- "referencedDeclaration": 33815,
3891
+ "referencedDeclaration": 34416,
3892
3892
  "src": "4954:1:65",
3893
3893
  "typeDescriptions": {
3894
3894
  "typeIdentifier": "t_uint256",
@@ -3908,24 +3908,24 @@
3908
3908
  },
3909
3909
  {
3910
3910
  "baseExpression": {
3911
- "id": 33843,
3911
+ "id": 34444,
3912
3912
  "name": "functionSelectors",
3913
3913
  "nodeType": "Identifier",
3914
3914
  "overloadedDeclarations": [],
3915
- "referencedDeclaration": 33766,
3915
+ "referencedDeclaration": 34367,
3916
3916
  "src": "4968:17:65",
3917
3917
  "typeDescriptions": {
3918
3918
  "typeIdentifier": "t_array$_t_bytes4_$15_memory_ptr",
3919
3919
  "typeString": "bytes4[15] memory"
3920
3920
  }
3921
3921
  },
3922
- "id": 33845,
3922
+ "id": 34446,
3923
3923
  "indexExpression": {
3924
- "id": 33844,
3924
+ "id": 34445,
3925
3925
  "name": "i",
3926
3926
  "nodeType": "Identifier",
3927
3927
  "overloadedDeclarations": [],
3928
- "referencedDeclaration": 33815,
3928
+ "referencedDeclaration": 34416,
3929
3929
  "src": "4986:1:65",
3930
3930
  "typeDescriptions": {
3931
3931
  "typeIdentifier": "t_uint256",
@@ -3968,7 +3968,7 @@
3968
3968
  }
3969
3969
  ],
3970
3970
  "expression": {
3971
- "id": 33833,
3971
+ "id": 34434,
3972
3972
  "name": "abi",
3973
3973
  "nodeType": "Identifier",
3974
3974
  "overloadedDeclarations": [],
@@ -3979,7 +3979,7 @@
3979
3979
  "typeString": "abi"
3980
3980
  }
3981
3981
  },
3982
- "id": 33834,
3982
+ "id": 34435,
3983
3983
  "isConstant": false,
3984
3984
  "isLValue": false,
3985
3985
  "isPure": true,
@@ -3992,7 +3992,7 @@
3992
3992
  "typeString": "function (bytes4) pure returns (bytes memory)"
3993
3993
  }
3994
3994
  },
3995
- "id": 33846,
3995
+ "id": 34447,
3996
3996
  "isConstant": false,
3997
3997
  "isLValue": false,
3998
3998
  "isPure": false,
@@ -4032,32 +4032,32 @@
4032
4032
  }
4033
4033
  ],
4034
4034
  "expression": {
4035
- "id": 33825,
4035
+ "id": 34426,
4036
4036
  "name": "Call",
4037
4037
  "nodeType": "Identifier",
4038
4038
  "overloadedDeclarations": [],
4039
- "referencedDeclaration": 32352,
4039
+ "referencedDeclaration": 32876,
4040
4040
  "src": "4625:4:65",
4041
4041
  "typeDescriptions": {
4042
- "typeIdentifier": "t_type$_t_contract$_Call_$32352_$",
4042
+ "typeIdentifier": "t_type$_t_contract$_Call_$32876_$",
4043
4043
  "typeString": "type(library Call)"
4044
4044
  }
4045
4045
  },
4046
- "id": 33827,
4046
+ "id": 34428,
4047
4047
  "isConstant": false,
4048
4048
  "isLValue": false,
4049
4049
  "isPure": false,
4050
4050
  "lValueRequested": false,
4051
4051
  "memberName": "withSender",
4052
4052
  "nodeType": "MemberAccess",
4053
- "referencedDeclaration": 32351,
4053
+ "referencedDeclaration": 32875,
4054
4054
  "src": "4625:15:65",
4055
4055
  "typeDescriptions": {
4056
4056
  "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_uint256_$returns$_t_bytes_memory_ptr_$",
4057
4057
  "typeString": "function (address,address,bytes memory,bool,uint256) returns (bytes memory)"
4058
4058
  }
4059
4059
  },
4060
- "id": 33847,
4060
+ "id": 34448,
4061
4061
  "isConstant": false,
4062
4062
  "isLValue": false,
4063
4063
  "isPure": false,
@@ -4078,7 +4078,7 @@
4078
4078
  "typeString": "bytes memory"
4079
4079
  }
4080
4080
  },
4081
- "id": 33848,
4081
+ "id": 34449,
4082
4082
  "nodeType": "ExpressionStatement",
4083
4083
  "src": "4625:382:65"
4084
4084
  }
@@ -4089,17 +4089,17 @@
4089
4089
  "typeIdentifier": "t_uint256",
4090
4090
  "typeString": "uint256"
4091
4091
  },
4092
- "id": 33821,
4092
+ "id": 34422,
4093
4093
  "isConstant": false,
4094
4094
  "isLValue": false,
4095
4095
  "isPure": false,
4096
4096
  "lValueRequested": false,
4097
4097
  "leftExpression": {
4098
- "id": 33818,
4098
+ "id": 34419,
4099
4099
  "name": "i",
4100
4100
  "nodeType": "Identifier",
4101
4101
  "overloadedDeclarations": [],
4102
- "referencedDeclaration": 33815,
4102
+ "referencedDeclaration": 34416,
4103
4103
  "src": "4458:1:65",
4104
4104
  "typeDescriptions": {
4105
4105
  "typeIdentifier": "t_uint256",
@@ -4110,18 +4110,18 @@
4110
4110
  "operator": "<",
4111
4111
  "rightExpression": {
4112
4112
  "expression": {
4113
- "id": 33819,
4113
+ "id": 34420,
4114
4114
  "name": "functionSelectors",
4115
4115
  "nodeType": "Identifier",
4116
4116
  "overloadedDeclarations": [],
4117
- "referencedDeclaration": 33766,
4117
+ "referencedDeclaration": 34367,
4118
4118
  "src": "4462:17:65",
4119
4119
  "typeDescriptions": {
4120
4120
  "typeIdentifier": "t_array$_t_bytes4_$15_memory_ptr",
4121
4121
  "typeString": "bytes4[15] memory"
4122
4122
  }
4123
4123
  },
4124
- "id": 33820,
4124
+ "id": 34421,
4125
4125
  "isConstant": false,
4126
4126
  "isLValue": false,
4127
4127
  "isPure": false,
@@ -4140,20 +4140,20 @@
4140
4140
  "typeString": "bool"
4141
4141
  }
4142
4142
  },
4143
- "id": 33850,
4143
+ "id": 34451,
4144
4144
  "initializationExpression": {
4145
4145
  "assignments": [
4146
- 33815
4146
+ 34416
4147
4147
  ],
4148
4148
  "declarations": [
4149
4149
  {
4150
4150
  "constant": false,
4151
- "id": 33815,
4151
+ "id": 34416,
4152
4152
  "mutability": "mutable",
4153
4153
  "name": "i",
4154
4154
  "nameLocation": "4451:1:65",
4155
4155
  "nodeType": "VariableDeclaration",
4156
- "scope": 33850,
4156
+ "scope": 34451,
4157
4157
  "src": "4443:9:65",
4158
4158
  "stateVariable": false,
4159
4159
  "storageLocation": "default",
@@ -4162,7 +4162,7 @@
4162
4162
  "typeString": "uint256"
4163
4163
  },
4164
4164
  "typeName": {
4165
- "id": 33814,
4165
+ "id": 34415,
4166
4166
  "name": "uint256",
4167
4167
  "nodeType": "ElementaryTypeName",
4168
4168
  "src": "4443:7:65",
@@ -4174,10 +4174,10 @@
4174
4174
  "visibility": "internal"
4175
4175
  }
4176
4176
  ],
4177
- "id": 33817,
4177
+ "id": 34418,
4178
4178
  "initialValue": {
4179
4179
  "hexValue": "30",
4180
- "id": 33816,
4180
+ "id": 34417,
4181
4181
  "isConstant": false,
4182
4182
  "isLValue": false,
4183
4183
  "isPure": true,
@@ -4196,7 +4196,7 @@
4196
4196
  },
4197
4197
  "loopExpression": {
4198
4198
  "expression": {
4199
- "id": 33823,
4199
+ "id": 34424,
4200
4200
  "isConstant": false,
4201
4201
  "isLValue": false,
4202
4202
  "isPure": false,
@@ -4206,11 +4206,11 @@
4206
4206
  "prefix": false,
4207
4207
  "src": "4488:3:65",
4208
4208
  "subExpression": {
4209
- "id": 33822,
4209
+ "id": 34423,
4210
4210
  "name": "i",
4211
4211
  "nodeType": "Identifier",
4212
4212
  "overloadedDeclarations": [],
4213
- "referencedDeclaration": 33815,
4213
+ "referencedDeclaration": 34416,
4214
4214
  "src": "4488:1:65",
4215
4215
  "typeDescriptions": {
4216
4216
  "typeIdentifier": "t_uint256",
@@ -4222,7 +4222,7 @@
4222
4222
  "typeString": "uint256"
4223
4223
  }
4224
4224
  },
4225
- "id": 33824,
4225
+ "id": 34425,
4226
4226
  "nodeType": "ExpressionStatement",
4227
4227
  "src": "4488:3:65"
4228
4228
  },
@@ -4232,7 +4232,7 @@
4232
4232
  ]
4233
4233
  },
4234
4234
  "documentation": {
4235
- "id": 33758,
4235
+ "id": 34359,
4236
4236
  "nodeType": "StructuredDocumentation",
4237
4237
  "src": "3237:84:65",
4238
4238
  "text": " Register function selectors for all CoreSystem functions in the World"
@@ -4243,18 +4243,18 @@
4243
4243
  "name": "_registerFunctionSelectors",
4244
4244
  "nameLocation": "3333:26:65",
4245
4245
  "parameters": {
4246
- "id": 33759,
4246
+ "id": 34360,
4247
4247
  "nodeType": "ParameterList",
4248
4248
  "parameters": [],
4249
4249
  "src": "3359:2:65"
4250
4250
  },
4251
4251
  "returnParameters": {
4252
- "id": 33760,
4252
+ "id": 34361,
4253
4253
  "nodeType": "ParameterList",
4254
4254
  "parameters": [],
4255
4255
  "src": "3371:0:65"
4256
4256
  },
4257
- "scope": 33853,
4257
+ "scope": 34454,
4258
4258
  "stateMutability": "nonpayable",
4259
4259
  "virtual": false,
4260
4260
  "visibility": "internal"
@@ -4264,58 +4264,58 @@
4264
4264
  "baseContracts": [
4265
4265
  {
4266
4266
  "baseName": {
4267
- "id": 33609,
4267
+ "id": 34210,
4268
4268
  "name": "IModule",
4269
4269
  "nodeType": "IdentifierPath",
4270
- "referencedDeclaration": 33277,
4270
+ "referencedDeclaration": 33863,
4271
4271
  "src": "1579:7:65"
4272
4272
  },
4273
- "id": 33610,
4273
+ "id": 34211,
4274
4274
  "nodeType": "InheritanceSpecifier",
4275
4275
  "src": "1579:7:65"
4276
4276
  },
4277
4277
  {
4278
4278
  "baseName": {
4279
- "id": 33611,
4279
+ "id": 34212,
4280
4280
  "name": "WorldContext",
4281
4281
  "nodeType": "IdentifierPath",
4282
- "referencedDeclaration": 33161,
4282
+ "referencedDeclaration": 33747,
4283
4283
  "src": "1588:12:65"
4284
4284
  },
4285
- "id": 33612,
4285
+ "id": 34213,
4286
4286
  "nodeType": "InheritanceSpecifier",
4287
4287
  "src": "1588:12:65"
4288
4288
  }
4289
4289
  ],
4290
4290
  "canonicalName": "CoreModule",
4291
4291
  "contractDependencies": [
4292
- 33877
4292
+ 34478
4293
4293
  ],
4294
4294
  "contractKind": "contract",
4295
4295
  "documentation": {
4296
- "id": 33608,
4296
+ "id": 34209,
4297
4297
  "nodeType": "StructuredDocumentation",
4298
4298
  "src": "1285:270:65",
4299
4299
  "text": " The CoreModule registers internal World tables, the CoreSystem, and its function selectors.\n Note:\n This module is required to be delegatecalled (via `World.registerRootSystem`),\n because it needs to install root tables, systems and function selectors."
4300
4300
  },
4301
4301
  "fullyImplemented": true,
4302
4302
  "linearizedBaseContracts": [
4303
- 33853,
4304
- 33161,
4305
- 33277
4303
+ 34454,
4304
+ 33747,
4305
+ 33863
4306
4306
  ],
4307
4307
  "name": "CoreModule",
4308
4308
  "nameLocation": "1565:10:65",
4309
- "scope": 33854,
4309
+ "scope": 34455,
4310
4310
  "usedErrors": [
4311
- 17926,
4312
- 17928,
4313
- 18710,
4314
- 33264,
4315
- 43001,
4316
- 43007,
4317
- 43017,
4318
- 43023
4311
+ 18199,
4312
+ 18201,
4313
+ 18983,
4314
+ 33850,
4315
+ 43602,
4316
+ 43608,
4317
+ 43618,
4318
+ 43624
4319
4319
  ]
4320
4320
  }
4321
4321
  ],