@itwin/core-backend 5.1.1 → 5.1.3-experimental.1

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 (357) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/lib/cjs/BackendHubAccess.js.map +1 -1
  3. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  4. package/lib/cjs/BisCoreSchema.js.map +1 -1
  5. package/lib/cjs/BlobContainerService.js.map +1 -1
  6. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  7. package/lib/cjs/BriefcaseManager.js +19 -5
  8. package/lib/cjs/BriefcaseManager.js.map +1 -1
  9. package/lib/cjs/CatalogDb.js.map +1 -1
  10. package/lib/cjs/Category.js.map +1 -1
  11. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  12. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  13. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  14. package/lib/cjs/ChannelControl.js.map +1 -1
  15. package/lib/cjs/CheckpointManager.js.map +1 -1
  16. package/lib/cjs/ClassRegistry.js.map +1 -1
  17. package/lib/cjs/CloudSqlite.js.map +1 -1
  18. package/lib/cjs/CodeService.js.map +1 -1
  19. package/lib/cjs/CodeSpecs.js.map +1 -1
  20. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  21. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  22. package/lib/cjs/DevTools.js.map +1 -1
  23. package/lib/cjs/DisplayStyle.js.map +1 -1
  24. package/lib/cjs/ECDb.js.map +1 -1
  25. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  26. package/lib/cjs/ECSqlStatement.js.map +1 -1
  27. package/lib/cjs/Element.js.map +1 -1
  28. package/lib/cjs/ElementAspect.js.map +1 -1
  29. package/lib/cjs/ElementGraphics.js.map +1 -1
  30. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  31. package/lib/cjs/Entity.js.map +1 -1
  32. package/lib/cjs/EntityReferences.js.map +1 -1
  33. package/lib/cjs/ExportGraphics.js.map +1 -1
  34. package/lib/cjs/ExternalSource.js.map +1 -1
  35. package/lib/cjs/FontFile.js.map +1 -1
  36. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  37. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  38. package/lib/cjs/GeometrySummary.js.map +1 -1
  39. package/lib/cjs/IModelDb.d.ts +22 -2
  40. package/lib/cjs/IModelDb.d.ts.map +1 -1
  41. package/lib/cjs/IModelDb.js +23 -3
  42. package/lib/cjs/IModelDb.js.map +1 -1
  43. package/lib/cjs/IModelDbFonts.js.map +1 -1
  44. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  45. package/lib/cjs/IModelHost.js.map +1 -1
  46. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  47. package/lib/cjs/IModelJsFs.js.map +1 -1
  48. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  49. package/lib/cjs/IpcHost.js.map +1 -1
  50. package/lib/cjs/LineStyle.js.map +1 -1
  51. package/lib/cjs/LocalHub.js.map +1 -1
  52. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  53. package/lib/cjs/LockControl.js.map +1 -1
  54. package/lib/cjs/Material.js.map +1 -1
  55. package/lib/cjs/Model.js.map +1 -1
  56. package/lib/cjs/NativeAppStorage.js.map +1 -1
  57. package/lib/cjs/NativeHost.js.map +1 -1
  58. package/lib/cjs/NavigationRelationship.js.map +1 -1
  59. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  60. package/lib/cjs/PropertyStore.js.map +1 -1
  61. package/lib/cjs/Relationship.js.map +1 -1
  62. package/lib/cjs/RpcBackend.js.map +1 -1
  63. package/lib/cjs/SQLiteDb.js.map +1 -1
  64. package/lib/cjs/Schema.js.map +1 -1
  65. package/lib/cjs/SchemaSync.js.map +1 -1
  66. package/lib/cjs/SchemaUtils.js.map +1 -1
  67. package/lib/cjs/SheetIndex.js.map +1 -1
  68. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  69. package/lib/cjs/SqliteStatement.js.map +1 -1
  70. package/lib/cjs/Texture.js.map +1 -1
  71. package/lib/cjs/TileStorage.js.map +1 -1
  72. package/lib/cjs/TxnManager.d.ts +57 -10
  73. package/lib/cjs/TxnManager.d.ts.map +1 -1
  74. package/lib/cjs/TxnManager.js +76 -13
  75. package/lib/cjs/TxnManager.js.map +1 -1
  76. package/lib/cjs/ViewDefinition.js.map +1 -1
  77. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  78. package/lib/cjs/ViewStore.js.map +1 -1
  79. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  80. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  81. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  82. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  83. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  84. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  85. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  86. package/lib/cjs/core-backend.js.map +1 -1
  87. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  88. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  89. package/lib/cjs/domains/GenericElements.js.map +1 -1
  90. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  91. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  92. package/lib/cjs/internal/ChannelAdmin.js +1 -1
  93. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  94. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  95. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  96. package/lib/cjs/internal/HubMock.js.map +1 -1
  97. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  98. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  99. package/lib/cjs/internal/NoLocks.js.map +1 -1
  100. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  101. package/lib/cjs/internal/Symbols.js.map +1 -1
  102. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  103. package/lib/cjs/internal/cross-package.js.map +1 -1
  104. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  105. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  106. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  107. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  108. package/lib/cjs/rpc/multipart.js.map +1 -1
  109. package/lib/cjs/rpc/tracing.js.map +1 -1
  110. package/lib/cjs/rpc/web/logging.js.map +1 -1
  111. package/lib/cjs/rpc/web/request.js.map +1 -1
  112. package/lib/cjs/rpc/web/response.js.map +1 -1
  113. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  114. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  115. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  116. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  117. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  118. package/lib/cjs/workspace/Settings.js.map +1 -1
  119. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  120. package/lib/cjs/workspace/Workspace.js.map +1 -1
  121. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  122. package/lib/esm/BackendHubAccess.js.map +1 -1
  123. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  124. package/lib/esm/BisCoreSchema.js.map +1 -1
  125. package/lib/esm/BlobContainerService.js.map +1 -1
  126. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  127. package/lib/esm/BriefcaseManager.js +20 -6
  128. package/lib/esm/BriefcaseManager.js.map +1 -1
  129. package/lib/esm/CatalogDb.js.map +1 -1
  130. package/lib/esm/Category.js.map +1 -1
  131. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  132. package/lib/esm/ChangedElementsDb.js.map +1 -1
  133. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  134. package/lib/esm/ChannelControl.js.map +1 -1
  135. package/lib/esm/CheckpointManager.js.map +1 -1
  136. package/lib/esm/ClassRegistry.js.map +1 -1
  137. package/lib/esm/CloudSqlite.js.map +1 -1
  138. package/lib/esm/CodeService.js.map +1 -1
  139. package/lib/esm/CodeSpecs.js.map +1 -1
  140. package/lib/esm/ConcurrentQuery.js.map +1 -1
  141. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  142. package/lib/esm/DevTools.js.map +1 -1
  143. package/lib/esm/DisplayStyle.js.map +1 -1
  144. package/lib/esm/ECDb.js.map +1 -1
  145. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  146. package/lib/esm/ECSqlStatement.js.map +1 -1
  147. package/lib/esm/Element.js.map +1 -1
  148. package/lib/esm/ElementAspect.js.map +1 -1
  149. package/lib/esm/ElementGraphics.js.map +1 -1
  150. package/lib/esm/ElementTreeWalker.js.map +1 -1
  151. package/lib/esm/Entity.js.map +1 -1
  152. package/lib/esm/EntityReferences.js.map +1 -1
  153. package/lib/esm/ExportGraphics.js.map +1 -1
  154. package/lib/esm/ExternalSource.js.map +1 -1
  155. package/lib/esm/FontFile.js.map +1 -1
  156. package/lib/esm/GeoCoordConfig.js.map +1 -1
  157. package/lib/esm/GeographicCRSServices.js.map +1 -1
  158. package/lib/esm/GeometrySummary.js.map +1 -1
  159. package/lib/esm/IModelDb.d.ts +22 -2
  160. package/lib/esm/IModelDb.d.ts.map +1 -1
  161. package/lib/esm/IModelDb.js +23 -3
  162. package/lib/esm/IModelDb.js.map +1 -1
  163. package/lib/esm/IModelDbFonts.js.map +1 -1
  164. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  165. package/lib/esm/IModelHost.js.map +1 -1
  166. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  167. package/lib/esm/IModelJsFs.js.map +1 -1
  168. package/lib/esm/ImageSourceConversion.js.map +1 -1
  169. package/lib/esm/IpcHost.js.map +1 -1
  170. package/lib/esm/LineStyle.js.map +1 -1
  171. package/lib/esm/LocalHub.js.map +1 -1
  172. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  173. package/lib/esm/LockControl.js.map +1 -1
  174. package/lib/esm/Material.js.map +1 -1
  175. package/lib/esm/Model.js.map +1 -1
  176. package/lib/esm/NativeAppStorage.js.map +1 -1
  177. package/lib/esm/NativeHost.js.map +1 -1
  178. package/lib/esm/NavigationRelationship.js.map +1 -1
  179. package/lib/esm/PromiseMemoizer.js.map +1 -1
  180. package/lib/esm/PropertyStore.js.map +1 -1
  181. package/lib/esm/Relationship.js.map +1 -1
  182. package/lib/esm/RpcBackend.js.map +1 -1
  183. package/lib/esm/SQLiteDb.js.map +1 -1
  184. package/lib/esm/Schema.js.map +1 -1
  185. package/lib/esm/SchemaSync.js.map +1 -1
  186. package/lib/esm/SchemaUtils.js.map +1 -1
  187. package/lib/esm/SheetIndex.js.map +1 -1
  188. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  189. package/lib/esm/SqliteStatement.js.map +1 -1
  190. package/lib/esm/Texture.js.map +1 -1
  191. package/lib/esm/TileStorage.js.map +1 -1
  192. package/lib/esm/TxnManager.d.ts +57 -10
  193. package/lib/esm/TxnManager.d.ts.map +1 -1
  194. package/lib/esm/TxnManager.js +77 -14
  195. package/lib/esm/TxnManager.js.map +1 -1
  196. package/lib/esm/ViewDefinition.js.map +1 -1
  197. package/lib/esm/ViewStateHydrator.js.map +1 -1
  198. package/lib/esm/ViewStore.js.map +1 -1
  199. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  200. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  201. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  202. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  203. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  204. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  205. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  206. package/lib/esm/core-backend.js.map +1 -1
  207. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  208. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  209. package/lib/esm/domains/GenericElements.js.map +1 -1
  210. package/lib/esm/domains/GenericSchema.js.map +1 -1
  211. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  212. package/lib/esm/internal/ChannelAdmin.js +1 -1
  213. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  214. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  215. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  216. package/lib/esm/internal/HubMock.js.map +1 -1
  217. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  218. package/lib/esm/internal/NativePlatform.js.map +1 -1
  219. package/lib/esm/internal/NoLocks.js.map +1 -1
  220. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  221. package/lib/esm/internal/Symbols.js.map +1 -1
  222. package/lib/esm/internal/annotations/fields.js.map +1 -1
  223. package/lib/esm/internal/cross-package.js.map +1 -1
  224. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  225. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  226. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  227. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  228. package/lib/esm/rpc/multipart.js.map +1 -1
  229. package/lib/esm/rpc/tracing.js.map +1 -1
  230. package/lib/esm/rpc/web/logging.js.map +1 -1
  231. package/lib/esm/rpc/web/request.js.map +1 -1
  232. package/lib/esm/rpc/web/response.js.map +1 -1
  233. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  234. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  235. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  236. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  237. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  238. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  239. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  240. package/lib/esm/test/AttachDb.test.js.map +1 -1
  241. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  242. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  243. package/lib/esm/test/IModelHost.test.js.map +1 -1
  244. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  245. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  246. package/lib/esm/test/IpcHost.test.js.map +1 -1
  247. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  248. package/lib/esm/test/PrintElementTree.js.map +1 -1
  249. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  250. package/lib/esm/test/RevisionUtility.js.map +1 -1
  251. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  252. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  253. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  254. package/lib/esm/test/TestUtils.js.map +1 -1
  255. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  256. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  257. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  258. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  259. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  260. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  261. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  262. package/lib/esm/test/categories/Category.test.js.map +1 -1
  263. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  264. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  265. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  266. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  267. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  268. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  269. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  270. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  271. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  272. package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
  273. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  274. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  275. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  276. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  277. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  278. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  279. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  280. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  281. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  282. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  283. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  284. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  285. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  286. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  287. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  288. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  289. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  290. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  291. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  292. package/lib/esm/test/hubaccess/Rebase.test.d.ts +2 -0
  293. package/lib/esm/test/hubaccess/Rebase.test.d.ts.map +1 -0
  294. package/lib/esm/test/hubaccess/Rebase.test.js +172 -0
  295. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -0
  296. package/lib/esm/test/imageData.js.map +1 -1
  297. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  298. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  299. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  300. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  301. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  302. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  303. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  304. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js.map +1 -1
  305. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js.map +1 -1
  306. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js.map +1 -1
  307. package/lib/esm/test/index.js.map +1 -1
  308. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  309. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  310. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  311. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  312. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  313. package/lib/esm/test/rpc/response.test.js.map +1 -1
  314. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  315. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  316. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  317. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  318. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  319. package/lib/esm/test/standalone/ChangeMerge.test.js +10 -10
  320. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  321. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  322. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  323. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  324. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  325. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  326. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  327. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  328. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  329. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  330. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  331. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  332. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  333. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  334. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  335. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  336. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  337. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  338. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  339. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  340. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  341. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  342. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  343. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  344. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  345. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  346. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  347. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  348. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  349. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  350. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  351. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  352. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  353. package/lib/esm/workspace/Settings.js.map +1 -1
  354. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  355. package/lib/esm/workspace/Workspace.js.map +1 -1
  356. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  357. package/package.json +13 -13
@@ -1 +1 @@
1
- {"version":3,"file":"IModelTestUtils.js","sourceRoot":"","sources":["../../../src/test/IModelTestUtils.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAe,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAc,IAAI,EAAc,YAAY,EAAE,IAAI,EAAY,MAAM,qBAAqB,CAAC;AACvI,OAAO,EACkB,mBAAmB,EAAwB,IAAI,EAAa,aAAa,EAAY,QAAQ,EACtG,WAAW,EAAuB,QAAQ,EAA2B,cAAc,EAAqB,qBAAqB,EACtH,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE,aAAa,EAC5E,sBAAsB,EAAE,cAAc,EAAiD,gBAAgB,EAAE,UAAU,EACzI,kBAAkB,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,QAAQ,GAC1F,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAEpJ,OAAO,EAAE,iBAAiB,EAAoC,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAClK,qBAAqB,EAAkB,OAAO,EAAiB,wBAAwB,EAAE,uBAAuB,EAAE,uBAAuB,EACpH,cAAc,EAAE,4BAA4B,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EACtI,UAAU,EAAE,2BAA2B,EAAE,KAAK,EAAE,aAAa,EAAE,0BAA0B,EAAE,aAAa,EAAE,cAAc,EACxH,iBAAiB,EAAE,qBAAqB,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,4BAA4B,EAAE,OAAO,EAAE,cAAc,GAC1I,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC/I,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAC1H,OAAO,EAAE,+BAA+B,EAAE,oBAAoB,EAAmC,MAAM,iBAAiB,CAAC;AACzH,OAAO,EAAuB,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAEzB,qEAAqE;AACrE,6DAA6D;AAE7D,gBAAgB,CAAC,eAAe,GAAG,IAAI,CAAC;AAExC,qDAAqD;AACrD,UAAU,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;AAQvD,MAAM,OAAO,OAAQ,SAAQ,MAAM;IAC1B,MAAM,KAAc,UAAU,KAAa,OAAO,SAAS,CAAC,CAAC,CAAC;CAEtE;AAID,MAAM,OAAO,wBAAyB,SAAQ,oBAAoB;IACzD,MAAM,KAAc,SAAS,KAAa,OAAO,0BAA0B,CAAC,CAAC,CAAC;IAE9E,MAAM,CAAC,WAAW,GAAG,IAAI,OAAO,EAAwD,CAAC;IACzF,MAAM,CAAC,iBAAiB,GAAG,IAAI,OAAO,EAAwD,CAAC;IAC/F,MAAM,CAAU,aAAa,CAAC,KAAwB,EAAE,MAAgB,IAAU,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/H,MAAM,CAAU,mBAAmB,CAAC,KAAwB,EAAE,MAAgB,IAAU,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;;AAKpJ,MAAM,OAAO,kBAAmB,SAAQ,eAAe;IAC9C,MAAM,KAAc,SAAS,KAAa,OAAO,oBAAoB,CAAC,CAAC,CAAC;IAExE,MAAM,CAAC,oBAAoB,GAAG,IAAI,OAAO,EAA8C,CAAC;IACxF,MAAM,CAAC,gBAAgB,GAAG,IAAI,OAAO,EAA8C,CAAC;IACpF,MAAM,CAAU,sBAAsB,CAAC,EAAc,EAAE,MAAgB,IAAU,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACpI,MAAM,CAAU,kBAAkB,CAAC,EAAc,EAAE,MAAgB,IAAU,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;;AAGrI,6CAA6C;AAC7C,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,qDAAO,CAAA;IACP,qDAAO,CAAA;IACP,iDAAK,CAAA;IACL,+DAAY,CAAA;AACd,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED;;;GAGG;AACH,MAAM,OAAO,WAAW;IACZ,MAAM,KAAK,OAAO,KAAK,OAAO,OAAO,CAAC,CAAC,CAAC;IAE3C,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAkB;QACnD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,wHAAwH;IACjH,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,WAAwB,EAAE,OAAmB,EAAE,UAAkB;QAChG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,gDAAgD,CAAC,CAAC;QACtF,IAAI,QAAQ,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QACpG,IAAI,CAAC,QAAQ;YACX,QAAQ,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACvI,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;MAEE;IACK,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAkD;QAC1F,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,gDAAgD,CAAC,CAAC;QACtF,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACzE,IAAI,SAAS,KAAK,YAAY;YAC5B,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;QAE5H,sBAAsB;QACtB,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,mBAAmB,GAAG,CAAC,UAAU,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED,oCAAoC;IAC7B,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,WAAwB,EAAE,OAAe,EAAE,UAAkB;QAC5F,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QACtG,IAAI,SAAS,KAAK,QAAQ;YACxB,OAAO;QAET,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,gCAAgC;IACzB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,WAAwB,EAAE,OAAe,EAAE,QAAgB,EAAE,UAAmB,EAAE,SAAmB;QAClI,wEAAwE;QACxE,MAAM,aAAa,GAAG,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;QACrH,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,SAAS;gBACZ,OAAO,QAAQ,CAAC;YAClB,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChF,CAAC;QAED,sBAAsB;QACtB,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzH,CAAC;IAED,2EAA2E;IACpE,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAgD;QAC3F,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvE,SAAS,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC3E,SAAS,CAAC,WAAW,EAAE,CAAC;YACxB,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QACD,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,oLAAoL;IAC7K,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAoF;QAC5H,IAAI,SAAS,KAAK,IAAI,CAAC,IAAI;YACzB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;QAE9C,MAAM,QAAQ,GAAwB;YACpC,UAAU,EAAE;gBACV,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,uBAAuB,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC1K;YACD,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YACrH,QAAQ,EAAE,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW;YAC3E,aAAa,EAAE,IAAI,CAAC,WAAW;SAChC,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE,mCAAmC,CAAC,CAAC;QACpH,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,4DAA4D;gBAC5D,OAAO,CAAC,MAAM,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAgB,CAAC;YACnE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,kBAAkB,CAAC;oBACxC,MAAM,KAAK,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IAED,0DAA0D;IACnD,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAwG;QACpJ,IAAI,SAAS,KAAK,IAAI,CAAC,IAAI;YACzB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;QAE9C,MAAM,UAAU,GAAoB;YAClC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,uBAAuB,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC1K,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QAChH,MAAM,OAAO,GAAoB,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QACrE,IAAI,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/E,IAAI,SAAS,KAAK,EAAE;YAClB,OAAO,EAAE,CAAC;QACZ,EAAE,GAAG,eAAe,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,EAAE;YACJ,OAAO,EAAE,CAAC;QACZ,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,iBAAiB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/E,CAAC;IAED,0MAA0M;IACnM,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAoF;QAC7H,IAAI,SAAS,KAAK,IAAI,CAAC,IAAI;YACzB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;QAE9C,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,uBAAuB,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/K,MAAM,QAAQ,GAAG;YACf,UAAU,EAAE;gBACV,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS;aACV;YACD,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YACrH,QAAQ,EAAE,QAAQ,CAAC,YAAqB;YACxC,aAAa,EAAE,IAAI,CAAC,WAAW;SAChC,CAAC;QAEF,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,OAAO,CAAC,MAAM,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,kBAAkB,CAAC;oBACxC,MAAM,KAAK,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,WAAwB,EAAE,QAAoB,EAAE,mBAA+B,GAAG,EAAE,GAAG,CAAC,EAAE,mBAA2B,EAAE;QACrK,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7F,IAAI,UAAU,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;YACzC,IAAI,SAAS,KAAK,gBAAgB;gBAChC,gBAAgB,EAAE,CAAC;YAErB,MAAM,QAAQ,GAAoB,EAAE,CAAC;YACrC,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;gBACjC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YACjG,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,WAAwB,EAAE,WAAqB;QAC3F,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;QACtC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;QACtC,WAAW,CAAC,KAAK,EAAE,CAAC;QAEpB,MAAM,gBAAgB,CAAC,oBAAoB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAEnE,6EAA6E;QAC7E,IAAI,CAAC,KAAK,gBAAgB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;YAChE,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvE,MAAM,UAAU,GAAG,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;gBACpD,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,eAAe;IAGhB,MAAM,KAAK,kBAAkB,KAA+C,OAAO,kBAAkB,CAAC,CAAC,CAAC;IAElH,yGAAyG;IAClG,MAAM,CAAC,kBAAkB,CAAC,QAAgB;QAC/C,OAAO,GAAG,QAAQ,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;IAC/C,CAAC;IAGM,MAAM,CAAC,cAAc,CAAC,QAAuB,EAAE,UAA2B;QAC/E,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC7F,QAAgB,CAAC,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC;QAChD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,uEAAuE;IAChE,MAAM,CAAC,gBAAgB,CAAC,OAAwB;QACrD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC;YACnE,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAE5D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,iBAAiB,CAAC,UAAkB,EAAE,QAAgB;QAClE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;YAC3D,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAE1D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC3E,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;YACnC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAElC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;YACnC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEpC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,8FAA8F;IACvF,MAAM,CAAC,gBAAgB,CAAC,SAAiB;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,QAAgB;QAC5C,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAErE,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,yFAAyF;IAClF,MAAM,CAAC,sBAAsB,CAAC,YAAoB,EAAE,YAA2B;QACpF,MAAM,MAAM,GAAe,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAe,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACvE,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACpE,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,MAAgB,EAAE,gBAAwB;QACzE,IAAI,YAAY,GAAW,gBAAgB,CAAC;QAC5C,IAAI,IAAI,GAAW,CAAC,CAAC;QACrB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,2BAA2B,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YACrG,IAAI,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,KAAK,SAAS;gBAC/D,OAAO,SAAS,CAAC;YAEnB,YAAY,GAAG,gBAAgB,GAAG,IAAI,CAAC;YACvC,EAAE,IAAI,CAAC;QACT,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,mBAAmB;QAC/B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,8GAA8G;IACvG,MAAM,CAAC,gCAAgC,CAAC,MAAgB,EAAE,YAAuB,EAAE,QAAqB;QAC7G,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAC/F,MAAM,MAAM,GAAG,IAAI,4BAA4B,CAAC,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;QAElF,MAAM,mBAAmB,GAAiB;YACxC,aAAa,EAAE,iBAAiB,CAAC,aAAa;YAC9C,MAAM;YACN,KAAK;YACL,IAAI,EAAE,YAAY;SACnB,CAAC;QACF,MAAM,cAAc,GAAY,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QACnF,OAAO,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,8GAA8G;IACvG,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,MAAgB,EAAE,YAAuB,EAAE,QAAqB;QACxH,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAC/F,MAAM,MAAM,GAAG,IAAI,4BAA4B,CAAC,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;QAElF,MAAM,mBAAmB,GAAiB;YACxC,aAAa,EAAE,iBAAiB,CAAC,aAAa;YAC9C,MAAM;YACN,KAAK;YACL,IAAI,EAAE,YAAY;SACnB,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QAC1E,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,8GAA8G;IACvG,MAAM,CAAC,4BAA4B,CAAC,MAAgB,EAAE,iBAAiC,EAAE,eAAwB,KAAK;QAC3H,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,CAAC,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;QACvJ,MAAM,UAAU,GAAG,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,8GAA8G;IACvG,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,MAAgB,EAAE,iBAAiC,EAAE,eAAwB,KAAK;QACtI,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,CAAC,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;QACvJ,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,wCAAwC,CAAC,UAAoB,EAAE,YAAuB,EAAE,eAAwB,KAAK,EAAE,MAAmB;QACtJ,MAAM,GAAG,GAAG,eAAe,CAAC,gCAAgC,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAC/F,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,eAAe,CAAC,4BAA4B,CAAC,UAAU,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC;QACtG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,UAAoB,EAAE,YAAuB,EAAE,eAAwB,KAAK,EAAE,QAAqB;QACnK,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,qCAAqC,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC5G,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,iCAAiC,CAAC,UAAU,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,8EAA8E;IACvE,MAAM,CAAC,+BAA+B,CAAC,MAAgB,EAAE,YAAuB,EAAE,QAAqB;QAC5G,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAC/F,MAAM,MAAM,GAAG,IAAI,4BAA4B,CAAC,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;QAElF,MAAM,mBAAmB,GAAiB;YACxC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,MAAM;YACN,KAAK;YACL,IAAI,EAAE,YAAY;SACnB,CAAC;QACF,MAAM,cAAc,GAAY,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QACnF,OAAO,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,0EAA0E;IACnE,MAAM,CAAC,2BAA2B,CAAC,MAAgB,EAAE,iBAAiC,EAAE,eAAwB,KAAK;QAC1H,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,CAAC,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;QACtJ,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,uCAAuC,CAAC,UAAoB,EAAE,YAAuB,EAAE,eAAwB,KAAK,EAAE,MAAmB;QACrJ,MAAM,GAAG,GAAG,eAAe,CAAC,+BAA+B,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAC9F,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,eAAe,CAAC,2BAA2B,CAAC,UAAU,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC;QACrG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,4BAA4B,CAAC,UAAiB,EAAE,gBAAwB;QACpF,IAAI,YAAY,GAAW,gBAAgB,CAAC;QAC5C,IAAI,IAAI,GAAW,CAAC,CAAC;QACrB,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,KAAK,SAAS;gBACrG,OAAO,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;YAEpF,YAAY,GAAG,gBAAgB,GAAG,IAAI,CAAC;YACvC,EAAE,IAAI,CAAC;QACT,CAAC;IACH,CAAC;IAED,iDAAiD;IAC1C,MAAM,CAAC,oBAAoB,CAAC,UAAoB,EAAE,OAAmB,EAAE,UAAsB,EAAE,QAAe;QACnH,MAAM,YAAY,GAAyB;YACzC,aAAa,EAAE,wBAAwB;YACvC,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;SAC/C,CAAC;QACF,OAAO,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IACzD,CAAC;IAEM,MAAM,CAAC,qBAAqB;QACjC,IAAI,SAAS,KAAK,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAClE,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAChC,aAAa,CAAC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;YACpD,aAAa,CAAC,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,EAAY,EAAE,KAAa,EAAE,QAAyB;QAC/E,4DAA4D;QAC5D,OAAO,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YAC9C,IAAI,QAAQ;gBACV,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAE5B,MAAM,IAAI,GAAU,EAAE,CAAC;YACvB,OAAO,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBACzB,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ;oBACjC,MAAM,IAAI,WAAW,CAAC,YAAY,CAAC,UAAU,EAAE,wCAAwC,CAAC,CAAC;YAC7F,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,uBAAuB,CAAC,MAAgB,EAAE,IAAY;QAClE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC/E,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,2DAA2D;QAC3G,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0EAA0E;IACnE,MAAM,CAAC,SAAS,CAAC,QAAkB;QACxC,QAAQ,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,QAAkB,EAAE,gBAAwB;QACvE,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAE,CAAC;QAChI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,0BAA0B,CAAC,QAAkB,EAAE,eAA2B,EAAE,MAAc;QACtG,MAAM,aAAa,GAAS,mBAAmB,CAAC,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE,aAAa,MAAM,EAAE,CAAC,CAAC;QAC7G,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,aAAa,CAAE,CAAC;QAC3E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7C,OAAO,WAAW,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAAC,QAAkB,EAAE,OAAmB,EAAE,MAAc;QAC1F,MAAM,YAAY,GAAS,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,kBAAkB,MAAM,EAAE,CAAC,CAAC;QACrG,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,YAAY,CAAE,CAAC;QACzE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,wBAAwB,CAAC,QAAkB,EAAE,eAA2B,EAAE,MAAc;QACpG,MAAM,aAAa,GAAS,iBAAiB,CAAC,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,MAAM,EAAE,CAAC,CAAC;QACzG,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,aAAa,CAAE,CAAC;QAC3E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7C,OAAO,WAAW,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAAC,QAAkB,EAAE,OAAmB,EAAE,UAAsB,EAAE,MAAc;QAClH,MAAM,SAAS,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,MAAM,EAAE,CAAC,CAAC;QACxF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAoB,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAkB,SAAS,CAAC,CAAC;QAC1F,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC3C,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,QAAkB,EAAE,OAAmB,EAAE,YAAoB,EAAE,KAAe;QAChH,MAAM,UAAU,GAAgC;YAC9C,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE;YACrB,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,KAAK;SACjB,CAAC;QACF,OAAO,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAC7E,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,cAA4B;QACpD,MAAM,MAAM,GAAG,GAAG,CAAC;QACnB,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,qBAAqB,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1D,qBAAqB,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CACnD,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAC1E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CACpC,CAAC,CAAC;QACJ,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7C,qBAAqB,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;YAC7D,qBAAqB,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CACnD,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAC1E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CACpC,CAAC,CAAC;QACN,CAAC;QACD,OAAO,qBAAqB,CAAC,cAAc,CAAC;IAC9C,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,IAAa,EAAE,UAAuB,EAAE,aAA0B,EAAE,gBAA6B,EAAE,cAA2B;QACpJ,MAAM,qBAAqB,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1D,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC,EAAE,CAAC;YAChE,qBAAqB,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;YAC7D,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;gBACnC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;gBACrE,cAAc,CAAC,UAAU,GAAG,gBAAgB,CAAC;gBAC7C,qBAAqB,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QACD,qBAAqB,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,CACnD,OAAO,CAAC,UAAU,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EACnF,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CACpC,CAAC,CAAC;QACJ,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;YACjC,qBAAqB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,qBAAqB,CAAC,cAAc,CAAC;IAC9C,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,MAAc;QACzC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACpH,MAAM,qBAAqB,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1D,qBAAqB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO,qBAAqB,CAAC,cAAc,CAAC;IAC9C,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,IAAa;QACzC,MAAM,qBAAqB,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC1D,qBAAqB,CAAC,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC;YAC7D,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;YACjB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YACtB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAC3B,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YACtB,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;SAClB,CAAC,CAAC,CAAC;QACJ,OAAO,qBAAqB,CAAC,cAAc,CAAC;IAC9C,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,QAAkB,EAAE,OAAmB,EAAE,WAAmB;QAC7F,qKAAqK;QACrK,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5gB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5D,OAAO,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,mBAAmB,WAAW,EAAE,CAAC,CAAC;IACrI,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,QAAkB,EAAE,SAAiB;QAClE,4DAA4D;QAC5D,OAAO,QAAQ,CAAC,qBAAqB,CAAC,4BAA4B,OAAO,CAAC,aAAa,6BAA6B,EAAE,CAAC,SAAyB,EAAc,EAAE;YAC9J,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC7C,OAAO,QAAQ,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QACpG,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,QAAkB,EAAE,SAAiB;QAClE,4DAA4D;QAC5D,OAAO,QAAQ,CAAC,qBAAqB,CAAC,4BAA4B,OAAO,CAAC,aAAa,6BAA6B,EAAE,CAAC,SAAyB,EAAc,EAAE;YAC9J,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC7C,OAAO,QAAQ,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QACpG,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,QAAkB,EAAE,SAAiB,EAAE,GAAW,EAAE,MAAc;QACnG,MAAM,mBAAmB,GAAwB;YAC/C,aAAa,EAAE,cAAc,CAAC,aAAa;YAC3C,KAAK,EAAE,MAAM,CAAC,iBAAiB;YAC/B,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,iBAAiB,EAAE,SAAS,CAAC;YAC3E,GAAG;YACH,MAAM;SACP,CAAC;QACF,OAAO,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,QAAkB,EAAE,YAAwB,EAAE,SAAiB;QAChG,MAAM,mBAAmB,GAAwB;YAC/C,aAAa,EAAE,cAAc,CAAC,aAAa;YAC3C,KAAK,EAAE,MAAM,CAAC,iBAAiB;YAC/B,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;YACxB,SAAS;YACT,UAAU,EAAE,IAAI,4BAA4B,CAAC,YAAY,CAAC;YAC1D,aAAa,EAAE,WAAW;YAC1B,gBAAgB,EAAE,OAAO;SAC1B,CAAC;QACF,OAAO,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,QAAkB;QAC7C,MAAM,cAAc,GAAW,GAAG,QAAQ,CAAC,QAAQ,WAAW,CAAC;QAC/D,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1C,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QACD,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,GAAG,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC;QACpE,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC;QACnE,4DAA4D;QAC5D,QAAQ,CAAC,qBAAqB,CAAC,sEAAsE,EAAE,CAAC,SAAyB,EAAQ,EAAE;YACzI,OAAO,QAAQ,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnD,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;gBACjD,MAAM,YAAY,GAAW,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC/D,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,GAAG,UAAU,KAAK,YAAY,IAAI,CAAC,CAAC;YAChF,CAAC;QACH,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;QACjE,4DAA4D;QAC5D,QAAQ,CAAC,qBAAqB,CAAC,6DAA6D,EAAE,CAAC,SAAyB,EAAQ,EAAE;YAChI,OAAO,QAAQ,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnD,MAAM,UAAU,GAAW,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC7D,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,GAAG,UAAU,IAAI,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;QAChE,4DAA4D;QAC5D,QAAQ,CAAC,qBAAqB,CAAC,4BAA4B,KAAK,CAAC,aAAa,wBAAwB,EAAE,CAAC,SAAyB,EAAQ,EAAE;YAC1I,OAAO,QAAQ,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnD,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC9C,MAAM,KAAK,GAAU,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACvD,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,GAAG,OAAO,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;YACzH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,6BAA6B,CAAC,CAAC;QACzE,4DAA4D;QAC5D,QAAQ,CAAC,qBAAqB,CAAC,4BAA4B,cAAc,CAAC,aAAa,wBAAwB,EAAE,CAAC,SAAyB,EAAQ,EAAE;YACnJ,OAAO,QAAQ,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnD,MAAM,gBAAgB,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;gBACvD,MAAM,cAAc,GAAmB,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAiB,gBAAgB,CAAC,CAAC;gBACtG,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,GAAG,gBAAgB,KAAK,cAAc,CAAC,IAAI,CAAC,KAAK,KAAK,cAAc,CAAC,aAAa,IAAI,CAAC,CAAC;YACpI,CAAC;QACH,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC;QAClE,4DAA4D;QAC5D,QAAQ,CAAC,qBAAqB,CAAC,wBAAwB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,SAAyB,EAAQ,EAAE;YAClH,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAW,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;gBACzD,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,YAAY,OAAO,CAAC,aAAa,IAAI,KAAK,IAAI,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC,CAAC,CAAC;QACH,4DAA4D;QAC5D,QAAQ,CAAC,qBAAqB,CAAC,wBAAwB,cAAc,CAAC,aAAa,EAAE,EAAE,CAAC,SAAyB,EAAQ,EAAE;YACzH,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAW,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;gBACzD,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,YAAY,cAAc,CAAC,aAAa,IAAI,KAAK,IAAI,CAAC,CAAC;YACnG,CAAC;QACH,CAAC,CAAC,CAAC;QACH,4DAA4D;QAC5D,QAAQ,CAAC,qBAAqB,CAAC,wBAAwB,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC,SAAyB,EAAQ,EAAE;YACvH,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAW,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;gBACzD,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,YAAY,YAAY,CAAC,aAAa,IAAI,KAAK,IAAI,CAAC,CAAC;YACjG,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,qBAAqB;IAChC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7C,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAErC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,QAAkB;QAC9C,yBAAyB;QACzB,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,oCAAoC,CAAC,CAAC;QAC3G,MAAM,QAAQ,CAAC,aAAa,CAAC,CAAC,gBAAgB,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,CAAC;QACtF,gBAAgB,CAAC,cAAc,EAAE,CAAC;IACpC,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAkB;QAC/C,uCAAuC;QACvC,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/F,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QACxC,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAEnC,6BAA6B;QAC7B,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1E,QAAQ,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC9C,mBAAmB;QACnB,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1F,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACjG,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9F,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7C,mCAAmC;QACnC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;QACnG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QAC7F,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACrD,MAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QACpF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAC7F,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QAC9C,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAC9E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;QACjD,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;QACzG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACxD,MAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QACpF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;QAC3E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,4BAA4B;QAC5B,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC,CAAC;QACtI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;QACjD,MAAM,iBAAiB,GAAG,eAAe,CAAC,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,wBAAwB,GAAG,eAAe,CAAC,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7I,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;QAC/C,MAAM,qBAAqB,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACvD,MAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,qBAAqB,EAAE,CAAC,CAAC;QAC9H,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,yBAAyB,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAC,iBAAiB,EAAE,wBAAwB,CAAC,CAAC,CAAC;QAC3J,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC3D,MAAM,yBAAyB,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACjI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC3D,MAAM,mBAAmB,GAA0B;YACjD,aAAa,EAAE,gBAAgB,CAAC,aAAa;YAC7C,KAAK,EAAE,iBAAiB;YACxB,IAAI,EAAE,gBAAgB,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;SACnF,CAAC;QACF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QAC9E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,eAAe,CAAC,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAC/F,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;QACrI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClD,MAAM,iBAAiB,GAAsB;YAC3C,aAAa,EAAE,YAAY,CAAC,aAAa;YACzC,KAAK,EAAE,iBAAiB;YACxB,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,cAAc,CAAC;YAC1E,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACzD,CAAC;QACF,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;QAChD,4BAA4B;QAC5B,MAAM,uBAAuB,GAAG;YAC9B,aAAa,EAAE,+CAA+C;YAC9D,KAAK,EAAE,kBAAkB;YACzB,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,oBAAoB,EAAE;YACnF,YAAY,EAAE,SAAS;YACvB,YAAY,EAAE,KAAK;SACpB,CAAC;QACF,MAAM,oBAAoB,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACtD,MAAM,uBAAuB,GAAQ;YACnC,aAAa,EAAE,+CAA+C;YAC9D,KAAK,EAAE,kBAAkB;YACzB,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,oBAAoB,EAAE;YACnF,YAAY,EAAE,SAAS;YACvB,YAAY,EAAE,KAAK;SACpB,CAAC;QACF,MAAM,oBAAoB,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACtD,MAAM,uBAAuB,GAAG;YAC9B,aAAa,EAAE,+CAA+C;YAC9D,KAAK,EAAE,kBAAkB;YACzB,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,oBAAoB,EAAE;YACnF,YAAY,EAAE,SAAS;YACvB,YAAY,EAAE,OAAO;SACtB,CAAC;QACF,MAAM,oBAAoB,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACtD,yBAAyB;QACzB,MAAM,oBAAoB,GAAyB;YACjD,aAAa,EAAE,cAAc,CAAC,aAAa;YAC3C,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,iBAAiB;YAC3B,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;YACxB,SAAS,EAAE,iBAAiB;YAC5B,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,CAAC;YAC5H,SAAS,EAAE;gBACT,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC/B,MAAM,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAClD;SACF,CAAC;QACF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAChF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,kCAAkC;QAClC,MAAM,kBAAkB,GAAyB,oBAAoB,CAAC;QACtE,kBAAkB,CAAC,SAAS,GAAG,eAAe,CAAC;QAC/C,kBAAkB,CAAC,MAAM,GAAG,IAAI,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;QAC5E,kBAAkB,CAAC,SAAU,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAC5E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;QACjD,MAAM,kBAAkB,GAAyB,kBAAkB,CAAC;QACpE,kBAAkB,CAAC,SAAS,GAAG,eAAe,CAAC;QAC/C,kBAAkB,CAAC,SAAU,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAC5E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;QACjD,yBAAyB;QACzB,MAAM,oBAAoB,GAAyB;YACjD,aAAa,EAAE,cAAc,CAAC,aAAa;YAC3C,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,wBAAwB;YAClC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;YACxB,SAAS,EAAE,iBAAiB;YAC5B,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACxD,SAAS,EAAE;gBACT,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC/B,MAAM,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAClD;SACF,CAAC;QACF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAChF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,yBAAyB;QACzB,MAAM,oBAAoB,GAAyB;YACjD,aAAa,EAAE,cAAc,CAAC,aAAa;YAC3C,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,wBAAwB;YAClC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;YACxB,cAAc,EAAE,qBAAqB,CAAC,eAAe;YACrD,SAAS,EAAE,iBAAiB;SAC7B,CAAC;QACF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAChF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,yBAAyB;QACzB,MAAM,oBAAoB,GAAyB;YACjD,aAAa,EAAE,cAAc,CAAC,aAAa;YAC3C,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,iBAAiB;YAC3B,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;YACxB,SAAS,EAAE,iBAAiB;YAC5B,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;YACzE,SAAS,EAAE;gBACT,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC/B,MAAM,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAClD;SACF,CAAC;QACF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAChF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,0BAA0B;QAC1B,MAAM,0BAA0B,GAAyB;YACvD,aAAa,EAAE,6CAA6C;YAC5D,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,wBAAwB;YAClC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;YACxB,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACxD,SAAS,EAAE;gBACT,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC/B,MAAM,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAClD;YACD,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,GAAG;YACjB,gBAAgB,EAAE,EAAE,EAAE,EAAE,wBAAwB,EAAE,YAAY,EAAE,iEAAiE,EAAE;YACnI,gBAAgB,EAAE,EAAE,EAAE,EAAE,wBAAwB,EAAE;YAClD,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,GAAG;YACjB,YAAY,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1C,YAAY,EAAE,mBAAmB,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9E,WAAW,EAAE,OAAO;SACG,CAAC;QAC1B,MAAM,uBAAuB,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;QAC5F,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACjF,wBAAwB;QACxB,MAAM,WAAW,GAAG;YAClB,aAAa,EAAE,0CAA0C;YACzD,OAAO,EAAE,IAAI,uBAAuB,CAAC,iBAAiB,CAAC;YACvD,YAAY,EAAE,GAAG;YACjB,YAAY,EAAE,QAAQ;YACtB,UAAU,EAAE,iBAAiB;YAC7B,YAAY,EAAE,mBAAmB,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9E,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,cAAc;YAC5B,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,qBAAqB,CAAC,gBAAgB;YAClD,WAAW,EAAE,OAAO;SACZ,CAAC;QACX,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,kBAAkB,GAAwB,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,EAAE,0CAA0C,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/I,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,CAAC;QACvH,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC7B,aAAa,EAAE,yCAAyC;YACxD,OAAO,EAAE,IAAI,uBAAuB,CAAC,iBAAiB,CAAC;YACvD,YAAY,EAAE,GAAG;YACjB,YAAY,EAAE,OAAO;YACrB,UAAU,EAAE,iBAAiB;YAC7B,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,aAAa;YAC3B,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE;YAC9B,WAAW,EAAE,OAAO;SACC,CAAC,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC7B,aAAa,EAAE,yCAAyC;YACxD,OAAO,EAAE,IAAI,uBAAuB,CAAC,iBAAiB,CAAC;YACvD,YAAY,EAAE,GAAG;YACjB,YAAY,EAAE,OAAO;YACrB,UAAU,EAAE,iBAAiB;YAC7B,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,aAAa;YAC3B,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE;YAC9B,WAAW,EAAE,OAAO;SACC,CAAC,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC7B,aAAa,EAAE,mDAAmD;YAClE,OAAO,EAAE,IAAI,uBAAuB,CAAC,iBAAiB,CAAC;YACvD,WAAW,EAAE,qBAAqB;SACb,CAAC,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC7B,aAAa,EAAE,kDAAkD;YACjE,OAAO,EAAE,IAAI,uBAAuB,CAAC,iBAAiB,CAAC;YACvD,WAAW,EAAE,oBAAoB;SACZ,CAAC,CAAC;QACzB,yBAAyB;QACzB,MAAM,oBAAoB,GAA4B;YACpD,aAAa,EAAE,cAAc,CAAC,aAAa;YAC3C,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,iBAAiB;YAC3B,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;YACxB,SAAS,EAAE,iBAAiB;YAC5B,IAAI,EAAE,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3D,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;SACtD,CAAC;QACF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAChF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,2BAA2B,GAAG,+BAA+B,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QAC3H,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAC7D,MAAM,oBAAoB,GAA4B;YACpD,aAAa,EAAE,cAAc,CAAC,aAAa;YAC3C,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,iBAAiB;YAC3B,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;YACxB,SAAS,EAAE,iBAAiB;YAC5B,IAAI,EAAE,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3D,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;SACtD,CAAC;QACF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAChF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,2BAA2B,GAAG,+BAA+B,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QAC3H,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAC7D,uBAAuB;QACvB,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QAC9F,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClD,MAAM,cAAc,GAAmB,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QAC5G,MAAM,mBAAmB,GAAwB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC1H,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;QAChF,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAC/D,cAAc,CAAC,QAAQ,CAAC,yBAAyB,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAChI,cAAc,CAAC,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC;YACzD,GAAG,EAAE;gBACH,KAAK,EAAE;oBACL,IAAI,EAAE,eAAe,CAAC,SAAS;oBAC/B,OAAO,EAAE,SAAS;iBACnB;aACF;SACF,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClD,yBAAyB;QACzB,MAAM,MAAM,GAAG,0BAA0B,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACxM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACxC,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAC1K,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;QAC/C,gFAAgF;QAChF,MAAM,aAAa,GAAiB,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC;YACxE,aAAa,EAAE,0CAA0C;YACzD,QAAQ,EAAE,yBAAyB;YACnC,QAAQ,EAAE,yBAAyB;SACpC,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;QACjD,0EAA0E;QAC1E,MAAM,aAAa,GAAiB,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC;YACxE,aAAa,EAAE,0CAA0C;YACzD,QAAQ,EAAE,yBAAyB;YACnC,QAAQ,EAAE,yBAAyB;YACnC,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,GAAG;YACjB,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE;SACxB,CAAC,CAAC;QACV,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,QAAkB;QACvC,yBAAyB;QACzB,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAE,CAAC;QACzH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAU,SAAS,CAAC,CAAC;QACjE,OAAO,CAAC,WAAW,GAAG,+BAA+B,CAAC;QACtD,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAClD,iCAAiC;QACjC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAE,CAAC;QAC7I,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAE,CAAC;QAC9I,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,eAAe,GAAoB,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAkB,iBAAiB,CAAC,CAAC;QAC1G,eAAe,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpD,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1D,iCAAiC;QACjC,MAAM,yBAAyB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAE,CAAC;QACzJ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC3D,MAAM,yBAAyB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAE,CAAC;QACzJ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAQ,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAC/D,0CAA0C,EAC1C,EAAE,QAAQ,EAAE,yBAAyB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAC7E,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC7C,YAAY,CAAC,YAAY,IAAI,UAAU,CAAC;QACxC,YAAY,CAAC,YAAY,GAAG,GAAG,CAAC;QAChC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACpD,kCAAkC;QAClC,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACxF,MAAM,mBAAmB,GAAoB,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,EAAE,0CAA0C,CAAC,CAAC;QACzI,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5C,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,UAAU,CAAC;QACxD,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,UAAU,CAAC;QACxD,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAChE,MAAM,kBAAkB,GAAoB,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,EAAE,yCAAyC,CAAC,CAAC;QACvI,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3C,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,UAAU,CAAC;QACvD,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,UAAU,CAAC;QACvD,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/D,+CAA+C;QAC/C,MAAM,kBAAkB,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAC1F,IAAI,gBAAgB,GAAoB,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QACzF,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,GAAG,cAAc,CAAC,IAAI,CAAC;QAC9D,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC1B,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QACpE,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC5D,yBAAyB;QACzB,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACxF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAC1F,yBAAyB;QACzB,MAAM,oBAAoB,GAAyB;YACjD,aAAa,EAAE,cAAc,CAAC,aAAa;YAC3C,KAAK,EAAE,gBAAgB,CAAC,KAAK;YAC7B,QAAQ,EAAE,iBAAiB;YAC3B,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;YACxB,SAAS,EAAE,iBAAiB;YAC5B,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACxD,SAAS,EAAE;gBACT,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC/B,MAAM,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAClD;SACF,CAAC;QACF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAChF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,sBAAsB;QACtB,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACxF,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACxF,MAAM,YAAY,GAAiB,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,+BAA+B,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACnL,YAAY,CAAC,MAAM,EAAE,CAAC;QACtB,uBAAuB;QACvB,+BAA+B,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QACvF,+BAA+B,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QACvF,4BAA4B;QAC5B,MAAM,yBAAyB,GAAa,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC/F,MAAM,kBAAkB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAE,CAAC;QAC/I,MAAM,sBAAsB,GAAS,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,CAAC,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;QAC9I,MAAM,oBAAoB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,sBAAsB,CAAE,CAAC;QAC7F,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACtD,MAAM,kBAAkB,GAAQ,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QACnF,kBAAkB,CAAC,YAAY,GAAG,GAAG,kBAAkB,CAAC,YAAY,UAAU,CAAC;QAC/E,kBAAkB,CAAC,YAAY,GAAG,GAAG,kBAAkB,CAAC,YAAY,UAAU,CAAC;QAC/E,kBAAkB,CAAC,MAAM,EAAE,CAAC;QAC5B,4BAA4B;QAC5B,MAAM,sBAAsB,GAAS,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,CAAC,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;QAC9I,MAAM,oBAAoB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,sBAAsB,CAAE,CAAC;QAC7F,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACtD,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,QAAkB,EAAE,gBAAyB,IAAI;QAC/E,sCAAsC;QACtC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7F,MAAM,gBAAgB,GAAG,QAAQ,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACnG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QACpD,6BAA6B;QAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAE,CAAC;QACzH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAY,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAU,SAAS,CAAC,CAAC;QAC1E,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,+BAA+B,CAAC,CAAC;QACnE,qCAAqC;QACrC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAE,CAAC;QAC7I,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAE,CAAC;QAC9I,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,eAAe,GAAoB,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAkB,iBAAiB,CAAC,CAAC;QAC1G,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QAC9C,wCAAwC;QACxC,MAAM,yBAAyB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAE,CAAC;QACzJ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC3D,MAAM,yBAAyB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAE,CAAC;QACzJ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,0CAA0C,CAAC;QAC1I,MAAM,YAAY,GAAQ,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAC/D,gBAAgB,EAChB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAC7E,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACtG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC5F,kCAAkC;QAClC,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACxF,MAAM,yBAAyB,GAAG,gBAAgB,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,0CAA0C,CAAC;QACnJ,MAAM,aAAa,GAAoB,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;QAClH,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5C,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;YACvC,YAAY,EAAE,GAAG;YACjB,YAAY,EAAE,gBAAgB;YAC9B,UAAU,EAAE,iBAAiB;SAC9B,CAAC,CAAC;QACH,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;gBACvC,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,sBAAsB;gBACpC,UAAU,EAAE,iBAAiB;aAC9B,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;gBACvC,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,sBAAsB;gBACpC,UAAU,EAAE,iBAAiB;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,yCAAyC,CAAC;QAChJ,MAAM,YAAY,GAAoB,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;QAChH,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrC,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3C,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC7F,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACtG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QACtG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC7F,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC;QAC9G,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QACtG,4DAA4D;QAC5D,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACzF,MAAM,eAAe,GAAoB,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QACzF,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC3D,sCAAsC;QACtC,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACxF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,qCAAqC;QACrC,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACxF,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACxF,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,+BAA+B,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAChJ,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,+BAA+B,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAChJ,wCAAwC;QACxC,MAAM,yBAAyB,GAAa,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC/F,MAAM,kBAAkB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAE,CAAC;QAC/I,MAAM,oBAAoB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,CAAC,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAC9K,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAqB,CAAC,CAAC,CAAC;QACvD,MAAM,kBAAkB,GAAQ,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAqB,CAAC,CAAC;QACpF,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;QACjE,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAClH,wCAAwC;QACxC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,CAAC,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC;QACnK,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,CAAC,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC;QACnK,qGAAqG;QACrG,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;YAC1F,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,+BAA+B,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;YAC1K,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,CAAC,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC;QACvK,CAAC;IACH,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Buffer } from \"node:buffer\";\r\nimport * as chai from \"chai\";\r\nimport { assert, expect } from \"chai\";\r\nimport * as chaiAsPromised from \"chai-as-promised\";\r\nimport * as path from \"path\";\r\nimport { AccessToken, BeEvent, DbResult, Guid, GuidString, Id64, Id64String, IModelStatus, omit, OpenMode } from \"@itwin/core-bentley\";\r\nimport {\r\n AuxCoordSystem2dProps, Base64EncodedString, ChangesetIdWithIndex, Code, CodeProps, CodeScopeSpec, CodeSpec, ColorDef, ElementAspectProps,\r\n ElementProps, Environment, ExternalSourceProps, FontType, GeometricElement2dProps, GeometryParams, GeometryPartProps, GeometryStreamBuilder,\r\n GeometryStreamProps, ImageSourceFormat, IModel, IModelError, IModelReadRpcInterface, IModelVersion, IModelVersionProps, LocalFileName,\r\n PhysicalElementProps, PlanProjectionSettings, RelatedElement, RepositoryLinkProps, RequestNewBriefcaseProps, RpcConfiguration, RpcManager,\r\n RpcPendingResponse, SkyBoxImageType, SubCategoryAppearance, SubCategoryOverride, SyncMode,\r\n} from \"@itwin/core-common\";\r\nimport { Box, Cone, LineString3d, Point2d, Point3d, Range2d, Range3d, StandardViewIndex, Vector3d, YawPitchRollAngles } from \"@itwin/core-geometry\";\r\nimport { RequestNewBriefcaseArg } from \"../BriefcaseManager\";\r\nimport { CheckpointManager, CheckpointProps, DownloadRequest, V2CheckpointManager } from \"../CheckpointManager\";\r\nimport { ClassRegistry } from \"../ClassRegistry\";\r\nimport {\r\n _nativeDb, AuxCoordSystem2d, BriefcaseDb, BriefcaseLocalValue, BriefcaseManager, CategorySelector, ChannelControl, DisplayStyle2d, DisplayStyle3d, DrawingCategory,\r\n DrawingViewDefinition, ECSqlStatement, Element, ElementAspect, ElementOwnsChildElements, ElementOwnsMultiAspects, ElementOwnsUniqueAspect,\r\n ElementUniqueAspect, ExternalSource, ExternalSourceIsInRepository, FunctionalModel, FunctionalSchema, GroupModel, IModelDb, IModelHost,\r\n IModelJsFs, InformationPartitionElement, Model, ModelSelector, OrthographicViewDefinition, PhysicalModel, PhysicalObject,\r\n PhysicalPartition, RenderMaterialElement, SnapshotDb, SpatialCategory, SubCategory, SubjectOwnsPartitionElements, Texture, ViewDefinition,\r\n} from \"../core-backend\";\r\nimport { DefinitionPartition, Drawing, DrawingGraphic, GeometryPart, LinkElement, PhysicalElement, RepositoryLink, Subject } from \"../Element\";\r\nimport { DefinitionModel, DocumentListModel, DrawingModel, InformationRecordModel, SpatialLocationModel } from \"../Model\";\r\nimport { DrawingGraphicRepresentsElement, ElementDrivesElement, Relationship, RelationshipProps } from \"../Relationship\";\r\nimport { DownloadAndOpenArgs, RpcBriefcaseUtility } from \"../rpc-impl/RpcBriefcaseUtility\";\r\nimport { Schema, Schemas } from \"../Schema\";\r\nimport { HubMock } from \"../internal/HubMock\";\r\nimport { KnownTestLocations } from \"./KnownTestLocations\";\r\nimport { BackendHubAccess } from \"../BackendHubAccess\";\r\nimport { _hubAccess } from \"../internal/Symbols\";\r\n\r\nchai.use(chaiAsPromised);\r\n\r\n/* eslint-disable @typescript-eslint/explicit-member-accessibility */\r\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\r\n\r\nRpcConfiguration.developmentMode = true;\r\n\r\n// Initialize the RPC interface classes used by tests\r\nRpcManager.initializeInterface(IModelReadRpcInterface);\r\n\r\nexport interface IModelTestUtilsOpenOptions {\r\n copyFilename?: string;\r\n enableTransactions?: boolean;\r\n openMode?: OpenMode;\r\n}\r\n\r\nexport class TestBim extends Schema {\r\n public static override get schemaName(): string { return \"TestBim\"; }\r\n\r\n}\r\nexport interface TestRelationshipProps extends RelationshipProps {\r\n property1: string;\r\n}\r\nexport class TestElementDrivesElement extends ElementDrivesElement {\r\n public static override get className(): string { return \"TestElementDrivesElement\"; }\r\n declare public property1: string;\r\n public static rootChanged = new BeEvent<(props: RelationshipProps, imodel: IModelDb) => void>();\r\n public static deletedDependency = new BeEvent<(props: RelationshipProps, imodel: IModelDb) => void>();\r\n public static override onRootChanged(props: RelationshipProps, imodel: IModelDb): void { this.rootChanged.raiseEvent(props, imodel); }\r\n public static override onDeletedDependency(props: RelationshipProps, imodel: IModelDb): void { this.deletedDependency.raiseEvent(props, imodel); }\r\n}\r\nexport interface TestPhysicalObjectProps extends PhysicalElementProps {\r\n intProperty: number;\r\n}\r\nexport class TestPhysicalObject extends PhysicalElement {\r\n public static override get className(): string { return \"TestPhysicalObject\"; }\r\n declare public intProperty: number;\r\n public static beforeOutputsHandled = new BeEvent<(id: Id64String, imodel: IModelDb) => void>();\r\n public static allInputsHandled = new BeEvent<(id: Id64String, imodel: IModelDb) => void>();\r\n public static override onBeforeOutputsHandled(id: Id64String, imodel: IModelDb): void { this.beforeOutputsHandled.raiseEvent(id, imodel); }\r\n public static override onAllInputsHandled(id: Id64String, imodel: IModelDb): void { this.allInputsHandled.raiseEvent(id, imodel); }\r\n}\r\n\r\n/** the types of users available for tests */\r\nexport enum TestUserType {\r\n Regular,\r\n Manager,\r\n Super,\r\n SuperManager\r\n}\r\n\r\n/** A wrapper around the BackendHubAccess API through IModelHost[_hubAccess].\r\n *\r\n * All methods in this class should be usable with any BackendHubAccess implementation (i.e. HubMock and IModelHubBackend).\r\n */\r\nexport class HubWrappers {\r\n protected static get hubMock() { return HubMock; }\r\n\r\n public static async getAccessToken(user: TestUserType) {\r\n return TestUserType[user];\r\n }\r\n\r\n /** Create an iModel with the name provided if it does not already exist. If it does exist, the iModelId is returned. */\r\n public static async createIModel(accessToken: AccessToken, iTwinId: GuidString, iModelName: string): Promise<GuidString> {\r\n assert.isTrue(this.hubMock.isValid, \"Must use HubMock for tests that modify iModels\");\r\n let iModelId = await IModelHost[_hubAccess].queryIModelByName({ accessToken, iTwinId, iModelName });\r\n if (!iModelId)\r\n iModelId = await IModelHost[_hubAccess].createNewIModel({ accessToken, iTwinId, iModelName, description: `Description for iModel` });\r\n return iModelId;\r\n }\r\n\r\n /** Deletes and re-creates an iModel with the provided name in the iTwin.\r\n * @returns the iModelId of the newly created iModel.\r\n */\r\n public static async recreateIModel(...[arg]: Parameters<BackendHubAccess[\"createNewIModel\"]>): Promise<GuidString> {\r\n assert.isTrue(this.hubMock.isValid, \"Must use HubMock for tests that modify iModels\");\r\n const deleteIModel = await IModelHost[_hubAccess].queryIModelByName(arg);\r\n if (undefined !== deleteIModel)\r\n await IModelHost[_hubAccess].deleteIModel({ accessToken: arg.accessToken, iTwinId: arg.iTwinId, iModelId: deleteIModel });\r\n\r\n // Create a new iModel\r\n return IModelHost[_hubAccess].createNewIModel({ description: `Description for ${arg.iModelName}`, ...arg });\r\n }\r\n\r\n /** Delete an IModel from the hub */\r\n public static async deleteIModel(accessToken: AccessToken, iTwinId: string, iModelName: string): Promise<void> {\r\n const iModelId = await IModelHost[_hubAccess].queryIModelByName({ accessToken, iTwinId, iModelName });\r\n if (undefined === iModelId)\r\n return;\r\n\r\n await IModelHost[_hubAccess].deleteIModel({ accessToken, iTwinId, iModelId });\r\n }\r\n\r\n /** Push an iModel to the Hub */\r\n public static async pushIModel(accessToken: AccessToken, iTwinId: string, pathname: string, iModelName?: string, overwrite?: boolean): Promise<GuidString> {\r\n // Delete any existing iModels with the same name as the required iModel\r\n const locIModelName = iModelName || path.basename(pathname, \".bim\");\r\n const iModelId = await IModelHost[_hubAccess].queryIModelByName({ accessToken, iTwinId, iModelName: locIModelName });\r\n if (iModelId) {\r\n if (!overwrite)\r\n return iModelId;\r\n await IModelHost[_hubAccess].deleteIModel({ accessToken, iTwinId, iModelId });\r\n }\r\n\r\n // Upload a new iModel\r\n return IModelHost[_hubAccess].createNewIModel({ accessToken, iTwinId, iModelName: locIModelName, version0: pathname });\r\n }\r\n\r\n /** Helper to open a briefcase db directly with the BriefcaseManager API */\r\n public static async downloadAndOpenBriefcase(args: RequestNewBriefcaseArg & { noLock?: true }): Promise<BriefcaseDb> {\r\n const props = await BriefcaseManager.downloadBriefcase(args);\r\n if (args.noLock) {\r\n const briefcase = await BriefcaseDb.open({ fileName: props.fileName });\r\n briefcase[_nativeDb].saveLocalValue(BriefcaseLocalValue.NoLocking, \"true\");\r\n briefcase.saveChanges();\r\n briefcase.close();\r\n }\r\n return BriefcaseDb.open({ fileName: props.fileName });\r\n }\r\n\r\n /** Opens the specific iModel as a Briefcase through the same workflow the IModelReadRpc.getConnectionProps method will use. Replicates the way a frontend would open the iModel. */\r\n public static async openBriefcaseUsingRpc(args: RequestNewBriefcaseProps & { accessToken: AccessToken, deleteFirst?: boolean }): Promise<BriefcaseDb> {\r\n if (undefined === args.asOf)\r\n args.asOf = IModelVersion.latest().toJSON();\r\n\r\n const openArgs: DownloadAndOpenArgs = {\r\n tokenProps: {\r\n iTwinId: args.iTwinId,\r\n iModelId: args.iModelId,\r\n changeset: (await IModelHost[_hubAccess].getChangesetFromVersion({ accessToken: args.accessToken, version: IModelVersion.fromJSON(args.asOf), iModelId: args.iModelId })),\r\n },\r\n activity: { accessToken: args.accessToken, activityId: \"\", applicationId: \"\", applicationVersion: \"\", sessionId: \"\" },\r\n syncMode: args.briefcaseId === 0 ? SyncMode.PullOnly : SyncMode.PullAndPush,\r\n forceDownload: args.deleteFirst,\r\n };\r\n\r\n assert.isTrue(this.hubMock.isValid || openArgs.syncMode === SyncMode.PullOnly, \"use HubMock to acquire briefcases\");\r\n while (true) {\r\n try {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return (await RpcBriefcaseUtility.open(openArgs)) as BriefcaseDb;\r\n } catch (error) {\r\n if (!(error instanceof RpcPendingResponse))\r\n throw error;\r\n }\r\n }\r\n }\r\n\r\n /** Downloads a checkpoint and opens it as a SnapShotDb */\r\n public static async downloadAndOpenCheckpoint(args: { accessToken: AccessToken, iTwinId: GuidString, iModelId: GuidString, asOf?: IModelVersionProps }): Promise<SnapshotDb> {\r\n if (undefined === args.asOf)\r\n args.asOf = IModelVersion.latest().toJSON();\r\n\r\n const checkpoint: CheckpointProps = {\r\n iTwinId: args.iTwinId,\r\n iModelId: args.iModelId,\r\n accessToken: args.accessToken,\r\n changeset: (await IModelHost[_hubAccess].getChangesetFromVersion({ accessToken: args.accessToken, version: IModelVersion.fromJSON(args.asOf), iModelId: args.iModelId })),\r\n };\r\n\r\n const folder = path.join(V2CheckpointManager.getFolder(), checkpoint.iModelId);\r\n const filename = path.join(folder, `${checkpoint.changeset.id === \"\" ? \"first\" : checkpoint.changeset.id}.bim`);\r\n const request: DownloadRequest = { checkpoint, localFile: filename };\r\n let db = SnapshotDb.tryFindByKey(CheckpointManager.getKey(request.checkpoint));\r\n if (undefined !== db)\r\n return db;\r\n db = IModelTestUtils.tryOpenLocalFile(request);\r\n if (db)\r\n return db;\r\n await V2CheckpointManager.downloadCheckpoint(request);\r\n await CheckpointManager.updateToRequestedVersion(request);\r\n return IModelTestUtils.openCheckpoint(request.localFile, request.checkpoint);\r\n }\r\n\r\n /** Opens the specific Checkpoint iModel, `SyncMode.FixedVersion`, through the same workflow the IModelReadRpc.getConnectionProps method will use. Replicates the way a frontend would open the iModel. */\r\n public static async openCheckpointUsingRpc(args: RequestNewBriefcaseProps & { accessToken: AccessToken, deleteFirst?: boolean }): Promise<IModelDb> {\r\n if (undefined === args.asOf)\r\n args.asOf = IModelVersion.latest().toJSON();\r\n\r\n const changeset = await IModelHost[_hubAccess].getChangesetFromVersion({ accessToken: args.accessToken, version: IModelVersion.fromJSON(args.asOf), iModelId: args.iModelId });\r\n const openArgs = {\r\n tokenProps: {\r\n iTwinId: args.iTwinId,\r\n iModelId: args.iModelId,\r\n changeset,\r\n },\r\n activity: { accessToken: args.accessToken, activityId: \"\", applicationId: \"\", applicationVersion: \"\", sessionId: \"\" },\r\n syncMode: SyncMode.FixedVersion as const,\r\n forceDownload: args.deleteFirst,\r\n };\r\n\r\n while (true) {\r\n try {\r\n return (await RpcBriefcaseUtility.open(openArgs));\r\n } catch (error) {\r\n if (!(error instanceof RpcPendingResponse))\r\n throw error;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Purges all acquired briefcases for the specified iModel (and user), if the specified threshold of acquired briefcases is exceeded\r\n */\r\n public static async purgeAcquiredBriefcasesById(accessToken: AccessToken, iModelId: GuidString, onReachThreshold: () => void = () => { }, acquireThreshold: number = 16): Promise<void> {\r\n const briefcases = await IModelHost[_hubAccess].getMyBriefcaseIds({ accessToken, iModelId });\r\n if (briefcases.length > acquireThreshold) {\r\n if (undefined !== onReachThreshold)\r\n onReachThreshold();\r\n\r\n const promises: Promise<void>[] = [];\r\n briefcases.forEach((briefcaseId) => {\r\n promises.push(IModelHost[_hubAccess].releaseBriefcase({ accessToken, iModelId, briefcaseId }));\r\n });\r\n await Promise.all(promises);\r\n }\r\n }\r\n\r\n public static async closeAndDeleteBriefcaseDb(accessToken: AccessToken, briefcaseDb: IModelDb) {\r\n const fileName = briefcaseDb.pathName;\r\n const iModelId = briefcaseDb.iModelId;\r\n briefcaseDb.close();\r\n\r\n await BriefcaseManager.deleteBriefcaseFiles(fileName, accessToken);\r\n\r\n // try to clean up empty briefcase directories, and empty iModel directories.\r\n if (0 === BriefcaseManager.getCachedBriefcases(iModelId).length) {\r\n IModelJsFs.removeSync(BriefcaseManager.getBriefcaseBasePath(iModelId));\r\n const imodelPath = BriefcaseManager.getIModelPath(iModelId);\r\n if (0 === IModelJsFs.readdirSync(imodelPath).length) {\r\n IModelJsFs.removeSync(imodelPath);\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class IModelTestUtils {\r\n\r\n\r\n protected static get knownTestLocations(): { outputDir: string, assetsDir: string } { return KnownTestLocations; }\r\n\r\n /** Generate a name for an iModel that's unique using the baseName provided and appending a new GUID. */\r\n public static generateUniqueName(baseName: string) {\r\n return `${baseName} - ${Guid.createValue()}`;\r\n }\r\n\r\n\r\n public static openCheckpoint(fileName: LocalFileName, checkpoint: CheckpointProps) {\r\n const snapshot = SnapshotDb.openFile(fileName, { key: CheckpointManager.getKey(checkpoint) });\r\n (snapshot as any)._iTwinId = checkpoint.iTwinId;\r\n return snapshot;\r\n }\r\n\r\n /** try to open an existing local file to satisfy a download request */\r\n public static tryOpenLocalFile(request: DownloadRequest): SnapshotDb | undefined {\r\n const checkpoint = request.checkpoint;\r\n if (CheckpointManager.verifyCheckpoint(checkpoint, request.localFile))\r\n return this.openCheckpoint(request.localFile, checkpoint);\r\n\r\n return undefined;\r\n }\r\n\r\n /** Prepare for an output file by:\r\n * - Resolving the output file name under the known test output directory\r\n * - Making directories as necessary\r\n * - Removing a previous copy of the output file\r\n * @param subDirName Sub-directory under known test output directory. Should match the name of the test file minus the .test.ts file extension.\r\n * @param fileName Name of output fille\r\n */\r\n public static prepareOutputFile(subDirName: string, fileName: string): LocalFileName {\r\n if (!IModelJsFs.existsSync(this.knownTestLocations.outputDir))\r\n IModelJsFs.mkdirSync(this.knownTestLocations.outputDir);\r\n\r\n const outputDir = path.join(this.knownTestLocations.outputDir, subDirName);\r\n if (!IModelJsFs.existsSync(outputDir))\r\n IModelJsFs.mkdirSync(outputDir);\r\n\r\n const outputFile = path.join(outputDir, fileName);\r\n if (IModelJsFs.existsSync(outputFile))\r\n IModelJsFs.unlinkSync(outputFile);\r\n\r\n return outputFile;\r\n }\r\n\r\n /** Resolve an asset file path from the asset name by looking in the known assets directory */\r\n public static resolveAssetFile(assetName: string): LocalFileName {\r\n const assetFile = path.join(this.knownTestLocations.assetsDir, assetName);\r\n assert.isTrue(IModelJsFs.existsSync(assetFile));\r\n return assetFile;\r\n }\r\n\r\n public static resolveFontFile(fontName: string): LocalFileName {\r\n const subDirs = [\"Karla\", \"DejaVu\", \"Sitka\"];\r\n const fontSubDirectory = subDirs.find((x) => fontName.startsWith(x));\r\n\r\n fontName = fontSubDirectory ? path.join(fontSubDirectory, fontName) : fontName;\r\n const assetName = path.join(\"Fonts\", fontName);\r\n return this.resolveAssetFile(assetName);\r\n }\r\n\r\n /** Orchestrates the steps necessary to create a new snapshot iModel from a seed file. */\r\n public static createSnapshotFromSeed(testFileName: string, seedFileName: LocalFileName): SnapshotDb {\r\n const seedDb: SnapshotDb = SnapshotDb.openFile(seedFileName);\r\n const testDb: SnapshotDb = SnapshotDb.createFrom(seedDb, testFileName);\r\n seedDb.close();\r\n testDb.channels.addAllowedChannel(ChannelControl.sharedChannelName);\r\n return testDb;\r\n }\r\n\r\n public static getUniqueModelCode(testDb: IModelDb, newModelCodeBase: string): Code {\r\n let newModelCode: string = newModelCodeBase;\r\n let iter: number = 0;\r\n while (true) {\r\n const modelCode = InformationPartitionElement.createCode(testDb, IModel.rootSubjectId, newModelCode);\r\n if (testDb.elements.queryElementIdByCode(modelCode) === undefined)\r\n return modelCode;\r\n\r\n newModelCode = newModelCodeBase + iter;\r\n ++iter;\r\n }\r\n }\r\n\r\n public static generateChangeSetId(): ChangesetIdWithIndex {\r\n let result = \"\";\r\n for (let i = 0; i < 20; ++i) {\r\n result += Math.floor(Math.random() * 256).toString(16).padStart(2, \"0\");\r\n }\r\n return { id: result };\r\n }\r\n\r\n /** Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel. */\r\n public static createAndInsertPhysicalPartition(testDb: IModelDb, newModelCode: CodeProps, parentId?: Id64String): Id64String {\r\n const model = parentId ? testDb.elements.getElement(parentId).model : IModel.repositoryModelId;\r\n const parent = new SubjectOwnsPartitionElements(parentId || IModel.rootSubjectId);\r\n\r\n const modeledElementProps: ElementProps = {\r\n classFullName: PhysicalPartition.classFullName,\r\n parent,\r\n model,\r\n code: newModelCode,\r\n };\r\n const modeledElement: Element = testDb.elements.createElement(modeledElementProps);\r\n return testDb.elements.insertElement(modeledElement.toJSON());\r\n }\r\n\r\n /** Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel. */\r\n public static async createAndInsertPhysicalPartitionAsync(testDb: IModelDb, newModelCode: CodeProps, parentId?: Id64String): Promise<Id64String> {\r\n const model = parentId ? testDb.elements.getElement(parentId).model : IModel.repositoryModelId;\r\n const parent = new SubjectOwnsPartitionElements(parentId || IModel.rootSubjectId);\r\n\r\n const modeledElementProps: ElementProps = {\r\n classFullName: PhysicalPartition.classFullName,\r\n parent,\r\n model,\r\n code: newModelCode,\r\n };\r\n const modeledElement = testDb.elements.createElement(modeledElementProps);\r\n await testDb.locks.acquireLocks({ shared: model });\r\n return testDb.elements.insertElement(modeledElement.toJSON());\r\n }\r\n\r\n /** Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel. */\r\n public static createAndInsertPhysicalModel(testDb: IModelDb, modeledElementRef: RelatedElement, privateModel: boolean = false): Id64String {\r\n const newModel = testDb.models.createModel({ modeledElement: modeledElementRef, classFullName: PhysicalModel.classFullName, isPrivate: privateModel });\r\n const newModelId = newModel.id = testDb.models.insertModel(newModel.toJSON());\r\n assert.isTrue(Id64.isValidId64(newModelId));\r\n assert.isTrue(Id64.isValidId64(newModel.id));\r\n assert.deepEqual(newModelId, newModel.id);\r\n return newModelId;\r\n }\r\n\r\n /** Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel. */\r\n public static async createAndInsertPhysicalModelAsync(testDb: IModelDb, modeledElementRef: RelatedElement, privateModel: boolean = false): Promise<Id64String> {\r\n const newModel = testDb.models.createModel({ modeledElement: modeledElementRef, classFullName: PhysicalModel.classFullName, isPrivate: privateModel });\r\n const newModelId = newModel.insert();\r\n assert.isTrue(Id64.isValidId64(newModelId));\r\n assert.isTrue(Id64.isValidId64(newModel.id));\r\n assert.deepEqual(newModelId, newModel.id);\r\n return newModelId;\r\n }\r\n\r\n /**\r\n * Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel.\r\n * @return [modeledElementId, modelId]\r\n */\r\n public static createAndInsertPhysicalPartitionAndModel(testImodel: IModelDb, newModelCode: CodeProps, privateModel: boolean = false, parent?: Id64String): Id64String[] {\r\n const eid = IModelTestUtils.createAndInsertPhysicalPartition(testImodel, newModelCode, parent);\r\n const modeledElementRef = new RelatedElement({ id: eid });\r\n const mid = IModelTestUtils.createAndInsertPhysicalModel(testImodel, modeledElementRef, privateModel);\r\n return [eid, mid];\r\n }\r\n\r\n /**\r\n * Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel.\r\n * @return [modeledElementId, modelId]\r\n */\r\n public static async createAndInsertPhysicalPartitionAndModelAsync(testImodel: IModelDb, newModelCode: CodeProps, privateModel: boolean = false, parentId?: Id64String): Promise<Id64String[]> {\r\n const eid = await IModelTestUtils.createAndInsertPhysicalPartitionAsync(testImodel, newModelCode, parentId);\r\n const modeledElementRef = new RelatedElement({ id: eid });\r\n const mid = await IModelTestUtils.createAndInsertPhysicalModelAsync(testImodel, modeledElementRef, privateModel);\r\n return [eid, mid];\r\n }\r\n\r\n /** Create and insert a Drawing Partition element (in the repositoryModel). */\r\n public static createAndInsertDrawingPartition(testDb: IModelDb, newModelCode: CodeProps, parentId?: Id64String): Id64String {\r\n const model = parentId ? testDb.elements.getElement(parentId).model : IModel.repositoryModelId;\r\n const parent = new SubjectOwnsPartitionElements(parentId || IModel.rootSubjectId);\r\n\r\n const modeledElementProps: ElementProps = {\r\n classFullName: Drawing.classFullName,\r\n parent,\r\n model,\r\n code: newModelCode,\r\n };\r\n const modeledElement: Element = testDb.elements.createElement(modeledElementProps);\r\n return testDb.elements.insertElement(modeledElement.toJSON());\r\n }\r\n\r\n /** Create and insert a DrawingModel associated with Drawing Partition. */\r\n public static createAndInsertDrawingModel(testDb: IModelDb, modeledElementRef: RelatedElement, privateModel: boolean = false): Id64String {\r\n const newModel = testDb.models.createModel({ modeledElement: modeledElementRef, classFullName: DrawingModel.classFullName, isPrivate: privateModel });\r\n const newModelId = newModel.insert();\r\n assert.isTrue(Id64.isValidId64(newModelId));\r\n assert.isTrue(Id64.isValidId64(newModel.id));\r\n assert.deepEqual(newModelId, newModel.id);\r\n return newModelId;\r\n }\r\n\r\n /**\r\n * Create and insert a Drawing Partition element (in the repositoryModel) and an associated DrawingModel.\r\n * @return [modeledElementId, modelId]\r\n */\r\n public static createAndInsertDrawingPartitionAndModel(testImodel: IModelDb, newModelCode: CodeProps, privateModel: boolean = false, parent?: Id64String): Id64String[] {\r\n const eid = IModelTestUtils.createAndInsertDrawingPartition(testImodel, newModelCode, parent);\r\n const modeledElementRef = new RelatedElement({ id: eid });\r\n const mid = IModelTestUtils.createAndInsertDrawingModel(testImodel, modeledElementRef, privateModel);\r\n return [eid, mid];\r\n }\r\n\r\n public static getUniqueSpatialCategoryCode(scopeModel: Model, newCodeBaseValue: string): Code {\r\n let newCodeValue: string = newCodeBaseValue;\r\n let iter: number = 0;\r\n while (true) {\r\n if (SpatialCategory.queryCategoryIdByName(scopeModel.iModel, scopeModel.id, newCodeValue) === undefined)\r\n return SpatialCategory.createCode(scopeModel.iModel, scopeModel.id, newCodeValue);\r\n\r\n newCodeValue = newCodeBaseValue + iter;\r\n ++iter;\r\n }\r\n }\r\n\r\n // Create a PhysicalObject. (Does not insert it.)\r\n public static createPhysicalObject(testImodel: IModelDb, modelId: Id64String, categoryId: Id64String, elemCode?: Code): Element {\r\n const elementProps: PhysicalElementProps = {\r\n classFullName: \"Generic:PhysicalObject\",\r\n model: modelId,\r\n category: categoryId,\r\n code: elemCode ? elemCode : Code.createEmpty(),\r\n };\r\n return testImodel.elements.createElement(elementProps);\r\n }\r\n\r\n public static registerTestBimSchema() {\r\n if (undefined === Schemas.getRegisteredSchema(TestBim.schemaName)) {\r\n Schemas.registerSchema(TestBim);\r\n ClassRegistry.register(TestPhysicalObject, TestBim);\r\n ClassRegistry.register(TestElementDrivesElement, TestBim);\r\n }\r\n }\r\n\r\n public static executeQuery(db: IModelDb, ecsql: string, bindings?: any[] | object): any[] {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return db.withPreparedStatement(ecsql, (stmt) => {\r\n if (bindings)\r\n stmt.bindValues(bindings);\r\n\r\n const rows: any[] = [];\r\n while (DbResult.BE_SQLITE_ROW === stmt.step()) {\r\n rows.push(stmt.getRow());\r\n if (rows.length > IModelDb.maxLimit)\r\n throw new IModelError(IModelStatus.BadRequest, \"Max LIMIT exceeded in SELECT statement\");\r\n }\r\n\r\n return rows;\r\n });\r\n }\r\n\r\n public static createJobSubjectElement(iModel: IModelDb, name: string): Subject {\r\n const subj = Subject.create(iModel, iModel.elements.getRootSubject().id, name);\r\n subj.setJsonProperty(\"Subject\", { Job: name }); // eslint-disable-line @typescript-eslint/naming-convention\r\n return subj;\r\n }\r\n\r\n /** Flushes the Txns in the TxnTable - this allows importing of schemas */\r\n public static flushTxns(iModelDb: IModelDb): boolean {\r\n iModelDb[_nativeDb].deleteAllTxns();\r\n return true;\r\n }\r\n\r\n public static querySubjectId(iModelDb: IModelDb, subjectCodeValue: string): Id64String {\r\n const subjectId = iModelDb.elements.queryElementIdByCode(Subject.createCode(iModelDb, IModel.rootSubjectId, subjectCodeValue))!;\r\n assert.isTrue(Id64.isValidId64(subjectId));\r\n return subjectId;\r\n }\r\n\r\n public static queryDefinitionPartitionId(iModelDb: IModelDb, parentSubjectId: Id64String, suffix: string): Id64String {\r\n const partitionCode: Code = DefinitionPartition.createCode(iModelDb, parentSubjectId, `Definition${suffix}`);\r\n const partitionId = iModelDb.elements.queryElementIdByCode(partitionCode)!;\r\n assert.isTrue(Id64.isValidId64(partitionId));\r\n return partitionId;\r\n }\r\n\r\n public static querySpatialCategoryId(iModelDb: IModelDb, modelId: Id64String, suffix: string): Id64String {\r\n const categoryCode: Code = SpatialCategory.createCode(iModelDb, modelId, `SpatialCategory${suffix}`);\r\n const categoryId = iModelDb.elements.queryElementIdByCode(categoryCode)!;\r\n assert.isTrue(Id64.isValidId64(categoryId));\r\n return categoryId;\r\n }\r\n\r\n public static queryPhysicalPartitionId(iModelDb: IModelDb, parentSubjectId: Id64String, suffix: string): Id64String {\r\n const partitionCode: Code = PhysicalPartition.createCode(iModelDb, parentSubjectId, `Physical${suffix}`);\r\n const partitionId = iModelDb.elements.queryElementIdByCode(partitionCode)!;\r\n assert.isTrue(Id64.isValidId64(partitionId));\r\n return partitionId;\r\n }\r\n\r\n public static queryPhysicalElementId(iModelDb: IModelDb, modelId: Id64String, categoryId: Id64String, suffix: string): Id64String {\r\n const elementId = IModelTestUtils.queryByUserLabel(iModelDb, `PhysicalObject${suffix}`);\r\n assert.isTrue(Id64.isValidId64(elementId));\r\n const element: PhysicalElement = iModelDb.elements.getElement<PhysicalElement>(elementId);\r\n assert.equal(element.model, modelId);\r\n assert.equal(element.category, categoryId);\r\n return elementId;\r\n }\r\n\r\n public static insertSpatialCategory(iModelDb: IModelDb, modelId: Id64String, categoryName: string, color: ColorDef): Id64String {\r\n const appearance: SubCategoryAppearance.Props = {\r\n color: color.toJSON(),\r\n transp: 0,\r\n invisible: false,\r\n };\r\n return SpatialCategory.insert(iModelDb, modelId, categoryName, appearance);\r\n }\r\n\r\n public static createBoxes(subCategoryIds: Id64String[]): GeometryStreamProps {\r\n const length = 1.0;\r\n const entryOrigin = Point3d.createZero();\r\n const geometryStreamBuilder = new GeometryStreamBuilder();\r\n geometryStreamBuilder.appendGeometry(Box.createDgnBox(\r\n entryOrigin, Vector3d.unitX(), Vector3d.unitY(), new Point3d(0, 0, length),\r\n length, length, length, length, true,\r\n )!);\r\n for (const subCategoryId of subCategoryIds) {\r\n entryOrigin.addInPlace({ x: 1, y: 1, z: 1 });\r\n geometryStreamBuilder.appendSubCategoryChange(subCategoryId);\r\n geometryStreamBuilder.appendGeometry(Box.createDgnBox(\r\n entryOrigin, Vector3d.unitX(), Vector3d.unitY(), new Point3d(0, 0, length),\r\n length, length, length, length, true,\r\n )!);\r\n }\r\n return geometryStreamBuilder.geometryStream;\r\n }\r\n\r\n public static createBox(size: Point3d, categoryId?: Id64String, subCategoryId?: Id64String, renderMaterialId?: Id64String, geometryPartId?: Id64String): GeometryStreamProps {\r\n const geometryStreamBuilder = new GeometryStreamBuilder();\r\n if ((undefined !== categoryId) && (undefined !== subCategoryId)) {\r\n geometryStreamBuilder.appendSubCategoryChange(subCategoryId);\r\n if (undefined !== renderMaterialId) {\r\n const geometryParams = new GeometryParams(categoryId, subCategoryId);\r\n geometryParams.materialId = renderMaterialId;\r\n geometryStreamBuilder.appendGeometryParamsChange(geometryParams);\r\n }\r\n }\r\n geometryStreamBuilder.appendGeometry(Box.createDgnBox(\r\n Point3d.createZero(), Vector3d.unitX(), Vector3d.unitY(), new Point3d(0, 0, size.z),\r\n size.x, size.y, size.x, size.y, true,\r\n )!);\r\n if (undefined !== geometryPartId) {\r\n geometryStreamBuilder.appendGeometryPart3d(geometryPartId);\r\n }\r\n return geometryStreamBuilder.geometryStream;\r\n }\r\n\r\n public static createCylinder(radius: number): GeometryStreamProps {\r\n const pointA = Point3d.create(0, 0, 0);\r\n const pointB = Point3d.create(0, 0, 2 * radius);\r\n const cylinder = Cone.createBaseAndTarget(pointA, pointB, Vector3d.unitX(), Vector3d.unitY(), radius, radius, true);\r\n const geometryStreamBuilder = new GeometryStreamBuilder();\r\n geometryStreamBuilder.appendGeometry(cylinder);\r\n return geometryStreamBuilder.geometryStream;\r\n }\r\n\r\n public static createRectangle(size: Point2d): GeometryStreamProps {\r\n const geometryStreamBuilder = new GeometryStreamBuilder();\r\n geometryStreamBuilder.appendGeometry(LineString3d.createPoints([\r\n new Point3d(0, 0),\r\n new Point3d(size.x, 0),\r\n new Point3d(size.x, size.y),\r\n new Point3d(0, size.y),\r\n new Point3d(0, 0),\r\n ]));\r\n return geometryStreamBuilder.geometryStream;\r\n }\r\n\r\n public static insertTextureElement(iModelDb: IModelDb, modelId: Id64String, textureName: string): Id64String {\r\n // This is an encoded png containing a 3x3 square with white in top left pixel, blue in middle pixel, and green in bottom right pixel. The rest of the square is red.\r\n const pngData = [137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 3, 0, 0, 0, 3, 8, 2, 0, 0, 0, 217, 74, 34, 232, 0, 0, 0, 1, 115, 82, 71, 66, 0, 174, 206, 28, 233, 0, 0, 0, 4, 103, 65, 77, 65, 0, 0, 177, 143, 11, 252, 97, 5, 0, 0, 0, 9, 112, 72, 89, 115, 0, 0, 14, 195, 0, 0, 14, 195, 1, 199, 111, 168, 100, 0, 0, 0, 24, 73, 68, 65, 84, 24, 87, 99, 248, 15, 4, 12, 12, 64, 4, 198, 64, 46, 132, 5, 162, 254, 51, 0, 0, 195, 90, 10, 246, 127, 175, 154, 145, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130];\r\n const textureData = Buffer.from(pngData).toString(\"base64\");\r\n return Texture.insertTexture(iModelDb, modelId, textureName, ImageSourceFormat.Png, textureData, `Description for ${textureName}`);\r\n }\r\n\r\n public static queryByUserLabel(iModelDb: IModelDb, userLabel: string): Id64String {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return iModelDb.withPreparedStatement(`SELECT ECInstanceId FROM ${Element.classFullName} WHERE UserLabel=:userLabel`, (statement: ECSqlStatement): Id64String => {\r\n statement.bindString(\"userLabel\", userLabel);\r\n return DbResult.BE_SQLITE_ROW === statement.step() ? statement.getValue(0).getId() : Id64.invalid;\r\n });\r\n }\r\n\r\n public static queryByCodeValue(iModelDb: IModelDb, codeValue: string): Id64String {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n return iModelDb.withPreparedStatement(`SELECT ECInstanceId FROM ${Element.classFullName} WHERE CodeValue=:codeValue`, (statement: ECSqlStatement): Id64String => {\r\n statement.bindString(\"codeValue\", codeValue);\r\n return DbResult.BE_SQLITE_ROW === statement.step() ? statement.getValue(0).getId() : Id64.invalid;\r\n });\r\n }\r\n\r\n public static insertRepositoryLink(iModelDb: IModelDb, codeValue: string, url: string, format: string): Id64String {\r\n const repositoryLinkProps: RepositoryLinkProps = {\r\n classFullName: RepositoryLink.classFullName,\r\n model: IModel.repositoryModelId,\r\n code: LinkElement.createCode(iModelDb, IModel.repositoryModelId, codeValue),\r\n url,\r\n format,\r\n };\r\n return iModelDb.elements.insertElement(repositoryLinkProps);\r\n }\r\n\r\n public static insertExternalSource(iModelDb: IModelDb, repositoryId: Id64String, userLabel: string): Id64String {\r\n const externalSourceProps: ExternalSourceProps = {\r\n classFullName: ExternalSource.classFullName,\r\n model: IModel.repositoryModelId,\r\n code: Code.createEmpty(),\r\n userLabel,\r\n repository: new ExternalSourceIsInRepository(repositoryId),\r\n connectorName: \"Connector\",\r\n connectorVersion: \"0.0.1\",\r\n };\r\n return iModelDb.elements.insertElement(externalSourceProps);\r\n }\r\n\r\n public static dumpIModelInfo(iModelDb: IModelDb): void {\r\n const outputFileName: string = `${iModelDb.pathName}.info.txt`;\r\n if (IModelJsFs.existsSync(outputFileName)) {\r\n IModelJsFs.removeSync(outputFileName);\r\n }\r\n IModelJsFs.appendFileSync(outputFileName, `${iModelDb.pathName}\\n`);\r\n IModelJsFs.appendFileSync(outputFileName, \"\\n=== CodeSpecs ===\\n\");\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n iModelDb.withPreparedStatement(`SELECT ECInstanceId,Name FROM BisCore:CodeSpec ORDER BY ECInstanceId`, (statement: ECSqlStatement): void => {\r\n while (DbResult.BE_SQLITE_ROW === statement.step()) {\r\n const codeSpecId = statement.getValue(0).getId();\r\n const codeSpecName: string = statement.getValue(1).getString();\r\n IModelJsFs.appendFileSync(outputFileName, `${codeSpecId}, ${codeSpecName}\\n`);\r\n }\r\n });\r\n IModelJsFs.appendFileSync(outputFileName, \"\\n=== Schemas ===\\n\");\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n iModelDb.withPreparedStatement(`SELECT Name FROM ECDbMeta.ECSchemaDef ORDER BY ECInstanceId`, (statement: ECSqlStatement): void => {\r\n while (DbResult.BE_SQLITE_ROW === statement.step()) {\r\n const schemaName: string = statement.getValue(0).getString();\r\n IModelJsFs.appendFileSync(outputFileName, `${schemaName}\\n`);\r\n }\r\n });\r\n IModelJsFs.appendFileSync(outputFileName, \"\\n=== Models ===\\n\");\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n iModelDb.withPreparedStatement(`SELECT ECInstanceId FROM ${Model.classFullName} ORDER BY ECInstanceId`, (statement: ECSqlStatement): void => {\r\n while (DbResult.BE_SQLITE_ROW === statement.step()) {\r\n const modelId = statement.getValue(0).getId();\r\n const model: Model = iModelDb.models.getModel(modelId);\r\n IModelJsFs.appendFileSync(outputFileName, `${modelId}, ${model.name}, ${model.parentModel}, ${model.classFullName}\\n`);\r\n }\r\n });\r\n IModelJsFs.appendFileSync(outputFileName, \"\\n=== ViewDefinitions ===\\n\");\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n iModelDb.withPreparedStatement(`SELECT ECInstanceId FROM ${ViewDefinition.classFullName} ORDER BY ECInstanceId`, (statement: ECSqlStatement): void => {\r\n while (DbResult.BE_SQLITE_ROW === statement.step()) {\r\n const viewDefinitionId = statement.getValue(0).getId();\r\n const viewDefinition: ViewDefinition = iModelDb.elements.getElement<ViewDefinition>(viewDefinitionId);\r\n IModelJsFs.appendFileSync(outputFileName, `${viewDefinitionId}, ${viewDefinition.code.value}, ${viewDefinition.classFullName}\\n`);\r\n }\r\n });\r\n IModelJsFs.appendFileSync(outputFileName, \"\\n=== Elements ===\\n\");\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n iModelDb.withPreparedStatement(`SELECT COUNT(*) FROM ${Element.classFullName}`, (statement: ECSqlStatement): void => {\r\n if (DbResult.BE_SQLITE_ROW === statement.step()) {\r\n const count: number = statement.getValue(0).getInteger();\r\n IModelJsFs.appendFileSync(outputFileName, `Count of ${Element.classFullName}=${count}\\n`);\r\n }\r\n });\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n iModelDb.withPreparedStatement(`SELECT COUNT(*) FROM ${PhysicalObject.classFullName}`, (statement: ECSqlStatement): void => {\r\n if (DbResult.BE_SQLITE_ROW === statement.step()) {\r\n const count: number = statement.getValue(0).getInteger();\r\n IModelJsFs.appendFileSync(outputFileName, `Count of ${PhysicalObject.classFullName}=${count}\\n`);\r\n }\r\n });\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n iModelDb.withPreparedStatement(`SELECT COUNT(*) FROM ${GeometryPart.classFullName}`, (statement: ECSqlStatement): void => {\r\n if (DbResult.BE_SQLITE_ROW === statement.step()) {\r\n const count: number = statement.getValue(0).getInteger();\r\n IModelJsFs.appendFileSync(outputFileName, `Count of ${GeometryPart.classFullName}=${count}\\n`);\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport class ExtensiveTestScenario {\r\n static uniqueAspectGuid = Guid.createValue();\r\n static federationGuid3 = Guid.createValue();\r\n\r\n public static async prepareDb(sourceDb: IModelDb): Promise<void> {\r\n // Import desired schemas\r\n const sourceSchemaFileName = path.join(KnownTestLocations.assetsDir, \"ExtensiveTestScenario.ecschema.xml\");\r\n await sourceDb.importSchemas([FunctionalSchema.schemaFilePath, sourceSchemaFileName]);\r\n FunctionalSchema.registerSchema();\r\n }\r\n\r\n public static async populateDb(sourceDb: IModelDb): Promise<void> {\r\n // make sure Arial is in the font table\r\n const arialFontId = await sourceDb.fonts.acquireId({ name: \"Arial\", type: FontType.TrueType });\r\n expect(arialFontId).not.to.be.undefined;\r\n expect(arialFontId).greaterThan(0);\r\n\r\n // Initialize project extents\r\n const projectExtents = new Range3d(-1000, -1000, -1000, 1000, 1000, 1000);\r\n sourceDb.updateProjectExtents(projectExtents);\r\n // Insert CodeSpecs\r\n const codeSpecId1 = sourceDb.codeSpecs.insert(\"SourceCodeSpec\", CodeScopeSpec.Type.Model);\r\n const codeSpecId2 = sourceDb.codeSpecs.insert(\"ExtraCodeSpec\", CodeScopeSpec.Type.ParentElement);\r\n const codeSpecId3 = sourceDb.codeSpecs.insert(\"InformationRecords\", CodeScopeSpec.Type.Model);\r\n assert.isTrue(Id64.isValidId64(codeSpecId1));\r\n assert.isTrue(Id64.isValidId64(codeSpecId2));\r\n assert.isTrue(Id64.isValidId64(codeSpecId3));\r\n // Insert RepositoryModel structure\r\n const subjectId = Subject.insert(sourceDb, IModel.rootSubjectId, \"Subject\", \"Subject Description\");\r\n assert.isTrue(Id64.isValidId64(subjectId));\r\n const sourceOnlySubjectId = Subject.insert(sourceDb, IModel.rootSubjectId, \"Only in Source\");\r\n assert.isTrue(Id64.isValidId64(sourceOnlySubjectId));\r\n const definitionModelId = DefinitionModel.insert(sourceDb, subjectId, \"Definition\");\r\n assert.isTrue(Id64.isValidId64(definitionModelId));\r\n const informationModelId = InformationRecordModel.insert(sourceDb, subjectId, \"Information\");\r\n assert.isTrue(Id64.isValidId64(informationModelId));\r\n const groupModelId = GroupModel.insert(sourceDb, subjectId, \"Group\");\r\n assert.isTrue(Id64.isValidId64(groupModelId));\r\n const physicalModelId = PhysicalModel.insert(sourceDb, subjectId, \"Physical\");\r\n assert.isTrue(Id64.isValidId64(physicalModelId));\r\n const spatialLocationModelId = SpatialLocationModel.insert(sourceDb, subjectId, \"SpatialLocation\", true);\r\n assert.isTrue(Id64.isValidId64(spatialLocationModelId));\r\n const functionalModelId = FunctionalModel.insert(sourceDb, subjectId, \"Functional\");\r\n assert.isTrue(Id64.isValidId64(functionalModelId));\r\n const documentListModelId = DocumentListModel.insert(sourceDb, subjectId, \"Document\");\r\n assert.isTrue(Id64.isValidId64(documentListModelId));\r\n const drawingId = Drawing.insert(sourceDb, documentListModelId, \"Drawing\");\r\n assert.isTrue(Id64.isValidId64(drawingId));\r\n // Insert DefinitionElements\r\n const modelSelectorId = ModelSelector.insert(sourceDb, definitionModelId, \"SpatialModels\", [physicalModelId, spatialLocationModelId]);\r\n assert.isTrue(Id64.isValidId64(modelSelectorId));\r\n const spatialCategoryId = IModelTestUtils.insertSpatialCategory(sourceDb, definitionModelId, \"SpatialCategory\", ColorDef.green);\r\n assert.isTrue(Id64.isValidId64(spatialCategoryId));\r\n const sourcePhysicalCategoryId = IModelTestUtils.insertSpatialCategory(sourceDb, definitionModelId, \"SourcePhysicalCategory\", ColorDef.blue);\r\n assert.isTrue(Id64.isValidId64(sourcePhysicalCategoryId));\r\n const subCategoryId = SubCategory.insert(sourceDb, spatialCategoryId, \"SubCategory\", { color: ColorDef.blue.toJSON() });\r\n assert.isTrue(Id64.isValidId64(subCategoryId));\r\n const filteredSubCategoryId = SubCategory.insert(sourceDb, spatialCategoryId, \"FilteredSubCategory\", { color: ColorDef.green.toJSON() });\r\n assert.isTrue(Id64.isValidId64(filteredSubCategoryId));\r\n const drawingCategoryId = DrawingCategory.insert(sourceDb, definitionModelId, \"DrawingCategory\", new SubCategoryAppearance());\r\n assert.isTrue(Id64.isValidId64(drawingCategoryId));\r\n const spatialCategorySelectorId = CategorySelector.insert(sourceDb, definitionModelId, \"SpatialCategories\", [spatialCategoryId, sourcePhysicalCategoryId]);\r\n assert.isTrue(Id64.isValidId64(spatialCategorySelectorId));\r\n const drawingCategorySelectorId = CategorySelector.insert(sourceDb, definitionModelId, \"DrawingCategories\", [drawingCategoryId]);\r\n assert.isTrue(Id64.isValidId64(drawingCategorySelectorId));\r\n const auxCoordSystemProps: AuxCoordSystem2dProps = {\r\n classFullName: AuxCoordSystem2d.classFullName,\r\n model: definitionModelId,\r\n code: AuxCoordSystem2d.createCode(sourceDb, definitionModelId, \"AuxCoordSystem2d\"),\r\n };\r\n const auxCoordSystemId = sourceDb.elements.insertElement(auxCoordSystemProps);\r\n assert.isTrue(Id64.isValidId64(auxCoordSystemId));\r\n const textureId = IModelTestUtils.insertTextureElement(sourceDb, definitionModelId, \"Texture\");\r\n assert.isTrue(Id64.isValidId64(textureId));\r\n const renderMaterialId = RenderMaterialElement.insert(sourceDb, definitionModelId, \"RenderMaterial\", { paletteName: \"PaletteName\" });\r\n assert.isTrue(Id64.isValidId64(renderMaterialId));\r\n const geometryPartProps: GeometryPartProps = {\r\n classFullName: GeometryPart.classFullName,\r\n model: definitionModelId,\r\n code: GeometryPart.createCode(sourceDb, definitionModelId, \"GeometryPart\"),\r\n geom: IModelTestUtils.createBox(Point3d.create(3, 3, 3)),\r\n };\r\n const geometryPartId = sourceDb.elements.insertElement(geometryPartProps);\r\n assert.isTrue(Id64.isValidId64(geometryPartId));\r\n // Insert InformationRecords\r\n const informationRecordProps1 = {\r\n classFullName: \"ExtensiveTestScenario:SourceInformationRecord\",\r\n model: informationModelId,\r\n code: { spec: codeSpecId3, scope: informationModelId, value: \"InformationRecord1\" },\r\n commonString: \"Common1\",\r\n sourceString: \"One\",\r\n };\r\n const informationRecordId1 = sourceDb.elements.insertElement(informationRecordProps1);\r\n assert.isTrue(Id64.isValidId64(informationRecordId1));\r\n const informationRecordProps2: any = {\r\n classFullName: \"ExtensiveTestScenario:SourceInformationRecord\",\r\n model: informationModelId,\r\n code: { spec: codeSpecId3, scope: informationModelId, value: \"InformationRecord2\" },\r\n commonString: \"Common2\",\r\n sourceString: \"Two\",\r\n };\r\n const informationRecordId2 = sourceDb.elements.insertElement(informationRecordProps2);\r\n assert.isTrue(Id64.isValidId64(informationRecordId2));\r\n const informationRecordProps3 = {\r\n classFullName: \"ExtensiveTestScenario:SourceInformationRecord\",\r\n model: informationModelId,\r\n code: { spec: codeSpecId3, scope: informationModelId, value: \"InformationRecord3\" },\r\n commonString: \"Common3\",\r\n sourceString: \"Three\",\r\n };\r\n const informationRecordId3 = sourceDb.elements.insertElement(informationRecordProps3);\r\n assert.isTrue(Id64.isValidId64(informationRecordId3));\r\n // Insert PhysicalObject1\r\n const physicalObjectProps1: PhysicalElementProps = {\r\n classFullName: PhysicalObject.classFullName,\r\n model: physicalModelId,\r\n category: spatialCategoryId,\r\n code: Code.createEmpty(),\r\n userLabel: \"PhysicalObject1\",\r\n geom: IModelTestUtils.createBox(Point3d.create(1, 1, 1), spatialCategoryId, subCategoryId, renderMaterialId, geometryPartId),\r\n placement: {\r\n origin: Point3d.create(1, 1, 1),\r\n angles: YawPitchRollAngles.createDegrees(0, 0, 0),\r\n },\r\n };\r\n const physicalObjectId1 = sourceDb.elements.insertElement(physicalObjectProps1);\r\n assert.isTrue(Id64.isValidId64(physicalObjectId1));\r\n // Insert PhysicalObject1 children\r\n const childObjectProps1A: PhysicalElementProps = physicalObjectProps1;\r\n childObjectProps1A.userLabel = \"ChildObject1A\";\r\n childObjectProps1A.parent = new ElementOwnsChildElements(physicalObjectId1);\r\n childObjectProps1A.placement!.origin = Point3d.create(0, 1, 1);\r\n const childObjectId1A = sourceDb.elements.insertElement(childObjectProps1A);\r\n assert.isTrue(Id64.isValidId64(childObjectId1A));\r\n const childObjectProps1B: PhysicalElementProps = childObjectProps1A;\r\n childObjectProps1B.userLabel = \"ChildObject1B\";\r\n childObjectProps1B.placement!.origin = Point3d.create(1, 0, 1);\r\n const childObjectId1B = sourceDb.elements.insertElement(childObjectProps1B);\r\n assert.isTrue(Id64.isValidId64(childObjectId1B));\r\n // Insert PhysicalObject2\r\n const physicalObjectProps2: PhysicalElementProps = {\r\n classFullName: PhysicalObject.classFullName,\r\n model: physicalModelId,\r\n category: sourcePhysicalCategoryId,\r\n code: Code.createEmpty(),\r\n userLabel: \"PhysicalObject2\",\r\n geom: IModelTestUtils.createBox(Point3d.create(2, 2, 2)),\r\n placement: {\r\n origin: Point3d.create(2, 2, 2),\r\n angles: YawPitchRollAngles.createDegrees(0, 0, 0),\r\n },\r\n };\r\n const physicalObjectId2 = sourceDb.elements.insertElement(physicalObjectProps2);\r\n assert.isTrue(Id64.isValidId64(physicalObjectId2));\r\n // Insert PhysicalObject3\r\n const physicalObjectProps3: PhysicalElementProps = {\r\n classFullName: PhysicalObject.classFullName,\r\n model: physicalModelId,\r\n category: sourcePhysicalCategoryId,\r\n code: Code.createEmpty(),\r\n federationGuid: ExtensiveTestScenario.federationGuid3,\r\n userLabel: \"PhysicalObject3\",\r\n };\r\n const physicalObjectId3 = sourceDb.elements.insertElement(physicalObjectProps3);\r\n assert.isTrue(Id64.isValidId64(physicalObjectId3));\r\n // Insert PhysicalObject4\r\n const physicalObjectProps4: PhysicalElementProps = {\r\n classFullName: PhysicalObject.classFullName,\r\n model: physicalModelId,\r\n category: spatialCategoryId,\r\n code: Code.createEmpty(),\r\n userLabel: \"PhysicalObject4\",\r\n geom: IModelTestUtils.createBoxes([subCategoryId, filteredSubCategoryId]),\r\n placement: {\r\n origin: Point3d.create(4, 4, 4),\r\n angles: YawPitchRollAngles.createDegrees(0, 0, 0),\r\n },\r\n };\r\n const physicalObjectId4 = sourceDb.elements.insertElement(physicalObjectProps4);\r\n assert.isTrue(Id64.isValidId64(physicalObjectId4));\r\n // Insert PhysicalElement1\r\n const sourcePhysicalElementProps: PhysicalElementProps = {\r\n classFullName: \"ExtensiveTestScenario:SourcePhysicalElement\",\r\n model: physicalModelId,\r\n category: sourcePhysicalCategoryId,\r\n code: Code.createEmpty(),\r\n userLabel: \"PhysicalElement1\",\r\n geom: IModelTestUtils.createBox(Point3d.create(2, 2, 2)),\r\n placement: {\r\n origin: Point3d.create(4, 4, 4),\r\n angles: YawPitchRollAngles.createDegrees(0, 0, 0),\r\n },\r\n sourceString: \"S1\",\r\n sourceDouble: 1.1,\r\n sourceNavigation: { id: sourcePhysicalCategoryId, relClassName: \"ExtensiveTestScenario:SourcePhysicalElementUsesSourceDefinition\" },\r\n commonNavigation: { id: sourcePhysicalCategoryId },\r\n commonString: \"Common\",\r\n commonDouble: 7.3,\r\n sourceBinary: new Uint8Array([1, 3, 5, 7]),\r\n commonBinary: Base64EncodedString.fromUint8Array(new Uint8Array([2, 4, 6, 8])),\r\n extraString: \"Extra\",\r\n } as PhysicalElementProps;\r\n const sourcePhysicalElementId = sourceDb.elements.insertElement(sourcePhysicalElementProps);\r\n assert.isTrue(Id64.isValidId64(sourcePhysicalElementId));\r\n assert.doesNotThrow(() => sourceDb.elements.getElement(sourcePhysicalElementId));\r\n // Insert ElementAspects\r\n const aspectProps = {\r\n classFullName: \"ExtensiveTestScenario:SourceUniqueAspect\",\r\n element: new ElementOwnsUniqueAspect(physicalObjectId1),\r\n commonDouble: 1.1,\r\n commonString: \"Unique\",\r\n commonLong: physicalObjectId1,\r\n commonBinary: Base64EncodedString.fromUint8Array(new Uint8Array([2, 4, 6, 8])),\r\n sourceDouble: 11.1,\r\n sourceString: \"UniqueAspect\",\r\n sourceLong: physicalObjectId1,\r\n sourceGuid: ExtensiveTestScenario.uniqueAspectGuid,\r\n extraString: \"Extra\",\r\n } as const;\r\n sourceDb.elements.insertAspect(aspectProps);\r\n const sourceUniqueAspect: ElementUniqueAspect = sourceDb.elements.getAspects(physicalObjectId1, \"ExtensiveTestScenario:SourceUniqueAspect\")[0];\r\n expect(sourceUniqueAspect).to.deep.subsetEqual(omit(aspectProps, [\"commonBinary\"]), { normalizeClassNameProps: true });\r\n sourceDb.elements.insertAspect({\r\n classFullName: \"ExtensiveTestScenario:SourceMultiAspect\",\r\n element: new ElementOwnsMultiAspects(physicalObjectId1),\r\n commonDouble: 2.2,\r\n commonString: \"Multi\",\r\n commonLong: physicalObjectId1,\r\n sourceDouble: 22.2,\r\n sourceString: \"MultiAspect\",\r\n sourceLong: physicalObjectId1,\r\n sourceGuid: Guid.createValue(),\r\n extraString: \"Extra\",\r\n } as ElementAspectProps);\r\n sourceDb.elements.insertAspect({\r\n classFullName: \"ExtensiveTestScenario:SourceMultiAspect\",\r\n element: new ElementOwnsMultiAspects(physicalObjectId1),\r\n commonDouble: 3.3,\r\n commonString: \"Multi\",\r\n commonLong: physicalObjectId1,\r\n sourceDouble: 33.3,\r\n sourceString: \"MultiAspect\",\r\n sourceLong: physicalObjectId1,\r\n sourceGuid: Guid.createValue(),\r\n extraString: \"Extra\",\r\n } as ElementAspectProps);\r\n sourceDb.elements.insertAspect({\r\n classFullName: \"ExtensiveTestScenario:SourceUniqueAspectToExclude\",\r\n element: new ElementOwnsUniqueAspect(physicalObjectId1),\r\n description: \"SourceUniqueAspect1\",\r\n } as ElementAspectProps);\r\n sourceDb.elements.insertAspect({\r\n classFullName: \"ExtensiveTestScenario:SourceMultiAspectToExclude\",\r\n element: new ElementOwnsMultiAspects(physicalObjectId1),\r\n description: \"SourceMultiAspect1\",\r\n } as ElementAspectProps);\r\n // Insert DrawingGraphics\r\n const drawingGraphicProps1: GeometricElement2dProps = {\r\n classFullName: DrawingGraphic.classFullName,\r\n model: drawingId,\r\n category: drawingCategoryId,\r\n code: Code.createEmpty(),\r\n userLabel: \"DrawingGraphic1\",\r\n geom: IModelTestUtils.createRectangle(Point2d.create(1, 1)),\r\n placement: { origin: Point2d.create(2, 2), angle: 0 },\r\n };\r\n const drawingGraphicId1 = sourceDb.elements.insertElement(drawingGraphicProps1);\r\n assert.isTrue(Id64.isValidId64(drawingGraphicId1));\r\n const drawingGraphicRepresentsId1 = DrawingGraphicRepresentsElement.insert(sourceDb, drawingGraphicId1, physicalObjectId1);\r\n assert.isTrue(Id64.isValidId64(drawingGraphicRepresentsId1));\r\n const drawingGraphicProps2: GeometricElement2dProps = {\r\n classFullName: DrawingGraphic.classFullName,\r\n model: drawingId,\r\n category: drawingCategoryId,\r\n code: Code.createEmpty(),\r\n userLabel: \"DrawingGraphic2\",\r\n geom: IModelTestUtils.createRectangle(Point2d.create(1, 1)),\r\n placement: { origin: Point2d.create(3, 3), angle: 0 },\r\n };\r\n const drawingGraphicId2 = sourceDb.elements.insertElement(drawingGraphicProps2);\r\n assert.isTrue(Id64.isValidId64(drawingGraphicId2));\r\n const drawingGraphicRepresentsId2 = DrawingGraphicRepresentsElement.insert(sourceDb, drawingGraphicId2, physicalObjectId1);\r\n assert.isTrue(Id64.isValidId64(drawingGraphicRepresentsId2));\r\n // Insert DisplayStyles\r\n const displayStyle2dId = DisplayStyle2d.insert(sourceDb, definitionModelId, \"DisplayStyle2d\");\r\n assert.isTrue(Id64.isValidId64(displayStyle2dId));\r\n const displayStyle3d: DisplayStyle3d = DisplayStyle3d.create(sourceDb, definitionModelId, \"DisplayStyle3d\");\r\n const subCategoryOverride: SubCategoryOverride = SubCategoryOverride.fromJSON({ color: ColorDef.from(1, 2, 3).toJSON() });\r\n displayStyle3d.settings.overrideSubCategory(subCategoryId, subCategoryOverride);\r\n displayStyle3d.settings.addExcludedElements(physicalObjectId1);\r\n displayStyle3d.settings.setPlanProjectionSettings(spatialLocationModelId, PlanProjectionSettings.fromJSON({ elevation: 10.0 }));\r\n displayStyle3d.settings.environment = Environment.fromJSON({\r\n sky: {\r\n image: {\r\n type: SkyBoxImageType.Spherical,\r\n texture: textureId,\r\n },\r\n },\r\n });\r\n const displayStyle3dId = displayStyle3d.insert();\r\n assert.isTrue(Id64.isValidId64(displayStyle3dId));\r\n // Insert ViewDefinitions\r\n const viewId = OrthographicViewDefinition.insert(sourceDb, definitionModelId, \"Orthographic View\", modelSelectorId, spatialCategorySelectorId, displayStyle3dId, projectExtents, StandardViewIndex.Iso);\r\n assert.isTrue(Id64.isValidId64(viewId));\r\n const drawingViewRange = new Range2d(0, 0, 100, 100);\r\n const drawingViewId = DrawingViewDefinition.insert(sourceDb, definitionModelId, \"Drawing View\", drawingId, drawingCategorySelectorId, displayStyle2dId, drawingViewRange);\r\n assert.isTrue(Id64.isValidId64(drawingViewId));\r\n // Insert instance of SourceRelToExclude to test relationship exclusion by class\r\n const relationship1: Relationship = sourceDb.relationships.createInstance({\r\n classFullName: \"ExtensiveTestScenario:SourceRelToExclude\",\r\n sourceId: spatialCategorySelectorId,\r\n targetId: drawingCategorySelectorId,\r\n });\r\n const relationshipId1 = sourceDb.relationships.insertInstance(relationship1.toJSON());\r\n assert.isTrue(Id64.isValidId64(relationshipId1));\r\n // Insert instance of RelWithProps to test relationship property remapping\r\n const relationship2: Relationship = sourceDb.relationships.createInstance({\r\n classFullName: \"ExtensiveTestScenario:SourceRelWithProps\",\r\n sourceId: spatialCategorySelectorId,\r\n targetId: drawingCategorySelectorId,\r\n sourceString: \"One\",\r\n sourceDouble: 1.1,\r\n sourceLong: spatialCategoryId,\r\n sourceGuid: Guid.createValue(),\r\n } as any);\r\n const relationshipId2 = sourceDb.relationships.insertInstance(relationship2.toJSON());\r\n assert.isTrue(Id64.isValidId64(relationshipId2));\r\n }\r\n\r\n public static updateDb(sourceDb: IModelDb): void {\r\n // Update Subject element\r\n const subjectId = sourceDb.elements.queryElementIdByCode(Subject.createCode(sourceDb, IModel.rootSubjectId, \"Subject\"))!;\r\n assert.isTrue(Id64.isValidId64(subjectId));\r\n const subject = sourceDb.elements.getElement<Subject>(subjectId);\r\n subject.description = \"Subject description (Updated)\";\r\n sourceDb.elements.updateElement(subject.toJSON());\r\n // Update spatialCategory element\r\n const definitionModelId = sourceDb.elements.queryElementIdByCode(InformationPartitionElement.createCode(sourceDb, subjectId, \"Definition\"))!;\r\n assert.isTrue(Id64.isValidId64(definitionModelId));\r\n const spatialCategoryId = sourceDb.elements.queryElementIdByCode(SpatialCategory.createCode(sourceDb, definitionModelId, \"SpatialCategory\"))!;\r\n assert.isTrue(Id64.isValidId64(spatialCategoryId));\r\n const spatialCategory: SpatialCategory = sourceDb.elements.getElement<SpatialCategory>(spatialCategoryId);\r\n spatialCategory.federationGuid = Guid.createValue();\r\n sourceDb.elements.updateElement(spatialCategory.toJSON());\r\n // Update relationship properties\r\n const spatialCategorySelectorId = sourceDb.elements.queryElementIdByCode(CategorySelector.createCode(sourceDb, definitionModelId, \"SpatialCategories\"))!;\r\n assert.isTrue(Id64.isValidId64(spatialCategorySelectorId));\r\n const drawingCategorySelectorId = sourceDb.elements.queryElementIdByCode(CategorySelector.createCode(sourceDb, definitionModelId, \"DrawingCategories\"))!;\r\n assert.isTrue(Id64.isValidId64(drawingCategorySelectorId));\r\n const relWithProps: any = sourceDb.relationships.getInstanceProps(\r\n \"ExtensiveTestScenario:SourceRelWithProps\",\r\n { sourceId: spatialCategorySelectorId, targetId: drawingCategorySelectorId },\r\n );\r\n assert.equal(relWithProps.sourceString, \"One\");\r\n assert.equal(relWithProps.sourceDouble, 1.1);\r\n relWithProps.sourceString += \"-Updated\";\r\n relWithProps.sourceDouble = 1.2;\r\n sourceDb.relationships.updateInstance(relWithProps);\r\n // Update ElementAspect properties\r\n const physicalObjectId1 = IModelTestUtils.queryByUserLabel(sourceDb, \"PhysicalObject1\");\r\n const sourceUniqueAspects: ElementAspect[] = sourceDb.elements.getAspects(physicalObjectId1, \"ExtensiveTestScenario:SourceUniqueAspect\");\r\n assert.equal(sourceUniqueAspects.length, 1);\r\n sourceUniqueAspects[0].asAny.commonString += \"-Updated\";\r\n sourceUniqueAspects[0].asAny.sourceString += \"-Updated\";\r\n sourceDb.elements.updateAspect(sourceUniqueAspects[0].toJSON());\r\n const sourceMultiAspects: ElementAspect[] = sourceDb.elements.getAspects(physicalObjectId1, \"ExtensiveTestScenario:SourceMultiAspect\");\r\n assert.equal(sourceMultiAspects.length, 2);\r\n sourceMultiAspects[1].asAny.commonString += \"-Updated\";\r\n sourceMultiAspects[1].asAny.sourceString += \"-Updated\";\r\n sourceDb.elements.updateAspect(sourceMultiAspects[1].toJSON());\r\n // clear NavigationProperty of PhysicalElement1\r\n const physicalElementId1 = IModelTestUtils.queryByUserLabel(sourceDb, \"PhysicalElement1\");\r\n let physicalElement1: PhysicalElement = sourceDb.elements.getElement(physicalElementId1);\r\n physicalElement1.asAny.commonNavigation = RelatedElement.none;\r\n physicalElement1.update();\r\n physicalElement1 = sourceDb.elements.getElement(physicalElementId1);\r\n assert.isUndefined(physicalElement1.asAny.commonNavigation);\r\n // delete PhysicalObject3\r\n const physicalObjectId3 = IModelTestUtils.queryByUserLabel(sourceDb, \"PhysicalObject3\");\r\n assert.isTrue(Id64.isValidId64(physicalObjectId3));\r\n sourceDb.elements.deleteElement(physicalObjectId3);\r\n assert.equal(Id64.invalid, IModelTestUtils.queryByUserLabel(sourceDb, \"PhysicalObject3\"));\r\n // Insert PhysicalObject5\r\n const physicalObjectProps5: PhysicalElementProps = {\r\n classFullName: PhysicalObject.classFullName,\r\n model: physicalElement1.model,\r\n category: spatialCategoryId,\r\n code: Code.createEmpty(),\r\n userLabel: \"PhysicalObject5\",\r\n geom: IModelTestUtils.createBox(Point3d.create(1, 1, 1)),\r\n placement: {\r\n origin: Point3d.create(5, 5, 5),\r\n angles: YawPitchRollAngles.createDegrees(0, 0, 0),\r\n },\r\n };\r\n const physicalObjectId5 = sourceDb.elements.insertElement(physicalObjectProps5);\r\n assert.isTrue(Id64.isValidId64(physicalObjectId5));\r\n // delete relationship\r\n const drawingGraphicId1 = IModelTestUtils.queryByUserLabel(sourceDb, \"DrawingGraphic1\");\r\n const drawingGraphicId2 = IModelTestUtils.queryByUserLabel(sourceDb, \"DrawingGraphic2\");\r\n const relationship: Relationship = sourceDb.relationships.getInstance(DrawingGraphicRepresentsElement.classFullName, { sourceId: drawingGraphicId2, targetId: physicalObjectId1 });\r\n relationship.delete();\r\n // insert relationships\r\n DrawingGraphicRepresentsElement.insert(sourceDb, drawingGraphicId1, physicalObjectId5);\r\n DrawingGraphicRepresentsElement.insert(sourceDb, drawingGraphicId2, physicalObjectId5);\r\n // update InformationRecord2\r\n const informationRecordCodeSpec: CodeSpec = sourceDb.codeSpecs.getByName(\"InformationRecords\");\r\n const informationModelId = sourceDb.elements.queryElementIdByCode(InformationPartitionElement.createCode(sourceDb, subjectId, \"Information\"))!;\r\n const informationRecodeCode2: Code = new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: \"InformationRecord2\" });\r\n const informationRecordId2 = sourceDb.elements.queryElementIdByCode(informationRecodeCode2)!;\r\n assert.isTrue(Id64.isValidId64(informationRecordId2));\r\n const informationRecord2: any = sourceDb.elements.getElement(informationRecordId2);\r\n informationRecord2.commonString = `${informationRecord2.commonString}-Updated`;\r\n informationRecord2.sourceString = `${informationRecord2.sourceString}-Updated`;\r\n informationRecord2.update();\r\n // delete InformationRecord3\r\n const informationRecodeCode3: Code = new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: \"InformationRecord3\" });\r\n const informationRecordId3 = sourceDb.elements.queryElementIdByCode(informationRecodeCode3)!;\r\n assert.isTrue(Id64.isValidId64(informationRecordId3));\r\n sourceDb.elements.deleteElement(informationRecordId3);\r\n }\r\n\r\n public static assertUpdatesInDb(iModelDb: IModelDb, assertDeletes: boolean = true): void {\r\n // determine which schema was imported\r\n const testSourceSchema = iModelDb.querySchemaVersion(\"ExtensiveTestScenario\") ? true : false;\r\n const testTargetSchema = iModelDb.querySchemaVersion(\"ExtensiveTestScenarioTarget\") ? true : false;\r\n assert.notEqual(testSourceSchema, testTargetSchema);\r\n // assert Subject was updated\r\n const subjectId = iModelDb.elements.queryElementIdByCode(Subject.createCode(iModelDb, IModel.rootSubjectId, \"Subject\"))!;\r\n assert.isTrue(Id64.isValidId64(subjectId));\r\n const subject: Subject = iModelDb.elements.getElement<Subject>(subjectId);\r\n assert.equal(subject.description, \"Subject description (Updated)\");\r\n // assert SpatialCategory was updated\r\n const definitionModelId = iModelDb.elements.queryElementIdByCode(InformationPartitionElement.createCode(iModelDb, subjectId, \"Definition\"))!;\r\n assert.isTrue(Id64.isValidId64(definitionModelId));\r\n const spatialCategoryId = iModelDb.elements.queryElementIdByCode(SpatialCategory.createCode(iModelDb, definitionModelId, \"SpatialCategory\"))!;\r\n assert.isTrue(Id64.isValidId64(spatialCategoryId));\r\n const spatialCategory: SpatialCategory = iModelDb.elements.getElement<SpatialCategory>(spatialCategoryId);\r\n assert.exists(spatialCategory.federationGuid);\r\n // assert TargetRelWithProps was updated\r\n const spatialCategorySelectorId = iModelDb.elements.queryElementIdByCode(CategorySelector.createCode(iModelDb, definitionModelId, \"SpatialCategories\"))!;\r\n assert.isTrue(Id64.isValidId64(spatialCategorySelectorId));\r\n const drawingCategorySelectorId = iModelDb.elements.queryElementIdByCode(CategorySelector.createCode(iModelDb, definitionModelId, \"DrawingCategories\"))!;\r\n assert.isTrue(Id64.isValidId64(drawingCategorySelectorId));\r\n const relClassFullName = testTargetSchema ? \"ExtensiveTestScenarioTarget:TargetRelWithProps\" : \"ExtensiveTestScenario:SourceRelWithProps\";\r\n const relWithProps: any = iModelDb.relationships.getInstanceProps(\r\n relClassFullName,\r\n { sourceId: spatialCategorySelectorId, targetId: drawingCategorySelectorId },\r\n );\r\n assert.equal(testTargetSchema ? relWithProps.targetString : relWithProps.sourceString, \"One-Updated\");\r\n assert.equal(testTargetSchema ? relWithProps.targetDouble : relWithProps.sourceDouble, 1.2);\r\n // assert ElementAspect properties\r\n const physicalObjectId1 = IModelTestUtils.queryByUserLabel(iModelDb, \"PhysicalObject1\");\r\n const uniqueAspectClassFullName = testTargetSchema ? \"ExtensiveTestScenarioTarget:TargetUniqueAspect\" : \"ExtensiveTestScenario:SourceUniqueAspect\";\r\n const uniqueAspects: ElementAspect[] = iModelDb.elements.getAspects(physicalObjectId1, uniqueAspectClassFullName);\r\n assert.equal(uniqueAspects.length, 1);\r\n const uniqueAspect = uniqueAspects[0].asAny;\r\n expect(uniqueAspect).to.deep.subsetEqual({\r\n commonDouble: 1.1,\r\n commonString: \"Unique-Updated\",\r\n commonLong: physicalObjectId1,\r\n });\r\n if (testTargetSchema) {\r\n expect(uniqueAspect).to.deep.subsetEqual({\r\n targetDouble: 11.1,\r\n targetString: \"UniqueAspect-Updated\",\r\n targetLong: physicalObjectId1,\r\n });\r\n } else {\r\n expect(uniqueAspect).to.deep.subsetEqual({\r\n sourceDouble: 11.1,\r\n sourceString: \"UniqueAspect-Updated\",\r\n sourceLong: physicalObjectId1,\r\n });\r\n }\r\n const multiAspectClassFullName = testTargetSchema ? \"ExtensiveTestScenarioTarget:TargetMultiAspect\" : \"ExtensiveTestScenario:SourceMultiAspect\";\r\n const multiAspects: ElementAspect[] = iModelDb.elements.getAspects(physicalObjectId1, multiAspectClassFullName);\r\n assert.equal(multiAspects.length, 2);\r\n const multiAspect0 = multiAspects[0].asAny;\r\n const multiAspect1 = multiAspects[1].asAny;\r\n assert.equal(multiAspect0.commonDouble, 2.2);\r\n assert.equal(multiAspect0.commonString, \"Multi\");\r\n assert.equal(multiAspect0.commonLong, physicalObjectId1);\r\n assert.equal(testTargetSchema ? multiAspect0.targetDouble : multiAspect0.sourceDouble, 22.2);\r\n assert.equal(testTargetSchema ? multiAspect0.targetString : multiAspect0.sourceString, \"MultiAspect\");\r\n assert.equal(testTargetSchema ? multiAspect0.targetLong : multiAspect0.sourceLong, physicalObjectId1);\r\n assert.equal(multiAspect1.commonDouble, 3.3);\r\n assert.equal(multiAspect1.commonString, \"Multi-Updated\");\r\n assert.equal(multiAspect1.commonLong, physicalObjectId1);\r\n assert.equal(testTargetSchema ? multiAspect1.targetDouble : multiAspect1.sourceDouble, 33.3);\r\n assert.equal(testTargetSchema ? multiAspect1.targetString : multiAspect1.sourceString, \"MultiAspect-Updated\");\r\n assert.equal(testTargetSchema ? multiAspect1.targetLong : multiAspect1.sourceLong, physicalObjectId1);\r\n // assert NavigationProperty of PhysicalElement1 was cleared\r\n const physicalElementId = IModelTestUtils.queryByUserLabel(iModelDb, \"PhysicalElement1\");\r\n const physicalElement: PhysicalElement = iModelDb.elements.getElement(physicalElementId);\r\n assert.isUndefined(physicalElement.asAny.commonNavigation);\r\n // assert PhysicalObject5 was inserted\r\n const physicalObjectId5 = IModelTestUtils.queryByUserLabel(iModelDb, \"PhysicalObject5\");\r\n assert.isTrue(Id64.isValidId64(physicalObjectId5));\r\n // assert relationships were inserted\r\n const drawingGraphicId1 = IModelTestUtils.queryByUserLabel(iModelDb, \"DrawingGraphic1\");\r\n const drawingGraphicId2 = IModelTestUtils.queryByUserLabel(iModelDb, \"DrawingGraphic2\");\r\n iModelDb.relationships.getInstance(DrawingGraphicRepresentsElement.classFullName, { sourceId: drawingGraphicId1, targetId: physicalObjectId5 });\r\n iModelDb.relationships.getInstance(DrawingGraphicRepresentsElement.classFullName, { sourceId: drawingGraphicId2, targetId: physicalObjectId5 });\r\n // assert InformationRecord2 was updated\r\n const informationRecordCodeSpec: CodeSpec = iModelDb.codeSpecs.getByName(\"InformationRecords\");\r\n const informationModelId = iModelDb.elements.queryElementIdByCode(InformationPartitionElement.createCode(iModelDb, subjectId, \"Information\"))!;\r\n const informationRecordId2 = iModelDb.elements.queryElementIdByCode(new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: \"InformationRecord2\" }));\r\n assert.isTrue(Id64.isValidId64(informationRecordId2!));\r\n const informationRecord2: any = iModelDb.elements.getElement(informationRecordId2!);\r\n assert.equal(informationRecord2.commonString, \"Common2-Updated\");\r\n assert.equal(testTargetSchema ? informationRecord2.targetString : informationRecord2.sourceString, \"Two-Updated\");\r\n // assert InformationRecord3 was deleted\r\n assert.isDefined(iModelDb.elements.queryElementIdByCode(new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: \"InformationRecord1\" })));\r\n assert.isDefined(iModelDb.elements.queryElementIdByCode(new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: \"InformationRecord2\" })));\r\n // detect deletes if possible - cannot detect during processAll when isReverseSynchronization is true\r\n if (assertDeletes) {\r\n assert.equal(Id64.invalid, IModelTestUtils.queryByUserLabel(iModelDb, \"PhysicalObject3\"));\r\n assert.throws(() => iModelDb.relationships.getInstanceProps(DrawingGraphicRepresentsElement.classFullName, { sourceId: drawingGraphicId2, targetId: physicalObjectId1 }));\r\n assert.isUndefined(iModelDb.elements.queryElementIdByCode(new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: \"InformationRecord3\" })));\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"IModelTestUtils.js","sourceRoot":"","sources":["../../../src/test/IModelTestUtils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ImageSourceConversion.test.js","sourceRoot":"","sources":["../../../src/test/ImageSourceConversion.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { expect } from \"chai\";\r\nimport { imageBufferFromImageSource, imageSourceFromImageBuffer } from \"../ImageSourceConversion\";\r\nimport { samplePngTexture } from \"./imageData\";\r\nimport { BinaryImageSource, ImageBuffer, ImageBufferFormat, ImageSourceFormat } from \"@itwin/core-common\";\r\n\r\n// samplePngTexture encodes this image:\r\n// White Red Red\r\n// Red Blue Red\r\n// Red Red Green\r\nconst red = 0x000000ff;\r\nconst green = 0x0000ff00;\r\nconst blue = 0x00ff0000;\r\nconst white = 0x00ffffff;\r\nconst top = [white, red, red];\r\nconst middle = [red, blue, red];\r\nconst bottom = [red, red, green];\r\n\r\nconst samplePng: BinaryImageSource = {\r\n data: new Uint8Array(samplePngTexture.data),\r\n format: ImageSourceFormat.Png,\r\n};\r\n\r\nfunction getPixel(img: ImageBuffer, x: number, y: number): number {\r\n const pixelSize = img.numBytesPerPixel;\r\n const start = y * pixelSize * img.width + x * pixelSize;\r\n let pixel = 0;\r\n for (let offset = 0; offset < pixelSize; offset++) {\r\n let val = img.data[start + offset];\r\n val = (val << (offset * 8)) >>> 0;\r\n pixel = (pixel | val) >>> 0;\r\n }\r\n\r\n return pixel;\r\n}\r\n\r\nfunction expectImagePixels(img: ImageBuffer, expected: number[]): void {\r\n expect(img.width * img.height).to.equal(expected.length);\r\n const actual = [];\r\n for (let y = 0; y < img.height; y++) {\r\n for (let x = 0; x < img.width; x++) {\r\n actual.push(getPixel(img, x, y));\r\n }\r\n }\r\n\r\n expect(actual).to.deep.equal(expected);\r\n}\r\n\r\n// Make an ImageBuffer as\r\n// White Red Red\r\n// Red Blue Red\r\n// Red Red Green\r\n// If an alpha channel is requested, alpha will be 0x7f\r\nfunction makeImage(wantAlpha: boolean): ImageBuffer {\r\n const format = wantAlpha ? ImageBufferFormat.Rgba : ImageBufferFormat.Rgb;\r\n const pixelSize = wantAlpha ? 4 : 3;\r\n const data = new Uint8Array(pixelSize * 9);\r\n const lut = [white, red, red, red, blue, red, red, red, green];\r\n for (let i = 0; i < 9; i++) {\r\n const value = lut[i];\r\n const s = i * pixelSize;\r\n data[s + 0] = value & 0xff;\r\n data[s + 1] = (value >> 8) & 0xff;\r\n data[s + 2] = (value >> 16) & 0xff;\r\n if (wantAlpha) {\r\n data[s + 3] = 0x7f;\r\n }\r\n }\r\n\r\n const img = ImageBuffer.create(data, format, 3);\r\n return img;\r\n}\r\n\r\nfunction expectEqualImageBuffers(a: ImageBuffer, b: ImageBuffer, pixelTolerance = 0): void {\r\n expect(a.format).to.equal(b.format);\r\n expect(a.width).to.equal(b.width);\r\n expect(a.height).to.equal(b.height);\r\n expect(a.data.length).to.equal(b.data.length);\r\n for (let i = 0; i < a.data.length; i++) {\r\n const x = a.data[i];\r\n const y = b.data[i];\r\n expect(Math.abs(x - y)).most(pixelTolerance);\r\n }\r\n}\r\n\r\nfunction computeMaxCompressionError(compressed: ImageBuffer, original: ImageBuffer): number {\r\n expect(compressed.data.length).to.equal(original.data.length);\r\n let max = 0;\r\n for (let i = 0; i < compressed.data.length; i++) {\r\n max = Math.max(max, Math.abs(compressed.data[i] - original.data[i]));\r\n }\r\n\r\n return max;\r\n}\r\n\r\ndescribe(\"ImageSource conversion\", () => {\r\n describe(\"imageBufferFromImageSource\", () => {\r\n it(\"decodes PNG\", () => {\r\n const buf = imageBufferFromImageSource({ source: samplePng })!;\r\n expect(buf).not.to.be.undefined;\r\n expect(buf.width).to.equal(3);\r\n expect(buf.height).to.equal(3);\r\n expect(buf.format).to.equal(ImageBufferFormat.Rgb);\r\n expectImagePixels(buf, [...top, ...middle, ...bottom]);\r\n });\r\n\r\n it(\"preserves alpha channel if RGBA requested\", () => {\r\n const image = makeImage(true);\r\n const source = imageSourceFromImageBuffer({ image })!;\r\n const result = imageBufferFromImageSource({ source, targetFormat: ImageBufferFormat.Rgba })!;\r\n expect(result.format).to.equal(ImageBufferFormat.Rgba);\r\n expectImagePixels(result, [...top, ...middle, ...bottom].map((x) => (x | 0x7f000000) >>> 0));\r\n });\r\n\r\n it(\"strips alpha channel if RGB requested\", () => {\r\n const image = makeImage(true);\r\n const source = imageSourceFromImageBuffer({ image })!;\r\n const result = imageBufferFromImageSource({ source, targetFormat: ImageBufferFormat.Rgb })!;\r\n expect(result.format).to.equal(ImageBufferFormat.Rgb);\r\n expectImagePixels(result, [...top, ...middle, ...bottom]);\r\n });\r\n\r\n it(\"sets alpha to 255 if RGBA requested for ImageSource lacking transparency\", () => {\r\n const img = imageBufferFromImageSource({ source: samplePng, targetFormat: ImageBufferFormat.Rgba })!;\r\n expect(img.format).to.equal(ImageBufferFormat.Rgba);\r\n expectImagePixels(img, [...top, ...middle, ...bottom].map((x) => ((x | 0xff000000) >>> 0)));\r\n });\r\n \r\n it(\"defaults to RGBA IFF alpha channel is present\", () => {\r\n const transparent = imageSourceFromImageBuffer({ image: makeImage(true), targetFormat: ImageSourceFormat.Png })!;\r\n expect(imageBufferFromImageSource({ source: transparent })!.format).to.equal(ImageBufferFormat.Rgba);\r\n const opaque = imageSourceFromImageBuffer({ image: makeImage(false), targetFormat: ImageSourceFormat.Png })!;\r\n expect(imageBufferFromImageSource({ source: opaque })!.format).to.equal(ImageBufferFormat.Rgb);\r\n });\r\n });\r\n\r\n describe(\"imageSourceFromImageBuffer\", () => {\r\n it(\"encodes to specified format\", () => {\r\n const image = makeImage(false);\r\n const png = imageSourceFromImageBuffer({ image, targetFormat: ImageSourceFormat.Png })!;\r\n expect(png.format).to.equal(ImageSourceFormat.Png);\r\n const jpeg = imageSourceFromImageBuffer({ image, targetFormat: ImageSourceFormat.Jpeg })!;\r\n expect(jpeg.format).to.equal(ImageSourceFormat.Jpeg);\r\n\r\n // PNG is lossless\r\n expectEqualImageBuffers(imageBufferFromImageSource({ source: png })!, image);\r\n\r\n // JPEG is lossy\r\n expectEqualImageBuffers(imageBufferFromImageSource({ source: jpeg })!, image, 2);\r\n });\r\n\r\n it(\"defaults to PNG IFF alpha channel is present\", () => {\r\n const transparent = makeImage(true);\r\n expect(imageSourceFromImageBuffer({ image: transparent })!.format).to.equal(ImageSourceFormat.Png);\r\n\r\n const opaque = makeImage(false);\r\n expect(imageSourceFromImageBuffer({ image: opaque })!.format).to.equal(ImageSourceFormat.Jpeg);\r\n });\r\n\r\n it(\"flips vertically IFF specified\", () => {\r\n const image = makeImage(false);\r\n let source = imageSourceFromImageBuffer({ image, targetFormat: ImageSourceFormat.Png })!;\r\n let output = imageBufferFromImageSource({ source })!;\r\n expectImagePixels(output, [...top, ...middle, ...bottom ]);\r\n\r\n source = imageSourceFromImageBuffer({ image, targetFormat: ImageSourceFormat.Png, flipVertically: true })!;\r\n output = imageBufferFromImageSource({ source })!;\r\n expectImagePixels(output, [...bottom, ...middle, ...top ]);\r\n });\r\n\r\n it(\"trades quality for size when encoding JPEG\", () => {\r\n const image = makeImage(false);\r\n const low = imageSourceFromImageBuffer({ image, targetFormat: ImageSourceFormat.Jpeg, jpegQuality: 50 })!;\r\n const medium = imageSourceFromImageBuffer({ image, targetFormat: ImageSourceFormat.Jpeg, jpegQuality: 75 })!;\r\n const high = imageSourceFromImageBuffer({ image, targetFormat: ImageSourceFormat.Jpeg, jpegQuality: 100 })!;\r\n expect(low.data.length).lessThan(medium.data.length);\r\n expect(medium.data.length).lessThan(high.data.length);\r\n\r\n const highImg = imageBufferFromImageSource({ source: high })!;\r\n const lowImg = imageBufferFromImageSource({ source: low })!;\r\n const mediumImg = imageBufferFromImageSource({ source: medium })!;\r\n\r\n expect(computeMaxCompressionError(highImg, image)).to.equal(2);\r\n const mediumError = computeMaxCompressionError(mediumImg, image);\r\n expect(mediumError).greaterThan(2);\r\n expect(computeMaxCompressionError(lowImg, image)).greaterThan(mediumError);\r\n });\r\n\r\n it(\"throws if image is in alpha format\", () => {\r\n const image = ImageBuffer.create(new Uint8Array([1, 2, 3, 4, 5]), ImageBufferFormat.Alpha, 5);\r\n expect(() => imageSourceFromImageBuffer({ image })).to.throw(\"imageSourceFromImageBuffer cannot be used with alpha-only images\");\r\n });\r\n });\r\n});\r\n\r\n"]}
1
+ {"version":3,"file":"ImageSourceConversion.test.js","sourceRoot":"","sources":["../../../src/test/ImageSourceConversion.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IpcHost.test.js","sourceRoot":"","sources":["../../../src/test/IpcHost.test.ts"],"names":[],"mappings":"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","sourcesContent":["import * as sinon from \"sinon\";\r\nimport { expect } from \"chai\";\r\nimport { IpcInvokeReturn, IpcSocketBackend } from \"@itwin/core-common\";\r\nimport { IpcHandler, IpcHost } from \"../IpcHost\";\r\n\r\ninterface MockIpcInterface {\r\n mockMethod: () => string;\r\n}\r\n\r\nclass MockIpcHandler extends IpcHandler implements MockIpcInterface {\r\n public override get channelName() { return \"mock-channel\"; }\r\n\r\n public mockMethod(): string {\r\n return \"mock-value\";\r\n }\r\n\r\n #privateFunction(): void { }\r\n}\r\n\r\ndescribe(\"IpcHost\", () => {\r\n let socket: sinon.SinonStubbedInstance<IpcSocketBackend>;\r\n\r\n beforeEach(async () => {\r\n socket = {\r\n send: sinon.stub(),\r\n addListener: sinon.stub(),\r\n removeListener: sinon.stub(),\r\n handle: sinon.stub(),\r\n };\r\n\r\n await IpcHost.startup({ ipcHost: { socket } });\r\n });\r\n\r\n describe(\"IpcHandler\", () => {\r\n it(\"should call public methods\", async () => {\r\n MockIpcHandler.register();\r\n\r\n const handleCall = socket.handle.getCalls().find((call) => call.args[0] === \"itwin.mock-channel\")!;\r\n expect(handleCall).to.not.be.undefined;\r\n\r\n const handler = handleCall.args[1];\r\n expect(typeof handler).to.equal(\"function\");\r\n\r\n const ipcReturn: IpcInvokeReturn = await handler(undefined, \"mockMethod\");\r\n\r\n expect(ipcReturn.result).to.equal(\"mock-value\");\r\n expect(ipcReturn.error).to.be.undefined;\r\n });\r\n\r\n it(\"should not call private methods\", async () => {\r\n MockIpcHandler.register();\r\n\r\n const handleCall = socket.handle.getCalls().find((call) => call.args[0] === \"itwin.mock-channel\")!;\r\n expect(handleCall).to.not.be.undefined;\r\n\r\n const handler = handleCall.args[1];\r\n expect(typeof handler).to.equal(\"function\");\r\n\r\n const ipcReturn: IpcInvokeReturn = await handler(undefined, \"#privateFunction\");\r\n\r\n expect(ipcReturn.result).to.be.undefined;\r\n expect(ipcReturn.error).to.not.be.undefined;\r\n });\r\n\r\n it(\"should not call methods inherited from Object\", async () => {\r\n MockIpcHandler.register();\r\n\r\n const handleCall = socket.handle.getCalls().find((call) => call.args[0] === \"itwin.mock-channel\")!;\r\n expect(handleCall).to.not.be.undefined;\r\n\r\n const handler = handleCall.args[1];\r\n expect(typeof handler).to.equal(\"function\");\r\n\r\n const ipcReturn: IpcInvokeReturn = await handler(undefined, \"toString\");\r\n\r\n expect(ipcReturn.result).to.be.undefined;\r\n expect(ipcReturn.error).to.not.be.undefined;\r\n });\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"IpcHost.test.js","sourceRoot":"","sources":["../../../src/test/IpcHost.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"KnownTestLocations.js","sourceRoot":"","sources":["../../../src/test/KnownTestLocations.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,OAAO,kBAAkB;IAE7B,6GAA6G;IACtG,MAAM,KAAK,SAAS;QACzB,IAAI,eAAe,CAAC,kBAAkB,EAAE,CAAC;YACvC,6FAA6F;YAC7F,uCAAuC;YACvC,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,2CAA2C;IACpC,MAAM,KAAK,SAAS;QACzB,IAAI,eAAe,CAAC,kBAAkB,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,uCAAuC;QACvC,OAAO,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { join } from \"path\";\r\nimport { tmpdir } from \"os\";\r\nimport { ProcessDetector } from \"@itwin/core-bentley\";\r\n\r\nexport class KnownTestLocations {\r\n\r\n /** The directory where test assets are stored. Keep in mind that the test is playing the role of the app. */\r\n public static get assetsDir(): string {\r\n if (ProcessDetector.isMobileAppBackend) {\r\n // Note: this relies on the native test runner copying its assets out of its app wrapper into\r\n // its tmpdir before running the tests.\r\n return join(tmpdir(), \"assets\");\r\n }\r\n\r\n return join(__dirname, \"assets\");\r\n }\r\n\r\n /** The directory where tests can write. */\r\n public static get outputDir(): string {\r\n if (ProcessDetector.isMobileAppBackend) {\r\n return join(tmpdir(), \"output\");\r\n }\r\n\r\n // Assume that we are running in nodejs\r\n return join(__dirname, \"output\");\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"KnownTestLocations.js","sourceRoot":"","sources":["../../../src/test/KnownTestLocations.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,OAAO,kBAAkB;IAE7B,6GAA6G;IACtG,MAAM,KAAK,SAAS;QACzB,IAAI,eAAe,CAAC,kBAAkB,EAAE,CAAC;YACvC,6FAA6F;YAC7F,uCAAuC;YACvC,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,2CAA2C;IACpC,MAAM,KAAK,SAAS;QACzB,IAAI,eAAe,CAAC,kBAAkB,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,uCAAuC;QACvC,OAAO,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"PrintElementTree.js","sourceRoot":"","sources":["../../../src/test/PrintElementTree.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,OAAO,EAAE,QAAQ,EAAc,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGnE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,UAAU,UAAU,CAAC,MAAgB,EAAE,SAAqB;IAChE,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACjD,OAAO,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAY;IACnC,OAAO,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,cAAsB,EAAE,IAAqB,EAAE,MAAgB,EAAE,SAAqB,EAAE,MAAc;IACrI,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACjG,OAAO;IACT,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEpB,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IAE1F,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7D,gBAAgB,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAQ,SAAS,CAAC,CAAC;IAC7D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC1F,4DAA4D;QAC5D,MAAM,CAAC,qBAAqB,CAAC,4BAA4B,OAAO,CAAC,aAAa,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE;YAC5G,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAC9C,gBAAgB,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;YACvF,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { DbResult, Id64String, Logger } from \"@itwin/core-bentley\";\r\nimport { IModelDb } from \"../IModelDb\";\r\nimport { Model } from \"../Model\";\r\nimport { Element } from \"../Element\";\r\n\r\nexport function fmtElement(iModel: IModelDb, elementId: Id64String): string {\r\n const el = iModel.elements.getElement(elementId);\r\n return `${el.id} ${el.classFullName} ${el.getDisplayLabel()}`;\r\n}\r\n\r\nexport function fmtModel(model: Model): string {\r\n return `${model.id} ${model.classFullName} ${model.name}`;\r\n}\r\n\r\nexport function printElementTree(loggerCategory: string, seen: Set<Id64String>, iModel: IModelDb, elementId: Id64String, indent: number) {\r\n if (seen.has(elementId)) {\r\n Logger.logTrace(loggerCategory, `${\"\\t\".repeat(indent)}${fmtElement(iModel, elementId)} (SEEN)`);\r\n return;\r\n }\r\n\r\n seen.add(elementId);\r\n\r\n Logger.logTrace(loggerCategory, `${\"\\t\".repeat(indent)}${fmtElement(iModel, elementId)}`);\r\n\r\n for (const child of iModel.elements.queryChildren(elementId)) {\r\n printElementTree(loggerCategory, seen, iModel, child, indent + 1);\r\n }\r\n\r\n const subModel = iModel.models.tryGetModel<Model>(elementId);\r\n if (subModel !== undefined) {\r\n Logger.logTrace(loggerCategory, `${\"\\t\".repeat(indent)} subModel ${fmtModel(subModel)}:`);\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n iModel.withPreparedStatement(`select ecinstanceid from ${Element.classFullName} where Model.Id = ?`, (stmt) => {\r\n stmt.bindId(1, subModel.id);\r\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\r\n printElementTree(loggerCategory, seen, iModel, stmt.getValue(0).getId(), indent + 1);\r\n }\r\n });\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PrintElementTree.js","sourceRoot":"","sources":["../../../src/test/PrintElementTree.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,OAAO,EAAE,QAAQ,EAAc,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGnE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,UAAU,UAAU,CAAC,MAAgB,EAAE,SAAqB;IAChE,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACjD,OAAO,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAY;IACnC,OAAO,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,cAAsB,EAAE,IAAqB,EAAE,MAAgB,EAAE,SAAqB,EAAE,MAAc;IACrI,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACjG,OAAO;IACT,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEpB,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IAE1F,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7D,gBAAgB,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAQ,SAAS,CAAC,CAAC;IAC7D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC1F,4DAA4D;QAC5D,MAAM,CAAC,qBAAqB,CAAC,4BAA4B,OAAO,CAAC,aAAa,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE;YAC5G,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAC9C,gBAAgB,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;YACvF,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}