@openmrs/esm-framework 6.3.1-pre.3104 → 6.3.1-pre.3106

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 (542) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/openmrs-esm-framework.js +2 -2
  3. package/dist/openmrs-esm-framework.js.map +1 -1
  4. package/docs/.nojekyll +1 -0
  5. package/docs/API.md +8579 -310
  6. package/docs/classes/OpenmrsFetchError.md +117 -88
  7. package/docs/enums/Type.md +107 -0
  8. package/docs/enums/VisitMode.md +41 -0
  9. package/docs/enums/VisitStatus.md +30 -0
  10. package/docs/interfaces/ActionMenuButtonProps.md +57 -33
  11. package/docs/interfaces/ActionableNotificationDescriptor.md +67 -37
  12. package/docs/interfaces/AssignedExtension.md +57 -30
  13. package/docs/interfaces/Attachment.md +47 -23
  14. package/docs/interfaces/AttachmentResponse.md +41 -20
  15. package/docs/interfaces/AuditInfo.md +88 -49
  16. package/docs/interfaces/BreadcrumbRegistration.md +17 -8
  17. package/docs/interfaces/BreadcrumbSettings.md +33 -18
  18. package/docs/interfaces/CancelLoading.md +10 -6
  19. package/docs/interfaces/ClearDynamicRoutesMessage.md +17 -9
  20. package/docs/interfaces/CloseWorkspaceOptions.md +29 -18
  21. package/docs/interfaces/ComponentConfig.md +23 -11
  22. package/docs/interfaces/Concept.md +131 -83
  23. package/docs/interfaces/ConceptClass.md +67 -46
  24. package/docs/interfaces/ConceptDatatype.md +74 -50
  25. package/docs/interfaces/ConceptName.md +74 -50
  26. package/docs/interfaces/Config.md +2 -4
  27. package/docs/interfaces/ConfigObject.md +21 -12
  28. package/docs/interfaces/ConfigSchema.md +27 -15
  29. package/docs/interfaces/ConfigurableLinkProps.md +4314 -24
  30. package/docs/interfaces/ConnectedExtension.md +41 -25
  31. package/docs/interfaces/ConnectivityChangedEvent.md +10 -4
  32. package/docs/interfaces/CurrentPatientOptions.md +18 -9
  33. package/docs/interfaces/DashboardExtensionProps.md +28 -13
  34. package/docs/interfaces/DefaultWorkspaceProps.md +51 -44
  35. package/docs/interfaces/Diagnosis.md +104 -80
  36. package/docs/interfaces/DisplayConditionsConfigObject.md +33 -18
  37. package/docs/interfaces/DynamicOfflineData.md +41 -23
  38. package/docs/interfaces/DynamicOfflineDataHandler.md +54 -47
  39. package/docs/interfaces/DynamicOfflineDataSyncState.md +39 -29
  40. package/docs/interfaces/EmrApiConfigurationResponse.md +350 -243
  41. package/docs/interfaces/Encounter.md +110 -67
  42. package/docs/interfaces/EncounterProvider.md +61 -39
  43. package/docs/interfaces/EncounterRole.md +68 -43
  44. package/docs/interfaces/EncounterType.md +68 -43
  45. package/docs/interfaces/ErrorStateProps.md +16 -7
  46. package/docs/interfaces/ExtensionData.md +22 -10
  47. package/docs/interfaces/ExtensionMeta.md +2 -4
  48. package/docs/interfaces/ExtensionRegistration.md +69 -36
  49. package/docs/interfaces/ExtensionSlotBaseProps.md +35 -35
  50. package/docs/interfaces/ExtensionSlotConfig.md +32 -17
  51. package/docs/interfaces/ExtensionSlotConfigObject.md +26 -14
  52. package/docs/interfaces/ExtensionSlotConfigureValueObject.md +2 -4
  53. package/docs/interfaces/ExtensionSlotState.md +18 -9
  54. package/docs/interfaces/ExtensionStore.md +11 -5
  55. package/docs/interfaces/FHIRCode.md +23 -11
  56. package/docs/interfaces/FHIRLocationResource.md +18 -25
  57. package/docs/interfaces/FHIRResource.md +41 -105
  58. package/docs/interfaces/FeatureFlagDefinition.md +26 -14
  59. package/docs/interfaces/FetchConfig.md +117 -80
  60. package/docs/interfaces/FetchError.md +21 -8
  61. package/docs/interfaces/FetchHeaders.md +2 -4
  62. package/docs/interfaces/FetchResponse.md +130 -124
  63. package/docs/interfaces/FetchResponseJson.md +2 -4
  64. package/docs/interfaces/ImportMap.md +10 -4
  65. package/docs/interfaces/LeftNavStore.md +29 -14
  66. package/docs/interfaces/Link.md +23 -11
  67. package/docs/interfaces/Location.md +250 -147
  68. package/docs/interfaces/LoggedInUser.md +70 -68
  69. package/docs/interfaces/LoggedInUserFetchResponse.md +128 -120
  70. package/docs/interfaces/MessageServiceWorkerResult.md +29 -17
  71. package/docs/interfaces/NavigateOptions.md +18 -9
  72. package/docs/interfaces/NewVisitPayload.md +48 -32
  73. package/docs/interfaces/NotificationDescriptor.md +58 -31
  74. package/docs/interfaces/Obs.md +166 -99
  75. package/docs/interfaces/OfflineModeResult.md +23 -11
  76. package/docs/interfaces/OfflinePatientArgs.md +20 -13
  77. package/docs/interfaces/OfflinePatientDataSyncHandler.md +27 -17
  78. package/docs/interfaces/OfflinePatientDataSyncState.md +51 -29
  79. package/docs/interfaces/OfflinePatientDataSyncStore.md +20 -13
  80. package/docs/interfaces/OldExtensionSlotBaseProps.md +67 -0
  81. package/docs/interfaces/OmrsServiceWorkerMessage.md +23 -13
  82. package/docs/interfaces/OnImportMapChangedMessage.md +23 -12
  83. package/docs/interfaces/OnlyThePatient.md +17 -9
  84. package/docs/interfaces/OpenWorkspace.md +170 -116
  85. package/docs/interfaces/OpenmrsAppContextProps.md +23 -14
  86. package/docs/interfaces/OpenmrsAppRoutes.md +71 -41
  87. package/docs/interfaces/OpenmrsDatePickerProps.md +483 -346
  88. package/docs/interfaces/OpenmrsResource.md +57 -39
  89. package/docs/interfaces/OpenmrsResourceStrict.md +51 -27
  90. package/docs/interfaces/PageHeaderContentProps.md +24 -12
  91. package/docs/interfaces/PageHeaderWrapperProps.md +18 -9
  92. package/docs/interfaces/Patient.md +70 -41
  93. package/docs/interfaces/PatientBannerActionsMenuProps.md +30 -15
  94. package/docs/interfaces/PatientBannerToggleContactDetailsButtonProps.md +32 -17
  95. package/docs/interfaces/PatientIdentifier.md +84 -49
  96. package/docs/interfaces/PatientIdentifierType.md +112 -65
  97. package/docs/interfaces/PatientPhotoProps.md +17 -8
  98. package/docs/interfaces/PatientWithFullResponse.md +17 -9
  99. package/docs/interfaces/Person.md +160 -96
  100. package/docs/interfaces/PersonAddress.md +230 -136
  101. package/docs/interfaces/PersonAttribute.md +68 -43
  102. package/docs/interfaces/PersonName.md +118 -72
  103. package/docs/interfaces/PrecacheStaticDependenciesEvent.md +1 -3
  104. package/docs/interfaces/PrimaryIdentifier.md +11 -5
  105. package/docs/interfaces/Privilege.md +23 -11
  106. package/docs/interfaces/Prompt.md +41 -20
  107. package/docs/interfaces/QueueItemDescriptor.md +30 -23
  108. package/docs/interfaces/RegisterDynamicRouteMessage.md +38 -21
  109. package/docs/interfaces/ResourceLoader.md +14 -10
  110. package/docs/interfaces/ResponsiveWrapperProps.md +11 -5
  111. package/docs/interfaces/RetryOptions.md +37 -36
  112. package/docs/interfaces/Role.md +22 -10
  113. package/docs/interfaces/Session.md +54 -31
  114. package/docs/interfaces/SessionLocation.md +22 -10
  115. package/docs/interfaces/SetLeftNavParams.md +30 -15
  116. package/docs/interfaces/ShowActionableNotificationEvent.md +50 -26
  117. package/docs/interfaces/ShowNotificationEvent.md +38 -20
  118. package/docs/interfaces/ShowSnackbarEvent.md +64 -34
  119. package/docs/interfaces/ShowToastEvent.md +43 -22
  120. package/docs/interfaces/SnackbarDescriptor.md +76 -41
  121. package/docs/interfaces/SnackbarMeta.md +93 -55
  122. package/docs/interfaces/SpaConfig.md +40 -30
  123. package/docs/interfaces/StyleguideConfigObject.md +70 -39
  124. package/docs/interfaces/SyncItem.md +57 -34
  125. package/docs/interfaces/SyncProcessOptions.md +40 -22
  126. package/docs/interfaces/ToastDescriptor.md +55 -29
  127. package/docs/interfaces/ToastNotificationMeta.md +69 -40
  128. package/docs/interfaces/UploadedFile.md +49 -25
  129. package/docs/interfaces/UseConfigOptions.md +12 -6
  130. package/docs/interfaces/UsePatientPhotoResult.md +24 -12
  131. package/docs/interfaces/UseServerFetchAllOptions.md +61 -41
  132. package/docs/interfaces/UseServerInfiniteOptions.md +46 -29
  133. package/docs/interfaces/UseServerPaginationOptions.md +41 -26
  134. package/docs/interfaces/User.md +46 -34
  135. package/docs/interfaces/UserHasAccessProps.md +25 -13
  136. package/docs/interfaces/Visit.md +66 -36
  137. package/docs/interfaces/VisitItem.md +31 -16
  138. package/docs/interfaces/VisitReturnType.md +51 -24
  139. package/docs/interfaces/VisitStoreState.md +26 -14
  140. package/docs/interfaces/VisitType.md +23 -11
  141. package/docs/interfaces/WorkspaceContainerProps.md +38 -20
  142. package/docs/interfaces/WorkspaceGroupDefinition.md +19 -10
  143. package/docs/interfaces/WorkspaceRegistration.md +82 -43
  144. package/docs/interfaces/WorkspacesInfo.md +40 -26
  145. package/package.json +20 -24
  146. package/rspack.config.cjs +8 -1
  147. package/tsconfig.build.json +1 -2
  148. package/typedoc.json +4 -16
  149. package/docs/enumerations/Type.md +0 -77
  150. package/docs/enumerations/VisitMode.md +0 -29
  151. package/docs/enumerations/VisitStatus.md +0 -21
  152. package/docs/functions/ConfigurableLink.md +0 -19
  153. package/docs/functions/CustomOverflowMenu.md +0 -17
  154. package/docs/functions/DashboardExtension.md +0 -17
  155. package/docs/functions/ExtensionSlot.md +0 -46
  156. package/docs/functions/OpenmrsAppContext.md +0 -36
  157. package/docs/functions/PatientBannerActionsMenu.md +0 -17
  158. package/docs/functions/PatientBannerContactDetails.md +0 -17
  159. package/docs/functions/PatientBannerPatientIdentifiers.md +0 -17
  160. package/docs/functions/PatientBannerPatientInfo.md +0 -17
  161. package/docs/functions/PatientBannerToggleContactDetailsButton.md +0 -17
  162. package/docs/functions/PatientPhoto.md +0 -19
  163. package/docs/functions/WorkspaceContainer.md +0 -55
  164. package/docs/functions/age.md +0 -32
  165. package/docs/functions/attach.md +0 -40
  166. package/docs/functions/beginEditSynchronizationItem.md +0 -22
  167. package/docs/functions/canAccessStorage.md +0 -25
  168. package/docs/functions/canBeginEditSynchronizationItemsOfType.md +0 -22
  169. package/docs/functions/clearCurrentUser.md +0 -11
  170. package/docs/functions/closeWorkspace.md +0 -27
  171. package/docs/functions/compile.md +0 -30
  172. package/docs/functions/convertToLocaleCalendar.md +0 -25
  173. package/docs/functions/createAttachment.md +0 -21
  174. package/docs/functions/createErrorHandler.md +0 -21
  175. package/docs/functions/createGlobalStore.md +0 -36
  176. package/docs/functions/createUseStore.md +0 -66
  177. package/docs/functions/defineConfigSchema.md +0 -33
  178. package/docs/functions/defineExtensionConfigSchema.md +0 -38
  179. package/docs/functions/deleteAttachmentPermanently.md +0 -21
  180. package/docs/functions/deleteSynchronizationItem.md +0 -21
  181. package/docs/functions/detach.md +0 -25
  182. package/docs/functions/detachAll.md +0 -21
  183. package/docs/functions/dispatchNotificationShown.md +0 -17
  184. package/docs/functions/dispatchPrecacheStaticDependencies.md +0 -17
  185. package/docs/functions/displayName.md +0 -21
  186. package/docs/functions/evaluate.md +0 -84
  187. package/docs/functions/evaluateAsBoolean.md +0 -31
  188. package/docs/functions/evaluateAsBooleanAsync.md +0 -31
  189. package/docs/functions/evaluateAsNumber.md +0 -31
  190. package/docs/functions/evaluateAsNumberAsync.md +0 -31
  191. package/docs/functions/evaluateAsType.md +0 -46
  192. package/docs/functions/evaluateAsTypeAsync.md +0 -46
  193. package/docs/functions/evaluateAsync.md +0 -87
  194. package/docs/functions/extractVariableNames.md +0 -50
  195. package/docs/functions/fetchCurrentPatient.md +0 -25
  196. package/docs/functions/filterBreadcrumbs.md +0 -21
  197. package/docs/functions/formatDate.md +0 -39
  198. package/docs/functions/formatDatetime.md +0 -29
  199. package/docs/functions/formatPartialDate.md +0 -39
  200. package/docs/functions/formatPatientName.md +0 -23
  201. package/docs/functions/formatTime.md +0 -20
  202. package/docs/functions/formattedName.md +0 -21
  203. package/docs/functions/generateOfflineUuid.md +0 -13
  204. package/docs/functions/getAssignedExtensions.md +0 -23
  205. package/docs/functions/getAsyncLifecycle.md +0 -31
  206. package/docs/functions/getAttachmentByUuid.md +0 -21
  207. package/docs/functions/getAttachments.md +0 -25
  208. package/docs/functions/getBreadcrumbs.md +0 -11
  209. package/docs/functions/getBreadcrumbsFor.md +0 -17
  210. package/docs/functions/getConfig.md +0 -31
  211. package/docs/functions/getContext.md +0 -29
  212. package/docs/functions/getCoreTranslation.md +0 -35
  213. package/docs/functions/getCurrentOfflineMode.md +0 -11
  214. package/docs/functions/getCurrentUser.md +0 -154
  215. package/docs/functions/getDefaultCalendar.md +0 -21
  216. package/docs/functions/getDefaultsFromConfigSchema.md +0 -32
  217. package/docs/functions/getDynamicOfflineDataEntries.md +0 -28
  218. package/docs/functions/getDynamicOfflineDataEntriesFor.md +0 -34
  219. package/docs/functions/getDynamicOfflineDataHandlers.md +0 -13
  220. package/docs/functions/getExtensionNameFromId.md +0 -30
  221. package/docs/functions/getExtensionStore.md +0 -14
  222. package/docs/functions/getFeatureFlag.md +0 -21
  223. package/docs/functions/getFhirServerPaginationHandlers.md +0 -17
  224. package/docs/functions/getFullSynchronizationItems.md +0 -27
  225. package/docs/functions/getFullSynchronizationItemsFor.md +0 -33
  226. package/docs/functions/getGlobalStore.md +0 -36
  227. package/docs/functions/getHistory.md +0 -13
  228. package/docs/functions/getLifecycle.md +0 -27
  229. package/docs/functions/getLocale.md +0 -15
  230. package/docs/functions/getLocations.md +0 -21
  231. package/docs/functions/getLoggedInUser.md +0 -11
  232. package/docs/functions/getOfflinePatientDataStore.md +0 -15
  233. package/docs/functions/getPatientName.md +0 -26
  234. package/docs/functions/getSessionLocation.md +0 -11
  235. package/docs/functions/getSessionStore.md +0 -11
  236. package/docs/functions/getSyncLifecycle.md +0 -31
  237. package/docs/functions/getSynchronizationItem.md +0 -27
  238. package/docs/functions/getSynchronizationItems.md +0 -27
  239. package/docs/functions/getVisitStore.md +0 -11
  240. package/docs/functions/getVisitTypes.md +0 -11
  241. package/docs/functions/getVisitsForPatient.md +0 -29
  242. package/docs/functions/goBackInHistory.md +0 -25
  243. package/docs/functions/importDynamic.md +0 -58
  244. package/docs/functions/inRange.md +0 -27
  245. package/docs/functions/interpolateString.md +0 -34
  246. package/docs/functions/interpolateUrl.md +0 -48
  247. package/docs/functions/isDesktop.md +0 -17
  248. package/docs/functions/isDevEnabled.md +0 -11
  249. package/docs/functions/isOfflineUuid.md +0 -19
  250. package/docs/functions/isOmrsDateStrict.md +0 -20
  251. package/docs/functions/isOmrsDateToday.md +0 -19
  252. package/docs/functions/isOnline.md +0 -17
  253. package/docs/functions/isUrlWithTemplateParameters.md +0 -22
  254. package/docs/functions/isVersionSatisfied.md +0 -21
  255. package/docs/functions/launchWorkspace.md +0 -56
  256. package/docs/functions/launchWorkspaceGroup.md +0 -38
  257. package/docs/functions/makeUrl.md +0 -26
  258. package/docs/functions/messageOmrsServiceWorker.md +0 -23
  259. package/docs/functions/navigate.md +0 -48
  260. package/docs/functions/navigateAndLaunchWorkspace.md +0 -33
  261. package/docs/functions/oneOf.md +0 -21
  262. package/docs/functions/openmrsFetch.md +0 -75
  263. package/docs/functions/openmrsObservableFetch.md +0 -55
  264. package/docs/functions/parseDate.md +0 -20
  265. package/docs/functions/provide.md +0 -21
  266. package/docs/functions/putDynamicOfflineData.md +0 -28
  267. package/docs/functions/putDynamicOfflineDataFor.md +0 -34
  268. package/docs/functions/queueSynchronizationItem.md +0 -39
  269. package/docs/functions/refetchCurrentUser.md +0 -33
  270. package/docs/functions/registerBreadcrumb.md +0 -17
  271. package/docs/functions/registerBreadcrumbs.md +0 -17
  272. package/docs/functions/registerContext.md +0 -34
  273. package/docs/functions/registerDefaultCalendar.md +0 -33
  274. package/docs/functions/registerFeatureFlag.md +0 -36
  275. package/docs/functions/registerOfflinePatientHandler.md +0 -25
  276. package/docs/functions/removeDynamicOfflineData.md +0 -28
  277. package/docs/functions/removeDynamicOfflineDataFor.md +0 -34
  278. package/docs/functions/renderExtension.md +0 -41
  279. package/docs/functions/reportError.md +0 -17
  280. package/docs/functions/retry.md +0 -44
  281. package/docs/functions/saveVisit.md +0 -21
  282. package/docs/functions/selectPreferredName.md +0 -46
  283. package/docs/functions/setCurrentVisit.md +0 -21
  284. package/docs/functions/setLeftNav.md +0 -23
  285. package/docs/functions/setSessionLocation.md +0 -21
  286. package/docs/functions/setUserLanguage.md +0 -17
  287. package/docs/functions/setUserProperties.md +0 -23
  288. package/docs/functions/setupDynamicOfflineDataHandler.md +0 -22
  289. package/docs/functions/setupOfflineSync.md +0 -49
  290. package/docs/functions/shallowEqual.md +0 -32
  291. package/docs/functions/showActionableNotification.md +0 -21
  292. package/docs/functions/showModal.md +0 -44
  293. package/docs/functions/showNotification.md +0 -21
  294. package/docs/functions/showSnackbar.md +0 -21
  295. package/docs/functions/showToast.md +0 -21
  296. package/docs/functions/subscribeActionableNotificationShown.md +0 -21
  297. package/docs/functions/subscribeConnectivity.md +0 -21
  298. package/docs/functions/subscribeConnectivityChanged.md +0 -21
  299. package/docs/functions/subscribeNotificationShown.md +0 -21
  300. package/docs/functions/subscribePrecacheStaticDependencies.md +0 -21
  301. package/docs/functions/subscribeSnackbarShown.md +0 -21
  302. package/docs/functions/subscribeTo.md +0 -75
  303. package/docs/functions/subscribeToContext.md +0 -39
  304. package/docs/functions/subscribeToastShown.md +0 -21
  305. package/docs/functions/syncAllDynamicOfflineData.md +0 -27
  306. package/docs/functions/syncDynamicOfflineData.md +0 -33
  307. package/docs/functions/syncOfflinePatientData.md +0 -21
  308. package/docs/functions/toDateObjectStrict.md +0 -20
  309. package/docs/functions/toLocationObject.md +0 -17
  310. package/docs/functions/toOmrsIsoString.md +0 -23
  311. package/docs/functions/toVisitTypeObject.md +0 -17
  312. package/docs/functions/translateFrom.md +0 -55
  313. package/docs/functions/unregisterContext.md +0 -20
  314. package/docs/functions/unsetLeftNav.md +0 -23
  315. package/docs/functions/updateContext.md +0 -29
  316. package/docs/functions/updateVisit.md +0 -25
  317. package/docs/functions/useAbortController.md +0 -32
  318. package/docs/functions/useAppContext.md +0 -43
  319. package/docs/functions/useAssignedExtensionIds.md +0 -26
  320. package/docs/functions/useAssignedExtensions.md +0 -21
  321. package/docs/functions/useAttachments.md +0 -41
  322. package/docs/functions/useBodyScrollLock.md +0 -17
  323. package/docs/functions/useConfig.md +0 -27
  324. package/docs/functions/useConnectivity.md +0 -11
  325. package/docs/functions/useDebounce.md +0 -57
  326. package/docs/functions/useDefineAppContext.md +0 -70
  327. package/docs/functions/useEmrConfiguration.md +0 -35
  328. package/docs/functions/useExtensionSlotMeta.md +0 -25
  329. package/docs/functions/useExtensionSlotStore.md +0 -17
  330. package/docs/functions/useFeatureFlag.md +0 -30
  331. package/docs/functions/useFhirFetchAll.md +0 -44
  332. package/docs/functions/useFhirInfinite.md +0 -46
  333. package/docs/functions/useFhirPagination.md +0 -129
  334. package/docs/functions/useLayoutType.md +0 -11
  335. package/docs/functions/useLeftNav.md +0 -17
  336. package/docs/functions/useLeftNavStore.md +0 -11
  337. package/docs/functions/useLocations.md +0 -21
  338. package/docs/functions/useOnClickOutside.md +0 -27
  339. package/docs/functions/useOnVisible.md +0 -28
  340. package/docs/functions/useOpenmrsFetchAll.md +0 -46
  341. package/docs/functions/useOpenmrsInfinite.md +0 -54
  342. package/docs/functions/useOpenmrsPagination.md +0 -140
  343. package/docs/functions/useOpenmrsSWR.md +0 -71
  344. package/docs/functions/usePagination.md +0 -89
  345. package/docs/functions/usePatient.md +0 -38
  346. package/docs/functions/usePatientPhoto.md +0 -17
  347. package/docs/functions/usePrimaryIdentifierCode.md +0 -23
  348. package/docs/functions/useRenderableExtensions.md +0 -43
  349. package/docs/functions/useSession.md +0 -19
  350. package/docs/functions/useStore.md +0 -131
  351. package/docs/functions/useStoreWithActions.md +0 -33
  352. package/docs/functions/useVisit.md +0 -41
  353. package/docs/functions/useVisitContextStore.md +0 -23
  354. package/docs/functions/useVisitTypes.md +0 -11
  355. package/docs/functions/useWorkspaces.md +0 -11
  356. package/docs/functions/userHasAccess.md +0 -27
  357. package/docs/functions/validator.md +0 -44
  358. package/docs/interfaces/ExtensionSlotProps.md +0 -3520
  359. package/docs/type-aliases/ActionFunction.md +0 -27
  360. package/docs/type-aliases/ActionableNotificationType.md +0 -7
  361. package/docs/type-aliases/Actions.md +0 -13
  362. package/docs/type-aliases/ArgumentsTuple.md +0 -7
  363. package/docs/type-aliases/BoundActions.md +0 -17
  364. package/docs/type-aliases/ConfigValue.md +0 -7
  365. package/docs/type-aliases/ContextCallback.md +0 -23
  366. package/docs/type-aliases/CoreTranslationKey.md +0 -7
  367. package/docs/type-aliases/CurrentPatient.md +0 -7
  368. package/docs/type-aliases/DateInput.md +0 -7
  369. package/docs/type-aliases/DefaultEvaluateReturnType.md +0 -9
  370. package/docs/type-aliases/ExtensionDefinition.md +0 -69
  371. package/docs/type-aliases/ExtensionProps.md +0 -13
  372. package/docs/type-aliases/FormatDateMode.md +0 -7
  373. package/docs/type-aliases/FormatDateOptions.md +0 -102
  374. package/docs/type-aliases/IconProps.md +0 -31
  375. package/docs/type-aliases/InlineNotificationType.md +0 -7
  376. package/docs/type-aliases/Key.md +0 -7
  377. package/docs/type-aliases/KnownOmrsServiceWorkerMessages.md +0 -7
  378. package/docs/type-aliases/LayoutType.md +0 -7
  379. package/docs/type-aliases/LoadedSessionStore.md +0 -23
  380. package/docs/type-aliases/ModalDefinition.md +0 -17
  381. package/docs/type-aliases/NameUse.md +0 -7
  382. package/docs/type-aliases/NullablePatient.md +0 -7
  383. package/docs/type-aliases/OfflineMode.md +0 -7
  384. package/docs/type-aliases/OmrsOfflineCachingStrategy.md +0 -12
  385. package/docs/type-aliases/OmrsOfflineHttpHeaderNames.md +0 -7
  386. package/docs/type-aliases/OmrsOfflineHttpHeaders.md +0 -44
  387. package/docs/type-aliases/OpenmrsRoutes.md +0 -10
  388. package/docs/type-aliases/PageDefinition.md +0 -41
  389. package/docs/type-aliases/PageHeaderProps.md +0 -7
  390. package/docs/type-aliases/PatientUuid.md +0 -7
  391. package/docs/type-aliases/PictogramProps.md +0 -23
  392. package/docs/type-aliases/ProvidedConfig.md +0 -23
  393. package/docs/type-aliases/ResourceName.md +0 -7
  394. package/docs/type-aliases/SessionStore.md +0 -7
  395. package/docs/type-aliases/SnackbarType.md +0 -7
  396. package/docs/type-aliases/SpaEnvironment.md +0 -7
  397. package/docs/type-aliases/SvgIconProps.md +0 -23
  398. package/docs/type-aliases/SvgPictogramProps.md +0 -27
  399. package/docs/type-aliases/TemplateParams.md +0 -11
  400. package/docs/type-aliases/ToastType.md +0 -7
  401. package/docs/type-aliases/UnloadedSessionStore.md +0 -23
  402. package/docs/type-aliases/UpdateVisitPayload.md +0 -7
  403. package/docs/type-aliases/UseOpenmrsSWROptions.md +0 -39
  404. package/docs/type-aliases/Validator.md +0 -17
  405. package/docs/type-aliases/ValidatorFunction.md +0 -17
  406. package/docs/type-aliases/VariablesMap.md +0 -13
  407. package/docs/type-aliases/WorkspaceDefinition.md +0 -78
  408. package/docs/type-aliases/WorkspaceWindowState.md +0 -7
  409. package/docs/variables/ActionMenuButton.md +0 -7
  410. package/docs/variables/ActivityIcon.md +0 -7
  411. package/docs/variables/AddIcon.md +0 -7
  412. package/docs/variables/AllergiesIcon.md +0 -7
  413. package/docs/variables/AppointmentsPictogram.md +0 -7
  414. package/docs/variables/ArrowDownIcon.md +0 -7
  415. package/docs/variables/ArrowLeftIcon.md +0 -7
  416. package/docs/variables/ArrowRightIcon.md +0 -7
  417. package/docs/variables/ArrowUpIcon.md +0 -7
  418. package/docs/variables/AttachmentIcon.md +0 -7
  419. package/docs/variables/BabyIcon.md +0 -7
  420. package/docs/variables/CalendarHeatMapIcon.md +0 -7
  421. package/docs/variables/CalendarIcon.md +0 -7
  422. package/docs/variables/CaretDownIcon.md +0 -7
  423. package/docs/variables/CaretLeftIcon.md +0 -7
  424. package/docs/variables/CaretRightIcon.md +0 -7
  425. package/docs/variables/CaretUpIcon.md +0 -7
  426. package/docs/variables/ChartAverageIcon.md +0 -7
  427. package/docs/variables/CheckmarkFilledIcon.md +0 -7
  428. package/docs/variables/CheckmarkOutlineIcon.md +0 -7
  429. package/docs/variables/ChemistryIcon.md +0 -7
  430. package/docs/variables/ChevronDownIcon.md +0 -7
  431. package/docs/variables/ChevronLeftIcon.md +0 -7
  432. package/docs/variables/ChevronRightIcon.md +0 -7
  433. package/docs/variables/ChevronUpIcon.md +0 -7
  434. package/docs/variables/CloseFilledIcon.md +0 -7
  435. package/docs/variables/CloseIcon.md +0 -7
  436. package/docs/variables/CloseOutlineIcon.md +0 -7
  437. package/docs/variables/ConditionsIcon.md +0 -11
  438. package/docs/variables/DiagnosisTags.md +0 -11
  439. package/docs/variables/DocumentAttachmentIcon.md +0 -7
  440. package/docs/variables/DocumentIcon.md +0 -7
  441. package/docs/variables/DownloadIcon.md +0 -7
  442. package/docs/variables/DrugOrderIcon.md +0 -7
  443. package/docs/variables/EditIcon.md +0 -7
  444. package/docs/variables/ErrorState.md +0 -7
  445. package/docs/variables/EventScheduleIcon.md +0 -7
  446. package/docs/variables/EventsIcon.md +0 -7
  447. package/docs/variables/Extension.md +0 -15
  448. package/docs/variables/GenderFemaleIcon.md +0 -7
  449. package/docs/variables/GenderMaleIcon.md +0 -7
  450. package/docs/variables/GenderOtherIcon.md +0 -7
  451. package/docs/variables/GenderUnknownIcon.md +0 -7
  452. package/docs/variables/GenericOrderTypeIcon.md +0 -7
  453. package/docs/variables/GroupAccessIcon.md +0 -7
  454. package/docs/variables/GroupIcon.md +0 -7
  455. package/docs/variables/HomePictogram.md +0 -7
  456. package/docs/variables/HospitalBedIcon.md +0 -7
  457. package/docs/variables/Icon.md +0 -9
  458. package/docs/variables/ImageMedicalIcon.md +0 -7
  459. package/docs/variables/InPatientPictogram.md +0 -7
  460. package/docs/variables/InformationFilledIcon.md +0 -7
  461. package/docs/variables/InformationIcon.md +0 -7
  462. package/docs/variables/InformationSquareIcon.md +0 -7
  463. package/docs/variables/InventoryManagementIcon.md +0 -7
  464. package/docs/variables/LabOrderIcon.md +0 -7
  465. package/docs/variables/LaboratoryPictogram.md +0 -7
  466. package/docs/variables/LeftNavMenu.md +0 -13
  467. package/docs/variables/ListCheckedIcon.md +0 -7
  468. package/docs/variables/LocationIcon.md +0 -7
  469. package/docs/variables/LocationPicker.md +0 -7
  470. package/docs/variables/MaterialOrderIcon.md +0 -7
  471. package/docs/variables/MaximizeIcon.md +0 -7
  472. package/docs/variables/MaybeIcon.md +0 -16
  473. package/docs/variables/MaybePictogram.md +0 -16
  474. package/docs/variables/MedicationIcon.md +0 -7
  475. package/docs/variables/MessageQueueIcon.md +0 -7
  476. package/docs/variables/MicroscopeIcon.md +0 -7
  477. package/docs/variables/MoneyIcon.md +0 -9
  478. package/docs/variables/MotherIcon.md +0 -7
  479. package/docs/variables/MovementIcon.md +0 -7
  480. package/docs/variables/OpenmrsDatePicker.md +0 -9
  481. package/docs/variables/OverflowMenuHorizontalIcon.md +0 -7
  482. package/docs/variables/OverflowMenuVerticalIcon.md +0 -7
  483. package/docs/variables/PageHeader.md +0 -30
  484. package/docs/variables/PageHeaderContent.md +0 -21
  485. package/docs/variables/PasswordIcon.md +0 -7
  486. package/docs/variables/PatientListsPictogram.md +0 -7
  487. package/docs/variables/PedestrianFamilyIcon.md +0 -7
  488. package/docs/variables/PenIcon.md +0 -7
  489. package/docs/variables/PharmacyPictogram.md +0 -7
  490. package/docs/variables/Pictogram.md +0 -9
  491. package/docs/variables/PrinterIcon.md +0 -7
  492. package/docs/variables/ProcedureOrderIcon.md +0 -7
  493. package/docs/variables/ProgramsIcon.md +0 -7
  494. package/docs/variables/RadiologyIcon.md +0 -7
  495. package/docs/variables/ReferralOrderIcon.md +0 -7
  496. package/docs/variables/RegistrationPictogram.md +0 -7
  497. package/docs/variables/RenderIfValueIsTruthy.md +0 -21
  498. package/docs/variables/RenewIcon.md +0 -7
  499. package/docs/variables/ReportIcon.md +0 -7
  500. package/docs/variables/ResetIcon.md +0 -7
  501. package/docs/variables/ResponsiveWrapper.md +0 -11
  502. package/docs/variables/SaveIcon.md +0 -7
  503. package/docs/variables/SearchIcon.md +0 -7
  504. package/docs/variables/ServiceQueuesPictogram.md +0 -7
  505. package/docs/variables/ShoppingCartAddItemIcon.md +0 -11
  506. package/docs/variables/ShoppingCartArrowDownIcon.md +0 -9
  507. package/docs/variables/ShoppingCartIcon.md +0 -9
  508. package/docs/variables/StickyNoteAddIcon.md +0 -9
  509. package/docs/variables/StockManagementPictogram.md +0 -7
  510. package/docs/variables/SwitcherIcon.md +0 -7
  511. package/docs/variables/SyringeIcon.md +0 -7
  512. package/docs/variables/TableIcon.md +0 -7
  513. package/docs/variables/TableOfContentsIcon.md +0 -9
  514. package/docs/variables/TimeIcon.md +0 -9
  515. package/docs/variables/ToolsIcon.md +0 -7
  516. package/docs/variables/TranslateIcon.md +0 -7
  517. package/docs/variables/TrashCanIcon.md +0 -7
  518. package/docs/variables/TreeViewAltIcon.md +0 -7
  519. package/docs/variables/UserAvatarIcon.md +0 -9
  520. package/docs/variables/UserFollowIcon.md +0 -7
  521. package/docs/variables/UserHasAccess.md +0 -35
  522. package/docs/variables/UserIcon.md +0 -7
  523. package/docs/variables/UserXrayIcon.md +0 -11
  524. package/docs/variables/ViewIcon.md +0 -7
  525. package/docs/variables/ViewOffIcon.md +0 -7
  526. package/docs/variables/WarningIcon.md +0 -7
  527. package/docs/variables/attachmentUrl.md +0 -7
  528. package/docs/variables/backendDependencies.md +0 -17
  529. package/docs/variables/defaultVisitCustomRepresentation.md +0 -7
  530. package/docs/variables/fhirBaseUrl.md +0 -7
  531. package/docs/variables/getAsyncExtensionLifecycle.md +0 -35
  532. package/docs/variables/getStartedVisit.md +0 -9
  533. package/docs/variables/isUrl.md +0 -9
  534. package/docs/variables/offlineUuidPrefix.md +0 -7
  535. package/docs/variables/omrsOfflineCachingStrategyHttpHeaderName.md +0 -7
  536. package/docs/variables/omrsOfflineResponseBodyHttpHeaderName.md +0 -7
  537. package/docs/variables/omrsOfflineResponseStatusHttpHeaderName.md +0 -7
  538. package/docs/variables/restBaseUrl.md +0 -7
  539. package/docs/variables/sessionEndpoint.md +0 -7
  540. package/docs/variables/useConnectedExtensions.md +0 -25
  541. package/docs/variables/useExtensionStore.md +0 -55
  542. package/docs/variables/validators.md +0 -78
@@ -1 +1 @@
1
- {"version":3,"file":"openmrs-esm-framework.js","sources":["webpack://@openmrs/esm-framework/../../../node_modules/@carbon/feature-flags/es/index.js","webpack://@openmrs/esm-framework/../../../node_modules/@carbon/react/es/feature-flags.js","webpack://@openmrs/esm-framework/../../../node_modules/dayjs/plugin/isToday.js","webpack://@openmrs/esm-framework/../../../node_modules/geopattern/geopattern.js","webpack://@openmrs/esm-framework/../../../node_modules/geopattern/lib/color.js","webpack://@openmrs/esm-framework/../../../node_modules/geopattern/lib/pattern.js","webpack://@openmrs/esm-framework/../../../node_modules/geopattern/lib/sha1.js","webpack://@openmrs/esm-framework/../../../node_modules/geopattern/lib/svg.js","webpack://@openmrs/esm-framework/../../../node_modules/geopattern/lib/xml.js","webpack://@openmrs/esm-framework/../../../node_modules/geopattern/node_modules/extend/index.js","webpack://@openmrs/esm-framework/../../../node_modules/react-dom/client.js","webpack://@openmrs/esm-framework/../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","webpack://@openmrs/esm-framework/../../../node_modules/use-sync-external-store/shim/index.js","webpack://@openmrs/esm-framework/../esm-feature-flags/dist/feature-flags.js","webpack://@openmrs/esm-framework/../esm-styleguide/src/config-schema.ts","webpack://@openmrs/esm-framework/../esm-styleguide/src/datepicker/locale-context.ts","webpack://@openmrs/esm-framework/../esm-styleguide/src/modals/index.tsx","webpack://@openmrs/esm-framework/../esm-styleguide/src/notifications/index.tsx","webpack://@openmrs/esm-framework/../esm-styleguide/src/snackbars/index.tsx","webpack://@openmrs/esm-framework/../esm-styleguide/src/toasts/index.tsx","webpack://@openmrs/esm-framework/../esm-styleguide/src/utils.ts","webpack://@openmrs/esm-framework/../esm-styleguide/src/workspaces/workspaces.ts","webpack://@openmrs/esm-framework/../../../node_modules/classnames/index.js","webpack://@openmrs/esm-framework/../../../node_modules/dexie/dist/modern/dexie.min.mjs","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/eq.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_assocIndexOf.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_listCacheDelete.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_freeGlobal.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_isMasked.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_overArg.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_ListCache.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_listCacheClear.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_listCacheGet.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_listCacheHas.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_listCacheSet.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_root.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_Symbol.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_getRawTag.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_objectToString.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseGetTag.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isObject.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isFunction.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_coreJsData.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_toSource.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseIsNative.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_getNative.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_getValue.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_Map.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_nativeCreate.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_hashGet.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_hashHas.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_Hash.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_hashClear.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_hashDelete.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_hashSet.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_isKeyable.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_getMapData.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_MapCache.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_Stack.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_SetCache.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_mapCacheClear.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_mapCacheDelete.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_mapCacheGet.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_mapCacheHas.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_mapCacheSet.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_stackClear.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_stackDelete.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_stackGet.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_stackHas.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_stackSet.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_setCacheAdd.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_setCacheHas.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_arraySome.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_equalArrays.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_cacheHas.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_Uint8Array.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_mapToArray.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_setToArray.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_equalByTag.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_arrayPush.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isArray.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseGetAllKeys.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_arrayFilter.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_getSymbols.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/stubArray.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseTimes.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isObjectLike.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseIsArguments.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isArguments.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isBuffer.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/stubFalse.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_isIndex.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isLength.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseIsTypedArray.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_nodeUtil.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isTypedArray.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseUnary.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_arrayLikeKeys.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_isPrototype.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_nativeKeys.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseKeys.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/keys.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isArrayLike.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_getAllKeys.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_equalObjects.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_DataView.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_Promise.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_Set.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_WeakMap.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_getTag.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseIsEqualDeep.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isEqual.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseIsEqual.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isUndefined.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_clone.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/clone.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_cloneRegExp.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_arrayFromIterator.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_includesWith.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_objectIs.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_isArguments.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/keys.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_equals.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_functionName.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/equals.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_curry1.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_curry2.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_curry3.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_has.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_isPlaceholder.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_isObject.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/mergeWithKey.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/mergeDeepWithKey.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/mergeDeepRight.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_createReduce.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_isArray.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_isArrayLike.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_isString.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/bind.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_arity.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_xReduce.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_xArrayReduce.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_xwrap.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/reduce.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/type.js","webpack://@openmrs/esm-framework/../../src/parcel.js","webpack://@openmrs/esm-framework/../../node_modules/.pnpm/dom-element-getter-helpers@1.1.1/node_modules/dom-element-getter-helpers/lib/dom-element-getter-helpers.js","webpack://@openmrs/esm-framework/../../src/single-spa-react.js","webpack://@openmrs/esm-framework/../esm-api/dist/current-user.js","webpack://@openmrs/esm-framework/../esm-api/dist/openmrs-fetch.js","webpack://@openmrs/esm-framework/../esm-config/dist/module-config/module-config.js","webpack://@openmrs/esm-framework/../esm-config/dist/module-config/state.js","webpack://@openmrs/esm-framework/../esm-config/dist/types.js","webpack://@openmrs/esm-framework/../esm-config/dist/validators/type-validators.js","webpack://@openmrs/esm-framework/../esm-config/dist/validators/validator.js","webpack://@openmrs/esm-framework/../esm-config/dist/validators/validators.js","webpack://@openmrs/esm-framework/../esm-emr-api/dist/attachments.js","webpack://@openmrs/esm-framework/../esm-emr-api/dist/visit-utils.js","webpack://@openmrs/esm-framework/../esm-error-handling/dist/index.js","webpack://@openmrs/esm-framework/../../../node_modules/jsep/dist/jsep.js","webpack://@openmrs/esm-framework/../../../node_modules/@jsep-plugin/arrow/dist/index.js","webpack://@openmrs/esm-framework/../esm-expression-evaluator/dist/globals.js","webpack://@openmrs/esm-framework/../esm-expression-evaluator/dist/evaluator.js","webpack://@openmrs/esm-framework/../../../node_modules/@jsep-plugin/new/dist/index.js","webpack://@openmrs/esm-framework/../../../node_modules/@jsep-plugin/numbers/dist/index.js","webpack://@openmrs/esm-framework/../../../node_modules/@jsep-plugin/regex/dist/index.js","webpack://@openmrs/esm-framework/../../../node_modules/@jsep-plugin/ternary/dist/index.js","webpack://@openmrs/esm-framework/../../../node_modules/@jsep-plugin/template/dist/index.js","webpack://@openmrs/esm-framework/../esm-extensions/dist/extensions.js","webpack://@openmrs/esm-framework/../esm-extensions/dist/helpers.js","webpack://@openmrs/esm-framework/../esm-extensions/dist/left-nav.js","webpack://@openmrs/esm-framework/../esm-extensions/dist/modals.js","webpack://@openmrs/esm-framework/../esm-extensions/dist/store.js","webpack://@openmrs/esm-framework/../esm-extensions/dist/workspaces.js","webpack://@openmrs/esm-framework/../esm-globals/dist/events.js","webpack://@openmrs/esm-framework/../esm-navigation/dist/breadcrumbs/db.js","webpack://@openmrs/esm-framework/../esm-offline/dist/offline-db.js","webpack://@openmrs/esm-framework/../esm-offline/dist/offline-patient-data.js","webpack://@openmrs/esm-framework/../../../node_modules/workbox-window/build/workbox-window.prod.es5.mjs","webpack://@openmrs/esm-framework/../esm-offline/dist/sync.js","webpack://@openmrs/esm-framework/../esm-react-utils/dist/ComponentContext.js","webpack://@openmrs/esm-framework/../esm-react-utils/dist/useEmrConfiguration.js","webpack://@openmrs/esm-framework/../esm-react-utils/dist/useExtensionInternalStore.js","webpack://@openmrs/esm-framework/../esm-react-utils/dist/useExtensionStore.js","webpack://@openmrs/esm-framework/../esm-react-utils/dist/useStore.js","webpack://@openmrs/esm-framework/../esm-react-utils/dist/useVisit.js","webpack://@openmrs/esm-framework/../esm-state/dist/state.js","webpack://@openmrs/esm-framework/../esm-translations/dist/index.js","webpack://@openmrs/esm-framework/../esm-utils/dist/is-online.js","webpack://@openmrs/esm-framework/../../../node_modules/swr/dist/_internal/index.mjs","webpack://@openmrs/esm-framework/../../../node_modules/swr/dist/immutable/index.mjs","webpack://@openmrs/esm-framework/../../../node_modules/swr/dist/infinite/index.mjs","webpack://@openmrs/esm-framework/../../../node_modules/zustand/esm/vanilla.mjs","webpack://@openmrs/esm-framework/webpack/runtime/async_module","webpack://@openmrs/esm-framework/webpack/runtime/compat_get_default_export","webpack://@openmrs/esm-framework/webpack/runtime/define_property_getters","webpack://@openmrs/esm-framework/webpack/runtime/has_own_property","webpack://@openmrs/esm-framework/webpack/runtime/rspack_version","webpack://@openmrs/esm-framework/webpack/runtime/rspack_unique_id"],"sourcesContent":["/**\n * Copyright IBM Corp. 2015, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar enabled$1 = {};\ntry {\n if (process.env.CARBON_ENABLE_CSS_CUSTOM_PROPERTIES) {\n if (process.env.CARBON_ENABLE_CSS_CUSTOM_PROPERTIES === 'true') {\n enabled$1.enableCssCustomProperties = true;\n } else {\n enabled$1.enableCssCustomProperties = false;\n }\n } else {\n enabled$1.enableCssCustomProperties = false;\n }\n if (process.env.CARBON_ENABLE_CSS_GRID) {\n if (process.env.CARBON_ENABLE_CSS_GRID === 'true') {\n enabled$1.enableCssGrid = true;\n } else {\n enabled$1.enableCssGrid = false;\n }\n } else {\n enabled$1.enableCssGrid = false;\n }\n if (process.env.CARBON_ENABLE_V11_RELEASE) {\n if (process.env.CARBON_ENABLE_V11_RELEASE === 'true') {\n enabled$1.enableV11Release = true;\n } else {\n enabled$1.enableV11Release = false;\n }\n } else {\n enabled$1.enableV11Release = true;\n }\n if (process.env.CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST) {\n if (process.env.CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST === 'true') {\n enabled$1.enableExperimentalTileContrast = true;\n } else {\n enabled$1.enableExperimentalTileContrast = false;\n }\n } else {\n enabled$1.enableExperimentalTileContrast = false;\n }\n if (process.env.CARBON_ENABLE_V12_TILE_DEFAULT_ICONS) {\n if (process.env.CARBON_ENABLE_V12_TILE_DEFAULT_ICONS === 'true') {\n enabled$1.enableV12TileDefaultIcons = true;\n } else {\n enabled$1.enableV12TileDefaultIcons = false;\n }\n } else {\n enabled$1.enableV12TileDefaultIcons = false;\n }\n if (process.env.CARBON_ENABLE_V12_TILE_RADIO_ICONS) {\n if (process.env.CARBON_ENABLE_V12_TILE_RADIO_ICONS === 'true') {\n enabled$1.enableV12TileRadioIcons = true;\n } else {\n enabled$1.enableV12TileRadioIcons = false;\n }\n } else {\n enabled$1.enableV12TileRadioIcons = false;\n }\n if (process.env.CARBON_ENABLE_V12_OVERFLOWMENU) {\n if (process.env.CARBON_ENABLE_V12_OVERFLOWMENU === 'true') {\n enabled$1.enableV12Overflowmenu = true;\n } else {\n enabled$1.enableV12Overflowmenu = false;\n }\n } else {\n enabled$1.enableV12Overflowmenu = false;\n }\n if (process.env.CARBON_ENABLE_TREEVIEW_CONTROLLABLE) {\n if (process.env.CARBON_ENABLE_TREEVIEW_CONTROLLABLE === 'true') {\n enabled$1.enableTreeviewControllable = true;\n } else {\n enabled$1.enableTreeviewControllable = false;\n }\n } else {\n enabled$1.enableTreeviewControllable = false;\n }\n if (process.env.CARBON_ENABLE_V12_STRUCTURED_LIST_VISIBLE_ICONS) {\n if (process.env.CARBON_ENABLE_V12_STRUCTURED_LIST_VISIBLE_ICONS === 'true') {\n enabled$1.enableV12StructuredListVisibleIcons = true;\n } else {\n enabled$1.enableV12StructuredListVisibleIcons = false;\n }\n } else {\n enabled$1.enableV12StructuredListVisibleIcons = false;\n }\n if (process.env.CARBON_ENABLE_EXPERIMENTAL_FOCUS_WRAP_WITHOUT_SENTINELS) {\n if (process.env.CARBON_ENABLE_EXPERIMENTAL_FOCUS_WRAP_WITHOUT_SENTINELS === 'true') {\n enabled$1.enableExperimentalFocusWrapWithoutSentinels = true;\n } else {\n enabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n }\n } else {\n enabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n }\n if (process.env.CARBON_ENABLE_DIALOG_ELEMENT) {\n if (process.env.CARBON_ENABLE_DIALOG_ELEMENT === 'true') {\n enabled$1.enableDialogElement = true;\n } else {\n enabled$1.enableDialogElement = false;\n }\n } else {\n enabled$1.enableDialogElement = false;\n }\n if (process.env.CARBON_ENABLE_V12_DYNAMIC_FLOATING_STYLES) {\n if (process.env.CARBON_ENABLE_V12_DYNAMIC_FLOATING_STYLES === 'true') {\n enabled$1.enableV12DynamicFloatingStyles = true;\n } else {\n enabled$1.enableV12DynamicFloatingStyles = false;\n }\n } else {\n enabled$1.enableV12DynamicFloatingStyles = false;\n }\n} catch (error) {\n enabled$1.enableCssCustomProperties = false;\n enabled$1.enableCssGrid = false;\n enabled$1.enableV11Release = true;\n enabled$1.enableExperimentalTileContrast = false;\n enabled$1.enableV12TileDefaultIcons = false;\n enabled$1.enableV12TileRadioIcons = false;\n enabled$1.enableV12Overflowmenu = false;\n enabled$1.enableTreeviewControllable = false;\n enabled$1.enableV12StructuredListVisibleIcons = false;\n enabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n enabled$1.enableDialogElement = false;\n enabled$1.enableV12DynamicFloatingStyles = false;\n}\nvar featureFlagInfo = [{\n name: \"enable-css-custom-properties\",\n description: \"Describe what the flag does\",\n enabled: enabled$1.enableCssCustomProperties\n}, {\n name: \"enable-css-grid\",\n description: \"Enable CSS Grid Layout in the Grid and Column React components\\n\",\n enabled: enabled$1.enableCssGrid\n}, {\n name: \"enable-v11-release\",\n description: \"Enable the features and functionality for the v11 Release\\n\",\n enabled: enabled$1.enableV11Release\n}, {\n name: \"enable-experimental-tile-contrast\",\n description: \"Enable the experimental tile improved contrast styles\\n\",\n enabled: enabled$1.enableExperimentalTileContrast\n}, {\n name: \"enable-v12-tile-default-icons\",\n description: \"Enable rendering of default icons in the tile components\\n\",\n enabled: enabled$1.enableV12TileDefaultIcons\n}, {\n name: \"enable-v12-tile-radio-icons\",\n description: \"Enable rendering of radio icons in the RadioTile component\\n\",\n enabled: enabled$1.enableV12TileRadioIcons\n}, {\n name: \"enable-v12-overflowmenu\",\n description: \"Enable the use of the v12 OverflowMenu leveraging the Menu subcomponents\\n\",\n enabled: enabled$1.enableV12Overflowmenu\n}, {\n name: \"enable-treeview-controllable\",\n description: \"Enable the new TreeView controllable API\\n\",\n enabled: enabled$1.enableTreeviewControllable\n}, {\n name: \"enable-v12-structured-list-visible-icons\",\n description: \"Enable rendering of radio icons in the StructuredList component\\n\",\n enabled: enabled$1.enableV12StructuredListVisibleIcons\n}, {\n name: \"enable-experimental-focus-wrap-without-sentinels\",\n description: \"Enable the new focus wrap behavior that doesn't use sentinel nodes\\n\",\n enabled: enabled$1.enableExperimentalFocusWrapWithoutSentinels\n}, {\n name: \"enable-dialog-element\",\n description: \"Enable components to utilize the native dialog element\\n\",\n enabled: enabled$1.enableDialogElement\n}, {\n name: \"enable-v12-dynamic-floating-styles\",\n description: \"Enable dynamic setting of floating styles for components like Popover, Tooltip, etc.\\n\",\n enabled: enabled$1.enableV12DynamicFloatingStyles\n}];\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var n = 0,\n F = function () {};\n return {\n s: F,\n n: function () {\n return n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[n++]\n };\n },\n e: function (r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function () {\n t = t.call(r);\n },\n n: function () {\n var r = t.next();\n return a = r.done, r;\n },\n e: function (r) {\n u = !0, o = r;\n },\n f: function () {\n try {\n a || null == t.return || t.return();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\n/**\n * Copyright IBM Corp. 2015, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar FeatureFlagScope = /*#__PURE__*/function () {\n function FeatureFlagScope(flags) {\n var _this = this;\n _classCallCheck(this, FeatureFlagScope);\n this.flags = new Map();\n if (flags) {\n Object.keys(flags).forEach(function (key) {\n _this.flags.set(key, flags[key]);\n });\n }\n }\n\n /**\n * Check to see if a flag exists\n * @param {string} name\n */\n return _createClass(FeatureFlagScope, [{\n key: \"checkForFlag\",\n value: function checkForFlag(name) {\n if (!this.flags.has(name)) {\n throw new Error(\"Unable to find a feature flag with the name: `\".concat(name, \"`\"));\n }\n }\n\n /**\n * Add a feature flag\n * @param {string} name\n * @param {boolean} enabled\n */\n }, {\n key: \"add\",\n value: function add(name, enabled) {\n if (this.flags.has(name)) {\n throw new Error(\"The feature flag: \".concat(name, \" already exists\"));\n }\n this.flags.set(name, enabled);\n }\n\n /**\n * Enable a feature flag\n * @param {string} name\n */\n }, {\n key: \"enable\",\n value: function enable(name) {\n this.checkForFlag(name);\n this.flags.set(name, true);\n }\n\n /**\n * Disable a feature flag\n * @param {string} name\n */\n }, {\n key: \"disable\",\n value: function disable(name) {\n this.checkForFlag(name);\n this.flags.set(name, false);\n }\n\n /**\n * Merge the given feature flags with the current set of feature flags.\n * Duplicate keys will be set to the value in the given feature flags.\n * @param {object} flags\n */\n }, {\n key: \"merge\",\n value: function merge(flags) {\n var _this2 = this;\n Object.keys(flags).forEach(function (key) {\n _this2.flags.set(key, flags[key]);\n });\n }\n\n /**\n * @param {FeatureFlagScope} scope\n */\n }, {\n key: \"mergeWithScope\",\n value: function mergeWithScope(scope) {\n var _iterator = _createForOfIteratorHelper(scope.flags),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n key = _step$value[0],\n value = _step$value[1];\n if (this.flags.has(key)) {\n continue;\n }\n this.flags.set(key, value);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n /**\n * Check if a feature flag is enabled\n * @param {string} name\n * @returns {boolean}\n */\n }, {\n key: \"enabled\",\n value: function enabled(name) {\n this.checkForFlag(name);\n return this.flags.get(name);\n }\n }]);\n}();\n\nvar FeatureFlags = createScope();\nfor (var i = 0; i < featureFlagInfo.length; i++) {\n var featureFlag = featureFlagInfo[i];\n FeatureFlags.add(featureFlag.name, featureFlag.enabled);\n}\nfunction createScope(flags) {\n return new FeatureFlagScope(flags);\n}\nfunction add() {\n return FeatureFlags.add.apply(FeatureFlags, arguments);\n}\nfunction enable() {\n return FeatureFlags.enable.apply(FeatureFlags, arguments);\n}\nfunction disable() {\n return FeatureFlags.disable.apply(FeatureFlags, arguments);\n}\nfunction enabled() {\n return FeatureFlags.enabled.apply(FeatureFlags, arguments);\n}\nfunction merge() {\n return FeatureFlags.merge.apply(FeatureFlags, arguments);\n}\n\nexport { FeatureFlags, add, createScope, disable, enable, enabled, merge };\n","/**\n * Copyright IBM Corp. 2016, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport * as FeatureFlags from '@carbon/feature-flags';\n\nFeatureFlags.merge({\n 'enable-css-custom-properties': true,\n 'enable-css-grid': true,\n 'enable-v11-release': true,\n 'enable-experimental-tile-contrast': false,\n 'enable-v12-tile-radio-icons': false,\n 'enable-v12-structured-list-visible-icons': false,\n 'enable-v12-dynamic-floating-styles': false\n});\n","!function(e,o){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=o():\"function\"==typeof define&&define.amd?define(o):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isToday=o()}(this,(function(){\"use strict\";return function(e,o,t){o.prototype.isToday=function(){var e=\"YYYY-MM-DD\",o=t();return this.format(e)===o.format(e)}}}));","(function ($) {\n\n'use strict';\n\nvar Pattern = require('./lib/pattern');\n\n/*\n * Normalize arguments, if not given, to:\n * string: (new Date()).toString()\n * options: {}\n */\nfunction optArgs(cb) {\n\treturn function (string, options) {\n\t\tif (typeof string === 'object') {\n\t\t\toptions = string;\n\t\t\tstring = null;\n\t\t}\n\t\tif (string === null || string === undefined) {\n\t\t\tstring = (new Date()).toString();\n\t\t}\n\t\tif (!options) {\n\t\t\toptions = {};\n\t\t}\n\n\t\treturn cb.call(this, string, options);\n\t};\n}\n\nvar GeoPattern = module.exports = {\n\tgenerate: optArgs(function (string, options) {\n\t\treturn new Pattern(string, options);\n\t})\n};\n\nif ($) {\n\n\t// If jQuery, add plugin\n\t$.fn.geopattern = optArgs(function (string, options) {\n\t\treturn this.each(function () {\n\t\t\tvar titleSha = $(this).attr('data-title-sha');\n\t\t\tif (titleSha) {\n\t\t\t\toptions = $.extend({\n\t\t\t\t\thash: titleSha\n\t\t\t\t}, options);\n\t\t\t}\n\t\t\tvar pattern = GeoPattern.generate(string, options);\n\t\t\t$(this).css('background-image', pattern.toDataUrl());\n\t\t});\n\t});\n\n}\n\n}(typeof jQuery !== 'undefined' ? jQuery : null));\n","/*eslint sort-vars:0, curly:0*/\n\n'use strict';\n\n/**\n * Converts a hex CSS color value to RGB.\n * Adapted from http://stackoverflow.com/a/5624139.\n *\n * @param\tString\thex\t\tThe hexadecimal color value\n * @return\tObject\t\t\tThe RGB representation\n */\nfunction hex2rgb(hex) {\n\t// Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\n\tvar shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n\thex = hex.replace(shorthandRegex, function (m, r, g, b) {\n\t\treturn r + r + g + g + b + b;\n\t});\n\n\tvar result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n\treturn result ? {\n\t\tr: parseInt(result[1], 16),\n\t\tg: parseInt(result[2], 16),\n\t\tb: parseInt(result[3], 16)\n\t} : null;\n}\n\n/**\n * Converts an RGB color value to a hex string.\n * @param Object rgb RGB as r, g, and b keys\n * @return String Hex color string\n */\nfunction rgb2hex(rgb) {\n\treturn '#' + ['r', 'g', 'b'].map(function (key) {\n\t\treturn ('0' + rgb[key].toString(16)).slice(-2);\n\t}).join('');\n}\n\n/**\n * Converts an RGB color value to HSL. Conversion formula adapted from\n * http://en.wikipedia.org/wiki/HSL_color_space. This function adapted\n * from http://stackoverflow.com/a/9493060.\n * Assumes r, g, and b are contained in the set [0, 255] and\n * returns h, s, and l in the set [0, 1].\n *\n * @param Object rgb RGB as r, g, and b keys\n * @return Object HSL as h, s, and l keys\n */\nfunction rgb2hsl(rgb) {\n\tvar r = rgb.r, g = rgb.g, b = rgb.b;\n\tr /= 255; g /= 255; b /= 255;\n\tvar max = Math.max(r, g, b), min = Math.min(r, g, b);\n\tvar h, s, l = (max + min) / 2;\n\n\tif (max === min) {\n\t\th = s = 0; // achromatic\n\t} else {\n\t\tvar d = max - min;\n\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\t\tswitch (max) {\n\t\t\tcase r: h = (g - b) / d + (g < b ? 6 : 0); break;\n\t\t\tcase g: h = (b - r) / d + 2; break;\n\t\t\tcase b: h = (r - g) / d + 4; break;\n\t\t}\n\t\th /= 6;\n\t}\n\n\treturn { h: h, s: s, l: l };\n}\n\n/**\n * Converts an HSL color value to RGB. Conversion formula adapted from\n * http://en.wikipedia.org/wiki/HSL_color_space. This function adapted\n * from http://stackoverflow.com/a/9493060.\n * Assumes h, s, and l are contained in the set [0, 1] and\n * returns r, g, and b in the set [0, 255].\n *\n * @param Object hsl HSL as h, s, and l keys\n * @return Object RGB as r, g, and b values\n */\nfunction hsl2rgb(hsl) {\n\n\tfunction hue2rgb(p, q, t) {\n\t\tif (t < 0) t += 1;\n\t\tif (t > 1) t -= 1;\n\t\tif (t < 1 / 6) return p + (q - p) * 6 * t;\n\t\tif (t < 1 / 2) return q;\n\t\tif (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n\t\treturn p;\n\t}\n\n\tvar h = hsl.h, s = hsl.s, l = hsl.l;\n\tvar r, g, b;\n\n\tif(s === 0){\n\t\tr = g = b = l; // achromatic\n\t}else{\n\n\t\tvar q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n\t\tvar p = 2 * l - q;\n\t\tr = hue2rgb(p, q, h + 1 / 3);\n\t\tg = hue2rgb(p, q, h);\n\t\tb = hue2rgb(p, q, h - 1 / 3);\n\t}\n\n\treturn {\n\t\tr: Math.round(r * 255),\n\t\tg: Math.round(g * 255),\n\t\tb: Math.round(b * 255)\n\t};\n}\n\nmodule.exports = {\n\thex2rgb: hex2rgb,\n\trgb2hex: rgb2hex,\n\trgb2hsl: rgb2hsl,\n\thsl2rgb: hsl2rgb,\n\trgb2rgbString: function (rgb) {\n\t\treturn 'rgb(' + [rgb.r, rgb.g, rgb.b].join(',') + ')';\n\t}\n};\n","'use strict';\n\nvar extend = require('extend');\nvar color = require('./color');\nvar SHA1 = require('./sha1');\nvar SVG = require('./svg');\n\n\n\nvar DEFAULTS = {\n\tbaseColor: '#933c3c'\n};\n\nvar PATTERNS = [\n\t'octogons',\n\t'overlappingCircles',\n\t'plusSigns',\n\t'xes',\n\t'sineWaves',\n\t'hexagons',\n\t'overlappingRings',\n\t'plaid',\n\t'triangles',\n\t'squares',\n\t'concentricCircles',\n\t'diamonds',\n\t'tessellation',\n\t'nestedSquares',\n\t'mosaicSquares',\n\t'chevrons'\n];\n\nvar FILL_COLOR_DARK = '#222';\nvar FILL_COLOR_LIGHT = '#ddd';\nvar STROKE_COLOR = '#000';\nvar STROKE_OPACITY = 0.02;\nvar OPACITY_MIN = 0.02;\nvar OPACITY_MAX = 0.15;\n\n\n\n// Helpers\n\n/**\n * Extract a substring from a hex string and parse it as an integer\n * @param {string} hash - Source hex string\n * @param {number} index - Start index of substring\n * @param {number} [length] - Length of substring. Defaults to 1.\n */\nfunction hexVal(hash, index, len) {\n\treturn parseInt(hash.substr(index, len || 1), 16);\n}\n\n/*\n * Re-maps a number from one range to another\n * http://processing.org/reference/map_.html\n */\nfunction map(value, vMin, vMax, dMin, dMax) {\n\tvar vValue = parseFloat(value);\n\tvar vRange = vMax - vMin;\n\tvar dRange = dMax - dMin;\n\n\treturn (vValue - vMin) * dRange / vRange + dMin;\n}\n\nfunction fillColor(val) {\n\treturn (val % 2 === 0) ? FILL_COLOR_LIGHT : FILL_COLOR_DARK;\n}\n\nfunction fillOpacity(val) {\n\treturn map(val, 0, 15, OPACITY_MIN, OPACITY_MAX);\n}\n\n\n\nvar Pattern = module.exports = function (string, options) {\n\tthis.opts = extend({}, DEFAULTS, options);\n\tthis.hash = options.hash || SHA1(string);\n\tthis.svg = new SVG();\n\n\tthis.generateBackground();\n\tthis.generatePattern();\n\n\treturn this;\n};\n\nPattern.prototype.toSvg = function () {\n\treturn this.svg.toString();\n};\n\nPattern.prototype.toString = function () {\n\treturn this.toSvg();\n};\n\nPattern.prototype.toBase64 = function () {\n\tvar str = this.toSvg();\n\tvar b64;\n\n\t// Use window.btoa if in the browser; otherwise fallback to node buffers\n\tif (typeof window !== 'undefined' && typeof window.btoa === 'function') {\n\t\tb64 = window.btoa(str);\n\t} else {\n\t\tb64 = new Buffer(str).toString('base64');\n\t}\n\n\treturn b64;\n};\n\nPattern.prototype.toDataUri = function () {\n\treturn 'data:image/svg+xml;base64,' + this.toBase64();\n};\n\nPattern.prototype.toDataUrl = function () {\n\treturn 'url(\"' + this.toDataUri() + '\")';\n};\n\nPattern.prototype.generateBackground = function () {\n\tvar baseColor, hueOffset, rgb, satOffset;\n\n\tif (this.opts.color) {\n\t\trgb = color.hex2rgb(this.opts.color);\n\t} else {\n\t\thueOffset = map(hexVal(this.hash, 14, 3), 0, 4095, 0, 359);\n\t\tsatOffset = hexVal(this.hash, 17);\n\t\tbaseColor = color.rgb2hsl(color.hex2rgb(this.opts.baseColor));\n\n\t\tbaseColor.h = (((baseColor.h * 360 - hueOffset) + 360) % 360) / 360;\n\n\t\tif (satOffset % 2 === 0) {\n\t\t\tbaseColor.s = Math.min(1, ((baseColor.s * 100) + satOffset) / 100);\n\t\t} else {\n\t\t\tbaseColor.s = Math.max(0, ((baseColor.s * 100) - satOffset) / 100);\n\t\t}\n\t\trgb = color.hsl2rgb(baseColor);\n\t}\n\n\tthis.color = color.rgb2hex(rgb);\n\n\tthis.svg.rect(0, 0, '100%', '100%', {\n\t\tfill: color.rgb2rgbString(rgb)\n\t});\n};\n\nPattern.prototype.generatePattern = function () {\n\tvar generator = this.opts.generator;\n\n\tif (generator) {\n\t\tif (PATTERNS.indexOf(generator) < 0) {\n\t\t\tthrow new Error('The generator '\n\t\t\t\t+ generator\n\t\t\t\t+ ' does not exist.');\n\t\t}\n\t} else {\n\t\tgenerator = PATTERNS[hexVal(this.hash, 20)];\n\t}\n\n\treturn this['geo' + generator.slice(0, 1).toUpperCase() + generator.slice(1)]();\n};\n\nfunction buildHexagonShape(sideLength) {\n\tvar c = sideLength;\n\tvar a = c / 2;\n\tvar b = Math.sin(60 * Math.PI / 180) * c;\n\treturn [\n\t\t0, b,\n\t\ta, 0,\n\t\ta + c, 0,\n\t\t2 * c, b,\n\t\ta + c, 2 * b,\n\t\ta, 2 * b,\n\t\t0, b\n\t].join(',');\n}\n\nPattern.prototype.geoHexagons = function () {\n\tvar scale = hexVal(this.hash, 0);\n\tvar sideLength = map(scale, 0, 15, 8, 60);\n\tvar hexHeight = sideLength * Math.sqrt(3);\n\tvar hexWidth = sideLength * 2;\n\tvar hex = buildHexagonShape(sideLength);\n\tvar dy, fill, i, opacity, styles, val, x, y;\n\n\tthis.svg.setWidth(hexWidth * 3 + sideLength * 3);\n\tthis.svg.setHeight(hexHeight * 6);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\tdy = x % 2 === 0 ? y * hexHeight : y * hexHeight + hexHeight / 2;\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tfill: fill,\n\t\t\t\t'fill-opacity': opacity,\n\t\t\t\tstroke: STROKE_COLOR,\n\t\t\t\t'stroke-opacity': STROKE_OPACITY\n\t\t\t};\n\n\t\t\tthis.svg.polyline(hex, styles).transform({\n\t\t\t\ttranslate: [\n\t\t\t\t\tx * sideLength * 1.5 - hexWidth / 2,\n\t\t\t\t\tdy - hexHeight / 2\n\t\t\t\t]\n\t\t\t});\n\n\t\t\t// Add an extra one at top-right, for tiling.\n\t\t\tif (x === 0) {\n\t\t\t\tthis.svg.polyline(hex, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t6 * sideLength * 1.5 - hexWidth / 2,\n\t\t\t\t\t\tdy - hexHeight / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Add an extra row at the end that matches the first row, for tiling.\n\t\t\tif (y === 0) {\n\t\t\t\tdy = x % 2 === 0 ? 6 * hexHeight : 6 * hexHeight + hexHeight / 2;\n\t\t\t\tthis.svg.polyline(hex, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tx * sideLength * 1.5 - hexWidth / 2,\n\t\t\t\t\t\tdy - hexHeight / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Add an extra one at bottom-right, for tiling.\n\t\t\tif (x === 0 && y === 0) {\n\t\t\t\tthis.svg.polyline(hex, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t6 * sideLength * 1.5 - hexWidth / 2,\n\t\t\t\t\t\t5 * hexHeight + hexHeight / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\n\t\t\ti++;\n\t\t}\n\t}\n};\n\nPattern.prototype.geoSineWaves = function () {\n\tvar period = Math.floor(map(hexVal(this.hash, 0), 0, 15, 100, 400));\n\tvar amplitude = Math.floor(map(hexVal(this.hash, 1), 0, 15, 30, 100));\n\tvar waveWidth = Math.floor(map(hexVal(this.hash, 2), 0, 15, 3, 30));\n\tvar fill, i, opacity, str, styles, val, xOffset;\n\n\tthis.svg.setWidth(period);\n\tthis.svg.setHeight(waveWidth * 36);\n\n\tfor (i = 0; i < 36; i++) {\n\t\tval = hexVal(this.hash, i);\n\t\topacity = fillOpacity(val);\n\t\tfill = fillColor(val);\n\t\txOffset = period / 4 * 0.7;\n\n\t\tstyles = {\n\t\t\tfill: 'none',\n\t\t\tstroke: fill,\n\t\t\topacity: opacity,\n\t\t\t'stroke-width': '' + waveWidth + 'px'\n\t\t};\n\n\t\tstr = 'M0 ' + amplitude +\n\t\t\t' C ' + xOffset + ' 0, ' + (period / 2 - xOffset) + ' 0, ' + (period / 2) + ' ' + amplitude +\n\t\t\t' S ' + (period - xOffset) + ' ' + (amplitude * 2) + ', ' + period + ' ' + amplitude +\n\t\t\t' S ' + (period * 1.5 - xOffset) + ' 0, ' + (period * 1.5) + ', ' + amplitude;\n\n\t\tthis.svg.path(str, styles).transform({\n\t\t\ttranslate: [\n\t\t\t\t-period / 4,\n\t\t\t\twaveWidth * i - amplitude * 1.5\n\t\t\t]\n\t\t});\n\t\tthis.svg.path(str, styles).transform({\n\t\t\ttranslate: [\n\t\t\t\t-period / 4,\n\t\t\t\twaveWidth * i - amplitude * 1.5 + waveWidth * 36\n\t\t\t]\n\t\t});\n\t}\n};\n\nfunction buildChevronShape(width, height) {\n\tvar e = height * 0.66;\n\treturn [\n\t\t[\n\t\t\t0, 0,\n\t\t\twidth / 2, height - e,\n\t\t\twidth / 2, height,\n\t\t\t0, e,\n\t\t\t0, 0\n\t\t],\n\t\t[\n\t\t\twidth / 2, height - e,\n\t\t\twidth, 0,\n\t\t\twidth, e,\n\t\t\twidth / 2, height,\n\t\t\twidth / 2, height - e\n\t\t]\n\t].map(function (x) { return x.join(','); });\n}\n\nPattern.prototype.geoChevrons = function () {\n\tvar chevronWidth = map(hexVal(this.hash, 0), 0, 15, 30, 80);\n\tvar chevronHeight = map(hexVal(this.hash, 0), 0, 15, 30, 80);\n\tvar chevron = buildChevronShape(chevronWidth, chevronHeight);\n\tvar fill, i, opacity, styles, val, x, y;\n\n\tthis.svg.setWidth(chevronWidth * 6);\n\tthis.svg.setHeight(chevronHeight * 6 * 0.66);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tstroke: STROKE_COLOR,\n\t\t\t\t'stroke-opacity': STROKE_OPACITY,\n\t\t\t\tfill: fill,\n\t\t\t\t'fill-opacity': opacity,\n\t\t\t\t'stroke-width': 1\n\t\t\t};\n\n\t\t\tthis.svg.group(styles).transform({\n\t\t\t\ttranslate: [\n\t\t\t\t\tx * chevronWidth,\n\t\t\t\t\ty * chevronHeight * 0.66 - chevronHeight / 2\n\t\t\t\t]\n\t\t\t}).polyline(chevron).end();\n\n\t\t\t// Add an extra row at the end that matches the first row, for tiling.\n\t\t\tif (y === 0) {\n\t\t\t\tthis.svg.group(styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tx * chevronWidth,\n\t\t\t\t\t\t6 * chevronHeight * 0.66 - chevronHeight / 2\n\t\t\t\t\t]\n\t\t\t\t}).polyline(chevron).end();\n\t\t\t}\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nfunction buildPlusShape(squareSize) {\n\treturn [\n\t\t[squareSize, 0, squareSize, squareSize * 3],\n\t\t[0, squareSize, squareSize * 3, squareSize]\n\t];\n}\n\nPattern.prototype.geoPlusSigns = function () {\n\tvar squareSize = map(hexVal(this.hash, 0), 0, 15, 10, 25);\n\tvar plusSize = squareSize * 3;\n\tvar plusShape = buildPlusShape(squareSize);\n\tvar dx, fill, i, opacity, styles, val, x, y;\n\n\tthis.svg.setWidth(squareSize * 12);\n\tthis.svg.setHeight(squareSize * 12);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\t\t\tdx = (y % 2 === 0) ? 0 : 1;\n\n\t\t\tstyles = {\n\t\t\t\tfill: fill,\n\t\t\t\tstroke: STROKE_COLOR,\n\t\t\t\t'stroke-opacity': STROKE_OPACITY,\n\t\t\t\t'fill-opacity': opacity\n\t\t\t};\n\n\t\t\tthis.svg.group(styles).transform({\n\t\t\t\ttranslate: [\n\t\t\t\t\tx * plusSize - x * squareSize + dx * squareSize - squareSize,\n\t\t\t\t\ty * plusSize - y * squareSize - plusSize / 2\n\t\t\t\t]\n\t\t\t}).rect(plusShape).end();\n\n\t\t\t// Add an extra column on the right for tiling.\n\t\t\tif (x === 0) {\n\t\t\t\tthis.svg.group(styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t4 * plusSize - x * squareSize + dx * squareSize - squareSize,\n\t\t\t\t\t\ty * plusSize - y * squareSize - plusSize / 2\n\t\t\t\t\t]\n\t\t\t\t}).rect(plusShape).end();\n\t\t\t}\n\n\t\t\t// Add an extra row on the bottom that matches the first row, for tiling\n\t\t\tif (y === 0) {\n\t\t\t\tthis.svg.group(styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tx * plusSize - x * squareSize + dx * squareSize - squareSize,\n\t\t\t\t\t\t4 * plusSize - y * squareSize - plusSize / 2\n\t\t\t\t\t]\n\t\t\t\t}).rect(plusShape).end();\n\t\t\t}\n\n\t\t\t// Add an extra one at top-right and bottom-right, for tiling\n\t\t\tif (x === 0 && y === 0) {\n\t\t\t\tthis.svg.group(styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t4 * plusSize - x * squareSize + dx * squareSize - squareSize,\n\t\t\t\t\t\t4 * plusSize - y * squareSize - plusSize / 2\n\t\t\t\t\t]\n\t\t\t\t}).rect(plusShape).end();\n\t\t\t}\n\n\t\t\ti++;\n\t\t}\n\t}\n};\n\nPattern.prototype.geoXes = function () {\n\tvar squareSize = map(hexVal(this.hash, 0), 0, 15, 10, 25);\n\tvar xShape = buildPlusShape(squareSize);\n\tvar xSize = squareSize * 3 * 0.943;\n\tvar dy, fill, i, opacity, styles, val, x, y;\n\n\tthis.svg.setWidth(xSize * 3);\n\tthis.svg.setHeight(xSize * 3);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tdy = x % 2 === 0 ? y * xSize - xSize * 0.5 : y * xSize - xSize * 0.5 + xSize / 4;\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tfill: fill,\n\t\t\t\topacity: opacity\n\t\t\t};\n\n\t\t\tthis.svg.group(styles).transform({\n\t\t\t\ttranslate: [\n\t\t\t\t\tx * xSize / 2 - xSize / 2,\n\t\t\t\t\tdy - y * xSize / 2\n\t\t\t\t],\n\t\t\t\trotate: [\n\t\t\t\t\t45,\n\t\t\t\t\txSize / 2,\n\t\t\t\t\txSize / 2\n\t\t\t\t]\n\t\t\t}).rect(xShape).end();\n\n\t\t\t// Add an extra column on the right for tiling.\n\t\t\tif (x === 0) {\n\t\t\t\tthis.svg.group(styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t6 * xSize / 2 - xSize / 2,\n\t\t\t\t\t\tdy - y * xSize / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\t45,\n\t\t\t\t\t\txSize / 2,\n\t\t\t\t\t\txSize / 2\n\t\t\t\t\t]\n\t\t\t\t}).rect(xShape).end();\n\t\t\t}\n\n\t\t\t// // Add an extra row on the bottom that matches the first row, for tiling.\n\t\t\tif (y === 0) {\n\t\t\t\tdy = x % 2 === 0 ? 6 * xSize - xSize / 2 : 6 * xSize - xSize / 2 + xSize / 4;\n\t\t\t\tthis.svg.group(styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tx * xSize / 2 - xSize / 2,\n\t\t\t\t\t\tdy - 6 * xSize / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\t45,\n\t\t\t\t\t\txSize / 2,\n\t\t\t\t\t\txSize / 2\n\t\t\t\t\t]\n\t\t\t\t}).rect(xShape).end();\n\t\t\t}\n\n\t\t\t// These can hang off the bottom, so put a row at the top for tiling.\n\t\t\tif (y === 5) {\n\t\t\t\tthis.svg.group(styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tx * xSize / 2 - xSize / 2,\n\t\t\t\t\t\tdy - 11 * xSize / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\t45,\n\t\t\t\t\t\txSize / 2,\n\t\t\t\t\t\txSize / 2\n\t\t\t\t\t]\n\t\t\t\t}).rect(xShape).end();\n\t\t\t}\n\n\t\t\t// Add an extra one at top-right and bottom-right, for tiling\n\t\t\tif (x === 0 && y === 0) {\n\t\t\t\tthis.svg.group(styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t6 * xSize / 2 - xSize / 2,\n\t\t\t\t\t\tdy - 6 * xSize / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\t45,\n\t\t\t\t\t\txSize / 2,\n\t\t\t\t\t\txSize / 2\n\t\t\t\t\t]\n\t\t\t\t}).rect(xShape).end();\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\t}\n};\n\nPattern.prototype.geoOverlappingCircles = function () {\n\tvar scale = hexVal(this.hash, 0);\n\tvar diameter = map(scale, 0, 15, 25, 200);\n\tvar radius = diameter / 2;\n\tvar circle, fill, i, opacity, styles, val, x, y;\n\n\tthis.svg.setWidth(radius * 6);\n\tthis.svg.setHeight(radius * 6);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tfill: fill,\n\t\t\t\topacity: opacity\n\t\t\t};\n\n\t\t\tthis.svg.circle(x * radius, y * radius, radius, styles);\n\n\t\t\t// Add an extra one at top-right, for tiling.\n\t\t\tif (x === 0) {\n\t\t\t\tthis.svg.circle(6 * radius, y * radius, radius, styles);\n\t\t\t}\n\n\t\t\t// // Add an extra row at the end that matches the first row, for tiling.\n\t\t\tif (y === 0) {\n\t\t\t\tthis.svg.circle(x * radius, 6 * radius, radius, styles);\n\t\t\t}\n\n\t\t\t// // Add an extra one at bottom-right, for tiling.\n\t\t\tif (x === 0 && y === 0) {\n\t\t\t\tthis.svg.circle(6 * radius, 6 * radius, radius, styles);\n\t\t\t}\n\n\t\t\ti++;\n\t\t}\n\t}\n};\n\nfunction buildOctogonShape(squareSize) {\n\tvar s = squareSize;\n\tvar c = s * 0.33;\n\treturn [\n\t\tc, 0,\n\t\ts - c, 0,\n\t\ts, c,\n\t\ts, s - c,\n\t\ts - c, s,\n\t\tc, s,\n\t\t0, s - c,\n\t\t0, c,\n\t\tc, 0\n\t].join(',');\n}\n\nPattern.prototype.geoOctogons = function () {\n\tvar squareSize = map(hexVal(this.hash, 0), 0, 15, 10, 60);\n\tvar tile = buildOctogonShape(squareSize);\n\tvar fill, i, opacity, val, x, y;\n\n\tthis.svg.setWidth(squareSize * 6);\n\tthis.svg.setHeight(squareSize * 6);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tthis.svg.polyline(tile, {\n\t\t\t\tfill: fill,\n\t\t\t\t'fill-opacity': opacity,\n\t\t\t\tstroke: STROKE_COLOR,\n\t\t\t\t'stroke-opacity': STROKE_OPACITY\n\t\t\t}).transform({\n\t\t\t\ttranslate: [\n\t\t\t\t\tx * squareSize,\n\t\t\t\t\ty * squareSize\n\t\t\t\t]\n\t\t\t});\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nPattern.prototype.geoSquares = function () {\n\tvar squareSize = map(hexVal(this.hash, 0), 0, 15, 10, 60);\n\tvar fill, i, opacity, val, x, y;\n\n\tthis.svg.setWidth(squareSize * 6);\n\tthis.svg.setHeight(squareSize * 6);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tthis.svg.rect(x * squareSize, y * squareSize, squareSize, squareSize, {\n\t\t\t\tfill: fill,\n\t\t\t\t'fill-opacity': opacity,\n\t\t\t\tstroke: STROKE_COLOR,\n\t\t\t\t'stroke-opacity': STROKE_OPACITY\n\t\t\t});\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nPattern.prototype.geoConcentricCircles = function () {\n\tvar scale = hexVal(this.hash, 0);\n\tvar ringSize = map(scale, 0, 15, 10, 60);\n\tvar strokeWidth = ringSize / 5;\n\tvar fill, i, opacity, val, x, y;\n\n\tthis.svg.setWidth((ringSize + strokeWidth) * 6);\n\tthis.svg.setHeight((ringSize + strokeWidth) * 6);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tthis.svg.circle(\n\t\t\t\tx * ringSize + x * strokeWidth + (ringSize + strokeWidth) / 2,\n\t\t\t\ty * ringSize + y * strokeWidth + (ringSize + strokeWidth) / 2,\n\t\t\t\tringSize / 2,\n\t\t\t\t{\n\t\t\t\t\tfill: 'none',\n\t\t\t\t\tstroke: fill,\n\t\t\t\t\topacity: opacity,\n\t\t\t\t\t'stroke-width': strokeWidth + 'px'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tval = hexVal(this.hash, 39 - i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tthis.svg.circle(\n\t\t\t\tx * ringSize + x * strokeWidth + (ringSize + strokeWidth) / 2,\n\t\t\t\ty * ringSize + y * strokeWidth + (ringSize + strokeWidth) / 2,\n\t\t\t\tringSize / 4,\n\t\t\t\t{\n\t\t\t\t\tfill: fill,\n\t\t\t\t\t'fill-opacity': opacity\n\t\t\t\t}\n\t\t\t);\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nPattern.prototype.geoOverlappingRings = function () {\n\tvar scale = hexVal(this.hash, 0);\n\tvar ringSize = map(scale, 0, 15, 10, 60);\n\tvar strokeWidth = ringSize / 4;\n\tvar fill, i, opacity, styles, val, x, y;\n\n\tthis.svg.setWidth(ringSize * 6);\n\tthis.svg.setHeight(ringSize * 6);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tfill: 'none',\n\t\t\t\tstroke: fill,\n\t\t\t\topacity: opacity,\n\t\t\t\t'stroke-width': strokeWidth + 'px'\n\t\t\t};\n\n\t\t\tthis.svg.circle(x * ringSize, y * ringSize, ringSize - strokeWidth / 2, styles);\n\n\t\t\t// Add an extra one at top-right, for tiling.\n\t\t\tif (x === 0) {\n\t\t\t\tthis.svg.circle(6 * ringSize, y * ringSize, ringSize - strokeWidth / 2, styles);\n\t\t\t}\n\n\t\t\tif (y === 0) {\n\t\t\t\tthis.svg.circle(x * ringSize, 6 * ringSize, ringSize - strokeWidth / 2, styles);\n\t\t\t}\n\n\t\t\tif (x === 0 && y === 0) {\n\t\t\t\tthis.svg.circle(6 * ringSize, 6 * ringSize, ringSize - strokeWidth / 2, styles);\n\t\t\t}\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nfunction buildTriangleShape(sideLength, height) {\n\tvar halfWidth = sideLength / 2;\n\treturn [\n\t\thalfWidth, 0,\n\t\tsideLength, height,\n\t\t0, height,\n\t\thalfWidth, 0\n\t].join(',');\n}\n\nPattern.prototype.geoTriangles = function () {\n\tvar scale = hexVal(this.hash, 0);\n\tvar sideLength = map(scale, 0, 15, 15, 80);\n\tvar triangleHeight = sideLength / 2 * Math.sqrt(3);\n\tvar triangle = buildTriangleShape(sideLength, triangleHeight);\n\tvar fill, i, opacity, rotation, styles, val, x, y;\n\n\tthis.svg.setWidth(sideLength * 3);\n\tthis.svg.setHeight(triangleHeight * 6);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tfill: fill,\n\t\t\t\t'fill-opacity': opacity,\n\t\t\t\tstroke: STROKE_COLOR,\n\t\t\t\t'stroke-opacity': STROKE_OPACITY\n\t\t\t};\n\n\t\t\tif (y % 2 === 0) {\n\t\t\t\trotation = x % 2 === 0 ? 180 : 0;\n\t\t\t} else {\n\t\t\t\trotation = x % 2 !== 0 ? 180 : 0;\n\t\t\t}\n\n\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\ttranslate: [\n\t\t\t\t\tx * sideLength * 0.5 - sideLength / 2,\n\t\t\t\t\ttriangleHeight * y\n\t\t\t\t],\n\t\t\t\trotate: [\n\t\t\t\t\trotation,\n\t\t\t\t\tsideLength / 2,\n\t\t\t\t\ttriangleHeight / 2\n\t\t\t\t]\n\t\t\t});\n\n\t\t\t// Add an extra one at top-right, for tiling.\n\t\t\tif (x === 0) {\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t6 * sideLength * 0.5 - sideLength / 2,\n\t\t\t\t\t\ttriangleHeight * y\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\trotation,\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\ttriangleHeight / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nfunction buildDiamondShape(width, height) {\n\treturn [\n\t\twidth / 2, 0,\n\t\twidth, height / 2,\n\t\twidth / 2, height,\n\t\t0, height / 2\n\t].join(',');\n}\n\nPattern.prototype.geoDiamonds = function () {\n\tvar diamondWidth = map(hexVal(this.hash, 0), 0, 15, 10, 50);\n\tvar diamondHeight = map(hexVal(this.hash, 1), 0, 15, 10, 50);\n\tvar diamond = buildDiamondShape(diamondWidth, diamondHeight);\n\tvar dx, fill, i, opacity, styles, val, x, y;\n\n\tthis.svg.setWidth(diamondWidth * 6);\n\tthis.svg.setHeight(diamondHeight * 3);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tfill: fill,\n\t\t\t\t'fill-opacity': opacity,\n\t\t\t\tstroke: STROKE_COLOR,\n\t\t\t\t'stroke-opacity': STROKE_OPACITY\n\t\t\t};\n\n\t\t\tdx = (y % 2 === 0) ? 0 : diamondWidth / 2;\n\n\t\t\tthis.svg.polyline(diamond, styles).transform({\n\t\t\t\ttranslate: [\n\t\t\t\t\tx * diamondWidth - diamondWidth / 2 + dx,\n\t\t\t\t\tdiamondHeight / 2 * y - diamondHeight / 2\n\t\t\t\t]\n\t\t\t});\n\n\t\t\t// Add an extra one at top-right, for tiling.\n\t\t\tif (x === 0) {\n\t\t\t\tthis.svg.polyline(diamond, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t6 * diamondWidth - diamondWidth / 2 + dx,\n\t\t\t\t\t\tdiamondHeight / 2 * y - diamondHeight / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Add an extra row at the end that matches the first row, for tiling.\n\t\t\tif (y === 0) {\n\t\t\t\tthis.svg.polyline(diamond, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tx * diamondWidth - diamondWidth / 2 + dx,\n\t\t\t\t\t\tdiamondHeight / 2 * 6 - diamondHeight / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Add an extra one at bottom-right, for tiling.\n\t\t\tif (x === 0 && y === 0) {\n\t\t\t\tthis.svg.polyline(diamond, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t6 * diamondWidth - diamondWidth / 2 + dx,\n\t\t\t\t\t\tdiamondHeight / 2 * 6 - diamondHeight / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nPattern.prototype.geoNestedSquares = function () {\n\tvar blockSize = map(hexVal(this.hash, 0), 0, 15, 4, 12);\n\tvar squareSize = blockSize * 7;\n\tvar fill, i, opacity, styles, val, x, y;\n\n\tthis.svg.setWidth((squareSize + blockSize) * 6 + blockSize * 6);\n\tthis.svg.setHeight((squareSize + blockSize) * 6 + blockSize * 6);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tfill: 'none',\n\t\t\t\tstroke: fill,\n\t\t\t\topacity: opacity,\n\t\t\t\t'stroke-width': blockSize + 'px'\n\t\t\t};\n\n\t\t\tthis.svg.rect(x * squareSize + x * blockSize * 2 + blockSize / 2,\n\t\t\t y * squareSize + y * blockSize * 2 + blockSize / 2,\n\t\t\t squareSize, squareSize, styles);\n\n\t\t\tval = hexVal(this.hash, 39 - i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tfill: 'none',\n\t\t\t\tstroke: fill,\n\t\t\t\topacity: opacity,\n\t\t\t\t'stroke-width': blockSize + 'px'\n\t\t\t};\n\n\t\t\tthis.svg.rect(x * squareSize + x * blockSize * 2 + blockSize / 2 + blockSize * 2,\n\t\t\t y * squareSize + y * blockSize * 2 + blockSize / 2 + blockSize * 2,\n\t\t\t blockSize * 3, blockSize * 3, styles);\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nfunction buildRightTriangleShape(sideLength) {\n\treturn [\n\t\t0, 0,\n\t\tsideLength, sideLength,\n\t\t0, sideLength,\n\t\t0, 0\n\t].join(',');\n}\n\nfunction drawInnerMosaicTile(svg, x, y, triangleSize, vals) {\n\tvar triangle = buildRightTriangleShape(triangleSize);\n\tvar opacity = fillOpacity(vals[0]);\n\tvar fill = fillColor(vals[0]);\n\tvar styles = {\n\t\tstroke: STROKE_COLOR,\n\t\t'stroke-opacity': STROKE_OPACITY,\n\t\t'fill-opacity': opacity,\n\t\tfill: fill\n\t};\n\n\tsvg.polyline(triangle, styles).transform({\n\t\ttranslate: [\n\t\t\tx + triangleSize,\n\t\t\ty\n\t\t],\n\t\tscale: [-1, 1]\n\t});\n\tsvg.polyline(triangle, styles).transform({\n\t\ttranslate: [\n\t\t\tx + triangleSize,\n\t\t\ty + triangleSize * 2\n\t\t],\n\t\tscale: [1, -1]\n\t});\n\n\topacity = fillOpacity(vals[1]);\n\tfill = fillColor(vals[1]);\n\tstyles = {\n\t\tstroke: STROKE_COLOR,\n\t\t'stroke-opacity': STROKE_OPACITY,\n\t\t'fill-opacity': opacity,\n\t\tfill: fill\n\t};\n\n\tsvg.polyline(triangle, styles).transform({\n\t\ttranslate: [\n\t\t\tx + triangleSize,\n\t\t\ty + triangleSize * 2\n\t\t],\n\t\tscale: [-1, -1]\n\t});\n\tsvg.polyline(triangle, styles).transform({\n\t\ttranslate: [\n\t\t\tx + triangleSize,\n\t\t\ty\n\t\t],\n\t\tscale: [1, 1]\n\t});\n}\n\nfunction drawOuterMosaicTile(svg, x, y, triangleSize, val) {\n\tvar opacity = fillOpacity(val);\n\tvar fill = fillColor(val);\n\tvar triangle = buildRightTriangleShape(triangleSize);\n\tvar styles = {\n\t\tstroke: STROKE_COLOR,\n\t\t'stroke-opacity': STROKE_OPACITY,\n\t\t'fill-opacity': opacity,\n\t\tfill: fill\n\t};\n\n\tsvg.polyline(triangle, styles).transform({\n\t\ttranslate: [\n\t\t\tx,\n\t\t\ty + triangleSize\n\t\t],\n\t\tscale: [1, -1]\n\t});\n\tsvg.polyline(triangle, styles).transform({\n\t\ttranslate: [\n\t\t\tx + triangleSize * 2,\n\t\t\ty + triangleSize\n\t\t],\n\t\tscale: [-1, -1]\n\t});\n\tsvg.polyline(triangle, styles).transform({\n\t\ttranslate: [\n\t\t\tx,\n\t\t\ty + triangleSize\n\t\t],\n\t\tscale: [1, 1]\n\t});\n\tsvg.polyline(triangle, styles).transform({\n\t\ttranslate: [\n\t\t\tx + triangleSize * 2,\n\t\t\ty + triangleSize\n\t\t],\n\t\tscale: [-1, 1]\n\t});\n}\n\nPattern.prototype.geoMosaicSquares = function () {\n\tvar triangleSize = map(hexVal(this.hash, 0), 0, 15, 15, 50);\n\tvar i, x, y;\n\n\tthis.svg.setWidth(triangleSize * 8);\n\tthis.svg.setHeight(triangleSize * 8);\n\n\ti = 0;\n\tfor (y = 0; y < 4; y++) {\n\t\tfor (x = 0; x < 4; x++) {\n\t\t\tif (x % 2 === 0) {\n\t\t\t\tif (y % 2 === 0) {\n\t\t\t\t\tdrawOuterMosaicTile(this.svg,\n\t\t\t\t\t\tx * triangleSize * 2,\n\t\t\t\t\t\ty * triangleSize * 2,\n\t\t\t\t\t\ttriangleSize,\n\t\t\t\t\t\thexVal(this.hash, i)\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tdrawInnerMosaicTile(this.svg,\n\t\t\t\t\t\tx * triangleSize * 2,\n\t\t\t\t\t\ty * triangleSize * 2,\n\t\t\t\t\t\ttriangleSize,\n\t\t\t\t\t\t[hexVal(this.hash, i), hexVal(this.hash, i + 1)]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (y % 2 === 0) {\n\t\t\t\t\tdrawInnerMosaicTile(this.svg,\n\t\t\t\t\t\tx * triangleSize * 2,\n\t\t\t\t\t\ty * triangleSize * 2,\n\t\t\t\t\t\ttriangleSize,\n\t\t\t\t\t\t[hexVal(this.hash, i), hexVal(this.hash, i + 1)]\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tdrawOuterMosaicTile(this.svg,\n\t\t\t\t\t\tx * triangleSize * 2,\n\t\t\t\t\t\ty * triangleSize * 2,\n\t\t\t\t\t\ttriangleSize,\n\t\t\t\t\t\thexVal(this.hash, i)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nPattern.prototype.geoPlaid = function () {\n\tvar height = 0;\n\tvar width = 0;\n\tvar fill, i, opacity, space, stripeHeight, stripeWidth, val;\n\n\t// Horizontal stripes\n\ti = 0;\n\twhile (i < 36) {\n\t\tspace = hexVal(this.hash, i);\n\t\theight += space + 5;\n\n\t\tval = hexVal(this.hash, i + 1);\n\t\topacity = fillOpacity(val);\n\t\tfill = fillColor(val);\n\t\tstripeHeight = val + 5;\n\n\t\tthis.svg.rect(0, height, '100%', stripeHeight, {\n\t\t\topacity: opacity,\n\t\t\tfill: fill\n\t\t});\n\n\t\theight += stripeHeight;\n\t\ti += 2;\n\t}\n\n\t// Vertical stripes\n\ti = 0;\n\twhile (i < 36) {\n\t\tspace = hexVal(this.hash, i);\n\t\twidth += space + 5;\n\n\t\tval = hexVal(this.hash, i + 1);\n\t\topacity = fillOpacity(val);\n\t\tfill = fillColor(val);\n\t\tstripeWidth = val + 5;\n\n\t\tthis.svg.rect(width, 0, stripeWidth, '100%', {\n\t\t\topacity: opacity,\n\t\t\tfill: fill\n\t\t});\n\n\t\twidth += stripeWidth;\n\t\ti += 2;\n\t}\n\n\tthis.svg.setWidth(width);\n\tthis.svg.setHeight(height);\n};\n\nfunction buildRotatedTriangleShape(sideLength, triangleWidth) {\n\tvar halfHeight = sideLength / 2;\n\treturn [\n\t\t0, 0,\n\t\ttriangleWidth, halfHeight,\n\t\t0, sideLength,\n\t\t0, 0\n\t].join(',');\n}\n\nPattern.prototype.geoTessellation = function () {\n\t// 3.4.6.4 semi-regular tessellation\n\tvar sideLength = map(hexVal(this.hash, 0), 0, 15, 5, 40);\n\tvar hexHeight = sideLength * Math.sqrt(3);\n\tvar hexWidth = sideLength * 2;\n\tvar triangleHeight = sideLength / 2 * Math.sqrt(3);\n\tvar triangle = buildRotatedTriangleShape(sideLength, triangleHeight);\n\tvar tileWidth = sideLength * 3 + triangleHeight * 2;\n\tvar tileHeight = (hexHeight * 2) + (sideLength * 2);\n\tvar fill, i, opacity, styles, val;\n\n\tthis.svg.setWidth(tileWidth);\n\tthis.svg.setHeight(tileHeight);\n\n\tfor (i = 0; i < 20; i++) {\n\t\tval = hexVal(this.hash, i);\n\t\topacity = fillOpacity(val);\n\t\tfill = fillColor(val);\n\n\t\tstyles = {\n\t\t\tstroke: STROKE_COLOR,\n\t\t\t'stroke-opacity': STROKE_OPACITY,\n\t\t\tfill: fill,\n\t\t\t'fill-opacity': opacity,\n\t\t\t'stroke-width': 1\n\t\t};\n\n\t\tswitch (i) {\n\t\t\tcase 0: // All 4 corners\n\t\t\t\tthis.svg.rect(-sideLength / 2, -sideLength / 2, sideLength, sideLength, styles);\n\t\t\t\tthis.svg.rect(tileWidth - sideLength / 2, -sideLength / 2, sideLength, sideLength, styles);\n\t\t\t\tthis.svg.rect(-sideLength / 2, tileHeight - sideLength / 2, sideLength, sideLength, styles);\n\t\t\t\tthis.svg.rect(tileWidth - sideLength / 2, tileHeight - sideLength / 2, sideLength, sideLength, styles);\n\t\t\t\tbreak;\n\t\t\tcase 1: // Center / top square\n\t\t\t\tthis.svg.rect(hexWidth / 2 + triangleHeight, hexHeight / 2, sideLength, sideLength, styles);\n\t\t\t\tbreak;\n\t\t\tcase 2: // Side squares\n\t\t\t\tthis.svg.rect(-sideLength / 2, tileHeight / 2 - sideLength / 2, sideLength, sideLength, styles);\n\t\t\t\tthis.svg.rect(tileWidth - sideLength / 2, tileHeight / 2 - sideLength / 2, sideLength, sideLength, styles);\n\t\t\t\tbreak;\n\t\t\tcase 3: // Center / bottom square\n\t\t\t\tthis.svg.rect(hexWidth / 2 + triangleHeight, hexHeight * 1.5 + sideLength, sideLength, sideLength, styles);\n\t\t\t\tbreak;\n\t\t\tcase 4: // Left top / bottom triangle\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\t-sideLength / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\ttriangleHeight / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\ttileHeight - -sideLength / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\ttriangleHeight / 2\n\t\t\t\t\t],\n\t\t\t\t\tscale: [1, -1]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 5: // Right top / bottom triangle\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\ttileWidth - sideLength / 2,\n\t\t\t\t\t\t-sideLength / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\ttriangleHeight / 2\n\t\t\t\t\t],\n\t\t\t\t\tscale: [-1, 1]\n\t\t\t\t});\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\ttileWidth - sideLength / 2,\n\t\t\t\t\t\ttileHeight + sideLength / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\ttriangleHeight / 2\n\t\t\t\t\t],\n\t\t\t\t\tscale: [-1, -1]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 6: // Center / top / right triangle\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\ttileWidth / 2 + sideLength / 2,\n\t\t\t\t\t\thexHeight / 2\n\t\t\t\t\t]});\n\t\t\t\tbreak;\n\t\t\tcase 7: // Center / top / left triangle\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\ttileWidth - tileWidth / 2 - sideLength / 2,\n\t\t\t\t\t\thexHeight / 2\n\t\t\t\t\t],\n\t\t\t\t\tscale: [-1, 1]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 8: // Center / bottom / right triangle\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\ttileWidth / 2 + sideLength / 2,\n\t\t\t\t\t\ttileHeight - hexHeight / 2\n\t\t\t\t\t],\n\t\t\t\t\tscale: [1, -1]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 9: // Center / bottom / left triangle\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\ttileWidth - tileWidth / 2 - sideLength / 2,\n\t\t\t\t\t\ttileHeight - hexHeight / 2\n\t\t\t\t\t],\n\t\t\t\t\tscale: [-1, -1]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 10: // Left / middle triangle\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\ttileHeight / 2 - sideLength / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 11: // Right // middle triangle\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\ttileWidth - sideLength / 2,\n\t\t\t\t\t\ttileHeight / 2 - sideLength / 2\n\t\t\t\t\t],\n\t\t\t\t\tscale: [-1, 1]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 12: // Left / top square\n\t\t\t\tthis.svg.rect(0, 0, sideLength, sideLength, styles).transform({\n\t\t\t\t\ttranslate: [sideLength / 2, sideLength / 2],\n\t\t\t\t\trotate: [-30, 0, 0]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 13: // Right / top square\n\t\t\t\tthis.svg.rect(0, 0, sideLength, sideLength, styles).transform({\n\t\t\t\t\tscale: [-1, 1],\n\t\t\t\t\ttranslate: [-tileWidth + sideLength / 2, sideLength / 2],\n\t\t\t\t\trotate: [-30, 0, 0]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 14: // Left / center-top square\n\t\t\t\tthis.svg.rect(0, 0, sideLength, sideLength, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\ttileHeight / 2 - sideLength / 2 - sideLength\n\t\t\t\t\t],\n\t\t\t\t\trotate: [30, 0, sideLength]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 15: // Right / center-top square\n\t\t\t\tthis.svg.rect(0, 0, sideLength, sideLength, styles).transform({\n\t\t\t\t\tscale: [-1, 1],\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t-tileWidth + sideLength / 2,\n\t\t\t\t\t\ttileHeight / 2 - sideLength / 2 - sideLength\n\t\t\t\t\t],\n\t\t\t\t\trotate: [30, 0, sideLength]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 16: // Left / center-top square\n\t\t\t\tthis.svg.rect(0, 0, sideLength, sideLength, styles).transform({\n\t\t\t\t\tscale: [1, -1],\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\t-tileHeight + tileHeight / 2 - sideLength / 2 - sideLength\n\t\t\t\t\t],\n\t\t\t\t\trotate: [30, 0, sideLength]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 17: // Right / center-bottom square\n\t\t\t\tthis.svg.rect(0, 0, sideLength, sideLength, styles).transform({\n\t\t\t\t\tscale: [-1, -1],\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t-tileWidth + sideLength / 2,\n\t\t\t\t\t\t-tileHeight + tileHeight / 2 - sideLength / 2 - sideLength\n\t\t\t\t\t],\n\t\t\t\t\trotate: [30, 0, sideLength]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 18: // Left / bottom square\n\t\t\t\tthis.svg.rect(0, 0, sideLength, sideLength, styles).transform({\n\t\t\t\t\tscale: [1, -1],\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\t-tileHeight + sideLength / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [-30, 0, 0]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 19: // Right / bottom square\n\t\t\t\tthis.svg.rect(0, 0, sideLength, sideLength, styles).transform({\n\t\t\t\t\tscale: [-1, -1],\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t-tileWidth + sideLength / 2,\n\t\t\t\t\t\t-tileHeight + sideLength / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [-30, 0, 0]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t}\n\t}\n};\n","/*\nhttps://github.com/creationix/git-sha1/blob/master/git-sha1.js\n\nThe MIT License (MIT)\n\nCopyright (c) 2013 Tim Caswell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n'use strict';\n\n// A streaming interface for when nothing is passed in.\nfunction create() {\n\n\tvar h0 = 0x67452301;\n\tvar h1 = 0xEFCDAB89;\n\tvar h2 = 0x98BADCFE;\n\tvar h3 = 0x10325476;\n\tvar h4 = 0xC3D2E1F0;\n\t// The first 64 bytes (16 words) is the data chunk\n\tvar block = new Uint32Array(80), offset = 0, shift = 24;\n\tvar totalLength = 0;\n\n\t// We have a full block to process. Let's do it!\n\tfunction processBlock() {\n\t\t// Extend the sixteen 32-bit words into eighty 32-bit words:\n\t\tfor (var i = 16; i < 80; i++) {\n\t\t\tvar w = block[i - 3] ^ block[i - 8] ^ block[i - 14] ^ block[i - 16];\n\t\t\tblock[i] = (w << 1) | (w >>> 31);\n\t\t}\n\n\t\t// log(block);\n\n\t\t// Initialize hash value for this chunk:\n\t\tvar a = h0;\n\t\tvar b = h1;\n\t\tvar c = h2;\n\t\tvar d = h3;\n\t\tvar e = h4;\n\t\tvar f, k;\n\n\t\t// Main loop:\n\t\tfor (i = 0; i < 80; i++) {\n\t\t\tif (i < 20) {\n\t\t\t\tf = d ^ (b & (c ^ d));\n\t\t\t\tk = 0x5A827999;\n\t\t\t}\n\t\t\telse if (i < 40) {\n\t\t\t\tf = b ^ c ^ d;\n\t\t\t\tk = 0x6ED9EBA1;\n\t\t\t}\n\t\t\telse if (i < 60) {\n\t\t\t\tf = (b & c) | (d & (b | c));\n\t\t\t\tk = 0x8F1BBCDC;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tf = b ^ c ^ d;\n\t\t\t\tk = 0xCA62C1D6;\n\t\t\t}\n\t\t\tvar temp = (a << 5 | a >>> 27) + f + e + k + (block[i] | 0);\n\t\t\te = d;\n\t\t\td = c;\n\t\t\tc = (b << 30 | b >>> 2);\n\t\t\tb = a;\n\t\t\ta = temp;\n\t\t}\n\n\t\t// Add this chunk's hash to result so far:\n\t\th0 = (h0 + a) | 0;\n\t\th1 = (h1 + b) | 0;\n\t\th2 = (h2 + c) | 0;\n\t\th3 = (h3 + d) | 0;\n\t\th4 = (h4 + e) | 0;\n\n\t\t// The block is now reusable.\n\t\toffset = 0;\n\t\tfor (i = 0; i < 16; i++) {\n\t\t\tblock[i] = 0;\n\t\t}\n\t}\n\n\tfunction write(byte) {\n\t\tblock[offset] |= (byte & 0xff) << shift;\n\t\tif (shift) {\n\t\t\tshift -= 8;\n\t\t}\n\t\telse {\n\t\t\toffset++;\n\t\t\tshift = 24;\n\t\t}\n\t\tif (offset === 16) {\n\t\t\tprocessBlock();\n\t\t}\n\t}\n\n\tfunction updateString(string) {\n\t\tvar length = string.length;\n\t\ttotalLength += length * 8;\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\twrite(string.charCodeAt(i));\n\t\t}\n\t}\n\n\t// The user gave us more data. Store it!\n\tfunction update(chunk) {\n\t\tif (typeof chunk === 'string') {\n\t\t\treturn updateString(chunk);\n\t\t}\n\t\tvar length = chunk.length;\n\t\ttotalLength += length * 8;\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\twrite(chunk[i]);\n\t\t}\n\t}\n\n\tfunction toHex(word) {\n\t\tvar hex = '';\n\t\tfor (var i = 28; i >= 0; i -= 4) {\n\t\t\thex += ((word >> i) & 0xf).toString(16);\n\t\t}\n\t\treturn hex;\n\t}\n\n\t// No more data will come, pad the block, process and return the result.\n\tfunction digest() {\n\t\t// Pad\n\t\twrite(0x80);\n\t\tif (offset > 14 || (offset === 14 && shift < 24)) {\n\t\t\tprocessBlock();\n\t\t}\n\t\toffset = 14;\n\t\tshift = 24;\n\n\t\t// 64-bit length big-endian\n\t\twrite(0x00); // numbers this big aren't accurate in javascript anyway\n\t\twrite(0x00); // ..So just hard-code to zero.\n\t\twrite(totalLength > 0xffffffffff ? totalLength / 0x10000000000 : 0x00);\n\t\twrite(totalLength > 0xffffffff ? totalLength / 0x100000000 : 0x00);\n\t\tfor (var s = 24; s >= 0; s -= 8) {\n\t\t\twrite(totalLength >> s);\n\t\t}\n\n\t\t// At this point one last processBlock() should trigger and we can pull out the result.\n\t\treturn toHex(h0) +\n\t\ttoHex(h1) +\n\t\ttoHex(h2) +\n\t\ttoHex(h3) +\n\t\ttoHex(h4);\n\t}\n\n\treturn { update: update, digest: digest };\n}\n\n// Input chunks must be either arrays of bytes or \"raw\" encoded strings\nmodule.exports = function sha1(buffer) {\n\tif (buffer === undefined) {\n\t\treturn create();\n\t}\n\tvar shasum = create();\n\tshasum.update(buffer);\n\treturn shasum.digest();\n};\n","'use strict';\n\nvar extend = require('extend');\nvar XMLNode = require('./xml');\n\nfunction SVG() {\n\tthis.width = 100;\n\tthis.height = 100;\n\tthis.svg = XMLNode('svg');\n\tthis.context = []; // Track nested nodes\n\tthis.setAttributes(this.svg, {\n\t\txmlns: 'http://www.w3.org/2000/svg',\n\t\twidth: this.width,\n\t\theight: this.height\n\t});\n\n\treturn this;\n}\n\nmodule.exports = SVG;\n\n// This is a hack so groups work.\nSVG.prototype.currentContext = function () {\n\treturn this.context[this.context.length - 1] || this.svg;\n};\n\n// This is a hack so groups work.\nSVG.prototype.end = function () {\n\tthis.context.pop();\n\treturn this;\n};\n\nSVG.prototype.currentNode = function () {\n\tvar context = this.currentContext();\n\treturn context.lastChild || context;\n};\n\nSVG.prototype.transform = function (transformations) {\n\tthis.currentNode().setAttribute('transform',\n\t\tObject.keys(transformations).map(function (transformation) {\n\t\t\treturn transformation + '(' + transformations[transformation].join(',') + ')';\n\t\t}).join(' ')\n\t);\n\treturn this;\n};\n\nSVG.prototype.setAttributes = function (el, attrs) {\n\tObject.keys(attrs).forEach(function (attr) {\n\t\tel.setAttribute(attr, attrs[attr]);\n\t});\n};\n\nSVG.prototype.setWidth = function (width) {\n\tthis.svg.setAttribute('width', Math.floor(width));\n};\n\nSVG.prototype.setHeight = function (height) {\n\tthis.svg.setAttribute('height', Math.floor(height));\n};\n\nSVG.prototype.toString = function () {\n\treturn this.svg.toString();\n};\n\nSVG.prototype.rect = function (x, y, width, height, args) {\n\t// Accept array first argument\n\tvar self = this;\n\tif (Array.isArray(x)) {\n\t\tx.forEach(function (a) {\n\t\t\tself.rect.apply(self, a.concat(args));\n\t\t});\n\t\treturn this;\n\t}\n\n\tvar rect = XMLNode('rect');\n\tthis.currentContext().appendChild(rect);\n\tthis.setAttributes(rect, extend({\n\t\tx: x,\n\t\ty: y,\n\t\twidth: width,\n\t\theight: height\n\t}, args));\n\n\treturn this;\n};\n\nSVG.prototype.circle = function (cx, cy, r, args) {\n\tvar circle = XMLNode('circle');\n\tthis.currentContext().appendChild(circle);\n\tthis.setAttributes(circle, extend({\n\t\tcx: cx,\n\t\tcy: cy,\n\t\tr: r\n\t}, args));\n\n\treturn this;\n};\n\nSVG.prototype.path = function (str, args) {\n\tvar path = XMLNode('path');\n\tthis.currentContext().appendChild(path);\n\tthis.setAttributes(path, extend({\n\t\td: str\n\t}, args));\n\n\treturn this;\n};\n\nSVG.prototype.polyline = function (str, args) {\n\t// Accept array first argument\n\tvar self = this;\n\tif (Array.isArray(str)) {\n\t\tstr.forEach(function (s) {\n\t\t\tself.polyline(s, args);\n\t\t});\n\t\treturn this;\n\t}\n\n\tvar polyline = XMLNode('polyline');\n\tthis.currentContext().appendChild(polyline);\n\tthis.setAttributes(polyline, extend({\n\t\tpoints: str\n\t}, args));\n\n\treturn this;\n};\n\n// group and context are hacks\nSVG.prototype.group = function (args) {\n\tvar group = XMLNode('g');\n\tthis.currentContext().appendChild(group);\n\tthis.context.push(group);\n\tthis.setAttributes(group, extend({}, args));\n\treturn this;\n};\n","'use strict';\n\nvar XMLNode = module.exports = function (tagName) {\n\tif (!(this instanceof XMLNode)) {\n\t\treturn new XMLNode(tagName);\n\t}\n\n\tthis.tagName = tagName;\n\tthis.attributes = Object.create(null);\n\tthis.children = [];\n\tthis.lastChild = null;\n\n\treturn this;\n};\n\nXMLNode.prototype.appendChild = function (child) {\n\tthis.children.push(child);\n\tthis.lastChild = child;\n\n\treturn this;\n};\n\nXMLNode.prototype.setAttribute = function (name, value) {\n\tthis.attributes[name] = value;\n\n\treturn this;\n};\n\nXMLNode.prototype.toString = function () {\n\tvar self = this;\n\n\treturn [\n\t\t'<',\n\t\tself.tagName,\n\t\tObject.keys(self.attributes).map(function (attr) {\n\t\t\treturn [\n\t\t\t\t' ',\n\t\t\t\tattr,\n\t\t\t\t'=\"',\n\t\t\t\tself.attributes[attr],\n\t\t\t\t'\"'\n\t\t\t].join('');\n\t\t}).join(''),\n\t\t'>',\n\t\tself.children.map(function (child) {\n\t\t\treturn child.toString();\n\t\t}).join(''),\n\t\t'</',\n\t\tself.tagName,\n\t\t'>'\n\t].join('');\n};\n","var hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nfunction isPlainObject(obj) {\n\tif (!obj || toString.call(obj) !== '[object Object]' || obj.nodeType || obj.setInterval)\n\t\treturn false;\n\n\tvar has_own_constructor = hasOwn.call(obj, 'constructor');\n\tvar has_is_property_of_method = hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !has_own_constructor && !has_is_property_of_method)\n\t\treturn false;\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor ( key in obj ) {}\n\n\treturn key === undefined || hasOwn.call( obj, key );\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t target = arguments[0] || {},\n\t i = 1,\n\t length = arguments.length,\n\t deep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && typeof target !== \"function\") {\n\t\ttarget = {};\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( isPlainObject(copy) || (copyIsArray = Array.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && Array.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/** @module @category Feature Flags */ import { getGlobalStore } from \"@openmrs/esm-state\";\nconst initialFeatureFlags = {\n flags: getFeatureFlagsFromLocalStorage()\n};\n/** @internal */ export const featureFlagsStore = getGlobalStore('feature-flags', initialFeatureFlags);\nfeatureFlagsStore.subscribe((state)=>{\n for (const [flagName, flag] of Object.entries(state.flags)){\n localStorage.setItem(`openmrs:feature-flag:${flagName}`, flag.enabled.toString());\n localStorage.setItem(`openmrs:feature-flag-meta:${flagName}`, JSON.stringify({\n label: flag.label,\n description: flag.description\n }));\n }\n});\nfunction getFeatureFlagsFromLocalStorage() {\n const flags = {};\n for (const key of Object.keys(localStorage)){\n if (key.startsWith('openmrs:feature-flag:')) {\n const flagName = key.replace('openmrs:feature-flag:', '');\n const meta = JSON.parse(localStorage.getItem(`openmrs:feature-flag-meta:${flagName}`) || '{}');\n flags[flagName] = {\n enabled: localStorage.getItem(key) === 'true',\n ...meta\n };\n }\n }\n return flags;\n}\n/**\n * This function creates a feature flag. Call it in top-level code anywhere. It will\n * not reset whether the flag is enabled or not, so it's safe to call it multiple times.\n * Once a feature flag is created, it will appear with a toggle in the Implementer Tools.\n * It can then be used to turn on or off features in the code.\n *\n * @param flagName A code-friendly name for the flag, which will be used to reference it in code\n * @param label A human-friendly name which will be displayed in the Implementer Tools\n * @param description An explanation of what the flag does, which will be displayed in the Implementer Tools\n */ export function registerFeatureFlag(flagName, label, description) {\n featureFlagsStore.setState((state)=>({\n flags: {\n ...state.flags,\n [flagName]: {\n enabled: state.flags[flagName]?.enabled ?? false,\n label,\n description\n }\n }\n }));\n}\n/**\n * This function removes feature flags from local storage that no longer exist in the current state.\n */ export function cleanupObsoleteFeatureFlags() {\n const flags = featureFlagsStore.getState().flags;\n Object.keys(localStorage).filter((key)=>key.startsWith('openmrs:feature-flag:')).forEach((key)=>{\n const flagName = key.replace('openmrs:feature-flag:', '');\n if (!flags[flagName]) {\n localStorage.removeItem(key);\n localStorage.removeItem(`openmrs:feature-flag-meta:${flagName}`);\n }\n });\n}\n/** Use this function to access the current value of the feature flag\n *\n * If you are using React, use `useFeatureFlag` instead.\n */ export function getFeatureFlag(flagName) {\n return featureFlagsStore.getState().flags[flagName].enabled;\n}\n/** Use this function to subscribe to the value of the feature flag\n *\n * If you are using React, use `useFeatureFlag` instead.\n */ export function subscribeToFeatureFlag(flagName, callback) {\n featureFlagsStore.subscribe((state)=>{\n callback(state.flags[flagName].enabled);\n });\n}\n/** @internal for Implementer Tools */ export function setFeatureFlag(flagName, value) {\n featureFlagsStore.setState((state)=>({\n flags: {\n ...state.flags,\n [flagName]: {\n ...state.flags[flagName],\n enabled: value\n }\n }\n }));\n}\n","import { type ConfigSchema, Type, validators } from '@openmrs/esm-config';\nimport { type CarbonTagColor, carbonTagColors } from './utils';\nexport interface StyleguideConfigObject {\n 'Brand color #1': string;\n 'Brand color #2': string;\n 'Brand color #3': string;\n excludePatientIdentifierCodeTypes: {\n uuids: Array<string>;\n };\n implementationName: string;\n patientPhotoConceptUuid: string;\n preferredCalendar: {\n [key: string]: string;\n };\n preferredDateLocale: {\n [key: string]: string;\n };\n diagnosisTags: {\n primaryColor: CarbonTagColor;\n secondaryColor: CarbonTagColor;\n };\n}\n\nconst diagnosisTagConfigSchema: ConfigSchema = {\n primaryColor: {\n _type: Type.String,\n _description: 'The color for displaying primary diagnoses tags',\n _default: 'red',\n _validators: [validators.oneOf(carbonTagColors)],\n },\n secondaryColor: {\n _type: Type.String,\n _description: 'The color for displaying secondary diagnoses tags',\n _default: 'blue',\n _validators: [validators.oneOf(carbonTagColors)],\n },\n};\n\nexport const esmStyleGuideSchema: ConfigSchema = {\n 'Brand color #1': {\n _default: '#005d5d',\n _type: Type.String,\n },\n 'Brand color #2': {\n _default: '#004144',\n _type: Type.String,\n },\n 'Brand color #3': {\n _default: '#007d79',\n _type: Type.String,\n },\n excludePatientIdentifierCodeTypes: {\n uuids: {\n _type: Type.Array,\n _description: 'List of UUIDs of patient identifier types to exclude from rendering in the patient banner',\n _default: [],\n _elements: {\n _type: Type.UUID,\n },\n },\n },\n implementationName: {\n _type: Type.String,\n _description: 'A name of the place (or authority) where all possible locations a user can choose are located.',\n _default: 'Clinic',\n },\n patientPhotoConceptUuid: {\n _type: Type.ConceptUuid,\n _default: '736e8771-e501-4615-bfa7-570c03f4bef5',\n _description:\n \"Used to look up the patient photo, which is stored as an attachment obs. Set to `null` in order to disable the feature and use only generated avatars. To remove the avatars entirely, use extension configuration's `remove` feature.\",\n },\n preferredCalendar: {\n _type: Type.Object,\n _description:\n \"Keys should be locale codes, and values should be the preferred calendar for that locale. For example, {'am': 'ethiopic'}.\",\n _default: {\n am: 'ethiopic',\n },\n _elements: {\n _validators: [\n validators.oneOf([\n 'buddhist',\n 'chinese',\n 'coptic',\n 'dangi',\n 'ethioaa',\n 'ethiopic',\n 'gregory',\n 'hebrew',\n 'indian',\n 'islamic',\n 'islamic-umalqura',\n 'islamic-tbla',\n 'islamic-civil',\n 'islamic-rgsa',\n 'iso8601',\n 'japanese',\n 'persian',\n 'roc',\n 'islamicc',\n ]),\n ],\n },\n },\n preferredDateLocale: {\n _type: Type.Object,\n _description:\n \"Allows setting the locale used for date formatting for any browser locale. Does not affect time formatting. Keys should be locale codes, and values should be the preferred locale for formatting dates. For example, {'en': 'en-US', 'fr-CA': 'en-CA'}.\",\n _default: {\n en: 'en-GB',\n },\n _elements: {\n _type: Type.String,\n },\n },\n diagnosisTags: diagnosisTagConfigSchema,\n};\n","import { createContext, useContext } from 'react';\n\nexport const OpenmrsIntlLocaleContext = createContext<Intl.Locale | null>(null);\n\nexport const useIntlLocale = () => useContext(OpenmrsIntlLocaleContext)!;\n","/** @module @category UI */\nimport { mountRootParcel, type Parcel } from 'single-spa';\nimport { createGlobalStore } from '@openmrs/esm-state';\nimport { getModalRegistration } from '@openmrs/esm-extensions';\nimport { reportError } from '@openmrs/esm-error-handling';\n\ntype ModalInstanceState = 'NEW' | 'MOUNTED' | 'TO_BE_DELETED';\ntype ModalSize = 'xs' | 'sm' | 'md' | 'lg';\n\nexport interface ModalProps {\n size?: ModalSize;\n [key: string]: unknown;\n}\n\ninterface ModalInstance {\n container?: HTMLElement;\n state: ModalInstanceState;\n onClose: () => void;\n parcel?: Parcel | null;\n modalName: string;\n props: ModalProps;\n}\n\ninterface ModalState {\n modalContainer: HTMLElement | null;\n modalStack: Array<ModalInstance>;\n}\n\nconst modalStore = createGlobalStore<ModalState>('modalState', {\n modalContainer: null,\n modalStack: [],\n});\n\nfunction createModalFrame({ size }: { size: ModalSize }) {\n const modalFrame = document.createElement('div');\n modalFrame.className = `cds--modal-container cds--modal-container--${size}`;\n modalFrame.setAttribute('role', 'dialog');\n modalFrame.setAttribute('tabindex', '-1');\n modalFrame.setAttribute('aria-modal', 'true');\n\n return modalFrame;\n}\n\nlet parcelCount = 0;\n\n/**\n * Mounts the named modal into the specified DOM element\n */\nasync function renderModalIntoDOM(\n domElement: HTMLElement,\n modalName: string,\n additionalProps: Record<string, unknown> = {},\n): Promise<Parcel | null> {\n const modalRegistration = getModalRegistration(modalName);\n let parcel: Parcel | null = null;\n\n if (domElement) {\n if (!modalRegistration) {\n throw Error(`No modal named '${modalName}' has been registered.`);\n }\n\n const { load } = modalRegistration;\n\n const { default: result, ...lifecycle } = await load();\n const id = parcelCount++;\n parcel = mountRootParcel(\n {\n ...(result ?? lifecycle),\n name: `${modalName}-${id}`,\n },\n {\n ...additionalProps,\n domElement,\n },\n );\n } else {\n reportError(`Failed to launch modal. Please notify your administrator. Modal name: ${modalName}`);\n }\n\n return parcel;\n}\n\nconst original = window.getComputedStyle(document.body).overflow;\n\nfunction handleModalStateUpdate({ modalStack, modalContainer }: ModalState) {\n if (!modalContainer) {\n return;\n }\n\n if (modalStack.length) {\n // ensure the container is visible\n if (!modalContainer.style.visibility) {\n addEventListener('keydown', handleEscKey);\n document.body.style.overflow = 'hidden';\n modalContainer.style.visibility = 'unset';\n }\n\n modalStack.forEach((instance, index) => {\n switch (instance.state) {\n case 'NEW': {\n const modalFrame = createModalFrame({ size: instance.props?.size ?? 'md' });\n instance.container = modalFrame;\n renderModalIntoDOM(modalFrame, instance.modalName, instance.props).then((parcel) => {\n instance.parcel = parcel;\n instance.state = 'MOUNTED';\n modalContainer.prepend(modalFrame);\n modalFrame.style.visibility = 'unset';\n });\n break;\n }\n\n case 'MOUNTED':\n if (instance.container) {\n instance.container.style.visibility = index ? 'hidden' : 'unset';\n }\n break;\n\n case 'TO_BE_DELETED':\n instance.onClose();\n instance.parcel?.unmount?.();\n instance.container?.remove();\n setTimeout(() => {\n modalStore.setState({\n modalContainer,\n modalStack: modalStack.filter((x) => x !== instance),\n });\n }, 0);\n break;\n }\n });\n } else {\n modalContainer.style.removeProperty('visibility');\n document.body.style.overflow = original;\n removeEventListener('keydown', handleEscKey);\n }\n}\n\nfunction openInstance(instance: ModalInstance) {\n const state = modalStore.getState();\n const modalStack = [instance, ...state.modalStack];\n\n modalStore.setState({\n ...state,\n modalStack,\n });\n}\n\nfunction closeInstance(instance: ModalInstance) {\n const state = modalStore.getState();\n const modalStack = state.modalStack.map(\n (x): ModalInstance => (x === instance ? { ...x, state: 'TO_BE_DELETED' } : x),\n );\n modalStore.setState({\n ...state,\n modalStack,\n });\n}\n\nfunction closeHighestInstance() {\n const state = modalStore.getState();\n const [top] = state.modalStack;\n\n if (top) {\n closeInstance(top);\n }\n}\n\nfunction handleEscKey(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n closeHighestInstance();\n }\n}\n\n/**\n * @internal\n * Sets up the modals system. Should be called in the app shell during initialization.\n */\nexport function setupModals(modalContainer: HTMLElement | null) {\n modalStore.subscribe(handleModalStateUpdate);\n\n modalStore.setState({\n ...modalStore.getState(),\n modalContainer,\n });\n}\n\n/**\n * Shows a modal dialog.\n *\n * The modal must have been registered by name. This should be done in the `routes.json` file of the\n * app that defines the modal. Note that both the `<ModalHeader>` and `<ModalBody>` should be at the\n * top level of the modal component (wrapped in a React.Fragment), or else the content of the modal\n * body might not vertical-scroll properly.\n *\n * @param modalName The name of the modal to show.\n * @param props The optional props to provide to the modal.\n * @param onClose The optional callback to call when the modal is closed.\n * @returns The dispose function to force closing the modal dialog.\n */\nexport function showModal(modalName: string, props: ModalProps = {}, onClose: () => void = () => {}) {\n const close = () => {\n const state = modalStore.getState();\n const item = state.modalStack.find((m) => m.onClose === onClose);\n\n if (item) {\n closeInstance(item);\n }\n };\n\n const modalRegistration = getModalRegistration(modalName);\n if (!modalRegistration) {\n reportError(`Failed to launch modal. Please notify your administrator. Modal name: \"${modalName}\"`);\n } else {\n openInstance({\n state: 'NEW',\n onClose,\n modalName,\n props: {\n close,\n ...props,\n },\n });\n }\n\n return close;\n}\n","/** @module @category UI */\nimport React from 'react';\nimport { Subject } from 'rxjs';\nimport type { InlineNotificationMeta, NotificationDescriptor } from './notification.component';\nimport type { ActionableNotificationMeta, ActionableNotificationDescriptor } from './actionable-notification.component';\nimport ActiveNotifications from './active-notifications.component';\nimport ActionableActiveNotifications from './active-actionable-notifications.component';\nimport isEmpty from 'lodash-es/isEmpty';\nimport { createRoot } from 'react-dom/client';\n\nconst inlineNotificationsSubject = new Subject<InlineNotificationMeta>();\nlet notificationId = 0;\n\nconst actionableNotificationsSubject = new Subject<ActionableNotificationMeta>();\nlet actionableNotificationId = 0;\n\n/**\n * Starts a rendering host for inline notifications. Should only be used by the app shell.\n * Under normal conditions there is no need to use this function.\n * @param target The container target that hosts the inline notifications.\n */\nexport function renderInlineNotifications(target: HTMLElement | null) {\n if (target) {\n const root = createRoot(target);\n root.render(<ActiveNotifications subject={inlineNotificationsSubject} />);\n }\n}\n\nfunction isNotEmpty(description: React.ReactNode) {\n if (typeof description === 'string') {\n return description.trim().length > 0;\n } else if (typeof description === 'object') {\n return description instanceof Error || !isEmpty(description);\n }\n\n return false;\n}\n\n/**\n * Displays an inline notification in the UI.\n * @param notification The description of the notification to display.\n */\nexport function showNotification(notification: NotificationDescriptor) {\n if (notification && isNotEmpty(notification.description)) {\n if ((notification.description as unknown) instanceof Error) {\n notification.description = notification.description.toLocaleString();\n }\n\n setTimeout(() => {\n // always use in subsequent cycle\n inlineNotificationsSubject.next({\n ...notification,\n id: notificationId++,\n });\n }, 0);\n } else {\n console.error(\n `showNotification must be called with an object having a 'description' property that is a non-empty string or object`,\n );\n }\n}\n\n// Actionable Notifications\n\nexport function renderActionableNotifications(target: HTMLElement | null) {\n if (target) {\n const root = createRoot(target);\n root.render(<ActionableActiveNotifications subject={actionableNotificationsSubject} />);\n }\n}\n\nfunction isNotActionableNotificationEmpty(subtitle: React.ReactNode) {\n return typeof subtitle === 'string'\n ? subtitle.trim().length > 0\n : typeof subtitle === 'object'\n ? !isEmpty(subtitle)\n : false;\n}\n\n/**\n * Displays an actionable notification in the UI.\n * @param notification The description of the notification to display.\n */\n\nexport function showActionableNotification(notification: ActionableNotificationDescriptor) {\n if (notification && isNotActionableNotificationEmpty(notification.actionButtonLabel)) {\n setTimeout(() => {\n // always use in subsequent cycle\n actionableNotificationsSubject.next({\n ...notification,\n id: actionableNotificationId++,\n });\n }, 0);\n } else {\n console.error(`showActionableNotification must be called with an actionButtonLabel that is a non-empty string`);\n }\n}\n","/** @module @category UI */\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Subject } from 'rxjs';\n\nimport type { SnackbarDescriptor, SnackbarMeta } from './snackbar.component';\nimport ActiveSnackbars from './active-snackbar.component';\n\nconst snackbarsSubject = new Subject<SnackbarMeta>();\nlet snackbarId = 0;\n\n/**\n * Starts a rendering host for snack bar notifications. Should only be used by the app shell.\n * Under normal conditions there is no need to use this function.\n * @param target The container target that hosts the snack bar notifications.\n */\nexport function renderSnackbars(target: HTMLElement | null) {\n if (target) {\n const root = createRoot(target);\n root.render(<ActiveSnackbars subject={snackbarsSubject} />);\n }\n}\n\nfunction isNotEmpty(title: string) {\n return typeof title === 'string' ? title.trim().length > 0 : false;\n}\n\n/**\n * Displays a snack bar notification in the UI.\n * @param snackbar The description of the snack bar to display.\n */\nexport function showSnackbar(snackbar: SnackbarDescriptor) {\n if (snackbar && isNotEmpty(snackbar.title)) {\n setTimeout(() => {\n snackbarsSubject.next({\n ...snackbar,\n id: snackbarId++,\n });\n }, 0);\n } else {\n console.error(`showSnackbar must be called with an object having a 'title' property that is a non-empty string`);\n }\n}\n","/** @module @category UI */\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Subject } from 'rxjs';\nimport type { ToastDescriptor, ToastNotificationMeta } from './toast.component';\nimport ActiveToasts from './active-toasts.component';\nimport isEmpty from 'lodash-es/isEmpty';\n\nconst toastsSubject = new Subject<ToastNotificationMeta>();\nlet toastId = 0;\n\n/**\n * Starts a rendering host for toast notifications. Should only be used by the app shell.\n * Under normal conditions there is no need to use this function.\n * @param target The container target that hosts the toast notifications.\n */\nexport function renderToasts(target: HTMLElement | null) {\n if (target) {\n const root = createRoot(target);\n root.render(<ActiveToasts subject={toastsSubject} />);\n }\n}\n\nfunction isNotEmpty(description: React.ReactNode) {\n return typeof description === 'string'\n ? description.trim().length > 0\n : typeof description === 'object'\n ? !isEmpty(description)\n : false;\n}\n\n/**\n * Displays a toast notification in the UI.\n * @param toast The description of the toast to display.\n */\nexport function showToast(toast: ToastDescriptor) {\n if (toast && isNotEmpty(toast.description)) {\n setTimeout(() => {\n // always use in subsequent cycle\n toastsSubject.next({\n ...toast,\n id: toastId++,\n });\n }, 0);\n } else {\n console.error(\n `showToast must be called with an object having a 'description' property that is a non-empty string or object`,\n );\n }\n}\n","/**\n * Array of valid values for Carbon tag's \"type\" attribute.\n * Options from https://react.carbondesignsystem.com/?path=/docs/components-tag--overview\n */\nexport const carbonTagColors = [\n 'red',\n 'magenta',\n 'purple',\n 'blue',\n 'teal',\n 'cyan',\n 'gray',\n 'green',\n 'warm-gray',\n 'cool-gray',\n 'high-contrast',\n 'outline',\n] as const;\n\nexport type CarbonTagColor = (typeof carbonTagColors)[number];\n","/** @module @category Workspace */\nimport { useMemo, type ReactNode } from 'react';\nimport {\n getWorkspaceGroupRegistration,\n getWorkspaceRegistration,\n type WorkspaceRegistration,\n} from '@openmrs/esm-extensions';\nimport { type WorkspaceWindowState } from '@openmrs/esm-globals';\nimport { navigate } from '@openmrs/esm-navigation';\nimport { getGlobalStore, createGlobalStore } from '@openmrs/esm-state';\nimport { getCoreTranslation } from '@openmrs/esm-translations';\nimport { useStore } from '@openmrs/esm-react-utils';\nimport type { StoreApi } from 'zustand/vanilla';\n\nexport interface CloseWorkspaceOptions {\n /**\n * Whether to close the workspace ignoring all the changes present in the workspace.\n *\n * If ignoreChanges is true, the user will not be prompted to save changes before closing\n * even if the `testFcn` passed to `promptBeforeClosing` returns `true`.\n */\n ignoreChanges?: boolean;\n /**\n * If you want to take an action after the workspace is closed, you can pass your function as\n * `onWorkspaceClose`. This function will be called only after the workspace is closed, given\n * that the user might be shown a prompt.\n * @returns void\n */\n onWorkspaceClose?: () => void;\n /**\n * Controls whether the workspace group should be closed and store to be\n * cleared when this workspace is closed.\n * Defaults to true except when opening a new workspace of the same group.\n *\n * @default true\n */\n closeWorkspaceGroup?: boolean;\n}\n\n/** The default parameters received by all workspaces */\nexport interface DefaultWorkspaceProps {\n /**\n * Call this function to close the workspace. This function will prompt the user\n * if there are any unsaved changes to workspace.\n *\n * You can pass `onWorkspaceClose` function to be called when the workspace is finally\n * closed, given the user forcefully closes the workspace.\n */\n closeWorkspace(closeWorkspaceOptions?: CloseWorkspaceOptions): void;\n /**\n * Call this with a no-args function that returns true if the user should be prompted before\n * this workspace is closed; e.g. if there is unsaved data.\n */\n promptBeforeClosing(testFcn: () => boolean): void;\n /**\n * Call this function to close the workspace after the form is saved. This function\n * will directly close the workspace without any prompt\n */\n closeWorkspaceWithSavedChanges(closeWorkspaceOptions?: CloseWorkspaceOptions): void;\n /**\n * Use this to set the workspace title if it needs to be set dynamically.\n *\n * Workspace titles generally are set in the workspace declaration in the routes.json file. They can also\n * be set by the workspace launcher by passing `workspaceTitle` in the `additionalProps`\n * parameter of the `launchWorkspace` function. This function is useful when the workspace\n * title needs to be set dynamically.\n *\n * @param title The title to set. If using titleNode, set this to a human-readable string\n * which will identify the workspace in notifications and other places.\n * @param titleNode A React object to put in the workspace header in place of the title. This\n * is useful for displaying custom elements in the header. Note that custom header\n * elements can also be attached to the workspace header extension slots.\n */\n setTitle(title: string, titleNode?: ReactNode): void;\n}\n\nexport interface WorkspaceWindowSize {\n size: WorkspaceWindowState;\n}\n\nexport interface WorkspaceWindowSizeProviderProps {\n children?: React.ReactNode;\n}\n\nexport interface WorkspaceWindowSizeContext {\n windowSize: WorkspaceWindowSize;\n updateWindowSize?(value: WorkspaceWindowState): any;\n active: boolean;\n}\n\nexport interface Prompt {\n title: string;\n body: string;\n /** Defaults to \"Confirm\" */\n confirmText?: string;\n onConfirm(): void;\n /** Defaults to \"Cancel\" */\n cancelText?: string;\n}\n\nexport interface WorkspaceStoreState {\n context: string | null;\n openWorkspaces: Array<OpenWorkspace>;\n prompt: Prompt | null;\n workspaceWindowState: WorkspaceWindowState;\n workspaceGroup?: {\n name: string;\n members: Array<string>;\n cleanup?: Function;\n };\n}\n\nexport interface OpenWorkspace extends WorkspaceRegistration, DefaultWorkspaceProps {\n additionalProps: object;\n currentWorkspaceGroup?: string;\n}\n\n/**\n *\n * @param name Name of the workspace\n * @param ignoreChanges If set to true, the \"unsaved changes\" modal will never be shown, even if the `promptBeforeClosing` function returns true. The user will not be prompted before closing.\n * @returns true if the workspace can be closed.\n */\nexport function canCloseWorkspaceWithoutPrompting(name: string, ignoreChanges: boolean = false) {\n if (ignoreChanges) {\n return true;\n }\n const promptBeforeFn = getPromptBeforeClosingFcn(name);\n return !promptBeforeFn || !promptBeforeFn();\n}\n\n/**\n * Closes a workspace group and performs cleanup operations.\n *\n * @param groupName - The name of the workspace group to close\n * @param onWorkspaceCloseup - Optional callback function to execute after closing the workspace group\n * @returns void, or exits early if the current workspace group name doesn't match the provided group name\n *\n * @remarks\n * This function performs the following operations:\n * - Validates if the provided group name matches the current workspace group\n * - Closes all workspaces associated with the group\n * - Clears the workspace group store state\n * - Executes cleanup function if defined in the workspace group\n * - Updates the main workspace store to remove the workspace group\n * - Calls the optional closeup callback if provided\n */\nfunction closeWorkspaceGroup(groupName: string, onWorkspaceCloseup?: () => void) {\n const store = getWorkspaceStore();\n const currentWorkspaceGroup = store.getState()?.workspaceGroup;\n const currentGroupName = currentWorkspaceGroup?.name;\n if (!currentGroupName || groupName !== currentGroupName) {\n return;\n }\n const filter: (workspace: OpenWorkspace) => boolean = currentGroupName\n ? (workspace) => workspace.currentWorkspaceGroup === currentGroupName\n : () => true;\n\n closeAllWorkspaces(() => {\n // Clearing the workspace group and respective store if the new workspace is not part of the current group, which is handled in the `launchWorkspace` function.\n const workspaceGroupStore = getWorkspaceGroupStore(groupName);\n if (workspaceGroupStore) {\n workspaceGroupStore.setState({}, true);\n const unsubscribe = workspaceGroupStore.subscribe(() => {});\n unsubscribe();\n }\n\n if (typeof currentWorkspaceGroup?.cleanup === 'function') {\n currentWorkspaceGroup.cleanup();\n }\n\n store.setState((prev) => ({\n ...prev,\n workspaceGroup: undefined,\n }));\n\n if (typeof onWorkspaceCloseup === 'function') {\n onWorkspaceCloseup();\n }\n }, filter);\n}\n\ninterface LaunchWorkspaceGroupArg {\n state: object;\n onWorkspaceGroupLaunch?: Function;\n workspaceGroupCleanup?: Function;\n workspaceToLaunch?: {\n name: string;\n additionalProps?: object;\n };\n}\n\n/**\n * Launches a workspace group with the specified name and configuration.\n * If there are any open workspaces, it will first close them before launching the new workspace group.\n *\n * @param groupName - The name of the workspace group to launch\n * @param args - Configuration object for launching the workspace group\n * @param args.state - The initial state for the workspace group\n * @param args.onWorkspaceGroupLaunch - Optional callback function to be executed after the workspace group is launched\n * @param args.workspaceGroupCleanup - Optional cleanup function to be executed when the workspace group is closed\n *\n * @example\n * launchWorkspaceGroup(\"myGroup\", {\n * state: initialState,\n * onWorkspaceGroupLaunch: () => console.log(\"Workspace group launched\"),\n * workspaceGroupCleanup: () => console.log(\"Cleaning up workspace group\")\n * });\n */\nexport function launchWorkspaceGroup(groupName: string, args: LaunchWorkspaceGroupArg) {\n const workspaceGroupRegistration = getWorkspaceGroupRegistration(groupName);\n const { state, onWorkspaceGroupLaunch, workspaceGroupCleanup, workspaceToLaunch } = args;\n const store = getWorkspaceStore();\n if (store.getState().openWorkspaces.length) {\n const workspaceGroup = store.getState().workspaceGroup;\n if (workspaceGroup) {\n closeWorkspaceGroup(workspaceGroup?.name, () => {\n launchWorkspaceGroup(groupName, args);\n });\n } else {\n closeAllWorkspaces(() => {\n launchWorkspaceGroup(groupName, args);\n });\n }\n } else {\n store.setState((prev) => ({\n ...prev,\n workspaceGroup: {\n name: groupName,\n members: workspaceGroupRegistration.members,\n cleanup: workspaceGroupCleanup,\n },\n }));\n getWorkspaceGroupStore(groupName, state);\n onWorkspaceGroupLaunch?.();\n if (workspaceToLaunch) {\n launchWorkspace(workspaceToLaunch.name, workspaceToLaunch.additionalProps ?? {});\n }\n }\n}\n\nfunction promptBeforeLaunchingWorkspace(\n workspace: OpenWorkspace,\n newWorkspaceDetails: { name: string; additionalProps?: object },\n) {\n const { name, additionalProps } = newWorkspaceDetails;\n const newWorkspaceRegistration = getWorkspaceRegistration(name);\n\n const proceed = () => {\n closeWorkspace(workspace.name, {\n ignoreChanges: true,\n // Calling the launchWorkspace again, since one of the `if` case\n // might resolve, but we need to check all the cases before launching the form.\n onWorkspaceClose: () => launchWorkspace(name, additionalProps),\n // If the new workspace is of the same sidebar group, then we don't need to clear the workspace group store.\n closeWorkspaceGroup: false,\n });\n };\n\n if (!canCloseWorkspaceWithoutPrompting(workspace.name)) {\n showWorkspacePrompts('closing-workspace-launching-new-workspace', proceed, workspace.title ?? workspace.name);\n } else {\n proceed();\n }\n}\n\n/**\n * This launches a workspace by its name. The workspace must have been registered.\n * Workspaces should be registered in the `routes.json` file.\n *\n * For the workspace to appear, there must be either a `<WorkspaceOverlay />` or\n * a `<WorkspaceWindow />` component rendered.\n *\n * The behavior of this function is as follows:\n *\n * - If no workspaces are open, or if no other workspaces with the same type are open,\n * it will be opened and focused.\n * - If a workspace with the same name is already open, it will be displayed/focused,\n * if it was not already.\n * - If a workspace is launched and a workspace which cannot be hidden is already open,\n * a confirmation modal will pop up warning about closing the currently open workspace.\n * - If another workspace with the same type is open, the workspace will be brought to\n * the front and then a confirmation modal will pop up warning about closing the opened\n * workspace\n *\n * Note that this function just manipulates the workspace store. The UI logic is handled\n * by the components that display workspaces.\n *\n * Additional props can be passed to the workspace component being launched. Passing a\n * prop named `workspaceTitle` will override the title of the workspace.\n *\n * @param name The name of the workspace to launch\n * @param additionalProps Props to pass to the workspace component being launched. Passing\n * a prop named `workspaceTitle` will override the title of the workspace.\n */\nexport function launchWorkspace<\n T extends DefaultWorkspaceProps | object = DefaultWorkspaceProps & { [key: string]: any },\n>(name: string, additionalProps?: Omit<T, keyof DefaultWorkspaceProps> & { workspaceTitle?: string }) {\n const store = getWorkspaceStore();\n const workspace = getWorkspaceRegistration(name);\n const currentWorkspaceGroup = store.getState().workspaceGroup;\n\n if (currentWorkspaceGroup && !currentWorkspaceGroup.members?.includes(name)) {\n closeWorkspaceGroup(currentWorkspaceGroup.name, () => {\n launchWorkspace(name, additionalProps);\n });\n return;\n }\n const currentGroupName = store.getState().workspaceGroup?.name;\n const newWorkspace: OpenWorkspace = {\n ...workspace,\n title: getWorkspaceTitle(workspace, additionalProps),\n closeWorkspace: (options: CloseWorkspaceOptions = {}) => closeWorkspace(name, options),\n closeWorkspaceWithSavedChanges: (options: CloseWorkspaceOptions) =>\n closeWorkspace(name, { ignoreChanges: true, ...options }),\n promptBeforeClosing: (testFcn) => promptBeforeClosing(name, testFcn),\n setTitle: (title: string, titleNode: ReactNode) => {\n newWorkspace.title = title;\n newWorkspace.titleNode = titleNode;\n store.setState((state) => {\n const openWorkspaces = state.openWorkspaces.map((w) => (w.name === name ? newWorkspace : w));\n return {\n ...state,\n openWorkspaces,\n };\n });\n },\n currentWorkspaceGroup: currentGroupName,\n additionalProps: additionalProps ?? {},\n };\n\n if (currentGroupName) {\n getWorkspaceGroupStore(currentGroupName, additionalProps);\n }\n function updateStoreWithNewWorkspace(workspaceToBeAdded: OpenWorkspace, restOfTheWorkspaces?: Array<OpenWorkspace>) {\n store.setState((state) => {\n const openWorkspaces = [workspaceToBeAdded, ...(restOfTheWorkspaces ?? state.openWorkspaces)];\n let workspaceWindowState = getUpdatedWorkspaceWindowState(workspaceToBeAdded);\n\n return {\n ...state,\n openWorkspaces,\n workspaceWindowState,\n };\n });\n }\n\n const openWorkspaces = store.getState().openWorkspaces;\n const workspaceIndexInOpenWorkspaces = openWorkspaces.findIndex((w) => w.name === name);\n const isWorkspaceAlreadyOpen = workspaceIndexInOpenWorkspaces >= 0;\n const openedWorkspaceWithSameType = openWorkspaces.find((w) => w.type == newWorkspace.type);\n\n if (openWorkspaces.length === 0) {\n updateStoreWithNewWorkspace(newWorkspace);\n } else if (!openWorkspaces[0].canHide && workspaceIndexInOpenWorkspaces !== 0) {\n promptBeforeLaunchingWorkspace(openWorkspaces[0], {\n name,\n additionalProps,\n });\n } else if (isWorkspaceAlreadyOpen) {\n const openWorkspace = openWorkspaces[workspaceIndexInOpenWorkspaces];\n // Only update the title if it hasn't been set by `setTitle`\n if (openWorkspace.title === getWorkspaceTitle(openWorkspace, openWorkspace.additionalProps)) {\n openWorkspace.title = getWorkspaceTitle(newWorkspace, newWorkspace.additionalProps);\n }\n openWorkspace.additionalProps = newWorkspace.additionalProps;\n const restOfTheWorkspaces = openWorkspaces.filter((w) => w.name != name);\n updateStoreWithNewWorkspace(openWorkspaces[workspaceIndexInOpenWorkspaces], restOfTheWorkspaces);\n } else if (openedWorkspaceWithSameType) {\n const restOfTheWorkspaces = store.getState().openWorkspaces.filter((w) => w.type != newWorkspace.type);\n updateStoreWithNewWorkspace(openedWorkspaceWithSameType, restOfTheWorkspaces);\n promptBeforeLaunchingWorkspace(openedWorkspaceWithSameType, {\n name,\n additionalProps,\n });\n } else {\n updateStoreWithNewWorkspace(newWorkspace);\n }\n}\n\n/**\n * Use this function to navigate to a new page and launch a workspace on that page.\n *\n * @param options.targetUrl: The URL to navigate to. Will be passed to [[navigate]].\n * @param options.contextKey: The context key used by the target page.\n * @param options.workspaceName: The name of the workspace to launch.\n * @param options.additionalProps: Additional props to pass to the workspace component being launched.\n */\nexport function navigateAndLaunchWorkspace({\n targetUrl,\n contextKey,\n workspaceName,\n additionalProps,\n}: {\n targetUrl: string;\n contextKey: string;\n workspaceName: string;\n additionalProps?: object;\n}) {\n changeWorkspaceContext(contextKey);\n launchWorkspace(workspaceName, additionalProps);\n navigate({ to: targetUrl });\n}\n\nconst promptBeforeClosingFcns = {};\n\nexport function promptBeforeClosing(workspaceName: string, testFcn: () => boolean) {\n promptBeforeClosingFcns[workspaceName] = testFcn;\n}\n\nexport function getPromptBeforeClosingFcn(workspaceName: string) {\n return promptBeforeClosingFcns[workspaceName];\n}\n\nexport function cancelPrompt() {\n const store = getWorkspaceStore();\n const state = store.getState();\n store.setState({ ...state, prompt: null });\n}\n\nconst defaultOptions: CloseWorkspaceOptions = {\n ignoreChanges: false,\n onWorkspaceClose: () => {},\n closeWorkspaceGroup: true,\n};\n\n/**\n * Function to close an opened workspace\n * @param name Workspace registration name\n * @param options Options to close workspace\n */\nexport function closeWorkspace(name: string, options: CloseWorkspaceOptions = {}): boolean {\n options = { ...defaultOptions, ...options };\n const store = getWorkspaceStore();\n\n const updateStoreWithClosedWorkspace = () => {\n const state = store.getState();\n const workspaceToBeClosed = state.openWorkspaces.find((w) => w.name === name);\n const newOpenWorkspaces = state.openWorkspaces.filter((w) => w.name != name);\n\n const workspaceGroupName = store.getState().workspaceGroup?.name;\n\n if (workspaceGroupName && options.closeWorkspaceGroup) {\n closeWorkspaceGroup(workspaceGroupName);\n }\n\n // ensure closed workspace will not prompt\n promptBeforeClosing(name, () => false);\n store.setState((prev) => ({\n ...prev,\n prompt: null,\n openWorkspaces: newOpenWorkspaces,\n workspaceWindowState: getUpdatedWorkspaceWindowState(newOpenWorkspaces?.[0]),\n }));\n\n options?.onWorkspaceClose?.();\n };\n\n if (!canCloseWorkspaceWithoutPrompting(name, options?.ignoreChanges)) {\n const currentName = getWorkspaceRegistration(name).title ?? name;\n showWorkspacePrompts('closing-workspace', updateStoreWithClosedWorkspace, currentName);\n return false;\n } else {\n updateStoreWithClosedWorkspace();\n return true;\n }\n}\n\n/**\n * The set of workspaces is specific to a particular page. This function\n * should be used when transitioning to a new page. If the current\n * workspace data is for a different page, the workspace state is cleared.\n *\n * This is called by the workspace components when they mount.\n * @internal\n *\n * @param contextKey An arbitrary key to identify the current page\n */\nexport function changeWorkspaceContext(contextKey: string | null) {\n const store = getWorkspaceStore();\n const state = store.getState();\n if (state.context != contextKey) {\n store.setState({ context: contextKey, openWorkspaces: [], prompt: null });\n }\n}\n\nconst initialState: WorkspaceStoreState = {\n context: '',\n openWorkspaces: [],\n prompt: null,\n workspaceWindowState: 'normal',\n workspaceGroup: undefined,\n};\n\nexport const workspaceStore = createGlobalStore('workspace', initialState);\n\nexport function getWorkspaceStore() {\n return workspaceStore;\n}\n\nexport function updateWorkspaceWindowState(value: WorkspaceWindowState) {\n const store = getWorkspaceStore();\n const state = store.getState();\n store.setState({ ...state, workspaceWindowState: value });\n}\n\nfunction getUpdatedWorkspaceWindowState(workspaceAtTop: OpenWorkspace) {\n return workspaceAtTop?.preferredWindowSize ?? 'normal';\n}\nexport function closeAllWorkspaces(\n onClosingWorkspaces: () => void = () => {},\n filter: (workspace: OpenWorkspace) => boolean = () => true,\n) {\n const store = getWorkspaceStore();\n\n const canCloseAllWorkspaces = store\n .getState()\n .openWorkspaces.filter(filter)\n .every(({ name }) => {\n return canCloseWorkspaceWithoutPrompting(name);\n });\n\n const updateWorkspaceStore = () => {\n resetWorkspaceStore();\n onClosingWorkspaces?.();\n };\n\n if (!canCloseAllWorkspaces) {\n showWorkspacePrompts('closing-all-workspaces', updateWorkspaceStore);\n } else {\n updateWorkspaceStore();\n }\n}\n\nexport interface WorkspacesInfo {\n active: boolean;\n prompt: Prompt | null;\n workspaceWindowState: WorkspaceWindowState;\n workspaces: Array<OpenWorkspace>;\n workspaceGroup?: WorkspaceStoreState['workspaceGroup'];\n}\n\nexport function useWorkspaces(): WorkspacesInfo {\n const { workspaceWindowState, openWorkspaces, prompt, workspaceGroup } = useStore(workspaceStore);\n const memoisedResults: WorkspacesInfo = useMemo(() => {\n return {\n active: openWorkspaces.length > 0,\n prompt,\n workspaceWindowState,\n workspaces: openWorkspaces,\n workspaceGroup,\n };\n }, [openWorkspaces, workspaceWindowState, prompt, workspaceGroup]);\n return memoisedResults;\n}\n\ntype PromptType = 'closing-workspace' | 'closing-all-workspaces' | 'closing-workspace-launching-new-workspace';\n\n/**\n * Sets the current prompt according to the prompt type.\n * @param promptType Determines the text and behavior of the prompt\n * @param onConfirmation Function to be called after the user confirms to close the workspace\n * @param workspaceTitle Workspace title to be shown in the prompt\n * @returns\n */\nexport function showWorkspacePrompts(\n promptType: PromptType,\n onConfirmation: () => void = () => {},\n workspaceTitle: string = '',\n) {\n const store = getWorkspaceStore();\n\n let prompt: Prompt;\n switch (promptType) {\n case 'closing-workspace': {\n prompt = {\n title: getCoreTranslation('unsavedChangesTitleText', 'Unsaved changes'),\n body: getCoreTranslation(\n 'unsavedChangesInOpenedWorkspace',\n `You may have unsaved changes in the opened workspace. Do you want to discard these changes?`,\n ),\n onConfirm: () => {\n onConfirmation?.();\n },\n confirmText: getCoreTranslation('discard', 'Discard'),\n };\n break;\n }\n\n case 'closing-all-workspaces': {\n const workspacesNotClosed = store\n .getState()\n .openWorkspaces.filter(({ name }) => !canCloseWorkspaceWithoutPrompting(name))\n .map(({ title }, indx) => `${indx + 1}. ${title}`);\n\n prompt = {\n title: getCoreTranslation('closingAllWorkspacesPromptTitle', 'You have unsaved changes'),\n body: getCoreTranslation(\n 'closingAllWorkspacesPromptBody',\n 'There may be unsaved changes in the following workspaces. Do you want to discard changes in the following workspaces? {{workspaceNames}}',\n {\n workspaceNames: workspacesNotClosed.join(','),\n },\n ),\n onConfirm: () => {\n onConfirmation?.();\n },\n confirmText: getCoreTranslation('closeAllOpenedWorkspaces', 'Discard changes in {{count}} workspaces', {\n count: workspacesNotClosed.length,\n }),\n };\n break;\n }\n case 'closing-workspace-launching-new-workspace': {\n prompt = {\n title: getCoreTranslation('unsavedChangesTitleText', 'Unsaved changes'),\n body: getCoreTranslation(\n 'unsavedChangesInWorkspace',\n 'There may be unsaved changes in \"{{workspaceName}}\". Please save them before opening another workspace.',\n { workspaceName: workspaceTitle },\n ),\n onConfirm: () => {\n store.setState((state) => ({\n ...state,\n prompt: null,\n }));\n onConfirmation?.();\n },\n confirmText: getCoreTranslation('openAnyway', 'Open anyway'),\n };\n break;\n }\n default: {\n console.error(\n `Workspace system trying to open unknown prompt type \"${promptType}\" in function \"showWorkspacePrompts\"`,\n );\n onConfirmation?.();\n return;\n }\n }\n store.setState((state) => ({ ...state, prompt }));\n}\n\nfunction getWorkspaceTitle(workspace: WorkspaceRegistration, additionalProps?: object) {\n return additionalProps?.['workspaceTitle'] ?? workspace.title;\n}\n\nexport function resetWorkspaceStore() {\n getWorkspaceStore().setState(initialState);\n}\n\n/**\n * The workspace group store is a store that is specific to the workspace group.\n * If the workspace has its own sidebar, the store will be created.\n * This store can be used to store data that is specific to the workspace group.\n * The store will be same for all the workspaces with same group name.\n *\n * For workspaces launched without a group, the store will be undefined.\n *\n * The store will be cleared when all the workspaces with the store's group name are closed.\n */\nexport function getWorkspaceGroupStore(\n workspaceGroupName: string | undefined,\n additionalProps: object = {},\n): StoreApi<object> | undefined {\n if (!workspaceGroupName || workspaceGroupName === 'default') {\n return undefined;\n }\n const store = getGlobalStore<object>(workspaceGroupName, {});\n if (additionalProps) {\n store.setState((prev) => ({\n ...prev,\n ...additionalProps,\n }));\n }\n return store;\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","const e=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:global,t=Object.keys,n=Array.isArray;function r(e,n){return\"object\"!=typeof n||t(n).forEach((function(t){e[t]=n[t]})),e}\"undefined\"==typeof Promise||e.Promise||(e.Promise=Promise);const s=Object.getPrototypeOf,i={}.hasOwnProperty;function o(e,t){return i.call(e,t)}function a(e,n){\"function\"==typeof n&&(n=n(s(e))),(\"undefined\"==typeof Reflect?t:Reflect.ownKeys)(n).forEach((t=>{l(e,t,n[t])}))}const u=Object.defineProperty;function l(e,t,n,s){u(e,t,r(n&&o(n,\"get\")&&\"function\"==typeof n.get?{get:n.get,set:n.set,configurable:!0}:{value:n,configurable:!0,writable:!0},s))}function c(e){return{from:function(t){return e.prototype=Object.create(t.prototype),l(e.prototype,\"constructor\",e),{extend:a.bind(null,e.prototype)}}}}const h=Object.getOwnPropertyDescriptor;function d(e,t){let n;return h(e,t)||(n=s(e))&&d(n,t)}const f=[].slice;function p(e,t,n){return f.call(e,t,n)}function y(e,t){return t(e)}function m(e){if(!e)throw new Error(\"Assertion Failed\")}function v(t){e.setImmediate?setImmediate(t):setTimeout(t,0)}function g(e,t){return e.reduce(((e,n,r)=>{var s=t(n,r);return s&&(e[s[0]]=s[1]),e}),{})}function b(e,t){if(o(e,t))return e[t];if(!t)return e;if(\"string\"!=typeof t){for(var n=[],r=0,s=t.length;r<s;++r){var i=b(e,t[r]);n.push(i)}return n}var a=t.indexOf(\".\");if(-1!==a){var u=e[t.substr(0,a)];return void 0===u?void 0:b(u,t.substr(a+1))}}function _(e,t,r){if(e&&void 0!==t&&(!(\"isFrozen\"in Object)||!Object.isFrozen(e)))if(\"string\"!=typeof t&&\"length\"in t){m(\"string\"!=typeof r&&\"length\"in r);for(var s=0,i=t.length;s<i;++s)_(e,t[s],r[s])}else{var a=t.indexOf(\".\");if(-1!==a){var u=t.substr(0,a),l=t.substr(a+1);if(\"\"===l)void 0===r?n(e)&&!isNaN(parseInt(u))?e.splice(u,1):delete e[u]:e[u]=r;else{var c=e[u];c&&o(e,u)||(c=e[u]={}),_(c,l,r)}}else void 0===r?n(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=r}}function w(e){var t={};for(var n in e)o(e,n)&&(t[n]=e[n]);return t}const x=[].concat;function k(e){return x.apply([],e)}const E=\"Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey\".split(\",\").concat(k([8,16,32,64].map((e=>[\"Int\",\"Uint\",\"Float\"].map((t=>t+e+\"Array\")))))).filter((t=>e[t])),P=E.map((t=>e[t]));g(E,(e=>[e,!0]));let K=null;function O(e){K=\"undefined\"!=typeof WeakMap&&new WeakMap;const t=S(e);return K=null,t}function S(e){if(!e||\"object\"!=typeof e)return e;let t=K&&K.get(e);if(t)return t;if(n(e)){t=[],K&&K.set(e,t);for(var r=0,i=e.length;r<i;++r)t.push(S(e[r]))}else if(P.indexOf(e.constructor)>=0)t=e;else{const n=s(e);for(var a in t=n===Object.prototype?{}:Object.create(n),K&&K.set(e,t),e)o(e,a)&&(t[a]=S(e[a]))}return t}const{toString:A}={};function C(e){return A.call(e).slice(8,-1)}const j=\"undefined\"!=typeof Symbol?Symbol.iterator:\"@@iterator\",D=\"symbol\"==typeof j?function(e){var t;return null!=e&&(t=e[j])&&t.apply(e)}:function(){return null},I={};function B(e){var t,r,s,i;if(1===arguments.length){if(n(e))return e.slice();if(this===I&&\"string\"==typeof e)return[e];if(i=D(e)){for(r=[];!(s=i.next()).done;)r.push(s.value);return r}if(null==e)return[e];if(\"number\"==typeof(t=e.length)){for(r=new Array(t);t--;)r[t]=e[t];return r}return[e]}for(t=arguments.length,r=new Array(t);t--;)r[t]=arguments[t];return r}const T=\"undefined\"!=typeof Symbol?e=>\"AsyncFunction\"===e[Symbol.toStringTag]:()=>!1;var R=\"undefined\"!=typeof location&&/^(http|https):\\/\\/(localhost|127\\.0\\.0\\.1)/.test(location.href);function F(e,t){R=e,M=t}var M=()=>!0;const N=!new Error(\"\").stack;function q(){if(N)try{throw q.arguments,new Error}catch(e){return e}return new Error}function $(e,t){var n=e.stack;return n?(t=t||0,0===n.indexOf(e.name)&&(t+=(e.name+e.message).split(\"\\n\").length),n.split(\"\\n\").slice(t).filter(M).map((e=>\"\\n\"+e)).join(\"\")):\"\"}var U=[\"Unknown\",\"Constraint\",\"Data\",\"TransactionInactive\",\"ReadOnly\",\"Version\",\"NotFound\",\"InvalidState\",\"InvalidAccess\",\"Abort\",\"Timeout\",\"QuotaExceeded\",\"Syntax\",\"DataClone\"],L=[\"Modify\",\"Bulk\",\"OpenFailed\",\"VersionChange\",\"Schema\",\"Upgrade\",\"InvalidTable\",\"MissingAPI\",\"NoSuchDatabase\",\"InvalidArgument\",\"SubTransaction\",\"Unsupported\",\"Internal\",\"DatabaseClosed\",\"PrematureCommit\",\"ForeignAwait\"].concat(U),V={VersionChanged:\"Database version changed by other database connection\",DatabaseClosed:\"Database has been closed\",Abort:\"Transaction aborted\",TransactionInactive:\"Transaction has already completed or failed\",MissingAPI:\"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb\"};function W(e,t){this._e=q(),this.name=e,this.message=t}function Y(e,t){return e+\". Errors: \"+Object.keys(t).map((e=>t[e].toString())).filter(((e,t,n)=>n.indexOf(e)===t)).join(\"\\n\")}function z(e,t,n,r){this._e=q(),this.failures=t,this.failedKeys=r,this.successCount=n,this.message=Y(e,t)}function G(e,t){this._e=q(),this.name=\"BulkError\",this.failures=Object.keys(t).map((e=>t[e])),this.failuresByPos=t,this.message=Y(e,t)}c(W).from(Error).extend({stack:{get:function(){return this._stack||(this._stack=this.name+\": \"+this.message+$(this._e,2))}},toString:function(){return this.name+\": \"+this.message}}),c(z).from(W),c(G).from(W);var H=L.reduce(((e,t)=>(e[t]=t+\"Error\",e)),{});const Q=W;var X=L.reduce(((e,t)=>{var n=t+\"Error\";function r(e,r){this._e=q(),this.name=n,e?\"string\"==typeof e?(this.message=`${e}${r?\"\\n \"+r:\"\"}`,this.inner=r||null):\"object\"==typeof e&&(this.message=`${e.name} ${e.message}`,this.inner=e):(this.message=V[t]||n,this.inner=null)}return c(r).from(Q),e[t]=r,e}),{});X.Syntax=SyntaxError,X.Type=TypeError,X.Range=RangeError;var J=U.reduce(((e,t)=>(e[t+\"Error\"]=X[t],e)),{});var Z=L.reduce(((e,t)=>(-1===[\"Syntax\",\"Type\",\"Range\"].indexOf(t)&&(e[t+\"Error\"]=X[t]),e)),{});function ee(){}function te(e){return e}function ne(e,t){return null==e||e===te?t:function(n){return t(e(n))}}function re(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function se(e,t){return e===ee?t:function(){var n=e.apply(this,arguments);void 0!==n&&(arguments[0]=n);var r=this.onsuccess,s=this.onerror;this.onsuccess=null,this.onerror=null;var i=t.apply(this,arguments);return r&&(this.onsuccess=this.onsuccess?re(r,this.onsuccess):r),s&&(this.onerror=this.onerror?re(s,this.onerror):s),void 0!==i?i:n}}function ie(e,t){return e===ee?t:function(){e.apply(this,arguments);var n=this.onsuccess,r=this.onerror;this.onsuccess=this.onerror=null,t.apply(this,arguments),n&&(this.onsuccess=this.onsuccess?re(n,this.onsuccess):n),r&&(this.onerror=this.onerror?re(r,this.onerror):r)}}function oe(e,t){return e===ee?t:function(n){var s=e.apply(this,arguments);r(n,s);var i=this.onsuccess,o=this.onerror;this.onsuccess=null,this.onerror=null;var a=t.apply(this,arguments);return i&&(this.onsuccess=this.onsuccess?re(i,this.onsuccess):i),o&&(this.onerror=this.onerror?re(o,this.onerror):o),void 0===s?void 0===a?void 0:a:r(s,a)}}function ae(e,t){return e===ee?t:function(){return!1!==t.apply(this,arguments)&&e.apply(this,arguments)}}function ue(e,t){return e===ee?t:function(){var n=e.apply(this,arguments);if(n&&\"function\"==typeof n.then){for(var r=this,s=arguments.length,i=new Array(s);s--;)i[s]=arguments[s];return n.then((function(){return t.apply(r,i)}))}return t.apply(this,arguments)}}Z.ModifyError=z,Z.DexieError=W,Z.BulkError=G;var le={};const[ce,he,de]=\"undefined\"==typeof Promise?[]:(()=>{let e=Promise.resolve();if(\"undefined\"==typeof crypto||!crypto.subtle)return[e,s(e),e];const t=crypto.subtle.digest(\"SHA-512\",new Uint8Array([0]));return[t,s(t),e]})(),fe=he&&he.then,pe=ce&&ce.constructor,ye=!!de;var me=!1,ve=de?()=>{de.then(qe)}:e.setImmediate?setImmediate.bind(null,qe):e.MutationObserver?()=>{var e=document.createElement(\"div\");new MutationObserver((()=>{qe(),e=null})).observe(e,{attributes:!0}),e.setAttribute(\"i\",\"1\")}:()=>{setTimeout(qe,0)},ge=function(e,t){Oe.push([e,t]),_e&&(ve(),_e=!1)},be=!0,_e=!0,we=[],xe=[],ke=null,Ee=te,Pe={id:\"global\",global:!0,ref:0,unhandleds:[],onunhandled:ct,pgp:!1,env:{},finalize:function(){this.unhandleds.forEach((e=>{try{ct(e[0],e[1])}catch(e){}}))}},Ke=Pe,Oe=[],Se=0,Ae=[];function Ce(e){if(\"object\"!=typeof this)throw new TypeError(\"Promises must be constructed via new\");this._listeners=[],this.onuncatched=ee,this._lib=!1;var t=this._PSD=Ke;if(R&&(this._stackHolder=q(),this._prev=null,this._numPrev=0),\"function\"!=typeof e){if(e!==le)throw new TypeError(\"Not a function\");return this._state=arguments[1],this._value=arguments[2],void(!1===this._state&&Be(this,this._value))}this._state=null,this._value=null,++t.ref,Ie(this,e)}const je={get:function(){var e=Ke,t=Qe;function n(n,r){var s=!e.global&&(e!==Ke||t!==Qe);const i=s&&!et();var o=new Ce(((t,o)=>{Re(this,new De(ut(n,e,s,i),ut(r,e,s,i),t,o,e))}));return R&&Ne(o,this),o}return n.prototype=le,n},set:function(e){l(this,\"then\",e&&e.prototype===le?je:{get:function(){return e},set:je.set})}};function De(e,t,n,r,s){this.onFulfilled=\"function\"==typeof e?e:null,this.onRejected=\"function\"==typeof t?t:null,this.resolve=n,this.reject=r,this.psd=s}function Ie(e,t){try{t((t=>{if(null===e._state){if(t===e)throw new TypeError(\"A promise cannot be resolved with itself.\");var n=e._lib&&$e();t&&\"function\"==typeof t.then?Ie(e,((e,n)=>{t instanceof Ce?t._then(e,n):t.then(e,n)})):(e._state=!0,e._value=t,Te(e)),n&&Ue()}}),Be.bind(null,e))}catch(t){Be(e,t)}}function Be(e,t){if(xe.push(t),null===e._state){var n=e._lib&&$e();t=Ee(t),e._state=!1,e._value=t,R&&null!==t&&\"object\"==typeof t&&!t._promise&&function(e,t,n){try{e.apply(null,n)}catch(e){t&&t(e)}}((()=>{var n=d(t,\"stack\");t._promise=e,l(t,\"stack\",{get:()=>me?n&&(n.get?n.get.apply(t):n.value):e.stack})})),function(e){we.some((t=>t._value===e._value))||we.push(e)}(e),Te(e),n&&Ue()}}function Te(e){var t=e._listeners;e._listeners=[];for(var n=0,r=t.length;n<r;++n)Re(e,t[n]);var s=e._PSD;--s.ref||s.finalize(),0===Se&&(++Se,ge((()=>{0==--Se&&Le()}),[]))}function Re(e,t){if(null!==e._state){var n=e._state?t.onFulfilled:t.onRejected;if(null===n)return(e._state?t.resolve:t.reject)(e._value);++t.psd.ref,++Se,ge(Fe,[n,e,t])}else e._listeners.push(t)}function Fe(e,t,n){try{ke=t;var r,s=t._value;t._state?r=e(s):(xe.length&&(xe=[]),r=e(s),-1===xe.indexOf(s)&&function(e){var t=we.length;for(;t;)if(we[--t]._value===e._value)return void we.splice(t,1)}(t)),n.resolve(r)}catch(e){n.reject(e)}finally{ke=null,0==--Se&&Le(),--n.psd.ref||n.psd.finalize()}}function Me(e,t,n){if(t.length===n)return t;var r=\"\";if(!1===e._state){var s,i,o=e._value;null!=o?(s=o.name||\"Error\",i=o.message||o,r=$(o,0)):(s=o,i=\"\"),t.push(s+(i?\": \"+i:\"\")+r)}return R&&((r=$(e._stackHolder,2))&&-1===t.indexOf(r)&&t.push(r),e._prev&&Me(e._prev,t,n)),t}function Ne(e,t){var n=t?t._numPrev+1:0;n<100&&(e._prev=t,e._numPrev=n)}function qe(){$e()&&Ue()}function $e(){var e=be;return be=!1,_e=!1,e}function Ue(){var e,t,n;do{for(;Oe.length>0;)for(e=Oe,Oe=[],n=e.length,t=0;t<n;++t){var r=e[t];r[0].apply(null,r[1])}}while(Oe.length>0);be=!0,_e=!0}function Le(){var e=we;we=[],e.forEach((e=>{e._PSD.onunhandled.call(null,e._value,e)}));for(var t=Ae.slice(0),n=t.length;n;)t[--n]()}function Ve(e){return new Ce(le,!1,e)}function We(e,t){var n=Ke;return function(){var r=$e(),s=Ke;try{return st(n,!0),e.apply(this,arguments)}catch(e){t&&t(e)}finally{st(s,!1),r&&Ue()}}}a(Ce.prototype,{then:je,_then:function(e,t){Re(this,new De(null,null,e,t,Ke))},catch:function(e){if(1===arguments.length)return this.then(null,e);var t=arguments[0],n=arguments[1];return\"function\"==typeof t?this.then(null,(e=>e instanceof t?n(e):Ve(e))):this.then(null,(e=>e&&e.name===t?n(e):Ve(e)))},finally:function(e){return this.then((t=>(e(),t)),(t=>(e(),Ve(t))))},stack:{get:function(){if(this._stack)return this._stack;try{me=!0;var e=Me(this,[],20).join(\"\\nFrom previous: \");return null!==this._state&&(this._stack=e),e}finally{me=!1}}},timeout:function(e,t){return e<1/0?new Ce(((n,r)=>{var s=setTimeout((()=>r(new X.Timeout(t))),e);this.then(n,r).finally(clearTimeout.bind(null,s))})):this}}),\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&l(Ce.prototype,Symbol.toStringTag,\"Dexie.Promise\"),Pe.env=it(),a(Ce,{all:function(){var e=B.apply(null,arguments).map(tt);return new Ce((function(t,n){0===e.length&&t([]);var r=e.length;e.forEach(((s,i)=>Ce.resolve(s).then((n=>{e[i]=n,--r||t(e)}),n)))}))},resolve:e=>{if(e instanceof Ce)return e;if(e&&\"function\"==typeof e.then)return new Ce(((t,n)=>{e.then(t,n)}));var t=new Ce(le,!0,e);return Ne(t,ke),t},reject:Ve,race:function(){var e=B.apply(null,arguments).map(tt);return new Ce(((t,n)=>{e.map((e=>Ce.resolve(e).then(t,n)))}))},PSD:{get:()=>Ke,set:e=>Ke=e},totalEchoes:{get:()=>Qe},newPSD:Je,usePSD:ot,scheduler:{get:()=>ge,set:e=>{ge=e}},rejectionMapper:{get:()=>Ee,set:e=>{Ee=e}},follow:(e,t)=>new Ce(((n,r)=>Je(((t,n)=>{var r=Ke;r.unhandleds=[],r.onunhandled=n,r.finalize=re((function(){!function(e){function t(){e(),Ae.splice(Ae.indexOf(t),1)}Ae.push(t),++Se,ge((()=>{0==--Se&&Le()}),[])}((()=>{0===this.unhandleds.length?t():n(this.unhandleds[0])}))}),r.finalize),e()}),t,n,r)))}),pe&&(pe.allSettled&&l(Ce,\"allSettled\",(function(){const e=B.apply(null,arguments).map(tt);return new Ce((t=>{0===e.length&&t([]);let n=e.length;const r=new Array(n);e.forEach(((e,s)=>Ce.resolve(e).then((e=>r[s]={status:\"fulfilled\",value:e}),(e=>r[s]={status:\"rejected\",reason:e})).then((()=>--n||t(r)))))}))})),pe.any&&\"undefined\"!=typeof AggregateError&&l(Ce,\"any\",(function(){const e=B.apply(null,arguments).map(tt);return new Ce(((t,n)=>{0===e.length&&n(new AggregateError([]));let r=e.length;const s=new Array(r);e.forEach(((e,i)=>Ce.resolve(e).then((e=>t(e)),(e=>{s[i]=e,--r||n(new AggregateError(s))}))))}))})));const Ye={awaits:0,echoes:0,id:0};var ze=0,Ge=[],He=0,Qe=0,Xe=0;function Je(e,t,n,s){var i=Ke,o=Object.create(i);o.parent=i,o.ref=0,o.global=!1,o.id=++Xe;var a=Pe.env;o.env=ye?{Promise:Ce,PromiseProp:{value:Ce,configurable:!0,writable:!0},all:Ce.all,race:Ce.race,allSettled:Ce.allSettled,any:Ce.any,resolve:Ce.resolve,reject:Ce.reject,nthen:lt(a.nthen,o),gthen:lt(a.gthen,o)}:{},t&&r(o,t),++i.ref,o.finalize=function(){--this.parent.ref||this.parent.finalize()};var u=ot(o,e,n,s);return 0===o.ref&&o.finalize(),u}function Ze(){return Ye.id||(Ye.id=++ze),++Ye.awaits,Ye.echoes+=100,Ye.id}function et(){return!!Ye.awaits&&(0==--Ye.awaits&&(Ye.id=0),Ye.echoes=100*Ye.awaits,!0)}function tt(e){return Ye.echoes&&e&&e.constructor===pe?(Ze(),e.then((e=>(et(),e)),(e=>(et(),ht(e))))):e}function nt(e){++Qe,Ye.echoes&&0!=--Ye.echoes||(Ye.echoes=Ye.id=0),Ge.push(Ke),st(e,!0)}function rt(){var e=Ge[Ge.length-1];Ge.pop(),st(e,!1)}function st(t,n){var r=Ke;if((n?!Ye.echoes||He++&&t===Ke:!He||--He&&t===Ke)||at(n?nt.bind(null,t):rt),t!==Ke&&(Ke=t,r===Pe&&(Pe.env=it()),ye)){var s=Pe.env.Promise,i=t.env;he.then=i.nthen,s.prototype.then=i.gthen,(r.global||t.global)&&(Object.defineProperty(e,\"Promise\",i.PromiseProp),s.all=i.all,s.race=i.race,s.resolve=i.resolve,s.reject=i.reject,i.allSettled&&(s.allSettled=i.allSettled),i.any&&(s.any=i.any))}}function it(){var t=e.Promise;return ye?{Promise:t,PromiseProp:Object.getOwnPropertyDescriptor(e,\"Promise\"),all:t.all,race:t.race,allSettled:t.allSettled,any:t.any,resolve:t.resolve,reject:t.reject,nthen:he.then,gthen:t.prototype.then}:{}}function ot(e,t,n,r,s){var i=Ke;try{return st(e,!0),t(n,r,s)}finally{st(i,!1)}}function at(e){fe.call(ce,e)}function ut(e,t,n,r){return\"function\"!=typeof e?e:function(){var s=Ke;n&&Ze(),st(t,!0);try{return e.apply(this,arguments)}finally{st(s,!1),r&&at(et)}}}function lt(e,t){return function(n,r){return e.call(this,ut(n,t),ut(r,t))}}-1===(\"\"+fe).indexOf(\"[native code]\")&&(Ze=et=ee);function ct(t,n){var s;try{s=n.onuncatched(t)}catch(e){}if(!1!==s)try{var i,o={promise:n,reason:t};if(e.document&&document.createEvent?((i=document.createEvent(\"Event\")).initEvent(\"unhandledrejection\",!0,!0),r(i,o)):e.CustomEvent&&r(i=new CustomEvent(\"unhandledrejection\",{detail:o}),o),i&&e.dispatchEvent&&(dispatchEvent(i),!e.PromiseRejectionEvent&&e.onunhandledrejection))try{e.onunhandledrejection(i)}catch(e){}R&&i&&!i.defaultPrevented&&console.warn(`Unhandled rejection: ${t.stack||t}`)}catch(e){}}var ht=Ce.reject;function dt(e,t,n,r){if(e.idbdb&&(e._state.openComplete||Ke.letThrough||e._vip)){var s=e._createTransaction(t,n,e._dbSchema);try{s.create(),e._state.PR1398_maxLoop=3}catch(s){return s.name===H.InvalidState&&e.isOpen()&&--e._state.PR1398_maxLoop>0?(console.warn(\"Dexie: Need to reopen db\"),e._close(),e.open().then((()=>dt(e,t,n,r)))):ht(s)}return s._promise(t,((e,t)=>Je((()=>(Ke.trans=s,r(e,t,s)))))).then((e=>s._completion.then((()=>e))))}if(e._state.openComplete)return ht(new X.DatabaseClosed(e._state.dbOpenError));if(!e._state.isBeingOpened){if(!e._options.autoOpen)return ht(new X.DatabaseClosed);e.open().catch(ee)}return e._state.dbReadyPromise.then((()=>dt(e,t,n,r)))}const ft=String.fromCharCode(65535),pt=\"Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.\",yt=[],mt=\"undefined\"!=typeof navigator&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),vt=mt,gt=mt,bt=e=>!/(dexie\\.js|dexie\\.min\\.js)/.test(e);function _t(e,t){return e?t?function(){return e.apply(this,arguments)&&t.apply(this,arguments)}:e:t}const wt={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function xt(e){return\"string\"!=typeof e||/\\./.test(e)?e=>e:t=>(void 0===t[e]&&e in t&&delete(t=O(t))[e],t)}class kt{_trans(e,t,n){const r=this._tx||Ke.trans,s=this.name;function i(e,n,r){if(!r.schema[s])throw new X.NotFound(\"Table \"+s+\" not part of transaction\");return t(r.idbtrans,r)}const o=$e();try{return r&&r.db===this.db?r===Ke.trans?r._promise(e,i,n):Je((()=>r._promise(e,i,n)),{trans:r,transless:Ke.transless||Ke}):dt(this.db,e,[this.name],i)}finally{o&&Ue()}}get(e,t){return e&&e.constructor===Object?this.where(e).first(t):this._trans(\"readonly\",(t=>this.core.get({trans:t,key:e}).then((e=>this.hook.reading.fire(e))))).then(t)}where(e){if(\"string\"==typeof e)return new this.db.WhereClause(this,e);if(n(e))return new this.db.WhereClause(this,`[${e.join(\"+\")}]`);const r=t(e);if(1===r.length)return this.where(r[0]).equals(e[r[0]]);const s=this.schema.indexes.concat(this.schema.primKey).filter((e=>e.compound&&r.every((t=>e.keyPath.indexOf(t)>=0))&&e.keyPath.every((e=>r.indexOf(e)>=0))))[0];if(s&&this.db._maxKey!==ft)return this.where(s.name).equals(s.keyPath.map((t=>e[t])));!s&&R&&console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${r.join(\"+\")}]`);const{idxByName:i}=this.schema,o=this.db._deps.indexedDB;function a(e,t){try{return 0===o.cmp(e,t)}catch(e){return!1}}const[u,l]=r.reduce((([t,r],s)=>{const o=i[s],u=e[s];return[t||o,t||!o?_t(r,o&&o.multi?e=>{const t=b(e,s);return n(t)&&t.some((e=>a(u,e)))}:e=>a(u,b(e,s))):r]}),[null,null]);return u?this.where(u.name).equals(e[u.keyPath]).filter(l):s?this.filter(l):this.where(r).equals(\"\")}filter(e){return this.toCollection().and(e)}count(e){return this.toCollection().count(e)}offset(e){return this.toCollection().offset(e)}limit(e){return this.toCollection().limit(e)}each(e){return this.toCollection().each(e)}toArray(e){return this.toCollection().toArray(e)}toCollection(){return new this.db.Collection(new this.db.WhereClause(this))}orderBy(e){return new this.db.Collection(new this.db.WhereClause(this,n(e)?`[${e.join(\"+\")}]`:e))}reverse(){return this.toCollection().reverse()}mapToClass(e){this.schema.mappedClass=e;const t=t=>{if(!t)return t;const n=Object.create(e.prototype);for(var r in t)if(o(t,r))try{n[r]=t[r]}catch(e){}return n};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=t,this.hook(\"reading\",t),e}defineClass(){return this.mapToClass((function(e){r(this,e)}))}add(e,t){const{auto:n,keyPath:r}=this.schema.primKey;let s=e;return r&&n&&(s=xt(r)(e)),this._trans(\"readwrite\",(e=>this.core.mutate({trans:e,type:\"add\",keys:null!=t?[t]:null,values:[s]}))).then((e=>e.numFailures?Ce.reject(e.failures[0]):e.lastResult)).then((t=>{if(r)try{_(e,r,t)}catch(e){}return t}))}update(e,r){if(\"object\"!=typeof e||n(e))return this.where(\":id\").equals(e).modify(r);{const n=b(e,this.schema.primKey.keyPath);if(void 0===n)return ht(new X.InvalidArgument(\"Given object does not contain its primary key\"));try{\"function\"!=typeof r?t(r).forEach((t=>{_(e,t,r[t])})):r(e,{value:e,primKey:n})}catch(e){}return this.where(\":id\").equals(n).modify(r)}}put(e,t){const{auto:n,keyPath:r}=this.schema.primKey;let s=e;return r&&n&&(s=xt(r)(e)),this._trans(\"readwrite\",(e=>this.core.mutate({trans:e,type:\"put\",values:[s],keys:null!=t?[t]:null}))).then((e=>e.numFailures?Ce.reject(e.failures[0]):e.lastResult)).then((t=>{if(r)try{_(e,r,t)}catch(e){}return t}))}delete(e){return this._trans(\"readwrite\",(t=>this.core.mutate({trans:t,type:\"delete\",keys:[e]}))).then((e=>e.numFailures?Ce.reject(e.failures[0]):void 0))}clear(){return this._trans(\"readwrite\",(e=>this.core.mutate({trans:e,type:\"deleteRange\",range:wt}))).then((e=>e.numFailures?Ce.reject(e.failures[0]):void 0))}bulkGet(e){return this._trans(\"readonly\",(t=>this.core.getMany({keys:e,trans:t}).then((e=>e.map((e=>this.hook.reading.fire(e)))))))}bulkAdd(e,t,n){const r=Array.isArray(t)?t:void 0,s=(n=n||(r?void 0:t))?n.allKeys:void 0;return this._trans(\"readwrite\",(t=>{const{auto:n,keyPath:i}=this.schema.primKey;if(i&&r)throw new X.InvalidArgument(\"bulkAdd(): keys argument invalid on tables with inbound keys\");if(r&&r.length!==e.length)throw new X.InvalidArgument(\"Arguments objects and keys must have the same length\");const o=e.length;let a=i&&n?e.map(xt(i)):e;return this.core.mutate({trans:t,type:\"add\",keys:r,values:a,wantResults:s}).then((({numFailures:e,results:t,lastResult:n,failures:r})=>{if(0===e)return s?t:n;throw new G(`${this.name}.bulkAdd(): ${e} of ${o} operations failed`,r)}))}))}bulkPut(e,t,n){const r=Array.isArray(t)?t:void 0,s=(n=n||(r?void 0:t))?n.allKeys:void 0;return this._trans(\"readwrite\",(t=>{const{auto:n,keyPath:i}=this.schema.primKey;if(i&&r)throw new X.InvalidArgument(\"bulkPut(): keys argument invalid on tables with inbound keys\");if(r&&r.length!==e.length)throw new X.InvalidArgument(\"Arguments objects and keys must have the same length\");const o=e.length;let a=i&&n?e.map(xt(i)):e;return this.core.mutate({trans:t,type:\"put\",keys:r,values:a,wantResults:s}).then((({numFailures:e,results:t,lastResult:n,failures:r})=>{if(0===e)return s?t:n;throw new G(`${this.name}.bulkPut(): ${e} of ${o} operations failed`,r)}))}))}bulkDelete(e){const t=e.length;return this._trans(\"readwrite\",(t=>this.core.mutate({trans:t,type:\"delete\",keys:e}))).then((({numFailures:e,lastResult:n,failures:r})=>{if(0===e)return n;throw new G(`${this.name}.bulkDelete(): ${e} of ${t} operations failed`,r)}))}}function Et(e){var r={},s=function(t,n){if(n){for(var s=arguments.length,i=new Array(s-1);--s;)i[s-1]=arguments[s];return r[t].subscribe.apply(null,i),e}if(\"string\"==typeof t)return r[t]};s.addEventType=a;for(var i=1,o=arguments.length;i<o;++i)a(arguments[i]);return s;function a(e,t,n){if(\"object\"==typeof e)return u(e);t||(t=ae),n||(n=ee);var i={subscribers:[],fire:n,subscribe:function(e){-1===i.subscribers.indexOf(e)&&(i.subscribers.push(e),i.fire=t(i.fire,e))},unsubscribe:function(e){i.subscribers=i.subscribers.filter((function(t){return t!==e})),i.fire=i.subscribers.reduce(t,n)}};return r[e]=s[e]=i,i}function u(e){t(e).forEach((function(t){var r=e[t];if(n(r))a(t,e[t][0],e[t][1]);else{if(\"asap\"!==r)throw new X.InvalidArgument(\"Invalid event config\");var s=a(t,te,(function(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];s.subscribers.forEach((function(e){v((function(){e.apply(null,t)}))}))}))}}))}}function Pt(e,t){return c(t).from({prototype:e}),t}function Kt(e,t){return!(e.filter||e.algorithm||e.or)&&(t?e.justLimit:!e.replayFilter)}function Ot(e,t){e.filter=_t(e.filter,t)}function St(e,t,n){var r=e.replayFilter;e.replayFilter=r?()=>_t(r(),t()):t,e.justLimit=n&&!r}function At(e,t){if(e.isPrimKey)return t.primaryKey;const n=t.getIndexByKeyPath(e.index);if(!n)throw new X.Schema(\"KeyPath \"+e.index+\" on object store \"+t.name+\" is not indexed\");return n}function Ct(e,t,n){const r=At(e,t.schema);return t.openCursor({trans:n,values:!e.keysOnly,reverse:\"prev\"===e.dir,unique:!!e.unique,query:{index:r,range:e.range}})}function jt(e,t,n,r){const s=e.replayFilter?_t(e.filter,e.replayFilter()):e.filter;if(e.or){const i={},a=(e,n,r)=>{if(!s||s(n,r,(e=>n.stop(e)),(e=>n.fail(e)))){var a=n.primaryKey,u=\"\"+a;\"[object ArrayBuffer]\"===u&&(u=\"\"+new Uint8Array(a)),o(i,u)||(i[u]=!0,t(e,n,r))}};return Promise.all([e.or._iterate(a,n),Dt(Ct(e,r,n),e.algorithm,a,!e.keysOnly&&e.valueMapper)])}return Dt(Ct(e,r,n),_t(e.algorithm,s),t,!e.keysOnly&&e.valueMapper)}function Dt(e,t,n,r){var s=We(r?(e,t,s)=>n(r(e),t,s):n);return e.then((e=>{if(e)return e.start((()=>{var n=()=>e.continue();t&&!t(e,(e=>n=e),(t=>{e.stop(t),n=ee}),(t=>{e.fail(t),n=ee}))||s(e.value,e,(e=>n=e)),n()}))}))}function It(e,t){try{const n=Bt(e),r=Bt(t);if(n!==r)return\"Array\"===n?1:\"Array\"===r?-1:\"binary\"===n?1:\"binary\"===r?-1:\"string\"===n?1:\"string\"===r?-1:\"Date\"===n?1:\"Date\"!==r?NaN:-1;switch(n){case\"number\":case\"Date\":case\"string\":return e>t?1:e<t?-1:0;case\"binary\":return function(e,t){const n=e.length,r=t.length,s=n<r?n:r;for(let n=0;n<s;++n)if(e[n]!==t[n])return e[n]<t[n]?-1:1;return n===r?0:n<r?-1:1}(Tt(e),Tt(t));case\"Array\":return function(e,t){const n=e.length,r=t.length,s=n<r?n:r;for(let n=0;n<s;++n){const r=It(e[n],t[n]);if(0!==r)return r}return n===r?0:n<r?-1:1}(e,t)}}catch(e){}return NaN}function Bt(e){const t=typeof e;if(\"object\"!==t)return t;if(ArrayBuffer.isView(e))return\"binary\";const n=C(e);return\"ArrayBuffer\"===n?\"binary\":n}function Tt(e){return e instanceof Uint8Array?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e)}class Rt{_read(e,t){var n=this._ctx;return n.error?n.table._trans(null,ht.bind(null,n.error)):n.table._trans(\"readonly\",e).then(t)}_write(e){var t=this._ctx;return t.error?t.table._trans(null,ht.bind(null,t.error)):t.table._trans(\"readwrite\",e,\"locked\")}_addAlgorithm(e){var t=this._ctx;t.algorithm=_t(t.algorithm,e)}_iterate(e,t){return jt(this._ctx,e,t,this._ctx.table.core)}clone(e){var t=Object.create(this.constructor.prototype),n=Object.create(this._ctx);return e&&r(n,e),t._ctx=n,t}raw(){return this._ctx.valueMapper=null,this}each(e){var t=this._ctx;return this._read((n=>jt(t,e,n,t.table.core)))}count(e){return this._read((e=>{const t=this._ctx,n=t.table.core;if(Kt(t,!0))return n.count({trans:e,query:{index:At(t,n.schema),range:t.range}}).then((e=>Math.min(e,t.limit)));var r=0;return jt(t,(()=>(++r,!1)),e,n).then((()=>r))})).then(e)}sortBy(e,t){const n=e.split(\".\").reverse(),r=n[0],s=n.length-1;function i(e,t){return t?i(e[n[t]],t-1):e[r]}var o=\"next\"===this._ctx.dir?1:-1;function a(e,t){var n=i(e,s),r=i(t,s);return n<r?-o:n>r?o:0}return this.toArray((function(e){return e.sort(a)})).then(t)}toArray(e){return this._read((e=>{var t=this._ctx;if(\"next\"===t.dir&&Kt(t,!0)&&t.limit>0){const{valueMapper:n}=t,r=At(t,t.table.core.schema);return t.table.core.query({trans:e,limit:t.limit,values:!0,query:{index:r,range:t.range}}).then((({result:e})=>n?e.map(n):e))}{const n=[];return jt(t,(e=>n.push(e)),e,t.table.core).then((()=>n))}}),e)}offset(e){var t=this._ctx;return e<=0||(t.offset+=e,Kt(t)?St(t,(()=>{var t=e;return(e,n)=>0===t||(1===t?(--t,!1):(n((()=>{e.advance(t),t=0})),!1))})):St(t,(()=>{var t=e;return()=>--t<0}))),this}limit(e){return this._ctx.limit=Math.min(this._ctx.limit,e),St(this._ctx,(()=>{var t=e;return function(e,n,r){return--t<=0&&n(r),t>=0}}),!0),this}until(e,t){return Ot(this._ctx,(function(n,r,s){return!e(n.value)||(r(s),t)})),this}first(e){return this.limit(1).toArray((function(e){return e[0]})).then(e)}last(e){return this.reverse().first(e)}filter(e){var t,n;return Ot(this._ctx,(function(t){return e(t.value)})),t=this._ctx,n=e,t.isMatch=_t(t.isMatch,n),this}and(e){return this.filter(e)}or(e){return new this.db.WhereClause(this._ctx.table,e,this)}reverse(){return this._ctx.dir=\"prev\"===this._ctx.dir?\"next\":\"prev\",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this}desc(){return this.reverse()}eachKey(e){var t=this._ctx;return t.keysOnly=!t.isMatch,this.each((function(t,n){e(n.key,n)}))}eachUniqueKey(e){return this._ctx.unique=\"unique\",this.eachKey(e)}eachPrimaryKey(e){var t=this._ctx;return t.keysOnly=!t.isMatch,this.each((function(t,n){e(n.primaryKey,n)}))}keys(e){var t=this._ctx;t.keysOnly=!t.isMatch;var n=[];return this.each((function(e,t){n.push(t.key)})).then((function(){return n})).then(e)}primaryKeys(e){var t=this._ctx;if(\"next\"===t.dir&&Kt(t,!0)&&t.limit>0)return this._read((e=>{var n=At(t,t.table.core.schema);return t.table.core.query({trans:e,values:!1,limit:t.limit,query:{index:n,range:t.range}})})).then((({result:e})=>e)).then(e);t.keysOnly=!t.isMatch;var n=[];return this.each((function(e,t){n.push(t.primaryKey)})).then((function(){return n})).then(e)}uniqueKeys(e){return this._ctx.unique=\"unique\",this.keys(e)}firstKey(e){return this.limit(1).keys((function(e){return e[0]})).then(e)}lastKey(e){return this.reverse().firstKey(e)}distinct(){var e=this._ctx,t=e.index&&e.table.schema.idxByName[e.index];if(!t||!t.multi)return this;var n={};return Ot(this._ctx,(function(e){var t=e.primaryKey.toString(),r=o(n,t);return n[t]=!0,!r})),this}modify(e){var n=this._ctx;return this._write((r=>{var s;if(\"function\"==typeof e)s=e;else{var i=t(e),o=i.length;s=function(t){for(var n=!1,r=0;r<o;++r){var s=i[r],a=e[s];b(t,s)!==a&&(_(t,s,a),n=!0)}return n}}const a=n.table.core,{outbound:u,extractKey:l}=a.schema.primaryKey,c=this.db._options.modifyChunkSize||200,h=[];let d=0;const f=[],p=(e,n)=>{const{failures:r,numFailures:s}=n;d+=e-s;for(let e of t(r))h.push(r[e])};return this.clone().primaryKeys().then((t=>{const i=o=>{const h=Math.min(c,t.length-o);return a.getMany({trans:r,keys:t.slice(o,o+h),cache:\"immutable\"}).then((d=>{const f=[],y=[],m=u?[]:null,v=[];for(let e=0;e<h;++e){const n=d[e],r={value:O(n),primKey:t[o+e]};!1!==s.call(r,r.value,r)&&(null==r.value?v.push(t[o+e]):u||0===It(l(n),l(r.value))?(y.push(r.value),u&&m.push(t[o+e])):(v.push(t[o+e]),f.push(r.value)))}const g=Kt(n)&&n.limit===1/0&&(\"function\"!=typeof e||e===Ft)&&{index:n.index,range:n.range};return Promise.resolve(f.length>0&&a.mutate({trans:r,type:\"add\",values:f}).then((e=>{for(let t in e.failures)v.splice(parseInt(t),1);p(f.length,e)}))).then((()=>(y.length>0||g&&\"object\"==typeof e)&&a.mutate({trans:r,type:\"put\",keys:m,values:y,criteria:g,changeSpec:\"function\"!=typeof e&&e}).then((e=>p(y.length,e))))).then((()=>(v.length>0||g&&e===Ft)&&a.mutate({trans:r,type:\"delete\",keys:v,criteria:g}).then((e=>p(v.length,e))))).then((()=>t.length>o+h&&i(o+c)))}))};return i(0).then((()=>{if(h.length>0)throw new z(\"Error modifying one or more objects\",h,d,f);return t.length}))}))}))}delete(){var e=this._ctx,t=e.range;return Kt(e)&&(e.isPrimKey&&!gt||3===t.type)?this._write((n=>{const{primaryKey:r}=e.table.core.schema,s=t;return e.table.core.count({trans:n,query:{index:r,range:s}}).then((t=>e.table.core.mutate({trans:n,type:\"deleteRange\",range:s}).then((({failures:e,lastResult:n,results:r,numFailures:s})=>{if(s)throw new z(\"Could not delete some values\",Object.keys(e).map((t=>e[t])),t-s);return t-s}))))})):this.modify(Ft)}}const Ft=(e,t)=>t.value=null;function Mt(e,t){return e<t?-1:e===t?0:1}function Nt(e,t){return e>t?-1:e===t?0:1}function qt(e,t,n){var r=e instanceof Yt?new e.Collection(e):e;return r._ctx.error=n?new n(t):new TypeError(t),r}function $t(e){return new e.Collection(e,(()=>Wt(\"\"))).limit(0)}function Ut(e,t,n,r,s,i){for(var o=Math.min(e.length,r.length),a=-1,u=0;u<o;++u){var l=t[u];if(l!==r[u])return s(e[u],n[u])<0?e.substr(0,u)+n[u]+n.substr(u+1):s(e[u],r[u])<0?e.substr(0,u)+r[u]+n.substr(u+1):a>=0?e.substr(0,a)+t[a]+n.substr(a+1):null;s(e[u],l)<0&&(a=u)}return o<r.length&&\"next\"===i?e+n.substr(e.length):o<e.length&&\"prev\"===i?e.substr(0,n.length):a<0?null:e.substr(0,a)+r[a]+n.substr(a+1)}function Lt(e,t,n,r){var s,i,o,a,u,l,c,h=n.length;if(!n.every((e=>\"string\"==typeof e)))return qt(e,\"String expected.\");function d(e){s=function(e){return\"next\"===e?e=>e.toUpperCase():e=>e.toLowerCase()}(e),i=function(e){return\"next\"===e?e=>e.toLowerCase():e=>e.toUpperCase()}(e),o=\"next\"===e?Mt:Nt;var t=n.map((function(e){return{lower:i(e),upper:s(e)}})).sort((function(e,t){return o(e.lower,t.lower)}));a=t.map((function(e){return e.upper})),u=t.map((function(e){return e.lower})),l=e,c=\"next\"===e?\"\":r}d(\"next\");var f=new e.Collection(e,(()=>Vt(a[0],u[h-1]+r)));f._ondirectionchange=function(e){d(e)};var p=0;return f._addAlgorithm((function(e,n,r){var s=e.key;if(\"string\"!=typeof s)return!1;var d=i(s);if(t(d,u,p))return!0;for(var f=null,y=p;y<h;++y){var m=Ut(s,d,a[y],u[y],o,l);null===m&&null===f?p=y+1:(null===f||o(f,m)>0)&&(f=m)}return n(null!==f?function(){e.continue(f+c)}:r),!1})),f}function Vt(e,t,n,r){return{type:2,lower:e,upper:t,lowerOpen:n,upperOpen:r}}function Wt(e){return{type:1,lower:e,upper:e}}class Yt{get Collection(){return this._ctx.table.db.Collection}between(e,t,n,r){n=!1!==n,r=!0===r;try{return this._cmp(e,t)>0||0===this._cmp(e,t)&&(n||r)&&(!n||!r)?$t(this):new this.Collection(this,(()=>Vt(e,t,!n,!r)))}catch(e){return qt(this,pt)}}equals(e){return null==e?qt(this,pt):new this.Collection(this,(()=>Wt(e)))}above(e){return null==e?qt(this,pt):new this.Collection(this,(()=>Vt(e,void 0,!0)))}aboveOrEqual(e){return null==e?qt(this,pt):new this.Collection(this,(()=>Vt(e,void 0,!1)))}below(e){return null==e?qt(this,pt):new this.Collection(this,(()=>Vt(void 0,e,!1,!0)))}belowOrEqual(e){return null==e?qt(this,pt):new this.Collection(this,(()=>Vt(void 0,e)))}startsWith(e){return\"string\"!=typeof e?qt(this,\"String expected.\"):this.between(e,e+ft,!0,!0)}startsWithIgnoreCase(e){return\"\"===e?this.startsWith(e):Lt(this,((e,t)=>0===e.indexOf(t[0])),[e],ft)}equalsIgnoreCase(e){return Lt(this,((e,t)=>e===t[0]),[e],\"\")}anyOfIgnoreCase(){var e=B.apply(I,arguments);return 0===e.length?$t(this):Lt(this,((e,t)=>-1!==t.indexOf(e)),e,\"\")}startsWithAnyOfIgnoreCase(){var e=B.apply(I,arguments);return 0===e.length?$t(this):Lt(this,((e,t)=>t.some((t=>0===e.indexOf(t)))),e,ft)}anyOf(){const e=B.apply(I,arguments);let t=this._cmp;try{e.sort(t)}catch(e){return qt(this,pt)}if(0===e.length)return $t(this);const n=new this.Collection(this,(()=>Vt(e[0],e[e.length-1])));n._ondirectionchange=n=>{t=\"next\"===n?this._ascending:this._descending,e.sort(t)};let r=0;return n._addAlgorithm(((n,s,i)=>{const o=n.key;for(;t(o,e[r])>0;)if(++r,r===e.length)return s(i),!1;return 0===t(o,e[r])||(s((()=>{n.continue(e[r])})),!1)})),n}notEqual(e){return this.inAnyRange([[-(1/0),e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){const e=B.apply(I,arguments);if(0===e.length)return new this.Collection(this);try{e.sort(this._ascending)}catch(e){return qt(this,pt)}const t=e.reduce(((e,t)=>e?e.concat([[e[e.length-1][1],t]]):[[-(1/0),t]]),null);return t.push([e[e.length-1],this.db._maxKey]),this.inAnyRange(t,{includeLowers:!1,includeUppers:!1})}inAnyRange(e,t){const n=this._cmp,r=this._ascending,s=this._descending,i=this._min,o=this._max;if(0===e.length)return $t(this);if(!e.every((e=>void 0!==e[0]&&void 0!==e[1]&&r(e[0],e[1])<=0)))return qt(this,\"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower\",X.InvalidArgument);const a=!t||!1!==t.includeLowers,u=t&&!0===t.includeUppers;let l,c=r;function h(e,t){return c(e[0],t[0])}try{l=e.reduce((function(e,t){let r=0,s=e.length;for(;r<s;++r){const s=e[r];if(n(t[0],s[1])<0&&n(t[1],s[0])>0){s[0]=i(s[0],t[0]),s[1]=o(s[1],t[1]);break}}return r===s&&e.push(t),e}),[]),l.sort(h)}catch(e){return qt(this,pt)}let d=0;const f=u?e=>r(e,l[d][1])>0:e=>r(e,l[d][1])>=0,p=a?e=>s(e,l[d][0])>0:e=>s(e,l[d][0])>=0;let y=f;const m=new this.Collection(this,(()=>Vt(l[0][0],l[l.length-1][1],!a,!u)));return m._ondirectionchange=e=>{\"next\"===e?(y=f,c=r):(y=p,c=s),l.sort(h)},m._addAlgorithm(((e,t,n)=>{for(var s=e.key;y(s);)if(++d,d===l.length)return t(n),!1;return!!function(e){return!f(e)&&!p(e)}(s)||(0===this._cmp(s,l[d][1])||0===this._cmp(s,l[d][0])||t((()=>{c===r?e.continue(l[d][0]):e.continue(l[d][1])})),!1)})),m}startsWithAnyOf(){const e=B.apply(I,arguments);return e.every((e=>\"string\"==typeof e))?0===e.length?$t(this):this.inAnyRange(e.map((e=>[e,e+ft]))):qt(this,\"startsWithAnyOf() only works with strings\")}}function zt(e){return We((function(t){return Gt(t),e(t.target.error),!1}))}function Gt(e){e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault()}const Ht=Et(null,\"storagemutated\");class Qt{_lock(){return m(!Ke.global),++this._reculock,1!==this._reculock||Ke.global||(Ke.lockOwnerFor=this),this}_unlock(){if(m(!Ke.global),0==--this._reculock)for(Ke.global||(Ke.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var e=this._blockedFuncs.shift();try{ot(e[1],e[0])}catch(e){}}return this}_locked(){return this._reculock&&Ke.lockOwnerFor!==this}create(e){if(!this.mode)return this;const t=this.db.idbdb,n=this.db._state.dbOpenError;if(m(!this.idbtrans),!e&&!t)switch(n&&n.name){case\"DatabaseClosedError\":throw new X.DatabaseClosed(n);case\"MissingAPIError\":throw new X.MissingAPI(n.message,n);default:throw new X.OpenFailed(n)}if(!this.active)throw new X.TransactionInactive;return m(null===this._completion._state),(e=this.idbtrans=e||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):t.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}))).onerror=We((t=>{Gt(t),this._reject(e.error)})),e.onabort=We((t=>{Gt(t),this.active&&this._reject(new X.Abort(e.error)),this.active=!1,this.on(\"abort\").fire(t)})),e.oncomplete=We((()=>{this.active=!1,this._resolve(),\"mutatedParts\"in e&&Ht.storagemutated.fire(e.mutatedParts)})),this}_promise(e,t,n){if(\"readwrite\"===e&&\"readwrite\"!==this.mode)return ht(new X.ReadOnly(\"Transaction is readonly\"));if(!this.active)return ht(new X.TransactionInactive);if(this._locked())return new Ce(((r,s)=>{this._blockedFuncs.push([()=>{this._promise(e,t,n).then(r,s)},Ke])}));if(n)return Je((()=>{var e=new Ce(((e,n)=>{this._lock();const r=t(e,n,this);r&&r.then&&r.then(e,n)}));return e.finally((()=>this._unlock())),e._lib=!0,e}));var r=new Ce(((e,n)=>{var r=t(e,n,this);r&&r.then&&r.then(e,n)}));return r._lib=!0,r}_root(){return this.parent?this.parent._root():this}waitFor(e){var t=this._root();const n=Ce.resolve(e);if(t._waitingFor)t._waitingFor=t._waitingFor.then((()=>n));else{t._waitingFor=n,t._waitingQueue=[];var r=t.idbtrans.objectStore(t.storeNames[0]);!function e(){for(++t._spinCount;t._waitingQueue.length;)t._waitingQueue.shift()();t._waitingFor&&(r.get(-1/0).onsuccess=e)}()}var s=t._waitingFor;return new Ce(((e,r)=>{n.then((n=>t._waitingQueue.push(We(e.bind(null,n)))),(e=>t._waitingQueue.push(We(r.bind(null,e))))).finally((()=>{t._waitingFor===s&&(t._waitingFor=null)}))}))}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new X.Abort))}table(e){const t=this._memoizedTables||(this._memoizedTables={});if(o(t,e))return t[e];const n=this.schema[e];if(!n)throw new X.NotFound(\"Table \"+e+\" not part of transaction\");const r=new this.db.Table(e,n,this);return r.core=this.db.core.table(e),t[e]=r,r}}function Xt(e,t,n,r,s,i,o){return{name:e,keyPath:t,unique:n,multi:r,auto:s,compound:i,src:(n&&!o?\"&\":\"\")+(r?\"*\":\"\")+(s?\"++\":\"\")+Jt(t)}}function Jt(e){return\"string\"==typeof e?e:e?\"[\"+[].join.call(e,\"+\")+\"]\":\"\"}function Zt(e,t,n){return{name:e,primKey:t,indexes:n,mappedClass:null,idxByName:g(n,(e=>[e.name,e]))}}let en=e=>{try{return e.only([[]]),en=()=>[[]],[[]]}catch(e){return en=()=>ft,ft}};function tn(e){return null==e?()=>{}:\"string\"==typeof e?function(e){return 1===e.split(\".\").length?t=>t[e]:t=>b(t,e)}(e):t=>b(t,e)}function nn(e){return[].slice.call(e)}let rn=0;function sn(e){return null==e?\":id\":\"string\"==typeof e?e:`[${e.join(\"+\")}]`}function on(e,t,r){function s(e){if(3===e.type)return null;if(4===e.type)throw new Error(\"Cannot convert never type to IDBKeyRange\");const{lower:n,upper:r,lowerOpen:s,upperOpen:i}=e;return void 0===n?void 0===r?null:t.upperBound(r,!!i):void 0===r?t.lowerBound(n,!!s):t.bound(n,r,!!s,!!i)}const{schema:i,hasGetAll:o}=function(e,t){const r=nn(e.objectStoreNames);return{schema:{name:e.name,tables:r.map((e=>t.objectStore(e))).map((e=>{const{keyPath:t,autoIncrement:r}=e,s=n(t),i=null==t,o={},a={name:e.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:i,compound:s,keyPath:t,autoIncrement:r,unique:!0,extractKey:tn(t)},indexes:nn(e.indexNames).map((t=>e.index(t))).map((e=>{const{name:t,unique:r,multiEntry:s,keyPath:i}=e,a={name:t,compound:n(i),keyPath:i,unique:r,multiEntry:s,extractKey:tn(i)};return o[sn(i)]=a,a})),getIndexByKeyPath:e=>o[sn(e)]};return o[\":id\"]=a.primaryKey,null!=t&&(o[sn(t)]=a.primaryKey),a}))},hasGetAll:r.length>0&&\"getAll\"in t.objectStore(r[0])&&!(\"undefined\"!=typeof navigator&&/Safari/.test(navigator.userAgent)&&!/(Chrome\\/|Edge\\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1]<604)}}(e,r),a=i.tables.map((e=>function(e){const t=e.name;return{name:t,schema:e,mutate:function({trans:e,type:n,keys:r,values:i,range:o}){return new Promise(((a,u)=>{a=We(a);const l=e.objectStore(t),c=null==l.keyPath,h=\"put\"===n||\"add\"===n;if(!h&&\"delete\"!==n&&\"deleteRange\"!==n)throw new Error(\"Invalid operation type: \"+n);const{length:d}=r||i||{length:1};if(r&&i&&r.length!==i.length)throw new Error(\"Given keys array must have same length as given values array.\");if(0===d)return a({numFailures:0,failures:{},results:[],lastResult:void 0});let f;const p=[],y=[];let m=0;const v=e=>{++m,Gt(e)};if(\"deleteRange\"===n){if(4===o.type)return a({numFailures:m,failures:y,results:[],lastResult:void 0});3===o.type?p.push(f=l.clear()):p.push(f=l.delete(s(o)))}else{const[e,t]=h?c?[i,r]:[i,null]:[r,null];if(h)for(let r=0;r<d;++r)p.push(f=t&&void 0!==t[r]?l[n](e[r],t[r]):l[n](e[r])),f.onerror=v;else for(let t=0;t<d;++t)p.push(f=l[n](e[t])),f.onerror=v}const g=e=>{const t=e.target.result;p.forEach(((e,t)=>null!=e.error&&(y[t]=e.error))),a({numFailures:m,failures:y,results:\"delete\"===n?r:p.map((e=>e.result)),lastResult:t})};f.onerror=e=>{v(e),g(e)},f.onsuccess=g}))},getMany:({trans:e,keys:n})=>new Promise(((r,s)=>{r=We(r);const i=e.objectStore(t),o=n.length,a=new Array(o);let u,l=0,c=0;const h=e=>{const t=e.target;a[t._pos]=t.result,++c===l&&r(a)},d=zt(s);for(let e=0;e<o;++e)null!=n[e]&&(u=i.get(n[e]),u._pos=e,u.onsuccess=h,u.onerror=d,++l);0===l&&r(a)})),get:({trans:e,key:n})=>new Promise(((r,s)=>{r=We(r);const i=e.objectStore(t).get(n);i.onsuccess=e=>r(e.target.result),i.onerror=zt(s)})),query:function(e){return n=>new Promise(((r,i)=>{r=We(r);const{trans:o,values:a,limit:u,query:l}=n,c=u===1/0?void 0:u,{index:h,range:d}=l,f=o.objectStore(t),p=h.isPrimaryKey?f:f.index(h.name),y=s(d);if(0===u)return r({result:[]});if(e){const e=a?p.getAll(y,c):p.getAllKeys(y,c);e.onsuccess=e=>r({result:e.target.result}),e.onerror=zt(i)}else{let e=0;const t=a||!(\"openKeyCursor\"in p)?p.openCursor(y):p.openKeyCursor(y),n=[];t.onsuccess=s=>{const i=t.result;return i?(n.push(a?i.value:i.primaryKey),++e===u?r({result:n}):void i.continue()):r({result:n})},t.onerror=zt(i)}}))}(o),openCursor:function({trans:e,values:n,query:r,reverse:i,unique:o}){return new Promise(((a,u)=>{a=We(a);const{index:l,range:c}=r,h=e.objectStore(t),d=l.isPrimaryKey?h:h.index(l.name),f=i?o?\"prevunique\":\"prev\":o?\"nextunique\":\"next\",p=n||!(\"openKeyCursor\"in d)?d.openCursor(s(c),f):d.openKeyCursor(s(c),f);p.onerror=zt(u),p.onsuccess=We((t=>{const n=p.result;if(!n)return void a(null);n.___id=++rn,n.done=!1;const r=n.continue.bind(n);let s=n.continuePrimaryKey;s&&(s=s.bind(n));const i=n.advance.bind(n),o=()=>{throw new Error(\"Cursor not stopped\")};n.trans=e,n.stop=n.continue=n.continuePrimaryKey=n.advance=()=>{throw new Error(\"Cursor not started\")},n.fail=We(u),n.next=function(){let e=1;return this.start((()=>e--?this.continue():this.stop())).then((()=>this))},n.start=e=>{const t=new Promise(((e,t)=>{e=We(e),p.onerror=zt(t),n.fail=t,n.stop=t=>{n.stop=n.continue=n.continuePrimaryKey=n.advance=o,e(t)}})),a=()=>{if(p.result)try{e()}catch(e){n.fail(e)}else n.done=!0,n.start=()=>{throw new Error(\"Cursor behind last entry\")},n.stop()};return p.onsuccess=We((e=>{p.onsuccess=a,a()})),n.continue=r,n.continuePrimaryKey=s,n.advance=i,a(),t},a(n)}),u)}))},count({query:e,trans:n}){const{index:r,range:i}=e;return new Promise(((e,o)=>{const a=n.objectStore(t),u=r.isPrimaryKey?a:a.index(r.name),l=s(i),c=l?u.count(l):u.count();c.onsuccess=We((t=>e(t.target.result))),c.onerror=zt(o)}))}}}(e))),u={};return a.forEach((e=>u[e.name]=e)),{stack:\"dbcore\",transaction:e.transaction.bind(e),table(e){if(!u[e])throw new Error(`Table '${e}' not found`);return u[e]},MIN_KEY:-1/0,MAX_KEY:en(t),schema:i}}function an({_novip:e},t){const n=t.db,r=function(e,t,{IDBKeyRange:n,indexedDB:r},s){const i=function(e,t){return t.reduce(((e,{create:t})=>({...e,...t(e)})),e)}(on(t,n,s),e.dbcore);return{dbcore:i}}(e._middlewares,n,e._deps,t);e.core=r.dbcore,e.tables.forEach((t=>{const n=t.name;e.core.schema.tables.some((e=>e.name===n))&&(t.core=e.core.table(n),e[n]instanceof e.Table&&(e[n].core=t.core))}))}function un({_novip:e},t,n,r){n.forEach((n=>{const s=r[n];t.forEach((t=>{const r=d(t,n);(!r||\"value\"in r&&void 0===r.value)&&(t===e.Transaction.prototype||t instanceof e.Transaction?l(t,n,{get(){return this.table(n)},set(e){u(this,n,{value:e,writable:!0,configurable:!0,enumerable:!0})}}):t[n]=new e.Table(n,s))}))}))}function ln({_novip:e},t){t.forEach((t=>{for(let n in t)t[n]instanceof e.Table&&delete t[n]}))}function cn(e,t){return e._cfg.version-t._cfg.version}function hn(e,n,r,s){const i=e._dbSchema,o=e._createTransaction(\"readwrite\",e._storeNames,i);o.create(r),o._completion.catch(s);const a=o._reject.bind(o),u=Ke.transless||Ke;Je((()=>{Ke.trans=o,Ke.transless=u,0===n?(t(i).forEach((e=>{fn(r,e,i[e].primKey,i[e].indexes)})),an(e,r),Ce.follow((()=>e.on.populate.fire(o))).catch(a)):function({_novip:e},n,r,s){const i=[],o=e._versions;let a=e._dbSchema=yn(e,e.idbdb,s),u=!1;function l(){return i.length?Ce.resolve(i.shift()(r.idbtrans)).then(l):Ce.resolve()}return o.filter((e=>e._cfg.version>=n)).forEach((o=>{i.push((()=>{const i=a,l=o._cfg.dbschema;mn(e,i,s),mn(e,l,s),a=e._dbSchema=l;const c=dn(i,l);c.add.forEach((e=>{fn(s,e[0],e[1].primKey,e[1].indexes)})),c.change.forEach((e=>{if(e.recreate)throw new X.Upgrade(\"Not yet support for changing primary key\");{const t=s.objectStore(e.name);e.add.forEach((e=>pn(t,e))),e.change.forEach((e=>{t.deleteIndex(e.name),pn(t,e)})),e.del.forEach((e=>t.deleteIndex(e)))}}));const h=o._cfg.contentUpgrade;if(h&&o._cfg.version>n){an(e,s),r._memoizedTables={},u=!0;let n=w(l);c.del.forEach((e=>{n[e]=i[e]})),ln(e,[e.Transaction.prototype]),un(e,[e.Transaction.prototype],t(n),n),r.schema=n;const o=T(h);let a;o&&Ze();const d=Ce.follow((()=>{if(a=h(r),a&&o){var e=et.bind(null,null);a.then(e,e)}}));return a&&\"function\"==typeof a.then?Ce.resolve(a):d.then((()=>a))}})),i.push((t=>{if(!u||!vt){!function(e,t){[].slice.call(t.db.objectStoreNames).forEach((n=>null==e[n]&&t.db.deleteObjectStore(n)))}(o._cfg.dbschema,t)}ln(e,[e.Transaction.prototype]),un(e,[e.Transaction.prototype],e._storeNames,e._dbSchema),r.schema=e._dbSchema}))})),l().then((()=>{var e,n;n=s,t(e=a).forEach((t=>{n.db.objectStoreNames.contains(t)||fn(n,t,e[t].primKey,e[t].indexes)}))}))}(e,n,o,r).catch(a)}))}function dn(e,t){const n={del:[],add:[],change:[]};let r;for(r in e)t[r]||n.del.push(r);for(r in t){const s=e[r],i=t[r];if(s){const e={name:r,def:i,recreate:!1,del:[],add:[],change:[]};if(\"\"+(s.primKey.keyPath||\"\")!=\"\"+(i.primKey.keyPath||\"\")||s.primKey.auto!==i.primKey.auto&&!mt)e.recreate=!0,n.change.push(e);else{const t=s.idxByName,r=i.idxByName;let o;for(o in t)r[o]||e.del.push(o);for(o in r){const n=t[o],s=r[o];n?n.src!==s.src&&e.change.push(s):e.add.push(s)}(e.del.length>0||e.add.length>0||e.change.length>0)&&n.change.push(e)}}else n.add.push([r,i])}return n}function fn(e,t,n,r){const s=e.db.createObjectStore(t,n.keyPath?{keyPath:n.keyPath,autoIncrement:n.auto}:{autoIncrement:n.auto});return r.forEach((e=>pn(s,e))),s}function pn(e,t){e.createIndex(t.name,t.keyPath,{unique:t.unique,multiEntry:t.multi})}function yn(e,t,n){const r={};return p(t.objectStoreNames,0).forEach((e=>{const t=n.objectStore(e);let s=t.keyPath;const i=Xt(Jt(s),s||\"\",!1,!1,!!t.autoIncrement,s&&\"string\"!=typeof s,!0),o=[];for(let e=0;e<t.indexNames.length;++e){const n=t.index(t.indexNames[e]);s=n.keyPath;var a=Xt(n.name,s,!!n.unique,!!n.multiEntry,!1,s&&\"string\"!=typeof s,!1);o.push(a)}r[e]=Zt(e,i,o)})),r}function mn({_novip:t},n,r){const s=r.db.objectStoreNames;for(let e=0;e<s.length;++e){const i=s[e],o=r.objectStore(i);t._hasGetAll=\"getAll\"in o;for(let e=0;e<o.indexNames.length;++e){const t=o.indexNames[e],r=o.index(t).keyPath,s=\"string\"==typeof r?r:\"[\"+p(r).join(\"+\")+\"]\";if(n[i]){const e=n[i].idxByName[s];e&&(e.name=t,delete n[i].idxByName[s],n[i].idxByName[t]=e)}}}\"undefined\"!=typeof navigator&&/Safari/.test(navigator.userAgent)&&!/(Chrome\\/|Edge\\/)/.test(navigator.userAgent)&&e.WorkerGlobalScope&&e instanceof e.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1]<604&&(t._hasGetAll=!1)}class vn{_parseStoresSpec(e,r){t(e).forEach((t=>{if(null!==e[t]){var s=e[t].split(\",\").map(((e,t)=>{const r=(e=e.trim()).replace(/([&*]|\\+\\+)/g,\"\"),s=/^\\[/.test(r)?r.match(/^\\[(.*)\\]$/)[1].split(\"+\"):r;return Xt(r,s||null,/\\&/.test(e),/\\*/.test(e),/\\+\\+/.test(e),n(s),0===t)})),i=s.shift();if(i.multi)throw new X.Schema(\"Primary key cannot be multi-valued\");s.forEach((e=>{if(e.auto)throw new X.Schema(\"Only primary key can be marked as autoIncrement (++)\");if(!e.keyPath)throw new X.Schema(\"Index must have a name and cannot be an empty string\")})),r[t]=Zt(t,i,s)}}))}stores(e){const n=this.db;this._cfg.storesSource=this._cfg.storesSource?r(this._cfg.storesSource,e):e;const s=n._versions,i={};let o={};return s.forEach((e=>{r(i,e._cfg.storesSource),o=e._cfg.dbschema={},e._parseStoresSpec(i,o)})),n._dbSchema=o,ln(n,[n._allTables,n,n.Transaction.prototype]),un(n,[n._allTables,n,n.Transaction.prototype,this._cfg.tables],t(o),o),n._storeNames=t(o),this}upgrade(e){return this._cfg.contentUpgrade=ue(this._cfg.contentUpgrade||ee,e),this}}function gn(e,t){let n=e._dbNamesDB;return n||(n=e._dbNamesDB=new $n(\"__dbnames\",{addons:[],indexedDB:e,IDBKeyRange:t}),n.version(1).stores({dbnames:\"name\"})),n.table(\"dbnames\")}function bn(e){return e&&\"function\"==typeof e.databases}function _n(e){return Je((function(){return Ke.letThrough=!0,e()}))}function wn(){var e;return!navigator.userAgentData&&/Safari\\//.test(navigator.userAgent)&&!/Chrom(e|ium)\\//.test(navigator.userAgent)&&indexedDB.databases?new Promise((function(t){var n=function(){return indexedDB.databases().finally(t)};e=setInterval(n,100),n()})).finally((function(){return clearInterval(e)})):Promise.resolve()}function xn(e){const n=e._state,{indexedDB:r}=e._deps;if(n.isBeingOpened||e.idbdb)return n.dbReadyPromise.then((()=>n.dbOpenError?ht(n.dbOpenError):e));R&&(n.openCanceller._stackHolder=q()),n.isBeingOpened=!0,n.dbOpenError=null,n.openComplete=!1;const s=n.openCanceller;function i(){if(n.openCanceller!==s)throw new X.DatabaseClosed(\"db.open() was cancelled\")}let o=n.dbReadyResolve,a=null,u=!1;return Ce.race([s,(\"undefined\"==typeof navigator?Ce.resolve():wn()).then((()=>new Ce(((s,o)=>{if(i(),!r)throw new X.MissingAPI;const l=e.name,c=n.autoSchema?r.open(l):r.open(l,Math.round(10*e.verno));if(!c)throw new X.MissingAPI;c.onerror=zt(o),c.onblocked=We(e._fireOnBlocked),c.onupgradeneeded=We((t=>{if(a=c.transaction,n.autoSchema&&!e._options.allowEmptyDB){c.onerror=Gt,a.abort(),c.result.close();const e=r.deleteDatabase(l);e.onsuccess=e.onerror=We((()=>{o(new X.NoSuchDatabase(`Database ${l} doesnt exist`))}))}else{a.onerror=zt(o);var s=t.oldVersion>Math.pow(2,62)?0:t.oldVersion;u=s<1,e._novip.idbdb=c.result,hn(e,s/10,a,o)}}),o),c.onsuccess=We((()=>{a=null;const r=e._novip.idbdb=c.result,i=p(r.objectStoreNames);if(i.length>0)try{const s=r.transaction(1===(o=i).length?o[0]:o,\"readonly\");n.autoSchema?function({_novip:e},n,r){e.verno=n.version/10;const s=e._dbSchema=yn(0,n,r);e._storeNames=p(n.objectStoreNames,0),un(e,[e._allTables],t(s),s)}(e,r,s):(mn(e,e._dbSchema,s),function(e,t){const n=dn(yn(0,e.idbdb,t),e._dbSchema);return!(n.add.length||n.change.some((e=>e.add.length||e.change.length)))}(e,s)||console.warn(\"Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.\")),an(e,s)}catch(e){}var o;yt.push(e),r.onversionchange=We((t=>{n.vcFired=!0,e.on(\"versionchange\").fire(t)})),r.onclose=We((t=>{e.on(\"close\").fire(t)})),u&&function({indexedDB:e,IDBKeyRange:t},n){!bn(e)&&\"__dbnames\"!==n&&gn(e,t).put({name:n}).catch(ee)}(e._deps,l),s()}),o)}))))]).then((()=>(i(),n.onReadyBeingFired=[],Ce.resolve(_n((()=>e.on.ready.fire(e.vip)))).then((function t(){if(n.onReadyBeingFired.length>0){let r=n.onReadyBeingFired.reduce(ue,ee);return n.onReadyBeingFired=[],Ce.resolve(_n((()=>r(e.vip)))).then(t)}}))))).finally((()=>{n.onReadyBeingFired=null,n.isBeingOpened=!1})).then((()=>e)).catch((t=>{n.dbOpenError=t;try{a&&a.abort()}catch(e){}return s===n.openCanceller&&e._close(),ht(t)})).finally((()=>{n.openComplete=!0,o()}))}function kn(e){var t=t=>e.next(t),r=i(t),s=i((t=>e.throw(t)));function i(e){return t=>{var i=e(t),o=i.value;return i.done?o:o&&\"function\"==typeof o.then?o.then(r,s):n(o)?Promise.all(o).then(r,s):r(o)}}return i(t)()}function En(e,t,n){var r=arguments.length;if(r<2)throw new X.InvalidArgument(\"Too few arguments\");for(var s=new Array(r-1);--r;)s[r-1]=arguments[r];n=s.pop();var i=k(s);return[e,i,n]}function Pn(e,t,n,r,s){return Ce.resolve().then((()=>{const i=Ke.transless||Ke,o=e._createTransaction(t,n,e._dbSchema,r),a={trans:o,transless:i};if(r)o.idbtrans=r.idbtrans;else try{o.create(),e._state.PR1398_maxLoop=3}catch(r){return r.name===H.InvalidState&&e.isOpen()&&--e._state.PR1398_maxLoop>0?(console.warn(\"Dexie: Need to reopen db\"),e._close(),e.open().then((()=>Pn(e,t,n,null,s)))):ht(r)}const u=T(s);let l;u&&Ze();const c=Ce.follow((()=>{if(l=s.call(o,o),l)if(u){var e=et.bind(null,null);l.then(e,e)}else\"function\"==typeof l.next&&\"function\"==typeof l.throw&&(l=kn(l))}),a);return(l&&\"function\"==typeof l.then?Ce.resolve(l).then((e=>o.active?e:ht(new X.PrematureCommit(\"Transaction committed too early. See http://bit.ly/2kdckMn\")))):c.then((()=>l))).then((e=>(r&&o._resolve(),o._completion.then((()=>e))))).catch((e=>(o._reject(e),ht(e))))}))}function Kn(e,t,r){const s=n(e)?e.slice():[e];for(let e=0;e<r;++e)s.push(t);return s}const On={stack:\"dbcore\",name:\"VirtualIndexMiddleware\",level:1,create:function(e){return{...e,table(t){const n=e.table(t),{schema:r}=n,s={},i=[];function o(e,t,n){const r=sn(e),a=s[r]=s[r]||[],u=null==e?0:\"string\"==typeof e?1:e.length,l=t>0,c={...n,isVirtual:l,keyTail:t,keyLength:u,extractKey:tn(e),unique:!l&&n.unique};if(a.push(c),c.isPrimaryKey||i.push(c),u>1){o(2===u?e[0]:e.slice(0,u-1),t+1,n)}return a.sort(((e,t)=>e.keyTail-t.keyTail)),c}const a=o(r.primaryKey.keyPath,0,r.primaryKey);s[\":id\"]=[a];for(const e of r.indexes)o(e.keyPath,0,e);function u(t){const n=t.query.index;return n.isVirtual?{...t,query:{index:n,range:(r=t.query.range,s=n.keyTail,{type:1===r.type?2:r.type,lower:Kn(r.lower,r.lowerOpen?e.MAX_KEY:e.MIN_KEY,s),lowerOpen:!0,upper:Kn(r.upper,r.upperOpen?e.MIN_KEY:e.MAX_KEY,s),upperOpen:!0})}}:t;var r,s}const l={...n,schema:{...r,primaryKey:a,indexes:i,getIndexByKeyPath:function(e){const t=s[sn(e)];return t&&t[0]}},count:e=>n.count(u(e)),query:e=>n.query(u(e)),openCursor(t){const{keyTail:r,isVirtual:s,keyLength:i}=t.query.index;if(!s)return n.openCursor(t);return n.openCursor(u(t)).then((n=>n&&function(n){const s=Object.create(n,{continue:{value:function(s){null!=s?n.continue(Kn(s,t.reverse?e.MAX_KEY:e.MIN_KEY,r)):t.unique?n.continue(n.key.slice(0,i).concat(t.reverse?e.MIN_KEY:e.MAX_KEY,r)):n.continue()}},continuePrimaryKey:{value(t,s){n.continuePrimaryKey(Kn(t,e.MAX_KEY,r),s)}},primaryKey:{get:()=>n.primaryKey},key:{get(){const e=n.key;return 1===i?e[0]:e.slice(0,i)}},value:{get:()=>n.value}});return s}(n)))}};return l}}}};function Sn(e,n,r,s){return r=r||{},s=s||\"\",t(e).forEach((t=>{if(o(n,t)){var i=e[t],a=n[t];if(\"object\"==typeof i&&\"object\"==typeof a&&i&&a){const e=C(i);e!==C(a)?r[s+t]=n[t]:\"Object\"===e?Sn(i,a,r,s+t+\".\"):i!==a&&(r[s+t]=n[t])}else i!==a&&(r[s+t]=n[t])}else r[s+t]=void 0})),t(n).forEach((t=>{o(e,t)||(r[s+t]=n[t])})),r}const An={stack:\"dbcore\",name:\"HooksMiddleware\",level:2,create:e=>({...e,table(t){const n=e.table(t),{primaryKey:r}=n.schema,s={...n,mutate(e){const s=Ke.trans,{deleting:i,creating:a,updating:u}=s.table(t).hook;switch(e.type){case\"add\":if(a.fire===ee)break;return s._promise(\"readwrite\",(()=>l(e)),!0);case\"put\":if(a.fire===ee&&u.fire===ee)break;return s._promise(\"readwrite\",(()=>l(e)),!0);case\"delete\":if(i.fire===ee)break;return s._promise(\"readwrite\",(()=>l(e)),!0);case\"deleteRange\":if(i.fire===ee)break;return s._promise(\"readwrite\",(()=>function(e){return c(e.trans,e.range,1e4)}(e)),!0)}return n.mutate(e);function l(e){const t=Ke.trans,s=e.keys||function(e,t){return\"delete\"===t.type?t.keys:t.keys||t.values.map(e.extractKey)}(r,e);if(!s)throw new Error(\"Keys missing\");return\"delete\"!==(e=\"add\"===e.type||\"put\"===e.type?{...e,keys:s}:{...e}).type&&(e.values=[...e.values]),e.keys&&(e.keys=[...e.keys]),function(e,t,n){return\"add\"===t.type?Promise.resolve([]):e.getMany({trans:t.trans,keys:n,cache:\"immutable\"})}(n,e,s).then((l=>{const c=s.map(((n,s)=>{const c=l[s],h={onerror:null,onsuccess:null};if(\"delete\"===e.type)i.fire.call(h,n,c,t);else if(\"add\"===e.type||void 0===c){const i=a.fire.call(h,n,e.values[s],t);null==n&&null!=i&&(n=i,e.keys[s]=n,r.outbound||_(e.values[s],r.keyPath,n))}else{const r=Sn(c,e.values[s]),i=u.fire.call(h,r,n,c,t);if(i){const t=e.values[s];Object.keys(i).forEach((e=>{o(t,e)?t[e]=i[e]:_(t,e,i[e])}))}}return h}));return n.mutate(e).then((({failures:t,results:n,numFailures:r,lastResult:i})=>{for(let r=0;r<s.length;++r){const i=n?n[r]:s[r],o=c[r];null==i?o.onerror&&o.onerror(t[r]):o.onsuccess&&o.onsuccess(\"put\"===e.type&&l[r]?e.values[r]:i)}return{failures:t,results:n,numFailures:r,lastResult:i}})).catch((e=>(c.forEach((t=>t.onerror&&t.onerror(e))),Promise.reject(e))))}))}function c(e,t,s){return n.query({trans:e,values:!1,query:{index:r,range:t},limit:s}).then((({result:n})=>l({type:\"delete\",keys:n,trans:e}).then((r=>r.numFailures>0?Promise.reject(r.failures[0]):n.length<s?{failures:[],numFailures:0,lastResult:void 0}:c(e,{...t,lower:n[n.length-1],lowerOpen:!0},s)))))}}};return s}})};function Cn(e,t,n){try{if(!t)return null;if(t.keys.length<e.length)return null;const r=[];for(let s=0,i=0;s<t.keys.length&&i<e.length;++s)0===It(t.keys[s],e[i])&&(r.push(n?O(t.values[s]):t.values[s]),++i);return r.length===e.length?r:null}catch(e){return null}}const jn={stack:\"dbcore\",level:-1,create:e=>({table:t=>{const n=e.table(t);return{...n,getMany:e=>{if(!e.cache)return n.getMany(e);const t=Cn(e.keys,e.trans._cache,\"clone\"===e.cache);return t?Ce.resolve(t):n.getMany(e).then((t=>(e.trans._cache={keys:e.keys,values:\"clone\"===e.cache?O(t):t},t)))},mutate:e=>(\"add\"!==e.type&&(e.trans._cache=null),n.mutate(e))}}})};function Dn(e){return!(\"from\"in e)}const In=function(e,t){if(!this){const t=new In;return e&&\"d\"in e&&r(t,e),t}r(this,arguments.length?{d:1,from:e,to:arguments.length>1?t:e}:{d:0})};function Bn(e,t,n){const s=It(t,n);if(isNaN(s))return;if(s>0)throw RangeError();if(Dn(e))return r(e,{from:t,to:n,d:1});const i=e.l,o=e.r;if(It(n,e.from)<0)return i?Bn(i,t,n):e.l={from:t,to:n,d:1,l:null,r:null},Mn(e);if(It(t,e.to)>0)return o?Bn(o,t,n):e.r={from:t,to:n,d:1,l:null,r:null},Mn(e);It(t,e.from)<0&&(e.from=t,e.l=null,e.d=o?o.d+1:1),It(n,e.to)>0&&(e.to=n,e.r=null,e.d=e.l?e.l.d+1:1);const a=!e.r;i&&!e.l&&Tn(e,i),o&&a&&Tn(e,o)}function Tn(e,t){Dn(t)||function e(t,{from:n,to:r,l:s,r:i}){Bn(t,n,r),s&&e(t,s),i&&e(t,i)}(e,t)}function Rn(e,t){const n=Fn(t);let r=n.next();if(r.done)return!1;let s=r.value;const i=Fn(e);let o=i.next(s.from),a=o.value;for(;!r.done&&!o.done;){if(It(a.from,s.to)<=0&&It(a.to,s.from)>=0)return!0;It(s.from,a.from)<0?s=(r=n.next(a.from)).value:a=(o=i.next(s.from)).value}return!1}function Fn(e){let t=Dn(e)?null:{s:0,n:e};return{next(e){const n=arguments.length>0;for(;t;)switch(t.s){case 0:if(t.s=1,n)for(;t.n.l&&It(e,t.n.from)<0;)t={up:t,n:t.n.l,s:1};else for(;t.n.l;)t={up:t,n:t.n.l,s:1};case 1:if(t.s=2,!n||It(e,t.n.to)<=0)return{value:t.n,done:!1};case 2:if(t.n.r){t.s=3,t={up:t,n:t.n.r,s:0};continue}case 3:t=t.up}return{done:!0}}}}function Mn(e){var t,n;const r=((null===(t=e.r)||void 0===t?void 0:t.d)||0)-((null===(n=e.l)||void 0===n?void 0:n.d)||0),s=r>1?\"r\":r<-1?\"l\":\"\";if(s){const t=\"r\"===s?\"l\":\"r\",n={...e},r=e[s];e.from=r.from,e.to=r.to,e[s]=r[s],n[s]=r[t],e[t]=n,n.d=Nn(n)}e.d=Nn(e)}function Nn({r:e,l:t}){return(e?t?Math.max(e.d,t.d):e.d:t?t.d:0)+1}a(In.prototype,{add(e){return Tn(this,e),this},addKey(e){return Bn(this,e,e),this},addKeys(e){return e.forEach((e=>Bn(this,e,e))),this},[j](){return Fn(this)}});const qn={stack:\"dbcore\",level:0,create:e=>{const r=e.schema.name,s=new In(e.MIN_KEY,e.MAX_KEY);return{...e,table:i=>{const o=e.table(i),{schema:a}=o,{primaryKey:u}=a,{extractKey:l,outbound:c}=u,h={...o,mutate:e=>{const t=e.trans,u=t.mutatedParts||(t.mutatedParts={}),l=e=>{const t=`idb://${r}/${i}/${e}`;return u[t]||(u[t]=new In)},c=l(\"\"),h=l(\":dels\"),{type:d}=e;let[f,p]=\"deleteRange\"===e.type?[e.range]:\"delete\"===e.type?[e.keys]:e.values.length<50?[[],e.values]:[];const y=e.trans._cache;return o.mutate(e).then((e=>{if(n(f)){\"delete\"!==d&&(f=e.results),c.addKeys(f);const t=Cn(f,y);t||\"add\"===d||h.addKeys(f),(t||p)&&function(e,t,r,s){function i(t){const i=e(t.name||\"\");function o(e){return null!=e?t.extractKey(e):null}const a=e=>t.multiEntry&&n(e)?e.forEach((e=>i.addKey(e))):i.addKey(e);(r||s).forEach(((e,t)=>{const n=r&&o(r[t]),i=s&&o(s[t]);0!==It(n,i)&&(null!=n&&a(n),null!=i&&a(i))}))}t.indexes.forEach(i)}(l,a,t,p)}else if(f){const e={from:f.lower,to:f.upper};h.add(e),c.add(e)}else c.add(s),h.add(s),a.indexes.forEach((e=>l(e.name).add(s)));return e}))}},d=({query:{index:t,range:n}})=>{var r,s;return[t,new In(null!==(r=n.lower)&&void 0!==r?r:e.MIN_KEY,null!==(s=n.upper)&&void 0!==s?s:e.MAX_KEY)]},f={get:e=>[u,new In(e.key)],getMany:e=>[u,(new In).addKeys(e.keys)],count:d,query:d,openCursor:d};return t(f).forEach((e=>{h[e]=function(t){const{subscr:n}=Ke;if(n){const a=e=>{const t=`idb://${r}/${i}/${e}`;return n[t]||(n[t]=new In)},u=a(\"\"),h=a(\":dels\"),[d,p]=f[e](t);if(a(d.name||\"\").add(p),!d.isPrimaryKey){if(\"count\"!==e){const n=\"query\"===e&&c&&t.values&&o.query({...t,values:!1});return o[e].apply(this,arguments).then((r=>{if(\"query\"===e){if(c&&t.values)return n.then((({result:e})=>(u.addKeys(e),r)));const e=t.values?r.result.map(l):r.result;t.values?u.addKeys(e):h.addKeys(e)}else if(\"openCursor\"===e){const e=r,n=t.values;return e&&Object.create(e,{key:{get:()=>(h.addKey(e.primaryKey),e.key)},primaryKey:{get(){const t=e.primaryKey;return h.addKey(t),t}},value:{get:()=>(n&&u.addKey(e.primaryKey),e.value)}})}return r}))}h.add(s)}}return o[e].apply(this,arguments)}})),h}}}};class $n{constructor(e,t){this._middlewares={},this.verno=0;const n=$n.dependencies;this._options=t={addons:$n.addons,autoOpen:!0,indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange,...t},this._deps={indexedDB:t.indexedDB,IDBKeyRange:t.IDBKeyRange};const{addons:r}=t;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;const s={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:ee,dbReadyPromise:null,cancelOpen:ee,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};var i;s.dbReadyPromise=new Ce((e=>{s.dbReadyResolve=e})),s.openCanceller=new Ce(((e,t)=>{s.cancelOpen=t})),this._state=s,this.name=e,this.on=Et(this,\"populate\",\"blocked\",\"versionchange\",\"close\",{ready:[ue,ee]}),this.on.ready.subscribe=y(this.on.ready.subscribe,(e=>(t,n)=>{$n.vip((()=>{const r=this._state;if(r.openComplete)r.dbOpenError||Ce.resolve().then(t),n&&e(t);else if(r.onReadyBeingFired)r.onReadyBeingFired.push(t),n&&e(t);else{e(t);const r=this;n||e((function e(){r.on.ready.unsubscribe(t),r.on.ready.unsubscribe(e)}))}}))})),this.Collection=(i=this,Pt(Rt.prototype,(function(e,t){this.db=i;let n=wt,r=null;if(t)try{n=t()}catch(e){r=e}const s=e._ctx,o=s.table,a=o.hook.reading.fire;this._ctx={table:o,index:s.index,isPrimKey:!s.index||o.schema.primKey.keyPath&&s.index===o.schema.primKey.name,range:n,keysOnly:!1,dir:\"next\",unique:\"\",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:r,or:s.or,valueMapper:a!==te?a:null}}))),this.Table=function(e){return Pt(kt.prototype,(function(t,n,r){this.db=e,this._tx=r,this.name=t,this.schema=n,this.hook=e._allTables[t]?e._allTables[t].hook:Et(null,{creating:[se,ee],reading:[ne,te],updating:[oe,ee],deleting:[ie,ee]})}))}(this),this.Transaction=function(e){return Pt(Qt.prototype,(function(t,n,r,s,i){this.db=e,this.mode=t,this.storeNames=n,this.schema=r,this.chromeTransactionDurability=s,this.idbtrans=null,this.on=Et(this,\"complete\",\"error\",\"abort\"),this.parent=i||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new Ce(((e,t)=>{this._resolve=e,this._reject=t})),this._completion.then((()=>{this.active=!1,this.on.complete.fire()}),(e=>{var t=this.active;return this.active=!1,this.on.error.fire(e),this.parent?this.parent._reject(e):t&&this.idbtrans&&this.idbtrans.abort(),ht(e)}))}))}(this),this.Version=function(e){return Pt(vn.prototype,(function(t){this.db=e,this._cfg={version:t,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}}))}(this),this.WhereClause=function(e){return Pt(Yt.prototype,(function(t,n,r){this.db=e,this._ctx={table:t,index:\":id\"===n?null:n,or:r};const s=e._deps.indexedDB;if(!s)throw new X.MissingAPI;this._cmp=this._ascending=s.cmp.bind(s),this._descending=(e,t)=>s.cmp(t,e),this._max=(e,t)=>s.cmp(e,t)>0?e:t,this._min=(e,t)=>s.cmp(e,t)<0?e:t,this._IDBKeyRange=e._deps.IDBKeyRange}))}(this),this.on(\"versionchange\",(e=>{e.newVersion>0?console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`):console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`),this.close()})),this.on(\"blocked\",(e=>{!e.newVersion||e.newVersion<e.oldVersion?console.warn(`Dexie.delete('${this.name}') was blocked`):console.warn(`Upgrade '${this.name}' blocked by other connection holding version ${e.oldVersion/10}`)})),this._maxKey=en(t.IDBKeyRange),this._createTransaction=(e,t,n,r)=>new this.Transaction(e,t,n,this._options.chromeTransactionDurability,r),this._fireOnBlocked=e=>{this.on(\"blocked\").fire(e),yt.filter((e=>e.name===this.name&&e!==this&&!e._state.vcFired)).map((t=>t.on(\"versionchange\").fire(e)))},this.use(On),this.use(An),this.use(qn),this.use(jn),this.vip=Object.create(this,{_vip:{value:!0}}),r.forEach((e=>e(this)))}version(e){if(isNaN(e)||e<.1)throw new X.Type(\"Given version is not a positive number\");if(e=Math.round(10*e)/10,this.idbdb||this._state.isBeingOpened)throw new X.Schema(\"Cannot add version when database is open\");this.verno=Math.max(this.verno,e);const t=this._versions;var n=t.filter((t=>t._cfg.version===e))[0];return n||(n=new this.Version(e),t.push(n),t.sort(cn),n.stores({}),this._state.autoSchema=!1,n)}_whenReady(e){return this.idbdb&&(this._state.openComplete||Ke.letThrough||this._vip)?e():new Ce(((e,t)=>{if(this._state.openComplete)return t(new X.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen)return void t(new X.DatabaseClosed);this.open().catch(ee)}this._state.dbReadyPromise.then(e,t)})).then(e)}use({stack:e,create:t,level:n,name:r}){r&&this.unuse({stack:e,name:r});const s=this._middlewares[e]||(this._middlewares[e]=[]);return s.push({stack:e,create:t,level:null==n?10:n,name:r}),s.sort(((e,t)=>e.level-t.level)),this}unuse({stack:e,name:t,create:n}){return e&&this._middlewares[e]&&(this._middlewares[e]=this._middlewares[e].filter((e=>n?e.create!==n:!!t&&e.name!==t))),this}open(){return xn(this)}_close(){const e=this._state,t=yt.indexOf(this);if(t>=0&&yt.splice(t,1),this.idbdb){try{this.idbdb.close()}catch(e){}this._novip.idbdb=null}e.dbReadyPromise=new Ce((t=>{e.dbReadyResolve=t})),e.openCanceller=new Ce(((t,n)=>{e.cancelOpen=n}))}close(){this._close();const e=this._state;this._options.autoOpen=!1,e.dbOpenError=new X.DatabaseClosed,e.isBeingOpened&&e.cancelOpen(e.dbOpenError)}delete(){const e=arguments.length>0,t=this._state;return new Ce(((n,r)=>{const s=()=>{this.close();var e=this._deps.indexedDB.deleteDatabase(this.name);e.onsuccess=We((()=>{!function({indexedDB:e,IDBKeyRange:t},n){!bn(e)&&\"__dbnames\"!==n&&gn(e,t).delete(n).catch(ee)}(this._deps,this.name),n()})),e.onerror=zt(r),e.onblocked=this._fireOnBlocked};if(e)throw new X.InvalidArgument(\"Arguments not allowed in db.delete()\");t.isBeingOpened?t.dbReadyPromise.then(s):s()}))}backendDB(){return this.idbdb}isOpen(){return null!==this.idbdb}hasBeenClosed(){const e=this._state.dbOpenError;return e&&\"DatabaseClosed\"===e.name}hasFailed(){return null!==this._state.dbOpenError}dynamicallyOpened(){return this._state.autoSchema}get tables(){return t(this._allTables).map((e=>this._allTables[e]))}transaction(){const e=En.apply(this,arguments);return this._transaction.apply(this,e)}_transaction(e,t,n){let r=Ke.trans;r&&r.db===this&&-1===e.indexOf(\"!\")||(r=null);const s=-1!==e.indexOf(\"?\");let i,o;e=e.replace(\"!\",\"\").replace(\"?\",\"\");try{if(o=t.map((e=>{var t=e instanceof this.Table?e.name:e;if(\"string\"!=typeof t)throw new TypeError(\"Invalid table argument to Dexie.transaction(). Only Table or String are allowed\");return t})),\"r\"==e||\"readonly\"===e)i=\"readonly\";else{if(\"rw\"!=e&&\"readwrite\"!=e)throw new X.InvalidArgument(\"Invalid transaction mode: \"+e);i=\"readwrite\"}if(r){if(\"readonly\"===r.mode&&\"readwrite\"===i){if(!s)throw new X.SubTransaction(\"Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY\");r=null}r&&o.forEach((e=>{if(r&&-1===r.storeNames.indexOf(e)){if(!s)throw new X.SubTransaction(\"Table \"+e+\" not included in parent transaction.\");r=null}})),s&&r&&!r.active&&(r=null)}}catch(e){return r?r._promise(null,((t,n)=>{n(e)})):ht(e)}const a=Pn.bind(null,this,i,o,r,n);return r?r._promise(i,a,\"lock\"):Ke.trans?ot(Ke.transless,(()=>this._whenReady(a))):this._whenReady(a)}table(e){if(!o(this._allTables,e))throw new X.InvalidTable(`Table ${e} does not exist`);return this._allTables[e]}}const Un=\"undefined\"!=typeof Symbol&&\"observable\"in Symbol?Symbol.observable:\"@@observable\";class Ln{constructor(e){this._subscribe=e}subscribe(e,t,n){return this._subscribe(e&&\"function\"!=typeof e?e:{next:e,error:t,complete:n})}[Un](){return this}}function Vn(e,n){return t(n).forEach((t=>{Tn(e[t]||(e[t]=new In),n[t])})),e}function Wn(e){return new Ln((n=>{const r=T(e);let s=!1,i={},o={};const a={get closed(){return s},unsubscribe:()=>{s=!0,Ht.storagemutated.unsubscribe(h)}};n.start&&n.start(a);let u=!1,l=!1;function c(){return t(o).some((e=>i[e]&&Rn(i[e],o[e])))}const h=e=>{Vn(i,e),c()&&d()},d=()=>{if(u||s)return;i={};const t={},f=function(t){r&&Ze();const n=()=>Je(e,{subscr:t,trans:null}),s=Ke.trans?ot(Ke.transless,n):n();return r&&s.then(et,et),s}(t);l||(Ht(\"storagemutated\",h),l=!0),u=!0,Promise.resolve(f).then((e=>{u=!1,s||(c()?d():(i={},o=t,n.next&&n.next(e)))}),(e=>{u=!1,n.error&&n.error(e),a.unsubscribe()}))};return d(),a}))}let Yn;try{Yn={indexedDB:e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB,IDBKeyRange:e.IDBKeyRange||e.webkitIDBKeyRange}}catch(e){Yn={indexedDB:null,IDBKeyRange:null}}const zn=$n;function Gn(e){let t=Hn;try{Hn=!0,Ht.storagemutated.fire(e)}finally{Hn=t}}a(zn,{...Z,delete:e=>new zn(e,{addons:[]}).delete(),exists:e=>new zn(e,{addons:[]}).open().then((e=>(e.close(),!0))).catch(\"NoSuchDatabaseError\",(()=>!1)),getDatabaseNames(e){try{return function({indexedDB:e,IDBKeyRange:t}){return bn(e)?Promise.resolve(e.databases()).then((e=>e.map((e=>e.name)).filter((e=>\"__dbnames\"!==e)))):gn(e,t).toCollection().primaryKeys()}(zn.dependencies).then(e)}catch(e){return ht(new X.MissingAPI)}},defineClass:()=>function(e){r(this,e)},ignoreTransaction:e=>Ke.trans?ot(Ke.transless,e):e(),vip:_n,async:function(e){return function(){try{var t=kn(e.apply(this,arguments));return t&&\"function\"==typeof t.then?t:Ce.resolve(t)}catch(e){return ht(e)}}},spawn:function(e,t,n){try{var r=kn(e.apply(n,t||[]));return r&&\"function\"==typeof r.then?r:Ce.resolve(r)}catch(e){return ht(e)}},currentTransaction:{get:()=>Ke.trans||null},waitFor:function(e,t){const n=Ce.resolve(\"function\"==typeof e?zn.ignoreTransaction(e):e).timeout(t||6e4);return Ke.trans?Ke.trans.waitFor(n):n},Promise:Ce,debug:{get:()=>R,set:e=>{F(e,\"dexie\"===e?()=>!0:bt)}},derive:c,extend:r,props:a,override:y,Events:Et,on:Ht,liveQuery:Wn,extendObservabilitySet:Vn,getByKeyPath:b,setByKeyPath:_,delByKeyPath:function(e,t){\"string\"==typeof t?_(e,t,void 0):\"length\"in t&&[].map.call(t,(function(t){_(e,t,void 0)}))},shallowClone:w,deepClone:O,getObjectDiff:Sn,cmp:It,asap:v,minKey:-(1/0),addons:[],connections:yt,errnames:H,dependencies:Yn,semVer:\"3.2.3\",version:\"3.2.3\".split(\".\").map((e=>parseInt(e))).reduce(((e,t,n)=>e+t/Math.pow(10,2*n)))}),zn.maxKey=en(zn.dependencies.IDBKeyRange),\"undefined\"!=typeof dispatchEvent&&\"undefined\"!=typeof addEventListener&&(Ht(\"storagemutated\",(e=>{if(!Hn){let t;mt?(t=document.createEvent(\"CustomEvent\"),t.initCustomEvent(\"x-storagemutated-1\",!0,!0,e)):t=new CustomEvent(\"x-storagemutated-1\",{detail:e}),Hn=!0,dispatchEvent(t),Hn=!1}})),addEventListener(\"x-storagemutated-1\",(({detail:e})=>{Hn||Gn(e)})));let Hn=!1;if(\"undefined\"!=typeof BroadcastChannel){const e=new BroadcastChannel(\"x-storagemutated-1\");\"function\"==typeof e.unref&&e.unref(),Ht(\"storagemutated\",(t=>{Hn||e.postMessage(t)})),e.onmessage=e=>{e.data&&Gn(e.data)}}else if(\"undefined\"!=typeof self&&\"undefined\"!=typeof navigator){Ht(\"storagemutated\",(e=>{try{Hn||(\"undefined\"!=typeof localStorage&&localStorage.setItem(\"x-storagemutated-1\",JSON.stringify({trig:Math.random(),changedParts:e})),\"object\"==typeof self.clients&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>t.postMessage({type:\"x-storagemutated-1\",changedParts:e}))))}catch(e){}})),\"undefined\"!=typeof addEventListener&&addEventListener(\"storage\",(e=>{if(\"x-storagemutated-1\"===e.key){const t=JSON.parse(e.newValue);t&&Gn(t.changedParts)}}));const e=self.document&&navigator.serviceWorker;e&&e.addEventListener(\"message\",(function({data:e}){e&&\"x-storagemutated-1\"===e.type&&Gn(e.changedParts)}))}Ce.rejectionMapper=function(e,t){if(!e||e instanceof W||e instanceof TypeError||e instanceof SyntaxError||!e.name||!J[e.name])return e;var n=new J[e.name](t||e.message,e);return\"stack\"in e&&l(n,\"stack\",{get:function(){return this.inner.stack}}),n},F(R,bt);export{$n as Dexie,In as RangeSet,$n as default,Wn as liveQuery,Tn as mergeRanges,Rn as rangesOverlap};","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","import _cloneRegExp from \"./_cloneRegExp.js\";\nimport type from \"../type.js\";\n\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\nexport default function _clone(value, deep, map) {\n map || (map = new _ObjectMap());\n\n // this avoids the slower switch with a quick if decision removing some milliseconds in each run.\n if (_isPrimitive(value)) {\n return value;\n }\n var copy = function copy(copiedValue) {\n // Check for circular and same references on the object graph and return its corresponding clone.\n var cachedCopy = map.get(value);\n if (cachedCopy) {\n return cachedCopy;\n }\n map.set(value, copiedValue);\n for (var key in value) {\n if (Object.prototype.hasOwnProperty.call(value, key)) {\n copiedValue[key] = deep ? _clone(value[key], true, map) : value[key];\n }\n }\n return copiedValue;\n };\n switch (type(value)) {\n case 'Object':\n return copy(Object.create(Object.getPrototypeOf(value)));\n case 'Array':\n return copy(Array(value.length));\n case 'Date':\n return new Date(value.valueOf());\n case 'RegExp':\n return _cloneRegExp(value);\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n return value.slice();\n default:\n return value;\n }\n}\nfunction _isPrimitive(param) {\n var type = typeof param;\n return param == null || type != 'object' && type != 'function';\n}\nvar _ObjectMap = /*#__PURE__*/function () {\n function _ObjectMap() {\n this.map = {};\n this.length = 0;\n }\n _ObjectMap.prototype.set = function (key, value) {\n var hashedKey = this.hash(key);\n var bucket = this.map[hashedKey];\n if (!bucket) {\n this.map[hashedKey] = bucket = [];\n }\n bucket.push([key, value]);\n this.length += 1;\n };\n _ObjectMap.prototype.hash = function (key) {\n var hashedKey = [];\n for (var value in key) {\n hashedKey.push(Object.prototype.toString.call(key[value]));\n }\n return hashedKey.join();\n };\n _ObjectMap.prototype.get = function (key) {\n /**\n * depending on the number of objects to be cloned is faster to just iterate over the items in the map just because the hash function is so costly,\n * on my tests this number is 180, anything above that using the hash function is faster.\n */\n if (this.length <= 180) {\n for (var p in this.map) {\n var bucket = this.map[p];\n for (var i = 0; i < bucket.length; i += 1) {\n var element = bucket[i];\n if (element[0] === key) {\n return element[1];\n }\n }\n }\n return;\n }\n var hashedKey = this.hash(key);\n var bucket = this.map[hashedKey];\n if (!bucket) {\n return;\n }\n for (var i = 0; i < bucket.length; i += 1) {\n var element = bucket[i];\n if (element[0] === key) {\n return element[1];\n }\n }\n };\n return _ObjectMap;\n}();","import _clone from \"./internal/_clone.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n\n/**\n * Creates a deep copy of the source that can be used in place of the source\n * object without retaining any references to it.\n * The source object may contain (nested) `Array`s and `Object`s,\n * `Number`s, `String`s, `Boolean`s and `Date`s.\n * `Function`s are assigned by reference rather than copied.\n *\n * Dispatches to a `clone` method if present.\n *\n * Note that if the source object has multiple nodes that share a reference,\n * the returned object will have the same structure, but the references will\n * be pointed to the location within the cloned value.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * const objects = [{}, {}, {}];\n * const objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\nvar clone = /*#__PURE__*/_curry1(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : _clone(value, true);\n});\nexport default clone;","export default function _cloneRegExp(pattern) {\n return new RegExp(pattern.source, pattern.flags ? pattern.flags : (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : '') + (pattern.dotAll ? 's' : ''));\n}","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n}","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\nvar _isArguments = /*#__PURE__*/function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\nexport default _isArguments;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\";\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values, R.toPairs\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n});\nexport default keys;","import _arrayFromIterator from \"./_arrayFromIterator.js\";\nimport _includesWith from \"./_includesWith.js\";\nimport _functionName from \"./_functionName.js\";\nimport _has from \"./_has.js\";\nimport _objectIs from \"./_objectIs.js\";\nimport keys from \"../keys.js\";\nimport type from \"../type.js\";\n\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparison of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n var b = _arrayFromIterator(bIterator);\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n }\n\n // if *a* array contains any element that is not included in *b*\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n var typeA = type(a);\n if (typeA !== type(b)) {\n return false;\n }\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n break;\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n break;\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n break;\n case 'Error':\n return a.name === b.name && a.message === b.message;\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n break;\n }\n var idx = stackA.length - 1;\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n idx -= 1;\n }\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n var keysA = keys(a);\n if (keysA.length !== keys(b).length) {\n return false;\n }\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n while (idx >= 0) {\n var key = keysA[idx];\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n idx -= 1;\n }\n return true;\n}","export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _equals from \"./internal/_equals.js\";\n\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\nvar equals = /*#__PURE__*/_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\nexport default equals;","import _isPlaceholder from \"./_isPlaceholder.js\";\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\n\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\nvar mergeWithKey = /*#__PURE__*/_curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n l = l || {};\n r = r || {};\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n return result;\n});\nexport default mergeWithKey;","import _curry3 from \"./internal/_curry3.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport mergeWithKey from \"./mergeWithKey.js\";\n\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\nvar mergeDeepWithKey = /*#__PURE__*/_curry3(function mergeDeepWithKey(fn, lObj, rObj) {\n return mergeWithKey(function (k, lVal, rVal) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\nexport default mergeDeepWithKey;","import _curry2 from \"./internal/_curry2.js\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey.js\";\n\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\nvar mergeDeepRight = /*#__PURE__*/_curry2(function mergeDeepRight(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\nexport default mergeDeepRight;","import _isArrayLike from \"./_isArrayLike.js\";\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\nexport default function _createReduce(arrayReduce, methodReduce, iterableReduce) {\n return function _reduce(xf, acc, list) {\n if (_isArrayLike(list)) {\n return arrayReduce(xf, acc, list);\n }\n if (list == null) {\n return acc;\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return methodReduce(xf, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return iterableReduce(xf, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return iterableReduce(xf, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return methodReduce(xf, acc, list, 'reduce');\n }\n throw new TypeError('reduce: list must be array or iterable');\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _curry1 from \"./_curry1.js\";\nimport _isArray from \"./_isArray.js\";\nimport _isString from \"./_isString.js\";\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n * _isArrayLike({nodeType: 1, length: 1}) // => false\n */\nvar _isArrayLike = /*#__PURE__*/_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n if (!x) {\n return false;\n }\n if (typeof x !== 'object') {\n return false;\n }\n if (_isString(x)) {\n return false;\n }\n if (x.length === 0) {\n return true;\n }\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n return false;\n});\nexport default _isArrayLike;","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\nvar bind = /*#__PURE__*/_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\nexport default bind;","export default function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}","import _createReduce from \"./_createReduce.js\";\nimport _xArrayReduce from \"./_xArrayReduce.js\";\nimport bind from \"../bind.js\";\nfunction _xIterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\nfunction _xMethodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\nvar _xReduce = /*#__PURE__*/_createReduce(_xArrayReduce, _xMethodReduce, _xIterableReduce);\nexport default _xReduce;","export default function _xArrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}","var XWrap = /*#__PURE__*/function () {\n function XWrap(fn) {\n this.f = fn;\n }\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n return XWrap;\n}();\nexport default function _xwrap(fn) {\n return new XWrap(fn);\n}","import _curry3 from \"./internal/_curry3.js\";\nimport _xReduce from \"./internal/_xReduce.js\";\nimport _xwrap from \"./internal/_xwrap.js\";\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Be cautious of mutating and returning the accumulator. If you reuse it across\n * invocations, it will continue to accumulate onto the same value. The general\n * recommendation is to always return a new value. If you can't do so for\n * performance reasons, then be sure to reinitialize the accumulator on each\n * invocation.\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\nvar reduce = /*#__PURE__*/_curry3(function (xf, acc, list) {\n return _xReduce(typeof xf === 'function' ? _xwrap(xf) : xf, acc, list);\n});\nexport default reduce;","import _curry1 from \"./internal/_curry1.js\";\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig * -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(async () => {}); //=> \"AsyncFunction\"\n * R.type(undefined); //=> \"Undefined\"\n * R.type(BigInt(123)); //=> \"BigInt\"\n */\nvar type = /*#__PURE__*/_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\nexport default type;","/* This import statement requires a peer or dev dependency on react that is fulfilled at runtime.\n * To avoid duplicate bundling of react, we do not do this inside of single-spa-react.js.\n * We also do not set up the prop types in this file to avoid requiring the user of the library\n * to have prop-types installed and in their browser bundle, since not everyone uses prop types.\n */\nimport { SingleSpaContext } from \"single-spa-react\";\nimport * as React from \"react\";\n\nexport default class Parcel extends React.Component {\n static defaultProps = {\n wrapWith: \"div\",\n wrapStyle: {},\n parcelDidMount: () => {},\n };\n constructor(props) {\n super(props);\n\n this.state = {\n hasError: false,\n };\n\n if (!props.config) {\n throw new Error(\n `single-spa-react's Parcel component requires the 'config' prop to either be a parcel config or a loading function that returns a promise. See https://github.com/single-spa/single-spa-react`\n );\n }\n }\n componentDidMount() {\n this.unmounted = false;\n this.addThingToDo(\"mount\", () => {\n const mountParcel = this.props.mountParcel || this.mountParcel;\n if (!mountParcel) {\n throw new Error(`\n\t\t\t\t <Parcel /> was not passed a mountParcel prop, nor is it rendered where mountParcel is within the React context.\n\t\t\t\t If you are using <Parcel /> within a module that is not a single-spa application, you will need to import mountRootParcel from single-spa and pass it into <Parcel /> as a mountParcel prop\t\n\t\t\t\t`);\n }\n let domElement;\n if (this.el) {\n domElement = this.el;\n } else {\n this.createdDomElement = domElement = document.createElement(\n this.props.wrapWith\n );\n Object.keys(this.props.wrapStyle).forEach((key) => {\n domElement.style[key] = this.props.wrapStyle[key];\n });\n this.props.appendTo.appendChild(domElement);\n }\n this.parcel = mountParcel(this.props.config, {\n domElement,\n ...this.getParcelProps(),\n });\n this.parcel.mountPromise.then(this.props.parcelDidMount);\n return this.parcel.mountPromise;\n });\n }\n componentDidUpdate() {\n this.addThingToDo(\"update\", () => {\n if (this.parcel && this.parcel.update) {\n return this.parcel.update(this.getParcelProps());\n }\n });\n }\n componentWillUnmount() {\n this.addThingToDo(\"unmount\", () => {\n if (this.parcel && this.parcel.getStatus() === \"MOUNTED\") {\n return this.parcel.unmount();\n }\n });\n\n if (this.createdDomElement) {\n this.createdDomElement.parentNode.removeChild(this.createdDomElement);\n }\n\n this.unmounted = true;\n }\n render() {\n if (this.props.appendTo) {\n if (SingleSpaContext && SingleSpaContext.Consumer) {\n return (\n <SingleSpaContext.Consumer>\n {(context) => {\n this.mountParcel = context ? context.mountParcel : null;\n\n return null;\n }}\n </SingleSpaContext.Consumer>\n );\n } else {\n return null;\n }\n } else {\n const children =\n SingleSpaContext && SingleSpaContext.Consumer ? (\n <SingleSpaContext.Consumer>\n {(context) => {\n this.mountParcel = context ? context.mountParcel : null;\n\n return null;\n }}\n </SingleSpaContext.Consumer>\n ) : undefined;\n\n return React.createElement(\n this.props.wrapWith,\n {\n ref: this.handleRef,\n style: this.props.wrapStyle,\n className: this.props.wrapClassName,\n },\n children\n );\n }\n }\n handleRef = (el) => {\n this.el = el;\n };\n addThingToDo = (action, thing) => {\n if (this.state.hasError && action !== \"unmount\") {\n // In an error state, we don't do anything anymore except for unmounting\n return;\n }\n\n this.nextThingToDo = (this.nextThingToDo || Promise.resolve())\n .then((...args) => {\n if (this.unmounted && action !== \"unmount\") {\n // Never do anything once the react component unmounts\n return;\n }\n\n return thing(...args);\n })\n .catch((err) => {\n this.nextThingToDo = Promise.resolve(); // reset so we don't .then() the bad promise again\n this.setState({ hasError: true });\n\n if (err && err.message) {\n err.message = `During '${action}', parcel threw an error: ${err.message}`;\n }\n\n if (this.props.handleError) {\n this.props.handleError(err);\n } else {\n setTimeout(() => {\n throw err;\n });\n }\n\n // No more things to do should be done -- the parcel is in an error state\n throw err;\n });\n };\n getParcelProps = () => {\n // Make sure domElement is a prop, so that the parcel updates the correct domEl rather than creating a new one\n const parcelProps = { ...this.props, domElement: this.el };\n\n delete parcelProps.mountParcel;\n delete parcelProps.config;\n delete parcelProps.wrapWith;\n delete parcelProps.wrapStyle;\n delete parcelProps.appendTo;\n delete parcelProps.handleError;\n delete parcelProps.parcelDidMount;\n\n return parcelProps;\n };\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport function chooseDomElementGetter(opts, props) {\n var domElementGetter;\n\n if (props.domElement) {\n domElementGetter = function domElementGetter() {\n return props.domElement;\n };\n } else if (props.domElementGetter) {\n domElementGetter = props.domElementGetter;\n } else if (opts.domElementGetter) {\n domElementGetter = opts.domElementGetter;\n } else {\n domElementGetter = defaultDomElementGetter(props);\n }\n\n if (typeof domElementGetter !== \"function\") {\n throw Error(\"single-spa's dom-element-getter-helpers was given an invalid domElementGetter for application or parcel '\".concat(props.name, \"'. Expected a function, received \").concat(_typeof(domElementGetter)));\n }\n\n return function () {\n var domElement = domElementGetter(props);\n\n if (!(domElement instanceof HTMLElement)) {\n throw Error(\"single-spa's dom-element-getter-helpers: domElementGetter returned an invalid dom element for application or parcel '\".concat(props.name, \"'. Expected HTMLElement, received \").concat(_typeof(domElement)));\n }\n\n return domElement;\n };\n}\n\nfunction defaultDomElementGetter(props) {\n var appName = props.appName || props.name;\n\n if (!appName) {\n throw Error(\"single-spa's dom-element-getter-helpers was not given an application name as a prop, so it can't make a unique dom element container for the react application\");\n }\n\n var htmlId = \"single-spa-application:\".concat(appName);\n return function defaultDomEl() {\n var domElement = document.getElementById(htmlId);\n\n if (!domElement) {\n domElement = document.createElement(\"div\");\n domElement.id = htmlId;\n document.body.appendChild(domElement);\n }\n\n return domElement;\n };\n}\n","/* We don't import parcel.component.js from this file intentionally. See comment\n * in that file for why\n */\n\nimport { chooseDomElementGetter } from \"dom-element-getter-helpers\";\n\n// React context that gives any react component the single-spa props\nexport let SingleSpaContext = null;\n\n// This try/catch exists mostly to prevent rollup from thinking that SingleSpaContext\n// is null and then doing optimizations in parcel.js that cause bugs.\n// See https://github.com/single-spa/single-spa-react/issues/105\n\ntry {\n // single-spa-react is usable as a global script, as a systemjs module, and other\n // situations where require() is unavailable. This is why we require the user to\n // pass in opts.React and opts.ReactDOM - to avoid the mess of \"how do i properly load react\".\n // However, in situations where require() is available, we can use it this way to create\n // the react context. The try/catch defensiveness keeps single-spa-react working in\n // as many situations as possible.\n SingleSpaContext = require(\"react\").createContext();\n} catch {\n // ignore\n}\n\nconst defaultOpts = {\n // required opts\n React: null,\n\n // required - one or the other\n ReactDOM: null,\n ReactDOMClient: null,\n\n // required - one or the other\n rootComponent: null,\n loadRootComponent: null,\n\n // optional opts\n errorBoundary: null,\n errorBoundaryClass: null,\n domElementGetter: null,\n parcelCanUpdate: true, // by default, allow parcels created with single-spa-react to be updated\n suppressComponentDidCatchWarning: false,\n domElements: {},\n renderResults: {},\n updateResolves: {},\n unmountResolves: {},\n};\n\nfunction singleSpaReact(userOpts) {\n if (typeof userOpts !== \"object\") {\n throw new Error(`single-spa-react requires a configuration object`);\n }\n\n const opts = {\n ...defaultOpts,\n ...userOpts,\n };\n\n if (!opts.React) {\n throw new Error(`single-spa-react must be passed opts.React`);\n }\n\n if (!opts.ReactDOM && !opts.ReactDOMClient) {\n throw new Error(\n `single-spa-react must be passed opts.ReactDOM or opts.ReactDOMClient`\n );\n }\n\n if (!opts.renderType) {\n // https://github.com/single-spa/single-spa-react/issues/202\n if (opts.ReactDOMClient?.createRoot) {\n opts.renderType = \"createRoot\";\n } else {\n opts.renderType = \"render\";\n }\n }\n\n if (!opts.rootComponent && !opts.loadRootComponent) {\n throw new Error(\n `single-spa-react must be passed opts.rootComponent or opts.loadRootComponent`\n );\n }\n\n if (opts.errorBoundary && typeof opts.errorBoundary !== \"function\") {\n throw Error(\n `The errorBoundary opt for single-spa-react must either be omitted or be a function that returns React elements`\n );\n }\n\n if (!SingleSpaContext && opts.React.createContext) {\n SingleSpaContext = opts.React.createContext();\n }\n\n opts.SingleSpaRoot = createSingleSpaRoot(opts);\n\n const lifecycles = {\n bootstrap: bootstrap.bind(null, opts),\n mount: mount.bind(null, opts),\n unmount: unmount.bind(null, opts),\n };\n\n if (opts.parcelCanUpdate) {\n lifecycles.update = update.bind(null, opts);\n }\n\n return lifecycles;\n}\n\nfunction bootstrap(opts, props) {\n if (opts.rootComponent) {\n // This is a class or stateless function component\n return Promise.resolve();\n } else {\n // They passed a promise that resolves with the react component. Wait for it to resolve before mounting\n return opts.loadRootComponent(props).then((resolvedComponent) => {\n opts.rootComponent = resolvedComponent;\n });\n }\n}\n\nfunction mount(opts, props) {\n return new Promise((resolve, reject) => {\n if (\n !opts.suppressComponentDidCatchWarning &&\n atLeastReact16(opts.React) &&\n !opts.errorBoundary &&\n !opts.errorBoundaryClass\n ) {\n if (!opts.rootComponent.prototype) {\n console.warn(\n `single-spa-react: ${\n props.name || props.appName || props.childAppName\n }'s rootComponent does not implement an error boundary. If using a functional component, consider providing an opts.errorBoundary to singleSpaReact(opts).`\n );\n } else if (!opts.rootComponent.prototype.componentDidCatch) {\n console.warn(\n `single-spa-react: ${\n props.name || props.appName || props.childAppName\n }'s rootComponent should implement componentDidCatch to avoid accidentally unmounting the entire single-spa application.`\n );\n }\n }\n\n const whenMounted = function () {\n resolve(this);\n };\n\n const elementToRender = getElementToRender(opts, props, whenMounted);\n const domElement = chooseDomElementGetter(opts, props)();\n const renderResult = reactDomRender({\n elementToRender,\n domElement,\n reactDom: getReactDom(opts),\n renderType: getRenderType(opts),\n });\n\n opts.domElements[props.name] = domElement;\n opts.renderResults[props.name] = renderResult;\n });\n}\n\nfunction unmount(opts, props) {\n return new Promise((resolve) => {\n opts.unmountResolves[props.name] = resolve;\n\n const root = opts.renderResults[props.name];\n\n if (root && root.unmount) {\n // React >= 18\n const unmountResult = root.unmount();\n } else {\n // React < 18\n getReactDom(opts).unmountComponentAtNode(opts.domElements[props.name]);\n }\n delete opts.domElements[props.name];\n delete opts.renderResults[props.name];\n });\n}\n\nfunction update(opts, props) {\n return new Promise((resolve) => {\n if (!opts.updateResolves[props.name]) {\n opts.updateResolves[props.name] = [];\n }\n\n opts.updateResolves[props.name].push(resolve);\n\n const elementToRender = getElementToRender(opts, props, null);\n const renderRoot = opts.renderResults[props.name];\n if (renderRoot && renderRoot.render) {\n // React 18 with ReactDOM.createRoot()\n renderRoot.render(elementToRender);\n } else {\n // React 16 / 17 with ReactDOM.render()\n const domElement = chooseDomElementGetter(opts, props)();\n // This is the old way to update a react application - just call render() again\n getReactDom(opts).render(elementToRender, domElement);\n }\n });\n}\n\nfunction atLeastReact16(React) {\n if (\n React &&\n typeof React.version === \"string\" &&\n React.version.indexOf(\".\") >= 0\n ) {\n const majorVersionString = React.version.slice(\n 0,\n React.version.indexOf(\".\")\n );\n try {\n return Number(majorVersionString) >= 16;\n } catch (err) {\n return false;\n }\n } else {\n return false;\n }\n}\n\nfunction getReactDom(opts) {\n return opts.ReactDOMClient || opts.ReactDOM;\n}\n\nfunction getRenderType(opts) {\n return typeof opts.renderType === \"function\"\n ? opts.renderType()\n : opts.renderType;\n}\n\nfunction reactDomRender({ reactDom, renderType, elementToRender, domElement }) {\n const renderFn = reactDom[renderType];\n if (typeof renderFn !== \"function\")\n throw new Error(`renderType \"${renderType}\" did not return a function.`);\n\n switch (renderType) {\n case \"createRoot\":\n case \"unstable_createRoot\":\n case \"createBlockingRoot\":\n case \"unstable_createBlockingRoot\": {\n const root = renderFn(domElement);\n root.render(elementToRender);\n return root;\n }\n case \"hydrateRoot\": {\n const root = renderFn(domElement, elementToRender);\n return root;\n }\n case \"hydrate\":\n default: {\n renderFn(elementToRender, domElement);\n // The renderRoot function should return a react root, but ReactDOM.hydrate() and ReactDOM.render()\n // do not return a react root. So instead, we return null which indicates that there is no react root\n // that can be used for updates or unmounting\n return null;\n }\n }\n}\n\nfunction getElementToRender(opts, props, mountFinished) {\n const rootComponentElement = opts.React.createElement(\n opts.rootComponent,\n props\n );\n\n let elementToRender = SingleSpaContext\n ? opts.React.createElement(\n SingleSpaContext.Provider,\n { value: props },\n rootComponentElement\n )\n : rootComponentElement;\n\n if (\n opts.errorBoundary ||\n props.errorBoundary ||\n opts.errorBoundaryClass ||\n props.errorBoundaryClass\n ) {\n opts.errorBoundaryClass =\n opts.errorBoundaryClass ||\n props.errorBoundaryClass ||\n createErrorBoundary(opts, props);\n elementToRender = opts.React.createElement(\n opts.errorBoundaryClass,\n props,\n elementToRender\n );\n }\n\n // https://github.com/single-spa/single-spa-react/issues/112\n elementToRender = opts.React.createElement(\n opts.SingleSpaRoot,\n {\n ...props,\n mountFinished,\n updateFinished() {\n if (opts.updateResolves[props.name]) {\n opts.updateResolves[props.name].forEach((r) => r());\n delete opts.updateResolves[props.name];\n }\n },\n unmountFinished() {\n if (opts.unmountResolves[props.name]) {\n opts.unmountResolves[props.name]();\n delete opts.unmountResolves[props.name];\n }\n },\n },\n elementToRender\n );\n\n return elementToRender;\n}\n\nfunction createErrorBoundary(opts, props) {\n // Avoiding babel output for class syntax and super()\n // to avoid bloat\n function SingleSpaReactErrorBoundary(props) {\n // super\n opts.React.Component.apply(this, arguments);\n\n this.state = {\n caughtError: null,\n caughtErrorInfo: null,\n };\n\n SingleSpaReactErrorBoundary.displayName = `SingleSpaReactErrorBoundary(${props.name})`;\n }\n\n SingleSpaReactErrorBoundary.prototype = Object.create(\n opts.React.Component.prototype\n );\n\n SingleSpaReactErrorBoundary.prototype.render = function () {\n if (this.state.caughtError) {\n const errorBoundary = opts.errorBoundary || props.errorBoundary;\n\n return errorBoundary(\n this.state.caughtError,\n this.state.caughtErrorInfo,\n this.props\n );\n } else {\n return this.props.children;\n }\n };\n\n SingleSpaReactErrorBoundary.prototype.componentDidCatch = function (\n err,\n info\n ) {\n this.setState({\n caughtError: err,\n caughtErrorInfo: info,\n });\n };\n\n return SingleSpaReactErrorBoundary;\n}\n\nfunction createSingleSpaRoot(opts) {\n // This is a class component, since we need a mount hook and single-spa-react supports React@15 (no useEffect available)\n function SingleSpaRoot(_props) {\n SingleSpaRoot.displayName = `SingleSpaRoot(${_props.name})`;\n }\n\n SingleSpaRoot.prototype = Object.create(opts.React.Component.prototype);\n SingleSpaRoot.prototype.componentDidMount = function () {\n setTimeout(this.props.mountFinished);\n };\n SingleSpaRoot.prototype.componentWillUnmount = function () {\n setTimeout(this.props.unmountFinished);\n };\n SingleSpaRoot.prototype.render = function () {\n // componentDidUpdate doesn't seem to be called during root.render() for updates\n setTimeout(this.props.updateFinished);\n\n return this.props.children;\n };\n\n return SingleSpaRoot;\n}\n\nexport default singleSpaReact;\n","/** @module @category API */ import { reportError } from \"@openmrs/esm-error-handling\";\nimport { createGlobalStore } from \"@openmrs/esm-state\";\nimport { isUndefined } from \"lodash-es\";\nimport { Observable } from \"rxjs\";\nimport { openmrsFetch, restBaseUrl, sessionEndpoint } from \"./openmrs-fetch.js\";\n/** @internal */ export const sessionStore = createGlobalStore('session', {\n loaded: false,\n session: null\n});\nlet lastFetchTimeMillis = 0;\nfunction getCurrentUser(opts = {\n includeAuthStatus: true\n}) {\n if (lastFetchTimeMillis < Date.now() - 1000 * 60 || !sessionStore.getState().loaded) {\n refetchCurrentUser();\n }\n return new Observable((subscriber)=>{\n const handler = (state)=>{\n if (state.loaded) {\n if (opts.includeAuthStatus) {\n subscriber.next(state.session);\n } else {\n subscriber.next(state.session?.user);\n }\n }\n };\n handler(sessionStore.getState());\n // The observable subscribe function should return an unsubscribe function,\n // which happens to be exactly what `subscribe` returns.\n return sessionStore.subscribe(handler);\n });\n}\nexport { getCurrentUser };\nexport function getSessionStore() {\n if (lastFetchTimeMillis < Date.now() - 1000 * 60 || !sessionStore.getState().loaded) {\n refetchCurrentUser();\n }\n return sessionStore;\n}\n// NB locale is string only if this returns true\nfunction isValidLocale(locale) {\n if (locale === undefined || typeof locale !== 'string') {\n return false;\n }\n try {\n new Intl.Locale(locale);\n } catch (e) {\n return false;\n }\n return true;\n}\nexport function setUserLanguage(data) {\n let locale = data.user?.userProperties?.defaultLocale ?? data.locale;\n if (locale && locale.includes('_')) {\n locale = locale.replaceAll('_', '-');\n }\n if (isValidLocale(locale) && locale !== document.documentElement.getAttribute('lang')) {\n document.documentElement.setAttribute('lang', locale);\n }\n}\nsessionStore.subscribe((state)=>{\n if (state.loaded && state.session) {\n setUserLanguage(state.session);\n }\n});\nfunction userHasPrivilege(requiredPrivilege, user) {\n if (typeof requiredPrivilege === 'string') {\n return !isUndefined(user.privileges.find((p)=>requiredPrivilege === p.display));\n } else if (Array.isArray(requiredPrivilege)) {\n return requiredPrivilege.every((rp)=>!isUndefined(user.privileges.find((p)=>rp === p.display)));\n } else if (!isUndefined(requiredPrivilege)) {\n console.error(`Could not understand privileges \"${requiredPrivilege}\"`);\n }\n return true;\n}\nfunction isSuperUser(user) {\n return !isUndefined(user.roles.find((role)=>role.display === 'System Developer'));\n}\n/**\n * The `refetchCurrentUser` function causes a network request to redownload\n * the user. All subscribers to the current user will be notified of the\n * new users once the new version of the user object is downloaded.\n *\n * @returns The same observable as returned by [[getCurrentUser]].\n *\n * #### Example\n * ```js\n * import { refetchCurrentUser } from '@openmrs/esm-api'\n * refetchCurrentUser()\n * ```\n */ export function refetchCurrentUser(username, password) {\n lastFetchTimeMillis = Date.now();\n let headers = {};\n if (username && password) {\n headers['Authorization'] = `Basic ${window.btoa(`${username}:${password}`)}`;\n }\n return handleSessionResponse(openmrsFetch(sessionEndpoint, {\n headers\n }));\n}\nexport function clearCurrentUser() {\n sessionStore.setState({\n loaded: true,\n session: {\n authenticated: false,\n sessionId: ''\n }\n });\n}\nexport function userHasAccess(requiredPrivilege, user) {\n if (user === undefined) {\n // if the user hasn't been loaded, then return false iff there is a required privilege\n return Boolean(requiredPrivilege);\n }\n if (!Boolean(requiredPrivilege)) {\n // if user exists but no requiredPrivilege is defined\n return true;\n }\n return userHasPrivilege(requiredPrivilege, user) || isSuperUser(user);\n}\nexport function getLoggedInUser() {\n let user;\n let unsubscribe;\n return new Promise((res)=>{\n const handler = (state)=>{\n if (state.loaded && state.session.user) {\n user = state.session.user;\n res(state.session.user);\n unsubscribe && unsubscribe();\n }\n };\n handler(sessionStore.getState());\n if (!user) {\n unsubscribe = sessionStore.subscribe(handler);\n }\n });\n}\nexport function getSessionLocation() {\n return new Promise((res, rej)=>{\n const sub = getCurrentUser().subscribe((session)=>{\n res(session.sessionLocation);\n }, rej);\n sub.unsubscribe();\n });\n}\nexport async function setSessionLocation(locationUuid, abortController) {\n return handleSessionResponse(openmrsFetch(sessionEndpoint, {\n method: 'POST',\n body: {\n sessionLocation: locationUuid\n },\n headers: {\n 'Content-Type': 'application/json'\n },\n signal: abortController.signal\n }));\n}\nexport async function setUserProperties(userUuid, userProperties, abortController) {\n if (!abortController) {\n abortController = new AbortController();\n }\n await openmrsFetch(`${restBaseUrl}/user/${userUuid}`, {\n method: 'POST',\n body: {\n userProperties\n },\n headers: {\n 'Content-Type': 'application/json'\n },\n signal: abortController.signal\n });\n return refetchCurrentUser();\n}\nfunction handleSessionResponse(result) {\n return new Promise((resolve, reject)=>{\n result.then((res)=>{\n let nextState;\n if (typeof res?.data === 'object') {\n nextState = {\n loaded: true,\n session: res.data\n };\n sessionStore.setState(nextState);\n resolve(nextState);\n } else {\n nextState = {\n loaded: false,\n session: null\n };\n sessionStore.setState(nextState);\n reject(nextState);\n }\n }).catch((err)=>{\n reportError(`Failed to fetch new session information: ${err}`);\n const nextState = {\n loaded: false,\n session: null\n };\n sessionStore.setState(nextState);\n reject(nextState);\n });\n });\n}\n","/** @module @category API */ function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport { Observable } from \"rxjs\";\nimport { isPlainObject } from \"lodash-es\";\nimport { getConfig } from \"@openmrs/esm-config\";\nimport { clearHistory, navigate } from \"@openmrs/esm-navigation\";\nexport const restBaseUrl = '/ws/rest/v1';\nexport const fhirBaseUrl = '/ws/fhir2/R4';\nexport const sessionEndpoint = `${restBaseUrl}/session`;\n/**\n * Append `path` to the OpenMRS SPA base.\n *\n * #### Example\n *\n * ```ts\n * makeUrl('/foo/bar');\n * // => '/openmrs/foo/bar'\n * ```\n */ export function makeUrl(path) {\n if (path && path.startsWith('http')) {\n return path;\n } else if (path[0] !== '/') {\n // ensure path starts with /\n path = '/' + path;\n }\n return window.openmrsBase + path;\n}\n/**\n * The openmrsFetch function is a wrapper around the\n * [browser's built-in fetch function](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch),\n * with extra handling for OpenMRS-specific API behaviors, such as\n * request headers, authentication, authorization, and the API urls.\n *\n * @param path A string url to make the request to. Note that the\n * openmrs base url (by default `/openmrs`) will be automatically\n * prepended to the URL, so there is no need to include it.\n * @param fetchInit A [fetch init object](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Syntax).\n * Note that the `body` property does not need to be `JSON.stringify()`ed\n * because openmrsFetch will do that for you.\n * @returns A [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)\n * that resolves with a [Response object](https://developer.mozilla.org/en-US/docs/Web/API/Response).\n * Note that the openmrs version of the Response object has already\n * downloaded the HTTP response body as json, and has an additional\n * `data` property with the HTTP response json as a javascript object.\n *\n * #### Example\n * ```js\n * import { openmrsFetch } from '@openmrs/esm-api'\n * const abortController = new AbortController();\n * openmrsFetch(`${restBaseUrl}/session', {signal: abortController.signal})\n * .then(response => {\n * console.log(response.data.authenticated)\n * })\n * .catch(err => {\n * console.error(err.status);\n * })\n * abortController.abort();\n * openmrsFetch(`${restBaseUrl}/session', {\n * method: 'POST',\n * body: {\n * username: 'hi',\n * password: 'there',\n * }\n * })\n * ```\n *\n * #### Cancellation\n *\n * To cancel a network request, use an\n * [AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController/abort).\n * It is best practice to cancel your network requests when the user\n * navigates away from a page while the request is pending request, to\n * free up memory and network resources and to prevent race conditions.\n *\n * @category API\n */ export function openmrsFetch(path, fetchInit = {}) {\n if (typeof path !== 'string') {\n throw Error(\"The first argument to @openmrs/api's openmrsFetch function must be a url string\");\n }\n if (typeof fetchInit !== 'object') {\n throw Error(\"The second argument to @openmrs/api's openmrsFetch function must be a plain object.\");\n }\n if (!window.openmrsBase) {\n throw Error(\"@openmrs/api is running in a browser that doesn't have window.openmrsBase, which is provided by openmrs-module-spa's HTML file.\");\n }\n // Prefix the url with the openmrs spa base\n let url = makeUrl(path);\n // We're going to need some headers\n if (!fetchInit.headers) {\n fetchInit.headers = {};\n }\n /* Automatically stringify javascript objects being sent in the\n * request body.\n */ if (isPlainObject(fetchInit.body)) {\n fetchInit.body = JSON.stringify(fetchInit.body);\n }\n /* Add a request header to tell the server to respond with json,\n * since frontend code almost always wants json and the OpenMRS\n * server won't give you json unless you explicitly ask for it.\n * If a different Accept header is preferred, pass it into the fetchInit.\n * If no Accept header is desired, pass it in explicitly as null.\n */ if (typeof fetchInit.headers.Accept === 'undefined') {\n fetchInit.headers.Accept = 'application/json';\n }\n if (fetchInit.headers.Accept === null) {\n delete fetchInit.headers.Accept;\n }\n /* This tells the OpenMRS REST API not to return a WWW-Authenticate\n * header. Returning that header is useful when using the API, but\n * not from a UI.\n */ if (path.startsWith(restBaseUrl) && typeof fetchInit.headers['Disable-WWW-Authenticate'] === 'undefined') {\n fetchInit.headers['Disable-WWW-Authenticate'] = 'true';\n }\n if (path.startsWith(fhirBaseUrl)) {\n const urlUrl = new URL(url, window.location.toString());\n if (!urlUrl.searchParams.has('_summary')) {\n urlUrl.searchParams.set('_summary', 'data');\n url = urlUrl.toString();\n }\n }\n /* We capture the stacktrace before making the request, so that if an error occurs we can\n * log a full stacktrace that includes the code that made the request and handled the response\n * Otherwise, we could run into situations where the stacktrace doesn't even show which code\n * called @openmrs/api.\n */ const requestStacktrace = Error();\n return window.fetch(url, fetchInit).then(async (r)=>{\n const response = r;\n if (response.ok) {\n if (response.status === 204) {\n const { followRedirects } = await getConfig('@openmrs/esm-api');\n if (followRedirects && response.headers.has('location')) {\n const location = response.headers.get('location');\n if (location) {\n navigate({\n to: location\n });\n }\n }\n /* HTTP 204 - No Content\n * We should not try to download the empty response as json. Instead,\n * we return null since there is no response body.\n */ response.data = null;\n return response;\n } else {\n // HTTP 200s - The request succeeded\n return response.clone().text().then((responseText)=>{\n try {\n if (responseText) {\n response.data = JSON.parse(responseText);\n }\n } catch (err) {\n // Server didn't respond with json\n }\n return response;\n });\n }\n } else {\n /* HTTP response status is not in 200s. Usually this will mean\n * either HTTP 400s (bad request from browser) or HTTP 500s (server error)\n * Our goal is to come up with best possible stacktrace and error message\n * to help developers understand the problem and debug\n */ /*\n * Redirect to given url when redirect on auth failure is enabled\n */ const { redirectAuthFailure } = await getConfig('@openmrs/esm-api');\n if (url === makeUrl(sessionEndpoint) && response.status === 403 || redirectAuthFailure.enabled && redirectAuthFailure.errors.includes(response.status)) {\n clearHistory();\n navigate({\n to: redirectAuthFailure.url\n });\n /* We sometimes don't really want this promise to resolve since there's no response data,\n * nor do we want it to reject because that would trigger error handling. We instead\n * want it to remain in pending status while the navigation occurs.\n */ return redirectAuthFailure.resolvePromise ? Promise.resolve() : new Promise(()=>{});\n } else {\n // Attempt to download a response body, if it has one\n return response.clone().text().then((responseText)=>{\n let responseBody = responseText;\n try {\n responseBody = JSON.parse(responseText);\n } catch (err) {\n // Server didn't respond with json, so just go with the response text string\n }\n /* Make the fetch promise go into \"rejected\" status, with the best\n * possible stacktrace and error message.\n */ throw new OpenmrsFetchError(url, response, responseBody, requestStacktrace);\n }, (err)=>{\n /* We weren't able to download a response body for this error.\n * Time to just give the best possible stacktrace and error message.\n */ throw new OpenmrsFetchError(url, response, null, requestStacktrace);\n });\n }\n }\n });\n}\n/**\n * The openmrsObservableFetch function is a wrapper around openmrsFetch\n * that returns an [Observable](https://rxjs-dev.firebaseapp.com/guide/observable)\n * instead of a promise. It exists in case using an Observable is\n * preferred or more convenient than a promise.\n *\n * @param url See [[openmrsFetch]]\n * @param fetchInit See [[openmrsFetch]]\n * @returns An Observable that produces exactly one Response object.\n * The response object is exactly the same as for [[openmrsFetch]].\n *\n * #### Example\n *\n * ```js\n * import { openmrsObservableFetch } from '@openmrs/esm-api'\n * const subscription = openmrsObservableFetch(`${restBaseUrl}/session').subscribe(\n * response => console.log(response.data),\n * err => {throw err},\n * () => console.log('finished')\n * )\n * subscription.unsubscribe()\n * ```\n *\n * #### Cancellation\n *\n * To cancel the network request, simply call `subscription.unsubscribe();`\n *\n * @category API\n */ export function openmrsObservableFetch(url, fetchInit = {}) {\n if (typeof fetchInit !== 'object') {\n throw Error('The second argument to openmrsObservableFetch must be either omitted or an object');\n }\n const abortController = new AbortController();\n fetchInit.signal = abortController.signal;\n return new Observable((observer)=>{\n let hasResponse = false;\n openmrsFetch(url, fetchInit).then((response)=>{\n hasResponse = true;\n observer.next(response);\n observer.complete();\n }, (err)=>{\n hasResponse = true;\n observer.error(err);\n });\n return ()=>{\n if (!hasResponse) {\n abortController.abort();\n }\n };\n });\n}\nexport class OpenmrsFetchError extends Error {\n constructor(url, response, responseBody, requestStacktrace){\n super(), _define_property(this, \"response\", void 0), _define_property(this, \"responseBody\", void 0);\n this.message = `Server responded with ${response.status} (${response.statusText}) for url ${url}. Check err.responseBody or network tab in dev tools for more info`;\n requestStacktrace.message = this.message;\n this.responseBody = responseBody;\n this.response = response;\n this.stack = `Stacktrace for outgoing request:\\n${requestStacktrace.stack}\\nStacktrace for incoming response:\\n${this.stack}`;\n }\n}\n","/** @module @category Config */ import { clone, reduce, mergeDeepRight, equals, omit } from \"ramda\";\nimport { Type } from \"../types.js\";\nimport { isArray, isBoolean, isUuid, isNumber, isObject, isString } from \"../validators/type-validators.js\";\nimport { validator } from \"../validators/validator.js\";\nimport { configInternalStore, configExtensionStore, getConfigStore, getExtensionConfig, getExtensionsConfigStore, implementerToolsConfigStore, temporaryConfigStore, getExtensionSlotsConfigStore } from \"./state.js\";\n/**\n * Store setup\n *\n *\n * Set up stores and subscriptions so that inputs get processed appropriately.\n *\n * There are *input* stores and *output* stores. The *input* stores\n * are configInternalStore, temporaryConfigStore, and configExtensionStore. The\n * output stores are set in the `compute...` functions. They are the module\n * config stores, the extension slot config stores (by module), the extension\n * config stores, and the implementer tools config store.\n *\n * This code sets up the subscriptions so that when an input store changes,\n * the correct set of output stores are updated.\n *\n * All `compute...` functions except `computeExtensionConfigs` are pure\n * (or are supposed to be), other than the fact that they all `setState`\n * store values at the end. `computeExtensionConfigs` calls `getGlobalStore`,\n * which creates stores.\n */ computeModuleConfig(configInternalStore.getState(), temporaryConfigStore.getState());\nconfigInternalStore.subscribe((configState)=>computeModuleConfig(configState, temporaryConfigStore.getState()));\ntemporaryConfigStore.subscribe((tempConfigState)=>computeModuleConfig(configInternalStore.getState(), tempConfigState));\ncomputeImplementerToolsConfig(configInternalStore.getState(), temporaryConfigStore.getState());\nconfigInternalStore.subscribe((configState)=>computeImplementerToolsConfig(configState, temporaryConfigStore.getState()));\ntemporaryConfigStore.subscribe((tempConfigState)=>computeImplementerToolsConfig(configInternalStore.getState(), tempConfigState));\ncomputeExtensionSlotConfigs(configInternalStore.getState(), temporaryConfigStore.getState());\nconfigInternalStore.subscribe((configState)=>computeExtensionSlotConfigs(configState, temporaryConfigStore.getState()));\ntemporaryConfigStore.subscribe((tempConfigState)=>computeExtensionSlotConfigs(configInternalStore.getState(), tempConfigState));\ncomputeExtensionConfigs(configInternalStore.getState(), configExtensionStore.getState(), temporaryConfigStore.getState());\nconfigInternalStore.subscribe((configState)=>{\n computeExtensionConfigs(configState, configExtensionStore.getState(), temporaryConfigStore.getState());\n});\nconfigExtensionStore.subscribe((extensionState)=>{\n computeExtensionConfigs(configInternalStore.getState(), extensionState, temporaryConfigStore.getState());\n});\ntemporaryConfigStore.subscribe((tempConfigState)=>{\n computeExtensionConfigs(configInternalStore.getState(), configExtensionStore.getState(), tempConfigState);\n});\n/** Keep track of which validation errors we have displayed. Each one should only be displayed once. */ let displayedValidationMessages = new Set();\nfunction computeModuleConfig(state, tempState) {\n for (let moduleName of Object.keys(state.schemas)){\n // At this point the schema could be either just the implicit schema or the actually\n // defined schema. We run with just the implicit schema because we want to populate\n // the config store with the translation overrides as soon as possible. In fact, the\n // translation system will throw for Suspense until the translation overrides are\n // available, which as of this writing blocks the schema definition from occurring\n // for modules loaded based on their extensions.\n const moduleStore = getConfigStore(moduleName);\n if (state.moduleLoaded[moduleName]) {\n const config = getConfigForModule(moduleName, state, tempState);\n moduleStore.setState({\n translationOverridesLoaded: true,\n loaded: true,\n config\n });\n } else {\n const config = getConfigForModuleImplicitSchema(moduleName, state, tempState);\n moduleStore.setState({\n translationOverridesLoaded: true,\n loaded: false,\n config\n });\n }\n }\n}\nfunction computeExtensionSlotConfigs(state, tempState) {\n const slotConfigs = getExtensionSlotConfigs(state, tempState);\n const newSlotStoreEntries = Object.fromEntries(Object.entries(slotConfigs).map(([slotName, config])=>[\n slotName,\n {\n loaded: true,\n config\n }\n ]));\n const slotStore = getExtensionSlotsConfigStore();\n const oldState = slotStore.getState();\n const newState = {\n slots: {\n ...oldState.slots,\n ...newSlotStoreEntries\n }\n };\n if (!equals(oldState, newState)) {\n slotStore.setState(newState);\n }\n}\nfunction computeImplementerToolsConfig(state, tempConfigState) {\n const config = getImplementerToolsConfig(state, tempConfigState);\n implementerToolsConfigStore.setState({\n config\n });\n}\nfunction computeExtensionConfigs(configState, extensionState, tempConfigState) {\n const configs = {};\n // We assume that the module schema has already been defined, since the extension\n // it contains is mounted.\n for (let extension of extensionState.mountedExtensions){\n const config = computeExtensionConfig(extension.slotModuleName, extension.extensionModuleName, extension.slotName, extension.extensionId, configState, tempConfigState);\n configs[extension.slotName] = {\n ...configs[extension.slotName],\n [extension.extensionId]: {\n config,\n loaded: true\n }\n };\n }\n getExtensionsConfigStore().setState({\n configs\n });\n}\n/*\n * API\n *\n */ /**\n * This defines a configuration schema for a module. The schema tells the\n * configuration system how the module can be configured. It specifies\n * what makes configuration valid or invalid.\n *\n * See [Configuration System](https://o3-docs.openmrs.org/docs/configuration-system)\n * for more information about defining a config schema.\n *\n * @param moduleName Name of the module the schema is being defined for. Generally\n * should be the one in which the `defineConfigSchema` call takes place.\n * @param schema The config schema for the module\n */ export function defineConfigSchema(moduleName, schema) {\n validateConfigSchema(moduleName, schema);\n const enhancedSchema = mergeDeepRight(schema, implicitConfigSchema);\n configInternalStore.setState((state)=>({\n ...state,\n schemas: {\n ...state.schemas,\n [moduleName]: enhancedSchema\n },\n moduleLoaded: {\n ...state.moduleLoaded,\n [moduleName]: true\n }\n }));\n}\n/**\n * This alerts the configuration system that a module exists. This allows config to be\n * processed, while still allowing the extension system to know whether the module has\n * actually had its front bundle executed yet.\n *\n * This should only be used in esm-app-shell.\n *\n * @internal\n * @param moduleName\n */ export function registerModuleWithConfigSystem(moduleName) {\n configInternalStore.setState((state)=>({\n ...state,\n schemas: {\n ...state.schemas,\n [moduleName]: implicitConfigSchema\n }\n }));\n}\n/**\n * This alerts the configuration system that a module has been loaded.\n *\n * This should only be used in esm-app-shell.\n *\n * @internal\n * @param moduleName\n */ export function registerModuleLoad(moduleName) {\n configInternalStore.setState((state)=>({\n ...state,\n moduleLoaded: {\n ...state.moduleLoaded,\n [moduleName]: true\n }\n }));\n}\n/**\n * This allows the config system to support translation overrides for namespaces that\n * do not correspond to modules.\n *\n * This should only be used in esm-app-shell.\n *\n * @internal\n * @param namespace\n */ export function registerTranslationNamespace(namespace) {\n configInternalStore.setState((state)=>({\n ...state,\n schemas: {\n ...state.schemas,\n [namespace]: translationOverridesSchema\n }\n }));\n}\n/**\n * This defines a configuration schema for an extension. When a schema is defined\n * for an extension, that extension will receive the configuration corresponding\n * to that schema, rather than the configuration corresponding to the module\n * in which it is defined.\n *\n * The schema tells the configuration system how the module can be configured.\n * It specifies what makes configuration valid or invalid.\n *\n * See [Configuration System](https://o3-docs.openmrs.org/docs/configuration-system)\n * for more information about defining a config schema.\n *\n * @param extensionName Name of the extension the schema is being defined for.\n * Should match the `name` of one of the `extensions` entries being returned\n * by `setupOpenMRS`.\n * @param schema The config schema for the extension\n */ export function defineExtensionConfigSchema(extensionName, schema) {\n validateConfigSchema(extensionName, schema);\n const enhancedSchema = mergeDeepRight(schema, implicitConfigSchema);\n const state = configInternalStore.getState();\n if (state.schemas[extensionName]) {\n console.error(`Config schema for extension ${extensionName} already exists. If there are multiple extensions with this same name, one will probably crash.`);\n }\n configInternalStore.setState((state)=>({\n ...state,\n schemas: {\n ...state.schemas,\n [extensionName]: enhancedSchema\n }\n }));\n}\nexport function provide(config, sourceName = 'provided') {\n configInternalStore.setState((state)=>({\n ...state,\n providedConfigs: [\n ...state.providedConfigs,\n {\n source: sourceName,\n config\n }\n ]\n }));\n}\n/**\n * A promise-based way to access the config as soon as it is fully loaded.\n * If it is already loaded, resolves the config in its present state.\n *\n * This is a useful function if you need to get the config in the course\n * of the execution of a function.\n *\n * @param moduleName The name of the module for which to look up the config\n */ export function getConfig(moduleName) {\n return new Promise((resolve)=>{\n const store = getConfigStore(moduleName);\n function update(state) {\n if (state.loaded && state.config) {\n const config = omit([\n 'Display conditions',\n 'Translation overrides'\n ], state.config);\n resolve(config);\n unsubscribe && unsubscribe();\n }\n }\n update(store.getState());\n const unsubscribe = store.subscribe(update);\n });\n}\n/** @internal */ export function getTranslationOverrides(moduleName, slotName, extensionId) {\n const promises = [\n new Promise((resolve)=>{\n const configStore = getConfigStore(moduleName);\n function update(state) {\n if (state.translationOverridesLoaded && state.config) {\n const translationOverrides = state.config['Translation overrides'] ?? {};\n resolve(translationOverrides);\n unsubscribe && unsubscribe();\n }\n }\n update(configStore.getState());\n const unsubscribe = configStore.subscribe(update);\n })\n ];\n if (slotName && extensionId) {\n promises.push(new Promise((resolve)=>{\n const configStore = getExtensionConfig(slotName, extensionId);\n function update(state) {\n if (state.loaded && state.config) {\n const translationOverrides = state.config['Translation overrides'] ?? {};\n resolve(translationOverrides);\n unsubscribe && unsubscribe();\n }\n }\n update(configStore.getState());\n const unsubscribe = configStore.subscribe(update);\n }));\n }\n return Promise.all(promises);\n}\n/**\n * Validate and interpolate defaults for `providedConfig` according to `schema`\n *\n * @param schema a configuration schema\n * @param providedConfig an object of config values (without the top-level module name)\n * @param keyPathContext a dot-deparated string which helps the user figure out where\n * the provided config came from\n * @internal\n */ export function processConfig(schema, providedConfig, keyPathContext) {\n validateStructure(schema, providedConfig, keyPathContext);\n const config = setDefaults(schema, providedConfig);\n runAllValidatorsInConfigTree(schema, config, keyPathContext);\n return config;\n}\n/*\n * Helper functions\n *\n */ /**\n * Returns the configuration for an extension. This configuration is specific\n * to the slot in which it is mounted, and its ID within that slot.\n *\n * The schema for that configuration is the extension schema. If no extension\n * schema has been provided, the schema used is the schema of the module in\n * which the extension is defined.\n *\n * @param slotModuleName The name of the module which defines the extension slot\n * @param extensionModuleName The name of the module which defines the extension (and therefore the config schema)\n * @param slotName The name of the extension slot where the extension is mounted\n * @param extensionId The ID of the extension in its slot\n */ function computeExtensionConfig(slotModuleName, extensionModuleName, slotName, extensionId, configState, tempConfigState) {\n const extensionName = getExtensionNameFromId(extensionId);\n const extensionConfigSchema = configState.schemas[extensionName];\n const nameOfSchemaSource = extensionConfigSchema ? extensionName : extensionModuleName;\n const providedConfigs = getProvidedConfigs(configState, tempConfigState);\n const slotModuleConfig = mergeConfigsFor(slotModuleName, providedConfigs);\n const configOverride = slotModuleConfig?.extensionSlots?.[slotName]?.configure?.[extensionId] ?? {};\n const extensionConfig = mergeConfigsFor(nameOfSchemaSource, providedConfigs);\n const combinedConfig = mergeConfigs([\n extensionConfig,\n configOverride\n ]);\n const schema = extensionConfigSchema ?? configState.schemas[extensionModuleName];\n validateStructure(schema, combinedConfig, nameOfSchemaSource);\n const config = setDefaults(schema, combinedConfig);\n runAllValidatorsInConfigTree(schema, config, nameOfSchemaSource);\n delete config.extensionSlots;\n return config;\n}\nfunction getImplementerToolsConfig(configState, tempConfigState) {\n let result = getSchemaWithValuesAndSources(clone(configState.schemas));\n const configsAndSources = [\n ...configState.providedConfigs.map((c)=>[\n c.config,\n c.source\n ]),\n [\n tempConfigState.config,\n 'temporary config'\n ]\n ];\n for (let [config, source] of configsAndSources){\n result = mergeConfigs([\n result,\n createValuesAndSourcesTree(config, source)\n ]);\n }\n return result;\n}\nfunction getSchemaWithValuesAndSources(schema) {\n if (schema.hasOwnProperty('_default')) {\n return {\n ...schema,\n _value: schema._default,\n _source: 'default'\n };\n } else if (isOrdinaryObject(schema)) {\n return Object.keys(schema).reduce((obj, key)=>{\n obj[key] = getSchemaWithValuesAndSources(schema[key]);\n return obj;\n }, {});\n } else {\n // at this point, the schema is bad and an error will have been logged during schema validation\n return {};\n }\n}\nfunction createValuesAndSourcesTree(config, source) {\n if (isOrdinaryObject(config)) {\n return Object.keys(config).reduce((obj, key)=>{\n obj[key] = createValuesAndSourcesTree(config[key], source);\n return obj;\n }, {});\n } else {\n return {\n _value: config,\n _source: source\n };\n }\n}\nfunction getExtensionSlotConfigs(configState, tempConfigState) {\n const allConfigs = mergeConfigs(getProvidedConfigs(configState, tempConfigState));\n const slotConfigPerModule = Object.keys(allConfigs).reduce((obj, key)=>{\n if (allConfigs[key]?.extensionSlots) {\n obj[key] = allConfigs[key]?.extensionSlots;\n }\n return obj;\n }, {});\n validateAllExtensionSlotConfigs(slotConfigPerModule);\n const slotConfigs = Object.keys(slotConfigPerModule).reduce((obj, key)=>{\n obj = {\n ...obj,\n ...slotConfigPerModule[key]\n };\n return obj;\n }, {});\n return slotConfigs;\n}\nfunction validateAllExtensionSlotConfigs(slotConfigPerModule) {\n for (let [moduleName, configBySlotName] of Object.entries(slotConfigPerModule)){\n for (let [slotName, config] of Object.entries(configBySlotName)){\n validateExtensionSlotConfig(config, moduleName, slotName);\n }\n }\n}\nfunction validateExtensionSlotConfig(config, moduleName, slotName) {\n const keyPath = `${moduleName}.extensionSlots.${slotName}`;\n const errorPrefix = `Extension slot config '${keyPath}'`;\n const invalidKeys = Object.keys(config).filter((k)=>![\n 'add',\n 'remove',\n 'order',\n 'configure'\n ].includes(k));\n if (invalidKeys.length) {\n logError(keyPath, errorPrefix + `' contains invalid keys '${invalidKeys.join(\"', '\")}'`);\n }\n if (config.add) {\n if (!Array.isArray(config.add) || !config.add.every((n)=>typeof n === 'string')) {\n logError(keyPath, errorPrefix + `.add' is invalid. Must be an array of strings (extension IDs)`);\n }\n }\n if (config.remove) {\n if (!Array.isArray(config.remove) || !config.remove.every((n)=>typeof n === 'string')) {\n logError(keyPath, errorPrefix + `.remove' is invalid. Must be an array of strings (extension IDs)`);\n }\n }\n if (config.order) {\n if (!Array.isArray(config.order) || !config.order.every((n)=>typeof n === 'string')) {\n logError(keyPath, errorPrefix + `.order' is invalid. Must be an array of strings (extension IDs)`);\n }\n }\n if (config.configure) {\n if (!isOrdinaryObject(config.configure)) {\n logError(keyPath, errorPrefix + `.configure' is invalid. Must be an object with extension IDs for keys`);\n }\n }\n}\nfunction getProvidedConfigs(configState, tempConfigState) {\n return [\n ...configState.providedConfigs.map((c)=>c.config),\n tempConfigState.config\n ];\n}\n/**\n * Validates the config schema for a module. Since problems identified here are programming errors\n * that hopefully will be caught during development, this function logs errors to the console directly;\n * it's fine if we spam the user with these errors.\n */ function validateConfigSchema(moduleName, schema, keyPath = '') {\n const updateMessage = `Please verify that you are running the latest version and, if so, alert the maintainer.`;\n for (const key of Object.keys(schema).filter((k)=>!k.startsWith('_'))){\n const thisKeyPath = keyPath + (keyPath && '.') + key;\n const schemaPart = schema[key];\n if (thisKeyPath === 'Display conditions') {\n console.error(`${moduleName} declares a configuration option called \"Display conditions\"; the \"Display conditions\" option is a reserved name. ${updateMessage}`);\n }\n if (thisKeyPath === 'Translation overrides') {\n console.error(`${moduleName} declares a configuration option called \"Translation overrides\"; the \"Translation overrides\" option is a reserved name. ${updateMessage}`);\n }\n if (!isOrdinaryObject(schemaPart)) {\n console.error(`${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}`);\n continue;\n }\n if (!schemaPart.hasOwnProperty('_default')) {\n // recurse for nested config keys\n validateConfigSchema(moduleName, schemaPart, thisKeyPath);\n }\n const elements = schemaPart._elements;\n if (hasObjectSchema(elements)) {\n validateConfigSchema(moduleName, elements, thisKeyPath + '._elements');\n }\n if (schemaPart._validators) {\n for (let validator of schemaPart._validators){\n if (typeof validator !== 'function') {\n console.error(`${moduleName} has invalid validator for key '${thisKeyPath}' ${updateMessage}.` + `\\n\\nIf you're the maintainer: validators must be functions that return either ` + `undefined or an error string. Received ${validator}.`);\n }\n }\n }\n const valueType = schemaPart._type;\n if (valueType && !Object.values(Type).includes(valueType)) {\n console.error(`${moduleName} has invalid type for key '${thisKeyPath}' ${updateMessage}.` + `\\n\\nIf you're the maintainer: the allowed types are ${Object.values(Type).join(', ')}. ` + `Received '${valueType}'`);\n }\n if (Object.keys(schemaPart).every((k)=>[\n '_description',\n '_validators',\n '_elements',\n '_type'\n ].includes(k)) && !keyPath.includes('._elements')) {\n console.error(`${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}.` + `\\n\\nIf you're the maintainer: all config elements must have a default. ` + `Received ${JSON.stringify(schemaPart)}`);\n }\n if (elements && valueType && ![\n Type.Array,\n Type.Object\n ].includes(valueType)) {\n console.error(`${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}.` + `\\n\\nIf you're the maintainer: the 'elements' key only works with '_type' equal to 'Array' or 'Object'. ` + `Received ${JSON.stringify(valueType)}`);\n }\n }\n}\nfunction getConfigForModule(moduleName, configState, tempConfigState) {\n const schema = configState.schemas[moduleName];\n const inputConfig = mergeConfigsFor(moduleName, getProvidedConfigs(configState, tempConfigState));\n validateStructure(schema, inputConfig, moduleName);\n const config = setDefaults(schema, inputConfig);\n runAllValidatorsInConfigTree(schema, config, moduleName);\n delete config.extensionSlots;\n return config;\n}\nfunction getConfigForModuleImplicitSchema(moduleName, configState, tempConfigState) {\n const inputConfig = mergeConfigsFor(moduleName, getProvidedConfigs(configState, tempConfigState));\n const config = setDefaults(implicitConfigSchema, inputConfig);\n runAllValidatorsInConfigTree(implicitConfigSchema, config, moduleName);\n delete config.extensionSlots;\n return config;\n}\nfunction mergeConfigsFor(moduleName, allConfigs) {\n const allConfigsForModule = allConfigs.map(({ [moduleName]: c })=>c).filter((c)=>!!c);\n return mergeConfigs(allConfigsForModule);\n}\nfunction mergeConfigs(configs) {\n const mergeDeepAll = reduce(mergeDeepRight);\n return mergeDeepAll({}, configs);\n}\n/**\n * Recursively check the provided config tree to make sure that all\n * of the provided properties exist in the schema, and that types are\n * correct. Does not run validators yet, since those will be run on\n * the config with the defaults filled in.\n */ function validateStructure(schema, config, keyPath = '') {\n // validate each constituent element\n for (const key of Object.keys(config)){\n const value = config[key];\n const thisKeyPath = keyPath + '.' + key;\n const schemaPart = schema[key];\n if (!schema.hasOwnProperty(key)) {\n if (!(key === 'extensionSlots' && keyPath !== '')) {\n logError(thisKeyPath, `Unknown config key '${thisKeyPath}' provided. Ignoring.`);\n }\n continue;\n }\n validateBranchStructure(schemaPart, value, thisKeyPath);\n }\n}\nfunction validateBranchStructure(schemaPart, value, keyPath) {\n checkType(keyPath, schemaPart._type, value);\n if (isOrdinaryObject(value)) {\n if (schemaPart._type === Type.Object) {\n // validate as freeform object\n validateFreeformObjectStructure(schemaPart, value, keyPath);\n } else if (!(schemaPart.hasOwnProperty('_default') || schemaPart.hasOwnProperty('_type'))) {\n // validate as normal nested config\n validateStructure(schemaPart, value, keyPath);\n }\n } else {\n if (schemaPart._type === Type.Array) {\n validateArrayStructure(schemaPart, value, keyPath);\n }\n }\n}\nfunction validateFreeformObjectStructure(freeformObjectSchema, config, keyPath) {\n if (freeformObjectSchema._elements) {\n for (const key of Object.keys(config)){\n const value = config[key];\n validateBranchStructure(freeformObjectSchema._elements, value, `${keyPath}.${key}`);\n }\n }\n}\nfunction validateArrayStructure(arraySchema, value, keyPath) {\n const validatedAsArray = checkType(keyPath, Type.Array, value);\n if (!validatedAsArray) {\n return;\n }\n // if there is an array element object schema, verify that elements match it\n if (hasObjectSchema(arraySchema._elements)) {\n for(let i = 0; i < value.length; i++){\n validateBranchStructure(arraySchema._elements, value[i], `${keyPath}[${i}]`);\n }\n }\n for(let i = 0; i < value.length; i++){\n checkType(`${keyPath}[${i}]`, arraySchema._elements?._type, value[i]);\n }\n}\n/**\n * Run all the validators in the config tree. This should be run\n * on the config object after it has been filled in with all the defaults, since\n * higher-level validators may refer to default values.\n */ function runAllValidatorsInConfigTree(schema, config, keyPath = '') {\n // If `!schema`, there should have been a structural validation error printed already.\n if (schema) {\n if (config !== schema._default) {\n runValidators(keyPath, schema._validators, config);\n }\n if (isOrdinaryObject(config)) {\n for (const key of Object.keys(config)){\n const value = config[key];\n const thisKeyPath = keyPath + '.' + key;\n const schemaPart = schema[key];\n if (schema._type === Type.Object && schema._elements) {\n runAllValidatorsInConfigTree(schema._elements, value, thisKeyPath);\n } else {\n runAllValidatorsInConfigTree(schemaPart, value, thisKeyPath);\n }\n }\n } else if (Array.isArray(config) && schema._elements) {\n for(let i = 0; i < config.length; i++){\n runAllValidatorsInConfigTree(schema._elements, config[i], `${keyPath}[${i}]`);\n }\n }\n }\n}\n/**\n * Run type validation for the value, logging any errors.\n * @returns true if validation passes, false otherwise\n */ function checkType(keyPath, _type, value) {\n if (_type) {\n const validator = {\n Array: isArray,\n Boolean: isBoolean,\n ConceptUuid: isUuid,\n Number: isNumber,\n Object: isObject,\n String: isString,\n UUID: isUuid,\n PersonAttributeTypeUuid: isUuid,\n PatientIdentifierTypeUuid: isUuid\n };\n return runValidators(keyPath, [\n validator[_type]\n ], value);\n }\n return true;\n}\n/**\n * Runs validators, logging errors.\n * @returns true if all pass, false otherwise.\n */ function runValidators(keyPath, validators, value) {\n let returnValue = true;\n if (validators) {\n try {\n for (let validator of validators){\n const validatorResult = validator(value);\n if (typeof validatorResult === 'string') {\n const message = typeof value === 'object' ? `Invalid configuration for ${keyPath}: ${validatorResult}` : `Invalid configuration value ${value} for ${keyPath}: ${validatorResult}`;\n logError(keyPath, message);\n returnValue = false;\n }\n }\n } catch (e) {\n console.error(`Skipping invalid validator at \"${keyPath}\". Encountered error\\n\\t${e}`);\n }\n }\n return returnValue;\n}\n// Recursively fill in the config with values from the schema.\nconst setDefaults = (schema, inputConfig)=>{\n const config = clone(inputConfig);\n if (!schema) {\n return config;\n }\n for (const key of Object.keys(schema)){\n const configPart = config[key];\n const schemaPart = schema[key];\n // The `schemaPart &&` clause of this `if` statement will only fail\n // if the schema is very invalid. It is there to prevent the app from\n // crashing completely, though it will produce unexpected behavior.\n // If this happens, there should be legible errors in the console from\n // the schema validator.\n if (schemaPart && (schemaPart.hasOwnProperty('_type') || schemaPart.hasOwnProperty('_default'))) {\n // We assume that schemaPart defines a config value, since it has\n // a property `_type` or `_default`.\n if (!config.hasOwnProperty(key)) {\n config[key] = schemaPart['_default'];\n }\n // We also check if it is an object or array with object elements, in which case we recurse\n const elements = schemaPart._elements;\n if (configPart && hasObjectSchema(elements)) {\n if (schemaPart._type === Type.Array && Array.isArray(configPart)) {\n const configWithDefaults = configPart.map((conf)=>setDefaults(elements, conf));\n config[key] = configWithDefaults;\n } else if (schemaPart._type === Type.Object) {\n for (let objectKey of Object.keys(configPart)){\n configPart[objectKey] = setDefaults(elements, configPart[objectKey]);\n }\n }\n }\n } else if (isOrdinaryObject(schemaPart)) {\n // Since schemaPart has no property \"_type\", if it's an ordinary object\n // (unlike, importantly, the validators array), we assume it is a parent config property.\n // We recurse to config[key] and schema[key]. Default config[key] to {}.\n const selectedConfigPart = configPart ?? {};\n // There will have been a validation error already if configPart is not a plain object.\n if (isOrdinaryObject(selectedConfigPart)) {\n config[key] = setDefaults(schemaPart, selectedConfigPart);\n }\n }\n }\n return config;\n};\nfunction hasObjectSchema(elementsSchema) {\n return !!elementsSchema && Object.keys(elementsSchema).filter((e)=>![\n '_default',\n '_validators'\n ].includes(e)).length > 0;\n}\nfunction isOrdinaryObject(value) {\n return typeof value === 'object' && !Array.isArray(value) && value !== null;\n}\nfunction logError(keyPath, message) {\n const key = `${keyPath}:::${message}`;\n // technically, this should not be possible, but because of how things wind-up transpiled, this isn't impossible\n if (!displayedValidationMessages) {\n displayedValidationMessages = new Set();\n }\n if (!displayedValidationMessages.has(key)) {\n console.error(message);\n displayedValidationMessages.add(key);\n }\n}\n/**\n * Normally, configuration errors are only displayed once. This function clears the list of\n * displayed errors, so that they will be displayed again.\n *\n * @internal\n */ export function clearConfigErrors(keyPath) {\n if (keyPath) {\n displayedValidationMessages.forEach((key)=>{\n if (key.startsWith(keyPath)) {\n displayedValidationMessages.delete(key);\n }\n });\n } else {\n displayedValidationMessages.clear();\n }\n}\n/**\n * Copied over from esm-extensions. It rightly belongs to that module, but esm-config\n * cannot depend on esm-extensions.\n */ function getExtensionNameFromId(extensionId) {\n const [extensionName] = extensionId.split('#');\n return extensionName;\n}\n/**\n * The translation overrides schema is used in the implicit schema given to every module;\n * plus any additional translation namespaces (at time of writing, this is just 'core').\n */ const translationOverridesSchema = {\n 'Translation overrides': {\n _description: 'Per-language overrides for frontend translations should be keyed by language code and each language dictionary contains the translation key and the display value',\n _type: Type.Object,\n _default: {},\n _validators: [\n validator((o)=>Object.keys(o).every((k)=>/^[a-z]{2,3}(-[A-Z]{2,3})?$/.test(k)), (o)=>{\n const badKeys = Object.keys(o).filter((k)=>!/^[a-z]{2,3}(-[A-Z]{2,3})?$/.test(k));\n return `The 'Translation overrides' object should have language codes for keys. Language codes must be in the form of a two-to-three letter language code optionally followed by a hyphen and a two-to-three letter country code. The following keys do not conform: ${badKeys.join(', ')}.`;\n })\n ]\n }\n};\n/**\n * The implicitConfigSchema is implicitly included in every configuration schema\n */ const implicitConfigSchema = {\n 'Display conditions': {\n privileges: {\n _description: 'The privilege(s) the user must have to use this extension',\n _type: Type.Array,\n _default: []\n }\n },\n ...translationOverridesSchema\n};\n","/** @module @category Config */ import { createGlobalStore, getGlobalStore } from \"@openmrs/esm-state\";\nimport { shallowEqual } from \"@openmrs/esm-utils\";\nconst configInternalStoreInitialValue = {\n providedConfigs: [],\n schemas: {},\n moduleLoaded: {}\n};\n/**\n * @internal\n */ export const configInternalStore = createGlobalStore('config-internal', configInternalStoreInitialValue);\n/** @internal */ export const temporaryConfigStore = createGlobalStore('temporary-config', {\n config: getTemporaryConfig()\n});\ntemporaryConfigStore.subscribe((state)=>{\n setTemporaryConfig(state.config);\n});\nfunction setTemporaryConfig(value) {\n localStorage.setItem('openmrs:temporaryConfig', JSON.stringify(value));\n}\nfunction getTemporaryConfig() {\n try {\n return JSON.parse(localStorage.getItem('openmrs:temporaryConfig') || '{}');\n } catch (e) {\n return {};\n }\n}\n/** @internal */ export const configExtensionStore = createGlobalStore('config-store-of-extension-state', {\n mountedExtensions: []\n});\nfunction initializeConfigStore() {\n return {\n config: null,\n loaded: false,\n translationOverridesLoaded: false\n };\n}\n/** @internal */ export function getConfigStore(moduleName) {\n // We use a store for each module's config, named `config-${moduleName}`\n return getGlobalStore(`config-module-${moduleName}`, initializeConfigStore());\n}\n/** @internal */ export function getExtensionSlotsConfigStore() {\n return getGlobalStore(`config-extension-slots`, {\n slots: {}\n });\n}\n/** @internal */ export function getExtensionSlotConfig(slotName) {\n return getExtensionSlotConfigFromStore(getExtensionSlotsConfigStore().getState(), slotName);\n}\n/** @internal */ export function getExtensionSlotConfigFromStore(state, slotName) {\n const slotConfig = state.slots[slotName];\n return slotConfig ?? {\n loaded: false,\n config: {}\n };\n}\n/**\n * One store for all the extensions\n * @internal\n */ export function getExtensionsConfigStore() {\n return getGlobalStore(`config-extensions`, {\n configs: {}\n });\n}\n/** @internal */ export function getExtensionConfig(slotName, extensionId) {\n if (typeof slotName !== 'string' || typeof extensionId !== 'string' || slotName === '__proto__' || extensionId === '__proto__' || slotName === 'constructor' || extensionId === 'constructor' || slotName === 'prototype' || extensionId === 'prototype') {\n throw new Error('Attempted to call `getExtensionConfig()` with invalid argument');\n }\n const extensionConfigStore = getExtensionsConfigStore();\n const selector = (configStore)=>configStore.configs[slotName]?.[extensionId];\n return {\n getInitialState () {\n return selector(extensionConfigStore.getInitialState());\n },\n getState () {\n return selector(extensionConfigStore.getState()) ?? {\n loaded: false,\n config: null\n };\n },\n setState (partial, replace = false) {\n extensionConfigStore.setState((state)=>{\n if (!state.configs[slotName]) {\n state.configs[slotName] = {};\n }\n const newState = typeof partial === 'function' ? partial(state.configs.slotName[extensionId]) : partial;\n if (replace) {\n state.configs[slotName][extensionId] = Object.assign({}, newState);\n } else {\n state.configs[slotName][extensionId] = Object.assign({}, state.configs[slotName][extensionId], newState);\n }\n return state;\n });\n },\n subscribe (listener) {\n return extensionConfigStore.subscribe((state, prevState)=>{\n const newState = selector(state);\n const oldState = selector(prevState);\n if (!shallowEqual(newState, oldState)) {\n listener(newState, oldState);\n }\n });\n },\n destroy () {\n /* this is a no-op */ }\n };\n}\n/** @internal */ export function getExtensionConfigFromStore(state, slotName, extensionId) {\n const extensionConfig = state.configs[slotName]?.[extensionId];\n return extensionConfig ?? {\n loaded: false,\n config: null\n };\n}\n/** @internal */ export const implementerToolsConfigStore = createGlobalStore('config-implementer-tools', {\n config: {}\n});\n","export var Type = /*#__PURE__*/ function(Type) {\n Type[\"Array\"] = \"Array\";\n Type[\"Boolean\"] = \"Boolean\";\n Type[\"ConceptUuid\"] = \"ConceptUuid\";\n Type[\"Number\"] = \"Number\";\n Type[\"Object\"] = \"Object\";\n Type[\"String\"] = \"String\";\n Type[\"UUID\"] = \"UUID\";\n Type[\"PersonAttributeTypeUuid\"] = \"PersonAttributeTypeUuid\";\n Type[\"PatientIdentifierTypeUuid\"] = \"PatientIdentifierTypeUuid\";\n return Type;\n}({});\n","import { validator } from \"./validator.js\";\nexport const isArray = validator((val)=>Array.isArray(val), 'must be an array');\nexport const isBoolean = validator((val)=>typeof val === 'boolean', 'must be a boolean');\nexport const isNumber = validator((val)=>typeof val === 'number', 'must be a number');\nexport const isString = validator((val)=>typeof val === 'string', 'must be a string');\nexport const isObject = validator((val)=>typeof val === 'object' && !Array.isArray(val) && val !== null, 'must be an object (not an array or null)');\nexport const isUuid = validator((val)=>/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(val) || /^[0-9a-f]{36}$/i.test(val), 'must be a valid UUID or a 36-character hexadecimal string');\n","/** @module @category Config Validation */ /**\n * Constructs a custom validator.\n *\n * ### Example\n *\n * ```typescript\n * {\n * foo: {\n * _default: 0,\n * _validators: [\n * validator(val => val >= 0, \"Must not be negative.\")\n * ]\n * }\n * }\n * ```\n * @param validationFunction Takes the configured value as input. Returns true\n * if it is valid, false otherwise.\n * @param message A string message that explains why the value is invalid. Can\n * also be a function that takes the value as input and returns a string.\n * @returns A validator ready for use in a config schema\n */ export function validator(validationFunction, message) {\n return (value)=>{\n if (!validationFunction(value)) {\n if (typeof message === 'function') {\n return message(value);\n } else {\n return message;\n }\n }\n };\n}\n","/** @module @category Config Validation */ import { validator } from \"./validator.js\";\n/**\n * Verifies that the value is between the provided minimum and maximum\n *\n * @param min Minimum acceptable value\n * @param max Maximum acceptable value\n */ export const inRange = (min, max)=>{\n return validator((val)=>min <= val && val <= max, `must be between ${min} and ${max}`);\n};\n/**\n * Verifies that a string contains only the default URL template\n * parameters, plus any specified in `allowedTemplateParameters`.\n *\n * @param allowedTemplateParameters To be added to `openmrsBase` and `openmrsSpaBase`\n * @category Navigation\n */ export const isUrlWithTemplateParameters = (allowedTemplateParameters)=>{\n const allowedParams = allowedTemplateParameters.concat([\n 'openmrsBase',\n 'openmrsSpaBase'\n ]);\n return validator((val)=>{\n if (!val || typeof val != 'string') {\n return false;\n }\n const rx = /\\${(.*?)}/g;\n let match = rx.exec(val);\n while(match){\n if (!allowedParams.includes(match[1])) {\n return false;\n }\n match = rx.exec(val);\n }\n return true;\n }, 'Should be a URL or path. The allowed template parameters are ' + allowedParams.map((p)=>'${' + p + '}').join(', '));\n};\n/**\n * Verifies that a string contains only the default URL template parameters.\n *\n * @category Navigation\n */ export const isUrl = isUrlWithTemplateParameters([]);\n/**\n * Verifies that the value is one of the allowed options.\n * @param allowedValues The list of allowable values\n */ export const oneOf = (allowedValues)=>{\n return validator((val)=>allowedValues.includes(val), `Must be one of the following: '${allowedValues.join(\"', '\")}'.`);\n};\nexport const validators = {\n inRange,\n isUrl,\n isUrlWithTemplateParameters,\n oneOf\n};\n","/** @module @category API */ import { openmrsFetch, restBaseUrl } from \"@openmrs/esm-api\";\nexport const attachmentUrl = `${restBaseUrl}/attachment`;\nexport function getAttachmentByUuid(attachmentUuid, abortController) {\n return openmrsFetch(`${attachmentUrl}/${attachmentUuid}`, {\n signal: abortController.signal\n });\n}\nexport function getAttachments(patientUuid, includeEncounterless, abortController) {\n return openmrsFetch(`${attachmentUrl}?patient=${patientUuid}&includeEncounterless=${includeEncounterless}`, {\n signal: abortController.signal\n });\n}\nexport async function createAttachment(patientUuid, fileToUpload) {\n const formData = new FormData();\n formData.append('fileCaption', fileToUpload.fileDescription);\n formData.append('patient', patientUuid);\n if (fileToUpload.file) {\n formData.append('file', fileToUpload.file, fileToUpload.fileName);\n } else {\n formData.append('file', new File([\n ''\n ], fileToUpload.fileName), fileToUpload.fileName);\n formData.append('base64Content', fileToUpload.base64Content);\n }\n return openmrsFetch(`${attachmentUrl}`, {\n method: 'POST',\n body: formData\n });\n}\nexport function deleteAttachmentPermanently(attachmentUuid, abortController) {\n return openmrsFetch(`${attachmentUrl}/${attachmentUuid}`, {\n method: 'DELETE',\n signal: abortController.signal\n });\n}\n","/** @module @category API */ import { openmrsFetch, restBaseUrl } from \"@openmrs/esm-api\";\nimport { getGlobalStore } from \"@openmrs/esm-state\";\nimport { BehaviorSubject } from \"rxjs\";\nexport var VisitMode = /*#__PURE__*/ function(VisitMode) {\n VisitMode[\"NEWVISIT\"] = \"startVisit\";\n VisitMode[\"EDITVISIT\"] = \"editVisit\";\n VisitMode[\"LOADING\"] = \"loadingVisit\";\n return VisitMode;\n}({});\nexport var VisitStatus = /*#__PURE__*/ function(VisitStatus) {\n VisitStatus[\"NOTSTARTED\"] = \"notStarted\";\n VisitStatus[\"ONGOING\"] = \"ongoing\";\n return VisitStatus;\n}({});\nexport const defaultVisitCustomRepresentation = 'custom:(uuid,display,voided,indication,startDatetime,stopDatetime,' + 'encounters:(uuid,display,encounterDatetime,' + 'form:(uuid,name),location:ref,' + 'encounterType:ref,' + 'encounterProviders:(uuid,display,' + 'provider:(uuid,display))),' + 'patient:(uuid,display),' + 'visitType:(uuid,name,display),' + 'attributes:(uuid,display,attributeType:(name,datatypeClassname,uuid),value),' + 'location:(uuid,name,display))';\nconst initialState = getVisitSessionStorage() || {\n patientUuid: null,\n manuallySetVisitUuid: null,\n mutateVisitCallbacks: {}\n};\nexport function getVisitStore() {\n return getGlobalStore('visit', initialState);\n}\nexport function setCurrentVisit(patientUuid, visitUuid) {\n getVisitStore().setState({\n patientUuid,\n manuallySetVisitUuid: visitUuid\n });\n}\ngetVisitStore().subscribe((state)=>{\n setVisitSessionStorage(state);\n});\nfunction setVisitSessionStorage(value) {\n sessionStorage.setItem('openmrs:visitStoreState', JSON.stringify(value));\n}\nfunction getVisitSessionStorage() {\n try {\n return JSON.parse(sessionStorage.getItem('openmrs:visitStoreState') || 'null');\n } catch (e) {\n return null;\n }\n}\nexport function saveVisit(payload, abortController) {\n return openmrsFetch(`${restBaseUrl}/visit`, {\n signal: abortController.signal,\n method: 'POST',\n headers: {\n 'Content-type': 'application/json'\n },\n body: payload\n });\n}\nexport function updateVisit(uuid, payload, abortController) {\n return openmrsFetch(`${restBaseUrl}/visit/${uuid}`, {\n signal: abortController.signal,\n method: 'POST',\n headers: {\n 'Content-type': 'application/json'\n },\n body: payload\n });\n}\n/**\n * @deprecated Use the `useVisit` hook instead.\n */ export function getVisitsForPatient(patientUuid, abortController, v) {\n const custom = v ?? defaultVisitCustomRepresentation;\n return openmrsFetch(`${restBaseUrl}/visit?patient=${patientUuid}&v=${custom}`, {\n signal: abortController.signal,\n method: 'GET',\n headers: {\n 'Content-type': 'application/json'\n }\n });\n}\n/** @deprecated */ export const getStartedVisit = new BehaviorSubject(null);\n","/** @module @category Error Handling */ import { dispatchToastShown } from \"@openmrs/esm-globals\";\nwindow.onerror = function(error) {\n console.error('Unexpected error: ', error);\n dispatchToastShown({\n description: error ?? 'Oops! An unexpected error occurred.',\n kind: 'error',\n title: 'Error'\n });\n return false;\n};\nwindow.onunhandledrejection = function(event) {\n console.error('Unhandled rejection: ', event.reason);\n dispatchToastShown({\n description: event.reason ?? 'Oops! An unhandled promise rejection occurred.',\n kind: 'error',\n title: 'Error'\n });\n};\nexport function reportError(err) {\n const error = ensureErrorObject(err);\n setTimeout(()=>{\n throw error;\n });\n}\nexport function createErrorHandler() {\n const outgoingErr = Error();\n return (incomingErr)=>{\n const finalErr = ensureErrorObject(incomingErr);\n finalErr.stack += `\\nAsync stacktrace:\\n${outgoingErr.stack}`;\n reportError(incomingErr);\n };\n}\nfunction ensureErrorObject(thing) {\n let message;\n if (thing instanceof Error) {\n return thing;\n } else if (thing === null) {\n return Error(`'null' was thrown as an error`);\n } else if (typeof thing === 'object') {\n try {\n message = `Object thrown as error: ${JSON.stringify(thing)}`;\n } catch (e) {\n message = `Object thrown as error with the following properties: ${Object.keys(thing)}`;\n }\n return Error(message);\n } else if (thing === undefined) {\n return Error(`'undefined' was thrown as an error`);\n } else {\n return Error(thing.toString());\n }\n}\n","/**\n * @implements {IHooks}\n */\nclass Hooks {\n\t/**\n\t * @callback HookCallback\n\t * @this {*|Jsep} this\n\t * @param {Jsep} env\n\t * @returns: void\n\t */\n\t/**\n\t * Adds the given callback to the list of callbacks for the given hook.\n\t *\n\t * The callback will be invoked when the hook it is registered for is run.\n\t *\n\t * One callback function can be registered to multiple hooks and the same hook multiple times.\n\t *\n\t * @param {string|object} name The name of the hook, or an object of callbacks keyed by name\n\t * @param {HookCallback|boolean} callback The callback function which is given environment variables.\n\t * @param {?boolean} [first=false] Will add the hook to the top of the list (defaults to the bottom)\n\t * @public\n\t */\n\tadd(name, callback, first) {\n\t\tif (typeof arguments[0] != 'string') {\n\t\t\t// Multiple hook callbacks, keyed by name\n\t\t\tfor (let name in arguments[0]) {\n\t\t\t\tthis.add(name, arguments[0][name], arguments[1]);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t(Array.isArray(name) ? name : [name]).forEach(function (name) {\n\t\t\t\tthis[name] = this[name] || [];\n\n\t\t\t\tif (callback) {\n\t\t\t\t\tthis[name][first ? 'unshift' : 'push'](callback);\n\t\t\t\t}\n\t\t\t}, this);\n\t\t}\n\t}\n\n\t/**\n\t * Runs a hook invoking all registered callbacks with the given environment variables.\n\t *\n\t * Callbacks will be invoked synchronously and in the order in which they were registered.\n\t *\n\t * @param {string} name The name of the hook.\n\t * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n\t * @public\n\t */\n\trun(name, env) {\n\t\tthis[name] = this[name] || [];\n\t\tthis[name].forEach(function (callback) {\n\t\t\tcallback.call(env && env.context ? env.context : env, env);\n\t\t});\n\t}\n}\n\n/**\n * @implements {IPlugins}\n */\nclass Plugins {\n\tconstructor(jsep) {\n\t\tthis.jsep = jsep;\n\t\tthis.registered = {};\n\t}\n\n\t/**\n\t * @callback PluginSetup\n\t * @this {Jsep} jsep\n\t * @returns: void\n\t */\n\t/**\n\t * Adds the given plugin(s) to the registry\n\t *\n\t * @param {object} plugins\n\t * @param {string} plugins.name The name of the plugin\n\t * @param {PluginSetup} plugins.init The init function\n\t * @public\n\t */\n\tregister(...plugins) {\n\t\tplugins.forEach((plugin) => {\n\t\t\tif (typeof plugin !== 'object' || !plugin.name || !plugin.init) {\n\t\t\t\tthrow new Error('Invalid JSEP plugin format');\n\t\t\t}\n\t\t\tif (this.registered[plugin.name]) {\n\t\t\t\t// already registered. Ignore.\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tplugin.init(this.jsep);\n\t\t\tthis.registered[plugin.name] = plugin;\n\t\t});\n\t}\n}\n\n// JavaScript Expression Parser (JSEP) 1.4.0\n\nclass Jsep {\n\t/**\n\t * @returns {string}\n\t */\n\tstatic get version() {\n\t\t// To be filled in by the template\n\t\treturn '1.4.0';\n\t}\n\n\t/**\n\t * @returns {string}\n\t */\n\tstatic toString() {\n\t\treturn 'JavaScript Expression Parser (JSEP) v' + Jsep.version;\n\t};\n\n\t// ==================== CONFIG ================================\n\t/**\n\t * @method addUnaryOp\n\t * @param {string} op_name The name of the unary op to add\n\t * @returns {Jsep}\n\t */\n\tstatic addUnaryOp(op_name) {\n\t\tJsep.max_unop_len = Math.max(op_name.length, Jsep.max_unop_len);\n\t\tJsep.unary_ops[op_name] = 1;\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method jsep.addBinaryOp\n\t * @param {string} op_name The name of the binary op to add\n\t * @param {number} precedence The precedence of the binary op (can be a float). Higher number = higher precedence\n\t * @param {boolean} [isRightAssociative=false] whether operator is right-associative\n\t * @returns {Jsep}\n\t */\n\tstatic addBinaryOp(op_name, precedence, isRightAssociative) {\n\t\tJsep.max_binop_len = Math.max(op_name.length, Jsep.max_binop_len);\n\t\tJsep.binary_ops[op_name] = precedence;\n\t\tif (isRightAssociative) {\n\t\t\tJsep.right_associative.add(op_name);\n\t\t}\n\t\telse {\n\t\t\tJsep.right_associative.delete(op_name);\n\t\t}\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method addIdentifierChar\n\t * @param {string} char The additional character to treat as a valid part of an identifier\n\t * @returns {Jsep}\n\t */\n\tstatic addIdentifierChar(char) {\n\t\tJsep.additional_identifier_chars.add(char);\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method addLiteral\n\t * @param {string} literal_name The name of the literal to add\n\t * @param {*} literal_value The value of the literal\n\t * @returns {Jsep}\n\t */\n\tstatic addLiteral(literal_name, literal_value) {\n\t\tJsep.literals[literal_name] = literal_value;\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method removeUnaryOp\n\t * @param {string} op_name The name of the unary op to remove\n\t * @returns {Jsep}\n\t */\n\tstatic removeUnaryOp(op_name) {\n\t\tdelete Jsep.unary_ops[op_name];\n\t\tif (op_name.length === Jsep.max_unop_len) {\n\t\t\tJsep.max_unop_len = Jsep.getMaxKeyLen(Jsep.unary_ops);\n\t\t}\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method removeAllUnaryOps\n\t * @returns {Jsep}\n\t */\n\tstatic removeAllUnaryOps() {\n\t\tJsep.unary_ops = {};\n\t\tJsep.max_unop_len = 0;\n\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method removeIdentifierChar\n\t * @param {string} char The additional character to stop treating as a valid part of an identifier\n\t * @returns {Jsep}\n\t */\n\tstatic removeIdentifierChar(char) {\n\t\tJsep.additional_identifier_chars.delete(char);\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method removeBinaryOp\n\t * @param {string} op_name The name of the binary op to remove\n\t * @returns {Jsep}\n\t */\n\tstatic removeBinaryOp(op_name) {\n\t\tdelete Jsep.binary_ops[op_name];\n\n\t\tif (op_name.length === Jsep.max_binop_len) {\n\t\t\tJsep.max_binop_len = Jsep.getMaxKeyLen(Jsep.binary_ops);\n\t\t}\n\t\tJsep.right_associative.delete(op_name);\n\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method removeAllBinaryOps\n\t * @returns {Jsep}\n\t */\n\tstatic removeAllBinaryOps() {\n\t\tJsep.binary_ops = {};\n\t\tJsep.max_binop_len = 0;\n\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method removeLiteral\n\t * @param {string} literal_name The name of the literal to remove\n\t * @returns {Jsep}\n\t */\n\tstatic removeLiteral(literal_name) {\n\t\tdelete Jsep.literals[literal_name];\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method removeAllLiterals\n\t * @returns {Jsep}\n\t */\n\tstatic removeAllLiterals() {\n\t\tJsep.literals = {};\n\n\t\treturn Jsep;\n\t}\n\t// ==================== END CONFIG ============================\n\n\n\t/**\n\t * @returns {string}\n\t */\n\tget char() {\n\t\treturn this.expr.charAt(this.index);\n\t}\n\n\t/**\n\t * @returns {number}\n\t */\n\tget code() {\n\t\treturn this.expr.charCodeAt(this.index);\n\t};\n\n\n\t/**\n\t * @param {string} expr a string with the passed in express\n\t * @returns Jsep\n\t */\n\tconstructor(expr) {\n\t\t// `index` stores the character number we are currently at\n\t\t// All of the gobbles below will modify `index` as we move along\n\t\tthis.expr = expr;\n\t\tthis.index = 0;\n\t}\n\n\t/**\n\t * static top-level parser\n\t * @returns {jsep.Expression}\n\t */\n\tstatic parse(expr) {\n\t\treturn (new Jsep(expr)).parse();\n\t}\n\n\t/**\n\t * Get the longest key length of any object\n\t * @param {object} obj\n\t * @returns {number}\n\t */\n\tstatic getMaxKeyLen(obj) {\n\t\treturn Math.max(0, ...Object.keys(obj).map(k => k.length));\n\t}\n\n\t/**\n\t * `ch` is a character code in the next three functions\n\t * @param {number} ch\n\t * @returns {boolean}\n\t */\n\tstatic isDecimalDigit(ch) {\n\t\treturn (ch >= 48 && ch <= 57); // 0...9\n\t}\n\n\t/**\n\t * Returns the precedence of a binary operator or `0` if it isn't a binary operator. Can be float.\n\t * @param {string} op_val\n\t * @returns {number}\n\t */\n\tstatic binaryPrecedence(op_val) {\n\t\treturn Jsep.binary_ops[op_val] || 0;\n\t}\n\n\t/**\n\t * Looks for start of identifier\n\t * @param {number} ch\n\t * @returns {boolean}\n\t */\n\tstatic isIdentifierStart(ch) {\n\t\treturn (ch >= 65 && ch <= 90) || // A...Z\n\t\t\t(ch >= 97 && ch <= 122) || // a...z\n\t\t\t(ch >= 128 && !Jsep.binary_ops[String.fromCharCode(ch)]) || // any non-ASCII that is not an operator\n\t\t\t(Jsep.additional_identifier_chars.has(String.fromCharCode(ch))); // additional characters\n\t}\n\n\t/**\n\t * @param {number} ch\n\t * @returns {boolean}\n\t */\n\tstatic isIdentifierPart(ch) {\n\t\treturn Jsep.isIdentifierStart(ch) || Jsep.isDecimalDigit(ch);\n\t}\n\n\t/**\n\t * throw error at index of the expression\n\t * @param {string} message\n\t * @throws\n\t */\n\tthrowError(message) {\n\t\tconst error = new Error(message + ' at character ' + this.index);\n\t\terror.index = this.index;\n\t\terror.description = message;\n\t\tthrow error;\n\t}\n\n\t/**\n\t * Run a given hook\n\t * @param {string} name\n\t * @param {jsep.Expression|false} [node]\n\t * @returns {?jsep.Expression}\n\t */\n\trunHook(name, node) {\n\t\tif (Jsep.hooks[name]) {\n\t\t\tconst env = { context: this, node };\n\t\t\tJsep.hooks.run(name, env);\n\t\t\treturn env.node;\n\t\t}\n\t\treturn node;\n\t}\n\n\t/**\n\t * Runs a given hook until one returns a node\n\t * @param {string} name\n\t * @returns {?jsep.Expression}\n\t */\n\tsearchHook(name) {\n\t\tif (Jsep.hooks[name]) {\n\t\t\tconst env = { context: this };\n\t\t\tJsep.hooks[name].find(function (callback) {\n\t\t\t\tcallback.call(env.context, env);\n\t\t\t\treturn env.node;\n\t\t\t});\n\t\t\treturn env.node;\n\t\t}\n\t}\n\n\t/**\n\t * Push `index` up to the next non-space character\n\t */\n\tgobbleSpaces() {\n\t\tlet ch = this.code;\n\t\t// Whitespace\n\t\twhile (ch === Jsep.SPACE_CODE\n\t\t|| ch === Jsep.TAB_CODE\n\t\t|| ch === Jsep.LF_CODE\n\t\t|| ch === Jsep.CR_CODE) {\n\t\t\tch = this.expr.charCodeAt(++this.index);\n\t\t}\n\t\tthis.runHook('gobble-spaces');\n\t}\n\n\t/**\n\t * Top-level method to parse all expressions and returns compound or single node\n\t * @returns {jsep.Expression}\n\t */\n\tparse() {\n\t\tthis.runHook('before-all');\n\t\tconst nodes = this.gobbleExpressions();\n\n\t\t// If there's only one expression just try returning the expression\n\t\tconst node = nodes.length === 1\n\t\t ? nodes[0]\n\t\t\t: {\n\t\t\t\ttype: Jsep.COMPOUND,\n\t\t\t\tbody: nodes\n\t\t\t};\n\t\treturn this.runHook('after-all', node);\n\t}\n\n\t/**\n\t * top-level parser (but can be reused within as well)\n\t * @param {number} [untilICode]\n\t * @returns {jsep.Expression[]}\n\t */\n\tgobbleExpressions(untilICode) {\n\t\tlet nodes = [], ch_i, node;\n\n\t\twhile (this.index < this.expr.length) {\n\t\t\tch_i = this.code;\n\n\t\t\t// Expressions can be separated by semicolons, commas, or just inferred without any\n\t\t\t// separators\n\t\t\tif (ch_i === Jsep.SEMCOL_CODE || ch_i === Jsep.COMMA_CODE) {\n\t\t\t\tthis.index++; // ignore separators\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Try to gobble each expression individually\n\t\t\t\tif (node = this.gobbleExpression()) {\n\t\t\t\t\tnodes.push(node);\n\t\t\t\t\t// If we weren't able to find a binary expression and are out of room, then\n\t\t\t\t\t// the expression passed in probably has too much\n\t\t\t\t}\n\t\t\t\telse if (this.index < this.expr.length) {\n\t\t\t\t\tif (ch_i === untilICode) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tthis.throwError('Unexpected \"' + this.char + '\"');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn nodes;\n\t}\n\n\t/**\n\t * The main parsing function.\n\t * @returns {?jsep.Expression}\n\t */\n\tgobbleExpression() {\n\t\tconst node = this.searchHook('gobble-expression') || this.gobbleBinaryExpression();\n\t\tthis.gobbleSpaces();\n\n\t\treturn this.runHook('after-expression', node);\n\t}\n\n\t/**\n\t * Search for the operation portion of the string (e.g. `+`, `===`)\n\t * Start by taking the longest possible binary operations (3 characters: `===`, `!==`, `>>>`)\n\t * and move down from 3 to 2 to 1 character until a matching binary operation is found\n\t * then, return that binary operation\n\t * @returns {string|boolean}\n\t */\n\tgobbleBinaryOp() {\n\t\tthis.gobbleSpaces();\n\t\tlet to_check = this.expr.substr(this.index, Jsep.max_binop_len);\n\t\tlet tc_len = to_check.length;\n\n\t\twhile (tc_len > 0) {\n\t\t\t// Don't accept a binary op when it is an identifier.\n\t\t\t// Binary ops that start with a identifier-valid character must be followed\n\t\t\t// by a non identifier-part valid character\n\t\t\tif (Jsep.binary_ops.hasOwnProperty(to_check) && (\n\t\t\t\t!Jsep.isIdentifierStart(this.code) ||\n\t\t\t\t(this.index + to_check.length < this.expr.length && !Jsep.isIdentifierPart(this.expr.charCodeAt(this.index + to_check.length)))\n\t\t\t)) {\n\t\t\t\tthis.index += tc_len;\n\t\t\t\treturn to_check;\n\t\t\t}\n\t\t\tto_check = to_check.substr(0, --tc_len);\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * This function is responsible for gobbling an individual expression,\n\t * e.g. `1`, `1+2`, `a+(b*2)-Math.sqrt(2)`\n\t * @returns {?jsep.BinaryExpression}\n\t */\n\tgobbleBinaryExpression() {\n\t\tlet node, biop, prec, stack, biop_info, left, right, i, cur_biop;\n\n\t\t// First, try to get the leftmost thing\n\t\t// Then, check to see if there's a binary operator operating on that leftmost thing\n\t\t// Don't gobbleBinaryOp without a left-hand-side\n\t\tleft = this.gobbleToken();\n\t\tif (!left) {\n\t\t\treturn left;\n\t\t}\n\t\tbiop = this.gobbleBinaryOp();\n\n\t\t// If there wasn't a binary operator, just return the leftmost node\n\t\tif (!biop) {\n\t\t\treturn left;\n\t\t}\n\n\t\t// Otherwise, we need to start a stack to properly place the binary operations in their\n\t\t// precedence structure\n\t\tbiop_info = { value: biop, prec: Jsep.binaryPrecedence(biop), right_a: Jsep.right_associative.has(biop) };\n\n\t\tright = this.gobbleToken();\n\n\t\tif (!right) {\n\t\t\tthis.throwError(\"Expected expression after \" + biop);\n\t\t}\n\n\t\tstack = [left, biop_info, right];\n\n\t\t// Properly deal with precedence using [recursive descent](http://www.engr.mun.ca/~theo/Misc/exp_parsing.htm)\n\t\twhile ((biop = this.gobbleBinaryOp())) {\n\t\t\tprec = Jsep.binaryPrecedence(biop);\n\n\t\t\tif (prec === 0) {\n\t\t\t\tthis.index -= biop.length;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tbiop_info = { value: biop, prec, right_a: Jsep.right_associative.has(biop) };\n\n\t\t\tcur_biop = biop;\n\n\t\t\t// Reduce: make a binary expression from the three topmost entries.\n\t\t\tconst comparePrev = prev => biop_info.right_a && prev.right_a\n\t\t\t\t? prec > prev.prec\n\t\t\t\t: prec <= prev.prec;\n\t\t\twhile ((stack.length > 2) && comparePrev(stack[stack.length - 2])) {\n\t\t\t\tright = stack.pop();\n\t\t\t\tbiop = stack.pop().value;\n\t\t\t\tleft = stack.pop();\n\t\t\t\tnode = {\n\t\t\t\t\ttype: Jsep.BINARY_EXP,\n\t\t\t\t\toperator: biop,\n\t\t\t\t\tleft,\n\t\t\t\t\tright\n\t\t\t\t};\n\t\t\t\tstack.push(node);\n\t\t\t}\n\n\t\t\tnode = this.gobbleToken();\n\n\t\t\tif (!node) {\n\t\t\t\tthis.throwError(\"Expected expression after \" + cur_biop);\n\t\t\t}\n\n\t\t\tstack.push(biop_info, node);\n\t\t}\n\n\t\ti = stack.length - 1;\n\t\tnode = stack[i];\n\n\t\twhile (i > 1) {\n\t\t\tnode = {\n\t\t\t\ttype: Jsep.BINARY_EXP,\n\t\t\t\toperator: stack[i - 1].value,\n\t\t\t\tleft: stack[i - 2],\n\t\t\t\tright: node\n\t\t\t};\n\t\t\ti -= 2;\n\t\t}\n\n\t\treturn node;\n\t}\n\n\t/**\n\t * An individual part of a binary expression:\n\t * e.g. `foo.bar(baz)`, `1`, `\"abc\"`, `(a % 2)` (because it's in parenthesis)\n\t * @returns {boolean|jsep.Expression}\n\t */\n\tgobbleToken() {\n\t\tlet ch, to_check, tc_len, node;\n\n\t\tthis.gobbleSpaces();\n\t\tnode = this.searchHook('gobble-token');\n\t\tif (node) {\n\t\t\treturn this.runHook('after-token', node);\n\t\t}\n\n\t\tch = this.code;\n\n\t\tif (Jsep.isDecimalDigit(ch) || ch === Jsep.PERIOD_CODE) {\n\t\t\t// Char code 46 is a dot `.` which can start off a numeric literal\n\t\t\treturn this.gobbleNumericLiteral();\n\t\t}\n\n\t\tif (ch === Jsep.SQUOTE_CODE || ch === Jsep.DQUOTE_CODE) {\n\t\t\t// Single or double quotes\n\t\t\tnode = this.gobbleStringLiteral();\n\t\t}\n\t\telse if (ch === Jsep.OBRACK_CODE) {\n\t\t\tnode = this.gobbleArray();\n\t\t}\n\t\telse {\n\t\t\tto_check = this.expr.substr(this.index, Jsep.max_unop_len);\n\t\t\ttc_len = to_check.length;\n\n\t\t\twhile (tc_len > 0) {\n\t\t\t\t// Don't accept an unary op when it is an identifier.\n\t\t\t\t// Unary ops that start with a identifier-valid character must be followed\n\t\t\t\t// by a non identifier-part valid character\n\t\t\t\tif (Jsep.unary_ops.hasOwnProperty(to_check) && (\n\t\t\t\t\t!Jsep.isIdentifierStart(this.code) ||\n\t\t\t\t\t(this.index + to_check.length < this.expr.length && !Jsep.isIdentifierPart(this.expr.charCodeAt(this.index + to_check.length)))\n\t\t\t\t)) {\n\t\t\t\t\tthis.index += tc_len;\n\t\t\t\t\tconst argument = this.gobbleToken();\n\t\t\t\t\tif (!argument) {\n\t\t\t\t\t\tthis.throwError('missing unaryOp argument');\n\t\t\t\t\t}\n\t\t\t\t\treturn this.runHook('after-token', {\n\t\t\t\t\t\ttype: Jsep.UNARY_EXP,\n\t\t\t\t\t\toperator: to_check,\n\t\t\t\t\t\targument,\n\t\t\t\t\t\tprefix: true\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tto_check = to_check.substr(0, --tc_len);\n\t\t\t}\n\n\t\t\tif (Jsep.isIdentifierStart(ch)) {\n\t\t\t\tnode = this.gobbleIdentifier();\n\t\t\t\tif (Jsep.literals.hasOwnProperty(node.name)) {\n\t\t\t\t\tnode = {\n\t\t\t\t\t\ttype: Jsep.LITERAL,\n\t\t\t\t\t\tvalue: Jsep.literals[node.name],\n\t\t\t\t\t\traw: node.name,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse if (node.name === Jsep.this_str) {\n\t\t\t\t\tnode = { type: Jsep.THIS_EXP };\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (ch === Jsep.OPAREN_CODE) { // open parenthesis\n\t\t\t\tnode = this.gobbleGroup();\n\t\t\t}\n\t\t}\n\n\t\tif (!node) {\n\t\t\treturn this.runHook('after-token', false);\n\t\t}\n\n\t\tnode = this.gobbleTokenProperty(node);\n\t\treturn this.runHook('after-token', node);\n\t}\n\n\t/**\n\t * Gobble properties of of identifiers/strings/arrays/groups.\n\t * e.g. `foo`, `bar.baz`, `foo['bar'].baz`\n\t * It also gobbles function calls:\n\t * e.g. `Math.acos(obj.angle)`\n\t * @param {jsep.Expression} node\n\t * @returns {jsep.Expression}\n\t */\n\tgobbleTokenProperty(node) {\n\t\tthis.gobbleSpaces();\n\n\t\tlet ch = this.code;\n\t\twhile (ch === Jsep.PERIOD_CODE || ch === Jsep.OBRACK_CODE || ch === Jsep.OPAREN_CODE || ch === Jsep.QUMARK_CODE) {\n\t\t\tlet optional;\n\t\t\tif (ch === Jsep.QUMARK_CODE) {\n\t\t\t\tif (this.expr.charCodeAt(this.index + 1) !== Jsep.PERIOD_CODE) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toptional = true;\n\t\t\t\tthis.index += 2;\n\t\t\t\tthis.gobbleSpaces();\n\t\t\t\tch = this.code;\n\t\t\t}\n\t\t\tthis.index++;\n\n\t\t\tif (ch === Jsep.OBRACK_CODE) {\n\t\t\t\tnode = {\n\t\t\t\t\ttype: Jsep.MEMBER_EXP,\n\t\t\t\t\tcomputed: true,\n\t\t\t\t\tobject: node,\n\t\t\t\t\tproperty: this.gobbleExpression()\n\t\t\t\t};\n\t\t\t\tif (!node.property) {\n\t\t\t\t\tthis.throwError('Unexpected \"' + this.char + '\"');\n\t\t\t\t}\n\t\t\t\tthis.gobbleSpaces();\n\t\t\t\tch = this.code;\n\t\t\t\tif (ch !== Jsep.CBRACK_CODE) {\n\t\t\t\t\tthis.throwError('Unclosed [');\n\t\t\t\t}\n\t\t\t\tthis.index++;\n\t\t\t}\n\t\t\telse if (ch === Jsep.OPAREN_CODE) {\n\t\t\t\t// A function call is being made; gobble all the arguments\n\t\t\t\tnode = {\n\t\t\t\t\ttype: Jsep.CALL_EXP,\n\t\t\t\t\t'arguments': this.gobbleArguments(Jsep.CPAREN_CODE),\n\t\t\t\t\tcallee: node\n\t\t\t\t};\n\t\t\t}\n\t\t\telse if (ch === Jsep.PERIOD_CODE || optional) {\n\t\t\t\tif (optional) {\n\t\t\t\t\tthis.index--;\n\t\t\t\t}\n\t\t\t\tthis.gobbleSpaces();\n\t\t\t\tnode = {\n\t\t\t\t\ttype: Jsep.MEMBER_EXP,\n\t\t\t\t\tcomputed: false,\n\t\t\t\t\tobject: node,\n\t\t\t\t\tproperty: this.gobbleIdentifier(),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (optional) {\n\t\t\t\tnode.optional = true;\n\t\t\t} // else leave undefined for compatibility with esprima\n\n\t\t\tthis.gobbleSpaces();\n\t\t\tch = this.code;\n\t\t}\n\n\t\treturn node;\n\t}\n\n\t/**\n\t * Parse simple numeric literals: `12`, `3.4`, `.5`. Do this by using a string to\n\t * keep track of everything in the numeric literal and then calling `parseFloat` on that string\n\t * @returns {jsep.Literal}\n\t */\n\tgobbleNumericLiteral() {\n\t\tlet number = '', ch, chCode;\n\n\t\twhile (Jsep.isDecimalDigit(this.code)) {\n\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t}\n\n\t\tif (this.code === Jsep.PERIOD_CODE) { // can start with a decimal marker\n\t\t\tnumber += this.expr.charAt(this.index++);\n\n\t\t\twhile (Jsep.isDecimalDigit(this.code)) {\n\t\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t\t}\n\t\t}\n\n\t\tch = this.char;\n\n\t\tif (ch === 'e' || ch === 'E') { // exponent marker\n\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t\tch = this.char;\n\n\t\t\tif (ch === '+' || ch === '-') { // exponent sign\n\t\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t\t}\n\n\t\t\twhile (Jsep.isDecimalDigit(this.code)) { // exponent itself\n\t\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t\t}\n\n\t\t\tif (!Jsep.isDecimalDigit(this.expr.charCodeAt(this.index - 1)) ) {\n\t\t\t\tthis.throwError('Expected exponent (' + number + this.char + ')');\n\t\t\t}\n\t\t}\n\n\t\tchCode = this.code;\n\n\t\t// Check to make sure this isn't a variable name that start with a number (123abc)\n\t\tif (Jsep.isIdentifierStart(chCode)) {\n\t\t\tthis.throwError('Variable names cannot start with a number (' +\n\t\t\t\tnumber + this.char + ')');\n\t\t}\n\t\telse if (chCode === Jsep.PERIOD_CODE || (number.length === 1 && number.charCodeAt(0) === Jsep.PERIOD_CODE)) {\n\t\t\tthis.throwError('Unexpected period');\n\t\t}\n\n\t\treturn {\n\t\t\ttype: Jsep.LITERAL,\n\t\t\tvalue: parseFloat(number),\n\t\t\traw: number\n\t\t};\n\t}\n\n\t/**\n\t * Parses a string literal, staring with single or double quotes with basic support for escape codes\n\t * e.g. `\"hello world\"`, `'this is\\nJSEP'`\n\t * @returns {jsep.Literal}\n\t */\n\tgobbleStringLiteral() {\n\t\tlet str = '';\n\t\tconst startIndex = this.index;\n\t\tconst quote = this.expr.charAt(this.index++);\n\t\tlet closed = false;\n\n\t\twhile (this.index < this.expr.length) {\n\t\t\tlet ch = this.expr.charAt(this.index++);\n\n\t\t\tif (ch === quote) {\n\t\t\t\tclosed = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse if (ch === '\\\\') {\n\t\t\t\t// Check for all of the common escape codes\n\t\t\t\tch = this.expr.charAt(this.index++);\n\n\t\t\t\tswitch (ch) {\n\t\t\t\t\tcase 'n': str += '\\n'; break;\n\t\t\t\t\tcase 'r': str += '\\r'; break;\n\t\t\t\t\tcase 't': str += '\\t'; break;\n\t\t\t\t\tcase 'b': str += '\\b'; break;\n\t\t\t\t\tcase 'f': str += '\\f'; break;\n\t\t\t\t\tcase 'v': str += '\\x0B'; break;\n\t\t\t\t\tdefault : str += ch;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tstr += ch;\n\t\t\t}\n\t\t}\n\n\t\tif (!closed) {\n\t\t\tthis.throwError('Unclosed quote after \"' + str + '\"');\n\t\t}\n\n\t\treturn {\n\t\t\ttype: Jsep.LITERAL,\n\t\t\tvalue: str,\n\t\t\traw: this.expr.substring(startIndex, this.index),\n\t\t};\n\t}\n\n\t/**\n\t * Gobbles only identifiers\n\t * e.g.: `foo`, `_value`, `$x1`\n\t * Also, this function checks if that identifier is a literal:\n\t * (e.g. `true`, `false`, `null`) or `this`\n\t * @returns {jsep.Identifier}\n\t */\n\tgobbleIdentifier() {\n\t\tlet ch = this.code, start = this.index;\n\n\t\tif (Jsep.isIdentifierStart(ch)) {\n\t\t\tthis.index++;\n\t\t}\n\t\telse {\n\t\t\tthis.throwError('Unexpected ' + this.char);\n\t\t}\n\n\t\twhile (this.index < this.expr.length) {\n\t\t\tch = this.code;\n\n\t\t\tif (Jsep.isIdentifierPart(ch)) {\n\t\t\t\tthis.index++;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\ttype: Jsep.IDENTIFIER,\n\t\t\tname: this.expr.slice(start, this.index),\n\t\t};\n\t}\n\n\t/**\n\t * Gobbles a list of arguments within the context of a function call\n\t * or array literal. This function also assumes that the opening character\n\t * `(` or `[` has already been gobbled, and gobbles expressions and commas\n\t * until the terminator character `)` or `]` is encountered.\n\t * e.g. `foo(bar, baz)`, `my_func()`, or `[bar, baz]`\n\t * @param {number} termination\n\t * @returns {jsep.Expression[]}\n\t */\n\tgobbleArguments(termination) {\n\t\tconst args = [];\n\t\tlet closed = false;\n\t\tlet separator_count = 0;\n\n\t\twhile (this.index < this.expr.length) {\n\t\t\tthis.gobbleSpaces();\n\t\t\tlet ch_i = this.code;\n\n\t\t\tif (ch_i === termination) { // done parsing\n\t\t\t\tclosed = true;\n\t\t\t\tthis.index++;\n\n\t\t\t\tif (termination === Jsep.CPAREN_CODE && separator_count && separator_count >= args.length){\n\t\t\t\t\tthis.throwError('Unexpected token ' + String.fromCharCode(termination));\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse if (ch_i === Jsep.COMMA_CODE) { // between expressions\n\t\t\t\tthis.index++;\n\t\t\t\tseparator_count++;\n\n\t\t\t\tif (separator_count !== args.length) { // missing argument\n\t\t\t\t\tif (termination === Jsep.CPAREN_CODE) {\n\t\t\t\t\t\tthis.throwError('Unexpected token ,');\n\t\t\t\t\t}\n\t\t\t\t\telse if (termination === Jsep.CBRACK_CODE) {\n\t\t\t\t\t\tfor (let arg = args.length; arg < separator_count; arg++) {\n\t\t\t\t\t\t\targs.push(null);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (args.length !== separator_count && separator_count !== 0) {\n\t\t\t\t// NOTE: `&& separator_count !== 0` allows for either all commas, or all spaces as arguments\n\t\t\t\tthis.throwError('Expected comma');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconst node = this.gobbleExpression();\n\n\t\t\t\tif (!node || node.type === Jsep.COMPOUND) {\n\t\t\t\t\tthis.throwError('Expected comma');\n\t\t\t\t}\n\n\t\t\t\targs.push(node);\n\t\t\t}\n\t\t}\n\n\t\tif (!closed) {\n\t\t\tthis.throwError('Expected ' + String.fromCharCode(termination));\n\t\t}\n\n\t\treturn args;\n\t}\n\n\t/**\n\t * Responsible for parsing a group of things within parentheses `()`\n\t * that have no identifier in front (so not a function call)\n\t * This function assumes that it needs to gobble the opening parenthesis\n\t * and then tries to gobble everything within that parenthesis, assuming\n\t * that the next thing it should see is the close parenthesis. If not,\n\t * then the expression probably doesn't have a `)`\n\t * @returns {boolean|jsep.Expression}\n\t */\n\tgobbleGroup() {\n\t\tthis.index++;\n\t\tlet nodes = this.gobbleExpressions(Jsep.CPAREN_CODE);\n\t\tif (this.code === Jsep.CPAREN_CODE) {\n\t\t\tthis.index++;\n\t\t\tif (nodes.length === 1) {\n\t\t\t\treturn nodes[0];\n\t\t\t}\n\t\t\telse if (!nodes.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn {\n\t\t\t\t\ttype: Jsep.SEQUENCE_EXP,\n\t\t\t\t\texpressions: nodes,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthis.throwError('Unclosed (');\n\t\t}\n\t}\n\n\t/**\n\t * Responsible for parsing Array literals `[1, 2, 3]`\n\t * This function assumes that it needs to gobble the opening bracket\n\t * and then tries to gobble the expressions as arguments.\n\t * @returns {jsep.ArrayExpression}\n\t */\n\tgobbleArray() {\n\t\tthis.index++;\n\n\t\treturn {\n\t\t\ttype: Jsep.ARRAY_EXP,\n\t\t\telements: this.gobbleArguments(Jsep.CBRACK_CODE)\n\t\t};\n\t}\n}\n\n// Static fields:\nconst hooks = new Hooks();\nObject.assign(Jsep, {\n\thooks,\n\tplugins: new Plugins(Jsep),\n\n\t// Node Types\n\t// ----------\n\t// This is the full set of types that any JSEP node can be.\n\t// Store them here to save space when minified\n\tCOMPOUND: 'Compound',\n\tSEQUENCE_EXP: 'SequenceExpression',\n\tIDENTIFIER: 'Identifier',\n\tMEMBER_EXP: 'MemberExpression',\n\tLITERAL: 'Literal',\n\tTHIS_EXP: 'ThisExpression',\n\tCALL_EXP: 'CallExpression',\n\tUNARY_EXP: 'UnaryExpression',\n\tBINARY_EXP: 'BinaryExpression',\n\tARRAY_EXP: 'ArrayExpression',\n\n\tTAB_CODE: 9,\n\tLF_CODE: 10,\n\tCR_CODE: 13,\n\tSPACE_CODE: 32,\n\tPERIOD_CODE: 46, // '.'\n\tCOMMA_CODE: 44, // ','\n\tSQUOTE_CODE: 39, // single quote\n\tDQUOTE_CODE: 34, // double quotes\n\tOPAREN_CODE: 40, // (\n\tCPAREN_CODE: 41, // )\n\tOBRACK_CODE: 91, // [\n\tCBRACK_CODE: 93, // ]\n\tQUMARK_CODE: 63, // ?\n\tSEMCOL_CODE: 59, // ;\n\tCOLON_CODE: 58, // :\n\n\n\t// Operations\n\t// ----------\n\t// Use a quickly-accessible map to store all of the unary operators\n\t// Values are set to `1` (it really doesn't matter)\n\tunary_ops: {\n\t\t'-': 1,\n\t\t'!': 1,\n\t\t'~': 1,\n\t\t'+': 1\n\t},\n\n\t// Also use a map for the binary operations but set their values to their\n\t// binary precedence for quick reference (higher number = higher precedence)\n\t// see [Order of operations](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence)\n\tbinary_ops: {\n\t\t'||': 1, '??': 1,\n\t\t'&&': 2, '|': 3, '^': 4, '&': 5,\n\t\t'==': 6, '!=': 6, '===': 6, '!==': 6,\n\t\t'<': 7, '>': 7, '<=': 7, '>=': 7,\n\t\t'<<': 8, '>>': 8, '>>>': 8,\n\t\t'+': 9, '-': 9,\n\t\t'*': 10, '/': 10, '%': 10,\n\t\t'**': 11,\n\t},\n\n\t// sets specific binary_ops as right-associative\n\tright_associative: new Set(['**']),\n\n\t// Additional valid identifier chars, apart from a-z, A-Z and 0-9 (except on the starting char)\n\tadditional_identifier_chars: new Set(['$', '_']),\n\n\t// Literals\n\t// ----------\n\t// Store the values to return for the various literals we may encounter\n\tliterals: {\n\t\t'true': true,\n\t\t'false': false,\n\t\t'null': null\n\t},\n\n\t// Except for `this`, which is special. This could be changed to something like `'self'` as well\n\tthis_str: 'this',\n});\nJsep.max_unop_len = Jsep.getMaxKeyLen(Jsep.unary_ops);\nJsep.max_binop_len = Jsep.getMaxKeyLen(Jsep.binary_ops);\n\n// Backward Compatibility:\nconst jsep = expr => (new Jsep(expr)).parse();\nconst stdClassProps = Object.getOwnPropertyNames(class Test{});\nObject.getOwnPropertyNames(Jsep)\n\t.filter(prop => !stdClassProps.includes(prop) && jsep[prop] === undefined)\n\t.forEach((m) => {\n\t\tjsep[m] = Jsep[m];\n\t});\njsep.Jsep = Jsep; // allows for const { Jsep } = require('jsep');\n\nconst CONDITIONAL_EXP = 'ConditionalExpression';\n\nvar ternary = {\n\tname: 'ternary',\n\n\tinit(jsep) {\n\t\t// Ternary expression: test ? consequent : alternate\n\t\tjsep.hooks.add('after-expression', function gobbleTernary(env) {\n\t\t\tif (env.node && this.code === jsep.QUMARK_CODE) {\n\t\t\t\tthis.index++;\n\t\t\t\tconst test = env.node;\n\t\t\t\tconst consequent = this.gobbleExpression();\n\n\t\t\t\tif (!consequent) {\n\t\t\t\t\tthis.throwError('Expected expression');\n\t\t\t\t}\n\n\t\t\t\tthis.gobbleSpaces();\n\n\t\t\t\tif (this.code === jsep.COLON_CODE) {\n\t\t\t\t\tthis.index++;\n\t\t\t\t\tconst alternate = this.gobbleExpression();\n\n\t\t\t\t\tif (!alternate) {\n\t\t\t\t\t\tthis.throwError('Expected expression');\n\t\t\t\t\t}\n\t\t\t\t\tenv.node = {\n\t\t\t\t\t\ttype: CONDITIONAL_EXP,\n\t\t\t\t\t\ttest,\n\t\t\t\t\t\tconsequent,\n\t\t\t\t\t\talternate,\n\t\t\t\t\t};\n\n\t\t\t\t\t// check for operators of higher priority than ternary (i.e. assignment)\n\t\t\t\t\t// jsep sets || at 1, and assignment at 0.9, and conditional should be between them\n\t\t\t\t\tif (test.operator && jsep.binary_ops[test.operator] <= 0.9) {\n\t\t\t\t\t\tlet newTest = test;\n\t\t\t\t\t\twhile (newTest.right.operator && jsep.binary_ops[newTest.right.operator] <= 0.9) {\n\t\t\t\t\t\t\tnewTest = newTest.right;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tenv.node.test = newTest.right;\n\t\t\t\t\t\tnewTest.right = env.node;\n\t\t\t\t\t\tenv.node = test;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.throwError('Expected :');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n};\n\n// Add default plugins:\n\njsep.plugins.register(ternary);\n\nexport { Jsep, jsep as default };\n","const ARROW_EXP = 'ArrowFunctionExpression';\n\nvar index = {\n\tname: 'arrow',\n\n\tinit(jsep) {\n\t\t// arrow-function expressions: () => x, v => v, (a, b) => v\n\t\tjsep.addBinaryOp('=>', 0.1, true);\n\n\t\t// this hook searches for the special case () => ...\n\t\t// which would normally throw an error because of the invalid LHS to the bin op\n\t\tjsep.hooks.add('gobble-expression', function gobbleEmptyArrowArg(env) {\n\t\t\tthis.gobbleSpaces();\n\t\t\tif (this.code === jsep.OPAREN_CODE) {\n\t\t\t\tconst backupIndex = this.index;\n\t\t\t\tthis.index++;\n\n\t\t\t\tthis.gobbleSpaces();\n\t\t\t\tif (this.code === jsep.CPAREN_CODE) {\n\t\t\t\t\tthis.index++;\n\n\t\t\t\t\tconst biop = this.gobbleBinaryOp();\n\t\t\t\t\tif (biop === '=>') {\n\t\t\t\t\t\t// () => ...\n\t\t\t\t\t\tconst body = this.gobbleBinaryExpression();\n\t\t\t\t\t\tif (!body) {\n\t\t\t\t\t\t\tthis.throwError(\"Expected expression after \" + biop);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tenv.node = {\n\t\t\t\t\t\t\ttype: ARROW_EXP,\n\t\t\t\t\t\t\tparams: null,\n\t\t\t\t\t\t\tbody,\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.index = backupIndex;\n\t\t\t}\n\t\t});\n\n\t\tjsep.hooks.add('after-expression', function fixBinaryArrow(env) {\n\t\t\tupdateBinariesToArrows(env.node);\n\t\t});\n\n\t\tfunction updateBinariesToArrows(node) {\n\t\t\tif (node) {\n\t\t\t\t// Traverse full tree, converting any sub-object nodes as needed\n\t\t\t\tObject.values(node).forEach((val) => {\n\t\t\t\t\tif (val && typeof val === 'object') {\n\t\t\t\t\t\tupdateBinariesToArrows(val);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (node.operator === '=>') {\n\t\t\t\t\tnode.type = ARROW_EXP;\n\t\t\t\t\tnode.params = node.left ? [node.left] : null;\n\t\t\t\t\tnode.body = node.right;\n\t\t\t\t\tif (node.params && node.params[0].type === jsep.SEQUENCE_EXP) {\n\t\t\t\t\t\tnode.params = node.params[0].expressions;\n\t\t\t\t\t}\n\t\t\t\t\tdelete node.left;\n\t\t\t\t\tdelete node.right;\n\t\t\t\t\tdelete node.operator;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nexport { index as default };\n","export const globals = {\n Array,\n Boolean,\n Symbol,\n Infinity,\n NaN,\n Math,\n Number,\n BigInt,\n String,\n RegExp,\n JSON,\n isFinite,\n isNaN,\n parseFloat,\n parseInt,\n decodeURI,\n encodeURI,\n encodeURIComponent,\n Object: {\n __proto__: undefined,\n assign: Object.assign.bind(null),\n fromEntries: Object.fromEntries.bind(null),\n hasOwn: Object.hasOwn.bind(null),\n keys: Object.keys.bind(null),\n is: Object.is.bind(null),\n values: Object.values.bind(null)\n }\n};\nexport const globalsAsync = {\n ...globals,\n Promise\n};\n","/** @category Utility */ import jsep from \"jsep\";\nimport jsepArrow from \"@jsep-plugin/arrow\";\nimport jsepNew from \"@jsep-plugin/new\";\nimport jsepNumbers from \"@jsep-plugin/numbers\";\nimport jsepRegex from \"@jsep-plugin/regex\";\nimport jsepTernary from \"@jsep-plugin/ternary\";\nimport jsepTemplate from \"@jsep-plugin/template\";\nimport { globals, globalsAsync } from \"./globals.js\";\njsep.plugins.register(jsepArrow);\njsep.plugins.register(jsepNew);\njsep.plugins.register(jsepNumbers);\njsep.plugins.register(jsepRegex);\njsep.plugins.register(jsepTernary);\njsep.plugins.register(jsepTemplate);\n// see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_precedence\n// for the order defined here\n// 7 is jsep's internal for \"relational operators\"\njsep.addBinaryOp('in', 7);\njsep.addBinaryOp('??', 1);\nexport { jsep };\n/**\n * `evaluate()` implements a relatively safe version of `eval()` that is limited to evaluating synchronous\n * Javascript expressions. This allows us to safely add features that depend on user-supplied code without\n * polluting the global namespace or needing to support `eval()` and the like.\n *\n * By default it supports any expression that evalutes to a string, number, boolean, Date, null, or undefined.\n * Other values will result in an error.\n *\n * @example\n * ```ts\n * // shouldDisplayOptionalData will be false\n * const shouldDisplayOptionalData = evaluate('!isEmpty(array)', {\n * array: [],\n * isEmpty(arr: unknown) {\n * return Array.isArray(arr) && arr.length === 0;\n * }\n * })\n * ```\n *\n * Since this only implements the expression lanaguage part of Javascript, there is no support for assigning\n * values, creating functions, or creating objects, so the following will throw an error:\n *\n * @example\n * ```ts\n * evaluate('var a = 1; a');\n * ```\n *\n * In addition to string expressions, `evaluate()` can use an existing `jsep.Expression`, such as that returned\n * from the `compile()` function. The goal here is to support cases where the same expression will be evaluated\n * multiple times, possibly with different variables, e.g.,\n *\n * @example\n * ```ts\n * const expr = compile('isEmpty(array)');\n *\n * // then we use it like\n * evaluate(expr, {\n * array: [],\n * isEmpty(arr: unknown) {\n * return Array.isArray(arr) && arr.length === 0;\n * }\n * ));\n *\n * evaluate(expr, {\n * array: ['value'],\n * isEmpty(arr: unknown) {\n * return Array.isArray(arr) && arr.length === 0;\n * }\n * ));\n * ```\n *\n * This saves the overhead of parsing the expression everytime and simply allows us to evaluate it.\n *\n * The `variables` parameter should be used to supply any variables or functions that should be in-scope for\n * the evaluation. A very limited number of global objects, like NaN and Infinity are always available, but\n * any non-global values will need to be passed as a variable. Note that expressions do not have any access to\n * the variables in the scope in which they were defined unless they are supplied here.\n *\n * @param expression The expression to evaluate, either as a string or pre-parsed expression\n * @param variables Optional object which contains any variables, functions, etc. that will be available to\n * the expression.\n * @returns The result of evaluating the expression\n */ export function evaluate(expression, variables = {}) {\n return evaluateAsType(expression, variables, defaultTypePredicate);\n}\n/**\n * `evaluateAsync()` implements a relatively safe version of `eval()` that can evaluate Javascript expressions\n * that use Promises. This allows us to safely add features that depend on user-supplied code without\n * polluting the global namespace or needing to support `eval()` and the like.\n *\n * By default it supports any expression that evalutes to a string, number, boolean, Date, null, or undefined.\n * Other values will result in an error.\n *\n * @example\n * ```ts\n * // shouldDisplayOptionalData will be false\n * const shouldDisplayOptionalData = await evaluateAsync('Promise.resolve(!isEmpty(array))', {\n * array: [],\n * isEmpty(arr: unknown) {\n * return Array.isArray(arr) && arr.length === 0;\n * }\n * })\n * ```\n *\n * Since this only implements the expression lanaguage part of Javascript, there is no support for assigning\n * values, creating functions, or creating objects, so the following will throw an error:\n *\n * @example\n * ```ts\n * evaluateAsync('var a = 1; a');\n * ```\n *\n * In addition to string expressions, `evaluate()` can use an existing `jsep.Expression`, such as that returned\n * from the `compile()` function. The goal here is to support cases where the same expression will be evaluated\n * multiple times, possibly with different variables, e.g.,\n *\n * @example\n * ```ts\n * const expr = compile('Promise.resolve(isEmpty(array))');\n *\n * // then we use it like\n * evaluateAsync(expr, {\n * array: [],\n * isEmpty(arr: unknown) {\n * return Array.isArray(arr) && arr.length === 0;\n * }\n * ));\n *\n * evaluateAsync(expr, {\n * array: ['value'],\n * isEmpty(arr: unknown) {\n * return Array.isArray(arr) && arr.length === 0;\n * }\n * ));\n * ```\n *\n * This saves the overhead of parsing the expression everytime and simply allows us to evaluate it.\n *\n * The `variables` parameter should be used to supply any variables or functions that should be in-scope for\n * the evaluation. A very limited number of global objects, like NaN and Infinity are always available, but\n * any non-global values will need to be passed as a variable. Note that expressions do not have any access to\n * the variables in the scope in which they were defined unless they are supplied here.\n *\n * **Note:** `evaluateAsync()` currently only supports Promise-based asynchronous flows and does not support\n * the `await` keyword.\n *\n * @param expression The expression to evaluate, either as a string or pre-parsed expression\n * @param variables Optional object which contains any variables, functions, etc. that will be available to\n * the expression.\n * @returns The result of evaluating the expression\n */ export async function evaluateAsync(expression, variables = {}) {\n return evaluateAsTypeAsync(expression, variables, defaultTypePredicate);\n}\n/**\n * `evaluateAsBoolean()` is a variant of {@link evaluate()} which only supports boolean results. Useful\n * if valid expression must return boolean values.\n *\n * @param expression The expression to evaluate, either as a string or pre-parsed expression\n * @param variables Optional object which contains any variables, functions, etc. that will be available to\n * the expression.\n * @returns The result of evaluating the expression\n */ export function evaluateAsBoolean(expression, variables = {}) {\n return evaluateAsType(expression, variables, booleanTypePredicate);\n}\n/**\n * `evaluateAsBooleanAsync()` is a variant of {@link evaluateAsync()} which only supports boolean results. Useful\n * if valid expression must return boolean values.\n *\n * @param expression The expression to evaluate, either as a string or pre-parsed expression\n * @param variables Optional object which contains any variables, functions, etc. that will be available to\n * the expression.\n * @returns The result of evaluating the expression\n */ export function evaluateAsBooleanAsync(expression, variables = {}) {\n return evaluateAsTypeAsync(expression, variables, booleanTypePredicate);\n}\n/**\n * `evaluateAsNumber()` is a variant of {@link evaluate()} which only supports number results. Useful\n * if valid expression must return numeric values.\n *\n * @param expression The expression to evaluate, either as a string or pre-parsed expression\n * @param variables Optional object which contains any variables, functions, etc. that will be available to\n * the expression.\n * @returns The result of evaluating the expression\n */ export function evaluateAsNumber(expression, variables = {}) {\n return evaluateAsType(expression, variables, numberTypePredicate);\n}\n/**\n * `evaluateAsNumberAsync()` is a variant of {@link evaluateAsync()} which only supports number results. Useful\n * if valid expression must return numeric values.\n *\n * @param expression The expression to evaluate, either as a string or pre-parsed expression\n * @param variables Optional object which contains any variables, functions, etc. that will be available to\n * the expression.\n * @returns The result of evaluating the expression\n */ export function evaluateAsNumberAsync(expression, variables = {}) {\n return evaluateAsTypeAsync(expression, variables, numberTypePredicate);\n}\n/**\n * `evaluateAsType()` is a type-safe version of {@link evaluate()} which returns a result if the result\n * passes a custom type predicate. The main use-case for this is to narrow the return types allowed based on\n * context, e.g., if the expected result should be a number or boolean, you can supply a custom type-guard\n * to ensure that only number or boolean results are returned.\n *\n * @param expression The expression to evaluate, either as a string or pre-parsed expression\n * @param variables Optional object which contains any variables, functions, etc. that will be available to\n * the expression.\n * @param typePredicate A [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n * which asserts that the result value matches one of the expected results.\n * @returns The result of evaluating the expression\n */ export function evaluateAsType(expression, variables = {}, typePredicate) {\n if (typeof expression !== 'string' && (typeof expression !== 'object' || !expression || !('type' in expression))) {\n throw `Unknown expression type ${expression}. Expressions must either be a string or pre-compiled string.`;\n }\n if (typeof variables === 'undefined' || variables === null) {\n variables = {};\n }\n const context = createSynchronousContext(variables);\n const result = visitExpression(typeof expression === 'string' ? jsep(expression) : expression, context);\n if (typePredicate(result)) {\n return result;\n } else {\n throw {\n type: 'Invalid result',\n message: typeof expression === 'string' ? `The expression ${expression} did not produce a valid result` : 'The expression did not produce a valid result'\n };\n }\n}\n/**\n * `evaluateAsTypeAsync()` is a type-safe version of {@link evaluateAsync()} which returns a result if the result\n * passes a custom type predicate. The main use-case for this is to narrow the return types allowed based on\n * context, e.g., if the expected result should be a number or boolean, you can supply a custom type-guard\n * to ensure that only number or boolean results are returned.\n *\n * @param expression The expression to evaluate, either as a string or pre-parsed expression\n * @param variables Optional object which contains any variables, functions, etc. that will be available to\n * the expression.\n * @param typePredicate A [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n * which asserts that the result value matches one of the expected results.\n * @returns The result of evaluating the expression\n */ export async function evaluateAsTypeAsync(expression, variables = {}, typePredicate) {\n if (typeof expression !== 'string' && (typeof expression !== 'object' || !expression || !('type' in expression))) {\n return Promise.reject(`Unknown expression type ${expression}. Expressions must either be a string or pre-compiled string.`);\n }\n if (typeof variables === 'undefined' || variables === null) {\n variables = {};\n }\n const context = createAsynchronousContext(variables);\n return Promise.resolve(visitExpression(typeof expression === 'string' ? jsep(expression) : expression, context)).then((result)=>{\n if (typePredicate(result)) {\n return result;\n } else {\n throw {\n type: 'Invalid result',\n message: typeof expression === 'string' ? `The expression ${expression} did not produce a valid result` : 'The expression did not produce a valid result'\n };\n }\n });\n}\n/**\n * `compile()` is a companion function for use with {@link evaluate()} and the various `evaluateAs*()` functions.\n * It processes an expression string into the resulting AST that is executed by those functions. This is useful if\n * you have an expression that will need to be evaluated mulitple times, potentially with different values, as the\n * lexing and parsing steps can be skipped by using the AST object returned from this.\n *\n * The returned AST is intended to be opaque to client applications, but, of course, it is possible to manipulate\n * the AST before passing it back to {@link evaluate()}, if desired. This might be useful if, for example, certain\n * values are known to be constant.\n *\n * @param expression The expression to be parsed\n * @returns An executable AST representation of the expression\n */ export function compile(expression) {\n return jsep(expression);\n}\n// Pre-defined type guards\nfunction defaultTypePredicate(result) {\n return typeof result === 'string' || typeof result === 'number' || typeof result === 'boolean' || typeof result === 'undefined' || result === null || result instanceof Date;\n}\nfunction booleanTypePredicate(result) {\n return typeof result === 'boolean';\n}\nfunction numberTypePredicate(result) {\n return typeof result === 'number';\n}\n// Implementation\n// This is the core of the implementation; it takes an expression, the variables and the current object\n// each expression is dispatched to an appropriate handler.\nfunction visitExpression(expression, context) {\n switch(expression.type){\n case 'UnaryExpression':\n return visitUnaryExpression(expression, context);\n case 'BinaryExpression':\n return visitBinaryExpression(expression, context);\n case 'ConditionalExpression':\n return visitConditionalExpression(expression, context);\n case 'CallExpression':\n return visitCallExpression(expression, context);\n case 'ArrowFunctionExpression':\n return visitArrowFunctionExpression(expression, context);\n case 'MemberExpression':\n return visitMemberExpression(expression, context);\n case 'ArrayExpression':\n return visitArrayExpression(expression, context);\n case 'SequenceExpression':\n return visitSequenceExpression(expression, context);\n case 'NewExpression':\n return visitNewExpression(expression, context);\n case 'Literal':\n return visitLiteral(expression, context);\n case 'Identifier':\n return visitIdentifier(expression, context);\n case 'TemplateLiteral':\n return visitTemplateLiteral(expression, context);\n case 'TemplateElement':\n return visitTemplateElement(expression, context);\n default:\n throw `Expression evaluator does not support expression of type '${expression.type}'`;\n }\n}\nfunction visitExpressionName(expression, context) {\n switch(expression.type){\n case 'Literal':\n return expression.value;\n case 'Identifier':\n return expression.name;\n case 'MemberExpression':\n return visitExpressionName(expression.property, context);\n default:\n throw `VisitExpressionName does not support expression of type '${expression.type}'`;\n }\n}\nfunction visitUnaryExpression(expression, context) {\n const value = visitExpression(expression.argument, context);\n switch(expression.operator){\n case '+':\n return +value;\n case '-':\n return -value;\n case '~':\n return ~value;\n case '!':\n return !value;\n default:\n throw `Expression evaluator does not support operator '${expression.operator}''`;\n }\n}\nfunction visitBinaryExpression(expression, context) {\n let left = visitExpression(expression.left, context);\n let right = visitExpression(expression.right, context);\n switch(expression.operator){\n case '+':\n return left + right;\n case '-':\n return left - right;\n case '*':\n return left * right;\n case '/':\n return left / right;\n case '%':\n return left % right;\n case '**':\n return left ** right;\n case '==':\n return left == right;\n case '===':\n return left === right;\n case '!=':\n return left != right;\n case '!==':\n return left !== right;\n case '>':\n return left > right;\n case '>=':\n return left >= right;\n case '<':\n return left < right;\n case '<=':\n return left <= right;\n case 'in':\n return left in right;\n case '&&':\n return left && right;\n case '||':\n return left || right;\n case '??':\n return left ?? right;\n default:\n throw `Expression evaluator does not support operator '${expression.operator}' operator`;\n }\n}\nfunction visitConditionalExpression(expression, context) {\n const test = visitExpression(expression.test, context);\n return test ? visitExpression(expression.consequent, context) : visitExpression(expression.alternate, context);\n}\nfunction visitCallExpression(expression, context) {\n let args = expression.arguments?.map(handleNullableExpression(context));\n let callee = visitExpression(expression.callee, context);\n if (!callee) {\n throw `No function named ${getCallTargetName(expression.callee)} is defined in this context`;\n } else if (!(typeof callee === 'function')) {\n throw `${getCallTargetName(expression.callee)} is not a function`;\n }\n return callee(...args);\n}\nfunction visitArrowFunctionExpression(expression, context) {\n const params = expression.params?.map((p)=>{\n switch(p.type){\n case 'Identifier':\n return p.name;\n default:\n throw `Cannot handle parameter of type ${p.type}`;\n }\n }) ?? [];\n return (function(...rest) {\n if (rest.length < params.length) {\n throw `Required argument(s) ${params.slice(rest.length, -1).join(', ')} were not provided`;\n }\n const vars = Object.fromEntries(params.reduce((acc, p, idx)=>{\n const val = rest[idx];\n if (isValidVariableType(val)) {\n acc.push([\n p,\n val\n ]);\n }\n return acc;\n }, []));\n return visitExpression(expression.body, context.addVariables(vars));\n }).bind(context.thisObj ?? null);\n}\nfunction visitMemberExpression(expression, context) {\n let obj = visitExpression(expression.object, context);\n if (obj === undefined) {\n switch(expression.object.type){\n case 'Identifier':\n {\n let objectName = visitExpressionName(expression.object, context);\n throw ReferenceError(`ReferenceError: ${objectName} is not defined`);\n }\n case 'MemberExpression':\n {\n let propertyName = visitExpressionName(expression.property, context);\n throw TypeError(`TypeError: cannot read properties of undefined (reading '${propertyName}')`);\n }\n default:\n throw `VisitMemberExpression does not support operator '${expression.object.type}' type`;\n }\n }\n let newObj = obj;\n if (typeof obj === 'string') {\n newObj = String.prototype;\n } else if (typeof obj === 'number') {\n newObj = Number.prototype;\n } else if (typeof obj === 'function') {\n // no-op\n } else if (typeof obj !== 'object') {\n throw `VisitMemberExpression does not support member access on type ${typeof obj}`;\n }\n context.thisObj = newObj;\n let result;\n switch(expression.property.type){\n case 'Identifier':\n case 'MemberExpression':\n result = visitExpression(expression.property, context);\n break;\n default:\n {\n const property = visitExpression(expression.property, context);\n if (typeof property === 'undefined') {\n throw {\n type: 'Illegal property access',\n message: 'No property was supplied to the property access'\n };\n }\n validatePropertyName(property);\n result = obj[property];\n }\n }\n if (typeof result === 'function') {\n return result.bind(obj);\n }\n return result;\n}\nfunction visitArrayExpression(expression, context) {\n return expression.elements?.map(handleNullableExpression(context));\n}\nfunction visitSequenceExpression(expression, context) {\n const result = expression.expressions.map(handleNullableExpression(context));\n return result[result.length - 1];\n}\nfunction visitNewExpression(expression, context) {\n if (expression.callee && expression.callee.type === 'Identifier') {\n let args = expression.arguments?.map(handleNullableExpression(context));\n switch(expression.callee.name){\n case 'Date':\n {\n /** @ts-ignore because we can use the spread operator here */ return new Date(...args);\n }\n case 'RegExp':\n /** @ts-ignore because we can use the spread operator here */ return new RegExp(...args);\n default:\n throw `Cannot instantiate object of type ${expression.callee.name}`;\n }\n } else {\n if (!expression.callee) {\n throw `Could not handle \"new\" without a specified class`;\n } else {\n throw 'new must be called with either Date or RegExp';\n }\n }\n}\nfunction visitTemplateLiteral(expression, context) {\n const expressions = expression.expressions?.map(handleNullableExpression(context)) ?? [];\n const quasis = expression.quasis?.map(handleNullableExpression(context)) ?? [];\n return quasis.filter((q)=>!q.tail).map((q)=>q.value).join('') + expressions.join('') + quasis.filter((q)=>q.tail).map((q)=>q.value).join('');\n}\nfunction visitTemplateElement(expression, context) {\n return {\n value: expression.cooked,\n tail: expression.tail\n };\n}\nfunction visitIdentifier(expression, context) {\n validatePropertyName(expression.name);\n // we support both `object` and `function` in the same way as technically property access on functions\n // is possible; the use-case here is to support JS's \"static\" functions like `Number.isInteger()`, which\n // is technically reading a property on a function\n const thisObj = context.thisObj;\n if (thisObj && (typeof thisObj === 'object' || typeof thisObj === 'function') && expression.name in thisObj) {\n const result = thisObj[expression.name];\n validatePropertyName(result);\n return result;\n } else if (context.variables && expression.name in context.variables) {\n const result = context.variables[expression.name];\n validatePropertyName(result);\n return result;\n } else if (expression.name in context.globals) {\n return context.globals[expression.name];\n } else {\n return undefined;\n }\n}\nfunction visitLiteral(expression, context) {\n validatePropertyName(expression.value);\n return expression.value;\n}\nfunction createSynchronousContext(variables) {\n return createContextInternal(variables, globals);\n}\nfunction createAsynchronousContext(variables) {\n return createContextInternal(variables, globalsAsync);\n}\nfunction createContextInternal(variables, globals_) {\n const context = {\n thisObj: undefined,\n variables: {\n ...variables\n },\n globals: {\n ...globals_\n },\n addVariables (vars) {\n this.variables = {\n ...this.variables,\n ...vars\n };\n return this;\n }\n };\n context.addVariables.bind(context);\n return context;\n}\n// helper useful for handling arrays of expressions, since `null` expressions should not be\n// dispatched to `visitExpression()`\nfunction handleNullableExpression(context) {\n return function handleNullableExpressionInner(expression) {\n if (expression === null) {\n return null;\n }\n return visitExpression(expression, context);\n };\n}\nfunction validatePropertyName(name) {\n if (name === '__proto__' || name === 'prototype' || name === 'constructor') {\n throw {\n type: 'Illegal property access',\n message: `Cannot access the ${name} property of objects`\n };\n }\n}\nfunction isValidVariableType(val) {\n if (typeof val === 'string' || typeof val === 'number' || typeof val === 'boolean' || typeof val === 'function' || val === null || val instanceof RegExp) {\n return true;\n }\n if (typeof val === 'object') {\n for (const key of Object.keys(val)){\n if (!isValidVariableType(val[key])) {\n return false;\n }\n }\n return true;\n }\n if (Array.isArray(val)) {\n for (const item of val){\n if (!isValidVariableType(item)) {\n return false;\n }\n }\n }\n return false;\n}\nfunction getCallTargetName(expression) {\n if (!expression) {\n return null;\n }\n if (expression.type === 'MemberExpression') {\n return expression.property?.name;\n }\n // identifier expression\n return expression.name;\n}\n","var index = {\n\tname: 'new',\n\n\tinit(jsep) {\n\t\tjsep.addUnaryOp('new');\n\n\t\tjsep.hooks.add('after-token', function gobbleNew(env) {\n\t\t\tconst node = env.node;\n\t\t\tif (node && node.operator === 'new') {\n\t\t\t\tif (!node.argument || ![jsep.CALL_EXP, jsep.MEMBER_EXP].includes(node.argument.type)) {\n\t\t\t\t\tthis.throwError('Expected new function()');\n\t\t\t\t}\n\t\t\t\tenv.node = node.argument;\n\n\t\t\t\t// Change CALL_EXP to NewExpression (could be a nested member, even within a call expr)\n\t\t\t\tlet callNode = env.node;\n\t\t\t\twhile (callNode.type === jsep.MEMBER_EXP || (\n\t\t\t\t\tcallNode.type === jsep.CALL_EXP && callNode.callee.type === jsep.MEMBER_EXP)) {\n\t\t\t\t\tcallNode = callNode.type === jsep.MEMBER_EXP\n\t\t\t\t\t\t? callNode.object\n\t\t\t\t\t\t: callNode.callee.object;\n\t\t\t\t}\n\t\t\t\tcallNode.type = 'NewExpression';\n\t\t\t}\n\t\t});\n\t}\n};\n\nexport { index as default };\n","const NUM_0_CODE = 48;\nconst UNDERSCORE = 95;\n\nvar index = {\n\tname: 'numbers',\n\n\tinit(Jsep) {\n\t\tJsep.hooks.add('gobble-token', function gobbleNumber(env) {\n\t\t\tif (this.code === NUM_0_CODE) {\n\t\t\t\tconst startIndex = this.index;\n\t\t\t\tconst numType = this.expr.charAt(this.index + 1);\n\t\t\t\tconst ranges = getNumberCodeRanges.call(this, numType);\n\t\t\t\tif (!ranges) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet number = '';\n\t\t\t\twhile (isUnderscoreOrWithinRange(this.code, ranges)) {\n\t\t\t\t\tif (this.code === UNDERSCORE) {\n\t\t\t\t\t\tthis.index ++;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// confirm valid syntax after building number string within ranges\n\t\t\t\tif (Jsep.isIdentifierPart(this.code)) {\n\t\t\t\t\tif (Jsep.isDecimalDigit(this.code) && Jsep.isDecimalDigit(numType.charCodeAt(0))) {\n\t\t\t\t\t\t// abort octal processing and reset to ignore the leading 0\n\t\t\t\t\t\tthis.index = startIndex + 1;\n\t\t\t\t\t\tgobbleBase10.call(this, env);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.throwError('unexpected char within number');\n\t\t\t\t}\n\n\t\t\t\tenv.node = {\n\t\t\t\t\ttype: Jsep.LITERAL,\n\t\t\t\t\tvalue: parseInt(number, getNumberBase(numType)),\n\t\t\t\t\traw: this.expr.substring(startIndex, this.index),\n\t\t\t\t};\n\t\t\t}\n\t\t\telse if (Jsep.isDecimalDigit(this.code) || this.code === Jsep.PERIOD_CODE) {\n\t\t\t\tgobbleBase10.call(this, env);\n\t\t\t}\n\t\t});\n\n\t\t/**\n\t\t * Gets the range of allowable number codes (decimal) and updates index\n\t\t * @param {string} numType\n\t\t * @returns {number[][]|null}\n\t\t */\n\t\tfunction getNumberCodeRanges(numType) {\n\t\t\tif (numType === 'x' || numType === 'X') {\n\t\t\t\tthis.index += 2;\n\t\t\t\treturn [\n\t\t\t\t\t[48, 57], // 0-9\n\t\t\t\t\t[65, 70], // A-F\n\t\t\t\t\t[97, 102], // a-f\n\t\t\t\t];\n\t\t\t}\n\t\t\telse if (numType === 'b' || numType === 'B') {\n\t\t\t\tthis.index += 2;\n\t\t\t\treturn [[48, 49]]; // 0-1\n\t\t\t}\n\t\t\telse if (numType === 'o' || numType === 'O' ||\n\t\t\t\t(numType >= '0' && numType <= '7')) { // 0-7 allows non-standard 0644 = 420\n\t\t\t\tthis.index += numType <= '7' ? 1 : 2;\n\t\t\t\treturn [[48, 55]]; // 0-7\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\t/**\n\t\t * Supports Hex, Octal and Binary only\n\t\t * @param {string} numType\n\t\t * @returns {16|8|2}\n\t\t */\n\t\tfunction getNumberBase(numType) {\n\t\t\tif (numType === 'x' || numType === 'X') {\n\t\t\t\treturn 16;\n\t\t\t}\n\t\t\telse if (numType === 'b' || numType === 'B') {\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\t// default (includes non-stand 044)\n\t\t\treturn 8;\n\t\t}\n\n\t\t/**\n\t\t * Verifies number code is within given ranges\n\t\t * @param {number} code\n\t\t * @param {number[][]} ranges\n\t\t */\n\t\tfunction isUnderscoreOrWithinRange(code, ranges) {\n\t\t\treturn code === UNDERSCORE ||\n\t\t\t\tranges.some(([min, max]) => code >= min && code <= max);\n\t\t}\n\n\t\t/**\n\t\t * Same as core gobbleNumericLiteral, but allows for _ char\n\t\t * @param {{ context?: typeof Jsep, node?: Expression }} env\n\t\t */\n\t\tfunction gobbleBase10(env) {\n\t\t\tconst startIndex = this.index;\n\t\t\tlet number = '';\n\n\t\t\tconst gobbleDigits = () => {\n\t\t\t\twhile (Jsep.isDecimalDigit(this.code) || this.code === UNDERSCORE) {\n\t\t\t\t\tif (this.code === UNDERSCORE) {\n\t\t\t\t\t\tthis.index++;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tgobbleDigits();\n\t\t\tif (this.code === Jsep.PERIOD_CODE) { // can start with a decimal marker\n\t\t\t\tnumber += this.expr.charAt(this.index++);\n\n\t\t\t\tgobbleDigits();\n\t\t\t}\n\n\t\t\tlet ch = this.char;\n\t\t\tif (ch === 'e' || ch === 'E') { // exponent marker\n\t\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t\t\tch = this.char;\n\n\t\t\t\tif (ch === '+' || ch === '-') { // exponent sign\n\t\t\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t\t\t}\n\n\t\t\t\tgobbleDigits(); // exponent itself\n\n\t\t\t\tif (!Jsep.isDecimalDigit(this.expr.charCodeAt(this.index - 1)) ) {\n\t\t\t\t\tthis.throwError('Expected exponent (' + number + this.char + ')');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst chCode = this.code;\n\n\t\t\t// Check to make sure this isn't a variable name that start with a number (123abc)\n\t\t\tif (Jsep.isIdentifierStart(chCode)) {\n\t\t\t\tthis.throwError('Variable names cannot start with a number (' +\n\t\t\t\t\tnumber + this.char + ')');\n\t\t\t}\n\t\t\telse if (chCode === Jsep.PERIOD_CODE) {\n\t\t\t\tif (number.length > 1) {\n\t\t\t\t\tthis.throwError(`Unexpected period ${JSON.stringify({ chCode, number }, null, 2)}`);\n\t\t\t\t}\n\t\t\t\t// leave other error-handling to jsep core. Also allows spread operator.\n\t\t\t\tthis.index = startIndex;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tenv.node = {\n\t\t\t\ttype: Jsep.LITERAL,\n\t\t\t\tvalue: parseFloat(number),\n\t\t\t\traw: this.expr.substring(startIndex, this.index),\n\t\t\t};\n\t\t}\n\t}\n};\n\nexport { index as default };\n","const FSLASH_CODE = 47; // '/'\nconst BSLASH_CODE = 92; // '\\\\'\n\nvar index = {\n\tname: 'regex',\n\n\tinit(jsep) {\n\t\t// Regex literal: /abc123/ig\n\t\tjsep.hooks.add('gobble-token', function gobbleRegexLiteral(env) {\n\t\t\tif (this.code === FSLASH_CODE) {\n\t\t\t\tconst patternIndex = ++this.index;\n\n\t\t\t\tlet inCharSet = false;\n\t\t\t\twhile (this.index < this.expr.length) {\n\t\t\t\t\tif (this.code === FSLASH_CODE && !inCharSet) {\n\t\t\t\t\t\tconst pattern = this.expr.slice(patternIndex, this.index);\n\n\t\t\t\t\t\tlet flags = '';\n\t\t\t\t\t\twhile (++this.index < this.expr.length) {\n\t\t\t\t\t\t\tconst code = this.code;\n\t\t\t\t\t\t\tif ((code >= 97 && code <= 122) // a...z\n\t\t\t\t\t\t\t\t|| (code >= 65 && code <= 90) // A...Z\n\t\t\t\t\t\t\t\t|| (code >= 48 && code <= 57)) { // 0-9\n\t\t\t\t\t\t\t\tflags += this.char;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet value;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tvalue = new RegExp(pattern, flags);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\t\tthis.throwError(e.message);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tenv.node = {\n\t\t\t\t\t\t\ttype: jsep.LITERAL,\n\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\traw: this.expr.slice(patternIndex - 1, this.index),\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// allow . [] and () after regex: /regex/.test(a)\n\t\t\t\t\t\tenv.node = this.gobbleTokenProperty(env.node);\n\t\t\t\t\t\treturn env.node;\n\t\t\t\t\t}\n\t\t\t\t\tif (this.code === jsep.OBRACK_CODE) {\n\t\t\t\t\t\tinCharSet = true;\n\t\t\t\t\t}\n\t\t\t\t\telse if (inCharSet && this.code === jsep.CBRACK_CODE) {\n\t\t\t\t\t\tinCharSet = false;\n\t\t\t\t\t}\n\t\t\t\t\tthis.index += this.code === BSLASH_CODE ? 2 : 1;\n\t\t\t\t}\n\t\t\t\tthis.throwError('Unclosed Regex');\n\t\t\t}\n\t\t});\n\t},\n};\n\nexport { index as default };\n","const CONDITIONAL_EXP = 'ConditionalExpression';\n\nvar index = {\n\tname: 'ternary',\n\n\tinit(jsep) {\n\t\t// Ternary expression: test ? consequent : alternate\n\t\tjsep.hooks.add('after-expression', function gobbleTernary(env) {\n\t\t\tif (env.node && this.code === jsep.QUMARK_CODE) {\n\t\t\t\tthis.index++;\n\t\t\t\tconst test = env.node;\n\t\t\t\tconst consequent = this.gobbleExpression();\n\n\t\t\t\tif (!consequent) {\n\t\t\t\t\tthis.throwError('Expected expression');\n\t\t\t\t}\n\n\t\t\t\tthis.gobbleSpaces();\n\n\t\t\t\tif (this.code === jsep.COLON_CODE) {\n\t\t\t\t\tthis.index++;\n\t\t\t\t\tconst alternate = this.gobbleExpression();\n\n\t\t\t\t\tif (!alternate) {\n\t\t\t\t\t\tthis.throwError('Expected expression');\n\t\t\t\t\t}\n\t\t\t\t\tenv.node = {\n\t\t\t\t\t\ttype: CONDITIONAL_EXP,\n\t\t\t\t\t\ttest,\n\t\t\t\t\t\tconsequent,\n\t\t\t\t\t\talternate,\n\t\t\t\t\t};\n\n\t\t\t\t\t// check for operators of higher priority than ternary (i.e. assignment)\n\t\t\t\t\t// jsep sets || at 1, and assignment at 0.9, and conditional should be between them\n\t\t\t\t\tif (test.operator && jsep.binary_ops[test.operator] <= 0.9) {\n\t\t\t\t\t\tlet newTest = test;\n\t\t\t\t\t\twhile (newTest.right.operator && jsep.binary_ops[newTest.right.operator] <= 0.9) {\n\t\t\t\t\t\t\tnewTest = newTest.right;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tenv.node.test = newTest.right;\n\t\t\t\t\t\tnewTest.right = env.node;\n\t\t\t\t\t\tenv.node = test;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.throwError('Expected :');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n};\n\nexport { index as default };\n","const BTICK_CODE = 96; // `\nconst CCURLY_CODE = 125; // }\nconst TAGGED_TEMPLATE_EXPRESSION = 'TaggedTemplateExpression';\nconst TEMPLATE_LITERAL = 'TemplateLiteral';\nconst TEMPLATE_ELEMENT = 'TemplateElement';\n\nvar index = {\n\tname: 'jsepTemplateLiteral',\n\n\tinit(jsep) {\n\t\tfunction gobbleTemplateLiteral(env, gobbleMember = true) {\n\t\t\tif (this.code === BTICK_CODE) {\n\t\t\t\tconst node = {\n\t\t\t\t\ttype: TEMPLATE_LITERAL,\n\t\t\t\t\tquasis: [],\n\t\t\t\t\texpressions: [],\n\t\t\t\t};\n\t\t\t\tlet cooked = '';\n\t\t\t\tlet raw = '';\n\t\t\t\tlet closed = false;\n\t\t\t\tconst length = this.expr.length;\n\t\t\t\tconst pushQuasi = () => node.quasis.push({\n\t\t\t\t\ttype: TEMPLATE_ELEMENT,\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\traw,\n\t\t\t\t\t\tcooked,\n\t\t\t\t\t},\n\t\t\t\t\ttail: closed,\n\t\t\t\t});\n\n\t\t\t\twhile (this.index < length) {\n\t\t\t\t\tlet ch = this.expr.charAt(++this.index);\n\n\t\t\t\t\tif (ch === '`') {\n\t\t\t\t\t\tthis.index += 1;\n\t\t\t\t\t\tclosed = true;\n\t\t\t\t\t\tpushQuasi();\n\n\t\t\t\t\t\tenv.node = node;\n\n\t\t\t\t\t\tif (gobbleMember) {\n\t\t\t\t\t\t // allow . [] and () after template: `foo`.length\n\t\t\t\t\t\t env.node = this.gobbleTokenProperty(env.node);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn env.node;\n\t\t\t\t\t}\n\t\t\t\t\telse if (ch === '$' && this.expr.charAt(this.index + 1) === '{') {\n\t\t\t\t\t\tthis.index += 2;\n\t\t\t\t\t\tpushQuasi();\n\t\t\t\t\t\traw = '';\n\t\t\t\t\t\tcooked = '';\n\t\t\t\t\t\tnode.expressions.push(...this.gobbleExpressions(CCURLY_CODE));\n\t\t\t\t\t\tif (this.code !== CCURLY_CODE) {\n\t\t\t\t\t\t\tthis.throwError('unclosed ${');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse if (ch === '\\\\') {\n\t\t\t\t\t\t// Check for all of the common escape codes\n\t\t\t\t\t\traw += ch;\n\t\t\t\t\t\tch = this.expr.charAt(++this.index);\n\t\t\t\t\t\traw += ch;\n\n\t\t\t\t\t\tswitch (ch) {\n\t\t\t\t\t\t\tcase 'n': cooked += '\\n'; break;\n\t\t\t\t\t\t\tcase 'r': cooked += '\\r'; break;\n\t\t\t\t\t\t\tcase 't': cooked += '\\t'; break;\n\t\t\t\t\t\t\tcase 'b': cooked += '\\b'; break;\n\t\t\t\t\t\t\tcase 'f': cooked += '\\f'; break;\n\t\t\t\t\t\t\tcase 'v': cooked += '\\x0B'; break;\n\t\t\t\t\t\t\tdefault : cooked += ch;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tcooked += ch;\n\t\t\t\t\t\traw += ch;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.throwError('Unclosed `');\n\t\t\t}\n\t\t}\n\n\t\tjsep.hooks.add('gobble-token', gobbleTemplateLiteral);\n\n\t\tjsep.hooks.add('after-token', function gobbleTaggedTemplateIdentifier(env) {\n\t\t\tif ((env.node.type === jsep.IDENTIFIER || env.node.type === jsep.MEMBER_EXP) && this.code === BTICK_CODE) {\n\t\t\t\tenv.node = {\n\t\t\t\t\ttype: TAGGED_TEMPLATE_EXPRESSION,\n\t\t\t\t\ttag: env.node,\n\t\t\t\t\tquasi: gobbleTemplateLiteral.bind(this)(env, false),\n\t\t\t\t};\n\n\t\t\t\t// allow . [] and () after tagged template: bar`foo`.length\n\t\t\t\tenv.node = this.gobbleTokenProperty(env.node);\n\n\t\t\t\treturn env.node;\n\t\t\t}\n\t\t});\n\t}\n};\n\nexport { index as default };\n","/** @module @category Extension */ /*\n * We have the following extension modes:\n *\n * - attached (set via code in form of: attach, detach, ...)\n * - configured (set via configuration in form of: added, removed, ...)\n * - assigned (computed from attached and configured)\n * - connected (computed from assigned using connectivity and online / offline)\n */ import { sessionStore, userHasAccess } from \"@openmrs/esm-api\";\nimport { getExtensionConfigFromStore, getExtensionsConfigStore, getExtensionSlotConfig, getExtensionSlotConfigFromStore, getExtensionSlotsConfigStore } from \"@openmrs/esm-config\";\nimport { evaluateAsBoolean } from \"@openmrs/esm-expression-evaluator\";\nimport { featureFlagsStore } from \"@openmrs/esm-feature-flags\";\nimport { subscribeConnectivityChanged } from \"@openmrs/esm-globals\";\nimport { isOnline as isOnlineFn } from \"@openmrs/esm-utils\";\nimport { isEqual } from \"lodash-es\";\nimport { checkStatusFor } from \"./helpers.js\";\nimport { getExtensionStore, getExtensionInternalStore, updateInternalExtensionStore } from \"./store.js\";\nconst extensionInternalStore = getExtensionInternalStore();\nconst extensionStore = getExtensionStore();\nconst slotsConfigStore = getExtensionSlotsConfigStore();\nconst extensionsConfigStore = getExtensionsConfigStore();\n// Keep the output store updated\nfunction updateExtensionOutputStore(internalState, extensionSlotConfigs, extensionsConfigStore, featureFlagStore, sessionStore) {\n const slots = {};\n const isOnline = isOnlineFn();\n const enabledFeatureFlags = Object.entries(featureFlagStore.flags).filter(([, { enabled }])=>enabled).map(([name])=>name);\n for (let [slotName, slot] of Object.entries(internalState.slots)){\n const { config } = getExtensionSlotConfigFromStore(extensionSlotConfigs, slot.name);\n const assignedExtensions = getAssignedExtensionsFromSlotData(slotName, internalState, config, extensionsConfigStore, enabledFeatureFlags, isOnline, sessionStore.session);\n slots[slotName] = {\n moduleName: slot.moduleName,\n assignedExtensions\n };\n }\n if (!isEqual(extensionStore.getState().slots, slots)) {\n extensionStore.setState({\n slots\n });\n }\n}\nextensionInternalStore.subscribe((internalStore)=>{\n updateExtensionOutputStore(internalStore, slotsConfigStore.getState(), extensionsConfigStore.getState(), featureFlagsStore.getState(), sessionStore.getState());\n});\nslotsConfigStore.subscribe((slotConfigs)=>{\n updateExtensionOutputStore(extensionInternalStore.getState(), slotConfigs, extensionsConfigStore.getState(), featureFlagsStore.getState(), sessionStore.getState());\n});\nextensionsConfigStore.subscribe((extensionConfigs)=>{\n updateExtensionOutputStore(extensionInternalStore.getState(), slotsConfigStore.getState(), extensionConfigs, featureFlagsStore.getState(), sessionStore.getState());\n});\nfeatureFlagsStore.subscribe((featureFlagStore)=>{\n updateExtensionOutputStore(extensionInternalStore.getState(), slotsConfigStore.getState(), extensionsConfigStore.getState(), featureFlagStore, sessionStore.getState());\n});\nsessionStore.subscribe((session)=>{\n updateExtensionOutputStore(extensionInternalStore.getState(), slotsConfigStore.getState(), extensionsConfigStore.getState(), featureFlagsStore.getState(), session);\n});\nfunction updateOutputStoreToCurrent() {\n updateExtensionOutputStore(extensionInternalStore.getState(), slotsConfigStore.getState(), extensionsConfigStore.getState(), featureFlagsStore.getState(), sessionStore.getState());\n}\nupdateOutputStoreToCurrent();\nsubscribeConnectivityChanged(updateOutputStoreToCurrent);\nfunction createNewExtensionSlotInfo(slotName, moduleName) {\n return {\n moduleName,\n name: slotName,\n attachedIds: [],\n config: null\n };\n}\n/**\n * Given an extension ID, which is a string uniquely identifying\n * an instance of an extension within an extension slot, this\n * returns the extension name.\n *\n * @example\n * ```js\n * getExtensionNameFromId(\"foo#bar\")\n * --> \"foo\"\n * getExtensionNameFromId(\"baz\")\n * --> \"baz\"\n * ```\n */ export function getExtensionNameFromId(extensionId) {\n const [extensionName] = extensionId.split('#');\n return extensionName;\n}\nexport function getExtensionRegistrationFrom(state, extensionId) {\n const name = getExtensionNameFromId(extensionId);\n return state.extensions[name];\n}\nexport function getExtensionRegistration(extensionId) {\n const state = extensionInternalStore.getState();\n return getExtensionRegistrationFrom(state, extensionId);\n}\n/**\n * Extensions must be registered in order to be rendered.\n * This is handled by the app shell, when extensions are provided\n * via the `setupOpenMRS` return object.\n * @internal\n */ export const registerExtension = (extensionRegistration)=>extensionInternalStore.setState((state)=>{\n state.extensions[extensionRegistration.name] = {\n ...extensionRegistration,\n instances: []\n };\n return state;\n });\n/**\n * Attach an extension to an extension slot.\n *\n * This will cause the extension to be rendered into the specified\n * extension slot, unless it is removed by configuration. Using\n * `attach` is an alternative to specifying the `slot` or `slots`\n * in the extension declaration.\n *\n * It is particularly useful when creating a slot into which\n * you want to render an existing extension. This enables you\n * to do so without modifying the extension's declaration, which\n * may be impractical or inappropriate, for example if you are\n * writing a module for a specific implementation.\n *\n * @param slotName a name uniquely identifying the slot\n * @param extensionId an extension name, with an optional #-suffix\n * to distinguish it from other instances of the same extension\n * attached to the same slot.\n */ export function attach(slotName, extensionId) {\n updateInternalExtensionStore((state)=>{\n const existingSlot = state.slots[slotName];\n if (!existingSlot) {\n return {\n ...state,\n slots: {\n ...state.slots,\n [slotName]: {\n ...createNewExtensionSlotInfo(slotName),\n attachedIds: [\n extensionId\n ]\n }\n }\n };\n } else {\n return {\n ...state,\n slots: {\n ...state.slots,\n [slotName]: {\n ...existingSlot,\n attachedIds: [\n ...existingSlot.attachedIds,\n extensionId\n ]\n }\n }\n };\n }\n });\n}\n/**\n * @deprecated Avoid using this. Extension attachments should be considered declarative.\n */ export function detach(extensionSlotName, extensionId) {\n updateInternalExtensionStore((state)=>{\n const existingSlot = state.slots[extensionSlotName];\n if (existingSlot && existingSlot.attachedIds.includes(extensionId)) {\n return {\n ...state,\n slots: {\n ...state.slots,\n [extensionSlotName]: {\n ...existingSlot,\n attachedIds: existingSlot.attachedIds.filter((id)=>id !== extensionId)\n }\n }\n };\n } else {\n return state;\n }\n });\n}\n/**\n * @deprecated Avoid using this. Extension attachments should be considered declarative.\n */ export function detachAll(extensionSlotName) {\n updateInternalExtensionStore((state)=>{\n const existingSlot = state.slots[extensionSlotName];\n if (existingSlot) {\n return {\n ...state,\n slots: {\n ...state.slots,\n [extensionSlotName]: {\n ...existingSlot,\n attachedIds: []\n }\n }\n };\n } else {\n return state;\n }\n });\n}\n/**\n * Get an order index for the extension. This will\n * come from either its configured order, its registered order\n * parameter, or the order in which it happened to be attached.\n */ function getOrder(extensionId, configuredOrder, registeredOrderIndex, attachedOrder) {\n const configuredIndex = configuredOrder.indexOf(extensionId);\n if (configuredIndex !== -1) {\n return configuredIndex;\n } else if (registeredOrderIndex !== undefined) {\n // extensions that don't have a configured order should appear after those that do\n return 1000 + registeredOrderIndex;\n } else {\n const assignedIndex = attachedOrder.indexOf(extensionId);\n if (assignedIndex !== -1) {\n // extensions that have neither a configured nor registered order should appear\n // after all others\n return 2000 + assignedIndex;\n } else {\n return -1;\n }\n }\n}\nfunction getAssignedExtensionsFromSlotData(slotName, internalState, config, extensionConfigStoreState, enabledFeatureFlags, isOnline, session) {\n const attachedIds = internalState.slots[slotName].attachedIds;\n const assignedIds = calculateAssignedIds(config, attachedIds);\n const extensions = [];\n for (let id of assignedIds){\n const { config: extensionConfig } = getExtensionConfigFromStore(extensionConfigStoreState, slotName, id);\n const name = getExtensionNameFromId(id);\n const extension = internalState.extensions[name];\n // if the extension has not been registered yet, do not include it\n if (extension) {\n const requiredPrivileges = extensionConfig?.['Display conditions']?.privileges ?? extension.privileges ?? [];\n if (requiredPrivileges && (typeof requiredPrivileges === 'string' || Array.isArray(requiredPrivileges) && requiredPrivileges.length > 0)) {\n if (!session?.user) {\n continue;\n }\n if (!userHasAccess(requiredPrivileges, session.user)) {\n continue;\n }\n }\n const displayConditionExpression = extensionConfig?.['Display conditions']?.expression ?? null;\n if (displayConditionExpression !== null) {\n try {\n if (!evaluateAsBoolean(displayConditionExpression, {\n session\n })) {\n continue;\n }\n } catch (e) {\n console.error(`Error while evaluating expression ${displayConditionExpression}`, e);\n continue;\n }\n }\n if (extension.featureFlag && !enabledFeatureFlags.includes(extension.featureFlag)) {\n continue;\n }\n if (window.offlineEnabled && !checkStatusFor(isOnline, extension.online, extension.offline)) {\n continue;\n }\n extensions.push({\n id,\n name,\n moduleName: extension.moduleName,\n config: extensionConfig,\n featureFlag: extension.featureFlag,\n meta: extension.meta,\n online: extensionConfig?.['Display conditions']?.online ?? extension.online ?? true,\n offline: extensionConfig?.['Display conditions']?.offline ?? extension.offline ?? false\n });\n }\n }\n return extensions;\n}\n/**\n * Gets the list of extensions assigned to a given slot\n *\n * @param slotName The slot to load the assigned extensions for\n * @returns An array of extensions assigned to the named slot\n */ export function getAssignedExtensions(slotName) {\n const internalState = extensionInternalStore.getState();\n const { config: slotConfig } = getExtensionSlotConfig(slotName);\n const extensionStoreState = extensionsConfigStore.getState();\n const featureFlagState = featureFlagsStore.getState();\n const sessionState = sessionStore.getState();\n const isOnline = isOnlineFn();\n const enabledFeatureFlags = Object.entries(featureFlagState.flags).filter(([, { enabled }])=>enabled).map(([name])=>name);\n return getAssignedExtensionsFromSlotData(slotName, internalState, slotConfig, extensionStoreState, enabledFeatureFlags, isOnline, sessionState.session);\n}\nfunction calculateAssignedIds(config, attachedIds) {\n const addedIds = config.add || [];\n const removedIds = config.remove || [];\n const idOrder = config.order || [];\n const { extensions } = extensionInternalStore.getState();\n return [\n ...attachedIds,\n ...addedIds\n ].filter((id)=>!removedIds.includes(id)).sort((idA, idB)=>{\n const ai = getOrder(idA, idOrder, extensions[getExtensionNameFromId(idA)]?.order, attachedIds);\n const bi = getOrder(idB, idOrder, extensions[getExtensionNameFromId(idB)]?.order, attachedIds);\n if (bi === -1) {\n return -1;\n } else if (ai === -1) {\n return 1;\n } else {\n return ai - bi;\n }\n });\n}\n/**\n * Used by by extension slots at mount time.\n *\n * @param moduleName The name of the module that contains the extension slot\n * @param slotName The extension slot name that is actually used\n * @internal\n */ export const registerExtensionSlot = (moduleName, slotName)=>extensionInternalStore.setState((state)=>{\n const existingModuleName = state.slots[slotName]?.moduleName;\n if (existingModuleName && existingModuleName != moduleName) {\n console.warn(`An extension slot with the name '${slotName}' already exists. Refusing to register the same slot name twice (in \"registerExtensionSlot\"). The existing one is from module ${existingModuleName}.`);\n return state;\n }\n if (existingModuleName && existingModuleName == moduleName) {\n // Re-rendering an existing slot\n return state;\n }\n if (state.slots[slotName]) {\n return {\n ...state,\n slots: {\n ...state.slots,\n [slotName]: {\n ...state.slots[slotName],\n moduleName\n }\n }\n };\n }\n const slot = createNewExtensionSlotInfo(slotName, moduleName);\n return {\n ...state,\n slots: {\n ...state.slots,\n [slotName]: slot\n }\n };\n });\n/**\n * @internal\n * Just for testing.\n */ export const reset = ()=>extensionStore.setState(()=>{\n return {\n slots: {},\n extensions: {}\n };\n });\n","import { isOnline } from \"@openmrs/esm-utils\";\nexport function checkStatus(online = true, offline = false) {\n return checkStatusFor(isOnline(), online, offline);\n}\nexport function checkStatusFor(status, online = true, offline = false) {\n return Boolean(status ? online : offline);\n}\n","import { createGlobalStore } from \"@openmrs/esm-state\";\n/** @internal */ export const leftNavStore = createGlobalStore('left-nav', {\n slotName: null,\n basePath: window.spaBase,\n mode: 'normal'\n});\n/**\n * Sets the current left nav context. Must be paired with {@link unsetLeftNav}.\n *\n * @deprecated Please use {@link useLeftNav} instead. This function will be made internal in a future release.\n */ export function setLeftNav({ name, basePath, mode, componentContext }) {\n leftNavStore.setState({\n slotName: name,\n basePath,\n mode: mode ?? 'normal',\n componentContext\n });\n}\n/**\n * Unsets the left nav context if the current context is for the supplied name.\n *\n * @deprecated Please use {@link useLeftNav} instead. This function will be made internal in a future release.\n */ export function unsetLeftNav(name) {\n if (leftNavStore.getState().slotName === name) {\n leftNavStore.setState(leftNavStore.getInitialState(), true);\n }\n}\n","import { createGlobalStore } from \"@openmrs/esm-state\";\nimport { getExtensionRegistration } from \"./index.js\";\nconst modalRegistryStore = createGlobalStore('modalRegistry', {\n modals: {}\n});\n/** @internal */ export function registerModal(modalRegistration) {\n modalRegistryStore.setState((state)=>{\n state.modals[modalRegistration.name] = modalRegistration;\n return state;\n });\n}\n/** @internal */ export function getModalRegistration(modalName) {\n let modalRegistration = modalRegistryStore.getState().modals[modalName];\n if (!modalRegistration) {\n const extensionRegistration = getExtensionRegistration(modalName);\n if (extensionRegistration) {\n modalRegistration = {\n name: modalName,\n load: extensionRegistration.load,\n moduleName: extensionRegistration.moduleName\n };\n console.warn(`Modal ${modalName} was registered as an extension. This is deprecated and will be removed in the future. Please register it in the \"modals\" section of routes.json instead of the \"extensions\" section.`);\n // Register it so the warning only appears once\n registerModal(modalRegistration);\n }\n }\n return modalRegistration;\n}\n","/** @module @category Extension */ import { isEqual } from \"lodash-es\";\nimport { configExtensionStore } from \"@openmrs/esm-config\";\nimport { createGlobalStore, getGlobalStore } from \"@openmrs/esm-state\";\nconst extensionInternalStore = createGlobalStore('extensionsInternal', {\n slots: {},\n extensions: {}\n});\n/**\n * This gets the extension system's internal store. It is subject\n * to change radically and without warning. It should not be used\n * outside esm-core.\n * @internal\n */ export const getExtensionInternalStore = ()=>getGlobalStore('extensionsInternal', {\n slots: {},\n extensions: {}\n });\n/** @internal */ export function updateInternalExtensionStore(updater) {\n const state = extensionInternalStore.getState();\n const newState = updater(state);\n if (newState !== state) {\n extensionInternalStore.setState(newState);\n }\n}\n/**\n * This returns a store that modules can use to get information about the\n * state of the extension system.\n */ export const getExtensionStore = ()=>getGlobalStore('extensions', {\n slots: {}\n });\n/**\n * esm-config maintains its own store of the extension information it needs\n * to generate extension configs. We keep it updated based on what's in\n * `extensionStore`.\n */ updateConfigExtensionStore(extensionInternalStore.getState());\nextensionInternalStore.subscribe(updateConfigExtensionStore);\nfunction updateConfigExtensionStore(extensionState) {\n const configExtensionRecords = [];\n for (let extensionInfo of Object.values(extensionState.extensions)){\n for (let instance of extensionInfo.instances){\n configExtensionRecords.push({\n slotModuleName: instance.slotModuleName,\n extensionModuleName: extensionInfo.moduleName,\n slotName: instance.slotName,\n extensionId: instance.id\n });\n }\n }\n if (!isEqual(configExtensionStore.getState().mountedExtensions, configExtensionRecords)) {\n configExtensionStore.setState({\n mountedExtensions: configExtensionRecords\n });\n }\n}\n","import { getExtensionRegistration } from \"./index.js\";\nimport { createGlobalStore } from \"@openmrs/esm-state\";\nimport { translateFrom } from \"@openmrs/esm-translations\";\nconst workspaceRegistrationStore = createGlobalStore('workspaceRegistrations', {\n workspaces: {}\n});\nconst workspaceGroupStore = createGlobalStore('workspaceGroups', {\n workspaceGroups: {}\n});\n/**\n * Tells the workspace system about a workspace. This is used by the app shell\n * to register workspaces defined in the `routes.json` file.\n * @internal\n */ export function registerWorkspace(workspace) {\n workspaceRegistrationStore.setState((state)=>({\n workspaces: {\n ...state.workspaces,\n [workspace.name]: {\n ...workspace,\n preferredWindowSize: workspace.preferredWindowSize ?? 'normal',\n type: workspace.type ?? 'form',\n canHide: workspace.canHide ?? false,\n canMaximize: workspace.canMaximize ?? false,\n width: workspace.width ?? 'narrow',\n groups: workspace.groups ?? []\n }\n }\n }));\n}\n/**\n * Tells the workspace system about a workspace group. This is used by the app shell\n * to register workspace groups defined in the `routes.json` file.\n * @internal\n */ export function registerWorkspaceGroup(workspaceGroup) {\n workspaceGroupStore.setState((state)=>{\n const group = state.workspaceGroups[workspaceGroup.name];\n if (group) {\n // This condition occurs when a workspace with a `groups` property is registered before\n // the corresponding workspace group. In such cases, the workspace group is registered\n // by the `attachWorkspaceToGroup` function.\n return {\n workspaceGroups: {\n ...state.workspaceGroups,\n [workspaceGroup.name]: {\n ...group,\n members: Array.from(new Set([\n ...group.members,\n ...workspaceGroup.members\n ]))\n }\n }\n };\n } else {\n return {\n workspaceGroups: {\n ...state.workspaceGroups,\n [workspaceGroup.name]: {\n name: workspaceGroup.name,\n members: workspaceGroup.members\n }\n }\n };\n }\n });\n}\nconst workspaceExtensionWarningsIssued = new Set();\n/**\n * This exists for compatibility with the old way of registering\n * workspaces (as extensions).\n *\n * @param name of the workspace\n */ export function getWorkspaceRegistration(name) {\n const registeredWorkspaces = workspaceRegistrationStore.getState().workspaces;\n if (registeredWorkspaces[name]) {\n return registeredWorkspaces[name];\n } else {\n const workspaceExtension = getExtensionRegistration(name);\n if (workspaceExtension) {\n if (!workspaceExtensionWarningsIssued.has(name)) {\n console.warn(`The workspace '${name}' is registered as an extension. This is deprecated. Please register it in the \"workspaces\" section of the routes.json file.`);\n workspaceExtensionWarningsIssued.add(name);\n }\n return {\n name: workspaceExtension.name,\n title: getTitleFromExtension(workspaceExtension),\n moduleName: workspaceExtension.moduleName,\n preferredWindowSize: workspaceExtension.meta?.screenSize ?? 'normal',\n load: workspaceExtension.load,\n type: workspaceExtension.meta?.type ?? 'form',\n canHide: workspaceExtension.meta?.canHide ?? false,\n canMaximize: workspaceExtension.meta?.canMaximize ?? false,\n width: workspaceExtension.meta?.width ?? 'narrow',\n groups: workspaceExtension.meta?.groups ?? []\n };\n } else {\n throw new Error(`No workspace named '${name}' has been registered.`);\n }\n }\n}\n/**\n * This provides the workspace group registration and is also compatibile with the\n * old way of registering workspace groups (as extensions), but isn't recommended.\n *\n * @param name of the workspace\n */ export function getWorkspaceGroupRegistration(name) {\n const registeredWorkspaces = workspaceGroupStore.getState().workspaceGroups;\n if (registeredWorkspaces[name]) {\n return registeredWorkspaces[name];\n } else {\n throw new Error(`No workspace group named '${name}' has been registered.`);\n }\n}\nfunction getTitleFromExtension(ext) {\n const title = ext?.meta?.title;\n if (typeof title === 'string') {\n return title;\n } else if (title && typeof title === 'object') {\n return translateFrom(ext.moduleName, title.key, title.default);\n }\n return ext.name;\n}\n","const connectivityChangedEventName = 'openmrs:connectivity-changed';\n/** @internal */ export function dispatchConnectivityChanged(online) {\n window.dispatchEvent(new CustomEvent(connectivityChangedEventName, {\n detail: {\n online\n }\n }));\n}\n/** @category Offline */ export function subscribeConnectivityChanged(cb) {\n if (!window.offlineEnabled) {\n return ()=>{};\n }\n const handler = (ev)=>cb(ev.detail);\n window.addEventListener(connectivityChangedEventName, handler);\n return ()=>window.removeEventListener(connectivityChangedEventName, handler);\n}\n/** @category Offline */ export function subscribeConnectivity(cb) {\n cb({\n online: window.offlineEnabled ? navigator.onLine : true\n });\n return subscribeConnectivityChanged(cb);\n}\nconst precacheStaticDependenciesEventName = 'openmrs:precache-static-dependencies';\nexport function dispatchPrecacheStaticDependencies(data = {}) {\n window.dispatchEvent(new CustomEvent(precacheStaticDependenciesEventName, {\n detail: data\n }));\n}\n/** @category Offline */ export function subscribePrecacheStaticDependencies(cb) {\n const handler = (ev)=>cb(ev.detail);\n window.addEventListener(precacheStaticDependenciesEventName, handler);\n return ()=>window.removeEventListener(precacheStaticDependenciesEventName, handler);\n}\nconst notificationShownName = 'openmrs:notification-shown';\nconst actionableNotificationShownName = 'openmrs:actionable-notification-shown';\nconst toastShownName = 'openmrs:toast-shown';\nconst snackbarShownName = 'openmrs:snack-bar-shown';\nexport function dispatchNotificationShown(data) {\n window.dispatchEvent(new CustomEvent(notificationShownName, {\n detail: data\n }));\n}\n/** @internal */ export function dispatchActionableNotificationShown(data) {\n window.dispatchEvent(new CustomEvent(actionableNotificationShownName, {\n detail: data\n }));\n}\n/** @internal */ export function dispatchSnackbarShown(data) {\n window.dispatchEvent(new CustomEvent(snackbarShownName, {\n detail: data\n }));\n}\n/** @internal */ export function dispatchToastShown(data) {\n window.dispatchEvent(new CustomEvent(toastShownName, {\n detail: data\n }));\n}\n/** @category UI */ export function subscribeNotificationShown(cb) {\n const handler = (ev)=>cb(ev.detail);\n window.addEventListener(notificationShownName, handler);\n return ()=>window.removeEventListener(notificationShownName, handler);\n}\n/** @category UI */ export function subscribeActionableNotificationShown(cb) {\n const handler = (ev)=>cb(ev.detail);\n window.addEventListener(actionableNotificationShownName, handler);\n return ()=>window.removeEventListener(actionableNotificationShownName, handler);\n}\n/** @category UI */ export function subscribeToastShown(cb) {\n const handler = (ev)=>cb(ev.detail);\n window.addEventListener(toastShownName, handler);\n return ()=>window.removeEventListener(toastShownName, handler);\n}\n/** @category UI */ export function subscribeSnackbarShown(cb) {\n const handler = (ev)=>cb(ev.detail);\n window.addEventListener(snackbarShownName, handler);\n return ()=>window.removeEventListener(snackbarShownName, handler);\n}\n","/** @module @category Breadcrumb */ import { pathToRegexp } from \"path-to-regexp\";\nimport { createGlobalStore } from \"@openmrs/esm-state\";\nconst store = createGlobalStore('breadcrumbs', []);\nfunction getMatcher(settings) {\n if (settings.matcher instanceof RegExp) {\n return settings.matcher;\n } else if (typeof settings.matcher === 'string') {\n return pathToRegexp(settings.matcher);\n } else {\n return pathToRegexp(settings.path);\n }\n}\nexport function registerBreadcrumb(breadcrumb) {\n return registerBreadcrumbs([\n breadcrumb\n ]);\n}\nexport function registerBreadcrumbs(breadcrumbs) {\n const prevBreadcrumbs = getBreadcrumbs();\n const newBreadcrumbs = breadcrumbs.map((settings)=>({\n matcher: getMatcher(settings),\n settings\n }));\n const nextBreadcrumbs = [\n ...prevBreadcrumbs,\n ...newBreadcrumbs\n ];\n store.setState(nextBreadcrumbs, true);\n}\nexport function getBreadcrumbs() {\n return store.getState();\n}\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport Dexie from \"dexie\";\n/**\n * Accesses the central IndexedDB used by the `esm-offline` module to persist offline related state.\n * Leverages the `dexie` library for IndexedDB management.\n */ export class OfflineDb extends Dexie {\n constructor(){\n super('EsmOffline'), /**\n * The table used to store the data of the offline synchronization queue (aka \"sync queue\" / \"offline actions\").\n */ _define_property(this, \"syncQueue\", void 0), _define_property(this, \"dynamicOfflineData\", void 0);\n this.version(4).stores({\n syncQueue: '++id,userId,type,[userId+type]',\n dynamicOfflineData: '++id,type,identifier,*users,&[type+identifier]'\n });\n this.syncQueue = this.table('syncQueue');\n this.dynamicOfflineData = this.table('dynamicOfflineData');\n }\n}\n/**\n * @internal Temporarily added for esm-offline-tools-app and workarounds. Please don't use elsewhere.\n * @deprecated Should/Will be removed in the future per the above reason.\n */ export function getOfflineDb() {\n return new OfflineDb();\n}\n","/** @module @category Offline */ import { createGlobalStore } from \"@openmrs/esm-state\";\nimport { setupDynamicOfflineDataHandler, syncDynamicOfflineData } from \"./dynamic-offline-data.js\";\nconst store = createGlobalStore('offline-patients', {\n offlinePatientDataSyncState: {},\n handlers: {}\n});\n/** @deprecated Will be removed once all modules have been migrated to the new dynamic offline data API. */ export function getOfflinePatientDataStore() {\n printDeprecationWarning();\n return store;\n}\n/** @deprecated Will be removed once all modules have been migrated to the new dynamic offline data API. */ export function registerOfflinePatientHandler(identifier, handler) {\n printDeprecationWarning();\n setupDynamicOfflineDataHandler({\n type: 'patient',\n displayName: handler.displayName,\n id: identifier,\n isSynced: ()=>Promise.resolve(true),\n sync: (patientUuid, signal)=>handler.onOfflinePatientAdded({\n patientUuid,\n signal: signal ?? new AbortController().signal\n })\n });\n}\n/** @deprecated Will be removed once all modules have been migrated to the new dynamic offline data API. */ export async function syncOfflinePatientData(patientUuid) {\n printDeprecationWarning();\n await syncDynamicOfflineData('patient', patientUuid);\n}\nfunction printDeprecationWarning() {\n console.warn('The offline patient API has been deprecated and will be removed in a future release. ' + 'To prevent future crashes, the functions remain available for the moment, but any invocations should be migrated ASAP.');\n}\n","try{self[\"workbox:window:6.5.4\"]&&_()}catch(n){}function n(n,t){return new Promise((function(r){var e=new MessageChannel;e.port1.onmessage=function(n){r(n.data)},n.postMessage(t,[e.port2])}))}function t(n,t){for(var r=0;r<t.length;r++){var e=t[r];e.enumerable=e.enumerable||!1,e.configurable=!0,\"value\"in e&&(e.writable=!0),Object.defineProperty(n,e.key,e)}}function r(n,t){(null==t||t>n.length)&&(t=n.length);for(var r=0,e=new Array(t);r<t;r++)e[r]=n[r];return e}function e(n,t){var e;if(\"undefined\"==typeof Symbol||null==n[Symbol.iterator]){if(Array.isArray(n)||(e=function(n,t){if(n){if(\"string\"==typeof n)return r(n,t);var e=Object.prototype.toString.call(n).slice(8,-1);return\"Object\"===e&&n.constructor&&(e=n.constructor.name),\"Map\"===e||\"Set\"===e?Array.from(n):\"Arguments\"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?r(n,t):void 0}}(n))||t&&n&&\"number\"==typeof n.length){e&&(n=e);var i=0;return function(){return i>=n.length?{done:!0}:{done:!1,value:n[i++]}}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}return(e=n[Symbol.iterator]()).next.bind(e)}try{self[\"workbox:core:6.5.4\"]&&_()}catch(n){}var i=function(){var n=this;this.promise=new Promise((function(t,r){n.resolve=t,n.reject=r}))};function o(n,t){var r=location.href;return new URL(n,r).href===new URL(t,r).href}var u=function(n,t){this.type=n,Object.assign(this,t)};function a(n,t,r){return r?t?t(n):n:(n&&n.then||(n=Promise.resolve(n)),t?n.then(t):n)}function c(){}var f={type:\"SKIP_WAITING\"};function s(n,t){if(!t)return n&&n.then?n.then(c):Promise.resolve()}var v=function(r){var e,c;function v(n,t){var e,c;return void 0===t&&(t={}),(e=r.call(this)||this).nn={},e.tn=0,e.rn=new i,e.en=new i,e.on=new i,e.un=0,e.an=new Set,e.cn=function(){var n=e.fn,t=n.installing;e.tn>0||!o(t.scriptURL,e.sn.toString())||performance.now()>e.un+6e4?(e.vn=t,n.removeEventListener(\"updatefound\",e.cn)):(e.hn=t,e.an.add(t),e.rn.resolve(t)),++e.tn,t.addEventListener(\"statechange\",e.ln)},e.ln=function(n){var t=e.fn,r=n.target,i=r.state,o=r===e.vn,a={sw:r,isExternal:o,originalEvent:n};!o&&e.mn&&(a.isUpdate=!0),e.dispatchEvent(new u(i,a)),\"installed\"===i?e.wn=self.setTimeout((function(){\"installed\"===i&&t.waiting===r&&e.dispatchEvent(new u(\"waiting\",a))}),200):\"activating\"===i&&(clearTimeout(e.wn),o||e.en.resolve(r))},e.dn=function(n){var t=e.hn,r=t!==navigator.serviceWorker.controller;e.dispatchEvent(new u(\"controlling\",{isExternal:r,originalEvent:n,sw:t,isUpdate:e.mn})),r||e.on.resolve(t)},e.gn=(c=function(n){var t=n.data,r=n.ports,i=n.source;return a(e.getSW(),(function(){e.an.has(i)&&e.dispatchEvent(new u(\"message\",{data:t,originalEvent:n,ports:r,sw:i}))}))},function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];try{return Promise.resolve(c.apply(this,n))}catch(n){return Promise.reject(n)}}),e.sn=n,e.nn=t,navigator.serviceWorker.addEventListener(\"message\",e.gn),e}c=r,(e=v).prototype=Object.create(c.prototype),e.prototype.constructor=e,e.__proto__=c;var h,l,m,w=v.prototype;return w.register=function(n){var t=(void 0===n?{}:n).immediate,r=void 0!==t&&t;try{var e=this;return function(n,t){var r=n();if(r&&r.then)return r.then(t);return t(r)}((function(){if(!r&&\"complete\"!==document.readyState)return s(new Promise((function(n){return window.addEventListener(\"load\",n)})))}),(function(){return e.mn=Boolean(navigator.serviceWorker.controller),e.yn=e.pn(),a(e.bn(),(function(n){e.fn=n,e.yn&&(e.hn=e.yn,e.en.resolve(e.yn),e.on.resolve(e.yn),e.yn.addEventListener(\"statechange\",e.ln,{once:!0}));var t=e.fn.waiting;return t&&o(t.scriptURL,e.sn.toString())&&(e.hn=t,Promise.resolve().then((function(){e.dispatchEvent(new u(\"waiting\",{sw:t,wasWaitingBeforeRegister:!0}))})).then((function(){}))),e.hn&&(e.rn.resolve(e.hn),e.an.add(e.hn)),e.fn.addEventListener(\"updatefound\",e.cn),navigator.serviceWorker.addEventListener(\"controllerchange\",e.dn),e.fn}))}))}catch(n){return Promise.reject(n)}},w.update=function(){try{return this.fn?s(this.fn.update()):void 0}catch(n){return Promise.reject(n)}},w.getSW=function(){return void 0!==this.hn?Promise.resolve(this.hn):this.rn.promise},w.messageSW=function(t){try{return a(this.getSW(),(function(r){return n(r,t)}))}catch(n){return Promise.reject(n)}},w.messageSkipWaiting=function(){this.fn&&this.fn.waiting&&n(this.fn.waiting,f)},w.pn=function(){var n=navigator.serviceWorker.controller;return n&&o(n.scriptURL,this.sn.toString())?n:void 0},w.bn=function(){try{var n=this;return function(n,t){try{var r=n()}catch(n){return t(n)}if(r&&r.then)return r.then(void 0,t);return r}((function(){return a(navigator.serviceWorker.register(n.sn,n.nn),(function(t){return n.un=performance.now(),t}))}),(function(n){throw n}))}catch(n){return Promise.reject(n)}},h=v,(l=[{key:\"active\",get:function(){return this.en.promise}},{key:\"controlling\",get:function(){return this.on.promise}}])&&t(h.prototype,l),m&&t(h,m),v}(function(){function n(){this.Pn=new Map}var t=n.prototype;return t.addEventListener=function(n,t){this.Sn(n).add(t)},t.removeEventListener=function(n,t){this.Sn(n).delete(t)},t.dispatchEvent=function(n){n.target=this;for(var t,r=e(this.Sn(n.type));!(t=r()).done;){(0,t.value)(n)}},t.Sn=function(n){return this.Pn.has(n)||this.Pn.set(n,new Set),this.Pn.get(n)},n}());export{v as Workbox,u as WorkboxEvent,n as messageSW};\n//# sourceMappingURL=workbox-window.prod.es5.mjs.map\n","/** @module @category Offline */ import Dexie from \"dexie\";\nimport { getLoggedInUser } from \"@openmrs/esm-api\";\nimport { createGlobalStore } from \"@openmrs/esm-state\";\nimport { OfflineDb } from \"./offline-db.js\";\nconst db = new OfflineDb();\nconst handlers = {};\nconst syncStore = createGlobalStore('offline-synchronization', {});\nexport function getOfflineSynchronizationStore() {\n return syncStore;\n}\n/**\n * Runs a full synchronization of **all** queued synchronization items.\n */ export async function runSynchronization() {\n if (syncStore.getState().synchronization) {\n return;\n }\n const totalCount = await db.syncQueue.count();\n const promises = {};\n const handlerQueue = Object.entries(handlers);\n const maxIter = handlerQueue.length;\n const results = {};\n const abortController = new AbortController();\n const notifySyncProgress = ()=>{\n const synchronization = syncStore.getState().synchronization;\n syncStore.setState({\n synchronization: {\n ...synchronization,\n pendingCount: synchronization.pendingCount - 1\n }\n });\n };\n try {\n syncStore.setState({\n synchronization: {\n totalCount,\n pendingCount: totalCount,\n abortController\n }\n });\n // we try until the queue is depleted, but no more than queue.length tries.\n for(let iter = 0; iter < maxIter && handlerQueue.length > 0; iter++){\n for(let i = handlerQueue.length; i--;){\n const [name, handler] = handlerQueue[i];\n const deps = handler.dependsOn.map((dep)=>promises[dep]);\n if (deps.every(Boolean)) {\n results[name] = {};\n await Promise.all(deps);\n promises[name] = processHandler(handler, results, abortController, notifySyncProgress);\n handlerQueue.splice(i, 1);\n }\n }\n }\n await Promise.allSettled(Object.values(promises));\n } finally{\n syncStore.setState({\n synchronization: undefined\n });\n }\n}\nasync function processHandler({ type, dependsOn, process }, results, abortController, notifySyncProgress) {\n const items = [];\n const contents = [];\n const userId = await getUserId();\n await db.syncQueue.where({\n type,\n userId\n }).each((item, cursor)=>{\n items.push([\n cursor.primaryKey,\n item.content,\n item.descriptor\n ]);\n contents.push(item.content);\n });\n for(let i = 0; i < items.length; i++){\n const [key, item, { id, dependencies = [] }] = items[i];\n try {\n const result = await process(item, {\n abort: abortController,\n index: i,\n items: contents,\n userId,\n dependencies: dependencies.map(({ id, type })=>dependsOn.includes(type) ? results[type][id] : undefined)\n });\n if (id !== undefined) {\n results[type][id] = result;\n }\n await db.syncQueue.delete(key);\n } catch (e) {\n await db.syncQueue.update(key, {\n lastError: {\n name: e?.name,\n message: e?.message ?? e?.toString()\n }\n });\n } finally{\n notifySyncProgress();\n }\n }\n}\nasync function getUserId() {\n const user = await getLoggedInUser();\n return user?.uuid || '*';\n}\n/**\n * Enqueues a new item in the sync queue for a specific user.\n * @param userId The user with whom the sync item should be associated with.\n * @param type The identifying type of the synchronization item.\n * @param content The actual data to be synchronized.\n * @param descriptor An optional descriptor providing additional metadata about the sync item.\n */ export async function queueSynchronizationItemFor(userId, type, content, descriptor) {\n const targetId = descriptor && descriptor.id;\n if (targetId !== undefined) {\n // in case of replacement (i.e., used same ID) we just remove the existing item\n await db.syncQueue.where({\n type,\n userId\n }).filter((item)=>item?.descriptor.id === targetId).delete().catch(Dexie.errnames.DatabaseClosed);\n }\n const id = await db.syncQueue.add({\n type,\n content,\n userId,\n descriptor: descriptor || {},\n createdOn: new Date()\n }).catch(Dexie.errnames.DatabaseClosed, ()=>-1);\n return id;\n}\n/**\n * Enqueues a new item in the sync queue and associates the item with the currently signed in user.\n * @param type The identifying type of the synchronization item.\n * @param content The actual data to be synchronized.\n * @param descriptor An optional descriptor providing additional metadata about the sync item.\n */ export async function queueSynchronizationItem(type, content, descriptor) {\n const userId = await getUserId();\n return await queueSynchronizationItemFor(userId, type, content, descriptor);\n}\n/**\n * Returns the content of all currently queued up sync items of a given user.\n * @param userId The ID of the user whose synchronization items should be returned.\n * @param type The identifying type of the synchronization items to be returned..\n */ export async function getSynchronizationItemsFor(userId, type) {\n const fullItems = await getFullSynchronizationItemsFor(userId, type);\n return fullItems.map((item)=>item.content);\n}\n/**\n * Returns all currently queued up sync items of a given user.\n * @param userId The ID of the user whose synchronization items should be returned.\n * @param type The identifying type of the synchronization items to be returned..\n */ export async function getFullSynchronizationItemsFor(userId, type) {\n const filter = type ? {\n type,\n userId\n } : {\n userId\n };\n return await db.syncQueue.where(filter).toArray().catch(Dexie.errnames.DatabaseClosed, ()=>[]);\n}\n/**\n * Returns the content of all currently queued up sync items of the currently signed in user.\n * @param type The identifying type of the synchronization items to be returned.\n */ export async function getSynchronizationItems(type) {\n const userId = await getUserId();\n return await getSynchronizationItemsFor(userId, type);\n}\n/**\n * Returns all currently queued up sync items of the currently signed in user.\n * @param type The identifying type of the synchronization items to be returned.\n */ export async function getFullSynchronizationItems(type) {\n const userId = await getUserId();\n return await getFullSynchronizationItemsFor(userId, type);\n}\n/**\n * Returns a queued sync item with the given ID or `undefined` if no such item exists.\n * @param id The ID of the requested sync item.\n */ export async function getSynchronizationItem(id) {\n return await db.syncQueue.get(id).catch(Dexie.errnames.DatabaseClosed, ()=>undefined);\n}\n/**\n * Returns whether editing synchronization items of the given type is supported by the currently\n * registered synchronization handlers.\n * @param type The identifying type of the synchronization item which should be edited.\n */ export function canBeginEditSynchronizationItemsOfType(type) {\n // Editing an item can be requested as long as callback for this flow exists on the associated handler.\n return !!handlers[type]?.options.onBeginEditSyncItem;\n}\n/**\n * Triggers an edit flow for the given synchronization item.\n * If this is not possible, throws an error.\n * @param id The ID of the synchronization item to be edited.\n */ export async function beginEditSynchronizationItem(id) {\n const item = await getSynchronizationItem(id);\n if (!item) {\n throw new Error(`No sync item with the ID ${id} exists.`);\n }\n const editCallback = handlers[item.type]?.options.onBeginEditSyncItem;\n if (!editCallback) {\n throw new Error(`A sync item with the ID ${id} exists, but the associated handler (if one exists) doesn't support editing the item. You can avoid this error by either verifying that sync items of this type can be edited via the \"canEditSynchronizationItemsOfType(type: string)\" function or alternatively ensure that the synchronizaton handler for sync items of type \"${item.type}\" supports editing items.`);\n }\n editCallback(item);\n}\n/**\n * Deletes a queued up sync item with the given ID.\n * @param id The ID of the synchronization item to be deleted.\n */ export async function deleteSynchronizationItem(id) {\n await db.syncQueue.delete(id).catch(Dexie.errnames.DatabaseClosed);\n}\n/**\n * Registers a new synchronization handler which is able to synchronize data of a specific type.\n * @param type The identifying type of the synchronization items which can be handled by this handler.\n * @param dependsOn An array of other sync item types which must be synchronized before this handler\n * can synchronize its own data. Items of these types are effectively dependencies of the data\n * synchronized by this handler.\n * @param process A function which, when invoked, performs the actual client-server synchronization of the given\n * `item` (which is the actual data to be synchronized).\n * @param options Additional options which can optionally be provided when setting up a synchronization callback\n * for a specific synchronization item type.\n */ export function setupOfflineSync(type, dependsOn, process, options = {}) {\n handlers[type] = {\n type,\n dependsOn,\n process,\n options\n };\n}\n","import { createContext } from \"react\";\n/**\n * Available to all components. Provided by `openmrsComponentDecorator`.\n */ export const ComponentContext = createContext({\n moduleName: '',\n featureName: ''\n});\n","/** @module @category API */ import { useMemo } from \"react\";\nimport useSWRImmutable from \"swr/immutable\";\nimport { openmrsFetch, restBaseUrl } from \"@openmrs/esm-api\";\n/*\n * Add other properties as needed. Maintain alphabetical order. Keep in lockstep with the interface above.\n */ const customRepProps = [\n [\n 'admissionDecisionConcept',\n 'ref'\n ],\n [\n 'admissionEncounterType',\n 'ref'\n ],\n [\n 'admissionForm',\n 'ref'\n ],\n [\n 'atFacilityVisitType',\n 'ref'\n ],\n [\n 'bedAssignmentEncounterType',\n 'ref'\n ],\n [\n 'cancelADTRequestEncounterType',\n 'ref'\n ],\n [\n 'checkInClerkEncounterRole',\n 'ref'\n ],\n [\n 'checkInEncounterType',\n 'ref'\n ],\n [\n 'clinicianEncounterRole',\n 'ref'\n ],\n [\n 'conceptSourcesForDiagnosisSearch',\n 'ref'\n ],\n [\n 'consultEncounterType',\n 'ref'\n ],\n [\n 'consultFreeTextCommentsConcept',\n 'ref'\n ],\n [\n 'denyAdmissionConcept',\n 'ref'\n ],\n [\n 'diagnosisMetadata',\n 'ref'\n ],\n [\n 'diagnosisSets',\n 'ref'\n ],\n [\n 'dischargeForm',\n 'ref'\n ],\n [\n 'dispositionDescriptor',\n 'ref'\n ],\n [\n 'dispositions',\n 'ref'\n ],\n [\n 'emrApiConceptSource',\n 'ref'\n ],\n [\n 'exitFromInpatientEncounterType',\n 'ref'\n ],\n [\n 'extraPatientIdentifierTypes',\n 'ref'\n ],\n [\n 'fullPrivilegeLevel',\n 'ref'\n ],\n [\n 'highPrivilegeLevel',\n 'ref'\n ],\n [\n 'identifierTypesToSearch',\n 'ref'\n ],\n [\n 'inpatientNoteEncounterType',\n 'ref'\n ],\n [\n 'lastViewedPatientSizeLimit',\n 'ref'\n ],\n [\n 'metadataSourceName',\n 'ref'\n ],\n [\n 'motherChildRelationshipType',\n 'ref'\n ],\n [\n 'narrowerThanConceptMapType',\n 'ref'\n ],\n [\n 'nonDiagnosisConceptSets',\n 'ref'\n ],\n [\n 'orderingProviderEncounterRole',\n 'ref'\n ],\n [\n 'patientDiedConcept',\n 'ref'\n ],\n [\n 'personImageDirectory',\n 'ref'\n ],\n [\n 'primaryIdentifierType',\n 'ref'\n ],\n [\n 'sameAsConceptMapType',\n 'ref'\n ],\n [\n 'suppressedDiagnosisConcepts',\n 'ref'\n ],\n [\n 'supportsAdmissionLocationTag',\n '(uuid,display,name,links)'\n ],\n [\n 'supportsLoginLocationTag',\n '(uuid,display,name,links)'\n ],\n [\n 'supportsTransferLocationTag',\n '(uuid,display,name,links)'\n ],\n [\n 'supportsVisitsLocationTag',\n '(uuid,display,name,links)'\n ],\n [\n 'telephoneAttributeType',\n 'ref'\n ],\n [\n 'testPatientPersonAttributeType',\n 'ref'\n ],\n [\n 'transferForm',\n 'ref'\n ],\n [\n 'transferRequestEncounterType',\n 'ref'\n ],\n [\n 'transferWithinHospitalEncounterType',\n 'ref'\n ],\n [\n 'unknownCauseOfDeathConcept',\n 'ref'\n ],\n [\n 'unknownLocation',\n 'ref'\n ],\n [\n 'unknownPatientPersonAttributeType',\n 'ref'\n ],\n [\n 'unknownProvider',\n 'ref'\n ],\n [\n 'visitAssignmentHandlerAdjustEncounterTimeOfDayIfNecessary',\n 'ref'\n ],\n [\n 'visitExpireHours',\n 'ref'\n ],\n [\n 'visitNoteEncounterType',\n 'ref'\n ]\n];\nconst customRepresentation = `custom:${customRepProps.map(([prop, rep])=>`${prop}:${rep}`).join(',')}`;\n/**\n * React hook for fetching and managing OpenMRS EMR configuration\n * @returns {Object} Object containing:\n * - emrConfiguration: EmrApiConfigurationResponse | undefined - The EMR configuration data\n * - isLoadingEmrConfiguration: boolean - Loading state indicator\n * - mutateEmrConfiguration: Function - SWR's mutate function for manual revalidation\n * - errorFetchingEmrConfiguration: Error | undefined - Error object if request fails\n */ export function useEmrConfiguration() {\n const url = `${restBaseUrl}/emrapi/configuration?v=${customRepresentation}`;\n const swrData = useSWRImmutable(url, openmrsFetch);\n const results = useMemo(()=>({\n emrConfiguration: swrData.data?.data,\n isLoadingEmrConfiguration: swrData.isLoading,\n mutateEmrConfiguration: swrData.mutate,\n errorFetchingEmrConfiguration: swrData.error\n }), [\n swrData\n ]);\n return results;\n}\n","import { getExtensionInternalStore } from \"@openmrs/esm-extensions\";\nimport { createUseStore } from \"./useStore.js\";\n/** @internal\n * @deprecated Use `useStore(getExtensionInternalStore())`\n */ export const useExtensionInternalStore = createUseStore(getExtensionInternalStore());\n","/** @module @category Extension */ import { getExtensionStore } from \"@openmrs/esm-extensions\";\nimport { createUseStore } from \"./useStore.js\";\nexport const useExtensionStore = createUseStore(getExtensionStore());\n","/** @module @category Store */ import { subscribeTo } from \"@openmrs/esm-state\";\nimport { useEffect, useMemo, useState } from \"react\";\nfunction bindActions(store, actions) {\n if (typeof actions == 'function') {\n actions = actions(store);\n }\n const bound = {};\n for (const [actionName, actionFunction] of Object.entries(actions)){\n const boundFunction = function(...args) {\n store.setState((state)=>{\n return actionFunction(state, ...args);\n });\n };\n bound[actionName] = boundFunction;\n }\n return bound;\n}\nconst defaultSelectFunction = ()=>(x)=>x;\nfunction useStore(store, select = defaultSelectFunction(), actions) {\n const [state, setState] = useState(()=>select(store.getState()));\n useEffect(()=>subscribeTo(store, select, setState), [\n store,\n select\n ]);\n let boundActions = useMemo(()=>actions ? bindActions(store, actions) : {}, [\n store,\n actions\n ]);\n return {\n ...state,\n ...boundActions\n };\n}\n/**\n *\n * @param store A zustand store\n * @param actions\n * @returns\n */ function useStoreWithActions(store, actions) {\n return useStore(store, defaultSelectFunction(), actions);\n}\n/**\n * Whenever possible, use `useStore(yourStore)` instead. This function is for creating a\n * custom hook for a specific store.\n */ function createUseStore(store) {\n function useStore(actions) {\n const [state, set] = useState(store.getState());\n useEffect(()=>store.subscribe((state)=>set(state)), []);\n let boundActions = useMemo(()=>actions ? bindActions(store, actions) : {}, [\n actions\n ]);\n return {\n ...state,\n ...boundActions\n };\n }\n return useStore;\n}\nexport { createUseStore, useStore, useStoreWithActions };\n","/** @module @category API */ import { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport useSWR from \"swr\";\nimport dayjs from \"dayjs\";\nimport isToday from \"dayjs/plugin/isToday.js\";\nimport { openmrsFetch, restBaseUrl } from \"@openmrs/esm-api\";\nimport { defaultVisitCustomRepresentation } from \"@openmrs/esm-emr-api\";\nimport { useVisitContextStore } from \"./useVisitContextStore.js\";\ndayjs.extend(isToday);\n/**\n * This React hook returns visit information if the patient UUID is not null. There are\n * potentially two relevant visits at a time: \"active\" and \"current\".\n *\n * The active visit is the most recent visit without an end date. The presence of an active\n * visit generally means that the patient is in the facility.\n *\n * The current visit is the active visit, unless a retrospective visit has been selected.\n * If there is no active visit and no selected retrospective visit, then there is no\n * current visit. If there is no active visit but there is a retrospective visit, then\n * the retrospective visit is the current visit. `currentVisitIsRetrospective` tells you\n * whether the current visit is a retrospective visit.\n *\n * The active visit and current visit require two separate API calls. `error` contains\n * the error from either one, if there is an error. `isValidating` is true if either\n * API call is in progress. `mutate` refreshes the data from both API calls.\n *\n * @param patientUuid Unique patient identifier `string`\n * @param representation The custom representation of the visit\n */ export function useVisit(patientUuid, representation = defaultVisitCustomRepresentation) {\n const { patientUuid: visitStorePatientUuid, manuallySetVisitUuid, setVisitContext } = useVisitContextStore();\n // Ignore the visit store data if it is not for this patient\n const retrospectiveVisitUuid = patientUuid && visitStorePatientUuid == patientUuid ? manuallySetVisitUuid : null;\n const activeVisitUrlSuffix = `?patient=${patientUuid}&v=${representation}&includeInactive=false`;\n const retrospectiveVisitUrlSuffix = `/${retrospectiveVisitUuid}?v=${representation}`;\n const { data: activeData, error: activeError, mutate: activeMutate, isValidating: activeIsValidating } = useSWR(patientUuid ? `${restBaseUrl}/visit${activeVisitUrlSuffix}` : null, openmrsFetch);\n const { data: retroData, error: retroError, mutate: retroMutate, isValidating: retroIsValidating } = useSWR(patientUuid && retrospectiveVisitUuid ? `${restBaseUrl}/visit${retrospectiveVisitUrlSuffix}` : null, openmrsFetch);\n const activeVisit = useMemo(()=>activeData?.data.results.find((visit)=>visit.stopDatetime === null) ?? null, [\n activeData\n ]);\n const currentVisit = useMemo(()=>retrospectiveVisitUuid && retroData ? retroData.data : null, [\n retroData,\n retrospectiveVisitUuid\n ]);\n const previousCurrentVisit = useRef(null);\n useEffect(()=>{\n // if an active visit is created and there is no visit in context, set the context to the active visit\n if (manuallySetVisitUuid == null && !activeIsValidating && activeVisit) {\n setVisitContext(activeVisit);\n }\n if (!retroIsValidating) {\n // if the current visit happened to be active but it just got ended (inactive), remove the\n // visit from context\n if (previousCurrentVisit.current && currentVisit && previousCurrentVisit.current.uuid === currentVisit.uuid && !previousCurrentVisit.current.stopDatetime && currentVisit.stopDatetime) {\n setVisitContext(null);\n }\n previousCurrentVisit.current = currentVisit;\n }\n }, [\n currentVisit,\n manuallySetVisitUuid,\n activeVisit,\n activeIsValidating,\n retroIsValidating\n ]);\n const mutateVisit = useCallback(()=>{\n activeMutate();\n retroMutate();\n }, [\n activeVisit,\n currentVisit,\n activeMutate,\n retroMutate\n ]);\n useVisitContextStore(mutateVisit);\n return {\n error: activeError || retroError,\n mutate: mutateVisit,\n isValidating: activeIsValidating || retroIsValidating,\n activeVisit,\n currentVisit,\n currentVisitIsRetrospective: Boolean(retrospectiveVisitUuid),\n isLoading: Boolean((!activeData || retrospectiveVisitUuid && !retroData) && (!activeError || !retroError))\n };\n}\n","/** @module @category Store */ import { shallowEqual } from \"@openmrs/esm-utils\";\nimport { createStore } from \"zustand/vanilla\";\nconst availableStores = {};\n// spaEnv isn't available immediately. Wait a bit before making stores available\n// on window in development mode.\nsetTimeout(()=>{\n if (window.spaEnv === 'development') {\n window['stores'] = availableStores;\n }\n}, 1000);\n/**\n * Creates a Zustand store.\n *\n * @param name A name by which the store can be looked up later.\n * Must be unique across the entire application.\n * @param initialState An object which will be the initial state of the store.\n * @returns The newly created store.\n */ export function createGlobalStore(name, initialState) {\n const available = availableStores[name];\n if (available) {\n if (available.active) {\n console.error(`Attempted to override the existing store ${name}. Make sure that stores are only created once.`);\n } else {\n available.value.setState(initialState, true);\n }\n available.active = true;\n return available.value;\n } else {\n const store = createStore()(()=>initialState);\n availableStores[name] = {\n value: store,\n active: true\n };\n return store;\n }\n}\n/**\n * Registers an existing Zustand store.\n *\n * @param name A name by which the store can be looked up later.\n * Must be unique across the entire application.\n * @param store The Zustand store to use for this.\n * @returns The newly registered store.\n */ export function registerGlobalStore(name, store) {\n const available = availableStores[name];\n if (available) {\n if (available.active) {\n console.error(`Attempted to override the existing store ${name}. Make sure that stores are only created once.`);\n } else {\n available.value = store;\n }\n available.active = true;\n return available.value;\n } else {\n availableStores[name] = {\n value: store,\n active: true\n };\n return store;\n }\n}\n/**\n * Returns the existing store named `name`,\n * or creates a new store named `name` if none exists.\n *\n * @param name The name of the store to look up.\n * @param fallbackState The initial value of the new store if no store named `name` exists.\n * @returns The found or newly created store.\n */ export function getGlobalStore(name, fallbackState) {\n const available = availableStores[name];\n if (!available) {\n const store = createStore()(()=>fallbackState ?? {});\n availableStores[name] = {\n value: store,\n active: false\n };\n return store;\n }\n return available.value;\n}\nexport function subscribeTo(...args) {\n const [store, select, handle] = args;\n const handler = typeof handle === 'undefined' ? select : handle;\n const selector = typeof handle === 'undefined' ? (state)=>state : select;\n handler(selector(store.getState()));\n return store.subscribe((state, previous)=>{\n const current = selector(state);\n if (!shallowEqual(previous, current)) {\n handler(current);\n }\n });\n}\n","/** @module @category Translation */ import { coreTranslations } from \"./translations.js\";\nimport _i18n from \"i18next\";\nconst i18n = _i18n.default || _i18n;\ni18n.on('initialized', function() {\n window.i18next.loadNamespaces([\n 'core'\n ]);\n});\n/**\n * This function is for getting a translation from a specific module. Use this only if the\n * translation is neither in the app making the call, nor in the core translations.\n * This function is useful, for example, in libraries that are used by multiple apps, since libraries can't\n * define their own translations.\n *\n * Translations within the current app should be accessed with the i18next API, using\n * `useTranslation` and `t` as usual. Core translations should be accessed with the\n * [[getCoreTranslation]] function.\n *\n * IMPORTANT: This function creates a hidden dependency on the module. Worse yet, it creates\n * a dependency specifically on that module's translation keys, which are often regarded as\n * \"implementation details\" and therefore may be volatile. Also note that this function DOES NOT\n * load the module's translations if they have not already been loaded via `useTranslation`.\n * **This function should therefore be avoided when possible.**\n *\n * @param moduleName The module to get the translation from, e.g. '@openmrs/esm-login-app'\n * @param key The i18next translation key\n * @param fallback Fallback text for if the lookup fails\n * @param options Options object passed to the i18next `t` function. See https://www.i18next.com/translation-function/essentials#overview-options\n * for more information. `ns` and `defaultValue` are already set and may not be used.\n * @returns The translated text as a string\n */ export function translateFrom(moduleName, key, fallback, options) {\n return i18n.t(key, {\n ns: moduleName,\n defaultValue: fallback,\n ...options\n });\n}\n/**\n * Use this function to obtain a translation from the core translations. This is a way to avoid having\n * to define common translations in your app, and to ensure that translations are consistent across\n * different apps. This function is also used to obtain translations in the framework and app shell.\n *\n * The complete set of core translations is available on the `CoreTranslationKey` type. Providing an\n * invalid key to this function will result in a type error.\n *\n * @param options Object passed to the i18next `t` function. See https://www.i18next.com/translation-function/essentials#overview-options\n * for more information. `ns` and `defaultValue` are already set and may not be used.\n */ export function getCoreTranslation(key, defaultText, options) {\n if (!coreTranslations[key]) {\n console.error(`O3 Core Translations does not provide key '${key}'. The key itself is being rendered as text.`);\n return key;\n }\n return translateFrom('core', key, defaultText ?? coreTranslations[key], options);\n}\n","export function isOnline(online) {\n return window.offlineEnabled ? online ?? navigator.onLine : true;\n}\n","import React, { useEffect, useLayoutEffect, createContext, useContext, useMemo, useRef, createElement } from 'react';\n\n// Shared state between server components and client components\nconst noop = ()=>{};\n// Using noop() as the undefined value as undefined can be replaced\n// by something else. Prettier ignore and extra parentheses are necessary here\n// to ensure that tsc doesn't remove the __NOINLINE__ comment.\n// prettier-ignore\nconst UNDEFINED = /*#__NOINLINE__*/ noop();\nconst OBJECT = Object;\nconst isUndefined = (v)=>v === UNDEFINED;\nconst isFunction = (v)=>typeof v == 'function';\nconst mergeObjects = (a, b)=>({\n ...a,\n ...b\n });\nconst isPromiseLike = (x)=>isFunction(x.then);\n\n// use WeakMap to store the object->key mapping\n// so the objects can be garbage collected.\n// WeakMap uses a hashtable under the hood, so the lookup\n// complexity is almost O(1).\nconst table = new WeakMap();\n// counter of the key\nlet counter = 0;\n// A stable hash implementation that supports:\n// - Fast and ensures unique hash properties\n// - Handles unserializable values\n// - Handles object key ordering\n// - Generates short results\n//\n// This is not a serialization function, and the result is not guaranteed to be\n// parsable.\nconst stableHash = (arg)=>{\n const type = typeof arg;\n const constructor = arg && arg.constructor;\n const isDate = constructor == Date;\n let result;\n let index;\n if (OBJECT(arg) === arg && !isDate && constructor != RegExp) {\n // Object/function, not null/date/regexp. Use WeakMap to store the id first.\n // If it's already hashed, directly return the result.\n result = table.get(arg);\n if (result) return result;\n // Store the hash first for circular reference detection before entering the\n // recursive `stableHash` calls.\n // For other objects like set and map, we use this id directly as the hash.\n result = ++counter + '~';\n table.set(arg, result);\n if (constructor == Array) {\n // Array.\n result = '@';\n for(index = 0; index < arg.length; index++){\n result += stableHash(arg[index]) + ',';\n }\n table.set(arg, result);\n }\n if (constructor == OBJECT) {\n // Object, sort keys.\n result = '#';\n const keys = OBJECT.keys(arg).sort();\n while(!isUndefined(index = keys.pop())){\n if (!isUndefined(arg[index])) {\n result += index + ':' + stableHash(arg[index]) + ',';\n }\n }\n table.set(arg, result);\n }\n } else {\n result = isDate ? arg.toJSON() : type == 'symbol' ? arg.toString() : type == 'string' ? JSON.stringify(arg) : '' + arg;\n }\n return result;\n};\n\n// Global state used to deduplicate requests and store listeners\nconst SWRGlobalState = new WeakMap();\n\nconst EMPTY_CACHE = {};\nconst INITIAL_CACHE = {};\nconst STR_UNDEFINED = 'undefined';\n// NOTE: Use the function to guarantee it's re-evaluated between jsdom and node runtime for tests.\nconst isWindowDefined = typeof window != STR_UNDEFINED;\nconst isDocumentDefined = typeof document != STR_UNDEFINED;\nconst hasRequestAnimationFrame = ()=>isWindowDefined && typeof window['requestAnimationFrame'] != STR_UNDEFINED;\nconst createCacheHelper = (cache, key)=>{\n const state = SWRGlobalState.get(cache);\n return [\n // Getter\n ()=>!isUndefined(key) && cache.get(key) || EMPTY_CACHE,\n // Setter\n (info)=>{\n if (!isUndefined(key)) {\n const prev = cache.get(key);\n // Before writing to the store, we keep the value in the initial cache\n // if it's not there yet.\n if (!(key in INITIAL_CACHE)) {\n INITIAL_CACHE[key] = prev;\n }\n state[5](key, mergeObjects(prev, info), prev || EMPTY_CACHE);\n }\n },\n // Subscriber\n state[6],\n // Get server cache snapshot\n ()=>{\n if (!isUndefined(key)) {\n // If the cache was updated on the client, we return the stored initial value.\n if (key in INITIAL_CACHE) return INITIAL_CACHE[key];\n }\n // If we haven't done any client-side updates, we return the current value.\n return !isUndefined(key) && cache.get(key) || EMPTY_CACHE;\n }\n ];\n} // export { UNDEFINED, OBJECT, isUndefined, isFunction, mergeObjects, isPromiseLike }\n;\n\n/**\n * Due to the bug https://bugs.chromium.org/p/chromium/issues/detail?id=678075,\n * it's not reliable to detect if the browser is currently online or offline\n * based on `navigator.onLine`.\n * As a workaround, we always assume it's online on the first load, and change\n * the status upon `online` or `offline` events.\n */ let online = true;\nconst isOnline = ()=>online;\n// For node and React Native, `add/removeEventListener` doesn't exist on window.\nconst [onWindowEvent, offWindowEvent] = isWindowDefined && window.addEventListener ? [\n window.addEventListener.bind(window),\n window.removeEventListener.bind(window)\n] : [\n noop,\n noop\n];\nconst isVisible = ()=>{\n const visibilityState = isDocumentDefined && document.visibilityState;\n return isUndefined(visibilityState) || visibilityState !== 'hidden';\n};\nconst initFocus = (callback)=>{\n // focus revalidate\n if (isDocumentDefined) {\n document.addEventListener('visibilitychange', callback);\n }\n onWindowEvent('focus', callback);\n return ()=>{\n if (isDocumentDefined) {\n document.removeEventListener('visibilitychange', callback);\n }\n offWindowEvent('focus', callback);\n };\n};\nconst initReconnect = (callback)=>{\n // revalidate on reconnected\n const onOnline = ()=>{\n online = true;\n callback();\n };\n // nothing to revalidate, just update the status\n const onOffline = ()=>{\n online = false;\n };\n onWindowEvent('online', onOnline);\n onWindowEvent('offline', onOffline);\n return ()=>{\n offWindowEvent('online', onOnline);\n offWindowEvent('offline', onOffline);\n };\n};\nconst preset = {\n isOnline,\n isVisible\n};\nconst defaultConfigOptions = {\n initFocus,\n initReconnect\n};\n\nconst IS_REACT_LEGACY = !React.useId;\nconst IS_SERVER = !isWindowDefined || 'Deno' in window;\n// Polyfill requestAnimationFrame\nconst rAF = (f)=>hasRequestAnimationFrame() ? window['requestAnimationFrame'](f) : setTimeout(f, 1);\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\nconst useIsomorphicLayoutEffect = IS_SERVER ? useEffect : useLayoutEffect;\n// This assignment is to extend the Navigator type to use effectiveType.\nconst navigatorConnection = typeof navigator !== 'undefined' && navigator.connection;\n// Adjust the config based on slow connection status (<= 70Kbps).\nconst slowConnection = !IS_SERVER && navigatorConnection && ([\n 'slow-2g',\n '2g'\n].includes(navigatorConnection.effectiveType) || navigatorConnection.saveData);\n\nconst serialize = (key)=>{\n if (isFunction(key)) {\n try {\n key = key();\n } catch (err) {\n // dependencies not ready\n key = '';\n }\n }\n // Use the original key as the argument of fetcher. This can be a string or an\n // array of values.\n const args = key;\n // If key is not falsy, or not an empty array, hash it.\n key = typeof key == 'string' ? key : (Array.isArray(key) ? key.length : key) ? stableHash(key) : '';\n return [\n key,\n args\n ];\n};\n\n// Global timestamp.\nlet __timestamp = 0;\nconst getTimestamp = ()=>++__timestamp;\n\nconst FOCUS_EVENT = 0;\nconst RECONNECT_EVENT = 1;\nconst MUTATE_EVENT = 2;\nconst ERROR_REVALIDATE_EVENT = 3;\n\nvar events = {\n __proto__: null,\n ERROR_REVALIDATE_EVENT: ERROR_REVALIDATE_EVENT,\n FOCUS_EVENT: FOCUS_EVENT,\n MUTATE_EVENT: MUTATE_EVENT,\n RECONNECT_EVENT: RECONNECT_EVENT\n};\n\nasync function internalMutate(...args) {\n const [cache, _key, _data, _opts] = args;\n // When passing as a boolean, it's explicitly used to disable/enable\n // revalidation.\n const options = mergeObjects({\n populateCache: true,\n throwOnError: true\n }, typeof _opts === 'boolean' ? {\n revalidate: _opts\n } : _opts || {});\n let populateCache = options.populateCache;\n const rollbackOnErrorOption = options.rollbackOnError;\n let optimisticData = options.optimisticData;\n const rollbackOnError = (error)=>{\n return typeof rollbackOnErrorOption === 'function' ? rollbackOnErrorOption(error) : rollbackOnErrorOption !== false;\n };\n const throwOnError = options.throwOnError;\n // If the second argument is a key filter, return the mutation results for all\n // filtered keys.\n if (isFunction(_key)) {\n const keyFilter = _key;\n const matchedKeys = [];\n const it = cache.keys();\n for (const key of it){\n if (// Skip the special useSWRInfinite and useSWRSubscription keys.\n !/^\\$(inf|sub)\\$/.test(key) && keyFilter(cache.get(key)._k)) {\n matchedKeys.push(key);\n }\n }\n return Promise.all(matchedKeys.map(mutateByKey));\n }\n return mutateByKey(_key);\n async function mutateByKey(_k) {\n // Serialize key\n const [key] = serialize(_k);\n if (!key) return;\n const [get, set] = createCacheHelper(cache, key);\n const [EVENT_REVALIDATORS, MUTATION, FETCH, PRELOAD] = SWRGlobalState.get(cache);\n const startRevalidate = ()=>{\n const revalidators = EVENT_REVALIDATORS[key];\n const revalidate = isFunction(options.revalidate) ? options.revalidate(get().data, _k) : options.revalidate !== false;\n if (revalidate) {\n // Invalidate the key by deleting the concurrent request markers so new\n // requests will not be deduped.\n delete FETCH[key];\n delete PRELOAD[key];\n if (revalidators && revalidators[0]) {\n return revalidators[0](MUTATE_EVENT).then(()=>get().data);\n }\n }\n return get().data;\n };\n // If there is no new data provided, revalidate the key with current state.\n if (args.length < 3) {\n // Revalidate and broadcast state.\n return startRevalidate();\n }\n let data = _data;\n let error;\n // Update global timestamps.\n const beforeMutationTs = getTimestamp();\n MUTATION[key] = [\n beforeMutationTs,\n 0\n ];\n const hasOptimisticData = !isUndefined(optimisticData);\n const state = get();\n // `displayedData` is the current value on screen. It could be the optimistic value\n // that is going to be overridden by a `committedData`, or get reverted back.\n // `committedData` is the validated value that comes from a fetch or mutation.\n const displayedData = state.data;\n const currentData = state._c;\n const committedData = isUndefined(currentData) ? displayedData : currentData;\n // Do optimistic data update.\n if (hasOptimisticData) {\n optimisticData = isFunction(optimisticData) ? optimisticData(committedData, displayedData) : optimisticData;\n // When we set optimistic data, backup the current committedData data in `_c`.\n set({\n data: optimisticData,\n _c: committedData\n });\n }\n if (isFunction(data)) {\n // `data` is a function, call it passing current cache value.\n try {\n data = data(committedData);\n } catch (err) {\n // If it throws an error synchronously, we shouldn't update the cache.\n error = err;\n }\n }\n // `data` is a promise/thenable, resolve the final data first.\n if (data && isPromiseLike(data)) {\n // This means that the mutation is async, we need to check timestamps to\n // avoid race conditions.\n data = await data.catch((err)=>{\n error = err;\n });\n // Check if other mutations have occurred since we've started this mutation.\n // If there's a race we don't update cache or broadcast the change,\n // just return the data.\n if (beforeMutationTs !== MUTATION[key][0]) {\n if (error) throw error;\n return data;\n } else if (error && hasOptimisticData && rollbackOnError(error)) {\n // Rollback. Always populate the cache in this case but without\n // transforming the data.\n populateCache = true;\n // Reset data to be the latest committed data, and clear the `_c` value.\n set({\n data: committedData,\n _c: UNDEFINED\n });\n }\n }\n // If we should write back the cache after request.\n if (populateCache) {\n if (!error) {\n // Transform the result into data.\n if (isFunction(populateCache)) {\n const populateCachedData = populateCache(data, committedData);\n set({\n data: populateCachedData,\n error: UNDEFINED,\n _c: UNDEFINED\n });\n } else {\n // Only update cached data and reset the error if there's no error. Data can be `undefined` here.\n set({\n data,\n error: UNDEFINED,\n _c: UNDEFINED\n });\n }\n }\n }\n // Reset the timestamp to mark the mutation has ended.\n MUTATION[key][1] = getTimestamp();\n // Update existing SWR Hooks' internal states:\n Promise.resolve(startRevalidate()).then(()=>{\n // The mutation and revalidation are ended, we can clear it since the data is\n // not an optimistic value anymore.\n set({\n _c: UNDEFINED\n });\n });\n // Throw error or return data\n if (error) {\n if (throwOnError) throw error;\n return;\n }\n return data;\n }\n}\n\nconst revalidateAllKeys = (revalidators, type)=>{\n for(const key in revalidators){\n if (revalidators[key][0]) revalidators[key][0](type);\n }\n};\nconst initCache = (provider, options)=>{\n // The global state for a specific provider will be used to deduplicate\n // requests and store listeners. As well as a mutate function that is bound to\n // the cache.\n // The provider's global state might be already initialized. Let's try to get the\n // global state associated with the provider first.\n if (!SWRGlobalState.has(provider)) {\n const opts = mergeObjects(defaultConfigOptions, options);\n // If there's no global state bound to the provider, create a new one with the\n // new mutate function.\n const EVENT_REVALIDATORS = {};\n const mutate = internalMutate.bind(UNDEFINED, provider);\n let unmount = noop;\n const subscriptions = {};\n const subscribe = (key, callback)=>{\n const subs = subscriptions[key] || [];\n subscriptions[key] = subs;\n subs.push(callback);\n return ()=>subs.splice(subs.indexOf(callback), 1);\n };\n const setter = (key, value, prev)=>{\n provider.set(key, value);\n const subs = subscriptions[key];\n if (subs) {\n for (const fn of subs){\n fn(value, prev);\n }\n }\n };\n const initProvider = ()=>{\n if (!SWRGlobalState.has(provider)) {\n // Update the state if it's new, or if the provider has been extended.\n SWRGlobalState.set(provider, [\n EVENT_REVALIDATORS,\n {},\n {},\n {},\n mutate,\n setter,\n subscribe\n ]);\n if (!IS_SERVER) {\n // When listening to the native events for auto revalidations,\n // we intentionally put a delay (setTimeout) here to make sure they are\n // fired after immediate JavaScript executions, which can be\n // React's state updates.\n // This avoids some unnecessary revalidations such as\n // https://github.com/vercel/swr/issues/1680.\n const releaseFocus = opts.initFocus(setTimeout.bind(UNDEFINED, revalidateAllKeys.bind(UNDEFINED, EVENT_REVALIDATORS, FOCUS_EVENT)));\n const releaseReconnect = opts.initReconnect(setTimeout.bind(UNDEFINED, revalidateAllKeys.bind(UNDEFINED, EVENT_REVALIDATORS, RECONNECT_EVENT)));\n unmount = ()=>{\n releaseFocus && releaseFocus();\n releaseReconnect && releaseReconnect();\n // When un-mounting, we need to remove the cache provider from the state\n // storage too because it's a side-effect. Otherwise, when re-mounting we\n // will not re-register those event listeners.\n SWRGlobalState.delete(provider);\n };\n }\n }\n };\n initProvider();\n // This is a new provider, we need to initialize it and setup DOM events\n // listeners for `focus` and `reconnect` actions.\n // We might want to inject an extra layer on top of `provider` in the future,\n // such as key serialization, auto GC, etc.\n // For now, it's just a `Map` interface without any modifications.\n return [\n provider,\n mutate,\n initProvider,\n unmount\n ];\n }\n return [\n provider,\n SWRGlobalState.get(provider)[4]\n ];\n};\n\n// error retry\nconst onErrorRetry = (_, __, config, revalidate, opts)=>{\n const maxRetryCount = config.errorRetryCount;\n const currentRetryCount = opts.retryCount;\n // Exponential backoff\n const timeout = ~~((Math.random() + 0.5) * (1 << (currentRetryCount < 8 ? currentRetryCount : 8))) * config.errorRetryInterval;\n if (!isUndefined(maxRetryCount) && currentRetryCount > maxRetryCount) {\n return;\n }\n setTimeout(revalidate, timeout, opts);\n};\nconst compare = (currentData, newData)=>stableHash(currentData) == stableHash(newData);\n// Default cache provider\nconst [cache, mutate] = initCache(new Map());\n// Default config\nconst defaultConfig = mergeObjects({\n // events\n onLoadingSlow: noop,\n onSuccess: noop,\n onError: noop,\n onErrorRetry,\n onDiscarded: noop,\n // switches\n revalidateOnFocus: true,\n revalidateOnReconnect: true,\n revalidateIfStale: true,\n shouldRetryOnError: true,\n // timeouts\n errorRetryInterval: slowConnection ? 10000 : 5000,\n focusThrottleInterval: 5 * 1000,\n dedupingInterval: 2 * 1000,\n loadingTimeout: slowConnection ? 5000 : 3000,\n // providers\n compare,\n isPaused: ()=>false,\n cache,\n mutate,\n fallback: {}\n}, // use web preset by default\npreset);\n\nconst mergeConfigs = (a, b)=>{\n // Need to create a new object to avoid mutating the original here.\n const v = mergeObjects(a, b);\n // If two configs are provided, merge their `use` and `fallback` options.\n if (b) {\n const { use: u1, fallback: f1 } = a;\n const { use: u2, fallback: f2 } = b;\n if (u1 && u2) {\n v.use = u1.concat(u2);\n }\n if (f1 && f2) {\n v.fallback = mergeObjects(f1, f2);\n }\n }\n return v;\n};\n\nconst SWRConfigContext = createContext({});\nconst SWRConfig = (props)=>{\n const { value } = props;\n const parentConfig = useContext(SWRConfigContext);\n const isFunctionalConfig = isFunction(value);\n const config = useMemo(()=>isFunctionalConfig ? value(parentConfig) : value, [\n isFunctionalConfig,\n parentConfig,\n value\n ]);\n // Extend parent context values and middleware.\n const extendedConfig = useMemo(()=>isFunctionalConfig ? config : mergeConfigs(parentConfig, config), [\n isFunctionalConfig,\n parentConfig,\n config\n ]);\n // Should not use the inherited provider.\n const provider = config && config.provider;\n // initialize the cache only on first access.\n const cacheContextRef = useRef(UNDEFINED);\n if (provider && !cacheContextRef.current) {\n cacheContextRef.current = initCache(provider(extendedConfig.cache || cache), config);\n }\n const cacheContext = cacheContextRef.current;\n // Override the cache if a new provider is given.\n if (cacheContext) {\n extendedConfig.cache = cacheContext[0];\n extendedConfig.mutate = cacheContext[1];\n }\n // Unsubscribe events.\n useIsomorphicLayoutEffect(()=>{\n if (cacheContext) {\n cacheContext[2] && cacheContext[2]();\n return cacheContext[3];\n }\n }, []);\n return createElement(SWRConfigContext.Provider, mergeObjects(props, {\n value: extendedConfig\n }));\n};\n\nconst INFINITE_PREFIX = '$inf$';\n\n// @ts-expect-error\nconst enableDevtools = isWindowDefined && window.__SWR_DEVTOOLS_USE__;\nconst use = enableDevtools ? window.__SWR_DEVTOOLS_USE__ : [];\nconst setupDevTools = ()=>{\n if (enableDevtools) {\n // @ts-expect-error\n window.__SWR_DEVTOOLS_REACT__ = React;\n }\n};\n\nconst normalize = (args)=>{\n return isFunction(args[1]) ? [\n args[0],\n args[1],\n args[2] || {}\n ] : [\n args[0],\n null,\n (args[1] === null ? args[2] : args[1]) || {}\n ];\n};\n\nconst useSWRConfig = ()=>{\n return mergeObjects(defaultConfig, useContext(SWRConfigContext));\n};\n\nconst preload = (key_, fetcher)=>{\n const [key, fnArg] = serialize(key_);\n const [, , , PRELOAD] = SWRGlobalState.get(cache);\n // Prevent preload to be called multiple times before used.\n if (PRELOAD[key]) return PRELOAD[key];\n const req = fetcher(fnArg);\n PRELOAD[key] = req;\n return req;\n};\nconst middleware = (useSWRNext)=>(key_, fetcher_, config)=>{\n // fetcher might be a sync function, so this should not be an async function\n const fetcher = fetcher_ && ((...args)=>{\n const [key] = serialize(key_);\n const [, , , PRELOAD] = SWRGlobalState.get(cache);\n if (key.startsWith(INFINITE_PREFIX)) {\n // we want the infinite fetcher to be called.\n // handling of the PRELOAD cache happens there.\n return fetcher_(...args);\n }\n const req = PRELOAD[key];\n if (isUndefined(req)) return fetcher_(...args);\n delete PRELOAD[key];\n return req;\n });\n return useSWRNext(key_, fetcher, config);\n };\n\nconst BUILT_IN_MIDDLEWARE = use.concat(middleware);\n\n// It's tricky to pass generic types as parameters, so we just directly override\n// the types here.\nconst withArgs = (hook)=>{\n return function useSWRArgs(...args) {\n // Get the default and inherited configuration.\n const fallbackConfig = useSWRConfig();\n // Normalize arguments.\n const [key, fn, _config] = normalize(args);\n // Merge configurations.\n const config = mergeConfigs(fallbackConfig, _config);\n // Apply middleware\n let next = hook;\n const { use } = config;\n const middleware = (use || []).concat(BUILT_IN_MIDDLEWARE);\n for(let i = middleware.length; i--;){\n next = middleware[i](next);\n }\n return next(key, fn || config.fetcher || null, config);\n };\n};\n\n// Add a callback function to a list of keyed callback functions and return\n// the unsubscribe function.\nconst subscribeCallback = (key, callbacks, callback)=>{\n const keyedRevalidators = callbacks[key] || (callbacks[key] = []);\n keyedRevalidators.push(callback);\n return ()=>{\n const index = keyedRevalidators.indexOf(callback);\n if (index >= 0) {\n // O(1): faster than splice\n keyedRevalidators[index] = keyedRevalidators[keyedRevalidators.length - 1];\n keyedRevalidators.pop();\n }\n };\n};\n\n// Create a custom hook with a middleware\nconst withMiddleware = (useSWR, middleware)=>{\n return (...args)=>{\n const [key, fn, config] = normalize(args);\n const uses = (config.use || []).concat(middleware);\n return useSWR(key, fn, {\n ...config,\n use: uses\n });\n };\n};\n\nsetupDevTools();\n\nexport { INFINITE_PREFIX, IS_REACT_LEGACY, IS_SERVER, OBJECT, SWRConfig, SWRGlobalState, UNDEFINED, cache, compare, createCacheHelper, defaultConfig, defaultConfigOptions, getTimestamp, hasRequestAnimationFrame, initCache, internalMutate, isDocumentDefined, isFunction, isPromiseLike, isUndefined, isWindowDefined, mergeConfigs, mergeObjects, mutate, noop, normalize, preload, preset, rAF, events as revalidateEvents, serialize, slowConnection, stableHash, subscribeCallback, useIsomorphicLayoutEffect, useSWRConfig, withArgs, withMiddleware };\n","import 'client-only';\nimport ReactExports, { useRef, useMemo, useCallback, useDebugValue } from 'react';\nimport { useSyncExternalStore } from 'use-sync-external-store/shim/index.js';\nimport { OBJECT, SWRConfig, defaultConfig, withArgs, SWRGlobalState, serialize, createCacheHelper, isUndefined, getTimestamp, UNDEFINED, isFunction, revalidateEvents, internalMutate, useIsomorphicLayoutEffect, subscribeCallback, IS_SERVER, rAF, IS_REACT_LEGACY, mergeObjects, withMiddleware } from 'swr/_internal';\n\n/// <reference types=\"react/experimental\" />\nconst use = ReactExports.use || ((promise)=>{\n if (promise.status === 'pending') {\n throw promise;\n } else if (promise.status === 'fulfilled') {\n return promise.value;\n } else if (promise.status === 'rejected') {\n throw promise.reason;\n } else {\n promise.status = 'pending';\n promise.then((v)=>{\n promise.status = 'fulfilled';\n promise.value = v;\n }, (e)=>{\n promise.status = 'rejected';\n promise.reason = e;\n });\n throw promise;\n }\n});\nconst WITH_DEDUPE = {\n dedupe: true\n};\nconst useSWRHandler = (_key, fetcher, config)=>{\n const { cache, compare, suspense, fallbackData, revalidateOnMount, revalidateIfStale, refreshInterval, refreshWhenHidden, refreshWhenOffline, keepPreviousData } = config;\n const [EVENT_REVALIDATORS, MUTATION, FETCH, PRELOAD] = SWRGlobalState.get(cache);\n // `key` is the identifier of the SWR internal state,\n // `fnArg` is the argument/arguments parsed from the key, which will be passed\n // to the fetcher.\n // All of them are derived from `_key`.\n const [key, fnArg] = serialize(_key);\n // If it's the initial render of this hook.\n const initialMountedRef = useRef(false);\n // If the hook is unmounted already. This will be used to prevent some effects\n // to be called after unmounting.\n const unmountedRef = useRef(false);\n // Refs to keep the key and config.\n const keyRef = useRef(key);\n const fetcherRef = useRef(fetcher);\n const configRef = useRef(config);\n const getConfig = ()=>configRef.current;\n const isActive = ()=>getConfig().isVisible() && getConfig().isOnline();\n const [getCache, setCache, subscribeCache, getInitialCache] = createCacheHelper(cache, key);\n const stateDependencies = useRef({}).current;\n const fallback = isUndefined(fallbackData) ? config.fallback[key] : fallbackData;\n const isEqual = (prev, current)=>{\n for(const _ in stateDependencies){\n const t = _;\n if (t === 'data') {\n if (!compare(prev[t], current[t])) {\n if (!isUndefined(prev[t])) {\n return false;\n }\n if (!compare(returnedData, current[t])) {\n return false;\n }\n }\n } else {\n if (current[t] !== prev[t]) {\n return false;\n }\n }\n }\n return true;\n };\n const getSnapshot = useMemo(()=>{\n const shouldStartRequest = (()=>{\n if (!key) return false;\n if (!fetcher) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (!isUndefined(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n if (suspense) return false;\n if (!isUndefined(revalidateIfStale)) return revalidateIfStale;\n return true;\n })();\n // Get the cache and merge it with expected states.\n const getSelectedCache = (state)=>{\n // We only select the needed fields from the state.\n const snapshot = mergeObjects(state);\n delete snapshot._k;\n if (!shouldStartRequest) {\n return snapshot;\n }\n return {\n isValidating: true,\n isLoading: true,\n ...snapshot\n };\n };\n const cachedData = getCache();\n const initialData = getInitialCache();\n const clientSnapshot = getSelectedCache(cachedData);\n const serverSnapshot = cachedData === initialData ? clientSnapshot : getSelectedCache(initialData);\n // To make sure that we are returning the same object reference to avoid\n // unnecessary re-renders, we keep the previous snapshot and use deep\n // comparison to check if we need to return a new one.\n let memorizedSnapshot = clientSnapshot;\n return [\n ()=>{\n const newSnapshot = getSelectedCache(getCache());\n const compareResult = isEqual(newSnapshot, memorizedSnapshot);\n if (compareResult) {\n // Mentally, we should always return the `memorizedSnapshot` here\n // as there's no change between the new and old snapshots.\n // However, since the `isEqual` function only compares selected fields,\n // the values of the unselected fields might be changed. That's\n // simply because we didn't track them.\n // To support the case in https://github.com/vercel/swr/pull/2576,\n // we need to update these fields in the `memorizedSnapshot` too\n // with direct mutations to ensure the snapshot is always up-to-date\n // even for the unselected fields, but only trigger re-renders when\n // the selected fields are changed.\n memorizedSnapshot.data = newSnapshot.data;\n memorizedSnapshot.isLoading = newSnapshot.isLoading;\n memorizedSnapshot.isValidating = newSnapshot.isValidating;\n memorizedSnapshot.error = newSnapshot.error;\n return memorizedSnapshot;\n } else {\n memorizedSnapshot = newSnapshot;\n return newSnapshot;\n }\n },\n ()=>serverSnapshot\n ];\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n cache,\n key\n ]);\n // Get the current state that SWR should return.\n const cached = useSyncExternalStore(useCallback((callback)=>subscribeCache(key, (current, prev)=>{\n if (!isEqual(prev, current)) callback();\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n cache,\n key\n ]), getSnapshot[0], getSnapshot[1]);\n const isInitialMount = !initialMountedRef.current;\n const hasRevalidator = EVENT_REVALIDATORS[key] && EVENT_REVALIDATORS[key].length > 0;\n const cachedData = cached.data;\n const data = isUndefined(cachedData) ? fallback : cachedData;\n const error = cached.error;\n // Use a ref to store previously returned data. Use the initial data as its initial value.\n const laggyDataRef = useRef(data);\n const returnedData = keepPreviousData ? isUndefined(cachedData) ? laggyDataRef.current : cachedData : data;\n // - Suspense mode and there's stale data for the initial render.\n // - Not suspense mode and there is no fallback data and `revalidateIfStale` is enabled.\n // - `revalidateIfStale` is enabled but `data` is not defined.\n const shouldDoInitialRevalidation = (()=>{\n // if a key already has revalidators and also has error, we should not trigger revalidation\n if (hasRevalidator && !isUndefined(error)) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (isInitialMount && !isUndefined(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n // Under suspense mode, it will always fetch on render if there is no\n // stale data so no need to revalidate immediately mount it again.\n // If data exists, only revalidate if `revalidateIfStale` is true.\n if (suspense) return isUndefined(data) ? false : revalidateIfStale;\n // If there is no stale data, we need to revalidate when mount;\n // If `revalidateIfStale` is set to true, we will always revalidate.\n return isUndefined(data) || revalidateIfStale;\n })();\n // Resolve the default validating state:\n // If it's able to validate, and it should revalidate when mount, this will be true.\n const defaultValidatingState = !!(key && fetcher && isInitialMount && shouldDoInitialRevalidation);\n const isValidating = isUndefined(cached.isValidating) ? defaultValidatingState : cached.isValidating;\n const isLoading = isUndefined(cached.isLoading) ? defaultValidatingState : cached.isLoading;\n // The revalidation function is a carefully crafted wrapper of the original\n // `fetcher`, to correctly handle the many edge cases.\n const revalidate = useCallback(async (revalidateOpts)=>{\n const currentFetcher = fetcherRef.current;\n if (!key || !currentFetcher || unmountedRef.current || getConfig().isPaused()) {\n return false;\n }\n let newData;\n let startAt;\n let loading = true;\n const opts = revalidateOpts || {};\n // If there is no ongoing concurrent request, or `dedupe` is not set, a\n // new request should be initiated.\n const shouldStartNewRequest = !FETCH[key] || !opts.dedupe;\n /*\n For React 17\n Do unmount check for calls:\n If key has changed during the revalidation, or the component has been\n unmounted, old dispatch and old event callbacks should not take any\n effect\n\n For React 18\n only check if key has changed\n https://github.com/reactwg/react-18/discussions/82\n */ const callbackSafeguard = ()=>{\n if (IS_REACT_LEGACY) {\n return !unmountedRef.current && key === keyRef.current && initialMountedRef.current;\n }\n return key === keyRef.current;\n };\n // The final state object when the request finishes.\n const finalState = {\n isValidating: false,\n isLoading: false\n };\n const finishRequestAndUpdateState = ()=>{\n setCache(finalState);\n };\n const cleanupState = ()=>{\n // Check if it's still the same request before deleting it.\n const requestInfo = FETCH[key];\n if (requestInfo && requestInfo[1] === startAt) {\n delete FETCH[key];\n }\n };\n // Start fetching. Change the `isValidating` state, update the cache.\n const initialState = {\n isValidating: true\n };\n // It is in the `isLoading` state, if and only if there is no cached data.\n // This bypasses fallback data and laggy data.\n if (isUndefined(getCache().data)) {\n initialState.isLoading = true;\n }\n try {\n if (shouldStartNewRequest) {\n setCache(initialState);\n // If no cache is being rendered currently (it shows a blank page),\n // we trigger the loading slow event.\n if (config.loadingTimeout && isUndefined(getCache().data)) {\n setTimeout(()=>{\n if (loading && callbackSafeguard()) {\n getConfig().onLoadingSlow(key, config);\n }\n }, config.loadingTimeout);\n }\n // Start the request and save the timestamp.\n // Key must be truthy if entering here.\n FETCH[key] = [\n currentFetcher(fnArg),\n getTimestamp()\n ];\n }\n [newData, startAt] = FETCH[key];\n newData = await newData;\n if (shouldStartNewRequest) {\n // If the request isn't interrupted, clean it up after the\n // deduplication interval.\n setTimeout(cleanupState, config.dedupingInterval);\n }\n // If there're other ongoing request(s), started after the current one,\n // we need to ignore the current one to avoid possible race conditions:\n // req1------------------>res1 (current one)\n // req2---------------->res2\n // the request that fired later will always be kept.\n // The timestamp maybe be `undefined` or a number\n if (!FETCH[key] || FETCH[key][1] !== startAt) {\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Clear error.\n finalState.error = UNDEFINED;\n // If there're other mutations(s), that overlapped with the current revalidation:\n // case 1:\n // req------------------>res\n // mutate------>end\n // case 2:\n // req------------>res\n // mutate------>end\n // case 3:\n // req------------------>res\n // mutate-------...---------->\n // we have to ignore the revalidation result (res) because it's no longer fresh.\n // meanwhile, a new revalidation should be triggered when the mutation ends.\n const mutationInfo = MUTATION[key];\n if (!isUndefined(mutationInfo) && // case 1\n (startAt <= mutationInfo[0] || // case 2\n startAt <= mutationInfo[1] || // case 3\n mutationInfo[1] === 0)) {\n finishRequestAndUpdateState();\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Deep compare with the latest state to avoid extra re-renders.\n // For local state, compare and assign.\n const cacheData = getCache().data;\n // Since the compare fn could be custom fn\n // cacheData might be different from newData even when compare fn returns True\n finalState.data = compare(cacheData, newData) ? cacheData : newData;\n // Trigger the successful callback if it's the original request.\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onSuccess(newData, key, config);\n }\n }\n } catch (err) {\n cleanupState();\n const currentConfig = getConfig();\n const { shouldRetryOnError } = currentConfig;\n // Not paused, we continue handling the error. Otherwise, discard it.\n if (!currentConfig.isPaused()) {\n // Get a new error, don't use deep comparison for errors.\n finalState.error = err;\n // Error event and retry logic. Only for the actual request, not\n // deduped ones.\n if (shouldStartNewRequest && callbackSafeguard()) {\n currentConfig.onError(err, key, currentConfig);\n if (shouldRetryOnError === true || isFunction(shouldRetryOnError) && shouldRetryOnError(err)) {\n if (!getConfig().revalidateOnFocus || !getConfig().revalidateOnReconnect || isActive()) {\n // If it's inactive, stop. It will auto-revalidate when\n // refocusing or reconnecting.\n // When retrying, deduplication is always enabled.\n currentConfig.onErrorRetry(err, key, currentConfig, (_opts)=>{\n const revalidators = EVENT_REVALIDATORS[key];\n if (revalidators && revalidators[0]) {\n revalidators[0](revalidateEvents.ERROR_REVALIDATE_EVENT, _opts);\n }\n }, {\n retryCount: (opts.retryCount || 0) + 1,\n dedupe: true\n });\n }\n }\n }\n }\n }\n // Mark loading as stopped.\n loading = false;\n // Update the current hook's state.\n finishRequestAndUpdateState();\n return true;\n }, // `setState` is immutable, and `eventsCallback`, `fnArg`, and\n // `keyValidating` are depending on `key`, so we can exclude them from\n // the deps array.\n //\n // FIXME:\n // `fn` and `config` might be changed during the lifecycle,\n // but they might be changed every render like this.\n // `useSWR('key', () => fetch('/api/'), { suspense: true })`\n // So we omit the values from the deps array\n // even though it might cause unexpected behaviors.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n key,\n cache\n ]);\n // Similar to the global mutate but bound to the current cache and key.\n // `cache` isn't allowed to change during the lifecycle.\n const boundMutate = useCallback(// Use callback to make sure `keyRef.current` returns latest result every time\n (...args)=>{\n return internalMutate(cache, keyRef.current, ...args);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // The logic for updating refs.\n useIsomorphicLayoutEffect(()=>{\n fetcherRef.current = fetcher;\n configRef.current = config;\n // Handle laggy data updates. If there's cached data of the current key,\n // it'll be the correct reference.\n if (!isUndefined(cachedData)) {\n laggyDataRef.current = cachedData;\n }\n });\n // After mounted or key changed.\n useIsomorphicLayoutEffect(()=>{\n if (!key) return;\n const softRevalidate = revalidate.bind(UNDEFINED, WITH_DEDUPE);\n // Expose revalidators to global event listeners. So we can trigger\n // revalidation from the outside.\n let nextFocusRevalidatedAt = 0;\n const onRevalidate = (type, opts = {})=>{\n if (type == revalidateEvents.FOCUS_EVENT) {\n const now = Date.now();\n if (getConfig().revalidateOnFocus && now > nextFocusRevalidatedAt && isActive()) {\n nextFocusRevalidatedAt = now + getConfig().focusThrottleInterval;\n softRevalidate();\n }\n } else if (type == revalidateEvents.RECONNECT_EVENT) {\n if (getConfig().revalidateOnReconnect && isActive()) {\n softRevalidate();\n }\n } else if (type == revalidateEvents.MUTATE_EVENT) {\n return revalidate();\n } else if (type == revalidateEvents.ERROR_REVALIDATE_EVENT) {\n return revalidate(opts);\n }\n return;\n };\n const unsubEvents = subscribeCallback(key, EVENT_REVALIDATORS, onRevalidate);\n // Mark the component as mounted and update corresponding refs.\n unmountedRef.current = false;\n keyRef.current = key;\n initialMountedRef.current = true;\n // Keep the original key in the cache.\n setCache({\n _k: fnArg\n });\n // Trigger a revalidation\n if (shouldDoInitialRevalidation) {\n if (isUndefined(data) || IS_SERVER) {\n // Revalidate immediately.\n softRevalidate();\n } else {\n // Delay the revalidate if we have data to return so we won't block\n // rendering.\n rAF(softRevalidate);\n }\n }\n return ()=>{\n // Mark it as unmounted.\n unmountedRef.current = true;\n unsubEvents();\n };\n }, [\n key\n ]);\n // Polling\n useIsomorphicLayoutEffect(()=>{\n let timer;\n function next() {\n // Use the passed interval\n // ...or invoke the function with the updated data to get the interval\n const interval = isFunction(refreshInterval) ? refreshInterval(getCache().data) : refreshInterval;\n // We only start the next interval if `refreshInterval` is not 0, and:\n // - `force` is true, which is the start of polling\n // - or `timer` is not 0, which means the effect wasn't canceled\n if (interval && timer !== -1) {\n timer = setTimeout(execute, interval);\n }\n }\n function execute() {\n // Check if it's OK to execute:\n // Only revalidate when the page is visible, online, and not errored.\n if (!getCache().error && (refreshWhenHidden || getConfig().isVisible()) && (refreshWhenOffline || getConfig().isOnline())) {\n revalidate(WITH_DEDUPE).then(next);\n } else {\n // Schedule the next interval to check again.\n next();\n }\n }\n next();\n return ()=>{\n if (timer) {\n clearTimeout(timer);\n timer = -1;\n }\n };\n }, [\n refreshInterval,\n refreshWhenHidden,\n refreshWhenOffline,\n key\n ]);\n // Display debug info in React DevTools.\n useDebugValue(returnedData);\n // In Suspense mode, we can't return the empty `data` state.\n // If there is an `error`, the `error` needs to be thrown to the error boundary.\n // If there is no `error`, the `revalidation` promise needs to be thrown to\n // the suspense boundary.\n if (suspense && isUndefined(data) && key) {\n // SWR should throw when trying to use Suspense on the server with React 18,\n // without providing any initial data. See:\n // https://github.com/vercel/swr/issues/1832\n if (!IS_REACT_LEGACY && IS_SERVER) {\n throw new Error('Fallback data is required when using suspense in SSR.');\n }\n // Always update fetcher and config refs even with the Suspense mode.\n fetcherRef.current = fetcher;\n configRef.current = config;\n unmountedRef.current = false;\n const req = PRELOAD[key];\n if (!isUndefined(req)) {\n const promise = boundMutate(req);\n use(promise);\n }\n if (isUndefined(error)) {\n const promise = revalidate(WITH_DEDUPE);\n if (!isUndefined(returnedData)) {\n promise.status = 'fulfilled';\n promise.value = true;\n }\n use(promise);\n } else {\n throw error;\n }\n }\n return {\n mutate: boundMutate,\n get data () {\n stateDependencies.data = true;\n return returnedData;\n },\n get error () {\n stateDependencies.error = true;\n return error;\n },\n get isValidating () {\n stateDependencies.isValidating = true;\n return isValidating;\n },\n get isLoading () {\n stateDependencies.isLoading = true;\n return isLoading;\n }\n };\n};\nOBJECT.defineProperty(SWRConfig, 'defaultValue', {\n value: defaultConfig\n});\n/**\n * A hook to fetch data.\n *\n * @link https://swr.vercel.app\n * @example\n * ```jsx\n * import useSWR from 'swr'\n * function Profile() {\n * const { data, error, isLoading } = useSWR('/api/user', fetcher)\n * if (error) return <div>failed to load</div>\n * if (isLoading) return <div>loading...</div>\n * return <div>hello {data.name}!</div>\n * }\n * ```\n */ const useSWR = withArgs(useSWRHandler);\n\nconst immutable = (useSWRNext)=>(key, fetcher, config)=>{\n // Always override all revalidate options.\n config.revalidateOnFocus = false;\n config.revalidateIfStale = false;\n config.revalidateOnReconnect = false;\n return useSWRNext(key, fetcher, config);\n };\nconst useSWRImmutable = withMiddleware(useSWR, immutable);\n\nexport { useSWRImmutable as default, immutable };\n","import ReactExports, { useRef, useMemo, useCallback, useDebugValue } from 'react';\nimport 'client-only';\nimport { useSyncExternalStore } from 'use-sync-external-store/shim/index.js';\nimport { OBJECT, SWRConfig, defaultConfig, withArgs, SWRGlobalState, serialize, createCacheHelper, isUndefined, getTimestamp, UNDEFINED, isFunction, revalidateEvents, internalMutate, useIsomorphicLayoutEffect, subscribeCallback, IS_SERVER, rAF, IS_REACT_LEGACY, mergeObjects, INFINITE_PREFIX, withMiddleware, cache } from 'swr/_internal';\n\n/// <reference types=\"react/experimental\" />\nconst use = ReactExports.use || ((promise)=>{\n if (promise.status === 'pending') {\n throw promise;\n } else if (promise.status === 'fulfilled') {\n return promise.value;\n } else if (promise.status === 'rejected') {\n throw promise.reason;\n } else {\n promise.status = 'pending';\n promise.then((v)=>{\n promise.status = 'fulfilled';\n promise.value = v;\n }, (e)=>{\n promise.status = 'rejected';\n promise.reason = e;\n });\n throw promise;\n }\n});\nconst WITH_DEDUPE = {\n dedupe: true\n};\nconst useSWRHandler = (_key, fetcher, config)=>{\n const { cache, compare, suspense, fallbackData, revalidateOnMount, revalidateIfStale, refreshInterval, refreshWhenHidden, refreshWhenOffline, keepPreviousData } = config;\n const [EVENT_REVALIDATORS, MUTATION, FETCH, PRELOAD] = SWRGlobalState.get(cache);\n // `key` is the identifier of the SWR internal state,\n // `fnArg` is the argument/arguments parsed from the key, which will be passed\n // to the fetcher.\n // All of them are derived from `_key`.\n const [key, fnArg] = serialize(_key);\n // If it's the initial render of this hook.\n const initialMountedRef = useRef(false);\n // If the hook is unmounted already. This will be used to prevent some effects\n // to be called after unmounting.\n const unmountedRef = useRef(false);\n // Refs to keep the key and config.\n const keyRef = useRef(key);\n const fetcherRef = useRef(fetcher);\n const configRef = useRef(config);\n const getConfig = ()=>configRef.current;\n const isActive = ()=>getConfig().isVisible() && getConfig().isOnline();\n const [getCache, setCache, subscribeCache, getInitialCache] = createCacheHelper(cache, key);\n const stateDependencies = useRef({}).current;\n const fallback = isUndefined(fallbackData) ? config.fallback[key] : fallbackData;\n const isEqual = (prev, current)=>{\n for(const _ in stateDependencies){\n const t = _;\n if (t === 'data') {\n if (!compare(prev[t], current[t])) {\n if (!isUndefined(prev[t])) {\n return false;\n }\n if (!compare(returnedData, current[t])) {\n return false;\n }\n }\n } else {\n if (current[t] !== prev[t]) {\n return false;\n }\n }\n }\n return true;\n };\n const getSnapshot = useMemo(()=>{\n const shouldStartRequest = (()=>{\n if (!key) return false;\n if (!fetcher) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (!isUndefined(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n if (suspense) return false;\n if (!isUndefined(revalidateIfStale)) return revalidateIfStale;\n return true;\n })();\n // Get the cache and merge it with expected states.\n const getSelectedCache = (state)=>{\n // We only select the needed fields from the state.\n const snapshot = mergeObjects(state);\n delete snapshot._k;\n if (!shouldStartRequest) {\n return snapshot;\n }\n return {\n isValidating: true,\n isLoading: true,\n ...snapshot\n };\n };\n const cachedData = getCache();\n const initialData = getInitialCache();\n const clientSnapshot = getSelectedCache(cachedData);\n const serverSnapshot = cachedData === initialData ? clientSnapshot : getSelectedCache(initialData);\n // To make sure that we are returning the same object reference to avoid\n // unnecessary re-renders, we keep the previous snapshot and use deep\n // comparison to check if we need to return a new one.\n let memorizedSnapshot = clientSnapshot;\n return [\n ()=>{\n const newSnapshot = getSelectedCache(getCache());\n const compareResult = isEqual(newSnapshot, memorizedSnapshot);\n if (compareResult) {\n // Mentally, we should always return the `memorizedSnapshot` here\n // as there's no change between the new and old snapshots.\n // However, since the `isEqual` function only compares selected fields,\n // the values of the unselected fields might be changed. That's\n // simply because we didn't track them.\n // To support the case in https://github.com/vercel/swr/pull/2576,\n // we need to update these fields in the `memorizedSnapshot` too\n // with direct mutations to ensure the snapshot is always up-to-date\n // even for the unselected fields, but only trigger re-renders when\n // the selected fields are changed.\n memorizedSnapshot.data = newSnapshot.data;\n memorizedSnapshot.isLoading = newSnapshot.isLoading;\n memorizedSnapshot.isValidating = newSnapshot.isValidating;\n memorizedSnapshot.error = newSnapshot.error;\n return memorizedSnapshot;\n } else {\n memorizedSnapshot = newSnapshot;\n return newSnapshot;\n }\n },\n ()=>serverSnapshot\n ];\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n cache,\n key\n ]);\n // Get the current state that SWR should return.\n const cached = useSyncExternalStore(useCallback((callback)=>subscribeCache(key, (current, prev)=>{\n if (!isEqual(prev, current)) callback();\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n cache,\n key\n ]), getSnapshot[0], getSnapshot[1]);\n const isInitialMount = !initialMountedRef.current;\n const hasRevalidator = EVENT_REVALIDATORS[key] && EVENT_REVALIDATORS[key].length > 0;\n const cachedData = cached.data;\n const data = isUndefined(cachedData) ? fallback : cachedData;\n const error = cached.error;\n // Use a ref to store previously returned data. Use the initial data as its initial value.\n const laggyDataRef = useRef(data);\n const returnedData = keepPreviousData ? isUndefined(cachedData) ? laggyDataRef.current : cachedData : data;\n // - Suspense mode and there's stale data for the initial render.\n // - Not suspense mode and there is no fallback data and `revalidateIfStale` is enabled.\n // - `revalidateIfStale` is enabled but `data` is not defined.\n const shouldDoInitialRevalidation = (()=>{\n // if a key already has revalidators and also has error, we should not trigger revalidation\n if (hasRevalidator && !isUndefined(error)) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (isInitialMount && !isUndefined(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n // Under suspense mode, it will always fetch on render if there is no\n // stale data so no need to revalidate immediately mount it again.\n // If data exists, only revalidate if `revalidateIfStale` is true.\n if (suspense) return isUndefined(data) ? false : revalidateIfStale;\n // If there is no stale data, we need to revalidate when mount;\n // If `revalidateIfStale` is set to true, we will always revalidate.\n return isUndefined(data) || revalidateIfStale;\n })();\n // Resolve the default validating state:\n // If it's able to validate, and it should revalidate when mount, this will be true.\n const defaultValidatingState = !!(key && fetcher && isInitialMount && shouldDoInitialRevalidation);\n const isValidating = isUndefined(cached.isValidating) ? defaultValidatingState : cached.isValidating;\n const isLoading = isUndefined(cached.isLoading) ? defaultValidatingState : cached.isLoading;\n // The revalidation function is a carefully crafted wrapper of the original\n // `fetcher`, to correctly handle the many edge cases.\n const revalidate = useCallback(async (revalidateOpts)=>{\n const currentFetcher = fetcherRef.current;\n if (!key || !currentFetcher || unmountedRef.current || getConfig().isPaused()) {\n return false;\n }\n let newData;\n let startAt;\n let loading = true;\n const opts = revalidateOpts || {};\n // If there is no ongoing concurrent request, or `dedupe` is not set, a\n // new request should be initiated.\n const shouldStartNewRequest = !FETCH[key] || !opts.dedupe;\n /*\n For React 17\n Do unmount check for calls:\n If key has changed during the revalidation, or the component has been\n unmounted, old dispatch and old event callbacks should not take any\n effect\n\n For React 18\n only check if key has changed\n https://github.com/reactwg/react-18/discussions/82\n */ const callbackSafeguard = ()=>{\n if (IS_REACT_LEGACY) {\n return !unmountedRef.current && key === keyRef.current && initialMountedRef.current;\n }\n return key === keyRef.current;\n };\n // The final state object when the request finishes.\n const finalState = {\n isValidating: false,\n isLoading: false\n };\n const finishRequestAndUpdateState = ()=>{\n setCache(finalState);\n };\n const cleanupState = ()=>{\n // Check if it's still the same request before deleting it.\n const requestInfo = FETCH[key];\n if (requestInfo && requestInfo[1] === startAt) {\n delete FETCH[key];\n }\n };\n // Start fetching. Change the `isValidating` state, update the cache.\n const initialState = {\n isValidating: true\n };\n // It is in the `isLoading` state, if and only if there is no cached data.\n // This bypasses fallback data and laggy data.\n if (isUndefined(getCache().data)) {\n initialState.isLoading = true;\n }\n try {\n if (shouldStartNewRequest) {\n setCache(initialState);\n // If no cache is being rendered currently (it shows a blank page),\n // we trigger the loading slow event.\n if (config.loadingTimeout && isUndefined(getCache().data)) {\n setTimeout(()=>{\n if (loading && callbackSafeguard()) {\n getConfig().onLoadingSlow(key, config);\n }\n }, config.loadingTimeout);\n }\n // Start the request and save the timestamp.\n // Key must be truthy if entering here.\n FETCH[key] = [\n currentFetcher(fnArg),\n getTimestamp()\n ];\n }\n [newData, startAt] = FETCH[key];\n newData = await newData;\n if (shouldStartNewRequest) {\n // If the request isn't interrupted, clean it up after the\n // deduplication interval.\n setTimeout(cleanupState, config.dedupingInterval);\n }\n // If there're other ongoing request(s), started after the current one,\n // we need to ignore the current one to avoid possible race conditions:\n // req1------------------>res1 (current one)\n // req2---------------->res2\n // the request that fired later will always be kept.\n // The timestamp maybe be `undefined` or a number\n if (!FETCH[key] || FETCH[key][1] !== startAt) {\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Clear error.\n finalState.error = UNDEFINED;\n // If there're other mutations(s), that overlapped with the current revalidation:\n // case 1:\n // req------------------>res\n // mutate------>end\n // case 2:\n // req------------>res\n // mutate------>end\n // case 3:\n // req------------------>res\n // mutate-------...---------->\n // we have to ignore the revalidation result (res) because it's no longer fresh.\n // meanwhile, a new revalidation should be triggered when the mutation ends.\n const mutationInfo = MUTATION[key];\n if (!isUndefined(mutationInfo) && // case 1\n (startAt <= mutationInfo[0] || // case 2\n startAt <= mutationInfo[1] || // case 3\n mutationInfo[1] === 0)) {\n finishRequestAndUpdateState();\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Deep compare with the latest state to avoid extra re-renders.\n // For local state, compare and assign.\n const cacheData = getCache().data;\n // Since the compare fn could be custom fn\n // cacheData might be different from newData even when compare fn returns True\n finalState.data = compare(cacheData, newData) ? cacheData : newData;\n // Trigger the successful callback if it's the original request.\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onSuccess(newData, key, config);\n }\n }\n } catch (err) {\n cleanupState();\n const currentConfig = getConfig();\n const { shouldRetryOnError } = currentConfig;\n // Not paused, we continue handling the error. Otherwise, discard it.\n if (!currentConfig.isPaused()) {\n // Get a new error, don't use deep comparison for errors.\n finalState.error = err;\n // Error event and retry logic. Only for the actual request, not\n // deduped ones.\n if (shouldStartNewRequest && callbackSafeguard()) {\n currentConfig.onError(err, key, currentConfig);\n if (shouldRetryOnError === true || isFunction(shouldRetryOnError) && shouldRetryOnError(err)) {\n if (!getConfig().revalidateOnFocus || !getConfig().revalidateOnReconnect || isActive()) {\n // If it's inactive, stop. It will auto-revalidate when\n // refocusing or reconnecting.\n // When retrying, deduplication is always enabled.\n currentConfig.onErrorRetry(err, key, currentConfig, (_opts)=>{\n const revalidators = EVENT_REVALIDATORS[key];\n if (revalidators && revalidators[0]) {\n revalidators[0](revalidateEvents.ERROR_REVALIDATE_EVENT, _opts);\n }\n }, {\n retryCount: (opts.retryCount || 0) + 1,\n dedupe: true\n });\n }\n }\n }\n }\n }\n // Mark loading as stopped.\n loading = false;\n // Update the current hook's state.\n finishRequestAndUpdateState();\n return true;\n }, // `setState` is immutable, and `eventsCallback`, `fnArg`, and\n // `keyValidating` are depending on `key`, so we can exclude them from\n // the deps array.\n //\n // FIXME:\n // `fn` and `config` might be changed during the lifecycle,\n // but they might be changed every render like this.\n // `useSWR('key', () => fetch('/api/'), { suspense: true })`\n // So we omit the values from the deps array\n // even though it might cause unexpected behaviors.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n key,\n cache\n ]);\n // Similar to the global mutate but bound to the current cache and key.\n // `cache` isn't allowed to change during the lifecycle.\n const boundMutate = useCallback(// Use callback to make sure `keyRef.current` returns latest result every time\n (...args)=>{\n return internalMutate(cache, keyRef.current, ...args);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // The logic for updating refs.\n useIsomorphicLayoutEffect(()=>{\n fetcherRef.current = fetcher;\n configRef.current = config;\n // Handle laggy data updates. If there's cached data of the current key,\n // it'll be the correct reference.\n if (!isUndefined(cachedData)) {\n laggyDataRef.current = cachedData;\n }\n });\n // After mounted or key changed.\n useIsomorphicLayoutEffect(()=>{\n if (!key) return;\n const softRevalidate = revalidate.bind(UNDEFINED, WITH_DEDUPE);\n // Expose revalidators to global event listeners. So we can trigger\n // revalidation from the outside.\n let nextFocusRevalidatedAt = 0;\n const onRevalidate = (type, opts = {})=>{\n if (type == revalidateEvents.FOCUS_EVENT) {\n const now = Date.now();\n if (getConfig().revalidateOnFocus && now > nextFocusRevalidatedAt && isActive()) {\n nextFocusRevalidatedAt = now + getConfig().focusThrottleInterval;\n softRevalidate();\n }\n } else if (type == revalidateEvents.RECONNECT_EVENT) {\n if (getConfig().revalidateOnReconnect && isActive()) {\n softRevalidate();\n }\n } else if (type == revalidateEvents.MUTATE_EVENT) {\n return revalidate();\n } else if (type == revalidateEvents.ERROR_REVALIDATE_EVENT) {\n return revalidate(opts);\n }\n return;\n };\n const unsubEvents = subscribeCallback(key, EVENT_REVALIDATORS, onRevalidate);\n // Mark the component as mounted and update corresponding refs.\n unmountedRef.current = false;\n keyRef.current = key;\n initialMountedRef.current = true;\n // Keep the original key in the cache.\n setCache({\n _k: fnArg\n });\n // Trigger a revalidation\n if (shouldDoInitialRevalidation) {\n if (isUndefined(data) || IS_SERVER) {\n // Revalidate immediately.\n softRevalidate();\n } else {\n // Delay the revalidate if we have data to return so we won't block\n // rendering.\n rAF(softRevalidate);\n }\n }\n return ()=>{\n // Mark it as unmounted.\n unmountedRef.current = true;\n unsubEvents();\n };\n }, [\n key\n ]);\n // Polling\n useIsomorphicLayoutEffect(()=>{\n let timer;\n function next() {\n // Use the passed interval\n // ...or invoke the function with the updated data to get the interval\n const interval = isFunction(refreshInterval) ? refreshInterval(getCache().data) : refreshInterval;\n // We only start the next interval if `refreshInterval` is not 0, and:\n // - `force` is true, which is the start of polling\n // - or `timer` is not 0, which means the effect wasn't canceled\n if (interval && timer !== -1) {\n timer = setTimeout(execute, interval);\n }\n }\n function execute() {\n // Check if it's OK to execute:\n // Only revalidate when the page is visible, online, and not errored.\n if (!getCache().error && (refreshWhenHidden || getConfig().isVisible()) && (refreshWhenOffline || getConfig().isOnline())) {\n revalidate(WITH_DEDUPE).then(next);\n } else {\n // Schedule the next interval to check again.\n next();\n }\n }\n next();\n return ()=>{\n if (timer) {\n clearTimeout(timer);\n timer = -1;\n }\n };\n }, [\n refreshInterval,\n refreshWhenHidden,\n refreshWhenOffline,\n key\n ]);\n // Display debug info in React DevTools.\n useDebugValue(returnedData);\n // In Suspense mode, we can't return the empty `data` state.\n // If there is an `error`, the `error` needs to be thrown to the error boundary.\n // If there is no `error`, the `revalidation` promise needs to be thrown to\n // the suspense boundary.\n if (suspense && isUndefined(data) && key) {\n // SWR should throw when trying to use Suspense on the server with React 18,\n // without providing any initial data. See:\n // https://github.com/vercel/swr/issues/1832\n if (!IS_REACT_LEGACY && IS_SERVER) {\n throw new Error('Fallback data is required when using suspense in SSR.');\n }\n // Always update fetcher and config refs even with the Suspense mode.\n fetcherRef.current = fetcher;\n configRef.current = config;\n unmountedRef.current = false;\n const req = PRELOAD[key];\n if (!isUndefined(req)) {\n const promise = boundMutate(req);\n use(promise);\n }\n if (isUndefined(error)) {\n const promise = revalidate(WITH_DEDUPE);\n if (!isUndefined(returnedData)) {\n promise.status = 'fulfilled';\n promise.value = true;\n }\n use(promise);\n } else {\n throw error;\n }\n }\n return {\n mutate: boundMutate,\n get data () {\n stateDependencies.data = true;\n return returnedData;\n },\n get error () {\n stateDependencies.error = true;\n return error;\n },\n get isValidating () {\n stateDependencies.isValidating = true;\n return isValidating;\n },\n get isLoading () {\n stateDependencies.isLoading = true;\n return isLoading;\n }\n };\n};\nOBJECT.defineProperty(SWRConfig, 'defaultValue', {\n value: defaultConfig\n});\n/**\n * A hook to fetch data.\n *\n * @link https://swr.vercel.app\n * @example\n * ```jsx\n * import useSWR from 'swr'\n * function Profile() {\n * const { data, error, isLoading } = useSWR('/api/user', fetcher)\n * if (error) return <div>failed to load</div>\n * if (isLoading) return <div>loading...</div>\n * return <div>hello {data.name}!</div>\n * }\n * ```\n */ const useSWR = withArgs(useSWRHandler);\n\nconst getFirstPageKey = (getKey)=>{\n return serialize(getKey ? getKey(0, null) : null)[0];\n};\nconst unstable_serialize = (getKey)=>{\n return INFINITE_PREFIX + getFirstPageKey(getKey);\n};\n\n// We have to several type castings here because `useSWRInfinite` is a special\n// hook where `key` and return type are not like the normal `useSWR` types.\n// const INFINITE_PREFIX = '$inf$'\nconst EMPTY_PROMISE = Promise.resolve();\n// export const unstable_serialize = (getKey: SWRInfiniteKeyLoader) => {\n// return INFINITE_PREFIX + getFirstPageKey(getKey)\n// }\nconst infinite = (useSWRNext)=>(getKey, fn, config)=>{\n const didMountRef = useRef(false);\n const { cache: cache$1, initialSize = 1, revalidateAll = false, persistSize = false, revalidateFirstPage = true, revalidateOnMount = false, parallel = false } = config;\n const [, , , PRELOAD] = SWRGlobalState.get(cache);\n // The serialized key of the first page. This key will be used to store\n // metadata of this SWR infinite hook.\n let infiniteKey;\n try {\n infiniteKey = getFirstPageKey(getKey);\n if (infiniteKey) infiniteKey = INFINITE_PREFIX + infiniteKey;\n } catch (err) {\n // Not ready yet.\n }\n const [get, set, subscribeCache] = createCacheHelper(cache$1, infiniteKey);\n const getSnapshot = useCallback(()=>{\n const size = isUndefined(get()._l) ? initialSize : get()._l;\n return size;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n cache$1,\n infiniteKey,\n initialSize\n ]);\n useSyncExternalStore(useCallback((callback)=>{\n if (infiniteKey) return subscribeCache(infiniteKey, ()=>{\n callback();\n });\n return ()=>{};\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n cache$1,\n infiniteKey\n ]), getSnapshot, getSnapshot);\n const resolvePageSize = useCallback(()=>{\n const cachedPageSize = get()._l;\n return isUndefined(cachedPageSize) ? initialSize : cachedPageSize;\n // `cache` isn't allowed to change during the lifecycle\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n infiniteKey,\n initialSize\n ]);\n // keep the last page size to restore it with the persistSize option\n const lastPageSizeRef = useRef(resolvePageSize());\n // When the page key changes, we reset the page size if it's not persisted\n useIsomorphicLayoutEffect(()=>{\n if (!didMountRef.current) {\n didMountRef.current = true;\n return;\n }\n if (infiniteKey) {\n // If the key has been changed, we keep the current page size if persistSize is enabled\n // Otherwise, we reset the page size to cached pageSize\n set({\n _l: persistSize ? lastPageSizeRef.current : resolvePageSize()\n });\n }\n // `initialSize` isn't allowed to change during the lifecycle\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n infiniteKey,\n cache$1\n ]);\n // Needs to check didMountRef during mounting, not in the fetcher\n const shouldRevalidateOnMount = revalidateOnMount && !didMountRef.current;\n // Actual SWR hook to load all pages in one fetcher.\n const swr = useSWRNext(infiniteKey, async (key)=>{\n // get the revalidate context\n const forceRevalidateAll = get()._i;\n const shouldRevalidatePage = get()._r;\n set({\n _r: UNDEFINED\n });\n // return an array of page data\n const data = [];\n const pageSize = resolvePageSize();\n const [getCache] = createCacheHelper(cache$1, key);\n const cacheData = getCache().data;\n const revalidators = [];\n let previousPageData = null;\n for(let i = 0; i < pageSize; ++i){\n const [pageKey, pageArg] = serialize(getKey(i, parallel ? null : previousPageData));\n if (!pageKey) {\n break;\n }\n const [getSWRCache, setSWRCache] = createCacheHelper(cache$1, pageKey);\n // Get the cached page data.\n let pageData = getSWRCache().data;\n // should fetch (or revalidate) if:\n // - `revalidateAll` is enabled\n // - `mutate()` called\n // - the cache is missing\n // - it's the first page and it's not the initial render\n // - `revalidateOnMount` is enabled and it's on mount\n // - cache for that page has changed\n const shouldFetchPage = revalidateAll || forceRevalidateAll || isUndefined(pageData) || revalidateFirstPage && !i && !isUndefined(cacheData) || shouldRevalidateOnMount || cacheData && !isUndefined(cacheData[i]) && !config.compare(cacheData[i], pageData);\n if (fn && (typeof shouldRevalidatePage === 'function' ? shouldRevalidatePage(pageData, pageArg) : shouldFetchPage)) {\n const revalidate = async ()=>{\n const hasPreloadedRequest = pageKey in PRELOAD;\n if (!hasPreloadedRequest) {\n pageData = await fn(pageArg);\n } else {\n const req = PRELOAD[pageKey];\n // delete the preload cache key before resolving it\n // in case there's an error\n delete PRELOAD[pageKey];\n // get the page data from the preload cache\n pageData = await req;\n }\n setSWRCache({\n data: pageData,\n _k: pageArg\n });\n data[i] = pageData;\n };\n if (parallel) {\n revalidators.push(revalidate);\n } else {\n await revalidate();\n }\n } else {\n data[i] = pageData;\n }\n if (!parallel) {\n previousPageData = pageData;\n }\n }\n // flush all revalidateions in parallel\n if (parallel) {\n await Promise.all(revalidators.map((r)=>r()));\n }\n // once we executed the data fetching based on the context, clear the context\n set({\n _i: UNDEFINED\n });\n // return the data\n return data;\n }, config);\n const mutate = useCallback(// eslint-disable-next-line func-names\n function(data, opts) {\n // When passing as a boolean, it's explicitly used to disable/enable\n // revalidation.\n const options = typeof opts === 'boolean' ? {\n revalidate: opts\n } : opts || {};\n // Default to true.\n const shouldRevalidate = options.revalidate !== false;\n // It is possible that the key is still falsy.\n if (!infiniteKey) return EMPTY_PROMISE;\n if (shouldRevalidate) {\n if (!isUndefined(data)) {\n // We only revalidate the pages that are changed\n set({\n _i: false,\n _r: options.revalidate\n });\n } else {\n // Calling `mutate()`, we revalidate all pages\n set({\n _i: true,\n _r: options.revalidate\n });\n }\n }\n return arguments.length ? swr.mutate(data, {\n ...options,\n revalidate: shouldRevalidate\n }) : swr.mutate();\n }, // swr.mutate is always the same reference\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n infiniteKey,\n cache$1\n ]);\n // Extend the SWR API\n const setSize = useCallback((arg)=>{\n // It is possible that the key is still falsy.\n if (!infiniteKey) return EMPTY_PROMISE;\n const [, changeSize] = createCacheHelper(cache$1, infiniteKey);\n let size;\n if (isFunction(arg)) {\n size = arg(resolvePageSize());\n } else if (typeof arg == 'number') {\n size = arg;\n }\n if (typeof size != 'number') return EMPTY_PROMISE;\n changeSize({\n _l: size\n });\n lastPageSizeRef.current = size;\n // Calculate the page data after the size change.\n const data = [];\n const [getInfiniteCache] = createCacheHelper(cache$1, infiniteKey);\n let previousPageData = null;\n for(let i = 0; i < size; ++i){\n const [pageKey] = serialize(getKey(i, previousPageData));\n const [getCache] = createCacheHelper(cache$1, pageKey);\n // Get the cached page data.\n const pageData = pageKey ? getCache().data : UNDEFINED;\n // Call `mutate` with infinte cache data if we can't get it from the page cache.\n if (isUndefined(pageData)) {\n return mutate(getInfiniteCache().data);\n }\n data.push(pageData);\n previousPageData = pageData;\n }\n return mutate(data);\n }, // exclude getKey from the dependencies, which isn't allowed to change during the lifecycle\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n infiniteKey,\n cache$1,\n mutate,\n resolvePageSize\n ]);\n // Use getter functions to avoid unnecessary re-renders caused by triggering\n // all the getters of the returned swr object.\n return {\n size: resolvePageSize(),\n setSize,\n mutate,\n get data () {\n return swr.data;\n },\n get error () {\n return swr.error;\n },\n get isValidating () {\n return swr.isValidating;\n },\n get isLoading () {\n return swr.isLoading;\n }\n };\n };\nconst useSWRInfinite = withMiddleware(useSWR, infinite);\n\nexport { useSWRInfinite as default, infinite, unstable_serialize };\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"\n );\n }\n listeners.clear();\n };\n const api = { setState, getState, getInitialState, subscribe, destroy };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\nvar vanilla = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.\"\n );\n }\n return createStore(createState);\n};\n\nexport { createStore, vanilla as default };\n","var webpackQueues =\n\ttypeof Symbol === \"function\"\n\t\t? Symbol(\"webpack queues\")\n\t\t: \"__webpack_queues__\";\nvar webpackExports =\n\ttypeof Symbol === \"function\"\n\t\t? Symbol(\"webpack exports\")\n\t\t: \"__webpack_exports__\";\nvar webpackError =\n\ttypeof Symbol === \"function\" ? Symbol(\"webpack error\") : \"__webpack_error__\";\nvar resolveQueue = (queue) => {\n if (queue && queue.d < 1) {\n queue.d = 1;\n queue.forEach((fn) => (fn.r--));\n\t\tqueue.forEach((fn) => (fn.r-- ? fn.r++ : fn()));\n\t}\n}\nvar wrapDeps = (deps) => {\n\treturn deps.map((dep) => {\n\t\tif (dep !== null && typeof dep === \"object\") {\n\t\t\tif (dep[webpackQueues]) return dep;\n\t\t\tif (dep.then) {\n\t\t\t\tvar queue = [];\n\t\t\t\tqueue.d = 0;\n\t\t\t\tdep.then((r) => {\n\t\t\t\t\tobj[webpackExports] = r;\n\t\t\t\t\tresolveQueue(queue);\n\t\t\t\t},(e) => {\n\t\t\t\t\tobj[webpackError] = e;\n\t\t\t\t\tresolveQueue(queue);\n\t\t\t\t});\n\t\t\t\tvar obj = {};\n\t\t\t\tobj[webpackQueues] = (fn) => (fn(queue));\n\t\t\t\treturn obj;\n\t\t\t}\n\t\t}\n\t\tvar ret = {};\n\t\tret[webpackQueues] = function() {};\n\t\tret[webpackExports] = dep;\n\t\treturn ret;\n\t});\n};\n__webpack_require__.a = (module, body, hasAwait) => {\n\tvar queue;\n\thasAwait && ((queue = []).d = -1);\n\tvar depQueues = new Set();\n\tvar exports = module.exports;\n\tvar currentDeps;\n\tvar outerResolve;\n\tvar reject;\n\tvar promise = new Promise((resolve, rej) => {\n\t\treject = rej;\n\t\touterResolve = resolve;\n\t});\n\tpromise[webpackExports] = exports;\n\tpromise[webpackQueues] = (fn) => { queue && fn(queue), depQueues.forEach(fn), promise[\"catch\"](function() {}); };\n\tmodule.exports = promise;\n\tbody((deps) => {\n\t\tcurrentDeps = wrapDeps(deps);\n\t\tvar fn;\n\t\tvar getResult = () => {\n\t\t\treturn currentDeps.map((d) => {\n\t\t\t\tif (d[webpackError]) throw d[webpackError];\n\t\t\t\treturn d[webpackExports];\n\t\t\t});\n\t\t}\n\t\tvar promise = new Promise((resolve) => {\n\t\t\tfn = () => (resolve(getResult));\n\t\t\tfn.r = 0;\n\t\t\tvar fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn))));\n\t\t\tcurrentDeps.map((dep) => (dep[webpackQueues](fnQueue)));\n\t\t});\n\t\treturn fn.r ? promise : getResult();\n\t}, (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue)));\n\tqueue && queue.d < 0 && (queue.d = 0);\n};","// getDefaultExport function for compatibility with non-ESM modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","__webpack_require__.rv = () => (\"1.3.11\")","__webpack_require__.ruid = \"bundler=rspack@1.3.11\";\n"],"names":["flags","e","r","enabled$1","process","env","CARBON_ENABLE_CSS_CUSTOM_PROPERTIES","enableCssCustomProperties","CARBON_ENABLE_CSS_GRID","enableCssGrid","CARBON_ENABLE_V11_RELEASE","enableV11Release","CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST","enableExperimentalTileContrast","CARBON_ENABLE_V12_TILE_DEFAULT_ICONS","enableV12TileDefaultIcons","CARBON_ENABLE_V12_TILE_RADIO_ICONS","enableV12TileRadioIcons","CARBON_ENABLE_V12_OVERFLOWMENU","enableV12Overflowmenu","CARBON_ENABLE_TREEVIEW_CONTROLLABLE","enableTreeviewControllable","CARBON_ENABLE_V12_STRUCTURED_LIST_VISIBLE_ICONS","enableV12StructuredListVisibleIcons","CARBON_ENABLE_EXPERIMENTAL_FOCUS_WRAP_WITHOUT_SENTINELS","enableExperimentalFocusWrapWithoutSentinels","CARBON_ENABLE_DIALOG_ELEMENT","enableDialogElement","CARBON_ENABLE_V12_DYNAMIC_FLOATING_STYLES","enableV12DynamicFloatingStyles","error","featureFlagInfo","name","description","enabled","_arrayLikeToArray","a","length","n","Array","_unsupportedIterableToArray","t","toString","call","slice","from","test","FeatureFlagScope","_this","TypeError","Map","Object","keys","forEach","key","set","value","has","Error","concat","checkForFlag","_this2","scope","_step","_iterator","_createForOfIteratorHelper","Symbol","iterator","isArray","F","s","done","f","o","u","next","return","_step$value","_arrayWithHoles","_iterableToArrayLimit","l","i","push","_nonIterableRest","err","get","_defineProperties","enumerable","configurable","writable","defineProperty","_toPropertyKey","_toPrimitive","toPrimitive","String","Number","prototype","FeatureFlags","featureFlag","add","merge","apply","arguments","isToday","format","exports","module","define","amd","globalThis","self","dayjs_plugin_isToday","$","Pattern","require","optArgs","cb","string","options","Date","GeoPattern","generate","fn","geopattern","each","titleSha","attr","extend","hash","pattern","css","toDataUrl","jQuery","hex2rgb","hex","replace","m","g","b","result","exec","parseInt","rgb2hex","rgb","map","join","rgb2hsl","h","max","Math","min","d","hsl2rgb","hsl","hue2rgb","p","q","round","rgb2rgbString","color","SHA1","SVG","DEFAULTS","baseColor","PATTERNS","STROKE_COLOR","hexVal","index","len","substr","vMin","vMax","dMin","dMax","vValue","parseFloat","fillColor","val","fillOpacity","opts","svg","generateBackground","generatePattern","buildPlusShape","squareSize","buildRightTriangleShape","sideLength","drawInnerMosaicTile","x","y","triangleSize","vals","triangle","opacity","fill","styles","stroke","polyline","transform","translate","scale","drawOuterMosaicTile","toSvg","toBase64","b64","str","window","btoa","Buffer","toDataUri","hueOffset","satOffset","rect","generator","indexOf","toUpperCase","geoHexagons","dy","hexHeight","sqrt","hexWidth","c","sin","PI","setWidth","setHeight","geoSineWaves","xOffset","period","floor","amplitude","waveWidth","path","geoChevrons","chevronWidth","chevronHeight","chevron","height","width","group","end","geoPlusSigns","dx","plusSize","plusShape","geoXes","xShape","xSize","rotate","geoOverlappingCircles","radius","diameter","circle","geoOctogons","tile","geoSquares","geoConcentricCircles","ringSize","strokeWidth","geoOverlappingRings","geoTriangles","rotation","halfWidth","triangleHeight","geoDiamonds","diamondWidth","diamondHeight","diamond","geoNestedSquares","blockSize","geoMosaicSquares","geoPlaid","space","stripeHeight","stripeWidth","geoTessellation","tileWidth","tileHeight","create","h0","h1","h2","h3","h4","block","Uint32Array","offset","shift","totalLength","processBlock","k","w","temp","write","byte","toHex","word","update","chunk","updateString","charCodeAt","digest","buffer","undefined","shasum","XMLNode","context","setAttributes","xmlns","currentContext","pop","currentNode","lastChild","transformations","setAttribute","transformation","el","attrs","args","appendChild","cx","cy","points","tagName","attributes","children","child","hasOwn","hasOwnProperty","isPlainObject","obj","nodeType","setInterval","has_own_constructor","has_is_property_of_method","src","copy","copyIsArray","clone","target","deep","createRoot","hydrateRoot","React","objectIs","is","useState","useEffect","useLayoutEffect","useDebugValue","checkIfSnapshotChanged","inst","latestGetSnapshot","getSnapshot","nextValue","shim","document","createElement","subscribe","_useState","forceUpdate","useSyncExternalStore","initialFeatureFlags","getFeatureFlagsFromLocalStorage","localStorage","startsWith","flagName","meta","JSON","parse","getItem","featureFlagsStore","getGlobalStore","state","flag","entries","setItem","stringify","label","Type","validators","carbonTagColors","createContext","createGlobalStore","modalContainer","modalStack","getComputedStyle","body","overflow","Subject","openWorkspaces","prompt","workspaceWindowState","workspaceGroup","classNames","classes","arg","appendClass","parseValue","includes","newClass","default","global","Promise","Reflect","setImmediate","setTimeout","isNaN","P","WeakMap","location","SyntaxError","RangeError","crypto","Uint8Array","MutationObserver","clearTimeout","AggregateError","CustomEvent","dispatchEvent","console","navigator","NaN","ArrayBuffer","indexedDB","clearInterval","addEventListener","BroadcastChannel","other","array","eq","uid","func","splice","arrayProto","ListCache","clear","entry","__data__","size","data","assocIndexOf","freeGlobal","freeSelf","root","Function","objectProto","nativeObjectToString","symToStringTag","isOwn","tag","unmasked","getRawTag","type","isObject","baseGetTag","coreJsData","maskSrcKey","funcToString","funcProto","reIsHostCtor","reIsNative","RegExp","isFunction","toSource","object","baseIsNative","getNative","nativeCreate","Hash","isKeyable","MapCache","Stack","SetCache","values","getMapData","pairs","LARGE_ARRAY_SIZE","predicate","bitmask","customizer","equalFunc","stack","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","arraySome","othIndex","cache","symbolProto","symbolValueOf","valueOf","byteLength","byteOffset","message","convert","mapToArray","setToArray","stacked","equalArrays","keysFunc","symbolsFunc","arrayPush","resIndex","propertyIsEnumerable","nativeGetSymbols","getOwnPropertySymbols","getSymbols","arrayFilter","symbol","iteratee","isObjectLike","isArguments","baseIsArguments","freeExports","freeModule","moduleExports","nativeIsBuffer","isBuffer","reIsUint","ex","typedArrayTags","freeProcess","nodeUtil","types","binding","nodeIsTypedArray","isTypedArray","isLength","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseTimes","isIndex","Ctor","nativeKeys","isPrototype","isArrayLike","arrayLikeKeys","baseKeys","baseGetAllKeys","objProps","getAllKeys","objLength","othProps","objStacked","skipCtor","objValue","objCtor","othCtor","DataView","Set","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","argsTag","arrayTag","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalByTag","COMPARE_PARTIAL_FLAG","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","baseIsEqual","baseIsEqualDeep","_ObjectMap","hashedKey","bucket","element","_curry1","_clone","_isPrimitive","param","copiedValue","cachedCopy","getPrototypeOf","source","ignoreCase","multiline","sticky","unicode","dotAll","_arrayFromIterator","iter","list","_includesWith","pred","idx","_isArguments","_has","hasEnumBug","nonEnumerableProps","hasArgsEnumBug","contains","item","prop","nIdx","ks","checkArgsLength","_uniqContentEquals","aIterator","bIterator","stackA","stackB","_a","_b","_equals","aItem","_objectIs","match","typeA","equals","_functionName","keysA","extendedStackA","extendedStackB","_curry2","f1","_isPlaceholder","f2","_curry3","f3","_c","_isObject","mergeWithKey","mergeDeepWithKey","lObj","rObj","lVal","rVal","arrayReduce","methodReduce","iterableReduce","_isArrayLike","_isArray","symIterator","bind","thisObj","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","_xReduce","xf","acc","methodName","step","reduce","XWrap","Parcel","Component","props","action","thing","hasError","nextThingToDo","resolve","then","unmounted","catch","setState","handleError","parcelProps","domElement","mountParcel","config","wrapWith","wrapStyle","appendTo","parcelDidMount","addThingToDo","createdDomElement","style","parcel","getParcelProps","mountPromise","_this3","_this4","getStatus","unmount","this","parentNode","removeChild","SingleSpaContext","Consumer","_this5","ref","handleRef","className","wrapClassName","sessionStore","loaded","session","userHasAccess","requiredPrivilege","user","Boolean","userHasPrivilege","isUndefined","privileges","find","display","every","rp","roles","role","locale","userProperties","defaultLocale","replaceAll","isValidLocale","Intl","Locale","documentElement","getAttribute","restBaseUrl","computeModuleConfig","configInternalStore","temporaryConfigStore","configState","tempConfigState","computeImplementerToolsConfig","computeExtensionSlotConfigs","computeExtensionConfigs","configExtensionStore","extensionState","displayedValidationMessages","tempState","moduleName","schemas","moduleStore","getConfigStore","moduleLoaded","getConfigForModule","schema","inputConfig","mergeConfigsFor","getProvidedConfigs","validateStructure","setDefaults","runAllValidatorsInConfigTree","extensionSlots","translationOverridesLoaded","getConfigForModuleImplicitSchema","implicitConfigSchema","slotConfigs","getExtensionSlotConfigs","allConfigs","mergeConfigs","slotConfigPerModule","validateAllExtensionSlotConfigs","configBySlotName","slotName","validateExtensionSlotConfig","keyPath","errorPrefix","invalidKeys","filter","logError","remove","order","configure","isOrdinaryObject","newSlotStoreEntries","fromEntries","slotStore","getExtensionSlotsConfigStore","oldState","getState","newState","slots","getImplementerToolsConfig","getSchemaWithValuesAndSources","_value","_default","_source","providedConfigs","createValuesAndSourcesTree","implementerToolsConfigStore","configs","extension","mountedExtensions","computeExtensionConfig","slotModuleName","extensionModuleName","extensionId","extensionName","getExtensionNameFromId","split","extensionConfigSchema","nameOfSchemaSource","slotModuleConfig","configOverride","extensionConfig","combinedConfig","getExtensionsConfigStore","allConfigsForModule","mergeDeepAll","mergeDeepRight","thisKeyPath","schemaPart","validateBranchStructure","checkType","_type","validateFreeformObjectStructure","freeformObjectSchema","_elements","validateArrayStructure","arraySchema","hasObjectSchema","runValidators","_validators","validator","isBoolean","ConceptUuid","isUuid","isNumber","isString","UUID","PersonAttributeTypeUuid","PatientIdentifierTypeUuid","returnValue","validatorResult","configPart","elements","configWithDefaults","conf","objectKey","selectedConfigPart","elementsSchema","translationOverridesSchema","_description","badKeys","getTemporaryConfig","getExtensionSlotConfigFromStore","slotConfig","getExtensionConfigFromStore","validationFunction","isUrlWithTemplateParameters","allowedTemplateParameters","allowedParams","rx","inRange","isUrl","oneOf","allowedValues","initialState","getVisitSessionStorage","sessionStorage","patientUuid","manuallySetVisitUuid","mutateVisitCallbacks","getVisitStore","BehaviorSubject","onerror","dispatchToastShown","kind","title","onunhandledrejection","event","reason","Hooks","callback","first","run","Plugins","jsep","registered","register","plugins","plugin","init","Jsep","expr","char","charAt","code","throwError","runHook","node","hooks","searchHook","gobbleSpaces","ch","SPACE_CODE","TAB_CODE","LF_CODE","CR_CODE","nodes","gobbleExpressions","COMPOUND","untilICode","ch_i","SEMCOL_CODE","COMMA_CODE","gobbleExpression","gobbleBinaryExpression","gobbleBinaryOp","to_check","max_binop_len","tc_len","binary_ops","isIdentifierStart","isIdentifierPart","biop","prec","biop_info","left","right","cur_biop","prev","gobbleToken","binaryPrecedence","right_a","right_associative","BINARY_EXP","operator","isDecimalDigit","PERIOD_CODE","gobbleNumericLiteral","SQUOTE_CODE","DQUOTE_CODE","gobbleStringLiteral","OBRACK_CODE","gobbleArray","max_unop_len","unary_ops","argument","UNARY_EXP","prefix","gobbleIdentifier","literals","LITERAL","raw","this_str","THIS_EXP","OPAREN_CODE","gobbleGroup","gobbleTokenProperty","QUMARK_CODE","optional","MEMBER_EXP","computed","property","CBRACK_CODE","CALL_EXP","gobbleArguments","CPAREN_CODE","callee","chCode","number","startIndex","quote","closed","substring","start","IDENTIFIER","termination","separator_count","fromCharCode","SEQUENCE_EXP","expressions","ARRAY_EXP","version","addUnaryOp","op_name","addBinaryOp","precedence","isRightAssociative","delete","addIdentifierChar","additional_identifier_chars","addLiteral","literal_name","literal_value","removeUnaryOp","getMaxKeyLen","removeAllUnaryOps","removeIdentifierChar","removeBinaryOp","removeAllBinaryOps","removeLiteral","removeAllLiterals","op_val","assign","COLON_CODE","stdClassProps","getOwnPropertyNames","Test","consequent","alternate","newTest","ARROW_EXP","globals","Infinity","BigInt","isFinite","decodeURI","encodeURI","encodeURIComponent","__proto__","evaluateAsBoolean","expression","variables","evaluateAsType","typePredicate","createSynchronousContext","globals_","addVariables","vars","visitExpression","booleanTypePredicate","handleNullableExpression","getCallTargetName","params","rest","isValidVariableType","visitMemberExpression","objectName","visitExpressionName","ReferenceError","propertyName","newObj","validatePropertyName","quasis","tail","cooked","backupIndex","updateBinariesToArrows","callNode","getNumberCodeRanges","numType","gobbleBase10","gobbleDigits","ranges","some","patternIndex","inCharSet","gobbleTemplateLiteral","gobbleMember","pushQuasi","quasi","extensionInternalStore","getExtensionInternalStore","extensionStore","getExtensionStore","slotsConfigStore","extensionsConfigStore","updateExtensionOutputStore","internalState","extensionSlotConfigs","featureFlagStore","isOnline","isOnlineFn","enabledFeatureFlags","slot","assignedExtensions","getAssignedExtensionsFromSlotData","extensionConfigStoreState","attachedIds","assignedIds","calculateAssignedIds","addedIds","removedIds","idOrder","extensions","id","sort","idA","idB","ai","getOrder","bi","requiredPrivileges","displayConditionExpression","offlineEnabled","checkStatusFor","online","offline","isEqual","updateOutputStoreToCurrent","configuredOrder","registeredOrderIndex","attachedOrder","configuredIndex","assignedIndex","internalStore","extensionConfigs","subscribeConnectivityChanged","status","basePath","spaBase","mode","modals","updateConfigExtensionStore","configExtensionRecords","extensionInfo","instance","instances","workspaces","workspaceGroups","connectivityChangedEventName","handler","ev","detail","removeEventListener","_define_property","OfflineDb","Dexie","stores","syncQueue","dynamicOfflineData","table","offlinePatientDataSyncState","handlers","_","MessageChannel","URL","performance","featureName","customRepProps","rep","createUseStore","store","actions","boundActions","useMemo","bindActions","bound","actionName","actionFunction","boundFunction","dayjs","availableStores","available","active","createStore","fallbackState","spaEnv","i18n","_i18n","on","i18next","loadNamespaces","onLine"],"mappings":"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,CAAC,MAAM,AAAC,GAAE,CAAC,CAACiB,OAAO,QAAQ,CAAC,EAAC,EAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAq6H,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,AAACzB,CAAAA,EAAEvC,GAAE,EAAG,IAAI,EAAG,AAAC,GAAEuC,EAAE,KAAK,AAAD,EAAG,EAAG,EAAEA,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAIugB,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,I,kJCItrK,IAAIokB,EAAAA,CAASA,CAENrvB,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAkB,0BAA2B,CAAC,G,wICH5BD,AAAAA,GAAAA,EAAAA,aAAAA,AAAAA,EAAc,CAC9C2X,WAAY,GACZuY,YAAa,EACjB,G,i9ICiNuCC,AAlNZ,CACvB,CACI,2BACA,MACH,CACD,CACI,yBACA,MACH,CACD,CACI,gBACA,MACH,CACD,CACI,sBACA,MACH,CACD,CACI,6BACA,MACH,CACD,CACI,gCACA,MACH,CACD,CACI,4BACA,MACH,CACD,CACI,uBACA,MACH,CACD,CACI,yBACA,MACH,CACD,CACI,mCACA,MACH,CACD,CACI,uBACA,MACH,CACD,CACI,iCACA,MACH,CACD,CACI,uBACA,MACH,CACD,CACI,oBACA,MACH,CACD,CACI,gBACA,MACH,CACD,CACI,gBACA,MACH,CACD,CACI,wBACA,MACH,CACD,CACI,eACA,MACH,CACD,CACI,sBACA,MACH,CACD,CACI,iCACA,MACH,CACD,CACI,8BACA,MACH,CACD,CACI,qBACA,MACH,CACD,CACI,qBACA,MACH,CACD,CACI,0BACA,MACH,CACD,CACI,6BACA,MACH,CACD,CACI,6BACA,MACH,CACD,CACI,qBACA,MACH,CACD,CACI,8BACA,MACH,CACD,CACI,6BACA,MACH,CACD,CACI,0BACA,MACH,CACD,CACI,gCAC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"}
1
+ {"version":3,"file":"openmrs-esm-framework.js","sources":["webpack://@openmrs/esm-framework/../../../node_modules/@carbon/feature-flags/es/index.js","webpack://@openmrs/esm-framework/../../../node_modules/@carbon/react/es/feature-flags.js","webpack://@openmrs/esm-framework/../../../node_modules/dayjs/plugin/isToday.js","webpack://@openmrs/esm-framework/../../../node_modules/geopattern/geopattern.js","webpack://@openmrs/esm-framework/../../../node_modules/geopattern/lib/color.js","webpack://@openmrs/esm-framework/../../../node_modules/geopattern/lib/pattern.js","webpack://@openmrs/esm-framework/../../../node_modules/geopattern/lib/sha1.js","webpack://@openmrs/esm-framework/../../../node_modules/geopattern/lib/svg.js","webpack://@openmrs/esm-framework/../../../node_modules/geopattern/lib/xml.js","webpack://@openmrs/esm-framework/../../../node_modules/geopattern/node_modules/extend/index.js","webpack://@openmrs/esm-framework/../../../node_modules/react-dom/client.js","webpack://@openmrs/esm-framework/../esm-feature-flags/dist/feature-flags.js","webpack://@openmrs/esm-framework/../esm-styleguide/src/config-schema.ts","webpack://@openmrs/esm-framework/../esm-styleguide/src/datepicker/locale-context.ts","webpack://@openmrs/esm-framework/../esm-styleguide/src/modals/index.tsx","webpack://@openmrs/esm-framework/../esm-styleguide/src/notifications/index.tsx","webpack://@openmrs/esm-framework/../esm-styleguide/src/snackbars/index.tsx","webpack://@openmrs/esm-framework/../esm-styleguide/src/toasts/index.tsx","webpack://@openmrs/esm-framework/../esm-styleguide/src/utils.ts","webpack://@openmrs/esm-framework/../esm-styleguide/src/workspaces/workspaces.ts","webpack://@openmrs/esm-framework/../../../node_modules/classnames/index.js","webpack://@openmrs/esm-framework/../../../node_modules/dexie/dist/modern/dexie.min.mjs","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/eq.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_assocIndexOf.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_listCacheDelete.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_freeGlobal.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_isMasked.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_overArg.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_ListCache.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_listCacheClear.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_listCacheGet.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_listCacheHas.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_listCacheSet.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_root.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_Symbol.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_getRawTag.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_objectToString.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseGetTag.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isObject.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isFunction.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_coreJsData.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_toSource.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseIsNative.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_getNative.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_getValue.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_Map.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_nativeCreate.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_hashGet.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_hashHas.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_Hash.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_hashClear.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_hashDelete.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_hashSet.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_isKeyable.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_getMapData.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_MapCache.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_Stack.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_SetCache.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_mapCacheClear.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_mapCacheDelete.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_mapCacheGet.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_mapCacheHas.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_mapCacheSet.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_stackClear.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_stackDelete.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_stackGet.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_stackHas.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_stackSet.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_setCacheAdd.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_setCacheHas.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_arraySome.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_equalArrays.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_cacheHas.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_Uint8Array.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_mapToArray.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_setToArray.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_equalByTag.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_arrayPush.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isArray.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseGetAllKeys.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_arrayFilter.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_getSymbols.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/stubArray.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseTimes.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isObjectLike.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseIsArguments.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isArguments.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isBuffer.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/stubFalse.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_isIndex.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isLength.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseIsTypedArray.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_nodeUtil.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isTypedArray.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseUnary.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_arrayLikeKeys.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_isPrototype.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_nativeKeys.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseKeys.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/keys.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isArrayLike.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_getAllKeys.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_equalObjects.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_DataView.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_Promise.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_Set.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_WeakMap.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_getTag.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseIsEqualDeep.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isEqual.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/_baseIsEqual.js","webpack://@openmrs/esm-framework/../../../node_modules/lodash-es/isUndefined.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_clone.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/clone.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_cloneRegExp.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_arrayFromIterator.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_includesWith.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_objectIs.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_isArguments.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/keys.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_equals.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_functionName.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/equals.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_curry1.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_curry2.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_curry3.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_has.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_isPlaceholder.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_isObject.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/mergeWithKey.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/mergeDeepWithKey.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/mergeDeepRight.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_createReduce.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_isArray.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_isArrayLike.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_isString.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/bind.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_arity.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_xReduce.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_xArrayReduce.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/internal/_xwrap.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/reduce.js","webpack://@openmrs/esm-framework/../../../node_modules/ramda/es/type.js","webpack://@openmrs/esm-framework/../../src/parcel.js","webpack://@openmrs/esm-framework/../../node_modules/.pnpm/dom-element-getter-helpers@1.1.1/node_modules/dom-element-getter-helpers/lib/dom-element-getter-helpers.js","webpack://@openmrs/esm-framework/../../src/single-spa-react.js","webpack://@openmrs/esm-framework/../esm-api/dist/current-user.js","webpack://@openmrs/esm-framework/../esm-api/dist/openmrs-fetch.js","webpack://@openmrs/esm-framework/../esm-config/dist/module-config/module-config.js","webpack://@openmrs/esm-framework/../esm-config/dist/module-config/state.js","webpack://@openmrs/esm-framework/../esm-config/dist/types.js","webpack://@openmrs/esm-framework/../esm-config/dist/validators/type-validators.js","webpack://@openmrs/esm-framework/../esm-config/dist/validators/validator.js","webpack://@openmrs/esm-framework/../esm-config/dist/validators/validators.js","webpack://@openmrs/esm-framework/../esm-emr-api/dist/attachments.js","webpack://@openmrs/esm-framework/../esm-emr-api/dist/visit-utils.js","webpack://@openmrs/esm-framework/../esm-error-handling/dist/index.js","webpack://@openmrs/esm-framework/../../../node_modules/jsep/dist/jsep.js","webpack://@openmrs/esm-framework/../../../node_modules/@jsep-plugin/arrow/dist/index.js","webpack://@openmrs/esm-framework/../esm-expression-evaluator/dist/globals.js","webpack://@openmrs/esm-framework/../esm-expression-evaluator/dist/evaluator.js","webpack://@openmrs/esm-framework/../../../node_modules/@jsep-plugin/new/dist/index.js","webpack://@openmrs/esm-framework/../../../node_modules/@jsep-plugin/numbers/dist/index.js","webpack://@openmrs/esm-framework/../../../node_modules/@jsep-plugin/regex/dist/index.js","webpack://@openmrs/esm-framework/../../../node_modules/@jsep-plugin/ternary/dist/index.js","webpack://@openmrs/esm-framework/../../../node_modules/@jsep-plugin/template/dist/index.js","webpack://@openmrs/esm-framework/../esm-extensions/dist/extensions.js","webpack://@openmrs/esm-framework/../esm-extensions/dist/helpers.js","webpack://@openmrs/esm-framework/../esm-extensions/dist/left-nav.js","webpack://@openmrs/esm-framework/../esm-extensions/dist/modals.js","webpack://@openmrs/esm-framework/../esm-extensions/dist/store.js","webpack://@openmrs/esm-framework/../esm-extensions/dist/workspaces.js","webpack://@openmrs/esm-framework/../esm-globals/dist/events.js","webpack://@openmrs/esm-framework/../esm-navigation/dist/breadcrumbs/db.js","webpack://@openmrs/esm-framework/../esm-offline/dist/offline-db.js","webpack://@openmrs/esm-framework/../esm-offline/dist/offline-patient-data.js","webpack://@openmrs/esm-framework/../../../node_modules/workbox-window/build/workbox-window.prod.es5.mjs","webpack://@openmrs/esm-framework/../esm-offline/dist/sync.js","webpack://@openmrs/esm-framework/../esm-react-utils/dist/ComponentContext.js","webpack://@openmrs/esm-framework/../esm-react-utils/dist/useEmrConfiguration.js","webpack://@openmrs/esm-framework/../esm-react-utils/dist/useExtensionInternalStore.js","webpack://@openmrs/esm-framework/../esm-react-utils/dist/useExtensionStore.js","webpack://@openmrs/esm-framework/../esm-react-utils/dist/useStore.js","webpack://@openmrs/esm-framework/../esm-react-utils/dist/useVisit.js","webpack://@openmrs/esm-framework/../esm-state/dist/state.js","webpack://@openmrs/esm-framework/../esm-translations/dist/index.js","webpack://@openmrs/esm-framework/../esm-utils/dist/is-online.js","webpack://@openmrs/esm-framework/../../../node_modules/zustand/esm/vanilla.mjs","webpack://@openmrs/esm-framework/webpack/runtime/async_module","webpack://@openmrs/esm-framework/webpack/runtime/compat_get_default_export","webpack://@openmrs/esm-framework/webpack/runtime/define_property_getters","webpack://@openmrs/esm-framework/webpack/runtime/has_own_property","webpack://@openmrs/esm-framework/webpack/runtime/rspack_version","webpack://@openmrs/esm-framework/webpack/runtime/rspack_unique_id"],"sourcesContent":["/**\n * Copyright IBM Corp. 2015, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar enabled$1 = {};\ntry {\n if (process.env.CARBON_ENABLE_CSS_CUSTOM_PROPERTIES) {\n if (process.env.CARBON_ENABLE_CSS_CUSTOM_PROPERTIES === 'true') {\n enabled$1.enableCssCustomProperties = true;\n } else {\n enabled$1.enableCssCustomProperties = false;\n }\n } else {\n enabled$1.enableCssCustomProperties = false;\n }\n if (process.env.CARBON_ENABLE_CSS_GRID) {\n if (process.env.CARBON_ENABLE_CSS_GRID === 'true') {\n enabled$1.enableCssGrid = true;\n } else {\n enabled$1.enableCssGrid = false;\n }\n } else {\n enabled$1.enableCssGrid = false;\n }\n if (process.env.CARBON_ENABLE_V11_RELEASE) {\n if (process.env.CARBON_ENABLE_V11_RELEASE === 'true') {\n enabled$1.enableV11Release = true;\n } else {\n enabled$1.enableV11Release = false;\n }\n } else {\n enabled$1.enableV11Release = true;\n }\n if (process.env.CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST) {\n if (process.env.CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST === 'true') {\n enabled$1.enableExperimentalTileContrast = true;\n } else {\n enabled$1.enableExperimentalTileContrast = false;\n }\n } else {\n enabled$1.enableExperimentalTileContrast = false;\n }\n if (process.env.CARBON_ENABLE_V12_TILE_DEFAULT_ICONS) {\n if (process.env.CARBON_ENABLE_V12_TILE_DEFAULT_ICONS === 'true') {\n enabled$1.enableV12TileDefaultIcons = true;\n } else {\n enabled$1.enableV12TileDefaultIcons = false;\n }\n } else {\n enabled$1.enableV12TileDefaultIcons = false;\n }\n if (process.env.CARBON_ENABLE_V12_TILE_RADIO_ICONS) {\n if (process.env.CARBON_ENABLE_V12_TILE_RADIO_ICONS === 'true') {\n enabled$1.enableV12TileRadioIcons = true;\n } else {\n enabled$1.enableV12TileRadioIcons = false;\n }\n } else {\n enabled$1.enableV12TileRadioIcons = false;\n }\n if (process.env.CARBON_ENABLE_V12_OVERFLOWMENU) {\n if (process.env.CARBON_ENABLE_V12_OVERFLOWMENU === 'true') {\n enabled$1.enableV12Overflowmenu = true;\n } else {\n enabled$1.enableV12Overflowmenu = false;\n }\n } else {\n enabled$1.enableV12Overflowmenu = false;\n }\n if (process.env.CARBON_ENABLE_TREEVIEW_CONTROLLABLE) {\n if (process.env.CARBON_ENABLE_TREEVIEW_CONTROLLABLE === 'true') {\n enabled$1.enableTreeviewControllable = true;\n } else {\n enabled$1.enableTreeviewControllable = false;\n }\n } else {\n enabled$1.enableTreeviewControllable = false;\n }\n if (process.env.CARBON_ENABLE_V12_STRUCTURED_LIST_VISIBLE_ICONS) {\n if (process.env.CARBON_ENABLE_V12_STRUCTURED_LIST_VISIBLE_ICONS === 'true') {\n enabled$1.enableV12StructuredListVisibleIcons = true;\n } else {\n enabled$1.enableV12StructuredListVisibleIcons = false;\n }\n } else {\n enabled$1.enableV12StructuredListVisibleIcons = false;\n }\n if (process.env.CARBON_ENABLE_EXPERIMENTAL_FOCUS_WRAP_WITHOUT_SENTINELS) {\n if (process.env.CARBON_ENABLE_EXPERIMENTAL_FOCUS_WRAP_WITHOUT_SENTINELS === 'true') {\n enabled$1.enableExperimentalFocusWrapWithoutSentinels = true;\n } else {\n enabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n }\n } else {\n enabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n }\n if (process.env.CARBON_ENABLE_DIALOG_ELEMENT) {\n if (process.env.CARBON_ENABLE_DIALOG_ELEMENT === 'true') {\n enabled$1.enableDialogElement = true;\n } else {\n enabled$1.enableDialogElement = false;\n }\n } else {\n enabled$1.enableDialogElement = false;\n }\n if (process.env.CARBON_ENABLE_V12_DYNAMIC_FLOATING_STYLES) {\n if (process.env.CARBON_ENABLE_V12_DYNAMIC_FLOATING_STYLES === 'true') {\n enabled$1.enableV12DynamicFloatingStyles = true;\n } else {\n enabled$1.enableV12DynamicFloatingStyles = false;\n }\n } else {\n enabled$1.enableV12DynamicFloatingStyles = false;\n }\n} catch (error) {\n enabled$1.enableCssCustomProperties = false;\n enabled$1.enableCssGrid = false;\n enabled$1.enableV11Release = true;\n enabled$1.enableExperimentalTileContrast = false;\n enabled$1.enableV12TileDefaultIcons = false;\n enabled$1.enableV12TileRadioIcons = false;\n enabled$1.enableV12Overflowmenu = false;\n enabled$1.enableTreeviewControllable = false;\n enabled$1.enableV12StructuredListVisibleIcons = false;\n enabled$1.enableExperimentalFocusWrapWithoutSentinels = false;\n enabled$1.enableDialogElement = false;\n enabled$1.enableV12DynamicFloatingStyles = false;\n}\nvar featureFlagInfo = [{\n name: \"enable-css-custom-properties\",\n description: \"Describe what the flag does\",\n enabled: enabled$1.enableCssCustomProperties\n}, {\n name: \"enable-css-grid\",\n description: \"Enable CSS Grid Layout in the Grid and Column React components\\n\",\n enabled: enabled$1.enableCssGrid\n}, {\n name: \"enable-v11-release\",\n description: \"Enable the features and functionality for the v11 Release\\n\",\n enabled: enabled$1.enableV11Release\n}, {\n name: \"enable-experimental-tile-contrast\",\n description: \"Enable the experimental tile improved contrast styles\\n\",\n enabled: enabled$1.enableExperimentalTileContrast\n}, {\n name: \"enable-v12-tile-default-icons\",\n description: \"Enable rendering of default icons in the tile components\\n\",\n enabled: enabled$1.enableV12TileDefaultIcons\n}, {\n name: \"enable-v12-tile-radio-icons\",\n description: \"Enable rendering of radio icons in the RadioTile component\\n\",\n enabled: enabled$1.enableV12TileRadioIcons\n}, {\n name: \"enable-v12-overflowmenu\",\n description: \"Enable the use of the v12 OverflowMenu leveraging the Menu subcomponents\\n\",\n enabled: enabled$1.enableV12Overflowmenu\n}, {\n name: \"enable-treeview-controllable\",\n description: \"Enable the new TreeView controllable API\\n\",\n enabled: enabled$1.enableTreeviewControllable\n}, {\n name: \"enable-v12-structured-list-visible-icons\",\n description: \"Enable rendering of radio icons in the StructuredList component\\n\",\n enabled: enabled$1.enableV12StructuredListVisibleIcons\n}, {\n name: \"enable-experimental-focus-wrap-without-sentinels\",\n description: \"Enable the new focus wrap behavior that doesn't use sentinel nodes\\n\",\n enabled: enabled$1.enableExperimentalFocusWrapWithoutSentinels\n}, {\n name: \"enable-dialog-element\",\n description: \"Enable components to utilize the native dialog element\\n\",\n enabled: enabled$1.enableDialogElement\n}, {\n name: \"enable-v12-dynamic-floating-styles\",\n description: \"Enable dynamic setting of floating styles for components like Popover, Tooltip, etc.\\n\",\n enabled: enabled$1.enableV12DynamicFloatingStyles\n}];\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var n = 0,\n F = function () {};\n return {\n s: F,\n n: function () {\n return n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[n++]\n };\n },\n e: function (r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function () {\n t = t.call(r);\n },\n n: function () {\n var r = t.next();\n return a = r.done, r;\n },\n e: function (r) {\n u = !0, o = r;\n },\n f: function () {\n try {\n a || null == t.return || t.return();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\n/**\n * Copyright IBM Corp. 2015, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar FeatureFlagScope = /*#__PURE__*/function () {\n function FeatureFlagScope(flags) {\n var _this = this;\n _classCallCheck(this, FeatureFlagScope);\n this.flags = new Map();\n if (flags) {\n Object.keys(flags).forEach(function (key) {\n _this.flags.set(key, flags[key]);\n });\n }\n }\n\n /**\n * Check to see if a flag exists\n * @param {string} name\n */\n return _createClass(FeatureFlagScope, [{\n key: \"checkForFlag\",\n value: function checkForFlag(name) {\n if (!this.flags.has(name)) {\n throw new Error(\"Unable to find a feature flag with the name: `\".concat(name, \"`\"));\n }\n }\n\n /**\n * Add a feature flag\n * @param {string} name\n * @param {boolean} enabled\n */\n }, {\n key: \"add\",\n value: function add(name, enabled) {\n if (this.flags.has(name)) {\n throw new Error(\"The feature flag: \".concat(name, \" already exists\"));\n }\n this.flags.set(name, enabled);\n }\n\n /**\n * Enable a feature flag\n * @param {string} name\n */\n }, {\n key: \"enable\",\n value: function enable(name) {\n this.checkForFlag(name);\n this.flags.set(name, true);\n }\n\n /**\n * Disable a feature flag\n * @param {string} name\n */\n }, {\n key: \"disable\",\n value: function disable(name) {\n this.checkForFlag(name);\n this.flags.set(name, false);\n }\n\n /**\n * Merge the given feature flags with the current set of feature flags.\n * Duplicate keys will be set to the value in the given feature flags.\n * @param {object} flags\n */\n }, {\n key: \"merge\",\n value: function merge(flags) {\n var _this2 = this;\n Object.keys(flags).forEach(function (key) {\n _this2.flags.set(key, flags[key]);\n });\n }\n\n /**\n * @param {FeatureFlagScope} scope\n */\n }, {\n key: \"mergeWithScope\",\n value: function mergeWithScope(scope) {\n var _iterator = _createForOfIteratorHelper(scope.flags),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n key = _step$value[0],\n value = _step$value[1];\n if (this.flags.has(key)) {\n continue;\n }\n this.flags.set(key, value);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n /**\n * Check if a feature flag is enabled\n * @param {string} name\n * @returns {boolean}\n */\n }, {\n key: \"enabled\",\n value: function enabled(name) {\n this.checkForFlag(name);\n return this.flags.get(name);\n }\n }]);\n}();\n\nvar FeatureFlags = createScope();\nfor (var i = 0; i < featureFlagInfo.length; i++) {\n var featureFlag = featureFlagInfo[i];\n FeatureFlags.add(featureFlag.name, featureFlag.enabled);\n}\nfunction createScope(flags) {\n return new FeatureFlagScope(flags);\n}\nfunction add() {\n return FeatureFlags.add.apply(FeatureFlags, arguments);\n}\nfunction enable() {\n return FeatureFlags.enable.apply(FeatureFlags, arguments);\n}\nfunction disable() {\n return FeatureFlags.disable.apply(FeatureFlags, arguments);\n}\nfunction enabled() {\n return FeatureFlags.enabled.apply(FeatureFlags, arguments);\n}\nfunction merge() {\n return FeatureFlags.merge.apply(FeatureFlags, arguments);\n}\n\nexport { FeatureFlags, add, createScope, disable, enable, enabled, merge };\n","/**\n * Copyright IBM Corp. 2016, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport * as FeatureFlags from '@carbon/feature-flags';\n\nFeatureFlags.merge({\n 'enable-css-custom-properties': true,\n 'enable-css-grid': true,\n 'enable-v11-release': true,\n 'enable-experimental-tile-contrast': false,\n 'enable-v12-tile-radio-icons': false,\n 'enable-v12-structured-list-visible-icons': false,\n 'enable-v12-dynamic-floating-styles': false\n});\n","!function(e,o){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=o():\"function\"==typeof define&&define.amd?define(o):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isToday=o()}(this,(function(){\"use strict\";return function(e,o,t){o.prototype.isToday=function(){var e=\"YYYY-MM-DD\",o=t();return this.format(e)===o.format(e)}}}));","(function ($) {\n\n'use strict';\n\nvar Pattern = require('./lib/pattern');\n\n/*\n * Normalize arguments, if not given, to:\n * string: (new Date()).toString()\n * options: {}\n */\nfunction optArgs(cb) {\n\treturn function (string, options) {\n\t\tif (typeof string === 'object') {\n\t\t\toptions = string;\n\t\t\tstring = null;\n\t\t}\n\t\tif (string === null || string === undefined) {\n\t\t\tstring = (new Date()).toString();\n\t\t}\n\t\tif (!options) {\n\t\t\toptions = {};\n\t\t}\n\n\t\treturn cb.call(this, string, options);\n\t};\n}\n\nvar GeoPattern = module.exports = {\n\tgenerate: optArgs(function (string, options) {\n\t\treturn new Pattern(string, options);\n\t})\n};\n\nif ($) {\n\n\t// If jQuery, add plugin\n\t$.fn.geopattern = optArgs(function (string, options) {\n\t\treturn this.each(function () {\n\t\t\tvar titleSha = $(this).attr('data-title-sha');\n\t\t\tif (titleSha) {\n\t\t\t\toptions = $.extend({\n\t\t\t\t\thash: titleSha\n\t\t\t\t}, options);\n\t\t\t}\n\t\t\tvar pattern = GeoPattern.generate(string, options);\n\t\t\t$(this).css('background-image', pattern.toDataUrl());\n\t\t});\n\t});\n\n}\n\n}(typeof jQuery !== 'undefined' ? jQuery : null));\n","/*eslint sort-vars:0, curly:0*/\n\n'use strict';\n\n/**\n * Converts a hex CSS color value to RGB.\n * Adapted from http://stackoverflow.com/a/5624139.\n *\n * @param\tString\thex\t\tThe hexadecimal color value\n * @return\tObject\t\t\tThe RGB representation\n */\nfunction hex2rgb(hex) {\n\t// Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\n\tvar shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n\thex = hex.replace(shorthandRegex, function (m, r, g, b) {\n\t\treturn r + r + g + g + b + b;\n\t});\n\n\tvar result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n\treturn result ? {\n\t\tr: parseInt(result[1], 16),\n\t\tg: parseInt(result[2], 16),\n\t\tb: parseInt(result[3], 16)\n\t} : null;\n}\n\n/**\n * Converts an RGB color value to a hex string.\n * @param Object rgb RGB as r, g, and b keys\n * @return String Hex color string\n */\nfunction rgb2hex(rgb) {\n\treturn '#' + ['r', 'g', 'b'].map(function (key) {\n\t\treturn ('0' + rgb[key].toString(16)).slice(-2);\n\t}).join('');\n}\n\n/**\n * Converts an RGB color value to HSL. Conversion formula adapted from\n * http://en.wikipedia.org/wiki/HSL_color_space. This function adapted\n * from http://stackoverflow.com/a/9493060.\n * Assumes r, g, and b are contained in the set [0, 255] and\n * returns h, s, and l in the set [0, 1].\n *\n * @param Object rgb RGB as r, g, and b keys\n * @return Object HSL as h, s, and l keys\n */\nfunction rgb2hsl(rgb) {\n\tvar r = rgb.r, g = rgb.g, b = rgb.b;\n\tr /= 255; g /= 255; b /= 255;\n\tvar max = Math.max(r, g, b), min = Math.min(r, g, b);\n\tvar h, s, l = (max + min) / 2;\n\n\tif (max === min) {\n\t\th = s = 0; // achromatic\n\t} else {\n\t\tvar d = max - min;\n\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\t\tswitch (max) {\n\t\t\tcase r: h = (g - b) / d + (g < b ? 6 : 0); break;\n\t\t\tcase g: h = (b - r) / d + 2; break;\n\t\t\tcase b: h = (r - g) / d + 4; break;\n\t\t}\n\t\th /= 6;\n\t}\n\n\treturn { h: h, s: s, l: l };\n}\n\n/**\n * Converts an HSL color value to RGB. Conversion formula adapted from\n * http://en.wikipedia.org/wiki/HSL_color_space. This function adapted\n * from http://stackoverflow.com/a/9493060.\n * Assumes h, s, and l are contained in the set [0, 1] and\n * returns r, g, and b in the set [0, 255].\n *\n * @param Object hsl HSL as h, s, and l keys\n * @return Object RGB as r, g, and b values\n */\nfunction hsl2rgb(hsl) {\n\n\tfunction hue2rgb(p, q, t) {\n\t\tif (t < 0) t += 1;\n\t\tif (t > 1) t -= 1;\n\t\tif (t < 1 / 6) return p + (q - p) * 6 * t;\n\t\tif (t < 1 / 2) return q;\n\t\tif (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n\t\treturn p;\n\t}\n\n\tvar h = hsl.h, s = hsl.s, l = hsl.l;\n\tvar r, g, b;\n\n\tif(s === 0){\n\t\tr = g = b = l; // achromatic\n\t}else{\n\n\t\tvar q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n\t\tvar p = 2 * l - q;\n\t\tr = hue2rgb(p, q, h + 1 / 3);\n\t\tg = hue2rgb(p, q, h);\n\t\tb = hue2rgb(p, q, h - 1 / 3);\n\t}\n\n\treturn {\n\t\tr: Math.round(r * 255),\n\t\tg: Math.round(g * 255),\n\t\tb: Math.round(b * 255)\n\t};\n}\n\nmodule.exports = {\n\thex2rgb: hex2rgb,\n\trgb2hex: rgb2hex,\n\trgb2hsl: rgb2hsl,\n\thsl2rgb: hsl2rgb,\n\trgb2rgbString: function (rgb) {\n\t\treturn 'rgb(' + [rgb.r, rgb.g, rgb.b].join(',') + ')';\n\t}\n};\n","'use strict';\n\nvar extend = require('extend');\nvar color = require('./color');\nvar SHA1 = require('./sha1');\nvar SVG = require('./svg');\n\n\n\nvar DEFAULTS = {\n\tbaseColor: '#933c3c'\n};\n\nvar PATTERNS = [\n\t'octogons',\n\t'overlappingCircles',\n\t'plusSigns',\n\t'xes',\n\t'sineWaves',\n\t'hexagons',\n\t'overlappingRings',\n\t'plaid',\n\t'triangles',\n\t'squares',\n\t'concentricCircles',\n\t'diamonds',\n\t'tessellation',\n\t'nestedSquares',\n\t'mosaicSquares',\n\t'chevrons'\n];\n\nvar FILL_COLOR_DARK = '#222';\nvar FILL_COLOR_LIGHT = '#ddd';\nvar STROKE_COLOR = '#000';\nvar STROKE_OPACITY = 0.02;\nvar OPACITY_MIN = 0.02;\nvar OPACITY_MAX = 0.15;\n\n\n\n// Helpers\n\n/**\n * Extract a substring from a hex string and parse it as an integer\n * @param {string} hash - Source hex string\n * @param {number} index - Start index of substring\n * @param {number} [length] - Length of substring. Defaults to 1.\n */\nfunction hexVal(hash, index, len) {\n\treturn parseInt(hash.substr(index, len || 1), 16);\n}\n\n/*\n * Re-maps a number from one range to another\n * http://processing.org/reference/map_.html\n */\nfunction map(value, vMin, vMax, dMin, dMax) {\n\tvar vValue = parseFloat(value);\n\tvar vRange = vMax - vMin;\n\tvar dRange = dMax - dMin;\n\n\treturn (vValue - vMin) * dRange / vRange + dMin;\n}\n\nfunction fillColor(val) {\n\treturn (val % 2 === 0) ? FILL_COLOR_LIGHT : FILL_COLOR_DARK;\n}\n\nfunction fillOpacity(val) {\n\treturn map(val, 0, 15, OPACITY_MIN, OPACITY_MAX);\n}\n\n\n\nvar Pattern = module.exports = function (string, options) {\n\tthis.opts = extend({}, DEFAULTS, options);\n\tthis.hash = options.hash || SHA1(string);\n\tthis.svg = new SVG();\n\n\tthis.generateBackground();\n\tthis.generatePattern();\n\n\treturn this;\n};\n\nPattern.prototype.toSvg = function () {\n\treturn this.svg.toString();\n};\n\nPattern.prototype.toString = function () {\n\treturn this.toSvg();\n};\n\nPattern.prototype.toBase64 = function () {\n\tvar str = this.toSvg();\n\tvar b64;\n\n\t// Use window.btoa if in the browser; otherwise fallback to node buffers\n\tif (typeof window !== 'undefined' && typeof window.btoa === 'function') {\n\t\tb64 = window.btoa(str);\n\t} else {\n\t\tb64 = new Buffer(str).toString('base64');\n\t}\n\n\treturn b64;\n};\n\nPattern.prototype.toDataUri = function () {\n\treturn 'data:image/svg+xml;base64,' + this.toBase64();\n};\n\nPattern.prototype.toDataUrl = function () {\n\treturn 'url(\"' + this.toDataUri() + '\")';\n};\n\nPattern.prototype.generateBackground = function () {\n\tvar baseColor, hueOffset, rgb, satOffset;\n\n\tif (this.opts.color) {\n\t\trgb = color.hex2rgb(this.opts.color);\n\t} else {\n\t\thueOffset = map(hexVal(this.hash, 14, 3), 0, 4095, 0, 359);\n\t\tsatOffset = hexVal(this.hash, 17);\n\t\tbaseColor = color.rgb2hsl(color.hex2rgb(this.opts.baseColor));\n\n\t\tbaseColor.h = (((baseColor.h * 360 - hueOffset) + 360) % 360) / 360;\n\n\t\tif (satOffset % 2 === 0) {\n\t\t\tbaseColor.s = Math.min(1, ((baseColor.s * 100) + satOffset) / 100);\n\t\t} else {\n\t\t\tbaseColor.s = Math.max(0, ((baseColor.s * 100) - satOffset) / 100);\n\t\t}\n\t\trgb = color.hsl2rgb(baseColor);\n\t}\n\n\tthis.color = color.rgb2hex(rgb);\n\n\tthis.svg.rect(0, 0, '100%', '100%', {\n\t\tfill: color.rgb2rgbString(rgb)\n\t});\n};\n\nPattern.prototype.generatePattern = function () {\n\tvar generator = this.opts.generator;\n\n\tif (generator) {\n\t\tif (PATTERNS.indexOf(generator) < 0) {\n\t\t\tthrow new Error('The generator '\n\t\t\t\t+ generator\n\t\t\t\t+ ' does not exist.');\n\t\t}\n\t} else {\n\t\tgenerator = PATTERNS[hexVal(this.hash, 20)];\n\t}\n\n\treturn this['geo' + generator.slice(0, 1).toUpperCase() + generator.slice(1)]();\n};\n\nfunction buildHexagonShape(sideLength) {\n\tvar c = sideLength;\n\tvar a = c / 2;\n\tvar b = Math.sin(60 * Math.PI / 180) * c;\n\treturn [\n\t\t0, b,\n\t\ta, 0,\n\t\ta + c, 0,\n\t\t2 * c, b,\n\t\ta + c, 2 * b,\n\t\ta, 2 * b,\n\t\t0, b\n\t].join(',');\n}\n\nPattern.prototype.geoHexagons = function () {\n\tvar scale = hexVal(this.hash, 0);\n\tvar sideLength = map(scale, 0, 15, 8, 60);\n\tvar hexHeight = sideLength * Math.sqrt(3);\n\tvar hexWidth = sideLength * 2;\n\tvar hex = buildHexagonShape(sideLength);\n\tvar dy, fill, i, opacity, styles, val, x, y;\n\n\tthis.svg.setWidth(hexWidth * 3 + sideLength * 3);\n\tthis.svg.setHeight(hexHeight * 6);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\tdy = x % 2 === 0 ? y * hexHeight : y * hexHeight + hexHeight / 2;\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tfill: fill,\n\t\t\t\t'fill-opacity': opacity,\n\t\t\t\tstroke: STROKE_COLOR,\n\t\t\t\t'stroke-opacity': STROKE_OPACITY\n\t\t\t};\n\n\t\t\tthis.svg.polyline(hex, styles).transform({\n\t\t\t\ttranslate: [\n\t\t\t\t\tx * sideLength * 1.5 - hexWidth / 2,\n\t\t\t\t\tdy - hexHeight / 2\n\t\t\t\t]\n\t\t\t});\n\n\t\t\t// Add an extra one at top-right, for tiling.\n\t\t\tif (x === 0) {\n\t\t\t\tthis.svg.polyline(hex, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t6 * sideLength * 1.5 - hexWidth / 2,\n\t\t\t\t\t\tdy - hexHeight / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Add an extra row at the end that matches the first row, for tiling.\n\t\t\tif (y === 0) {\n\t\t\t\tdy = x % 2 === 0 ? 6 * hexHeight : 6 * hexHeight + hexHeight / 2;\n\t\t\t\tthis.svg.polyline(hex, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tx * sideLength * 1.5 - hexWidth / 2,\n\t\t\t\t\t\tdy - hexHeight / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Add an extra one at bottom-right, for tiling.\n\t\t\tif (x === 0 && y === 0) {\n\t\t\t\tthis.svg.polyline(hex, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t6 * sideLength * 1.5 - hexWidth / 2,\n\t\t\t\t\t\t5 * hexHeight + hexHeight / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\n\t\t\ti++;\n\t\t}\n\t}\n};\n\nPattern.prototype.geoSineWaves = function () {\n\tvar period = Math.floor(map(hexVal(this.hash, 0), 0, 15, 100, 400));\n\tvar amplitude = Math.floor(map(hexVal(this.hash, 1), 0, 15, 30, 100));\n\tvar waveWidth = Math.floor(map(hexVal(this.hash, 2), 0, 15, 3, 30));\n\tvar fill, i, opacity, str, styles, val, xOffset;\n\n\tthis.svg.setWidth(period);\n\tthis.svg.setHeight(waveWidth * 36);\n\n\tfor (i = 0; i < 36; i++) {\n\t\tval = hexVal(this.hash, i);\n\t\topacity = fillOpacity(val);\n\t\tfill = fillColor(val);\n\t\txOffset = period / 4 * 0.7;\n\n\t\tstyles = {\n\t\t\tfill: 'none',\n\t\t\tstroke: fill,\n\t\t\topacity: opacity,\n\t\t\t'stroke-width': '' + waveWidth + 'px'\n\t\t};\n\n\t\tstr = 'M0 ' + amplitude +\n\t\t\t' C ' + xOffset + ' 0, ' + (period / 2 - xOffset) + ' 0, ' + (period / 2) + ' ' + amplitude +\n\t\t\t' S ' + (period - xOffset) + ' ' + (amplitude * 2) + ', ' + period + ' ' + amplitude +\n\t\t\t' S ' + (period * 1.5 - xOffset) + ' 0, ' + (period * 1.5) + ', ' + amplitude;\n\n\t\tthis.svg.path(str, styles).transform({\n\t\t\ttranslate: [\n\t\t\t\t-period / 4,\n\t\t\t\twaveWidth * i - amplitude * 1.5\n\t\t\t]\n\t\t});\n\t\tthis.svg.path(str, styles).transform({\n\t\t\ttranslate: [\n\t\t\t\t-period / 4,\n\t\t\t\twaveWidth * i - amplitude * 1.5 + waveWidth * 36\n\t\t\t]\n\t\t});\n\t}\n};\n\nfunction buildChevronShape(width, height) {\n\tvar e = height * 0.66;\n\treturn [\n\t\t[\n\t\t\t0, 0,\n\t\t\twidth / 2, height - e,\n\t\t\twidth / 2, height,\n\t\t\t0, e,\n\t\t\t0, 0\n\t\t],\n\t\t[\n\t\t\twidth / 2, height - e,\n\t\t\twidth, 0,\n\t\t\twidth, e,\n\t\t\twidth / 2, height,\n\t\t\twidth / 2, height - e\n\t\t]\n\t].map(function (x) { return x.join(','); });\n}\n\nPattern.prototype.geoChevrons = function () {\n\tvar chevronWidth = map(hexVal(this.hash, 0), 0, 15, 30, 80);\n\tvar chevronHeight = map(hexVal(this.hash, 0), 0, 15, 30, 80);\n\tvar chevron = buildChevronShape(chevronWidth, chevronHeight);\n\tvar fill, i, opacity, styles, val, x, y;\n\n\tthis.svg.setWidth(chevronWidth * 6);\n\tthis.svg.setHeight(chevronHeight * 6 * 0.66);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tstroke: STROKE_COLOR,\n\t\t\t\t'stroke-opacity': STROKE_OPACITY,\n\t\t\t\tfill: fill,\n\t\t\t\t'fill-opacity': opacity,\n\t\t\t\t'stroke-width': 1\n\t\t\t};\n\n\t\t\tthis.svg.group(styles).transform({\n\t\t\t\ttranslate: [\n\t\t\t\t\tx * chevronWidth,\n\t\t\t\t\ty * chevronHeight * 0.66 - chevronHeight / 2\n\t\t\t\t]\n\t\t\t}).polyline(chevron).end();\n\n\t\t\t// Add an extra row at the end that matches the first row, for tiling.\n\t\t\tif (y === 0) {\n\t\t\t\tthis.svg.group(styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tx * chevronWidth,\n\t\t\t\t\t\t6 * chevronHeight * 0.66 - chevronHeight / 2\n\t\t\t\t\t]\n\t\t\t\t}).polyline(chevron).end();\n\t\t\t}\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nfunction buildPlusShape(squareSize) {\n\treturn [\n\t\t[squareSize, 0, squareSize, squareSize * 3],\n\t\t[0, squareSize, squareSize * 3, squareSize]\n\t];\n}\n\nPattern.prototype.geoPlusSigns = function () {\n\tvar squareSize = map(hexVal(this.hash, 0), 0, 15, 10, 25);\n\tvar plusSize = squareSize * 3;\n\tvar plusShape = buildPlusShape(squareSize);\n\tvar dx, fill, i, opacity, styles, val, x, y;\n\n\tthis.svg.setWidth(squareSize * 12);\n\tthis.svg.setHeight(squareSize * 12);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\t\t\tdx = (y % 2 === 0) ? 0 : 1;\n\n\t\t\tstyles = {\n\t\t\t\tfill: fill,\n\t\t\t\tstroke: STROKE_COLOR,\n\t\t\t\t'stroke-opacity': STROKE_OPACITY,\n\t\t\t\t'fill-opacity': opacity\n\t\t\t};\n\n\t\t\tthis.svg.group(styles).transform({\n\t\t\t\ttranslate: [\n\t\t\t\t\tx * plusSize - x * squareSize + dx * squareSize - squareSize,\n\t\t\t\t\ty * plusSize - y * squareSize - plusSize / 2\n\t\t\t\t]\n\t\t\t}).rect(plusShape).end();\n\n\t\t\t// Add an extra column on the right for tiling.\n\t\t\tif (x === 0) {\n\t\t\t\tthis.svg.group(styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t4 * plusSize - x * squareSize + dx * squareSize - squareSize,\n\t\t\t\t\t\ty * plusSize - y * squareSize - plusSize / 2\n\t\t\t\t\t]\n\t\t\t\t}).rect(plusShape).end();\n\t\t\t}\n\n\t\t\t// Add an extra row on the bottom that matches the first row, for tiling\n\t\t\tif (y === 0) {\n\t\t\t\tthis.svg.group(styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tx * plusSize - x * squareSize + dx * squareSize - squareSize,\n\t\t\t\t\t\t4 * plusSize - y * squareSize - plusSize / 2\n\t\t\t\t\t]\n\t\t\t\t}).rect(plusShape).end();\n\t\t\t}\n\n\t\t\t// Add an extra one at top-right and bottom-right, for tiling\n\t\t\tif (x === 0 && y === 0) {\n\t\t\t\tthis.svg.group(styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t4 * plusSize - x * squareSize + dx * squareSize - squareSize,\n\t\t\t\t\t\t4 * plusSize - y * squareSize - plusSize / 2\n\t\t\t\t\t]\n\t\t\t\t}).rect(plusShape).end();\n\t\t\t}\n\n\t\t\ti++;\n\t\t}\n\t}\n};\n\nPattern.prototype.geoXes = function () {\n\tvar squareSize = map(hexVal(this.hash, 0), 0, 15, 10, 25);\n\tvar xShape = buildPlusShape(squareSize);\n\tvar xSize = squareSize * 3 * 0.943;\n\tvar dy, fill, i, opacity, styles, val, x, y;\n\n\tthis.svg.setWidth(xSize * 3);\n\tthis.svg.setHeight(xSize * 3);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tdy = x % 2 === 0 ? y * xSize - xSize * 0.5 : y * xSize - xSize * 0.5 + xSize / 4;\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tfill: fill,\n\t\t\t\topacity: opacity\n\t\t\t};\n\n\t\t\tthis.svg.group(styles).transform({\n\t\t\t\ttranslate: [\n\t\t\t\t\tx * xSize / 2 - xSize / 2,\n\t\t\t\t\tdy - y * xSize / 2\n\t\t\t\t],\n\t\t\t\trotate: [\n\t\t\t\t\t45,\n\t\t\t\t\txSize / 2,\n\t\t\t\t\txSize / 2\n\t\t\t\t]\n\t\t\t}).rect(xShape).end();\n\n\t\t\t// Add an extra column on the right for tiling.\n\t\t\tif (x === 0) {\n\t\t\t\tthis.svg.group(styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t6 * xSize / 2 - xSize / 2,\n\t\t\t\t\t\tdy - y * xSize / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\t45,\n\t\t\t\t\t\txSize / 2,\n\t\t\t\t\t\txSize / 2\n\t\t\t\t\t]\n\t\t\t\t}).rect(xShape).end();\n\t\t\t}\n\n\t\t\t// // Add an extra row on the bottom that matches the first row, for tiling.\n\t\t\tif (y === 0) {\n\t\t\t\tdy = x % 2 === 0 ? 6 * xSize - xSize / 2 : 6 * xSize - xSize / 2 + xSize / 4;\n\t\t\t\tthis.svg.group(styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tx * xSize / 2 - xSize / 2,\n\t\t\t\t\t\tdy - 6 * xSize / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\t45,\n\t\t\t\t\t\txSize / 2,\n\t\t\t\t\t\txSize / 2\n\t\t\t\t\t]\n\t\t\t\t}).rect(xShape).end();\n\t\t\t}\n\n\t\t\t// These can hang off the bottom, so put a row at the top for tiling.\n\t\t\tif (y === 5) {\n\t\t\t\tthis.svg.group(styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tx * xSize / 2 - xSize / 2,\n\t\t\t\t\t\tdy - 11 * xSize / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\t45,\n\t\t\t\t\t\txSize / 2,\n\t\t\t\t\t\txSize / 2\n\t\t\t\t\t]\n\t\t\t\t}).rect(xShape).end();\n\t\t\t}\n\n\t\t\t// Add an extra one at top-right and bottom-right, for tiling\n\t\t\tif (x === 0 && y === 0) {\n\t\t\t\tthis.svg.group(styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t6 * xSize / 2 - xSize / 2,\n\t\t\t\t\t\tdy - 6 * xSize / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\t45,\n\t\t\t\t\t\txSize / 2,\n\t\t\t\t\t\txSize / 2\n\t\t\t\t\t]\n\t\t\t\t}).rect(xShape).end();\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\t}\n};\n\nPattern.prototype.geoOverlappingCircles = function () {\n\tvar scale = hexVal(this.hash, 0);\n\tvar diameter = map(scale, 0, 15, 25, 200);\n\tvar radius = diameter / 2;\n\tvar circle, fill, i, opacity, styles, val, x, y;\n\n\tthis.svg.setWidth(radius * 6);\n\tthis.svg.setHeight(radius * 6);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tfill: fill,\n\t\t\t\topacity: opacity\n\t\t\t};\n\n\t\t\tthis.svg.circle(x * radius, y * radius, radius, styles);\n\n\t\t\t// Add an extra one at top-right, for tiling.\n\t\t\tif (x === 0) {\n\t\t\t\tthis.svg.circle(6 * radius, y * radius, radius, styles);\n\t\t\t}\n\n\t\t\t// // Add an extra row at the end that matches the first row, for tiling.\n\t\t\tif (y === 0) {\n\t\t\t\tthis.svg.circle(x * radius, 6 * radius, radius, styles);\n\t\t\t}\n\n\t\t\t// // Add an extra one at bottom-right, for tiling.\n\t\t\tif (x === 0 && y === 0) {\n\t\t\t\tthis.svg.circle(6 * radius, 6 * radius, radius, styles);\n\t\t\t}\n\n\t\t\ti++;\n\t\t}\n\t}\n};\n\nfunction buildOctogonShape(squareSize) {\n\tvar s = squareSize;\n\tvar c = s * 0.33;\n\treturn [\n\t\tc, 0,\n\t\ts - c, 0,\n\t\ts, c,\n\t\ts, s - c,\n\t\ts - c, s,\n\t\tc, s,\n\t\t0, s - c,\n\t\t0, c,\n\t\tc, 0\n\t].join(',');\n}\n\nPattern.prototype.geoOctogons = function () {\n\tvar squareSize = map(hexVal(this.hash, 0), 0, 15, 10, 60);\n\tvar tile = buildOctogonShape(squareSize);\n\tvar fill, i, opacity, val, x, y;\n\n\tthis.svg.setWidth(squareSize * 6);\n\tthis.svg.setHeight(squareSize * 6);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tthis.svg.polyline(tile, {\n\t\t\t\tfill: fill,\n\t\t\t\t'fill-opacity': opacity,\n\t\t\t\tstroke: STROKE_COLOR,\n\t\t\t\t'stroke-opacity': STROKE_OPACITY\n\t\t\t}).transform({\n\t\t\t\ttranslate: [\n\t\t\t\t\tx * squareSize,\n\t\t\t\t\ty * squareSize\n\t\t\t\t]\n\t\t\t});\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nPattern.prototype.geoSquares = function () {\n\tvar squareSize = map(hexVal(this.hash, 0), 0, 15, 10, 60);\n\tvar fill, i, opacity, val, x, y;\n\n\tthis.svg.setWidth(squareSize * 6);\n\tthis.svg.setHeight(squareSize * 6);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tthis.svg.rect(x * squareSize, y * squareSize, squareSize, squareSize, {\n\t\t\t\tfill: fill,\n\t\t\t\t'fill-opacity': opacity,\n\t\t\t\tstroke: STROKE_COLOR,\n\t\t\t\t'stroke-opacity': STROKE_OPACITY\n\t\t\t});\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nPattern.prototype.geoConcentricCircles = function () {\n\tvar scale = hexVal(this.hash, 0);\n\tvar ringSize = map(scale, 0, 15, 10, 60);\n\tvar strokeWidth = ringSize / 5;\n\tvar fill, i, opacity, val, x, y;\n\n\tthis.svg.setWidth((ringSize + strokeWidth) * 6);\n\tthis.svg.setHeight((ringSize + strokeWidth) * 6);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tthis.svg.circle(\n\t\t\t\tx * ringSize + x * strokeWidth + (ringSize + strokeWidth) / 2,\n\t\t\t\ty * ringSize + y * strokeWidth + (ringSize + strokeWidth) / 2,\n\t\t\t\tringSize / 2,\n\t\t\t\t{\n\t\t\t\t\tfill: 'none',\n\t\t\t\t\tstroke: fill,\n\t\t\t\t\topacity: opacity,\n\t\t\t\t\t'stroke-width': strokeWidth + 'px'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tval = hexVal(this.hash, 39 - i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tthis.svg.circle(\n\t\t\t\tx * ringSize + x * strokeWidth + (ringSize + strokeWidth) / 2,\n\t\t\t\ty * ringSize + y * strokeWidth + (ringSize + strokeWidth) / 2,\n\t\t\t\tringSize / 4,\n\t\t\t\t{\n\t\t\t\t\tfill: fill,\n\t\t\t\t\t'fill-opacity': opacity\n\t\t\t\t}\n\t\t\t);\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nPattern.prototype.geoOverlappingRings = function () {\n\tvar scale = hexVal(this.hash, 0);\n\tvar ringSize = map(scale, 0, 15, 10, 60);\n\tvar strokeWidth = ringSize / 4;\n\tvar fill, i, opacity, styles, val, x, y;\n\n\tthis.svg.setWidth(ringSize * 6);\n\tthis.svg.setHeight(ringSize * 6);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tfill: 'none',\n\t\t\t\tstroke: fill,\n\t\t\t\topacity: opacity,\n\t\t\t\t'stroke-width': strokeWidth + 'px'\n\t\t\t};\n\n\t\t\tthis.svg.circle(x * ringSize, y * ringSize, ringSize - strokeWidth / 2, styles);\n\n\t\t\t// Add an extra one at top-right, for tiling.\n\t\t\tif (x === 0) {\n\t\t\t\tthis.svg.circle(6 * ringSize, y * ringSize, ringSize - strokeWidth / 2, styles);\n\t\t\t}\n\n\t\t\tif (y === 0) {\n\t\t\t\tthis.svg.circle(x * ringSize, 6 * ringSize, ringSize - strokeWidth / 2, styles);\n\t\t\t}\n\n\t\t\tif (x === 0 && y === 0) {\n\t\t\t\tthis.svg.circle(6 * ringSize, 6 * ringSize, ringSize - strokeWidth / 2, styles);\n\t\t\t}\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nfunction buildTriangleShape(sideLength, height) {\n\tvar halfWidth = sideLength / 2;\n\treturn [\n\t\thalfWidth, 0,\n\t\tsideLength, height,\n\t\t0, height,\n\t\thalfWidth, 0\n\t].join(',');\n}\n\nPattern.prototype.geoTriangles = function () {\n\tvar scale = hexVal(this.hash, 0);\n\tvar sideLength = map(scale, 0, 15, 15, 80);\n\tvar triangleHeight = sideLength / 2 * Math.sqrt(3);\n\tvar triangle = buildTriangleShape(sideLength, triangleHeight);\n\tvar fill, i, opacity, rotation, styles, val, x, y;\n\n\tthis.svg.setWidth(sideLength * 3);\n\tthis.svg.setHeight(triangleHeight * 6);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tfill: fill,\n\t\t\t\t'fill-opacity': opacity,\n\t\t\t\tstroke: STROKE_COLOR,\n\t\t\t\t'stroke-opacity': STROKE_OPACITY\n\t\t\t};\n\n\t\t\tif (y % 2 === 0) {\n\t\t\t\trotation = x % 2 === 0 ? 180 : 0;\n\t\t\t} else {\n\t\t\t\trotation = x % 2 !== 0 ? 180 : 0;\n\t\t\t}\n\n\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\ttranslate: [\n\t\t\t\t\tx * sideLength * 0.5 - sideLength / 2,\n\t\t\t\t\ttriangleHeight * y\n\t\t\t\t],\n\t\t\t\trotate: [\n\t\t\t\t\trotation,\n\t\t\t\t\tsideLength / 2,\n\t\t\t\t\ttriangleHeight / 2\n\t\t\t\t]\n\t\t\t});\n\n\t\t\t// Add an extra one at top-right, for tiling.\n\t\t\tif (x === 0) {\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t6 * sideLength * 0.5 - sideLength / 2,\n\t\t\t\t\t\ttriangleHeight * y\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\trotation,\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\ttriangleHeight / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nfunction buildDiamondShape(width, height) {\n\treturn [\n\t\twidth / 2, 0,\n\t\twidth, height / 2,\n\t\twidth / 2, height,\n\t\t0, height / 2\n\t].join(',');\n}\n\nPattern.prototype.geoDiamonds = function () {\n\tvar diamondWidth = map(hexVal(this.hash, 0), 0, 15, 10, 50);\n\tvar diamondHeight = map(hexVal(this.hash, 1), 0, 15, 10, 50);\n\tvar diamond = buildDiamondShape(diamondWidth, diamondHeight);\n\tvar dx, fill, i, opacity, styles, val, x, y;\n\n\tthis.svg.setWidth(diamondWidth * 6);\n\tthis.svg.setHeight(diamondHeight * 3);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tfill: fill,\n\t\t\t\t'fill-opacity': opacity,\n\t\t\t\tstroke: STROKE_COLOR,\n\t\t\t\t'stroke-opacity': STROKE_OPACITY\n\t\t\t};\n\n\t\t\tdx = (y % 2 === 0) ? 0 : diamondWidth / 2;\n\n\t\t\tthis.svg.polyline(diamond, styles).transform({\n\t\t\t\ttranslate: [\n\t\t\t\t\tx * diamondWidth - diamondWidth / 2 + dx,\n\t\t\t\t\tdiamondHeight / 2 * y - diamondHeight / 2\n\t\t\t\t]\n\t\t\t});\n\n\t\t\t// Add an extra one at top-right, for tiling.\n\t\t\tif (x === 0) {\n\t\t\t\tthis.svg.polyline(diamond, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t6 * diamondWidth - diamondWidth / 2 + dx,\n\t\t\t\t\t\tdiamondHeight / 2 * y - diamondHeight / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Add an extra row at the end that matches the first row, for tiling.\n\t\t\tif (y === 0) {\n\t\t\t\tthis.svg.polyline(diamond, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tx * diamondWidth - diamondWidth / 2 + dx,\n\t\t\t\t\t\tdiamondHeight / 2 * 6 - diamondHeight / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Add an extra one at bottom-right, for tiling.\n\t\t\tif (x === 0 && y === 0) {\n\t\t\t\tthis.svg.polyline(diamond, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t6 * diamondWidth - diamondWidth / 2 + dx,\n\t\t\t\t\t\tdiamondHeight / 2 * 6 - diamondHeight / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nPattern.prototype.geoNestedSquares = function () {\n\tvar blockSize = map(hexVal(this.hash, 0), 0, 15, 4, 12);\n\tvar squareSize = blockSize * 7;\n\tvar fill, i, opacity, styles, val, x, y;\n\n\tthis.svg.setWidth((squareSize + blockSize) * 6 + blockSize * 6);\n\tthis.svg.setHeight((squareSize + blockSize) * 6 + blockSize * 6);\n\n\ti = 0;\n\tfor (y = 0; y < 6; y++) {\n\t\tfor (x = 0; x < 6; x++) {\n\t\t\tval = hexVal(this.hash, i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tfill: 'none',\n\t\t\t\tstroke: fill,\n\t\t\t\topacity: opacity,\n\t\t\t\t'stroke-width': blockSize + 'px'\n\t\t\t};\n\n\t\t\tthis.svg.rect(x * squareSize + x * blockSize * 2 + blockSize / 2,\n\t\t\t y * squareSize + y * blockSize * 2 + blockSize / 2,\n\t\t\t squareSize, squareSize, styles);\n\n\t\t\tval = hexVal(this.hash, 39 - i);\n\t\t\topacity = fillOpacity(val);\n\t\t\tfill = fillColor(val);\n\n\t\t\tstyles = {\n\t\t\t\tfill: 'none',\n\t\t\t\tstroke: fill,\n\t\t\t\topacity: opacity,\n\t\t\t\t'stroke-width': blockSize + 'px'\n\t\t\t};\n\n\t\t\tthis.svg.rect(x * squareSize + x * blockSize * 2 + blockSize / 2 + blockSize * 2,\n\t\t\t y * squareSize + y * blockSize * 2 + blockSize / 2 + blockSize * 2,\n\t\t\t blockSize * 3, blockSize * 3, styles);\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nfunction buildRightTriangleShape(sideLength) {\n\treturn [\n\t\t0, 0,\n\t\tsideLength, sideLength,\n\t\t0, sideLength,\n\t\t0, 0\n\t].join(',');\n}\n\nfunction drawInnerMosaicTile(svg, x, y, triangleSize, vals) {\n\tvar triangle = buildRightTriangleShape(triangleSize);\n\tvar opacity = fillOpacity(vals[0]);\n\tvar fill = fillColor(vals[0]);\n\tvar styles = {\n\t\tstroke: STROKE_COLOR,\n\t\t'stroke-opacity': STROKE_OPACITY,\n\t\t'fill-opacity': opacity,\n\t\tfill: fill\n\t};\n\n\tsvg.polyline(triangle, styles).transform({\n\t\ttranslate: [\n\t\t\tx + triangleSize,\n\t\t\ty\n\t\t],\n\t\tscale: [-1, 1]\n\t});\n\tsvg.polyline(triangle, styles).transform({\n\t\ttranslate: [\n\t\t\tx + triangleSize,\n\t\t\ty + triangleSize * 2\n\t\t],\n\t\tscale: [1, -1]\n\t});\n\n\topacity = fillOpacity(vals[1]);\n\tfill = fillColor(vals[1]);\n\tstyles = {\n\t\tstroke: STROKE_COLOR,\n\t\t'stroke-opacity': STROKE_OPACITY,\n\t\t'fill-opacity': opacity,\n\t\tfill: fill\n\t};\n\n\tsvg.polyline(triangle, styles).transform({\n\t\ttranslate: [\n\t\t\tx + triangleSize,\n\t\t\ty + triangleSize * 2\n\t\t],\n\t\tscale: [-1, -1]\n\t});\n\tsvg.polyline(triangle, styles).transform({\n\t\ttranslate: [\n\t\t\tx + triangleSize,\n\t\t\ty\n\t\t],\n\t\tscale: [1, 1]\n\t});\n}\n\nfunction drawOuterMosaicTile(svg, x, y, triangleSize, val) {\n\tvar opacity = fillOpacity(val);\n\tvar fill = fillColor(val);\n\tvar triangle = buildRightTriangleShape(triangleSize);\n\tvar styles = {\n\t\tstroke: STROKE_COLOR,\n\t\t'stroke-opacity': STROKE_OPACITY,\n\t\t'fill-opacity': opacity,\n\t\tfill: fill\n\t};\n\n\tsvg.polyline(triangle, styles).transform({\n\t\ttranslate: [\n\t\t\tx,\n\t\t\ty + triangleSize\n\t\t],\n\t\tscale: [1, -1]\n\t});\n\tsvg.polyline(triangle, styles).transform({\n\t\ttranslate: [\n\t\t\tx + triangleSize * 2,\n\t\t\ty + triangleSize\n\t\t],\n\t\tscale: [-1, -1]\n\t});\n\tsvg.polyline(triangle, styles).transform({\n\t\ttranslate: [\n\t\t\tx,\n\t\t\ty + triangleSize\n\t\t],\n\t\tscale: [1, 1]\n\t});\n\tsvg.polyline(triangle, styles).transform({\n\t\ttranslate: [\n\t\t\tx + triangleSize * 2,\n\t\t\ty + triangleSize\n\t\t],\n\t\tscale: [-1, 1]\n\t});\n}\n\nPattern.prototype.geoMosaicSquares = function () {\n\tvar triangleSize = map(hexVal(this.hash, 0), 0, 15, 15, 50);\n\tvar i, x, y;\n\n\tthis.svg.setWidth(triangleSize * 8);\n\tthis.svg.setHeight(triangleSize * 8);\n\n\ti = 0;\n\tfor (y = 0; y < 4; y++) {\n\t\tfor (x = 0; x < 4; x++) {\n\t\t\tif (x % 2 === 0) {\n\t\t\t\tif (y % 2 === 0) {\n\t\t\t\t\tdrawOuterMosaicTile(this.svg,\n\t\t\t\t\t\tx * triangleSize * 2,\n\t\t\t\t\t\ty * triangleSize * 2,\n\t\t\t\t\t\ttriangleSize,\n\t\t\t\t\t\thexVal(this.hash, i)\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tdrawInnerMosaicTile(this.svg,\n\t\t\t\t\t\tx * triangleSize * 2,\n\t\t\t\t\t\ty * triangleSize * 2,\n\t\t\t\t\t\ttriangleSize,\n\t\t\t\t\t\t[hexVal(this.hash, i), hexVal(this.hash, i + 1)]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (y % 2 === 0) {\n\t\t\t\t\tdrawInnerMosaicTile(this.svg,\n\t\t\t\t\t\tx * triangleSize * 2,\n\t\t\t\t\t\ty * triangleSize * 2,\n\t\t\t\t\t\ttriangleSize,\n\t\t\t\t\t\t[hexVal(this.hash, i), hexVal(this.hash, i + 1)]\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tdrawOuterMosaicTile(this.svg,\n\t\t\t\t\t\tx * triangleSize * 2,\n\t\t\t\t\t\ty * triangleSize * 2,\n\t\t\t\t\t\ttriangleSize,\n\t\t\t\t\t\thexVal(this.hash, i)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti += 1;\n\t\t}\n\t}\n};\n\nPattern.prototype.geoPlaid = function () {\n\tvar height = 0;\n\tvar width = 0;\n\tvar fill, i, opacity, space, stripeHeight, stripeWidth, val;\n\n\t// Horizontal stripes\n\ti = 0;\n\twhile (i < 36) {\n\t\tspace = hexVal(this.hash, i);\n\t\theight += space + 5;\n\n\t\tval = hexVal(this.hash, i + 1);\n\t\topacity = fillOpacity(val);\n\t\tfill = fillColor(val);\n\t\tstripeHeight = val + 5;\n\n\t\tthis.svg.rect(0, height, '100%', stripeHeight, {\n\t\t\topacity: opacity,\n\t\t\tfill: fill\n\t\t});\n\n\t\theight += stripeHeight;\n\t\ti += 2;\n\t}\n\n\t// Vertical stripes\n\ti = 0;\n\twhile (i < 36) {\n\t\tspace = hexVal(this.hash, i);\n\t\twidth += space + 5;\n\n\t\tval = hexVal(this.hash, i + 1);\n\t\topacity = fillOpacity(val);\n\t\tfill = fillColor(val);\n\t\tstripeWidth = val + 5;\n\n\t\tthis.svg.rect(width, 0, stripeWidth, '100%', {\n\t\t\topacity: opacity,\n\t\t\tfill: fill\n\t\t});\n\n\t\twidth += stripeWidth;\n\t\ti += 2;\n\t}\n\n\tthis.svg.setWidth(width);\n\tthis.svg.setHeight(height);\n};\n\nfunction buildRotatedTriangleShape(sideLength, triangleWidth) {\n\tvar halfHeight = sideLength / 2;\n\treturn [\n\t\t0, 0,\n\t\ttriangleWidth, halfHeight,\n\t\t0, sideLength,\n\t\t0, 0\n\t].join(',');\n}\n\nPattern.prototype.geoTessellation = function () {\n\t// 3.4.6.4 semi-regular tessellation\n\tvar sideLength = map(hexVal(this.hash, 0), 0, 15, 5, 40);\n\tvar hexHeight = sideLength * Math.sqrt(3);\n\tvar hexWidth = sideLength * 2;\n\tvar triangleHeight = sideLength / 2 * Math.sqrt(3);\n\tvar triangle = buildRotatedTriangleShape(sideLength, triangleHeight);\n\tvar tileWidth = sideLength * 3 + triangleHeight * 2;\n\tvar tileHeight = (hexHeight * 2) + (sideLength * 2);\n\tvar fill, i, opacity, styles, val;\n\n\tthis.svg.setWidth(tileWidth);\n\tthis.svg.setHeight(tileHeight);\n\n\tfor (i = 0; i < 20; i++) {\n\t\tval = hexVal(this.hash, i);\n\t\topacity = fillOpacity(val);\n\t\tfill = fillColor(val);\n\n\t\tstyles = {\n\t\t\tstroke: STROKE_COLOR,\n\t\t\t'stroke-opacity': STROKE_OPACITY,\n\t\t\tfill: fill,\n\t\t\t'fill-opacity': opacity,\n\t\t\t'stroke-width': 1\n\t\t};\n\n\t\tswitch (i) {\n\t\t\tcase 0: // All 4 corners\n\t\t\t\tthis.svg.rect(-sideLength / 2, -sideLength / 2, sideLength, sideLength, styles);\n\t\t\t\tthis.svg.rect(tileWidth - sideLength / 2, -sideLength / 2, sideLength, sideLength, styles);\n\t\t\t\tthis.svg.rect(-sideLength / 2, tileHeight - sideLength / 2, sideLength, sideLength, styles);\n\t\t\t\tthis.svg.rect(tileWidth - sideLength / 2, tileHeight - sideLength / 2, sideLength, sideLength, styles);\n\t\t\t\tbreak;\n\t\t\tcase 1: // Center / top square\n\t\t\t\tthis.svg.rect(hexWidth / 2 + triangleHeight, hexHeight / 2, sideLength, sideLength, styles);\n\t\t\t\tbreak;\n\t\t\tcase 2: // Side squares\n\t\t\t\tthis.svg.rect(-sideLength / 2, tileHeight / 2 - sideLength / 2, sideLength, sideLength, styles);\n\t\t\t\tthis.svg.rect(tileWidth - sideLength / 2, tileHeight / 2 - sideLength / 2, sideLength, sideLength, styles);\n\t\t\t\tbreak;\n\t\t\tcase 3: // Center / bottom square\n\t\t\t\tthis.svg.rect(hexWidth / 2 + triangleHeight, hexHeight * 1.5 + sideLength, sideLength, sideLength, styles);\n\t\t\t\tbreak;\n\t\t\tcase 4: // Left top / bottom triangle\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\t-sideLength / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\ttriangleHeight / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\ttileHeight - -sideLength / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\ttriangleHeight / 2\n\t\t\t\t\t],\n\t\t\t\t\tscale: [1, -1]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 5: // Right top / bottom triangle\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\ttileWidth - sideLength / 2,\n\t\t\t\t\t\t-sideLength / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\ttriangleHeight / 2\n\t\t\t\t\t],\n\t\t\t\t\tscale: [-1, 1]\n\t\t\t\t});\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\ttileWidth - sideLength / 2,\n\t\t\t\t\t\ttileHeight + sideLength / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\ttriangleHeight / 2\n\t\t\t\t\t],\n\t\t\t\t\tscale: [-1, -1]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 6: // Center / top / right triangle\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\ttileWidth / 2 + sideLength / 2,\n\t\t\t\t\t\thexHeight / 2\n\t\t\t\t\t]});\n\t\t\t\tbreak;\n\t\t\tcase 7: // Center / top / left triangle\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\ttileWidth - tileWidth / 2 - sideLength / 2,\n\t\t\t\t\t\thexHeight / 2\n\t\t\t\t\t],\n\t\t\t\t\tscale: [-1, 1]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 8: // Center / bottom / right triangle\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\ttileWidth / 2 + sideLength / 2,\n\t\t\t\t\t\ttileHeight - hexHeight / 2\n\t\t\t\t\t],\n\t\t\t\t\tscale: [1, -1]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 9: // Center / bottom / left triangle\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\ttileWidth - tileWidth / 2 - sideLength / 2,\n\t\t\t\t\t\ttileHeight - hexHeight / 2\n\t\t\t\t\t],\n\t\t\t\t\tscale: [-1, -1]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 10: // Left / middle triangle\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\ttileHeight / 2 - sideLength / 2\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 11: // Right // middle triangle\n\t\t\t\tthis.svg.polyline(triangle, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\ttileWidth - sideLength / 2,\n\t\t\t\t\t\ttileHeight / 2 - sideLength / 2\n\t\t\t\t\t],\n\t\t\t\t\tscale: [-1, 1]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 12: // Left / top square\n\t\t\t\tthis.svg.rect(0, 0, sideLength, sideLength, styles).transform({\n\t\t\t\t\ttranslate: [sideLength / 2, sideLength / 2],\n\t\t\t\t\trotate: [-30, 0, 0]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 13: // Right / top square\n\t\t\t\tthis.svg.rect(0, 0, sideLength, sideLength, styles).transform({\n\t\t\t\t\tscale: [-1, 1],\n\t\t\t\t\ttranslate: [-tileWidth + sideLength / 2, sideLength / 2],\n\t\t\t\t\trotate: [-30, 0, 0]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 14: // Left / center-top square\n\t\t\t\tthis.svg.rect(0, 0, sideLength, sideLength, styles).transform({\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\ttileHeight / 2 - sideLength / 2 - sideLength\n\t\t\t\t\t],\n\t\t\t\t\trotate: [30, 0, sideLength]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 15: // Right / center-top square\n\t\t\t\tthis.svg.rect(0, 0, sideLength, sideLength, styles).transform({\n\t\t\t\t\tscale: [-1, 1],\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t-tileWidth + sideLength / 2,\n\t\t\t\t\t\ttileHeight / 2 - sideLength / 2 - sideLength\n\t\t\t\t\t],\n\t\t\t\t\trotate: [30, 0, sideLength]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 16: // Left / center-top square\n\t\t\t\tthis.svg.rect(0, 0, sideLength, sideLength, styles).transform({\n\t\t\t\t\tscale: [1, -1],\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\t-tileHeight + tileHeight / 2 - sideLength / 2 - sideLength\n\t\t\t\t\t],\n\t\t\t\t\trotate: [30, 0, sideLength]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 17: // Right / center-bottom square\n\t\t\t\tthis.svg.rect(0, 0, sideLength, sideLength, styles).transform({\n\t\t\t\t\tscale: [-1, -1],\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t-tileWidth + sideLength / 2,\n\t\t\t\t\t\t-tileHeight + tileHeight / 2 - sideLength / 2 - sideLength\n\t\t\t\t\t],\n\t\t\t\t\trotate: [30, 0, sideLength]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 18: // Left / bottom square\n\t\t\t\tthis.svg.rect(0, 0, sideLength, sideLength, styles).transform({\n\t\t\t\t\tscale: [1, -1],\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\tsideLength / 2,\n\t\t\t\t\t\t-tileHeight + sideLength / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [-30, 0, 0]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 19: // Right / bottom square\n\t\t\t\tthis.svg.rect(0, 0, sideLength, sideLength, styles).transform({\n\t\t\t\t\tscale: [-1, -1],\n\t\t\t\t\ttranslate: [\n\t\t\t\t\t\t-tileWidth + sideLength / 2,\n\t\t\t\t\t\t-tileHeight + sideLength / 2\n\t\t\t\t\t],\n\t\t\t\t\trotate: [-30, 0, 0]\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t}\n\t}\n};\n","/*\nhttps://github.com/creationix/git-sha1/blob/master/git-sha1.js\n\nThe MIT License (MIT)\n\nCopyright (c) 2013 Tim Caswell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n'use strict';\n\n// A streaming interface for when nothing is passed in.\nfunction create() {\n\n\tvar h0 = 0x67452301;\n\tvar h1 = 0xEFCDAB89;\n\tvar h2 = 0x98BADCFE;\n\tvar h3 = 0x10325476;\n\tvar h4 = 0xC3D2E1F0;\n\t// The first 64 bytes (16 words) is the data chunk\n\tvar block = new Uint32Array(80), offset = 0, shift = 24;\n\tvar totalLength = 0;\n\n\t// We have a full block to process. Let's do it!\n\tfunction processBlock() {\n\t\t// Extend the sixteen 32-bit words into eighty 32-bit words:\n\t\tfor (var i = 16; i < 80; i++) {\n\t\t\tvar w = block[i - 3] ^ block[i - 8] ^ block[i - 14] ^ block[i - 16];\n\t\t\tblock[i] = (w << 1) | (w >>> 31);\n\t\t}\n\n\t\t// log(block);\n\n\t\t// Initialize hash value for this chunk:\n\t\tvar a = h0;\n\t\tvar b = h1;\n\t\tvar c = h2;\n\t\tvar d = h3;\n\t\tvar e = h4;\n\t\tvar f, k;\n\n\t\t// Main loop:\n\t\tfor (i = 0; i < 80; i++) {\n\t\t\tif (i < 20) {\n\t\t\t\tf = d ^ (b & (c ^ d));\n\t\t\t\tk = 0x5A827999;\n\t\t\t}\n\t\t\telse if (i < 40) {\n\t\t\t\tf = b ^ c ^ d;\n\t\t\t\tk = 0x6ED9EBA1;\n\t\t\t}\n\t\t\telse if (i < 60) {\n\t\t\t\tf = (b & c) | (d & (b | c));\n\t\t\t\tk = 0x8F1BBCDC;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tf = b ^ c ^ d;\n\t\t\t\tk = 0xCA62C1D6;\n\t\t\t}\n\t\t\tvar temp = (a << 5 | a >>> 27) + f + e + k + (block[i] | 0);\n\t\t\te = d;\n\t\t\td = c;\n\t\t\tc = (b << 30 | b >>> 2);\n\t\t\tb = a;\n\t\t\ta = temp;\n\t\t}\n\n\t\t// Add this chunk's hash to result so far:\n\t\th0 = (h0 + a) | 0;\n\t\th1 = (h1 + b) | 0;\n\t\th2 = (h2 + c) | 0;\n\t\th3 = (h3 + d) | 0;\n\t\th4 = (h4 + e) | 0;\n\n\t\t// The block is now reusable.\n\t\toffset = 0;\n\t\tfor (i = 0; i < 16; i++) {\n\t\t\tblock[i] = 0;\n\t\t}\n\t}\n\n\tfunction write(byte) {\n\t\tblock[offset] |= (byte & 0xff) << shift;\n\t\tif (shift) {\n\t\t\tshift -= 8;\n\t\t}\n\t\telse {\n\t\t\toffset++;\n\t\t\tshift = 24;\n\t\t}\n\t\tif (offset === 16) {\n\t\t\tprocessBlock();\n\t\t}\n\t}\n\n\tfunction updateString(string) {\n\t\tvar length = string.length;\n\t\ttotalLength += length * 8;\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\twrite(string.charCodeAt(i));\n\t\t}\n\t}\n\n\t// The user gave us more data. Store it!\n\tfunction update(chunk) {\n\t\tif (typeof chunk === 'string') {\n\t\t\treturn updateString(chunk);\n\t\t}\n\t\tvar length = chunk.length;\n\t\ttotalLength += length * 8;\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\twrite(chunk[i]);\n\t\t}\n\t}\n\n\tfunction toHex(word) {\n\t\tvar hex = '';\n\t\tfor (var i = 28; i >= 0; i -= 4) {\n\t\t\thex += ((word >> i) & 0xf).toString(16);\n\t\t}\n\t\treturn hex;\n\t}\n\n\t// No more data will come, pad the block, process and return the result.\n\tfunction digest() {\n\t\t// Pad\n\t\twrite(0x80);\n\t\tif (offset > 14 || (offset === 14 && shift < 24)) {\n\t\t\tprocessBlock();\n\t\t}\n\t\toffset = 14;\n\t\tshift = 24;\n\n\t\t// 64-bit length big-endian\n\t\twrite(0x00); // numbers this big aren't accurate in javascript anyway\n\t\twrite(0x00); // ..So just hard-code to zero.\n\t\twrite(totalLength > 0xffffffffff ? totalLength / 0x10000000000 : 0x00);\n\t\twrite(totalLength > 0xffffffff ? totalLength / 0x100000000 : 0x00);\n\t\tfor (var s = 24; s >= 0; s -= 8) {\n\t\t\twrite(totalLength >> s);\n\t\t}\n\n\t\t// At this point one last processBlock() should trigger and we can pull out the result.\n\t\treturn toHex(h0) +\n\t\ttoHex(h1) +\n\t\ttoHex(h2) +\n\t\ttoHex(h3) +\n\t\ttoHex(h4);\n\t}\n\n\treturn { update: update, digest: digest };\n}\n\n// Input chunks must be either arrays of bytes or \"raw\" encoded strings\nmodule.exports = function sha1(buffer) {\n\tif (buffer === undefined) {\n\t\treturn create();\n\t}\n\tvar shasum = create();\n\tshasum.update(buffer);\n\treturn shasum.digest();\n};\n","'use strict';\n\nvar extend = require('extend');\nvar XMLNode = require('./xml');\n\nfunction SVG() {\n\tthis.width = 100;\n\tthis.height = 100;\n\tthis.svg = XMLNode('svg');\n\tthis.context = []; // Track nested nodes\n\tthis.setAttributes(this.svg, {\n\t\txmlns: 'http://www.w3.org/2000/svg',\n\t\twidth: this.width,\n\t\theight: this.height\n\t});\n\n\treturn this;\n}\n\nmodule.exports = SVG;\n\n// This is a hack so groups work.\nSVG.prototype.currentContext = function () {\n\treturn this.context[this.context.length - 1] || this.svg;\n};\n\n// This is a hack so groups work.\nSVG.prototype.end = function () {\n\tthis.context.pop();\n\treturn this;\n};\n\nSVG.prototype.currentNode = function () {\n\tvar context = this.currentContext();\n\treturn context.lastChild || context;\n};\n\nSVG.prototype.transform = function (transformations) {\n\tthis.currentNode().setAttribute('transform',\n\t\tObject.keys(transformations).map(function (transformation) {\n\t\t\treturn transformation + '(' + transformations[transformation].join(',') + ')';\n\t\t}).join(' ')\n\t);\n\treturn this;\n};\n\nSVG.prototype.setAttributes = function (el, attrs) {\n\tObject.keys(attrs).forEach(function (attr) {\n\t\tel.setAttribute(attr, attrs[attr]);\n\t});\n};\n\nSVG.prototype.setWidth = function (width) {\n\tthis.svg.setAttribute('width', Math.floor(width));\n};\n\nSVG.prototype.setHeight = function (height) {\n\tthis.svg.setAttribute('height', Math.floor(height));\n};\n\nSVG.prototype.toString = function () {\n\treturn this.svg.toString();\n};\n\nSVG.prototype.rect = function (x, y, width, height, args) {\n\t// Accept array first argument\n\tvar self = this;\n\tif (Array.isArray(x)) {\n\t\tx.forEach(function (a) {\n\t\t\tself.rect.apply(self, a.concat(args));\n\t\t});\n\t\treturn this;\n\t}\n\n\tvar rect = XMLNode('rect');\n\tthis.currentContext().appendChild(rect);\n\tthis.setAttributes(rect, extend({\n\t\tx: x,\n\t\ty: y,\n\t\twidth: width,\n\t\theight: height\n\t}, args));\n\n\treturn this;\n};\n\nSVG.prototype.circle = function (cx, cy, r, args) {\n\tvar circle = XMLNode('circle');\n\tthis.currentContext().appendChild(circle);\n\tthis.setAttributes(circle, extend({\n\t\tcx: cx,\n\t\tcy: cy,\n\t\tr: r\n\t}, args));\n\n\treturn this;\n};\n\nSVG.prototype.path = function (str, args) {\n\tvar path = XMLNode('path');\n\tthis.currentContext().appendChild(path);\n\tthis.setAttributes(path, extend({\n\t\td: str\n\t}, args));\n\n\treturn this;\n};\n\nSVG.prototype.polyline = function (str, args) {\n\t// Accept array first argument\n\tvar self = this;\n\tif (Array.isArray(str)) {\n\t\tstr.forEach(function (s) {\n\t\t\tself.polyline(s, args);\n\t\t});\n\t\treturn this;\n\t}\n\n\tvar polyline = XMLNode('polyline');\n\tthis.currentContext().appendChild(polyline);\n\tthis.setAttributes(polyline, extend({\n\t\tpoints: str\n\t}, args));\n\n\treturn this;\n};\n\n// group and context are hacks\nSVG.prototype.group = function (args) {\n\tvar group = XMLNode('g');\n\tthis.currentContext().appendChild(group);\n\tthis.context.push(group);\n\tthis.setAttributes(group, extend({}, args));\n\treturn this;\n};\n","'use strict';\n\nvar XMLNode = module.exports = function (tagName) {\n\tif (!(this instanceof XMLNode)) {\n\t\treturn new XMLNode(tagName);\n\t}\n\n\tthis.tagName = tagName;\n\tthis.attributes = Object.create(null);\n\tthis.children = [];\n\tthis.lastChild = null;\n\n\treturn this;\n};\n\nXMLNode.prototype.appendChild = function (child) {\n\tthis.children.push(child);\n\tthis.lastChild = child;\n\n\treturn this;\n};\n\nXMLNode.prototype.setAttribute = function (name, value) {\n\tthis.attributes[name] = value;\n\n\treturn this;\n};\n\nXMLNode.prototype.toString = function () {\n\tvar self = this;\n\n\treturn [\n\t\t'<',\n\t\tself.tagName,\n\t\tObject.keys(self.attributes).map(function (attr) {\n\t\t\treturn [\n\t\t\t\t' ',\n\t\t\t\tattr,\n\t\t\t\t'=\"',\n\t\t\t\tself.attributes[attr],\n\t\t\t\t'\"'\n\t\t\t].join('');\n\t\t}).join(''),\n\t\t'>',\n\t\tself.children.map(function (child) {\n\t\t\treturn child.toString();\n\t\t}).join(''),\n\t\t'</',\n\t\tself.tagName,\n\t\t'>'\n\t].join('');\n};\n","var hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nfunction isPlainObject(obj) {\n\tif (!obj || toString.call(obj) !== '[object Object]' || obj.nodeType || obj.setInterval)\n\t\treturn false;\n\n\tvar has_own_constructor = hasOwn.call(obj, 'constructor');\n\tvar has_is_property_of_method = hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !has_own_constructor && !has_is_property_of_method)\n\t\treturn false;\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor ( key in obj ) {}\n\n\treturn key === undefined || hasOwn.call( obj, key );\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t target = arguments[0] || {},\n\t i = 1,\n\t length = arguments.length,\n\t deep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && typeof target !== \"function\") {\n\t\ttarget = {};\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( isPlainObject(copy) || (copyIsArray = Array.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && Array.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/** @module @category Feature Flags */ import { getGlobalStore } from \"@openmrs/esm-state\";\nconst initialFeatureFlags = {\n flags: getFeatureFlagsFromLocalStorage()\n};\n/** @internal */ export const featureFlagsStore = getGlobalStore('feature-flags', initialFeatureFlags);\nfeatureFlagsStore.subscribe((state)=>{\n for (const [flagName, flag] of Object.entries(state.flags)){\n localStorage.setItem(`openmrs:feature-flag:${flagName}`, flag.enabled.toString());\n localStorage.setItem(`openmrs:feature-flag-meta:${flagName}`, JSON.stringify({\n label: flag.label,\n description: flag.description\n }));\n }\n});\nfunction getFeatureFlagsFromLocalStorage() {\n const flags = {};\n for (const key of Object.keys(localStorage)){\n if (key.startsWith('openmrs:feature-flag:')) {\n const flagName = key.replace('openmrs:feature-flag:', '');\n const meta = JSON.parse(localStorage.getItem(`openmrs:feature-flag-meta:${flagName}`) || '{}');\n flags[flagName] = {\n enabled: localStorage.getItem(key) === 'true',\n ...meta\n };\n }\n }\n return flags;\n}\n/**\n * This function creates a feature flag. Call it in top-level code anywhere. It will\n * not reset whether the flag is enabled or not, so it's safe to call it multiple times.\n * Once a feature flag is created, it will appear with a toggle in the Implementer Tools.\n * It can then be used to turn on or off features in the code.\n *\n * @param flagName A code-friendly name for the flag, which will be used to reference it in code\n * @param label A human-friendly name which will be displayed in the Implementer Tools\n * @param description An explanation of what the flag does, which will be displayed in the Implementer Tools\n */ export function registerFeatureFlag(flagName, label, description) {\n featureFlagsStore.setState((state)=>({\n flags: {\n ...state.flags,\n [flagName]: {\n enabled: state.flags[flagName]?.enabled ?? false,\n label,\n description\n }\n }\n }));\n}\n/**\n * This function removes feature flags from local storage that no longer exist in the current state.\n */ export function cleanupObsoleteFeatureFlags() {\n const flags = featureFlagsStore.getState().flags;\n Object.keys(localStorage).filter((key)=>key.startsWith('openmrs:feature-flag:')).forEach((key)=>{\n const flagName = key.replace('openmrs:feature-flag:', '');\n if (!flags[flagName]) {\n localStorage.removeItem(key);\n localStorage.removeItem(`openmrs:feature-flag-meta:${flagName}`);\n }\n });\n}\n/** Use this function to access the current value of the feature flag\n *\n * If you are using React, use `useFeatureFlag` instead.\n */ export function getFeatureFlag(flagName) {\n return featureFlagsStore.getState().flags[flagName].enabled;\n}\n/** Use this function to subscribe to the value of the feature flag\n *\n * If you are using React, use `useFeatureFlag` instead.\n */ export function subscribeToFeatureFlag(flagName, callback) {\n featureFlagsStore.subscribe((state)=>{\n callback(state.flags[flagName].enabled);\n });\n}\n/** @internal for Implementer Tools */ export function setFeatureFlag(flagName, value) {\n featureFlagsStore.setState((state)=>({\n flags: {\n ...state.flags,\n [flagName]: {\n ...state.flags[flagName],\n enabled: value\n }\n }\n }));\n}\n","import { type ConfigSchema, Type, validators } from '@openmrs/esm-config';\nimport { type CarbonTagColor, carbonTagColors } from './utils';\nexport interface StyleguideConfigObject {\n 'Brand color #1': string;\n 'Brand color #2': string;\n 'Brand color #3': string;\n excludePatientIdentifierCodeTypes: {\n uuids: Array<string>;\n };\n implementationName: string;\n patientPhotoConceptUuid: string;\n preferredCalendar: {\n [key: string]: string;\n };\n preferredDateLocale: {\n [key: string]: string;\n };\n diagnosisTags: {\n primaryColor: CarbonTagColor;\n secondaryColor: CarbonTagColor;\n };\n}\n\nconst diagnosisTagConfigSchema: ConfigSchema = {\n primaryColor: {\n _type: Type.String,\n _description: 'The color for displaying primary diagnoses tags',\n _default: 'red',\n _validators: [validators.oneOf(carbonTagColors)],\n },\n secondaryColor: {\n _type: Type.String,\n _description: 'The color for displaying secondary diagnoses tags',\n _default: 'blue',\n _validators: [validators.oneOf(carbonTagColors)],\n },\n};\n\nexport const esmStyleGuideSchema: ConfigSchema = {\n 'Brand color #1': {\n _default: '#005d5d',\n _type: Type.String,\n },\n 'Brand color #2': {\n _default: '#004144',\n _type: Type.String,\n },\n 'Brand color #3': {\n _default: '#007d79',\n _type: Type.String,\n },\n excludePatientIdentifierCodeTypes: {\n uuids: {\n _type: Type.Array,\n _description: 'List of UUIDs of patient identifier types to exclude from rendering in the patient banner',\n _default: [],\n _elements: {\n _type: Type.UUID,\n },\n },\n },\n implementationName: {\n _type: Type.String,\n _description: 'A name of the place (or authority) where all possible locations a user can choose are located.',\n _default: 'Clinic',\n },\n patientPhotoConceptUuid: {\n _type: Type.ConceptUuid,\n _default: '736e8771-e501-4615-bfa7-570c03f4bef5',\n _description:\n \"Used to look up the patient photo, which is stored as an attachment obs. Set to `null` in order to disable the feature and use only generated avatars. To remove the avatars entirely, use extension configuration's `remove` feature.\",\n },\n preferredCalendar: {\n _type: Type.Object,\n _description:\n \"Keys should be locale codes, and values should be the preferred calendar for that locale. For example, {'am': 'ethiopic'}.\",\n _default: {\n am: 'ethiopic',\n },\n _elements: {\n _validators: [\n validators.oneOf([\n 'buddhist',\n 'chinese',\n 'coptic',\n 'dangi',\n 'ethioaa',\n 'ethiopic',\n 'gregory',\n 'hebrew',\n 'indian',\n 'islamic',\n 'islamic-umalqura',\n 'islamic-tbla',\n 'islamic-civil',\n 'islamic-rgsa',\n 'iso8601',\n 'japanese',\n 'persian',\n 'roc',\n 'islamicc',\n ]),\n ],\n },\n },\n preferredDateLocale: {\n _type: Type.Object,\n _description:\n \"Allows setting the locale used for date formatting for any browser locale. Does not affect time formatting. Keys should be locale codes, and values should be the preferred locale for formatting dates. For example, {'en': 'en-US', 'fr-CA': 'en-CA'}.\",\n _default: {\n en: 'en-GB',\n },\n _elements: {\n _type: Type.String,\n },\n },\n diagnosisTags: diagnosisTagConfigSchema,\n};\n","import { createContext, useContext } from 'react';\n\nexport const OpenmrsIntlLocaleContext = createContext<Intl.Locale | null>(null);\n\nexport const useIntlLocale = () => useContext(OpenmrsIntlLocaleContext)!;\n","/** @module @category UI */\nimport { mountRootParcel, type Parcel } from 'single-spa';\nimport { createGlobalStore } from '@openmrs/esm-state';\nimport { getModalRegistration } from '@openmrs/esm-extensions';\nimport { reportError } from '@openmrs/esm-error-handling';\n\ntype ModalInstanceState = 'NEW' | 'MOUNTED' | 'TO_BE_DELETED';\ntype ModalSize = 'xs' | 'sm' | 'md' | 'lg';\n\nexport interface ModalProps {\n size?: ModalSize;\n [key: string]: unknown;\n}\n\ninterface ModalInstance {\n container?: HTMLElement;\n state: ModalInstanceState;\n onClose: () => void;\n parcel?: Parcel | null;\n modalName: string;\n props: ModalProps;\n}\n\ninterface ModalState {\n modalContainer: HTMLElement | null;\n modalStack: Array<ModalInstance>;\n}\n\nconst modalStore = createGlobalStore<ModalState>('modalState', {\n modalContainer: null,\n modalStack: [],\n});\n\nfunction createModalFrame({ size }: { size: ModalSize }) {\n const modalFrame = document.createElement('div');\n modalFrame.className = `cds--modal-container cds--modal-container--${size}`;\n modalFrame.setAttribute('role', 'dialog');\n modalFrame.setAttribute('tabindex', '-1');\n modalFrame.setAttribute('aria-modal', 'true');\n\n return modalFrame;\n}\n\nlet parcelCount = 0;\n\n/**\n * Mounts the named modal into the specified DOM element\n */\nasync function renderModalIntoDOM(\n domElement: HTMLElement,\n modalName: string,\n additionalProps: Record<string, unknown> = {},\n): Promise<Parcel | null> {\n const modalRegistration = getModalRegistration(modalName);\n let parcel: Parcel | null = null;\n\n if (domElement) {\n if (!modalRegistration) {\n throw Error(`No modal named '${modalName}' has been registered.`);\n }\n\n const { load } = modalRegistration;\n\n const { default: result, ...lifecycle } = await load();\n const id = parcelCount++;\n parcel = mountRootParcel(\n {\n ...(result ?? lifecycle),\n name: `${modalName}-${id}`,\n },\n {\n ...additionalProps,\n domElement,\n },\n );\n } else {\n reportError(`Failed to launch modal. Please notify your administrator. Modal name: ${modalName}`);\n }\n\n return parcel;\n}\n\nconst original = window.getComputedStyle(document.body).overflow;\n\nfunction handleModalStateUpdate({ modalStack, modalContainer }: ModalState) {\n if (!modalContainer) {\n return;\n }\n\n if (modalStack.length) {\n // ensure the container is visible\n if (!modalContainer.style.visibility) {\n addEventListener('keydown', handleEscKey);\n document.body.style.overflow = 'hidden';\n modalContainer.style.visibility = 'unset';\n }\n\n modalStack.forEach((instance, index) => {\n switch (instance.state) {\n case 'NEW': {\n const modalFrame = createModalFrame({ size: instance.props?.size ?? 'md' });\n instance.container = modalFrame;\n renderModalIntoDOM(modalFrame, instance.modalName, instance.props).then((parcel) => {\n instance.parcel = parcel;\n instance.state = 'MOUNTED';\n modalContainer.prepend(modalFrame);\n modalFrame.style.visibility = 'unset';\n });\n break;\n }\n\n case 'MOUNTED':\n if (instance.container) {\n instance.container.style.visibility = index ? 'hidden' : 'unset';\n }\n break;\n\n case 'TO_BE_DELETED':\n instance.onClose();\n instance.parcel?.unmount?.();\n instance.container?.remove();\n setTimeout(() => {\n modalStore.setState({\n modalContainer,\n modalStack: modalStack.filter((x) => x !== instance),\n });\n }, 0);\n break;\n }\n });\n } else {\n modalContainer.style.removeProperty('visibility');\n document.body.style.overflow = original;\n removeEventListener('keydown', handleEscKey);\n }\n}\n\nfunction openInstance(instance: ModalInstance) {\n const state = modalStore.getState();\n const modalStack = [instance, ...state.modalStack];\n\n modalStore.setState({\n ...state,\n modalStack,\n });\n}\n\nfunction closeInstance(instance: ModalInstance) {\n const state = modalStore.getState();\n const modalStack = state.modalStack.map(\n (x): ModalInstance => (x === instance ? { ...x, state: 'TO_BE_DELETED' } : x),\n );\n modalStore.setState({\n ...state,\n modalStack,\n });\n}\n\nfunction closeHighestInstance() {\n const state = modalStore.getState();\n const [top] = state.modalStack;\n\n if (top) {\n closeInstance(top);\n }\n}\n\nfunction handleEscKey(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n closeHighestInstance();\n }\n}\n\n/**\n * @internal\n * Sets up the modals system. Should be called in the app shell during initialization.\n */\nexport function setupModals(modalContainer: HTMLElement | null) {\n modalStore.subscribe(handleModalStateUpdate);\n\n modalStore.setState({\n ...modalStore.getState(),\n modalContainer,\n });\n}\n\n/**\n * Shows a modal dialog.\n *\n * The modal must have been registered by name. This should be done in the `routes.json` file of the\n * app that defines the modal. Note that both the `<ModalHeader>` and `<ModalBody>` should be at the\n * top level of the modal component (wrapped in a React.Fragment), or else the content of the modal\n * body might not vertical-scroll properly.\n *\n * @param modalName The name of the modal to show.\n * @param props The optional props to provide to the modal.\n * @param onClose The optional callback to call when the modal is closed.\n * @returns The dispose function to force closing the modal dialog.\n */\nexport function showModal(modalName: string, props: ModalProps = {}, onClose: () => void = () => {}) {\n const close = () => {\n const state = modalStore.getState();\n const item = state.modalStack.find((m) => m.onClose === onClose);\n\n if (item) {\n closeInstance(item);\n }\n };\n\n const modalRegistration = getModalRegistration(modalName);\n if (!modalRegistration) {\n reportError(`Failed to launch modal. Please notify your administrator. Modal name: \"${modalName}\"`);\n } else {\n openInstance({\n state: 'NEW',\n onClose,\n modalName,\n props: {\n close,\n ...props,\n },\n });\n }\n\n return close;\n}\n","/** @module @category UI */\nimport React from 'react';\nimport { Subject } from 'rxjs';\nimport type { InlineNotificationMeta, NotificationDescriptor } from './notification.component';\nimport type { ActionableNotificationMeta, ActionableNotificationDescriptor } from './actionable-notification.component';\nimport ActiveNotifications from './active-notifications.component';\nimport ActionableActiveNotifications from './active-actionable-notifications.component';\nimport isEmpty from 'lodash-es/isEmpty';\nimport { createRoot } from 'react-dom/client';\n\nconst inlineNotificationsSubject = new Subject<InlineNotificationMeta>();\nlet notificationId = 0;\n\nconst actionableNotificationsSubject = new Subject<ActionableNotificationMeta>();\nlet actionableNotificationId = 0;\n\n/**\n * Starts a rendering host for inline notifications. Should only be used by the app shell.\n * Under normal conditions there is no need to use this function.\n * @param target The container target that hosts the inline notifications.\n */\nexport function renderInlineNotifications(target: HTMLElement | null) {\n if (target) {\n const root = createRoot(target);\n root.render(<ActiveNotifications subject={inlineNotificationsSubject} />);\n }\n}\n\nfunction isNotEmpty(description: React.ReactNode) {\n if (typeof description === 'string') {\n return description.trim().length > 0;\n } else if (typeof description === 'object') {\n return description instanceof Error || !isEmpty(description);\n }\n\n return false;\n}\n\n/**\n * Displays an inline notification in the UI.\n * @param notification The description of the notification to display.\n */\nexport function showNotification(notification: NotificationDescriptor) {\n if (notification && isNotEmpty(notification.description)) {\n if ((notification.description as unknown) instanceof Error) {\n notification.description = notification.description.toLocaleString();\n }\n\n setTimeout(() => {\n // always use in subsequent cycle\n inlineNotificationsSubject.next({\n ...notification,\n id: notificationId++,\n });\n }, 0);\n } else {\n console.error(\n `showNotification must be called with an object having a 'description' property that is a non-empty string or object`,\n );\n }\n}\n\n// Actionable Notifications\n\nexport function renderActionableNotifications(target: HTMLElement | null) {\n if (target) {\n const root = createRoot(target);\n root.render(<ActionableActiveNotifications subject={actionableNotificationsSubject} />);\n }\n}\n\nfunction isNotActionableNotificationEmpty(subtitle: React.ReactNode) {\n return typeof subtitle === 'string'\n ? subtitle.trim().length > 0\n : typeof subtitle === 'object'\n ? !isEmpty(subtitle)\n : false;\n}\n\n/**\n * Displays an actionable notification in the UI.\n * @param notification The description of the notification to display.\n */\n\nexport function showActionableNotification(notification: ActionableNotificationDescriptor) {\n if (notification && isNotActionableNotificationEmpty(notification.actionButtonLabel)) {\n setTimeout(() => {\n // always use in subsequent cycle\n actionableNotificationsSubject.next({\n ...notification,\n id: actionableNotificationId++,\n });\n }, 0);\n } else {\n console.error(`showActionableNotification must be called with an actionButtonLabel that is a non-empty string`);\n }\n}\n","/** @module @category UI */\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Subject } from 'rxjs';\n\nimport type { SnackbarDescriptor, SnackbarMeta } from './snackbar.component';\nimport ActiveSnackbars from './active-snackbar.component';\n\nconst snackbarsSubject = new Subject<SnackbarMeta>();\nlet snackbarId = 0;\n\n/**\n * Starts a rendering host for snack bar notifications. Should only be used by the app shell.\n * Under normal conditions there is no need to use this function.\n * @param target The container target that hosts the snack bar notifications.\n */\nexport function renderSnackbars(target: HTMLElement | null) {\n if (target) {\n const root = createRoot(target);\n root.render(<ActiveSnackbars subject={snackbarsSubject} />);\n }\n}\n\nfunction isNotEmpty(title: string) {\n return typeof title === 'string' ? title.trim().length > 0 : false;\n}\n\n/**\n * Displays a snack bar notification in the UI.\n * @param snackbar The description of the snack bar to display.\n */\nexport function showSnackbar(snackbar: SnackbarDescriptor) {\n if (snackbar && isNotEmpty(snackbar.title)) {\n setTimeout(() => {\n snackbarsSubject.next({\n ...snackbar,\n id: snackbarId++,\n });\n }, 0);\n } else {\n console.error(`showSnackbar must be called with an object having a 'title' property that is a non-empty string`);\n }\n}\n","/** @module @category UI */\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Subject } from 'rxjs';\nimport type { ToastDescriptor, ToastNotificationMeta } from './toast.component';\nimport ActiveToasts from './active-toasts.component';\nimport isEmpty from 'lodash-es/isEmpty';\n\nconst toastsSubject = new Subject<ToastNotificationMeta>();\nlet toastId = 0;\n\n/**\n * Starts a rendering host for toast notifications. Should only be used by the app shell.\n * Under normal conditions there is no need to use this function.\n * @param target The container target that hosts the toast notifications.\n */\nexport function renderToasts(target: HTMLElement | null) {\n if (target) {\n const root = createRoot(target);\n root.render(<ActiveToasts subject={toastsSubject} />);\n }\n}\n\nfunction isNotEmpty(description: React.ReactNode) {\n return typeof description === 'string'\n ? description.trim().length > 0\n : typeof description === 'object'\n ? !isEmpty(description)\n : false;\n}\n\n/**\n * Displays a toast notification in the UI.\n * @param toast The description of the toast to display.\n */\nexport function showToast(toast: ToastDescriptor) {\n if (toast && isNotEmpty(toast.description)) {\n setTimeout(() => {\n // always use in subsequent cycle\n toastsSubject.next({\n ...toast,\n id: toastId++,\n });\n }, 0);\n } else {\n console.error(\n `showToast must be called with an object having a 'description' property that is a non-empty string or object`,\n );\n }\n}\n","/**\n * Array of valid values for Carbon tag's \"type\" attribute.\n * Options from https://react.carbondesignsystem.com/?path=/docs/components-tag--overview\n */\nexport const carbonTagColors = [\n 'red',\n 'magenta',\n 'purple',\n 'blue',\n 'teal',\n 'cyan',\n 'gray',\n 'green',\n 'warm-gray',\n 'cool-gray',\n 'high-contrast',\n 'outline',\n] as const;\n\nexport type CarbonTagColor = (typeof carbonTagColors)[number];\n","/** @module @category Workspace */\nimport { useMemo, type ReactNode } from 'react';\nimport {\n getWorkspaceGroupRegistration,\n getWorkspaceRegistration,\n type WorkspaceRegistration,\n} from '@openmrs/esm-extensions';\nimport { type WorkspaceWindowState } from '@openmrs/esm-globals';\nimport { navigate } from '@openmrs/esm-navigation';\nimport { getGlobalStore, createGlobalStore } from '@openmrs/esm-state';\nimport { getCoreTranslation } from '@openmrs/esm-translations';\nimport { useStore } from '@openmrs/esm-react-utils';\nimport type { StoreApi } from 'zustand/vanilla';\n\nexport interface CloseWorkspaceOptions {\n /**\n * Whether to close the workspace ignoring all the changes present in the workspace.\n *\n * If ignoreChanges is true, the user will not be prompted to save changes before closing\n * even if the `testFcn` passed to `promptBeforeClosing` returns `true`.\n */\n ignoreChanges?: boolean;\n /**\n * If you want to take an action after the workspace is closed, you can pass your function as\n * `onWorkspaceClose`. This function will be called only after the workspace is closed, given\n * that the user might be shown a prompt.\n * @returns void\n */\n onWorkspaceClose?: () => void;\n /**\n * Controls whether the workspace group should be closed and store to be\n * cleared when this workspace is closed.\n * Defaults to true except when opening a new workspace of the same group.\n *\n * @default true\n */\n closeWorkspaceGroup?: boolean;\n}\n\n/** The default parameters received by all workspaces */\nexport interface DefaultWorkspaceProps {\n /**\n * Call this function to close the workspace. This function will prompt the user\n * if there are any unsaved changes to workspace.\n *\n * You can pass `onWorkspaceClose` function to be called when the workspace is finally\n * closed, given the user forcefully closes the workspace.\n */\n closeWorkspace(closeWorkspaceOptions?: CloseWorkspaceOptions): void;\n /**\n * Call this with a no-args function that returns true if the user should be prompted before\n * this workspace is closed; e.g. if there is unsaved data.\n */\n promptBeforeClosing(testFcn: () => boolean): void;\n /**\n * Call this function to close the workspace after the form is saved. This function\n * will directly close the workspace without any prompt\n */\n closeWorkspaceWithSavedChanges(closeWorkspaceOptions?: CloseWorkspaceOptions): void;\n /**\n * Use this to set the workspace title if it needs to be set dynamically.\n *\n * Workspace titles generally are set in the workspace declaration in the routes.json file. They can also\n * be set by the workspace launcher by passing `workspaceTitle` in the `additionalProps`\n * parameter of the `launchWorkspace` function. This function is useful when the workspace\n * title needs to be set dynamically.\n *\n * @param title The title to set. If using titleNode, set this to a human-readable string\n * which will identify the workspace in notifications and other places.\n * @param titleNode A React object to put in the workspace header in place of the title. This\n * is useful for displaying custom elements in the header. Note that custom header\n * elements can also be attached to the workspace header extension slots.\n */\n setTitle(title: string, titleNode?: ReactNode): void;\n}\n\nexport interface WorkspaceWindowSize {\n size: WorkspaceWindowState;\n}\n\nexport interface WorkspaceWindowSizeProviderProps {\n children?: React.ReactNode;\n}\n\nexport interface WorkspaceWindowSizeContext {\n windowSize: WorkspaceWindowSize;\n updateWindowSize?(value: WorkspaceWindowState): any;\n active: boolean;\n}\n\nexport interface Prompt {\n title: string;\n body: string;\n /** Defaults to \"Confirm\" */\n confirmText?: string;\n onConfirm(): void;\n /** Defaults to \"Cancel\" */\n cancelText?: string;\n}\n\nexport interface WorkspaceStoreState {\n context: string | null;\n openWorkspaces: Array<OpenWorkspace>;\n prompt: Prompt | null;\n workspaceWindowState: WorkspaceWindowState;\n workspaceGroup?: {\n name: string;\n members: Array<string>;\n cleanup?: Function;\n };\n}\n\nexport interface OpenWorkspace extends WorkspaceRegistration, DefaultWorkspaceProps {\n additionalProps: object;\n currentWorkspaceGroup?: string;\n}\n\n/**\n *\n * @param name Name of the workspace\n * @param ignoreChanges If set to true, the \"unsaved changes\" modal will never be shown, even if the `promptBeforeClosing` function returns true. The user will not be prompted before closing.\n * @returns true if the workspace can be closed.\n */\nexport function canCloseWorkspaceWithoutPrompting(name: string, ignoreChanges: boolean = false) {\n if (ignoreChanges) {\n return true;\n }\n const promptBeforeFn = getPromptBeforeClosingFcn(name);\n return !promptBeforeFn || !promptBeforeFn();\n}\n\n/**\n * Closes a workspace group and performs cleanup operations.\n *\n * @param groupName - The name of the workspace group to close\n * @param onWorkspaceCloseup - Optional callback function to execute after closing the workspace group\n * @returns void, or exits early if the current workspace group name doesn't match the provided group name\n *\n * @remarks\n * This function performs the following operations:\n * - Validates if the provided group name matches the current workspace group\n * - Closes all workspaces associated with the group\n * - Clears the workspace group store state\n * - Executes cleanup function if defined in the workspace group\n * - Updates the main workspace store to remove the workspace group\n * - Calls the optional closeup callback if provided\n */\nfunction closeWorkspaceGroup(groupName: string, onWorkspaceCloseup?: () => void) {\n const store = getWorkspaceStore();\n const currentWorkspaceGroup = store.getState()?.workspaceGroup;\n const currentGroupName = currentWorkspaceGroup?.name;\n if (!currentGroupName || groupName !== currentGroupName) {\n return;\n }\n const filter: (workspace: OpenWorkspace) => boolean = currentGroupName\n ? (workspace) => workspace.currentWorkspaceGroup === currentGroupName\n : () => true;\n\n closeAllWorkspaces(() => {\n // Clearing the workspace group and respective store if the new workspace is not part of the current group, which is handled in the `launchWorkspace` function.\n const workspaceGroupStore = getWorkspaceGroupStore(groupName);\n if (workspaceGroupStore) {\n workspaceGroupStore.setState({}, true);\n const unsubscribe = workspaceGroupStore.subscribe(() => {});\n unsubscribe();\n }\n\n if (typeof currentWorkspaceGroup?.cleanup === 'function') {\n currentWorkspaceGroup.cleanup();\n }\n\n store.setState((prev) => ({\n ...prev,\n workspaceGroup: undefined,\n }));\n\n if (typeof onWorkspaceCloseup === 'function') {\n onWorkspaceCloseup();\n }\n }, filter);\n}\n\ninterface LaunchWorkspaceGroupArg {\n state: object;\n onWorkspaceGroupLaunch?: Function;\n workspaceGroupCleanup?: Function;\n workspaceToLaunch?: {\n name: string;\n additionalProps?: object;\n };\n}\n\n/**\n * Launches a workspace group with the specified name and configuration.\n * If there are any open workspaces, it will first close them before launching the new workspace group.\n *\n * @param groupName - The name of the workspace group to launch\n * @param args - Configuration object for launching the workspace group\n * @param args.state - The initial state for the workspace group\n * @param args.onWorkspaceGroupLaunch - Optional callback function to be executed after the workspace group is launched\n * @param args.workspaceGroupCleanup - Optional cleanup function to be executed when the workspace group is closed\n *\n * @example\n * launchWorkspaceGroup(\"myGroup\", {\n * state: initialState,\n * onWorkspaceGroupLaunch: () => console.log(\"Workspace group launched\"),\n * workspaceGroupCleanup: () => console.log(\"Cleaning up workspace group\")\n * });\n */\nexport function launchWorkspaceGroup(groupName: string, args: LaunchWorkspaceGroupArg) {\n const workspaceGroupRegistration = getWorkspaceGroupRegistration(groupName);\n const { state, onWorkspaceGroupLaunch, workspaceGroupCleanup, workspaceToLaunch } = args;\n const store = getWorkspaceStore();\n if (store.getState().openWorkspaces.length) {\n const workspaceGroup = store.getState().workspaceGroup;\n if (workspaceGroup) {\n closeWorkspaceGroup(workspaceGroup?.name, () => {\n launchWorkspaceGroup(groupName, args);\n });\n } else {\n closeAllWorkspaces(() => {\n launchWorkspaceGroup(groupName, args);\n });\n }\n } else {\n store.setState((prev) => ({\n ...prev,\n workspaceGroup: {\n name: groupName,\n members: workspaceGroupRegistration.members,\n cleanup: workspaceGroupCleanup,\n },\n }));\n getWorkspaceGroupStore(groupName, state);\n onWorkspaceGroupLaunch?.();\n if (workspaceToLaunch) {\n launchWorkspace(workspaceToLaunch.name, workspaceToLaunch.additionalProps ?? {});\n }\n }\n}\n\nfunction promptBeforeLaunchingWorkspace(\n workspace: OpenWorkspace,\n newWorkspaceDetails: { name: string; additionalProps?: object },\n) {\n const { name, additionalProps } = newWorkspaceDetails;\n const newWorkspaceRegistration = getWorkspaceRegistration(name);\n\n const proceed = () => {\n closeWorkspace(workspace.name, {\n ignoreChanges: true,\n // Calling the launchWorkspace again, since one of the `if` case\n // might resolve, but we need to check all the cases before launching the form.\n onWorkspaceClose: () => launchWorkspace(name, additionalProps),\n // If the new workspace is of the same sidebar group, then we don't need to clear the workspace group store.\n closeWorkspaceGroup: false,\n });\n };\n\n if (!canCloseWorkspaceWithoutPrompting(workspace.name)) {\n showWorkspacePrompts('closing-workspace-launching-new-workspace', proceed, workspace.title ?? workspace.name);\n } else {\n proceed();\n }\n}\n\n/**\n * This launches a workspace by its name. The workspace must have been registered.\n * Workspaces should be registered in the `routes.json` file.\n *\n * For the workspace to appear, there must be either a `<WorkspaceOverlay />` or\n * a `<WorkspaceWindow />` component rendered.\n *\n * The behavior of this function is as follows:\n *\n * - If no workspaces are open, or if no other workspaces with the same type are open,\n * it will be opened and focused.\n * - If a workspace with the same name is already open, it will be displayed/focused,\n * if it was not already.\n * - If a workspace is launched and a workspace which cannot be hidden is already open,\n * a confirmation modal will pop up warning about closing the currently open workspace.\n * - If another workspace with the same type is open, the workspace will be brought to\n * the front and then a confirmation modal will pop up warning about closing the opened\n * workspace\n *\n * Note that this function just manipulates the workspace store. The UI logic is handled\n * by the components that display workspaces.\n *\n * Additional props can be passed to the workspace component being launched. Passing a\n * prop named `workspaceTitle` will override the title of the workspace.\n *\n * @param name The name of the workspace to launch\n * @param additionalProps Props to pass to the workspace component being launched. Passing\n * a prop named `workspaceTitle` will override the title of the workspace.\n */\nexport function launchWorkspace<\n T extends DefaultWorkspaceProps | object = DefaultWorkspaceProps & { [key: string]: any },\n>(name: string, additionalProps?: Omit<T, keyof DefaultWorkspaceProps> & { workspaceTitle?: string }) {\n const store = getWorkspaceStore();\n const workspace = getWorkspaceRegistration(name);\n const currentWorkspaceGroup = store.getState().workspaceGroup;\n\n if (currentWorkspaceGroup && !currentWorkspaceGroup.members?.includes(name)) {\n closeWorkspaceGroup(currentWorkspaceGroup.name, () => {\n launchWorkspace(name, additionalProps);\n });\n return;\n }\n const currentGroupName = store.getState().workspaceGroup?.name;\n const newWorkspace: OpenWorkspace = {\n ...workspace,\n title: getWorkspaceTitle(workspace, additionalProps),\n closeWorkspace: (options: CloseWorkspaceOptions = {}) => closeWorkspace(name, options),\n closeWorkspaceWithSavedChanges: (options: CloseWorkspaceOptions) =>\n closeWorkspace(name, { ignoreChanges: true, ...options }),\n promptBeforeClosing: (testFcn) => promptBeforeClosing(name, testFcn),\n setTitle: (title: string, titleNode: ReactNode) => {\n newWorkspace.title = title;\n newWorkspace.titleNode = titleNode;\n store.setState((state) => {\n const openWorkspaces = state.openWorkspaces.map((w) => (w.name === name ? newWorkspace : w));\n return {\n ...state,\n openWorkspaces,\n };\n });\n },\n currentWorkspaceGroup: currentGroupName,\n additionalProps: additionalProps ?? {},\n };\n\n if (currentGroupName) {\n getWorkspaceGroupStore(currentGroupName, additionalProps);\n }\n function updateStoreWithNewWorkspace(workspaceToBeAdded: OpenWorkspace, restOfTheWorkspaces?: Array<OpenWorkspace>) {\n store.setState((state) => {\n const openWorkspaces = [workspaceToBeAdded, ...(restOfTheWorkspaces ?? state.openWorkspaces)];\n let workspaceWindowState = getUpdatedWorkspaceWindowState(workspaceToBeAdded);\n\n return {\n ...state,\n openWorkspaces,\n workspaceWindowState,\n };\n });\n }\n\n const openWorkspaces = store.getState().openWorkspaces;\n const workspaceIndexInOpenWorkspaces = openWorkspaces.findIndex((w) => w.name === name);\n const isWorkspaceAlreadyOpen = workspaceIndexInOpenWorkspaces >= 0;\n const openedWorkspaceWithSameType = openWorkspaces.find((w) => w.type == newWorkspace.type);\n\n if (openWorkspaces.length === 0) {\n updateStoreWithNewWorkspace(newWorkspace);\n } else if (!openWorkspaces[0].canHide && workspaceIndexInOpenWorkspaces !== 0) {\n promptBeforeLaunchingWorkspace(openWorkspaces[0], {\n name,\n additionalProps,\n });\n } else if (isWorkspaceAlreadyOpen) {\n const openWorkspace = openWorkspaces[workspaceIndexInOpenWorkspaces];\n // Only update the title if it hasn't been set by `setTitle`\n if (openWorkspace.title === getWorkspaceTitle(openWorkspace, openWorkspace.additionalProps)) {\n openWorkspace.title = getWorkspaceTitle(newWorkspace, newWorkspace.additionalProps);\n }\n openWorkspace.additionalProps = newWorkspace.additionalProps;\n const restOfTheWorkspaces = openWorkspaces.filter((w) => w.name != name);\n updateStoreWithNewWorkspace(openWorkspaces[workspaceIndexInOpenWorkspaces], restOfTheWorkspaces);\n } else if (openedWorkspaceWithSameType) {\n const restOfTheWorkspaces = store.getState().openWorkspaces.filter((w) => w.type != newWorkspace.type);\n updateStoreWithNewWorkspace(openedWorkspaceWithSameType, restOfTheWorkspaces);\n promptBeforeLaunchingWorkspace(openedWorkspaceWithSameType, {\n name,\n additionalProps,\n });\n } else {\n updateStoreWithNewWorkspace(newWorkspace);\n }\n}\n\n/**\n * Use this function to navigate to a new page and launch a workspace on that page.\n *\n * @param options.targetUrl: The URL to navigate to. Will be passed to [[navigate]].\n * @param options.contextKey: The context key used by the target page.\n * @param options.workspaceName: The name of the workspace to launch.\n * @param options.additionalProps: Additional props to pass to the workspace component being launched.\n */\nexport function navigateAndLaunchWorkspace({\n targetUrl,\n contextKey,\n workspaceName,\n additionalProps,\n}: {\n targetUrl: string;\n contextKey: string;\n workspaceName: string;\n additionalProps?: object;\n}) {\n changeWorkspaceContext(contextKey);\n launchWorkspace(workspaceName, additionalProps);\n navigate({ to: targetUrl });\n}\n\nconst promptBeforeClosingFcns = {};\n\nexport function promptBeforeClosing(workspaceName: string, testFcn: () => boolean) {\n promptBeforeClosingFcns[workspaceName] = testFcn;\n}\n\nexport function getPromptBeforeClosingFcn(workspaceName: string) {\n return promptBeforeClosingFcns[workspaceName];\n}\n\nexport function cancelPrompt() {\n const store = getWorkspaceStore();\n const state = store.getState();\n store.setState({ ...state, prompt: null });\n}\n\nconst defaultOptions: CloseWorkspaceOptions = {\n ignoreChanges: false,\n onWorkspaceClose: () => {},\n closeWorkspaceGroup: true,\n};\n\n/**\n * Function to close an opened workspace\n * @param name Workspace registration name\n * @param options Options to close workspace\n */\nexport function closeWorkspace(name: string, options: CloseWorkspaceOptions = {}): boolean {\n options = { ...defaultOptions, ...options };\n const store = getWorkspaceStore();\n\n const updateStoreWithClosedWorkspace = () => {\n const state = store.getState();\n const workspaceToBeClosed = state.openWorkspaces.find((w) => w.name === name);\n const newOpenWorkspaces = state.openWorkspaces.filter((w) => w.name != name);\n\n const workspaceGroupName = store.getState().workspaceGroup?.name;\n\n if (workspaceGroupName && options.closeWorkspaceGroup) {\n closeWorkspaceGroup(workspaceGroupName);\n }\n\n // ensure closed workspace will not prompt\n promptBeforeClosing(name, () => false);\n store.setState((prev) => ({\n ...prev,\n prompt: null,\n openWorkspaces: newOpenWorkspaces,\n workspaceWindowState: getUpdatedWorkspaceWindowState(newOpenWorkspaces?.[0]),\n }));\n\n options?.onWorkspaceClose?.();\n };\n\n if (!canCloseWorkspaceWithoutPrompting(name, options?.ignoreChanges)) {\n const currentName = getWorkspaceRegistration(name).title ?? name;\n showWorkspacePrompts('closing-workspace', updateStoreWithClosedWorkspace, currentName);\n return false;\n } else {\n updateStoreWithClosedWorkspace();\n return true;\n }\n}\n\n/**\n * The set of workspaces is specific to a particular page. This function\n * should be used when transitioning to a new page. If the current\n * workspace data is for a different page, the workspace state is cleared.\n *\n * This is called by the workspace components when they mount.\n * @internal\n *\n * @param contextKey An arbitrary key to identify the current page\n */\nexport function changeWorkspaceContext(contextKey: string | null) {\n const store = getWorkspaceStore();\n const state = store.getState();\n if (state.context != contextKey) {\n store.setState({ context: contextKey, openWorkspaces: [], prompt: null });\n }\n}\n\nconst initialState: WorkspaceStoreState = {\n context: '',\n openWorkspaces: [],\n prompt: null,\n workspaceWindowState: 'normal',\n workspaceGroup: undefined,\n};\n\nexport const workspaceStore = createGlobalStore('workspace', initialState);\n\nexport function getWorkspaceStore() {\n return workspaceStore;\n}\n\nexport function updateWorkspaceWindowState(value: WorkspaceWindowState) {\n const store = getWorkspaceStore();\n const state = store.getState();\n store.setState({ ...state, workspaceWindowState: value });\n}\n\nfunction getUpdatedWorkspaceWindowState(workspaceAtTop: OpenWorkspace) {\n return workspaceAtTop?.preferredWindowSize ?? 'normal';\n}\nexport function closeAllWorkspaces(\n onClosingWorkspaces: () => void = () => {},\n filter: (workspace: OpenWorkspace) => boolean = () => true,\n) {\n const store = getWorkspaceStore();\n\n const canCloseAllWorkspaces = store\n .getState()\n .openWorkspaces.filter(filter)\n .every(({ name }) => {\n return canCloseWorkspaceWithoutPrompting(name);\n });\n\n const updateWorkspaceStore = () => {\n resetWorkspaceStore();\n onClosingWorkspaces?.();\n };\n\n if (!canCloseAllWorkspaces) {\n showWorkspacePrompts('closing-all-workspaces', updateWorkspaceStore);\n } else {\n updateWorkspaceStore();\n }\n}\n\nexport interface WorkspacesInfo {\n active: boolean;\n prompt: Prompt | null;\n workspaceWindowState: WorkspaceWindowState;\n workspaces: Array<OpenWorkspace>;\n workspaceGroup?: WorkspaceStoreState['workspaceGroup'];\n}\n\nexport function useWorkspaces(): WorkspacesInfo {\n const { workspaceWindowState, openWorkspaces, prompt, workspaceGroup } = useStore(workspaceStore);\n const memoisedResults: WorkspacesInfo = useMemo(() => {\n return {\n active: openWorkspaces.length > 0,\n prompt,\n workspaceWindowState,\n workspaces: openWorkspaces,\n workspaceGroup,\n };\n }, [openWorkspaces, workspaceWindowState, prompt, workspaceGroup]);\n return memoisedResults;\n}\n\ntype PromptType = 'closing-workspace' | 'closing-all-workspaces' | 'closing-workspace-launching-new-workspace';\n\n/**\n * Sets the current prompt according to the prompt type.\n * @param promptType Determines the text and behavior of the prompt\n * @param onConfirmation Function to be called after the user confirms to close the workspace\n * @param workspaceTitle Workspace title to be shown in the prompt\n * @returns\n */\nexport function showWorkspacePrompts(\n promptType: PromptType,\n onConfirmation: () => void = () => {},\n workspaceTitle: string = '',\n) {\n const store = getWorkspaceStore();\n\n let prompt: Prompt;\n switch (promptType) {\n case 'closing-workspace': {\n prompt = {\n title: getCoreTranslation('unsavedChangesTitleText', 'Unsaved changes'),\n body: getCoreTranslation(\n 'unsavedChangesInOpenedWorkspace',\n `You may have unsaved changes in the opened workspace. Do you want to discard these changes?`,\n ),\n onConfirm: () => {\n onConfirmation?.();\n },\n confirmText: getCoreTranslation('discard', 'Discard'),\n };\n break;\n }\n\n case 'closing-all-workspaces': {\n const workspacesNotClosed = store\n .getState()\n .openWorkspaces.filter(({ name }) => !canCloseWorkspaceWithoutPrompting(name))\n .map(({ title }, indx) => `${indx + 1}. ${title}`);\n\n prompt = {\n title: getCoreTranslation('closingAllWorkspacesPromptTitle', 'You have unsaved changes'),\n body: getCoreTranslation(\n 'closingAllWorkspacesPromptBody',\n 'There may be unsaved changes in the following workspaces. Do you want to discard changes in the following workspaces? {{workspaceNames}}',\n {\n workspaceNames: workspacesNotClosed.join(','),\n },\n ),\n onConfirm: () => {\n onConfirmation?.();\n },\n confirmText: getCoreTranslation('closeAllOpenedWorkspaces', 'Discard changes in {{count}} workspaces', {\n count: workspacesNotClosed.length,\n }),\n };\n break;\n }\n case 'closing-workspace-launching-new-workspace': {\n prompt = {\n title: getCoreTranslation('unsavedChangesTitleText', 'Unsaved changes'),\n body: getCoreTranslation(\n 'unsavedChangesInWorkspace',\n 'There may be unsaved changes in \"{{workspaceName}}\". Please save them before opening another workspace.',\n { workspaceName: workspaceTitle },\n ),\n onConfirm: () => {\n store.setState((state) => ({\n ...state,\n prompt: null,\n }));\n onConfirmation?.();\n },\n confirmText: getCoreTranslation('openAnyway', 'Open anyway'),\n };\n break;\n }\n default: {\n console.error(\n `Workspace system trying to open unknown prompt type \"${promptType}\" in function \"showWorkspacePrompts\"`,\n );\n onConfirmation?.();\n return;\n }\n }\n store.setState((state) => ({ ...state, prompt }));\n}\n\nfunction getWorkspaceTitle(workspace: WorkspaceRegistration, additionalProps?: object) {\n return additionalProps?.['workspaceTitle'] ?? workspace.title;\n}\n\nexport function resetWorkspaceStore() {\n getWorkspaceStore().setState(initialState);\n}\n\n/**\n * The workspace group store is a store that is specific to the workspace group.\n * If the workspace has its own sidebar, the store will be created.\n * This store can be used to store data that is specific to the workspace group.\n * The store will be same for all the workspaces with same group name.\n *\n * For workspaces launched without a group, the store will be undefined.\n *\n * The store will be cleared when all the workspaces with the store's group name are closed.\n */\nexport function getWorkspaceGroupStore(\n workspaceGroupName: string | undefined,\n additionalProps: object = {},\n): StoreApi<object> | undefined {\n if (!workspaceGroupName || workspaceGroupName === 'default') {\n return undefined;\n }\n const store = getGlobalStore<object>(workspaceGroupName, {});\n if (additionalProps) {\n store.setState((prev) => ({\n ...prev,\n ...additionalProps,\n }));\n }\n return store;\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","const e=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:global,t=Object.keys,n=Array.isArray;function r(e,n){return\"object\"!=typeof n||t(n).forEach((function(t){e[t]=n[t]})),e}\"undefined\"==typeof Promise||e.Promise||(e.Promise=Promise);const s=Object.getPrototypeOf,i={}.hasOwnProperty;function o(e,t){return i.call(e,t)}function a(e,n){\"function\"==typeof n&&(n=n(s(e))),(\"undefined\"==typeof Reflect?t:Reflect.ownKeys)(n).forEach((t=>{l(e,t,n[t])}))}const u=Object.defineProperty;function l(e,t,n,s){u(e,t,r(n&&o(n,\"get\")&&\"function\"==typeof n.get?{get:n.get,set:n.set,configurable:!0}:{value:n,configurable:!0,writable:!0},s))}function c(e){return{from:function(t){return e.prototype=Object.create(t.prototype),l(e.prototype,\"constructor\",e),{extend:a.bind(null,e.prototype)}}}}const h=Object.getOwnPropertyDescriptor;function d(e,t){let n;return h(e,t)||(n=s(e))&&d(n,t)}const f=[].slice;function p(e,t,n){return f.call(e,t,n)}function y(e,t){return t(e)}function m(e){if(!e)throw new Error(\"Assertion Failed\")}function v(t){e.setImmediate?setImmediate(t):setTimeout(t,0)}function g(e,t){return e.reduce(((e,n,r)=>{var s=t(n,r);return s&&(e[s[0]]=s[1]),e}),{})}function b(e,t){if(o(e,t))return e[t];if(!t)return e;if(\"string\"!=typeof t){for(var n=[],r=0,s=t.length;r<s;++r){var i=b(e,t[r]);n.push(i)}return n}var a=t.indexOf(\".\");if(-1!==a){var u=e[t.substr(0,a)];return void 0===u?void 0:b(u,t.substr(a+1))}}function _(e,t,r){if(e&&void 0!==t&&(!(\"isFrozen\"in Object)||!Object.isFrozen(e)))if(\"string\"!=typeof t&&\"length\"in t){m(\"string\"!=typeof r&&\"length\"in r);for(var s=0,i=t.length;s<i;++s)_(e,t[s],r[s])}else{var a=t.indexOf(\".\");if(-1!==a){var u=t.substr(0,a),l=t.substr(a+1);if(\"\"===l)void 0===r?n(e)&&!isNaN(parseInt(u))?e.splice(u,1):delete e[u]:e[u]=r;else{var c=e[u];c&&o(e,u)||(c=e[u]={}),_(c,l,r)}}else void 0===r?n(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=r}}function w(e){var t={};for(var n in e)o(e,n)&&(t[n]=e[n]);return t}const x=[].concat;function k(e){return x.apply([],e)}const E=\"Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey\".split(\",\").concat(k([8,16,32,64].map((e=>[\"Int\",\"Uint\",\"Float\"].map((t=>t+e+\"Array\")))))).filter((t=>e[t])),P=E.map((t=>e[t]));g(E,(e=>[e,!0]));let K=null;function O(e){K=\"undefined\"!=typeof WeakMap&&new WeakMap;const t=S(e);return K=null,t}function S(e){if(!e||\"object\"!=typeof e)return e;let t=K&&K.get(e);if(t)return t;if(n(e)){t=[],K&&K.set(e,t);for(var r=0,i=e.length;r<i;++r)t.push(S(e[r]))}else if(P.indexOf(e.constructor)>=0)t=e;else{const n=s(e);for(var a in t=n===Object.prototype?{}:Object.create(n),K&&K.set(e,t),e)o(e,a)&&(t[a]=S(e[a]))}return t}const{toString:A}={};function C(e){return A.call(e).slice(8,-1)}const j=\"undefined\"!=typeof Symbol?Symbol.iterator:\"@@iterator\",D=\"symbol\"==typeof j?function(e){var t;return null!=e&&(t=e[j])&&t.apply(e)}:function(){return null},I={};function B(e){var t,r,s,i;if(1===arguments.length){if(n(e))return e.slice();if(this===I&&\"string\"==typeof e)return[e];if(i=D(e)){for(r=[];!(s=i.next()).done;)r.push(s.value);return r}if(null==e)return[e];if(\"number\"==typeof(t=e.length)){for(r=new Array(t);t--;)r[t]=e[t];return r}return[e]}for(t=arguments.length,r=new Array(t);t--;)r[t]=arguments[t];return r}const T=\"undefined\"!=typeof Symbol?e=>\"AsyncFunction\"===e[Symbol.toStringTag]:()=>!1;var R=\"undefined\"!=typeof location&&/^(http|https):\\/\\/(localhost|127\\.0\\.0\\.1)/.test(location.href);function F(e,t){R=e,M=t}var M=()=>!0;const N=!new Error(\"\").stack;function q(){if(N)try{throw q.arguments,new Error}catch(e){return e}return new Error}function $(e,t){var n=e.stack;return n?(t=t||0,0===n.indexOf(e.name)&&(t+=(e.name+e.message).split(\"\\n\").length),n.split(\"\\n\").slice(t).filter(M).map((e=>\"\\n\"+e)).join(\"\")):\"\"}var U=[\"Unknown\",\"Constraint\",\"Data\",\"TransactionInactive\",\"ReadOnly\",\"Version\",\"NotFound\",\"InvalidState\",\"InvalidAccess\",\"Abort\",\"Timeout\",\"QuotaExceeded\",\"Syntax\",\"DataClone\"],L=[\"Modify\",\"Bulk\",\"OpenFailed\",\"VersionChange\",\"Schema\",\"Upgrade\",\"InvalidTable\",\"MissingAPI\",\"NoSuchDatabase\",\"InvalidArgument\",\"SubTransaction\",\"Unsupported\",\"Internal\",\"DatabaseClosed\",\"PrematureCommit\",\"ForeignAwait\"].concat(U),V={VersionChanged:\"Database version changed by other database connection\",DatabaseClosed:\"Database has been closed\",Abort:\"Transaction aborted\",TransactionInactive:\"Transaction has already completed or failed\",MissingAPI:\"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb\"};function W(e,t){this._e=q(),this.name=e,this.message=t}function Y(e,t){return e+\". Errors: \"+Object.keys(t).map((e=>t[e].toString())).filter(((e,t,n)=>n.indexOf(e)===t)).join(\"\\n\")}function z(e,t,n,r){this._e=q(),this.failures=t,this.failedKeys=r,this.successCount=n,this.message=Y(e,t)}function G(e,t){this._e=q(),this.name=\"BulkError\",this.failures=Object.keys(t).map((e=>t[e])),this.failuresByPos=t,this.message=Y(e,t)}c(W).from(Error).extend({stack:{get:function(){return this._stack||(this._stack=this.name+\": \"+this.message+$(this._e,2))}},toString:function(){return this.name+\": \"+this.message}}),c(z).from(W),c(G).from(W);var H=L.reduce(((e,t)=>(e[t]=t+\"Error\",e)),{});const Q=W;var X=L.reduce(((e,t)=>{var n=t+\"Error\";function r(e,r){this._e=q(),this.name=n,e?\"string\"==typeof e?(this.message=`${e}${r?\"\\n \"+r:\"\"}`,this.inner=r||null):\"object\"==typeof e&&(this.message=`${e.name} ${e.message}`,this.inner=e):(this.message=V[t]||n,this.inner=null)}return c(r).from(Q),e[t]=r,e}),{});X.Syntax=SyntaxError,X.Type=TypeError,X.Range=RangeError;var J=U.reduce(((e,t)=>(e[t+\"Error\"]=X[t],e)),{});var Z=L.reduce(((e,t)=>(-1===[\"Syntax\",\"Type\",\"Range\"].indexOf(t)&&(e[t+\"Error\"]=X[t]),e)),{});function ee(){}function te(e){return e}function ne(e,t){return null==e||e===te?t:function(n){return t(e(n))}}function re(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function se(e,t){return e===ee?t:function(){var n=e.apply(this,arguments);void 0!==n&&(arguments[0]=n);var r=this.onsuccess,s=this.onerror;this.onsuccess=null,this.onerror=null;var i=t.apply(this,arguments);return r&&(this.onsuccess=this.onsuccess?re(r,this.onsuccess):r),s&&(this.onerror=this.onerror?re(s,this.onerror):s),void 0!==i?i:n}}function ie(e,t){return e===ee?t:function(){e.apply(this,arguments);var n=this.onsuccess,r=this.onerror;this.onsuccess=this.onerror=null,t.apply(this,arguments),n&&(this.onsuccess=this.onsuccess?re(n,this.onsuccess):n),r&&(this.onerror=this.onerror?re(r,this.onerror):r)}}function oe(e,t){return e===ee?t:function(n){var s=e.apply(this,arguments);r(n,s);var i=this.onsuccess,o=this.onerror;this.onsuccess=null,this.onerror=null;var a=t.apply(this,arguments);return i&&(this.onsuccess=this.onsuccess?re(i,this.onsuccess):i),o&&(this.onerror=this.onerror?re(o,this.onerror):o),void 0===s?void 0===a?void 0:a:r(s,a)}}function ae(e,t){return e===ee?t:function(){return!1!==t.apply(this,arguments)&&e.apply(this,arguments)}}function ue(e,t){return e===ee?t:function(){var n=e.apply(this,arguments);if(n&&\"function\"==typeof n.then){for(var r=this,s=arguments.length,i=new Array(s);s--;)i[s]=arguments[s];return n.then((function(){return t.apply(r,i)}))}return t.apply(this,arguments)}}Z.ModifyError=z,Z.DexieError=W,Z.BulkError=G;var le={};const[ce,he,de]=\"undefined\"==typeof Promise?[]:(()=>{let e=Promise.resolve();if(\"undefined\"==typeof crypto||!crypto.subtle)return[e,s(e),e];const t=crypto.subtle.digest(\"SHA-512\",new Uint8Array([0]));return[t,s(t),e]})(),fe=he&&he.then,pe=ce&&ce.constructor,ye=!!de;var me=!1,ve=de?()=>{de.then(qe)}:e.setImmediate?setImmediate.bind(null,qe):e.MutationObserver?()=>{var e=document.createElement(\"div\");new MutationObserver((()=>{qe(),e=null})).observe(e,{attributes:!0}),e.setAttribute(\"i\",\"1\")}:()=>{setTimeout(qe,0)},ge=function(e,t){Oe.push([e,t]),_e&&(ve(),_e=!1)},be=!0,_e=!0,we=[],xe=[],ke=null,Ee=te,Pe={id:\"global\",global:!0,ref:0,unhandleds:[],onunhandled:ct,pgp:!1,env:{},finalize:function(){this.unhandleds.forEach((e=>{try{ct(e[0],e[1])}catch(e){}}))}},Ke=Pe,Oe=[],Se=0,Ae=[];function Ce(e){if(\"object\"!=typeof this)throw new TypeError(\"Promises must be constructed via new\");this._listeners=[],this.onuncatched=ee,this._lib=!1;var t=this._PSD=Ke;if(R&&(this._stackHolder=q(),this._prev=null,this._numPrev=0),\"function\"!=typeof e){if(e!==le)throw new TypeError(\"Not a function\");return this._state=arguments[1],this._value=arguments[2],void(!1===this._state&&Be(this,this._value))}this._state=null,this._value=null,++t.ref,Ie(this,e)}const je={get:function(){var e=Ke,t=Qe;function n(n,r){var s=!e.global&&(e!==Ke||t!==Qe);const i=s&&!et();var o=new Ce(((t,o)=>{Re(this,new De(ut(n,e,s,i),ut(r,e,s,i),t,o,e))}));return R&&Ne(o,this),o}return n.prototype=le,n},set:function(e){l(this,\"then\",e&&e.prototype===le?je:{get:function(){return e},set:je.set})}};function De(e,t,n,r,s){this.onFulfilled=\"function\"==typeof e?e:null,this.onRejected=\"function\"==typeof t?t:null,this.resolve=n,this.reject=r,this.psd=s}function Ie(e,t){try{t((t=>{if(null===e._state){if(t===e)throw new TypeError(\"A promise cannot be resolved with itself.\");var n=e._lib&&$e();t&&\"function\"==typeof t.then?Ie(e,((e,n)=>{t instanceof Ce?t._then(e,n):t.then(e,n)})):(e._state=!0,e._value=t,Te(e)),n&&Ue()}}),Be.bind(null,e))}catch(t){Be(e,t)}}function Be(e,t){if(xe.push(t),null===e._state){var n=e._lib&&$e();t=Ee(t),e._state=!1,e._value=t,R&&null!==t&&\"object\"==typeof t&&!t._promise&&function(e,t,n){try{e.apply(null,n)}catch(e){t&&t(e)}}((()=>{var n=d(t,\"stack\");t._promise=e,l(t,\"stack\",{get:()=>me?n&&(n.get?n.get.apply(t):n.value):e.stack})})),function(e){we.some((t=>t._value===e._value))||we.push(e)}(e),Te(e),n&&Ue()}}function Te(e){var t=e._listeners;e._listeners=[];for(var n=0,r=t.length;n<r;++n)Re(e,t[n]);var s=e._PSD;--s.ref||s.finalize(),0===Se&&(++Se,ge((()=>{0==--Se&&Le()}),[]))}function Re(e,t){if(null!==e._state){var n=e._state?t.onFulfilled:t.onRejected;if(null===n)return(e._state?t.resolve:t.reject)(e._value);++t.psd.ref,++Se,ge(Fe,[n,e,t])}else e._listeners.push(t)}function Fe(e,t,n){try{ke=t;var r,s=t._value;t._state?r=e(s):(xe.length&&(xe=[]),r=e(s),-1===xe.indexOf(s)&&function(e){var t=we.length;for(;t;)if(we[--t]._value===e._value)return void we.splice(t,1)}(t)),n.resolve(r)}catch(e){n.reject(e)}finally{ke=null,0==--Se&&Le(),--n.psd.ref||n.psd.finalize()}}function Me(e,t,n){if(t.length===n)return t;var r=\"\";if(!1===e._state){var s,i,o=e._value;null!=o?(s=o.name||\"Error\",i=o.message||o,r=$(o,0)):(s=o,i=\"\"),t.push(s+(i?\": \"+i:\"\")+r)}return R&&((r=$(e._stackHolder,2))&&-1===t.indexOf(r)&&t.push(r),e._prev&&Me(e._prev,t,n)),t}function Ne(e,t){var n=t?t._numPrev+1:0;n<100&&(e._prev=t,e._numPrev=n)}function qe(){$e()&&Ue()}function $e(){var e=be;return be=!1,_e=!1,e}function Ue(){var e,t,n;do{for(;Oe.length>0;)for(e=Oe,Oe=[],n=e.length,t=0;t<n;++t){var r=e[t];r[0].apply(null,r[1])}}while(Oe.length>0);be=!0,_e=!0}function Le(){var e=we;we=[],e.forEach((e=>{e._PSD.onunhandled.call(null,e._value,e)}));for(var t=Ae.slice(0),n=t.length;n;)t[--n]()}function Ve(e){return new Ce(le,!1,e)}function We(e,t){var n=Ke;return function(){var r=$e(),s=Ke;try{return st(n,!0),e.apply(this,arguments)}catch(e){t&&t(e)}finally{st(s,!1),r&&Ue()}}}a(Ce.prototype,{then:je,_then:function(e,t){Re(this,new De(null,null,e,t,Ke))},catch:function(e){if(1===arguments.length)return this.then(null,e);var t=arguments[0],n=arguments[1];return\"function\"==typeof t?this.then(null,(e=>e instanceof t?n(e):Ve(e))):this.then(null,(e=>e&&e.name===t?n(e):Ve(e)))},finally:function(e){return this.then((t=>(e(),t)),(t=>(e(),Ve(t))))},stack:{get:function(){if(this._stack)return this._stack;try{me=!0;var e=Me(this,[],20).join(\"\\nFrom previous: \");return null!==this._state&&(this._stack=e),e}finally{me=!1}}},timeout:function(e,t){return e<1/0?new Ce(((n,r)=>{var s=setTimeout((()=>r(new X.Timeout(t))),e);this.then(n,r).finally(clearTimeout.bind(null,s))})):this}}),\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&l(Ce.prototype,Symbol.toStringTag,\"Dexie.Promise\"),Pe.env=it(),a(Ce,{all:function(){var e=B.apply(null,arguments).map(tt);return new Ce((function(t,n){0===e.length&&t([]);var r=e.length;e.forEach(((s,i)=>Ce.resolve(s).then((n=>{e[i]=n,--r||t(e)}),n)))}))},resolve:e=>{if(e instanceof Ce)return e;if(e&&\"function\"==typeof e.then)return new Ce(((t,n)=>{e.then(t,n)}));var t=new Ce(le,!0,e);return Ne(t,ke),t},reject:Ve,race:function(){var e=B.apply(null,arguments).map(tt);return new Ce(((t,n)=>{e.map((e=>Ce.resolve(e).then(t,n)))}))},PSD:{get:()=>Ke,set:e=>Ke=e},totalEchoes:{get:()=>Qe},newPSD:Je,usePSD:ot,scheduler:{get:()=>ge,set:e=>{ge=e}},rejectionMapper:{get:()=>Ee,set:e=>{Ee=e}},follow:(e,t)=>new Ce(((n,r)=>Je(((t,n)=>{var r=Ke;r.unhandleds=[],r.onunhandled=n,r.finalize=re((function(){!function(e){function t(){e(),Ae.splice(Ae.indexOf(t),1)}Ae.push(t),++Se,ge((()=>{0==--Se&&Le()}),[])}((()=>{0===this.unhandleds.length?t():n(this.unhandleds[0])}))}),r.finalize),e()}),t,n,r)))}),pe&&(pe.allSettled&&l(Ce,\"allSettled\",(function(){const e=B.apply(null,arguments).map(tt);return new Ce((t=>{0===e.length&&t([]);let n=e.length;const r=new Array(n);e.forEach(((e,s)=>Ce.resolve(e).then((e=>r[s]={status:\"fulfilled\",value:e}),(e=>r[s]={status:\"rejected\",reason:e})).then((()=>--n||t(r)))))}))})),pe.any&&\"undefined\"!=typeof AggregateError&&l(Ce,\"any\",(function(){const e=B.apply(null,arguments).map(tt);return new Ce(((t,n)=>{0===e.length&&n(new AggregateError([]));let r=e.length;const s=new Array(r);e.forEach(((e,i)=>Ce.resolve(e).then((e=>t(e)),(e=>{s[i]=e,--r||n(new AggregateError(s))}))))}))})));const Ye={awaits:0,echoes:0,id:0};var ze=0,Ge=[],He=0,Qe=0,Xe=0;function Je(e,t,n,s){var i=Ke,o=Object.create(i);o.parent=i,o.ref=0,o.global=!1,o.id=++Xe;var a=Pe.env;o.env=ye?{Promise:Ce,PromiseProp:{value:Ce,configurable:!0,writable:!0},all:Ce.all,race:Ce.race,allSettled:Ce.allSettled,any:Ce.any,resolve:Ce.resolve,reject:Ce.reject,nthen:lt(a.nthen,o),gthen:lt(a.gthen,o)}:{},t&&r(o,t),++i.ref,o.finalize=function(){--this.parent.ref||this.parent.finalize()};var u=ot(o,e,n,s);return 0===o.ref&&o.finalize(),u}function Ze(){return Ye.id||(Ye.id=++ze),++Ye.awaits,Ye.echoes+=100,Ye.id}function et(){return!!Ye.awaits&&(0==--Ye.awaits&&(Ye.id=0),Ye.echoes=100*Ye.awaits,!0)}function tt(e){return Ye.echoes&&e&&e.constructor===pe?(Ze(),e.then((e=>(et(),e)),(e=>(et(),ht(e))))):e}function nt(e){++Qe,Ye.echoes&&0!=--Ye.echoes||(Ye.echoes=Ye.id=0),Ge.push(Ke),st(e,!0)}function rt(){var e=Ge[Ge.length-1];Ge.pop(),st(e,!1)}function st(t,n){var r=Ke;if((n?!Ye.echoes||He++&&t===Ke:!He||--He&&t===Ke)||at(n?nt.bind(null,t):rt),t!==Ke&&(Ke=t,r===Pe&&(Pe.env=it()),ye)){var s=Pe.env.Promise,i=t.env;he.then=i.nthen,s.prototype.then=i.gthen,(r.global||t.global)&&(Object.defineProperty(e,\"Promise\",i.PromiseProp),s.all=i.all,s.race=i.race,s.resolve=i.resolve,s.reject=i.reject,i.allSettled&&(s.allSettled=i.allSettled),i.any&&(s.any=i.any))}}function it(){var t=e.Promise;return ye?{Promise:t,PromiseProp:Object.getOwnPropertyDescriptor(e,\"Promise\"),all:t.all,race:t.race,allSettled:t.allSettled,any:t.any,resolve:t.resolve,reject:t.reject,nthen:he.then,gthen:t.prototype.then}:{}}function ot(e,t,n,r,s){var i=Ke;try{return st(e,!0),t(n,r,s)}finally{st(i,!1)}}function at(e){fe.call(ce,e)}function ut(e,t,n,r){return\"function\"!=typeof e?e:function(){var s=Ke;n&&Ze(),st(t,!0);try{return e.apply(this,arguments)}finally{st(s,!1),r&&at(et)}}}function lt(e,t){return function(n,r){return e.call(this,ut(n,t),ut(r,t))}}-1===(\"\"+fe).indexOf(\"[native code]\")&&(Ze=et=ee);function ct(t,n){var s;try{s=n.onuncatched(t)}catch(e){}if(!1!==s)try{var i,o={promise:n,reason:t};if(e.document&&document.createEvent?((i=document.createEvent(\"Event\")).initEvent(\"unhandledrejection\",!0,!0),r(i,o)):e.CustomEvent&&r(i=new CustomEvent(\"unhandledrejection\",{detail:o}),o),i&&e.dispatchEvent&&(dispatchEvent(i),!e.PromiseRejectionEvent&&e.onunhandledrejection))try{e.onunhandledrejection(i)}catch(e){}R&&i&&!i.defaultPrevented&&console.warn(`Unhandled rejection: ${t.stack||t}`)}catch(e){}}var ht=Ce.reject;function dt(e,t,n,r){if(e.idbdb&&(e._state.openComplete||Ke.letThrough||e._vip)){var s=e._createTransaction(t,n,e._dbSchema);try{s.create(),e._state.PR1398_maxLoop=3}catch(s){return s.name===H.InvalidState&&e.isOpen()&&--e._state.PR1398_maxLoop>0?(console.warn(\"Dexie: Need to reopen db\"),e._close(),e.open().then((()=>dt(e,t,n,r)))):ht(s)}return s._promise(t,((e,t)=>Je((()=>(Ke.trans=s,r(e,t,s)))))).then((e=>s._completion.then((()=>e))))}if(e._state.openComplete)return ht(new X.DatabaseClosed(e._state.dbOpenError));if(!e._state.isBeingOpened){if(!e._options.autoOpen)return ht(new X.DatabaseClosed);e.open().catch(ee)}return e._state.dbReadyPromise.then((()=>dt(e,t,n,r)))}const ft=String.fromCharCode(65535),pt=\"Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.\",yt=[],mt=\"undefined\"!=typeof navigator&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),vt=mt,gt=mt,bt=e=>!/(dexie\\.js|dexie\\.min\\.js)/.test(e);function _t(e,t){return e?t?function(){return e.apply(this,arguments)&&t.apply(this,arguments)}:e:t}const wt={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function xt(e){return\"string\"!=typeof e||/\\./.test(e)?e=>e:t=>(void 0===t[e]&&e in t&&delete(t=O(t))[e],t)}class kt{_trans(e,t,n){const r=this._tx||Ke.trans,s=this.name;function i(e,n,r){if(!r.schema[s])throw new X.NotFound(\"Table \"+s+\" not part of transaction\");return t(r.idbtrans,r)}const o=$e();try{return r&&r.db===this.db?r===Ke.trans?r._promise(e,i,n):Je((()=>r._promise(e,i,n)),{trans:r,transless:Ke.transless||Ke}):dt(this.db,e,[this.name],i)}finally{o&&Ue()}}get(e,t){return e&&e.constructor===Object?this.where(e).first(t):this._trans(\"readonly\",(t=>this.core.get({trans:t,key:e}).then((e=>this.hook.reading.fire(e))))).then(t)}where(e){if(\"string\"==typeof e)return new this.db.WhereClause(this,e);if(n(e))return new this.db.WhereClause(this,`[${e.join(\"+\")}]`);const r=t(e);if(1===r.length)return this.where(r[0]).equals(e[r[0]]);const s=this.schema.indexes.concat(this.schema.primKey).filter((e=>e.compound&&r.every((t=>e.keyPath.indexOf(t)>=0))&&e.keyPath.every((e=>r.indexOf(e)>=0))))[0];if(s&&this.db._maxKey!==ft)return this.where(s.name).equals(s.keyPath.map((t=>e[t])));!s&&R&&console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${r.join(\"+\")}]`);const{idxByName:i}=this.schema,o=this.db._deps.indexedDB;function a(e,t){try{return 0===o.cmp(e,t)}catch(e){return!1}}const[u,l]=r.reduce((([t,r],s)=>{const o=i[s],u=e[s];return[t||o,t||!o?_t(r,o&&o.multi?e=>{const t=b(e,s);return n(t)&&t.some((e=>a(u,e)))}:e=>a(u,b(e,s))):r]}),[null,null]);return u?this.where(u.name).equals(e[u.keyPath]).filter(l):s?this.filter(l):this.where(r).equals(\"\")}filter(e){return this.toCollection().and(e)}count(e){return this.toCollection().count(e)}offset(e){return this.toCollection().offset(e)}limit(e){return this.toCollection().limit(e)}each(e){return this.toCollection().each(e)}toArray(e){return this.toCollection().toArray(e)}toCollection(){return new this.db.Collection(new this.db.WhereClause(this))}orderBy(e){return new this.db.Collection(new this.db.WhereClause(this,n(e)?`[${e.join(\"+\")}]`:e))}reverse(){return this.toCollection().reverse()}mapToClass(e){this.schema.mappedClass=e;const t=t=>{if(!t)return t;const n=Object.create(e.prototype);for(var r in t)if(o(t,r))try{n[r]=t[r]}catch(e){}return n};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=t,this.hook(\"reading\",t),e}defineClass(){return this.mapToClass((function(e){r(this,e)}))}add(e,t){const{auto:n,keyPath:r}=this.schema.primKey;let s=e;return r&&n&&(s=xt(r)(e)),this._trans(\"readwrite\",(e=>this.core.mutate({trans:e,type:\"add\",keys:null!=t?[t]:null,values:[s]}))).then((e=>e.numFailures?Ce.reject(e.failures[0]):e.lastResult)).then((t=>{if(r)try{_(e,r,t)}catch(e){}return t}))}update(e,r){if(\"object\"!=typeof e||n(e))return this.where(\":id\").equals(e).modify(r);{const n=b(e,this.schema.primKey.keyPath);if(void 0===n)return ht(new X.InvalidArgument(\"Given object does not contain its primary key\"));try{\"function\"!=typeof r?t(r).forEach((t=>{_(e,t,r[t])})):r(e,{value:e,primKey:n})}catch(e){}return this.where(\":id\").equals(n).modify(r)}}put(e,t){const{auto:n,keyPath:r}=this.schema.primKey;let s=e;return r&&n&&(s=xt(r)(e)),this._trans(\"readwrite\",(e=>this.core.mutate({trans:e,type:\"put\",values:[s],keys:null!=t?[t]:null}))).then((e=>e.numFailures?Ce.reject(e.failures[0]):e.lastResult)).then((t=>{if(r)try{_(e,r,t)}catch(e){}return t}))}delete(e){return this._trans(\"readwrite\",(t=>this.core.mutate({trans:t,type:\"delete\",keys:[e]}))).then((e=>e.numFailures?Ce.reject(e.failures[0]):void 0))}clear(){return this._trans(\"readwrite\",(e=>this.core.mutate({trans:e,type:\"deleteRange\",range:wt}))).then((e=>e.numFailures?Ce.reject(e.failures[0]):void 0))}bulkGet(e){return this._trans(\"readonly\",(t=>this.core.getMany({keys:e,trans:t}).then((e=>e.map((e=>this.hook.reading.fire(e)))))))}bulkAdd(e,t,n){const r=Array.isArray(t)?t:void 0,s=(n=n||(r?void 0:t))?n.allKeys:void 0;return this._trans(\"readwrite\",(t=>{const{auto:n,keyPath:i}=this.schema.primKey;if(i&&r)throw new X.InvalidArgument(\"bulkAdd(): keys argument invalid on tables with inbound keys\");if(r&&r.length!==e.length)throw new X.InvalidArgument(\"Arguments objects and keys must have the same length\");const o=e.length;let a=i&&n?e.map(xt(i)):e;return this.core.mutate({trans:t,type:\"add\",keys:r,values:a,wantResults:s}).then((({numFailures:e,results:t,lastResult:n,failures:r})=>{if(0===e)return s?t:n;throw new G(`${this.name}.bulkAdd(): ${e} of ${o} operations failed`,r)}))}))}bulkPut(e,t,n){const r=Array.isArray(t)?t:void 0,s=(n=n||(r?void 0:t))?n.allKeys:void 0;return this._trans(\"readwrite\",(t=>{const{auto:n,keyPath:i}=this.schema.primKey;if(i&&r)throw new X.InvalidArgument(\"bulkPut(): keys argument invalid on tables with inbound keys\");if(r&&r.length!==e.length)throw new X.InvalidArgument(\"Arguments objects and keys must have the same length\");const o=e.length;let a=i&&n?e.map(xt(i)):e;return this.core.mutate({trans:t,type:\"put\",keys:r,values:a,wantResults:s}).then((({numFailures:e,results:t,lastResult:n,failures:r})=>{if(0===e)return s?t:n;throw new G(`${this.name}.bulkPut(): ${e} of ${o} operations failed`,r)}))}))}bulkDelete(e){const t=e.length;return this._trans(\"readwrite\",(t=>this.core.mutate({trans:t,type:\"delete\",keys:e}))).then((({numFailures:e,lastResult:n,failures:r})=>{if(0===e)return n;throw new G(`${this.name}.bulkDelete(): ${e} of ${t} operations failed`,r)}))}}function Et(e){var r={},s=function(t,n){if(n){for(var s=arguments.length,i=new Array(s-1);--s;)i[s-1]=arguments[s];return r[t].subscribe.apply(null,i),e}if(\"string\"==typeof t)return r[t]};s.addEventType=a;for(var i=1,o=arguments.length;i<o;++i)a(arguments[i]);return s;function a(e,t,n){if(\"object\"==typeof e)return u(e);t||(t=ae),n||(n=ee);var i={subscribers:[],fire:n,subscribe:function(e){-1===i.subscribers.indexOf(e)&&(i.subscribers.push(e),i.fire=t(i.fire,e))},unsubscribe:function(e){i.subscribers=i.subscribers.filter((function(t){return t!==e})),i.fire=i.subscribers.reduce(t,n)}};return r[e]=s[e]=i,i}function u(e){t(e).forEach((function(t){var r=e[t];if(n(r))a(t,e[t][0],e[t][1]);else{if(\"asap\"!==r)throw new X.InvalidArgument(\"Invalid event config\");var s=a(t,te,(function(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];s.subscribers.forEach((function(e){v((function(){e.apply(null,t)}))}))}))}}))}}function Pt(e,t){return c(t).from({prototype:e}),t}function Kt(e,t){return!(e.filter||e.algorithm||e.or)&&(t?e.justLimit:!e.replayFilter)}function Ot(e,t){e.filter=_t(e.filter,t)}function St(e,t,n){var r=e.replayFilter;e.replayFilter=r?()=>_t(r(),t()):t,e.justLimit=n&&!r}function At(e,t){if(e.isPrimKey)return t.primaryKey;const n=t.getIndexByKeyPath(e.index);if(!n)throw new X.Schema(\"KeyPath \"+e.index+\" on object store \"+t.name+\" is not indexed\");return n}function Ct(e,t,n){const r=At(e,t.schema);return t.openCursor({trans:n,values:!e.keysOnly,reverse:\"prev\"===e.dir,unique:!!e.unique,query:{index:r,range:e.range}})}function jt(e,t,n,r){const s=e.replayFilter?_t(e.filter,e.replayFilter()):e.filter;if(e.or){const i={},a=(e,n,r)=>{if(!s||s(n,r,(e=>n.stop(e)),(e=>n.fail(e)))){var a=n.primaryKey,u=\"\"+a;\"[object ArrayBuffer]\"===u&&(u=\"\"+new Uint8Array(a)),o(i,u)||(i[u]=!0,t(e,n,r))}};return Promise.all([e.or._iterate(a,n),Dt(Ct(e,r,n),e.algorithm,a,!e.keysOnly&&e.valueMapper)])}return Dt(Ct(e,r,n),_t(e.algorithm,s),t,!e.keysOnly&&e.valueMapper)}function Dt(e,t,n,r){var s=We(r?(e,t,s)=>n(r(e),t,s):n);return e.then((e=>{if(e)return e.start((()=>{var n=()=>e.continue();t&&!t(e,(e=>n=e),(t=>{e.stop(t),n=ee}),(t=>{e.fail(t),n=ee}))||s(e.value,e,(e=>n=e)),n()}))}))}function It(e,t){try{const n=Bt(e),r=Bt(t);if(n!==r)return\"Array\"===n?1:\"Array\"===r?-1:\"binary\"===n?1:\"binary\"===r?-1:\"string\"===n?1:\"string\"===r?-1:\"Date\"===n?1:\"Date\"!==r?NaN:-1;switch(n){case\"number\":case\"Date\":case\"string\":return e>t?1:e<t?-1:0;case\"binary\":return function(e,t){const n=e.length,r=t.length,s=n<r?n:r;for(let n=0;n<s;++n)if(e[n]!==t[n])return e[n]<t[n]?-1:1;return n===r?0:n<r?-1:1}(Tt(e),Tt(t));case\"Array\":return function(e,t){const n=e.length,r=t.length,s=n<r?n:r;for(let n=0;n<s;++n){const r=It(e[n],t[n]);if(0!==r)return r}return n===r?0:n<r?-1:1}(e,t)}}catch(e){}return NaN}function Bt(e){const t=typeof e;if(\"object\"!==t)return t;if(ArrayBuffer.isView(e))return\"binary\";const n=C(e);return\"ArrayBuffer\"===n?\"binary\":n}function Tt(e){return e instanceof Uint8Array?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e)}class Rt{_read(e,t){var n=this._ctx;return n.error?n.table._trans(null,ht.bind(null,n.error)):n.table._trans(\"readonly\",e).then(t)}_write(e){var t=this._ctx;return t.error?t.table._trans(null,ht.bind(null,t.error)):t.table._trans(\"readwrite\",e,\"locked\")}_addAlgorithm(e){var t=this._ctx;t.algorithm=_t(t.algorithm,e)}_iterate(e,t){return jt(this._ctx,e,t,this._ctx.table.core)}clone(e){var t=Object.create(this.constructor.prototype),n=Object.create(this._ctx);return e&&r(n,e),t._ctx=n,t}raw(){return this._ctx.valueMapper=null,this}each(e){var t=this._ctx;return this._read((n=>jt(t,e,n,t.table.core)))}count(e){return this._read((e=>{const t=this._ctx,n=t.table.core;if(Kt(t,!0))return n.count({trans:e,query:{index:At(t,n.schema),range:t.range}}).then((e=>Math.min(e,t.limit)));var r=0;return jt(t,(()=>(++r,!1)),e,n).then((()=>r))})).then(e)}sortBy(e,t){const n=e.split(\".\").reverse(),r=n[0],s=n.length-1;function i(e,t){return t?i(e[n[t]],t-1):e[r]}var o=\"next\"===this._ctx.dir?1:-1;function a(e,t){var n=i(e,s),r=i(t,s);return n<r?-o:n>r?o:0}return this.toArray((function(e){return e.sort(a)})).then(t)}toArray(e){return this._read((e=>{var t=this._ctx;if(\"next\"===t.dir&&Kt(t,!0)&&t.limit>0){const{valueMapper:n}=t,r=At(t,t.table.core.schema);return t.table.core.query({trans:e,limit:t.limit,values:!0,query:{index:r,range:t.range}}).then((({result:e})=>n?e.map(n):e))}{const n=[];return jt(t,(e=>n.push(e)),e,t.table.core).then((()=>n))}}),e)}offset(e){var t=this._ctx;return e<=0||(t.offset+=e,Kt(t)?St(t,(()=>{var t=e;return(e,n)=>0===t||(1===t?(--t,!1):(n((()=>{e.advance(t),t=0})),!1))})):St(t,(()=>{var t=e;return()=>--t<0}))),this}limit(e){return this._ctx.limit=Math.min(this._ctx.limit,e),St(this._ctx,(()=>{var t=e;return function(e,n,r){return--t<=0&&n(r),t>=0}}),!0),this}until(e,t){return Ot(this._ctx,(function(n,r,s){return!e(n.value)||(r(s),t)})),this}first(e){return this.limit(1).toArray((function(e){return e[0]})).then(e)}last(e){return this.reverse().first(e)}filter(e){var t,n;return Ot(this._ctx,(function(t){return e(t.value)})),t=this._ctx,n=e,t.isMatch=_t(t.isMatch,n),this}and(e){return this.filter(e)}or(e){return new this.db.WhereClause(this._ctx.table,e,this)}reverse(){return this._ctx.dir=\"prev\"===this._ctx.dir?\"next\":\"prev\",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this}desc(){return this.reverse()}eachKey(e){var t=this._ctx;return t.keysOnly=!t.isMatch,this.each((function(t,n){e(n.key,n)}))}eachUniqueKey(e){return this._ctx.unique=\"unique\",this.eachKey(e)}eachPrimaryKey(e){var t=this._ctx;return t.keysOnly=!t.isMatch,this.each((function(t,n){e(n.primaryKey,n)}))}keys(e){var t=this._ctx;t.keysOnly=!t.isMatch;var n=[];return this.each((function(e,t){n.push(t.key)})).then((function(){return n})).then(e)}primaryKeys(e){var t=this._ctx;if(\"next\"===t.dir&&Kt(t,!0)&&t.limit>0)return this._read((e=>{var n=At(t,t.table.core.schema);return t.table.core.query({trans:e,values:!1,limit:t.limit,query:{index:n,range:t.range}})})).then((({result:e})=>e)).then(e);t.keysOnly=!t.isMatch;var n=[];return this.each((function(e,t){n.push(t.primaryKey)})).then((function(){return n})).then(e)}uniqueKeys(e){return this._ctx.unique=\"unique\",this.keys(e)}firstKey(e){return this.limit(1).keys((function(e){return e[0]})).then(e)}lastKey(e){return this.reverse().firstKey(e)}distinct(){var e=this._ctx,t=e.index&&e.table.schema.idxByName[e.index];if(!t||!t.multi)return this;var n={};return Ot(this._ctx,(function(e){var t=e.primaryKey.toString(),r=o(n,t);return n[t]=!0,!r})),this}modify(e){var n=this._ctx;return this._write((r=>{var s;if(\"function\"==typeof e)s=e;else{var i=t(e),o=i.length;s=function(t){for(var n=!1,r=0;r<o;++r){var s=i[r],a=e[s];b(t,s)!==a&&(_(t,s,a),n=!0)}return n}}const a=n.table.core,{outbound:u,extractKey:l}=a.schema.primaryKey,c=this.db._options.modifyChunkSize||200,h=[];let d=0;const f=[],p=(e,n)=>{const{failures:r,numFailures:s}=n;d+=e-s;for(let e of t(r))h.push(r[e])};return this.clone().primaryKeys().then((t=>{const i=o=>{const h=Math.min(c,t.length-o);return a.getMany({trans:r,keys:t.slice(o,o+h),cache:\"immutable\"}).then((d=>{const f=[],y=[],m=u?[]:null,v=[];for(let e=0;e<h;++e){const n=d[e],r={value:O(n),primKey:t[o+e]};!1!==s.call(r,r.value,r)&&(null==r.value?v.push(t[o+e]):u||0===It(l(n),l(r.value))?(y.push(r.value),u&&m.push(t[o+e])):(v.push(t[o+e]),f.push(r.value)))}const g=Kt(n)&&n.limit===1/0&&(\"function\"!=typeof e||e===Ft)&&{index:n.index,range:n.range};return Promise.resolve(f.length>0&&a.mutate({trans:r,type:\"add\",values:f}).then((e=>{for(let t in e.failures)v.splice(parseInt(t),1);p(f.length,e)}))).then((()=>(y.length>0||g&&\"object\"==typeof e)&&a.mutate({trans:r,type:\"put\",keys:m,values:y,criteria:g,changeSpec:\"function\"!=typeof e&&e}).then((e=>p(y.length,e))))).then((()=>(v.length>0||g&&e===Ft)&&a.mutate({trans:r,type:\"delete\",keys:v,criteria:g}).then((e=>p(v.length,e))))).then((()=>t.length>o+h&&i(o+c)))}))};return i(0).then((()=>{if(h.length>0)throw new z(\"Error modifying one or more objects\",h,d,f);return t.length}))}))}))}delete(){var e=this._ctx,t=e.range;return Kt(e)&&(e.isPrimKey&&!gt||3===t.type)?this._write((n=>{const{primaryKey:r}=e.table.core.schema,s=t;return e.table.core.count({trans:n,query:{index:r,range:s}}).then((t=>e.table.core.mutate({trans:n,type:\"deleteRange\",range:s}).then((({failures:e,lastResult:n,results:r,numFailures:s})=>{if(s)throw new z(\"Could not delete some values\",Object.keys(e).map((t=>e[t])),t-s);return t-s}))))})):this.modify(Ft)}}const Ft=(e,t)=>t.value=null;function Mt(e,t){return e<t?-1:e===t?0:1}function Nt(e,t){return e>t?-1:e===t?0:1}function qt(e,t,n){var r=e instanceof Yt?new e.Collection(e):e;return r._ctx.error=n?new n(t):new TypeError(t),r}function $t(e){return new e.Collection(e,(()=>Wt(\"\"))).limit(0)}function Ut(e,t,n,r,s,i){for(var o=Math.min(e.length,r.length),a=-1,u=0;u<o;++u){var l=t[u];if(l!==r[u])return s(e[u],n[u])<0?e.substr(0,u)+n[u]+n.substr(u+1):s(e[u],r[u])<0?e.substr(0,u)+r[u]+n.substr(u+1):a>=0?e.substr(0,a)+t[a]+n.substr(a+1):null;s(e[u],l)<0&&(a=u)}return o<r.length&&\"next\"===i?e+n.substr(e.length):o<e.length&&\"prev\"===i?e.substr(0,n.length):a<0?null:e.substr(0,a)+r[a]+n.substr(a+1)}function Lt(e,t,n,r){var s,i,o,a,u,l,c,h=n.length;if(!n.every((e=>\"string\"==typeof e)))return qt(e,\"String expected.\");function d(e){s=function(e){return\"next\"===e?e=>e.toUpperCase():e=>e.toLowerCase()}(e),i=function(e){return\"next\"===e?e=>e.toLowerCase():e=>e.toUpperCase()}(e),o=\"next\"===e?Mt:Nt;var t=n.map((function(e){return{lower:i(e),upper:s(e)}})).sort((function(e,t){return o(e.lower,t.lower)}));a=t.map((function(e){return e.upper})),u=t.map((function(e){return e.lower})),l=e,c=\"next\"===e?\"\":r}d(\"next\");var f=new e.Collection(e,(()=>Vt(a[0],u[h-1]+r)));f._ondirectionchange=function(e){d(e)};var p=0;return f._addAlgorithm((function(e,n,r){var s=e.key;if(\"string\"!=typeof s)return!1;var d=i(s);if(t(d,u,p))return!0;for(var f=null,y=p;y<h;++y){var m=Ut(s,d,a[y],u[y],o,l);null===m&&null===f?p=y+1:(null===f||o(f,m)>0)&&(f=m)}return n(null!==f?function(){e.continue(f+c)}:r),!1})),f}function Vt(e,t,n,r){return{type:2,lower:e,upper:t,lowerOpen:n,upperOpen:r}}function Wt(e){return{type:1,lower:e,upper:e}}class Yt{get Collection(){return this._ctx.table.db.Collection}between(e,t,n,r){n=!1!==n,r=!0===r;try{return this._cmp(e,t)>0||0===this._cmp(e,t)&&(n||r)&&(!n||!r)?$t(this):new this.Collection(this,(()=>Vt(e,t,!n,!r)))}catch(e){return qt(this,pt)}}equals(e){return null==e?qt(this,pt):new this.Collection(this,(()=>Wt(e)))}above(e){return null==e?qt(this,pt):new this.Collection(this,(()=>Vt(e,void 0,!0)))}aboveOrEqual(e){return null==e?qt(this,pt):new this.Collection(this,(()=>Vt(e,void 0,!1)))}below(e){return null==e?qt(this,pt):new this.Collection(this,(()=>Vt(void 0,e,!1,!0)))}belowOrEqual(e){return null==e?qt(this,pt):new this.Collection(this,(()=>Vt(void 0,e)))}startsWith(e){return\"string\"!=typeof e?qt(this,\"String expected.\"):this.between(e,e+ft,!0,!0)}startsWithIgnoreCase(e){return\"\"===e?this.startsWith(e):Lt(this,((e,t)=>0===e.indexOf(t[0])),[e],ft)}equalsIgnoreCase(e){return Lt(this,((e,t)=>e===t[0]),[e],\"\")}anyOfIgnoreCase(){var e=B.apply(I,arguments);return 0===e.length?$t(this):Lt(this,((e,t)=>-1!==t.indexOf(e)),e,\"\")}startsWithAnyOfIgnoreCase(){var e=B.apply(I,arguments);return 0===e.length?$t(this):Lt(this,((e,t)=>t.some((t=>0===e.indexOf(t)))),e,ft)}anyOf(){const e=B.apply(I,arguments);let t=this._cmp;try{e.sort(t)}catch(e){return qt(this,pt)}if(0===e.length)return $t(this);const n=new this.Collection(this,(()=>Vt(e[0],e[e.length-1])));n._ondirectionchange=n=>{t=\"next\"===n?this._ascending:this._descending,e.sort(t)};let r=0;return n._addAlgorithm(((n,s,i)=>{const o=n.key;for(;t(o,e[r])>0;)if(++r,r===e.length)return s(i),!1;return 0===t(o,e[r])||(s((()=>{n.continue(e[r])})),!1)})),n}notEqual(e){return this.inAnyRange([[-(1/0),e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){const e=B.apply(I,arguments);if(0===e.length)return new this.Collection(this);try{e.sort(this._ascending)}catch(e){return qt(this,pt)}const t=e.reduce(((e,t)=>e?e.concat([[e[e.length-1][1],t]]):[[-(1/0),t]]),null);return t.push([e[e.length-1],this.db._maxKey]),this.inAnyRange(t,{includeLowers:!1,includeUppers:!1})}inAnyRange(e,t){const n=this._cmp,r=this._ascending,s=this._descending,i=this._min,o=this._max;if(0===e.length)return $t(this);if(!e.every((e=>void 0!==e[0]&&void 0!==e[1]&&r(e[0],e[1])<=0)))return qt(this,\"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower\",X.InvalidArgument);const a=!t||!1!==t.includeLowers,u=t&&!0===t.includeUppers;let l,c=r;function h(e,t){return c(e[0],t[0])}try{l=e.reduce((function(e,t){let r=0,s=e.length;for(;r<s;++r){const s=e[r];if(n(t[0],s[1])<0&&n(t[1],s[0])>0){s[0]=i(s[0],t[0]),s[1]=o(s[1],t[1]);break}}return r===s&&e.push(t),e}),[]),l.sort(h)}catch(e){return qt(this,pt)}let d=0;const f=u?e=>r(e,l[d][1])>0:e=>r(e,l[d][1])>=0,p=a?e=>s(e,l[d][0])>0:e=>s(e,l[d][0])>=0;let y=f;const m=new this.Collection(this,(()=>Vt(l[0][0],l[l.length-1][1],!a,!u)));return m._ondirectionchange=e=>{\"next\"===e?(y=f,c=r):(y=p,c=s),l.sort(h)},m._addAlgorithm(((e,t,n)=>{for(var s=e.key;y(s);)if(++d,d===l.length)return t(n),!1;return!!function(e){return!f(e)&&!p(e)}(s)||(0===this._cmp(s,l[d][1])||0===this._cmp(s,l[d][0])||t((()=>{c===r?e.continue(l[d][0]):e.continue(l[d][1])})),!1)})),m}startsWithAnyOf(){const e=B.apply(I,arguments);return e.every((e=>\"string\"==typeof e))?0===e.length?$t(this):this.inAnyRange(e.map((e=>[e,e+ft]))):qt(this,\"startsWithAnyOf() only works with strings\")}}function zt(e){return We((function(t){return Gt(t),e(t.target.error),!1}))}function Gt(e){e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault()}const Ht=Et(null,\"storagemutated\");class Qt{_lock(){return m(!Ke.global),++this._reculock,1!==this._reculock||Ke.global||(Ke.lockOwnerFor=this),this}_unlock(){if(m(!Ke.global),0==--this._reculock)for(Ke.global||(Ke.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var e=this._blockedFuncs.shift();try{ot(e[1],e[0])}catch(e){}}return this}_locked(){return this._reculock&&Ke.lockOwnerFor!==this}create(e){if(!this.mode)return this;const t=this.db.idbdb,n=this.db._state.dbOpenError;if(m(!this.idbtrans),!e&&!t)switch(n&&n.name){case\"DatabaseClosedError\":throw new X.DatabaseClosed(n);case\"MissingAPIError\":throw new X.MissingAPI(n.message,n);default:throw new X.OpenFailed(n)}if(!this.active)throw new X.TransactionInactive;return m(null===this._completion._state),(e=this.idbtrans=e||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):t.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}))).onerror=We((t=>{Gt(t),this._reject(e.error)})),e.onabort=We((t=>{Gt(t),this.active&&this._reject(new X.Abort(e.error)),this.active=!1,this.on(\"abort\").fire(t)})),e.oncomplete=We((()=>{this.active=!1,this._resolve(),\"mutatedParts\"in e&&Ht.storagemutated.fire(e.mutatedParts)})),this}_promise(e,t,n){if(\"readwrite\"===e&&\"readwrite\"!==this.mode)return ht(new X.ReadOnly(\"Transaction is readonly\"));if(!this.active)return ht(new X.TransactionInactive);if(this._locked())return new Ce(((r,s)=>{this._blockedFuncs.push([()=>{this._promise(e,t,n).then(r,s)},Ke])}));if(n)return Je((()=>{var e=new Ce(((e,n)=>{this._lock();const r=t(e,n,this);r&&r.then&&r.then(e,n)}));return e.finally((()=>this._unlock())),e._lib=!0,e}));var r=new Ce(((e,n)=>{var r=t(e,n,this);r&&r.then&&r.then(e,n)}));return r._lib=!0,r}_root(){return this.parent?this.parent._root():this}waitFor(e){var t=this._root();const n=Ce.resolve(e);if(t._waitingFor)t._waitingFor=t._waitingFor.then((()=>n));else{t._waitingFor=n,t._waitingQueue=[];var r=t.idbtrans.objectStore(t.storeNames[0]);!function e(){for(++t._spinCount;t._waitingQueue.length;)t._waitingQueue.shift()();t._waitingFor&&(r.get(-1/0).onsuccess=e)}()}var s=t._waitingFor;return new Ce(((e,r)=>{n.then((n=>t._waitingQueue.push(We(e.bind(null,n)))),(e=>t._waitingQueue.push(We(r.bind(null,e))))).finally((()=>{t._waitingFor===s&&(t._waitingFor=null)}))}))}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new X.Abort))}table(e){const t=this._memoizedTables||(this._memoizedTables={});if(o(t,e))return t[e];const n=this.schema[e];if(!n)throw new X.NotFound(\"Table \"+e+\" not part of transaction\");const r=new this.db.Table(e,n,this);return r.core=this.db.core.table(e),t[e]=r,r}}function Xt(e,t,n,r,s,i,o){return{name:e,keyPath:t,unique:n,multi:r,auto:s,compound:i,src:(n&&!o?\"&\":\"\")+(r?\"*\":\"\")+(s?\"++\":\"\")+Jt(t)}}function Jt(e){return\"string\"==typeof e?e:e?\"[\"+[].join.call(e,\"+\")+\"]\":\"\"}function Zt(e,t,n){return{name:e,primKey:t,indexes:n,mappedClass:null,idxByName:g(n,(e=>[e.name,e]))}}let en=e=>{try{return e.only([[]]),en=()=>[[]],[[]]}catch(e){return en=()=>ft,ft}};function tn(e){return null==e?()=>{}:\"string\"==typeof e?function(e){return 1===e.split(\".\").length?t=>t[e]:t=>b(t,e)}(e):t=>b(t,e)}function nn(e){return[].slice.call(e)}let rn=0;function sn(e){return null==e?\":id\":\"string\"==typeof e?e:`[${e.join(\"+\")}]`}function on(e,t,r){function s(e){if(3===e.type)return null;if(4===e.type)throw new Error(\"Cannot convert never type to IDBKeyRange\");const{lower:n,upper:r,lowerOpen:s,upperOpen:i}=e;return void 0===n?void 0===r?null:t.upperBound(r,!!i):void 0===r?t.lowerBound(n,!!s):t.bound(n,r,!!s,!!i)}const{schema:i,hasGetAll:o}=function(e,t){const r=nn(e.objectStoreNames);return{schema:{name:e.name,tables:r.map((e=>t.objectStore(e))).map((e=>{const{keyPath:t,autoIncrement:r}=e,s=n(t),i=null==t,o={},a={name:e.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:i,compound:s,keyPath:t,autoIncrement:r,unique:!0,extractKey:tn(t)},indexes:nn(e.indexNames).map((t=>e.index(t))).map((e=>{const{name:t,unique:r,multiEntry:s,keyPath:i}=e,a={name:t,compound:n(i),keyPath:i,unique:r,multiEntry:s,extractKey:tn(i)};return o[sn(i)]=a,a})),getIndexByKeyPath:e=>o[sn(e)]};return o[\":id\"]=a.primaryKey,null!=t&&(o[sn(t)]=a.primaryKey),a}))},hasGetAll:r.length>0&&\"getAll\"in t.objectStore(r[0])&&!(\"undefined\"!=typeof navigator&&/Safari/.test(navigator.userAgent)&&!/(Chrome\\/|Edge\\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1]<604)}}(e,r),a=i.tables.map((e=>function(e){const t=e.name;return{name:t,schema:e,mutate:function({trans:e,type:n,keys:r,values:i,range:o}){return new Promise(((a,u)=>{a=We(a);const l=e.objectStore(t),c=null==l.keyPath,h=\"put\"===n||\"add\"===n;if(!h&&\"delete\"!==n&&\"deleteRange\"!==n)throw new Error(\"Invalid operation type: \"+n);const{length:d}=r||i||{length:1};if(r&&i&&r.length!==i.length)throw new Error(\"Given keys array must have same length as given values array.\");if(0===d)return a({numFailures:0,failures:{},results:[],lastResult:void 0});let f;const p=[],y=[];let m=0;const v=e=>{++m,Gt(e)};if(\"deleteRange\"===n){if(4===o.type)return a({numFailures:m,failures:y,results:[],lastResult:void 0});3===o.type?p.push(f=l.clear()):p.push(f=l.delete(s(o)))}else{const[e,t]=h?c?[i,r]:[i,null]:[r,null];if(h)for(let r=0;r<d;++r)p.push(f=t&&void 0!==t[r]?l[n](e[r],t[r]):l[n](e[r])),f.onerror=v;else for(let t=0;t<d;++t)p.push(f=l[n](e[t])),f.onerror=v}const g=e=>{const t=e.target.result;p.forEach(((e,t)=>null!=e.error&&(y[t]=e.error))),a({numFailures:m,failures:y,results:\"delete\"===n?r:p.map((e=>e.result)),lastResult:t})};f.onerror=e=>{v(e),g(e)},f.onsuccess=g}))},getMany:({trans:e,keys:n})=>new Promise(((r,s)=>{r=We(r);const i=e.objectStore(t),o=n.length,a=new Array(o);let u,l=0,c=0;const h=e=>{const t=e.target;a[t._pos]=t.result,++c===l&&r(a)},d=zt(s);for(let e=0;e<o;++e)null!=n[e]&&(u=i.get(n[e]),u._pos=e,u.onsuccess=h,u.onerror=d,++l);0===l&&r(a)})),get:({trans:e,key:n})=>new Promise(((r,s)=>{r=We(r);const i=e.objectStore(t).get(n);i.onsuccess=e=>r(e.target.result),i.onerror=zt(s)})),query:function(e){return n=>new Promise(((r,i)=>{r=We(r);const{trans:o,values:a,limit:u,query:l}=n,c=u===1/0?void 0:u,{index:h,range:d}=l,f=o.objectStore(t),p=h.isPrimaryKey?f:f.index(h.name),y=s(d);if(0===u)return r({result:[]});if(e){const e=a?p.getAll(y,c):p.getAllKeys(y,c);e.onsuccess=e=>r({result:e.target.result}),e.onerror=zt(i)}else{let e=0;const t=a||!(\"openKeyCursor\"in p)?p.openCursor(y):p.openKeyCursor(y),n=[];t.onsuccess=s=>{const i=t.result;return i?(n.push(a?i.value:i.primaryKey),++e===u?r({result:n}):void i.continue()):r({result:n})},t.onerror=zt(i)}}))}(o),openCursor:function({trans:e,values:n,query:r,reverse:i,unique:o}){return new Promise(((a,u)=>{a=We(a);const{index:l,range:c}=r,h=e.objectStore(t),d=l.isPrimaryKey?h:h.index(l.name),f=i?o?\"prevunique\":\"prev\":o?\"nextunique\":\"next\",p=n||!(\"openKeyCursor\"in d)?d.openCursor(s(c),f):d.openKeyCursor(s(c),f);p.onerror=zt(u),p.onsuccess=We((t=>{const n=p.result;if(!n)return void a(null);n.___id=++rn,n.done=!1;const r=n.continue.bind(n);let s=n.continuePrimaryKey;s&&(s=s.bind(n));const i=n.advance.bind(n),o=()=>{throw new Error(\"Cursor not stopped\")};n.trans=e,n.stop=n.continue=n.continuePrimaryKey=n.advance=()=>{throw new Error(\"Cursor not started\")},n.fail=We(u),n.next=function(){let e=1;return this.start((()=>e--?this.continue():this.stop())).then((()=>this))},n.start=e=>{const t=new Promise(((e,t)=>{e=We(e),p.onerror=zt(t),n.fail=t,n.stop=t=>{n.stop=n.continue=n.continuePrimaryKey=n.advance=o,e(t)}})),a=()=>{if(p.result)try{e()}catch(e){n.fail(e)}else n.done=!0,n.start=()=>{throw new Error(\"Cursor behind last entry\")},n.stop()};return p.onsuccess=We((e=>{p.onsuccess=a,a()})),n.continue=r,n.continuePrimaryKey=s,n.advance=i,a(),t},a(n)}),u)}))},count({query:e,trans:n}){const{index:r,range:i}=e;return new Promise(((e,o)=>{const a=n.objectStore(t),u=r.isPrimaryKey?a:a.index(r.name),l=s(i),c=l?u.count(l):u.count();c.onsuccess=We((t=>e(t.target.result))),c.onerror=zt(o)}))}}}(e))),u={};return a.forEach((e=>u[e.name]=e)),{stack:\"dbcore\",transaction:e.transaction.bind(e),table(e){if(!u[e])throw new Error(`Table '${e}' not found`);return u[e]},MIN_KEY:-1/0,MAX_KEY:en(t),schema:i}}function an({_novip:e},t){const n=t.db,r=function(e,t,{IDBKeyRange:n,indexedDB:r},s){const i=function(e,t){return t.reduce(((e,{create:t})=>({...e,...t(e)})),e)}(on(t,n,s),e.dbcore);return{dbcore:i}}(e._middlewares,n,e._deps,t);e.core=r.dbcore,e.tables.forEach((t=>{const n=t.name;e.core.schema.tables.some((e=>e.name===n))&&(t.core=e.core.table(n),e[n]instanceof e.Table&&(e[n].core=t.core))}))}function un({_novip:e},t,n,r){n.forEach((n=>{const s=r[n];t.forEach((t=>{const r=d(t,n);(!r||\"value\"in r&&void 0===r.value)&&(t===e.Transaction.prototype||t instanceof e.Transaction?l(t,n,{get(){return this.table(n)},set(e){u(this,n,{value:e,writable:!0,configurable:!0,enumerable:!0})}}):t[n]=new e.Table(n,s))}))}))}function ln({_novip:e},t){t.forEach((t=>{for(let n in t)t[n]instanceof e.Table&&delete t[n]}))}function cn(e,t){return e._cfg.version-t._cfg.version}function hn(e,n,r,s){const i=e._dbSchema,o=e._createTransaction(\"readwrite\",e._storeNames,i);o.create(r),o._completion.catch(s);const a=o._reject.bind(o),u=Ke.transless||Ke;Je((()=>{Ke.trans=o,Ke.transless=u,0===n?(t(i).forEach((e=>{fn(r,e,i[e].primKey,i[e].indexes)})),an(e,r),Ce.follow((()=>e.on.populate.fire(o))).catch(a)):function({_novip:e},n,r,s){const i=[],o=e._versions;let a=e._dbSchema=yn(e,e.idbdb,s),u=!1;function l(){return i.length?Ce.resolve(i.shift()(r.idbtrans)).then(l):Ce.resolve()}return o.filter((e=>e._cfg.version>=n)).forEach((o=>{i.push((()=>{const i=a,l=o._cfg.dbschema;mn(e,i,s),mn(e,l,s),a=e._dbSchema=l;const c=dn(i,l);c.add.forEach((e=>{fn(s,e[0],e[1].primKey,e[1].indexes)})),c.change.forEach((e=>{if(e.recreate)throw new X.Upgrade(\"Not yet support for changing primary key\");{const t=s.objectStore(e.name);e.add.forEach((e=>pn(t,e))),e.change.forEach((e=>{t.deleteIndex(e.name),pn(t,e)})),e.del.forEach((e=>t.deleteIndex(e)))}}));const h=o._cfg.contentUpgrade;if(h&&o._cfg.version>n){an(e,s),r._memoizedTables={},u=!0;let n=w(l);c.del.forEach((e=>{n[e]=i[e]})),ln(e,[e.Transaction.prototype]),un(e,[e.Transaction.prototype],t(n),n),r.schema=n;const o=T(h);let a;o&&Ze();const d=Ce.follow((()=>{if(a=h(r),a&&o){var e=et.bind(null,null);a.then(e,e)}}));return a&&\"function\"==typeof a.then?Ce.resolve(a):d.then((()=>a))}})),i.push((t=>{if(!u||!vt){!function(e,t){[].slice.call(t.db.objectStoreNames).forEach((n=>null==e[n]&&t.db.deleteObjectStore(n)))}(o._cfg.dbschema,t)}ln(e,[e.Transaction.prototype]),un(e,[e.Transaction.prototype],e._storeNames,e._dbSchema),r.schema=e._dbSchema}))})),l().then((()=>{var e,n;n=s,t(e=a).forEach((t=>{n.db.objectStoreNames.contains(t)||fn(n,t,e[t].primKey,e[t].indexes)}))}))}(e,n,o,r).catch(a)}))}function dn(e,t){const n={del:[],add:[],change:[]};let r;for(r in e)t[r]||n.del.push(r);for(r in t){const s=e[r],i=t[r];if(s){const e={name:r,def:i,recreate:!1,del:[],add:[],change:[]};if(\"\"+(s.primKey.keyPath||\"\")!=\"\"+(i.primKey.keyPath||\"\")||s.primKey.auto!==i.primKey.auto&&!mt)e.recreate=!0,n.change.push(e);else{const t=s.idxByName,r=i.idxByName;let o;for(o in t)r[o]||e.del.push(o);for(o in r){const n=t[o],s=r[o];n?n.src!==s.src&&e.change.push(s):e.add.push(s)}(e.del.length>0||e.add.length>0||e.change.length>0)&&n.change.push(e)}}else n.add.push([r,i])}return n}function fn(e,t,n,r){const s=e.db.createObjectStore(t,n.keyPath?{keyPath:n.keyPath,autoIncrement:n.auto}:{autoIncrement:n.auto});return r.forEach((e=>pn(s,e))),s}function pn(e,t){e.createIndex(t.name,t.keyPath,{unique:t.unique,multiEntry:t.multi})}function yn(e,t,n){const r={};return p(t.objectStoreNames,0).forEach((e=>{const t=n.objectStore(e);let s=t.keyPath;const i=Xt(Jt(s),s||\"\",!1,!1,!!t.autoIncrement,s&&\"string\"!=typeof s,!0),o=[];for(let e=0;e<t.indexNames.length;++e){const n=t.index(t.indexNames[e]);s=n.keyPath;var a=Xt(n.name,s,!!n.unique,!!n.multiEntry,!1,s&&\"string\"!=typeof s,!1);o.push(a)}r[e]=Zt(e,i,o)})),r}function mn({_novip:t},n,r){const s=r.db.objectStoreNames;for(let e=0;e<s.length;++e){const i=s[e],o=r.objectStore(i);t._hasGetAll=\"getAll\"in o;for(let e=0;e<o.indexNames.length;++e){const t=o.indexNames[e],r=o.index(t).keyPath,s=\"string\"==typeof r?r:\"[\"+p(r).join(\"+\")+\"]\";if(n[i]){const e=n[i].idxByName[s];e&&(e.name=t,delete n[i].idxByName[s],n[i].idxByName[t]=e)}}}\"undefined\"!=typeof navigator&&/Safari/.test(navigator.userAgent)&&!/(Chrome\\/|Edge\\/)/.test(navigator.userAgent)&&e.WorkerGlobalScope&&e instanceof e.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1]<604&&(t._hasGetAll=!1)}class vn{_parseStoresSpec(e,r){t(e).forEach((t=>{if(null!==e[t]){var s=e[t].split(\",\").map(((e,t)=>{const r=(e=e.trim()).replace(/([&*]|\\+\\+)/g,\"\"),s=/^\\[/.test(r)?r.match(/^\\[(.*)\\]$/)[1].split(\"+\"):r;return Xt(r,s||null,/\\&/.test(e),/\\*/.test(e),/\\+\\+/.test(e),n(s),0===t)})),i=s.shift();if(i.multi)throw new X.Schema(\"Primary key cannot be multi-valued\");s.forEach((e=>{if(e.auto)throw new X.Schema(\"Only primary key can be marked as autoIncrement (++)\");if(!e.keyPath)throw new X.Schema(\"Index must have a name and cannot be an empty string\")})),r[t]=Zt(t,i,s)}}))}stores(e){const n=this.db;this._cfg.storesSource=this._cfg.storesSource?r(this._cfg.storesSource,e):e;const s=n._versions,i={};let o={};return s.forEach((e=>{r(i,e._cfg.storesSource),o=e._cfg.dbschema={},e._parseStoresSpec(i,o)})),n._dbSchema=o,ln(n,[n._allTables,n,n.Transaction.prototype]),un(n,[n._allTables,n,n.Transaction.prototype,this._cfg.tables],t(o),o),n._storeNames=t(o),this}upgrade(e){return this._cfg.contentUpgrade=ue(this._cfg.contentUpgrade||ee,e),this}}function gn(e,t){let n=e._dbNamesDB;return n||(n=e._dbNamesDB=new $n(\"__dbnames\",{addons:[],indexedDB:e,IDBKeyRange:t}),n.version(1).stores({dbnames:\"name\"})),n.table(\"dbnames\")}function bn(e){return e&&\"function\"==typeof e.databases}function _n(e){return Je((function(){return Ke.letThrough=!0,e()}))}function wn(){var e;return!navigator.userAgentData&&/Safari\\//.test(navigator.userAgent)&&!/Chrom(e|ium)\\//.test(navigator.userAgent)&&indexedDB.databases?new Promise((function(t){var n=function(){return indexedDB.databases().finally(t)};e=setInterval(n,100),n()})).finally((function(){return clearInterval(e)})):Promise.resolve()}function xn(e){const n=e._state,{indexedDB:r}=e._deps;if(n.isBeingOpened||e.idbdb)return n.dbReadyPromise.then((()=>n.dbOpenError?ht(n.dbOpenError):e));R&&(n.openCanceller._stackHolder=q()),n.isBeingOpened=!0,n.dbOpenError=null,n.openComplete=!1;const s=n.openCanceller;function i(){if(n.openCanceller!==s)throw new X.DatabaseClosed(\"db.open() was cancelled\")}let o=n.dbReadyResolve,a=null,u=!1;return Ce.race([s,(\"undefined\"==typeof navigator?Ce.resolve():wn()).then((()=>new Ce(((s,o)=>{if(i(),!r)throw new X.MissingAPI;const l=e.name,c=n.autoSchema?r.open(l):r.open(l,Math.round(10*e.verno));if(!c)throw new X.MissingAPI;c.onerror=zt(o),c.onblocked=We(e._fireOnBlocked),c.onupgradeneeded=We((t=>{if(a=c.transaction,n.autoSchema&&!e._options.allowEmptyDB){c.onerror=Gt,a.abort(),c.result.close();const e=r.deleteDatabase(l);e.onsuccess=e.onerror=We((()=>{o(new X.NoSuchDatabase(`Database ${l} doesnt exist`))}))}else{a.onerror=zt(o);var s=t.oldVersion>Math.pow(2,62)?0:t.oldVersion;u=s<1,e._novip.idbdb=c.result,hn(e,s/10,a,o)}}),o),c.onsuccess=We((()=>{a=null;const r=e._novip.idbdb=c.result,i=p(r.objectStoreNames);if(i.length>0)try{const s=r.transaction(1===(o=i).length?o[0]:o,\"readonly\");n.autoSchema?function({_novip:e},n,r){e.verno=n.version/10;const s=e._dbSchema=yn(0,n,r);e._storeNames=p(n.objectStoreNames,0),un(e,[e._allTables],t(s),s)}(e,r,s):(mn(e,e._dbSchema,s),function(e,t){const n=dn(yn(0,e.idbdb,t),e._dbSchema);return!(n.add.length||n.change.some((e=>e.add.length||e.change.length)))}(e,s)||console.warn(\"Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.\")),an(e,s)}catch(e){}var o;yt.push(e),r.onversionchange=We((t=>{n.vcFired=!0,e.on(\"versionchange\").fire(t)})),r.onclose=We((t=>{e.on(\"close\").fire(t)})),u&&function({indexedDB:e,IDBKeyRange:t},n){!bn(e)&&\"__dbnames\"!==n&&gn(e,t).put({name:n}).catch(ee)}(e._deps,l),s()}),o)}))))]).then((()=>(i(),n.onReadyBeingFired=[],Ce.resolve(_n((()=>e.on.ready.fire(e.vip)))).then((function t(){if(n.onReadyBeingFired.length>0){let r=n.onReadyBeingFired.reduce(ue,ee);return n.onReadyBeingFired=[],Ce.resolve(_n((()=>r(e.vip)))).then(t)}}))))).finally((()=>{n.onReadyBeingFired=null,n.isBeingOpened=!1})).then((()=>e)).catch((t=>{n.dbOpenError=t;try{a&&a.abort()}catch(e){}return s===n.openCanceller&&e._close(),ht(t)})).finally((()=>{n.openComplete=!0,o()}))}function kn(e){var t=t=>e.next(t),r=i(t),s=i((t=>e.throw(t)));function i(e){return t=>{var i=e(t),o=i.value;return i.done?o:o&&\"function\"==typeof o.then?o.then(r,s):n(o)?Promise.all(o).then(r,s):r(o)}}return i(t)()}function En(e,t,n){var r=arguments.length;if(r<2)throw new X.InvalidArgument(\"Too few arguments\");for(var s=new Array(r-1);--r;)s[r-1]=arguments[r];n=s.pop();var i=k(s);return[e,i,n]}function Pn(e,t,n,r,s){return Ce.resolve().then((()=>{const i=Ke.transless||Ke,o=e._createTransaction(t,n,e._dbSchema,r),a={trans:o,transless:i};if(r)o.idbtrans=r.idbtrans;else try{o.create(),e._state.PR1398_maxLoop=3}catch(r){return r.name===H.InvalidState&&e.isOpen()&&--e._state.PR1398_maxLoop>0?(console.warn(\"Dexie: Need to reopen db\"),e._close(),e.open().then((()=>Pn(e,t,n,null,s)))):ht(r)}const u=T(s);let l;u&&Ze();const c=Ce.follow((()=>{if(l=s.call(o,o),l)if(u){var e=et.bind(null,null);l.then(e,e)}else\"function\"==typeof l.next&&\"function\"==typeof l.throw&&(l=kn(l))}),a);return(l&&\"function\"==typeof l.then?Ce.resolve(l).then((e=>o.active?e:ht(new X.PrematureCommit(\"Transaction committed too early. See http://bit.ly/2kdckMn\")))):c.then((()=>l))).then((e=>(r&&o._resolve(),o._completion.then((()=>e))))).catch((e=>(o._reject(e),ht(e))))}))}function Kn(e,t,r){const s=n(e)?e.slice():[e];for(let e=0;e<r;++e)s.push(t);return s}const On={stack:\"dbcore\",name:\"VirtualIndexMiddleware\",level:1,create:function(e){return{...e,table(t){const n=e.table(t),{schema:r}=n,s={},i=[];function o(e,t,n){const r=sn(e),a=s[r]=s[r]||[],u=null==e?0:\"string\"==typeof e?1:e.length,l=t>0,c={...n,isVirtual:l,keyTail:t,keyLength:u,extractKey:tn(e),unique:!l&&n.unique};if(a.push(c),c.isPrimaryKey||i.push(c),u>1){o(2===u?e[0]:e.slice(0,u-1),t+1,n)}return a.sort(((e,t)=>e.keyTail-t.keyTail)),c}const a=o(r.primaryKey.keyPath,0,r.primaryKey);s[\":id\"]=[a];for(const e of r.indexes)o(e.keyPath,0,e);function u(t){const n=t.query.index;return n.isVirtual?{...t,query:{index:n,range:(r=t.query.range,s=n.keyTail,{type:1===r.type?2:r.type,lower:Kn(r.lower,r.lowerOpen?e.MAX_KEY:e.MIN_KEY,s),lowerOpen:!0,upper:Kn(r.upper,r.upperOpen?e.MIN_KEY:e.MAX_KEY,s),upperOpen:!0})}}:t;var r,s}const l={...n,schema:{...r,primaryKey:a,indexes:i,getIndexByKeyPath:function(e){const t=s[sn(e)];return t&&t[0]}},count:e=>n.count(u(e)),query:e=>n.query(u(e)),openCursor(t){const{keyTail:r,isVirtual:s,keyLength:i}=t.query.index;if(!s)return n.openCursor(t);return n.openCursor(u(t)).then((n=>n&&function(n){const s=Object.create(n,{continue:{value:function(s){null!=s?n.continue(Kn(s,t.reverse?e.MAX_KEY:e.MIN_KEY,r)):t.unique?n.continue(n.key.slice(0,i).concat(t.reverse?e.MIN_KEY:e.MAX_KEY,r)):n.continue()}},continuePrimaryKey:{value(t,s){n.continuePrimaryKey(Kn(t,e.MAX_KEY,r),s)}},primaryKey:{get:()=>n.primaryKey},key:{get(){const e=n.key;return 1===i?e[0]:e.slice(0,i)}},value:{get:()=>n.value}});return s}(n)))}};return l}}}};function Sn(e,n,r,s){return r=r||{},s=s||\"\",t(e).forEach((t=>{if(o(n,t)){var i=e[t],a=n[t];if(\"object\"==typeof i&&\"object\"==typeof a&&i&&a){const e=C(i);e!==C(a)?r[s+t]=n[t]:\"Object\"===e?Sn(i,a,r,s+t+\".\"):i!==a&&(r[s+t]=n[t])}else i!==a&&(r[s+t]=n[t])}else r[s+t]=void 0})),t(n).forEach((t=>{o(e,t)||(r[s+t]=n[t])})),r}const An={stack:\"dbcore\",name:\"HooksMiddleware\",level:2,create:e=>({...e,table(t){const n=e.table(t),{primaryKey:r}=n.schema,s={...n,mutate(e){const s=Ke.trans,{deleting:i,creating:a,updating:u}=s.table(t).hook;switch(e.type){case\"add\":if(a.fire===ee)break;return s._promise(\"readwrite\",(()=>l(e)),!0);case\"put\":if(a.fire===ee&&u.fire===ee)break;return s._promise(\"readwrite\",(()=>l(e)),!0);case\"delete\":if(i.fire===ee)break;return s._promise(\"readwrite\",(()=>l(e)),!0);case\"deleteRange\":if(i.fire===ee)break;return s._promise(\"readwrite\",(()=>function(e){return c(e.trans,e.range,1e4)}(e)),!0)}return n.mutate(e);function l(e){const t=Ke.trans,s=e.keys||function(e,t){return\"delete\"===t.type?t.keys:t.keys||t.values.map(e.extractKey)}(r,e);if(!s)throw new Error(\"Keys missing\");return\"delete\"!==(e=\"add\"===e.type||\"put\"===e.type?{...e,keys:s}:{...e}).type&&(e.values=[...e.values]),e.keys&&(e.keys=[...e.keys]),function(e,t,n){return\"add\"===t.type?Promise.resolve([]):e.getMany({trans:t.trans,keys:n,cache:\"immutable\"})}(n,e,s).then((l=>{const c=s.map(((n,s)=>{const c=l[s],h={onerror:null,onsuccess:null};if(\"delete\"===e.type)i.fire.call(h,n,c,t);else if(\"add\"===e.type||void 0===c){const i=a.fire.call(h,n,e.values[s],t);null==n&&null!=i&&(n=i,e.keys[s]=n,r.outbound||_(e.values[s],r.keyPath,n))}else{const r=Sn(c,e.values[s]),i=u.fire.call(h,r,n,c,t);if(i){const t=e.values[s];Object.keys(i).forEach((e=>{o(t,e)?t[e]=i[e]:_(t,e,i[e])}))}}return h}));return n.mutate(e).then((({failures:t,results:n,numFailures:r,lastResult:i})=>{for(let r=0;r<s.length;++r){const i=n?n[r]:s[r],o=c[r];null==i?o.onerror&&o.onerror(t[r]):o.onsuccess&&o.onsuccess(\"put\"===e.type&&l[r]?e.values[r]:i)}return{failures:t,results:n,numFailures:r,lastResult:i}})).catch((e=>(c.forEach((t=>t.onerror&&t.onerror(e))),Promise.reject(e))))}))}function c(e,t,s){return n.query({trans:e,values:!1,query:{index:r,range:t},limit:s}).then((({result:n})=>l({type:\"delete\",keys:n,trans:e}).then((r=>r.numFailures>0?Promise.reject(r.failures[0]):n.length<s?{failures:[],numFailures:0,lastResult:void 0}:c(e,{...t,lower:n[n.length-1],lowerOpen:!0},s)))))}}};return s}})};function Cn(e,t,n){try{if(!t)return null;if(t.keys.length<e.length)return null;const r=[];for(let s=0,i=0;s<t.keys.length&&i<e.length;++s)0===It(t.keys[s],e[i])&&(r.push(n?O(t.values[s]):t.values[s]),++i);return r.length===e.length?r:null}catch(e){return null}}const jn={stack:\"dbcore\",level:-1,create:e=>({table:t=>{const n=e.table(t);return{...n,getMany:e=>{if(!e.cache)return n.getMany(e);const t=Cn(e.keys,e.trans._cache,\"clone\"===e.cache);return t?Ce.resolve(t):n.getMany(e).then((t=>(e.trans._cache={keys:e.keys,values:\"clone\"===e.cache?O(t):t},t)))},mutate:e=>(\"add\"!==e.type&&(e.trans._cache=null),n.mutate(e))}}})};function Dn(e){return!(\"from\"in e)}const In=function(e,t){if(!this){const t=new In;return e&&\"d\"in e&&r(t,e),t}r(this,arguments.length?{d:1,from:e,to:arguments.length>1?t:e}:{d:0})};function Bn(e,t,n){const s=It(t,n);if(isNaN(s))return;if(s>0)throw RangeError();if(Dn(e))return r(e,{from:t,to:n,d:1});const i=e.l,o=e.r;if(It(n,e.from)<0)return i?Bn(i,t,n):e.l={from:t,to:n,d:1,l:null,r:null},Mn(e);if(It(t,e.to)>0)return o?Bn(o,t,n):e.r={from:t,to:n,d:1,l:null,r:null},Mn(e);It(t,e.from)<0&&(e.from=t,e.l=null,e.d=o?o.d+1:1),It(n,e.to)>0&&(e.to=n,e.r=null,e.d=e.l?e.l.d+1:1);const a=!e.r;i&&!e.l&&Tn(e,i),o&&a&&Tn(e,o)}function Tn(e,t){Dn(t)||function e(t,{from:n,to:r,l:s,r:i}){Bn(t,n,r),s&&e(t,s),i&&e(t,i)}(e,t)}function Rn(e,t){const n=Fn(t);let r=n.next();if(r.done)return!1;let s=r.value;const i=Fn(e);let o=i.next(s.from),a=o.value;for(;!r.done&&!o.done;){if(It(a.from,s.to)<=0&&It(a.to,s.from)>=0)return!0;It(s.from,a.from)<0?s=(r=n.next(a.from)).value:a=(o=i.next(s.from)).value}return!1}function Fn(e){let t=Dn(e)?null:{s:0,n:e};return{next(e){const n=arguments.length>0;for(;t;)switch(t.s){case 0:if(t.s=1,n)for(;t.n.l&&It(e,t.n.from)<0;)t={up:t,n:t.n.l,s:1};else for(;t.n.l;)t={up:t,n:t.n.l,s:1};case 1:if(t.s=2,!n||It(e,t.n.to)<=0)return{value:t.n,done:!1};case 2:if(t.n.r){t.s=3,t={up:t,n:t.n.r,s:0};continue}case 3:t=t.up}return{done:!0}}}}function Mn(e){var t,n;const r=((null===(t=e.r)||void 0===t?void 0:t.d)||0)-((null===(n=e.l)||void 0===n?void 0:n.d)||0),s=r>1?\"r\":r<-1?\"l\":\"\";if(s){const t=\"r\"===s?\"l\":\"r\",n={...e},r=e[s];e.from=r.from,e.to=r.to,e[s]=r[s],n[s]=r[t],e[t]=n,n.d=Nn(n)}e.d=Nn(e)}function Nn({r:e,l:t}){return(e?t?Math.max(e.d,t.d):e.d:t?t.d:0)+1}a(In.prototype,{add(e){return Tn(this,e),this},addKey(e){return Bn(this,e,e),this},addKeys(e){return e.forEach((e=>Bn(this,e,e))),this},[j](){return Fn(this)}});const qn={stack:\"dbcore\",level:0,create:e=>{const r=e.schema.name,s=new In(e.MIN_KEY,e.MAX_KEY);return{...e,table:i=>{const o=e.table(i),{schema:a}=o,{primaryKey:u}=a,{extractKey:l,outbound:c}=u,h={...o,mutate:e=>{const t=e.trans,u=t.mutatedParts||(t.mutatedParts={}),l=e=>{const t=`idb://${r}/${i}/${e}`;return u[t]||(u[t]=new In)},c=l(\"\"),h=l(\":dels\"),{type:d}=e;let[f,p]=\"deleteRange\"===e.type?[e.range]:\"delete\"===e.type?[e.keys]:e.values.length<50?[[],e.values]:[];const y=e.trans._cache;return o.mutate(e).then((e=>{if(n(f)){\"delete\"!==d&&(f=e.results),c.addKeys(f);const t=Cn(f,y);t||\"add\"===d||h.addKeys(f),(t||p)&&function(e,t,r,s){function i(t){const i=e(t.name||\"\");function o(e){return null!=e?t.extractKey(e):null}const a=e=>t.multiEntry&&n(e)?e.forEach((e=>i.addKey(e))):i.addKey(e);(r||s).forEach(((e,t)=>{const n=r&&o(r[t]),i=s&&o(s[t]);0!==It(n,i)&&(null!=n&&a(n),null!=i&&a(i))}))}t.indexes.forEach(i)}(l,a,t,p)}else if(f){const e={from:f.lower,to:f.upper};h.add(e),c.add(e)}else c.add(s),h.add(s),a.indexes.forEach((e=>l(e.name).add(s)));return e}))}},d=({query:{index:t,range:n}})=>{var r,s;return[t,new In(null!==(r=n.lower)&&void 0!==r?r:e.MIN_KEY,null!==(s=n.upper)&&void 0!==s?s:e.MAX_KEY)]},f={get:e=>[u,new In(e.key)],getMany:e=>[u,(new In).addKeys(e.keys)],count:d,query:d,openCursor:d};return t(f).forEach((e=>{h[e]=function(t){const{subscr:n}=Ke;if(n){const a=e=>{const t=`idb://${r}/${i}/${e}`;return n[t]||(n[t]=new In)},u=a(\"\"),h=a(\":dels\"),[d,p]=f[e](t);if(a(d.name||\"\").add(p),!d.isPrimaryKey){if(\"count\"!==e){const n=\"query\"===e&&c&&t.values&&o.query({...t,values:!1});return o[e].apply(this,arguments).then((r=>{if(\"query\"===e){if(c&&t.values)return n.then((({result:e})=>(u.addKeys(e),r)));const e=t.values?r.result.map(l):r.result;t.values?u.addKeys(e):h.addKeys(e)}else if(\"openCursor\"===e){const e=r,n=t.values;return e&&Object.create(e,{key:{get:()=>(h.addKey(e.primaryKey),e.key)},primaryKey:{get(){const t=e.primaryKey;return h.addKey(t),t}},value:{get:()=>(n&&u.addKey(e.primaryKey),e.value)}})}return r}))}h.add(s)}}return o[e].apply(this,arguments)}})),h}}}};class $n{constructor(e,t){this._middlewares={},this.verno=0;const n=$n.dependencies;this._options=t={addons:$n.addons,autoOpen:!0,indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange,...t},this._deps={indexedDB:t.indexedDB,IDBKeyRange:t.IDBKeyRange};const{addons:r}=t;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;const s={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:ee,dbReadyPromise:null,cancelOpen:ee,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};var i;s.dbReadyPromise=new Ce((e=>{s.dbReadyResolve=e})),s.openCanceller=new Ce(((e,t)=>{s.cancelOpen=t})),this._state=s,this.name=e,this.on=Et(this,\"populate\",\"blocked\",\"versionchange\",\"close\",{ready:[ue,ee]}),this.on.ready.subscribe=y(this.on.ready.subscribe,(e=>(t,n)=>{$n.vip((()=>{const r=this._state;if(r.openComplete)r.dbOpenError||Ce.resolve().then(t),n&&e(t);else if(r.onReadyBeingFired)r.onReadyBeingFired.push(t),n&&e(t);else{e(t);const r=this;n||e((function e(){r.on.ready.unsubscribe(t),r.on.ready.unsubscribe(e)}))}}))})),this.Collection=(i=this,Pt(Rt.prototype,(function(e,t){this.db=i;let n=wt,r=null;if(t)try{n=t()}catch(e){r=e}const s=e._ctx,o=s.table,a=o.hook.reading.fire;this._ctx={table:o,index:s.index,isPrimKey:!s.index||o.schema.primKey.keyPath&&s.index===o.schema.primKey.name,range:n,keysOnly:!1,dir:\"next\",unique:\"\",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:r,or:s.or,valueMapper:a!==te?a:null}}))),this.Table=function(e){return Pt(kt.prototype,(function(t,n,r){this.db=e,this._tx=r,this.name=t,this.schema=n,this.hook=e._allTables[t]?e._allTables[t].hook:Et(null,{creating:[se,ee],reading:[ne,te],updating:[oe,ee],deleting:[ie,ee]})}))}(this),this.Transaction=function(e){return Pt(Qt.prototype,(function(t,n,r,s,i){this.db=e,this.mode=t,this.storeNames=n,this.schema=r,this.chromeTransactionDurability=s,this.idbtrans=null,this.on=Et(this,\"complete\",\"error\",\"abort\"),this.parent=i||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new Ce(((e,t)=>{this._resolve=e,this._reject=t})),this._completion.then((()=>{this.active=!1,this.on.complete.fire()}),(e=>{var t=this.active;return this.active=!1,this.on.error.fire(e),this.parent?this.parent._reject(e):t&&this.idbtrans&&this.idbtrans.abort(),ht(e)}))}))}(this),this.Version=function(e){return Pt(vn.prototype,(function(t){this.db=e,this._cfg={version:t,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}}))}(this),this.WhereClause=function(e){return Pt(Yt.prototype,(function(t,n,r){this.db=e,this._ctx={table:t,index:\":id\"===n?null:n,or:r};const s=e._deps.indexedDB;if(!s)throw new X.MissingAPI;this._cmp=this._ascending=s.cmp.bind(s),this._descending=(e,t)=>s.cmp(t,e),this._max=(e,t)=>s.cmp(e,t)>0?e:t,this._min=(e,t)=>s.cmp(e,t)<0?e:t,this._IDBKeyRange=e._deps.IDBKeyRange}))}(this),this.on(\"versionchange\",(e=>{e.newVersion>0?console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`):console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`),this.close()})),this.on(\"blocked\",(e=>{!e.newVersion||e.newVersion<e.oldVersion?console.warn(`Dexie.delete('${this.name}') was blocked`):console.warn(`Upgrade '${this.name}' blocked by other connection holding version ${e.oldVersion/10}`)})),this._maxKey=en(t.IDBKeyRange),this._createTransaction=(e,t,n,r)=>new this.Transaction(e,t,n,this._options.chromeTransactionDurability,r),this._fireOnBlocked=e=>{this.on(\"blocked\").fire(e),yt.filter((e=>e.name===this.name&&e!==this&&!e._state.vcFired)).map((t=>t.on(\"versionchange\").fire(e)))},this.use(On),this.use(An),this.use(qn),this.use(jn),this.vip=Object.create(this,{_vip:{value:!0}}),r.forEach((e=>e(this)))}version(e){if(isNaN(e)||e<.1)throw new X.Type(\"Given version is not a positive number\");if(e=Math.round(10*e)/10,this.idbdb||this._state.isBeingOpened)throw new X.Schema(\"Cannot add version when database is open\");this.verno=Math.max(this.verno,e);const t=this._versions;var n=t.filter((t=>t._cfg.version===e))[0];return n||(n=new this.Version(e),t.push(n),t.sort(cn),n.stores({}),this._state.autoSchema=!1,n)}_whenReady(e){return this.idbdb&&(this._state.openComplete||Ke.letThrough||this._vip)?e():new Ce(((e,t)=>{if(this._state.openComplete)return t(new X.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen)return void t(new X.DatabaseClosed);this.open().catch(ee)}this._state.dbReadyPromise.then(e,t)})).then(e)}use({stack:e,create:t,level:n,name:r}){r&&this.unuse({stack:e,name:r});const s=this._middlewares[e]||(this._middlewares[e]=[]);return s.push({stack:e,create:t,level:null==n?10:n,name:r}),s.sort(((e,t)=>e.level-t.level)),this}unuse({stack:e,name:t,create:n}){return e&&this._middlewares[e]&&(this._middlewares[e]=this._middlewares[e].filter((e=>n?e.create!==n:!!t&&e.name!==t))),this}open(){return xn(this)}_close(){const e=this._state,t=yt.indexOf(this);if(t>=0&&yt.splice(t,1),this.idbdb){try{this.idbdb.close()}catch(e){}this._novip.idbdb=null}e.dbReadyPromise=new Ce((t=>{e.dbReadyResolve=t})),e.openCanceller=new Ce(((t,n)=>{e.cancelOpen=n}))}close(){this._close();const e=this._state;this._options.autoOpen=!1,e.dbOpenError=new X.DatabaseClosed,e.isBeingOpened&&e.cancelOpen(e.dbOpenError)}delete(){const e=arguments.length>0,t=this._state;return new Ce(((n,r)=>{const s=()=>{this.close();var e=this._deps.indexedDB.deleteDatabase(this.name);e.onsuccess=We((()=>{!function({indexedDB:e,IDBKeyRange:t},n){!bn(e)&&\"__dbnames\"!==n&&gn(e,t).delete(n).catch(ee)}(this._deps,this.name),n()})),e.onerror=zt(r),e.onblocked=this._fireOnBlocked};if(e)throw new X.InvalidArgument(\"Arguments not allowed in db.delete()\");t.isBeingOpened?t.dbReadyPromise.then(s):s()}))}backendDB(){return this.idbdb}isOpen(){return null!==this.idbdb}hasBeenClosed(){const e=this._state.dbOpenError;return e&&\"DatabaseClosed\"===e.name}hasFailed(){return null!==this._state.dbOpenError}dynamicallyOpened(){return this._state.autoSchema}get tables(){return t(this._allTables).map((e=>this._allTables[e]))}transaction(){const e=En.apply(this,arguments);return this._transaction.apply(this,e)}_transaction(e,t,n){let r=Ke.trans;r&&r.db===this&&-1===e.indexOf(\"!\")||(r=null);const s=-1!==e.indexOf(\"?\");let i,o;e=e.replace(\"!\",\"\").replace(\"?\",\"\");try{if(o=t.map((e=>{var t=e instanceof this.Table?e.name:e;if(\"string\"!=typeof t)throw new TypeError(\"Invalid table argument to Dexie.transaction(). Only Table or String are allowed\");return t})),\"r\"==e||\"readonly\"===e)i=\"readonly\";else{if(\"rw\"!=e&&\"readwrite\"!=e)throw new X.InvalidArgument(\"Invalid transaction mode: \"+e);i=\"readwrite\"}if(r){if(\"readonly\"===r.mode&&\"readwrite\"===i){if(!s)throw new X.SubTransaction(\"Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY\");r=null}r&&o.forEach((e=>{if(r&&-1===r.storeNames.indexOf(e)){if(!s)throw new X.SubTransaction(\"Table \"+e+\" not included in parent transaction.\");r=null}})),s&&r&&!r.active&&(r=null)}}catch(e){return r?r._promise(null,((t,n)=>{n(e)})):ht(e)}const a=Pn.bind(null,this,i,o,r,n);return r?r._promise(i,a,\"lock\"):Ke.trans?ot(Ke.transless,(()=>this._whenReady(a))):this._whenReady(a)}table(e){if(!o(this._allTables,e))throw new X.InvalidTable(`Table ${e} does not exist`);return this._allTables[e]}}const Un=\"undefined\"!=typeof Symbol&&\"observable\"in Symbol?Symbol.observable:\"@@observable\";class Ln{constructor(e){this._subscribe=e}subscribe(e,t,n){return this._subscribe(e&&\"function\"!=typeof e?e:{next:e,error:t,complete:n})}[Un](){return this}}function Vn(e,n){return t(n).forEach((t=>{Tn(e[t]||(e[t]=new In),n[t])})),e}function Wn(e){return new Ln((n=>{const r=T(e);let s=!1,i={},o={};const a={get closed(){return s},unsubscribe:()=>{s=!0,Ht.storagemutated.unsubscribe(h)}};n.start&&n.start(a);let u=!1,l=!1;function c(){return t(o).some((e=>i[e]&&Rn(i[e],o[e])))}const h=e=>{Vn(i,e),c()&&d()},d=()=>{if(u||s)return;i={};const t={},f=function(t){r&&Ze();const n=()=>Je(e,{subscr:t,trans:null}),s=Ke.trans?ot(Ke.transless,n):n();return r&&s.then(et,et),s}(t);l||(Ht(\"storagemutated\",h),l=!0),u=!0,Promise.resolve(f).then((e=>{u=!1,s||(c()?d():(i={},o=t,n.next&&n.next(e)))}),(e=>{u=!1,n.error&&n.error(e),a.unsubscribe()}))};return d(),a}))}let Yn;try{Yn={indexedDB:e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB,IDBKeyRange:e.IDBKeyRange||e.webkitIDBKeyRange}}catch(e){Yn={indexedDB:null,IDBKeyRange:null}}const zn=$n;function Gn(e){let t=Hn;try{Hn=!0,Ht.storagemutated.fire(e)}finally{Hn=t}}a(zn,{...Z,delete:e=>new zn(e,{addons:[]}).delete(),exists:e=>new zn(e,{addons:[]}).open().then((e=>(e.close(),!0))).catch(\"NoSuchDatabaseError\",(()=>!1)),getDatabaseNames(e){try{return function({indexedDB:e,IDBKeyRange:t}){return bn(e)?Promise.resolve(e.databases()).then((e=>e.map((e=>e.name)).filter((e=>\"__dbnames\"!==e)))):gn(e,t).toCollection().primaryKeys()}(zn.dependencies).then(e)}catch(e){return ht(new X.MissingAPI)}},defineClass:()=>function(e){r(this,e)},ignoreTransaction:e=>Ke.trans?ot(Ke.transless,e):e(),vip:_n,async:function(e){return function(){try{var t=kn(e.apply(this,arguments));return t&&\"function\"==typeof t.then?t:Ce.resolve(t)}catch(e){return ht(e)}}},spawn:function(e,t,n){try{var r=kn(e.apply(n,t||[]));return r&&\"function\"==typeof r.then?r:Ce.resolve(r)}catch(e){return ht(e)}},currentTransaction:{get:()=>Ke.trans||null},waitFor:function(e,t){const n=Ce.resolve(\"function\"==typeof e?zn.ignoreTransaction(e):e).timeout(t||6e4);return Ke.trans?Ke.trans.waitFor(n):n},Promise:Ce,debug:{get:()=>R,set:e=>{F(e,\"dexie\"===e?()=>!0:bt)}},derive:c,extend:r,props:a,override:y,Events:Et,on:Ht,liveQuery:Wn,extendObservabilitySet:Vn,getByKeyPath:b,setByKeyPath:_,delByKeyPath:function(e,t){\"string\"==typeof t?_(e,t,void 0):\"length\"in t&&[].map.call(t,(function(t){_(e,t,void 0)}))},shallowClone:w,deepClone:O,getObjectDiff:Sn,cmp:It,asap:v,minKey:-(1/0),addons:[],connections:yt,errnames:H,dependencies:Yn,semVer:\"3.2.3\",version:\"3.2.3\".split(\".\").map((e=>parseInt(e))).reduce(((e,t,n)=>e+t/Math.pow(10,2*n)))}),zn.maxKey=en(zn.dependencies.IDBKeyRange),\"undefined\"!=typeof dispatchEvent&&\"undefined\"!=typeof addEventListener&&(Ht(\"storagemutated\",(e=>{if(!Hn){let t;mt?(t=document.createEvent(\"CustomEvent\"),t.initCustomEvent(\"x-storagemutated-1\",!0,!0,e)):t=new CustomEvent(\"x-storagemutated-1\",{detail:e}),Hn=!0,dispatchEvent(t),Hn=!1}})),addEventListener(\"x-storagemutated-1\",(({detail:e})=>{Hn||Gn(e)})));let Hn=!1;if(\"undefined\"!=typeof BroadcastChannel){const e=new BroadcastChannel(\"x-storagemutated-1\");\"function\"==typeof e.unref&&e.unref(),Ht(\"storagemutated\",(t=>{Hn||e.postMessage(t)})),e.onmessage=e=>{e.data&&Gn(e.data)}}else if(\"undefined\"!=typeof self&&\"undefined\"!=typeof navigator){Ht(\"storagemutated\",(e=>{try{Hn||(\"undefined\"!=typeof localStorage&&localStorage.setItem(\"x-storagemutated-1\",JSON.stringify({trig:Math.random(),changedParts:e})),\"object\"==typeof self.clients&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>t.postMessage({type:\"x-storagemutated-1\",changedParts:e}))))}catch(e){}})),\"undefined\"!=typeof addEventListener&&addEventListener(\"storage\",(e=>{if(\"x-storagemutated-1\"===e.key){const t=JSON.parse(e.newValue);t&&Gn(t.changedParts)}}));const e=self.document&&navigator.serviceWorker;e&&e.addEventListener(\"message\",(function({data:e}){e&&\"x-storagemutated-1\"===e.type&&Gn(e.changedParts)}))}Ce.rejectionMapper=function(e,t){if(!e||e instanceof W||e instanceof TypeError||e instanceof SyntaxError||!e.name||!J[e.name])return e;var n=new J[e.name](t||e.message,e);return\"stack\"in e&&l(n,\"stack\",{get:function(){return this.inner.stack}}),n},F(R,bt);export{$n as Dexie,In as RangeSet,$n as default,Wn as liveQuery,Tn as mergeRanges,Rn as rangesOverlap};","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","import _cloneRegExp from \"./_cloneRegExp.js\";\nimport type from \"../type.js\";\n\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\nexport default function _clone(value, deep, map) {\n map || (map = new _ObjectMap());\n\n // this avoids the slower switch with a quick if decision removing some milliseconds in each run.\n if (_isPrimitive(value)) {\n return value;\n }\n var copy = function copy(copiedValue) {\n // Check for circular and same references on the object graph and return its corresponding clone.\n var cachedCopy = map.get(value);\n if (cachedCopy) {\n return cachedCopy;\n }\n map.set(value, copiedValue);\n for (var key in value) {\n if (Object.prototype.hasOwnProperty.call(value, key)) {\n copiedValue[key] = deep ? _clone(value[key], true, map) : value[key];\n }\n }\n return copiedValue;\n };\n switch (type(value)) {\n case 'Object':\n return copy(Object.create(Object.getPrototypeOf(value)));\n case 'Array':\n return copy(Array(value.length));\n case 'Date':\n return new Date(value.valueOf());\n case 'RegExp':\n return _cloneRegExp(value);\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n return value.slice();\n default:\n return value;\n }\n}\nfunction _isPrimitive(param) {\n var type = typeof param;\n return param == null || type != 'object' && type != 'function';\n}\nvar _ObjectMap = /*#__PURE__*/function () {\n function _ObjectMap() {\n this.map = {};\n this.length = 0;\n }\n _ObjectMap.prototype.set = function (key, value) {\n var hashedKey = this.hash(key);\n var bucket = this.map[hashedKey];\n if (!bucket) {\n this.map[hashedKey] = bucket = [];\n }\n bucket.push([key, value]);\n this.length += 1;\n };\n _ObjectMap.prototype.hash = function (key) {\n var hashedKey = [];\n for (var value in key) {\n hashedKey.push(Object.prototype.toString.call(key[value]));\n }\n return hashedKey.join();\n };\n _ObjectMap.prototype.get = function (key) {\n /**\n * depending on the number of objects to be cloned is faster to just iterate over the items in the map just because the hash function is so costly,\n * on my tests this number is 180, anything above that using the hash function is faster.\n */\n if (this.length <= 180) {\n for (var p in this.map) {\n var bucket = this.map[p];\n for (var i = 0; i < bucket.length; i += 1) {\n var element = bucket[i];\n if (element[0] === key) {\n return element[1];\n }\n }\n }\n return;\n }\n var hashedKey = this.hash(key);\n var bucket = this.map[hashedKey];\n if (!bucket) {\n return;\n }\n for (var i = 0; i < bucket.length; i += 1) {\n var element = bucket[i];\n if (element[0] === key) {\n return element[1];\n }\n }\n };\n return _ObjectMap;\n}();","import _clone from \"./internal/_clone.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n\n/**\n * Creates a deep copy of the source that can be used in place of the source\n * object without retaining any references to it.\n * The source object may contain (nested) `Array`s and `Object`s,\n * `Number`s, `String`s, `Boolean`s and `Date`s.\n * `Function`s are assigned by reference rather than copied.\n *\n * Dispatches to a `clone` method if present.\n *\n * Note that if the source object has multiple nodes that share a reference,\n * the returned object will have the same structure, but the references will\n * be pointed to the location within the cloned value.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * const objects = [{}, {}, {}];\n * const objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\nvar clone = /*#__PURE__*/_curry1(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : _clone(value, true);\n});\nexport default clone;","export default function _cloneRegExp(pattern) {\n return new RegExp(pattern.source, pattern.flags ? pattern.flags : (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : '') + (pattern.dotAll ? 's' : ''));\n}","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n}","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\nvar _isArguments = /*#__PURE__*/function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\nexport default _isArguments;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\";\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values, R.toPairs\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n});\nexport default keys;","import _arrayFromIterator from \"./_arrayFromIterator.js\";\nimport _includesWith from \"./_includesWith.js\";\nimport _functionName from \"./_functionName.js\";\nimport _has from \"./_has.js\";\nimport _objectIs from \"./_objectIs.js\";\nimport keys from \"../keys.js\";\nimport type from \"../type.js\";\n\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparison of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n var b = _arrayFromIterator(bIterator);\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n }\n\n // if *a* array contains any element that is not included in *b*\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n var typeA = type(a);\n if (typeA !== type(b)) {\n return false;\n }\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n break;\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n break;\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n break;\n case 'Error':\n return a.name === b.name && a.message === b.message;\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n break;\n }\n var idx = stackA.length - 1;\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n idx -= 1;\n }\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n var keysA = keys(a);\n if (keysA.length !== keys(b).length) {\n return false;\n }\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n while (idx >= 0) {\n var key = keysA[idx];\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n idx -= 1;\n }\n return true;\n}","export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _equals from \"./internal/_equals.js\";\n\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\nvar equals = /*#__PURE__*/_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\nexport default equals;","import _isPlaceholder from \"./_isPlaceholder.js\";\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\n\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\nvar mergeWithKey = /*#__PURE__*/_curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n l = l || {};\n r = r || {};\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n return result;\n});\nexport default mergeWithKey;","import _curry3 from \"./internal/_curry3.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport mergeWithKey from \"./mergeWithKey.js\";\n\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\nvar mergeDeepWithKey = /*#__PURE__*/_curry3(function mergeDeepWithKey(fn, lObj, rObj) {\n return mergeWithKey(function (k, lVal, rVal) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\nexport default mergeDeepWithKey;","import _curry2 from \"./internal/_curry2.js\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey.js\";\n\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\nvar mergeDeepRight = /*#__PURE__*/_curry2(function mergeDeepRight(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\nexport default mergeDeepRight;","import _isArrayLike from \"./_isArrayLike.js\";\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\nexport default function _createReduce(arrayReduce, methodReduce, iterableReduce) {\n return function _reduce(xf, acc, list) {\n if (_isArrayLike(list)) {\n return arrayReduce(xf, acc, list);\n }\n if (list == null) {\n return acc;\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return methodReduce(xf, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return iterableReduce(xf, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return iterableReduce(xf, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return methodReduce(xf, acc, list, 'reduce');\n }\n throw new TypeError('reduce: list must be array or iterable');\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","import _curry1 from \"./_curry1.js\";\nimport _isArray from \"./_isArray.js\";\nimport _isString from \"./_isString.js\";\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n * _isArrayLike({nodeType: 1, length: 1}) // => false\n */\nvar _isArrayLike = /*#__PURE__*/_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n if (!x) {\n return false;\n }\n if (typeof x !== 'object') {\n return false;\n }\n if (_isString(x)) {\n return false;\n }\n if (x.length === 0) {\n return true;\n }\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n return false;\n});\nexport default _isArrayLike;","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\nvar bind = /*#__PURE__*/_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\nexport default bind;","export default function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}","import _createReduce from \"./_createReduce.js\";\nimport _xArrayReduce from \"./_xArrayReduce.js\";\nimport bind from \"../bind.js\";\nfunction _xIterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\nfunction _xMethodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\nvar _xReduce = /*#__PURE__*/_createReduce(_xArrayReduce, _xMethodReduce, _xIterableReduce);\nexport default _xReduce;","export default function _xArrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}","var XWrap = /*#__PURE__*/function () {\n function XWrap(fn) {\n this.f = fn;\n }\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n return XWrap;\n}();\nexport default function _xwrap(fn) {\n return new XWrap(fn);\n}","import _curry3 from \"./internal/_curry3.js\";\nimport _xReduce from \"./internal/_xReduce.js\";\nimport _xwrap from \"./internal/_xwrap.js\";\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Be cautious of mutating and returning the accumulator. If you reuse it across\n * invocations, it will continue to accumulate onto the same value. The general\n * recommendation is to always return a new value. If you can't do so for\n * performance reasons, then be sure to reinitialize the accumulator on each\n * invocation.\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\nvar reduce = /*#__PURE__*/_curry3(function (xf, acc, list) {\n return _xReduce(typeof xf === 'function' ? _xwrap(xf) : xf, acc, list);\n});\nexport default reduce;","import _curry1 from \"./internal/_curry1.js\";\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig * -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(async () => {}); //=> \"AsyncFunction\"\n * R.type(undefined); //=> \"Undefined\"\n * R.type(BigInt(123)); //=> \"BigInt\"\n */\nvar type = /*#__PURE__*/_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\nexport default type;","/* This import statement requires a peer or dev dependency on react that is fulfilled at runtime.\n * To avoid duplicate bundling of react, we do not do this inside of single-spa-react.js.\n * We also do not set up the prop types in this file to avoid requiring the user of the library\n * to have prop-types installed and in their browser bundle, since not everyone uses prop types.\n */\nimport { SingleSpaContext } from \"single-spa-react\";\nimport * as React from \"react\";\n\nexport default class Parcel extends React.Component {\n static defaultProps = {\n wrapWith: \"div\",\n wrapStyle: {},\n parcelDidMount: () => {},\n };\n constructor(props) {\n super(props);\n\n this.state = {\n hasError: false,\n };\n\n if (!props.config) {\n throw new Error(\n `single-spa-react's Parcel component requires the 'config' prop to either be a parcel config or a loading function that returns a promise. See https://github.com/single-spa/single-spa-react`\n );\n }\n }\n componentDidMount() {\n this.unmounted = false;\n this.addThingToDo(\"mount\", () => {\n const mountParcel = this.props.mountParcel || this.mountParcel;\n if (!mountParcel) {\n throw new Error(`\n\t\t\t\t <Parcel /> was not passed a mountParcel prop, nor is it rendered where mountParcel is within the React context.\n\t\t\t\t If you are using <Parcel /> within a module that is not a single-spa application, you will need to import mountRootParcel from single-spa and pass it into <Parcel /> as a mountParcel prop\t\n\t\t\t\t`);\n }\n let domElement;\n if (this.el) {\n domElement = this.el;\n } else {\n this.createdDomElement = domElement = document.createElement(\n this.props.wrapWith\n );\n Object.keys(this.props.wrapStyle).forEach((key) => {\n domElement.style[key] = this.props.wrapStyle[key];\n });\n this.props.appendTo.appendChild(domElement);\n }\n this.parcel = mountParcel(this.props.config, {\n domElement,\n ...this.getParcelProps(),\n });\n this.parcel.mountPromise.then(this.props.parcelDidMount);\n return this.parcel.mountPromise;\n });\n }\n componentDidUpdate() {\n this.addThingToDo(\"update\", () => {\n if (this.parcel && this.parcel.update) {\n return this.parcel.update(this.getParcelProps());\n }\n });\n }\n componentWillUnmount() {\n this.addThingToDo(\"unmount\", () => {\n if (this.parcel && this.parcel.getStatus() === \"MOUNTED\") {\n return this.parcel.unmount();\n }\n });\n\n if (this.createdDomElement) {\n this.createdDomElement.parentNode.removeChild(this.createdDomElement);\n }\n\n this.unmounted = true;\n }\n render() {\n if (this.props.appendTo) {\n if (SingleSpaContext && SingleSpaContext.Consumer) {\n return (\n <SingleSpaContext.Consumer>\n {(context) => {\n this.mountParcel = context ? context.mountParcel : null;\n\n return null;\n }}\n </SingleSpaContext.Consumer>\n );\n } else {\n return null;\n }\n } else {\n const children =\n SingleSpaContext && SingleSpaContext.Consumer ? (\n <SingleSpaContext.Consumer>\n {(context) => {\n this.mountParcel = context ? context.mountParcel : null;\n\n return null;\n }}\n </SingleSpaContext.Consumer>\n ) : undefined;\n\n return React.createElement(\n this.props.wrapWith,\n {\n ref: this.handleRef,\n style: this.props.wrapStyle,\n className: this.props.wrapClassName,\n },\n children\n );\n }\n }\n handleRef = (el) => {\n this.el = el;\n };\n addThingToDo = (action, thing) => {\n if (this.state.hasError && action !== \"unmount\") {\n // In an error state, we don't do anything anymore except for unmounting\n return;\n }\n\n this.nextThingToDo = (this.nextThingToDo || Promise.resolve())\n .then((...args) => {\n if (this.unmounted && action !== \"unmount\") {\n // Never do anything once the react component unmounts\n return;\n }\n\n return thing(...args);\n })\n .catch((err) => {\n this.nextThingToDo = Promise.resolve(); // reset so we don't .then() the bad promise again\n this.setState({ hasError: true });\n\n if (err && err.message) {\n err.message = `During '${action}', parcel threw an error: ${err.message}`;\n }\n\n if (this.props.handleError) {\n this.props.handleError(err);\n } else {\n setTimeout(() => {\n throw err;\n });\n }\n\n // No more things to do should be done -- the parcel is in an error state\n throw err;\n });\n };\n getParcelProps = () => {\n // Make sure domElement is a prop, so that the parcel updates the correct domEl rather than creating a new one\n const parcelProps = { ...this.props, domElement: this.el };\n\n delete parcelProps.mountParcel;\n delete parcelProps.config;\n delete parcelProps.wrapWith;\n delete parcelProps.wrapStyle;\n delete parcelProps.appendTo;\n delete parcelProps.handleError;\n delete parcelProps.parcelDidMount;\n\n return parcelProps;\n };\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport function chooseDomElementGetter(opts, props) {\n var domElementGetter;\n\n if (props.domElement) {\n domElementGetter = function domElementGetter() {\n return props.domElement;\n };\n } else if (props.domElementGetter) {\n domElementGetter = props.domElementGetter;\n } else if (opts.domElementGetter) {\n domElementGetter = opts.domElementGetter;\n } else {\n domElementGetter = defaultDomElementGetter(props);\n }\n\n if (typeof domElementGetter !== \"function\") {\n throw Error(\"single-spa's dom-element-getter-helpers was given an invalid domElementGetter for application or parcel '\".concat(props.name, \"'. Expected a function, received \").concat(_typeof(domElementGetter)));\n }\n\n return function () {\n var domElement = domElementGetter(props);\n\n if (!(domElement instanceof HTMLElement)) {\n throw Error(\"single-spa's dom-element-getter-helpers: domElementGetter returned an invalid dom element for application or parcel '\".concat(props.name, \"'. Expected HTMLElement, received \").concat(_typeof(domElement)));\n }\n\n return domElement;\n };\n}\n\nfunction defaultDomElementGetter(props) {\n var appName = props.appName || props.name;\n\n if (!appName) {\n throw Error(\"single-spa's dom-element-getter-helpers was not given an application name as a prop, so it can't make a unique dom element container for the react application\");\n }\n\n var htmlId = \"single-spa-application:\".concat(appName);\n return function defaultDomEl() {\n var domElement = document.getElementById(htmlId);\n\n if (!domElement) {\n domElement = document.createElement(\"div\");\n domElement.id = htmlId;\n document.body.appendChild(domElement);\n }\n\n return domElement;\n };\n}\n","/* We don't import parcel.component.js from this file intentionally. See comment\n * in that file for why\n */\n\nimport { chooseDomElementGetter } from \"dom-element-getter-helpers\";\n\n// React context that gives any react component the single-spa props\nexport let SingleSpaContext = null;\n\n// This try/catch exists mostly to prevent rollup from thinking that SingleSpaContext\n// is null and then doing optimizations in parcel.js that cause bugs.\n// See https://github.com/single-spa/single-spa-react/issues/105\n\ntry {\n // single-spa-react is usable as a global script, as a systemjs module, and other\n // situations where require() is unavailable. This is why we require the user to\n // pass in opts.React and opts.ReactDOM - to avoid the mess of \"how do i properly load react\".\n // However, in situations where require() is available, we can use it this way to create\n // the react context. The try/catch defensiveness keeps single-spa-react working in\n // as many situations as possible.\n SingleSpaContext = require(\"react\").createContext();\n} catch {\n // ignore\n}\n\nconst defaultOpts = {\n // required opts\n React: null,\n\n // required - one or the other\n ReactDOM: null,\n ReactDOMClient: null,\n\n // required - one or the other\n rootComponent: null,\n loadRootComponent: null,\n\n // optional opts\n errorBoundary: null,\n errorBoundaryClass: null,\n domElementGetter: null,\n parcelCanUpdate: true, // by default, allow parcels created with single-spa-react to be updated\n suppressComponentDidCatchWarning: false,\n domElements: {},\n renderResults: {},\n updateResolves: {},\n unmountResolves: {},\n};\n\nfunction singleSpaReact(userOpts) {\n if (typeof userOpts !== \"object\") {\n throw new Error(`single-spa-react requires a configuration object`);\n }\n\n const opts = {\n ...defaultOpts,\n ...userOpts,\n };\n\n if (!opts.React) {\n throw new Error(`single-spa-react must be passed opts.React`);\n }\n\n if (!opts.ReactDOM && !opts.ReactDOMClient) {\n throw new Error(\n `single-spa-react must be passed opts.ReactDOM or opts.ReactDOMClient`\n );\n }\n\n if (!opts.renderType) {\n // https://github.com/single-spa/single-spa-react/issues/202\n if (opts.ReactDOMClient?.createRoot) {\n opts.renderType = \"createRoot\";\n } else {\n opts.renderType = \"render\";\n }\n }\n\n if (!opts.rootComponent && !opts.loadRootComponent) {\n throw new Error(\n `single-spa-react must be passed opts.rootComponent or opts.loadRootComponent`\n );\n }\n\n if (opts.errorBoundary && typeof opts.errorBoundary !== \"function\") {\n throw Error(\n `The errorBoundary opt for single-spa-react must either be omitted or be a function that returns React elements`\n );\n }\n\n if (!SingleSpaContext && opts.React.createContext) {\n SingleSpaContext = opts.React.createContext();\n }\n\n opts.SingleSpaRoot = createSingleSpaRoot(opts);\n\n const lifecycles = {\n bootstrap: bootstrap.bind(null, opts),\n mount: mount.bind(null, opts),\n unmount: unmount.bind(null, opts),\n };\n\n if (opts.parcelCanUpdate) {\n lifecycles.update = update.bind(null, opts);\n }\n\n return lifecycles;\n}\n\nfunction bootstrap(opts, props) {\n if (opts.rootComponent) {\n // This is a class or stateless function component\n return Promise.resolve();\n } else {\n // They passed a promise that resolves with the react component. Wait for it to resolve before mounting\n return opts.loadRootComponent(props).then((resolvedComponent) => {\n opts.rootComponent = resolvedComponent;\n });\n }\n}\n\nfunction mount(opts, props) {\n return new Promise((resolve, reject) => {\n if (\n !opts.suppressComponentDidCatchWarning &&\n atLeastReact16(opts.React) &&\n !opts.errorBoundary &&\n !opts.errorBoundaryClass\n ) {\n if (!opts.rootComponent.prototype) {\n console.warn(\n `single-spa-react: ${\n props.name || props.appName || props.childAppName\n }'s rootComponent does not implement an error boundary. If using a functional component, consider providing an opts.errorBoundary to singleSpaReact(opts).`\n );\n } else if (!opts.rootComponent.prototype.componentDidCatch) {\n console.warn(\n `single-spa-react: ${\n props.name || props.appName || props.childAppName\n }'s rootComponent should implement componentDidCatch to avoid accidentally unmounting the entire single-spa application.`\n );\n }\n }\n\n const whenMounted = function () {\n resolve(this);\n };\n\n const elementToRender = getElementToRender(opts, props, whenMounted);\n const domElement = chooseDomElementGetter(opts, props)();\n const renderResult = reactDomRender({\n elementToRender,\n domElement,\n reactDom: getReactDom(opts),\n renderType: getRenderType(opts),\n });\n\n opts.domElements[props.name] = domElement;\n opts.renderResults[props.name] = renderResult;\n });\n}\n\nfunction unmount(opts, props) {\n return new Promise((resolve) => {\n opts.unmountResolves[props.name] = resolve;\n\n const root = opts.renderResults[props.name];\n\n if (root && root.unmount) {\n // React >= 18\n const unmountResult = root.unmount();\n } else {\n // React < 18\n getReactDom(opts).unmountComponentAtNode(opts.domElements[props.name]);\n }\n delete opts.domElements[props.name];\n delete opts.renderResults[props.name];\n });\n}\n\nfunction update(opts, props) {\n return new Promise((resolve) => {\n if (!opts.updateResolves[props.name]) {\n opts.updateResolves[props.name] = [];\n }\n\n opts.updateResolves[props.name].push(resolve);\n\n const elementToRender = getElementToRender(opts, props, null);\n const renderRoot = opts.renderResults[props.name];\n if (renderRoot && renderRoot.render) {\n // React 18 with ReactDOM.createRoot()\n renderRoot.render(elementToRender);\n } else {\n // React 16 / 17 with ReactDOM.render()\n const domElement = chooseDomElementGetter(opts, props)();\n // This is the old way to update a react application - just call render() again\n getReactDom(opts).render(elementToRender, domElement);\n }\n });\n}\n\nfunction atLeastReact16(React) {\n if (\n React &&\n typeof React.version === \"string\" &&\n React.version.indexOf(\".\") >= 0\n ) {\n const majorVersionString = React.version.slice(\n 0,\n React.version.indexOf(\".\")\n );\n try {\n return Number(majorVersionString) >= 16;\n } catch (err) {\n return false;\n }\n } else {\n return false;\n }\n}\n\nfunction getReactDom(opts) {\n return opts.ReactDOMClient || opts.ReactDOM;\n}\n\nfunction getRenderType(opts) {\n return typeof opts.renderType === \"function\"\n ? opts.renderType()\n : opts.renderType;\n}\n\nfunction reactDomRender({ reactDom, renderType, elementToRender, domElement }) {\n const renderFn = reactDom[renderType];\n if (typeof renderFn !== \"function\")\n throw new Error(`renderType \"${renderType}\" did not return a function.`);\n\n switch (renderType) {\n case \"createRoot\":\n case \"unstable_createRoot\":\n case \"createBlockingRoot\":\n case \"unstable_createBlockingRoot\": {\n const root = renderFn(domElement);\n root.render(elementToRender);\n return root;\n }\n case \"hydrateRoot\": {\n const root = renderFn(domElement, elementToRender);\n return root;\n }\n case \"hydrate\":\n default: {\n renderFn(elementToRender, domElement);\n // The renderRoot function should return a react root, but ReactDOM.hydrate() and ReactDOM.render()\n // do not return a react root. So instead, we return null which indicates that there is no react root\n // that can be used for updates or unmounting\n return null;\n }\n }\n}\n\nfunction getElementToRender(opts, props, mountFinished) {\n const rootComponentElement = opts.React.createElement(\n opts.rootComponent,\n props\n );\n\n let elementToRender = SingleSpaContext\n ? opts.React.createElement(\n SingleSpaContext.Provider,\n { value: props },\n rootComponentElement\n )\n : rootComponentElement;\n\n if (\n opts.errorBoundary ||\n props.errorBoundary ||\n opts.errorBoundaryClass ||\n props.errorBoundaryClass\n ) {\n opts.errorBoundaryClass =\n opts.errorBoundaryClass ||\n props.errorBoundaryClass ||\n createErrorBoundary(opts, props);\n elementToRender = opts.React.createElement(\n opts.errorBoundaryClass,\n props,\n elementToRender\n );\n }\n\n // https://github.com/single-spa/single-spa-react/issues/112\n elementToRender = opts.React.createElement(\n opts.SingleSpaRoot,\n {\n ...props,\n mountFinished,\n updateFinished() {\n if (opts.updateResolves[props.name]) {\n opts.updateResolves[props.name].forEach((r) => r());\n delete opts.updateResolves[props.name];\n }\n },\n unmountFinished() {\n if (opts.unmountResolves[props.name]) {\n opts.unmountResolves[props.name]();\n delete opts.unmountResolves[props.name];\n }\n },\n },\n elementToRender\n );\n\n return elementToRender;\n}\n\nfunction createErrorBoundary(opts, props) {\n // Avoiding babel output for class syntax and super()\n // to avoid bloat\n function SingleSpaReactErrorBoundary(props) {\n // super\n opts.React.Component.apply(this, arguments);\n\n this.state = {\n caughtError: null,\n caughtErrorInfo: null,\n };\n\n SingleSpaReactErrorBoundary.displayName = `SingleSpaReactErrorBoundary(${props.name})`;\n }\n\n SingleSpaReactErrorBoundary.prototype = Object.create(\n opts.React.Component.prototype\n );\n\n SingleSpaReactErrorBoundary.prototype.render = function () {\n if (this.state.caughtError) {\n const errorBoundary = opts.errorBoundary || props.errorBoundary;\n\n return errorBoundary(\n this.state.caughtError,\n this.state.caughtErrorInfo,\n this.props\n );\n } else {\n return this.props.children;\n }\n };\n\n SingleSpaReactErrorBoundary.prototype.componentDidCatch = function (\n err,\n info\n ) {\n this.setState({\n caughtError: err,\n caughtErrorInfo: info,\n });\n };\n\n return SingleSpaReactErrorBoundary;\n}\n\nfunction createSingleSpaRoot(opts) {\n // This is a class component, since we need a mount hook and single-spa-react supports React@15 (no useEffect available)\n function SingleSpaRoot(_props) {\n SingleSpaRoot.displayName = `SingleSpaRoot(${_props.name})`;\n }\n\n SingleSpaRoot.prototype = Object.create(opts.React.Component.prototype);\n SingleSpaRoot.prototype.componentDidMount = function () {\n setTimeout(this.props.mountFinished);\n };\n SingleSpaRoot.prototype.componentWillUnmount = function () {\n setTimeout(this.props.unmountFinished);\n };\n SingleSpaRoot.prototype.render = function () {\n // componentDidUpdate doesn't seem to be called during root.render() for updates\n setTimeout(this.props.updateFinished);\n\n return this.props.children;\n };\n\n return SingleSpaRoot;\n}\n\nexport default singleSpaReact;\n","/** @module @category API */ import { reportError } from \"@openmrs/esm-error-handling\";\nimport { createGlobalStore } from \"@openmrs/esm-state\";\nimport { isUndefined } from \"lodash-es\";\nimport { Observable } from \"rxjs\";\nimport { openmrsFetch, restBaseUrl, sessionEndpoint } from \"./openmrs-fetch.js\";\n/** @internal */ export const sessionStore = createGlobalStore('session', {\n loaded: false,\n session: null\n});\nlet lastFetchTimeMillis = 0;\nfunction getCurrentUser(opts = {\n includeAuthStatus: true\n}) {\n if (lastFetchTimeMillis < Date.now() - 1000 * 60 || !sessionStore.getState().loaded) {\n refetchCurrentUser();\n }\n return new Observable((subscriber)=>{\n const handler = (state)=>{\n if (state.loaded) {\n if (opts.includeAuthStatus) {\n subscriber.next(state.session);\n } else {\n subscriber.next(state.session?.user);\n }\n }\n };\n handler(sessionStore.getState());\n // The observable subscribe function should return an unsubscribe function,\n // which happens to be exactly what `subscribe` returns.\n return sessionStore.subscribe(handler);\n });\n}\nexport { getCurrentUser };\nexport function getSessionStore() {\n if (lastFetchTimeMillis < Date.now() - 1000 * 60 || !sessionStore.getState().loaded) {\n refetchCurrentUser();\n }\n return sessionStore;\n}\n// NB locale is string only if this returns true\nfunction isValidLocale(locale) {\n if (locale === undefined || typeof locale !== 'string') {\n return false;\n }\n try {\n new Intl.Locale(locale);\n } catch (e) {\n return false;\n }\n return true;\n}\nexport function setUserLanguage(data) {\n let locale = data.user?.userProperties?.defaultLocale ?? data.locale;\n if (locale && locale.includes('_')) {\n locale = locale.replaceAll('_', '-');\n }\n if (isValidLocale(locale) && locale !== document.documentElement.getAttribute('lang')) {\n document.documentElement.setAttribute('lang', locale);\n }\n}\nsessionStore.subscribe((state)=>{\n if (state.loaded && state.session) {\n setUserLanguage(state.session);\n }\n});\nfunction userHasPrivilege(requiredPrivilege, user) {\n if (typeof requiredPrivilege === 'string') {\n return !isUndefined(user.privileges.find((p)=>requiredPrivilege === p.display));\n } else if (Array.isArray(requiredPrivilege)) {\n return requiredPrivilege.every((rp)=>!isUndefined(user.privileges.find((p)=>rp === p.display)));\n } else if (!isUndefined(requiredPrivilege)) {\n console.error(`Could not understand privileges \"${requiredPrivilege}\"`);\n }\n return true;\n}\nfunction isSuperUser(user) {\n return !isUndefined(user.roles.find((role)=>role.display === 'System Developer'));\n}\n/**\n * The `refetchCurrentUser` function causes a network request to redownload\n * the user. All subscribers to the current user will be notified of the\n * new users once the new version of the user object is downloaded.\n *\n * @returns The same observable as returned by [[getCurrentUser]].\n *\n * #### Example\n * ```js\n * import { refetchCurrentUser } from '@openmrs/esm-api'\n * refetchCurrentUser()\n * ```\n */ export function refetchCurrentUser(username, password) {\n lastFetchTimeMillis = Date.now();\n let headers = {};\n if (username && password) {\n headers['Authorization'] = `Basic ${window.btoa(`${username}:${password}`)}`;\n }\n return handleSessionResponse(openmrsFetch(sessionEndpoint, {\n headers\n }));\n}\nexport function clearCurrentUser() {\n sessionStore.setState({\n loaded: true,\n session: {\n authenticated: false,\n sessionId: ''\n }\n });\n}\nexport function userHasAccess(requiredPrivilege, user) {\n if (user === undefined) {\n // if the user hasn't been loaded, then return false iff there is a required privilege\n return Boolean(requiredPrivilege);\n }\n if (!Boolean(requiredPrivilege)) {\n // if user exists but no requiredPrivilege is defined\n return true;\n }\n return userHasPrivilege(requiredPrivilege, user) || isSuperUser(user);\n}\nexport function getLoggedInUser() {\n let user;\n let unsubscribe;\n return new Promise((res)=>{\n const handler = (state)=>{\n if (state.loaded && state.session.user) {\n user = state.session.user;\n res(state.session.user);\n unsubscribe && unsubscribe();\n }\n };\n handler(sessionStore.getState());\n if (!user) {\n unsubscribe = sessionStore.subscribe(handler);\n }\n });\n}\nexport function getSessionLocation() {\n return new Promise((res, rej)=>{\n const sub = getCurrentUser().subscribe((session)=>{\n res(session.sessionLocation);\n }, rej);\n sub.unsubscribe();\n });\n}\nexport async function setSessionLocation(locationUuid, abortController) {\n return handleSessionResponse(openmrsFetch(sessionEndpoint, {\n method: 'POST',\n body: {\n sessionLocation: locationUuid\n },\n headers: {\n 'Content-Type': 'application/json'\n },\n signal: abortController.signal\n }));\n}\nexport async function setUserProperties(userUuid, userProperties, abortController) {\n if (!abortController) {\n abortController = new AbortController();\n }\n await openmrsFetch(`${restBaseUrl}/user/${userUuid}`, {\n method: 'POST',\n body: {\n userProperties\n },\n headers: {\n 'Content-Type': 'application/json'\n },\n signal: abortController.signal\n });\n return refetchCurrentUser();\n}\nfunction handleSessionResponse(result) {\n return new Promise((resolve, reject)=>{\n result.then((res)=>{\n let nextState;\n if (typeof res?.data === 'object') {\n nextState = {\n loaded: true,\n session: res.data\n };\n sessionStore.setState(nextState);\n resolve(nextState);\n } else {\n nextState = {\n loaded: false,\n session: null\n };\n sessionStore.setState(nextState);\n reject(nextState);\n }\n }).catch((err)=>{\n reportError(`Failed to fetch new session information: ${err}`);\n const nextState = {\n loaded: false,\n session: null\n };\n sessionStore.setState(nextState);\n reject(nextState);\n });\n });\n}\n","/** @module @category API */ function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport { Observable } from \"rxjs\";\nimport { isPlainObject } from \"lodash-es\";\nimport { getConfig } from \"@openmrs/esm-config\";\nimport { clearHistory, navigate } from \"@openmrs/esm-navigation\";\nexport const restBaseUrl = '/ws/rest/v1';\nexport const fhirBaseUrl = '/ws/fhir2/R4';\nexport const sessionEndpoint = `${restBaseUrl}/session`;\n/**\n * Append `path` to the OpenMRS SPA base.\n *\n * #### Example\n *\n * ```ts\n * makeUrl('/foo/bar');\n * // => '/openmrs/foo/bar'\n * ```\n */ export function makeUrl(path) {\n if (path && path.startsWith('http')) {\n return path;\n } else if (path[0] !== '/') {\n // ensure path starts with /\n path = '/' + path;\n }\n return window.openmrsBase + path;\n}\n/**\n * The openmrsFetch function is a wrapper around the\n * [browser's built-in fetch function](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch),\n * with extra handling for OpenMRS-specific API behaviors, such as\n * request headers, authentication, authorization, and the API urls.\n *\n * @param path A string url to make the request to. Note that the\n * openmrs base url (by default `/openmrs`) will be automatically\n * prepended to the URL, so there is no need to include it.\n * @param fetchInit A [fetch init object](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Syntax).\n * Note that the `body` property does not need to be `JSON.stringify()`ed\n * because openmrsFetch will do that for you.\n * @returns A [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)\n * that resolves with a [Response object](https://developer.mozilla.org/en-US/docs/Web/API/Response).\n * Note that the openmrs version of the Response object has already\n * downloaded the HTTP response body as json, and has an additional\n * `data` property with the HTTP response json as a javascript object.\n *\n * #### Example\n * ```js\n * import { openmrsFetch } from '@openmrs/esm-api'\n * const abortController = new AbortController();\n * openmrsFetch(`${restBaseUrl}/session', {signal: abortController.signal})\n * .then(response => {\n * console.log(response.data.authenticated)\n * })\n * .catch(err => {\n * console.error(err.status);\n * })\n * abortController.abort();\n * openmrsFetch(`${restBaseUrl}/session', {\n * method: 'POST',\n * body: {\n * username: 'hi',\n * password: 'there',\n * }\n * })\n * ```\n *\n * #### Cancellation\n *\n * To cancel a network request, use an\n * [AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController/abort).\n * It is best practice to cancel your network requests when the user\n * navigates away from a page while the request is pending request, to\n * free up memory and network resources and to prevent race conditions.\n *\n * @category API\n */ export function openmrsFetch(path, fetchInit = {}) {\n if (typeof path !== 'string') {\n throw Error(\"The first argument to @openmrs/api's openmrsFetch function must be a url string\");\n }\n if (typeof fetchInit !== 'object') {\n throw Error(\"The second argument to @openmrs/api's openmrsFetch function must be a plain object.\");\n }\n if (!window.openmrsBase) {\n throw Error(\"@openmrs/api is running in a browser that doesn't have window.openmrsBase, which is provided by openmrs-module-spa's HTML file.\");\n }\n // Prefix the url with the openmrs spa base\n let url = makeUrl(path);\n // We're going to need some headers\n if (!fetchInit.headers) {\n fetchInit.headers = {};\n }\n /* Automatically stringify javascript objects being sent in the\n * request body.\n */ if (isPlainObject(fetchInit.body)) {\n fetchInit.body = JSON.stringify(fetchInit.body);\n }\n /* Add a request header to tell the server to respond with json,\n * since frontend code almost always wants json and the OpenMRS\n * server won't give you json unless you explicitly ask for it.\n * If a different Accept header is preferred, pass it into the fetchInit.\n * If no Accept header is desired, pass it in explicitly as null.\n */ if (typeof fetchInit.headers.Accept === 'undefined') {\n fetchInit.headers.Accept = 'application/json';\n }\n if (fetchInit.headers.Accept === null) {\n delete fetchInit.headers.Accept;\n }\n /* This tells the OpenMRS REST API not to return a WWW-Authenticate\n * header. Returning that header is useful when using the API, but\n * not from a UI.\n */ if (path.startsWith(restBaseUrl) && typeof fetchInit.headers['Disable-WWW-Authenticate'] === 'undefined') {\n fetchInit.headers['Disable-WWW-Authenticate'] = 'true';\n }\n if (path.startsWith(fhirBaseUrl)) {\n const urlUrl = new URL(url, window.location.toString());\n if (!urlUrl.searchParams.has('_summary')) {\n urlUrl.searchParams.set('_summary', 'data');\n url = urlUrl.toString();\n }\n }\n /* We capture the stacktrace before making the request, so that if an error occurs we can\n * log a full stacktrace that includes the code that made the request and handled the response\n * Otherwise, we could run into situations where the stacktrace doesn't even show which code\n * called @openmrs/api.\n */ const requestStacktrace = Error();\n return window.fetch(url, fetchInit).then(async (r)=>{\n const response = r;\n if (response.ok) {\n if (response.status === 204) {\n const { followRedirects } = await getConfig('@openmrs/esm-api');\n if (followRedirects && response.headers.has('location')) {\n const location = response.headers.get('location');\n if (location) {\n navigate({\n to: location\n });\n }\n }\n /* HTTP 204 - No Content\n * We should not try to download the empty response as json. Instead,\n * we return null since there is no response body.\n */ response.data = null;\n return response;\n } else {\n // HTTP 200s - The request succeeded\n return response.clone().text().then((responseText)=>{\n try {\n if (responseText) {\n response.data = JSON.parse(responseText);\n }\n } catch (err) {\n // Server didn't respond with json\n }\n return response;\n });\n }\n } else {\n /* HTTP response status is not in 200s. Usually this will mean\n * either HTTP 400s (bad request from browser) or HTTP 500s (server error)\n * Our goal is to come up with best possible stacktrace and error message\n * to help developers understand the problem and debug\n */ /*\n * Redirect to given url when redirect on auth failure is enabled\n */ const { redirectAuthFailure } = await getConfig('@openmrs/esm-api');\n if (url === makeUrl(sessionEndpoint) && response.status === 403 || redirectAuthFailure.enabled && redirectAuthFailure.errors.includes(response.status)) {\n clearHistory();\n navigate({\n to: redirectAuthFailure.url\n });\n /* We sometimes don't really want this promise to resolve since there's no response data,\n * nor do we want it to reject because that would trigger error handling. We instead\n * want it to remain in pending status while the navigation occurs.\n */ return redirectAuthFailure.resolvePromise ? Promise.resolve() : new Promise(()=>{});\n } else {\n // Attempt to download a response body, if it has one\n return response.clone().text().then((responseText)=>{\n let responseBody = responseText;\n try {\n responseBody = JSON.parse(responseText);\n } catch (err) {\n // Server didn't respond with json, so just go with the response text string\n }\n /* Make the fetch promise go into \"rejected\" status, with the best\n * possible stacktrace and error message.\n */ throw new OpenmrsFetchError(url, response, responseBody, requestStacktrace);\n }, (err)=>{\n /* We weren't able to download a response body for this error.\n * Time to just give the best possible stacktrace and error message.\n */ throw new OpenmrsFetchError(url, response, null, requestStacktrace);\n });\n }\n }\n });\n}\n/**\n * The openmrsObservableFetch function is a wrapper around openmrsFetch\n * that returns an [Observable](https://rxjs-dev.firebaseapp.com/guide/observable)\n * instead of a promise. It exists in case using an Observable is\n * preferred or more convenient than a promise.\n *\n * @param url See [[openmrsFetch]]\n * @param fetchInit See [[openmrsFetch]]\n * @returns An Observable that produces exactly one Response object.\n * The response object is exactly the same as for [[openmrsFetch]].\n *\n * #### Example\n *\n * ```js\n * import { openmrsObservableFetch } from '@openmrs/esm-api'\n * const subscription = openmrsObservableFetch(`${restBaseUrl}/session').subscribe(\n * response => console.log(response.data),\n * err => {throw err},\n * () => console.log('finished')\n * )\n * subscription.unsubscribe()\n * ```\n *\n * #### Cancellation\n *\n * To cancel the network request, simply call `subscription.unsubscribe();`\n *\n * @category API\n */ export function openmrsObservableFetch(url, fetchInit = {}) {\n if (typeof fetchInit !== 'object') {\n throw Error('The second argument to openmrsObservableFetch must be either omitted or an object');\n }\n const abortController = new AbortController();\n fetchInit.signal = abortController.signal;\n return new Observable((observer)=>{\n let hasResponse = false;\n openmrsFetch(url, fetchInit).then((response)=>{\n hasResponse = true;\n observer.next(response);\n observer.complete();\n }, (err)=>{\n hasResponse = true;\n observer.error(err);\n });\n return ()=>{\n if (!hasResponse) {\n abortController.abort();\n }\n };\n });\n}\nexport class OpenmrsFetchError extends Error {\n constructor(url, response, responseBody, requestStacktrace){\n super(), _define_property(this, \"response\", void 0), _define_property(this, \"responseBody\", void 0);\n this.message = `Server responded with ${response.status} (${response.statusText}) for url ${url}. Check err.responseBody or network tab in dev tools for more info`;\n requestStacktrace.message = this.message;\n this.responseBody = responseBody;\n this.response = response;\n this.stack = `Stacktrace for outgoing request:\\n${requestStacktrace.stack}\\nStacktrace for incoming response:\\n${this.stack}`;\n }\n}\n","/** @module @category Config */ import { clone, reduce, mergeDeepRight, equals, omit } from \"ramda\";\nimport { Type } from \"../types.js\";\nimport { isArray, isBoolean, isUuid, isNumber, isObject, isString } from \"../validators/type-validators.js\";\nimport { validator } from \"../validators/validator.js\";\nimport { configInternalStore, configExtensionStore, getConfigStore, getExtensionConfig, getExtensionsConfigStore, implementerToolsConfigStore, temporaryConfigStore, getExtensionSlotsConfigStore } from \"./state.js\";\n/**\n * Store setup\n *\n *\n * Set up stores and subscriptions so that inputs get processed appropriately.\n *\n * There are *input* stores and *output* stores. The *input* stores\n * are configInternalStore, temporaryConfigStore, and configExtensionStore. The\n * output stores are set in the `compute...` functions. They are the module\n * config stores, the extension slot config stores (by module), the extension\n * config stores, and the implementer tools config store.\n *\n * This code sets up the subscriptions so that when an input store changes,\n * the correct set of output stores are updated.\n *\n * All `compute...` functions except `computeExtensionConfigs` are pure\n * (or are supposed to be), other than the fact that they all `setState`\n * store values at the end. `computeExtensionConfigs` calls `getGlobalStore`,\n * which creates stores.\n */ computeModuleConfig(configInternalStore.getState(), temporaryConfigStore.getState());\nconfigInternalStore.subscribe((configState)=>computeModuleConfig(configState, temporaryConfigStore.getState()));\ntemporaryConfigStore.subscribe((tempConfigState)=>computeModuleConfig(configInternalStore.getState(), tempConfigState));\ncomputeImplementerToolsConfig(configInternalStore.getState(), temporaryConfigStore.getState());\nconfigInternalStore.subscribe((configState)=>computeImplementerToolsConfig(configState, temporaryConfigStore.getState()));\ntemporaryConfigStore.subscribe((tempConfigState)=>computeImplementerToolsConfig(configInternalStore.getState(), tempConfigState));\ncomputeExtensionSlotConfigs(configInternalStore.getState(), temporaryConfigStore.getState());\nconfigInternalStore.subscribe((configState)=>computeExtensionSlotConfigs(configState, temporaryConfigStore.getState()));\ntemporaryConfigStore.subscribe((tempConfigState)=>computeExtensionSlotConfigs(configInternalStore.getState(), tempConfigState));\ncomputeExtensionConfigs(configInternalStore.getState(), configExtensionStore.getState(), temporaryConfigStore.getState());\nconfigInternalStore.subscribe((configState)=>{\n computeExtensionConfigs(configState, configExtensionStore.getState(), temporaryConfigStore.getState());\n});\nconfigExtensionStore.subscribe((extensionState)=>{\n computeExtensionConfigs(configInternalStore.getState(), extensionState, temporaryConfigStore.getState());\n});\ntemporaryConfigStore.subscribe((tempConfigState)=>{\n computeExtensionConfigs(configInternalStore.getState(), configExtensionStore.getState(), tempConfigState);\n});\n/** Keep track of which validation errors we have displayed. Each one should only be displayed once. */ let displayedValidationMessages = new Set();\nfunction computeModuleConfig(state, tempState) {\n for (let moduleName of Object.keys(state.schemas)){\n // At this point the schema could be either just the implicit schema or the actually\n // defined schema. We run with just the implicit schema because we want to populate\n // the config store with the translation overrides as soon as possible. In fact, the\n // translation system will throw for Suspense until the translation overrides are\n // available, which as of this writing blocks the schema definition from occurring\n // for modules loaded based on their extensions.\n const moduleStore = getConfigStore(moduleName);\n if (state.moduleLoaded[moduleName]) {\n const config = getConfigForModule(moduleName, state, tempState);\n moduleStore.setState({\n translationOverridesLoaded: true,\n loaded: true,\n config\n });\n } else {\n const config = getConfigForModuleImplicitSchema(moduleName, state, tempState);\n moduleStore.setState({\n translationOverridesLoaded: true,\n loaded: false,\n config\n });\n }\n }\n}\nfunction computeExtensionSlotConfigs(state, tempState) {\n const slotConfigs = getExtensionSlotConfigs(state, tempState);\n const newSlotStoreEntries = Object.fromEntries(Object.entries(slotConfigs).map(([slotName, config])=>[\n slotName,\n {\n loaded: true,\n config\n }\n ]));\n const slotStore = getExtensionSlotsConfigStore();\n const oldState = slotStore.getState();\n const newState = {\n slots: {\n ...oldState.slots,\n ...newSlotStoreEntries\n }\n };\n if (!equals(oldState, newState)) {\n slotStore.setState(newState);\n }\n}\nfunction computeImplementerToolsConfig(state, tempConfigState) {\n const config = getImplementerToolsConfig(state, tempConfigState);\n implementerToolsConfigStore.setState({\n config\n });\n}\nfunction computeExtensionConfigs(configState, extensionState, tempConfigState) {\n const configs = {};\n // We assume that the module schema has already been defined, since the extension\n // it contains is mounted.\n for (let extension of extensionState.mountedExtensions){\n const config = computeExtensionConfig(extension.slotModuleName, extension.extensionModuleName, extension.slotName, extension.extensionId, configState, tempConfigState);\n configs[extension.slotName] = {\n ...configs[extension.slotName],\n [extension.extensionId]: {\n config,\n loaded: true\n }\n };\n }\n getExtensionsConfigStore().setState({\n configs\n });\n}\n/*\n * API\n *\n */ /**\n * This defines a configuration schema for a module. The schema tells the\n * configuration system how the module can be configured. It specifies\n * what makes configuration valid or invalid.\n *\n * See [Configuration System](https://o3-docs.openmrs.org/docs/configuration-system)\n * for more information about defining a config schema.\n *\n * @param moduleName Name of the module the schema is being defined for. Generally\n * should be the one in which the `defineConfigSchema` call takes place.\n * @param schema The config schema for the module\n */ export function defineConfigSchema(moduleName, schema) {\n validateConfigSchema(moduleName, schema);\n const enhancedSchema = mergeDeepRight(schema, implicitConfigSchema);\n configInternalStore.setState((state)=>({\n ...state,\n schemas: {\n ...state.schemas,\n [moduleName]: enhancedSchema\n },\n moduleLoaded: {\n ...state.moduleLoaded,\n [moduleName]: true\n }\n }));\n}\n/**\n * This alerts the configuration system that a module exists. This allows config to be\n * processed, while still allowing the extension system to know whether the module has\n * actually had its front bundle executed yet.\n *\n * This should only be used in esm-app-shell.\n *\n * @internal\n * @param moduleName\n */ export function registerModuleWithConfigSystem(moduleName) {\n configInternalStore.setState((state)=>({\n ...state,\n schemas: {\n ...state.schemas,\n [moduleName]: implicitConfigSchema\n }\n }));\n}\n/**\n * This alerts the configuration system that a module has been loaded.\n *\n * This should only be used in esm-app-shell.\n *\n * @internal\n * @param moduleName\n */ export function registerModuleLoad(moduleName) {\n configInternalStore.setState((state)=>({\n ...state,\n moduleLoaded: {\n ...state.moduleLoaded,\n [moduleName]: true\n }\n }));\n}\n/**\n * This allows the config system to support translation overrides for namespaces that\n * do not correspond to modules.\n *\n * This should only be used in esm-app-shell.\n *\n * @internal\n * @param namespace\n */ export function registerTranslationNamespace(namespace) {\n configInternalStore.setState((state)=>({\n ...state,\n schemas: {\n ...state.schemas,\n [namespace]: translationOverridesSchema\n }\n }));\n}\n/**\n * This defines a configuration schema for an extension. When a schema is defined\n * for an extension, that extension will receive the configuration corresponding\n * to that schema, rather than the configuration corresponding to the module\n * in which it is defined.\n *\n * The schema tells the configuration system how the module can be configured.\n * It specifies what makes configuration valid or invalid.\n *\n * See [Configuration System](https://o3-docs.openmrs.org/docs/configuration-system)\n * for more information about defining a config schema.\n *\n * @param extensionName Name of the extension the schema is being defined for.\n * Should match the `name` of one of the `extensions` entries being returned\n * by `setupOpenMRS`.\n * @param schema The config schema for the extension\n */ export function defineExtensionConfigSchema(extensionName, schema) {\n validateConfigSchema(extensionName, schema);\n const enhancedSchema = mergeDeepRight(schema, implicitConfigSchema);\n const state = configInternalStore.getState();\n if (state.schemas[extensionName]) {\n console.error(`Config schema for extension ${extensionName} already exists. If there are multiple extensions with this same name, one will probably crash.`);\n }\n configInternalStore.setState((state)=>({\n ...state,\n schemas: {\n ...state.schemas,\n [extensionName]: enhancedSchema\n }\n }));\n}\nexport function provide(config, sourceName = 'provided') {\n configInternalStore.setState((state)=>({\n ...state,\n providedConfigs: [\n ...state.providedConfigs,\n {\n source: sourceName,\n config\n }\n ]\n }));\n}\n/**\n * A promise-based way to access the config as soon as it is fully loaded.\n * If it is already loaded, resolves the config in its present state.\n *\n * This is a useful function if you need to get the config in the course\n * of the execution of a function.\n *\n * @param moduleName The name of the module for which to look up the config\n */ export function getConfig(moduleName) {\n return new Promise((resolve)=>{\n const store = getConfigStore(moduleName);\n function update(state) {\n if (state.loaded && state.config) {\n const config = omit([\n 'Display conditions',\n 'Translation overrides'\n ], state.config);\n resolve(config);\n unsubscribe && unsubscribe();\n }\n }\n update(store.getState());\n const unsubscribe = store.subscribe(update);\n });\n}\n/** @internal */ export function getTranslationOverrides(moduleName, slotName, extensionId) {\n const promises = [\n new Promise((resolve)=>{\n const configStore = getConfigStore(moduleName);\n function update(state) {\n if (state.translationOverridesLoaded && state.config) {\n const translationOverrides = state.config['Translation overrides'] ?? {};\n resolve(translationOverrides);\n unsubscribe && unsubscribe();\n }\n }\n update(configStore.getState());\n const unsubscribe = configStore.subscribe(update);\n })\n ];\n if (slotName && extensionId) {\n promises.push(new Promise((resolve)=>{\n const configStore = getExtensionConfig(slotName, extensionId);\n function update(state) {\n if (state.loaded && state.config) {\n const translationOverrides = state.config['Translation overrides'] ?? {};\n resolve(translationOverrides);\n unsubscribe && unsubscribe();\n }\n }\n update(configStore.getState());\n const unsubscribe = configStore.subscribe(update);\n }));\n }\n return Promise.all(promises);\n}\n/**\n * Validate and interpolate defaults for `providedConfig` according to `schema`\n *\n * @param schema a configuration schema\n * @param providedConfig an object of config values (without the top-level module name)\n * @param keyPathContext a dot-deparated string which helps the user figure out where\n * the provided config came from\n * @internal\n */ export function processConfig(schema, providedConfig, keyPathContext) {\n validateStructure(schema, providedConfig, keyPathContext);\n const config = setDefaults(schema, providedConfig);\n runAllValidatorsInConfigTree(schema, config, keyPathContext);\n return config;\n}\n/*\n * Helper functions\n *\n */ /**\n * Returns the configuration for an extension. This configuration is specific\n * to the slot in which it is mounted, and its ID within that slot.\n *\n * The schema for that configuration is the extension schema. If no extension\n * schema has been provided, the schema used is the schema of the module in\n * which the extension is defined.\n *\n * @param slotModuleName The name of the module which defines the extension slot\n * @param extensionModuleName The name of the module which defines the extension (and therefore the config schema)\n * @param slotName The name of the extension slot where the extension is mounted\n * @param extensionId The ID of the extension in its slot\n */ function computeExtensionConfig(slotModuleName, extensionModuleName, slotName, extensionId, configState, tempConfigState) {\n const extensionName = getExtensionNameFromId(extensionId);\n const extensionConfigSchema = configState.schemas[extensionName];\n const nameOfSchemaSource = extensionConfigSchema ? extensionName : extensionModuleName;\n const providedConfigs = getProvidedConfigs(configState, tempConfigState);\n const slotModuleConfig = mergeConfigsFor(slotModuleName, providedConfigs);\n const configOverride = slotModuleConfig?.extensionSlots?.[slotName]?.configure?.[extensionId] ?? {};\n const extensionConfig = mergeConfigsFor(nameOfSchemaSource, providedConfigs);\n const combinedConfig = mergeConfigs([\n extensionConfig,\n configOverride\n ]);\n const schema = extensionConfigSchema ?? configState.schemas[extensionModuleName];\n validateStructure(schema, combinedConfig, nameOfSchemaSource);\n const config = setDefaults(schema, combinedConfig);\n runAllValidatorsInConfigTree(schema, config, nameOfSchemaSource);\n delete config.extensionSlots;\n return config;\n}\nfunction getImplementerToolsConfig(configState, tempConfigState) {\n let result = getSchemaWithValuesAndSources(clone(configState.schemas));\n const configsAndSources = [\n ...configState.providedConfigs.map((c)=>[\n c.config,\n c.source\n ]),\n [\n tempConfigState.config,\n 'temporary config'\n ]\n ];\n for (let [config, source] of configsAndSources){\n result = mergeConfigs([\n result,\n createValuesAndSourcesTree(config, source)\n ]);\n }\n return result;\n}\nfunction getSchemaWithValuesAndSources(schema) {\n if (schema.hasOwnProperty('_default')) {\n return {\n ...schema,\n _value: schema._default,\n _source: 'default'\n };\n } else if (isOrdinaryObject(schema)) {\n return Object.keys(schema).reduce((obj, key)=>{\n obj[key] = getSchemaWithValuesAndSources(schema[key]);\n return obj;\n }, {});\n } else {\n // at this point, the schema is bad and an error will have been logged during schema validation\n return {};\n }\n}\nfunction createValuesAndSourcesTree(config, source) {\n if (isOrdinaryObject(config)) {\n return Object.keys(config).reduce((obj, key)=>{\n obj[key] = createValuesAndSourcesTree(config[key], source);\n return obj;\n }, {});\n } else {\n return {\n _value: config,\n _source: source\n };\n }\n}\nfunction getExtensionSlotConfigs(configState, tempConfigState) {\n const allConfigs = mergeConfigs(getProvidedConfigs(configState, tempConfigState));\n const slotConfigPerModule = Object.keys(allConfigs).reduce((obj, key)=>{\n if (allConfigs[key]?.extensionSlots) {\n obj[key] = allConfigs[key]?.extensionSlots;\n }\n return obj;\n }, {});\n validateAllExtensionSlotConfigs(slotConfigPerModule);\n const slotConfigs = Object.keys(slotConfigPerModule).reduce((obj, key)=>{\n obj = {\n ...obj,\n ...slotConfigPerModule[key]\n };\n return obj;\n }, {});\n return slotConfigs;\n}\nfunction validateAllExtensionSlotConfigs(slotConfigPerModule) {\n for (let [moduleName, configBySlotName] of Object.entries(slotConfigPerModule)){\n for (let [slotName, config] of Object.entries(configBySlotName)){\n validateExtensionSlotConfig(config, moduleName, slotName);\n }\n }\n}\nfunction validateExtensionSlotConfig(config, moduleName, slotName) {\n const keyPath = `${moduleName}.extensionSlots.${slotName}`;\n const errorPrefix = `Extension slot config '${keyPath}'`;\n const invalidKeys = Object.keys(config).filter((k)=>![\n 'add',\n 'remove',\n 'order',\n 'configure'\n ].includes(k));\n if (invalidKeys.length) {\n logError(keyPath, errorPrefix + `' contains invalid keys '${invalidKeys.join(\"', '\")}'`);\n }\n if (config.add) {\n if (!Array.isArray(config.add) || !config.add.every((n)=>typeof n === 'string')) {\n logError(keyPath, errorPrefix + `.add' is invalid. Must be an array of strings (extension IDs)`);\n }\n }\n if (config.remove) {\n if (!Array.isArray(config.remove) || !config.remove.every((n)=>typeof n === 'string')) {\n logError(keyPath, errorPrefix + `.remove' is invalid. Must be an array of strings (extension IDs)`);\n }\n }\n if (config.order) {\n if (!Array.isArray(config.order) || !config.order.every((n)=>typeof n === 'string')) {\n logError(keyPath, errorPrefix + `.order' is invalid. Must be an array of strings (extension IDs)`);\n }\n }\n if (config.configure) {\n if (!isOrdinaryObject(config.configure)) {\n logError(keyPath, errorPrefix + `.configure' is invalid. Must be an object with extension IDs for keys`);\n }\n }\n}\nfunction getProvidedConfigs(configState, tempConfigState) {\n return [\n ...configState.providedConfigs.map((c)=>c.config),\n tempConfigState.config\n ];\n}\n/**\n * Validates the config schema for a module. Since problems identified here are programming errors\n * that hopefully will be caught during development, this function logs errors to the console directly;\n * it's fine if we spam the user with these errors.\n */ function validateConfigSchema(moduleName, schema, keyPath = '') {\n const updateMessage = `Please verify that you are running the latest version and, if so, alert the maintainer.`;\n for (const key of Object.keys(schema).filter((k)=>!k.startsWith('_'))){\n const thisKeyPath = keyPath + (keyPath && '.') + key;\n const schemaPart = schema[key];\n if (thisKeyPath === 'Display conditions') {\n console.error(`${moduleName} declares a configuration option called \"Display conditions\"; the \"Display conditions\" option is a reserved name. ${updateMessage}`);\n }\n if (thisKeyPath === 'Translation overrides') {\n console.error(`${moduleName} declares a configuration option called \"Translation overrides\"; the \"Translation overrides\" option is a reserved name. ${updateMessage}`);\n }\n if (!isOrdinaryObject(schemaPart)) {\n console.error(`${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}`);\n continue;\n }\n if (!schemaPart.hasOwnProperty('_default')) {\n // recurse for nested config keys\n validateConfigSchema(moduleName, schemaPart, thisKeyPath);\n }\n const elements = schemaPart._elements;\n if (hasObjectSchema(elements)) {\n validateConfigSchema(moduleName, elements, thisKeyPath + '._elements');\n }\n if (schemaPart._validators) {\n for (let validator of schemaPart._validators){\n if (typeof validator !== 'function') {\n console.error(`${moduleName} has invalid validator for key '${thisKeyPath}' ${updateMessage}.` + `\\n\\nIf you're the maintainer: validators must be functions that return either ` + `undefined or an error string. Received ${validator}.`);\n }\n }\n }\n const valueType = schemaPart._type;\n if (valueType && !Object.values(Type).includes(valueType)) {\n console.error(`${moduleName} has invalid type for key '${thisKeyPath}' ${updateMessage}.` + `\\n\\nIf you're the maintainer: the allowed types are ${Object.values(Type).join(', ')}. ` + `Received '${valueType}'`);\n }\n if (Object.keys(schemaPart).every((k)=>[\n '_description',\n '_validators',\n '_elements',\n '_type'\n ].includes(k)) && !keyPath.includes('._elements')) {\n console.error(`${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}.` + `\\n\\nIf you're the maintainer: all config elements must have a default. ` + `Received ${JSON.stringify(schemaPart)}`);\n }\n if (elements && valueType && ![\n Type.Array,\n Type.Object\n ].includes(valueType)) {\n console.error(`${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}.` + `\\n\\nIf you're the maintainer: the 'elements' key only works with '_type' equal to 'Array' or 'Object'. ` + `Received ${JSON.stringify(valueType)}`);\n }\n }\n}\nfunction getConfigForModule(moduleName, configState, tempConfigState) {\n const schema = configState.schemas[moduleName];\n const inputConfig = mergeConfigsFor(moduleName, getProvidedConfigs(configState, tempConfigState));\n validateStructure(schema, inputConfig, moduleName);\n const config = setDefaults(schema, inputConfig);\n runAllValidatorsInConfigTree(schema, config, moduleName);\n delete config.extensionSlots;\n return config;\n}\nfunction getConfigForModuleImplicitSchema(moduleName, configState, tempConfigState) {\n const inputConfig = mergeConfigsFor(moduleName, getProvidedConfigs(configState, tempConfigState));\n const config = setDefaults(implicitConfigSchema, inputConfig);\n runAllValidatorsInConfigTree(implicitConfigSchema, config, moduleName);\n delete config.extensionSlots;\n return config;\n}\nfunction mergeConfigsFor(moduleName, allConfigs) {\n const allConfigsForModule = allConfigs.map(({ [moduleName]: c })=>c).filter((c)=>!!c);\n return mergeConfigs(allConfigsForModule);\n}\nfunction mergeConfigs(configs) {\n const mergeDeepAll = reduce(mergeDeepRight);\n return mergeDeepAll({}, configs);\n}\n/**\n * Recursively check the provided config tree to make sure that all\n * of the provided properties exist in the schema, and that types are\n * correct. Does not run validators yet, since those will be run on\n * the config with the defaults filled in.\n */ function validateStructure(schema, config, keyPath = '') {\n // validate each constituent element\n for (const key of Object.keys(config)){\n const value = config[key];\n const thisKeyPath = keyPath + '.' + key;\n const schemaPart = schema[key];\n if (!schema.hasOwnProperty(key)) {\n if (!(key === 'extensionSlots' && keyPath !== '')) {\n logError(thisKeyPath, `Unknown config key '${thisKeyPath}' provided. Ignoring.`);\n }\n continue;\n }\n validateBranchStructure(schemaPart, value, thisKeyPath);\n }\n}\nfunction validateBranchStructure(schemaPart, value, keyPath) {\n checkType(keyPath, schemaPart._type, value);\n if (isOrdinaryObject(value)) {\n if (schemaPart._type === Type.Object) {\n // validate as freeform object\n validateFreeformObjectStructure(schemaPart, value, keyPath);\n } else if (!(schemaPart.hasOwnProperty('_default') || schemaPart.hasOwnProperty('_type'))) {\n // validate as normal nested config\n validateStructure(schemaPart, value, keyPath);\n }\n } else {\n if (schemaPart._type === Type.Array) {\n validateArrayStructure(schemaPart, value, keyPath);\n }\n }\n}\nfunction validateFreeformObjectStructure(freeformObjectSchema, config, keyPath) {\n if (freeformObjectSchema._elements) {\n for (const key of Object.keys(config)){\n const value = config[key];\n validateBranchStructure(freeformObjectSchema._elements, value, `${keyPath}.${key}`);\n }\n }\n}\nfunction validateArrayStructure(arraySchema, value, keyPath) {\n const validatedAsArray = checkType(keyPath, Type.Array, value);\n if (!validatedAsArray) {\n return;\n }\n // if there is an array element object schema, verify that elements match it\n if (hasObjectSchema(arraySchema._elements)) {\n for(let i = 0; i < value.length; i++){\n validateBranchStructure(arraySchema._elements, value[i], `${keyPath}[${i}]`);\n }\n }\n for(let i = 0; i < value.length; i++){\n checkType(`${keyPath}[${i}]`, arraySchema._elements?._type, value[i]);\n }\n}\n/**\n * Run all the validators in the config tree. This should be run\n * on the config object after it has been filled in with all the defaults, since\n * higher-level validators may refer to default values.\n */ function runAllValidatorsInConfigTree(schema, config, keyPath = '') {\n // If `!schema`, there should have been a structural validation error printed already.\n if (schema) {\n if (config !== schema._default) {\n runValidators(keyPath, schema._validators, config);\n }\n if (isOrdinaryObject(config)) {\n for (const key of Object.keys(config)){\n const value = config[key];\n const thisKeyPath = keyPath + '.' + key;\n const schemaPart = schema[key];\n if (schema._type === Type.Object && schema._elements) {\n runAllValidatorsInConfigTree(schema._elements, value, thisKeyPath);\n } else {\n runAllValidatorsInConfigTree(schemaPart, value, thisKeyPath);\n }\n }\n } else if (Array.isArray(config) && schema._elements) {\n for(let i = 0; i < config.length; i++){\n runAllValidatorsInConfigTree(schema._elements, config[i], `${keyPath}[${i}]`);\n }\n }\n }\n}\n/**\n * Run type validation for the value, logging any errors.\n * @returns true if validation passes, false otherwise\n */ function checkType(keyPath, _type, value) {\n if (_type) {\n const validator = {\n Array: isArray,\n Boolean: isBoolean,\n ConceptUuid: isUuid,\n Number: isNumber,\n Object: isObject,\n String: isString,\n UUID: isUuid,\n PersonAttributeTypeUuid: isUuid,\n PatientIdentifierTypeUuid: isUuid\n };\n return runValidators(keyPath, [\n validator[_type]\n ], value);\n }\n return true;\n}\n/**\n * Runs validators, logging errors.\n * @returns true if all pass, false otherwise.\n */ function runValidators(keyPath, validators, value) {\n let returnValue = true;\n if (validators) {\n try {\n for (let validator of validators){\n const validatorResult = validator(value);\n if (typeof validatorResult === 'string') {\n const message = typeof value === 'object' ? `Invalid configuration for ${keyPath}: ${validatorResult}` : `Invalid configuration value ${value} for ${keyPath}: ${validatorResult}`;\n logError(keyPath, message);\n returnValue = false;\n }\n }\n } catch (e) {\n console.error(`Skipping invalid validator at \"${keyPath}\". Encountered error\\n\\t${e}`);\n }\n }\n return returnValue;\n}\n// Recursively fill in the config with values from the schema.\nconst setDefaults = (schema, inputConfig)=>{\n const config = clone(inputConfig);\n if (!schema) {\n return config;\n }\n for (const key of Object.keys(schema)){\n const configPart = config[key];\n const schemaPart = schema[key];\n // The `schemaPart &&` clause of this `if` statement will only fail\n // if the schema is very invalid. It is there to prevent the app from\n // crashing completely, though it will produce unexpected behavior.\n // If this happens, there should be legible errors in the console from\n // the schema validator.\n if (schemaPart && (schemaPart.hasOwnProperty('_type') || schemaPart.hasOwnProperty('_default'))) {\n // We assume that schemaPart defines a config value, since it has\n // a property `_type` or `_default`.\n if (!config.hasOwnProperty(key)) {\n config[key] = schemaPart['_default'];\n }\n // We also check if it is an object or array with object elements, in which case we recurse\n const elements = schemaPart._elements;\n if (configPart && hasObjectSchema(elements)) {\n if (schemaPart._type === Type.Array && Array.isArray(configPart)) {\n const configWithDefaults = configPart.map((conf)=>setDefaults(elements, conf));\n config[key] = configWithDefaults;\n } else if (schemaPart._type === Type.Object) {\n for (let objectKey of Object.keys(configPart)){\n configPart[objectKey] = setDefaults(elements, configPart[objectKey]);\n }\n }\n }\n } else if (isOrdinaryObject(schemaPart)) {\n // Since schemaPart has no property \"_type\", if it's an ordinary object\n // (unlike, importantly, the validators array), we assume it is a parent config property.\n // We recurse to config[key] and schema[key]. Default config[key] to {}.\n const selectedConfigPart = configPart ?? {};\n // There will have been a validation error already if configPart is not a plain object.\n if (isOrdinaryObject(selectedConfigPart)) {\n config[key] = setDefaults(schemaPart, selectedConfigPart);\n }\n }\n }\n return config;\n};\nfunction hasObjectSchema(elementsSchema) {\n return !!elementsSchema && Object.keys(elementsSchema).filter((e)=>![\n '_default',\n '_validators'\n ].includes(e)).length > 0;\n}\nfunction isOrdinaryObject(value) {\n return typeof value === 'object' && !Array.isArray(value) && value !== null;\n}\nfunction logError(keyPath, message) {\n const key = `${keyPath}:::${message}`;\n // technically, this should not be possible, but because of how things wind-up transpiled, this isn't impossible\n if (!displayedValidationMessages) {\n displayedValidationMessages = new Set();\n }\n if (!displayedValidationMessages.has(key)) {\n console.error(message);\n displayedValidationMessages.add(key);\n }\n}\n/**\n * Normally, configuration errors are only displayed once. This function clears the list of\n * displayed errors, so that they will be displayed again.\n *\n * @internal\n */ export function clearConfigErrors(keyPath) {\n if (keyPath) {\n displayedValidationMessages.forEach((key)=>{\n if (key.startsWith(keyPath)) {\n displayedValidationMessages.delete(key);\n }\n });\n } else {\n displayedValidationMessages.clear();\n }\n}\n/**\n * Copied over from esm-extensions. It rightly belongs to that module, but esm-config\n * cannot depend on esm-extensions.\n */ function getExtensionNameFromId(extensionId) {\n const [extensionName] = extensionId.split('#');\n return extensionName;\n}\n/**\n * The translation overrides schema is used in the implicit schema given to every module;\n * plus any additional translation namespaces (at time of writing, this is just 'core').\n */ const translationOverridesSchema = {\n 'Translation overrides': {\n _description: 'Per-language overrides for frontend translations should be keyed by language code and each language dictionary contains the translation key and the display value',\n _type: Type.Object,\n _default: {},\n _validators: [\n validator((o)=>Object.keys(o).every((k)=>/^[a-z]{2,3}(-[A-Z]{2,3})?$/.test(k)), (o)=>{\n const badKeys = Object.keys(o).filter((k)=>!/^[a-z]{2,3}(-[A-Z]{2,3})?$/.test(k));\n return `The 'Translation overrides' object should have language codes for keys. Language codes must be in the form of a two-to-three letter language code optionally followed by a hyphen and a two-to-three letter country code. The following keys do not conform: ${badKeys.join(', ')}.`;\n })\n ]\n }\n};\n/**\n * The implicitConfigSchema is implicitly included in every configuration schema\n */ const implicitConfigSchema = {\n 'Display conditions': {\n privileges: {\n _description: 'The privilege(s) the user must have to use this extension',\n _type: Type.Array,\n _default: []\n }\n },\n ...translationOverridesSchema\n};\n","/** @module @category Config */ import { createGlobalStore, getGlobalStore } from \"@openmrs/esm-state\";\nimport { shallowEqual } from \"@openmrs/esm-utils\";\nconst configInternalStoreInitialValue = {\n providedConfigs: [],\n schemas: {},\n moduleLoaded: {}\n};\n/**\n * @internal\n */ export const configInternalStore = createGlobalStore('config-internal', configInternalStoreInitialValue);\n/** @internal */ export const temporaryConfigStore = createGlobalStore('temporary-config', {\n config: getTemporaryConfig()\n});\ntemporaryConfigStore.subscribe((state)=>{\n setTemporaryConfig(state.config);\n});\nfunction setTemporaryConfig(value) {\n localStorage.setItem('openmrs:temporaryConfig', JSON.stringify(value));\n}\nfunction getTemporaryConfig() {\n try {\n return JSON.parse(localStorage.getItem('openmrs:temporaryConfig') || '{}');\n } catch (e) {\n return {};\n }\n}\n/** @internal */ export const configExtensionStore = createGlobalStore('config-store-of-extension-state', {\n mountedExtensions: []\n});\nfunction initializeConfigStore() {\n return {\n config: null,\n loaded: false,\n translationOverridesLoaded: false\n };\n}\n/** @internal */ export function getConfigStore(moduleName) {\n // We use a store for each module's config, named `config-${moduleName}`\n return getGlobalStore(`config-module-${moduleName}`, initializeConfigStore());\n}\n/** @internal */ export function getExtensionSlotsConfigStore() {\n return getGlobalStore(`config-extension-slots`, {\n slots: {}\n });\n}\n/** @internal */ export function getExtensionSlotConfig(slotName) {\n return getExtensionSlotConfigFromStore(getExtensionSlotsConfigStore().getState(), slotName);\n}\n/** @internal */ export function getExtensionSlotConfigFromStore(state, slotName) {\n const slotConfig = state.slots[slotName];\n return slotConfig ?? {\n loaded: false,\n config: {}\n };\n}\n/**\n * One store for all the extensions\n * @internal\n */ export function getExtensionsConfigStore() {\n return getGlobalStore(`config-extensions`, {\n configs: {}\n });\n}\n/** @internal */ export function getExtensionConfig(slotName, extensionId) {\n if (typeof slotName !== 'string' || typeof extensionId !== 'string' || slotName === '__proto__' || extensionId === '__proto__' || slotName === 'constructor' || extensionId === 'constructor' || slotName === 'prototype' || extensionId === 'prototype') {\n throw new Error('Attempted to call `getExtensionConfig()` with invalid argument');\n }\n const extensionConfigStore = getExtensionsConfigStore();\n const selector = (configStore)=>configStore.configs[slotName]?.[extensionId];\n return {\n getInitialState () {\n return selector(extensionConfigStore.getInitialState());\n },\n getState () {\n return selector(extensionConfigStore.getState()) ?? {\n loaded: false,\n config: null\n };\n },\n setState (partial, replace = false) {\n extensionConfigStore.setState((state)=>{\n if (!state.configs[slotName]) {\n state.configs[slotName] = {};\n }\n const newState = typeof partial === 'function' ? partial(state.configs.slotName[extensionId]) : partial;\n if (replace) {\n state.configs[slotName][extensionId] = Object.assign({}, newState);\n } else {\n state.configs[slotName][extensionId] = Object.assign({}, state.configs[slotName][extensionId], newState);\n }\n return state;\n });\n },\n subscribe (listener) {\n return extensionConfigStore.subscribe((state, prevState)=>{\n const newState = selector(state);\n const oldState = selector(prevState);\n if (!shallowEqual(newState, oldState)) {\n listener(newState, oldState);\n }\n });\n },\n destroy () {\n /* this is a no-op */ }\n };\n}\n/** @internal */ export function getExtensionConfigFromStore(state, slotName, extensionId) {\n const extensionConfig = state.configs[slotName]?.[extensionId];\n return extensionConfig ?? {\n loaded: false,\n config: null\n };\n}\n/** @internal */ export const implementerToolsConfigStore = createGlobalStore('config-implementer-tools', {\n config: {}\n});\n","export var Type = /*#__PURE__*/ function(Type) {\n Type[\"Array\"] = \"Array\";\n Type[\"Boolean\"] = \"Boolean\";\n Type[\"ConceptUuid\"] = \"ConceptUuid\";\n Type[\"Number\"] = \"Number\";\n Type[\"Object\"] = \"Object\";\n Type[\"String\"] = \"String\";\n Type[\"UUID\"] = \"UUID\";\n Type[\"PersonAttributeTypeUuid\"] = \"PersonAttributeTypeUuid\";\n Type[\"PatientIdentifierTypeUuid\"] = \"PatientIdentifierTypeUuid\";\n return Type;\n}({});\n","import { validator } from \"./validator.js\";\nexport const isArray = validator((val)=>Array.isArray(val), 'must be an array');\nexport const isBoolean = validator((val)=>typeof val === 'boolean', 'must be a boolean');\nexport const isNumber = validator((val)=>typeof val === 'number', 'must be a number');\nexport const isString = validator((val)=>typeof val === 'string', 'must be a string');\nexport const isObject = validator((val)=>typeof val === 'object' && !Array.isArray(val) && val !== null, 'must be an object (not an array or null)');\nexport const isUuid = validator((val)=>/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(val) || /^[0-9a-f]{36}$/i.test(val), 'must be a valid UUID or a 36-character hexadecimal string');\n","/** @module @category Config Validation */ /**\n * Constructs a custom validator.\n *\n * ### Example\n *\n * ```typescript\n * {\n * foo: {\n * _default: 0,\n * _validators: [\n * validator(val => val >= 0, \"Must not be negative.\")\n * ]\n * }\n * }\n * ```\n * @param validationFunction Takes the configured value as input. Returns true\n * if it is valid, false otherwise.\n * @param message A string message that explains why the value is invalid. Can\n * also be a function that takes the value as input and returns a string.\n * @returns A validator ready for use in a config schema\n */ export function validator(validationFunction, message) {\n return (value)=>{\n if (!validationFunction(value)) {\n if (typeof message === 'function') {\n return message(value);\n } else {\n return message;\n }\n }\n };\n}\n","/** @module @category Config Validation */ import { validator } from \"./validator.js\";\n/**\n * Verifies that the value is between the provided minimum and maximum\n *\n * @param min Minimum acceptable value\n * @param max Maximum acceptable value\n */ export const inRange = (min, max)=>{\n return validator((val)=>min <= val && val <= max, `must be between ${min} and ${max}`);\n};\n/**\n * Verifies that a string contains only the default URL template\n * parameters, plus any specified in `allowedTemplateParameters`.\n *\n * @param allowedTemplateParameters To be added to `openmrsBase` and `openmrsSpaBase`\n * @category Navigation\n */ export const isUrlWithTemplateParameters = (allowedTemplateParameters)=>{\n const allowedParams = allowedTemplateParameters.concat([\n 'openmrsBase',\n 'openmrsSpaBase'\n ]);\n return validator((val)=>{\n if (!val || typeof val != 'string') {\n return false;\n }\n const rx = /\\${(.*?)}/g;\n let match = rx.exec(val);\n while(match){\n if (!allowedParams.includes(match[1])) {\n return false;\n }\n match = rx.exec(val);\n }\n return true;\n }, 'Should be a URL or path. The allowed template parameters are ' + allowedParams.map((p)=>'${' + p + '}').join(', '));\n};\n/**\n * Verifies that a string contains only the default URL template parameters.\n *\n * @category Navigation\n */ export const isUrl = isUrlWithTemplateParameters([]);\n/**\n * Verifies that the value is one of the allowed options.\n * @param allowedValues The list of allowable values\n */ export const oneOf = (allowedValues)=>{\n return validator((val)=>allowedValues.includes(val), `Must be one of the following: '${allowedValues.join(\"', '\")}'.`);\n};\nexport const validators = {\n inRange,\n isUrl,\n isUrlWithTemplateParameters,\n oneOf\n};\n","/** @module @category API */ import { openmrsFetch, restBaseUrl } from \"@openmrs/esm-api\";\nexport const attachmentUrl = `${restBaseUrl}/attachment`;\nexport function getAttachmentByUuid(attachmentUuid, abortController) {\n return openmrsFetch(`${attachmentUrl}/${attachmentUuid}`, {\n signal: abortController.signal\n });\n}\nexport function getAttachments(patientUuid, includeEncounterless, abortController) {\n return openmrsFetch(`${attachmentUrl}?patient=${patientUuid}&includeEncounterless=${includeEncounterless}`, {\n signal: abortController.signal\n });\n}\nexport async function createAttachment(patientUuid, fileToUpload) {\n const formData = new FormData();\n formData.append('fileCaption', fileToUpload.fileDescription);\n formData.append('patient', patientUuid);\n if (fileToUpload.file) {\n formData.append('file', fileToUpload.file, fileToUpload.fileName);\n } else {\n formData.append('file', new File([\n ''\n ], fileToUpload.fileName), fileToUpload.fileName);\n formData.append('base64Content', fileToUpload.base64Content);\n }\n return openmrsFetch(`${attachmentUrl}`, {\n method: 'POST',\n body: formData\n });\n}\nexport function deleteAttachmentPermanently(attachmentUuid, abortController) {\n return openmrsFetch(`${attachmentUrl}/${attachmentUuid}`, {\n method: 'DELETE',\n signal: abortController.signal\n });\n}\n","/** @module @category API */ import { openmrsFetch, restBaseUrl } from \"@openmrs/esm-api\";\nimport { getGlobalStore } from \"@openmrs/esm-state\";\nimport { BehaviorSubject } from \"rxjs\";\nexport var VisitMode = /*#__PURE__*/ function(VisitMode) {\n VisitMode[\"NEWVISIT\"] = \"startVisit\";\n VisitMode[\"EDITVISIT\"] = \"editVisit\";\n VisitMode[\"LOADING\"] = \"loadingVisit\";\n return VisitMode;\n}({});\nexport var VisitStatus = /*#__PURE__*/ function(VisitStatus) {\n VisitStatus[\"NOTSTARTED\"] = \"notStarted\";\n VisitStatus[\"ONGOING\"] = \"ongoing\";\n return VisitStatus;\n}({});\nexport const defaultVisitCustomRepresentation = 'custom:(uuid,display,voided,indication,startDatetime,stopDatetime,' + 'encounters:(uuid,display,encounterDatetime,' + 'form:(uuid,name),location:ref,' + 'encounterType:ref,' + 'encounterProviders:(uuid,display,' + 'provider:(uuid,display))),' + 'patient:(uuid,display),' + 'visitType:(uuid,name,display),' + 'attributes:(uuid,display,attributeType:(name,datatypeClassname,uuid),value),' + 'location:(uuid,name,display))';\nconst initialState = getVisitSessionStorage() || {\n patientUuid: null,\n manuallySetVisitUuid: null,\n mutateVisitCallbacks: {}\n};\nexport function getVisitStore() {\n return getGlobalStore('visit', initialState);\n}\nexport function setCurrentVisit(patientUuid, visitUuid) {\n getVisitStore().setState({\n patientUuid,\n manuallySetVisitUuid: visitUuid\n });\n}\ngetVisitStore().subscribe((state)=>{\n setVisitSessionStorage(state);\n});\nfunction setVisitSessionStorage(value) {\n sessionStorage.setItem('openmrs:visitStoreState', JSON.stringify(value));\n}\nfunction getVisitSessionStorage() {\n try {\n return JSON.parse(sessionStorage.getItem('openmrs:visitStoreState') || 'null');\n } catch (e) {\n return null;\n }\n}\nexport function saveVisit(payload, abortController) {\n return openmrsFetch(`${restBaseUrl}/visit`, {\n signal: abortController.signal,\n method: 'POST',\n headers: {\n 'Content-type': 'application/json'\n },\n body: payload\n });\n}\nexport function updateVisit(uuid, payload, abortController) {\n return openmrsFetch(`${restBaseUrl}/visit/${uuid}`, {\n signal: abortController.signal,\n method: 'POST',\n headers: {\n 'Content-type': 'application/json'\n },\n body: payload\n });\n}\n/**\n * @deprecated Use the `useVisit` hook instead.\n */ export function getVisitsForPatient(patientUuid, abortController, v) {\n const custom = v ?? defaultVisitCustomRepresentation;\n return openmrsFetch(`${restBaseUrl}/visit?patient=${patientUuid}&v=${custom}`, {\n signal: abortController.signal,\n method: 'GET',\n headers: {\n 'Content-type': 'application/json'\n }\n });\n}\n/** @deprecated */ export const getStartedVisit = new BehaviorSubject(null);\n","/** @module @category Error Handling */ import { dispatchToastShown } from \"@openmrs/esm-globals\";\nwindow.onerror = function(error) {\n console.error('Unexpected error: ', error);\n dispatchToastShown({\n description: error ?? 'Oops! An unexpected error occurred.',\n kind: 'error',\n title: 'Error'\n });\n return false;\n};\nwindow.onunhandledrejection = function(event) {\n console.error('Unhandled rejection: ', event.reason);\n dispatchToastShown({\n description: event.reason ?? 'Oops! An unhandled promise rejection occurred.',\n kind: 'error',\n title: 'Error'\n });\n};\nexport function reportError(err) {\n const error = ensureErrorObject(err);\n setTimeout(()=>{\n throw error;\n });\n}\nexport function createErrorHandler() {\n const outgoingErr = Error();\n return (incomingErr)=>{\n const finalErr = ensureErrorObject(incomingErr);\n finalErr.stack += `\\nAsync stacktrace:\\n${outgoingErr.stack}`;\n reportError(incomingErr);\n };\n}\nfunction ensureErrorObject(thing) {\n let message;\n if (thing instanceof Error) {\n return thing;\n } else if (thing === null) {\n return Error(`'null' was thrown as an error`);\n } else if (typeof thing === 'object') {\n try {\n message = `Object thrown as error: ${JSON.stringify(thing)}`;\n } catch (e) {\n message = `Object thrown as error with the following properties: ${Object.keys(thing)}`;\n }\n return Error(message);\n } else if (thing === undefined) {\n return Error(`'undefined' was thrown as an error`);\n } else {\n return Error(thing.toString());\n }\n}\n","/**\n * @implements {IHooks}\n */\nclass Hooks {\n\t/**\n\t * @callback HookCallback\n\t * @this {*|Jsep} this\n\t * @param {Jsep} env\n\t * @returns: void\n\t */\n\t/**\n\t * Adds the given callback to the list of callbacks for the given hook.\n\t *\n\t * The callback will be invoked when the hook it is registered for is run.\n\t *\n\t * One callback function can be registered to multiple hooks and the same hook multiple times.\n\t *\n\t * @param {string|object} name The name of the hook, or an object of callbacks keyed by name\n\t * @param {HookCallback|boolean} callback The callback function which is given environment variables.\n\t * @param {?boolean} [first=false] Will add the hook to the top of the list (defaults to the bottom)\n\t * @public\n\t */\n\tadd(name, callback, first) {\n\t\tif (typeof arguments[0] != 'string') {\n\t\t\t// Multiple hook callbacks, keyed by name\n\t\t\tfor (let name in arguments[0]) {\n\t\t\t\tthis.add(name, arguments[0][name], arguments[1]);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t(Array.isArray(name) ? name : [name]).forEach(function (name) {\n\t\t\t\tthis[name] = this[name] || [];\n\n\t\t\t\tif (callback) {\n\t\t\t\t\tthis[name][first ? 'unshift' : 'push'](callback);\n\t\t\t\t}\n\t\t\t}, this);\n\t\t}\n\t}\n\n\t/**\n\t * Runs a hook invoking all registered callbacks with the given environment variables.\n\t *\n\t * Callbacks will be invoked synchronously and in the order in which they were registered.\n\t *\n\t * @param {string} name The name of the hook.\n\t * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n\t * @public\n\t */\n\trun(name, env) {\n\t\tthis[name] = this[name] || [];\n\t\tthis[name].forEach(function (callback) {\n\t\t\tcallback.call(env && env.context ? env.context : env, env);\n\t\t});\n\t}\n}\n\n/**\n * @implements {IPlugins}\n */\nclass Plugins {\n\tconstructor(jsep) {\n\t\tthis.jsep = jsep;\n\t\tthis.registered = {};\n\t}\n\n\t/**\n\t * @callback PluginSetup\n\t * @this {Jsep} jsep\n\t * @returns: void\n\t */\n\t/**\n\t * Adds the given plugin(s) to the registry\n\t *\n\t * @param {object} plugins\n\t * @param {string} plugins.name The name of the plugin\n\t * @param {PluginSetup} plugins.init The init function\n\t * @public\n\t */\n\tregister(...plugins) {\n\t\tplugins.forEach((plugin) => {\n\t\t\tif (typeof plugin !== 'object' || !plugin.name || !plugin.init) {\n\t\t\t\tthrow new Error('Invalid JSEP plugin format');\n\t\t\t}\n\t\t\tif (this.registered[plugin.name]) {\n\t\t\t\t// already registered. Ignore.\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tplugin.init(this.jsep);\n\t\t\tthis.registered[plugin.name] = plugin;\n\t\t});\n\t}\n}\n\n// JavaScript Expression Parser (JSEP) 1.4.0\n\nclass Jsep {\n\t/**\n\t * @returns {string}\n\t */\n\tstatic get version() {\n\t\t// To be filled in by the template\n\t\treturn '1.4.0';\n\t}\n\n\t/**\n\t * @returns {string}\n\t */\n\tstatic toString() {\n\t\treturn 'JavaScript Expression Parser (JSEP) v' + Jsep.version;\n\t};\n\n\t// ==================== CONFIG ================================\n\t/**\n\t * @method addUnaryOp\n\t * @param {string} op_name The name of the unary op to add\n\t * @returns {Jsep}\n\t */\n\tstatic addUnaryOp(op_name) {\n\t\tJsep.max_unop_len = Math.max(op_name.length, Jsep.max_unop_len);\n\t\tJsep.unary_ops[op_name] = 1;\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method jsep.addBinaryOp\n\t * @param {string} op_name The name of the binary op to add\n\t * @param {number} precedence The precedence of the binary op (can be a float). Higher number = higher precedence\n\t * @param {boolean} [isRightAssociative=false] whether operator is right-associative\n\t * @returns {Jsep}\n\t */\n\tstatic addBinaryOp(op_name, precedence, isRightAssociative) {\n\t\tJsep.max_binop_len = Math.max(op_name.length, Jsep.max_binop_len);\n\t\tJsep.binary_ops[op_name] = precedence;\n\t\tif (isRightAssociative) {\n\t\t\tJsep.right_associative.add(op_name);\n\t\t}\n\t\telse {\n\t\t\tJsep.right_associative.delete(op_name);\n\t\t}\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method addIdentifierChar\n\t * @param {string} char The additional character to treat as a valid part of an identifier\n\t * @returns {Jsep}\n\t */\n\tstatic addIdentifierChar(char) {\n\t\tJsep.additional_identifier_chars.add(char);\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method addLiteral\n\t * @param {string} literal_name The name of the literal to add\n\t * @param {*} literal_value The value of the literal\n\t * @returns {Jsep}\n\t */\n\tstatic addLiteral(literal_name, literal_value) {\n\t\tJsep.literals[literal_name] = literal_value;\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method removeUnaryOp\n\t * @param {string} op_name The name of the unary op to remove\n\t * @returns {Jsep}\n\t */\n\tstatic removeUnaryOp(op_name) {\n\t\tdelete Jsep.unary_ops[op_name];\n\t\tif (op_name.length === Jsep.max_unop_len) {\n\t\t\tJsep.max_unop_len = Jsep.getMaxKeyLen(Jsep.unary_ops);\n\t\t}\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method removeAllUnaryOps\n\t * @returns {Jsep}\n\t */\n\tstatic removeAllUnaryOps() {\n\t\tJsep.unary_ops = {};\n\t\tJsep.max_unop_len = 0;\n\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method removeIdentifierChar\n\t * @param {string} char The additional character to stop treating as a valid part of an identifier\n\t * @returns {Jsep}\n\t */\n\tstatic removeIdentifierChar(char) {\n\t\tJsep.additional_identifier_chars.delete(char);\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method removeBinaryOp\n\t * @param {string} op_name The name of the binary op to remove\n\t * @returns {Jsep}\n\t */\n\tstatic removeBinaryOp(op_name) {\n\t\tdelete Jsep.binary_ops[op_name];\n\n\t\tif (op_name.length === Jsep.max_binop_len) {\n\t\t\tJsep.max_binop_len = Jsep.getMaxKeyLen(Jsep.binary_ops);\n\t\t}\n\t\tJsep.right_associative.delete(op_name);\n\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method removeAllBinaryOps\n\t * @returns {Jsep}\n\t */\n\tstatic removeAllBinaryOps() {\n\t\tJsep.binary_ops = {};\n\t\tJsep.max_binop_len = 0;\n\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method removeLiteral\n\t * @param {string} literal_name The name of the literal to remove\n\t * @returns {Jsep}\n\t */\n\tstatic removeLiteral(literal_name) {\n\t\tdelete Jsep.literals[literal_name];\n\t\treturn Jsep;\n\t}\n\n\t/**\n\t * @method removeAllLiterals\n\t * @returns {Jsep}\n\t */\n\tstatic removeAllLiterals() {\n\t\tJsep.literals = {};\n\n\t\treturn Jsep;\n\t}\n\t// ==================== END CONFIG ============================\n\n\n\t/**\n\t * @returns {string}\n\t */\n\tget char() {\n\t\treturn this.expr.charAt(this.index);\n\t}\n\n\t/**\n\t * @returns {number}\n\t */\n\tget code() {\n\t\treturn this.expr.charCodeAt(this.index);\n\t};\n\n\n\t/**\n\t * @param {string} expr a string with the passed in express\n\t * @returns Jsep\n\t */\n\tconstructor(expr) {\n\t\t// `index` stores the character number we are currently at\n\t\t// All of the gobbles below will modify `index` as we move along\n\t\tthis.expr = expr;\n\t\tthis.index = 0;\n\t}\n\n\t/**\n\t * static top-level parser\n\t * @returns {jsep.Expression}\n\t */\n\tstatic parse(expr) {\n\t\treturn (new Jsep(expr)).parse();\n\t}\n\n\t/**\n\t * Get the longest key length of any object\n\t * @param {object} obj\n\t * @returns {number}\n\t */\n\tstatic getMaxKeyLen(obj) {\n\t\treturn Math.max(0, ...Object.keys(obj).map(k => k.length));\n\t}\n\n\t/**\n\t * `ch` is a character code in the next three functions\n\t * @param {number} ch\n\t * @returns {boolean}\n\t */\n\tstatic isDecimalDigit(ch) {\n\t\treturn (ch >= 48 && ch <= 57); // 0...9\n\t}\n\n\t/**\n\t * Returns the precedence of a binary operator or `0` if it isn't a binary operator. Can be float.\n\t * @param {string} op_val\n\t * @returns {number}\n\t */\n\tstatic binaryPrecedence(op_val) {\n\t\treturn Jsep.binary_ops[op_val] || 0;\n\t}\n\n\t/**\n\t * Looks for start of identifier\n\t * @param {number} ch\n\t * @returns {boolean}\n\t */\n\tstatic isIdentifierStart(ch) {\n\t\treturn (ch >= 65 && ch <= 90) || // A...Z\n\t\t\t(ch >= 97 && ch <= 122) || // a...z\n\t\t\t(ch >= 128 && !Jsep.binary_ops[String.fromCharCode(ch)]) || // any non-ASCII that is not an operator\n\t\t\t(Jsep.additional_identifier_chars.has(String.fromCharCode(ch))); // additional characters\n\t}\n\n\t/**\n\t * @param {number} ch\n\t * @returns {boolean}\n\t */\n\tstatic isIdentifierPart(ch) {\n\t\treturn Jsep.isIdentifierStart(ch) || Jsep.isDecimalDigit(ch);\n\t}\n\n\t/**\n\t * throw error at index of the expression\n\t * @param {string} message\n\t * @throws\n\t */\n\tthrowError(message) {\n\t\tconst error = new Error(message + ' at character ' + this.index);\n\t\terror.index = this.index;\n\t\terror.description = message;\n\t\tthrow error;\n\t}\n\n\t/**\n\t * Run a given hook\n\t * @param {string} name\n\t * @param {jsep.Expression|false} [node]\n\t * @returns {?jsep.Expression}\n\t */\n\trunHook(name, node) {\n\t\tif (Jsep.hooks[name]) {\n\t\t\tconst env = { context: this, node };\n\t\t\tJsep.hooks.run(name, env);\n\t\t\treturn env.node;\n\t\t}\n\t\treturn node;\n\t}\n\n\t/**\n\t * Runs a given hook until one returns a node\n\t * @param {string} name\n\t * @returns {?jsep.Expression}\n\t */\n\tsearchHook(name) {\n\t\tif (Jsep.hooks[name]) {\n\t\t\tconst env = { context: this };\n\t\t\tJsep.hooks[name].find(function (callback) {\n\t\t\t\tcallback.call(env.context, env);\n\t\t\t\treturn env.node;\n\t\t\t});\n\t\t\treturn env.node;\n\t\t}\n\t}\n\n\t/**\n\t * Push `index` up to the next non-space character\n\t */\n\tgobbleSpaces() {\n\t\tlet ch = this.code;\n\t\t// Whitespace\n\t\twhile (ch === Jsep.SPACE_CODE\n\t\t|| ch === Jsep.TAB_CODE\n\t\t|| ch === Jsep.LF_CODE\n\t\t|| ch === Jsep.CR_CODE) {\n\t\t\tch = this.expr.charCodeAt(++this.index);\n\t\t}\n\t\tthis.runHook('gobble-spaces');\n\t}\n\n\t/**\n\t * Top-level method to parse all expressions and returns compound or single node\n\t * @returns {jsep.Expression}\n\t */\n\tparse() {\n\t\tthis.runHook('before-all');\n\t\tconst nodes = this.gobbleExpressions();\n\n\t\t// If there's only one expression just try returning the expression\n\t\tconst node = nodes.length === 1\n\t\t ? nodes[0]\n\t\t\t: {\n\t\t\t\ttype: Jsep.COMPOUND,\n\t\t\t\tbody: nodes\n\t\t\t};\n\t\treturn this.runHook('after-all', node);\n\t}\n\n\t/**\n\t * top-level parser (but can be reused within as well)\n\t * @param {number} [untilICode]\n\t * @returns {jsep.Expression[]}\n\t */\n\tgobbleExpressions(untilICode) {\n\t\tlet nodes = [], ch_i, node;\n\n\t\twhile (this.index < this.expr.length) {\n\t\t\tch_i = this.code;\n\n\t\t\t// Expressions can be separated by semicolons, commas, or just inferred without any\n\t\t\t// separators\n\t\t\tif (ch_i === Jsep.SEMCOL_CODE || ch_i === Jsep.COMMA_CODE) {\n\t\t\t\tthis.index++; // ignore separators\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Try to gobble each expression individually\n\t\t\t\tif (node = this.gobbleExpression()) {\n\t\t\t\t\tnodes.push(node);\n\t\t\t\t\t// If we weren't able to find a binary expression and are out of room, then\n\t\t\t\t\t// the expression passed in probably has too much\n\t\t\t\t}\n\t\t\t\telse if (this.index < this.expr.length) {\n\t\t\t\t\tif (ch_i === untilICode) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tthis.throwError('Unexpected \"' + this.char + '\"');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn nodes;\n\t}\n\n\t/**\n\t * The main parsing function.\n\t * @returns {?jsep.Expression}\n\t */\n\tgobbleExpression() {\n\t\tconst node = this.searchHook('gobble-expression') || this.gobbleBinaryExpression();\n\t\tthis.gobbleSpaces();\n\n\t\treturn this.runHook('after-expression', node);\n\t}\n\n\t/**\n\t * Search for the operation portion of the string (e.g. `+`, `===`)\n\t * Start by taking the longest possible binary operations (3 characters: `===`, `!==`, `>>>`)\n\t * and move down from 3 to 2 to 1 character until a matching binary operation is found\n\t * then, return that binary operation\n\t * @returns {string|boolean}\n\t */\n\tgobbleBinaryOp() {\n\t\tthis.gobbleSpaces();\n\t\tlet to_check = this.expr.substr(this.index, Jsep.max_binop_len);\n\t\tlet tc_len = to_check.length;\n\n\t\twhile (tc_len > 0) {\n\t\t\t// Don't accept a binary op when it is an identifier.\n\t\t\t// Binary ops that start with a identifier-valid character must be followed\n\t\t\t// by a non identifier-part valid character\n\t\t\tif (Jsep.binary_ops.hasOwnProperty(to_check) && (\n\t\t\t\t!Jsep.isIdentifierStart(this.code) ||\n\t\t\t\t(this.index + to_check.length < this.expr.length && !Jsep.isIdentifierPart(this.expr.charCodeAt(this.index + to_check.length)))\n\t\t\t)) {\n\t\t\t\tthis.index += tc_len;\n\t\t\t\treturn to_check;\n\t\t\t}\n\t\t\tto_check = to_check.substr(0, --tc_len);\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * This function is responsible for gobbling an individual expression,\n\t * e.g. `1`, `1+2`, `a+(b*2)-Math.sqrt(2)`\n\t * @returns {?jsep.BinaryExpression}\n\t */\n\tgobbleBinaryExpression() {\n\t\tlet node, biop, prec, stack, biop_info, left, right, i, cur_biop;\n\n\t\t// First, try to get the leftmost thing\n\t\t// Then, check to see if there's a binary operator operating on that leftmost thing\n\t\t// Don't gobbleBinaryOp without a left-hand-side\n\t\tleft = this.gobbleToken();\n\t\tif (!left) {\n\t\t\treturn left;\n\t\t}\n\t\tbiop = this.gobbleBinaryOp();\n\n\t\t// If there wasn't a binary operator, just return the leftmost node\n\t\tif (!biop) {\n\t\t\treturn left;\n\t\t}\n\n\t\t// Otherwise, we need to start a stack to properly place the binary operations in their\n\t\t// precedence structure\n\t\tbiop_info = { value: biop, prec: Jsep.binaryPrecedence(biop), right_a: Jsep.right_associative.has(biop) };\n\n\t\tright = this.gobbleToken();\n\n\t\tif (!right) {\n\t\t\tthis.throwError(\"Expected expression after \" + biop);\n\t\t}\n\n\t\tstack = [left, biop_info, right];\n\n\t\t// Properly deal with precedence using [recursive descent](http://www.engr.mun.ca/~theo/Misc/exp_parsing.htm)\n\t\twhile ((biop = this.gobbleBinaryOp())) {\n\t\t\tprec = Jsep.binaryPrecedence(biop);\n\n\t\t\tif (prec === 0) {\n\t\t\t\tthis.index -= biop.length;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tbiop_info = { value: biop, prec, right_a: Jsep.right_associative.has(biop) };\n\n\t\t\tcur_biop = biop;\n\n\t\t\t// Reduce: make a binary expression from the three topmost entries.\n\t\t\tconst comparePrev = prev => biop_info.right_a && prev.right_a\n\t\t\t\t? prec > prev.prec\n\t\t\t\t: prec <= prev.prec;\n\t\t\twhile ((stack.length > 2) && comparePrev(stack[stack.length - 2])) {\n\t\t\t\tright = stack.pop();\n\t\t\t\tbiop = stack.pop().value;\n\t\t\t\tleft = stack.pop();\n\t\t\t\tnode = {\n\t\t\t\t\ttype: Jsep.BINARY_EXP,\n\t\t\t\t\toperator: biop,\n\t\t\t\t\tleft,\n\t\t\t\t\tright\n\t\t\t\t};\n\t\t\t\tstack.push(node);\n\t\t\t}\n\n\t\t\tnode = this.gobbleToken();\n\n\t\t\tif (!node) {\n\t\t\t\tthis.throwError(\"Expected expression after \" + cur_biop);\n\t\t\t}\n\n\t\t\tstack.push(biop_info, node);\n\t\t}\n\n\t\ti = stack.length - 1;\n\t\tnode = stack[i];\n\n\t\twhile (i > 1) {\n\t\t\tnode = {\n\t\t\t\ttype: Jsep.BINARY_EXP,\n\t\t\t\toperator: stack[i - 1].value,\n\t\t\t\tleft: stack[i - 2],\n\t\t\t\tright: node\n\t\t\t};\n\t\t\ti -= 2;\n\t\t}\n\n\t\treturn node;\n\t}\n\n\t/**\n\t * An individual part of a binary expression:\n\t * e.g. `foo.bar(baz)`, `1`, `\"abc\"`, `(a % 2)` (because it's in parenthesis)\n\t * @returns {boolean|jsep.Expression}\n\t */\n\tgobbleToken() {\n\t\tlet ch, to_check, tc_len, node;\n\n\t\tthis.gobbleSpaces();\n\t\tnode = this.searchHook('gobble-token');\n\t\tif (node) {\n\t\t\treturn this.runHook('after-token', node);\n\t\t}\n\n\t\tch = this.code;\n\n\t\tif (Jsep.isDecimalDigit(ch) || ch === Jsep.PERIOD_CODE) {\n\t\t\t// Char code 46 is a dot `.` which can start off a numeric literal\n\t\t\treturn this.gobbleNumericLiteral();\n\t\t}\n\n\t\tif (ch === Jsep.SQUOTE_CODE || ch === Jsep.DQUOTE_CODE) {\n\t\t\t// Single or double quotes\n\t\t\tnode = this.gobbleStringLiteral();\n\t\t}\n\t\telse if (ch === Jsep.OBRACK_CODE) {\n\t\t\tnode = this.gobbleArray();\n\t\t}\n\t\telse {\n\t\t\tto_check = this.expr.substr(this.index, Jsep.max_unop_len);\n\t\t\ttc_len = to_check.length;\n\n\t\t\twhile (tc_len > 0) {\n\t\t\t\t// Don't accept an unary op when it is an identifier.\n\t\t\t\t// Unary ops that start with a identifier-valid character must be followed\n\t\t\t\t// by a non identifier-part valid character\n\t\t\t\tif (Jsep.unary_ops.hasOwnProperty(to_check) && (\n\t\t\t\t\t!Jsep.isIdentifierStart(this.code) ||\n\t\t\t\t\t(this.index + to_check.length < this.expr.length && !Jsep.isIdentifierPart(this.expr.charCodeAt(this.index + to_check.length)))\n\t\t\t\t)) {\n\t\t\t\t\tthis.index += tc_len;\n\t\t\t\t\tconst argument = this.gobbleToken();\n\t\t\t\t\tif (!argument) {\n\t\t\t\t\t\tthis.throwError('missing unaryOp argument');\n\t\t\t\t\t}\n\t\t\t\t\treturn this.runHook('after-token', {\n\t\t\t\t\t\ttype: Jsep.UNARY_EXP,\n\t\t\t\t\t\toperator: to_check,\n\t\t\t\t\t\targument,\n\t\t\t\t\t\tprefix: true\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tto_check = to_check.substr(0, --tc_len);\n\t\t\t}\n\n\t\t\tif (Jsep.isIdentifierStart(ch)) {\n\t\t\t\tnode = this.gobbleIdentifier();\n\t\t\t\tif (Jsep.literals.hasOwnProperty(node.name)) {\n\t\t\t\t\tnode = {\n\t\t\t\t\t\ttype: Jsep.LITERAL,\n\t\t\t\t\t\tvalue: Jsep.literals[node.name],\n\t\t\t\t\t\traw: node.name,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse if (node.name === Jsep.this_str) {\n\t\t\t\t\tnode = { type: Jsep.THIS_EXP };\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (ch === Jsep.OPAREN_CODE) { // open parenthesis\n\t\t\t\tnode = this.gobbleGroup();\n\t\t\t}\n\t\t}\n\n\t\tif (!node) {\n\t\t\treturn this.runHook('after-token', false);\n\t\t}\n\n\t\tnode = this.gobbleTokenProperty(node);\n\t\treturn this.runHook('after-token', node);\n\t}\n\n\t/**\n\t * Gobble properties of of identifiers/strings/arrays/groups.\n\t * e.g. `foo`, `bar.baz`, `foo['bar'].baz`\n\t * It also gobbles function calls:\n\t * e.g. `Math.acos(obj.angle)`\n\t * @param {jsep.Expression} node\n\t * @returns {jsep.Expression}\n\t */\n\tgobbleTokenProperty(node) {\n\t\tthis.gobbleSpaces();\n\n\t\tlet ch = this.code;\n\t\twhile (ch === Jsep.PERIOD_CODE || ch === Jsep.OBRACK_CODE || ch === Jsep.OPAREN_CODE || ch === Jsep.QUMARK_CODE) {\n\t\t\tlet optional;\n\t\t\tif (ch === Jsep.QUMARK_CODE) {\n\t\t\t\tif (this.expr.charCodeAt(this.index + 1) !== Jsep.PERIOD_CODE) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toptional = true;\n\t\t\t\tthis.index += 2;\n\t\t\t\tthis.gobbleSpaces();\n\t\t\t\tch = this.code;\n\t\t\t}\n\t\t\tthis.index++;\n\n\t\t\tif (ch === Jsep.OBRACK_CODE) {\n\t\t\t\tnode = {\n\t\t\t\t\ttype: Jsep.MEMBER_EXP,\n\t\t\t\t\tcomputed: true,\n\t\t\t\t\tobject: node,\n\t\t\t\t\tproperty: this.gobbleExpression()\n\t\t\t\t};\n\t\t\t\tif (!node.property) {\n\t\t\t\t\tthis.throwError('Unexpected \"' + this.char + '\"');\n\t\t\t\t}\n\t\t\t\tthis.gobbleSpaces();\n\t\t\t\tch = this.code;\n\t\t\t\tif (ch !== Jsep.CBRACK_CODE) {\n\t\t\t\t\tthis.throwError('Unclosed [');\n\t\t\t\t}\n\t\t\t\tthis.index++;\n\t\t\t}\n\t\t\telse if (ch === Jsep.OPAREN_CODE) {\n\t\t\t\t// A function call is being made; gobble all the arguments\n\t\t\t\tnode = {\n\t\t\t\t\ttype: Jsep.CALL_EXP,\n\t\t\t\t\t'arguments': this.gobbleArguments(Jsep.CPAREN_CODE),\n\t\t\t\t\tcallee: node\n\t\t\t\t};\n\t\t\t}\n\t\t\telse if (ch === Jsep.PERIOD_CODE || optional) {\n\t\t\t\tif (optional) {\n\t\t\t\t\tthis.index--;\n\t\t\t\t}\n\t\t\t\tthis.gobbleSpaces();\n\t\t\t\tnode = {\n\t\t\t\t\ttype: Jsep.MEMBER_EXP,\n\t\t\t\t\tcomputed: false,\n\t\t\t\t\tobject: node,\n\t\t\t\t\tproperty: this.gobbleIdentifier(),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (optional) {\n\t\t\t\tnode.optional = true;\n\t\t\t} // else leave undefined for compatibility with esprima\n\n\t\t\tthis.gobbleSpaces();\n\t\t\tch = this.code;\n\t\t}\n\n\t\treturn node;\n\t}\n\n\t/**\n\t * Parse simple numeric literals: `12`, `3.4`, `.5`. Do this by using a string to\n\t * keep track of everything in the numeric literal and then calling `parseFloat` on that string\n\t * @returns {jsep.Literal}\n\t */\n\tgobbleNumericLiteral() {\n\t\tlet number = '', ch, chCode;\n\n\t\twhile (Jsep.isDecimalDigit(this.code)) {\n\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t}\n\n\t\tif (this.code === Jsep.PERIOD_CODE) { // can start with a decimal marker\n\t\t\tnumber += this.expr.charAt(this.index++);\n\n\t\t\twhile (Jsep.isDecimalDigit(this.code)) {\n\t\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t\t}\n\t\t}\n\n\t\tch = this.char;\n\n\t\tif (ch === 'e' || ch === 'E') { // exponent marker\n\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t\tch = this.char;\n\n\t\t\tif (ch === '+' || ch === '-') { // exponent sign\n\t\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t\t}\n\n\t\t\twhile (Jsep.isDecimalDigit(this.code)) { // exponent itself\n\t\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t\t}\n\n\t\t\tif (!Jsep.isDecimalDigit(this.expr.charCodeAt(this.index - 1)) ) {\n\t\t\t\tthis.throwError('Expected exponent (' + number + this.char + ')');\n\t\t\t}\n\t\t}\n\n\t\tchCode = this.code;\n\n\t\t// Check to make sure this isn't a variable name that start with a number (123abc)\n\t\tif (Jsep.isIdentifierStart(chCode)) {\n\t\t\tthis.throwError('Variable names cannot start with a number (' +\n\t\t\t\tnumber + this.char + ')');\n\t\t}\n\t\telse if (chCode === Jsep.PERIOD_CODE || (number.length === 1 && number.charCodeAt(0) === Jsep.PERIOD_CODE)) {\n\t\t\tthis.throwError('Unexpected period');\n\t\t}\n\n\t\treturn {\n\t\t\ttype: Jsep.LITERAL,\n\t\t\tvalue: parseFloat(number),\n\t\t\traw: number\n\t\t};\n\t}\n\n\t/**\n\t * Parses a string literal, staring with single or double quotes with basic support for escape codes\n\t * e.g. `\"hello world\"`, `'this is\\nJSEP'`\n\t * @returns {jsep.Literal}\n\t */\n\tgobbleStringLiteral() {\n\t\tlet str = '';\n\t\tconst startIndex = this.index;\n\t\tconst quote = this.expr.charAt(this.index++);\n\t\tlet closed = false;\n\n\t\twhile (this.index < this.expr.length) {\n\t\t\tlet ch = this.expr.charAt(this.index++);\n\n\t\t\tif (ch === quote) {\n\t\t\t\tclosed = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse if (ch === '\\\\') {\n\t\t\t\t// Check for all of the common escape codes\n\t\t\t\tch = this.expr.charAt(this.index++);\n\n\t\t\t\tswitch (ch) {\n\t\t\t\t\tcase 'n': str += '\\n'; break;\n\t\t\t\t\tcase 'r': str += '\\r'; break;\n\t\t\t\t\tcase 't': str += '\\t'; break;\n\t\t\t\t\tcase 'b': str += '\\b'; break;\n\t\t\t\t\tcase 'f': str += '\\f'; break;\n\t\t\t\t\tcase 'v': str += '\\x0B'; break;\n\t\t\t\t\tdefault : str += ch;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tstr += ch;\n\t\t\t}\n\t\t}\n\n\t\tif (!closed) {\n\t\t\tthis.throwError('Unclosed quote after \"' + str + '\"');\n\t\t}\n\n\t\treturn {\n\t\t\ttype: Jsep.LITERAL,\n\t\t\tvalue: str,\n\t\t\traw: this.expr.substring(startIndex, this.index),\n\t\t};\n\t}\n\n\t/**\n\t * Gobbles only identifiers\n\t * e.g.: `foo`, `_value`, `$x1`\n\t * Also, this function checks if that identifier is a literal:\n\t * (e.g. `true`, `false`, `null`) or `this`\n\t * @returns {jsep.Identifier}\n\t */\n\tgobbleIdentifier() {\n\t\tlet ch = this.code, start = this.index;\n\n\t\tif (Jsep.isIdentifierStart(ch)) {\n\t\t\tthis.index++;\n\t\t}\n\t\telse {\n\t\t\tthis.throwError('Unexpected ' + this.char);\n\t\t}\n\n\t\twhile (this.index < this.expr.length) {\n\t\t\tch = this.code;\n\n\t\t\tif (Jsep.isIdentifierPart(ch)) {\n\t\t\t\tthis.index++;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\ttype: Jsep.IDENTIFIER,\n\t\t\tname: this.expr.slice(start, this.index),\n\t\t};\n\t}\n\n\t/**\n\t * Gobbles a list of arguments within the context of a function call\n\t * or array literal. This function also assumes that the opening character\n\t * `(` or `[` has already been gobbled, and gobbles expressions and commas\n\t * until the terminator character `)` or `]` is encountered.\n\t * e.g. `foo(bar, baz)`, `my_func()`, or `[bar, baz]`\n\t * @param {number} termination\n\t * @returns {jsep.Expression[]}\n\t */\n\tgobbleArguments(termination) {\n\t\tconst args = [];\n\t\tlet closed = false;\n\t\tlet separator_count = 0;\n\n\t\twhile (this.index < this.expr.length) {\n\t\t\tthis.gobbleSpaces();\n\t\t\tlet ch_i = this.code;\n\n\t\t\tif (ch_i === termination) { // done parsing\n\t\t\t\tclosed = true;\n\t\t\t\tthis.index++;\n\n\t\t\t\tif (termination === Jsep.CPAREN_CODE && separator_count && separator_count >= args.length){\n\t\t\t\t\tthis.throwError('Unexpected token ' + String.fromCharCode(termination));\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse if (ch_i === Jsep.COMMA_CODE) { // between expressions\n\t\t\t\tthis.index++;\n\t\t\t\tseparator_count++;\n\n\t\t\t\tif (separator_count !== args.length) { // missing argument\n\t\t\t\t\tif (termination === Jsep.CPAREN_CODE) {\n\t\t\t\t\t\tthis.throwError('Unexpected token ,');\n\t\t\t\t\t}\n\t\t\t\t\telse if (termination === Jsep.CBRACK_CODE) {\n\t\t\t\t\t\tfor (let arg = args.length; arg < separator_count; arg++) {\n\t\t\t\t\t\t\targs.push(null);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (args.length !== separator_count && separator_count !== 0) {\n\t\t\t\t// NOTE: `&& separator_count !== 0` allows for either all commas, or all spaces as arguments\n\t\t\t\tthis.throwError('Expected comma');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconst node = this.gobbleExpression();\n\n\t\t\t\tif (!node || node.type === Jsep.COMPOUND) {\n\t\t\t\t\tthis.throwError('Expected comma');\n\t\t\t\t}\n\n\t\t\t\targs.push(node);\n\t\t\t}\n\t\t}\n\n\t\tif (!closed) {\n\t\t\tthis.throwError('Expected ' + String.fromCharCode(termination));\n\t\t}\n\n\t\treturn args;\n\t}\n\n\t/**\n\t * Responsible for parsing a group of things within parentheses `()`\n\t * that have no identifier in front (so not a function call)\n\t * This function assumes that it needs to gobble the opening parenthesis\n\t * and then tries to gobble everything within that parenthesis, assuming\n\t * that the next thing it should see is the close parenthesis. If not,\n\t * then the expression probably doesn't have a `)`\n\t * @returns {boolean|jsep.Expression}\n\t */\n\tgobbleGroup() {\n\t\tthis.index++;\n\t\tlet nodes = this.gobbleExpressions(Jsep.CPAREN_CODE);\n\t\tif (this.code === Jsep.CPAREN_CODE) {\n\t\t\tthis.index++;\n\t\t\tif (nodes.length === 1) {\n\t\t\t\treturn nodes[0];\n\t\t\t}\n\t\t\telse if (!nodes.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn {\n\t\t\t\t\ttype: Jsep.SEQUENCE_EXP,\n\t\t\t\t\texpressions: nodes,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthis.throwError('Unclosed (');\n\t\t}\n\t}\n\n\t/**\n\t * Responsible for parsing Array literals `[1, 2, 3]`\n\t * This function assumes that it needs to gobble the opening bracket\n\t * and then tries to gobble the expressions as arguments.\n\t * @returns {jsep.ArrayExpression}\n\t */\n\tgobbleArray() {\n\t\tthis.index++;\n\n\t\treturn {\n\t\t\ttype: Jsep.ARRAY_EXP,\n\t\t\telements: this.gobbleArguments(Jsep.CBRACK_CODE)\n\t\t};\n\t}\n}\n\n// Static fields:\nconst hooks = new Hooks();\nObject.assign(Jsep, {\n\thooks,\n\tplugins: new Plugins(Jsep),\n\n\t// Node Types\n\t// ----------\n\t// This is the full set of types that any JSEP node can be.\n\t// Store them here to save space when minified\n\tCOMPOUND: 'Compound',\n\tSEQUENCE_EXP: 'SequenceExpression',\n\tIDENTIFIER: 'Identifier',\n\tMEMBER_EXP: 'MemberExpression',\n\tLITERAL: 'Literal',\n\tTHIS_EXP: 'ThisExpression',\n\tCALL_EXP: 'CallExpression',\n\tUNARY_EXP: 'UnaryExpression',\n\tBINARY_EXP: 'BinaryExpression',\n\tARRAY_EXP: 'ArrayExpression',\n\n\tTAB_CODE: 9,\n\tLF_CODE: 10,\n\tCR_CODE: 13,\n\tSPACE_CODE: 32,\n\tPERIOD_CODE: 46, // '.'\n\tCOMMA_CODE: 44, // ','\n\tSQUOTE_CODE: 39, // single quote\n\tDQUOTE_CODE: 34, // double quotes\n\tOPAREN_CODE: 40, // (\n\tCPAREN_CODE: 41, // )\n\tOBRACK_CODE: 91, // [\n\tCBRACK_CODE: 93, // ]\n\tQUMARK_CODE: 63, // ?\n\tSEMCOL_CODE: 59, // ;\n\tCOLON_CODE: 58, // :\n\n\n\t// Operations\n\t// ----------\n\t// Use a quickly-accessible map to store all of the unary operators\n\t// Values are set to `1` (it really doesn't matter)\n\tunary_ops: {\n\t\t'-': 1,\n\t\t'!': 1,\n\t\t'~': 1,\n\t\t'+': 1\n\t},\n\n\t// Also use a map for the binary operations but set their values to their\n\t// binary precedence for quick reference (higher number = higher precedence)\n\t// see [Order of operations](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence)\n\tbinary_ops: {\n\t\t'||': 1, '??': 1,\n\t\t'&&': 2, '|': 3, '^': 4, '&': 5,\n\t\t'==': 6, '!=': 6, '===': 6, '!==': 6,\n\t\t'<': 7, '>': 7, '<=': 7, '>=': 7,\n\t\t'<<': 8, '>>': 8, '>>>': 8,\n\t\t'+': 9, '-': 9,\n\t\t'*': 10, '/': 10, '%': 10,\n\t\t'**': 11,\n\t},\n\n\t// sets specific binary_ops as right-associative\n\tright_associative: new Set(['**']),\n\n\t// Additional valid identifier chars, apart from a-z, A-Z and 0-9 (except on the starting char)\n\tadditional_identifier_chars: new Set(['$', '_']),\n\n\t// Literals\n\t// ----------\n\t// Store the values to return for the various literals we may encounter\n\tliterals: {\n\t\t'true': true,\n\t\t'false': false,\n\t\t'null': null\n\t},\n\n\t// Except for `this`, which is special. This could be changed to something like `'self'` as well\n\tthis_str: 'this',\n});\nJsep.max_unop_len = Jsep.getMaxKeyLen(Jsep.unary_ops);\nJsep.max_binop_len = Jsep.getMaxKeyLen(Jsep.binary_ops);\n\n// Backward Compatibility:\nconst jsep = expr => (new Jsep(expr)).parse();\nconst stdClassProps = Object.getOwnPropertyNames(class Test{});\nObject.getOwnPropertyNames(Jsep)\n\t.filter(prop => !stdClassProps.includes(prop) && jsep[prop] === undefined)\n\t.forEach((m) => {\n\t\tjsep[m] = Jsep[m];\n\t});\njsep.Jsep = Jsep; // allows for const { Jsep } = require('jsep');\n\nconst CONDITIONAL_EXP = 'ConditionalExpression';\n\nvar ternary = {\n\tname: 'ternary',\n\n\tinit(jsep) {\n\t\t// Ternary expression: test ? consequent : alternate\n\t\tjsep.hooks.add('after-expression', function gobbleTernary(env) {\n\t\t\tif (env.node && this.code === jsep.QUMARK_CODE) {\n\t\t\t\tthis.index++;\n\t\t\t\tconst test = env.node;\n\t\t\t\tconst consequent = this.gobbleExpression();\n\n\t\t\t\tif (!consequent) {\n\t\t\t\t\tthis.throwError('Expected expression');\n\t\t\t\t}\n\n\t\t\t\tthis.gobbleSpaces();\n\n\t\t\t\tif (this.code === jsep.COLON_CODE) {\n\t\t\t\t\tthis.index++;\n\t\t\t\t\tconst alternate = this.gobbleExpression();\n\n\t\t\t\t\tif (!alternate) {\n\t\t\t\t\t\tthis.throwError('Expected expression');\n\t\t\t\t\t}\n\t\t\t\t\tenv.node = {\n\t\t\t\t\t\ttype: CONDITIONAL_EXP,\n\t\t\t\t\t\ttest,\n\t\t\t\t\t\tconsequent,\n\t\t\t\t\t\talternate,\n\t\t\t\t\t};\n\n\t\t\t\t\t// check for operators of higher priority than ternary (i.e. assignment)\n\t\t\t\t\t// jsep sets || at 1, and assignment at 0.9, and conditional should be between them\n\t\t\t\t\tif (test.operator && jsep.binary_ops[test.operator] <= 0.9) {\n\t\t\t\t\t\tlet newTest = test;\n\t\t\t\t\t\twhile (newTest.right.operator && jsep.binary_ops[newTest.right.operator] <= 0.9) {\n\t\t\t\t\t\t\tnewTest = newTest.right;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tenv.node.test = newTest.right;\n\t\t\t\t\t\tnewTest.right = env.node;\n\t\t\t\t\t\tenv.node = test;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.throwError('Expected :');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n};\n\n// Add default plugins:\n\njsep.plugins.register(ternary);\n\nexport { Jsep, jsep as default };\n","const ARROW_EXP = 'ArrowFunctionExpression';\n\nvar index = {\n\tname: 'arrow',\n\n\tinit(jsep) {\n\t\t// arrow-function expressions: () => x, v => v, (a, b) => v\n\t\tjsep.addBinaryOp('=>', 0.1, true);\n\n\t\t// this hook searches for the special case () => ...\n\t\t// which would normally throw an error because of the invalid LHS to the bin op\n\t\tjsep.hooks.add('gobble-expression', function gobbleEmptyArrowArg(env) {\n\t\t\tthis.gobbleSpaces();\n\t\t\tif (this.code === jsep.OPAREN_CODE) {\n\t\t\t\tconst backupIndex = this.index;\n\t\t\t\tthis.index++;\n\n\t\t\t\tthis.gobbleSpaces();\n\t\t\t\tif (this.code === jsep.CPAREN_CODE) {\n\t\t\t\t\tthis.index++;\n\n\t\t\t\t\tconst biop = this.gobbleBinaryOp();\n\t\t\t\t\tif (biop === '=>') {\n\t\t\t\t\t\t// () => ...\n\t\t\t\t\t\tconst body = this.gobbleBinaryExpression();\n\t\t\t\t\t\tif (!body) {\n\t\t\t\t\t\t\tthis.throwError(\"Expected expression after \" + biop);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tenv.node = {\n\t\t\t\t\t\t\ttype: ARROW_EXP,\n\t\t\t\t\t\t\tparams: null,\n\t\t\t\t\t\t\tbody,\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.index = backupIndex;\n\t\t\t}\n\t\t});\n\n\t\tjsep.hooks.add('after-expression', function fixBinaryArrow(env) {\n\t\t\tupdateBinariesToArrows(env.node);\n\t\t});\n\n\t\tfunction updateBinariesToArrows(node) {\n\t\t\tif (node) {\n\t\t\t\t// Traverse full tree, converting any sub-object nodes as needed\n\t\t\t\tObject.values(node).forEach((val) => {\n\t\t\t\t\tif (val && typeof val === 'object') {\n\t\t\t\t\t\tupdateBinariesToArrows(val);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (node.operator === '=>') {\n\t\t\t\t\tnode.type = ARROW_EXP;\n\t\t\t\t\tnode.params = node.left ? [node.left] : null;\n\t\t\t\t\tnode.body = node.right;\n\t\t\t\t\tif (node.params && node.params[0].type === jsep.SEQUENCE_EXP) {\n\t\t\t\t\t\tnode.params = node.params[0].expressions;\n\t\t\t\t\t}\n\t\t\t\t\tdelete node.left;\n\t\t\t\t\tdelete node.right;\n\t\t\t\t\tdelete node.operator;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nexport { index as default };\n","export const globals = {\n Array,\n Boolean,\n Symbol,\n Infinity,\n NaN,\n Math,\n Number,\n BigInt,\n String,\n RegExp,\n JSON,\n isFinite,\n isNaN,\n parseFloat,\n parseInt,\n decodeURI,\n encodeURI,\n encodeURIComponent,\n Object: {\n __proto__: undefined,\n assign: Object.assign.bind(null),\n fromEntries: Object.fromEntries.bind(null),\n hasOwn: Object.hasOwn.bind(null),\n keys: Object.keys.bind(null),\n is: Object.is.bind(null),\n values: Object.values.bind(null)\n }\n};\nexport const globalsAsync = {\n ...globals,\n Promise\n};\n","/** @category Utility */ import jsep from \"jsep\";\nimport jsepArrow from \"@jsep-plugin/arrow\";\nimport jsepNew from \"@jsep-plugin/new\";\nimport jsepNumbers from \"@jsep-plugin/numbers\";\nimport jsepRegex from \"@jsep-plugin/regex\";\nimport jsepTernary from \"@jsep-plugin/ternary\";\nimport jsepTemplate from \"@jsep-plugin/template\";\nimport { globals, globalsAsync } from \"./globals.js\";\njsep.plugins.register(jsepArrow);\njsep.plugins.register(jsepNew);\njsep.plugins.register(jsepNumbers);\njsep.plugins.register(jsepRegex);\njsep.plugins.register(jsepTernary);\njsep.plugins.register(jsepTemplate);\n// see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_precedence\n// for the order defined here\n// 7 is jsep's internal for \"relational operators\"\njsep.addBinaryOp('in', 7);\njsep.addBinaryOp('??', 1);\nexport { jsep };\n/**\n * `evaluate()` implements a relatively safe version of `eval()` that is limited to evaluating synchronous\n * Javascript expressions. This allows us to safely add features that depend on user-supplied code without\n * polluting the global namespace or needing to support `eval()` and the like.\n *\n * By default it supports any expression that evalutes to a string, number, boolean, Date, null, or undefined.\n * Other values will result in an error.\n *\n * @example\n * ```ts\n * // shouldDisplayOptionalData will be false\n * const shouldDisplayOptionalData = evaluate('!isEmpty(array)', {\n * array: [],\n * isEmpty(arr: unknown) {\n * return Array.isArray(arr) && arr.length === 0;\n * }\n * })\n * ```\n *\n * Since this only implements the expression lanaguage part of Javascript, there is no support for assigning\n * values, creating functions, or creating objects, so the following will throw an error:\n *\n * @example\n * ```ts\n * evaluate('var a = 1; a');\n * ```\n *\n * In addition to string expressions, `evaluate()` can use an existing `jsep.Expression`, such as that returned\n * from the `compile()` function. The goal here is to support cases where the same expression will be evaluated\n * multiple times, possibly with different variables, e.g.,\n *\n * @example\n * ```ts\n * const expr = compile('isEmpty(array)');\n *\n * // then we use it like\n * evaluate(expr, {\n * array: [],\n * isEmpty(arr: unknown) {\n * return Array.isArray(arr) && arr.length === 0;\n * }\n * ));\n *\n * evaluate(expr, {\n * array: ['value'],\n * isEmpty(arr: unknown) {\n * return Array.isArray(arr) && arr.length === 0;\n * }\n * ));\n * ```\n *\n * This saves the overhead of parsing the expression everytime and simply allows us to evaluate it.\n *\n * The `variables` parameter should be used to supply any variables or functions that should be in-scope for\n * the evaluation. A very limited number of global objects, like NaN and Infinity are always available, but\n * any non-global values will need to be passed as a variable. Note that expressions do not have any access to\n * the variables in the scope in which they were defined unless they are supplied here.\n *\n * @param expression The expression to evaluate, either as a string or pre-parsed expression\n * @param variables Optional object which contains any variables, functions, etc. that will be available to\n * the expression.\n * @returns The result of evaluating the expression\n */ export function evaluate(expression, variables = {}) {\n return evaluateAsType(expression, variables, defaultTypePredicate);\n}\n/**\n * `evaluateAsync()` implements a relatively safe version of `eval()` that can evaluate Javascript expressions\n * that use Promises. This allows us to safely add features that depend on user-supplied code without\n * polluting the global namespace or needing to support `eval()` and the like.\n *\n * By default it supports any expression that evalutes to a string, number, boolean, Date, null, or undefined.\n * Other values will result in an error.\n *\n * @example\n * ```ts\n * // shouldDisplayOptionalData will be false\n * const shouldDisplayOptionalData = await evaluateAsync('Promise.resolve(!isEmpty(array))', {\n * array: [],\n * isEmpty(arr: unknown) {\n * return Array.isArray(arr) && arr.length === 0;\n * }\n * })\n * ```\n *\n * Since this only implements the expression lanaguage part of Javascript, there is no support for assigning\n * values, creating functions, or creating objects, so the following will throw an error:\n *\n * @example\n * ```ts\n * evaluateAsync('var a = 1; a');\n * ```\n *\n * In addition to string expressions, `evaluate()` can use an existing `jsep.Expression`, such as that returned\n * from the `compile()` function. The goal here is to support cases where the same expression will be evaluated\n * multiple times, possibly with different variables, e.g.,\n *\n * @example\n * ```ts\n * const expr = compile('Promise.resolve(isEmpty(array))');\n *\n * // then we use it like\n * evaluateAsync(expr, {\n * array: [],\n * isEmpty(arr: unknown) {\n * return Array.isArray(arr) && arr.length === 0;\n * }\n * ));\n *\n * evaluateAsync(expr, {\n * array: ['value'],\n * isEmpty(arr: unknown) {\n * return Array.isArray(arr) && arr.length === 0;\n * }\n * ));\n * ```\n *\n * This saves the overhead of parsing the expression everytime and simply allows us to evaluate it.\n *\n * The `variables` parameter should be used to supply any variables or functions that should be in-scope for\n * the evaluation. A very limited number of global objects, like NaN and Infinity are always available, but\n * any non-global values will need to be passed as a variable. Note that expressions do not have any access to\n * the variables in the scope in which they were defined unless they are supplied here.\n *\n * **Note:** `evaluateAsync()` currently only supports Promise-based asynchronous flows and does not support\n * the `await` keyword.\n *\n * @param expression The expression to evaluate, either as a string or pre-parsed expression\n * @param variables Optional object which contains any variables, functions, etc. that will be available to\n * the expression.\n * @returns The result of evaluating the expression\n */ export async function evaluateAsync(expression, variables = {}) {\n return evaluateAsTypeAsync(expression, variables, defaultTypePredicate);\n}\n/**\n * `evaluateAsBoolean()` is a variant of {@link evaluate()} which only supports boolean results. Useful\n * if valid expression must return boolean values.\n *\n * @param expression The expression to evaluate, either as a string or pre-parsed expression\n * @param variables Optional object which contains any variables, functions, etc. that will be available to\n * the expression.\n * @returns The result of evaluating the expression\n */ export function evaluateAsBoolean(expression, variables = {}) {\n return evaluateAsType(expression, variables, booleanTypePredicate);\n}\n/**\n * `evaluateAsBooleanAsync()` is a variant of {@link evaluateAsync()} which only supports boolean results. Useful\n * if valid expression must return boolean values.\n *\n * @param expression The expression to evaluate, either as a string or pre-parsed expression\n * @param variables Optional object which contains any variables, functions, etc. that will be available to\n * the expression.\n * @returns The result of evaluating the expression\n */ export function evaluateAsBooleanAsync(expression, variables = {}) {\n return evaluateAsTypeAsync(expression, variables, booleanTypePredicate);\n}\n/**\n * `evaluateAsNumber()` is a variant of {@link evaluate()} which only supports number results. Useful\n * if valid expression must return numeric values.\n *\n * @param expression The expression to evaluate, either as a string or pre-parsed expression\n * @param variables Optional object which contains any variables, functions, etc. that will be available to\n * the expression.\n * @returns The result of evaluating the expression\n */ export function evaluateAsNumber(expression, variables = {}) {\n return evaluateAsType(expression, variables, numberTypePredicate);\n}\n/**\n * `evaluateAsNumberAsync()` is a variant of {@link evaluateAsync()} which only supports number results. Useful\n * if valid expression must return numeric values.\n *\n * @param expression The expression to evaluate, either as a string or pre-parsed expression\n * @param variables Optional object which contains any variables, functions, etc. that will be available to\n * the expression.\n * @returns The result of evaluating the expression\n */ export function evaluateAsNumberAsync(expression, variables = {}) {\n return evaluateAsTypeAsync(expression, variables, numberTypePredicate);\n}\n/**\n * `evaluateAsType()` is a type-safe version of {@link evaluate()} which returns a result if the result\n * passes a custom type predicate. The main use-case for this is to narrow the return types allowed based on\n * context, e.g., if the expected result should be a number or boolean, you can supply a custom type-guard\n * to ensure that only number or boolean results are returned.\n *\n * @param expression The expression to evaluate, either as a string or pre-parsed expression\n * @param variables Optional object which contains any variables, functions, etc. that will be available to\n * the expression.\n * @param typePredicate A [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n * which asserts that the result value matches one of the expected results.\n * @returns The result of evaluating the expression\n */ export function evaluateAsType(expression, variables = {}, typePredicate) {\n if (typeof expression !== 'string' && (typeof expression !== 'object' || !expression || !('type' in expression))) {\n throw `Unknown expression type ${expression}. Expressions must either be a string or pre-compiled string.`;\n }\n if (typeof variables === 'undefined' || variables === null) {\n variables = {};\n }\n const context = createSynchronousContext(variables);\n const result = visitExpression(typeof expression === 'string' ? jsep(expression) : expression, context);\n if (typePredicate(result)) {\n return result;\n } else {\n throw {\n type: 'Invalid result',\n message: typeof expression === 'string' ? `The expression ${expression} did not produce a valid result` : 'The expression did not produce a valid result'\n };\n }\n}\n/**\n * `evaluateAsTypeAsync()` is a type-safe version of {@link evaluateAsync()} which returns a result if the result\n * passes a custom type predicate. The main use-case for this is to narrow the return types allowed based on\n * context, e.g., if the expected result should be a number or boolean, you can supply a custom type-guard\n * to ensure that only number or boolean results are returned.\n *\n * @param expression The expression to evaluate, either as a string or pre-parsed expression\n * @param variables Optional object which contains any variables, functions, etc. that will be available to\n * the expression.\n * @param typePredicate A [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n * which asserts that the result value matches one of the expected results.\n * @returns The result of evaluating the expression\n */ export async function evaluateAsTypeAsync(expression, variables = {}, typePredicate) {\n if (typeof expression !== 'string' && (typeof expression !== 'object' || !expression || !('type' in expression))) {\n return Promise.reject(`Unknown expression type ${expression}. Expressions must either be a string or pre-compiled string.`);\n }\n if (typeof variables === 'undefined' || variables === null) {\n variables = {};\n }\n const context = createAsynchronousContext(variables);\n return Promise.resolve(visitExpression(typeof expression === 'string' ? jsep(expression) : expression, context)).then((result)=>{\n if (typePredicate(result)) {\n return result;\n } else {\n throw {\n type: 'Invalid result',\n message: typeof expression === 'string' ? `The expression ${expression} did not produce a valid result` : 'The expression did not produce a valid result'\n };\n }\n });\n}\n/**\n * `compile()` is a companion function for use with {@link evaluate()} and the various `evaluateAs*()` functions.\n * It processes an expression string into the resulting AST that is executed by those functions. This is useful if\n * you have an expression that will need to be evaluated mulitple times, potentially with different values, as the\n * lexing and parsing steps can be skipped by using the AST object returned from this.\n *\n * The returned AST is intended to be opaque to client applications, but, of course, it is possible to manipulate\n * the AST before passing it back to {@link evaluate()}, if desired. This might be useful if, for example, certain\n * values are known to be constant.\n *\n * @param expression The expression to be parsed\n * @returns An executable AST representation of the expression\n */ export function compile(expression) {\n return jsep(expression);\n}\n// Pre-defined type guards\nfunction defaultTypePredicate(result) {\n return typeof result === 'string' || typeof result === 'number' || typeof result === 'boolean' || typeof result === 'undefined' || result === null || result instanceof Date;\n}\nfunction booleanTypePredicate(result) {\n return typeof result === 'boolean';\n}\nfunction numberTypePredicate(result) {\n return typeof result === 'number';\n}\n// Implementation\n// This is the core of the implementation; it takes an expression, the variables and the current object\n// each expression is dispatched to an appropriate handler.\nfunction visitExpression(expression, context) {\n switch(expression.type){\n case 'UnaryExpression':\n return visitUnaryExpression(expression, context);\n case 'BinaryExpression':\n return visitBinaryExpression(expression, context);\n case 'ConditionalExpression':\n return visitConditionalExpression(expression, context);\n case 'CallExpression':\n return visitCallExpression(expression, context);\n case 'ArrowFunctionExpression':\n return visitArrowFunctionExpression(expression, context);\n case 'MemberExpression':\n return visitMemberExpression(expression, context);\n case 'ArrayExpression':\n return visitArrayExpression(expression, context);\n case 'SequenceExpression':\n return visitSequenceExpression(expression, context);\n case 'NewExpression':\n return visitNewExpression(expression, context);\n case 'Literal':\n return visitLiteral(expression, context);\n case 'Identifier':\n return visitIdentifier(expression, context);\n case 'TemplateLiteral':\n return visitTemplateLiteral(expression, context);\n case 'TemplateElement':\n return visitTemplateElement(expression, context);\n default:\n throw `Expression evaluator does not support expression of type '${expression.type}'`;\n }\n}\nfunction visitExpressionName(expression, context) {\n switch(expression.type){\n case 'Literal':\n return expression.value;\n case 'Identifier':\n return expression.name;\n case 'MemberExpression':\n return visitExpressionName(expression.property, context);\n default:\n throw `VisitExpressionName does not support expression of type '${expression.type}'`;\n }\n}\nfunction visitUnaryExpression(expression, context) {\n const value = visitExpression(expression.argument, context);\n switch(expression.operator){\n case '+':\n return +value;\n case '-':\n return -value;\n case '~':\n return ~value;\n case '!':\n return !value;\n default:\n throw `Expression evaluator does not support operator '${expression.operator}''`;\n }\n}\nfunction visitBinaryExpression(expression, context) {\n let left = visitExpression(expression.left, context);\n let right = visitExpression(expression.right, context);\n switch(expression.operator){\n case '+':\n return left + right;\n case '-':\n return left - right;\n case '*':\n return left * right;\n case '/':\n return left / right;\n case '%':\n return left % right;\n case '**':\n return left ** right;\n case '==':\n return left == right;\n case '===':\n return left === right;\n case '!=':\n return left != right;\n case '!==':\n return left !== right;\n case '>':\n return left > right;\n case '>=':\n return left >= right;\n case '<':\n return left < right;\n case '<=':\n return left <= right;\n case 'in':\n return left in right;\n case '&&':\n return left && right;\n case '||':\n return left || right;\n case '??':\n return left ?? right;\n default:\n throw `Expression evaluator does not support operator '${expression.operator}' operator`;\n }\n}\nfunction visitConditionalExpression(expression, context) {\n const test = visitExpression(expression.test, context);\n return test ? visitExpression(expression.consequent, context) : visitExpression(expression.alternate, context);\n}\nfunction visitCallExpression(expression, context) {\n let args = expression.arguments?.map(handleNullableExpression(context));\n let callee = visitExpression(expression.callee, context);\n if (!callee) {\n throw `No function named ${getCallTargetName(expression.callee)} is defined in this context`;\n } else if (!(typeof callee === 'function')) {\n throw `${getCallTargetName(expression.callee)} is not a function`;\n }\n return callee(...args);\n}\nfunction visitArrowFunctionExpression(expression, context) {\n const params = expression.params?.map((p)=>{\n switch(p.type){\n case 'Identifier':\n return p.name;\n default:\n throw `Cannot handle parameter of type ${p.type}`;\n }\n }) ?? [];\n return (function(...rest) {\n if (rest.length < params.length) {\n throw `Required argument(s) ${params.slice(rest.length, -1).join(', ')} were not provided`;\n }\n const vars = Object.fromEntries(params.reduce((acc, p, idx)=>{\n const val = rest[idx];\n if (isValidVariableType(val)) {\n acc.push([\n p,\n val\n ]);\n }\n return acc;\n }, []));\n return visitExpression(expression.body, context.addVariables(vars));\n }).bind(context.thisObj ?? null);\n}\nfunction visitMemberExpression(expression, context) {\n let obj = visitExpression(expression.object, context);\n if (obj === undefined) {\n switch(expression.object.type){\n case 'Identifier':\n {\n let objectName = visitExpressionName(expression.object, context);\n throw ReferenceError(`ReferenceError: ${objectName} is not defined`);\n }\n case 'MemberExpression':\n {\n let propertyName = visitExpressionName(expression.property, context);\n throw TypeError(`TypeError: cannot read properties of undefined (reading '${propertyName}')`);\n }\n default:\n throw `VisitMemberExpression does not support operator '${expression.object.type}' type`;\n }\n }\n let newObj = obj;\n if (typeof obj === 'string') {\n newObj = String.prototype;\n } else if (typeof obj === 'number') {\n newObj = Number.prototype;\n } else if (typeof obj === 'function') {\n // no-op\n } else if (typeof obj !== 'object') {\n throw `VisitMemberExpression does not support member access on type ${typeof obj}`;\n }\n context.thisObj = newObj;\n let result;\n switch(expression.property.type){\n case 'Identifier':\n case 'MemberExpression':\n result = visitExpression(expression.property, context);\n break;\n default:\n {\n const property = visitExpression(expression.property, context);\n if (typeof property === 'undefined') {\n throw {\n type: 'Illegal property access',\n message: 'No property was supplied to the property access'\n };\n }\n validatePropertyName(property);\n result = obj[property];\n }\n }\n if (typeof result === 'function') {\n return result.bind(obj);\n }\n return result;\n}\nfunction visitArrayExpression(expression, context) {\n return expression.elements?.map(handleNullableExpression(context));\n}\nfunction visitSequenceExpression(expression, context) {\n const result = expression.expressions.map(handleNullableExpression(context));\n return result[result.length - 1];\n}\nfunction visitNewExpression(expression, context) {\n if (expression.callee && expression.callee.type === 'Identifier') {\n let args = expression.arguments?.map(handleNullableExpression(context));\n switch(expression.callee.name){\n case 'Date':\n {\n /** @ts-ignore because we can use the spread operator here */ return new Date(...args);\n }\n case 'RegExp':\n /** @ts-ignore because we can use the spread operator here */ return new RegExp(...args);\n default:\n throw `Cannot instantiate object of type ${expression.callee.name}`;\n }\n } else {\n if (!expression.callee) {\n throw `Could not handle \"new\" without a specified class`;\n } else {\n throw 'new must be called with either Date or RegExp';\n }\n }\n}\nfunction visitTemplateLiteral(expression, context) {\n const expressions = expression.expressions?.map(handleNullableExpression(context)) ?? [];\n const quasis = expression.quasis?.map(handleNullableExpression(context)) ?? [];\n return quasis.filter((q)=>!q.tail).map((q)=>q.value).join('') + expressions.join('') + quasis.filter((q)=>q.tail).map((q)=>q.value).join('');\n}\nfunction visitTemplateElement(expression, context) {\n return {\n value: expression.cooked,\n tail: expression.tail\n };\n}\nfunction visitIdentifier(expression, context) {\n validatePropertyName(expression.name);\n // we support both `object` and `function` in the same way as technically property access on functions\n // is possible; the use-case here is to support JS's \"static\" functions like `Number.isInteger()`, which\n // is technically reading a property on a function\n const thisObj = context.thisObj;\n if (thisObj && (typeof thisObj === 'object' || typeof thisObj === 'function') && expression.name in thisObj) {\n const result = thisObj[expression.name];\n validatePropertyName(result);\n return result;\n } else if (context.variables && expression.name in context.variables) {\n const result = context.variables[expression.name];\n validatePropertyName(result);\n return result;\n } else if (expression.name in context.globals) {\n return context.globals[expression.name];\n } else {\n return undefined;\n }\n}\nfunction visitLiteral(expression, context) {\n validatePropertyName(expression.value);\n return expression.value;\n}\nfunction createSynchronousContext(variables) {\n return createContextInternal(variables, globals);\n}\nfunction createAsynchronousContext(variables) {\n return createContextInternal(variables, globalsAsync);\n}\nfunction createContextInternal(variables, globals_) {\n const context = {\n thisObj: undefined,\n variables: {\n ...variables\n },\n globals: {\n ...globals_\n },\n addVariables (vars) {\n this.variables = {\n ...this.variables,\n ...vars\n };\n return this;\n }\n };\n context.addVariables.bind(context);\n return context;\n}\n// helper useful for handling arrays of expressions, since `null` expressions should not be\n// dispatched to `visitExpression()`\nfunction handleNullableExpression(context) {\n return function handleNullableExpressionInner(expression) {\n if (expression === null) {\n return null;\n }\n return visitExpression(expression, context);\n };\n}\nfunction validatePropertyName(name) {\n if (name === '__proto__' || name === 'prototype' || name === 'constructor') {\n throw {\n type: 'Illegal property access',\n message: `Cannot access the ${name} property of objects`\n };\n }\n}\nfunction isValidVariableType(val) {\n if (typeof val === 'string' || typeof val === 'number' || typeof val === 'boolean' || typeof val === 'function' || val === null || val instanceof RegExp) {\n return true;\n }\n if (typeof val === 'object') {\n for (const key of Object.keys(val)){\n if (!isValidVariableType(val[key])) {\n return false;\n }\n }\n return true;\n }\n if (Array.isArray(val)) {\n for (const item of val){\n if (!isValidVariableType(item)) {\n return false;\n }\n }\n }\n return false;\n}\nfunction getCallTargetName(expression) {\n if (!expression) {\n return null;\n }\n if (expression.type === 'MemberExpression') {\n return expression.property?.name;\n }\n // identifier expression\n return expression.name;\n}\n","var index = {\n\tname: 'new',\n\n\tinit(jsep) {\n\t\tjsep.addUnaryOp('new');\n\n\t\tjsep.hooks.add('after-token', function gobbleNew(env) {\n\t\t\tconst node = env.node;\n\t\t\tif (node && node.operator === 'new') {\n\t\t\t\tif (!node.argument || ![jsep.CALL_EXP, jsep.MEMBER_EXP].includes(node.argument.type)) {\n\t\t\t\t\tthis.throwError('Expected new function()');\n\t\t\t\t}\n\t\t\t\tenv.node = node.argument;\n\n\t\t\t\t// Change CALL_EXP to NewExpression (could be a nested member, even within a call expr)\n\t\t\t\tlet callNode = env.node;\n\t\t\t\twhile (callNode.type === jsep.MEMBER_EXP || (\n\t\t\t\t\tcallNode.type === jsep.CALL_EXP && callNode.callee.type === jsep.MEMBER_EXP)) {\n\t\t\t\t\tcallNode = callNode.type === jsep.MEMBER_EXP\n\t\t\t\t\t\t? callNode.object\n\t\t\t\t\t\t: callNode.callee.object;\n\t\t\t\t}\n\t\t\t\tcallNode.type = 'NewExpression';\n\t\t\t}\n\t\t});\n\t}\n};\n\nexport { index as default };\n","const NUM_0_CODE = 48;\nconst UNDERSCORE = 95;\n\nvar index = {\n\tname: 'numbers',\n\n\tinit(Jsep) {\n\t\tJsep.hooks.add('gobble-token', function gobbleNumber(env) {\n\t\t\tif (this.code === NUM_0_CODE) {\n\t\t\t\tconst startIndex = this.index;\n\t\t\t\tconst numType = this.expr.charAt(this.index + 1);\n\t\t\t\tconst ranges = getNumberCodeRanges.call(this, numType);\n\t\t\t\tif (!ranges) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet number = '';\n\t\t\t\twhile (isUnderscoreOrWithinRange(this.code, ranges)) {\n\t\t\t\t\tif (this.code === UNDERSCORE) {\n\t\t\t\t\t\tthis.index ++;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// confirm valid syntax after building number string within ranges\n\t\t\t\tif (Jsep.isIdentifierPart(this.code)) {\n\t\t\t\t\tif (Jsep.isDecimalDigit(this.code) && Jsep.isDecimalDigit(numType.charCodeAt(0))) {\n\t\t\t\t\t\t// abort octal processing and reset to ignore the leading 0\n\t\t\t\t\t\tthis.index = startIndex + 1;\n\t\t\t\t\t\tgobbleBase10.call(this, env);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.throwError('unexpected char within number');\n\t\t\t\t}\n\n\t\t\t\tenv.node = {\n\t\t\t\t\ttype: Jsep.LITERAL,\n\t\t\t\t\tvalue: parseInt(number, getNumberBase(numType)),\n\t\t\t\t\traw: this.expr.substring(startIndex, this.index),\n\t\t\t\t};\n\t\t\t}\n\t\t\telse if (Jsep.isDecimalDigit(this.code) || this.code === Jsep.PERIOD_CODE) {\n\t\t\t\tgobbleBase10.call(this, env);\n\t\t\t}\n\t\t});\n\n\t\t/**\n\t\t * Gets the range of allowable number codes (decimal) and updates index\n\t\t * @param {string} numType\n\t\t * @returns {number[][]|null}\n\t\t */\n\t\tfunction getNumberCodeRanges(numType) {\n\t\t\tif (numType === 'x' || numType === 'X') {\n\t\t\t\tthis.index += 2;\n\t\t\t\treturn [\n\t\t\t\t\t[48, 57], // 0-9\n\t\t\t\t\t[65, 70], // A-F\n\t\t\t\t\t[97, 102], // a-f\n\t\t\t\t];\n\t\t\t}\n\t\t\telse if (numType === 'b' || numType === 'B') {\n\t\t\t\tthis.index += 2;\n\t\t\t\treturn [[48, 49]]; // 0-1\n\t\t\t}\n\t\t\telse if (numType === 'o' || numType === 'O' ||\n\t\t\t\t(numType >= '0' && numType <= '7')) { // 0-7 allows non-standard 0644 = 420\n\t\t\t\tthis.index += numType <= '7' ? 1 : 2;\n\t\t\t\treturn [[48, 55]]; // 0-7\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\t/**\n\t\t * Supports Hex, Octal and Binary only\n\t\t * @param {string} numType\n\t\t * @returns {16|8|2}\n\t\t */\n\t\tfunction getNumberBase(numType) {\n\t\t\tif (numType === 'x' || numType === 'X') {\n\t\t\t\treturn 16;\n\t\t\t}\n\t\t\telse if (numType === 'b' || numType === 'B') {\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\t// default (includes non-stand 044)\n\t\t\treturn 8;\n\t\t}\n\n\t\t/**\n\t\t * Verifies number code is within given ranges\n\t\t * @param {number} code\n\t\t * @param {number[][]} ranges\n\t\t */\n\t\tfunction isUnderscoreOrWithinRange(code, ranges) {\n\t\t\treturn code === UNDERSCORE ||\n\t\t\t\tranges.some(([min, max]) => code >= min && code <= max);\n\t\t}\n\n\t\t/**\n\t\t * Same as core gobbleNumericLiteral, but allows for _ char\n\t\t * @param {{ context?: typeof Jsep, node?: Expression }} env\n\t\t */\n\t\tfunction gobbleBase10(env) {\n\t\t\tconst startIndex = this.index;\n\t\t\tlet number = '';\n\n\t\t\tconst gobbleDigits = () => {\n\t\t\t\twhile (Jsep.isDecimalDigit(this.code) || this.code === UNDERSCORE) {\n\t\t\t\t\tif (this.code === UNDERSCORE) {\n\t\t\t\t\t\tthis.index++;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tgobbleDigits();\n\t\t\tif (this.code === Jsep.PERIOD_CODE) { // can start with a decimal marker\n\t\t\t\tnumber += this.expr.charAt(this.index++);\n\n\t\t\t\tgobbleDigits();\n\t\t\t}\n\n\t\t\tlet ch = this.char;\n\t\t\tif (ch === 'e' || ch === 'E') { // exponent marker\n\t\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t\t\tch = this.char;\n\n\t\t\t\tif (ch === '+' || ch === '-') { // exponent sign\n\t\t\t\t\tnumber += this.expr.charAt(this.index++);\n\t\t\t\t}\n\n\t\t\t\tgobbleDigits(); // exponent itself\n\n\t\t\t\tif (!Jsep.isDecimalDigit(this.expr.charCodeAt(this.index - 1)) ) {\n\t\t\t\t\tthis.throwError('Expected exponent (' + number + this.char + ')');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst chCode = this.code;\n\n\t\t\t// Check to make sure this isn't a variable name that start with a number (123abc)\n\t\t\tif (Jsep.isIdentifierStart(chCode)) {\n\t\t\t\tthis.throwError('Variable names cannot start with a number (' +\n\t\t\t\t\tnumber + this.char + ')');\n\t\t\t}\n\t\t\telse if (chCode === Jsep.PERIOD_CODE) {\n\t\t\t\tif (number.length > 1) {\n\t\t\t\t\tthis.throwError(`Unexpected period ${JSON.stringify({ chCode, number }, null, 2)}`);\n\t\t\t\t}\n\t\t\t\t// leave other error-handling to jsep core. Also allows spread operator.\n\t\t\t\tthis.index = startIndex;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tenv.node = {\n\t\t\t\ttype: Jsep.LITERAL,\n\t\t\t\tvalue: parseFloat(number),\n\t\t\t\traw: this.expr.substring(startIndex, this.index),\n\t\t\t};\n\t\t}\n\t}\n};\n\nexport { index as default };\n","const FSLASH_CODE = 47; // '/'\nconst BSLASH_CODE = 92; // '\\\\'\n\nvar index = {\n\tname: 'regex',\n\n\tinit(jsep) {\n\t\t// Regex literal: /abc123/ig\n\t\tjsep.hooks.add('gobble-token', function gobbleRegexLiteral(env) {\n\t\t\tif (this.code === FSLASH_CODE) {\n\t\t\t\tconst patternIndex = ++this.index;\n\n\t\t\t\tlet inCharSet = false;\n\t\t\t\twhile (this.index < this.expr.length) {\n\t\t\t\t\tif (this.code === FSLASH_CODE && !inCharSet) {\n\t\t\t\t\t\tconst pattern = this.expr.slice(patternIndex, this.index);\n\n\t\t\t\t\t\tlet flags = '';\n\t\t\t\t\t\twhile (++this.index < this.expr.length) {\n\t\t\t\t\t\t\tconst code = this.code;\n\t\t\t\t\t\t\tif ((code >= 97 && code <= 122) // a...z\n\t\t\t\t\t\t\t\t|| (code >= 65 && code <= 90) // A...Z\n\t\t\t\t\t\t\t\t|| (code >= 48 && code <= 57)) { // 0-9\n\t\t\t\t\t\t\t\tflags += this.char;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet value;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tvalue = new RegExp(pattern, flags);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\t\tthis.throwError(e.message);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tenv.node = {\n\t\t\t\t\t\t\ttype: jsep.LITERAL,\n\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\traw: this.expr.slice(patternIndex - 1, this.index),\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// allow . [] and () after regex: /regex/.test(a)\n\t\t\t\t\t\tenv.node = this.gobbleTokenProperty(env.node);\n\t\t\t\t\t\treturn env.node;\n\t\t\t\t\t}\n\t\t\t\t\tif (this.code === jsep.OBRACK_CODE) {\n\t\t\t\t\t\tinCharSet = true;\n\t\t\t\t\t}\n\t\t\t\t\telse if (inCharSet && this.code === jsep.CBRACK_CODE) {\n\t\t\t\t\t\tinCharSet = false;\n\t\t\t\t\t}\n\t\t\t\t\tthis.index += this.code === BSLASH_CODE ? 2 : 1;\n\t\t\t\t}\n\t\t\t\tthis.throwError('Unclosed Regex');\n\t\t\t}\n\t\t});\n\t},\n};\n\nexport { index as default };\n","const CONDITIONAL_EXP = 'ConditionalExpression';\n\nvar index = {\n\tname: 'ternary',\n\n\tinit(jsep) {\n\t\t// Ternary expression: test ? consequent : alternate\n\t\tjsep.hooks.add('after-expression', function gobbleTernary(env) {\n\t\t\tif (env.node && this.code === jsep.QUMARK_CODE) {\n\t\t\t\tthis.index++;\n\t\t\t\tconst test = env.node;\n\t\t\t\tconst consequent = this.gobbleExpression();\n\n\t\t\t\tif (!consequent) {\n\t\t\t\t\tthis.throwError('Expected expression');\n\t\t\t\t}\n\n\t\t\t\tthis.gobbleSpaces();\n\n\t\t\t\tif (this.code === jsep.COLON_CODE) {\n\t\t\t\t\tthis.index++;\n\t\t\t\t\tconst alternate = this.gobbleExpression();\n\n\t\t\t\t\tif (!alternate) {\n\t\t\t\t\t\tthis.throwError('Expected expression');\n\t\t\t\t\t}\n\t\t\t\t\tenv.node = {\n\t\t\t\t\t\ttype: CONDITIONAL_EXP,\n\t\t\t\t\t\ttest,\n\t\t\t\t\t\tconsequent,\n\t\t\t\t\t\talternate,\n\t\t\t\t\t};\n\n\t\t\t\t\t// check for operators of higher priority than ternary (i.e. assignment)\n\t\t\t\t\t// jsep sets || at 1, and assignment at 0.9, and conditional should be between them\n\t\t\t\t\tif (test.operator && jsep.binary_ops[test.operator] <= 0.9) {\n\t\t\t\t\t\tlet newTest = test;\n\t\t\t\t\t\twhile (newTest.right.operator && jsep.binary_ops[newTest.right.operator] <= 0.9) {\n\t\t\t\t\t\t\tnewTest = newTest.right;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tenv.node.test = newTest.right;\n\t\t\t\t\t\tnewTest.right = env.node;\n\t\t\t\t\t\tenv.node = test;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.throwError('Expected :');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n};\n\nexport { index as default };\n","const BTICK_CODE = 96; // `\nconst CCURLY_CODE = 125; // }\nconst TAGGED_TEMPLATE_EXPRESSION = 'TaggedTemplateExpression';\nconst TEMPLATE_LITERAL = 'TemplateLiteral';\nconst TEMPLATE_ELEMENT = 'TemplateElement';\n\nvar index = {\n\tname: 'jsepTemplateLiteral',\n\n\tinit(jsep) {\n\t\tfunction gobbleTemplateLiteral(env, gobbleMember = true) {\n\t\t\tif (this.code === BTICK_CODE) {\n\t\t\t\tconst node = {\n\t\t\t\t\ttype: TEMPLATE_LITERAL,\n\t\t\t\t\tquasis: [],\n\t\t\t\t\texpressions: [],\n\t\t\t\t};\n\t\t\t\tlet cooked = '';\n\t\t\t\tlet raw = '';\n\t\t\t\tlet closed = false;\n\t\t\t\tconst length = this.expr.length;\n\t\t\t\tconst pushQuasi = () => node.quasis.push({\n\t\t\t\t\ttype: TEMPLATE_ELEMENT,\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\traw,\n\t\t\t\t\t\tcooked,\n\t\t\t\t\t},\n\t\t\t\t\ttail: closed,\n\t\t\t\t});\n\n\t\t\t\twhile (this.index < length) {\n\t\t\t\t\tlet ch = this.expr.charAt(++this.index);\n\n\t\t\t\t\tif (ch === '`') {\n\t\t\t\t\t\tthis.index += 1;\n\t\t\t\t\t\tclosed = true;\n\t\t\t\t\t\tpushQuasi();\n\n\t\t\t\t\t\tenv.node = node;\n\n\t\t\t\t\t\tif (gobbleMember) {\n\t\t\t\t\t\t // allow . [] and () after template: `foo`.length\n\t\t\t\t\t\t env.node = this.gobbleTokenProperty(env.node);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn env.node;\n\t\t\t\t\t}\n\t\t\t\t\telse if (ch === '$' && this.expr.charAt(this.index + 1) === '{') {\n\t\t\t\t\t\tthis.index += 2;\n\t\t\t\t\t\tpushQuasi();\n\t\t\t\t\t\traw = '';\n\t\t\t\t\t\tcooked = '';\n\t\t\t\t\t\tnode.expressions.push(...this.gobbleExpressions(CCURLY_CODE));\n\t\t\t\t\t\tif (this.code !== CCURLY_CODE) {\n\t\t\t\t\t\t\tthis.throwError('unclosed ${');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse if (ch === '\\\\') {\n\t\t\t\t\t\t// Check for all of the common escape codes\n\t\t\t\t\t\traw += ch;\n\t\t\t\t\t\tch = this.expr.charAt(++this.index);\n\t\t\t\t\t\traw += ch;\n\n\t\t\t\t\t\tswitch (ch) {\n\t\t\t\t\t\t\tcase 'n': cooked += '\\n'; break;\n\t\t\t\t\t\t\tcase 'r': cooked += '\\r'; break;\n\t\t\t\t\t\t\tcase 't': cooked += '\\t'; break;\n\t\t\t\t\t\t\tcase 'b': cooked += '\\b'; break;\n\t\t\t\t\t\t\tcase 'f': cooked += '\\f'; break;\n\t\t\t\t\t\t\tcase 'v': cooked += '\\x0B'; break;\n\t\t\t\t\t\t\tdefault : cooked += ch;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tcooked += ch;\n\t\t\t\t\t\traw += ch;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.throwError('Unclosed `');\n\t\t\t}\n\t\t}\n\n\t\tjsep.hooks.add('gobble-token', gobbleTemplateLiteral);\n\n\t\tjsep.hooks.add('after-token', function gobbleTaggedTemplateIdentifier(env) {\n\t\t\tif ((env.node.type === jsep.IDENTIFIER || env.node.type === jsep.MEMBER_EXP) && this.code === BTICK_CODE) {\n\t\t\t\tenv.node = {\n\t\t\t\t\ttype: TAGGED_TEMPLATE_EXPRESSION,\n\t\t\t\t\ttag: env.node,\n\t\t\t\t\tquasi: gobbleTemplateLiteral.bind(this)(env, false),\n\t\t\t\t};\n\n\t\t\t\t// allow . [] and () after tagged template: bar`foo`.length\n\t\t\t\tenv.node = this.gobbleTokenProperty(env.node);\n\n\t\t\t\treturn env.node;\n\t\t\t}\n\t\t});\n\t}\n};\n\nexport { index as default };\n","/** @module @category Extension */ /*\n * We have the following extension modes:\n *\n * - attached (set via code in form of: attach, detach, ...)\n * - configured (set via configuration in form of: added, removed, ...)\n * - assigned (computed from attached and configured)\n * - connected (computed from assigned using connectivity and online / offline)\n */ import { sessionStore, userHasAccess } from \"@openmrs/esm-api\";\nimport { getExtensionConfigFromStore, getExtensionsConfigStore, getExtensionSlotConfig, getExtensionSlotConfigFromStore, getExtensionSlotsConfigStore } from \"@openmrs/esm-config\";\nimport { evaluateAsBoolean } from \"@openmrs/esm-expression-evaluator\";\nimport { featureFlagsStore } from \"@openmrs/esm-feature-flags\";\nimport { subscribeConnectivityChanged } from \"@openmrs/esm-globals\";\nimport { isOnline as isOnlineFn } from \"@openmrs/esm-utils\";\nimport { isEqual } from \"lodash-es\";\nimport { checkStatusFor } from \"./helpers.js\";\nimport { getExtensionStore, getExtensionInternalStore, updateInternalExtensionStore } from \"./store.js\";\nconst extensionInternalStore = getExtensionInternalStore();\nconst extensionStore = getExtensionStore();\nconst slotsConfigStore = getExtensionSlotsConfigStore();\nconst extensionsConfigStore = getExtensionsConfigStore();\n// Keep the output store updated\nfunction updateExtensionOutputStore(internalState, extensionSlotConfigs, extensionsConfigStore, featureFlagStore, sessionStore) {\n const slots = {};\n const isOnline = isOnlineFn();\n const enabledFeatureFlags = Object.entries(featureFlagStore.flags).filter(([, { enabled }])=>enabled).map(([name])=>name);\n for (let [slotName, slot] of Object.entries(internalState.slots)){\n const { config } = getExtensionSlotConfigFromStore(extensionSlotConfigs, slot.name);\n const assignedExtensions = getAssignedExtensionsFromSlotData(slotName, internalState, config, extensionsConfigStore, enabledFeatureFlags, isOnline, sessionStore.session);\n slots[slotName] = {\n moduleName: slot.moduleName,\n assignedExtensions\n };\n }\n if (!isEqual(extensionStore.getState().slots, slots)) {\n extensionStore.setState({\n slots\n });\n }\n}\nextensionInternalStore.subscribe((internalStore)=>{\n updateExtensionOutputStore(internalStore, slotsConfigStore.getState(), extensionsConfigStore.getState(), featureFlagsStore.getState(), sessionStore.getState());\n});\nslotsConfigStore.subscribe((slotConfigs)=>{\n updateExtensionOutputStore(extensionInternalStore.getState(), slotConfigs, extensionsConfigStore.getState(), featureFlagsStore.getState(), sessionStore.getState());\n});\nextensionsConfigStore.subscribe((extensionConfigs)=>{\n updateExtensionOutputStore(extensionInternalStore.getState(), slotsConfigStore.getState(), extensionConfigs, featureFlagsStore.getState(), sessionStore.getState());\n});\nfeatureFlagsStore.subscribe((featureFlagStore)=>{\n updateExtensionOutputStore(extensionInternalStore.getState(), slotsConfigStore.getState(), extensionsConfigStore.getState(), featureFlagStore, sessionStore.getState());\n});\nsessionStore.subscribe((session)=>{\n updateExtensionOutputStore(extensionInternalStore.getState(), slotsConfigStore.getState(), extensionsConfigStore.getState(), featureFlagsStore.getState(), session);\n});\nfunction updateOutputStoreToCurrent() {\n updateExtensionOutputStore(extensionInternalStore.getState(), slotsConfigStore.getState(), extensionsConfigStore.getState(), featureFlagsStore.getState(), sessionStore.getState());\n}\nupdateOutputStoreToCurrent();\nsubscribeConnectivityChanged(updateOutputStoreToCurrent);\nfunction createNewExtensionSlotInfo(slotName, moduleName) {\n return {\n moduleName,\n name: slotName,\n attachedIds: [],\n config: null\n };\n}\n/**\n * Given an extension ID, which is a string uniquely identifying\n * an instance of an extension within an extension slot, this\n * returns the extension name.\n *\n * @example\n * ```js\n * getExtensionNameFromId(\"foo#bar\")\n * --> \"foo\"\n * getExtensionNameFromId(\"baz\")\n * --> \"baz\"\n * ```\n */ export function getExtensionNameFromId(extensionId) {\n const [extensionName] = extensionId.split('#');\n return extensionName;\n}\nexport function getExtensionRegistrationFrom(state, extensionId) {\n const name = getExtensionNameFromId(extensionId);\n return state.extensions[name];\n}\nexport function getExtensionRegistration(extensionId) {\n const state = extensionInternalStore.getState();\n return getExtensionRegistrationFrom(state, extensionId);\n}\n/**\n * Extensions must be registered in order to be rendered.\n * This is handled by the app shell, when extensions are provided\n * via the `setupOpenMRS` return object.\n * @internal\n */ export const registerExtension = (extensionRegistration)=>extensionInternalStore.setState((state)=>{\n state.extensions[extensionRegistration.name] = {\n ...extensionRegistration,\n instances: []\n };\n return state;\n });\n/**\n * Attach an extension to an extension slot.\n *\n * This will cause the extension to be rendered into the specified\n * extension slot, unless it is removed by configuration. Using\n * `attach` is an alternative to specifying the `slot` or `slots`\n * in the extension declaration.\n *\n * It is particularly useful when creating a slot into which\n * you want to render an existing extension. This enables you\n * to do so without modifying the extension's declaration, which\n * may be impractical or inappropriate, for example if you are\n * writing a module for a specific implementation.\n *\n * @param slotName a name uniquely identifying the slot\n * @param extensionId an extension name, with an optional #-suffix\n * to distinguish it from other instances of the same extension\n * attached to the same slot.\n */ export function attach(slotName, extensionId) {\n updateInternalExtensionStore((state)=>{\n const existingSlot = state.slots[slotName];\n if (!existingSlot) {\n return {\n ...state,\n slots: {\n ...state.slots,\n [slotName]: {\n ...createNewExtensionSlotInfo(slotName),\n attachedIds: [\n extensionId\n ]\n }\n }\n };\n } else {\n return {\n ...state,\n slots: {\n ...state.slots,\n [slotName]: {\n ...existingSlot,\n attachedIds: [\n ...existingSlot.attachedIds,\n extensionId\n ]\n }\n }\n };\n }\n });\n}\n/**\n * @deprecated Avoid using this. Extension attachments should be considered declarative.\n */ export function detach(extensionSlotName, extensionId) {\n updateInternalExtensionStore((state)=>{\n const existingSlot = state.slots[extensionSlotName];\n if (existingSlot && existingSlot.attachedIds.includes(extensionId)) {\n return {\n ...state,\n slots: {\n ...state.slots,\n [extensionSlotName]: {\n ...existingSlot,\n attachedIds: existingSlot.attachedIds.filter((id)=>id !== extensionId)\n }\n }\n };\n } else {\n return state;\n }\n });\n}\n/**\n * @deprecated Avoid using this. Extension attachments should be considered declarative.\n */ export function detachAll(extensionSlotName) {\n updateInternalExtensionStore((state)=>{\n const existingSlot = state.slots[extensionSlotName];\n if (existingSlot) {\n return {\n ...state,\n slots: {\n ...state.slots,\n [extensionSlotName]: {\n ...existingSlot,\n attachedIds: []\n }\n }\n };\n } else {\n return state;\n }\n });\n}\n/**\n * Get an order index for the extension. This will\n * come from either its configured order, its registered order\n * parameter, or the order in which it happened to be attached.\n */ function getOrder(extensionId, configuredOrder, registeredOrderIndex, attachedOrder) {\n const configuredIndex = configuredOrder.indexOf(extensionId);\n if (configuredIndex !== -1) {\n return configuredIndex;\n } else if (registeredOrderIndex !== undefined) {\n // extensions that don't have a configured order should appear after those that do\n return 1000 + registeredOrderIndex;\n } else {\n const assignedIndex = attachedOrder.indexOf(extensionId);\n if (assignedIndex !== -1) {\n // extensions that have neither a configured nor registered order should appear\n // after all others\n return 2000 + assignedIndex;\n } else {\n return -1;\n }\n }\n}\nfunction getAssignedExtensionsFromSlotData(slotName, internalState, config, extensionConfigStoreState, enabledFeatureFlags, isOnline, session) {\n const attachedIds = internalState.slots[slotName].attachedIds;\n const assignedIds = calculateAssignedIds(config, attachedIds);\n const extensions = [];\n for (let id of assignedIds){\n const { config: extensionConfig } = getExtensionConfigFromStore(extensionConfigStoreState, slotName, id);\n const name = getExtensionNameFromId(id);\n const extension = internalState.extensions[name];\n // if the extension has not been registered yet, do not include it\n if (extension) {\n const requiredPrivileges = extensionConfig?.['Display conditions']?.privileges ?? extension.privileges ?? [];\n if (requiredPrivileges && (typeof requiredPrivileges === 'string' || Array.isArray(requiredPrivileges) && requiredPrivileges.length > 0)) {\n if (!session?.user) {\n continue;\n }\n if (!userHasAccess(requiredPrivileges, session.user)) {\n continue;\n }\n }\n const displayConditionExpression = extensionConfig?.['Display conditions']?.expression ?? null;\n if (displayConditionExpression !== null) {\n try {\n if (!evaluateAsBoolean(displayConditionExpression, {\n session\n })) {\n continue;\n }\n } catch (e) {\n console.error(`Error while evaluating expression ${displayConditionExpression}`, e);\n continue;\n }\n }\n if (extension.featureFlag && !enabledFeatureFlags.includes(extension.featureFlag)) {\n continue;\n }\n if (window.offlineEnabled && !checkStatusFor(isOnline, extension.online, extension.offline)) {\n continue;\n }\n extensions.push({\n id,\n name,\n moduleName: extension.moduleName,\n config: extensionConfig,\n featureFlag: extension.featureFlag,\n meta: extension.meta,\n online: extensionConfig?.['Display conditions']?.online ?? extension.online ?? true,\n offline: extensionConfig?.['Display conditions']?.offline ?? extension.offline ?? false\n });\n }\n }\n return extensions;\n}\n/**\n * Gets the list of extensions assigned to a given slot\n *\n * @param slotName The slot to load the assigned extensions for\n * @returns An array of extensions assigned to the named slot\n */ export function getAssignedExtensions(slotName) {\n const internalState = extensionInternalStore.getState();\n const { config: slotConfig } = getExtensionSlotConfig(slotName);\n const extensionStoreState = extensionsConfigStore.getState();\n const featureFlagState = featureFlagsStore.getState();\n const sessionState = sessionStore.getState();\n const isOnline = isOnlineFn();\n const enabledFeatureFlags = Object.entries(featureFlagState.flags).filter(([, { enabled }])=>enabled).map(([name])=>name);\n return getAssignedExtensionsFromSlotData(slotName, internalState, slotConfig, extensionStoreState, enabledFeatureFlags, isOnline, sessionState.session);\n}\nfunction calculateAssignedIds(config, attachedIds) {\n const addedIds = config.add || [];\n const removedIds = config.remove || [];\n const idOrder = config.order || [];\n const { extensions } = extensionInternalStore.getState();\n return [\n ...attachedIds,\n ...addedIds\n ].filter((id)=>!removedIds.includes(id)).sort((idA, idB)=>{\n const ai = getOrder(idA, idOrder, extensions[getExtensionNameFromId(idA)]?.order, attachedIds);\n const bi = getOrder(idB, idOrder, extensions[getExtensionNameFromId(idB)]?.order, attachedIds);\n if (bi === -1) {\n return -1;\n } else if (ai === -1) {\n return 1;\n } else {\n return ai - bi;\n }\n });\n}\n/**\n * Used by by extension slots at mount time.\n *\n * @param moduleName The name of the module that contains the extension slot\n * @param slotName The extension slot name that is actually used\n * @internal\n */ export const registerExtensionSlot = (moduleName, slotName)=>extensionInternalStore.setState((state)=>{\n const existingModuleName = state.slots[slotName]?.moduleName;\n if (existingModuleName && existingModuleName != moduleName) {\n console.warn(`An extension slot with the name '${slotName}' already exists. Refusing to register the same slot name twice (in \"registerExtensionSlot\"). The existing one is from module ${existingModuleName}.`);\n return state;\n }\n if (existingModuleName && existingModuleName == moduleName) {\n // Re-rendering an existing slot\n return state;\n }\n if (state.slots[slotName]) {\n return {\n ...state,\n slots: {\n ...state.slots,\n [slotName]: {\n ...state.slots[slotName],\n moduleName\n }\n }\n };\n }\n const slot = createNewExtensionSlotInfo(slotName, moduleName);\n return {\n ...state,\n slots: {\n ...state.slots,\n [slotName]: slot\n }\n };\n });\n/**\n * @internal\n * Just for testing.\n */ export const reset = ()=>extensionStore.setState(()=>{\n return {\n slots: {},\n extensions: {}\n };\n });\n","import { isOnline } from \"@openmrs/esm-utils\";\nexport function checkStatus(online = true, offline = false) {\n return checkStatusFor(isOnline(), online, offline);\n}\nexport function checkStatusFor(status, online = true, offline = false) {\n return Boolean(status ? online : offline);\n}\n","import { createGlobalStore } from \"@openmrs/esm-state\";\n/** @internal */ export const leftNavStore = createGlobalStore('left-nav', {\n slotName: null,\n basePath: window.spaBase,\n mode: 'normal'\n});\n/**\n * Sets the current left nav context. Must be paired with {@link unsetLeftNav}.\n *\n * @deprecated Please use {@link useLeftNav} instead. This function will be made internal in a future release.\n */ export function setLeftNav({ name, basePath, mode, componentContext }) {\n leftNavStore.setState({\n slotName: name,\n basePath,\n mode: mode ?? 'normal',\n componentContext\n });\n}\n/**\n * Unsets the left nav context if the current context is for the supplied name.\n *\n * @deprecated Please use {@link useLeftNav} instead. This function will be made internal in a future release.\n */ export function unsetLeftNav(name) {\n if (leftNavStore.getState().slotName === name) {\n leftNavStore.setState(leftNavStore.getInitialState(), true);\n }\n}\n","import { createGlobalStore } from \"@openmrs/esm-state\";\nimport { getExtensionRegistration } from \"./index.js\";\nconst modalRegistryStore = createGlobalStore('modalRegistry', {\n modals: {}\n});\n/** @internal */ export function registerModal(modalRegistration) {\n modalRegistryStore.setState((state)=>{\n state.modals[modalRegistration.name] = modalRegistration;\n return state;\n });\n}\n/** @internal */ export function getModalRegistration(modalName) {\n let modalRegistration = modalRegistryStore.getState().modals[modalName];\n if (!modalRegistration) {\n const extensionRegistration = getExtensionRegistration(modalName);\n if (extensionRegistration) {\n modalRegistration = {\n name: modalName,\n load: extensionRegistration.load,\n moduleName: extensionRegistration.moduleName\n };\n console.warn(`Modal ${modalName} was registered as an extension. This is deprecated and will be removed in the future. Please register it in the \"modals\" section of routes.json instead of the \"extensions\" section.`);\n // Register it so the warning only appears once\n registerModal(modalRegistration);\n }\n }\n return modalRegistration;\n}\n","/** @module @category Extension */ import { isEqual } from \"lodash-es\";\nimport { configExtensionStore } from \"@openmrs/esm-config\";\nimport { createGlobalStore, getGlobalStore } from \"@openmrs/esm-state\";\nconst extensionInternalStore = createGlobalStore('extensionsInternal', {\n slots: {},\n extensions: {}\n});\n/**\n * This gets the extension system's internal store. It is subject\n * to change radically and without warning. It should not be used\n * outside esm-core.\n * @internal\n */ export const getExtensionInternalStore = ()=>getGlobalStore('extensionsInternal', {\n slots: {},\n extensions: {}\n });\n/** @internal */ export function updateInternalExtensionStore(updater) {\n const state = extensionInternalStore.getState();\n const newState = updater(state);\n if (newState !== state) {\n extensionInternalStore.setState(newState);\n }\n}\n/**\n * This returns a store that modules can use to get information about the\n * state of the extension system.\n */ export const getExtensionStore = ()=>getGlobalStore('extensions', {\n slots: {}\n });\n/**\n * esm-config maintains its own store of the extension information it needs\n * to generate extension configs. We keep it updated based on what's in\n * `extensionStore`.\n */ updateConfigExtensionStore(extensionInternalStore.getState());\nextensionInternalStore.subscribe(updateConfigExtensionStore);\nfunction updateConfigExtensionStore(extensionState) {\n const configExtensionRecords = [];\n for (let extensionInfo of Object.values(extensionState.extensions)){\n for (let instance of extensionInfo.instances){\n configExtensionRecords.push({\n slotModuleName: instance.slotModuleName,\n extensionModuleName: extensionInfo.moduleName,\n slotName: instance.slotName,\n extensionId: instance.id\n });\n }\n }\n if (!isEqual(configExtensionStore.getState().mountedExtensions, configExtensionRecords)) {\n configExtensionStore.setState({\n mountedExtensions: configExtensionRecords\n });\n }\n}\n","import { getExtensionRegistration } from \"./index.js\";\nimport { createGlobalStore } from \"@openmrs/esm-state\";\nimport { translateFrom } from \"@openmrs/esm-translations\";\nconst workspaceRegistrationStore = createGlobalStore('workspaceRegistrations', {\n workspaces: {}\n});\nconst workspaceGroupStore = createGlobalStore('workspaceGroups', {\n workspaceGroups: {}\n});\n/**\n * Tells the workspace system about a workspace. This is used by the app shell\n * to register workspaces defined in the `routes.json` file.\n * @internal\n */ export function registerWorkspace(workspace) {\n workspaceRegistrationStore.setState((state)=>({\n workspaces: {\n ...state.workspaces,\n [workspace.name]: {\n ...workspace,\n preferredWindowSize: workspace.preferredWindowSize ?? 'normal',\n type: workspace.type ?? 'form',\n canHide: workspace.canHide ?? false,\n canMaximize: workspace.canMaximize ?? false,\n width: workspace.width ?? 'narrow',\n groups: workspace.groups ?? []\n }\n }\n }));\n}\n/**\n * Tells the workspace system about a workspace group. This is used by the app shell\n * to register workspace groups defined in the `routes.json` file.\n * @internal\n */ export function registerWorkspaceGroup(workspaceGroup) {\n workspaceGroupStore.setState((state)=>{\n const group = state.workspaceGroups[workspaceGroup.name];\n if (group) {\n // This condition occurs when a workspace with a `groups` property is registered before\n // the corresponding workspace group. In such cases, the workspace group is registered\n // by the `attachWorkspaceToGroup` function.\n return {\n workspaceGroups: {\n ...state.workspaceGroups,\n [workspaceGroup.name]: {\n ...group,\n members: Array.from(new Set([\n ...group.members,\n ...workspaceGroup.members\n ]))\n }\n }\n };\n } else {\n return {\n workspaceGroups: {\n ...state.workspaceGroups,\n [workspaceGroup.name]: {\n name: workspaceGroup.name,\n members: workspaceGroup.members\n }\n }\n };\n }\n });\n}\nconst workspaceExtensionWarningsIssued = new Set();\n/**\n * This exists for compatibility with the old way of registering\n * workspaces (as extensions).\n *\n * @param name of the workspace\n */ export function getWorkspaceRegistration(name) {\n const registeredWorkspaces = workspaceRegistrationStore.getState().workspaces;\n if (registeredWorkspaces[name]) {\n return registeredWorkspaces[name];\n } else {\n const workspaceExtension = getExtensionRegistration(name);\n if (workspaceExtension) {\n if (!workspaceExtensionWarningsIssued.has(name)) {\n console.warn(`The workspace '${name}' is registered as an extension. This is deprecated. Please register it in the \"workspaces\" section of the routes.json file.`);\n workspaceExtensionWarningsIssued.add(name);\n }\n return {\n name: workspaceExtension.name,\n title: getTitleFromExtension(workspaceExtension),\n moduleName: workspaceExtension.moduleName,\n preferredWindowSize: workspaceExtension.meta?.screenSize ?? 'normal',\n load: workspaceExtension.load,\n type: workspaceExtension.meta?.type ?? 'form',\n canHide: workspaceExtension.meta?.canHide ?? false,\n canMaximize: workspaceExtension.meta?.canMaximize ?? false,\n width: workspaceExtension.meta?.width ?? 'narrow',\n groups: workspaceExtension.meta?.groups ?? []\n };\n } else {\n throw new Error(`No workspace named '${name}' has been registered.`);\n }\n }\n}\n/**\n * This provides the workspace group registration and is also compatibile with the\n * old way of registering workspace groups (as extensions), but isn't recommended.\n *\n * @param name of the workspace\n */ export function getWorkspaceGroupRegistration(name) {\n const registeredWorkspaces = workspaceGroupStore.getState().workspaceGroups;\n if (registeredWorkspaces[name]) {\n return registeredWorkspaces[name];\n } else {\n throw new Error(`No workspace group named '${name}' has been registered.`);\n }\n}\nfunction getTitleFromExtension(ext) {\n const title = ext?.meta?.title;\n if (typeof title === 'string') {\n return title;\n } else if (title && typeof title === 'object') {\n return translateFrom(ext.moduleName, title.key, title.default);\n }\n return ext.name;\n}\n","const connectivityChangedEventName = 'openmrs:connectivity-changed';\n/** @internal */ export function dispatchConnectivityChanged(online) {\n window.dispatchEvent(new CustomEvent(connectivityChangedEventName, {\n detail: {\n online\n }\n }));\n}\n/** @category Offline */ export function subscribeConnectivityChanged(cb) {\n if (!window.offlineEnabled) {\n return ()=>{};\n }\n const handler = (ev)=>cb(ev.detail);\n window.addEventListener(connectivityChangedEventName, handler);\n return ()=>window.removeEventListener(connectivityChangedEventName, handler);\n}\n/** @category Offline */ export function subscribeConnectivity(cb) {\n cb({\n online: window.offlineEnabled ? navigator.onLine : true\n });\n return subscribeConnectivityChanged(cb);\n}\nconst precacheStaticDependenciesEventName = 'openmrs:precache-static-dependencies';\nexport function dispatchPrecacheStaticDependencies(data = {}) {\n window.dispatchEvent(new CustomEvent(precacheStaticDependenciesEventName, {\n detail: data\n }));\n}\n/** @category Offline */ export function subscribePrecacheStaticDependencies(cb) {\n const handler = (ev)=>cb(ev.detail);\n window.addEventListener(precacheStaticDependenciesEventName, handler);\n return ()=>window.removeEventListener(precacheStaticDependenciesEventName, handler);\n}\nconst notificationShownName = 'openmrs:notification-shown';\nconst actionableNotificationShownName = 'openmrs:actionable-notification-shown';\nconst toastShownName = 'openmrs:toast-shown';\nconst snackbarShownName = 'openmrs:snack-bar-shown';\nexport function dispatchNotificationShown(data) {\n window.dispatchEvent(new CustomEvent(notificationShownName, {\n detail: data\n }));\n}\n/** @internal */ export function dispatchActionableNotificationShown(data) {\n window.dispatchEvent(new CustomEvent(actionableNotificationShownName, {\n detail: data\n }));\n}\n/** @internal */ export function dispatchSnackbarShown(data) {\n window.dispatchEvent(new CustomEvent(snackbarShownName, {\n detail: data\n }));\n}\n/** @internal */ export function dispatchToastShown(data) {\n window.dispatchEvent(new CustomEvent(toastShownName, {\n detail: data\n }));\n}\n/** @category UI */ export function subscribeNotificationShown(cb) {\n const handler = (ev)=>cb(ev.detail);\n window.addEventListener(notificationShownName, handler);\n return ()=>window.removeEventListener(notificationShownName, handler);\n}\n/** @category UI */ export function subscribeActionableNotificationShown(cb) {\n const handler = (ev)=>cb(ev.detail);\n window.addEventListener(actionableNotificationShownName, handler);\n return ()=>window.removeEventListener(actionableNotificationShownName, handler);\n}\n/** @category UI */ export function subscribeToastShown(cb) {\n const handler = (ev)=>cb(ev.detail);\n window.addEventListener(toastShownName, handler);\n return ()=>window.removeEventListener(toastShownName, handler);\n}\n/** @category UI */ export function subscribeSnackbarShown(cb) {\n const handler = (ev)=>cb(ev.detail);\n window.addEventListener(snackbarShownName, handler);\n return ()=>window.removeEventListener(snackbarShownName, handler);\n}\n","/** @module @category Breadcrumb */ import { pathToRegexp } from \"path-to-regexp\";\nimport { createGlobalStore } from \"@openmrs/esm-state\";\nconst store = createGlobalStore('breadcrumbs', []);\nfunction getMatcher(settings) {\n if (settings.matcher instanceof RegExp) {\n return settings.matcher;\n } else if (typeof settings.matcher === 'string') {\n return pathToRegexp(settings.matcher);\n } else {\n return pathToRegexp(settings.path);\n }\n}\nexport function registerBreadcrumb(breadcrumb) {\n return registerBreadcrumbs([\n breadcrumb\n ]);\n}\nexport function registerBreadcrumbs(breadcrumbs) {\n const prevBreadcrumbs = getBreadcrumbs();\n const newBreadcrumbs = breadcrumbs.map((settings)=>({\n matcher: getMatcher(settings),\n settings\n }));\n const nextBreadcrumbs = [\n ...prevBreadcrumbs,\n ...newBreadcrumbs\n ];\n store.setState(nextBreadcrumbs, true);\n}\nexport function getBreadcrumbs() {\n return store.getState();\n}\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport Dexie from \"dexie\";\n/**\n * Accesses the central IndexedDB used by the `esm-offline` module to persist offline related state.\n * Leverages the `dexie` library for IndexedDB management.\n */ export class OfflineDb extends Dexie {\n constructor(){\n super('EsmOffline'), /**\n * The table used to store the data of the offline synchronization queue (aka \"sync queue\" / \"offline actions\").\n */ _define_property(this, \"syncQueue\", void 0), _define_property(this, \"dynamicOfflineData\", void 0);\n this.version(4).stores({\n syncQueue: '++id,userId,type,[userId+type]',\n dynamicOfflineData: '++id,type,identifier,*users,&[type+identifier]'\n });\n this.syncQueue = this.table('syncQueue');\n this.dynamicOfflineData = this.table('dynamicOfflineData');\n }\n}\n/**\n * @internal Temporarily added for esm-offline-tools-app and workarounds. Please don't use elsewhere.\n * @deprecated Should/Will be removed in the future per the above reason.\n */ export function getOfflineDb() {\n return new OfflineDb();\n}\n","/** @module @category Offline */ import { createGlobalStore } from \"@openmrs/esm-state\";\nimport { setupDynamicOfflineDataHandler, syncDynamicOfflineData } from \"./dynamic-offline-data.js\";\nconst store = createGlobalStore('offline-patients', {\n offlinePatientDataSyncState: {},\n handlers: {}\n});\n/** @deprecated Will be removed once all modules have been migrated to the new dynamic offline data API. */ export function getOfflinePatientDataStore() {\n printDeprecationWarning();\n return store;\n}\n/** @deprecated Will be removed once all modules have been migrated to the new dynamic offline data API. */ export function registerOfflinePatientHandler(identifier, handler) {\n printDeprecationWarning();\n setupDynamicOfflineDataHandler({\n type: 'patient',\n displayName: handler.displayName,\n id: identifier,\n isSynced: ()=>Promise.resolve(true),\n sync: (patientUuid, signal)=>handler.onOfflinePatientAdded({\n patientUuid,\n signal: signal ?? new AbortController().signal\n })\n });\n}\n/** @deprecated Will be removed once all modules have been migrated to the new dynamic offline data API. */ export async function syncOfflinePatientData(patientUuid) {\n printDeprecationWarning();\n await syncDynamicOfflineData('patient', patientUuid);\n}\nfunction printDeprecationWarning() {\n console.warn('The offline patient API has been deprecated and will be removed in a future release. ' + 'To prevent future crashes, the functions remain available for the moment, but any invocations should be migrated ASAP.');\n}\n","try{self[\"workbox:window:6.5.4\"]&&_()}catch(n){}function n(n,t){return new Promise((function(r){var e=new MessageChannel;e.port1.onmessage=function(n){r(n.data)},n.postMessage(t,[e.port2])}))}function t(n,t){for(var r=0;r<t.length;r++){var e=t[r];e.enumerable=e.enumerable||!1,e.configurable=!0,\"value\"in e&&(e.writable=!0),Object.defineProperty(n,e.key,e)}}function r(n,t){(null==t||t>n.length)&&(t=n.length);for(var r=0,e=new Array(t);r<t;r++)e[r]=n[r];return e}function e(n,t){var e;if(\"undefined\"==typeof Symbol||null==n[Symbol.iterator]){if(Array.isArray(n)||(e=function(n,t){if(n){if(\"string\"==typeof n)return r(n,t);var e=Object.prototype.toString.call(n).slice(8,-1);return\"Object\"===e&&n.constructor&&(e=n.constructor.name),\"Map\"===e||\"Set\"===e?Array.from(n):\"Arguments\"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?r(n,t):void 0}}(n))||t&&n&&\"number\"==typeof n.length){e&&(n=e);var i=0;return function(){return i>=n.length?{done:!0}:{done:!1,value:n[i++]}}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}return(e=n[Symbol.iterator]()).next.bind(e)}try{self[\"workbox:core:6.5.4\"]&&_()}catch(n){}var i=function(){var n=this;this.promise=new Promise((function(t,r){n.resolve=t,n.reject=r}))};function o(n,t){var r=location.href;return new URL(n,r).href===new URL(t,r).href}var u=function(n,t){this.type=n,Object.assign(this,t)};function a(n,t,r){return r?t?t(n):n:(n&&n.then||(n=Promise.resolve(n)),t?n.then(t):n)}function c(){}var f={type:\"SKIP_WAITING\"};function s(n,t){if(!t)return n&&n.then?n.then(c):Promise.resolve()}var v=function(r){var e,c;function v(n,t){var e,c;return void 0===t&&(t={}),(e=r.call(this)||this).nn={},e.tn=0,e.rn=new i,e.en=new i,e.on=new i,e.un=0,e.an=new Set,e.cn=function(){var n=e.fn,t=n.installing;e.tn>0||!o(t.scriptURL,e.sn.toString())||performance.now()>e.un+6e4?(e.vn=t,n.removeEventListener(\"updatefound\",e.cn)):(e.hn=t,e.an.add(t),e.rn.resolve(t)),++e.tn,t.addEventListener(\"statechange\",e.ln)},e.ln=function(n){var t=e.fn,r=n.target,i=r.state,o=r===e.vn,a={sw:r,isExternal:o,originalEvent:n};!o&&e.mn&&(a.isUpdate=!0),e.dispatchEvent(new u(i,a)),\"installed\"===i?e.wn=self.setTimeout((function(){\"installed\"===i&&t.waiting===r&&e.dispatchEvent(new u(\"waiting\",a))}),200):\"activating\"===i&&(clearTimeout(e.wn),o||e.en.resolve(r))},e.dn=function(n){var t=e.hn,r=t!==navigator.serviceWorker.controller;e.dispatchEvent(new u(\"controlling\",{isExternal:r,originalEvent:n,sw:t,isUpdate:e.mn})),r||e.on.resolve(t)},e.gn=(c=function(n){var t=n.data,r=n.ports,i=n.source;return a(e.getSW(),(function(){e.an.has(i)&&e.dispatchEvent(new u(\"message\",{data:t,originalEvent:n,ports:r,sw:i}))}))},function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];try{return Promise.resolve(c.apply(this,n))}catch(n){return Promise.reject(n)}}),e.sn=n,e.nn=t,navigator.serviceWorker.addEventListener(\"message\",e.gn),e}c=r,(e=v).prototype=Object.create(c.prototype),e.prototype.constructor=e,e.__proto__=c;var h,l,m,w=v.prototype;return w.register=function(n){var t=(void 0===n?{}:n).immediate,r=void 0!==t&&t;try{var e=this;return function(n,t){var r=n();if(r&&r.then)return r.then(t);return t(r)}((function(){if(!r&&\"complete\"!==document.readyState)return s(new Promise((function(n){return window.addEventListener(\"load\",n)})))}),(function(){return e.mn=Boolean(navigator.serviceWorker.controller),e.yn=e.pn(),a(e.bn(),(function(n){e.fn=n,e.yn&&(e.hn=e.yn,e.en.resolve(e.yn),e.on.resolve(e.yn),e.yn.addEventListener(\"statechange\",e.ln,{once:!0}));var t=e.fn.waiting;return t&&o(t.scriptURL,e.sn.toString())&&(e.hn=t,Promise.resolve().then((function(){e.dispatchEvent(new u(\"waiting\",{sw:t,wasWaitingBeforeRegister:!0}))})).then((function(){}))),e.hn&&(e.rn.resolve(e.hn),e.an.add(e.hn)),e.fn.addEventListener(\"updatefound\",e.cn),navigator.serviceWorker.addEventListener(\"controllerchange\",e.dn),e.fn}))}))}catch(n){return Promise.reject(n)}},w.update=function(){try{return this.fn?s(this.fn.update()):void 0}catch(n){return Promise.reject(n)}},w.getSW=function(){return void 0!==this.hn?Promise.resolve(this.hn):this.rn.promise},w.messageSW=function(t){try{return a(this.getSW(),(function(r){return n(r,t)}))}catch(n){return Promise.reject(n)}},w.messageSkipWaiting=function(){this.fn&&this.fn.waiting&&n(this.fn.waiting,f)},w.pn=function(){var n=navigator.serviceWorker.controller;return n&&o(n.scriptURL,this.sn.toString())?n:void 0},w.bn=function(){try{var n=this;return function(n,t){try{var r=n()}catch(n){return t(n)}if(r&&r.then)return r.then(void 0,t);return r}((function(){return a(navigator.serviceWorker.register(n.sn,n.nn),(function(t){return n.un=performance.now(),t}))}),(function(n){throw n}))}catch(n){return Promise.reject(n)}},h=v,(l=[{key:\"active\",get:function(){return this.en.promise}},{key:\"controlling\",get:function(){return this.on.promise}}])&&t(h.prototype,l),m&&t(h,m),v}(function(){function n(){this.Pn=new Map}var t=n.prototype;return t.addEventListener=function(n,t){this.Sn(n).add(t)},t.removeEventListener=function(n,t){this.Sn(n).delete(t)},t.dispatchEvent=function(n){n.target=this;for(var t,r=e(this.Sn(n.type));!(t=r()).done;){(0,t.value)(n)}},t.Sn=function(n){return this.Pn.has(n)||this.Pn.set(n,new Set),this.Pn.get(n)},n}());export{v as Workbox,u as WorkboxEvent,n as messageSW};\n//# sourceMappingURL=workbox-window.prod.es5.mjs.map\n","/** @module @category Offline */ import Dexie from \"dexie\";\nimport { getLoggedInUser } from \"@openmrs/esm-api\";\nimport { createGlobalStore } from \"@openmrs/esm-state\";\nimport { OfflineDb } from \"./offline-db.js\";\nconst db = new OfflineDb();\nconst handlers = {};\nconst syncStore = createGlobalStore('offline-synchronization', {});\nexport function getOfflineSynchronizationStore() {\n return syncStore;\n}\n/**\n * Runs a full synchronization of **all** queued synchronization items.\n */ export async function runSynchronization() {\n if (syncStore.getState().synchronization) {\n return;\n }\n const totalCount = await db.syncQueue.count();\n const promises = {};\n const handlerQueue = Object.entries(handlers);\n const maxIter = handlerQueue.length;\n const results = {};\n const abortController = new AbortController();\n const notifySyncProgress = ()=>{\n const synchronization = syncStore.getState().synchronization;\n syncStore.setState({\n synchronization: {\n ...synchronization,\n pendingCount: synchronization.pendingCount - 1\n }\n });\n };\n try {\n syncStore.setState({\n synchronization: {\n totalCount,\n pendingCount: totalCount,\n abortController\n }\n });\n // we try until the queue is depleted, but no more than queue.length tries.\n for(let iter = 0; iter < maxIter && handlerQueue.length > 0; iter++){\n for(let i = handlerQueue.length; i--;){\n const [name, handler] = handlerQueue[i];\n const deps = handler.dependsOn.map((dep)=>promises[dep]);\n if (deps.every(Boolean)) {\n results[name] = {};\n await Promise.all(deps);\n promises[name] = processHandler(handler, results, abortController, notifySyncProgress);\n handlerQueue.splice(i, 1);\n }\n }\n }\n await Promise.allSettled(Object.values(promises));\n } finally{\n syncStore.setState({\n synchronization: undefined\n });\n }\n}\nasync function processHandler({ type, dependsOn, process }, results, abortController, notifySyncProgress) {\n const items = [];\n const contents = [];\n const userId = await getUserId();\n await db.syncQueue.where({\n type,\n userId\n }).each((item, cursor)=>{\n items.push([\n cursor.primaryKey,\n item.content,\n item.descriptor\n ]);\n contents.push(item.content);\n });\n for(let i = 0; i < items.length; i++){\n const [key, item, { id, dependencies = [] }] = items[i];\n try {\n const result = await process(item, {\n abort: abortController,\n index: i,\n items: contents,\n userId,\n dependencies: dependencies.map(({ id, type })=>dependsOn.includes(type) ? results[type][id] : undefined)\n });\n if (id !== undefined) {\n results[type][id] = result;\n }\n await db.syncQueue.delete(key);\n } catch (e) {\n await db.syncQueue.update(key, {\n lastError: {\n name: e?.name,\n message: e?.message ?? e?.toString()\n }\n });\n } finally{\n notifySyncProgress();\n }\n }\n}\nasync function getUserId() {\n const user = await getLoggedInUser();\n return user?.uuid || '*';\n}\n/**\n * Enqueues a new item in the sync queue for a specific user.\n * @param userId The user with whom the sync item should be associated with.\n * @param type The identifying type of the synchronization item.\n * @param content The actual data to be synchronized.\n * @param descriptor An optional descriptor providing additional metadata about the sync item.\n */ export async function queueSynchronizationItemFor(userId, type, content, descriptor) {\n const targetId = descriptor && descriptor.id;\n if (targetId !== undefined) {\n // in case of replacement (i.e., used same ID) we just remove the existing item\n await db.syncQueue.where({\n type,\n userId\n }).filter((item)=>item?.descriptor.id === targetId).delete().catch(Dexie.errnames.DatabaseClosed);\n }\n const id = await db.syncQueue.add({\n type,\n content,\n userId,\n descriptor: descriptor || {},\n createdOn: new Date()\n }).catch(Dexie.errnames.DatabaseClosed, ()=>-1);\n return id;\n}\n/**\n * Enqueues a new item in the sync queue and associates the item with the currently signed in user.\n * @param type The identifying type of the synchronization item.\n * @param content The actual data to be synchronized.\n * @param descriptor An optional descriptor providing additional metadata about the sync item.\n */ export async function queueSynchronizationItem(type, content, descriptor) {\n const userId = await getUserId();\n return await queueSynchronizationItemFor(userId, type, content, descriptor);\n}\n/**\n * Returns the content of all currently queued up sync items of a given user.\n * @param userId The ID of the user whose synchronization items should be returned.\n * @param type The identifying type of the synchronization items to be returned..\n */ export async function getSynchronizationItemsFor(userId, type) {\n const fullItems = await getFullSynchronizationItemsFor(userId, type);\n return fullItems.map((item)=>item.content);\n}\n/**\n * Returns all currently queued up sync items of a given user.\n * @param userId The ID of the user whose synchronization items should be returned.\n * @param type The identifying type of the synchronization items to be returned..\n */ export async function getFullSynchronizationItemsFor(userId, type) {\n const filter = type ? {\n type,\n userId\n } : {\n userId\n };\n return await db.syncQueue.where(filter).toArray().catch(Dexie.errnames.DatabaseClosed, ()=>[]);\n}\n/**\n * Returns the content of all currently queued up sync items of the currently signed in user.\n * @param type The identifying type of the synchronization items to be returned.\n */ export async function getSynchronizationItems(type) {\n const userId = await getUserId();\n return await getSynchronizationItemsFor(userId, type);\n}\n/**\n * Returns all currently queued up sync items of the currently signed in user.\n * @param type The identifying type of the synchronization items to be returned.\n */ export async function getFullSynchronizationItems(type) {\n const userId = await getUserId();\n return await getFullSynchronizationItemsFor(userId, type);\n}\n/**\n * Returns a queued sync item with the given ID or `undefined` if no such item exists.\n * @param id The ID of the requested sync item.\n */ export async function getSynchronizationItem(id) {\n return await db.syncQueue.get(id).catch(Dexie.errnames.DatabaseClosed, ()=>undefined);\n}\n/**\n * Returns whether editing synchronization items of the given type is supported by the currently\n * registered synchronization handlers.\n * @param type The identifying type of the synchronization item which should be edited.\n */ export function canBeginEditSynchronizationItemsOfType(type) {\n // Editing an item can be requested as long as callback for this flow exists on the associated handler.\n return !!handlers[type]?.options.onBeginEditSyncItem;\n}\n/**\n * Triggers an edit flow for the given synchronization item.\n * If this is not possible, throws an error.\n * @param id The ID of the synchronization item to be edited.\n */ export async function beginEditSynchronizationItem(id) {\n const item = await getSynchronizationItem(id);\n if (!item) {\n throw new Error(`No sync item with the ID ${id} exists.`);\n }\n const editCallback = handlers[item.type]?.options.onBeginEditSyncItem;\n if (!editCallback) {\n throw new Error(`A sync item with the ID ${id} exists, but the associated handler (if one exists) doesn't support editing the item. You can avoid this error by either verifying that sync items of this type can be edited via the \"canEditSynchronizationItemsOfType(type: string)\" function or alternatively ensure that the synchronizaton handler for sync items of type \"${item.type}\" supports editing items.`);\n }\n editCallback(item);\n}\n/**\n * Deletes a queued up sync item with the given ID.\n * @param id The ID of the synchronization item to be deleted.\n */ export async function deleteSynchronizationItem(id) {\n await db.syncQueue.delete(id).catch(Dexie.errnames.DatabaseClosed);\n}\n/**\n * Registers a new synchronization handler which is able to synchronize data of a specific type.\n * @param type The identifying type of the synchronization items which can be handled by this handler.\n * @param dependsOn An array of other sync item types which must be synchronized before this handler\n * can synchronize its own data. Items of these types are effectively dependencies of the data\n * synchronized by this handler.\n * @param process A function which, when invoked, performs the actual client-server synchronization of the given\n * `item` (which is the actual data to be synchronized).\n * @param options Additional options which can optionally be provided when setting up a synchronization callback\n * for a specific synchronization item type.\n */ export function setupOfflineSync(type, dependsOn, process, options = {}) {\n handlers[type] = {\n type,\n dependsOn,\n process,\n options\n };\n}\n","import { createContext } from \"react\";\n/**\n * Available to all components. Provided by `openmrsComponentDecorator`.\n */ export const ComponentContext = createContext({\n moduleName: '',\n featureName: ''\n});\n","/** @module @category API */ import { useMemo } from \"react\";\nimport useSWRImmutable from \"swr/immutable\";\nimport { openmrsFetch, restBaseUrl } from \"@openmrs/esm-api\";\n/*\n * Add other properties as needed. Maintain alphabetical order. Keep in lockstep with the interface above.\n */ const customRepProps = [\n [\n 'admissionDecisionConcept',\n 'ref'\n ],\n [\n 'admissionEncounterType',\n 'ref'\n ],\n [\n 'admissionForm',\n 'ref'\n ],\n [\n 'atFacilityVisitType',\n 'ref'\n ],\n [\n 'bedAssignmentEncounterType',\n 'ref'\n ],\n [\n 'cancelADTRequestEncounterType',\n 'ref'\n ],\n [\n 'checkInClerkEncounterRole',\n 'ref'\n ],\n [\n 'checkInEncounterType',\n 'ref'\n ],\n [\n 'clinicianEncounterRole',\n 'ref'\n ],\n [\n 'conceptSourcesForDiagnosisSearch',\n 'ref'\n ],\n [\n 'consultEncounterType',\n 'ref'\n ],\n [\n 'consultFreeTextCommentsConcept',\n 'ref'\n ],\n [\n 'denyAdmissionConcept',\n 'ref'\n ],\n [\n 'diagnosisMetadata',\n 'ref'\n ],\n [\n 'diagnosisSets',\n 'ref'\n ],\n [\n 'dischargeForm',\n 'ref'\n ],\n [\n 'dispositionDescriptor',\n 'ref'\n ],\n [\n 'dispositions',\n 'ref'\n ],\n [\n 'emrApiConceptSource',\n 'ref'\n ],\n [\n 'exitFromInpatientEncounterType',\n 'ref'\n ],\n [\n 'extraPatientIdentifierTypes',\n 'ref'\n ],\n [\n 'fullPrivilegeLevel',\n 'ref'\n ],\n [\n 'highPrivilegeLevel',\n 'ref'\n ],\n [\n 'identifierTypesToSearch',\n 'ref'\n ],\n [\n 'inpatientNoteEncounterType',\n 'ref'\n ],\n [\n 'lastViewedPatientSizeLimit',\n 'ref'\n ],\n [\n 'metadataSourceName',\n 'ref'\n ],\n [\n 'motherChildRelationshipType',\n 'ref'\n ],\n [\n 'narrowerThanConceptMapType',\n 'ref'\n ],\n [\n 'nonDiagnosisConceptSets',\n 'ref'\n ],\n [\n 'orderingProviderEncounterRole',\n 'ref'\n ],\n [\n 'patientDiedConcept',\n 'ref'\n ],\n [\n 'personImageDirectory',\n 'ref'\n ],\n [\n 'primaryIdentifierType',\n 'ref'\n ],\n [\n 'sameAsConceptMapType',\n 'ref'\n ],\n [\n 'suppressedDiagnosisConcepts',\n 'ref'\n ],\n [\n 'supportsAdmissionLocationTag',\n '(uuid,display,name,links)'\n ],\n [\n 'supportsLoginLocationTag',\n '(uuid,display,name,links)'\n ],\n [\n 'supportsTransferLocationTag',\n '(uuid,display,name,links)'\n ],\n [\n 'supportsVisitsLocationTag',\n '(uuid,display,name,links)'\n ],\n [\n 'telephoneAttributeType',\n 'ref'\n ],\n [\n 'testPatientPersonAttributeType',\n 'ref'\n ],\n [\n 'transferForm',\n 'ref'\n ],\n [\n 'transferRequestEncounterType',\n 'ref'\n ],\n [\n 'transferWithinHospitalEncounterType',\n 'ref'\n ],\n [\n 'unknownCauseOfDeathConcept',\n 'ref'\n ],\n [\n 'unknownLocation',\n 'ref'\n ],\n [\n 'unknownPatientPersonAttributeType',\n 'ref'\n ],\n [\n 'unknownProvider',\n 'ref'\n ],\n [\n 'visitAssignmentHandlerAdjustEncounterTimeOfDayIfNecessary',\n 'ref'\n ],\n [\n 'visitExpireHours',\n 'ref'\n ],\n [\n 'visitNoteEncounterType',\n 'ref'\n ]\n];\nconst customRepresentation = `custom:${customRepProps.map(([prop, rep])=>`${prop}:${rep}`).join(',')}`;\n/**\n * React hook for fetching and managing OpenMRS EMR configuration\n * @returns {Object} Object containing:\n * - emrConfiguration: EmrApiConfigurationResponse | undefined - The EMR configuration data\n * - isLoadingEmrConfiguration: boolean - Loading state indicator\n * - mutateEmrConfiguration: Function - SWR's mutate function for manual revalidation\n * - errorFetchingEmrConfiguration: Error | undefined - Error object if request fails\n */ export function useEmrConfiguration() {\n const url = `${restBaseUrl}/emrapi/configuration?v=${customRepresentation}`;\n const swrData = useSWRImmutable(url, openmrsFetch);\n const results = useMemo(()=>({\n emrConfiguration: swrData.data?.data,\n isLoadingEmrConfiguration: swrData.isLoading,\n mutateEmrConfiguration: swrData.mutate,\n errorFetchingEmrConfiguration: swrData.error\n }), [\n swrData\n ]);\n return results;\n}\n","import { getExtensionInternalStore } from \"@openmrs/esm-extensions\";\nimport { createUseStore } from \"./useStore.js\";\n/** @internal\n * @deprecated Use `useStore(getExtensionInternalStore())`\n */ export const useExtensionInternalStore = createUseStore(getExtensionInternalStore());\n","/** @module @category Extension */ import { getExtensionStore } from \"@openmrs/esm-extensions\";\nimport { createUseStore } from \"./useStore.js\";\nexport const useExtensionStore = createUseStore(getExtensionStore());\n","/** @module @category Store */ import { subscribeTo } from \"@openmrs/esm-state\";\nimport { useEffect, useMemo, useState } from \"react\";\nfunction bindActions(store, actions) {\n if (typeof actions == 'function') {\n actions = actions(store);\n }\n const bound = {};\n for (const [actionName, actionFunction] of Object.entries(actions)){\n const boundFunction = function(...args) {\n store.setState((state)=>{\n return actionFunction(state, ...args);\n });\n };\n bound[actionName] = boundFunction;\n }\n return bound;\n}\nconst defaultSelectFunction = ()=>(x)=>x;\nfunction useStore(store, select = defaultSelectFunction(), actions) {\n const [state, setState] = useState(()=>select(store.getState()));\n useEffect(()=>subscribeTo(store, select, setState), [\n store,\n select\n ]);\n let boundActions = useMemo(()=>actions ? bindActions(store, actions) : {}, [\n store,\n actions\n ]);\n return {\n ...state,\n ...boundActions\n };\n}\n/**\n *\n * @param store A zustand store\n * @param actions\n * @returns\n */ function useStoreWithActions(store, actions) {\n return useStore(store, defaultSelectFunction(), actions);\n}\n/**\n * Whenever possible, use `useStore(yourStore)` instead. This function is for creating a\n * custom hook for a specific store.\n */ function createUseStore(store) {\n function useStore(actions) {\n const [state, set] = useState(store.getState());\n useEffect(()=>store.subscribe((state)=>set(state)), []);\n let boundActions = useMemo(()=>actions ? bindActions(store, actions) : {}, [\n actions\n ]);\n return {\n ...state,\n ...boundActions\n };\n }\n return useStore;\n}\nexport { createUseStore, useStore, useStoreWithActions };\n","/** @module @category API */ import { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport useSWR from \"swr\";\nimport dayjs from \"dayjs\";\nimport isToday from \"dayjs/plugin/isToday.js\";\nimport { openmrsFetch, restBaseUrl } from \"@openmrs/esm-api\";\nimport { defaultVisitCustomRepresentation } from \"@openmrs/esm-emr-api\";\nimport { useVisitContextStore } from \"./useVisitContextStore.js\";\ndayjs.extend(isToday);\n/**\n * This React hook returns visit information if the patient UUID is not null. There are\n * potentially two relevant visits at a time: \"active\" and \"current\".\n *\n * The active visit is the most recent visit without an end date. The presence of an active\n * visit generally means that the patient is in the facility.\n *\n * The current visit is the active visit, unless a retrospective visit has been selected.\n * If there is no active visit and no selected retrospective visit, then there is no\n * current visit. If there is no active visit but there is a retrospective visit, then\n * the retrospective visit is the current visit. `currentVisitIsRetrospective` tells you\n * whether the current visit is a retrospective visit.\n *\n * The active visit and current visit require two separate API calls. `error` contains\n * the error from either one, if there is an error. `isValidating` is true if either\n * API call is in progress. `mutate` refreshes the data from both API calls.\n *\n * @param patientUuid Unique patient identifier `string`\n * @param representation The custom representation of the visit\n */ export function useVisit(patientUuid, representation = defaultVisitCustomRepresentation) {\n const { patientUuid: visitStorePatientUuid, manuallySetVisitUuid, setVisitContext } = useVisitContextStore();\n // Ignore the visit store data if it is not for this patient\n const retrospectiveVisitUuid = patientUuid && visitStorePatientUuid == patientUuid ? manuallySetVisitUuid : null;\n const activeVisitUrlSuffix = `?patient=${patientUuid}&v=${representation}&includeInactive=false`;\n const retrospectiveVisitUrlSuffix = `/${retrospectiveVisitUuid}?v=${representation}`;\n const { data: activeData, error: activeError, mutate: activeMutate, isValidating: activeIsValidating } = useSWR(patientUuid ? `${restBaseUrl}/visit${activeVisitUrlSuffix}` : null, openmrsFetch);\n const { data: retroData, error: retroError, mutate: retroMutate, isValidating: retroIsValidating } = useSWR(patientUuid && retrospectiveVisitUuid ? `${restBaseUrl}/visit${retrospectiveVisitUrlSuffix}` : null, openmrsFetch);\n const activeVisit = useMemo(()=>activeData?.data.results.find((visit)=>visit.stopDatetime === null) ?? null, [\n activeData\n ]);\n const currentVisit = useMemo(()=>retrospectiveVisitUuid && retroData ? retroData.data : null, [\n retroData,\n retrospectiveVisitUuid\n ]);\n const previousCurrentVisit = useRef(null);\n useEffect(()=>{\n // if an active visit is created and there is no visit in context, set the context to the active visit\n if (manuallySetVisitUuid == null && !activeIsValidating && activeVisit) {\n setVisitContext(activeVisit);\n }\n if (!retroIsValidating) {\n // if the current visit happened to be active but it just got ended (inactive), remove the\n // visit from context\n if (previousCurrentVisit.current && currentVisit && previousCurrentVisit.current.uuid === currentVisit.uuid && !previousCurrentVisit.current.stopDatetime && currentVisit.stopDatetime) {\n setVisitContext(null);\n }\n previousCurrentVisit.current = currentVisit;\n }\n }, [\n currentVisit,\n manuallySetVisitUuid,\n activeVisit,\n activeIsValidating,\n retroIsValidating\n ]);\n const mutateVisit = useCallback(()=>{\n activeMutate();\n retroMutate();\n }, [\n activeVisit,\n currentVisit,\n activeMutate,\n retroMutate\n ]);\n useVisitContextStore(mutateVisit);\n return {\n error: activeError || retroError,\n mutate: mutateVisit,\n isValidating: activeIsValidating || retroIsValidating,\n activeVisit,\n currentVisit,\n currentVisitIsRetrospective: Boolean(retrospectiveVisitUuid),\n isLoading: Boolean((!activeData || retrospectiveVisitUuid && !retroData) && (!activeError || !retroError))\n };\n}\n","/** @module @category Store */ import { shallowEqual } from \"@openmrs/esm-utils\";\nimport { createStore } from \"zustand/vanilla\";\nconst availableStores = {};\n// spaEnv isn't available immediately. Wait a bit before making stores available\n// on window in development mode.\nsetTimeout(()=>{\n if (window.spaEnv === 'development') {\n window['stores'] = availableStores;\n }\n}, 1000);\n/**\n * Creates a Zustand store.\n *\n * @param name A name by which the store can be looked up later.\n * Must be unique across the entire application.\n * @param initialState An object which will be the initial state of the store.\n * @returns The newly created store.\n */ export function createGlobalStore(name, initialState) {\n const available = availableStores[name];\n if (available) {\n if (available.active) {\n console.error(`Attempted to override the existing store ${name}. Make sure that stores are only created once.`);\n } else {\n available.value.setState(initialState, true);\n }\n available.active = true;\n return available.value;\n } else {\n const store = createStore()(()=>initialState);\n availableStores[name] = {\n value: store,\n active: true\n };\n return store;\n }\n}\n/**\n * Registers an existing Zustand store.\n *\n * @param name A name by which the store can be looked up later.\n * Must be unique across the entire application.\n * @param store The Zustand store to use for this.\n * @returns The newly registered store.\n */ export function registerGlobalStore(name, store) {\n const available = availableStores[name];\n if (available) {\n if (available.active) {\n console.error(`Attempted to override the existing store ${name}. Make sure that stores are only created once.`);\n } else {\n available.value = store;\n }\n available.active = true;\n return available.value;\n } else {\n availableStores[name] = {\n value: store,\n active: true\n };\n return store;\n }\n}\n/**\n * Returns the existing store named `name`,\n * or creates a new store named `name` if none exists.\n *\n * @param name The name of the store to look up.\n * @param fallbackState The initial value of the new store if no store named `name` exists.\n * @returns The found or newly created store.\n */ export function getGlobalStore(name, fallbackState) {\n const available = availableStores[name];\n if (!available) {\n const store = createStore()(()=>fallbackState ?? {});\n availableStores[name] = {\n value: store,\n active: false\n };\n return store;\n }\n return available.value;\n}\nexport function subscribeTo(...args) {\n const [store, select, handle] = args;\n const handler = typeof handle === 'undefined' ? select : handle;\n const selector = typeof handle === 'undefined' ? (state)=>state : select;\n handler(selector(store.getState()));\n return store.subscribe((state, previous)=>{\n const current = selector(state);\n if (!shallowEqual(previous, current)) {\n handler(current);\n }\n });\n}\n","/** @module @category Translation */ import { coreTranslations } from \"./translations.js\";\nimport _i18n from \"i18next\";\nconst i18n = _i18n.default || _i18n;\ni18n.on('initialized', function() {\n window.i18next.loadNamespaces([\n 'core'\n ]);\n});\n/**\n * This function is for getting a translation from a specific module. Use this only if the\n * translation is neither in the app making the call, nor in the core translations.\n * This function is useful, for example, in libraries that are used by multiple apps, since libraries can't\n * define their own translations.\n *\n * Translations within the current app should be accessed with the i18next API, using\n * `useTranslation` and `t` as usual. Core translations should be accessed with the\n * [[getCoreTranslation]] function.\n *\n * IMPORTANT: This function creates a hidden dependency on the module. Worse yet, it creates\n * a dependency specifically on that module's translation keys, which are often regarded as\n * \"implementation details\" and therefore may be volatile. Also note that this function DOES NOT\n * load the module's translations if they have not already been loaded via `useTranslation`.\n * **This function should therefore be avoided when possible.**\n *\n * @param moduleName The module to get the translation from, e.g. '@openmrs/esm-login-app'\n * @param key The i18next translation key\n * @param fallback Fallback text for if the lookup fails\n * @param options Options object passed to the i18next `t` function. See https://www.i18next.com/translation-function/essentials#overview-options\n * for more information. `ns` and `defaultValue` are already set and may not be used.\n * @returns The translated text as a string\n */ export function translateFrom(moduleName, key, fallback, options) {\n return i18n.t(key, {\n ns: moduleName,\n defaultValue: fallback,\n ...options\n });\n}\n/**\n * Use this function to obtain a translation from the core translations. This is a way to avoid having\n * to define common translations in your app, and to ensure that translations are consistent across\n * different apps. This function is also used to obtain translations in the framework and app shell.\n *\n * The complete set of core translations is available on the `CoreTranslationKey` type. Providing an\n * invalid key to this function will result in a type error.\n *\n * @param options Object passed to the i18next `t` function. See https://www.i18next.com/translation-function/essentials#overview-options\n * for more information. `ns` and `defaultValue` are already set and may not be used.\n */ export function getCoreTranslation(key, defaultText, options) {\n if (!coreTranslations[key]) {\n console.error(`O3 Core Translations does not provide key '${key}'. The key itself is being rendered as text.`);\n return key;\n }\n return translateFrom('core', key, defaultText ?? coreTranslations[key], options);\n}\n","export function isOnline(online) {\n return window.offlineEnabled ? online ?? navigator.onLine : true;\n}\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"\n );\n }\n listeners.clear();\n };\n const api = { setState, getState, getInitialState, subscribe, destroy };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\nvar vanilla = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.\"\n );\n }\n return createStore(createState);\n};\n\nexport { createStore, vanilla as default };\n","var webpackQueues =\n\ttypeof Symbol === \"function\"\n\t\t? Symbol(\"webpack queues\")\n\t\t: \"__webpack_queues__\";\nvar webpackExports =\n\ttypeof Symbol === \"function\"\n\t\t? Symbol(\"webpack exports\")\n\t\t: \"__webpack_exports__\";\nvar webpackError =\n\ttypeof Symbol === \"function\" ? Symbol(\"webpack error\") : \"__webpack_error__\";\nvar resolveQueue = (queue) => {\n if (queue && queue.d < 1) {\n queue.d = 1;\n queue.forEach((fn) => (fn.r--));\n\t\tqueue.forEach((fn) => (fn.r-- ? fn.r++ : fn()));\n\t}\n}\nvar wrapDeps = (deps) => {\n\treturn deps.map((dep) => {\n\t\tif (dep !== null && typeof dep === \"object\") {\n\t\t\tif (dep[webpackQueues]) return dep;\n\t\t\tif (dep.then) {\n\t\t\t\tvar queue = [];\n\t\t\t\tqueue.d = 0;\n\t\t\t\tdep.then((r) => {\n\t\t\t\t\tobj[webpackExports] = r;\n\t\t\t\t\tresolveQueue(queue);\n\t\t\t\t},(e) => {\n\t\t\t\t\tobj[webpackError] = e;\n\t\t\t\t\tresolveQueue(queue);\n\t\t\t\t});\n\t\t\t\tvar obj = {};\n\t\t\t\tobj[webpackQueues] = (fn) => (fn(queue));\n\t\t\t\treturn obj;\n\t\t\t}\n\t\t}\n\t\tvar ret = {};\n\t\tret[webpackQueues] = function() {};\n\t\tret[webpackExports] = dep;\n\t\treturn ret;\n\t});\n};\n__webpack_require__.a = (module, body, hasAwait) => {\n\tvar queue;\n\thasAwait && ((queue = []).d = -1);\n\tvar depQueues = new Set();\n\tvar exports = module.exports;\n\tvar currentDeps;\n\tvar outerResolve;\n\tvar reject;\n\tvar promise = new Promise((resolve, rej) => {\n\t\treject = rej;\n\t\touterResolve = resolve;\n\t});\n\tpromise[webpackExports] = exports;\n\tpromise[webpackQueues] = (fn) => { queue && fn(queue), depQueues.forEach(fn), promise[\"catch\"](function() {}); };\n\tmodule.exports = promise;\n\tbody((deps) => {\n\t\tcurrentDeps = wrapDeps(deps);\n\t\tvar fn;\n\t\tvar getResult = () => {\n\t\t\treturn currentDeps.map((d) => {\n\t\t\t\tif (d[webpackError]) throw d[webpackError];\n\t\t\t\treturn d[webpackExports];\n\t\t\t});\n\t\t}\n\t\tvar promise = new Promise((resolve) => {\n\t\t\tfn = () => (resolve(getResult));\n\t\t\tfn.r = 0;\n\t\t\tvar fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn))));\n\t\t\tcurrentDeps.map((dep) => (dep[webpackQueues](fnQueue)));\n\t\t});\n\t\treturn fn.r ? promise : getResult();\n\t}, (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue)));\n\tqueue && queue.d < 0 && (queue.d = 0);\n};","// getDefaultExport function for compatibility with non-ESM modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","__webpack_require__.rv = () => (\"1.3.11\")","__webpack_require__.ruid = \"bundler=rspack@1.3.11\";\n"],"names":["flags","e","r","enabled$1","process","env","CARBON_ENABLE_CSS_CUSTOM_PROPERTIES","enableCssCustomProperties","CARBON_ENABLE_CSS_GRID","enableCssGrid","CARBON_ENABLE_V11_RELEASE","enableV11Release","CARBON_ENABLE_EXPERIMENTAL_TILE_CONTRAST","enableExperimentalTileContrast","CARBON_ENABLE_V12_TILE_DEFAULT_ICONS","enableV12TileDefaultIcons","CARBON_ENABLE_V12_TILE_RADIO_ICONS","enableV12TileRadioIcons","CARBON_ENABLE_V12_OVERFLOWMENU","enableV12Overflowmenu","CARBON_ENABLE_TREEVIEW_CONTROLLABLE","enableTreeviewControllable","CARBON_ENABLE_V12_STRUCTURED_LIST_VISIBLE_ICONS","enableV12StructuredListVisibleIcons","CARBON_ENABLE_EXPERIMENTAL_FOCUS_WRAP_WITHOUT_SENTINELS","enableExperimentalFocusWrapWithoutSentinels","CARBON_ENABLE_DIALOG_ELEMENT","enableDialogElement","CARBON_ENABLE_V12_DYNAMIC_FLOATING_STYLES","enableV12DynamicFloatingStyles","error","featureFlagInfo","name","description","enabled","_arrayLikeToArray","a","length","n","Array","_unsupportedIterableToArray","t","toString","call","slice","constructor","from","test","FeatureFlagScope","_this","TypeError","Map","Object","keys","forEach","key","set","value","has","Error","concat","checkForFlag","_this2","scope","_step","_iterator","_createForOfIteratorHelper","Symbol","iterator","isArray","F","s","done","f","o","u","next","return","_step$value","_arrayWithHoles","_iterableToArrayLimit","l","i","push","_nonIterableRest","err","get","_defineProperties","enumerable","configurable","writable","defineProperty","_toPropertyKey","_toPrimitive","toPrimitive","String","Number","prototype","FeatureFlags","featureFlag","add","merge","apply","arguments","isToday","format","exports","module","define","amd","globalThis","self","dayjs_plugin_isToday","$","Pattern","require","optArgs","cb","string","options","Date","GeoPattern","generate","fn","geopattern","each","titleSha","attr","extend","hash","pattern","css","toDataUrl","jQuery","hex2rgb","hex","replace","m","g","b","result","exec","parseInt","rgb2hex","rgb","map","join","rgb2hsl","h","max","Math","min","d","hsl2rgb","hsl","hue2rgb","p","q","round","rgb2rgbString","color","SHA1","SVG","DEFAULTS","baseColor","PATTERNS","STROKE_COLOR","hexVal","index","len","substr","vMin","vMax","dMin","dMax","vValue","parseFloat","fillColor","val","fillOpacity","opts","svg","generateBackground","generatePattern","buildPlusShape","squareSize","buildRightTriangleShape","sideLength","drawInnerMosaicTile","x","y","triangleSize","vals","triangle","opacity","fill","styles","stroke","polyline","transform","translate","scale","drawOuterMosaicTile","toSvg","toBase64","b64","str","window","btoa","Buffer","toDataUri","hueOffset","satOffset","rect","generator","indexOf","toUpperCase","geoHexagons","dy","hexHeight","sqrt","hexWidth","c","sin","PI","setWidth","setHeight","geoSineWaves","xOffset","period","floor","amplitude","waveWidth","path","geoChevrons","chevronWidth","chevronHeight","chevron","height","width","group","end","geoPlusSigns","dx","plusSize","plusShape","geoXes","xShape","xSize","rotate","geoOverlappingCircles","radius","diameter","circle","geoOctogons","tile","geoSquares","geoConcentricCircles","ringSize","strokeWidth","geoOverlappingRings","geoTriangles","rotation","halfWidth","triangleHeight","geoDiamonds","diamondWidth","diamondHeight","diamond","geoNestedSquares","blockSize","geoMosaicSquares","geoPlaid","space","stripeHeight","stripeWidth","geoTessellation","tileWidth","tileHeight","create","h0","h1","h2","h3","h4","block","Uint32Array","offset","shift","totalLength","processBlock","k","w","temp","write","byte","toHex","word","update","chunk","updateString","charCodeAt","digest","buffer","undefined","shasum","XMLNode","context","setAttributes","xmlns","currentContext","pop","currentNode","lastChild","transformations","setAttribute","transformation","el","attrs","args","appendChild","cx","cy","points","tagName","attributes","children","child","hasOwn","hasOwnProperty","isPlainObject","obj","nodeType","setInterval","has_own_constructor","has_is_property_of_method","src","copy","copyIsArray","clone","target","deep","createRoot","hydrateRoot","initialFeatureFlags","getFeatureFlagsFromLocalStorage","localStorage","startsWith","flagName","meta","JSON","parse","getItem","featureFlagsStore","getGlobalStore","subscribe","state","flag","entries","setItem","stringify","label","Type","validators","carbonTagColors","createContext","createGlobalStore","modalContainer","modalStack","getComputedStyle","document","body","overflow","Subject","openWorkspaces","prompt","workspaceWindowState","workspaceGroup","classNames","classes","arg","appendClass","parseValue","includes","newClass","default","global","Promise","Reflect","setImmediate","setTimeout","isNaN","P","WeakMap","location","SyntaxError","RangeError","crypto","Uint8Array","MutationObserver","clearTimeout","AggregateError","CustomEvent","dispatchEvent","console","navigator","NaN","ArrayBuffer","indexedDB","clearInterval","addEventListener","BroadcastChannel","other","array","eq","uid","func","splice","arrayProto","ListCache","clear","entry","__data__","size","data","assocIndexOf","freeGlobal","freeSelf","root","Function","objectProto","nativeObjectToString","symToStringTag","isOwn","tag","unmasked","getRawTag","type","isObject","baseGetTag","coreJsData","maskSrcKey","funcToString","funcProto","reIsHostCtor","reIsNative","RegExp","isFunction","toSource","object","baseIsNative","getNative","nativeCreate","Hash","isKeyable","MapCache","Stack","SetCache","values","getMapData","pairs","LARGE_ARRAY_SIZE","predicate","bitmask","customizer","equalFunc","stack","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","arraySome","othIndex","cache","symbolProto","symbolValueOf","valueOf","byteLength","byteOffset","message","convert","mapToArray","setToArray","stacked","equalArrays","keysFunc","symbolsFunc","arrayPush","resIndex","propertyIsEnumerable","nativeGetSymbols","getOwnPropertySymbols","getSymbols","arrayFilter","symbol","iteratee","isObjectLike","isArguments","baseIsArguments","freeExports","freeModule","moduleExports","nativeIsBuffer","isBuffer","reIsUint","ex","typedArrayTags","freeProcess","nodeUtil","types","binding","nodeIsTypedArray","isTypedArray","isLength","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseTimes","isIndex","Ctor","nativeKeys","isPrototype","isArrayLike","arrayLikeKeys","baseKeys","baseGetAllKeys","objProps","getAllKeys","objLength","othProps","objStacked","skipCtor","objValue","objCtor","othCtor","DataView","Set","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","argsTag","arrayTag","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalByTag","COMPARE_PARTIAL_FLAG","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","baseIsEqual","baseIsEqualDeep","_ObjectMap","hashedKey","bucket","element","_curry1","_clone","_isPrimitive","param","copiedValue","cachedCopy","getPrototypeOf","source","ignoreCase","multiline","sticky","unicode","dotAll","_arrayFromIterator","iter","list","_includesWith","pred","idx","is","_isArguments","_has","hasEnumBug","nonEnumerableProps","hasArgsEnumBug","contains","item","prop","nIdx","ks","checkArgsLength","_uniqContentEquals","aIterator","bIterator","stackA","stackB","_a","_b","_equals","aItem","_objectIs","match","typeA","equals","_functionName","keysA","extendedStackA","extendedStackB","_curry2","f1","_isPlaceholder","f2","_curry3","f3","_c","_isObject","mergeWithKey","mergeDeepWithKey","lObj","rObj","lVal","rVal","arrayReduce","methodReduce","iterableReduce","_isArrayLike","_isArray","symIterator","bind","thisObj","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","_xReduce","xf","acc","methodName","step","reduce","XWrap","Parcel","React","Component","props","action","thing","hasError","nextThingToDo","resolve","then","unmounted","catch","setState","handleError","parcelProps","domElement","mountParcel","config","wrapWith","wrapStyle","appendTo","parcelDidMount","addThingToDo","createdDomElement","createElement","style","parcel","getParcelProps","mountPromise","_this3","_this4","getStatus","unmount","this","parentNode","removeChild","SingleSpaContext","Consumer","_this5","ref","handleRef","className","wrapClassName","sessionStore","loaded","session","userHasAccess","requiredPrivilege","user","Boolean","userHasPrivilege","isUndefined","privileges","find","display","every","rp","roles","role","locale","userProperties","defaultLocale","replaceAll","isValidLocale","Intl","Locale","documentElement","getAttribute","restBaseUrl","computeModuleConfig","configInternalStore","temporaryConfigStore","configState","tempConfigState","computeImplementerToolsConfig","computeExtensionSlotConfigs","computeExtensionConfigs","configExtensionStore","extensionState","displayedValidationMessages","tempState","moduleName","schemas","moduleStore","getConfigStore","moduleLoaded","getConfigForModule","schema","inputConfig","mergeConfigsFor","getProvidedConfigs","validateStructure","setDefaults","runAllValidatorsInConfigTree","extensionSlots","translationOverridesLoaded","getConfigForModuleImplicitSchema","implicitConfigSchema","slotConfigs","getExtensionSlotConfigs","allConfigs","mergeConfigs","slotConfigPerModule","validateAllExtensionSlotConfigs","configBySlotName","slotName","validateExtensionSlotConfig","keyPath","errorPrefix","invalidKeys","filter","logError","remove","order","configure","isOrdinaryObject","newSlotStoreEntries","fromEntries","slotStore","getExtensionSlotsConfigStore","oldState","getState","newState","slots","getImplementerToolsConfig","getSchemaWithValuesAndSources","_value","_default","_source","providedConfigs","createValuesAndSourcesTree","implementerToolsConfigStore","configs","extension","mountedExtensions","computeExtensionConfig","slotModuleName","extensionModuleName","extensionId","extensionName","getExtensionNameFromId","split","extensionConfigSchema","nameOfSchemaSource","slotModuleConfig","configOverride","extensionConfig","combinedConfig","getExtensionsConfigStore","allConfigsForModule","mergeDeepAll","mergeDeepRight","thisKeyPath","schemaPart","validateBranchStructure","checkType","_type","validateFreeformObjectStructure","freeformObjectSchema","_elements","validateArrayStructure","arraySchema","hasObjectSchema","runValidators","_validators","validator","isBoolean","ConceptUuid","isUuid","isNumber","isString","UUID","PersonAttributeTypeUuid","PatientIdentifierTypeUuid","returnValue","validatorResult","configPart","elements","configWithDefaults","conf","objectKey","selectedConfigPart","elementsSchema","translationOverridesSchema","_description","badKeys","getTemporaryConfig","getExtensionSlotConfigFromStore","slotConfig","getExtensionConfigFromStore","validationFunction","isUrlWithTemplateParameters","allowedTemplateParameters","allowedParams","rx","inRange","isUrl","oneOf","allowedValues","initialState","getVisitSessionStorage","sessionStorage","patientUuid","manuallySetVisitUuid","mutateVisitCallbacks","getVisitStore","BehaviorSubject","onerror","dispatchToastShown","kind","title","onunhandledrejection","event","reason","Hooks","callback","first","run","Plugins","jsep","registered","register","plugins","plugin","init","Jsep","expr","char","charAt","code","throwError","runHook","node","hooks","searchHook","gobbleSpaces","ch","SPACE_CODE","TAB_CODE","LF_CODE","CR_CODE","nodes","gobbleExpressions","COMPOUND","untilICode","ch_i","SEMCOL_CODE","COMMA_CODE","gobbleExpression","gobbleBinaryExpression","gobbleBinaryOp","to_check","max_binop_len","tc_len","binary_ops","isIdentifierStart","isIdentifierPart","biop","prec","biop_info","left","right","cur_biop","prev","gobbleToken","binaryPrecedence","right_a","right_associative","BINARY_EXP","operator","isDecimalDigit","PERIOD_CODE","gobbleNumericLiteral","SQUOTE_CODE","DQUOTE_CODE","gobbleStringLiteral","OBRACK_CODE","gobbleArray","max_unop_len","unary_ops","argument","UNARY_EXP","prefix","gobbleIdentifier","literals","LITERAL","raw","this_str","THIS_EXP","OPAREN_CODE","gobbleGroup","gobbleTokenProperty","QUMARK_CODE","optional","MEMBER_EXP","computed","property","CBRACK_CODE","CALL_EXP","gobbleArguments","CPAREN_CODE","callee","chCode","number","startIndex","quote","closed","substring","start","IDENTIFIER","termination","separator_count","fromCharCode","SEQUENCE_EXP","expressions","ARRAY_EXP","version","addUnaryOp","op_name","addBinaryOp","precedence","isRightAssociative","delete","addIdentifierChar","additional_identifier_chars","addLiteral","literal_name","literal_value","removeUnaryOp","getMaxKeyLen","removeAllUnaryOps","removeIdentifierChar","removeBinaryOp","removeAllBinaryOps","removeLiteral","removeAllLiterals","op_val","assign","COLON_CODE","stdClassProps","getOwnPropertyNames","Test","consequent","alternate","newTest","ARROW_EXP","globals","Infinity","BigInt","isFinite","decodeURI","encodeURI","encodeURIComponent","__proto__","evaluateAsBoolean","expression","variables","evaluateAsType","typePredicate","createSynchronousContext","globals_","addVariables","vars","visitExpression","booleanTypePredicate","handleNullableExpression","getCallTargetName","params","rest","isValidVariableType","visitMemberExpression","objectName","visitExpressionName","ReferenceError","propertyName","newObj","validatePropertyName","quasis","tail","cooked","backupIndex","updateBinariesToArrows","callNode","getNumberCodeRanges","numType","gobbleBase10","gobbleDigits","ranges","some","patternIndex","inCharSet","gobbleTemplateLiteral","gobbleMember","pushQuasi","quasi","extensionInternalStore","getExtensionInternalStore","extensionStore","getExtensionStore","slotsConfigStore","extensionsConfigStore","updateExtensionOutputStore","internalState","extensionSlotConfigs","featureFlagStore","isOnline","isOnlineFn","enabledFeatureFlags","slot","assignedExtensions","getAssignedExtensionsFromSlotData","extensionConfigStoreState","attachedIds","assignedIds","calculateAssignedIds","addedIds","removedIds","idOrder","extensions","id","sort","idA","idB","ai","getOrder","bi","requiredPrivileges","displayConditionExpression","offlineEnabled","checkStatusFor","online","offline","isEqual","updateOutputStoreToCurrent","configuredOrder","registeredOrderIndex","attachedOrder","configuredIndex","assignedIndex","internalStore","extensionConfigs","subscribeConnectivityChanged","status","basePath","spaBase","mode","modals","updateConfigExtensionStore","configExtensionRecords","extensionInfo","instance","instances","workspaces","workspaceGroups","connectivityChangedEventName","handler","ev","detail","removeEventListener","_define_property","OfflineDb","Dexie","stores","syncQueue","dynamicOfflineData","table","offlinePatientDataSyncState","handlers","_","MessageChannel","URL","performance","featureName","customRepProps","rep","createUseStore","store","actions","useState","useEffect","boundActions","useMemo","bindActions","bound","actionName","actionFunction","boundFunction","dayjs","availableStores","available","active","createStore","fallbackState","spaEnv","i18n","_i18n","on","i18next","loadNamespaces","onLine"],"mappings":"uIAOA,IAwaqBA,EAzOCC,EAAGC,EA/LrBC,EAAY,CAAC,EACjB,GAAI,CACEC,QAAQC,GAAG,CAACC,mCAAmC,EAC7CF,AAAoD,SAApDA,QAAQC,GAAG,CAACC,mCAAmC,CACjDH,EAAUI,yBAAyB,CAAG,GAEtCJ,EAAUI,yBAAyB,CAAG,GAKtCH,QAAQC,GAAG,CAACG,sBAAsB,EAChCJ,AAAuC,SAAvCA,QAAQC,GAAG,CAACG,sBAAsB,CACpCL,EAAUM,aAAa,CAAG,GAE1BN,EAAUM,aAAa,CAAG,GAK1BL,QAAQC,GAAG,CAACK,yBAAyB,CACnCN,AAA0C,SAA1CA,QAAQC,GAAG,CAACK,yBAAyB,CACvCP,EAAUQ,gBAAgB,CAAG,GAE7BR,EAAUQ,gBAAgB,CAAG,GAG/BR,EAAUQ,gBAAgB,CAAG,GAE3BP,QAAQC,GAAG,CAACO,wCAAwC,EAClDR,AAAyD,SAAzDA,QAAQC,GAAG,CAACO,wCAAwC,CACtDT,EAAUU,8BAA8B,CAAG,GAE3CV,EAAUU,8BAA8B,CAAG,GAK3CT,QAAQC,GAAG,CAACS,oCAAoC,EAC9CV,AAAqD,SAArDA,QAAQC,GAAG,CAACS,oCAAoC,CAClDX,EAAUY,yBAAyB,CAAG,GAEtCZ,EAAUY,yBAAyB,CAAG,GAKtCX,QAAQC,GAAG,CAACW,kCAAkC,EAC5CZ,AAAmD,SAAnDA,QAAQC,GAAG,CAACW,kCAAkC,CAChDb,EAAUc,uBAAuB,CAAG,GAEpCd,EAAUc,uBAAuB,CAAG,GAKpCb,QAAQC,GAAG,CAACa,8BAA8B,EACxCd,AAA+C,SAA/CA,QAAQC,GAAG,CAACa,8BAA8B,CAC5Cf,EAAUgB,qBAAqB,CAAG,GAElChB,EAAUgB,qBAAqB,CAAG,GAKlCf,QAAQC,GAAG,CAACe,mCAAmC,EAC7ChB,AAAoD,SAApDA,QAAQC,GAAG,CAACe,mCAAmC,CACjDjB,EAAUkB,0BAA0B,CAAG,GAEvClB,EAAUkB,0BAA0B,CAAG,GAKvCjB,QAAQC,GAAG,CAACiB,+CAA+C,EACzDlB,AAAgE,SAAhEA,QAAQC,GAAG,CAACiB,+CAA+C,CAC7DnB,EAAUoB,mCAAmC,CAAG,GAEhDpB,EAAUoB,mCAAmC,CAAG,GAKhDnB,QAAQC,GAAG,CAACmB,uDAAuD,EACjEpB,AAAwE,SAAxEA,QAAQC,GAAG,CAACmB,uDAAuD,CACrErB,EAAUsB,2CAA2C,CAAG,GAExDtB,EAAUsB,2CAA2C,CAAG,GAKxDrB,QAAQC,GAAG,CAACqB,4BAA4B,EACtCtB,AAA6C,SAA7CA,QAAQC,GAAG,CAACqB,4BAA4B,CAC1CvB,EAAUwB,mBAAmB,CAAG,GAEhCxB,EAAUwB,mBAAmB,CAAG,GAKhCvB,QAAQC,GAAG,CAACuB,yCAAyC,EACnDxB,AAA0D,SAA1DA,QAAQC,GAAG,CAACuB,yCAAyC,CACvDzB,EAAU0B,8BAA8B,CAAG,GAE3C1B,EAAU0B,8BAA8B,CAAG,EAKjD,CAAE,MAAOC,EAAO,CACd3B,EAAUI,yBAAyB,CAAG,GACtCJ,EAAUM,aAAa,CAAG,GAC1BN,EAAUQ,gBAAgB,CAAG,GAC7BR,EAAUU,8BAA8B,CAAG,GAC3CV,EAAUY,yBAAyB,CAAG,GACtCZ,EAAUc,uBAAuB,CAAG,GACpCd,EAAUgB,qBAAqB,CAAG,GAClChB,EAAUkB,0BAA0B,CAAG,GACvClB,EAAUoB,mCAAmC,CAAG,GAChDpB,EAAUsB,2CAA2C,CAAG,GACxDtB,EAAUwB,mBAAmB,CAAG,GAChCxB,EAAU0B,8BAA8B,CAAG,EAC7C,CACA,IAAIE,EAAkB,CAAC,CACrBC,KAAM,+BACNC,YAAa,8BACbC,QAAS/B,EAAUI,yBAAyB,AAC9C,EAAG,CACDyB,KAAM,kBACNC,YAAa,mEACbC,QAAS/B,EAAUM,aAAa,AAClC,EAAG,CACDuB,KAAM,qBACNC,YAAa,8DACbC,QAAS/B,EAAUQ,gBAAgB,AACrC,EAAG,CACDqB,KAAM,oCACNC,YAAa,0DACbC,QAAS/B,EAAUU,8BAA8B,AACnD,EAAG,CACDmB,KAAM,gCACNC,YAAa,6DACbC,QAAS/B,EAAUY,yBAAyB,AAC9C,EAAG,CACDiB,KAAM,8BACNC,YAAa,+DACbC,QAAS/B,EAAUc,uBAAuB,AAC5C,EAAG,CACDe,KAAM,0BACNC,YAAa,6EACbC,QAAS/B,EAAUgB,qBAAqB,AAC1C,EAAG,CACDa,KAAM,+BACNC,YAAa,6CACbC,QAAS/B,EAAUkB,0BAA0B,AAC/C,EAAG,CACDW,KAAM,2CACNC,YAAa,oEACbC,QAAS/B,EAAUoB,mCAAmC,AACxD,EAAG,CACDS,KAAM,mDACNC,YAAa,uEACbC,QAAS/B,EAAUsB,2CAA2C,AAChE,EAAG,CACDO,KAAM,wBACNC,YAAa,2DACbC,QAAS/B,EAAUwB,mBAAmB,AACxC,EAAG,CACDK,KAAM,qCACNC,YAAa,yFACbC,QAAS/B,EAAU0B,8BAA8B,AACnD,EAAE,CAEF,SAASM,EAAkBjC,CAAC,CAAEkC,CAAC,EAC5B,OAAQA,GAAKA,EAAIlC,EAAEmC,MAAK,GAAOD,CAAAA,EAAIlC,EAAEmC,MAAK,EAC3C,IAAK,IAAIpC,EAAI,EAAGqC,EAAIC,MAAMH,GAAInC,EAAImC,EAAGnC,IAAKqC,CAAC,CAACrC,EAAE,CAAGC,CAAC,CAACD,EAAE,CACrD,OAAOqC,CACT,CAiHA,SAASE,EAA4BtC,CAAC,CAAEkC,CAAC,EACvC,GAAIlC,EAAG,CACL,GAAI,UAAY,OAAOA,EAAG,OAAOiC,EAAkBjC,EAAGkC,GACtD,IAAIK,EAAI,EAAC,GAAEC,QAAQ,CAACC,IAAI,CAACzC,GAAG0C,KAAK,CAAC,EAAG,IACrC,MAAO,WAAaH,GAAKvC,EAAE2C,WAAW,EAAKJ,CAAAA,EAAIvC,EAAE2C,WAAW,CAACb,IAAG,EAAI,QAAUS,GAAK,QAAUA,EAAIF,MAAMO,IAAI,CAAC5C,GAAK,cAAgBuC,GAAK,2CAA2CM,IAAI,CAACN,GAAKN,EAAkBjC,EAAGkC,GAAK,KAAK,CAC5N,CACF,CA2HA,IAAK,IAlHDY,GAnHkB/C,EAoHpB,SAAS+C,EAAiBhD,CAAK,EAC7B,IAAIiD,EAAQ,IAAI,CA9HQX,EA+HFU,EA9HxB,G,MAAmBV,G,4BAAAA,C,sBAAAA,C,qBA8HD,IAAI,G,CAAJ,IAAI,YA9HHA,C,EAAI,MAAM,AAAIY,UAAU,oCA+HzC,KAAI,CAAClD,KAAK,CAAG,IAAImD,IACbnD,GACFoD,OAAOC,IAAI,CAACrD,GAAOsD,OAAO,CAAC,SAAUC,CAAG,EACtCN,EAAMjD,KAAK,CAACwD,GAAG,CAACD,EAAKvD,CAAK,CAACuD,EAAI,CACjC,EAEJ,EA7HuBrD,EAmIe,CAAC,CACrCqD,IAAK,eACLE,MAAO,SAAsBzB,CAAI,EAC/B,GAAI,CAAC,IAAI,CAAChC,KAAK,CAAC0D,GAAG,CAAC1B,GAClB,MAAM,AAAI2B,MAAM,iDAAiDC,MAAM,CAAC5B,EAAM,KAElF,CAOF,EAAG,CACDuB,IAAK,MACLE,MAAO,SAAazB,CAAI,CAAEE,CAAO,EAC/B,GAAI,IAAI,CAAClC,KAAK,CAAC0D,GAAG,CAAC1B,GACjB,MAAM,AAAI2B,MAAM,qBAAqBC,MAAM,CAAC5B,EAAM,oBAEpD,IAAI,CAAChC,KAAK,CAACwD,GAAG,CAACxB,EAAME,EACvB,CAMF,EAAG,CACDqB,IAAK,SACLE,MAAO,SAAgBzB,CAAI,EACzB,IAAI,CAAC6B,YAAY,CAAC7B,GAClB,IAAI,CAAChC,KAAK,CAACwD,GAAG,CAACxB,EAAM,GACvB,CAMF,EAAG,CACDuB,IAAK,UACLE,MAAO,SAAiBzB,CAAI,EAC1B,IAAI,CAAC6B,YAAY,CAAC7B,GAClB,IAAI,CAAChC,KAAK,CAACwD,GAAG,CAACxB,EAAM,GACvB,CAOF,EAAG,CACDuB,IAAK,QACLE,MAAO,SAAezD,CAAK,EACzB,IAAI8D,EAAS,IAAI,CACjBV,OAAOC,IAAI,CAACrD,GAAOsD,OAAO,CAAC,SAAUC,CAAG,EACtCO,EAAO9D,KAAK,CAACwD,GAAG,CAACD,EAAKvD,CAAK,CAACuD,EAAI,CAClC,EACF,CAKF,EAAG,CACDA,IAAK,iBACLE,MAAO,SAAwBM,CAAK,EAClC,IACEC,EADEC,EAAYC,AA9LtB,SAAoChE,CAAC,CAAED,CAAC,EACtC,IAAIwC,EAAI,aAAe,OAAO0B,QAAUjE,CAAC,CAACiE,OAAOC,QAAQ,CAAC,EAAIlE,CAAC,CAAC,aAAa,CAC7E,GAAI,CAACuC,EAAG,CACN,GAAIF,MAAM8B,OAAO,CAACnE,IAAOuC,CAAAA,EAAID,EAA4BtC,EAAC,EAA6C,CACrGuC,GAAMvC,CAAAA,EAAIuC,CAAAA,EACV,IAAIH,EAAI,EACNgC,EAAI,WAAa,EACnB,MAAO,CACLC,EAAGD,EACHhC,EAAG,WACD,OAAOA,GAAKpC,EAAEmC,MAAM,CAAG,CACrBmC,KAAM,CAAC,CACT,EAAI,CACFA,KAAM,CAAC,EACPf,MAAOvD,CAAC,CAACoC,IAAI,AACf,CACF,EACArC,EAAG,SAAUC,CAAC,EACZ,MAAMA,CACR,EACAuE,EAAGH,CACL,CACF,CACA,MAAM,AAAIpB,UAAU,wIACtB,CACA,IAAIwB,EACFtC,EAAI,CAAC,EACLuC,EAAI,CAAC,EACP,MAAO,CACLJ,EAAG,WACD9B,EAAIA,EAAEE,IAAI,CAACzC,EACb,EACAoC,EAAG,WACD,IAAIpC,EAAIuC,EAAEmC,IAAI,GACd,OAAOxC,EAAIlC,EAAEsE,IAAI,CAAEtE,CACrB,EACAD,EAAG,SAAUC,CAAC,EACZyE,EAAI,CAAC,EAAGD,EAAIxE,CACd,EACAuE,EAAG,WACD,GAAI,CACFrC,GAAK,MAAQK,EAAEoC,MAAM,EAAIpC,EAAEoC,MAAM,EACnC,QAAU,CACR,GAAIF,EAAG,MAAMD,CACf,CACF,CACF,CACF,EA+IiDX,EAAM/D,KAAK,EAEtD,GAAI,CACF,IAAKiE,EAAUM,CAAC,GAAI,CAAEP,AAAAA,CAAAA,EAAQC,EAAU3B,CAAC,EAAC,EAAGkC,IAAI,EAAG,CAClD,IApHctE,EAoHV4E,GApHU5E,EAoHmB8D,EAAMP,KAAK,CAnH7CsB,AAhGT,SAAyB7E,CAAC,EACxB,GAAIqC,MAAM8B,OAAO,CAACnE,GAAI,OAAOA,CAC/B,EA8FyBA,IAAM8E,AA/B/B,SAA+B9E,CAAC,CAAE+E,CAAC,EACjC,IAAIxC,EAAI,MAAQvC,EAAI,KAAO,aAAe,OAAOiE,QAAUjE,CAAC,CAACiE,OAAOC,QAAQ,CAAC,EAAIlE,CAAC,CAAC,aAAa,CAChG,GAAI,MAAQuC,EAAG,CACb,IAAIxC,EACFqC,EACA4C,EACAP,EACAvC,EAAI,EAAE,CACNqC,EAAI,CAAC,EACLC,EAAI,CAAC,EACP,GAAI,CACEQ,EAAKzC,AAAAA,CAAAA,EAAIA,EAAEE,IAAI,CAACzC,EAAC,EAAG0E,IAAI,CAAE,GAGvB,KAAO,CAAEH,CAAAA,EAAKxE,AAAAA,CAAAA,EAAIiF,EAAEvC,IAAI,CAACF,EAAC,EAAG+B,IAAG,GAAOpC,CAAAA,EAAE+C,IAAI,CAAClF,EAAEwD,KAAK,EAAGrB,EAAEC,MAAM,GAAK4C,CAAAA,EAAIR,EAAI,CAAC,GACvF,CAAE,MAAOvE,EAAG,CACVwE,EAAI,CAAC,EAAGpC,EAAIpC,CACd,QAAU,CACR,GAAI,CACF,GAAI,CAACuE,GAAK,MAAQhC,EAAEoC,MAAM,EAAKF,CAAAA,EAAIlC,EAAEoC,MAAM,GAAIzB,OAAOuB,KAAOA,CAAAA,EAAI,MACnE,QAAU,CACR,GAAID,EAAG,MAAMpC,CACf,CACF,CACA,OAAOF,CACT,CACF,EAKqDlC,EAmHG,IAnHMsC,EAA4BtC,EAmHlC,IAnH2CkF,AAJnG,WACE,MAAM,AAAIlC,UAAU,4IACtB,KAsHYK,EAAMuB,CAAW,CAAC,EAAE,CACpBrB,EAAQqB,CAAW,CAAC,EAAE,CACpB,IAAI,CAAC9E,KAAK,CAAC0D,GAAG,CAACH,IAGnB,IAAI,CAACvD,KAAK,CAACwD,GAAG,CAACD,EAAKE,EACtB,CACF,CAAE,MAAO4B,EAAK,CACZpB,EAAUhE,CAAC,CAACoF,EACd,QAAU,CACRpB,EAAUQ,CAAC,EACb,CACF,CAOF,EAAG,CACDlB,IAAK,UACLE,MAAO,SAAiBzB,CAAI,EAE1B,OADA,IAAI,CAAC6B,YAAY,CAAC7B,GACX,IAAI,CAAChC,KAAK,CAACsF,GAAG,CAACtD,EACxB,CACF,EAAE,CAhOUuD,AAPd,SAA2BtF,CAAC,CAAEC,CAAC,EAC7B,IAAK,IAAIuC,EAAI,EAAGA,EAAIvC,EAAEmC,MAAM,CAAEI,IAAK,CACjC,IAAIiC,EAAIxE,CAAC,CAACuC,EAAE,AACZiC,CAAAA,EAAEc,UAAU,CAAGd,EAAEc,UAAU,EAAI,CAAC,EAAGd,EAAEe,YAAY,CAAG,CAAC,EAAG,UAAWf,GAAMA,CAAAA,EAAEgB,QAAQ,CAAG,CAAC,GAAItC,OAAOuC,cAAc,CAAC1F,EAAG2F,AAmGxH,SAAwBnD,CAAC,EACvB,IAAIyC,EAAIW,AAXV,SAAsBpD,CAAC,CAAEvC,CAAC,EACxB,GAAI,UAAY,CAAOuC,SAAAA,EAAAA,YAAP,EAAOA,EAAC,GAAI,CAACA,EAAG,OAAOA,EACvC,IAAIxC,EAAIwC,CAAC,CAAC0B,OAAO2B,WAAW,CAAC,CAC7B,GAAI,KAAK,IAAM7F,EAAG,CAChB,IAAIiF,EAAIjF,EAAE0C,IAAI,CAACF,EAAGvC,GAAK,WACvB,GAAI,UAAY,CAAOgF,SAAAA,EAAAA,YAAP,EAAOA,EAAC,EAAE,OAAOA,CACjC,OAAM,AAAIhC,UAAU,+CACtB,CACA,MAAQ,YAAahD,EAAI6F,OAASC,MAAK,EAAGvD,EAC5C,EAEuBA,EAAG,UACxB,MAAO,UAAY,CAAOyC,SAAAA,EAAAA,YAAP,EAAOA,EAAC,EAAGA,EAAIA,EAAI,EACxC,EAtGuIR,EAAEnB,GAAG,EAAGmB,EAC7I,CACF,EAEgCzE,EAAEgG,SAAS,CAAE/F,GAAkCkD,OAAOuC,cAAc,CAAC1F,EAAG,YAAa,CACjHyF,SAAU,CAAC,CACb,GAAIzF,GAiOFiG,EAMK,IAAIlD,EADQhD,KAAAA,GAJZkF,EAAI,EAAGA,EAAInD,EAAgBM,MAAM,CAAE6C,IAAK,CAC/C,IAAIiB,EAAcpE,CAAe,CAACmD,EAAE,CACpCgB,EAAaE,GAAG,CAACD,EAAYnE,IAAI,CAAEmE,EAAYjE,OAAO,CACxD,ECraAgE,ADqbA,WACSA,EAAaG,KAAK,CAACC,KAAK,CAACJ,EAAcK,UAChD,ECvbmB,CACjB,+BAAgC,GAChC,kBAAmB,GACnB,qBAAsB,GACtB,oCAAqC,GACrC,8BAA+B,GAC/B,2CAA4C,GAC5C,qCAAsC,EACxC,E,uHCjBUtG,EAAEyE,EAAFzE,EAA6M,IAAI,CAA/MyE,EAAiN,kBAA+B,SAASzE,CAAC,CAACyE,CAAC,CAACjC,CAAC,EAAEiC,EAAEuB,SAAS,CAACO,OAAO,CAAC,WAAW,IAAIvG,EAAE,aAAayE,EAAEjC,IAAI,OAAO,IAAI,CAACgE,MAAM,CAACxG,KAAKyE,EAAE+B,MAAM,CAACxG,EAAE,CAAC,CAAC,EAA1V,U,CAAiByG,G,4BAAAA,E,qCAAAA,C,EAAoCC,EAAO,OAAO,CAACjC,IAAI,YAAY,OAAOkC,QAAQA,OAAOC,GAAG,CAACD,OAAOlC,GAAIzE,AAAAA,CAAAA,EAAE,aAAa,OAAO6G,WAAWA,WAAW7G,GAAG8G,IAAG,EAAGC,oBAAoB,CAACtC,G,wBCAjN,SAAUuC,CAAC,EAEZ,aAEA,IAAIC,EAAUC,EAAQ,MAOtB,SAASC,EAAQC,CAAE,EAClB,OAAO,SAAUC,CAAM,CAAEC,CAAO,M,EAY/B,MAXI,CAAkB,SAAXD,EAAAA,Y,GAAAA,I,oEAAM,GAAK,WACrBC,EAAUD,EACVA,EAAS,MAENA,MAAAA,GACHA,CAAAA,EAAU,IAAIE,OAAQ9E,QAAQ,EAAC,EAE5B,AAAC6E,GACJA,CAAAA,EAAU,CAAC,GAGLF,EAAG1E,IAAI,CAAC,IAAI,CAAE2E,EAAQC,EAC9B,CACD,CAEA,IAAIE,EAAad,EAAO,OAAO,CAAG,CACjCe,SAAUN,EAAQ,SAAUE,CAAM,CAAEC,CAAO,EAC1C,OAAO,IAAIL,EAAQI,EAAQC,EAC5B,EACD,CAEIN,CAAAA,GAGHA,CAAAA,EAAEU,EAAE,CAACC,UAAU,CAAGR,EAAQ,SAAUE,CAAM,CAAEC,CAAO,EAClD,OAAO,IAAI,CAACM,IAAI,CAAC,WAChB,IAAIC,EAAWb,EAAE,IAAI,EAAEc,IAAI,CAAC,iBACxBD,CAAAA,GACHP,CAAAA,EAAUN,EAAEe,MAAM,CAAC,CAClBC,KAAMH,CACP,EAAGP,EAAO,EAEX,IAAIW,EAAUT,EAAWC,QAAQ,CAACJ,EAAQC,GAC1CN,EAAE,IAAI,EAAEkB,GAAG,CAAC,mBAAoBD,EAAQE,SAAS,GAClD,EACD,EAAC,CAIF,EAAE,AAAkB,aAAlB,OAAOC,OAAyBA,OAAS,K,+BC2D3C1B,CAAAA,EAAO,OAAO,CAAG,CAChB2B,QArGD,SAAiBC,CAAG,EAGnBA,EAAMA,EAAIC,OAAO,CADI,mCACa,SAAUC,CAAC,CAAEvI,CAAC,CAAEwI,CAAC,CAAEC,CAAC,EACrD,OAAOzI,EAAIA,EAAIwI,EAAIA,EAAIC,EAAIA,CAC5B,GAEA,IAAIC,EAAS,4CAA4CC,IAAI,CAACN,GAC9D,OAAOK,EAAS,CACf1I,EAAG4I,SAASF,CAAM,CAAC,EAAE,CAAE,IACvBF,EAAGI,SAASF,CAAM,CAAC,EAAE,CAAE,IACvBD,EAAGG,SAASF,CAAM,CAAC,EAAE,CAAE,GACxB,EAAI,IACL,EAyFCG,QAlFD,SAAiBC,CAAG,EACnB,MAAO,IAAM,CAAC,IAAK,IAAK,IAAI,CAACC,GAAG,CAAC,SAAU1F,CAAG,EAC7C,MAAQ,KAAMyF,CAAG,CAACzF,EAAI,CAACb,QAAQ,CAAC,GAAE,EAAGE,KAAK,CAAC,GAC5C,GAAGsG,IAAI,CAAC,GACT,EA+ECC,QAnED,SAAiBH,CAAG,EACnB,IAGII,EAAG7E,EAHHrE,EAAI8I,EAAI9I,CAAC,CAAEwI,EAAIM,EAAIN,CAAC,CAAEC,EAAIK,EAAIL,CAAC,CAE/BU,EAAMC,KAAKD,GAAG,CADlBnJ,GAAK,IAAKwI,GAAK,IAAKC,GAAK,KACIY,EAAMD,KAAKC,GAAG,CAACrJ,EAAGwI,EAAGC,GACxC1D,EAAKoE,AAAAA,CAAAA,EAAME,CAAE,EAAK,EAE5B,GAAIF,IAAQE,EACXH,EAAI7E,EAAI,MACF,CACN,IAAIiF,EAAIH,EAAME,EAEd,OADAhF,EAAIU,EAAI,GAAMuE,EAAK,GAAIH,EAAME,CAAE,EAAKC,EAAKH,CAAAA,EAAME,CAAE,EACzCF,GACP,KAAKnJ,EAAGkJ,EAAKV,AAAAA,CAAAA,EAAIC,CAAAA,EAAKa,EAAKd,AAAQ,EAARA,CAAAA,EAAIC,CAAAA,EAAY,KAC3C,MAAKD,EAAGU,EAAKT,AAAAA,CAAAA,EAAIzI,CAAAA,EAAKsJ,EAAI,EAAG,KAC7B,MAAKb,EAAGS,EAAKlJ,AAAAA,CAAAA,EAAIwI,CAAAA,EAAKc,EAAI,CAC3B,CACAJ,GAAK,CACN,CAEA,MAAO,CAAEA,EAAGA,EAAG7E,EAAGA,EAAGU,EAAGA,CAAE,CAC3B,EAgDCwE,QApCD,SAAiBC,CAAG,EAEnB,SAASC,EAAQC,CAAC,CAAEC,CAAC,CAAEpH,CAAC,QAGvB,CAFIA,EAAI,GAAGA,CAAAA,GAAK,GACZA,EAAI,GAAGA,CAAAA,GAAK,GACZA,EAAI,EAAI,GAAUmH,EAAKC,AAAAA,CAAAA,EAAID,CAAAA,EAAK,EAAInH,EACpCA,EAAI,GAAcoH,EAClBpH,EAAI,EAAI,EAAUmH,EAAKC,AAAAA,CAAAA,EAAID,CAAAA,EAAM,GAAI,EAAInH,CAAAA,EAAK,EAC3CmH,CACR,CAEA,IACI1J,EAAGwI,EAAGC,EADNS,EAAIM,EAAIN,CAAC,CAAE7E,EAAImF,EAAInF,CAAC,CAAEU,EAAIyE,EAAIzE,CAAC,CAGnC,GAAGV,AAAM,IAANA,EACFrE,EAAIwI,EAAIC,EAAI1D,MACR,CAEJ,IAAI4E,EAAI5E,EAAI,GAAMA,EAAK,GAAIV,CAAAA,EAAKU,EAAIV,EAAIU,EAAIV,EACxCqF,EAAI,EAAI3E,EAAI4E,EAChB3J,EAAIyJ,EAAQC,EAAGC,EAAGT,EAAI,EAAI,GAC1BV,EAAIiB,EAAQC,EAAGC,EAAGT,GAClBT,EAAIgB,EAAQC,EAAGC,EAAGT,EAAI,EAAI,EAC3B,CAEA,MAAO,CACNlJ,EAAGoJ,KAAKQ,KAAK,CAAC5J,AAAI,IAAJA,GACdwI,EAAGY,KAAKQ,KAAK,CAACpB,AAAI,IAAJA,GACdC,EAAGW,KAAKQ,KAAK,CAACnB,AAAI,IAAJA,EACf,CACD,EAOCoB,cAAe,SAAUf,CAAG,EAC3B,MAAO,OAAS,CAACA,EAAI9I,CAAC,CAAE8I,EAAIN,CAAC,CAAEM,EAAIL,CAAC,CAAC,CAACO,IAAI,CAAC,KAAO,GACnD,CACD,C,oCCrHA,IAAIlB,EAASb,EAAQ,KACjB6C,EAAS7C,EAAQ,MACjB8C,EAAS9C,EAAQ,MACjB+C,EAAS/C,EAAQ,MAIjBgD,EAAW,CACdC,UAAW,SACZ,EAEIC,EAAW,CACd,WACA,qBACA,YACA,MACA,YACA,WACA,mBACA,QACA,YACA,UACA,oBACA,WACA,eACA,gBACA,gBACA,WACA,CAIGC,EAAmB,OAevB,SAASC,EAAOtC,CAAI,CAAEuC,CAAK,CAAEC,CAAG,EAC/B,OAAO3B,SAASb,EAAKyC,MAAM,CAACF,EAAOC,GAAO,GAAI,GAC/C,CAMA,SAASxB,EAAIxF,CAAK,CAAEkH,CAAI,CAAEC,CAAI,CAAEC,CAAI,CAAEC,CAAI,EAKzC,MAAQC,AAAAA,CAJKC,WAAWvH,GAIPkH,CAAG,EAFPG,CAAAA,EAAOD,CAAG,EADVD,CAAAA,EAAOD,CAAG,EAGoBE,CAC5C,CAEA,SAASI,EAAUC,CAAG,EACrB,OAAQA,EAAM,GAAM,EAjCE,OADA,MAmCvB,CAEA,SAASC,EAAYD,CAAG,EACvB,OAAOjC,EAAIiC,EAAK,EAAG,GAlCG,IACA,IAkCvB,CAIA,IAAIhE,EAAUP,EAAO,OAAO,CAAG,SAAUW,CAAM,CAAEC,CAAO,EAQvD,OAPA,IAAI,CAAC6D,IAAI,CAAGpD,EAAO,CAAC,EAAGmC,EAAU5C,GACjC,IAAI,CAACU,IAAI,CAAGV,EAAQU,IAAI,EAAIgC,EAAK3C,GACjC,IAAI,CAAC+D,GAAG,CAAG,IAAInB,EAEf,IAAI,CAACoB,kBAAkB,GACvB,IAAI,CAACC,eAAe,GAEb,IAAI,AACZ,EA2QA,SAASC,EAAeC,CAAU,EACjC,MAAO,CACN,CAACA,EAAY,EAAGA,EAAYA,AAAa,EAAbA,EAAe,CAC3C,CAAC,EAAGA,EAAYA,AAAa,EAAbA,EAAgBA,EAAW,CAC3C,AACF,CAwjBA,SAASC,EAAwBC,CAAU,EAC1C,MAAO,CACN,EAAG,EACHA,EAAYA,EACZ,EAAGA,EACH,EAAG,EACH,CAACzC,IAAI,CAAC,IACR,CAEA,SAAS0C,EAAoBP,CAAG,CAAEQ,CAAC,CAAEC,CAAC,CAAEC,CAAY,CAAEC,CAAI,EACzD,IAAIC,EAAWP,EAAwBK,GACnCG,EAAWf,EAAYa,CAAI,CAAC,EAAE,EAC9BG,EAAWlB,EAAUe,CAAI,CAAC,EAAE,EAC5BI,EAAW,CACdC,OAAQ/B,EACR,iBAx4BqB,IAy4BrB,eAAgB4B,EAChBC,KAAMA,CACP,EAEAd,EAAIiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CACxCC,UAAW,CACVX,EAAIE,EACJD,EACA,CACDW,MAAO,CAAC,GAAI,EAAE,AACf,GACApB,EAAIiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CACxCC,UAAW,CACVX,EAAIE,EACJD,EAAIC,AAAe,EAAfA,EACJ,CACDU,MAAO,CAAC,EAAG,GAAG,AACf,GAIAL,EAAU,CACTC,OAAQ/B,EACR,iBAh6BqB,IAi6BrB,eALD4B,EAAUf,EAAYa,CAAI,CAAC,EAAE,EAM5BG,KALDA,EAAUlB,EAAUe,CAAI,CAAC,EAAE,CAM3B,EAEAX,EAAIiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CACxCC,UAAW,CACVX,EAAIE,EACJD,EAAIC,AAAe,EAAfA,EACJ,CACDU,MAAO,CAAC,GAAI,GAAG,AAChB,GACApB,EAAIiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CACxCC,UAAW,CACVX,EAAIE,EACJD,EACA,CACDW,MAAO,CAAC,EAAG,EAAE,AACd,EACD,CAEA,SAASC,EAAoBrB,CAAG,CAAEQ,CAAC,CAAEC,CAAC,CAAEC,CAAY,CAAEb,CAAG,EACxD,IAAIgB,EAAWf,EAAYD,GACvBiB,EAAWlB,EAAUC,GACrBe,EAAWP,EAAwBK,GACnCK,EAAW,CACdC,OAAQ/B,EACR,iBA37BqB,IA47BrB,eAAgB4B,EAChBC,KAAMA,CACP,EAEAd,EAAIiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CACxCC,UAAW,CACVX,EACAC,EAAIC,EACJ,CACDU,MAAO,CAAC,EAAG,GAAG,AACf,GACApB,EAAIiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CACxCC,UAAW,CACVX,EAAIE,AAAe,EAAfA,EACJD,EAAIC,EACJ,CACDU,MAAO,CAAC,GAAI,GAAG,AAChB,GACApB,EAAIiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CACxCC,UAAW,CACVX,EACAC,EAAIC,EACJ,CACDU,MAAO,CAAC,EAAG,EAAE,AACd,GACApB,EAAIiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CACxCC,UAAW,CACVX,EAAIE,AAAe,EAAfA,EACJD,EAAIC,EACJ,CACDU,MAAO,CAAC,GAAI,EAAE,AACf,EACD,CAz6BAvF,EAAQjB,SAAS,CAAC0G,KAAK,CAAG,WACzB,OAAO,IAAI,CAACtB,GAAG,CAAC3I,QAAQ,EACzB,EAEAwE,EAAQjB,SAAS,CAACvD,QAAQ,CAAG,WAC5B,OAAO,IAAI,CAACiK,KAAK,EAClB,EAEAzF,EAAQjB,SAAS,CAAC2G,QAAQ,CAAG,WAC5B,IACIC,EADAC,EAAM,IAAI,CAACH,KAAK,GAUpB,MANI,AAAkB,aAAlB,OAAOI,QAA0B,AAAuB,YAAvB,OAAOA,OAAOC,IAAI,CAChDD,OAAOC,IAAI,CAACF,GAEZ,IAAIG,OAAOH,GAAKpK,QAAQ,CAAC,SAIjC,EAEAwE,EAAQjB,SAAS,CAACiH,SAAS,CAAG,WAC7B,MAAO,6BAA+B,IAAI,CAACN,QAAQ,EACpD,EAEA1F,EAAQjB,SAAS,CAACmC,SAAS,CAAG,WAC7B,MAAO,QAAU,IAAI,CAAC8E,SAAS,GAAK,IACrC,EAEAhG,EAAQjB,SAAS,CAACqF,kBAAkB,CAAG,WACtC,IAAIlB,EAAW+C,EAAWnE,EAAKoE,CAE3B,KAAI,CAAChC,IAAI,CAACpB,KAAK,CAClBhB,EAAMgB,EAAM1B,OAAO,CAAC,IAAI,CAAC8C,IAAI,CAACpB,KAAK,GAEnCmD,EAAYlE,EAAIsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GAAI,GAAI,EAAG,KAAM,EAAG,KACtDmF,EAAY7C,EAAO,IAAI,CAACtC,IAAI,CAAE,IAG9BmC,AAFAA,CAAAA,EAAYJ,EAAMb,OAAO,CAACa,EAAM1B,OAAO,CAAC,IAAI,CAAC8C,IAAI,CAAChB,SAAS,EAAC,EAElDhB,CAAC,CAAK,AAACgB,CAAAA,AAAc,IAAdA,EAAUhB,CAAC,CAAS+D,EAAa,GAAE,EAAK,IAAO,IAE5DC,EAAY,GAAM,EACrBhD,EAAU7F,CAAC,CAAG+E,KAAKC,GAAG,CAAC,EAAI,AAACa,CAAAA,AAAc,IAAdA,EAAU7F,CAAC,CAAU6I,CAAQ,EAAK,KAE9DhD,EAAU7F,CAAC,CAAG+E,KAAKD,GAAG,CAAC,EAAI,AAACe,CAAAA,AAAc,IAAdA,EAAU7F,CAAC,CAAU6I,CAAQ,EAAK,KAE/DpE,EAAMgB,EAAMP,OAAO,CAACW,IAGrB,IAAI,CAACJ,KAAK,CAAGA,EAAMjB,OAAO,CAACC,GAE3B,IAAI,CAACqC,GAAG,CAACgC,IAAI,CAAC,EAAG,EAAG,OAAQ,OAAQ,CACnClB,KAAMnC,EAAMD,aAAa,CAACf,EAC3B,EACD,EAEA9B,EAAQjB,SAAS,CAACsF,eAAe,CAAG,WACnC,IAAI+B,EAAY,IAAI,CAAClC,IAAI,CAACkC,SAAS,CAEnC,GAAIA,EACH,IAAIjD,AAA8B,EAA9BA,EAASkD,OAAO,CAACD,GACpB,MAAM,AAAI3J,MAAM,iBACb2J,EACA,mBACJ,MAEAA,EAAYjD,CAAQ,CAACE,EAAO,IAAI,CAACtC,IAAI,CAAE,IAAI,CAG5C,OAAO,IAAI,CAAC,MAAQqF,EAAU1K,KAAK,CAAC,EAAG,GAAG4K,WAAW,GAAKF,EAAU1K,KAAK,CAAC,GAAG,EAC9E,EAiBAsE,EAAQjB,SAAS,CAACwH,WAAW,CAAG,WAE/B,IAIIC,EAAUxI,EAAGgH,EAASE,EAAQlB,EAAKW,EAAGC,EAnBtC1J,EACAuG,EAcAgD,EAAa1C,EADAsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GACP,EAAG,GAAI,EAAG,IAClC0F,EAAahC,EAAarC,KAAKsE,IAAI,CAAC,GACpCC,EAAalC,AAAa,EAAbA,EACbpD,GAlBAnG,EAAI0L,AAkB2BnC,EAlBvB,EAEL,CACN,EAFGhD,EAAIW,KAAKyE,GAAG,CAAC,GAAKzE,KAAK0E,EAAE,CAAG,KAiBGrC,EAdlCvJ,EAAG,EACHA,EAakCuJ,EAb3B,EACP,EAYkCA,EAZ3BhD,EACPvG,EAWkCuJ,EAX3B,EAAIhD,EACXvG,EAAG,EAAIuG,EACP,EAAGA,EACH,CAACO,IAAI,CAAC,MAeP,IAJA,IAAI,CAACmC,GAAG,CAAC4C,QAAQ,CAACJ,AAAW,EAAXA,EAAelC,AAAa,EAAbA,GACjC,IAAI,CAACN,GAAG,CAAC6C,SAAS,CAACP,AAAY,EAAZA,GAEnBzI,EAAI,EACC4G,EAAI,EAAGA,EAAI,EAAGA,IAClB,IAAKD,EAAI,EAAGA,EAAI,EAAGA,IAClBX,EAAUX,EAAO,IAAI,CAACtC,IAAI,CAAE/C,GAC5BwI,EAAU7B,EAAI,GAAM,EAAIC,EAAI6B,EAAY7B,EAAI6B,EAAYA,EAAY,EACpEzB,EAAUf,EAAYD,GAGtBkB,EAAS,CACRD,KAHSlB,EAAUC,GAInB,eAAgBgB,EAChBG,OAAQ/B,EACR,iBAlKmB,GAmKpB,EAEA,IAAI,CAACe,GAAG,CAACiB,QAAQ,CAAC/D,EAAK6D,GAAQG,SAAS,CAAC,CACxCC,UAAW,CACVX,EAAIF,EAAa,IAAMkC,EAAW,EAClCH,EAAKC,EAAY,EACjB,AACF,GAGI9B,AAAM,IAANA,GACH,IAAI,CAACR,GAAG,CAACiB,QAAQ,CAAC/D,EAAK6D,GAAQG,SAAS,CAAC,CACxCC,UAAW,CACV,EAAIb,EAAa,IAAMkC,EAAW,EAClCH,EAAKC,EAAY,EACjB,AACF,GAIS,IAAN7B,IACH4B,EAAK7B,EAAI,GAAM,EAAI,EAAI8B,EAAY,EAAIA,EAAYA,EAAY,EAC/D,IAAI,CAACtC,GAAG,CAACiB,QAAQ,CAAC/D,EAAK6D,GAAQG,SAAS,CAAC,CACxCC,UAAW,CACVX,EAAIF,EAAa,IAAMkC,EAAW,EAClCH,EAAKC,EAAY,EACjB,AACF,IAIG9B,AAAM,IAANA,GAAWC,AAAM,IAANA,GACd,IAAI,CAACT,GAAG,CAACiB,QAAQ,CAAC/D,EAAK6D,GAAQG,SAAS,CAAC,CACxCC,UAAW,CACV,EAAIb,EAAa,IAAMkC,EAAW,EAClC,EAAIF,EAAYA,EAAY,EAC5B,AACF,GAGDzI,GAGH,EAEAgC,EAAQjB,SAAS,CAACkI,YAAY,CAAG,WAChC,IAGIhC,EAAMjH,EAAGgH,EAASY,EAAKV,EAAQlB,EAAKkD,EAHpCC,EAAY/E,KAAKgF,KAAK,CAACrF,EAAIsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GAAI,EAAG,GAAI,IAAK,MAC7DsG,EAAYjF,KAAKgF,KAAK,CAACrF,EAAIsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GAAI,EAAG,GAAI,GAAI,MAC5DuG,EAAYlF,KAAKgF,KAAK,CAACrF,EAAIsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GAAI,EAAG,GAAI,EAAG,KAM/D,IAHA,IAAI,CAACoD,GAAG,CAAC4C,QAAQ,CAACI,GAClB,IAAI,CAAChD,GAAG,CAAC6C,SAAS,CAACM,AAAY,GAAZA,GAEdtJ,EAAI,EAAGA,EAAI,GAAIA,IAEnBgH,EAAUf,EADVD,EAAUX,EAAO,IAAI,CAACtC,IAAI,CAAE/C,IAE5BiH,EAAUlB,EAAUC,GACpBkD,EAAUC,EAAS,EAAI,GAEvBjC,EAAS,CACRD,KAAM,OACNE,OAAQF,EACRD,QAASA,EACT,eAAgB,GAAKsC,EAAY,IAClC,EAEA1B,EAAM,MAAQyB,EACb,MAAQH,EAAU,OAAUC,CAAAA,EAAS,EAAID,CAAM,EAAK,OAAUC,EAAS,EAAK,IAAME,EAClF,MAASF,CAAAA,EAASD,CAAM,EAAK,IAAOG,AAAY,EAAZA,EAAiB,KAAOF,EAAS,IAAME,EAC3E,MAASF,CAAAA,AAAS,IAATA,EAAeD,CAAM,EAAK,OAAUC,AAAS,IAATA,EAAgB,KAAOE,EAErE,IAAI,CAAClD,GAAG,CAACoD,IAAI,CAAC3B,EAAKV,GAAQG,SAAS,CAAC,CACpCC,UAAW,CACV,CAAC6B,EAAS,EACVG,EAAYtJ,EAAIqJ,AAAY,IAAZA,EAChB,AACF,GACA,IAAI,CAAClD,GAAG,CAACoD,IAAI,CAAC3B,EAAKV,GAAQG,SAAS,CAAC,CACpCC,UAAW,CACV,CAAC6B,EAAS,EACVG,EAAYtJ,EAAIqJ,AAAY,IAAZA,EAAkBC,AAAY,GAAZA,EAClC,AACF,EAEF,EAsBAtH,EAAQjB,SAAS,CAACyI,WAAW,CAAG,WAC/B,IApBIzO,EAuBMiF,EAAGgH,EAASE,EAAQlB,EAAKW,EAAGC,EAHlC6C,EAAgB1F,EAAIsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GAAI,EAAG,GAAI,GAAI,IACrD2G,EAAgB3F,EAAIsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GAAI,EAAG,GAAI,GAAI,IACrD4G,GAtBA5O,EAAI6O,AAAS,IAsBmCF,EArB7C,CACN,CACC,EAAG,EACHG,AAkBoCJ,EAlB5B,EAAGG,AAkBuCF,EAlB9B3O,EACpB8O,AAiBoCJ,EAjB5B,EAiB0CC,EAhBlD,EAAG3O,EACH,EAAG,EACH,CACD,CACC8O,AAYoCJ,EAZ5B,EAAGG,AAYuCF,EAZ9B3O,EAYgB0O,EAX7B,EAW6BA,EAV7B1O,EACP8O,AASoCJ,EAT5B,EAS0CC,EARlDG,AAQoCJ,EAR5B,EAAGG,AAQuCF,EAR9B3O,EACpB,CACD,CAACgJ,GAAG,CAAC,SAAU4C,CAAC,EAAI,OAAOA,EAAE3C,IAAI,CAAC,IAAM,IAazC,IAJA,IAAI,CAACmC,GAAG,CAAC4C,QAAQ,CAACU,AAAe,EAAfA,GAClB,IAAI,CAACtD,GAAG,CAAC6C,SAAS,CAACU,AAAgB,EAAhBA,EAAoB,KAEvC1J,EAAI,EACC4G,EAAI,EAAGA,EAAI,EAAGA,IAClB,IAAKD,EAAI,EAAGA,EAAI,EAAGA,IAElBK,EAAUf,EADVD,EAAUX,EAAO,IAAI,CAACtC,IAAI,CAAE/C,IAI5BkH,EAAS,CACRC,OAAQ/B,EACR,iBAhSmB,IAiSnB6B,KALSlB,EAAUC,GAMnB,eAAgBgB,EAChB,eAAgB,CACjB,EAEA,IAAI,CAACb,GAAG,CAAC2D,KAAK,CAAC5C,GAAQG,SAAS,CAAC,CAChCC,UAAW,CACVX,EAAI8C,EACJ7C,EAAI8C,EAAgB,IAAOA,EAAgB,EAC3C,AACF,GAAGtC,QAAQ,CAACuC,GAASI,GAAG,GAGpBnD,AAAM,IAANA,GACH,IAAI,CAACT,GAAG,CAAC2D,KAAK,CAAC5C,GAAQG,SAAS,CAAC,CAChCC,UAAW,CACVX,EAAI8C,EACJ,EAAIC,EAAgB,IAAOA,EAAgB,EAC3C,AACF,GAAGtC,QAAQ,CAACuC,GAASI,GAAG,GAGzB/J,GAAK,CAGR,EASAgC,EAAQjB,SAAS,CAACiJ,YAAY,CAAG,WAChC,IAGIC,EAAIhD,EAAMjH,EAAGgH,EAASE,EAAQlB,EAAKW,EAAGC,EAHtCL,EAAaxC,EAAIsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GAAI,EAAG,GAAI,GAAI,IAClDmH,EAAa3D,AAAa,EAAbA,EACb4D,EAAa7D,EAAeC,GAOhC,IAJA,IAAI,CAACJ,GAAG,CAAC4C,QAAQ,CAACxC,AAAa,GAAbA,GAClB,IAAI,CAACJ,GAAG,CAAC6C,SAAS,CAACzC,AAAa,GAAbA,GAEnBvG,EAAI,EACC4G,EAAI,EAAGA,EAAI,EAAGA,IAClB,IAAKD,EAAI,EAAGA,EAAI,EAAGA,IAElBK,EAAUf,EADVD,EAAUX,EAAO,IAAI,CAACtC,IAAI,CAAE/C,IAE5BiH,EAAUlB,EAAUC,GACpBiE,EAAWrD,CAAAA,CAAAA,EAAI,GAAM,GAErBM,EAAS,CACRD,KAAMA,EACNE,OAAQ/B,EACR,iBAvVmB,IAwVnB,eAAgB4B,CACjB,EAEA,IAAI,CAACb,GAAG,CAAC2D,KAAK,CAAC5C,GAAQG,SAAS,CAAC,CAChCC,UAAW,CACVX,EAAIuD,EAAWvD,EAAIJ,EAAa0D,EAAK1D,EAAaA,EAClDK,EAAIsD,EAAWtD,EAAIL,EAAa2D,EAAW,EAC3C,AACF,GAAG/B,IAAI,CAACgC,GAAWJ,GAAG,GAGlBpD,AAAM,IAANA,GACH,IAAI,CAACR,GAAG,CAAC2D,KAAK,CAAC5C,GAAQG,SAAS,CAAC,CAChCC,UAAW,CACV,EAAI4C,EAAWvD,EAAIJ,EAAa0D,EAAK1D,EAAaA,EAClDK,EAAIsD,EAAWtD,EAAIL,EAAa2D,EAAW,EAC3C,AACF,GAAG/B,IAAI,CAACgC,GAAWJ,GAAG,GAInBnD,AAAM,IAANA,GACH,IAAI,CAACT,GAAG,CAAC2D,KAAK,CAAC5C,GAAQG,SAAS,CAAC,CAChCC,UAAW,CACVX,EAAIuD,EAAWvD,EAAIJ,EAAa0D,EAAK1D,EAAaA,EAClD,EAAI2D,EAAWtD,EAAIL,EAAa2D,EAAW,EAC3C,AACF,GAAG/B,IAAI,CAACgC,GAAWJ,GAAG,GAInBpD,AAAM,IAANA,GAAWC,AAAM,IAANA,GACd,IAAI,CAACT,GAAG,CAAC2D,KAAK,CAAC5C,GAAQG,SAAS,CAAC,CAChCC,UAAW,CACV,EAAI4C,EAAWvD,EAAIJ,EAAa0D,EAAK1D,EAAaA,EAClD,EAAI2D,EAAWtD,EAAIL,EAAa2D,EAAW,EAC3C,AACF,GAAG/B,IAAI,CAACgC,GAAWJ,GAAG,GAGvB/J,GAGH,EAEAgC,EAAQjB,SAAS,CAACqJ,MAAM,CAAG,WAC1B,IAGI5B,EAAUxI,EAAGgH,EAASE,EAAQlB,EAAKW,EAAGC,EAHtCL,EAAaxC,EAAIsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GAAI,EAAG,GAAI,GAAI,IAClDsH,EAAa/D,EAAeC,GAC5B+D,EAAa/D,AAAa,EAAbA,EAAiB,KAOlC,IAJA,IAAI,CAACJ,GAAG,CAAC4C,QAAQ,CAACuB,AAAQ,EAARA,GAClB,IAAI,CAACnE,GAAG,CAAC6C,SAAS,CAACsB,AAAQ,EAARA,GAEnBtK,EAAI,EACC4G,EAAI,EAAGA,EAAI,EAAGA,IAClB,IAAKD,EAAI,EAAGA,EAAI,EAAGA,IAElBK,EAAUf,EADVD,EAAUX,EAAO,IAAI,CAACtC,IAAI,CAAE/C,IAE5BwI,EAAU7B,EAAI,GAAM,EAAIC,EAAI0D,EAAQA,AAAQ,GAARA,EAAc1D,EAAI0D,EAAQA,AAAQ,GAARA,EAAcA,EAAQ,EAGpFpD,EAAS,CACRD,KAHSlB,EAAUC,GAInBgB,QAASA,CACV,EAEA,IAAI,CAACb,GAAG,CAAC2D,KAAK,CAAC5C,GAAQG,SAAS,CAAC,CAChCC,UAAW,CACVX,EAAI2D,EAAQ,EAAIA,EAAQ,EACxB9B,EAAK5B,EAAI0D,EAAQ,EACjB,CACDC,OAAQ,CACP,GACAD,EAAQ,EACRA,EAAQ,EACR,AACF,GAAGnC,IAAI,CAACkC,GAAQN,GAAG,GAGfpD,AAAM,IAANA,GACH,IAAI,CAACR,GAAG,CAAC2D,KAAK,CAAC5C,GAAQG,SAAS,CAAC,CAChCC,UAAW,CACV,EAAIgD,EAAQ,EAAIA,EAAQ,EACxB9B,EAAK5B,EAAI0D,EAAQ,EACjB,CACDC,OAAQ,CACP,GACAD,EAAQ,EACRA,EAAQ,EACR,AACF,GAAGnC,IAAI,CAACkC,GAAQN,GAAG,GAIV,IAANnD,IACH4B,EAAK7B,EAAI,GAAM,EAAI,EAAI2D,EAAQA,EAAQ,EAAI,EAAIA,EAAQA,EAAQ,EAAIA,EAAQ,EAC3E,IAAI,CAACnE,GAAG,CAAC2D,KAAK,CAAC5C,GAAQG,SAAS,CAAC,CAChCC,UAAW,CACVX,EAAI2D,EAAQ,EAAIA,EAAQ,EACxB9B,EAAK,EAAI8B,EAAQ,EACjB,CACDC,OAAQ,CACP,GACAD,EAAQ,EACRA,EAAQ,EACR,AACF,GAAGnC,IAAI,CAACkC,GAAQN,GAAG,IAIhBnD,AAAM,IAANA,GACH,IAAI,CAACT,GAAG,CAAC2D,KAAK,CAAC5C,GAAQG,SAAS,CAAC,CAChCC,UAAW,CACVX,EAAI2D,EAAQ,EAAIA,EAAQ,EACxB9B,EAAK,GAAK8B,EAAQ,EAClB,CACDC,OAAQ,CACP,GACAD,EAAQ,EACRA,EAAQ,EACR,AACF,GAAGnC,IAAI,CAACkC,GAAQN,GAAG,GAIhBpD,AAAM,IAANA,GAAWC,AAAM,IAANA,GACd,IAAI,CAACT,GAAG,CAAC2D,KAAK,CAAC5C,GAAQG,SAAS,CAAC,CAChCC,UAAW,CACV,EAAIgD,EAAQ,EAAIA,EAAQ,EACxB9B,EAAK,EAAI8B,EAAQ,EACjB,CACDC,OAAQ,CACP,GACAD,EAAQ,EACRA,EAAQ,EACR,AACF,GAAGnC,IAAI,CAACkC,GAAQN,GAAG,GAEpB/J,GAGH,EAEAgC,EAAQjB,SAAS,CAACyJ,qBAAqB,CAAG,WAGzC,IACkBxK,EAAGgH,EAASE,EAAQlB,EAAKW,EAAGC,EAD1C6D,EAAWC,AADA3G,EADAsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GACP,EAAG,GAAI,GAAI,KACX,EAO1B,IAJA,IAAI,CAACoD,GAAG,CAAC4C,QAAQ,CAAC0B,AAAS,EAATA,GAClB,IAAI,CAACtE,GAAG,CAAC6C,SAAS,CAACyB,AAAS,EAATA,GAEnBzK,EAAI,EACC4G,EAAI,EAAGA,EAAI,EAAGA,IAClB,IAAKD,EAAI,EAAGA,EAAI,EAAGA,IAElBK,EAAUf,EADVD,EAAUX,EAAO,IAAI,CAACtC,IAAI,CAAE/C,IAI5BkH,EAAS,CACRD,KAHSlB,EAAUC,GAInBgB,QAASA,CACV,EAEA,IAAI,CAACb,GAAG,CAACwE,MAAM,CAAChE,EAAI8D,EAAQ7D,EAAI6D,EAAQA,EAAQvD,GAG5CP,AAAM,IAANA,GACH,IAAI,CAACR,GAAG,CAACwE,MAAM,CAAC,EAAIF,EAAQ7D,EAAI6D,EAAQA,EAAQvD,GAI7CN,AAAM,IAANA,GACH,IAAI,CAACT,GAAG,CAACwE,MAAM,CAAChE,EAAI8D,EAAQ,EAAIA,EAAQA,EAAQvD,GAI7CP,AAAM,IAANA,GAAWC,AAAM,IAANA,GACd,IAAI,CAACT,GAAG,CAACwE,MAAM,CAAC,EAAIF,EAAQ,EAAIA,EAAQA,EAAQvD,GAGjDlH,GAGH,EAkBAgC,EAAQjB,SAAS,CAAC6J,WAAW,CAAG,WAC/B,IAfIhC,EAiBA3B,EAAMjH,EAAGgH,EAAShB,EAAKW,EAAGC,EAF1BL,EAAaxC,EAAIsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GAAI,EAAG,GAAI,GAAI,IAClD8H,EAfG,CADHjC,EAAIvJ,AAAI,IAgBuBkH,EAd/B,EACHlH,AAakCkH,EAb9BqC,EAAG,EAa2BrC,EAZ/BqC,EAY+BrC,EAX/BlH,AAW+BkH,EAX3BqC,EACPvJ,AAUkCkH,EAV9BqC,EAU8BrC,EATlCqC,EASkCrC,EARlC,EAAGlH,AAQ+BkH,EAR3BqC,EACP,EAAGA,EACHA,EAAG,EACH,CAAC5E,IAAI,CAAC,KAYP,IAJA,IAAI,CAACmC,GAAG,CAAC4C,QAAQ,CAACxC,AAAa,EAAbA,GAClB,IAAI,CAACJ,GAAG,CAAC6C,SAAS,CAACzC,AAAa,EAAbA,GAEnBvG,EAAI,EACC4G,EAAI,EAAGA,EAAI,EAAGA,IAClB,IAAKD,EAAI,EAAGA,EAAI,EAAGA,IAElBK,EAAUf,EADVD,EAAUX,EAAO,IAAI,CAACtC,IAAI,CAAE/C,IAE5BiH,EAAUlB,EAAUC,GAEpB,IAAI,CAACG,GAAG,CAACiB,QAAQ,CAACyD,EAAM,CACvB5D,KAAMA,EACN,eAAgBD,EAChBG,OAAQ/B,EACR,iBAtjBmB,GAujBpB,GAAGiC,SAAS,CAAC,CACZC,UAAW,CACVX,EAAIJ,EACJK,EAAIL,EACJ,AACF,GAEAvG,GAAK,CAGR,EAEAgC,EAAQjB,SAAS,CAAC+J,UAAU,CAAG,WAC9B,IACI7D,EAAMjH,EAAGgH,EAAShB,EAAKW,EAAGC,EAD1BL,EAAaxC,EAAIsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GAAI,EAAG,GAAI,GAAI,IAOtD,IAJA,IAAI,CAACoD,GAAG,CAAC4C,QAAQ,CAACxC,AAAa,EAAbA,GAClB,IAAI,CAACJ,GAAG,CAAC6C,SAAS,CAACzC,AAAa,EAAbA,GAEnBvG,EAAI,EACC4G,EAAI,EAAGA,EAAI,EAAGA,IAClB,IAAKD,EAAI,EAAGA,EAAI,EAAGA,IAElBK,EAAUf,EADVD,EAAUX,EAAO,IAAI,CAACtC,IAAI,CAAE/C,IAE5BiH,EAAUlB,EAAUC,GAEpB,IAAI,CAACG,GAAG,CAACgC,IAAI,CAACxB,EAAIJ,EAAYK,EAAIL,EAAYA,EAAYA,EAAY,CACrEU,KAAMA,EACN,eAAgBD,EAChBG,OAAQ/B,EACR,iBArlBmB,GAslBpB,GAEApF,GAAK,CAGR,EAEAgC,EAAQjB,SAAS,CAACgK,oBAAoB,CAAG,WAExC,IAEI9D,EAAMjH,EAAGgH,EAAShB,EAAKW,EAAGC,EAF1BoE,EAAcjH,EADAsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GACP,EAAG,GAAI,GAAI,IACpCkI,EAAcD,EAAW,EAO7B,IAJA,IAAI,CAAC7E,GAAG,CAAC4C,QAAQ,CAAEiC,AAAAA,CAAAA,EAAWC,CAAU,EAAK,GAC7C,IAAI,CAAC9E,GAAG,CAAC6C,SAAS,CAAEgC,AAAAA,CAAAA,EAAWC,CAAU,EAAK,GAE9CjL,EAAI,EACC4G,EAAI,EAAGA,EAAI,EAAGA,IAClB,IAAKD,EAAI,EAAGA,EAAI,EAAGA,IAElBK,EAAUf,EADVD,EAAUX,EAAO,IAAI,CAACtC,IAAI,CAAE/C,IAE5BiH,EAAUlB,EAAUC,GAEpB,IAAI,CAACG,GAAG,CAACwE,MAAM,CACdhE,EAAIqE,EAAWrE,EAAIsE,EAAeD,AAAAA,CAAAA,EAAWC,CAAU,EAAK,EAC5DrE,EAAIoE,EAAWpE,EAAIqE,EAAeD,AAAAA,CAAAA,EAAWC,CAAU,EAAK,EAC5DD,EAAW,EACX,CACC/D,KAAM,OACNE,OAAQF,EACRD,QAASA,EACT,eAAgBiE,EAAc,IAC/B,GAIDjE,EAAUf,EADVD,EAAUX,EAAO,IAAI,CAACtC,IAAI,CAAE,GAAK/C,IAEjCiH,EAAUlB,EAAUC,GAEpB,IAAI,CAACG,GAAG,CAACwE,MAAM,CACdhE,EAAIqE,EAAWrE,EAAIsE,EAAeD,AAAAA,CAAAA,EAAWC,CAAU,EAAK,EAC5DrE,EAAIoE,EAAWpE,EAAIqE,EAAeD,AAAAA,CAAAA,EAAWC,CAAU,EAAK,EAC5DD,EAAW,EACX,CACC/D,KAAMA,EACN,eAAgBD,CACjB,GAGDhH,GAAK,CAGR,EAEAgC,EAAQjB,SAAS,CAACmK,mBAAmB,CAAG,WAEvC,IAEUlL,EAAGgH,EAASE,EAAQlB,EAAKW,EAAGC,EAFlCoE,EAAcjH,EADAsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GACP,EAAG,GAAI,GAAI,IACpCkI,EAAcD,EAAW,EAO7B,IAJA,IAAI,CAAC7E,GAAG,CAAC4C,QAAQ,CAACiC,AAAW,EAAXA,GAClB,IAAI,CAAC7E,GAAG,CAAC6C,SAAS,CAACgC,AAAW,EAAXA,GAEnBhL,EAAI,EACC4G,EAAI,EAAGA,EAAI,EAAGA,IAClB,IAAKD,EAAI,EAAGA,EAAI,EAAGA,IAElBK,EAAUf,EADVD,EAAUX,EAAO,IAAI,CAACtC,IAAI,CAAE/C,IAI5BkH,EAAS,CACRD,KAAM,OACNE,OAJSpB,EAAUC,GAKnBgB,QAASA,EACT,eAAgBiE,EAAc,IAC/B,EAEA,IAAI,CAAC9E,GAAG,CAACwE,MAAM,CAAChE,EAAIqE,EAAUpE,EAAIoE,EAAUA,EAAWC,EAAc,EAAG/D,GAGpEP,AAAM,IAANA,GACH,IAAI,CAACR,GAAG,CAACwE,MAAM,CAAC,EAAIK,EAAUpE,EAAIoE,EAAUA,EAAWC,EAAc,EAAG/D,GAGrEN,AAAM,IAANA,GACH,IAAI,CAACT,GAAG,CAACwE,MAAM,CAAChE,EAAIqE,EAAU,EAAIA,EAAUA,EAAWC,EAAc,EAAG/D,GAGrEP,AAAM,IAANA,GAAWC,AAAM,IAANA,GACd,IAAI,CAACT,GAAG,CAACwE,MAAM,CAAC,EAAIK,EAAU,EAAIA,EAAUA,EAAWC,EAAc,EAAG/D,GAGzElH,GAAK,CAGR,EAYAgC,EAAQjB,SAAS,CAACoK,YAAY,CAAG,WAEhC,IAGUnL,EAAGgH,EAASoE,EAAUlE,EAAQlB,EAAKW,EAAGC,EAd5CyE,EAWA5E,EAAiB1C,EADAsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GACP,EAAG,GAAI,GAAI,IACvCuI,EAAiB7E,EAAa,EAAIrC,KAAKsE,IAAI,CAAC,GAC5C3B,EAZG,CADHsE,EAAY5E,AAawBA,EAbX,EAEjB,EAW4BA,EAAY6E,EATnD,EASmDA,EARnDD,EAAW,EACX,CAACrH,IAAI,CAAC,KAcP,IAJA,IAAI,CAACmC,GAAG,CAAC4C,QAAQ,CAACtC,AAAa,EAAbA,GAClB,IAAI,CAACN,GAAG,CAAC6C,SAAS,CAACsC,AAAiB,EAAjBA,GAEnBtL,EAAI,EACC4G,EAAI,EAAGA,EAAI,EAAGA,IAClB,IAAKD,EAAI,EAAGA,EAAI,EAAGA,IAElBK,EAAUf,EADVD,EAAUX,EAAO,IAAI,CAACtC,IAAI,CAAE/C,IAI5BkH,EAAS,CACRD,KAHSlB,EAAUC,GAInB,eAAgBgB,EAChBG,OAAQ/B,EACR,iBAttBmB,GAutBpB,EAGCgG,EADGxE,EAAI,GAAM,EACFD,AAAc,IAAdA,CAAAA,EAAI,GAAM,GAEVA,AAAc,IAAdA,CAAAA,EAAI,GAAM,GAGtB,IAAI,CAACR,GAAG,CAACiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CAC7CC,UAAW,CACVX,EAAIF,EAAa,GAAMA,EAAa,EACpC6E,EAAiB1E,EACjB,CACD2D,OAAQ,CACPa,EACA3E,EAAa,EACb6E,EAAiB,EACjB,AACF,GAGI3E,AAAM,IAANA,GACH,IAAI,CAACR,GAAG,CAACiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CAC7CC,UAAW,CACV,EAAIb,EAAa,GAAMA,EAAa,EACpC6E,EAAiB1E,EACjB,CACD2D,OAAQ,CACPa,EACA3E,EAAa,EACb6E,EAAiB,EACjB,AACF,GAGDtL,GAAK,CAGR,EAWAgC,EAAQjB,SAAS,CAACwK,WAAW,CAAG,WAC/B,IAGItB,EAAUjK,EAAGgH,EAASE,EAAQlB,EAAKW,EAAGC,EAHtC4E,EAAgBzH,EAAIsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GAAI,EAAG,GAAI,GAAI,IACrD0I,EAAgB1H,EAAIsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GAAI,EAAG,GAAI,GAAI,IACrD2I,EAXG,CACN7B,AAUqC2B,EAV7B,EAAG,EAU0BA,EAT9B5B,AAS4C6B,EATnC,EAChB5B,AAQqC2B,EAR7B,EAQ2CC,EAPnD,EAAG7B,AAOgD6B,EAPvC,EACZ,CAACzH,IAAI,CAAC,KAaP,IAJA,IAAI,CAACmC,GAAG,CAAC4C,QAAQ,CAACyC,AAAe,EAAfA,GAClB,IAAI,CAACrF,GAAG,CAAC6C,SAAS,CAACyC,AAAgB,EAAhBA,GAEnBzL,EAAI,EACC4G,EAAI,EAAGA,EAAI,EAAGA,IAClB,IAAKD,EAAI,EAAGA,EAAI,EAAGA,IAElBK,EAAUf,EADVD,EAAUX,EAAO,IAAI,CAACtC,IAAI,CAAE/C,IAI5BkH,EAAS,CACRD,KAHSlB,EAAUC,GAInB,eAAgBgB,EAChBG,OAAQ/B,EACR,iBA5xBmB,GA6xBpB,EAEA6E,EAAMrD,EAAI,GAAM,EAAK,EAAI4E,EAAe,EAExC,IAAI,CAACrF,GAAG,CAACiB,QAAQ,CAACsE,EAASxE,GAAQG,SAAS,CAAC,CAC5CC,UAAW,CACVX,EAAI6E,EAAeA,EAAe,EAAIvB,EACtCwB,EAAgB,EAAI7E,EAAI6E,EAAgB,EACxC,AACF,GAGI9E,AAAM,IAANA,GACH,IAAI,CAACR,GAAG,CAACiB,QAAQ,CAACsE,EAASxE,GAAQG,SAAS,CAAC,CAC5CC,UAAW,CACV,EAAIkE,EAAeA,EAAe,EAAIvB,EACtCwB,EAAgB,EAAI7E,EAAI6E,EAAgB,EACxC,AACF,GAIG7E,AAAM,IAANA,GACH,IAAI,CAACT,GAAG,CAACiB,QAAQ,CAACsE,EAASxE,GAAQG,SAAS,CAAC,CAC5CC,UAAW,CACVX,EAAI6E,EAAeA,EAAe,EAAIvB,EACtCwB,EAAgB,EAAI,EAAIA,EAAgB,EACxC,AACF,GAIG9E,AAAM,IAANA,GAAWC,AAAM,IAANA,GACd,IAAI,CAACT,GAAG,CAACiB,QAAQ,CAACsE,EAASxE,GAAQG,SAAS,CAAC,CAC5CC,UAAW,CACV,EAAIkE,EAAeA,EAAe,EAAIvB,EACtCwB,EAAgB,EAAI,EAAIA,EAAgB,EACxC,AACF,GAGDzL,GAAK,CAGR,EAEAgC,EAAQjB,SAAS,CAAC4K,gBAAgB,CAAG,WACpC,IAEI1E,EAAMjH,EAAGgH,EAASE,EAAQlB,EAAKW,EAAGC,EAFlCgF,EAAa7H,EAAIsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GAAI,EAAG,GAAI,EAAG,IACjDwD,EAAaqF,AAAY,EAAZA,EAOjB,IAJA,IAAI,CAACzF,GAAG,CAAC4C,QAAQ,CAAExC,AAAAA,CAAAA,EAAaqF,CAAQ,EAAK,EAAIA,AAAY,EAAZA,GACjD,IAAI,CAACzF,GAAG,CAAC6C,SAAS,CAAEzC,AAAAA,CAAAA,EAAaqF,CAAQ,EAAK,EAAIA,AAAY,EAAZA,GAElD5L,EAAI,EACC4G,EAAI,EAAGA,EAAI,EAAGA,IAClB,IAAKD,EAAI,EAAGA,EAAI,EAAGA,IAElBK,EAAUf,EADVD,EAAUX,EAAO,IAAI,CAACtC,IAAI,CAAE/C,IAI5BkH,EAAS,CACRD,KAAM,OACNE,OAJSpB,EAAUC,GAKnBgB,QAASA,EACT,eAAgB4E,EAAY,IAC7B,EAEA,IAAI,CAACzF,GAAG,CAACgC,IAAI,CAACxB,EAAIJ,EAAaI,EAAIiF,EAAY,EAAIA,EAAY,EACjDhF,EAAIL,EAAaK,EAAIgF,EAAY,EAAIA,EAAY,EACjDrF,EAAYA,EAAYW,GAGtCF,EAAUf,EADVD,EAAUX,EAAO,IAAI,CAACtC,IAAI,CAAE,GAAK/C,IAIjCkH,EAAS,CACRD,KAAM,OACNE,OAJSpB,EAAUC,GAKnBgB,QAASA,EACT,eAAgB4E,EAAY,IAC7B,EAEA,IAAI,CAACzF,GAAG,CAACgC,IAAI,CAACxB,EAAIJ,EAAaI,EAAIiF,EAAY,EAAIA,EAAY,EAAIA,AAAY,EAAZA,EACrDhF,EAAIL,EAAaK,EAAIgF,EAAY,EAAIA,EAAY,EAAIA,AAAY,EAAZA,EACrDA,AAAY,EAAZA,EAAeA,AAAY,EAAZA,EAAe1E,GAE5ClH,GAAK,CAGR,EAuGAgC,EAAQjB,SAAS,CAAC8K,gBAAgB,CAAG,WACpC,IACI7L,EAAG2G,EAAGC,EADNC,EAAe9C,EAAIsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GAAI,EAAG,GAAI,GAAI,IAOxD,IAJA,IAAI,CAACoD,GAAG,CAAC4C,QAAQ,CAAClC,AAAe,EAAfA,GAClB,IAAI,CAACV,GAAG,CAAC6C,SAAS,CAACnC,AAAe,EAAfA,GAEnB7G,EAAI,EACC4G,EAAI,EAAGA,EAAI,EAAGA,IAClB,IAAKD,EAAI,EAAGA,EAAI,EAAGA,IACdA,EAAI,GAAM,EACTC,EAAI,GAAM,EACbY,EAAoB,IAAI,CAACrB,GAAG,CAC3BQ,EAAIE,EAAe,EACnBD,EAAIC,EAAe,EACnBA,EACAxB,EAAO,IAAI,CAACtC,IAAI,CAAE/C,IAGnB0G,EAAoB,IAAI,CAACP,GAAG,CAC3BQ,EAAIE,EAAe,EACnBD,EAAIC,EAAe,EACnBA,EACA,CAACxB,EAAO,IAAI,CAACtC,IAAI,CAAE/C,GAAIqF,EAAO,IAAI,CAACtC,IAAI,CAAE/C,EAAI,GAAG,EAI9C4G,EAAI,GAAM,EACbF,EAAoB,IAAI,CAACP,GAAG,CAC3BQ,EAAIE,EAAe,EACnBD,EAAIC,EAAe,EACnBA,EACA,CAACxB,EAAO,IAAI,CAACtC,IAAI,CAAE/C,GAAIqF,EAAO,IAAI,CAACtC,IAAI,CAAE/C,EAAI,GAAG,EAGjDwH,EAAoB,IAAI,CAACrB,GAAG,CAC3BQ,EAAIE,EAAe,EACnBD,EAAIC,EAAe,EACnBA,EACAxB,EAAO,IAAI,CAACtC,IAAI,CAAE/C,IAKrBA,GAAK,CAGR,EAEAgC,EAAQjB,SAAS,CAAC+K,QAAQ,CAAG,WAC5B,IAEI7E,EAAMjH,EAAGgH,EAAS+E,EAAOC,EAAcC,EAAajG,EAFpD4D,EAAS,EACTC,EAAS,EAKb,IADA7J,EAAI,EACGA,EAAI,IAEV4J,GAAUmC,AADA1G,EAAO,IAAI,CAACtC,IAAI,CAAE/C,GACV,EAGlBgH,EAAef,EADfD,EAAeX,EAAO,IAAI,CAACtC,IAAI,CAAE/C,EAAI,IAErCiH,EAAelB,EAAUC,GACzBgG,EAAehG,EAAM,EAErB,IAAI,CAACG,GAAG,CAACgC,IAAI,CAAC,EAAGyB,EAAQ,OAAQoC,EAAc,CAC9ChF,QAASA,EACTC,KAAMA,CACP,GAEA2C,GAAUoC,EACVhM,GAAK,EAKN,IADAA,EAAI,EACGA,EAAI,IAEV6J,GAASkC,AADA1G,EAAO,IAAI,CAACtC,IAAI,CAAE/C,GACV,EAGjBgH,EAAcf,EADdD,EAAcX,EAAO,IAAI,CAACtC,IAAI,CAAE/C,EAAI,IAEpCiH,EAAclB,EAAUC,GACxBiG,EAAcjG,EAAM,EAEpB,IAAI,CAACG,GAAG,CAACgC,IAAI,CAAC0B,EAAO,EAAGoC,EAAa,OAAQ,CAC5CjF,QAASA,EACTC,KAAMA,CACP,GAEA4C,GAASoC,EACTjM,GAAK,EAGN,IAAI,CAACmG,GAAG,CAAC4C,QAAQ,CAACc,GAClB,IAAI,CAAC1D,GAAG,CAAC6C,SAAS,CAACY,EACpB,EAYA5H,EAAQjB,SAAS,CAACmL,eAAe,CAAG,WAEnC,IAOUlM,EAAGgH,EAASE,EAAQlB,EAP1BS,EAAiB1C,EAAIsB,EAAO,IAAI,CAACtC,IAAI,CAAE,GAAI,EAAG,GAAI,EAAG,IACrD0F,EAAiBhC,EAAarC,KAAKsE,IAAI,CAAC,GACxCC,EAAiBlC,AAAa,EAAbA,EACjB6E,EAAiB7E,EAAa,EAAIrC,KAAKsE,IAAI,CAAC,GAC5C3B,EAdG,CACN,EAAG,EAauDuE,EAf1C7E,AAe8BA,EAfjB,EAI7B,EAW8CA,EAV9C,EAAG,EACH,CAACzC,IAAI,CAAC,KAUHmI,EAAiB1F,AAAa,EAAbA,EAAiB6E,AAAiB,EAAjBA,EAClCc,EAAkB3D,AAAY,EAAZA,EAAkBhC,AAAa,EAAbA,EAMxC,IAHA,IAAI,CAACN,GAAG,CAAC4C,QAAQ,CAACoD,GAClB,IAAI,CAAChG,GAAG,CAAC6C,SAAS,CAACoD,GAEdpM,EAAI,EAAGA,EAAI,GAAIA,IAanB,OAXAgH,EAAUf,EADVD,EAAUX,EAAO,IAAI,CAACtC,IAAI,CAAE/C,IAI5BkH,EAAU,CACTC,OAAQ/B,EACR,iBA/lCoB,IAgmCpB6B,KALSlB,EAAUC,GAMnB,eAAgBgB,EAChB,eAAgB,CACjB,EAEQhH,GACP,KAAK,EACJ,IAAI,CAACmG,GAAG,CAACgC,IAAI,CAAC,CAAC1B,EAAa,EAAG,CAACA,EAAa,EAAGA,EAAYA,EAAYS,GACxE,IAAI,CAACf,GAAG,CAACgC,IAAI,CAACgE,EAAY1F,EAAa,EAAG,CAACA,EAAa,EAAGA,EAAYA,EAAYS,GACnF,IAAI,CAACf,GAAG,CAACgC,IAAI,CAAC,CAAC1B,EAAa,EAAG2F,EAAa3F,EAAa,EAAGA,EAAYA,EAAYS,GACpF,IAAI,CAACf,GAAG,CAACgC,IAAI,CAACgE,EAAY1F,EAAa,EAAG2F,EAAa3F,EAAa,EAAGA,EAAYA,EAAYS,GAC/F,KACD,MAAK,EACJ,IAAI,CAACf,GAAG,CAACgC,IAAI,CAACQ,EAAW,EAAI2C,EAAgB7C,EAAY,EAAGhC,EAAYA,EAAYS,GACpF,KACD,MAAK,EACJ,IAAI,CAACf,GAAG,CAACgC,IAAI,CAAC,CAAC1B,EAAa,EAAG2F,EAAa,EAAI3F,EAAa,EAAGA,EAAYA,EAAYS,GACxF,IAAI,CAACf,GAAG,CAACgC,IAAI,CAACgE,EAAY1F,EAAa,EAAG2F,EAAa,EAAI3F,EAAa,EAAGA,EAAYA,EAAYS,GACnG,KACD,MAAK,EACJ,IAAI,CAACf,GAAG,CAACgC,IAAI,CAACQ,EAAW,EAAI2C,EAAgB7C,AAAY,IAAZA,EAAkBhC,EAAYA,EAAYA,EAAYS,GACnG,KACD,MAAK,EACJ,IAAI,CAACf,GAAG,CAACiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CAC7CC,UAAW,CACVb,EAAa,EACb,CAACA,EAAa,EACd,CACD8D,OAAQ,CACP,EACA9D,EAAa,EACb6E,EAAiB,EACjB,AACF,GACA,IAAI,CAACnF,GAAG,CAACiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CAC7CC,UAAW,CACVb,EAAa,EACb2F,GAAa,CAAC3F,EAAa,EAC3B,CACD8D,OAAQ,CACP,EACA9D,EAAa,EACb6E,EAAiB,EACjB,CACD/D,MAAO,CAAC,EAAG,GAAG,AACf,GACA,KACD,MAAK,EACJ,IAAI,CAACpB,GAAG,CAACiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CAC7CC,UAAW,CACV6E,EAAY1F,EAAa,EACzB,CAACA,EAAa,EACd,CACD8D,OAAQ,CACP,EACA9D,EAAa,EACb6E,EAAiB,EACjB,CACD/D,MAAO,CAAC,GAAI,EAAE,AACf,GACA,IAAI,CAACpB,GAAG,CAACiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CAC7CC,UAAW,CACV6E,EAAY1F,EAAa,EACzB2F,EAAa3F,EAAa,EAC1B,CACD8D,OAAQ,CACP,EACA9D,EAAa,EACb6E,EAAiB,EACjB,CACD/D,MAAO,CAAC,GAAI,GAAG,AAChB,GACA,KACD,MAAK,EACJ,IAAI,CAACpB,GAAG,CAACiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CAC7CC,UAAW,CACV6E,EAAY,EAAI1F,EAAa,EAC7BgC,EAAY,EACZ,GACF,KACD,MAAK,EACJ,IAAI,CAACtC,GAAG,CAACiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CAC7CC,UAAW,CACV6E,EAAYA,EAAY,EAAI1F,EAAa,EACzCgC,EAAY,EACZ,CACDlB,MAAO,CAAC,GAAI,EAAE,AACf,GACA,KACD,MAAK,EACJ,IAAI,CAACpB,GAAG,CAACiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CAC7CC,UAAW,CACV6E,EAAY,EAAI1F,EAAa,EAC7B2F,EAAa3D,EAAY,EACzB,CACDlB,MAAO,CAAC,EAAG,GAAG,AACf,GACA,KACD,MAAK,EACJ,IAAI,CAACpB,GAAG,CAACiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CAC7CC,UAAW,CACV6E,EAAYA,EAAY,EAAI1F,EAAa,EACzC2F,EAAa3D,EAAY,EACzB,CACDlB,MAAO,CAAC,GAAI,GAAG,AAChB,GACA,KACD,MAAK,GACJ,IAAI,CAACpB,GAAG,CAACiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CAC7CC,UAAW,CACVb,EAAa,EACb2F,EAAa,EAAI3F,EAAa,EAC9B,AACF,GACA,KACD,MAAK,GACJ,IAAI,CAACN,GAAG,CAACiB,QAAQ,CAACL,EAAUG,GAAQG,SAAS,CAAC,CAC7CC,UAAW,CACV6E,EAAY1F,EAAa,EACzB2F,EAAa,EAAI3F,EAAa,EAC9B,CACDc,MAAO,CAAC,GAAI,EAAE,AACf,GACA,KACD,MAAK,GACJ,IAAI,CAACpB,GAAG,CAACgC,IAAI,CAAC,EAAG,EAAG1B,EAAYA,EAAYS,GAAQG,SAAS,CAAC,CAC7DC,UAAW,CAACb,EAAa,EAAGA,EAAa,EAAE,CAC3C8D,OAAQ,CAAC,IAAK,EAAG,EAAE,AACpB,GACA,KACD,MAAK,GACJ,IAAI,CAACpE,GAAG,CAACgC,IAAI,CAAC,EAAG,EAAG1B,EAAYA,EAAYS,GAAQG,SAAS,CAAC,CAC7DE,MAAO,CAAC,GAAI,EAAE,CACdD,UAAW,CAAC,CAAC6E,EAAY1F,EAAa,EAAGA,EAAa,EAAE,CACxD8D,OAAQ,CAAC,IAAK,EAAG,EAAE,AACpB,GACA,KACD,MAAK,GACJ,IAAI,CAACpE,GAAG,CAACgC,IAAI,CAAC,EAAG,EAAG1B,EAAYA,EAAYS,GAAQG,SAAS,CAAC,CAC7DC,UAAW,CACVb,EAAa,EACb2F,EAAa,EAAI3F,EAAa,EAAIA,EAClC,CACD8D,OAAQ,CAAC,GAAI,EAAG9D,EAAW,AAC5B,GACA,KACD,MAAK,GACJ,IAAI,CAACN,GAAG,CAACgC,IAAI,CAAC,EAAG,EAAG1B,EAAYA,EAAYS,GAAQG,SAAS,CAAC,CAC7DE,MAAO,CAAC,GAAI,EAAE,CACdD,UAAW,CACV,CAAC6E,EAAY1F,EAAa,EAC1B2F,EAAa,EAAI3F,EAAa,EAAKA,EACnC,CACD8D,OAAQ,CAAC,GAAI,EAAG9D,EAAW,AAC5B,GACA,KACD,MAAK,GACJ,IAAI,CAACN,GAAG,CAACgC,IAAI,CAAC,EAAG,EAAG1B,EAAYA,EAAYS,GAAQG,SAAS,CAAC,CAC7DE,MAAO,CAAC,EAAG,GAAG,CACdD,UAAW,CACVb,EAAa,EACb,CAAC2F,EAAaA,EAAa,EAAI3F,EAAa,EAAIA,EAChD,CACD8D,OAAQ,CAAC,GAAI,EAAG9D,EAAW,AAC5B,GACA,KACD,MAAK,GACJ,IAAI,CAACN,GAAG,CAACgC,IAAI,CAAC,EAAG,EAAG1B,EAAYA,EAAYS,GAAQG,SAAS,CAAC,CAC7DE,MAAO,CAAC,GAAI,GAAG,CACfD,UAAW,CACV,CAAC6E,EAAY1F,EAAa,EAC1B,CAAC2F,EAAaA,EAAa,EAAI3F,EAAa,EAAIA,EAChD,CACD8D,OAAQ,CAAC,GAAI,EAAG9D,EAAW,AAC5B,GACA,KACD,MAAK,GACJ,IAAI,CAACN,GAAG,CAACgC,IAAI,CAAC,EAAG,EAAG1B,EAAYA,EAAYS,GAAQG,SAAS,CAAC,CAC7DE,MAAO,CAAC,EAAG,GAAG,CACdD,UAAW,CACVb,EAAa,EACb,CAAC2F,EAAa3F,EAAa,EAC3B,CACD8D,OAAQ,CAAC,IAAK,EAAG,EAAE,AACpB,GACA,KACD,MAAK,GACJ,IAAI,CAACpE,GAAG,CAACgC,IAAI,CAAC,EAAG,EAAG1B,EAAYA,EAAYS,GAAQG,SAAS,CAAC,CAC7DE,MAAO,CAAC,GAAI,GAAG,CACfD,UAAW,CACV,CAAC6E,EAAY1F,EAAa,EAC1B,CAAC2F,EAAa3F,EAAa,EAC3B,CACD8D,OAAQ,CAAC,IAAK,EAAG,EAAE,AACpB,EAEF,CAEF,C,gCC7yCA,SAAS8B,IAER,IAAIC,EAAK,WACLC,EAAK,WACLC,EAAK,WACLC,EAAK,WACLC,EAAK,WAELC,EAAQ,IAAIC,YAAY,IAAKC,EAAS,EAAGC,EAAQ,GACjDC,EAAc,EAGlB,SAASC,IAER,IAAK,IAaDzN,EAAG0N,EAbEjN,EAAI,GAAIA,EAAI,GAAIA,IAAK,CAC7B,IAAIkN,EAAIP,CAAK,CAAC3M,EAAI,EAAE,CAAG2M,CAAK,CAAC3M,EAAI,EAAE,CAAG2M,CAAK,CAAC3M,EAAI,GAAG,CAAG2M,CAAK,CAAC3M,EAAI,GAAG,AACnE2M,CAAAA,CAAK,CAAC3M,EAAE,CAAIkN,GAAK,EAAMA,IAAM,EAC9B,CAKA,IAAIhQ,EAAIoP,EACJ7I,EAAI8I,EACJ3D,EAAI4D,EACJlI,EAAImI,EACJ1R,EAAI2R,EAIR,IAAK1M,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACpBA,EAAI,IACPT,EAAI+E,EAAKb,EAAKmF,CAAAA,EAAItE,CAAAA,EAClB2I,EAAI,YAEIjN,EAAI,IACZT,EAAIkE,EAAImF,EAAItE,EACZ2I,EAAI,YAEIjN,EAAI,IACZT,EAAKkE,EAAImF,EAAMtE,EAAKb,CAAAA,EAAImF,CAAAA,EACxBqE,EAAI,aAGJ1N,EAAIkE,EAAImF,EAAItE,EACZ2I,EAAI,YAEL,IAAIE,EAAQjQ,AAAAA,CAAAA,GAAK,EAAIA,IAAM,EAAC,EAAKqC,EAAIxE,EAAIkS,EAAKN,CAAAA,AAAW,EAAXA,CAAK,CAAC3M,EAAE,AAAG,EACzDjF,EAAIuJ,EACJA,EAAIsE,EACJA,EAAKnF,GAAK,GAAKA,IAAM,EACrBA,EAAIvG,EACJA,EAAIiQ,CACL,CAWA,IAAKnN,EAAI,EARTsM,EAAMA,EAAKpP,EAAK,EAChBqP,EAAMA,EAAK9I,EAAK,EAChB+I,EAAMA,EAAK5D,EAAK,EAChB6D,EAAMA,EAAKnI,EAAK,EAChBoI,EAAMA,EAAK3R,EAAK,EAGhB8R,EAAS,EACG7M,EAAI,GAAIA,IACnB2M,CAAK,CAAC3M,EAAE,CAAG,CAEb,CAEA,SAASoN,EAAMC,CAAI,EAClBV,CAAK,CAACE,EAAO,EAAKQ,AAAAA,CAAAA,AAAO,IAAPA,CAAU,GAAMP,EAC9BA,EACHA,GAAS,GAGTD,IACAC,EAAQ,IAELD,AAAW,KAAXA,GACHG,GAEF,CAsBA,SAASM,EAAMC,CAAI,EAElB,IAAK,IADDlK,EAAM,GACDrD,EAAI,GAAIA,GAAK,EAAGA,GAAK,EAC7BqD,GAAQ,AAACkK,CAAAA,GAAQvN,EAAK,EAAE,EAAGxC,QAAQ,CAAC,IAErC,OAAO6F,CACR,CA6BA,MAAO,CAAEmK,OA9CT,SAAgBC,CAAK,EACpB,GAAI,AAAiB,UAAjB,OAAOA,EACHC,KAVJvQ,EAASiF,AAUQqL,EAVDtQ,MAAM,CAC1B4P,GAAe5P,AAAS,EAATA,EACf,IAAK,IAAI6C,EAAI,EAAGA,EAAI7C,EAAQ6C,IAC3BoN,EAAMhL,AAOcqL,EAPPE,UAAU,CAAC3N,UAOC,CAE1B,IAAI7C,EAASsQ,EAAMtQ,MAAM,CACzB4P,GAAe5P,AAAS,EAATA,EACf,IAAK,IAAI6C,EAAI,EAAGA,EAAI7C,EAAQ6C,IAC3BoN,EAAMK,CAAK,CAACzN,EAAE,CAEhB,EAqCyB4N,OA1BzB,WAECR,EAAM,KACFP,CAAAA,EAAS,IAAOA,AAAW,KAAXA,GAAiBC,EAAQ,EAAC,GAC7CE,IAEDH,EAAS,GACTC,EAAQ,GAGRM,EAAM,GACNA,EAAM,GACNA,EAAML,EAAc,aAAeA,EAAc,cAAgB,GACjEK,EAAML,EAAc,WAAaA,EAAc,YAAc,GAC7D,IAAK,IAAI1N,EAAI,GAAIA,GAAK,EAAGA,GAAK,EAC7B+N,EAAML,GAAe1N,GAItB,OAAOiO,EAAMhB,GACbgB,EAAMf,GACNe,EAAMd,GACNc,EAAMb,GACNa,EAAMZ,EACP,CAEwC,CACzC,CAGAjL,EAAO,OAAO,CAAG,SAAcoM,CAAM,EACpC,GAAIA,AAAWC,SAAXD,EACH,OAAOxB,IAER,IAAI0B,EAAS1B,IAEb,OADA0B,EAAOP,MAAM,CAACK,GACPE,EAAOH,MAAM,EACrB,C,oCC/KA,IAAI9K,EAASb,EAAQ,KACjB+L,EAAU/L,EAAQ,MAEtB,SAAS+C,IAWR,OAVA,IAAI,CAAC6E,KAAK,CAAG,IACb,IAAI,CAACD,MAAM,CAAG,IACd,IAAI,CAACzD,GAAG,CAAG6H,EAAQ,OACnB,IAAI,CAACC,OAAO,CAAG,EAAE,CACjB,IAAI,CAACC,aAAa,CAAC,IAAI,CAAC/H,GAAG,CAAE,CAC5BgI,MAAO,6BACPtE,MAAO,IAAI,CAACA,KAAK,CACjBD,OAAQ,IAAI,CAACA,MAAM,AACpB,GAEO,IAAI,AACZ,CAEAnI,EAAO,OAAO,CAAGuD,EAGjBA,EAAIjE,SAAS,CAACqN,cAAc,CAAG,WAC9B,OAAO,IAAI,CAACH,OAAO,CAAC,IAAI,CAACA,OAAO,CAAC9Q,MAAM,CAAG,EAAE,EAAI,IAAI,CAACgJ,GAAG,AACzD,EAGAnB,EAAIjE,SAAS,CAACgJ,GAAG,CAAG,WAEnB,OADA,IAAI,CAACkE,OAAO,CAACI,GAAG,GACT,IAAI,AACZ,EAEArJ,EAAIjE,SAAS,CAACuN,WAAW,CAAG,WAC3B,IAAIL,EAAU,IAAI,CAACG,cAAc,GACjC,OAAOH,EAAQM,SAAS,EAAIN,CAC7B,EAEAjJ,EAAIjE,SAAS,CAACsG,SAAS,CAAG,SAAUmH,CAAe,EAMlD,OALA,IAAI,CAACF,WAAW,GAAGG,YAAY,CAAC,YAC/BvQ,OAAOC,IAAI,CAACqQ,GAAiBzK,GAAG,CAAC,SAAU2K,CAAc,EACxD,OAAOA,EAAiB,IAAMF,CAAe,CAACE,EAAe,CAAC1K,IAAI,CAAC,KAAO,GAC3E,GAAGA,IAAI,CAAC,MAEF,IAAI,AACZ,EAEAgB,EAAIjE,SAAS,CAACmN,aAAa,CAAG,SAAUS,CAAE,CAAEC,CAAK,EAChD1Q,OAAOC,IAAI,CAACyQ,GAAOxQ,OAAO,CAAC,SAAUyE,CAAI,EACxC8L,EAAGF,YAAY,CAAC5L,EAAM+L,CAAK,CAAC/L,EAAK,CAClC,EACD,EAEAmC,EAAIjE,SAAS,CAACgI,QAAQ,CAAG,SAAUc,CAAK,EACvC,IAAI,CAAC1D,GAAG,CAACsI,YAAY,CAAC,QAASrK,KAAKgF,KAAK,CAACS,GAC3C,EAEA7E,EAAIjE,SAAS,CAACiI,SAAS,CAAG,SAAUY,CAAM,EACzC,IAAI,CAACzD,GAAG,CAACsI,YAAY,CAAC,SAAUrK,KAAKgF,KAAK,CAACQ,GAC5C,EAEA5E,EAAIjE,SAAS,CAACvD,QAAQ,CAAG,WACxB,OAAO,IAAI,CAAC2I,GAAG,CAAC3I,QAAQ,EACzB,EAEAwH,EAAIjE,SAAS,CAACoH,IAAI,CAAG,SAAUxB,CAAC,CAAEC,CAAC,CAAEiD,CAAK,CAAED,CAAM,CAAEiF,CAAI,EAEvD,IAAIhN,EAAO,IAAI,CACf,GAAIxE,MAAM8B,OAAO,CAACwH,GAIjB,OAHAA,EAAEvI,OAAO,CAAC,SAAUlB,CAAC,EACpB2E,EAAKsG,IAAI,CAAC/G,KAAK,CAACS,EAAM3E,EAAEwB,MAAM,CAACmQ,GAChC,GACO,IAAI,CAGZ,IAAI1G,EAAO6F,EAAQ,QASnB,OARA,IAAI,CAACI,cAAc,GAAGU,WAAW,CAAC3G,GAClC,IAAI,CAAC+F,aAAa,CAAC/F,EAAMrF,EAAO,CAC/B6D,EAAGA,EACHC,EAAGA,EACHiD,MAAOA,EACPD,OAAQA,CACT,EAAGiF,IAEI,IAAI,AACZ,EAEA7J,EAAIjE,SAAS,CAAC4J,MAAM,CAAG,SAAUoE,CAAE,CAAEC,CAAE,CAAEhU,CAAC,CAAE6T,CAAI,EAC/C,IAAIlE,EAASqD,EAAQ,UAQrB,OAPA,IAAI,CAACI,cAAc,GAAGU,WAAW,CAACnE,GAClC,IAAI,CAACuD,aAAa,CAACvD,EAAQ7H,EAAO,CACjCiM,GAAIA,EACJC,GAAIA,EACJhU,EAAGA,CACJ,EAAG6T,IAEI,IAAI,AACZ,EAEA7J,EAAIjE,SAAS,CAACwI,IAAI,CAAG,SAAU3B,CAAG,CAAEiH,CAAI,EACvC,IAAItF,EAAOyE,EAAQ,QAMnB,OALA,IAAI,CAACI,cAAc,GAAGU,WAAW,CAACvF,GAClC,IAAI,CAAC2E,aAAa,CAAC3E,EAAMzG,EAAO,CAC/BwB,EAAGsD,CACJ,EAAGiH,IAEI,IAAI,AACZ,EAEA7J,EAAIjE,SAAS,CAACqG,QAAQ,CAAG,SAAUQ,CAAG,CAAEiH,CAAI,EAE3C,IAAIhN,EAAO,IAAI,CACf,GAAIxE,MAAM8B,OAAO,CAACyI,GAIjB,OAHAA,EAAIxJ,OAAO,CAAC,SAAUiB,CAAC,EACtBwC,EAAKuF,QAAQ,CAAC/H,EAAGwP,EAClB,GACO,IAAI,CAGZ,IAAIzH,EAAW4G,EAAQ,YAMvB,OALA,IAAI,CAACI,cAAc,GAAGU,WAAW,CAAC1H,GAClC,IAAI,CAAC8G,aAAa,CAAC9G,EAAUtE,EAAO,CACnCmM,OAAQrH,CACT,EAAGiH,IAEI,IAAI,AACZ,EAGA7J,EAAIjE,SAAS,CAAC+I,KAAK,CAAG,SAAU+E,CAAI,EACnC,IAAI/E,EAAQkE,EAAQ,KAIpB,OAHA,IAAI,CAACI,cAAc,GAAGU,WAAW,CAAChF,GAClC,IAAI,CAACmE,OAAO,CAAChO,IAAI,CAAC6J,GAClB,IAAI,CAACoE,aAAa,CAACpE,EAAOhH,EAAO,CAAC,EAAG+L,IAC9B,IAAI,AACZ,C,gCCpIA,IAAIb,EAAUvM,EAAO,OAAO,CAAG,SAAUyN,CAAO,QAC/C,A,OAAsBlB,G,4BAAAA,C,qBAAAA,C,qBAAhB,IAAI,E,AAAJ,IAAI,YAAYA,C,GAItB,IAAI,CAACkB,OAAO,CAAGA,EACf,IAAI,CAACC,UAAU,CAAGjR,OAAOmO,MAAM,CAAC,MAChC,IAAI,CAAC+C,QAAQ,CAAG,EAAE,CAClB,IAAI,CAACb,SAAS,CAAG,KAEV,IAAI,EARH,IAAIP,EAAQkB,EASrB,CAEAlB,CAAAA,EAAQjN,SAAS,CAAC+N,WAAW,CAAG,SAAUO,CAAK,EAI9C,OAHA,IAAI,CAACD,QAAQ,CAACnP,IAAI,CAACoP,GACnB,IAAI,CAACd,SAAS,CAAGc,EAEV,IAAI,AACZ,EAEArB,EAAQjN,SAAS,CAAC0N,YAAY,CAAG,SAAU3R,CAAI,CAAEyB,CAAK,EAGrD,OAFA,IAAI,CAAC4Q,UAAU,CAACrS,EAAK,CAAGyB,EAEjB,IAAI,AACZ,EAEAyP,EAAQjN,SAAS,CAACvD,QAAQ,CAAG,WAC5B,IAAIqE,EAAO,IAAI,CAEf,MAAO,CACN,IACAA,EAAKqN,OAAO,CACZhR,OAAOC,IAAI,CAAC0D,EAAKsN,UAAU,EAAEpL,GAAG,CAAC,SAAUlB,CAAI,EAC9C,MAAO,CACN,IACAA,EACA,KACAhB,EAAKsN,UAAU,CAACtM,EAAK,CACrB,IACA,CAACmB,IAAI,CAAC,GACR,GAAGA,IAAI,CAAC,IACR,IACAnC,EAAKuN,QAAQ,CAACrL,GAAG,CAAC,SAAUsL,CAAK,EAChC,OAAOA,EAAM7R,QAAQ,EACtB,GAAGwG,IAAI,CAAC,IACR,KACAnC,EAAKqN,OAAO,CACZ,IACA,CAAClL,IAAI,CAAC,GACR,C,kBCnDA,IAAIsL,EAASpR,OAAO6C,SAAS,CAACwO,cAAc,CACxC/R,EAAWU,OAAO6C,SAAS,CAACvD,QAAQ,CAExC,SAASgS,EAAcC,CAAG,EACzB,GAAI,CAACA,GAAOjS,AAAuB,oBAAvBA,EAASC,IAAI,CAACgS,IAA8BA,EAAIC,QAAQ,EAAID,EAAIE,WAAW,CACtF,MAAO,GAER,IAQItR,EARAuR,EAAsBN,EAAO7R,IAAI,CAACgS,EAAK,eACvCI,EAA4BP,EAAO7R,IAAI,CAACgS,EAAI9R,WAAW,CAACoD,SAAS,CAAE,iBAEvE,GAAI0O,EAAI9R,WAAW,EAAI,CAACiS,GAAuB,CAACC,EAC/C,MAAO,GAKR,IAAMxR,KAAOoR,GAEb,OAAOpR,AAAQyP,SAARzP,GAAqBiR,EAAO7R,IAAI,CAAEgS,EAAKpR,EAC/C,CAEAoD,EAAO,OAAO,CAAG,SAASqB,IACzB,I,EAAIT,EAASvF,EAAMgT,EAAKC,EAAMC,EAAaC,EACvCC,EAAS7O,SAAS,CAAC,EAAE,EAAI,CAAC,EAC1BrB,EAAI,EACJ7C,EAASkE,UAAUlE,MAAM,CACzBgT,EAAO,GAeX,IAZuB,WAAlB,OAAOD,IACXC,EAAOD,EACPA,EAAS7O,SAAS,CAAC,EAAE,EAAI,CAAC,EAE1BrB,EAAI,GAIA,CAAOkQ,SAAAA,EAAAA,Y,GAAAA,I,oEAAM,GAAK,UAAY,AAAkB,YAAlB,OAAOA,GACzCA,CAAAA,EAAS,CAAC,GAGHlQ,EAAI7C,EAAQ6C,IAEnB,GAAMqC,AAA6B,MAA7BA,CAAAA,EAAUhB,SAAS,CAAErB,EAAE,AAAD,EAE3B,IAAMlD,KAAQuF,EACbyN,EAAMI,CAAM,CAAEpT,EAAM,CAIfoT,IAHLH,CAAAA,EAAO1N,CAAO,CAAEvF,EAAM,AAAF,IAQfqT,GAAQJ,GAAUP,CAAAA,EAAcO,IAAUC,CAAAA,EAAc3S,MAAM8B,OAAO,CAAC4Q,EAAI,IACzEC,GACJA,EAAc,GACdC,EAAQH,GAAOzS,MAAM8B,OAAO,CAAC2Q,GAAOA,EAAM,EAAE,EAG5CG,EAAQH,GAAON,EAAcM,GAAOA,EAAM,CAAC,EAI5CI,CAAM,CAAEpT,EAAM,CAAGgG,EAAQqN,EAAMF,EAAOF,IAG3BA,AAASjC,SAATiC,GACXG,CAAAA,CAAM,CAAEpT,EAAM,CAAGiT,CAAG,GAOxB,OAAOG,CACR,C,oCC3EA,IAAI3M,EAAItB,EAAQ,KAEOsB,CAAAA,EAAE6M,UAAU,CACX7M,EAAE8M,WAAW,A,uICJrC,IAAMC,EAAsB,CACxBxV,MAAOyV,AAYX,WACI,IAAMzV,EAAQ,CAAC,EACf,IAAK,IAAMuD,KAAOH,OAAOC,IAAI,CAACqS,cAC1B,GAAInS,EAAIoS,UAAU,CAAC,yBAA0B,CACzC,IAAMC,EAAWrS,EAAIiF,OAAO,CAAC,wBAAyB,IAChDqN,EAAOC,KAAKC,KAAK,CAACL,aAAaM,OAAO,CAAC,CAAC,0BAA0B,EAAEJ,EAAS,CAAC,GAAK,KACzF5V,CAAAA,CAAK,CAAC4V,EAAS,CAAG,CACd1T,QAASwT,AAA8B,SAA9BA,aAAaM,OAAO,CAACzS,GAC9B,GAAGsS,CAAI,AACX,CACJ,CAEJ,OAAO7V,CACX,GAxBA,EAC8BiW,EAAoBC,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAe,gBAAiBV,GAClFS,EAAkBE,SAAS,CAAC,AAACC,IACzB,IAAK,GAAM,CAACR,EAAUS,EAAK,GAAIjT,OAAOkT,OAAO,CAACF,EAAMpW,KAAK,EACrD0V,aAAaa,OAAO,CAAC,CAAC,qBAAqB,EAAEX,EAAS,CAAC,CAAES,EAAKnU,OAAO,CAACQ,QAAQ,IAC9EgT,aAAaa,OAAO,CAAC,CAAC,0BAA0B,EAAEX,EAAS,CAAC,CAAEE,KAAKU,SAAS,CAAC,CACzEC,MAAOJ,EAAKI,KAAK,CACjBxU,YAAaoU,EAAKpU,WAAW,AACjC,GAER,G,y+BCYWyU,C,8BAAAA,EAAAA,CAAAA,MAAW,CAGL,AAACC,EAAAA,EAAAA,CAAAA,KAAgB,CAACC,EAAAA,CAAeA,EAGvCF,EAAAA,EAAAA,CAAAA,MAAW,CAGL,AAACC,EAAAA,EAAAA,CAAAA,KAAgB,CAACC,EAAAA,CAAeA,EAK9B,AAETF,EAAAA,EAAAA,CAAAA,MACR,CACiB,AAETA,EAAAA,EAAAA,CAAAA,MACR,CACiB,AAETA,EAAAA,EAAAA,CAAAA,MACR,CAGUA,EAAAA,EAAAA,CAAAA,KAAU,CAGN,AACFA,EAAAA,EAAAA,CAAAA,IACR,CAGe,AACXA,EAAAA,EAAAA,CAAAA,MAGR,CACwB,AAChBA,EAAAA,EAAAA,CAAAA,WAIR,CAEQA,EAAAA,EAAAA,CAAAA,MAAW,CAMP,AAEPC,EAAAA,EAAAA,CAAAA,KAAgB,CAAC,CACf,WACA,UACA,SACA,QACA,UACA,WACA,UACA,SACA,SACA,UACA,mBACA,eACA,gBACA,eACA,UACA,WACA,UACA,MACA,WACD,EAKED,EAAAA,EAAAA,CAAAA,MAAW,CAMP,AACFA,EAAAA,EAAAA,CAAAA,MACR,C,y3DChHmCG,AAAAA,GAAAA,EAAAA,aAAAA,AAAAA,EAAkC,M,4zEC0BvDC,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAA8B,aAAc,CAC7DC,eAAgB,KAChBC,WAAY,EAAE,AAChB,GAmDiBjK,OAAOkK,gBAAgB,CAACC,SAASC,IAAI,EAAEC,QAAQ,C,onBCxE7B,IAAIC,EAAAA,OAAOA,CAGP,IAAIA,EAAAA,OAAOA,C,2xHCLzB,IAAIA,EAAAA,OAAOA,C,+dCAd,IAAIA,EAAAA,OAAOA,C,4NCJ1B,IAAMT,EAAkB,CAC7B,MACA,UACA,SACA,OACA,OACA,OACA,OACA,QACA,YACA,YACA,gBACA,UACD,A,qqDC6d6BE,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAkB,YARN,CACxC3D,QAAS,GACTmE,eAAgB,EAAE,CAClBC,OAAQ,KACRC,qBAAsB,SACtBC,eAAgBzE,MAClB,G,q/BCreC,WACA,aAEA,IAAIwB,EAAS,CAAC,EAAEC,cAAc,CAE9B,SAASiD,IAGR,IAAK,IAFDC,EAAU,GAELzS,EAAI,EAAGA,EAAIqB,UAAUlE,MAAM,CAAE6C,IAAK,CAC1C,IAAI0S,EAAMrR,SAAS,CAACrB,EAAE,AAClB0S,CAAAA,GACHD,CAAAA,EAAUE,EAAYF,EAASG,AAOlC,SAAqBF,CAAG,EACvB,GAAI,AAAe,UAAf,OAAOA,GAAoB,AAAe,UAAf,OAAOA,EACrC,OAAOA,EAGR,GAAI,CAAOA,SAAAA,EAAAA,YAAPnV,EAAOmV,EAAG,IAAK,SAClB,MAAO,GAGR,GAAIrV,MAAM8B,OAAO,CAACuT,GACjB,OAAOF,EAAWpR,KAAK,CAAC,KAAMsR,GAG/B,GAAIA,EAAIlV,QAAQ,GAAKU,OAAO6C,SAAS,CAACvD,QAAQ,EAAI,CAACkV,EAAIlV,QAAQ,CAACA,QAAQ,GAAGqV,QAAQ,CAAC,iBACnF,OAAOH,EAAIlV,QAAQ,GAGpB,IAAIiV,EAAU,GAEd,IAAK,IAAIpU,KAAOqU,EACXpD,EAAO7R,IAAI,CAACiV,EAAKrU,IAAQqU,CAAG,CAACrU,EAAI,EACpCoU,CAAAA,EAAUE,EAAYF,EAASpU,EAAG,EAIpC,OAAOoU,CACR,EAjC6CC,GAAI,CAEhD,CAEA,OAAOD,CACR,CA8BA,SAASE,EAAapU,CAAK,CAAEuU,CAAQ,SACpC,AAAKA,EAIDvU,EACIA,EAAQ,IAAMuU,EAGfvU,EAAQuU,EAPPvU,CAQT,CAEqCkD,EAAO,OAAO,EAClD+Q,EAAWO,OAAO,CAAGP,EACrB/Q,EAAO,OAAO,CAAG+Q,GACP,AAAkB,YAAlB,OAAO9Q,QAAyBnE,AAAsB,WAAtBA,EAAOmE,OAAOC,GAAG,GAAiBD,OAAOC,GAAG,CAEtFD,OAAO,aAAc,EAAE,CAAE,WACxB,OAAO8Q,CACR,GAEA3K,OAAO2K,UAAU,CAAGA,CAEtB,G,wCC5EspsE,E,mBAAtpsE,IAAM,EAAE,aAAa,OAAO5Q,WAAWA,WAAW,aAAa,OAAOC,KAAKA,KAAK,aAAa,OAAOgG,OAAOA,OAAOmL,OAAO,EAAE9U,OAAO,IAAI,CAAC,EAAEb,MAAM,OAAO,CAAC,SAAS,EAAEtC,CAAC,CAAC,CAAC,EAAE,MAAM,UAAU,OAAO,GAAG,EAAE,GAAG,OAAO,CAAE,SAAS,CAAC,EAAEA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAIA,CAAC,CAAC,aAAa,OAAOkY,SAAS,EAAE,OAAO,EAAG,GAAE,OAAO,CAACA,OAAM,EAAG,IAAM,EAAE/U,OAAO,cAAc,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,SAAS,EAAEnD,CAAC,CAACwC,CAAC,EAAE,OAAO,EAAE,IAAI,CAACxC,EAAEwC,EAAE,CAAC,SAAS,EAAExC,CAAC,CAAC,CAAC,EAAE,YAAY,OAAO,GAAI,GAAE,EAAE,EAAEA,GAAE,EAAG,AAAC,cAAa,OAAOmY,QAAQ,EAAEA,QAAQ,OAAO,AAAD,EAAG,GAAG,OAAO,CAAE,IAAI,EAAEnY,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAG,CAAC,IAAM,EAAEmD,OAAO,cAAc,CAAC,SAAS,EAAEnD,CAAC,CAACwC,CAAC,CAACH,CAAC,CAAC,CAAC,EAAE,EAAErC,EAAEwC,EAAE,EAAEH,GAAG,EAAEA,EAAE,QAAQ,YAAY,OAAOA,EAAE,GAAG,CAAC,CAAC,IAAIA,EAAE,GAAG,CAAC,IAAIA,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,MAAMA,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,EAAErC,CAAC,EAAE,MAAM,CAAC,KAAK,SAASwC,CAAC,EAAE,OAAOxC,EAAE,SAAS,CAACmD,OAAO,MAAM,CAACX,EAAE,SAAS,EAAE,EAAExC,EAAE,SAAS,CAAC,cAAcA,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAKA,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAM,EAAEmD,OAAO,wBAAwB,CAAC,SAAS,EAAEnD,CAAC,CAACwC,CAAC,EAAE,IAAIH,EAAE,OAAO,EAAErC,EAAEwC,IAAI,AAACH,CAAAA,EAAE,EAAErC,EAAC,GAAI,EAAEqC,EAAEG,EAAE,CAAC,IAAM,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,EAAExC,CAAC,CAACwC,CAAC,CAACH,CAAC,EAAE,OAAO,EAAE,IAAI,CAACrC,EAAEwC,EAAEH,EAAE,CAAC,SAAS,EAAErC,CAAC,CAACwC,CAAC,EAAE,OAAOA,EAAExC,EAAE,CAAC,SAAS,EAAEA,CAAC,EAAE,GAAG,CAACA,EAAE,MAAM,AAAI0D,MAAM,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,YAAY,CAAC0U,aAAa,GAAGC,WAAW,EAAE,EAAE,CAAC,SAAS,EAAErY,CAAC,CAACwC,CAAC,EAAE,OAAOxC,EAAE,MAAM,CAAE,CAACA,EAAEqC,EAAEpC,KAAK,IAAI,EAAEuC,EAAEH,EAAEpC,GAAG,OAAO,GAAID,CAAAA,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,AAAD,EAAGA,CAAC,EAAG,CAAC,EAAE,CAAC,SAAS,EAAEA,CAAC,CAACwC,CAAC,EAAE,GAAG,EAAExC,EAAEwC,GAAG,OAAOxC,CAAC,CAACwC,EAAE,CAAC,GAAG,CAACA,EAAE,OAAOxC,EAAE,GAAG,UAAU,OAAOwC,EAAE,CAAC,IAAI,IAAIH,EAAE,EAAE,CAACpC,EAAE,EAAE,EAAEuC,EAAE,MAAM,CAACvC,EAAE,EAAE,EAAEA,EAAE,CAAC,IAAI,EAAE,EAAED,EAAEwC,CAAC,CAACvC,EAAE,EAAEoC,EAAE,IAAI,CAAC,EAAE,CAAC,OAAOA,CAAC,CAAC,IAAI,EAAEG,EAAE,OAAO,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,EAAExC,CAAC,CAACwC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,KAAK,EAAE,EAAE,EAAEA,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,EAAExC,CAAC,CAACwC,CAAC,CAAC,CAAC,EAAE,GAAGxC,GAAG,KAAK,IAAIwC,GAAI,EAAE,cAAaW,MAAK,GAAI,CAACA,OAAO,QAAQ,CAACnD,EAAC,EAAG,GAAG,UAAU,OAAOwC,GAAG,WAAWA,EAAE,CAAC,EAAE,UAAU,OAAO,GAAG,WAAW,GAAG,IAAI,IAAI,EAAE,EAAEyC,EAAEzC,EAAE,MAAM,CAAC,EAAEyC,EAAE,EAAE,EAAE,EAAEjF,EAAEwC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAIL,EAAEK,EAAE,OAAO,CAAC,KAAK,GAAG,KAAKL,EAAE,CAAC,IAAI,EAAEK,EAAE,MAAM,CAAC,EAAEL,GAAG,EAAEK,EAAE,MAAM,CAACL,EAAE,GAAG,GAAG,KAAK,EAAE,KAAK,IAAI,EAAE,EAAEnC,IAAI,CAACsY,MAAMzP,SAAS,IAAI7I,EAAE,MAAM,CAAC,EAAE,GAAG,OAAOA,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAEA,CAAC,CAAC,EAAE,AAAC,IAAG,EAAEA,EAAE,IAAK,GAAEA,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,EAAE,EAAEA,IAAI,CAACsY,MAAMzP,SAASrG,IAAIxC,EAAE,MAAM,CAACwC,EAAE,GAAG,OAAOxC,CAAC,CAACwC,EAAE,CAACxC,CAAC,CAACwC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAExC,CAAC,EAAE,IAAIwC,EAAE,CAAC,EAAE,IAAI,IAAIH,KAAKrC,EAAE,EAAEA,EAAEqC,IAAKG,CAAAA,CAAC,CAACH,EAAE,CAACrC,CAAC,CAACqC,EAAE,AAAD,EAAG,OAAOG,CAAC,CAAC,IAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAExC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAACA,EAAE,CAAC,IAAM,EAAE,oJAAoJ,KAAK,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAEA,GAAG,CAAC,MAAM,OAAO,QAAQ,CAAC,GAAG,CAAEwC,GAAGA,EAAExC,EAAE,YAAc,MAAM,CAAE,GAAG,CAAC,CAAC,EAAE,EAAGuY,EAAE,EAAE,GAAG,CAAE,GAAG,CAAC,CAAC,EAAE,EAAG,EAAE,EAAGvY,GAAG,CAACA,EAAE,CAAC,EAAE,EAAG,IAAI,EAAE,KAAK,SAAS,EAAEA,CAAC,EAAE,EAAE,aAAa,OAAOwY,SAAS,IAAIA,QAAQ,IAAMhW,EAAE,AAAqB,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,UAAU,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,IAAIvC,EAAE,EAAEgF,EAAE,EAAE,MAAM,CAAChF,EAAEgF,EAAE,EAAEhF,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAACA,EAAE,EAAE,MAAM,GAAGsY,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,EAAE,EAAE,MAAM,CAAC,IAAM,EAAE,EAAE,GAAG,IAAI,IAAIpW,KAAK,EAAE,IAAIgB,OAAO,SAAS,CAAC,CAAC,EAAEA,OAAO,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAEhB,IAAK,EAAC,CAACA,EAAE,CAAC,EAAE,CAAC,CAACA,EAAE,EAAE,CAAC,OAAO,CAAC,EAAhVnC,GAAG,OAAO,EAAE,KAAKwC,CAAC,CAA+T,GAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAExC,CAAC,EAAE,OAAO,EAAE,IAAI,CAACA,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,IAAM,EAAE,aAAa,OAAOkE,OAAOA,OAAO,QAAQ,CAAC,aAAa,EAAE,UAAU,OAAO,EAAE,SAASlE,CAAC,EAAE,IAAIwC,EAAE,OAAO,MAAMxC,GAAIwC,CAAAA,EAAExC,CAAC,CAAC,EAAE,AAAD,GAAIwC,EAAE,KAAK,CAACxC,EAAE,EAAE,WAAW,OAAO,IAAI,EAAE,EAAE,CAAC,EAAE,SAAS,EAAEA,CAAC,EAAE,IAAIwC,EAAE,EAAE,EAAEyC,EAAE,GAAG,GAAIqB,UAAU,MAAM,CAAC,CAAC,GAAG,EAAEtG,GAAG,OAAOA,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,GAAG,UAAU,OAAOA,EAAE,MAAM,CAACA,EAAE,CAAC,GAAGiF,EAAE,EAAEjF,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,AAAC,GAAEiF,EAAE,IAAI,EAAC,EAAG,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG,MAAMjF,EAAE,MAAM,CAACA,EAAE,CAAC,GAAG,UAAU,MAAOwC,CAAAA,EAAExC,EAAE,MAAM,AAAD,EAAG,CAAC,IAAI,EAAE,AAAIsC,MAAME,GAAGA,KAAK,CAAC,CAACA,EAAE,CAACxC,CAAC,CAACwC,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAACxC,EAAE,CAAC,IAAIwC,EAAE8D,UAAU,MAAM,CAAC,EAAE,AAAIhE,MAAME,GAAGA,KAAK,CAAC,CAACA,EAAE,CAAC8D,SAAS,CAAC9D,EAAE,CAAC,OAAO,CAAC,CAAC,IAAM,EAAE,aAAa,OAAO0B,OAAOlE,GAAG,kBAAkBA,CAAC,CAACkE,OAAO,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,OAAOuU,UAAU,6CAA6C,IAAI,CAACA,SAAS,IAAI,EAA8B,EAAE,IAAI,CAAC,EAAE,IAAM,EAAE,CAAC,AAAI/U,MAAM,IAAI,KAAK,CAAC,SAASkG,IAAI,GAAG,EAAE,GAAG,CAAC,MAAMA,EAAE,SAAS,CAAC,AAAIlG,OAAK,CAAC,MAAM1D,EAAE,CAAC,OAAOA,CAAC,CAAC,OAAO,AAAI0D,OAAK,CAAC,SAAS,EAAE1D,CAAC,CAACwC,CAAC,EAAE,IAAIH,EAAErC,EAAE,KAAK,CAAC,OAAOqC,EAAGG,CAAAA,EAAEA,GAAG,EAAE,IAAIH,EAAE,OAAO,CAACrC,EAAE,IAAI,GAAIwC,CAAAA,GAAG,AAACxC,CAAAA,EAAE,IAAI,CAACA,EAAE,OAAO,AAAD,EAAG,KAAK,CAAC,MAAM,MAAM,AAAD,EAAGqC,EAAE,KAAK,CAAC,MAAM,KAAK,CAACG,GAAG,MAAM,CAAC,GAAG,GAAG,CAAExC,GAAG,KAAKA,GAAI,IAAI,CAAC,GAAE,EAAG,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,aAAa,OAAO,sBAAsB,WAAW,UAAU,WAAW,eAAe,gBAAgB,QAAQ,UAAU,gBAAgB,SAAS,YAAY,CAAC,EAAE,CAAC,SAAS,OAAO,aAAa,gBAAgB,SAAS,UAAU,eAAe,aAAa,iBAAiB,kBAAkB,iBAAiB,cAAc,WAAW,iBAAiB,kBAAkB,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,eAAe,wDAAwD,eAAe,2BAA2B,MAAM,sBAAsB,oBAAoB,8CAA8C,WAAW,kEAAkE,EAAE,SAAS,EAAEA,CAAC,CAACwC,CAAC,EAAE,IAAI,CAAC,EAAE,CAACoH,IAAI,IAAI,CAAC,IAAI,CAAC5J,EAAE,IAAI,CAAC,OAAO,CAACwC,CAAC,CAAC,SAAS,EAAExC,CAAC,CAACwC,CAAC,EAAE,OAAOxC,EAAE,aAAamD,OAAO,IAAI,CAACX,GAAG,GAAG,CAAExC,GAAGwC,CAAC,CAACxC,EAAE,CAAC,QAAQ,IAAK,MAAM,CAAE,CAACA,EAAEwC,EAAEH,IAAIA,EAAE,OAAO,CAACrC,KAAKwC,GAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAExC,CAAC,CAACwC,CAAC,CAACH,CAAC,CAACpC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC2J,IAAI,IAAI,CAAC,QAAQ,CAACpH,EAAE,IAAI,CAAC,UAAU,CAACvC,EAAE,IAAI,CAAC,YAAY,CAACoC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAErC,EAAEwC,EAAE,CAAC,SAAS,EAAExC,CAAC,CAACwC,CAAC,EAAE,IAAI,CAAC,EAAE,CAACoH,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ,CAACzG,OAAO,IAAI,CAACX,GAAG,GAAG,CAAExC,GAAGwC,CAAC,CAACxC,EAAE,EAAG,IAAI,CAAC,aAAa,CAACwC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAExC,EAAEwC,EAAE,CAAC,EAAE,GAAG,IAAI,CAACkB,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,WAAW,OAAO,IAAI,CAAC,MAAM,EAAG,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAC,CAAE,CAAC,EAAE,SAAS,WAAW,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,MAAM,CAAE,CAAC1D,EAAEwC,IAAKxC,CAAAA,CAAC,CAACwC,EAAE,CAACA,EAAE,QAAQxC,CAAAA,EAAI,CAAC,GAAiB,EAAE,EAAE,MAAM,CAAE,CAACA,EAAEwC,KAAK,IAAIH,EAAEG,EAAE,QAAQ,SAASvC,EAAED,CAAC,CAACC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC2J,IAAI,IAAI,CAAC,IAAI,CAACvH,EAAErC,EAAE,UAAU,OAAOA,EAAG,KAAI,CAAC,OAAO,CAAC,CAAC,EAAEA,EAAE,EAAEC,EAAE,MAAMA,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAACA,GAAG,IAAG,EAAG,UAAU,OAAOD,GAAI,KAAI,CAAC,OAAO,CAAC,CAAC,EAAEA,EAAE,IAAI,CAAC,CAAC,EAAEA,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAACA,CAAAA,EAAI,KAAI,CAAC,OAAO,CAAC,CAAC,CAACwC,EAAE,EAAEH,EAAE,IAAI,CAAC,KAAK,CAAC,IAAG,CAAE,CAAC,OAAO,EAAEpC,GAAG,IAAI,CAA/R,GAAmSD,CAAC,CAACwC,EAAE,CAACvC,EAAED,CAAC,EAAG,CAAC,EAAG,GAAE,MAAM,CAAC0Y,YAAY,EAAE,IAAI,CAACzV,UAAU,EAAE,KAAK,CAAC0V,WAAW,IAAI,GAAE,EAAE,MAAM,CAAE,CAAC3Y,EAAEwC,IAAKxC,CAAAA,CAAC,CAACwC,EAAE,QAAQ,CAAC,CAAC,CAACA,EAAE,CAACxC,CAAAA,EAAI,CAAC,GAAO,GAAE,EAAE,MAAM,CAAE,CAACA,EAAEwC,IAAK,MAAK,CAAC,SAAS,OAAO,QAAQ,CAAC,OAAO,CAACA,IAAKxC,CAAAA,CAAC,CAACwC,EAAE,QAAQ,CAAC,CAAC,CAACA,EAAE,AAAD,EAAGxC,CAAAA,EAAI,CAAC,GAAG,SAAS,KAAK,CAAC,SAAS,GAAGA,CAAC,EAAE,OAAOA,CAAC,CAAC,SAAS,GAAGA,CAAC,CAACwC,CAAC,EAAE,OAAO,MAAMxC,GAAGA,IAAI,GAAGwC,EAAE,SAASH,CAAC,EAAE,OAAOG,EAAExC,EAAEqC,GAAG,CAAC,CAAC,SAAS,GAAGrC,CAAC,CAACwC,CAAC,EAAE,OAAO,WAAWxC,EAAE,KAAK,CAAC,IAAI,CAACsG,WAAW9D,EAAE,KAAK,CAAC,IAAI,CAAC8D,UAAU,CAAC,CAAC,SAAS,GAAGtG,CAAC,CAACwC,CAAC,EAAE,OAAOxC,IAAI,GAAGwC,EAAE,WAAW,IAAIH,EAAErC,EAAE,KAAK,CAAC,IAAI,CAACsG,UAAW,MAAK,IAAIjE,GAAIiE,CAAAA,SAAS,CAAC,EAAE,CAACjE,CAAAA,EAAG,IAAIpC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,OAAO,AAAC,KAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAEuC,EAAE,KAAK,CAAC,IAAI,CAAC8D,WAAW,OAAOrG,GAAI,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAGA,EAAE,IAAI,CAAC,SAAS,EAAEA,CAAAA,EAAG,GAAI,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,EAAE,EAAEoC,CAAC,CAAC,CAAC,SAAS,GAAGrC,CAAC,CAACwC,CAAC,EAAE,OAAOxC,IAAI,GAAGwC,EAAE,WAAWxC,EAAE,KAAK,CAAC,IAAI,CAACsG,WAAW,IAAIjE,EAAE,IAAI,CAAC,SAAS,CAACpC,EAAE,IAAI,CAAC,OAAO,AAAC,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAKuC,EAAE,KAAK,CAAC,IAAI,CAAC8D,WAAWjE,GAAI,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAGA,EAAE,IAAI,CAAC,SAAS,EAAEA,CAAAA,EAAGpC,GAAI,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAGA,EAAE,IAAI,CAAC,OAAO,EAAEA,CAAAA,CAAE,CAAC,CAAC,SAAS,GAAGD,CAAC,CAACwC,CAAC,EAAE,OAAOxC,IAAI,GAAGwC,EAAE,SAASH,CAAC,EAAE,IAAI,EAAErC,EAAE,KAAK,CAAC,IAAI,CAACsG,WAAW,EAAEjE,EAAE,GAAG,IAAI4C,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,OAAO,AAAC,KAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAEzC,EAAE,KAAK,CAAC,IAAI,CAAC8D,WAAW,OAAOrB,GAAI,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAGA,EAAE,IAAI,CAAC,SAAS,EAAEA,CAAAA,EAAG,GAAI,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,GAAGjF,CAAC,CAACwC,CAAC,EAAE,OAAOxC,IAAI,GAAGwC,EAAE,WAAW,MAAM,CAAC,IAAIA,EAAE,KAAK,CAAC,IAAI,CAAC8D,YAAYtG,EAAE,KAAK,CAAC,IAAI,CAACsG,UAAU,CAAC,CAAC,SAAS,GAAGtG,CAAC,CAACwC,CAAC,EAAE,OAAOxC,IAAI,GAAGwC,EAAE,WAAW,IAAIH,EAAErC,EAAE,KAAK,CAAC,IAAI,CAACsG,WAAW,GAAGjE,GAAG,YAAY,OAAOA,EAAE,IAAI,CAAC,CAAC,IAAI,IAAIpC,EAAE,IAAI,CAAC,EAAEqG,UAAU,MAAM,CAAC,EAAE,AAAIhE,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,CAACgE,SAAS,CAAC,EAAE,CAAC,OAAOjE,EAAE,IAAI,CAAE,WAAW,OAAOG,EAAE,KAAK,CAACvC,EAAE,EAAE,EAAG,CAAC,OAAOuC,EAAE,KAAK,CAAC,IAAI,CAAC8D,UAAU,CAAC,CAAC,GAAE,WAAW,CAAC,EAAE,GAAE,UAAU,CAAC,EAAE,GAAE,SAAS,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,GAAK,CAAC,GAAG,GAAG,GAAG,CAAC,aAAa,OAAO4R,QAAQ,EAAE,CAAC,AAAC,MAAK,IAAIlY,EAAEkY,QAAQ,OAAO,GAAG,GAAG,aAAa,OAAOU,QAAQ,CAACA,OAAO,MAAM,CAAC,MAAM,CAAC5Y,EAAE,EAAEA,GAAGA,EAAE,CAAC,IAAMwC,EAAEoW,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,IAAIC,WAAW,CAAC,EAAE,GAAG,MAAM,CAACrW,EAAE,EAAEA,GAAGxC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,CAACoY,aAAa,IAAI,CAAC,KAAK,IAAI,EAAE,gBAAgB,CAAC,KAAK,IAAIpY,EAAEiX,SAAS,aAAa,CAAC,MAAO,KAAI6B,iBAAkB,KAAK,KAAK9Y,EAAE,IAAI,GAAI,OAAO,CAACA,EAAE,CAAC,WAAW,CAAC,CAAC,GAAGA,EAAE,YAAY,CAAC,IAAI,IAAI,EAAE,KAAKqY,WAAW,GAAG,EAAE,EAAE,GAAG,SAASrY,CAAC,CAACwC,CAAC,EAAE,GAAG,IAAI,CAAC,CAACxC,EAAEwC,EAAE,EAAE,IAAK,MAAK,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,SAAS,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,WAAW,IAAI,CAAC,UAAU,CAAC,OAAO,CAAExC,IAAI,GAAG,CAAC,GAAGA,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,EAAE,CAAC,CAAC,MAAMA,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,GAAGA,CAAC,EAAE,GAAG,UAAU,OAAO,IAAI,CAAC,MAAM,AAAIiD,UAAU,uCAAwC,KAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAIT,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAI,KAAI,CAAC,YAAY,CAACoH,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,YAAY,OAAO5J,EAAE,CAAC,GAAGA,IAAI,GAAG,MAAM,AAAIiD,UAAU,kBAAkB,OAAO,IAAI,CAAC,MAAM,CAACqD,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAACA,SAAS,CAAC,EAAE,CAAC,IAAK,EAAC,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE9D,EAAE,GAAG,CAAC,AAAme,SAAS,EAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAG,IAAI,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,AAAIS,UAAU,6CAA6C,IAAI,EAAE,EAAE,IAAI,EAAE,IAAK,IAAG,YAAY,OAAO,EAAE,IAAI,CAAC,EAAG,EAAG,CAACjD,EAAE,KAAK,aAAa,GAAG,EAAE,KAAK,CAACA,EAAE,GAAG,EAAE,IAAI,CAACA,EAAE,EAAE,GAAK,GAAE,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,EAAC,EAAG,GAAG,IAAI,CAAC,EAAG,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAhxB,IAAI,CAACA,EAAE,CAAC,IAAM,GAAG,CAAC,IAAI,WAAW,IAAIA,EAAE,GAAGwC,EAAE,GAAG,SAASH,EAAEA,CAAC,CAACpC,CAAC,EAAE,IAAI,EAAE,CAACD,EAAE,MAAM,EAAGA,CAAAA,IAAI,IAAIwC,IAAI,EAAC,EAAG,IAAM,EAAE,GAAG,CAAC,KAAK,IAAIiC,EAAE,IAAI,GAAI,CAACjC,EAAEiC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,GAAGpC,EAAErC,EAAE,EAAE,GAAG,GAAGC,EAAED,EAAE,EAAE,GAAGwC,EAAEiC,EAAEzE,GAAG,GAAI,OAAO,GAAG,GAAGyE,EAAE,IAAI,EAAEA,CAAC,CAAC,OAAOpC,EAAE,SAAS,CAAC,GAAGA,CAAC,EAAE,IAAI,SAASrC,CAAC,EAAE,EAAE,IAAI,CAAC,OAAOA,GAAGA,EAAE,SAAS,GAAG,GAAG,GAAG,CAAC,IAAI,WAAW,OAAOA,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,SAAS,GAAGA,CAAC,CAACwC,CAAC,CAACH,CAAC,CAACpC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,OAAOD,EAAEA,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,YAAY,OAAOwC,EAAEA,EAAE,KAAK,IAAI,CAAC,OAAO,CAACH,EAAE,IAAI,CAAC,MAAM,CAACpC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAkT,SAAS,GAAGD,CAAC,CAACwC,CAAC,EAAE,GAAG,GAAG,IAAI,CAACA,GAAG,OAAOxC,EAAE,MAAM,CAAC,CAAC,IAAIqC,EAAErC,EAAE,IAAI,EAAE,IAAKwC,CAAAA,EAAE,GAAGA,GAAGxC,EAAE,MAAM,CAAC,CAAC,EAAEA,EAAE,MAAM,CAACwC,EAAE,GAAG,OAAOA,GAAG,UAAU,OAAOA,GAAG,CAACA,EAAE,QAAQ,EAAE,SAASxC,CAAC,CAACwC,CAAC,CAACH,CAAC,EAAE,GAAG,CAACrC,EAAE,KAAK,CAAC,KAAfqC,KAAAA,EAAsB,CAAC,MAAMrC,EAAE,CAAQ,CAAC,EAAG,KAAK,IAAIqC,EAAE,EAAEG,EAAE,QAASA,CAAAA,EAAE,QAAQ,CAACxC,EAAE,EAAEwC,EAAE,QAAQ,CAAC,IAAI,IAAI,GAAGH,GAAIA,CAAAA,EAAE,GAAG,CAACA,EAAE,GAAG,CAAC,KAAK,CAACG,GAAGH,EAAE,KAAK,AAAD,EAAGrC,EAAE,KAAK,EAAE,GAAgB,GAAG,IAAI,CAAEwC,GAAGA,EAAE,MAAM,GAAG,AAAwBxC,EAAtB,MAAM,GAAI,GAAG,IAAI,CAAKA,GAAG,GAAGA,GAAGqC,GAAG,IAAI,CAAC,CAAC,SAAS,GAAGrC,CAAC,EAAE,IAAIwC,EAAExC,EAAE,UAAU,AAACA,CAAAA,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,IAAIqC,EAAE,EAAEpC,EAAEuC,EAAE,MAAM,CAACH,EAAEpC,EAAE,EAAEoC,EAAE,GAAGrC,EAAEwC,CAAC,CAACH,EAAE,EAAE,IAAI,EAAErC,EAAE,IAAI,AAAC,GAAE,EAAE,GAAG,EAAE,EAAE,QAAQ,GAAG,IAAI,IAAK,GAAE,GAAG,GAAI,KAAK,GAAG,EAAE,IAAI,IAAI,EAAG,EAAE,EAAE,CAAC,SAAS,GAAGA,CAAC,CAACwC,CAAC,EAAE,GAAG,OAAOxC,EAAE,MAAM,CAAC,CAAC,IAAIqC,EAAErC,EAAE,MAAM,CAACwC,EAAE,WAAW,CAACA,EAAE,UAAU,CAAC,GAAG,OAAOH,EAAE,MAAM,AAACrC,CAAAA,EAAE,MAAM,CAACwC,EAAE,OAAO,CAACA,EAAE,MAAM,AAAD,EAAGxC,EAAE,MAAM,CAAE,GAAEwC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAACH,EAAErC,EAAEwC,EAAE,CAAC,MAAMxC,EAAE,UAAU,CAAC,IAAI,CAACwC,EAAE,CAAC,SAAS,GAAGxC,CAAC,CAACwC,CAAC,CAACH,CAAC,EAAE,GAAG,CAAC,GAAGG,EAAE,IAAIvC,EAAE,EAAEuC,EAAE,MAAM,AAACA,CAAAA,EAAE,MAAM,CAACvC,EAAED,EAAE,GAAI,IAAG,MAAM,EAAG,IAAG,EAAE,AAAD,EAAGC,EAAED,EAAE,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,SAASA,CAAC,EAAkB,IAAhB,IAAIwC,EAAE,GAAG,MAAM,CAAMA,GAAG,GAAG,EAAE,CAAC,EAAEA,EAAE,CAAC,MAAM,GAAGxC,EAAE,MAAM,CAAC,OAAO,KAAK,GAAG,MAAM,CAACwC,EAAE,EAAE,EAAEA,EAAC,EAAGH,EAAE,OAAO,CAACpC,EAAE,CAAC,MAAMD,EAAE,CAACqC,EAAE,MAAM,CAACrC,EAAE,QAAQ,CAAC,GAAG,KAAK,GAAG,EAAE,IAAI,KAAK,EAAEqC,EAAE,GAAG,CAAC,GAAG,EAAEA,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAiR,SAAS,GAAGrC,CAAC,CAACwC,CAAC,EAAE,IAAIH,EAAEG,EAAEA,EAAE,QAAQ,CAAC,EAAE,CAAEH,CAAAA,EAAE,KAAMrC,CAAAA,EAAE,KAAK,CAACwC,EAAExC,EAAE,QAAQ,CAACqC,CAAAA,CAAE,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,SAAS,KAAK,IAAIrC,EAAE,GAAG,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,EAAEA,CAAC,CAAC,SAAS,KAAK,IAAIA,EAAEwC,EAAEH,EAAE,GAAG,KAAK,GAAG,MAAM,CAAC,GAAG,IAAIrC,EAAE,GAAG,GAAG,EAAE,CAACqC,EAAErC,EAAE,MAAM,CAACwC,EAAE,EAAEA,EAAEH,EAAE,EAAEG,EAAE,CAAC,IAAIvC,EAAED,CAAC,CAACwC,EAAE,CAACvC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAKA,CAAC,CAAC,EAAE,CAAC,OAAQ,GAAG,MAAM,CAAC,EAAG,IAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,IAAID,EAAE,EAAG,IAAG,EAAE,CAACA,EAAE,OAAO,CAAEA,IAAIA,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAKA,EAAE,MAAM,CAACA,EAAE,GAAI,IAAI,IAAIwC,EAAE,GAAG,KAAK,CAAC,GAAGH,EAAEG,EAAE,MAAM,CAACH,GAAGG,CAAC,CAAC,EAAEH,EAAE,EAAE,CAAC,SAAS,GAAGrC,CAAC,EAAE,OAAO,IAAI,GAAG,GAAG,CAAC,EAAEA,EAAE,CAAC,SAAS,GAAGA,CAAC,CAACwC,CAAC,EAAE,IAAIH,EAAE,GAAG,OAAO,WAAW,IAAIpC,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,OAAO,GAAGoC,EAAE,CAAC,GAAGrC,EAAE,KAAK,CAAC,IAAI,CAACsG,UAAU,CAAC,MAAMtG,EAAE,CAACwC,GAAGA,EAAExC,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAGC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,KAAK,GAAG,MAAM,SAASD,CAAC,CAACwC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,KAAKxC,EAAEwC,EAAE,IAAI,EAAE,MAAM,SAASxC,CAAC,EAAE,GAAG,GAAIsG,UAAU,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAKtG,GAAG,IAAIwC,EAAE8D,SAAS,CAAC,EAAE,CAACjE,EAAEiE,SAAS,CAAC,EAAE,CAAC,MAAM,YAAY,OAAO9D,EAAE,IAAI,CAAC,IAAI,CAAC,KAAMxC,GAAGA,aAAawC,EAAEH,EAAErC,GAAG,GAAGA,IAAK,IAAI,CAAC,IAAI,CAAC,KAAMA,GAAGA,GAAGA,EAAE,IAAI,GAAGwC,EAAEH,EAAErC,GAAG,GAAGA,GAAI,EAAE,QAAQ,SAASA,CAAC,EAAE,OAAO,IAAI,CAAC,IAAI,CAAEwC,GAAIxC,CAAAA,IAAIwC,CAAAA,EAAKA,GAAIxC,CAAAA,IAAI,GAAGwC,EAAC,EAAI,EAAE,MAAM,CAAC,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAIxC,EAAE,AAA3yC,UAAS,EAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,AAAC,OAAM,EAAG,GAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAC,EAAI,GAAE,EAAE,EAAE,EAAC,EAAG,EAAE,IAAI,CAAC,EAAG,GAAE,KAAK,EAAE,EAAC,EAAG,EAAE,CAAC,OAAO,GAAI,CAAC,GAAE,EAAE,EAAE,YAAY,CAAC,EAAC,GAAI,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAG,EAAE,KAAK,CAAC,EAAE,EAAC,EAAG,CAAC,GAA+hC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,qBAAqB,OAAO,OAAO,IAAI,CAAC,MAAM,EAAG,KAAI,CAAC,MAAM,CAACA,CAAAA,EAAGA,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,SAASA,CAAC,CAACwC,CAAC,EAAE,OAAOxC,EAAE,EAAE,EAAE,IAAI,GAAI,CAACqC,EAAEpC,KAAK,IAAI,EAAEoY,WAAY,IAAIpY,EAAE,IAAI,EAAE,OAAO,CAACuC,IAAKxC,GAAG,IAAI,CAAC,IAAI,CAACqC,EAAEpC,GAAG,OAAO,CAAC8Y,aAAa,IAAI,CAAC,KAAK,GAAG,GAAI,IAAI,CAAC,GAAG,aAAa,OAAO7U,QAAQA,OAAO,WAAW,EAAE,EAAE,GAAG,SAAS,CAACA,OAAO,WAAW,CAAC,iBAAiB,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,WAAW,IAAIlE,EAAE,EAAE,KAAK,CAAC,KAAKsG,WAAW,GAAG,CAAC,IAAI,OAAO,IAAI,GAAI,SAAS9D,CAAC,CAACH,CAAC,EAAE,IAAIrC,EAAE,MAAM,EAAEwC,EAAE,EAAE,EAAE,IAAIvC,EAAED,EAAE,MAAM,CAACA,EAAE,OAAO,CAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,IAAI,CAAEqC,IAAIrC,CAAC,CAAC,EAAE,CAACqC,EAAE,EAAEpC,GAAGuC,EAAExC,EAAE,EAAGqC,GAAI,EAAG,EAAE,QAAQrC,IAAI,GAAGA,aAAa,GAAG,OAAOA,EAAE,GAAGA,GAAG,YAAY,OAAOA,EAAE,IAAI,CAAC,OAAO,IAAI,GAAI,CAACwC,EAAEH,KAAKrC,EAAE,IAAI,CAACwC,EAAEH,EAAE,GAAI,IAAIG,EAAE,IAAI,GAAG,GAAG,CAAC,EAAExC,GAAG,OAAO,GAAGwC,EAAE,IAAIA,CAAC,EAAE,OAAO,GAAG,KAAK,WAAW,IAAIxC,EAAE,EAAE,KAAK,CAAC,KAAKsG,WAAW,GAAG,CAAC,IAAI,OAAO,IAAI,GAAI,CAAC9D,EAAEH,KAAKrC,EAAE,GAAG,CAAEA,GAAG,GAAG,OAAO,CAACA,GAAG,IAAI,CAACwC,EAAEH,GAAI,EAAG,EAAE,IAAI,CAAC,IAAI,IAAI,GAAG,IAAIrC,GAAG,GAAGA,CAAC,EAAE,YAAY,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC,IAAI,IAAI,GAAG,IAAIA,IAAI,GAAGA,CAAC,CAAC,EAAE,gBAAgB,CAAC,IAAI,IAAI,GAAG,IAAIA,IAAI,GAAGA,CAAC,CAAC,EAAE,OAAO,CAACA,EAAEwC,IAAI,IAAI,GAAI,CAACH,EAAEpC,IAAI,GAAI,CAACuC,EAAEH,KAAK,IAAIpC,EAAE,EAAGA,CAAAA,EAAE,UAAU,CAAC,EAAE,CAACA,EAAE,WAAW,CAACoC,EAAEpC,EAAE,QAAQ,CAAC,GAAI,eAAqBD,EAAAA,EAA8F,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAACwC,IAAIH,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAxG,GAAG,IAAI,CAAnD,SAASG,IAAIxC,IAAI,GAAG,MAAM,CAAC,GAAG,OAAO,CAACwC,GAAG,EAAE,GAAY,EAAE,GAAG,GAAI,KAAK,GAAG,EAAE,IAAI,IAAI,EAAG,EAAE,CAAgE,EAAGvC,EAAE,QAAQ,EAAED,GAAG,EAAGwC,EAAEH,EAAEpC,GAAI,GAAG,IAAK,IAAG,UAAU,EAAE,EAAE,GAAG,aAAc,WAAW,IAAMD,EAAE,EAAE,KAAK,CAAC,KAAKsG,WAAW,GAAG,CAAC,IAAI,OAAO,IAAI,GAAI9D,IAAI,IAAIxC,EAAE,MAAM,EAAEwC,EAAE,EAAE,EAAE,IAAIH,EAAErC,EAAE,MAAM,CAAOC,EAAE,AAAIqC,MAAMD,GAAGrC,EAAE,OAAO,CAAE,CAACA,EAAE,IAAI,GAAG,OAAO,CAACA,GAAG,IAAI,CAAEA,GAAGC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,YAAY,MAAMD,CAAC,EAAIA,GAAGC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,WAAW,OAAOD,CAAC,GAAI,IAAI,CAAE,IAAI,EAAEqC,GAAGG,EAAEvC,IAAM,EAAG,GAAI,GAAG,GAAG,EAAE,aAAa,OAAO+Y,gBAAgB,EAAE,GAAG,MAAO,WAAW,IAAMhZ,EAAE,EAAE,KAAK,CAAC,KAAKsG,WAAW,GAAG,CAAC,IAAI,OAAO,IAAI,GAAI,CAAC9D,EAAEH,KAAK,IAAIrC,EAAE,MAAM,EAAEqC,EAAE,AAAI2W,eAAe,EAAE,GAAG,IAAI/Y,EAAED,EAAE,MAAM,CAAO,EAAE,AAAIsC,MAAMrC,GAAGD,EAAE,OAAO,CAAE,CAACA,EAAE,IAAI,GAAG,OAAO,CAACA,GAAG,IAAI,CAAEA,GAAGwC,EAAExC,GAAKA,IAAI,CAAC,CAAC,EAAE,CAACA,EAAE,EAAEC,GAAGoC,EAAE,AAAI2W,eAAe,GAAG,GAAK,EAAG,EAAE,EAAG,IAAM,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,GAAGhZ,CAAC,CAACwC,CAAC,CAACH,CAAC,CAAC,CAAC,EAAE,IAAI4C,EAAE,GAAG,EAAE9B,OAAO,MAAM,CAAC8B,EAAG,GAAE,MAAM,CAACA,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,AAAC,GAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,GAAG,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,EAAEzC,GAAG,EAAE,EAAEA,GAAG,EAAEyC,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,EAAEjF,EAAEqC,EAAE,GAAG,OAAO,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,SAAS,KAAK,OAAO,GAAG,EAAE,EAAG,IAAG,EAAE,CAAC,EAAE,EAAC,EAAG,EAAE,GAAG,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,GAAG,MAAM,EAAG,IAAG,EAAE,GAAG,MAAM,EAAG,IAAG,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,GAAGrC,CAAC,EAAE,OAAO,GAAG,MAAM,EAAEA,GAAGA,EAAE,WAAW,GAAG,GAAI,MAAKA,EAAE,IAAI,CAAEA,GAAI,MAAKA,CAAAA,EAAKA,GAAI,MAAK,GAAGA,EAAC,EAAG,EAAGA,CAAC,CAAC,SAAS,GAAGA,CAAC,EAAE,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,EAAG,IAAG,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,GAAGA,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,IAAIA,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,AAAC,IAAG,GAAG,GAAG,GAAGA,EAAE,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,IAAutB,EAAntBC,EAAE,GAAG,GAAG,AAAC,GAAE,CAAC,GAAG,MAAM,EAAE,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,EAAC,IAA+pB,EAAxpB,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,GAAyoB,GAAG,IAAI,CAAC,GAAG,IAAhpB,IAAI,IAAK,IAAG,EAAEA,IAAI,IAAK,IAAG,GAAG,CAAC,IAAG,EAAG,EAAC,EAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,AAAC,IAAG,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,AAACA,CAAAA,EAAE,MAAM,EAAE,EAAE,MAAM,AAAD,GAAKkD,CAAAA,OAAO,cAAc,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,EAAG,GAAE,UAAU,CAAC,EAAE,UAAU,AAAD,EAAG,EAAE,GAAG,EAAG,GAAE,GAAG,CAAC,EAAE,GAAG,AAAD,CAAC,CAAE,CAAC,CAAC,SAAS,KAAK,IAAI,EAAE,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC,QAAQ,EAAE,YAAYA,OAAO,wBAAwB,CAAC,EAAE,WAAW,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,GAAGnD,CAAC,CAACwC,CAAC,CAACH,CAAC,CAACpC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,OAAO,GAAGD,EAAE,CAAC,GAAGwC,EAAEH,EAAEpC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAA8B,SAAS,GAAGD,CAAC,CAACwC,CAAC,CAACH,CAAC,CAACpC,CAAC,EAAE,MAAM,YAAY,OAAOD,EAAEA,EAAE,WAAW,IAA9E,EAAkF,EAAE,EAAGqC,CAAAA,GAAG,KAAK,GAAGG,EAAE,CAAC,GAAG,GAAG,CAAC,OAAOxC,EAAE,KAAK,CAAC,IAAI,CAACsG,UAAU,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAGrG,IAA5J,EAAkK,GAA/J,GAAG,IAAI,CAAC,GAAG,GAAuJ,CAAC,CAAC,CAAC,SAAS,GAAGD,CAAC,CAACwC,CAAC,EAAE,OAAO,SAASH,CAAC,CAACpC,CAAC,EAAE,OAAOD,EAAE,IAAI,CAAC,IAAI,CAAC,GAAGqC,EAAEG,GAAG,GAAGvC,EAAEuC,GAAG,CAAC,CAAmD,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,MAAMxC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAEiX,SAAS,WAAW,CAAE,CAAC,GAAEA,SAAS,WAAW,CAAC,QAAO,EAAG,SAAS,CAAC,qBAAqB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAC,EAAG,EAAE,WAAW,EAAE,EAAE,EAAE,IAAIgC,YAAY,qBAAqB,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,aAAa,EAAGC,CAAAA,cAAc,GAAG,CAAC,EAAE,qBAAqB,EAAE,EAAE,oBAAoB,AAAD,EAAG,GAAG,CAAC,EAAE,oBAAoB,CAAC,EAAE,CAAC,MAAMlZ,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,gBAAgB,EAAEmZ,QAAQ,IAAI,CAAC,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,MAAMnZ,EAAE,CAAC,CAAC,CAAziB,KAAK,AAAC,IAAG,EAAC,EAAG,OAAO,CAAC,kBAAmB,IAAG,GAAG,EAAC,EAA2f,IAAI,GAAG,GAAG,MAAM,CAAuqB,IAAM,GAAG8F,OAAO,YAAY,CAAC,OAAO,GAAG,oGAAoG,GAAG,EAAE,CAAC,GAAG,aAAa,OAAOsT,WAAW,sBAAsB,IAAI,CAACA,UAAU,SAAS,EAAc,GAAGpZ,GAAG,CAAC,6BAA6B,IAAI,CAACA,GAAG,SAAS,GAAGA,CAAC,CAACwC,CAAC,EAAE,OAAOxC,EAAEwC,EAAE,WAAW,OAAOxC,EAAE,KAAK,CAAC,IAAI,CAACsG,YAAY9D,EAAE,KAAK,CAAC,IAAI,CAAC8D,UAAU,EAAEtG,EAAEwC,CAAC,CAAC,IAAM,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,UAAU,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,GAAGxC,CAAC,EAAE,MAAM,UAAU,OAAOA,GAAG,KAAK,IAAI,CAACA,GAAGA,GAAGA,EAAEwC,GAAI,MAAK,IAAIA,CAAC,CAACxC,EAAE,EAAEA,KAAKwC,GAAG,MAAM,AAACA,CAAAA,EAAE,EAAEA,EAAC,CAAE,CAACxC,EAAE,CAACwC,CAAAA,CAAE,CAAC,MAAM,GAAG,OAAOxC,CAAC,CAACwC,CAAC,CAACH,CAAC,CAAC,CAAC,IAAMpC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAED,CAAC,CAACqC,CAAC,CAACpC,CAAC,EAAE,GAAG,CAACA,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,4BAA4B,OAAOuC,EAAEvC,EAAE,QAAQ,CAACA,EAAE,CAAC,IAAMwE,EAAE,KAAK,GAAG,CAAC,OAAOxE,GAAGA,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,CAACA,IAAI,GAAG,KAAK,CAACA,EAAE,QAAQ,CAACD,EAAE,EAAEqC,GAAG,GAAI,IAAIpC,EAAE,QAAQ,CAACD,EAAE,EAAEqC,GAAI,CAAC,MAAMpC,EAAE,UAAU,GAAG,SAAS,EAAE,EAAE,GAAG,AAA/gD,SAAS,EAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAG,GAAE,MAAM,CAAC,YAAY,EAAE,GAAG,UAAU,EAAE,EAAE,IAAI,AAAD,EAAG,CAAC,IAAI,EAAE,EAAE,kBAAkB,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,YAAY,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,EAAGkZ,CAAAA,QAAQ,IAAI,CAAC,4BAA4B,EAAE,MAAM,GAAG,EAAE,IAAI,GAAG,IAAI,CAAE,IAAI,EAAG,EAAE,EAAE,EAAE,GAAG,EAAG,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAG,CAACnZ,EAAEwC,IAAI,GAAI,IAAK,IAAG,KAAK,CAAC,EAAE,EAAExC,EAAEwC,EAAE,EAAC,IAAO,IAAI,CAAExC,GAAG,EAAE,WAAW,CAAC,IAAI,CAAE,IAAIA,GAAK,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,EAAE,cAAc,EAAE,EAAE,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAE,IAAI,EAAG,EAAE,EAAE,EAAE,GAAI,EAA62B,IAAI,CAAC,EAAE,CAACA,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAACyE,GAAG,IAAI,CAAC,CAAC,IAAIzE,CAAC,CAACwC,CAAC,CAAC,CAAC,OAAOxC,GAAGA,EAAE,WAAW,GAAGmD,OAAO,IAAI,CAAC,KAAK,CAACnD,GAAG,KAAK,CAACwC,GAAG,IAAI,CAAC,MAAM,CAAC,WAAYA,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAMA,EAAE,IAAIxC,CAAC,GAAG,IAAI,CAAEA,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAACA,KAAO,IAAI,CAACwC,EAAE,CAAC,MAAMxC,CAAC,CAAC,CAAC,GAAG,UAAU,OAAOA,EAAE,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAACA,GAAG,GAAG,EAAEA,GAAG,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAEA,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAM,EAAE,EAAEA,GAAG,GAAG,IAAI,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAACA,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAEA,GAAGA,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAEwC,GAAGxC,EAAE,OAAO,CAAC,OAAO,CAACwC,IAAI,IAAKxC,EAAE,OAAO,CAAC,KAAK,CAAEA,GAAG,EAAE,OAAO,CAACA,IAAI,GAAK,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,GAAG,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,CAAEwC,GAAGxC,CAAC,CAACwC,EAAE,EAAI,EAAC,GAAG,GAAG2W,QAAQ,IAAI,CAAC,CAAC,UAAU,EAAEtD,KAAK,SAAS,CAAC7V,GAAG,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAEA,CAAC,CAACwC,CAAC,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,GAAG,CAACxC,EAAEwC,EAAE,CAAC,MAAMxC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAK,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAE,CAAC,CAACwC,EAAE,EAAE,CAAC,KAAK,IAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAExC,CAAC,CAAC,EAAE,CAAC,MAAM,CAACwC,GAAG,EAAEA,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAACxC,IAAI,IAAMwC,EAAE,EAAExC,EAAE,GAAG,OAAO,EAAEwC,IAAIA,EAAE,IAAI,CAAExC,GAAG,EAAE,EAAEA,GAAI,EAAEA,GAAG,EAAE,EAAE,EAAEA,EAAE,KAAK,EAAE,EAAG,CAAC,KAAK,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAACA,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,OAAOA,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,YAAY,GAAG,GAAG,CAACA,EAAE,CAAC,MAAMA,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,YAAY,GAAG,KAAK,CAACA,EAAE,CAAC,OAAOA,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,YAAY,GAAG,MAAM,CAACA,EAAE,CAAC,MAAMA,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,YAAY,GAAG,KAAK,CAACA,EAAE,CAAC,KAAKA,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAACA,EAAE,CAAC,QAAQA,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,YAAY,GAAG,OAAO,CAACA,EAAE,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,QAAQA,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAEA,GAAG,CAAC,CAAC,EAAEA,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAACA,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,CAAC,WAAWA,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAACA,EAAE,IAAMwC,EAAEA,IAAI,GAAG,CAACA,EAAE,OAAOA,EAAE,IAAMH,EAAEc,OAAO,MAAM,CAACnD,EAAE,SAAS,EAAE,IAAI,IAAIC,KAAKuC,EAAE,GAAG,EAAEA,EAAEvC,GAAG,GAAG,CAACoC,CAAC,CAACpC,EAAE,CAACuC,CAAC,CAACvC,EAAE,CAAC,MAAMD,EAAE,CAAC,CAAC,OAAOqC,CAAC,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAACG,EAAE,IAAI,CAAC,IAAI,CAAC,UAAUA,GAAGxC,CAAC,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,UAAU,CAAE,SAASA,CAAC,EAAE,EAAE,IAAI,CAACA,EAAE,EAAG,CAAC,IAAIA,CAAC,CAACwC,CAAC,CAAC,CAAC,GAAK,CAAC,KAAKH,CAAC,CAAC,QAAQpC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAK,EAAED,EAAE,OAAOC,GAAGoC,GAAI,GAAE,GAAGpC,GAAGD,EAAC,EAAG,IAAI,CAAC,MAAM,CAAC,YAAaA,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAMA,EAAE,KAAK,MAAM,KAAK,MAAMwC,EAAE,CAACA,EAAE,CAAC,KAAK,OAAO,CAAC,EAAE,IAAK,IAAI,CAAExC,GAAGA,EAAE,WAAW,CAAC,GAAG,MAAM,CAACA,EAAE,QAAQ,CAAC,EAAE,EAAEA,EAAE,UAAU,EAAG,IAAI,CAAEwC,IAAI,GAAGvC,EAAE,GAAG,CAAC,EAAED,EAAEC,EAAEuC,EAAE,CAAC,MAAMxC,EAAE,CAAC,CAAC,OAAOwC,CAAC,EAAG,CAAC,OAAOxC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,OAAOA,GAAG,EAAEA,GAAG,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,MAAM,CAACA,GAAG,MAAM,CAAC,EAAG,EAAC,IAAMqC,EAAE,EAAErC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,IAAIqC,EAAE,OAAO,GAAG,IAAI,EAAE,eAAe,CAAC,kDAAkD,GAAG,CAAC,YAAY,OAAO,EAAE,EAAE,GAAG,OAAO,CAAE,IAAI,EAAErC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAI,EAAEA,EAAE,CAAC,MAAMA,EAAE,QAAQqC,CAAC,EAAE,CAAC,MAAMrC,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,MAAM,CAACqC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,IAAIrC,CAAC,CAACwC,CAAC,CAAC,CAAC,GAAK,CAAC,KAAKH,CAAC,CAAC,QAAQpC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAK,EAAED,EAAE,OAAOC,GAAGoC,GAAI,GAAE,GAAGpC,GAAGD,EAAC,EAAG,IAAI,CAAC,MAAM,CAAC,YAAaA,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAMA,EAAE,KAAK,MAAM,OAAO,CAAC,EAAE,CAAC,KAAK,MAAMwC,EAAE,CAACA,EAAE,CAAC,IAAI,IAAK,IAAI,CAAExC,GAAGA,EAAE,WAAW,CAAC,GAAG,MAAM,CAACA,EAAE,QAAQ,CAAC,EAAE,EAAEA,EAAE,UAAU,EAAG,IAAI,CAAEwC,IAAI,GAAGvC,EAAE,GAAG,CAAC,EAAED,EAAEC,EAAEuC,EAAE,CAAC,MAAMxC,EAAE,CAAC,CAAC,OAAOwC,CAAC,EAAG,CAAC,OAAOxC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,YAAawC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAMA,EAAE,KAAK,SAAS,KAAK,CAACxC,EAAE,IAAK,IAAI,CAAEA,GAAGA,EAAE,WAAW,CAAC,GAAG,MAAM,CAACA,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAG,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,YAAaA,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAMA,EAAE,KAAK,cAAc,MAAM,EAAE,IAAK,IAAI,CAAEA,GAAGA,EAAE,WAAW,CAAC,GAAG,MAAM,CAACA,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAG,CAAC,QAAQA,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAYwC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAKxC,EAAE,MAAMwC,CAAC,GAAG,IAAI,CAAExC,GAAGA,EAAE,GAAG,CAAEA,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAACA,KAAQ,CAAC,QAAQA,CAAC,CAACwC,CAAC,CAACH,CAAC,CAAC,CAAC,IAAMpC,EAAEqC,MAAM,OAAO,CAACE,GAAGA,EAAE,KAAK,EAAE,EAAE,AAACH,CAAAA,EAAEA,GAAIpC,CAAAA,EAAE,KAAK,EAAEuC,CAAAA,CAAC,EAAGH,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,YAAaG,IAAI,GAAK,CAAC,KAAKH,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAGpC,EAAE,MAAM,IAAI,EAAE,eAAe,CAAC,gEAAgE,GAAGA,GAAGA,EAAE,MAAM,GAAGD,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,eAAe,CAAC,wDAAwD,IAAMyE,EAAEzE,EAAE,MAAM,CAAK,EAAE,GAAGqC,EAAErC,EAAE,GAAG,CAAC,GAAG,IAAIA,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAMwC,EAAE,KAAK,MAAM,KAAKvC,EAAE,OAAO,EAAE,YAAY,CAAC,GAAG,IAAI,CAAE,CAAC,CAAC,YAAYD,CAAC,CAAC,QAAQwC,CAAC,CAAC,WAAWH,CAAC,CAAC,SAASpC,CAAC,CAAC,IAAI,GAAG,IAAID,EAAE,OAAO,EAAEwC,EAAEH,CAAE,OAAM,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAErC,EAAE,IAAI,EAAEyE,EAAE,kBAAkB,CAAC,CAACxE,EAAE,EAAG,EAAG,CAAC,QAAQD,CAAC,CAACwC,CAAC,CAACH,CAAC,CAAC,CAAC,IAAMpC,EAAEqC,MAAM,OAAO,CAACE,GAAGA,EAAE,KAAK,EAAE,EAAE,AAACH,CAAAA,EAAEA,GAAIpC,CAAAA,EAAE,KAAK,EAAEuC,CAAAA,CAAC,EAAGH,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,YAAaG,IAAI,GAAK,CAAC,KAAKH,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAGpC,EAAE,MAAM,IAAI,EAAE,eAAe,CAAC,gEAAgE,GAAGA,GAAGA,EAAE,MAAM,GAAGD,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,eAAe,CAAC,wDAAwD,IAAMyE,EAAEzE,EAAE,MAAM,CAAK,EAAE,GAAGqC,EAAErC,EAAE,GAAG,CAAC,GAAG,IAAIA,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAMwC,EAAE,KAAK,MAAM,KAAKvC,EAAE,OAAO,EAAE,YAAY,CAAC,GAAG,IAAI,CAAE,CAAC,CAAC,YAAYD,CAAC,CAAC,QAAQwC,CAAC,CAAC,WAAWH,CAAC,CAAC,SAASpC,CAAC,CAAC,IAAI,GAAG,IAAID,EAAE,OAAO,EAAEwC,EAAEH,CAAE,OAAM,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAErC,EAAE,IAAI,EAAEyE,EAAE,kBAAkB,CAAC,CAACxE,EAAE,EAAG,EAAG,CAAC,WAAWD,CAAC,CAAC,CAAC,IAAMwC,EAAExC,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,YAAawC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAMA,EAAE,KAAK,SAAS,KAAKxC,CAAC,IAAK,IAAI,CAAE,CAAC,CAAC,YAAYA,CAAC,CAAC,WAAWqC,CAAC,CAAC,SAASpC,CAAC,CAAC,IAAI,GAAG,IAAID,EAAE,OAAOqC,CAAE,OAAM,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAErC,EAAE,IAAI,EAAEwC,EAAE,kBAAkB,CAAC,CAACvC,EAAE,EAAG,CAAC,CAAC,SAAS,GAAGD,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAEsG,UAAU,MAAM,CAAC,EAAE,AAAIhE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAACgE,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAGtG,CAAC,CAAC,GAAG,UAAU,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAE,GAAE,YAAY,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAEsG,UAAU,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAEA,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAEtG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,OAAOA,EAAE,KAAyT,EAAzT,YAA4T,EAAH,EAAhTA,GAAwT,OAAO,CAAE,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,SAAS,EAAE,MAAM,IAAI,EAAE,eAAe,CAAC,wBAAwB,IAAI,EAAE,EAAE,EAAE,GAAI,WAAW,IAAI,IAAIA,EAAEsG,UAAU,MAAM,CAAC9D,EAAE,AAAIF,MAAMtC,GAAGA,KAAKwC,CAAC,CAACxC,EAAE,CAACsG,SAAS,CAACtG,EAAE,CAAC,EAAE,WAAW,CAAC,OAAO,CAAE,SAASA,CAAC,EAAE,EAAG,WAAWA,EAAE,KAAK,CAAC,KAAKwC,EAAE,EAAG,EAAG,EAAG,CAAC,EAA9lB,CAAC,GAAI,GAAE,EAAC,EAAG,GAAI,GAAE,EAAC,EAAG,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,UAAU,SAASxC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAACA,IAAK,GAAE,WAAW,CAAC,IAAI,CAACA,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAACA,EAAC,CAAE,EAAE,YAAY,SAASA,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAE,SAASwC,CAAC,EAAE,OAAOA,IAAIxC,CAAC,GAAI,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAACA,EAAE,CAAC,CAAC,CAACA,EAAE,CAAC,EAAE,CAAC,CAAgU,CAAC,SAAS,GAAGA,CAAC,CAACwC,CAAC,EAAE,OAAO,EAAEA,GAAG,IAAI,CAAC,CAAC,UAAUxC,CAAC,GAAGwC,CAAC,CAAC,SAAS,GAAGxC,CAAC,CAACwC,CAAC,EAAE,MAAM,CAAExC,CAAAA,EAAE,MAAM,EAAEA,EAAE,SAAS,EAAEA,EAAE,EAAE,AAAD,GAAKwC,CAAAA,EAAExC,EAAE,SAAS,CAAC,CAACA,EAAE,YAAY,AAAD,CAAE,CAAC,SAAS,GAAGA,CAAC,CAACwC,CAAC,EAAExC,EAAE,MAAM,CAAC,GAAGA,EAAE,MAAM,CAACwC,EAAE,CAAC,SAAS,GAAGxC,CAAC,CAACwC,CAAC,CAACH,CAAC,EAAE,IAAIpC,EAAED,EAAE,YAAY,AAACA,CAAAA,EAAE,YAAY,CAACC,EAAE,IAAI,GAAGA,IAAIuC,KAAKA,EAAExC,EAAE,SAAS,CAACqC,GAAG,CAACpC,CAAC,CAAC,SAAS,GAAGD,CAAC,CAACwC,CAAC,EAAE,GAAGxC,EAAE,SAAS,CAAC,OAAOwC,EAAE,UAAU,CAAC,IAAMH,EAAEG,EAAE,iBAAiB,CAACxC,EAAE,KAAK,EAAE,GAAG,CAACqC,EAAE,MAAM,IAAI,EAAE,MAAM,CAAC,WAAWrC,EAAE,KAAK,CAAC,oBAAoBwC,EAAE,IAAI,CAAC,mBAAmB,OAAOH,CAAC,CAAC,SAAS,GAAGrC,CAAC,CAACwC,CAAC,CAACH,CAAC,EAAE,IAAMpC,EAAE,GAAGD,EAAEwC,EAAE,MAAM,EAAE,OAAOA,EAAE,UAAU,CAAC,CAAC,MAAMH,EAAE,OAAO,CAACrC,EAAE,QAAQ,CAAC,QAAQ,SAASA,EAAE,GAAG,CAAC,OAAO,CAAC,CAACA,EAAE,MAAM,CAAC,MAAM,CAAC,MAAMC,EAAE,MAAMD,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,GAAGA,CAAC,CAACwC,CAAC,CAACH,CAAC,CAACpC,CAAC,EAAE,IAAM,EAAED,EAAE,YAAY,CAAC,GAAGA,EAAE,MAAM,CAACA,EAAE,YAAY,IAAIA,EAAE,MAAM,CAAC,GAAGA,EAAE,EAAE,CAAC,CAAC,IAAM,EAAE,CAAC,EAAE,EAAE,CAACA,EAAEqC,EAAEpC,KAAK,GAAG,CAAC,GAAG,EAAEoC,EAAEpC,EAAGD,GAAGqC,EAAE,IAAI,CAACrC,GAAKA,GAAGqC,EAAE,IAAI,CAACrC,IAAK,CAAC,IAAI,EAAEqC,EAAE,UAAU,CAAC,EAAE,GAAG,CAAE,0BAAyB,GAAI,GAAE,GAAG,IAAIwW,WAAW,EAAC,EAAG,EAAE,EAAE,IAAK,EAAC,CAAC,EAAE,CAAC,CAAC,EAAErW,EAAExC,EAAEqC,EAAEpC,EAAC,CAAE,CAAC,EAAE,OAAOiY,QAAQ,GAAG,CAAC,CAAClY,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAEqC,GAAG,GAAG,GAAGrC,EAAEC,EAAEoC,GAAGrC,EAAE,SAAS,CAAC,EAAE,CAACA,EAAE,QAAQ,EAAEA,EAAE,WAAW,EAAE,CAAC,CAAC,OAAO,GAAG,GAAGA,EAAEC,EAAEoC,GAAG,GAAGrC,EAAE,SAAS,CAAC,GAAGwC,EAAE,CAACxC,EAAE,QAAQ,EAAEA,EAAE,WAAW,CAAC,CAAC,SAAS,GAAGA,CAAC,CAACwC,CAAC,CAACH,CAAC,CAACpC,CAAC,EAAE,IAAI,EAAE,GAAGA,EAAE,CAACD,EAAEwC,EAAE,IAAIH,EAAEpC,EAAED,GAAGwC,EAAE,GAAGH,GAAG,OAAOrC,EAAE,IAAI,CAAEA,IAAI,GAAGA,EAAE,OAAOA,EAAE,KAAK,CAAE,KAAK,IAAIqC,EAAE,IAAIrC,EAAE,QAAQ,EAAGwC,CAAAA,GAAG,CAACA,EAAExC,EAAGA,GAAGqC,EAAErC,EAAIwC,IAAIxC,EAAE,IAAI,CAACwC,GAAGH,EAAE,EAAE,EAAIG,IAAIxC,EAAE,IAAI,CAACwC,GAAGH,EAAE,EAAE,IAAK,EAAErC,EAAE,KAAK,CAACA,EAAGA,GAAGqC,EAAErC,GAAIqC,GAAG,EAAG,EAAG,CAAC,SAAS,GAAGrC,CAAC,CAACwC,CAAC,EAAE,GAAG,CAAC,IAAMH,EAAE,GAAGrC,GAAGC,EAAE,GAAGuC,GAAG,GAAGH,IAAIpC,EAAE,MAAM,UAAUoC,EAAE,EAAE,UAAUpC,EAAE,GAAG,WAAWoC,EAAE,EAAE,WAAWpC,EAAE,GAAG,WAAWoC,EAAE,EAAE,WAAWpC,EAAE,GAAG,SAASoC,EAAE,EAAE,SAASpC,EAAEoZ,IAAI,GAAG,OAAOhX,GAAG,IAAI,SAAS,IAAI,OAAO,IAAI,SAAS,OAAOrC,EAAEwC,EAAE,EAAExC,EAAEwC,EAAE,GAAG,CAAE,KAAI,SAAS,OAAO,SAASxC,CAAC,CAACwC,CAAC,EAAE,IAAMH,EAAErC,EAAE,MAAM,CAACC,EAAEuC,EAAE,MAAM,CAAC,EAAEH,EAAEpC,EAAEoC,EAAEpC,EAAE,IAAI,IAAIoC,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,GAAGrC,CAAC,CAACqC,EAAE,GAAGG,CAAC,CAACH,EAAE,CAAC,OAAOrC,CAAC,CAACqC,EAAE,CAACG,CAAC,CAACH,EAAE,CAAC,GAAG,EAAE,OAAOA,IAAIpC,EAAE,EAAEoC,EAAEpC,EAAE,GAAG,CAAC,EAAE,GAAGD,GAAG,GAAGwC,GAAI,KAAI,QAAQ,OAAO,SAASxC,CAAC,CAACwC,CAAC,EAAE,IAAMH,EAAErC,EAAE,MAAM,CAACC,EAAEuC,EAAE,MAAM,CAAC,EAAEH,EAAEpC,EAAEoC,EAAEpC,EAAE,IAAI,IAAIoC,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,CAAC,IAAMpC,EAAE,GAAGD,CAAC,CAACqC,EAAE,CAACG,CAAC,CAACH,EAAE,EAAE,GAAG,IAAIpC,EAAE,OAAOA,CAAC,CAAC,OAAOoC,IAAIpC,EAAE,EAAEoC,EAAEpC,EAAE,GAAG,CAAC,EAAED,EAAEwC,EAAE,CAAC,CAAC,MAAMxC,EAAE,CAAC,CAAC,OAAOqZ,GAAG,CAAC,SAAS,GAAGrZ,CAAC,EAAE,IAAMwC,EAAE,OAAOxC,EAAE,GAAG,WAAWwC,EAAE,OAAOA,EAAE,GAAG8W,YAAY,MAAM,CAACtZ,GAAG,MAAM,SAAS,IAAMqC,EAAE,EAAErC,GAAG,MAAM,gBAAgBqC,EAAE,SAASA,CAAC,CAAC,SAAS,GAAGrC,CAAC,EAAE,OAAOA,aAAa6Y,WAAW7Y,EAAEsZ,YAAY,MAAM,CAACtZ,GAAG,IAAI6Y,WAAW7Y,EAAE,MAAM,CAACA,EAAE,UAAU,CAACA,EAAE,UAAU,EAAE,IAAI6Y,WAAW7Y,EAAE,CAAC,MAAM,GAAG,MAAMA,CAAC,CAACwC,CAAC,CAAC,CAAC,IAAIH,EAAE,IAAI,CAAC,IAAI,CAAC,OAAOA,EAAE,KAAK,CAACA,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAKA,EAAE,KAAK,GAAGA,EAAE,KAAK,CAAC,MAAM,CAAC,WAAWrC,GAAG,IAAI,CAACwC,EAAE,CAAC,OAAOxC,CAAC,CAAC,CAAC,IAAIwC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAOA,EAAE,KAAK,CAACA,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAKA,EAAE,KAAK,GAAGA,EAAE,KAAK,CAAC,MAAM,CAAC,YAAYxC,EAAE,SAAS,CAAC,cAAcA,CAAC,CAAC,CAAC,IAAIwC,EAAE,IAAI,CAAC,IAAI,AAACA,CAAAA,EAAE,SAAS,CAAC,GAAGA,EAAE,SAAS,CAACxC,EAAE,CAAC,SAASA,CAAC,CAACwC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAACxC,EAAEwC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAMxC,CAAC,CAAC,CAAC,IAAIwC,EAAEW,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAEd,EAAEc,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAOnD,GAAG,EAAEqC,EAAErC,GAAGwC,EAAE,IAAI,CAACH,EAAEG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,KAAKxC,CAAC,CAAC,CAAC,IAAIwC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAEH,GAAG,GAAGG,EAAExC,EAAEqC,EAAEG,EAAE,KAAK,CAAC,IAAI,EAAG,CAAC,MAAMxC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAEA,IAAI,IAAMwC,EAAE,IAAI,CAAC,IAAI,CAACH,EAAEG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAGA,EAAE,CAAC,GAAG,OAAOH,EAAE,KAAK,CAAC,CAAC,MAAMrC,EAAE,MAAM,CAAC,MAAM,GAAGwC,EAAEH,EAAE,MAAM,EAAE,MAAMG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAExC,GAAGqJ,KAAK,GAAG,CAACrJ,EAAEwC,EAAE,KAAK,GAAI,IAAIvC,EAAE,EAAE,OAAO,GAAGuC,EAAG,IAAK,GAAEvC,EAAE,CAAC,GAAID,EAAEqC,GAAG,IAAI,CAAE,IAAIpC,EAAG,GAAI,IAAI,CAACD,EAAE,CAAC,OAAOA,CAAC,CAACwC,CAAC,CAAC,CAAC,IAAMH,EAAErC,EAAE,KAAK,CAAC,KAAK,OAAO,GAAGC,EAAEoC,CAAC,CAAC,EAAE,CAAC,EAAEA,EAAE,MAAM,CAAC,EAAE,SAAS,EAAErC,CAAC,CAACwC,CAAC,EAAE,OAAOA,EAAE,EAAExC,CAAC,CAACqC,CAAC,CAACG,EAAE,CAAC,CAACA,EAAE,GAAGxC,CAAC,CAACC,EAAE,CAAC,IAAIwE,EAAE,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,EAAEzE,CAAC,CAACwC,CAAC,EAAE,IAAIH,EAAE,EAAErC,EAAE,GAAGC,EAAE,EAAEuC,EAAE,GAAG,OAAOH,EAAEpC,EAAE,CAACwE,EAAEpC,EAAEpC,EAAEwE,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAE,SAASzE,CAAC,EAAE,OAAOA,EAAE,IAAI,CAAC,EAAE,GAAI,IAAI,CAACwC,EAAE,CAAC,QAAQxC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAEA,IAAI,IAAIwC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,SAASA,EAAE,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAIA,EAAE,KAAK,CAAC,EAAE,CAAC,GAAK,CAAC,YAAYH,CAAC,CAAC,CAACG,EAAEvC,EAAE,GAAGuC,EAAEA,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAOA,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAMxC,EAAE,MAAMwC,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAMvC,EAAE,MAAMuC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAE,CAAC,CAAC,OAAOxC,CAAC,CAAC,GAAGqC,EAAErC,EAAE,GAAG,CAACqC,GAAGrC,EAAG,CAAC,CAAC,IAAMqC,EAAE,EAAE,CAAC,OAAO,GAAGG,EAAGxC,GAAGqC,EAAE,IAAI,CAACrC,GAAIA,EAAEwC,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAE,IAAIH,EAAG,CAAC,EAAGrC,EAAE,CAAC,OAAOA,CAAC,CAAC,CAAC,IAAIwC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAOxC,GAAG,GAAIwC,CAAAA,EAAE,MAAM,EAAExC,EAAE,GAAGwC,GAAG,GAAGA,EAAG,KAAK,IAAIA,EAAExC,EAAE,MAAM,CAACA,EAAEqC,IAAI,IAAIG,IAAI,IAAIA,EAAG,EAAEA,EAAOH,EAAG,KAAKrC,EAAE,OAAO,CAACwC,GAAGA,EAAE,CAAC,GAAI,CAAC,EAAG,GAAI,GAAGA,EAAG,KAAK,IAAIA,EAAExC,EAAE,MAAM,IAAI,EAAEwC,EAAE,CAAC,EAAE,EAAG,IAAI,CAAC,MAAMxC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAACqJ,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAACrJ,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,KAAK,IAAIwC,EAAExC,EAAE,OAAO,SAASA,CAAC,CAACqC,CAAC,CAACpC,CAAC,EAAE,MAAM,EAAEuC,GAAG,GAAGH,EAAEpC,GAAGuC,GAAG,CAAC,CAAC,EAAG,CAAC,GAAG,IAAI,CAAC,MAAMxC,CAAC,CAACwC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAE,SAASH,CAAC,CAACpC,CAAC,CAAC,CAAC,EAAE,MAAM,CAACD,EAAEqC,EAAE,KAAK,GAAIpC,CAAAA,EAAE,GAAGuC,CAAAA,CAAE,GAAI,IAAI,CAAC,MAAMxC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAE,SAASA,CAAC,EAAE,OAAOA,CAAC,CAAC,EAAE,GAAI,IAAI,CAACA,EAAE,CAAC,KAAKA,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,GAAG,KAAK,CAACA,EAAE,CAAC,OAAOA,CAAC,CAAC,CAAC,IAAIwC,EAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAE,SAASA,CAAC,EAAE,OAAOxC,EAAEwC,EAAE,KAAK,CAAC,GAAoB,AAAhBA,CAAAA,EAAE,IAAI,CAAC,IAAI,AAAD,EAAQ,OAAO,CAAC,GAAGA,EAAE,OAAO,CAAxBxC,GAA4B,IAAI,CAAC,IAAIA,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAACA,EAAE,CAAC,GAAGA,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAACA,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,OAAO,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQA,CAAC,CAAC,CAAC,IAAIwC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAOA,EAAE,QAAQ,CAAC,CAACA,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAE,SAASA,CAAC,CAACH,CAAC,EAAErC,EAAEqC,EAAE,GAAG,CAACA,EAAE,EAAG,CAAC,cAAcrC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,OAAO,CAACA,EAAE,CAAC,eAAeA,CAAC,CAAC,CAAC,IAAIwC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAOA,EAAE,QAAQ,CAAC,CAACA,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAE,SAASA,CAAC,CAACH,CAAC,EAAErC,EAAEqC,EAAE,UAAU,CAACA,EAAE,EAAG,CAAC,KAAKrC,CAAC,CAAC,CAAC,IAAIwC,EAAE,IAAI,CAAC,IAAI,AAACA,CAAAA,EAAE,QAAQ,CAAC,CAACA,EAAE,OAAO,CAAC,IAAIH,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAE,SAASrC,CAAC,CAACwC,CAAC,EAAEH,EAAE,IAAI,CAACG,EAAE,GAAG,CAAC,GAAI,IAAI,CAAE,WAAW,OAAOH,CAAC,GAAI,IAAI,CAACrC,EAAE,CAAC,YAAYA,CAAC,CAAC,CAAC,IAAIwC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,SAASA,EAAE,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAIA,EAAE,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,CAAExC,IAAI,IAAIqC,EAAE,GAAGG,EAAEA,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAOA,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAMxC,EAAE,OAAO,CAAC,EAAE,MAAMwC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAMH,EAAE,MAAMG,EAAE,KAAK,CAAC,EAAE,GAAI,IAAI,CAAE,CAAC,CAAC,OAAOxC,CAAC,CAAC,GAAGA,GAAI,IAAI,CAACA,EAAGwC,CAAAA,EAAE,QAAQ,CAAC,CAACA,EAAE,OAAO,CAAC,IAAIH,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAE,SAASrC,CAAC,CAACwC,CAAC,EAAEH,EAAE,IAAI,CAACG,EAAE,UAAU,CAAC,GAAI,IAAI,CAAE,WAAW,OAAOH,CAAC,GAAI,IAAI,CAACrC,EAAE,CAAC,WAAWA,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,IAAI,CAACA,EAAE,CAAC,SAASA,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAE,SAASA,CAAC,EAAE,OAAOA,CAAC,CAAC,EAAE,GAAI,IAAI,CAACA,EAAE,CAAC,QAAQA,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,GAAG,QAAQ,CAACA,EAAE,CAAC,UAAU,CAAC,IAAIA,EAAE,IAAI,CAAC,IAAI,CAACwC,EAAExC,EAAE,KAAK,EAAEA,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAACA,EAAE,KAAK,CAAC,CAAC,GAAG,CAACwC,GAAG,CAACA,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,IAAIH,EAAE,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAE,SAASrC,CAAC,EAAE,IAAIwC,EAAExC,EAAE,UAAU,CAAC,QAAQ,GAAGC,EAAE,EAAEoC,EAAEG,GAAG,OAAOH,CAAC,CAACG,EAAE,CAAC,CAAC,EAAE,CAACvC,CAAC,GAAI,IAAI,CAAC,OAAOD,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAE,IAAI,IAAI,EAAE,GAAG,YAAY,OAAOA,EAAE,EAAEA,MAAM,CAAC,IAAIiF,EAAE,EAAEjF,GAAGyE,EAAEQ,EAAE,MAAM,CAAC,EAAE,SAASzC,CAAC,EAAE,IAAI,IAAIH,EAAE,CAAC,EAAEpC,EAAE,EAAEA,EAAEwE,EAAE,EAAExE,EAAE,CAAC,IAAI,EAAEgF,CAAC,CAAChF,EAAE,CAAC,EAAED,CAAC,CAAC,EAAE,AAAC,GAAEwC,EAAE,KAAK,GAAI,GAAEA,EAAE,EAAE,GAAGH,EAAE,CAAC,EAAE,CAAC,OAAOA,CAAC,CAAC,CAAC,IAAM,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,CAAK,EAAE,EAAQ,EAAE,EAAE,CAACsH,EAAE,CAAC3J,EAAE,KAAK,GAAK,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAS,IAAI,IAAI,KAAf,GAAGA,EAAE,EAAe,EAAE,IAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,GAAG,WAAW,GAAG,IAAI,CAAE,IAAI,IAAM,EAAEyE,IAAI,IAAM,EAAE4E,KAAK,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC5E,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAACA,EAAEA,EAAE,GAAG,MAAM,WAAW,GAAG,IAAI,CAAE,IAAI,IAAM,EAAE,EAAE,CAACoH,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI7L,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,CAAC,IAAM,EAAE,CAAC,CAACA,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAACyE,EAAEzE,EAAE,CAAE,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAK,OAAM,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAACyE,EAAEzE,EAAE,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,GAAI6L,CAAAA,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAACpH,EAAEzE,EAAE,GAAI,GAAE,IAAI,CAAC,CAAC,CAACyE,EAAEzE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,EAAC,CAAE,CAAC,IAAM,EAAE,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,GAAI,aAAY,OAAOA,GAAGA,IAAI,EAAC,GAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,OAAOkY,QAAQ,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,MAAM,OAAO,CAAC,GAAG,IAAI,CAAElY,IAAI,IAAI,IAAIwC,KAAKxC,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC6I,SAASrG,GAAG,GAAGmH,EAAE,EAAE,MAAM,CAAC3J,EAAE,IAAK,IAAI,CAAE,IAAI,AAAC6L,CAAAA,EAAE,MAAM,CAAC,GAAG,GAAG,UAAU,OAAO7L,CAAAA,GAAI,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,MAAM,KAAK,EAAE,OAAO6L,EAAE,SAAS,EAAE,WAAW,YAAY,OAAO7L,GAAGA,CAAC,GAAG,IAAI,CAAEA,GAAG2J,EAAEkC,EAAE,MAAM,CAAC7L,KAAO,IAAI,CAAE,IAAI,AAAC,GAAE,MAAM,CAAC,GAAG,GAAGA,IAAI,EAAC,GAAI,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,SAAS,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,CAAEA,GAAG2J,EAAE,EAAE,MAAM,CAAC3J,KAAO,IAAI,CAAE,IAAI,EAAE,MAAM,CAACyE,EAAE,GAAG,EAAEA,EAAE,GAAI,EAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAE,KAAK,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,IAAI,EAAE,sCAAsC,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAG,EAAG,EAAG,CAAC,QAAQ,CAAC,IAAIzE,EAAE,IAAI,CAAC,IAAI,CAACwC,EAAExC,EAAE,KAAK,CAAC,OAAO,GAAGA,IAAKA,CAAAA,EAAE,SAAS,EAAE,CAA9hb,IAAmib,IAAIwC,EAAE,IAAI,AAAD,EAAG,IAAI,CAAC,MAAM,CAAEH,IAAI,GAAK,CAAC,WAAWpC,CAAC,CAAC,CAACD,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAK,OAAOA,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAMqC,EAAE,MAAM,CAAC,MAAMpC,EAAE,MAApDuC,CAA2D,CAAC,GAAG,IAAI,CAAE,GAAGxC,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAMqC,EAAE,KAAK,cAAc,MAAxHG,CAA+H,GAAG,IAAI,CAAE,CAAC,CAAC,SAASxC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,+BAA+BmD,OAAO,IAAI,CAACnD,GAAG,GAAG,CAAEwC,GAAGxC,CAAC,CAACwC,EAAE,EAAG,EAAE,GAAG,OAAO,EAAE,CAAC,GAAK,GAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAM,GAAG,CAACxC,EAAEwC,IAAIA,EAAE,KAAK,CAAC,KAAK,SAAS,GAAGxC,CAAC,CAACwC,CAAC,EAAE,OAAOxC,EAAEwC,EAAE,GAAGxC,CAAAA,CAAAA,IAAIwC,CAAAA,CAAK,CAAC,SAAS,GAAGxC,CAAC,CAACwC,CAAC,EAAE,OAAOxC,EAAEwC,EAAE,GAAGxC,CAAAA,CAAAA,IAAIwC,CAAAA,CAAK,CAAC,SAAS,GAAGxC,CAAC,CAACwC,CAAC,CAACH,CAAC,EAAE,IAAIpC,EAAED,aAAa,GAAG,IAAIA,EAAE,UAAU,CAACA,GAAGA,EAAE,OAAOC,EAAE,IAAI,CAAC,KAAK,CAACoC,EAAE,IAAIA,EAAEG,GAAG,AAAIS,UAAUT,GAAGvC,CAAC,CAAC,SAAS,GAAGD,CAAC,EAAE,OAAO,IAAIA,EAAE,UAAU,CAACA,EAAG,IAAI,GAAG,KAAM,KAAK,CAAC,EAAE,CAAuZ,SAAS,GAAGA,CAAC,CAACwC,CAAC,CAACH,CAAC,CAACpC,CAAC,EAAE,IAAI,EAAE,EAAEwE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAEpC,EAAE,MAAM,CAAC,GAAG,CAACA,EAAE,KAAK,CAAErC,GAAG,UAAU,OAAOA,GAAI,OAAO,GAAGA,EAAE,oBAAoB,SAAS,EAAEA,CAAC,EAAE,EAAoB,SAAkDA,EAAvCA,GAAGA,EAAE,WAAW,GAAGA,GAAGA,EAAE,WAAW,GAAO,EAAoB,SAAkDA,EAAvCA,GAAGA,EAAE,WAAW,GAAGA,GAAGA,EAAE,WAAW,GAAOyE,EAAE,SAASzE,EAAE,GAAG,GAAG,IAAIwC,EAAEH,EAAE,GAAG,CAAE,SAASrC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAEA,GAAG,MAAM,EAAEA,EAAE,CAAC,GAAI,IAAI,CAAE,SAASA,CAAC,CAACwC,CAAC,EAAE,OAAOiC,EAAEzE,EAAE,KAAK,CAACwC,EAAE,KAAK,CAAC,EAAI,GAAEA,EAAE,GAAG,CAAE,SAASxC,CAAC,EAAE,OAAOA,EAAE,KAAK,GAAI,EAAEwC,EAAE,GAAG,CAAE,SAASxC,CAAC,EAAE,OAAOA,EAAE,KAAK,GAAI,EAAEA,EAAE,EAAE,SAASA,EAAE,GAAGC,CAAC,CAAC,EAAE,QAAQ,IAAI,EAAE,IAAID,EAAE,UAAU,CAACA,EAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAACC,GAAK,GAAE,kBAAkB,CAAC,SAASD,CAAC,EAAE,EAAEA,EAAE,EAAE,IAAI2J,EAAE,EAAE,OAAO,EAAE,aAAa,CAAE,SAAS3J,CAAC,CAACqC,CAAC,CAACpC,CAAC,EAAE,IAAI,EAAED,EAAE,GAAG,CAAC,GAAG,UAAU,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,GAAGwC,EAAE,EAAE,EAAEmH,GAAG,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE,KAAKkC,EAAElC,EAAEkC,EAAE,EAAE,EAAEA,EAAE,CAAC,IAAI,EAAE,AAA/oC,SAAY7L,CAAC,CAACwC,CAAC,CAACH,CAAC,CAACpC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAIwE,EAAE4E,KAAK,GAAG,CAACrJ,EAAE,MAAM,CAACC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAEwE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAEjC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAIvC,CAAC,CAAC,EAAE,CAAC,OAAO,AAAa,EAAb,EAAED,CAAC,CAAC,EAAE,CAACqC,CAAC,CAAC,EAAE,EAAIrC,EAAE,MAAM,CAAC,EAAE,GAAGqC,CAAC,CAAC,EAAE,CAACA,EAAE,MAAM,CAAC,EAAE,GAAG,AAAa,EAAb,EAAErC,CAAC,CAAC,EAAE,CAACC,CAAC,CAAC,EAAE,EAAID,EAAE,MAAM,CAAC,EAAE,GAAGC,CAAC,CAAC,EAAE,CAACoC,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,EAAErC,EAAE,MAAM,CAAC,EAAE,GAAGwC,CAAC,CAAC,EAAE,CAACH,EAAE,MAAM,CAAC,EAAE,GAAG,IAAK,AAAU,GAAV,EAAErC,CAAC,CAAC,EAAE,CAAC,IAAO,GAAE,EAAE,CAAC,OAAOyE,EAAExE,EAAE,MAAM,EAAE,SAAS,EAAED,EAAEqC,EAAE,MAAM,CAACrC,EAAE,MAAM,EAAEyE,EAAEzE,EAAE,MAAM,EAAE,SAAS,EAAEA,EAAE,MAAM,CAAC,EAAEqC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAKrC,EAAE,MAAM,CAAC,EAAE,GAAGC,CAAC,CAAC,EAAE,CAACoC,EAAE,MAAM,CAAC,EAAE,EAAE,EAA6vB,EAAE,EAAE,CAAC,CAACwJ,EAAE,CAAC,CAAC,CAACA,EAAE,CAACpH,EAAE,EAAG,QAAO,GAAG,OAAO,EAAEkF,EAAEkC,EAAE,EAAE,AAAC,QAAO,GAAGpH,EAAE,EAAE,GAAG,IAAK,GAAE,EAAE,CAAC,OAAOpC,EAAE,OAAO,EAAE,WAAWrC,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAEC,GAAG,CAAC,CAAC,GAAI,CAAC,CAAC,SAAS,GAAGD,CAAC,CAACwC,CAAC,CAACH,CAAC,CAACpC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAMD,EAAE,MAAMwC,EAAE,UAAUH,EAAE,UAAUpC,CAAC,CAAC,CAAC,SAAS,GAAGD,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAMA,EAAE,MAAMA,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQA,CAAC,CAACwC,CAAC,CAACH,CAAC,CAACpC,CAAC,CAAC,CAACoC,EAAE,CAAC,IAAIA,EAAEpC,EAAE,CAAC,IAAIA,EAAE,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,CAACD,EAAEwC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAACxC,EAAEwC,IAAKH,CAAAA,GAAGpC,CAAAA,GAAK,EAACoC,GAAG,CAACpC,CAAAA,EAAG,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAE,IAAI,GAAGD,EAAEwC,EAAE,CAACH,EAAE,CAACpC,GAAI,CAAC,MAAMD,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAOA,CAAC,CAAC,CAAC,OAAO,MAAMA,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAE,IAAI,GAAGA,GAAI,CAAC,MAAMA,CAAC,CAAC,CAAC,OAAO,MAAMA,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAE,IAAI,GAAGA,EAAE,KAAK,EAAE,CAAC,GAAI,CAAC,aAAaA,CAAC,CAAC,CAAC,OAAO,MAAMA,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAE,IAAI,GAAGA,EAAE,KAAK,EAAE,CAAC,GAAI,CAAC,MAAMA,CAAC,CAAC,CAAC,OAAO,MAAMA,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAE,IAAI,GAAG,KAAK,EAAEA,EAAE,CAAC,EAAE,CAAC,GAAI,CAAC,aAAaA,CAAC,CAAC,CAAC,OAAO,MAAMA,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAE,IAAI,GAAG,KAAK,EAAEA,GAAI,CAAC,WAAWA,CAAC,CAAC,CAAC,MAAM,UAAU,OAAOA,EAAE,GAAG,IAAI,CAAC,oBAAoB,IAAI,CAAC,OAAO,CAACA,EAAEA,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,qBAAqBA,CAAC,CAAC,CAAC,MAAM,KAAKA,EAAE,IAAI,CAAC,UAAU,CAACA,GAAG,GAAG,IAAI,CAAE,CAACA,EAAEwC,IAAI,IAAIxC,EAAE,OAAO,CAACwC,CAAC,CAAC,EAAE,EAAG,CAACxC,EAAE,CAAC,GAAG,CAAC,iBAAiBA,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAE,CAACA,EAAEwC,IAAIxC,IAAIwC,CAAC,CAAC,EAAE,CAAE,CAACxC,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAIA,EAAE,EAAE,KAAK,CAAC,EAAEsG,WAAW,OAAO,IAAItG,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAE,CAACA,EAAEwC,IAAI,KAAKA,EAAE,OAAO,CAACxC,GAAIA,EAAE,GAAG,CAAC,2BAA2B,CAAC,IAAIA,EAAE,EAAE,KAAK,CAAC,EAAEsG,WAAW,OAAO,IAAItG,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAE,CAACA,EAAEwC,IAAIA,EAAE,IAAI,CAAEA,GAAG,IAAIxC,EAAE,OAAO,CAACwC,IAAMxC,EAAE,GAAG,CAAC,OAAO,CAAC,IAAMA,EAAE,EAAE,KAAK,CAAC,EAAEsG,WAAe9D,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAACxC,EAAE,IAAI,CAACwC,EAAE,CAAC,MAAMxC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAIA,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,IAAMqC,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAE,IAAI,GAAGrC,CAAC,CAAC,EAAE,CAACA,CAAC,CAACA,EAAE,MAAM,CAAC,EAAE,EAAIqC,CAAAA,EAAE,kBAAkB,CAACA,IAAIG,EAAE,SAASH,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAACrC,EAAE,IAAI,CAACwC,EAAE,EAAE,IAAIvC,EAAE,EAAE,OAAOoC,EAAE,aAAa,CAAE,CAACA,EAAE,EAAE,KAAK,IAAMoC,EAAEpC,EAAE,GAAG,CAAC,KAAKG,EAAEiC,EAAEzE,CAAC,CAACC,EAAE,EAAE,GAAG,GAAG,EAAIA,IAAID,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,IAAIwC,EAAEiC,EAAEzE,CAAC,CAACC,EAAE,GAAI,GAAG,KAAKoC,EAAE,QAAQ,CAACrC,CAAC,CAACC,EAAE,CAAC,GAAI,CAAC,EAAE,GAAIoC,CAAC,CAAC,SAASrC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,EAAE,EAAGA,EAAE,CAAC,CAACA,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAMA,EAAE,EAAE,KAAK,CAAC,EAAEsG,WAAW,GAAG,IAAItG,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAACA,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAMA,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAMwC,EAAExC,EAAE,MAAM,CAAE,CAACA,EAAEwC,IAAIxC,EAAEA,EAAE,MAAM,CAAC,CAAC,CAACA,CAAC,CAACA,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAACwC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,EAAGA,EAAE,CAAC,CAAE,MAAM,OAAOA,EAAE,IAAI,CAAC,CAACxC,CAAC,CAACA,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,CAACwC,EAAE,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,WAAWxC,CAAC,CAACwC,CAAC,CAAC,CAAC,IAAMH,EAAE,IAAI,CAAC,IAAI,CAACpC,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,IAAI,CAACwE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAIzE,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,GAAG,CAACA,EAAE,KAAK,CAAEA,GAAG,KAAK,IAAIA,CAAC,CAAC,EAAE,EAAE,KAAK,IAAIA,CAAC,CAAC,EAAE,EAAEC,AAAc,GAAdA,EAAED,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,EAAE,GAAO,OAAO,GAAG,IAAI,CAAC,6HAA6H,EAAE,eAAe,EAAE,IAAM,EAAE,CAACwC,GAAG,CAAC,IAAIA,EAAE,aAAa,CAAC,EAAEA,GAAG,CAAC,IAAIA,EAAE,aAAa,CAAK,EAAE,EAAEvC,EAAE,SAAS,EAAED,CAAC,CAACwC,CAAC,EAAE,OAAO,EAAExC,CAAC,CAAC,EAAE,CAACwC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,AAAsL,CAAtL,EAAExC,EAAE,MAAM,CAAE,SAASA,CAAC,CAACwC,CAAC,EAAE,IAAIvC,EAAE,EAAE,EAAED,EAAE,MAAM,CAAC,KAAKC,EAAE,EAAE,EAAEA,EAAE,CAAC,IAAM,EAAED,CAAC,CAACC,EAAE,CAAC,GAAGoC,AAAa,EAAbA,EAAEG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAKH,EAAEG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAACiC,EAAE,CAAC,CAAC,EAAE,CAACjC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,OAAOvC,IAAI,GAAGD,EAAE,IAAI,CAACwC,GAAGxC,CAAC,EAAG,EAAE,GAAI,IAAI,CAAC,EAAE,CAAC,MAAMA,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAQ,EAAE,EAAEA,GAAGC,EAAED,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAEA,GAAGC,EAAED,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE2J,EAAE,EAAE3J,GAAG,EAAEA,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAEA,GAAG,EAAEA,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAM6L,EAAE,EAAQ,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAE,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAK,OAAO,EAAE,kBAAkB,CAAC7L,IAAI,SAASA,EAAG6L,CAAAA,EAAE,EAAE,EAAE5L,CAAAA,EAAI4L,CAAAA,EAAElC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,aAAa,CAAE,CAAC3J,EAAEwC,EAAEH,KAAK,IAAI,IAAI,EAAErC,EAAE,GAAG,CAAC6L,EAAE,IAAI,GAAG,EAAI,IAAI,EAAE,MAAM,CAAC,OAAOrJ,EAAEH,GAAG,CAAC,EAAE,MAAM,CAAC,CAAmB,EAAC,EAAa,IAAP,CAACsH,EAAM,EAAH,GAAQ,KAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAGnH,EAAG,KAAK,IAAIvC,EAAED,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAEA,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAI,CAAC,EAAE,GAAI,CAAC,CAAC,iBAAiB,CAAC,IAAMA,EAAE,EAAE,KAAK,CAAC,EAAEsG,WAAW,OAAOtG,EAAE,KAAK,CAAEA,GAAG,UAAU,OAAOA,GAAI,IAAIA,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,UAAU,CAACA,EAAE,GAAG,CAAEA,GAAG,CAACA,EAAEA,EAAE,GAAG,GAAI,GAAG,IAAI,CAAC,4CAA4C,CAAC,CAAC,SAAS,GAAGA,CAAC,EAAE,OAAO,GAAI,SAASwC,CAAC,EAAE,OAAO,GAAGA,GAAGxC,EAAEwC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAAG,CAAC,SAAS,GAAGxC,CAAC,EAAEA,EAAE,eAAe,EAAEA,EAAE,eAAe,GAAGA,EAAE,cAAc,EAAEA,EAAE,cAAc,EAAE,CAAC,IAAM,GAAG,GAAG,KAAK,iBAAkB,OAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,EAAG,IAAG,YAAY,CAAC,IAAI,AAAD,EAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,EAAG,IAAG,YAAY,CAAC,IAAG,EAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAIA,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,GAAG,CAAC,GAAGA,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,EAAE,CAAC,CAAC,MAAMA,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,YAAY,GAAG,IAAI,CAAC,OAAOA,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAMwC,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAACH,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAACrC,GAAG,CAACwC,EAAE,OAAOH,GAAGA,EAAE,IAAI,EAAE,IAAI,sBAAsB,MAAM,IAAI,EAAE,cAAc,CAACA,EAAG,KAAI,kBAAkB,MAAM,IAAI,EAAE,UAAU,CAACA,EAAE,OAAO,CAACA,EAAG,SAAQ,MAAM,IAAI,EAAE,UAAU,CAACA,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,AAACrC,CAAAA,EAAE,IAAI,CAAC,QAAQ,CAACA,GAAI,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,2BAA2B,GAAGwC,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,2BAA2B,EAAC,CAAC,EAAG,OAAO,CAAC,GAAIA,IAAI,GAAGA,GAAG,IAAI,CAAC,OAAO,CAACxC,EAAE,KAAK,CAAC,GAAIA,EAAE,OAAO,CAAC,GAAIwC,IAAI,GAAGA,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAACxC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,SAAS,IAAI,CAACwC,EAAE,GAAIxC,EAAE,UAAU,CAAC,GAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,iBAAiBA,GAAG,GAAG,cAAc,CAAC,IAAI,CAACA,EAAE,YAAY,CAAC,GAAI,IAAI,CAAC,SAASA,CAAC,CAACwC,CAAC,CAACH,CAAC,CAAC,CAAC,GAAG,cAAcrC,GAAG,cAAc,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,QAAQ,CAAC,4BAA4B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,GAAI,CAACC,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,CAACD,EAAEwC,EAAEH,GAAG,IAAI,CAACpC,EAAE,EAAE,EAAE,GAAG,CAAC,GAAI,GAAGoC,EAAE,OAAO,GAAI,KAAK,IAAIrC,EAAE,IAAI,GAAI,CAACA,EAAEqC,KAAK,IAAI,CAAC,KAAK,GAAG,IAAMpC,EAAEuC,EAAExC,EAAEqC,EAAE,IAAI,CAAEpC,CAAAA,GAAGA,EAAE,IAAI,EAAEA,EAAE,IAAI,CAACD,EAAEqC,EAAE,GAAI,OAAOrC,EAAE,OAAO,CAAE,IAAI,IAAI,CAAC,OAAO,IAAKA,EAAE,IAAI,CAAC,CAAC,EAAEA,CAAC,GAAI,IAAIC,EAAE,IAAI,GAAI,CAACD,EAAEqC,KAAK,IAAIpC,EAAEuC,EAAExC,EAAEqC,EAAE,IAAI,CAAEpC,CAAAA,GAAGA,EAAE,IAAI,EAAEA,EAAE,IAAI,CAACD,EAAEqC,EAAE,GAAI,OAAOpC,EAAE,IAAI,CAAC,CAAC,EAAEA,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQD,CAAC,CAAC,CAAC,IAAIwC,EAAE,IAAI,CAAC,KAAK,GAAG,IAAMH,EAAE,GAAG,OAAO,CAACrC,GAAG,GAAGwC,EAAE,WAAW,CAACA,EAAE,WAAW,CAACA,EAAE,WAAW,CAAC,IAAI,CAAE,IAAIH,OAAQ,CAACG,EAAE,WAAW,CAACH,EAAEG,EAAE,aAAa,CAAC,EAAE,CAAC,IAAIvC,EAAEuC,EAAE,QAAQ,CAAC,WAAW,CAACA,EAAE,UAAU,CAAC,EAAE,CAAE,EAAC,SAASxC,IAAI,IAAI,EAAEwC,EAAE,UAAU,CAACA,EAAE,aAAa,CAAC,MAAM,EAAEA,EAAE,aAAa,CAAC,KAAK,IAAKA,CAAAA,EAAE,WAAW,EAAGvC,CAAAA,EAAE,GAAG,CAAC,MAAM,SAAS,CAACD,CAAAA,CAAE,GAAG,CAAC,IAAI,EAAEwC,EAAE,WAAW,CAAC,OAAO,IAAI,GAAI,CAACxC,EAAEC,KAAKoC,EAAE,IAAI,CAAEA,GAAGG,EAAE,aAAa,CAAC,IAAI,CAAC,GAAGxC,EAAE,IAAI,CAAC,KAAKqC,KAAOrC,GAAGwC,EAAE,aAAa,CAAC,IAAI,CAAC,GAAGvC,EAAE,IAAI,CAAC,KAAKD,MAAO,OAAO,CAAE,KAAKwC,EAAE,WAAW,GAAG,GAAIA,CAAAA,EAAE,WAAW,CAAC,IAAG,CAAE,EAAG,EAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAG,KAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,MAAMxC,CAAC,CAAC,CAAC,IAAMwC,EAAE,IAAI,CAAC,eAAe,EAAG,KAAI,CAAC,eAAe,CAAC,CAAC,GAAG,GAAG,EAAEA,EAAExC,GAAG,OAAOwC,CAAC,CAACxC,EAAE,CAAC,IAAMqC,EAAE,IAAI,CAAC,MAAM,CAACrC,EAAE,CAAC,GAAG,CAACqC,EAAE,MAAM,IAAI,EAAE,QAAQ,CAAC,SAASrC,EAAE,4BAA4B,IAAMC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,CAACD,EAAEqC,EAAE,IAAI,EAAE,OAAOpC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAACD,GAAGwC,CAAC,CAACxC,EAAE,CAACC,EAAEA,CAAC,CAAC,CAAC,SAAS,GAAGD,CAAC,CAACwC,CAAC,CAACH,CAAC,CAACpC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACwE,CAAC,EAAE,MAAM,CAAC,KAAKzE,EAAE,QAAQwC,EAAE,OAAOH,EAAE,MAAMpC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,AAACoC,CAAAA,GAAG,CAACoC,EAAE,IAAI,EAAC,EAAIxE,CAAAA,EAAE,IAAI,EAAC,EAAI,GAAE,KAAK,EAAC,EAAG,GAAGuC,EAAE,CAAC,CAAC,SAAS,GAAGxC,CAAC,EAAE,MAAM,UAAU,OAAOA,EAAEA,EAAEA,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAACA,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,GAAGA,CAAC,CAACwC,CAAC,CAACH,CAAC,EAAE,MAAM,CAAC,KAAKrC,EAAE,QAAQwC,EAAE,QAAQH,EAAE,YAAY,KAAK,UAAU,EAAEA,EAAGrC,GAAG,CAACA,EAAE,IAAI,CAACA,EAAE,CAAE,CAAC,CAAC,IAAI,GAAGA,IAAI,GAAG,CAAC,OAAOA,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAMA,EAAE,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC,EAAE,SAAS,GAAGA,CAAC,EAAE,OAAO,MAAMA,EAAE,KAAK,EAAE,UAAU,OAAOA,EAAqB,IAAI,AAAuCA,EAArC,KAAK,CAAC,KAAK,MAAM,CAACwC,GAAGA,CAAC,CAAexC,EAAZ,CAACwC,GAAG,EAAEA,EAAMxC,GAAGwC,GAAG,EAAEA,EAAExC,EAAE,CAAC,SAAS,GAAGA,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAACA,EAAE,CAAC,IAAI,GAAG,EAAE,SAAS,GAAGA,CAAC,EAAE,OAAO,MAAMA,EAAE,MAAM,UAAU,OAAOA,EAAEA,EAAE,CAAC,CAAC,EAAEA,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAozJ,SAAS,GAAG,CAAC,OAAOA,CAAC,CAAC,CAACwC,CAAC,EAAE,IAAMH,EAAEG,EAAE,EAAE,CAACvC,EAAE,SAASD,CAAC,CAACwC,CAAC,CAAC,CAAC,YAAYH,CAAC,CAAC,UAAUpC,CAAC,CAAC,CAAC,CAAC,MAAmB,EAAgF,MAAM,CAAC,MAAM,EAA7F,EAA4D,AAAr9J,SAAYD,CAAC,CAACwC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAExC,CAAC,EAAE,GAAG,IAAIA,EAAE,IAAI,CAAC,OAAO,KAAK,GAAG,IAAIA,EAAE,IAAI,CAAC,MAAM,AAAI0D,MAAM,4CAA4C,GAAK,CAAC,MAAMrB,CAAC,CAAC,MAAMpC,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAACD,EAAE,OAAO,KAAK,IAAIqC,EAAE,KAAK,IAAIpC,EAAE,KAAKuC,EAAE,UAAU,CAACvC,EAAE,CAAC,CAAC,GAAG,KAAK,IAAIA,EAAEuC,EAAE,UAAU,CAACH,EAAE,CAAC,CAAC,GAAGG,EAAE,KAAK,CAACH,EAAEpC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAK,CAAC,OAAOgF,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAASjF,CAAC,CAACwC,CAAC,EAAE,IAAM,EAAE,GAAGxC,EAAE,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,KAAKA,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAEA,GAAGwC,EAAE,WAAW,CAACxC,IAAK,GAAG,CAAEA,IAAI,GAAK,CAAC,QAAQwC,CAAC,CAAC,cAAc,CAAC,CAAC,CAACxC,EAAE,EAAE,EAAEwC,GAAGyC,EAAE,MAAMzC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,KAAKxC,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,aAAa,CAAC,EAAE,SAASiF,EAAE,SAAS,EAAE,QAAQzC,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,WAAW,GAAGA,EAAE,EAAE,QAAQ,GAAGxC,EAAE,UAAU,EAAE,GAAG,CAAEwC,GAAGxC,EAAE,KAAK,CAACwC,IAAK,GAAG,CAAExC,IAAI,GAAK,CAAC,KAAKwC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQyC,CAAC,CAAC,CAACjF,EAAE,EAAE,CAAC,KAAKwC,EAAE,SAAS,EAAEyC,GAAG,QAAQA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,GAAGA,EAAE,EAAE,OAAO,CAAC,CAAC,GAAGA,GAAG,CAAC,EAAE,CAAC,GAAI,kBAAkBjF,GAAG,CAAC,CAAC,GAAGA,GAAG,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,MAAMwC,GAAI,EAAC,CAAC,GAAGA,GAAG,CAAC,EAAE,UAAU,AAAD,EAAG,CAAC,EAAG,EAAE,UAAU,EAAE,MAAM,CAAC,GAAG,WAAWA,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,CAAE,cAAa,OAAO4W,WAAW,SAAS,IAAI,CAACA,UAAU,SAAS,GAAG,CAAC,oBAAoB,IAAI,CAACA,UAAU,SAAS,GAAG,EAAE,CAAC,MAAM,CAACA,UAAU,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAE,CAAE,CAAC,EAAEpZ,EAAE,GAAG,EAAEiF,EAAE,MAAM,CAAC,GAAG,CAAEjF,GAAG,UAASA,CAAC,EAAE,IAAMwC,EAAExC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAKwC,EAAE,OAAOxC,EAAE,OAAO,SAAS,CAAC,MAAMA,CAAC,CAAC,KAAKqC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,MAAMoC,CAAC,CAAC,EAAE,OAAO,IAAIyT,QAAS,CAAC,EAAE,SAAmY,EAA9X,EAAE,GAAG,GAAG,IAAMlT,EAAEhF,EAAE,WAAW,CAACwC,GAAG,EAAE,MAAMwC,EAAE,OAAO,CAACmE,EAAE,QAAQ9G,GAAG,QAAQA,EAAE,GAAG,CAAC8G,GAAG,WAAW9G,GAAG,gBAAgBA,EAAE,MAAM,AAAIqB,MAAM,2BAA2BrB,GAAG,GAAK,CAAC,OAAOkH,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,CAAC,MAAM,AAAI7F,MAAM,iEAAiE,GAAG,IAAI6F,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,KAAK,CAAC,GAAS,IAAMI,EAAE,EAAE,CAACkC,EAAE,EAAE,CAAK,EAAE,EAAQ,EAAE7L,IAAI,EAAE,EAAE,GAAGA,EAAE,EAAE,GAAG,gBAAgBqC,EAAE,CAAC,GAAG,IAAIoC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,SAASoH,EAAE,QAAQ,EAAE,CAAC,WAAW,KAAK,CAAC,EAAG,KAAIpH,EAAE,IAAI,CAACkF,EAAE,IAAI,CAAC,EAAE3E,EAAE,KAAK,IAAI2E,EAAE,IAAI,CAAC,EAAE3E,EAAE,MAAM,CAAC,EAAEP,IAAI,KAAK,CAAC,GAAK,CAACzE,EAAEwC,EAAE,CAAC2G,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAGA,EAAE,IAAI,IAAIlJ,EAAE,EAAEA,EAAEsJ,EAAE,EAAEtJ,EAAE0J,EAAE,IAAI,CAAC,EAAEnH,GAAG,KAAK,IAAIA,CAAC,CAACvC,EAAE,CAAC+E,CAAC,CAAC3C,EAAE,CAACrC,CAAC,CAACC,EAAE,CAACuC,CAAC,CAACvC,EAAE,EAAE+E,CAAC,CAAC3C,EAAE,CAACrC,CAAC,CAACC,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,IAAI,IAAIuC,EAAE,EAAEA,EAAE+G,EAAE,EAAE/G,EAAEmH,EAAE,IAAI,CAAC,EAAE3E,CAAC,CAAC3C,EAAE,CAACrC,CAAC,CAACwC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,IAAM,EAAExC,IAAI,IAAMwC,EAAExC,EAAE,MAAM,CAAC,MAAM,AAAC2J,CAAAA,EAAE,OAAO,CAAE,CAAC3J,EAAEwC,IAAI,MAAMxC,EAAE,KAAK,EAAG6L,CAAAA,CAAC,CAACrJ,EAAE,CAACxC,EAAE,KAAK,AAAD,GAAK,EAAE,CAAC,YAAY,EAAE,SAAS6L,EAAE,QAAQ,WAAWxJ,EAAE,EAAEsH,EAAE,GAAG,CAAE3J,GAAGA,EAAE,MAAM,EAAG,WAAWwC,CAAC,EAAE,CAAE,GAAE,OAAO,CAACxC,IAAI,EAAEA,GAAG,EAAEA,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,EAAG,EAAE,QAAQ,CAAC,CAAC,MAAMA,CAAC,CAAC,KAAKqC,CAAC,CAAC,GAAG,IAAI6V,QAAS,CAACjY,EAAE,KAAKA,EAAE,GAAGA,GAAG,IAAM,EAAED,EAAE,WAAW,CAACwC,GAAGiC,EAAEpC,EAAE,MAAM,CAAC,EAAE,AAAIC,MAAMmC,GAAO,EAAE,EAAE,EAAE,EAAE,EAAQ,EAAEzE,IAAI,IAAMwC,EAAExC,EAAE,MAAM,AAAC,EAAC,CAACwC,EAAE,IAAI,CAAC,CAACA,EAAE,MAAM,CAAC,EAAE,IAAI,GAAGvC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,IAAID,EAAE,EAAEA,EAAEyE,EAAE,EAAEzE,EAAE,MAAMqC,CAAC,CAACrC,EAAE,EAAG,CAAc,CAAd,EAAE,EAAE,GAAG,CAACqC,CAAC,CAACrC,EAAE,GAAI,IAAI,CAACA,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAG,KAAI,GAAGC,EAAE,EAAE,GAAI,IAAI,CAAC,CAAC,MAAMD,CAAC,CAAC,IAAIqC,CAAC,CAAC,GAAG,IAAI6V,QAAS,CAACjY,EAAE,KAAKA,EAAE,GAAGA,GAAG,IAAM,EAAED,EAAE,WAAW,CAACwC,GAAG,GAAG,CAACH,EAAG,GAAE,SAAS,CAACrC,GAAGC,EAAED,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,GAAI,MAAyB,GAAG,IAAIkY,QAAS,CAAC,EAAEjT,KAAK,EAAE,GAAG,GAAG,GAAK,CAAC,MAAMR,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAEA,EAAE,WAAW,CAACjC,GAAGmH,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,EAAEkC,EAAE,EAAE,GAAG,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,GAAyV,EAApV,CAAC,IAAM7L,EAAE,EAAE2J,EAAE,MAAM,CAACkC,EAAE,GAAGlC,EAAE,UAAU,CAACkC,EAAE,EAAG7L,CAAAA,EAAE,SAAS,CAACA,GAAG,EAAE,CAAC,OAAOA,EAAE,MAAM,CAAC,MAAM,GAAGA,EAAE,OAAO,CAAC,GAAGiF,EAAE,KAAK,CAAC,IAAIjF,EAAE,EAAQwC,EAAE,IAAK,kBAAkBmH,EAAmBA,EAAE,aAAa,CAACkC,GAAhClC,EAAE,UAAU,CAACkC,GAAsB,EAAE,EAAE,AAACrJ,CAAAA,EAAE,SAAS,CAAC,IAAI,IAAM,EAAEA,EAAE,MAAM,CAAC,OAAO,EAAG,GAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,EAAExC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,QAAQ,EAAC,EAAG,EAAE,CAAC,OAAO,CAAC,EAAE,EAAEwC,EAAE,OAAO,CAAC,GAAGyC,EAAE,CAAC,GAAQ,WAAW,SAAS,CAAC,MAAMjF,CAAC,CAAC,OAAOqC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAOoC,CAAC,CAAC,EAAE,OAAO,IAAIyT,QAAS,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,GAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAElY,EAAE,WAAW,CAACwC,GAAG,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAEiC,EAAE,aAAa,OAAOA,EAAE,aAAa,OAAOkF,EAAEtH,CAAAA,GAAK,kBAAkB,EAAwB,EAAE,aAAa,CAAC,EAAE,GAAG,GAA1C,EAAE,UAAU,CAAC,EAAE,GAAG,EAA2BsH,CAAAA,EAAE,OAAO,CAAC,GAAG,GAAGA,EAAE,SAAS,CAAC,GAAInH,IAAI,IAAMH,EAAEsH,EAAE,MAAM,CAAC,GAAG,CAACtH,EAAE,OAAO,KAAK,EAAE,KAAMA,CAAAA,EAAE,KAAK,CAAC,EAAE,GAAGA,EAAE,IAAI,CAAC,CAAC,EAAE,IAAMpC,EAAEoC,EAAE,QAAQ,CAAC,IAAI,CAACA,GAAO,EAAEA,EAAE,kBAAkB,AAAC,IAAI,GAAE,EAAE,IAAI,CAACA,EAAC,EAAG,IAAM,EAAEA,EAAE,OAAO,CAAC,IAAI,CAACA,GAAGoC,EAAE,KAAK,MAAM,AAAIf,MAAM,qBAAqB,CAAErB,CAAAA,EAAE,KAAK,CAACrC,EAAEqC,EAAE,IAAI,CAACA,EAAE,QAAQ,CAACA,EAAE,kBAAkB,CAACA,EAAE,OAAO,CAAC,KAAK,MAAM,AAAIqB,MAAM,qBAAqB,EAAErB,EAAE,IAAI,CAAC,GAAG,GAAGA,EAAE,IAAI,CAAC,WAAW,IAAIrC,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,CAAE,IAAIA,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAK,IAAI,CAAE,IAAI,IAAI,CAAE,EAAEqC,EAAE,KAAK,CAACrC,IAAI,IAAMwC,EAAE,IAAI0V,QAAS,CAAClY,EAAEwC,KAAKxC,EAAE,GAAGA,GAAG2J,EAAE,OAAO,CAAC,GAAGnH,GAAGH,EAAE,IAAI,CAACG,EAAEH,EAAE,IAAI,CAACG,IAAIH,EAAE,IAAI,CAACA,EAAE,QAAQ,CAACA,EAAE,kBAAkB,CAACA,EAAE,OAAO,CAACoC,EAAEzE,EAAEwC,EAAE,CAAC,GAAI,EAAE,KAAK,GAAGmH,EAAE,MAAM,CAAC,GAAG,CAAC3J,GAAG,CAAC,MAAMA,EAAE,CAACqC,EAAE,IAAI,CAACrC,EAAE,MAAMqC,EAAE,IAAI,CAAC,CAAC,EAAEA,EAAE,KAAK,CAAC,KAAK,MAAM,AAAIqB,MAAM,2BAA2B,EAAErB,EAAE,IAAI,EAAE,EAAE,OAAOsH,EAAE,SAAS,CAAC,GAAI3J,IAAI2J,EAAE,SAAS,CAAC,EAAE,GAAG,GAAItH,EAAE,QAAQ,CAACpC,EAAEoC,EAAE,kBAAkB,CAAC,EAAEA,EAAE,OAAO,CAAC,EAAE,IAAIG,CAAC,EAAE,EAAEH,EAAE,EAAG,EAAE,EAAG,EAAE,MAAM,CAAC,MAAMrC,CAAC,CAAC,MAAMqC,CAAC,CAAC,EAAE,GAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAACrC,EAAE,OAAO,IAAIkY,QAAS,CAAClY,EAAEyE,KAAK,IAAM,EAAEpC,EAAE,WAAW,CAACG,GAAG,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAG,GAAE,SAAS,CAAC,GAAIA,GAAGxC,EAAEwC,EAAE,MAAM,CAAC,MAAM,GAAI,EAAE,OAAO,CAAC,GAAGiC,EAAE,EAAG,CAAC,CAAC,GAAEzE,IAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAEA,GAAG,CAAC,CAACA,EAAE,IAAI,CAAC,CAACA,GAAI,CAAC,MAAM,SAAS,YAAYA,EAAE,WAAW,CAAC,IAAI,CAACA,GAAG,MAAMA,CAAC,EAAE,GAAG,CAAC,CAAC,CAACA,EAAE,CAAC,MAAM,AAAI0D,MAAM,CAAC,OAAO,EAAE1D,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAACA,EAAE,EAAE,QAAQ,KAAK,QAAQ,GAAGwC,GAAG,OAAOyC,CAAC,CAAC,EAAsKzC,EAAEH,EAAE,GAAvD,AAA0DrC,EAAE,MAAM,CAAhE,MAAM,CAAE,CAACA,EAAE,CAAC,OAAOwC,CAAC,CAAC,GAAI,EAAC,GAAGxC,CAAC,CAAC,GAAGwC,EAAExC,EAAE,GAAI,GAAuC,CAAC,EAAEA,EAAE,YAAY,CAACqC,EAAErC,EAAE,KAAK,CAACwC,EAAGxC,CAAAA,EAAE,IAAI,CAACC,EAAE,MAAM,CAACD,EAAE,MAAM,CAAC,OAAO,CAAEwC,IAAI,IAAMH,EAAEG,EAAE,IAAI,AAACxC,CAAAA,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAEA,GAAGA,EAAE,IAAI,GAAGqC,IAAMG,CAAAA,EAAE,IAAI,CAACxC,EAAE,IAAI,CAAC,KAAK,CAACqC,GAAGrC,CAAC,CAACqC,EAAE,WAAWrC,EAAE,KAAK,EAAGA,CAAAA,CAAC,CAACqC,EAAE,CAAC,IAAI,CAACG,EAAE,IAAI,AAAD,CAAC,CAAE,EAAG,CAAC,SAAS,GAAG,CAAC,OAAOxC,CAAC,CAAC,CAACwC,CAAC,CAACH,CAAC,CAACpC,CAAC,EAAEoC,EAAE,OAAO,CAAEA,IAAI,IAAM,EAAEpC,CAAC,CAACoC,EAAE,CAACG,EAAE,OAAO,CAAEA,IAAI,IAAMvC,EAAE,EAAEuC,EAAEH,EAAG,CAAC,EAACpC,GAAG,UAAUA,GAAG,KAAK,IAAIA,EAAE,KAAK,AAAD,GAAKuC,CAAAA,IAAIxC,EAAE,WAAW,CAAC,SAAS,EAAEwC,aAAaxC,EAAE,WAAW,CAAC,EAAEwC,EAAEH,EAAE,CAAC,MAAM,OAAO,IAAI,CAAC,KAAK,CAACA,EAAE,EAAE,IAAIrC,CAAC,EAAE,EAAE,IAAI,CAACqC,EAAE,CAAC,MAAMrC,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,GAAGwC,CAAC,CAACH,EAAE,CAAC,IAAIrC,EAAE,KAAK,CAACqC,EAAE,EAAC,CAAE,EAAG,EAAG,CAAC,SAAS,GAAG,CAAC,OAAOrC,CAAC,CAAC,CAACwC,CAAC,EAAEA,EAAE,OAAO,CAAEA,IAAI,IAAI,IAAIH,KAAKG,EAAEA,CAAC,CAACH,EAAE,WAAWrC,EAAE,KAAK,EAAE,OAAOwC,CAAC,CAACH,EAAE,EAAG,CAAC,SAAS,GAAGrC,CAAC,CAACwC,CAAC,EAAE,OAAOxC,EAAE,IAAI,CAAC,OAAO,CAACwC,EAAE,IAAI,CAAC,OAAO,CAAmuD,SAAS,GAAGxC,CAAC,CAACwC,CAAC,EAAE,IAAsC,EAAhC,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAQ,IAAI,KAAKxC,EAAEwC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,KAAKA,EAAE,CAAC,IAAM,EAAExC,CAAC,CAAC,EAAE,CAAC,EAAEwC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAMxC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,GAAI,GAAE,OAAO,CAAC,OAAO,EAAE,EAAC,GAAI,GAAI,GAAE,OAAO,CAAC,OAAO,EAAE,EAAC,GAAI,GAAE,OAAO,CAAC,IAAI,GAAG,EAAE,OAAO,CAAC,IAAI,EAAG,EAAC,EAAqC,CAAC,IAAsC,EAAhC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,CAAO,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,EAAEA,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,IAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,AAAC,GAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAEA,EAAE,MAAM,CAAC,IAAI,CAAC,GAAGA,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,AAACA,CAAAA,EAAE,GAAG,CAAC,MAAM,CAAC,GAAGA,EAAE,GAAG,CAAC,MAAM,CAAC,GAAGA,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAACA,EAAE,MAAhQA,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAACA,EAAqO,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,GAAGA,CAAC,CAACwC,CAAC,CAACH,CAAC,CAACpC,CAAC,EAAE,IAAM,EAAED,EAAE,EAAE,CAAC,iBAAiB,CAACwC,EAAEH,EAAE,OAAO,CAAC,CAAC,QAAQA,EAAE,OAAO,CAAC,cAAcA,EAAE,IAAI,EAAE,CAAC,cAAcA,EAAE,IAAI,GAAG,OAAOpC,EAAE,OAAO,CAAED,GAAG,GAAG,EAAEA,IAAK,CAAC,CAAC,SAAS,GAAGA,CAAC,CAACwC,CAAC,EAAExC,EAAE,WAAW,CAACwC,EAAE,IAAI,CAACA,EAAE,OAAO,CAAC,CAAC,OAAOA,EAAE,MAAM,CAAC,WAAWA,EAAE,KAAK,EAAE,CAAC,SAAS,GAAGxC,CAAC,CAACwC,CAAC,CAACH,CAAC,EAAE,IAAMpC,EAAE,CAAC,EAAE,OAAO,EAAEuC,EAAE,gBAAgB,CAAC,GAAG,OAAO,CAAExC,IAAI,IAAMwC,EAAEH,EAAE,WAAW,CAACrC,GAAO,EAAEwC,EAAE,OAAO,CAAO,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAACA,EAAE,aAAa,CAAC,GAAG,UAAU,OAAO,EAAE,CAAC,GAAGiC,EAAE,EAAE,CAAC,IAAI,IAAIzE,EAAE,EAAEA,EAAEwC,EAAE,UAAU,CAAC,MAAM,CAAC,EAAExC,EAAE,CAAC,IAAMqC,EAAEG,EAAE,KAAK,CAACA,EAAE,UAAU,CAACxC,EAAE,EAAE,EAAEqC,EAAE,OAAO,CAAC,IAAI,EAAE,GAAGA,EAAE,IAAI,CAAC,EAAE,CAAC,CAACA,EAAE,MAAM,CAAC,CAAC,CAACA,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,UAAU,OAAO,EAAE,CAAC,GAAGoC,EAAE,IAAI,CAAC,EAAE,CAACxE,CAAC,CAACD,EAAE,CAAC,GAAGA,EAAE,EAAEyE,EAAE,GAAIxE,CAAC,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAM,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,IAAM,EAAE,CAAC,CAAC,EAAE,CAACwE,EAAE,EAAE,WAAW,CAAC,EAAG,GAAE,UAAU,CAAC,WAAWA,EAAE,IAAI,IAAIzE,EAAE,EAAEA,EAAEyE,EAAE,UAAU,CAAC,MAAM,CAAC,EAAEzE,EAAE,CAAC,IAAM,EAAEyE,EAAE,UAAU,CAACzE,EAAE,CAACC,EAAEwE,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAOxE,EAAEA,EAAE,IAAI,EAAEA,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAMD,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,AAACA,CAAAA,GAAIA,CAAAA,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAACA,CAAAA,CAAE,CAAC,CAAC,CAAC,aAAa,OAAOoZ,WAAW,SAAS,IAAI,CAACA,UAAU,SAAS,GAAG,CAAC,oBAAoB,IAAI,CAACA,UAAU,SAAS,GAAG,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,CAAC,MAAM,CAACA,UAAU,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAM,GAAE,UAAU,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,iBAAiBpZ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,GAAG,OAAO,CAAE,IAAI,GAAG,OAAOA,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAEA,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAE,CAACA,EAAEwC,KAAK,IAAM,EAAE,AAACxC,CAAAA,EAAEA,EAAE,IAAI,EAAC,EAAG,OAAO,CAAC,eAAe,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,GAAG,KAAK,KAAK,IAAI,CAACA,GAAG,KAAK,IAAI,CAACA,GAAG,OAAO,IAAI,CAACA,GAAG,EAAE,GAAG,IAAIwC,EAAE,GAAIyC,EAAE,EAAE,KAAK,GAAG,GAAGA,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,MAAM,CAAC,qCAAsC,GAAE,OAAO,CAAEjF,IAAI,GAAGA,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,MAAM,CAAC,wDAAwD,GAAG,CAACA,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,CAAC,uDAAuD,GAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAEiF,EAAE,EAAE,CAAC,EAAG,CAAC,OAAOjF,CAAC,CAAC,CAAC,IAAM,EAAE,IAAI,CAAC,EAAE,AAAC,KAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAACA,GAAGA,EAAE,IAAM,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAEA,IAAI,EAAE,EAAEA,EAAE,IAAI,CAAC,YAAY,EAAE,EAAEA,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAEA,EAAE,gBAAgB,CAAC,EAAE,EAAE,GAAI,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQA,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAGA,GAAG,IAAI,CAAC,CAAC,SAAS,GAAGA,CAAC,CAACwC,CAAC,EAAE,IAAIH,EAAErC,EAAE,UAAU,CAAC,OAAOqC,GAAIA,AAAyE,CAAzEA,EAAErC,EAAE,UAAU,CAAC,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,UAAUA,EAAE,YAAYwC,CAAC,EAAC,EAAI,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,QAAQ,MAAM,GAAIH,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,GAAGrC,CAAC,EAAE,OAAOA,GAAG,YAAY,OAAOA,EAAE,SAAS,CAAC,SAAS,GAAGA,CAAC,EAAE,OAAO,GAAI,WAAW,OAAO,GAAG,UAAU,CAAC,CAAC,EAAEA,GAAG,EAAG,CAAkqF,SAAS,GAAGA,CAAC,EAAE,IAAIwC,EAAEA,GAAGxC,EAAE,IAAI,CAACwC,GAAG,EAAEyC,EAAEzC,GAAG,EAAEyC,EAAGzC,GAAGxC,EAAE,KAAK,CAACwC,IAAK,SAASyC,EAAEjF,CAAC,EAAE,OAAOwC,IAAI,IAAIyC,EAAEjF,EAAEwC,GAAG,EAAEyC,EAAE,KAAK,CAAC,OAAOA,EAAE,IAAI,CAAC,EAAE,GAAG,YAAY,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,GAAGiT,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,OAAOjT,EAAEzC,IAAI,CAAC,SAAS,GAAGxC,CAAC,CAACwC,CAAC,CAACH,CAAC,EAAE,IAAIpC,EAAEqG,UAAU,MAAM,CAAC,GAAGrG,EAAE,EAAE,MAAM,IAAI,EAAE,eAAe,CAAC,qBAAqB,IAAI,IAAI,EAAE,AAAIqC,MAAMrC,EAAE,GAAG,EAAEA,GAAG,CAAC,CAACA,EAAE,EAAE,CAACqG,SAAS,CAACrG,EAAE,CAAsB,OAArBoC,EAAE,EAAE,GAAG,GAAoB,CAACrC,EAAZ,EAAE,GAAcqC,EAAE,CAAu1B,SAAS,GAAGrC,CAAC,CAACwC,CAAC,CAAC,CAAC,EAAE,IAAM,EAAE,EAAExC,GAAGA,EAAE,KAAK,GAAG,CAACA,EAAE,CAAC,IAAI,IAAIA,EAAE,EAAEA,EAAE,EAAE,EAAEA,EAAE,EAAE,IAAI,CAACwC,GAAG,OAAO,CAAC,CAAC,IAAM,GAAG,CAAC,MAAM,SAAS,KAAK,yBAAyB,MAAM,EAAE,OAAO,SAASxC,CAAC,EAAE,MAAM,CAAC,GAAGA,CAAC,CAAC,MAAMwC,CAAC,EAAE,IAAMH,EAAErC,EAAE,KAAK,CAACwC,GAAG,CAAC,OAAOvC,CAAC,CAAC,CAACoC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAASoC,EAAEzE,CAAC,CAACwC,CAAC,CAACH,CAAC,EAAE,IAAMpC,EAAE,GAAGD,GAAG,EAAE,CAAC,CAACC,EAAE,CAAC,CAAC,CAACA,EAAE,EAAE,EAAE,CAAC,EAAE,MAAMD,EAAE,EAAE,UAAU,OAAOA,EAAE,EAAEA,EAAE,MAAM,CAAC,EAAEwC,EAAE,EAAE,EAAE,CAAC,GAAGH,CAAC,CAAC,UAAU,EAAE,QAAQG,EAAE,UAAU,EAAE,WAAW,GAAGxC,GAAG,OAAO,CAAC,GAAGqC,EAAE,MAAM,EAAiF,OAAO,AAAnF,EAAE,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,GAAjC,AAAoC,EAAE,GAAGoC,EAAE,IAAI,EAAEzE,CAAC,CAAC,EAAE,CAACA,EAAE,KAAK,CAAC,EAAE,EAAE,GAAGwC,EAAE,EAAEH,GAAU,EAAE,IAAI,CAAE,CAACrC,EAAEwC,IAAIxC,EAAE,OAAO,CAACwC,EAAE,OAAO,EAAG,CAAC,CAAC,IAAM,EAAEiC,EAAExE,EAAE,UAAU,CAAC,OAAO,CAAC,EAAEA,EAAE,UAAU,EAAe,IAAI,IAAMD,KAAvB,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAgBC,EAAE,OAAO,EAACwE,EAAEzE,EAAE,OAAO,CAAC,EAAEA,GAAG,SAAS,EAAEwC,CAAC,MAAyQ,EAAE,EAAzQ,IAAM,EAAEA,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,GAAGA,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAO,GAAEA,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,SAAS,CAACxC,EAAE,OAAO,CAACA,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,EAAE,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,SAAS,CAACA,EAAE,OAAO,CAACA,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,EAAEwC,CAAS,CAAmtB,MAA1sB,CAAC,GAAGH,CAAC,CAAC,OAAO,CAAC,GAAGpC,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,kBAAkB,SAASD,CAAC,EAAE,IAAMwC,EAAE,CAAC,CAAC,GAAGxC,GAAG,CAAC,OAAOwC,GAAGA,CAAC,CAAC,EAAE,CAAC,EAAE,MAAMxC,GAAGqC,EAAE,KAAK,CAAC,EAAErC,IAAI,MAAMA,GAAGqC,EAAE,KAAK,CAAC,EAAErC,IAAI,WAAWwC,CAAC,EAAE,GAAK,CAAC,QAAQvC,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAACuC,EAAE,KAAK,CAAC,KAAK,QAAC,AAAI,EAAgCH,EAAE,UAAU,CAAC,EAAEG,IAAI,IAAI,CAAEH,GAAGA,GAAuBc,OAAO,MAAM,CAAkYd,EAA/X,CAAC,SAAS,CAAC,MAAM,SAAS,CAAC,EAAE,MAAM,EAAE,AAA0VA,EAAxV,QAAQ,CAAC,GAAG,EAAEG,EAAE,OAAO,CAACxC,EAAE,OAAO,CAACA,EAAE,OAAO,CAACC,IAAIuC,EAAE,MAAM,CAAC,AAA+RH,EAA7R,QAAQ,CAAC,AAAoRA,EAAlR,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAACG,EAAE,OAAO,CAACxC,EAAE,OAAO,CAACA,EAAE,OAAO,CAACC,IAAI,AAA0NoC,EAAxN,QAAQ,EAAE,CAAC,EAAE,mBAAmB,CAAC,MAAMG,CAAC,CAAC,CAAC,EAAE,AAA4KH,EAA1K,kBAAkB,CAAC,GAAGG,EAAExC,EAAE,OAAO,CAACC,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,IAAI,IAAI,AAA4GoC,EAA1G,UAAU,EAAE,IAAI,CAAC,MAAM,IAAMrC,EAAE,AAA2EqC,EAAzE,GAAG,CAAC,OAAO,IAAI,EAAErC,CAAC,CAAC,EAAE,CAACA,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,AAAqBqC,EAAnB,KAAK,CAAC,IAA5cA,EAAE,UAAU,CAACG,EAAgd,CAAC,CAAU,CAAC,CAAC,CAAC,EAAE,SAAS,GAAGxC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,EAAEA,GAAG,OAAO,CAAE,IAAI,GAAG,EAAE,EAAE,GAAG,CAAC,IAAI,EAAEA,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,OAAO,GAAG,UAAU,OAAO,GAAG,GAAG,EAAE,CAAC,IAAMA,EAAE,EAAE,EAAGA,CAAAA,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAWA,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,IAAI,GAAI,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,AAAD,CAAE,MAAM,IAAI,GAAI,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,AAAD,CAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAI,EAAE,GAAG,OAAO,CAAE,IAAI,EAAEA,EAAE,IAAK,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,AAAD,CAAE,GAAI,CAAC,CAAC,IAAM,GAAG,CAAC,MAAM,SAAS,KAAK,kBAAkB,MAAM,EAAE,OAAOA,GAAI,EAAC,GAAGA,CAAC,CAAC,MAAMwC,CAAC,EAAE,IAAMH,EAAErC,EAAE,KAAK,CAACwC,GAAG,CAAC,WAAWvC,CAAC,CAAC,CAACoC,EAAE,MAAM,CAAg9D,MAA78D,CAAC,GAAGA,CAAC,CAAC,OAAOrC,CAAC,EAAE,IAAM,EAAE,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAACwC,GAAG,IAAI,CAAC,OAAOxC,EAAE,IAAI,EAAE,IAAI,MAAM,GAAG,EAAE,IAAI,GAAG,GAAG,MAAM,OAAO,EAAE,QAAQ,CAAC,YAAa,IAAI,EAAEA,GAAI,CAAC,EAAG,KAAI,MAAM,GAAG,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG,MAAM,OAAO,EAAE,QAAQ,CAAC,YAAa,IAAI,EAAEA,GAAI,CAAC,EAAG,KAAI,SAAS,GAAG,EAAE,IAAI,GAAG,GAAG,MAAM,OAAO,EAAE,QAAQ,CAAC,YAAa,IAAI,EAAEA,GAAI,CAAC,EAAG,KAAI,cAAc,GAAG,EAAE,IAAI,GAAG,GAAG,MAAM,OAAO,EAAE,QAAQ,CAAC,YAAa,IAAuB,AAAuuC,UAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAOqC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAMpC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI,CAAE,CAAC,CAAC,OAAOoC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,SAAS,KAAKA,EAAE,MAAM,CAAC,GAAG,IAAI,CAAEpC,GAAGA,EAAE,WAAW,CAAC,EAAEiY,QAAQ,MAAM,CAACjY,EAAE,QAAQ,CAAC,EAAE,EAAEoC,EAAE,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,WAAW,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAMA,CAAC,CAACA,EAAE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAM,GAAnhD,AAAsBrC,EAApB,KAAK,CAAC,AAAcA,EAAZ,KAAK,CAAC,KAAU,CAAC,EAAE,CAAC,OAAOqC,EAAE,MAAM,CAACrC,GAAG,SAAS,EAAEA,CAAC,MAAwCwC,EAAiQ,EAAvS,IAAM,EAAE,GAAG,KAAK,CAAC,EAAExC,EAAE,IAAI,EAAsB,YAAW,CAApBwC,EAAwExC,GAAlD,IAAI,CAACwC,EAAE,IAAI,CAACA,EAAE,IAAI,EAAEA,EAAE,MAAM,CAAC,GAAG,CAAC,AAAevC,EAAb,UAAU,GAAQ,GAAG,CAAC,EAAE,MAAM,AAAIyD,MAAM,gBAAgB,MAAM,WAAW,AAAC1D,CAAAA,EAAE,QAAQA,EAAE,IAAI,EAAE,QAAQA,EAAE,IAAI,CAAC,CAAC,GAAGA,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAGA,CAAC,GAAG,IAAI,EAAGA,CAAAA,EAAE,MAAM,CAAC,IAAIA,EAAE,MAAM,CAAC,AAAD,EAAGA,EAAE,IAAI,EAAGA,CAAAA,EAAE,IAAI,CAAC,IAAIA,EAAE,IAAI,CAAC,AAAD,EAAG,AAAsB,SAAQ,CAAnB,EAAqGA,GAAhF,IAAI,CAACkY,QAAQ,OAAO,CAAC,EAAE,EAAE,AAAqD7V,EAAnD,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,KAAgC,EAAzB,MAAM,WAAW,EAAC,EAAU,IAAI,CAAE,IAAI,IAAM,EAAE,EAAE,GAAG,CAAE,CAACA,EAAE,KAAK,IAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,UAAU,IAAI,EAAE,GAAG,WAAWrC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAEqC,EAAE,EAAE,QAAQ,GAAG,QAAQrC,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAM,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAEqC,EAAErC,EAAE,MAAM,CAAC,EAAE,CAAC,EAAG,OAAMqC,GAAG,MAAM,GAAIA,CAAAA,EAAE,EAAErC,EAAE,IAAI,CAAC,EAAE,CAACqC,EAAEpC,EAAE,QAAQ,EAAE,EAAED,EAAE,MAAM,CAAC,EAAE,CAACC,EAAE,OAAO,CAACoC,EAAC,CAAE,KAAK,CAAC,IAAM,EAAE,GAAG,EAAErC,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAEqC,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,IAAMG,EAAExC,EAAE,MAAM,CAAC,EAAE,CAACmD,OAAO,IAAI,CAAC,GAAG,OAAO,CAAEnD,IAAI,EAAEwC,EAAExC,GAAGwC,CAAC,CAACxC,EAAE,CAAC,CAAC,CAACA,EAAE,CAAC,EAAEwC,EAAExC,EAAE,CAAC,CAACA,EAAE,CAAC,EAAG,CAAC,CAAC,OAAO,CAAC,GAAI,OAAOqC,EAAE,MAAM,CAACrC,GAAG,IAAI,CAAE,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,IAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,AAAC,OAAM,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,CAAC,QAAQA,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAACA,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,GAAI,KAAK,CAAEA,GAAI,GAAE,OAAO,CAAEwC,GAAGA,EAAE,OAAO,EAAEA,EAAE,OAAO,CAACxC,IAAKkY,QAAQ,MAAM,CAAClY,EAAC,EAAI,EAAG,CAAgT,CAAC,CAAU,CAAC,EAAE,EAAE,SAAS,GAAGA,CAAC,CAACwC,CAAC,CAACH,CAAC,EAAE,GAAG,CAAC,GAAG,CAACG,GAAiBA,EAAE,IAAI,CAAC,MAAM,CAACxC,EAAE,MAAM,CAArC,OAAO,KAA2C,IAAMC,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAEuC,EAAE,IAAI,CAAC,MAAM,EAAE,EAAExC,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,GAAGwC,EAAE,IAAI,CAAC,EAAE,CAACxC,CAAC,CAAC,EAAE,GAAIC,CAAAA,EAAE,IAAI,CAACoC,EAAE,EAAEG,EAAE,MAAM,CAAC,EAAE,EAAEA,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,OAAOvC,EAAE,MAAM,GAAGD,EAAE,MAAM,CAACC,EAAE,IAAI,CAAC,MAAMD,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,IAAM,GAAG,CAAC,MAAM,SAAS,MAAM,GAAG,OAAOA,GAAI,EAAC,MAAMwC,IAAI,IAAMH,EAAErC,EAAE,KAAK,CAACwC,GAAG,MAAM,CAAC,GAAGH,CAAC,CAAC,QAAQrC,IAAI,GAAG,CAACA,EAAE,KAAK,CAAC,OAAOqC,EAAE,OAAO,CAACrC,GAAG,IAAMwC,EAAE,GAAGxC,EAAE,IAAI,CAACA,EAAE,KAAK,CAAC,MAAM,CAAC,UAAUA,EAAE,KAAK,EAAE,OAAOwC,EAAE,GAAG,OAAO,CAACA,GAAGH,EAAE,OAAO,CAACrC,GAAG,IAAI,CAAEwC,GAAIxC,CAAAA,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,KAAKA,EAAE,IAAI,CAAC,OAAO,UAAUA,EAAE,KAAK,CAAC,EAAEwC,GAAGA,CAAC,EAAEA,CAAAA,EAAI,EAAE,OAAOxC,GAAI,SAAQA,EAAE,IAAI,EAAGA,CAAAA,EAAE,KAAK,CAAC,MAAM,CAAC,IAAG,EAAGqC,EAAE,MAAM,CAACrC,EAAC,CAAE,CAAC,CAAC,EAAE,EAAE,SAAS,GAAGA,CAAC,EAAE,MAAM,CAAE,UAASA,CAAAA,CAAE,CAAC,IAAM,GAAG,SAASA,CAAC,CAACwC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,IAAMA,EAAE,IAAI,GAAG,OAAOxC,GAAG,MAAMA,GAAG,EAAEwC,EAAExC,GAAGwC,CAAC,CAAC,EAAE,IAAI,CAAC8D,UAAU,MAAM,CAAC,CAAC,EAAE,EAAE,KAAKtG,EAAE,GAAGsG,UAAU,MAAM,CAAC,EAAE9D,EAAExC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,GAAGA,CAAC,CAACwC,CAAC,CAACH,CAAC,EAAE,IAAM,EAAE,GAAGG,EAAEH,GAAG,GAAGiW,MAAM,GAAG,OAAO,GAAG,EAAE,EAAE,MAAMK,aAAa,GAAG,GAAG3Y,GAAG,OAAO,EAAEA,EAAE,CAAC,KAAKwC,EAAE,GAAGH,EAAE,EAAE,CAAC,GAAG,IAAM4C,EAAEjF,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,GAAG,AAAa,EAAb,GAAGqC,EAAErC,EAAE,IAAI,EAAI,OAAOiF,EAAE,GAAGA,EAAEzC,EAAEH,GAAGrC,EAAE,CAAC,CAAC,CAAC,KAAKwC,EAAE,GAAGH,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAGrC,GAAG,GAAG,GAAGwC,EAAExC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAEwC,EAAEH,GAAGrC,EAAE,CAAC,CAAC,CAAC,KAAKwC,EAAE,GAAGH,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAGrC,EAAG,AAAa,GAAb,GAAGwC,EAAExC,EAAE,IAAI,GAAMA,CAAAA,EAAE,IAAI,CAACwC,EAAExC,EAAE,CAAC,CAAC,KAAKA,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAGqC,EAAErC,EAAE,EAAE,EAAE,GAAIA,CAAAA,EAAE,EAAE,CAACqC,EAAErC,EAAE,CAAC,CAAC,KAAKA,EAAE,CAAC,CAACA,EAAE,CAAC,CAACA,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAM,EAAE,CAACA,EAAE,CAAC,AAACiF,CAAAA,GAAG,CAACjF,EAAE,CAAC,EAAE,GAAGA,EAAEiF,GAAG,GAAG,GAAG,GAAGjF,EAAE,EAAE,CAAC,SAAS,GAAGA,CAAC,CAACwC,CAAC,EAAE,GAAGA,IAAI,SAASxC,EAAEwC,CAAC,CAAC,CAAC,KAAKH,CAAC,CAAC,GAAGpC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAGuC,EAAEH,EAAEpC,GAAG,GAAGD,EAAEwC,EAAE,GAAG,GAAGxC,EAAEwC,EAAE,EAAE,EAAExC,EAAEwC,EAAE,CAA2R,SAAS,GAAGxC,CAAC,EAAE,IAAIwC,EAAE,GAAGxC,GAAG,KAAK,CAAC,EAAE,EAAE,EAAEA,CAAC,EAAE,MAAM,CAAC,KAAKA,CAAC,EAAE,IAAMqC,EAAEiE,UAAU,MAAM,CAAC,EAAE,KAAK9D,GAAG,OAAOA,EAAE,CAAC,EAAE,KAAK,EAAE,GAAGA,EAAE,CAAC,CAAC,EAAEH,EAAE,KAAKG,EAAE,CAAC,CAAC,CAAC,EAAE,AAAe,EAAf,GAAGxC,EAAEwC,EAAE,CAAC,CAAC,IAAI,GAAKA,EAAE,CAAC,GAAGA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,KAAKA,EAAE,CAAC,CAAC,CAAC,EAAEA,EAAE,CAAC,GAAGA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,MAAK,EAAE,GAAGA,EAAE,CAAC,CAAC,EAAE,CAACH,GAAG,AAAc,GAAd,GAAGrC,EAAEwC,EAAE,CAAC,CAAC,EAAE,EAAK,MAAM,CAAC,MAAMA,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,MAAK,EAAE,GAAGA,EAAE,CAAC,CAAC,CAAC,CAAC,CAACA,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,GAAGA,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAEA,EAAEA,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAGxC,CAAC,EAAE,IAAIwC,EAAEH,EAAE,IAAMpC,EAAE,AAAC,CAAC,OAAQuC,CAAAA,EAAExC,EAAE,CAAC,AAAD,EAAe,KAAK,EAAEwC,EAAE,CAAC,AAAD,GAAI,GAAI,CAAC,OAAQH,CAAAA,EAAErC,EAAE,CAAC,AAAD,EAAe,KAAK,EAAEqC,EAAE,CAAC,AAAD,GAAI,GAAG,EAAEpC,EAAE,EAAE,IAAIA,EAAE,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC,IAAMuC,EAAE,MAAM,EAAE,IAAI,IAAIH,EAAE,CAAC,GAAGrC,CAAC,EAAEC,EAAED,CAAC,CAAC,EAAE,AAACA,CAAAA,EAAE,IAAI,CAACC,EAAE,IAAI,CAACD,EAAE,EAAE,CAACC,EAAE,EAAE,CAACD,CAAC,CAAC,EAAE,CAACC,CAAC,CAAC,EAAE,CAACoC,CAAC,CAAC,EAAE,CAACpC,CAAC,CAACuC,EAAE,CAACxC,CAAC,CAACwC,EAAE,CAACH,EAAEA,EAAE,CAAC,CAAC,GAAGA,EAAE,CAACrC,EAAE,CAAC,CAAC,GAAGA,EAAE,CAAC,SAAS,GAAG,CAAC,EAAEA,CAAC,CAAC,EAAEwC,CAAC,CAAC,EAAE,MAAM,AAACxC,CAAAA,EAAEwC,EAAE6G,KAAK,GAAG,CAACrJ,EAAE,CAAC,CAACwC,EAAE,CAAC,EAAExC,EAAE,CAAC,CAACwC,EAAEA,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,IAAIxC,CAAC,EAAE,OAAO,GAAG,IAAI,CAACA,GAAG,IAAI,EAAE,OAAOA,CAAC,EAAE,OAAO,GAAG,IAAI,CAACA,EAAEA,GAAG,IAAI,EAAE,QAAQA,CAAC,EAAE,OAAOA,EAAE,OAAO,CAAEA,GAAG,GAAG,IAAI,CAACA,EAAEA,IAAK,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,IAAM,GAAG,CAAC,MAAM,SAAS,MAAM,EAAE,OAAOA,IAAI,IAAM,EAAEA,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,GAAGA,EAAE,OAAO,CAACA,EAAE,OAAO,EAAE,MAAM,CAAC,GAAGA,CAAC,CAAC,MAAM,IAAI,IAAM,EAAEA,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAOA,IAAI,IAAM,EAAEA,EAAE,KAAK,CAAC,EAAE,EAAE,YAAY,EAAG,GAAE,YAAY,CAAC,CAAC,GAAG,EAAEA,IAAI,IAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAG,EAAC,CAAC,EAAE,CAAC,IAAI,EAAC,CAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAACA,EAAK,CAAC,EAAE2J,EAAE,CAAC,gBAAgB3J,EAAE,IAAI,CAAC,CAACA,EAAE,KAAK,CAAC,CAAC,WAAWA,EAAE,IAAI,CAAC,CAACA,EAAE,IAAI,CAAC,CAACA,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAACA,EAAE,MAAM,CAAC,CAAC,EAAE,CAAO6L,EAAE7L,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAACA,GAAG,IAAI,CAAEA,IAAI,GAAG,EAAE,GAAG,CAAC,WAAW,GAAI,GAAEA,EAAE,OAAO,AAAD,EAAG,EAAE,OAAO,CAAC,GAAG,IAAMwC,EAAE,GAAG,EAAEqJ,EAAGrJ,CAAAA,GAAG,QAAQ,GAAG,EAAE,OAAO,CAAC,GAAG,AAACA,CAAAA,GAAGmH,CAAAA,GAAwR,AAAwB,EAAtB,OAAO,CAAC,OAAO,CAAnR,SAAW,CAAC,EAAE,IAAM,EAAE,AAAkQ,EAAhQ,EAAE,IAAI,EAAE,IAAI,SAAS,EAAE,CAAC,EAAE,OAAO,MAAM,EAAE,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,IAAM,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,OAAO,CAAE3J,GAAG,EAAE,MAAM,CAACA,IAAK,EAAE,MAAM,CAAC,GAAG,AAAC,CAA+HwC,GAAEmH,CAA9H,EAAG,OAAO,CAAE,CAAC3J,EAAE,KAAK,IAAM,EAAE,AAAgGwC,GAA7F,EAAE,AAA2FA,CAA1F,CAAC,EAAE,EAAE,EAAE,AAAqFmH,GAAlF,EAAE,AAAgFA,CAA/E,CAAC,EAAE,CAAE,KAAI,GAAG,EAAE,IAAK,OAAM,GAAG,EAAE,GAAG,MAAM,GAAG,EAAE,EAAC,CAAE,EAAG,EAA+B,MAAM,GAAG,EAAE,CAAC,IAAM3J,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAE,GAAE,GAAG,CAACA,GAAG,EAAE,GAAG,CAACA,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAEA,GAAG,EAAEA,EAAE,IAAI,EAAE,GAAG,CAAC,IAAK,OAAOA,CAAC,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAMwC,CAAC,CAAC,MAAMH,CAAC,CAAC,CAAC,IAAI,IAAIpC,EAAE,EAAE,MAAM,CAACuC,EAAE,IAAI,GAAG,MAAQvC,CAAAA,EAAEoC,EAAE,KAAK,AAAD,EAAepC,EAAED,EAAE,OAAO,CAAC,MAAQ,GAAEqC,EAAE,KAAK,AAAD,EAAe,EAAErC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAIA,GAAG,CAAC,EAAE,IAAI,GAAGA,EAAE,GAAG,EAAE,CAAC,QAAQA,GAAG,CAAC,EAAE,AAAC,KAAI,EAAC,EAAG,OAAO,CAACA,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAEA,IAAI,CAAC,CAACA,EAAE,CAAC,SAAS,CAAC,EAAE,GAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,IAAM,EAAEA,IAAI,IAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAG,EAAC,CAAC,EAAE,CAAC,IAAI,EAAC,CAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,EAAE2J,EAAE,CAAC,CAAC,CAAC3J,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC2J,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,UAAU3J,EAAE,CAAC,IAAM,EAAE,UAAUA,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAACA,EAAE,CAAC,KAAK,CAAC,IAAI,CAACsG,WAAW,IAAI,CAAE,IAAI,GAAG,UAAUtG,EAAE,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAE,CAAC,CAAC,OAAOA,CAAC,CAAC,GAAI,GAAE,OAAO,CAACA,GAAG,IAAK,IAAMA,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,AAAC,GAAE,MAAM,CAAC,EAAE,OAAO,CAACA,GAAG,EAAE,OAAO,CAACA,EAAE,MAAM,GAAG,eAAeA,EAAE,CAAC,IAAU,EAAE,EAAE,MAAM,CAAC,OAAO,AAApB,GAAuBmD,OAAO,MAAM,CAApC,EAAuC,CAAC,IAAI,CAAC,IAAI,IAAK,GAAE,MAAM,CAAC,AAA/D,EAAiE,UAAU,EAAE,AAA7E,EAA+E,GAAG,AAAD,CAAE,EAAE,WAAW,CAAC,MAAM,IAAM,EAAE,AAA/G,EAAiH,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,IAAK,IAAG,EAAE,MAAM,CAAC,AAA/K,EAAiL,UAAU,EAAE,AAA7L,EAA+L,KAAK,AAAD,CAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAACnD,EAAE,CAAC,KAAK,CAAC,IAAI,CAACsG,UAAU,CAAC,GAAI,CAAC,CAAC,CAAC,CAAC,CAAE,OAAM,GAAG,YAAYtG,CAAC,CAACwC,CAAC,CAAC,KAAuhB,EAAq+B,EAA2P,EAAqrB,EAAuK,CAAllF,KAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,IAAM,EAAE,GAAG,YAAY,AAAC,KAAI,CAAC,QAAQ,CAACA,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC,GAAGA,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,UAAUA,EAAE,SAAS,CAAC,YAAYA,EAAE,WAAW,EAAE,GAAK,CAAC,OAAO,CAAC,CAAC,CAACA,CAAE,KAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAM,EAAE,CAAC,YAAY,KAAK,cAAc,CAAC,EAAE,kBAAkB,KAAK,aAAa,CAAC,EAAE,eAAe,GAAG,eAAe,KAAK,WAAW,GAAG,cAAc,KAAK,WAAW,CAAC,EAAE,eAAe,CAAC,CAAQ,GAAE,cAAc,CAAC,IAAI,GAAIxC,IAAI,EAAE,cAAc,CAACA,CAAC,GAAI,EAAE,aAAa,CAAC,IAAI,GAAI,CAACA,EAAEwC,KAAK,EAAE,UAAU,CAACA,CAAC,GAAI,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAACxC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,UAAU,gBAAgB,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAEA,GAAG,CAACwC,EAAEH,KAAK,GAAG,GAAG,CAAE,KAAK,IAAMpC,EAAE,IAAI,CAAC,MAAM,CAAC,GAAGA,EAAE,YAAY,CAACA,EAAE,WAAW,EAAE,GAAG,OAAO,GAAG,IAAI,CAACuC,GAAGH,GAAGrC,EAAEwC,QAAQ,GAAGvC,EAAE,iBAAiB,CAACA,EAAE,iBAAiB,CAAC,IAAI,CAACuC,GAAGH,GAAGrC,EAAEwC,OAAO,CAACxC,EAAEwC,GAAG,IAAMvC,EAAE,IAAI,AAACoC,CAAAA,GAAGrC,EAAG,SAASA,IAAIC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAACuC,GAAGvC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAACD,EAAE,EAAG,CAAC,EAAG,GAAI,IAAI,CAAC,UAAU,CAAE,GAAE,IAAI,CAAC,GAAG,GAAG,SAAS,CAAE,SAASA,CAAC,CAACwC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,GAAGA,EAAE,GAAG,CAAC,EAAEA,GAAG,CAAC,MAAMxC,EAAE,CAAC,EAAEA,CAAC,CAAC,IAAM,EAAEA,EAAE,IAAI,CAACyE,EAAE,EAAE,KAAK,CAAC,EAAEA,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,AAAC,KAAI,CAAC,IAAI,CAAC,CAAC,MAAMA,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAEA,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,GAAGA,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,OAAO,OAAO,GAAG,UAAU,KAAK,OAAO,KAAK,aAAa,KAAK,UAAU,CAAC,EAAE,QAAQ,KAAK,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,YAAY,IAAI,GAAG,EAAE,IAAI,CAAC,EAAE,EAAG,IAAI,CAAC,KAAK,EAAU,EAA2N,IAAI,CAArN,GAAG,GAAG,SAAS,CAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,IAAW,IAAI,CAAC,WAAW,EAAU,EAAypB,IAAI,CAAnpB,GAAG,GAAG,SAAS,CAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,2BAA2B,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,QAAQ,SAAS,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,GAAI,CAACzE,EAAEwC,KAAK,IAAI,CAAC,QAAQ,CAACxC,EAAE,IAAI,CAAC,OAAO,CAACwC,CAAC,GAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAIxC,IAAI,IAAIwC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAACxC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAACA,GAAGwC,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAGxC,EAAE,EAAG,IAAW,IAAI,CAAC,OAAO,EAAU,EAAuI,IAAI,CAAjI,GAAG,GAAG,SAAS,CAAE,SAAS,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,aAAa,KAAK,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,IAAI,CAAC,IAAW,IAAI,CAAC,WAAW,EAAU,EAAqV,IAAI,CAA/U,GAAG,GAAG,SAAS,CAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,IAAM,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,EAAE,UAAU,AAAC,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAACA,EAAEwC,IAAI,EAAE,GAAG,CAACA,EAAExC,GAAG,IAAI,CAAC,IAAI,CAAC,CAACA,EAAEwC,IAAI,EAAE,GAAG,CAACxC,EAAEwC,GAAG,EAAExC,EAAEwC,EAAE,IAAI,CAAC,IAAI,CAAC,CAACxC,EAAEwC,IAAI,AAAW,EAAX,EAAE,GAAG,CAACxC,EAAEwC,GAAKxC,EAAEwC,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,WAAW,IAAW,IAAI,CAAC,EAAE,CAAC,gBAAiBxC,IAAIA,EAAE,UAAU,CAAC,EAAEmZ,QAAQ,IAAI,CAAC,CAAC,8CAA8C,EAAE,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,EAAEA,QAAQ,IAAI,CAAC,CAAC,6CAA6C,EAAE,IAAI,CAAC,IAAI,CAAC,+CAA+C,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,GAAI,IAAI,CAAC,EAAE,CAAC,UAAWnZ,IAAI,CAACA,EAAE,UAAU,EAAEA,EAAE,UAAU,CAACA,EAAE,UAAU,CAACmZ,QAAQ,IAAI,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAEA,QAAQ,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,8CAA8C,EAAEnZ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,GAAI,IAAI,CAAC,OAAO,CAAC,GAAGwC,EAAE,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAACxC,EAAEwC,EAAEH,EAAEpC,IAAI,IAAI,IAAI,CAAC,WAAW,CAACD,EAAEwC,EAAEH,EAAE,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAACpC,GAAG,IAAI,CAAC,cAAc,CAACD,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI,CAACA,GAAG,GAAG,MAAM,CAAEA,GAAGA,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAEA,IAAI,IAAI,EAAE,CAACA,EAAE,MAAM,CAAC,OAAO,EAAG,GAAG,CAAEwC,GAAGA,EAAE,EAAE,CAAC,iBAAiB,IAAI,CAACxC,GAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAACmD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAEnD,GAAGA,EAAE,IAAI,EAAG,CAAC,QAAQA,CAAC,CAAC,CAAC,GAAGsY,MAAMtY,IAAIA,EAAE,GAAG,MAAM,IAAI,EAAE,IAAI,CAAC,0CAA0C,GAAGA,EAAEqJ,KAAK,KAAK,CAAC,GAAGrJ,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE,MAAM,CAAC,2CAA4C,KAAI,CAAC,KAAK,CAACqJ,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAACrJ,GAAG,IAAMwC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAIH,EAAEG,EAAE,MAAM,CAAEA,GAAGA,EAAE,IAAI,CAAC,OAAO,GAAGxC,EAAG,CAAC,EAAE,CAAC,OAAOqC,GAAIA,CAAAA,EAAE,IAAI,IAAI,CAAC,OAAO,CAACrC,GAAGwC,EAAE,IAAI,CAACH,GAAGG,EAAE,IAAI,CAAC,IAAIH,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAEA,CAAAA,CAAE,CAAC,WAAWrC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,EAAG,KAAI,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,UAAU,EAAE,IAAI,CAAC,IAAI,AAAD,EAAGA,IAAI,IAAI,GAAI,CAACA,EAAEwC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAOA,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,KAAKA,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAACxC,EAAEwC,EAAE,GAAI,IAAI,CAACxC,EAAE,CAAC,IAAI,CAAC,MAAMA,CAAC,CAAC,OAAOwC,CAAC,CAAC,MAAMH,CAAC,CAAC,KAAKpC,CAAC,CAAC,CAAC,CAACA,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAMD,EAAE,KAAKC,CAAC,GAAG,IAAM,EAAE,IAAI,CAAC,YAAY,CAACD,EAAE,EAAG,KAAI,CAAC,YAAY,CAACA,EAAE,CAAC,EAAE,AAAD,EAAG,OAAO,EAAE,IAAI,CAAC,CAAC,MAAMA,EAAE,OAAOwC,EAAE,MAAM,MAAMH,EAAE,GAAGA,EAAE,KAAKpC,CAAC,GAAG,EAAE,IAAI,CAAE,CAACD,EAAEwC,IAAIxC,EAAE,KAAK,CAACwC,EAAE,KAAK,EAAG,IAAI,CAAC,MAAM,CAAC,MAAMxC,CAAC,CAAC,KAAKwC,CAAC,CAAC,OAAOH,CAAC,CAAC,CAAC,CAAC,OAAOrC,GAAG,IAAI,CAAC,YAAY,CAACA,EAAE,EAAG,KAAI,CAAC,YAAY,CAACA,EAAE,CAAC,IAAI,CAAC,YAAY,CAACA,EAAE,CAAC,MAAM,CAAEA,GAAGqC,EAAErC,EAAE,MAAM,GAAGqC,EAAE,CAAC,CAACG,GAAGxC,EAAE,IAAI,GAAGwC,EAAE,EAAG,IAAI,CAAC,MAAM,CAAC,OAAO,AAA1hiB,SAAYxC,CAAC,MAAtU,EAAwU,IAAMqC,EAAErC,EAAE,MAAM,CAAC,CAAC,UAAUC,CAAC,CAAC,CAACD,EAAE,KAAK,CAAC,GAAGqC,EAAE,aAAa,EAAErC,EAAE,KAAK,CAAC,OAAOqC,EAAE,cAAc,CAAC,IAAI,CAAE,IAAIA,EAAE,WAAW,CAAC,GAAGA,EAAE,WAAW,EAAErC,EAAI,IAAIqC,CAAAA,EAAE,aAAa,CAAC,YAAY,CAACuH,GAAE,EAAGvH,EAAE,aAAa,CAAC,CAAC,EAAEA,EAAE,WAAW,CAAC,KAAKA,EAAE,YAAY,CAAC,CAAC,EAAE,IAAM,EAAEA,EAAE,aAAa,CAAC,SAAS,IAAI,GAAGA,EAAE,aAAa,GAAG,EAAE,MAAM,IAAI,EAAE,cAAc,CAAC,0BAA0B,CAAC,IAAI,EAAEA,EAAE,cAAc,CAAC,EAAE,KAAKqC,EAAE,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,EAAE,AAAC,cAAa,OAAO0U,UAAU,GAAG,OAAO,GAAvvB,CAACA,UAAU,aAAa,EAAE,WAAW,IAAI,CAACA,UAAU,SAAS,GAAG,CAAC,iBAAiB,IAAI,CAACA,UAAU,SAAS,GAAGG,UAAU,SAAS,CAAC,IAAIrB,QAAS,SAAS,CAAC,EAAE,IAAI7V,EAAE,WAAW,OAAOkX,UAAU,SAAS,GAAG,OAAO,CAAC,EAAE,CAAE,GAAE3E,YAAYvS,EAAE,KAAKA,GAAG,GAAI,OAAO,CAAE,WAAW,OAAOmX,cAAc,EAAE,GAAItB,QAAQ,OAAO,EAA+c,EAAG,IAAI,CAAE,IAAI,IAAI,GAAI,CAAC,EAAE,KAAK,GAAG,IAAI,CAACjY,EAAE,MAAM,IAAI,EAAE,UAAU,CAAC,IAAM,EAAED,EAAE,IAAI,CAAC,EAAEqC,EAAE,UAAU,CAACpC,EAAE,IAAI,CAAC,GAAGA,EAAE,IAAI,CAAC,EAAEoJ,KAAK,KAAK,CAAC,GAAGrJ,EAAE,KAAK,GAAG,GAAG,CAAC,EAAE,MAAM,IAAI,EAAE,UAAU,AAAC,GAAE,OAAO,CAAC,GAAG,GAAG,EAAE,SAAS,CAAC,GAAGA,EAAE,cAAc,EAAE,EAAE,eAAe,CAAC,GAAIwC,IAAI,GAAG,EAAE,EAAE,WAAW,CAACH,EAAE,UAAU,EAAE,CAACrC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG,IAAMA,EAAEC,EAAE,cAAc,CAAC,EAAGD,CAAAA,EAAE,SAAS,CAACA,EAAE,OAAO,CAAC,GAAI,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,EAAE,EAAG,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,IAAI,EAAEwC,EAAE,UAAU,CAAC,mBAAe,EAAEA,EAAE,UAAU,AAACkC,CAAAA,EAAE,EAAE,EAAE1E,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,AAA5nM,SAAYA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAMiF,EAAEjF,EAAE,SAAS,CAACyE,EAAEzE,EAAE,kBAAkB,CAAC,YAAYA,EAAE,WAAW,CAACiF,EAAGR,CAAAA,EAAE,MAAM,CAAC,GAAGA,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,IAAM,EAAEA,EAAE,OAAO,CAAC,IAAI,CAACA,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,GAAI,KAAK,GAAG,KAAK,CAACA,EAAE,GAAG,SAAS,CAAC,EAAE,IAAI,EAAG,GAAEQ,GAAG,OAAO,CAAEjF,IAAI,GAAG,EAAEA,EAAEiF,CAAC,CAACjF,EAAE,CAAC,OAAO,CAACiF,CAAC,CAACjF,EAAE,CAAC,OAAO,CAAC,GAAI,GAAGA,EAAE,GAAG,GAAG,MAAM,CAAE,IAAIA,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAACyE,IAAK,KAAK,CAAC,EAAC,EAAG,UAAS,CAAC,OAAOzE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAMiF,EAAE,EAAE,CAACR,EAAEzE,EAAE,SAAS,CAAK,EAAEA,EAAE,SAAS,CAAC,GAAGA,EAAEA,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAsF,OAAOyE,EAAE,MAAM,CAAEzE,GAAGA,EAAE,IAAI,CAAC,OAAO,EAAE,GAAI,OAAO,CAAEyE,IAAIQ,EAAE,IAAI,CAAE,KAAK,IAAMA,EAAE,EAAE,EAAER,EAAE,IAAI,CAAC,QAAQ,AAAC,IAAGzE,EAAEiF,EAAE,GAAG,GAAGjF,EAAE,EAAE,GAAG,EAAEA,EAAE,SAAS,CAAC,EAAE,IAAM,EAAE,GAAGiF,EAAE,EAAG,GAAE,GAAG,CAAC,OAAO,CAAEjF,IAAI,GAAG,EAAEA,CAAC,CAAC,EAAE,CAACA,CAAC,CAAC,EAAE,CAAC,OAAO,CAACA,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAI,EAAE,MAAM,CAAC,OAAO,CAAEA,IAAI,GAAGA,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE,OAAO,CAAC,2CAA4C,EAAC,IAAMwC,EAAE,EAAE,WAAW,CAACxC,EAAE,IAAI,CAAEA,CAAAA,EAAE,GAAG,CAAC,OAAO,CAAEA,GAAG,GAAGwC,EAAExC,IAAKA,EAAE,MAAM,CAAC,OAAO,CAAEA,IAAIwC,EAAE,WAAW,CAACxC,EAAE,IAAI,EAAE,GAAGwC,EAAExC,EAAE,GAAIA,EAAE,GAAG,CAAC,OAAO,CAAEA,GAAGwC,EAAE,WAAW,CAACxC,GAAI,CAAC,GAAI,IAAM,EAAEyE,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,GAAGA,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,KAAiL,CAAhL,IAAGzE,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAG,GAAE,GAAG,CAAC,OAAO,CAAEA,IAAI,CAAC,CAACA,EAAE,CAACiF,CAAC,CAACjF,EAAE,GAAI,GAAGA,EAAE,CAACA,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE,GAAGA,EAAE,CAACA,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,CAAC,EAAE,IAAM,EAAE,EAAE,EAAS,IAAG,KAAK,IAAM,EAAE,GAAG,MAAM,CAAE,KAAK,GAAG,GAAE,EAAE,EAAC,GAAK,EAAE,CAAC,IAAIA,EAAE,GAAG,IAAI,CAAC,KAAK,MAAM,EAAE,IAAI,CAACA,EAAEA,EAAE,CAAC,GAAI,OAAO,GAAG,YAAY,OAAO,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAE,IAAI,EAAG,CAAC,GAAIiF,EAAE,IAAI,CAAEzC,QAA0B,CAAnB,CAAC,GAAx46B,KAA056B,EAA+FiC,EAAE,IAAI,CAAC,QAAQ,CAAzG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,AAA4FjC,EAA1F,EAAE,CAAC,gBAAgB,EAAE,OAAO,CAAE,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,AAA6CA,EAA3C,EAAE,CAAC,iBAAiB,CAAC,KAAyB,GAAGxC,EAAE,CAACA,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE,GAAGA,EAAE,CAACA,EAAE,WAAW,CAAC,SAAS,CAAC,CAACA,EAAE,WAAW,CAACA,EAAE,SAAS,EAAE,EAAE,MAAM,CAACA,EAAE,SAAS,EAAG,GAAI,AAAhrC,UAAS,IAAI,OAAOiF,EAAE,MAAM,CAAC,GAAG,OAAO,CAACA,EAAE,KAAK,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,GAAG,OAAO,EAAE,KAAimC,IAAI,CAAE,KAAK,IAAIjF,EAAQ,EAAEA,EAAE,GAAG,OAAO,CAAEwC,IAAI,AAAtB,EAAwB,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAACA,IAAI,GAAzD,EAA8DA,EAAExC,CAAC,CAACwC,EAAE,CAAC,OAAO,CAACxC,CAAC,CAACwC,EAAE,CAAC,OAAO,CAAC,EAAG,EAAG,GAAExC,EAAE,EAAEyE,EAAE,GAAG,KAAK,CAAC,EAAE,EAAG,EAA85IzE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAG,GAAG,EAAE,SAAS,CAAC,GAAI,KAAK,EAAE,KAAK,IAAMC,EAAED,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAACiF,EAAE,EAAEhF,EAAE,gBAAgB,EAAE,GAAGgF,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,IAAM,EAAEhF,EAAE,WAAW,CAAC,IAAI,AAAGgF,EAAG,MAAM,CAAC,AAAVA,CAAW,CAAC,EAAE,CAAdA,EAAiB,WAAY5C,CAAAA,EAAE,UAAU,CAAC,SAAS,CAAC,OAAOrC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,IAAM,EAAEA,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,EAAGA,CAAAA,EAAE,WAAW,CAAC,EAAE,EAAE,gBAAgB,CAAC,GAAG,GAAGA,EAAE,CAACA,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,EAAEA,EAAEC,EAAE,GAAI,IAAGD,EAAEA,EAAE,SAAS,CAAC,GAAG,SAASA,CAAC,CAACwC,CAAC,EAAE,IAAMH,EAAE,GAAG,GAAG,EAAErC,EAAE,KAAK,CAACwC,GAAGxC,EAAE,SAAS,EAAE,MAAM,CAAEqC,CAAAA,EAAE,GAAG,CAAC,MAAM,EAAEA,EAAE,MAAM,CAAC,IAAI,CAAErC,GAAGA,EAAE,GAAG,CAAC,MAAM,EAAEA,EAAE,MAAM,CAAC,MAAM,CAAC,CAAE,EAAEA,EAAE,IAAImZ,QAAQ,IAAI,CAAC,qHAAoH,EAAG,GAAGnZ,EAAE,EAAE,CAAC,MAAMA,EAAE,CAAC,CAAO,GAAG,IAAI,CAACA,GAAGC,EAAE,eAAe,CAAC,GAAIuC,IAAIH,EAAE,OAAO,CAAC,CAAC,EAAErC,EAAE,EAAE,CAAC,iBAAiB,IAAI,CAACwC,EAAE,GAAIvC,EAAE,OAAO,CAAC,GAAIuC,IAAIxC,EAAE,EAAE,CAAC,SAAS,IAAI,CAACwC,EAAE,GAAIkC,GAAG,SAAS,CAAC,UAAU1E,CAAC,CAAC,YAAYwC,CAAC,CAAC,CAACH,CAAC,EAAE,AAAC,GAAGrC,IAAI,cAAcqC,GAAG,GAAGrC,EAAEwC,GAAG,GAAG,CAAC,CAAC,KAAKH,CAAC,GAAG,KAAK,CAAC,GAAG,EAAErC,EAAE,KAAK,CAAC,GAAG,GAAG,EAAG,EAAE,IAAM,EAAE,IAAI,CAAE,IAAK,KAAIqC,EAAE,iBAAiB,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,GAAI,IAAIrC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAACA,EAAE,GAAG,IAAK,IAAI,CAAE,SAASwC,IAAI,GAAGH,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,IAAIpC,EAAEoC,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,IAAI,OAAOA,EAAE,iBAAiB,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,GAAI,IAAIpC,EAAED,EAAE,GAAG,IAAK,IAAI,CAACwC,EAAE,CAAC,EAAE,GAAK,OAAO,CAAE,KAAKH,EAAE,iBAAiB,CAAC,KAAKA,EAAE,aAAa,CAAC,CAAC,CAAC,GAAI,IAAI,CAAE,IAAIrC,GAAI,KAAK,CAAEwC,IAAIH,EAAE,WAAW,CAACG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,MAAMxC,EAAE,CAAC,CAAC,OAAO,IAAIqC,EAAE,aAAa,EAAErC,EAAE,MAAM,GAAG,GAAGwC,EAAE,GAAI,OAAO,CAAE,KAAKH,EAAE,YAAY,CAAC,CAAC,EAAE,GAAG,EAAG,EAAwsd,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAMrC,EAAE,IAAI,CAAC,MAAM,CAACwC,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,GAAGA,GAAG,GAAG,GAAG,MAAM,CAACA,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,MAAMxC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAACA,EAAE,cAAc,CAAC,IAAI,GAAIwC,IAAIxC,EAAE,cAAc,CAACwC,CAAC,GAAIxC,EAAE,aAAa,CAAC,IAAI,GAAI,CAACwC,EAAEH,KAAKrC,EAAE,UAAU,CAACqC,CAAC,EAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAMrC,EAAE,IAAI,CAAC,MAAM,AAAC,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAEA,EAAE,WAAW,CAAC,IAAI,EAAE,cAAc,CAACA,EAAE,aAAa,EAAEA,EAAE,UAAU,CAACA,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAMA,EAAEsG,UAAU,MAAM,CAAC,EAAE9D,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,GAAI,CAACH,EAAEpC,KAAK,IAAM,EAAE,KAAK,IAAI,CAAC,KAAK,GAAG,IAAID,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAEA,CAAAA,EAAE,SAAS,CAAC,GAAI,KAAK,CAAC,SAAS,CAAC,UAAUA,CAAC,CAAC,YAAYwC,CAAC,CAAC,CAACH,CAAC,EAAE,AAAC,GAAGrC,IAAI,cAAcqC,GAAG,GAAGrC,EAAEwC,GAAG,MAAM,CAACH,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAEA,GAAG,GAAIrC,EAAE,OAAO,CAAC,GAAGC,GAAGD,EAAE,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,GAAGA,EAAE,MAAM,IAAI,EAAE,eAAe,CAAC,uCAAwCwC,CAAAA,EAAE,aAAa,CAACA,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,GAAG,EAAG,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAMxC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAOA,GAAG,mBAAmBA,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,CAAEA,GAAG,IAAI,CAAC,UAAU,CAACA,EAAE,CAAE,CAAC,aAAa,CAAC,IAAMA,EAAE,GAAG,KAAK,CAAC,IAAI,CAACsG,WAAW,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAACtG,EAAE,CAAC,aAAaA,CAAC,CAACwC,CAAC,CAACH,CAAC,CAAC,CAAC,IAA6F,EAAE,EAA3F,EAAE,GAAG,KAAK,AAAC,IAAG,EAAE,EAAE,GAAG,IAAI,EAAE,KAAKrC,EAAE,OAAO,CAAC,MAAO,GAAE,IAAG,EAAG,IAAM,EAAE,KAAKA,EAAE,OAAO,CAAC,KAAaA,EAAEA,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,EAAEwC,EAAE,GAAG,CAAExC,IAAI,IAAIwC,EAAExC,aAAa,IAAI,CAAC,KAAK,CAACA,EAAE,IAAI,CAACA,EAAE,GAAG,UAAU,OAAOwC,EAAE,MAAM,AAAIS,UAAU,mFAAmF,OAAOT,CAAC,GAAI,KAAKxC,GAAG,aAAaA,EAAE,EAAE,eAAe,CAAC,GAAG,MAAMA,GAAG,aAAaA,EAAE,MAAM,IAAI,EAAE,eAAe,CAAC,6BAA6BA,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,EAAE,cAAc,CAAC,0FAA0F,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAEA,IAAI,GAAG,GAAG,KAAK,EAAE,UAAU,CAAC,OAAO,CAACA,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,EAAE,cAAc,CAAC,SAASA,EAAE,wCAAwC,EAAE,IAAI,CAAC,GAAI,GAAG,GAAG,CAAC,EAAE,MAAM,EAAG,GAAE,IAAG,CAAE,CAAC,CAAC,MAAMA,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,KAAM,CAACwC,EAAEH,KAAKA,EAAErC,EAAE,GAAI,GAAGA,EAAE,CAAC,IAAM,EAAE,AAAt7gB,UAAS,EAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAAE,KAAK,IAAwW,EAAlW,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,EAAE,kBAAkB,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,GAA2B,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE,QAAQ,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,YAAY,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,EAAGmZ,CAAAA,QAAQ,IAAI,CAAC,4BAA4B,EAAE,MAAM,GAAG,EAAE,IAAI,GAAG,IAAI,CAAE,IAAI,EAAG,EAAE,EAAE,EAAE,KAAK,GAAG,EAAG,GAAG,EAAE,CAAC,IAAMzU,EAAE,EAAE,EAASA,CAAAA,GAAG,KAAK,IAAM,EAAE,GAAG,MAAM,CAAE,KAAK,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,GAAK,GAAGA,EAAE,CAAC,IAAI1E,EAAE,GAAG,IAAI,CAAC,KAAK,MAAM,EAAE,IAAI,CAACA,EAAEA,EAAE,KAAK,YAAY,OAAO,EAAE,IAAI,EAAE,YAAY,OAAO,EAAE,KAAK,EAAG,GAAE,GAAG,EAAC,CAAE,EAAvc,CAAC,MAAM,EAAE,UAAU,CAAC,GAAyb,MAAM,AAAC,IAAG,YAAY,OAAO,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAEA,GAAG,EAAE,MAAM,CAACA,EAAE,GAAG,IAAI,EAAE,eAAe,CAAC,gEAAiE,EAAE,IAAI,CAAE,IAAI,EAAE,EAAG,IAAI,CAAEA,GAAI,IAAG,EAAE,QAAQ,GAAG,EAAE,WAAW,CAAC,IAAI,CAAE,IAAIA,EAAE,GAAK,KAAK,CAAEA,GAAI,GAAE,OAAO,CAACA,GAAG,GAAGA,EAAC,EAAI,EAAG,GAAomf,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,EAAEqC,GAAG,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG,SAAS,CAAE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAMrC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAACA,GAAG,MAAM,IAAI,EAAE,YAAY,CAAC,CAAC,MAAM,EAAEA,EAAE,eAAe,CAAC,EAAE,OAAO,IAAI,CAAC,UAAU,CAACA,EAAE,CAAC,CAAC,IAAM,GAAG,aAAa,OAAOkE,QAAQ,eAAeA,OAAOA,OAAO,UAAU,CAAC,cAAe,OAAM,GAAG,YAAYlE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAACA,CAAC,CAAC,UAAUA,CAAC,CAACwC,CAAC,CAACH,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAACrC,GAAG,YAAY,OAAOA,EAAEA,EAAE,CAAC,KAAKA,EAAE,MAAMwC,EAAE,SAASH,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,GAAGrC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAE,IAAI,GAAGA,CAAC,CAAC,EAAE,EAAGA,CAAAA,CAAC,CAAC,EAAE,CAAC,IAAI,EAAC,EAAG,CAAC,CAAC,EAAE,CAAC,GAAIA,CAAC,CAAqnB,GAAG,CAAC,EAAG,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,EAAE,eAAe,EAAE,EAAE,WAAW,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,iBAAiB,CAAC,CAAC,MAAMA,EAAE,CAAC,EAAG,CAAC,UAAU,KAAK,YAAY,IAAI,CAAC,CAAa,SAAS,GAAGA,CAAC,EAAE,IAAIwC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,cAAc,CAAC,IAAI,CAACxC,EAAE,QAAQ,CAAC,GAAGwC,CAAC,CAAC,CAAC,EAA7E,GAAkF,CAAC,GAAG,EAAC,CAAC,OAAOxC,GAAG,IAAlG,GAAyGA,EAAE,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,OAAOA,GAAG,IAA3I,GAAkJA,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI,CAAEA,GAAIA,CAAAA,EAAE,KAAK,GAAG,CAAC,IAAK,KAAK,CAAC,sBAAuB,IAAI,CAAC,GAAI,iBAAiBA,CAAC,EAAE,GAAG,CAAC,MAAO,UAAS,CAAC,UAAUA,CAAC,CAAC,YAAYwC,CAAC,CAAC,EAAE,OAAO,GAAGxC,GAAGkY,QAAQ,OAAO,CAAClY,EAAE,SAAS,IAAI,IAAI,CAAEA,GAAGA,EAAE,GAAG,CAAEA,GAAGA,EAAE,IAAI,EAAG,MAAM,CAAEA,GAAG,cAAcA,IAAM,GAAGA,EAAEwC,GAAG,YAAY,GAAG,WAAW,EAAE,GAAE,AAA1b,GAA6b,YAAY,EAAE,IAAI,CAACxC,EAAE,CAAC,MAAMA,EAAE,CAAC,OAAO,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,YAAY,IAAI,SAASA,CAAC,EAAE,EAAE,IAAI,CAACA,EAAE,EAAE,kBAAkBA,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,SAAS,CAACA,GAAGA,IAAI,IAAI,GAAG,MAAM,SAASA,CAAC,EAAE,OAAO,WAAW,GAAG,CAAC,IAAIwC,EAAE,GAAGxC,EAAE,KAAK,CAAC,IAAI,CAACsG,YAAY,OAAO9D,GAAG,YAAY,OAAOA,EAAE,IAAI,CAACA,EAAE,GAAG,OAAO,CAACA,EAAE,CAAC,MAAMxC,EAAE,CAAC,OAAO,GAAGA,EAAE,CAAC,CAAC,EAAE,MAAM,SAASA,CAAC,CAACwC,CAAC,CAACH,CAAC,EAAE,GAAG,CAAC,IAAIpC,EAAE,GAAGD,EAAE,KAAK,CAACqC,EAAEG,GAAG,EAAE,GAAG,OAAOvC,GAAG,YAAY,OAAOA,EAAE,IAAI,CAACA,EAAE,GAAG,OAAO,CAACA,EAAE,CAAC,MAAMD,EAAE,CAAC,OAAO,GAAGA,EAAE,CAAC,EAAE,mBAAmB,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,QAAQ,SAASA,CAAC,CAACwC,CAAC,EAAE,IAAMH,EAAE,GAAG,OAAO,CAAC,YAAY,OAAOrC,EAAE,AAA/9B,GAAk+B,iBAAiB,CAACA,GAAGA,GAAG,OAAO,CAACwC,GAAG,KAAK,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,CAACH,GAAGA,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,IAAIrC,IAAt6nE,EAA46nEA,EAAx6nE,EAA06nE,UAAUA,EAAE,IAAI,CAAC,EAAE,EAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,GAAG,GAAG,UAAl9D,SAAYA,CAAC,EAAE,OAAO,IAAI,GAAI,IAAI,IAAM,EAAE,EAAEA,GAAO,EAAE,CAAC,EAAEiF,EAAE,CAAC,EAAER,EAAE,CAAC,EAAQ,EAAE,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,KAAK,EAAE,CAAC,EAAE,GAAG,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC,CAAE,GAAE,KAAK,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,IAAI,OAAO,EAAEA,GAAG,IAAI,CAAEzE,GAAGiF,CAAC,CAACjF,EAAE,EAAE,AAA1jW,SAAYA,CAAC,CAACwC,CAAC,EAAE,IAAMH,EAAE,GAAGG,GAAOvC,EAAEoC,EAAE,IAAI,GAAG,GAAGpC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAEA,EAAE,KAAK,CAAO,EAAE,GAAGD,GAAOyE,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAEA,EAAE,KAAK,CAAC,KAAK,CAACxE,EAAE,IAAI,EAAE,CAACwE,EAAE,IAAI,EAAE,CAAC,GAAG,AAAiB,GAAjB,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,GAAM,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,MAAM,CAAC,CAAE,AAAkB,GAAlB,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,EAAI,EAAE,AAACxE,CAAAA,EAAEoC,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,EAAE,AAACoC,CAAAA,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAoyVQ,CAAC,CAACjF,EAAE,CAACyE,CAAC,CAACzE,EAAE,EAAG,CAAC,IAAM,EAAEA,IAAI,GAAGiF,EAAEjF,GAAG,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,GAAG,EAAE,OAAOiF,EAAE,CAAC,EAAE,IAAM,EAAE,CAAC,EAAE,EAAE,SAASzC,CAAC,EAAE,GAAG,KAAK,IAAM,EAAE,IAAI,GAAGxC,EAAE,CAAC,OAAOwC,EAAE,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,IAAI,OAAO,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,EAAG,IAAI,IAAG,iBAAiB,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE0V,QAAQ,OAAO,CAAC,GAAG,IAAI,CAAElY,IAAI,EAAE,CAAC,EAAE,GAAI,KAAI,IAAKiF,CAAAA,EAAE,CAAC,EAAER,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAACzE,EAAC,CAAC,CAAE,EAAIA,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,CAACA,GAAG,EAAE,WAAW,EAAE,EAAG,EAAE,OAAO,IAAI,CAAC,EAAG,EAAm3C,uBAAuB,GAAG,aAAa,EAAE,aAAa,EAAE,aAAa,SAASA,CAAC,CAACwC,CAAC,EAAE,UAAU,OAAOA,EAAE,EAAExC,EAAEwC,EAAE,KAAK,GAAG,WAAWA,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAACA,EAAG,SAASA,CAAC,EAAE,EAAExC,EAAEwC,EAAE,KAAK,EAAE,EAAG,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI,GAAG,KAAK,EAAE,OAAO,CAAE,EAAE,EAAG,OAAO,EAAE,CAAC,YAAY,GAAG,SAAS,EAAE,aAAa,EAAG,OAAO,QAAQ,QAAQ,QAAQ,KAAK,CAAC,KAAK,GAAG,CAAExC,GAAG6I,SAAS7I,IAAK,MAAM,CAAE,CAACA,EAAEwC,EAAEH,IAAIrC,EAAEwC,EAAE6G,KAAK,GAAG,CAAC,GAAG,EAAEhH,GAAI,GAAG,AAAzkD,GAA4kD,MAAM,CAAC,GAAG,AAAtlD,GAAylD,YAAY,CAAC,WAAW,EAAE,aAAa,OAAO6W,eAAe,aAAa,OAAOO,kBAAmB,IAAG,iBAAkBzZ,IAAI,GAAG,CAAC,GAAG,CAAC,IAAIwC,CAAE,IAAIA,AAAsC,CAAtCA,EAAEyU,SAAS,WAAW,CAAC,cAAa,EAAI,eAAe,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAEjX,GAAIwC,EAAE,IAAIyW,YAAY,qBAAqB,CAAC,OAAOjZ,CAAC,GAAG,GAAG,CAAC,EAAEkZ,cAAc1W,GAAG,GAAG,CAAC,CAAC,CAAC,GAAIiX,iBAAiB,qBAAsB,CAAC,CAAC,OAAOzZ,CAAC,CAAC,IAAI,IAAI,GAAGA,EAAE,EAAE,EAAG,IAAI,GAAG,CAAC,EAAE,GAAG,aAAa,OAAO0Z,iBAAiB,CAAC,IAAM1Z,EAAE,IAAI0Z,iBAAiB,qBAAsB,aAAY,OAAO1Z,EAAE,KAAK,EAAEA,EAAE,KAAK,GAAG,GAAG,iBAAkBwC,IAAI,IAAIxC,EAAE,WAAW,CAACwC,EAAE,GAAIxC,EAAE,SAAS,CAACA,IAAIA,EAAE,IAAI,EAAE,GAAGA,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,aAAa,OAAO8G,MAAM,aAAa,OAAOsS,UAAU,CAAC,GAAG,iBAAkBpZ,IAAI,GAAG,CAAC,IAAK,cAAa,OAAOyV,cAAcA,aAAa,OAAO,CAAC,qBAAqBI,KAAK,SAAS,CAAC,CAAC,KAAKxM,KAAK,MAAM,GAAG,aAAarJ,CAAC,IAAI,UAAU,OAAO8G,KAAK,OAAO,EAAE,IAAIA,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAEtE,GAAGA,EAAE,WAAW,CAAC,CAAC,KAAK,qBAAqB,aAAaxC,CAAC,GAAG,CAAE,CAAC,MAAMA,EAAE,CAAC,CAAC,GAAI,aAAa,OAAOyZ,kBAAkBA,iBAAiB,UAAWzZ,IAAI,GAAG,uBAAuBA,EAAE,GAAG,CAAC,CAAC,IAAMwC,EAAEqT,KAAK,KAAK,CAAC7V,EAAE,QAAQ,CAAEwC,CAAAA,GAAG,GAAGA,EAAE,YAAY,CAAC,CAAC,GAAI,IAAMxC,EAAE8G,KAAK,QAAQ,EAAEsS,UAAU,aAAa,AAACpZ,CAAAA,GAAGA,EAAE,gBAAgB,CAAC,UAAW,SAAS,CAAC,KAAKA,CAAC,CAAC,EAAEA,GAAG,uBAAuBA,EAAE,IAAI,EAAE,GAAGA,EAAE,YAAY,CAAC,EAAG,CAAC,GAAG,eAAe,CAAC,SAASA,CAAC,CAACwC,CAAC,EAAE,GAAG,CAACxC,GAAGA,aAAa,GAAGA,aAAaiD,WAAWjD,aAAa0Y,aAAa,CAAC1Y,EAAE,IAAI,EAAE,CAAC,EAAC,CAACA,EAAE,IAAI,CAAC,CAAC,OAAOA,EAAE,IAAIqC,EAAE,IAAI,EAAC,CAACrC,EAAE,IAAI,CAAC,CAACwC,GAAGxC,EAAE,OAAO,CAACA,GAAG,MAAM,UAAUA,GAAG,EAAEqC,EAAE,QAAQ,CAAC,IAAI,WAAW,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAGA,CAAC,EAAz8rE,EAA+8rE,E,sDCoC98yE,MAJA,SAAYmB,CAAK,CAAEmW,CAAK,EACtB,OAAOnW,IAAUmW,GAAUnW,GAAUA,GAASmW,GAAUA,CAC1D,ECdA,EAVA,SAAsBC,CAAK,CAAEtW,CAAG,EAE9B,IADA,IAAIlB,EAASwX,EAAMxX,MAAM,CAClBA,KACL,GAAIyX,EAAGD,CAAK,CAACxX,EAAO,CAAC,EAAE,CAAEkB,GACvB,OAAOlB,EAGX,OAAO,EACT,ECZA,ICNgD,E,ECI1C0X,ECIWC,EAAMzN,EHFnB0N,EAASC,AAHI3X,MAAM0D,SAAS,CAGRgU,MAAM,CIO9B,SAASE,EAAU7D,CAAO,EACxB,IAAI9L,EAAQ,GACRnI,EAASiU,AAAW,MAAXA,EAAkB,EAAIA,EAAQjU,MAAM,CAGjD,IADA,IAAI,CAAC+X,KAAK,GACH,EAAE5P,EAAQnI,GAAQ,CACvB,IAAIgY,EAAQ/D,CAAO,CAAC9L,EAAM,CAC1B,IAAI,CAAChH,GAAG,CAAC6W,CAAK,CAAC,EAAE,CAAEA,CAAK,CAAC,EAAE,CAC7B,CACF,CAGAF,EAAUlU,SAAS,CAACmU,KAAK,CClBzB,WACE,IAAI,CAACE,QAAQ,CAAG,EAAE,CAClB,IAAI,CAACC,IAAI,CAAG,CACd,EDgBAJ,EAAUlU,SAAS,CAAC,MAAS,CJT7B,SAAyB1C,CAAG,EAC1B,IAAIiX,EAAO,IAAI,CAACF,QAAQ,CACpB9P,EAAQiQ,EAAaD,EAAMjX,SAE/B,CAAIiH,CAAAA,EAAQ,KAIRA,GADYgQ,EAAKnY,MAAM,CAAG,EAE5BmY,EAAKjH,GAAG,GAER0G,EAAOtX,IAAI,CAAC6X,EAAMhQ,EAAO,GAE3B,EAAE,IAAI,CAAC+P,IAAI,CACJ,GACT,EILAJ,EAAUlU,SAAS,CAACX,GAAG,CEhBvB,SAAsB/B,CAAG,EACvB,IAAIiX,EAAO,IAAI,CAACF,QAAQ,CACpB9P,EAAQiQ,EAAaD,EAAMjX,GAE/B,OAAOiH,EAAQ,EAAIwI,OAAYwH,CAAI,CAAChQ,EAAM,CAAC,EAAE,AAC/C,EFYA2P,EAAUlU,SAAS,CAACvC,GAAG,CGjBvB,SAAsBH,CAAG,EACvB,OAAOkX,EAAa,IAAI,CAACH,QAAQ,CAAE/W,GAAO,EAC5C,EHgBA4W,EAAUlU,SAAS,CAACzC,GAAG,CIjBvB,SAAsBD,CAAG,CAAEE,CAAK,EAC9B,IAAI+W,EAAO,IAAI,CAACF,QAAQ,CACpB9P,EAAQiQ,EAAaD,EAAMjX,GAQ/B,OANIiH,EAAQ,GACV,EAAE,IAAI,CAAC+P,IAAI,CACXC,EAAKrV,IAAI,CAAC,CAAC5B,EAAKE,EAAM,GAEtB+W,CAAI,CAAChQ,EAAM,CAAC,EAAE,CAAG/G,EAEZ,IAAI,AACb,EPtBA,IAAIiX,EAAa,CAAOxC,aAAP,OAAOA,OAAAA,Y,CADwB,EACxBA,S,oEAAM,GAAI,UAAYA,QAAUA,OAAO9U,MAAM,GAAKA,QAAU8U,OQEhFyC,EAAW,CAAO5T,aAAP,OAAOA,KAAAA,Y,GAAAA,O,oEAAI,GAAI,UAAYA,MAAQA,KAAK3D,MAAM,GAAKA,QAAU2D,KAGxE6T,EAAOF,ARHIA,GQGUC,GAAYE,SAAS,iBCH1C1W,EAASyW,ADKEA,ECLFA,MAAW,CCApBE,EAAc1X,OAAO6C,SAAS,CAG9BwO,EAAiBqG,EAAYrG,cAAc,CAO3CsG,EAAuBD,EAAYpY,QAAQ,CAG3CsY,EAAiB7W,ADXNA,ECWeA,ADXfA,ECWeA,WAAkB,CAAG6O,OA6BnD,MApBA,SAAmBvP,CAAK,EACtB,IAAIwX,EAAQxG,EAAe9R,IAAI,CAACc,EAAOuX,GACnCE,EAAMzX,CAAK,CAACuX,EAAe,CAE/B,GAAI,CACFvX,CAAK,CAACuX,EAAe,CAAGhI,OACxB,IAAImI,EAAW,EACjB,CAAE,MAAOlb,EAAG,CAAC,CAEb,IAAI2I,EAASmS,EAAqBpY,IAAI,CAACc,GAQvC,OAPI0X,IACEF,EACFxX,CAAK,CAACuX,EAAe,CAAGE,EAExB,OAAOzX,CAAK,CAACuX,EAAe,EAGzBpS,CACT,ECnCA,IAAImS,EAAuBD,AAPT1X,OAAO6C,SAAS,CAOKvD,QAAQ,CCC3CsY,EAAiB7W,AHJNA,EGIeA,AHJfA,EGIeA,WAAkB,CAAG6O,OAkBnD,MATA,SAAoBvP,CAAK,SACvB,AAAIA,AAAS,MAATA,EACKA,AAAUuP,SAAVvP,EAdQ,qBADL,gBAiBJuX,GAAkBA,KAAkB5X,OAAOK,GAC/C2X,EAAU3X,GDLPsX,EAAqBpY,IAAI,CCMbc,EACrB,ECKA,EALA,SAAkBA,CAAK,EACrB,IAAI4X,EAAO,AAAO5X,SAAAA,EAAAA,Y,AAAAA,G,4BAAAA,E,qCAAAA,EAClB,OAAOA,AAAS,MAATA,GAAkB4X,CAAAA,AAAQ,UAARA,GAAoBA,AAAQ,YAARA,CAAiB,CAChE,ECQA,EAVA,SAAoB5X,CAAK,EACvB,GAAI,CAAC6X,EAAS7X,GACZ,MAAO,GAIT,IAAIyX,EAAMK,EAAW9X,GACrB,MAAOyX,AA5BK,qBA4BLA,GAAkBA,AA3Bd,8BA2BcA,GAAiBA,AA7B7B,0BA6B6BA,GAAmBA,AA1BhD,kBA0BgDA,CAC/D,EC/BA,IAAIM,EAAaZ,APKFA,COLEA,CAAAA,qBAA0B,CdAvCa,EAEK1B,CADHA,EAAM,SAASlR,IAAI,CAAC2S,AcCXA,GdDyBA,AcCzBA,EdDyBA,IAAe,EAAIA,AcC5CA,EdD4CA,IAAAA,CAAAA,QAAwB,EAAI,KACvE,iBAAmBzB,EAAO,GeDtC2B,EAAeC,AAHHd,SAAS5U,SAAS,CAGLvD,QAAQ,CAqBrC,MAZA,SAAkBsX,CAAI,EACpB,GAAIA,AAAQ,MAARA,EAAc,CAChB,GAAI,CACF,OAAO0B,EAAa/Y,IAAI,CAACqX,EAC3B,CAAE,MAAO/Z,EAAG,CAAC,CACb,GAAI,CACF,OAAQ+Z,EAAO,EACjB,CAAE,MAAO/Z,EAAG,CAAC,CACf,CACA,MAAO,EACT,ECXA,IAAI2b,EAAe,8BAIfd,EAAc1X,OAAO6C,SAAS,CAG9ByV,EAAeC,AAJHd,SAAS5U,SAAS,CAILvD,QAAQ,CAGjC+R,EAAiBqG,EAAYrG,cAAc,CAG3CoH,EAAaC,OAAO,IACtBJ,EAAa/Y,IAAI,CAAC8R,GAAgBjM,OAAO,CAjBxB,sBAiBuC,QACvDA,OAAO,CAAC,yDAA0D,SAAW,KAmBhF,MARA,SAAsB/E,CAAK,QACzB,CAAI,CAAC6X,EAAS7X,IhBvBP,EAAEgY,IAAeA,CAAAA,KgBuBShY,ChBvBQ,IgB2BlCyE,AADO6T,CAAAA,EAAWtY,GAASoY,EAAaD,CAAW,EAC3C7Y,IAAI,CAACiZ,EAASvY,GAC/B,EC5BA,EALA,SAAmBwY,CAAM,CAAE1Y,CAAG,EAC5B,IAAIE,ECHGwY,AAAU,MDGIA,ECHGjJ,OAAYiJ,ADGfA,CCHqB,CDGb1Y,ECHkB,CDI/C,OAAO2Y,EAAazY,GAASA,EAAQuP,MACvC,EEVA,IAAI7P,EAAMgZ,EZIKvB,EYJW,OCDtBwB,EAAeD,EAAU/Y,OAAQ,UCMjCqR,EAAiBqG,AAHH1X,OAAO6C,SAAS,CAGDwO,cAAc,CCH3CA,EAAiBqG,AAHH1X,OAAO6C,SAAS,CAGDwO,cAAc,CCO/C,SAAS4H,EAAK/F,CAAO,EACnB,IAAI9L,EAAQ,GACRnI,EAASiU,AAAW,MAAXA,EAAkB,EAAIA,EAAQjU,MAAM,CAGjD,IADA,IAAI,CAAC+X,KAAK,GACH,EAAE5P,EAAQnI,GAAQ,CACvB,IAAIgY,EAAQ/D,CAAO,CAAC9L,EAAM,CAC1B,IAAI,CAAChH,GAAG,CAAC6W,CAAK,CAAC,EAAE,CAAEA,CAAK,CAAC,EAAE,CAC7B,CACF,CAGAgC,EAAKpW,SAAS,CAACmU,KAAK,CChBpB,WACE,IAAI,CAACE,QAAQ,CAAG8B,AJLHA,EIKkBA,AJLlBA,EIK+B,MAAQ,CAAC,EACrD,IAAI,CAAC7B,IAAI,CAAG,CACd,EDcA8B,EAAKpW,SAAS,CAAC,MAAS,CEhBxB,SAAoB1C,CAAG,EACrB,IAAIqF,EAAS,IAAI,CAAClF,GAAG,CAACH,IAAQ,OAAO,IAAI,CAAC+W,QAAQ,CAAC/W,EAAI,CAEvD,OADA,IAAI,CAACgX,IAAI,IAAI3R,EACNA,CACT,EFaAyT,EAAKpW,SAAS,CAACX,GAAG,CFPlB,SAAiB/B,CAAG,EAClB,IAAIiX,EAAO,IAAI,CAACF,QAAQ,CACxB,GDjBa8B,ECiBK,CAChB,IAAIxT,EAAS4R,CAAI,CAACjX,EAAI,CACtB,MAAOqF,AArBU,8BAqBVA,EAA4BoK,OAAYpK,CACjD,CACA,OAAO6L,EAAe9R,IAAI,CAAC6X,EAAMjX,GAAOiX,CAAI,CAACjX,EAAI,CAAGyP,MACtD,EECAqJ,EAAKpW,SAAS,CAACvC,GAAG,CDXlB,SAAiBH,CAAG,EAClB,IAAIiX,EAAO,IAAI,CAACF,QAAQ,CACxB,OAAO8B,AFdMA,EEcU5B,AAAcxH,SAAdwH,CAAI,CAACjX,EAAI,CAAkBkR,EAAe9R,IAAI,CAAC6X,EAAMjX,EAC9E,ECSA8Y,EAAKpW,SAAS,CAACzC,GAAG,CGdlB,SAAiBD,CAAG,CAAEE,CAAK,EACzB,IAAI+W,EAAO,IAAI,CAACF,QAAQ,CAGxB,OAFA,IAAI,CAACC,IAAI,EAAI,MAAI,CAAC7W,GAAG,CAACH,GACtBiX,CAAI,CAACjX,EAAI,CAAI6Y,ANbAA,GMagB3Y,AAAUuP,SAAVvP,EAfV,4BAekDA,EAC9D,IAAI,AACb,ECNA,MAPA,SAAmBA,CAAK,EACtB,IAAI4X,EAAO,AAAO5X,SAAAA,EAAAA,Y,AAAAA,G,4BAAAA,E,qCAAAA,EAClB,MAAQ4X,AAAQ,UAARA,GAAoBA,AAAQ,UAARA,GAAoBA,AAAQ,UAARA,GAAoBA,AAAQ,WAARA,EAC/D5X,AAAU,cAAVA,EACAA,AAAU,OAAVA,CACP,ECKA,EAPA,SAAoBwF,CAAG,CAAE1F,CAAG,EAC1B,IAAIiX,EAAOvR,EAAIqR,QAAQ,CACvB,OAAOgC,EAAU/Y,GACbiX,CAAI,CAAC,AAAc,UAAd,OAAOjX,EAAkB,SAAW,OAAO,CAChDiX,EAAKvR,GAAG,AACd,ECFA,SAASsT,EAASjG,CAAO,EACvB,IAAI9L,EAAQ,GACRnI,EAASiU,AAAW,MAAXA,EAAkB,EAAIA,EAAQjU,MAAM,CAGjD,IADA,IAAI,CAAC+X,KAAK,GACH,EAAE5P,EAAQnI,GAAQ,CACvB,IAAIgY,EAAQ/D,CAAO,CAAC9L,EAAM,CAC1B,IAAI,CAAChH,GAAG,CAAC6W,CAAK,CAAC,EAAE,CAAEA,CAAK,CAAC,EAAE,CAC7B,CACF,CCRA,SAASmC,EAAMlG,CAAO,EACpB,IAAIkE,EAAO,IAAI,CAACF,QAAQ,CAAG,I5BgBdH,E4BhB4B7D,EACzC,KAAI,CAACiE,IAAI,CAAGC,EAAKD,IAAI,AACvB,CCLA,SAASkC,EAASC,CAAM,EACtB,IAAIlS,EAAQ,GACRnI,EAASqa,AAAU,MAAVA,EAAiB,EAAIA,EAAOra,MAAM,CAG/C,IADA,IAAI,CAACiY,QAAQ,CAAG,IFeHiC,EEdN,EAAE/R,EAAQnI,GACf,IAAI,CAAC+D,GAAG,CAACsW,CAAM,CAAClS,EAAM,CAE1B,CFKA+R,EAAStW,SAAS,CAACmU,KAAK,CGdxB,WACE,IAAI,CAACG,IAAI,CAAG,EACZ,IAAI,CAACD,QAAQ,CAAG,CACd,KAAQ,ITiBG+B,EShBX,IAAO,GAAKlZ,CbTDA,GjByBAgX,C8BhBQA,EACnB,OAAU,ITeCkC,CSdb,CACF,EHQAE,EAAStW,SAAS,CAAC,MAAS,CIf5B,SAAwB1C,CAAG,EACzB,IAAIqF,EAAS+T,EAAW,IAAI,CAAEpZ,GAAK,MAAS,CAACA,GAE7C,OADA,IAAI,CAACgX,IAAI,IAAI3R,EACNA,CACT,EJYA2T,EAAStW,SAAS,CAACX,GAAG,CKhBtB,SAAqB/B,CAAG,EACtB,OAAOoZ,EAAW,IAAI,CAAEpZ,GAAK+B,GAAG,CAAC/B,EACnC,ELeAgZ,EAAStW,SAAS,CAACvC,GAAG,CMjBtB,SAAqBH,CAAG,EACtB,OAAOoZ,EAAW,IAAI,CAAEpZ,GAAKG,GAAG,CAACH,EACnC,ENgBAgZ,EAAStW,SAAS,CAACzC,GAAG,COjBtB,SAAqBD,CAAG,CAAEE,CAAK,EAC7B,IAAI+W,EAAOmC,EAAW,IAAI,CAAEpZ,GACxBgX,EAAOC,EAAKD,IAAI,CAIpB,OAFAC,EAAKhX,GAAG,CAACD,EAAKE,GACd,IAAI,CAAC8W,IAAI,EAAIC,CAAAA,CAAAA,EAAKD,IAAI,EAAIA,CAAG,EACtB,IAAI,AACb,ENCAiC,EAAMvW,SAAS,CAACmU,KAAK,COXrB,WACE,IAAI,CAACE,QAAQ,CAAG,InCqBHH,EmCpBb,IAAI,CAACI,IAAI,CAAG,CACd,EPSAiC,EAAMvW,SAAS,CAAC,MAAS,CQZzB,SAAqB1C,CAAG,EACtB,IAAIiX,EAAO,IAAI,CAACF,QAAQ,CACpB1R,EAAS4R,EAAK,MAAS,CAACjX,GAG5B,OADA,IAAI,CAACgX,IAAI,CAAGC,EAAKD,IAAI,CACd3R,CACT,EROA4T,EAAMvW,SAAS,CAACX,GAAG,CSbnB,SAAkB/B,CAAG,EACnB,OAAO,IAAI,CAAC+W,QAAQ,CAAChV,GAAG,CAAC/B,EAC3B,ETYAiZ,EAAMvW,SAAS,CAACvC,GAAG,CUdnB,SAAkBH,CAAG,EACnB,OAAO,IAAI,CAAC+W,QAAQ,CAAC5W,GAAG,CAACH,EAC3B,EVaAiZ,EAAMvW,SAAS,CAACzC,GAAG,CWPnB,SAAkBD,CAAG,CAAEE,CAAK,EAC1B,I,EAAI+W,EAAO,IAAI,CAACF,QAAQ,CACxB,G,EAAIE,E,MvCYSL,G,4BAAAA,C,uBAAAA,C,qCAAAA,EuCZkB,CAC7B,IAAIyC,EAAQpC,EAAKF,QAAQ,CACzB,GAAI,CtBfOnX,GsBeEyZ,EAAMva,MAAM,CAAGwa,IAG1B,OAFAD,EAAMzX,IAAI,CAAC,CAAC5B,EAAKE,EAAM,EACvB,IAAI,CAAC8W,IAAI,CAAG,EAAEC,EAAKD,IAAI,CAChB,IAAI,CAEbC,EAAO,IAAI,CAACF,QAAQ,CAAG,IZKZiC,EYLyBK,EACtC,CAGA,OAFApC,EAAKhX,GAAG,CAACD,EAAKE,GACd,IAAI,CAAC8W,IAAI,CAAGC,EAAKD,IAAI,CACd,IAAI,AACb,EVRAkC,EAASxW,SAAS,CAACG,GAAG,CAAGqW,EAASxW,SAAS,CAACd,IAAI,CWVhD,SAAqB1B,CAAK,EAExB,OADA,IAAI,CAAC6W,QAAQ,CAAC9W,GAAG,CAACC,EAbC,6BAcZ,IAAI,AACb,EXQAgZ,EAASxW,SAAS,CAACvC,GAAG,CYftB,SAAqBD,CAAK,EACxB,OAAO,IAAI,CAAC6W,QAAQ,CAAC5W,GAAG,CAACD,EAC3B,ECWA,MAZA,SAAmBoW,CAAK,CAAEiD,CAAS,EAIjC,IAHA,IAAItS,EAAQ,GACRnI,EAASwX,AAAS,MAATA,EAAgB,EAAIA,EAAMxX,MAAM,CAEtC,EAAEmI,EAAQnI,GACf,GAAIya,EAAUjD,CAAK,CAACrP,EAAM,CAAEA,EAAOqP,GACjC,MAAO,GAGX,MAAO,EACT,EC+DA,EA9DA,SAAqBA,CAAK,CAAED,CAAK,CAAEmD,CAAO,CAAEC,CAAU,CAAEC,CAAS,CAAEC,CAAK,EACtE,IAAIC,EAAYJ,AAjBS,EAiBTA,EACZK,EAAYvD,EAAMxX,MAAM,CACxBgb,EAAYzD,EAAMvX,MAAM,CAE5B,GAAI+a,GAAaC,GAAa,CAAEF,CAAAA,GAAaE,EAAYD,CAAQ,EAC/D,MAAO,GAGT,IAAIE,EAAaJ,EAAM5X,GAAG,CAACuU,GACvB0D,EAAaL,EAAM5X,GAAG,CAACsU,GAC3B,GAAI0D,GAAcC,EAChB,OAAOD,GAAc1D,GAAS2D,GAAc1D,EAE9C,IAAIrP,EAAQ,GACR5B,EAAS,GACT4U,EAAQT,AA/Be,EA+BfA,EAAoC,IdXnCN,EcWkDzJ,OAM/D,IAJAkK,EAAM1Z,GAAG,CAACqW,EAAOD,GACjBsD,EAAM1Z,GAAG,CAACoW,EAAOC,GAGV,EAAErP,EAAQ4S,GAAW,CAC1B,IAAIK,EAAW5D,CAAK,CAACrP,EAAM,CACvBkT,EAAW9D,CAAK,CAACpP,EAAM,CAE3B,GAAIwS,EACF,IAAIW,EAAWR,EACXH,EAAWU,EAAUD,EAAUjT,EAAOoP,EAAOC,EAAOqD,GACpDF,EAAWS,EAAUC,EAAUlT,EAAOqP,EAAOD,EAAOsD,GAE1D,GAAIS,AAAa3K,SAAb2K,EAAwB,CAC1B,GAAIA,EACF,SAEF/U,EAAS,GACT,KACF,CAEA,GAAI4U,EACF,IAAI,CAACI,EAAUhE,EAAO,SAAS8D,CAAQ,CAAEG,CAAQ,EAC3C,ICrDHC,ADqDiBN,ECrDX9Z,GAAG,CDqDcma,IACfJ,CAAAA,IAAaC,GAAYT,EAAUQ,EAAUC,EAAUX,EAASC,EAAYE,EAAK,EACpF,OAAOM,EAAKrY,IAAI,CAAC0Y,EAErB,GAAI,CACNjV,EAAS,GACT,KACF,OACK,GAAI,CACL6U,CAAAA,IAAaC,GACXT,EAAUQ,EAAUC,EAAUX,EAASC,EAAYE,EAAK,EACzD,CACLtU,EAAS,GACT,KACF,CACF,CAGA,OAFAsU,EAAM,MAAS,CAACrD,GAChBqD,EAAM,MAAS,CAACtD,GACThR,CACT,EE9EA,IAAIkQ,EAAa8B,AxCKFA,EwCLEA,UAAe,CCchC,MAVA,SAAoB3R,CAAG,EACrB,IAAIuB,EAAQ,GACR5B,EAASrG,MAAM0G,EAAIsR,IAAI,EAK3B,OAHAtR,EAAI3F,OAAO,CAAC,SAASG,CAAK,CAAEF,CAAG,EAC7BqF,CAAM,CAAC,EAAE4B,EAAM,CAAG,CAACjH,EAAKE,EAAM,AAChC,GACOmF,CACT,ECEA,EAVA,SAAoBpF,CAAG,EACrB,IAAIgH,EAAQ,GACR5B,EAASrG,MAAMiB,EAAI+W,IAAI,EAK3B,OAHA/W,EAAIF,OAAO,CAAC,SAASG,CAAK,EACxBmF,CAAM,CAAC,EAAE4B,EAAM,CAAG/G,CACpB,GACOmF,CACT,ECWA,IAAImV,EAAc5Z,A1CrBHA,E0CqBYA,A1CrBZA,E0CqBYA,SAAgB,CAAG6O,OAC1CgL,GAAgBD,EAAcA,EAAYE,OAAO,CAAGjL,OAoFxD,OAjEA,SAAoBiJ,CAAM,CAAErC,CAAK,CAAEsB,CAAG,CAAE6B,CAAO,CAAEC,CAAU,CAAEC,CAAS,CAAEC,CAAK,EAC3E,OAAQhC,GACN,IAzBc,oBA0BZ,GAAKe,EAAOiC,UAAU,EAAItE,EAAMsE,UAAU,EACrCjC,EAAOkC,UAAU,EAAIvE,EAAMuE,UAAU,CACxC,MAEFlC,EAASA,EAAOlJ,MAAM,CACtB6G,EAAQA,EAAM7G,MAAM,AAEtB,KAlCiB,uBAmCf,GAAKkJ,EAAOiC,UAAU,EAAItE,EAAMsE,UAAU,EACtC,CAACjB,EAAU,IHrDNnE,EGqDqBmD,GAAS,IHrD9BnD,EGqD6Cc,IACpD,MAEF,MAAO,EAET,KAnDU,mBAoDV,IAnDU,gBAoDV,IAjDY,kBAoDV,OAAOE,EAAG,CAACmC,EAAQ,CAACrC,EAEtB,KAxDW,iBAyDT,OAAOqC,EAAOja,IAAI,EAAI4X,EAAM5X,IAAI,EAAIia,EAAOmC,OAAO,EAAIxE,EAAMwE,OAAO,AAErE,KAxDY,kBAyDZ,IAvDY,kBA2DV,OAAOnC,GAAWrC,EAAQ,EAE5B,KAjES,eAkEP,IAAIyE,EAAUC,CAEhB,KAjES,eAkEP,IAAInB,EAAYJ,AA5EK,EA4ELA,EAGhB,GAFAsB,GAAYA,CAAAA,EAAUE,CAAAA,EAElBtC,EAAO1B,IAAI,EAAIX,EAAMW,IAAI,EAAI,CAAC4C,EAChC,MAGF,IAAIqB,EAAUtB,EAAM5X,GAAG,CAAC2W,GACxB,GAAIuC,EACF,OAAOA,GAAW5E,EAEpBmD,GAtFuB,EAyFvBG,EAAM1Z,GAAG,CAACyY,EAAQrC,GAClB,IAAIhR,EAAS6V,EAAYJ,EAAQpC,GAASoC,EAAQzE,GAAQmD,EAASC,EAAYC,EAAWC,GAE1F,OADAA,EAAM,MAAS,CAACjB,GACTrT,CAET,KAnFY,kBAoFV,GAAIoV,GACF,OAAOA,GAAcrb,IAAI,CAACsZ,IAAW+B,GAAcrb,IAAI,CAACiX,EAE9D,CACA,MAAO,EACT,EC1FA,GAXA,SAAmBC,CAAK,CAAE6C,CAAM,EAK9B,IAJA,IAAIlS,EAAQ,GACRnI,EAASqa,EAAOra,MAAM,CACtB0P,EAAS8H,EAAMxX,MAAM,CAElB,EAAEmI,EAAQnI,GACfwX,CAAK,CAAC9H,EAASvH,EAAM,CAAGkS,CAAM,CAAClS,EAAM,CAEvC,OAAOqP,CACT,ECMA,IAAIxV,GAAU9B,MAAM8B,OAAO,CCJ3B,OALA,SAAwB4X,CAAM,CAAEyC,CAAQ,CAAEC,CAAW,EACnD,IAAI/V,EAAS8V,EAASzC,GACtB,OAAO5X,ADSMA,GCTE4X,GAAUrT,EAASgW,GAAUhW,EAAQ+V,EAAY1C,GAClE,ECOA,GAfA,SAAqBpC,CAAK,CAAEiD,CAAS,EAMnC,IALA,IAAItS,EAAQ,GACRnI,EAASwX,AAAS,MAATA,EAAgB,EAAIA,EAAMxX,MAAM,CACzCwc,EAAW,EACXjW,EAAS,EAAE,CAER,EAAE4B,EAAQnI,GAAQ,CACvB,IAAIoB,EAAQoW,CAAK,CAACrP,EAAM,AACpBsS,CAAAA,EAAUrZ,EAAO+G,EAAOqP,IAC1BjR,CAAAA,CAAM,CAACiW,IAAW,CAAGpb,CAAI,CAE7B,CACA,OAAOmF,CACT,ECfA,IAAIkW,GAAuBhE,AAHT1X,OAAO6C,SAAS,CAGK6Y,oBAAoB,CAGvDC,GAAmB3b,OAAO4b,qBAAqB,CAS/CC,GAAa,AAACF,GAA+B,SAAS9C,CAAM,SAC9D,AAAIA,AAAU,MAAVA,EACK,EAAE,CAGJiD,GAAYH,GADnB9C,EAAS7Y,OAAO6Y,IAC6B,SAASkD,CAAM,EAC1D,OAAOL,GAAqBnc,IAAI,CAACsZ,EAAQkD,EAC3C,EACF,ECTA,WACE,MAAO,EAAE,AACX,ECDA,OAVA,SAAmB7c,CAAC,CAAE8c,CAAQ,EAI5B,IAHA,IAAI5U,EAAQ,GACR5B,EAASrG,MAAMD,GAEZ,EAAEkI,EAAQlI,GACfsG,CAAM,CAAC4B,EAAM,CAAG4U,EAAS5U,GAE3B,OAAO5B,CACT,ECWA,GAJA,SAAsBnF,CAAK,EACzB,OAAOA,AAAS,MAATA,GAAiB,CAAOA,SAAAA,EAAAA,Y,AAAAA,G,4BAAAA,E,qCAAAA,CAAK,GAAI,QAC1C,ECTA,GAJA,SAAyBA,CAAK,EAC5B,OAAO4b,GAAa5b,IAAU8X,AAVlB,sBAUkBA,EAAW9X,EAC3C,ECXA,IAAIqX,GAAc1X,OAAO6C,SAAS,CAG9BwO,GAAiBqG,GAAYrG,cAAc,CAG3CqK,GAAuBhE,GAAYgE,oBAAoB,CAoBvDQ,GAAcC,GAAgB,WAAa,OAAOhZ,SAAW,KAAOgZ,GAAkB,SAAS9b,CAAK,EACtG,OAAO4b,GAAa5b,IAAUgR,GAAe9R,IAAI,CAACc,EAAO,WACvD,CAACqb,GAAqBnc,IAAI,CAACc,EAAO,SACtC,E,8FC7BA,IAAI+b,GAAc,CAAO9Y,aAAP,OAAOA,QAAAA,YAAP,GAAOA,QAAO,GAAI,UAAYA,SAAW,CAACA,QAAQkO,QAAQ,EAAIlO,QAG5E+Y,GAAaD,IAAe,CAAO7Y,aAAP,OAAOA,OAAAA,YAAP,GAAOA,OAAM,GAAI,UAAYA,QAAU,CAACA,OAAOiO,QAAQ,EAAIjO,OAMvFsG,GAASyS,AAHOD,IAAcA,GAAW/Y,OAAO,GAAK8Y,GAG5B5E,AtDLdA,EsDKcA,MAAW,CAAG5H,OAwB3C,OAFe2M,AAnBM1S,CAAAA,GAASA,GAAO2S,QAAQ,CAAG5M,MAAQ,GCHxD,WACE,MAAO,EACT,ECXA,IAAI6M,GAAW,mBAoBf,OAVA,SAAiBpc,CAAK,CAAEpB,CAAM,EAC5B,IAAIgZ,EAAO,AAAO5X,SAAAA,EAAAA,Y,AAAAA,G,4BAAAA,E,qCAAAA,EAGlB,MAAO,CAAC,CAFRpB,CAAAA,EAASA,AAAU,MAAVA,EAfY,iBAewBA,CAAK,GAG/CgZ,CAAAA,AAAQ,UAARA,GACEA,AAAQ,UAARA,GAAoBwE,GAAS9c,IAAI,CAACU,EAAK,GACrCA,EAAQ,IAAMA,EAAQ,GAAK,GAAKA,EAAQpB,CACjD,ECYAyd,GALA,SAAkBrc,CAAK,EACrB,MAAO,AAAgB,UAAhB,OAAOA,GACZA,EAAQ,IAAMA,EAAQ,GAAK,GAAKA,GA9Bb,gBA+BvB,ECAA,IAAIsc,GAAiB,CAAC,E,8FACtBA,EAAc,CAZG,wBAYS,CAAGA,EAAc,CAX1B,wBAWsC,CACvDA,EAAc,CAXA,qBAWS,CAAGA,EAAc,CAVzB,sBAUmC,CAClDA,EAAc,CAVC,sBAUS,CAAGA,EAAc,CAT1B,sBASoC,CACnDA,EAAc,CATQ,6BASS,CAAGA,EAAc,CARhC,uBAQ2C,CAC3DA,EAAc,CARE,uBAQS,CAAG,GAC5BA,EAAc,CAjCA,qBAiCS,CAAGA,EAAc,CAhCzB,iBAgCmC,CAClDA,EAAc,CApBO,uBAoBS,CAAGA,EAAc,CAhCjC,mBAgC0C,CACxDA,EAAc,CApBI,oBAoBS,CAAGA,EAAc,CAhC9B,gBAgCuC,CACrDA,EAAc,CAhCC,iBAgCS,CAAGA,EAAc,CA/B3B,oBA+BoC,CAClDA,EAAc,CA/BD,eA+BS,CAAGA,EAAc,CA9BvB,kBA8BkC,CAClDA,EAAc,CA9BE,kBA8BS,CAAGA,EAAc,CA7B1B,kBA6BqC,CACrDA,EAAc,CA7BD,eA6BS,CAAGA,EAAc,CA5BvB,kBA4BkC,CAClDA,EAAc,CA5BG,mBA4BS,CAAG,GC1C7B,IAAIP,GAAc,CAAO9Y,aAAP,OAAOA,QAAAA,YAAP,GAAOA,QAAO,GAAI,UAAYA,SAAW,CAACA,QAAQkO,QAAQ,EAAIlO,QAG5E+Y,GAAaD,IAAe,CAAO7Y,aAAP,OAAOA,OAAAA,YAAP,GAAOA,OAAM,GAAI,UAAYA,QAAU,CAACA,OAAOiO,QAAQ,EAAIjO,OAMvFqZ,GAAcN,AAHED,IAAcA,GAAW/Y,OAAO,GAAK8Y,IAGtB9E,AnETpBA,EmESoBA,OAAkB,CAGjDuF,GAAY,WACd,GAAI,CAEF,IAAIC,EAAQT,IAAcA,GAAWtY,OAAO,EAAIsY,GAAWtY,OAAO,CAAC,QAAQ+Y,KAAK,CAEhF,GAAIA,EACF,OAAOA,EAIT,OAAOF,IAAeA,GAAYG,OAAO,EAAIH,GAAYG,OAAO,CAAC,OACnE,CAAE,MAAOlgB,EAAG,CAAC,CACf,ICtBImgB,GAAmBH,ADwBRA,ICxBoBA,ADwBpBA,GCxBoBA,YAAqB,CAmBpDI,GAAeD,GChBV,SAAS3c,CAAK,EACnB,OAAOuW,ADeqCoG,GCfhC3c,EACd,EH4CF,SAA0BA,CAAK,EAC7B,OAAO4b,GAAa5b,IAClB6c,GAAS7c,EAAMpB,MAAM,GAAK,CAAC,CAAC0d,EAAc,CAACxE,EAAW9X,GAAO,AACjE,EI9CIgR,GAAiBqG,AAHH1X,OAAO6C,SAAS,CAGDwO,cAAc,CAqC/C,OA3BA,SAAuBhR,CAAK,CAAE8c,CAAS,EACrC,IAAIC,EAAQnc,AjBGCA,GiBHOZ,GAChBgd,EAAQ,CAACD,GAASlB,ATYTA,GSZqB7b,GAC9Bid,EAAS,CAACF,GAAS,CAACC,GAASb,GAASnc,GACtCkd,EAAS,CAACH,GAAS,CAACC,GAAS,CAACC,GAAUL,AFC/BA,GED4C5c,GACrDmd,EAAcJ,GAASC,GAASC,GAAUC,EAC1C/X,EAASgY,EAAcC,GAAUpd,EAAMpB,MAAM,CAAE0D,QAAU,EAAE,CAC3D1D,EAASuG,EAAOvG,MAAM,CAE1B,IAAK,IAAIkB,KAAOE,EACT8c,AAAAA,CAAAA,GAAa9L,GAAe9R,IAAI,CAACc,EAAOF,EAAG,GAC5C,CAAEqd,CAAAA,GAECrd,CAAAA,AAAO,UAAPA,GAECmd,GAAWnd,CAAAA,AAAO,UAAPA,GAAmBA,AAAO,UAAPA,CAAc,GAE5Cod,GAAWpd,CAAAA,AAAO,UAAPA,GAAmBA,AAAO,cAAPA,GAAuBA,AAAO,cAAPA,CAAkB,GAExEud,GAAQvd,EAAKlB,EAAM,IAExBuG,EAAOzD,IAAI,CAAC5B,GAGhB,OAAOqF,CACT,EC7CA,IAAIkS,GAAc1X,OAAO6C,SAAS,CAgBlC,OAPA,SAAqBxC,CAAK,EACxB,IAAIsd,EAAOtd,GAASA,EAAMZ,WAAW,CAGrC,OAAOY,IAFM,CAAe,YAAf,OAAOsd,GAAsBA,EAAK9a,SAAS,EAAK6U,EAAAA,CAG/D,ECZA,IAAIkG,ItEKahH,EsELQ5W,OAAOC,IAAI,CtEKbkJ,EsELenJ,OtEM7B,SAASwU,CAAG,EACjB,OAAOoC,EAAKzN,EAAUqL,GACxB,GuEJEnD,GAAiBqG,AAHH1X,OAAO6C,SAAS,CAGDwO,cAAc,CAsB/C,OAbA,SAAkBwH,CAAM,EACtB,GAAI,CAACgF,GAAYhF,GACf,OAAO+E,ADbIA,GCaO/E,GAEpB,IAAIrT,EAAS,EAAE,CACf,IAAK,IAAIrF,KAAOH,OAAO6Y,GACjBxH,GAAe9R,IAAI,CAACsZ,EAAQ1Y,IAAQA,AAAO,eAAPA,GACtCqF,EAAOzD,IAAI,CAAC5B,GAGhB,OAAOqF,CACT,ECSA,GAJA,SAAcqT,CAAM,EAClB,OAAOiF,ACJAzd,AAAS,MDIGwY,GCJKqE,GAAS7c,ADIdwY,ECJoB5Z,MAAM,GAAK,CAAC0Z,EDIhCE,GAAUkF,GAAclF,GAAUmF,GAASnF,EAChE,EEnBA,GAJA,SAAoBA,CAAM,EACxB,OAAOoF,GAAepF,EAAQ5Y,GpBiBjB4b,GoBhBf,E,6HCJA,IAAIxK,GAAiBqG,AAHH1X,OAAO6C,SAAS,CAGDwO,cAAc,CAgF/C,OAjEA,SAAsBwH,CAAM,CAAErC,CAAK,CAAEmD,CAAO,CAAEC,CAAU,CAAEC,CAAS,CAAEC,CAAK,EACxE,IAAIC,EAAYJ,AAtBS,EAsBTA,EACZuE,EAAWC,GAAWtF,GACtBuF,EAAYF,EAASjf,MAAM,CAI/B,GAAImf,GAFYC,AADDF,GAAW3H,GACDvX,MAAM,EAED,CAAC8a,EAC7B,MAAO,GAGT,IADA,IAAI3S,EAAQgX,EACLhX,KAAS,CACd,IAAIjH,EAAM+d,CAAQ,CAAC9W,EAAM,CACzB,GAAI,CAAE2S,CAAAA,EAAY5Z,KAAOqW,EAAQnF,GAAe9R,IAAI,CAACiX,EAAOrW,EAAG,EAC7D,MAAO,EAEX,CAEA,IAAIme,EAAaxE,EAAM5X,GAAG,CAAC2W,GACvBsB,EAAaL,EAAM5X,GAAG,CAACsU,GAC3B,GAAI8H,GAAcnE,EAChB,OAAOmE,GAAc9H,GAAS2D,GAActB,EAE9C,IAAIrT,EAAS,GACbsU,EAAM1Z,GAAG,CAACyY,EAAQrC,GAClBsD,EAAM1Z,GAAG,CAACoW,EAAOqC,GAGjB,IADA,IAAI0F,EAAWxE,EACR,EAAE3S,EAAQgX,GAAW,CAE1B,IAAII,EAAW3F,CAAM,CADrB1Y,EAAM+d,CAAQ,CAAC9W,EAAM,CACK,CACtBkT,EAAW9D,CAAK,CAACrW,EAAI,CAEzB,GAAIyZ,EACF,IAAIW,EAAWR,EACXH,EAAWU,EAAUkE,EAAUre,EAAKqW,EAAOqC,EAAQiB,GACnDF,EAAW4E,EAAUlE,EAAUna,EAAK0Y,EAAQrC,EAAOsD,GAGzD,GAAI,CAAES,CAAAA,AAAa3K,SAAb2K,EACGiE,IAAalE,GAAYT,EAAU2E,EAAUlE,EAAUX,EAASC,EAAYE,GAC7ES,CAAO,EACR,CACL/U,EAAS,GACT,KACF,CACA+Y,GAAaA,CAAAA,EAAWpe,AAAO,eAAPA,CAAmB,CAC7C,CACA,GAAIqF,GAAU,CAAC+Y,EAAU,CACvB,IAAIE,EAAU5F,EAAOpZ,WAAW,CAC5Bif,EAAUlI,EAAM/W,WAAW,AAG3Bgf,CAAAA,GAAWC,GACV,gBAAiB7F,GAAU,gBAAiBrC,GAC7C,CAAE,CAAkB,YAAlB,OAAOiI,GAAgC,GAAPA,EAAmBA,IACnD,AAAkB,YAAlB,OAAOC,GAAgC,GAAPA,EAAmBA,EAAO,GAC9DlZ,CAAAA,EAAS,EAAI,CAEjB,CAGA,OAFAsU,EAAM,MAAS,CAACjB,GAChBiB,EAAM,MAAS,CAACtD,GACThR,CACT,ECnFA,IAAImZ,GAAW5F,EtEIAvB,EsEJgB,YCA3BzC,GAAUgE,EvEICvB,EuEJe,WCA1BoH,GAAM7F,ExEIKvB,EwEJW,OCAtBnC,GAAU0D,EzEICvB,EyEJe,WCK1BqH,GAAS,eAETC,GAAa,mBACbC,GAAS,eACTC,GAAa,mBAEbC,GAAc,oBAGdC,GAAqBtG,EJZV+F,IIaXQ,GAAgBvG,E9DbL7Y,G8DcXqf,GAAoBxG,EHdT7D,IGeXsK,GAAgBzG,EFfLgG,IEgBXU,GAAoB1G,EDhBTvD,ICyBXkK,GAASpH,CAGRwG,EJ5BUA,II4BEY,GAAO,IJ5BTZ,GI4BsB,IAAIxI,YAAY,MAAQ8I,IACxDlf,A9D7BUA,G8D6BHwf,GAAO,I9D7BJxf,I8D6BgB8e,IAC1B9J,AH9BUA,IG8BCwK,GAAOxK,AH9BRA,GG8BQA,OAAe,KAAO+J,IACxCF,AF/BUA,IE+BHW,GAAO,IF/BJX,KE+BgBG,IAC1B1J,ADhCUA,ICgCCkK,GAAO,IDhCRlK,KCgCwB2J,EAAAA,GACrCO,CAAAA,GAAS,SAASlf,CAAK,EACrB,IAAImF,EAAS2S,EAAW9X,GACpBsd,EAAOnY,AA/BC,mBA+BDA,EAAsBnF,EAAMZ,WAAW,CAAGmQ,OACjD4P,EAAa7B,EAAO/E,EAAS+E,GAAQ,GAEzC,GAAI6B,EACF,OAAQA,GACN,KAAKN,GAAoB,OAAOD,EAChC,MAAKE,GAAe,OAAON,EAC3B,MAAKO,GAAmB,OAAON,EAC/B,MAAKO,GAAe,OAAON,EAC3B,MAAKO,GAAmB,OAAON,EACjC,CAEF,OAAOxZ,CACT,GAGF,OAAe+Z,GC5Cf,IAAIE,GAAU,qBACVC,GAAW,iBACXC,GAAY,kBAMZtO,GAAiBqG,AAHH1X,OAAO6C,SAAS,CAGDwO,cAAc,CA6D/C,OA7CA,SAAyBwH,CAAM,CAAErC,CAAK,CAAEmD,CAAO,CAAEC,CAAU,CAAEC,CAAS,CAAEC,CAAK,EAC3E,IAAI8F,EAAW3e,A9BbFA,G8BaU4X,GACnBgH,EAAW5e,A9BdFA,G8BcUuV,GACnBsJ,EAASF,EAAWF,GAAWH,GAAO1G,GACtCkH,EAASF,EAAWH,GAAWH,GAAO/I,GAE1CsJ,EAASA,GAAUL,GAAUE,GAAYG,EACzCC,EAASA,GAAUN,GAAUE,GAAYI,EAEzC,IAAIC,EAAWF,GAAUH,GACrBM,EAAWF,GAAUJ,GACrBO,EAAYJ,GAAUC,EAE1B,GAAIG,GAAa1D,GAAS3D,GAAS,CACjC,GAAI,CAAC2D,GAAShG,GACZ,MAAO,GAEToJ,EAAW,GACXI,EAAW,EACb,CACA,GAAIE,GAAa,CAACF,EAEhB,OADAlG,GAAUA,CAAAA,EAAQ,IpDhCPV,CoDgCWA,EACdwG,GAAY3C,AfjCTA,GeiCsBpE,GAC7BwC,EAAYxC,EAAQrC,EAAOmD,EAASC,EAAYC,EAAWC,GAC3DqG,GAAWtH,EAAQrC,EAAOsJ,EAAQnG,EAASC,EAAYC,EAAWC,GAExE,GAAI,CAAEH,CAAAA,AArDmB,EAqDnBA,CAAUyG,EAAuB,CACrC,IAAIC,EAAeL,GAAY3O,GAAe9R,IAAI,CAACsZ,EAAQ,eACvDyH,EAAeL,GAAY5O,GAAe9R,IAAI,CAACiX,EAAO,eAE1D,GAAI6J,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAexH,EAAOxY,KAAK,GAAKwY,EAC/C2H,EAAeF,EAAe9J,EAAMnW,KAAK,GAAKmW,EAGlD,OADAsD,GAAUA,CAAAA,EAAQ,IpD7CTV,CoD6CaA,EACfS,EAAU0G,EAAcC,EAAc7G,EAASC,EAAYE,EACpE,CACF,OACA,CAAI,CAACoG,IAGLpG,GAAUA,CAAAA,EAAQ,IpDpDLV,CoDoDSA,EACfqH,GAAa5H,EAAQrC,EAAOmD,EAASC,EAAYC,EAAWC,GACrE,EC9CA,GAJA,SAAiBzZ,CAAK,CAAEmW,CAAK,EAC3B,OAAOkK,ACdT,SAASA,EAAYrgB,CAAK,CAAEmW,CAAK,CAAEmD,CAAO,CAAEC,CAAU,CAAEE,CAAK,SAC3D,AAAIzZ,IAAUmW,IAGVnW,AAAS,MAATA,GAAiBmW,AAAS,MAATA,GAAkB,CAACyF,GAAa5b,IAAW4b,GAAazF,EAAK,EAG3EmK,GAAgBtgB,EAAOmW,EAAOmD,EAASC,EAAY8G,EAAa5G,GAF9DzZ,GAAUA,GAASmW,GAAUA,EAGxC,EDMqBnW,EAAOmW,EAC5B,C,qDEXA,MAJA,SAAqBnW,CAAK,EACxB,OAAOA,AAAUuP,SAAVvP,CACT,C,kEC0CIugB,EAA0B,WAC5B,SAASA,IACP,IAAI,CAAC/a,GAAG,CAAG,CAAC,EACZ,IAAI,CAAC5G,MAAM,CAAG,CAChB,CA8CA,OA7CA2hB,EAAW/d,SAAS,CAACzC,GAAG,CAAG,SAAUD,CAAG,CAAEE,CAAK,EAC7C,IAAIwgB,EAAY,IAAI,CAAChc,IAAI,CAAC1E,GACtB2gB,EAAS,IAAI,CAACjb,GAAG,CAACgb,EAAU,AAC5B,CAACC,GACH,KAAI,CAACjb,GAAG,CAACgb,EAAU,CAAGC,EAAS,EAAE,AAAD,EAElCA,EAAO/e,IAAI,CAAC,CAAC5B,EAAKE,EAAM,EACxB,IAAI,CAACpB,MAAM,EAAI,CACjB,EACA2hB,EAAW/d,SAAS,CAACgC,IAAI,CAAG,SAAU1E,CAAG,EACvC,IAAI0gB,EAAY,EAAE,CAClB,IAAK,IAAIxgB,KAASF,EAChB0gB,EAAU9e,IAAI,CAAC/B,OAAO6C,SAAS,CAACvD,QAAQ,CAACC,IAAI,CAACY,CAAG,CAACE,EAAM,GAE1D,OAAOwgB,EAAU/a,IAAI,EACvB,EACA8a,EAAW/d,SAAS,CAACX,GAAG,CAAG,SAAU/B,CAAG,EAKtC,GAAI,IAAI,CAAClB,MAAM,EAAI,IAAK,CACtB,IAAK,IAAIuH,KAAK,IAAI,CAACX,GAAG,CAEpB,IAAK,IADDib,EAAS,IAAI,CAACjb,GAAG,CAACW,EAAE,CACf1E,EAAI,EAAGA,EAAIgf,EAAO7hB,MAAM,CAAE6C,GAAK,EAAG,CACzC,IAAIif,EAAUD,CAAM,CAAChf,EAAE,CACvB,GAAIif,CAAO,CAAC,EAAE,GAAK5gB,EACjB,OAAO4gB,CAAO,CAAC,EAAE,AAErB,CAEF,MACF,CACA,IAAIF,EAAY,IAAI,CAAChc,IAAI,CAAC1E,GACtB2gB,EAAS,IAAI,CAACjb,GAAG,CAACgb,EAAU,CAChC,GAAKC,EAGL,IAAK,IAAIhf,EAAI,EAAGA,EAAIgf,EAAO7hB,MAAM,CAAE6C,GAAK,EAAG,CACzC,IAAIif,EAAUD,CAAM,CAAChf,EAAE,CACvB,GAAIif,CAAO,CAAC,EAAE,GAAK5gB,EACjB,OAAO4gB,CAAO,CAAC,EAAE,AAErB,CACF,EACOH,CACT,IC/EA,MAHyBI,AAAAA,GAAAA,A,QAAAA,CAAAA,AAAAA,EAAQ,SAAe3gB,CAAK,EACnD,OAAOA,AAAS,MAATA,GAAiB,AAAuB,YAAvB,OAAOA,EAAM0R,KAAK,CAAkB1R,EAAM0R,KAAK,GAAKkP,ADpB/D,SAASA,EAAO5gB,CAAK,CAAE4R,CAAI,CAAEpM,CAAG,EAI7C,GAHAA,GAAQA,CAAAA,EAAM,IAAI+a,CAAW,EAGzBM,AA0CN,SAAsBC,CAAK,EACzB,IAAIlJ,EAAO,AAAOkJ,SAAAA,EAAAA,Y,AAAAA,G,4BAAAA,E,qCAAAA,EAClB,OAAOA,AAAS,MAATA,GAAiBlJ,AAAQ,UAARA,GAAoBA,AAAQ,YAARA,CAC9C,EA7CmB5X,GACf,OAAOA,EAET,IAAIwR,EAAO,SAAcuP,CAAW,EAElC,IAAIC,EAAaxb,EAAI3D,GAAG,CAAC7B,GACzB,GAAIghB,EACF,OAAOA,EAGT,IAAK,IAAIlhB,KADT0F,EAAIzF,GAAG,CAACC,EAAO+gB,GACC/gB,EACVL,OAAO6C,SAAS,CAACwO,cAAc,CAAC9R,IAAI,CAACc,EAAOF,IAC9CihB,CAAAA,CAAW,CAACjhB,EAAI,CAAG8R,EAAOgP,EAAO5gB,CAAK,CAACF,EAAI,CAAE,GAAM0F,GAAOxF,CAAK,CAACF,EAAI,AAAD,EAGvE,OAAOihB,CACT,EACA,OAAQnJ,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAK5X,IACX,IAAK,SACH,OAAOwR,EAAK7R,OAAOmO,MAAM,CAACnO,OAAOshB,cAAc,CAACjhB,IAClD,KAAK,QACH,OAAOwR,EAAK1S,MAAMkB,EAAMpB,MAAM,EAChC,KAAK,OACH,OAAO,IAAImF,KAAK/D,EAAMwa,OAAO,GAC/B,KAAK,SACH,OEvCG,IAAInC,OAAO5T,AFuCMzE,EEvCEkhB,MAAM,CAAEzc,AFuCVzE,EEvCkBzD,KAAK,CAAGkI,AFuC1BzE,EEvCkCzD,KAAK,CAAIkI,AAAAA,CFuC3CzE,EEvCmDyU,MAAM,CAAG,IAAM,EAAC,EAAMhQ,CFuCzEzE,EEvCiFmhB,UAAU,CAAG,IAAM,EAAC,EAAM1c,CFuC3GzE,EEvCmHohB,SAAS,CAAG,IAAM,EAAC,EAAM3c,CFuC5IzE,EEvCoJqhB,MAAM,CAAG,IAAM,EAAC,EAAM5c,CFuC1KzE,EEvCkLshB,OAAO,CAAG,IAAM,EAAC,EAAM7c,CFuCzMzE,EEvCiNuhB,MAAM,CAAG,IAAM,EAAC,EFwCvP,KAAK,YACL,IAAK,aACL,IAAK,oBACL,IAAK,aACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,iBACH,OAAOvhB,EAAMb,KAAK,EACpB,SACE,OAAOa,CACX,CACF,ECzBqFA,EAAO,GAC5F,E,mEEhCe,SAASwhB,EAAmBC,CAAI,EAG7C,IAFA,IACItgB,EADAugB,EAAO,EAAE,CAEN,CAAEvgB,AAAAA,CAAAA,EAAOsgB,EAAKtgB,IAAI,EAAC,EAAGJ,IAAI,EAC/B2gB,EAAKhgB,IAAI,CAACP,EAAKnB,KAAK,EAEtB,OAAO0hB,CACT,CCPe,SAASC,EAAcC,CAAI,CAAExZ,CAAC,CAAEsZ,CAAI,EAGjD,IAFA,IAAIG,EAAM,EACN7a,EAAM0a,EAAK9iB,MAAM,CACdijB,EAAM7a,GAAK,CAChB,GAAI4a,EAAKxZ,EAAGsZ,CAAI,CAACG,EAAI,EACnB,MAAO,GAETA,GAAO,CACT,CACA,MAAO,EACT,C,cCEA,MAAe,AAAqB,YAArB,OAAOliB,OAAOmiB,EAAE,CAAkBniB,OAAOmiB,EAAE,CAX1D,SAAmBnjB,CAAC,CAAEuG,CAAC,SAErB,AAAIvG,IAAMuG,EAGDvG,AAAM,IAANA,GAAW,EAAIA,GAAM,EAAIuG,EAGzBvG,GAAMA,GAAKuG,GAAMA,CAE5B,E,cCVIjG,EAAWU,OAAO6C,SAAS,CAACvD,QAAQ,CACpC8iB,EAA4B,WAC9B,MAAO9iB,AAA6B,uBAA7BA,EAASC,IAAI,CAAC4D,WAAsC,SAAsBsF,CAAC,EAChF,MAAOnJ,AAAqB,uBAArBA,EAASC,IAAI,CAACkJ,EACvB,EAAI,SAAsBA,CAAC,EACzB,MAAO4Z,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAK,SAAU5Z,EACxB,CACF,ICHI6Z,EAAa,CAAe,EAC9BhjB,SAAU,IACZ,GAAEoc,oBAAoB,CAAC,YACnB6G,EAAqB,CAAC,cAAe,UAAW,gBAAiB,WAAY,uBAAwB,iBAAkB,iBAAiB,CAExIC,EAA8B,WAGhC,OAAOrf,UAAUuY,oBAAoB,CAAC,SACxC,IACI+G,EAAW,SAAkBV,CAAI,CAAEW,CAAI,EAEzC,IADA,IAAIR,EAAM,EACHA,EAAMH,EAAK9iB,MAAM,EAAE,CACxB,GAAI8iB,CAAI,CAACG,EAAI,GAAKQ,EAChB,MAAO,GAETR,GAAO,CACT,CACA,MAAO,EACT,EAoBIjiB,EAAO,AAAuB,YAAvB,OAAOD,OAAOC,IAAI,EAAoBuiB,EAE/BxB,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAczP,CAAG,EACzC,GAAIvR,OAAOuR,KAASA,EAClB,MAAO,EAAE,CAGX,IADIoR,EAAMC,EACNC,EAAK,EAAE,CACPC,EAAkBN,GAAkBJ,AD3C3BA,EC2CwC7Q,GACrD,IAAKoR,KAAQpR,EACP8Q,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAKM,EAAMpR,IAAS,EAACuR,GAAmBH,AAAS,WAATA,CAAgB,GAC1DE,CAAAA,CAAE,CAACA,EAAG5jB,MAAM,CAAC,CAAG0jB,CAAG,EAGvB,GAAIL,EAEF,IADAM,EAAOL,EAAmBtjB,MAAM,CAAG,EAC5B2jB,GAAQ,GACbD,EAAOJ,CAAkB,CAACK,EAAK,CAC3BP,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAKM,EAAMpR,IAAQ,CAACkR,EAASI,EAAIF,IACnCE,CAAAA,CAAE,CAACA,EAAG5jB,MAAM,CAAC,CAAG0jB,CAAG,EAErBC,GAAQ,EAGZ,OAAOC,CACT,GAzB+E7B,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAczP,CAAG,EACtG,OAAOvR,OAAOuR,KAASA,EAAM,EAAE,CAAGvR,OAAOC,IAAI,CAACsR,EAChD,G,sGC3BA,SAASwR,EAAmBC,CAAS,CAAEC,CAAS,CAAEC,CAAM,CAAEC,CAAM,EAC9D,IAAInkB,EAAI6iB,EAAmBmB,GAE3B,SAAStM,EAAG0M,CAAE,CAAEC,CAAE,EAChB,OAAOC,EAAQF,EAAIC,EAAIH,EAAO1jB,KAAK,GAAI2jB,EAAO3jB,KAAK,GACrD,CAGA,MAAO,CAACwiB,EAAc,SAAUzc,CAAC,CAAEge,CAAK,EACtC,MAAO,CAACvB,EAActL,EAAI6M,EAAOhe,EACnC,EARQsc,EAAmBoB,GAQrBjkB,EACR,CACe,SAASskB,EAAQtkB,CAAC,CAAEuG,CAAC,CAAE2d,CAAM,CAAEC,CAAM,EAClD,GAAIK,EAAUxkB,EAAGuG,GACf,MAAO,GAET,ICjCIke,EDiCAC,EAAQzL,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAKjZ,GACjB,GAAI0kB,IAAUzL,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAK1S,GACjB,MAAO,GAET,GAAI,AAAoC,YAApC,OAAOvG,CAAC,CAAC,sBAAsB,EAAmB,AAAoC,YAApC,OAAOuG,CAAC,CAAC,sBAAsB,CACnF,MAAO,AAAoC,YAApC,OAAOvG,CAAC,CAAC,sBAAsB,EAAmBA,CAAC,CAAC,sBAAsB,CAACuG,IAAM,AAAoC,YAApC,OAAOA,CAAC,CAAC,sBAAsB,EAAmBA,CAAC,CAAC,sBAAsB,CAACvG,GAErK,GAAI,AAAoB,YAApB,OAAOA,EAAE2kB,MAAM,EAAmB,AAAoB,YAApB,OAAOpe,EAAEoe,MAAM,CACnD,MAAO,AAAoB,YAApB,OAAO3kB,EAAE2kB,MAAM,EAAmB3kB,EAAE2kB,MAAM,CAACpe,IAAM,AAAoB,YAApB,OAAOA,EAAEoe,MAAM,EAAmBpe,EAAEoe,MAAM,CAAC3kB,GAErG,OAAQ0kB,GACN,IAAK,YACL,IAAK,QACL,IAAK,SACH,GAAI,AAAyB,YAAzB,OAAO1kB,EAAES,WAAW,EAAmBmkB,AAAiC,YC9CzEH,CAAS,OADZA,EAAQ9gB,OD+CiD3D,EAAES,WAAW,EC/CpDgkB,KAAK,CAAC,oBACL,GAAKA,CAAK,CAAC,EAAE,AAAD,ED+C7B,OAAOzkB,IAAMuG,EAEf,KACF,KAAK,UACL,IAAK,SACL,IAAK,SACH,GAAI,CAAE,EAAa,SAANvG,EAAAA,YAAP,EAAOA,EAAC,IAAK,CAAOuG,SAAAA,EAAAA,YAAP,EAAOA,EAAC,GAAIie,EAAUxkB,EAAE6b,OAAO,GAAItV,EAAEsV,OAAO,GAAE,EAC/D,MAAO,GAET,KACF,KAAK,OACH,GAAI,CAAC2I,EAAUxkB,EAAE6b,OAAO,GAAItV,EAAEsV,OAAO,IACnC,MAAO,GAET,KACF,KAAK,QACH,OAAO7b,EAAEJ,IAAI,GAAK2G,EAAE3G,IAAI,EAAII,EAAEgc,OAAO,GAAKzV,EAAEyV,OAAO,AACrD,KAAK,SACH,GAAMhc,EAAEuiB,MAAM,GAAKhc,EAAEgc,MAAM,EAAIviB,EAAE8V,MAAM,GAAKvP,EAAEuP,MAAM,EAAI9V,EAAEwiB,UAAU,GAAKjc,EAAEic,UAAU,EAAIxiB,EAAEyiB,SAAS,GAAKlc,EAAEkc,SAAS,EAAIziB,EAAE0iB,MAAM,GAAKnc,EAAEmc,MAAM,EAAI1iB,EAAE2iB,OAAO,GAAKpc,EAAEoc,OAAM,CACrK,MAAO,EAGb,CAEA,IADA,IAAIO,EAAMgB,EAAOjkB,MAAM,CAAG,EACnBijB,GAAO,GAAG,CACf,GAAIgB,CAAM,CAAChB,EAAI,GAAKljB,EAClB,OAAOmkB,CAAM,CAACjB,EAAI,GAAK3c,EAEzB2c,GAAO,CACT,CACA,OAAQwB,GACN,IAAK,MACH,GAAI1kB,EAAEmY,IAAI,GAAK5R,EAAE4R,IAAI,CACnB,MAAO,GAET,OAAO4L,EAAmB/jB,EAAEkU,OAAO,GAAI3N,EAAE2N,OAAO,GAAIgQ,EAAO1iB,MAAM,CAAC,CAACxB,EAAE,EAAGmkB,EAAO3iB,MAAM,CAAC,CAAC+E,EAAE,EAC3F,KAAK,MACH,GAAIvG,EAAEmY,IAAI,GAAK5R,EAAE4R,IAAI,CACnB,MAAO,GAET,OAAO4L,EAAmB/jB,EAAEsa,MAAM,GAAI/T,EAAE+T,MAAM,GAAI4J,EAAO1iB,MAAM,CAAC,CAACxB,EAAE,EAAGmkB,EAAO3iB,MAAM,CAAC,CAAC+E,EAAE,EACzF,KAAK,YACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,aACL,IAAK,oBACL,IAAK,aACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,eACL,IAAK,cACH,KACF,SAEE,MAAO,EACX,CACA,IAAIse,EAAQ5jB,AD7CCA,EC6CIjB,GACjB,GAAI6kB,EAAM5kB,MAAM,GAAKgB,AD9CRA,EC8CasF,GAAGtG,MAAM,CACjC,MAAO,GAET,IAAI6kB,EAAiBZ,EAAO1iB,MAAM,CAAC,CAACxB,EAAE,EAClC+kB,EAAiBZ,EAAO3iB,MAAM,CAAC,CAAC+E,EAAE,EAEtC,IADA2c,EAAM2B,EAAM5kB,MAAM,CAAG,EACdijB,GAAO,GAAG,CACf,IAAI/hB,EAAM0jB,CAAK,CAAC3B,EAAI,CACpB,GAAI,CAAEG,CAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAKliB,EAAKoF,IAAM+d,EAAQ/d,CAAC,CAACpF,EAAI,CAAEnB,CAAC,CAACmB,EAAI,CAAE2jB,EAAgBC,EAAc,EAC1E,MAAO,GAET7B,GAAO,CACT,CACA,MAAO,EACT,CEnGA,MAH0B8B,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAgBhlB,CAAC,CAAEuG,CAAC,EACpD,OAAO+d,EAAQtkB,EAAGuG,EAAG,EAAE,CAAE,EAAE,CAC7B,E,iECpBe,SAASyb,EAAQzc,CAAE,EAChC,OAAO,SAAS0f,EAAGjlB,CAAC,SAClB,AAAImE,AAAqB,GAArBA,UAAUlE,MAAM,EAAUilB,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAellB,GACpCilB,EAEA1f,EAAGrB,KAAK,CAAC,IAAI,CAAEC,UAE1B,CACF,C,2ECPe,SAAS6gB,EAAQzf,CAAE,EAChC,OAAO,SAAS4f,EAAGnlB,CAAC,CAAEuG,CAAC,EACrB,OAAQpC,UAAUlE,MAAM,EACtB,KAAK,EACH,OAAOklB,CACT,MAAK,EACH,MAAOD,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAellB,GAAKmlB,EAAKnD,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAUqC,CAAE,EAClD,OAAO9e,EAAGvF,EAAGqkB,EACf,EACF,SACE,MAAOa,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAellB,IAAMklB,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAe3e,GAAK4e,EAAKD,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAellB,GAAKgiB,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAUoC,CAAE,EAC3F,OAAO7e,EAAG6e,EAAI7d,EAChB,GAAK2e,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAe3e,GAAKyb,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAUqC,CAAE,EAC3C,OAAO9e,EAAGvF,EAAGqkB,EACf,GAAK9e,EAAGvF,EAAGuG,EACf,CACF,CACF,C,qFChBe,SAAS6e,EAAQ7f,CAAE,EAChC,OAAO,SAAS8f,EAAGrlB,CAAC,CAAEuG,CAAC,CAAEmF,CAAC,EACxB,OAAQvH,UAAUlE,MAAM,EACtB,KAAK,EACH,OAAOolB,CACT,MAAK,EACH,MAAOH,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAellB,GAAKqlB,EAAKL,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAUX,CAAE,CAAEiB,CAAE,EACtD,OAAO/f,EAAGvF,EAAGqkB,EAAIiB,EACnB,EACF,MAAK,EACH,MAAOJ,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAellB,IAAMklB,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAe3e,GAAK8e,EAAKH,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAellB,GAAKglB,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAUZ,CAAE,CAAEkB,CAAE,EAC/F,OAAO/f,EAAG6e,EAAI7d,EAAG+e,EACnB,GAAKJ,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAe3e,GAAKye,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAUX,CAAE,CAAEiB,CAAE,EAC/C,OAAO/f,EAAGvF,EAAGqkB,EAAIiB,EACnB,GAAKtD,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAUsD,CAAE,EACvB,OAAO/f,EAAGvF,EAAGuG,EAAG+e,EAClB,EACF,SACE,MAAOJ,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAellB,IAAMklB,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAe3e,IAAM2e,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAexZ,GAAK2Z,EAAKH,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAellB,IAAMklB,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAe3e,GAAKye,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAUZ,CAAE,CAAEC,CAAE,EACzI,OAAO9e,EAAG6e,EAAIC,EAAI3Y,EACpB,GAAKwZ,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAellB,IAAMklB,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAexZ,GAAKsZ,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAUZ,CAAE,CAAEkB,CAAE,EACpE,OAAO/f,EAAG6e,EAAI7d,EAAG+e,EACnB,GAAKJ,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAe3e,IAAM2e,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAexZ,GAAKsZ,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAUX,CAAE,CAAEiB,CAAE,EACpE,OAAO/f,EAAGvF,EAAGqkB,EAAIiB,EACnB,GAAKJ,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAellB,GAAKgiB,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAUoC,CAAE,EAC3C,OAAO7e,EAAG6e,EAAI7d,EAAGmF,EACnB,GAAKwZ,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAe3e,GAAKyb,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAUqC,CAAE,EAC3C,OAAO9e,EAAGvF,EAAGqkB,EAAI3Y,EACnB,GAAKwZ,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAexZ,GAAKsW,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAUsD,CAAE,EAC3C,OAAO/f,EAAGvF,EAAGuG,EAAG+e,EAClB,GAAK/f,EAAGvF,EAAGuG,EAAGmF,EAClB,CACF,CACF,C,oCC7Ce,SAAS2X,EAAKM,CAAI,CAAEpR,CAAG,EACpC,OAAOvR,OAAO6C,SAAS,CAACwO,cAAc,CAAC9R,IAAI,CAACgS,EAAKoR,EACnD,C,kDCFe,SAASuB,EAAellB,CAAC,EACtC,OAAOA,AAAK,MAALA,GAAa,CAAa,SAANA,EAAAA,Y,AAAAA,G,4BAAAA,E,qCAAAA,CAAC,GAAK,UAAYA,AAAkC,KAAlCA,CAAC,CAAC,2BAA2B,AAC5E,C,6FCFe,SAASulB,EAAU9b,CAAC,EACjC,MAAOzI,AAAsC,oBAAtCA,OAAO6C,SAAS,CAACvD,QAAQ,CAACC,IAAI,CAACkJ,EACxC,C,cC0BI+b,EAA4BJ,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAsB7f,CAAE,CAAE1C,CAAC,CAAE/E,CAAC,EACpE,IACIiS,EADAvJ,EAAS,CAAC,EAId,IAAKuJ,KADLjS,EAAIA,GAAK,CAAC,EADV+E,EAAIA,GAAK,CAAC,EAGJwgB,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAKtT,EAAGlN,IACV2D,CAAAA,CAAM,CAACuJ,EAAE,CAAGsT,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAKtT,EAAGjS,GAAKyH,EAAGwK,EAAGlN,CAAC,CAACkN,EAAE,CAAEjS,CAAC,CAACiS,EAAE,EAAIlN,CAAC,CAACkN,EAAE,AAAD,EAGpD,IAAKA,KAAKjS,EACJulB,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAKtT,EAAGjS,IAAM,CAACulB,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAKtT,EAAGvJ,IACzBA,CAAAA,CAAM,CAACuJ,EAAE,CAAGjS,CAAC,CAACiS,EAAE,AAAD,EAGnB,OAAOvJ,CACT,GCZIif,EAAgCL,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAASK,EAAiBlgB,CAAE,CAAEmgB,CAAI,CAAEC,CAAI,EAClF,OAAOH,ADYMA,ECZO,SAAUzV,CAAC,CAAE6V,CAAI,CAAEC,CAAI,SACzC,AAAIN,EAAUK,IAASL,EAAUM,GACxBJ,EAAiBlgB,EAAIqgB,EAAMC,GAE3BtgB,EAAGwK,EAAG6V,EAAMC,EAEvB,EAAGH,EAAMC,EACX,GCXA,MALkCX,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAwBU,CAAI,CAAEC,CAAI,EAC1E,OAAOF,ADgBMA,EChBW,SAAU1V,CAAC,CAAE6V,CAAI,CAAEC,CAAI,EAC7C,OAAOA,CACT,EAAGH,EAAMC,EACX,E,yDC1BsCG,EAAaC,EAAcC,E,oBCUjE,MAAe7lB,MAAM8B,OAAO,EAAI,SAAkB6G,CAAG,EACnD,OAAOA,AAAO,MAAPA,GAAeA,EAAI7I,MAAM,EAAI,GAAKe,AAAwC,mBAAxCA,OAAO6C,SAAS,CAACvD,QAAQ,CAACC,IAAI,CAACuI,EAC1E,ECQA,IAAImd,EAA4BjE,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAqBvY,CAAC,QAC5D,EAAIyc,EAASzc,KAGT,CAACA,GAGD,CAAOA,SAAAA,EAAAA,Y,AAAAA,G,4BAAAA,E,qCAAAA,CAAC,GAAK,UC5B4B,oBAAtCzI,OAAO6C,SAAS,CAACvD,QAAQ,CAACC,IAAI,CD+BvBkJ,KAGG,IAAbA,EAAExJ,MAAM,EAGRwJ,EAAExJ,MAAM,CAAG,GACNwJ,EAAE4I,cAAc,CAAC,IAAM5I,EAAE4I,cAAc,CAAC5I,EAAExJ,MAAM,CAAG,GAG9D,GFzCIkmB,EAAc,AAAkB,aAAlB,OAAOpkB,OAAyBA,OAAOC,QAAQ,CAAG,aIwBhEokB,EAAoBpB,AAAAA,GAAAA,A,QAAAA,CAAAA,AAAAA,EAAQ,SAAczf,CAAE,CAAE8gB,CAAO,MCzB1BnmB,ED0BfqF,EAAGtF,MAAM,CC1BSsF,ED0BP,WACvB,OAAOA,EAAGrB,KAAK,CAACmiB,EAASliB,UAC3B,EC1BA,OAAQjE,GACN,KAAK,EACH,OAAO,WACL,OAAOqF,EAAGrB,KAAK,CAAC,IAAI,CAAEC,UACxB,CACF,MAAK,EACH,OAAO,SAAUmiB,CAAE,EACjB,OAAO/gB,EAAGrB,KAAK,CAAC,IAAI,CAAEC,UACxB,CACF,MAAK,EACH,OAAO,SAAUmiB,CAAE,CAAEC,CAAE,EACrB,OAAOhhB,EAAGrB,KAAK,CAAC,IAAI,CAAEC,UACxB,CACF,MAAK,EACH,OAAO,SAAUmiB,CAAE,CAAEC,CAAE,CAAEC,CAAE,EACzB,OAAOjhB,EAAGrB,KAAK,CAAC,IAAI,CAAEC,UACxB,CACF,MAAK,EACH,OAAO,SAAUmiB,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,EAC7B,OAAOlhB,EAAGrB,KAAK,CAAC,IAAI,CAAEC,UACxB,CACF,MAAK,EACH,OAAO,SAAUmiB,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,EACjC,OAAOnhB,EAAGrB,KAAK,CAAC,IAAI,CAAEC,UACxB,CACF,MAAK,EACH,OAAO,SAAUmiB,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,EACrC,OAAOphB,EAAGrB,KAAK,CAAC,IAAI,CAAEC,UACxB,CACF,MAAK,EACH,OAAO,SAAUmiB,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,EACzC,OAAOrhB,EAAGrB,KAAK,CAAC,IAAI,CAAEC,UACxB,CACF,MAAK,EACH,OAAO,SAAUmiB,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,EAC7C,OAAOthB,EAAGrB,KAAK,CAAC,IAAI,CAAEC,UACxB,CACF,MAAK,EACH,OAAO,SAAUmiB,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,EACjD,OAAOvhB,EAAGrB,KAAK,CAAC,IAAI,CAAEC,UACxB,CACF,MAAK,GACH,OAAO,SAAUmiB,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,CAAEC,CAAE,EACrD,OAAOxhB,EAAGrB,KAAK,CAAC,IAAI,CAAEC,UACxB,CACF,SACE,MAAM,AAAI5C,MAAM,8EACpB,CDpBF,GEXIylB,GNhBkClB,EOFvB,SAAuBmB,CAAE,CAAEC,CAAG,CAAEnE,CAAI,EAGjD,IAFA,IAAIG,EAAM,EACN7a,EAAM0a,EAAK9iB,MAAM,CACdijB,EAAM7a,GAAK,CAEhB,GAAI6e,AADJA,CAAAA,EAAMD,CAAE,CAAC,oBAAoB,CAACC,EAAKnE,CAAI,CAACG,EAAI,IACjCgE,CAAG,CAAC,uBAAuB,CAAE,CACtCA,EAAMA,CAAG,CAAC,qBAAqB,CAC/B,KACF,CACAhE,GAAO,CACT,CACA,OAAO+D,CAAE,CAAC,sBAAsB,CAACC,EACnC,EPVmDnB,EManD,SAAwBkB,CAAE,CAAEC,CAAG,CAAE3U,CAAG,CAAE4U,CAAU,EAC9C,OAAOF,CAAE,CAAC,sBAAsB,CAAC1U,CAAG,CAAC4U,EAAW,CAACf,AFcpCA,EEdyCa,CAAE,CAAC,oBAAoB,CAAEA,GAAKC,GACtF,ENfiElB,EMCjE,SAA0BiB,CAAE,CAAEC,CAAG,CAAEpE,CAAI,EAErC,IADA,IAAIsE,EAAOtE,EAAKtgB,IAAI,GACb,CAAC4kB,EAAKhlB,IAAI,EAAE,CAEjB,GAAI8kB,AADJA,CAAAA,EAAMD,CAAE,CAAC,oBAAoB,CAACC,EAAKE,EAAK/lB,KAAK,IAClC6lB,CAAG,CAAC,uBAAuB,CAAE,CACtCA,EAAMA,CAAG,CAAC,qBAAqB,CAC/B,KACF,CACAE,EAAOtE,EAAKtgB,IAAI,EAClB,CACA,OAAOykB,CAAE,CAAC,sBAAsB,CAACC,EACnC,ENXS,SAAiBD,CAAE,CAAEC,CAAG,CAAEnE,CAAI,EACnC,GAAIkD,AEuCOA,EFvCMlD,GACf,OAAO+C,EAAYmB,EAAIC,EAAKnE,GAE9B,GAAIA,AAAQ,MAARA,EACF,OAAOmE,EAET,GAAI,AAAuC,YAAvC,OAAOnE,CAAI,CAAC,sBAAsB,CACpC,OAAOgD,EAAakB,EAAIC,EAAKnE,EAAM,uBAErC,GAAIA,AAAqB,MAArBA,CAAI,CAACoD,EAAY,CACnB,OAAOH,EAAeiB,EAAIC,EAAKnE,CAAI,CAACoD,EAAY,IAElD,GAAI,AAAqB,YAArB,OAAOpD,EAAKvgB,IAAI,CAClB,OAAOwjB,EAAeiB,EAAIC,EAAKnE,GAEjC,GAAI,AAAuB,YAAvB,OAAOA,EAAKsE,MAAM,CACpB,OAAOtB,EAAakB,EAAIC,EAAKnE,EAAM,SAErC,OAAM,AAAIjiB,UAAU,yCACtB,GQvBEwmB,EAAqB,WACvB,SAASA,EAAM/hB,CAAE,EACf,IAAI,CAAClD,CAAC,CAAGkD,CACX,CAUA,OATA+hB,EAAMzjB,SAAS,CAAC,oBAAoB,CAAG,WACrC,MAAM,AAAItC,MAAM,gCAClB,EACA+lB,EAAMzjB,SAAS,CAAC,sBAAsB,CAAG,SAAUqjB,CAAG,EACpD,OAAOA,CACT,EACAI,EAAMzjB,SAAS,CAAC,oBAAoB,CAAG,SAAUqjB,CAAG,CAAEzd,CAAC,EACrD,OAAO,IAAI,CAACpH,CAAC,CAAC6kB,EAAKzd,EACrB,EACO6d,CACT,IC6CA,MAH0BlC,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQ,SAAU6B,CAAE,CAAEC,CAAG,CAAEnE,CAAI,EACvD,OAAOiE,AHtCMA,EGsCG,AAAc,YAAd,OAAOC,EDzChB,IAAIK,ECyCuCL,GAAMA,EAAIC,EAAKnE,EACnE,E,oDC1BA,MAHwBf,AAAAA,GAAAA,A,QAAAA,CAAAA,AAAAA,EAAQ,SAAclZ,CAAG,EAC/C,OAAOA,AAAQ,OAARA,EAAe,OAASA,AAAQ8H,SAAR9H,EAAoB,YAAc9H,OAAO6C,SAAS,CAACvD,QAAQ,CAACC,IAAI,CAACuI,GAAKtI,KAAK,CAAC,EAAG,GAChH,E,4yCCvBqB+mB,EAAAA,SAAAA,CAAAA,MAAAA,EAAeC,EAAAA,SAAMC,CAArBF,GAAAA,YAAAA,OAAAA,GAAAA,OAAAA,EAAAA,MAAAA,AAAAA,UAAAA,qDAAAA,CAAAA,EAAAA,SAAAA,CAAAA,OAAAA,MAAAA,CAAAA,GAAAA,EAAAA,SAAAA,CAAAA,CAAAA,YAAAA,CAAAA,MAAAA,EAAAA,SAAAA,CAAAA,EAAAA,aAAAA,CAAAA,CAAAA,CAAAA,GAAAA,GAAAA,EAAAA,EAAAA,GAAqBE,I,EAAAA,EAAAA,EAAAA,G,0QAAAA,G,uWAAAA,SAAAA,EAM5BC,CAAAA,EAAAA,IAAAA,EAAAA,GAAAA,SAAAA,CAAAA,CAAAA,CAAAA,EAAAA,G,MAAAA,G,4BAAAA,C,sBAAAA,C,qBAAAA,I,CAAAA,aAAAA,C,EAAAA,MAAAA,AAAAA,UAAAA,oCAAAA,EAAAA,IAAAA,CAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,CAAAA,IAAAA,CACJA,IAAAA,YAoGI,SAACjW,CAAAA,EAAAA,EACNA,EAAAA,CAAKA,CAAAA,GAAAA,EAAAA,EAAAA,GAAAA,eAEG,SAACkW,CAAAA,CAAQC,CAAAA,EAClB/mB,EAAKmT,KAAAA,CAAM6T,QAAAA,EAAuB,YAAXF,GAAAA,CAAAA,EAKtBG,aAAAA,CAAiBjnB,AAAAA,CAAAA,EAAKinB,aAAAA,EAAiB/R,QAAQgS,OAAAA,EAAAA,EACjDC,IAAAA,CAAK,eACAnnB,EAAKonB,SAAAA,EAAwB,YAAXN,EAAAA,OAKfC,EAAAA,KAAAA,CAAAA,KAAAA,EAAAA,UAAAA,GAERM,KAAAA,CAAM,SAACjlB,CAAAA,EAAAA,MAAAA,EACD6kB,aAAAA,CAAgB/R,QAAQgS,OAAAA,GAAAA,EACxBI,QAAAA,CAAS,CAAEN,SAAAA,CAAU,IAEtB5kB,GAAOA,EAAI+Y,OAAAA,EACb/Y,CAAAA,EAAI+Y,OAAAA,CAAAA,WAAAA,MAAAA,CAAqB2L,EAAAA,8BAAAA,MAAAA,CAAmC1kB,EAAI+Y,OAAAA,GAG9Dnb,EAAK6mB,KAAAA,CAAMU,WAAAA,CAAAA,EACRV,KAAAA,CAAMU,WAAAA,CAAYnlB,GAEvBiT,WAAW,iBACHjT,CAAAA,GAKJA,CAAAA,EAAAA,CAAAA,GAAAA,EAAAA,EAAAA,GAAAA,iBAGK,eAETolB,EAAAA,EAAAA,EAAAA,CAAAA,EAAmBxnB,EAAK6mB,KAAAA,EAAAA,CAAAA,EAAAA,CAAOY,WAAYznB,EAAK4Q,EAAAA,AAAAA,GAAAA,OAAAA,OAE/C4W,EAAYE,WAAAA,CAAAA,OACZF,EAAYG,MAAAA,CAAAA,OACZH,EAAYI,QAAAA,CAAAA,OACZJ,EAAYK,SAAAA,CAAAA,OACZL,EAAYM,QAAAA,CAAAA,OACZN,EAAYD,WAAAA,CAAAA,OACZC,EAAYO,cAAAA,CAEZP,CAAAA,GAAAA,EApJFrU,KAAAA,CAAQ,CACX6T,SAAAA,CAAU,IAGPH,EAAMc,MAAAA,CAAAA,MACH,AAAIjnB,MAAAA,gMAAAA,OAAAA,CAAAA,CAAAA,OAAAA,AAAAA,EAAAA,CAAAA,CAAAA,IAAAA,oBAAAA,MAKd,2BACO0mB,SAAAA,CAAAA,CAAY,OACZY,YAAAA,CAAa,QAAS,eAQrBP,EAPEC,EAAc7mB,EAAKgmB,KAAAA,CAAMa,WAAAA,EAAe7mB,EAAK6mB,WAAAA,CAAAA,GAAAA,CAC9CA,EAAAA,MACG,AAAIhnB,MAAAA,qUAAAA,OAMRG,EAAK+P,EAAAA,CACP6W,EAAa5mB,EAAK+P,EAAAA,CAElB/P,CAAAA,EAAKonB,iBAAAA,CAAoBR,EAAaxT,SAASiU,aAAAA,CAC7CrnB,EAAKgmB,KAAAA,CAAMe,QAAAA,EAEbznB,OAAOC,IAAAA,CAAKS,EAAKgmB,KAAAA,CAAMgB,SAAAA,EAAWxnB,OAAAA,CAAQ,SAACC,CAAAA,EACzCmnB,EAAWU,KAAAA,CAAM7nB,EAAAA,CAAOO,EAAKgmB,KAAAA,CAAMgB,SAAAA,CAAUvnB,EAAAA,AAAAA,GAE/CO,EAAKgmB,KAAAA,CAAMiB,QAAAA,CAAS/W,WAAAA,CAAY0W,EAAAA,EAElC5mB,EAAKunB,MAAAA,CAASV,EAAY7mB,EAAKgmB,KAAAA,CAAMc,MAAAA,CAAAA,EAAAA,CACnCF,WAAAA,CAAAA,EACG5mB,EAAKwnB,cAAAA,KAEVxnB,EAAKunB,MAAAA,CAAOE,YAAAA,CAAanB,IAAAA,CAAKtmB,EAAKgmB,KAAAA,CAAMkB,cAAAA,EAClClnB,EAAKunB,MAAAA,CAAOE,YAAAA,AAAAA,EAAAA,CAAAA,EAAAA,CAAAA,IAAAA,qBAAAA,MAGvB,2BACON,YAAAA,CAAa,SAAU,cACtBO,EAAKH,MAAAA,EAAUG,EAAKH,MAAAA,CAAO3Y,MAAAA,CAAAA,OACtB8Y,EAAKH,MAAAA,CAAO3Y,MAAAA,CAAO8Y,EAAKF,cAAAA,GAAAA,EAAAA,CAAAA,EAAAA,CAAAA,IAAAA,uBAAAA,MAIrC,2BACOL,YAAAA,CAAa,UAAW,cACvBQ,EAAKJ,MAAAA,EAAsC,YAA5BI,EAAKJ,MAAAA,CAAOK,SAAAA,GAAAA,OACtBD,EAAKJ,MAAAA,CAAOM,OAAAA,EAAAA,GAInBC,IAAAA,CAAKV,iBAAAA,EAAAA,IAAAA,CACFA,iBAAAA,CAAkBW,UAAAA,CAAWC,WAAAA,CAAYF,IAAAA,CAAKV,iBAAAA,EAAAA,IAAAA,CAGhDb,SAAAA,CAAAA,CAAY,wBAEnB,yBACMuB,IAAAA,CAAK9B,KAAAA,CAAMiB,QAAAA,CAAAA,OACTgB,EAAAA,CAAAA,EAAoBA,EAAAA,CAAAA,CAAAA,QAAiBC,CAErCpC,EAAAA,aAAAA,CAACmC,EAAAA,CAAAA,CAAAA,QAAiBC,CAAAA,KACf,SAAC7Y,CAAAA,EAAAA,OACA8Y,EAAKtB,WAAAA,CAAcxX,EAAUA,EAAQwX,WAAAA,CAAc,KAE5C,OAKN,SAGHrW,EACJyX,EAAAA,CAAAA,EAAoBA,EAAAA,CAAAA,CAAAA,QAAiBC,CACnCpC,EAAAA,aAAAA,CAACmC,EAAAA,CAAAA,CAAAA,QAAiBC,CAAAA,KACf,SAAC7Y,CAAAA,EAAAA,OACA8Y,EAAKtB,WAAAA,CAAcxX,EAAUA,EAAQwX,WAAAA,CAAc,KAE5C,YAGT3X,EAAAA,OAEC4W,EAAAA,aAAMuB,CACXS,IAAAA,CAAK9B,KAAAA,CAAMe,QAAAA,CACX,CACEqB,IAAKN,IAAAA,CAAKO,SAAAA,CACVf,MAAOQ,IAAAA,CAAK9B,KAAAA,CAAMgB,SAAAA,CAClBsB,UAAWR,IAAAA,CAAK9B,KAAAA,CAAMuC,aAAAA,AAAAA,EAExB/X,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,AAzFQ3Q,EAyFR2Q,SAAAA,CAAAA,GAAAA,GAAAA,EAzFQ3Q,EAyFR2Q,GAAAA,CAAAA,IAAAA,EAvGaqV,EAAAA,eACG,CACpBkB,SAAU,MACVC,UAAW,CAAC,E,eACI,e,yECgBTJ,ICrBAqB,EAAmB,KAM9B,GAAI,CAOFA,EAAmB5kB,QAAQ,SAAS0P,aAAAA,EAAAA,CACpC,U,0LChBsB,IAAMyV,EAAexV,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAkB,UAAW,CACtEyV,OAAQ,GACRC,QAAS,IACb,GAqGO,SAASC,EAAcC,CAAiB,CAAEC,CAAI,MA5C3BD,EAAmBC,EA6CzC,GAAIA,AAAS3Z,SAAT2Z,EAEA,MAAOC,EAAQF,EAEnB,GAAI,CAASA,EAET,MAAO,GAEX,OAAOG,AArDeH,EAqDEA,EArDiBC,EAqDEA,EApD3C,CAAI,AAA6B,UAA7B,OAAOD,EACA,CAACI,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAYH,EAAKI,UAAU,CAACC,IAAI,CAAC,AAACpjB,GAAI8iB,IAAsB9iB,EAAEqjB,OAAO,GACtE1qB,MAAM8B,OAAO,CAACqoB,GACdA,EAAkBQ,KAAK,CAAC,AAACC,GAAK,CAACL,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAYH,EAAKI,UAAU,CAACC,IAAI,CAAC,AAACpjB,GAAIujB,IAAOvjB,EAAEqjB,OAAO,KACrF,AAACH,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAYJ,IACpBtT,QAAQtX,KAAK,CAAC,CAAC,iCAAiC,EAAE4qB,EAAkB,CAAC,CAAC,EAEnE,GADP,GAIO,CAACI,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAYH,AA0C4CA,EA1CvCS,KAAK,CAACJ,IAAI,CAAC,AAACK,GAAOA,AAAiB,qBAAjBA,EAAKJ,OAAO,EA2C5D,CA3DAX,EAAanW,SAAS,CAAC,AAACC,QATQoE,MACxB8S,CASAlX,CAAAA,EAAMmW,MAAM,EAAInW,EAAMoW,OAAO,GAVLhS,EAWRpE,EAAMoW,OAAO,CAT7Bc,CADAA,EAAS9S,EAAKmS,IAAI,EAAEY,gBAAgBC,eAAiBhT,EAAK8S,MAAM,GACtDA,EAAOvV,QAAQ,CAAC,MAC1BuV,CAAAA,EAASA,EAAOG,UAAU,CAAC,IAAK,IAAG,EAEnCC,AAhBR,SAAuBJ,CAAM,EACzB,GAAIA,AAAWta,SAAXsa,GAAwB,AAAkB,UAAlB,OAAOA,EAC/B,MAAO,GAEX,GAAI,CACA,IAAIK,KAAKC,MAAM,CAACN,EACpB,CAAE,MAAOrtB,EAAG,CACR,MAAO,EACX,CACA,MAAO,EACX,EAMsBqtB,IAAWA,IAAWpW,SAAS2W,eAAe,CAACC,YAAY,CAAC,SAC1E5W,SAAS2W,eAAe,CAACla,YAAY,CAAC,OAAQ2Z,GAOtD,G,mYC/CO,IAAMS,EAAc,c,+yBCOvBC,EAAoBC,EAAAA,EAAAA,CAAAA,QAA4B,GAAIC,EAAAA,EAAAA,CAAAA,QAA6B,IACrFD,EAAAA,EAAAA,CAAAA,SAA6B,CAAC,AAACE,GAAcH,EAAoBG,EAAaD,EAAAA,EAAAA,CAAAA,QAA6B,KAC3GA,EAAAA,EAAAA,CAAAA,SAA8B,CAAC,AAACE,GAAkBJ,EAAoBC,EAAAA,EAAAA,CAAAA,QAA4B,GAAIG,IACtGC,EAA8BJ,EAAAA,EAAAA,CAAAA,QAA4B,GAAIC,EAAAA,EAAAA,CAAAA,QAA6B,IAC3FD,EAAAA,EAAAA,CAAAA,SAA6B,CAAC,AAACE,GAAcE,EAA8BF,EAAaD,EAAAA,EAAAA,CAAAA,QAA6B,KACrHA,EAAAA,EAAAA,CAAAA,SAA8B,CAAC,AAACE,GAAkBC,EAA8BJ,EAAAA,EAAAA,CAAAA,QAA4B,GAAIG,IAChHE,EAA4BL,EAAAA,EAAAA,CAAAA,QAA4B,GAAIC,EAAAA,EAAAA,CAAAA,QAA6B,IACzFD,EAAAA,EAAAA,CAAAA,SAA6B,CAAC,AAACE,GAAcG,EAA4BH,EAAaD,EAAAA,EAAAA,CAAAA,QAA6B,KACnHA,EAAAA,EAAAA,CAAAA,SAA8B,CAAC,AAACE,GAAkBE,EAA4BL,EAAAA,EAAAA,CAAAA,QAA4B,GAAIG,IAC9GG,EAAwBN,EAAAA,EAAAA,CAAAA,QAA4B,GAAIO,EAAAA,EAAAA,CAAAA,QAA6B,GAAIN,EAAAA,EAAAA,CAAAA,QAA6B,IACtHD,EAAAA,EAAAA,CAAAA,SAA6B,CAAC,AAACE,IAC3BI,EAAwBJ,EAAaK,EAAAA,EAAAA,CAAAA,QAA6B,GAAIN,EAAAA,EAAAA,CAAAA,QAA6B,GACvG,GACAM,EAAAA,EAAAA,CAAAA,SAA8B,CAAC,AAACC,IAC5BF,EAAwBN,EAAAA,EAAAA,CAAAA,QAA4B,GAAIQ,EAAgBP,EAAAA,EAAAA,CAAAA,QAA6B,GACzG,GACAA,EAAAA,EAAAA,CAAAA,SAA8B,CAAC,AAACE,IAC5BG,EAAwBN,EAAAA,EAAAA,CAAAA,QAA4B,GAAIO,EAAAA,EAAAA,CAAAA,QAA6B,GAAIJ,EAC7F,GACwG,IAAIM,EAA8B,IAAI1M,IAC9I,SAASgM,EAAoB5X,CAAK,CAAEuY,CAAS,EACzC,IAAK,IAAIC,KAAcxrB,OAAOC,IAAI,CAAC+S,EAAMyY,OAAO,EAAE,CAO9C,IAAMC,EAAcC,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAeH,GACnC,GAAIxY,EAAM4Y,YAAY,CAACJ,EAAW,CAAE,CAChC,IAAMhE,EAASqE,AAwc3B,SAA4BL,CAAU,CAAET,CAAW,CAAEC,CAAe,EAChE,IAAMc,EAASf,EAAYU,OAAO,CAACD,EAAW,CACxCO,EAAcC,EAAgBR,EAAYS,EAAmBlB,EAAaC,IAChFkB,EAAkBJ,EAAQC,EAAaP,GACvC,IAAMhE,EAAS2E,EAAYL,EAAQC,GAGnC,OAFAK,EAA6BN,EAAQtE,EAAQgE,GAC7C,OAAOhE,EAAO6E,cAAc,CACrB7E,CACX,EAhd8CgE,EAAYxY,EAAOuY,GACrDG,EAAYvE,QAAQ,CAAC,CACjBmF,2BAA4B,GAC5BnD,OAAQ,GACR3B,OAAAA,CACJ,EACJ,KAAO,CACH,IAAMA,EAAS+E,AA0c3B,SAA0Cf,CAAU,CAAET,CAAW,CAAEC,CAAe,EAC9E,IAAMe,EAAcC,EAAgBR,EAAYS,EAAmBlB,EAAaC,IAC1ExD,EAAS2E,EAAYK,EAAsBT,GAGjD,OAFAK,EAA6BI,EAAsBhF,EAAQgE,GAC3D,OAAOhE,EAAO6E,cAAc,CACrB7E,CACX,EAhd4DgE,EAAYxY,EAAOuY,GACnEG,EAAYvE,QAAQ,CAAC,CACjBmF,2BAA4B,GAC5BnD,OAAQ,GACR3B,OAAAA,CACJ,EACJ,CACJ,CACJ,CACA,SAAS0D,EAA4BlY,CAAK,CAAEuY,CAAS,EACjD,IAAMkB,EAAcC,AAiUxB,SAAiC3B,CAAW,CAAEC,CAAe,EACzD,IAAM2B,EAAaC,EAAaX,EAAmBlB,EAAaC,IAC1D6B,EAAsB7sB,OAAOC,IAAI,CAAC0sB,GAAYtG,MAAM,CAAC,CAAC9U,EAAKpR,KACzDwsB,CAAU,CAACxsB,EAAI,EAAEksB,gBACjB9a,CAAAA,CAAG,CAACpR,EAAI,CAAGwsB,CAAU,CAACxsB,EAAI,EAAEksB,cAAa,EAEtC9a,GACR,CAAC,GASJ,OARAub,AAUJ,SAAyCD,CAAmB,EACxD,IAAK,GAAI,CAACrB,EAAYuB,EAAiB,GAAI/sB,OAAOkT,OAAO,CAAC2Z,GACtD,IAAK,GAAI,CAACG,EAAUxF,EAAO,GAAIxnB,OAAOkT,OAAO,CAAC6Z,GAC1CE,KAIyBzF,EAJGA,EAIKgE,EAJGA,EAISwB,EAJGA,EAKxD,IAAME,EAAU,CAAC,EAAE1B,EAAW,gBAAgB,EAAEwB,EAAS,CAAC,CACpDG,EAAc,CAAC,uBAAuB,EAAED,EAAQ,CAAC,CAAC,CAClDE,EAAcptB,OAAOC,IAAI,CAACunB,GAAQ6F,MAAM,CAAC,AAACte,GAAI,CAAC,CAC7C,MACA,SACA,QACA,YACH,CAAC4F,QAAQ,CAAC5F,GACXqe,CAAAA,EAAYnuB,MAAM,EAClBquB,EAASJ,EAASC,EAAc,CAAC,yBAAyB,EAAEC,EAAYtnB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAEvF0hB,CAAAA,EAAOxkB,GAAG,EACN,AAAC7D,MAAM8B,OAAO,CAACumB,EAAOxkB,GAAG,GAAMwkB,EAAOxkB,GAAG,CAAC8mB,KAAK,CAAC,AAAC5qB,GAAI,AAAa,UAAb,OAAOA,IAC5DouB,EAASJ,EAASC,EAAc,iEAGpC3F,CAAAA,EAAO+F,MAAM,EACT,AAACpuB,MAAM8B,OAAO,CAACumB,EAAO+F,MAAM,GAAM/F,EAAO+F,MAAM,CAACzD,KAAK,CAAC,AAAC5qB,GAAI,AAAa,UAAb,OAAOA,IAClEouB,EAASJ,EAASC,EAAc,oEAGpC3F,CAAAA,EAAOgG,KAAK,EACR,AAACruB,MAAM8B,OAAO,CAACumB,EAAOgG,KAAK,GAAMhG,EAAOgG,KAAK,CAAC1D,KAAK,CAAC,AAAC5qB,GAAI,AAAa,UAAb,OAAOA,IAChEouB,EAASJ,EAASC,EAAc,mEAGpC3F,EAAOiG,SAAS,EACZ,CAACC,EAAiBlG,EAAOiG,SAAS,GAClCH,EAASJ,EAASC,EAAc,wEAjCwB,CAGpE,EAhBoCN,GACZ7sB,OAAOC,IAAI,CAAC4sB,GAAqBxG,MAAM,CAAC,CAAC9U,EAAKpR,IAC9DoR,EAAM,CACF,GAAGA,CAAG,CACN,GAAGsb,CAAmB,CAAC1sB,EAAI,AAC/B,EAED,CAAC,EAER,EAlVgD6S,EAAOuY,GAC7CoC,EAAsB3tB,OAAO4tB,WAAW,CAAC5tB,OAAOkT,OAAO,CAACuZ,GAAa5mB,GAAG,CAAC,CAAC,CAACmnB,EAAUxF,EAAO,GAAG,CAC7FwF,EACA,CACI7D,OAAQ,GACR3B,OAAAA,CACJ,EACH,GACCqG,EAAYC,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,IACZC,EAAWF,EAAUG,QAAQ,GAC7BC,EAAW,CACbC,MAAO,CACH,GAAGH,EAASG,KAAK,CACjB,GAAGP,CAAmB,AAC1B,CACJ,CACI,CAAChK,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAOoK,EAAUE,IAClBJ,EAAU1G,QAAQ,CAAC8G,EAE3B,CACA,SAAShD,EAA8BjY,CAAK,CAAEgY,CAAe,EACzD,IAAMxD,EAAS2G,AA0PnB,SAAmCpD,CAAW,CAAEC,CAAe,EAC3D,IAAIxlB,EAAS4oB,AAmBjB,SAASA,EAA8BtC,CAAM,SACzC,AAAIA,EAAOza,cAAc,CAAC,YACf,CACH,GAAGya,CAAM,CACTuC,OAAQvC,EAAOwC,QAAQ,CACvBC,QAAS,SACb,EACOb,EAAiB5B,GACjB9rB,OAAOC,IAAI,CAAC6rB,GAAQzF,MAAM,CAAC,CAAC9U,EAAKpR,KACpCoR,CAAG,CAACpR,EAAI,CAAGiuB,EAA8BtC,CAAM,CAAC3rB,EAAI,EAC7CoR,GACR,CAAC,GAGG,CAAC,CAEhB,EAnC+CQ,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAMgZ,EAAYU,OAAO,GAWpE,IAAK,GAAI,CAACjE,EAAQjG,EAAO,EAVC,IACnBwJ,EAAYyD,eAAe,CAAC3oB,GAAG,CAAC,AAAC6E,GAAI,CAChCA,EAAE8c,MAAM,CACR9c,EAAE6W,MAAM,CACX,EACL,CACIyJ,EAAgBxD,MAAM,CACtB,mBACH,CACJ,CAEGhiB,EAASonB,EAAa,CAClBpnB,EACAipB,AAsBZ,SAASA,EAA2BjH,CAAM,CAAEjG,CAAM,SAC9C,AAAImM,EAAiBlG,GACVxnB,OAAOC,IAAI,CAACunB,GAAQnB,MAAM,CAAC,CAAC9U,EAAKpR,KACpCoR,CAAG,CAACpR,EAAI,CAAGsuB,EAA2BjH,CAAM,CAACrnB,EAAI,CAAEohB,GAC5ChQ,GACR,CAAC,GAEG,CACH8c,OAAQ7G,EACR+G,QAAShN,CACb,CAER,EAlCuCiG,EAAQjG,GACtC,EAEL,OAAO/b,CACX,EA7Q6CwN,EAAOgY,GAChD0D,EAAAA,EAAAA,CAAAA,QAAoC,CAAC,CACjClH,OAAAA,CACJ,EACJ,CACA,SAAS2D,EAAwBJ,CAAW,CAAEM,CAAc,CAAEL,CAAe,EACzE,IAAM2D,EAAU,CAAC,EAGjB,IAAK,IAAIC,KAAavD,EAAewD,iBAAiB,CAAC,CACnD,IAAMrH,EAASsH,AA6NnB,SAAgCC,CAAc,CAAEC,CAAmB,CAAEhC,CAAQ,CAAEiC,CAAW,CAAElE,CAAW,CAAEC,CAAe,EACxH,IAAMkE,EAAgBC,AAwatB,SAAgCF,CAAW,EAC3C,GAAM,CAACC,EAAc,CAAGD,EAAYG,KAAK,CAAC,KAC1C,OAAOF,CACX,EA3aiDD,GACvCI,EAAwBtE,EAAYU,OAAO,CAACyD,EAAc,CAC1DI,EAAqBD,EAAwBH,EAAgBF,EAC7DR,EAAkBvC,EAAmBlB,EAAaC,GAClDuE,EAAmBvD,EAAgB+C,EAAgBP,GACnDgB,EAAiBD,GAAkBlD,gBAAgB,CAACW,EAAS,EAAES,WAAW,CAACwB,EAAY,EAAI,CAAC,EAC5FQ,EAAkBzD,EAAgBsD,EAAoBd,GACtDkB,EAAiB9C,EAAa,CAChC6C,EACAD,EACH,EACK1D,EAASuD,GAAyBtE,EAAYU,OAAO,CAACuD,EAAoB,CAChF9C,EAAkBJ,EAAQ4D,EAAgBJ,GAC1C,IAAM9H,EAAS2E,EAAYL,EAAQ4D,GAGnC,OAFAtD,EAA6BN,EAAQtE,EAAQ8H,GAC7C,OAAO9H,EAAO6E,cAAc,CACrB7E,CACX,EA/O8CoH,EAAUG,cAAc,CAAEH,EAAUI,mBAAmB,CAAEJ,EAAU5B,QAAQ,CAAE4B,EAAUK,WAAW,CAAElE,EAAaC,EACvJ2D,CAAAA,CAAO,CAACC,EAAU5B,QAAQ,CAAC,CAAG,CAC1B,GAAG2B,CAAO,CAACC,EAAU5B,QAAQ,CAAC,CAC9B,CAAC4B,EAAUK,WAAW,CAAC,CAAE,CACrBzH,OAAAA,EACA2B,OAAQ,EACZ,CACJ,CACJ,CACAwG,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,IAA2BxI,QAAQ,CAAC,CAChCwH,QAAAA,CACJ,EACJ,CAgVA,SAAS1C,EAAmBlB,CAAW,CAAEC,CAAe,EACpD,MAAO,IACAD,EAAYyD,eAAe,CAAC3oB,GAAG,CAAC,AAAC6E,GAAIA,EAAE8c,MAAM,EAChDwD,EAAgBxD,MAAM,CACzB,AACL,CAuEA,SAASwE,EAAgBR,CAAU,CAAEmB,CAAU,EAC3C,IAAMiD,EAAsBjD,EAAW9mB,GAAG,CAAC,CAAC,CAAE,CAAC2lB,EAAW,CAAE9gB,CAAC,CAAE,GAAGA,GAAG2iB,MAAM,CAAC,AAAC3iB,GAAI,CAAC,CAACA,GACnF,OAAOkiB,EAAagD,EACxB,CACA,SAAShD,EAAa+B,CAAO,EAEzB,MAAOkB,AADcxJ,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAOyJ,EAAAA,CAAcA,EACtB,CAAC,EAAGnB,EAC5B,CAMI,SAASzC,EAAkBJ,CAAM,CAAEtE,CAAM,CAAE0F,EAAU,EAAE,EAEvD,IAAK,IAAM/sB,KAAOH,OAAOC,IAAI,CAACunB,GAAQ,CAClC,IAAMnnB,EAAQmnB,CAAM,CAACrnB,EAAI,CACnB4vB,EAAc7C,EAAU,IAAM/sB,EAC9B6vB,EAAalE,CAAM,CAAC3rB,EAAI,CAC9B,GAAI,CAAC2rB,EAAOza,cAAc,CAAClR,GAAM,CACvBA,CAAAA,AAAQ,mBAARA,GAA4B+sB,AAAY,KAAZA,CAAa,GAC3CI,EAASyC,EAAa,CAAC,oBAAoB,EAAEA,EAAY,qBAAqB,CAAC,EAEnF,QACJ,CACAE,AAGR,UAASA,EAAwBD,CAAU,CAAE3vB,CAAK,CAAE6sB,CAAO,EACvDgD,EAAUhD,EAAS8C,EAAWG,KAAK,CAAE9vB,GACjCqtB,EAAiBrtB,GACb2vB,EAAWG,KAAK,GAAK7c,EAAAA,CAAAA,CAAAA,MAAW,CAEhC8c,AAWZ,SAAyCC,CAAoB,CAAE7I,CAAM,CAAE0F,CAAO,EAC1E,GAAImD,EAAqBC,SAAS,CAC9B,IAAK,IAAMnwB,KAAOH,OAAOC,IAAI,CAACunB,GAAQ,CAClC,IAAMnnB,EAAQmnB,CAAM,CAACrnB,EAAI,CACzB8vB,EAAwBI,EAAqBC,SAAS,CAAEjwB,EAAO,CAAC,EAAE6sB,EAAQ,CAAC,EAAE/sB,EAAI,CAAC,CACtF,CAER,EAlB4C6vB,EAAY3vB,EAAO6sB,GAC5C,AAAE8C,EAAW3e,cAAc,CAAC,aAAe2e,EAAW3e,cAAc,CAAC,UAE5E6a,EAAkB8D,EAAY3vB,EAAO6sB,GAGrC8C,EAAWG,KAAK,GAAK7c,EAAAA,CAAAA,CAAAA,KAAU,EAC/Bid,AAYZ,SAAgCC,CAAW,CAAEnwB,CAAK,CAAE6sB,CAAO,EAEvD,GADyBgD,EAAUhD,EAAS5Z,EAAAA,CAAAA,CAAAA,KAAU,CAAEjT,IAKxD,GAAIowB,EAAgBD,EAAYF,SAAS,EACrC,IAAI,IAAIxuB,EAAI,EAAGA,EAAIzB,EAAMpB,MAAM,CAAE6C,IAC7BmuB,EAAwBO,EAAYF,SAAS,CAAEjwB,CAAK,CAACyB,EAAE,CAAE,CAAC,EAAEorB,EAAQ,CAAC,EAAEprB,EAAE,CAAC,CAAC,EAGnF,IAAI,IAAIA,EAAI,EAAGA,EAAIzB,EAAMpB,MAAM,CAAE6C,IAC7BouB,EAAU,CAAC,EAAEhD,EAAQ,CAAC,EAAEprB,EAAE,CAAC,CAAC,CAAE0uB,EAAYF,SAAS,EAAEH,MAAO9vB,CAAK,CAACyB,EAAE,EAE5E,EA1BmCkuB,EAAY3vB,EAAO6sB,EAGtD,GAlBgC8C,EAAY3vB,EAAO0vB,EAC/C,CACJ,CA4CI,SAAS3D,EAA6BN,CAAM,CAAEtE,CAAM,CAAE0F,EAAU,EAAE,EAElE,GAAIpB,EAIA,IAHItE,IAAWsE,EAAOwC,QAAQ,EAC1BoC,EAAcxD,EAASpB,EAAO6E,WAAW,CAAEnJ,GAE3CkG,EAAiBlG,GACjB,IAAK,IAAMrnB,KAAOH,OAAOC,IAAI,CAACunB,GAAQ,CAClC,IAAMnnB,EAAQmnB,CAAM,CAACrnB,EAAI,CACnB4vB,EAAc7C,EAAU,IAAM/sB,EAC9B6vB,EAAalE,CAAM,CAAC3rB,EAAI,AAC1B2rB,CAAAA,EAAOqE,KAAK,GAAK7c,EAAAA,CAAAA,CAAAA,MAAW,EAAIwY,EAAOwE,SAAS,CAChDlE,EAA6BN,EAAOwE,SAAS,CAAEjwB,EAAO0vB,GAEtD3D,EAA6B4D,EAAY3vB,EAAO0vB,EAExD,MACG,GAAI5wB,MAAM8B,OAAO,CAACumB,IAAWsE,EAAOwE,SAAS,CAChD,IAAI,IAAIxuB,EAAI,EAAGA,EAAI0lB,EAAOvoB,MAAM,CAAE6C,IAC9BsqB,EAA6BN,EAAOwE,SAAS,CAAE9I,CAAM,CAAC1lB,EAAE,CAAE,CAAC,EAAEorB,EAAQ,CAAC,EAAEprB,EAAE,CAAC,CAAC,CAEpF,CAER,CAII,SAASouB,EAAUhD,CAAO,CAAEiD,CAAK,CAAE9vB,CAAK,EACxC,GAAI8vB,EAAO,CACP,IAAMS,EAAY,CACdzxB,MAAO8B,EAAAA,EAAOA,CACduoB,QAASqH,EAAAA,EAASA,CAClBC,YAAaC,EAAAA,EAAMA,CACnBnuB,OAAQouB,EAAAA,EAAQA,CAChBhxB,OAAQkY,EAAAA,EAAQA,CAChBvV,OAAQsuB,EAAAA,EAAQA,CAChBC,KAAMH,EAAAA,EAAMA,CACZI,wBAAyBJ,EAAAA,EAAMA,CAC/BK,0BAA2BL,EAAAA,EAAMA,AACrC,EACA,OAAOL,EAAcxD,EAAS,CAC1B0D,CAAS,CAACT,EAAM,CACnB,CAAE9vB,EACP,CACA,MAAO,EACX,CAII,SAASqwB,EAAcxD,CAAO,CAAE3Z,CAAU,CAAElT,CAAK,EACjD,IAAIgxB,EAAc,GAClB,GAAI9d,EACA,GAAI,CACA,IAAK,IAAIqd,KAAard,EAAW,CAC7B,IAAM+d,EAAkBV,EAAUvwB,GAClC,GAAI,AAA2B,UAA3B,OAAOixB,EAA8B,CACrC,IAAMtW,EAAU,AAAiB,UAAjB,OAAO3a,EAAqB,CAAC,0BAA0B,EAAE6sB,EAAQ,EAAE,EAAEoE,EAAgB,CAAC,CAAG,CAAC,4BAA4B,EAAEjxB,EAAM,KAAK,EAAE6sB,EAAQ,EAAE,EAAEoE,EAAgB,CAAC,CAClLhE,EAASJ,EAASlS,GAClBqW,EAAc,EAClB,CACJ,CACJ,CAAE,MAAOx0B,EAAG,CACRmZ,QAAQtX,KAAK,CAAC,CAAC,+BAA+B,EAAEwuB,EAAQ;AAAsB,CAAE,EAAErwB,EAAE,CAAC,CACzF,CAEJ,OAAOw0B,CACX,CAEA,IAAMlF,EAAc,CAACL,EAAQC,KACzB,IAAMvE,EAASzV,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAMga,GACrB,GAAI,CAACD,EACD,OAAOtE,EAEX,IAAK,IAAMrnB,KAAOH,OAAOC,IAAI,CAAC6rB,GAAQ,CAClC,IAAMyF,EAAa/J,CAAM,CAACrnB,EAAI,CACxB6vB,EAAalE,CAAM,CAAC3rB,EAAI,CAM9B,GAAI6vB,GAAeA,CAAAA,EAAW3e,cAAc,CAAC,UAAY2e,EAAW3e,cAAc,CAAC,WAAU,EAAI,CAGzF,AAACmW,EAAOnW,cAAc,CAAClR,IACvBqnB,CAAAA,CAAM,CAACrnB,EAAI,CAAG6vB,EAAW,QAAW,AAAD,EAGvC,IAAMwB,EAAWxB,EAAWM,SAAS,CACrC,GAAIiB,GAAcd,EAAgBe,GAC9B,IAAIxB,EAAWG,KAAK,GAAK7c,EAAAA,CAAAA,CAAAA,KAAU,EAAInU,MAAM8B,OAAO,CAACswB,GAAa,CAC9D,IAAME,EAAqBF,EAAW1rB,GAAG,CAAC,AAAC6rB,GAAOvF,EAAYqF,EAAUE,GACxElK,CAAAA,CAAM,CAACrnB,EAAI,CAAGsxB,CAClB,MAAO,GAAIzB,EAAWG,KAAK,GAAK7c,EAAAA,CAAAA,CAAAA,MAAW,CACvC,IAAK,IAAIqe,KAAa3xB,OAAOC,IAAI,CAACsxB,GAC9BA,CAAU,CAACI,EAAU,CAAGxF,EAAYqF,EAAUD,CAAU,CAACI,EAAU,CAE3E,CAER,MAAO,GAAIjE,EAAiBsC,GAAa,CAIrC,IAAM4B,EAAqBL,GAAc,CAAC,CAEtC7D,CAAAA,EAAiBkE,IACjBpK,CAAAA,CAAM,CAACrnB,EAAI,CAAGgsB,EAAY6D,EAAY4B,EAAkB,CAEhE,CACJ,CACA,OAAOpK,CACX,EACA,SAASiJ,EAAgBoB,CAAc,EACnC,MAAO,CAAC,CAACA,GAAkB7xB,OAAOC,IAAI,CAAC4xB,GAAgBxE,MAAM,CAAC,AAACxwB,GAAI,CAAC,CAC5D,WACA,cACH,CAAC8X,QAAQ,CAAC9X,IAAIoC,MAAM,CAAG,CAChC,CACA,SAASyuB,EAAiBrtB,CAAK,EAC3B,MAAO,AAAiB,UAAjB,OAAOA,GAAsB,CAAClB,MAAM8B,OAAO,CAACZ,IAAUA,AAAU,OAAVA,CACjE,CACA,SAASitB,EAASJ,CAAO,CAAElS,CAAO,EAC9B,IAAM7a,EAAM,CAAC,EAAE+sB,EAAQ,GAAG,EAAElS,EAAQ,CAAC,AAEjC,CAACsQ,GACDA,CAAAA,EAA8B,IAAI1M,GAAI,EAErC0M,EAA4BhrB,GAAG,CAACH,KACjC6V,QAAQtX,KAAK,CAACsc,GACdsQ,EAA4BtoB,GAAG,CAAC7C,GAExC,CA2BI,IAAM2xB,EAA6B,CACnC,wBAAyB,CACrBC,aAAc,oKACd5B,MAAO7c,EAAAA,CAAAA,CAAAA,MAAW,CAClBgb,SAAU,CAAC,EACXqC,YAAa,CACTC,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAU,AAACtvB,GAAItB,OAAOC,IAAI,CAACqB,GAAGwoB,KAAK,CAAC,AAAC/a,GAAI,6BAA6BpP,IAAI,CAACoP,IAAK,AAACzN,IAC7E,IAAM0wB,EAAUhyB,OAAOC,IAAI,CAACqB,GAAG+rB,MAAM,CAAC,AAACte,GAAI,CAAC,6BAA6BpP,IAAI,CAACoP,IAC9E,MAAO,CAAC,6PAA6P,EAAEijB,EAAQlsB,IAAI,CAAC,MAAM,CAAC,CAAC,AAChS,GACH,AACL,CACJ,EAGU0mB,EAAuB,CAC7B,qBAAsB,CAClB7C,WAAY,CACRoI,aAAc,4DACd5B,MAAO7c,EAAAA,CAAAA,CAAAA,KAAU,CACjBgb,SAAU,EAAE,AAChB,CACJ,EACA,GAAGwD,CAA0B,AACjC,E,mOClwBW,IAAMjH,EAAsBnX,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAkB,kBAPjB,CACpC8a,gBAAiB,EAAE,CACnB/C,QAAS,CAAC,EACVG,aAAc,CAAC,CACnB,GAI8Bd,EAAuBpX,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAkB,mBAAoB,CACvF8T,OAAQyK,AAQZ,WACI,GAAI,CACA,OAAOvf,KAAKC,KAAK,CAACL,aAAaM,OAAO,CAAC,4BAA8B,KACzE,CAAE,MAAO/V,EAAG,CACR,MAAO,CAAC,CACZ,CACJ,GAbA,GACAiuB,EAAqB/X,SAAS,CAAC,AAACC,QAGJ3S,EAAAA,EAFL2S,EAAMwU,MAAM,CAG/BlV,aAAaa,OAAO,CAAC,0BAA2BT,KAAKU,SAAS,CAAC/S,GAFnE,GAWwB,IAAM+qB,EAAuB1X,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAkB,kCAAmC,CACtGmb,kBAAmB,EAAE,AACzB,GAQwB,SAASlD,EAAeH,CAAU,EAEtD,MAAO1Y,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAe,CAAC,cAAc,EAAE0Y,EAAW,CAAC,CAR5C,CACHhE,OAAQ,KACR2B,OAAQ,GACRmD,2BAA4B,EAChC,EAKJ,CACwB,SAASwB,IAC7B,MAAOhb,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAe,yBAA0B,CAC5Cob,MAAO,CAAC,CACZ,EACJ,CAIwB,SAASgE,EAAgClf,CAAK,CAAEga,CAAQ,EAE5E,OAAOmF,AADYnf,EAAMkb,KAAK,CAAClB,EAAS,EACnB,CACjB7D,OAAQ,GACR3B,OAAQ,CAAC,CACb,CACJ,CAIW,SAASmI,IAChB,MAAO7c,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAe,oBAAqB,CACvC6b,QAAS,CAAC,CACd,EACJ,CA4CwB,SAASyD,EAA4Bpf,CAAK,CAAEga,CAAQ,CAAEiC,CAAW,EAErF,OAAOQ,AADiBzc,EAAM2b,OAAO,CAAC3B,EAAS,EAAE,CAACiC,EAAY,EACpC,CACtB9F,OAAQ,GACR3B,OAAQ,IACZ,CACJ,CACwB,IAAMkH,EAA8Bhb,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAkB,2BAA4B,CACtG8T,OAAQ,CAAC,CACb,G,oOCnHO,IAAkClU,EAA9BA,GACPA,CADqCA,EAWvC,CAAC,GAVM,KAAQ,CAAG,QAChBA,EAAK,OAAU,CAAG,UAClBA,EAAK,WAAc,CAAG,cACtBA,EAAK,MAAS,CAAG,SACjBA,EAAK,MAAS,CAAG,SACjBA,EAAK,MAAS,CAAG,SACjBA,EAAK,IAAO,CAAG,OACfA,EAAK,uBAA0B,CAAG,0BAClCA,EAAK,yBAA4B,CAAG,4BAC7BA,E,iHCTJ,IAAMrS,EAAU2vB,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAU,AAAC9oB,GAAM3I,MAAM8B,OAAO,CAAC6G,GAAM,oBAC/C+oB,EAAYD,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAU,AAAC9oB,GAAM,AAAe,WAAf,OAAOA,EAAmB,qBACvDkpB,EAAWJ,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAU,AAAC9oB,GAAM,AAAe,UAAf,OAAOA,EAAkB,oBACrDmpB,EAAWL,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAU,AAAC9oB,GAAM,AAAe,UAAf,OAAOA,EAAkB,oBACrDoQ,EAAW0Y,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAU,AAAC9oB,GAAM,AAAe,UAAf,OAAOA,GAAoB,CAAC3I,MAAM8B,OAAO,CAAC6G,IAAQA,AAAQ,OAARA,EAAc,4CAC5FipB,EAASH,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAU,AAAC9oB,GAAM,kEAAkEnI,IAAI,CAACmI,IAAQ,kBAAkBnI,IAAI,CAACmI,GAAM,4D,oCCcxI,SAAS8oB,EAAUyB,CAAkB,CAAErX,CAAO,EACrD,OAAO,AAAC3a,IACJ,GAAI,CAACgyB,EAAmBhyB,GACpB,GAAI,AAAmB,YAAnB,OAAO2a,EACP,OAAOA,EAAQ3a,QAEf,OAAO2a,CAGnB,CACJ,C,oFCfW,IAAMsX,EAA8B,AAACC,IAC5C,IAAMC,EAAgBD,EAA0B/xB,MAAM,CAAC,CACnD,cACA,iBACH,EACD,MAAOowB,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAU,AAAC9oB,IACd,GAAI,CAACA,GAAO,AAAc,UAAd,OAAOA,EACf,MAAO,GAEX,IAAM2qB,EAAK,aACPhP,EAAQgP,EAAGhtB,IAAI,CAACqC,GACpB,KAAM2b,GAAM,CACR,GAAI,CAAC+O,EAAc7d,QAAQ,CAAC8O,CAAK,CAAC,EAAE,EAChC,MAAO,GAEXA,EAAQgP,EAAGhtB,IAAI,CAACqC,EACpB,CACA,MAAO,EACX,EAAG,gEAAkE0qB,EAAc3sB,GAAG,CAAC,AAACW,GAAI,KAAOA,EAAI,KAAKV,IAAI,CAAC,MACrH,EAYayN,EAAa,CACtBmf,QAzCuB,CAACvsB,EAAKF,IACtB2qB,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAU,AAAC9oB,GAAM3B,GAAO2B,GAAOA,GAAO7B,EAAK,CAAC,gBAAgB,EAAEE,EAAI,KAAK,EAAEF,EAAI,CAAC,EAyCrF0sB,MATqBL,EAA4B,EAAE,EAUnDA,4BAAAA,EACAM,MAPqB,AAACC,GACfjC,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAU,AAAC9oB,GAAM+qB,EAAcle,QAAQ,CAAC7M,GAAM,CAAC,+BAA+B,EAAE+qB,EAAc/sB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAOzH,C,uFClDgC6kB,C,8BAAAA,EAAWA,C,k8BCc3C,IAAMmI,EAAeC,AAoBrB,WACI,GAAI,CACA,OAAOrgB,KAAKC,KAAK,CAACqgB,eAAepgB,OAAO,CAAC,4BAA8B,OAC3E,CAAE,MAAO/V,EAAG,CACR,OAAO,IACX,CACJ,KA1BiD,CAC7Co2B,YAAa,KACbC,qBAAsB,KACtBC,qBAAsB,CAAC,CAC3B,EAUAC,AARWtgB,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAe,QAASggB,GAQnB/f,SAAS,CAAC,AAACC,QAGK3S,EAAAA,EAFL2S,EAGvBggB,eAAe7f,OAAO,CAAC,0BAA2BT,KAAKU,SAAS,CAAC/S,GAFrE,GA2CkD,IAAIgzB,EAAAA,eAAeA,CAAC,M,mECzEtE1pB,CAAAA,OAAO2pB,OAAO,CAAG,SAAS50B,CAAK,EAO3B,OANAsX,QAAQtX,KAAK,CAAC,qBAAsBA,GACpC60B,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAmB,CACf10B,YAAaH,GAAS,sCACtB80B,KAAM,QACNC,MAAO,OACX,GACO,EACX,EACA9pB,OAAO+pB,oBAAoB,CAAG,SAASC,CAAK,EACxC3d,QAAQtX,KAAK,CAAC,wBAAyBi1B,EAAMC,MAAM,EACnDL,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAmB,CACf10B,YAAa80B,EAAMC,MAAM,EAAI,iDAC7BJ,KAAM,QACNC,MAAO,OACX,EACJ,C,oCCfC,gB,iaACD,IAAMI,EAAN,W,SAAMA,I,OAAAA,E,UAAAA,EAAAA,C,CAmBL7wB,IAAAA,M,MAAAA,SAAIpE,CAAI,CAAEk1B,CAAQ,CAAEC,CAAK,EACxB,GAAI,AAAuB,UAAvB,OAAO5wB,SAAS,CAAC,EAAE,CAEtB,IAAK,IAAIvE,KAAQuE,SAAS,CAAC,EAAE,CAC5B,IAAI,CAACH,GAAG,CAACpE,EAAMuE,SAAS,CAAC,EAAE,CAACvE,EAAK,CAAEuE,SAAS,CAAC,EAAE,MAI/ChE,AAAAA,CAAAA,MAAM8B,OAAO,CAACrC,GAAQA,EAAO,CAACA,EAAI,A,EAAGsB,OAAO,CAAC,SAAUtB,CAAI,EAC3D,IAAI,CAACA,EAAK,CAAG,IAAI,CAACA,EAAK,EAAI,EAAE,CAEzBk1B,GACH,IAAI,CAACl1B,EAAK,CAACm1B,EAAQ,UAAY,OAAO,CAACD,EAEzC,EAAG,IAAI,CAET,C,GAWAE,IAAAA,M,MAAAA,SAAIp1B,CAAI,CAAE3B,CAAG,EACZ,IAAI,CAAC2B,EAAK,CAAG,IAAI,CAACA,EAAK,EAAI,EAAE,CAC7B,IAAI,CAACA,EAAK,CAACsB,OAAO,CAAC,SAAU4zB,CAAQ,EACpCA,EAASv0B,IAAI,CAACtC,GAAOA,EAAI8S,OAAO,CAAG9S,EAAI8S,OAAO,CAAG9S,EAAKA,EACvD,EACD,C,IAnDK42B,C,IAyDAI,EAAN,W,SAAMA,EACOC,CAAI,E,OADXD,GAEJ,IAAI,CAACC,IAAI,CAAGA,EACZ,IAAI,CAACC,UAAU,CAAG,CAAC,C,UAHfF,EAAAA,C,CAmBLG,IAAAA,W,MAAAA,WAAS,Q,OAAA,mBAAGC,EAAH,qBAAGA,CAAO,CAAV,eAAU,CAClBA,EAAQn0B,OAAO,CAAC,SAACo0B,CAAM,EACtB,GAAI,CAAOA,SAAAA,EAAAA,Y,AAAAA,G,4BAAAA,E,qCAAAA,CAAM,GAAK,UAAY,CAACA,EAAO11B,IAAI,EAAI,CAAC01B,EAAOC,IAAI,CAC7D,MAAM,AAAIh0B,MAAM,6BAEb,GAAK4zB,UAAU,CAACG,EAAO11B,IAAI,CAAC,GAIhC01B,EAAOC,IAAI,CAAC,EAAKL,IAAI,EACrB,EAAKC,UAAU,CAACG,EAAO11B,IAAI,CAAC,CAAG01B,EAChC,EACD,C,IA/BKL,C,IAoCAO,EAAN,W,SAAMA,EA0KOC,CAAI,E,OA1KXD,GA6KJ,IAAI,CAACC,IAAI,CAAGA,EACZ,IAAI,CAACrtB,KAAK,CAAG,C,UA9KTotB,EAAAA,C,CA0JDE,IAAAA,O,IAAJ,WACC,OAAO,IAAI,CAACD,IAAI,CAACE,MAAM,CAAC,IAAI,CAACvtB,KAAK,CACnC,C,GAKIwtB,IAAAA,O,IAAJ,WACC,OAAO,IAAI,CAACH,IAAI,CAAChlB,UAAU,CAAC,IAAI,CAACrI,KAAK,CACvC,C,GA0EAytB,IAAAA,a,MAAAA,SAAW7Z,CAAO,EACjB,IAAMtc,EAAQ,AAAI6B,MAAMya,EAAU,iBAAmB,IAAI,CAAC5T,KAAK,CAG/D,OAFA1I,EAAM0I,KAAK,CAAG,IAAI,CAACA,KAAK,CACxB1I,EAAMG,WAAW,CAAGmc,EACdtc,CACP,C,GAQAo2B,IAAAA,U,MAAAA,SAAQl2B,CAAI,CAAEm2B,CAAI,EACjB,GA3PIP,EA2PKQ,KAAK,CAACp2B,EAAK,CAAE,CACrB,IAAM3B,EAAM,CAAE8S,QAAS,IAAI,CAAEglB,KAAAA,CAAK,EAElC,OA9PGP,EA6PEQ,KAAK,CAAChB,GAAG,CAACp1B,EAAM3B,GACdA,EAAI83B,IAAI,AAChB,CACA,OAAOA,CACR,C,GAOAE,IAAAA,a,MAAAA,SAAWr2B,CAAI,EACd,GAzQI41B,EAyQKQ,KAAK,CAACp2B,EAAK,CAAE,CACrB,IAAM3B,EAAM,CAAE8S,QAAS,IAAI,AAAC,EAK5B,OA/QGykB,EA2QEQ,KAAK,CAACp2B,EAAK,CAACgrB,IAAI,CAAC,SAAUkK,CAAQ,EAEvC,OADAA,EAASv0B,IAAI,CAACtC,EAAI8S,OAAO,CAAE9S,GACpBA,EAAI83B,IAAI,AAChB,GACO93B,EAAI83B,IAAI,AAChB,CACD,C,GAKAG,IAAAA,e,MAAAA,WAGC,IAFA,IAAIC,EAAK,IAAI,CAACP,IAAI,CAEXO,IAzRHX,EAyReY,UAAU,EAC1BD,IA1RCX,EA0RWa,QAAQ,EACpBF,IA3RCX,EA2RWc,OAAO,EACnBH,IA5RCX,EA4RWe,OAAO,EACrBJ,EAAK,IAAI,CAACV,IAAI,CAAChlB,UAAU,CAAC,EAAE,IAAI,CAACrI,KAAK,EAEvC,IAAI,CAAC0tB,OAAO,CAAC,gBACd,C,GAMAniB,IAAAA,Q,MAAAA,WACC,IAAI,CAACmiB,OAAO,CAAC,cACb,IAAMU,EAAQ,IAAI,CAACC,iBAAiB,GAG9BV,EAAOS,AAAiB,IAAjBA,EAAMv2B,MAAM,CACrBu2B,CAAK,CAAC,EAAE,CACT,CACDvd,KA9SEuc,EA8SSkB,QAAQ,CACnB3hB,KAAMyhB,CACP,EACD,OAAO,IAAI,CAACV,OAAO,CAAC,YAAaC,EAClC,C,GAOAU,IAAAA,oB,MAAAA,SAAkBE,CAAU,EAG3B,IAFA,IAAgBC,EAAMb,EAAlBS,EAAQ,EAAE,CAEP,IAAI,CAACpuB,KAAK,CAAG,IAAI,CAACqtB,IAAI,CAACx1B,MAAM,EAKnC,GAAI22B,AAJJA,CAAAA,EAAO,IAAI,CAAChB,IAAI,AAAD,IA7TZJ,EAiUeqB,WAAW,EAAID,IAjU9BpB,EAiU4CsB,UAAU,CACxD,IAAI,CAAC1uB,KAAK,QAIV,GAAI2tB,EAAO,IAAI,CAACgB,gBAAgB,GAC/BP,EAAMzzB,IAAI,CAACgzB,QAIP,GAAI,IAAI,CAAC3tB,KAAK,CAAG,IAAI,CAACqtB,IAAI,CAACx1B,MAAM,CAAE,CACvC,GAAI22B,IAASD,EACZ,MAED,IAAI,CAACd,UAAU,CAAC,eAAiB,IAAI,CAACH,IAAI,CAAG,IAC9C,CAIF,OAAOc,CACR,C,GAMAO,IAAAA,mB,MAAAA,WACC,IAAMhB,EAAO,IAAI,CAACE,UAAU,CAAC,sBAAwB,IAAI,CAACe,sBAAsB,GAGhF,OAFA,IAAI,CAACd,YAAY,GAEV,IAAI,CAACJ,OAAO,CAAC,mBAAoBC,EACzC,C,GASAkB,IAAAA,iB,MAAAA,WACC,IAAI,CAACf,YAAY,GAIjB,IAHA,IAAIgB,EAAW,IAAI,CAACzB,IAAI,CAACntB,MAAM,CAAC,IAAI,CAACF,KAAK,CA3WtCotB,EA2W6C2B,aAAa,EAC1DC,EAASF,EAASj3B,MAAM,CAErBm3B,EAAS,GAAG,CAIlB,GAlXG5B,EAkXM6B,UAAU,CAAChlB,cAAc,CAAC6kB,IAClC,EAnXE1B,EAmXI8B,iBAAiB,CAAC,IAAI,CAAC1B,IAAI,GAChC,IAAI,CAACxtB,KAAK,CAAG8uB,EAASj3B,MAAM,CAAG,IAAI,CAACw1B,IAAI,CAACx1B,MAAM,EAAI,CApXlDu1B,EAoXwD+B,gBAAgB,CAAC,IAAI,CAAC9B,IAAI,CAAChlB,UAAU,CAAC,IAAI,CAACrI,KAAK,CAAG8uB,EAASj3B,MAAM,EAAC,EAG7H,OADA,IAAI,CAACmI,KAAK,EAAIgvB,EACPF,EAERA,EAAWA,EAAS5uB,MAAM,CAAC,EAAG,EAAE8uB,EACjC,CACA,MAAO,EACR,C,GAOAJ,IAAAA,yB,MAAAA,eACKjB,EAAMyB,EAAMC,EAAM3c,EAAO4c,EAAWC,EAAMC,EAAO90B,EAAG+0B,EA0CnCC,EApCrB,GAAI,CADJH,CAAAA,EAAO,IAAI,CAACI,WAAW,EAAC,GAOpB,CAHJP,CAAAA,EAAO,IAAI,CAACP,cAAc,EAAC,EAF1B,OAAOU,EAsBR,IAXAD,EAAY,CAAEr2B,MAAOm2B,EAAMC,KAtZvBjC,EAsZkCwC,gBAAgB,CAACR,GAAOS,QAtZ1DzC,EAsZwE0C,iBAAiB,CAAC52B,GAAG,CAACk2B,EAAM,EAIpG,AAFJI,CAAAA,EAAQ,IAAI,CAACG,WAAW,EAAC,GAGxB,IAAI,CAAClC,UAAU,CAAC,6BAA+B2B,GAGhD1c,EAAQ,CAAC6c,EAAMD,EAAWE,EAAM,CAGxBJ,EAAO,IAAI,CAACP,cAAc,IAAK,CAGtC,GAAIQ,AAAS,IAFbA,CAAAA,EAlaGjC,EAkaSwC,gBAAgB,CAACR,EAAI,EAEjB,CACf,IAAI,CAACpvB,KAAK,EAAIovB,EAAKv3B,MAAM,CACzB,KACD,CAUA,IARAy3B,EAAY,CAAEr2B,MAAOm2B,EAAMC,KAAAA,EAAMQ,QAza9BzC,EAya4C0C,iBAAiB,CAAC52B,GAAG,CAACk2B,EAAM,EAE3EK,EAAWL,EAMH1c,EAAM7a,MAAM,CAAG,IAHH63B,EAGqBhd,CAAK,CAACA,EAAM7a,MAAM,CAAG,EAAE,CAHpCy3B,EAAUO,OAAO,EAAIH,EAAKG,OAAO,CAC1DR,EAAOK,EAAKL,IAAI,CAChBA,GAAQK,EAAKL,IAAI,GAEnBG,EAAQ9c,EAAM3J,GAAG,GACjBqmB,EAAO1c,EAAM3J,GAAG,GAAG9P,KAAK,CACxBs2B,EAAO7c,EAAM3J,GAAG,GAChB4kB,EAAO,CACN9c,KAtbCuc,EAsbU2C,UAAU,CACrBC,SAAUZ,EACVG,KAAAA,EACAC,MAAAA,CACD,EACA9c,EAAM/X,IAAI,CAACgzB,EAKR,CAFJA,CAAAA,EAAO,IAAI,CAACgC,WAAW,EAAC,GAGvB,IAAI,CAAClC,UAAU,CAAC,6BAA+BgC,GAGhD/c,EAAM/X,IAAI,CAAC20B,EAAW3B,EACvB,CAKA,IAHAjzB,EAAIgY,EAAM7a,MAAM,CAAG,EACnB81B,EAAOjb,CAAK,CAAChY,EAAE,CAERA,EAAI,GACVizB,EAAO,CACN9c,KA5cEuc,EA4cS2C,UAAU,CACrBC,SAAUtd,CAAK,CAAChY,EAAI,EAAE,CAACzB,KAAK,CAC5Bs2B,KAAM7c,CAAK,CAAChY,EAAI,EAAE,CAClB80B,MAAO7B,CACR,EACAjzB,GAAK,EAGN,OAAOizB,CACR,C,GAOAgC,IAAAA,c,MAAAA,WACC,IAAI5B,EAAIe,EAAUE,EAAQrB,EAI1B,GAFA,IAAI,CAACG,YAAY,GACjBH,EAAO,IAAI,CAACE,UAAU,CAAC,gBAEtB,OAAO,IAAI,CAACH,OAAO,CAAC,cAAeC,GAKpC,GAFAI,EAAK,IAAI,CAACP,IAAI,CAreVJ,EAueK6C,cAAc,CAAClC,IAAOA,IAve3BX,EAueuC8C,WAAW,CAErD,OAAO,IAAI,CAACC,oBAAoB,GAGjC,GAAIpC,IA5eAX,EA4eYgD,WAAW,EAAIrC,IA5e3BX,EA4euCiD,WAAW,CAErD1C,EAAO,IAAI,CAAC2C,mBAAmB,QAE3B,GAAIvC,IAhfLX,EAgfiBmD,WAAW,CAC/B5C,EAAO,IAAI,CAAC6C,WAAW,OAEnB,CAIJ,IAFAxB,EAASF,AADTA,CAAAA,EAAW,IAAI,CAACzB,IAAI,CAACntB,MAAM,CAAC,IAAI,CAACF,KAAK,CApfnCotB,EAof0CqD,YAAY,GACvC54B,MAAM,CAEjBm3B,EAAS,GAAG,CAIlB,GA3fE5B,EA2fOsD,SAAS,CAACzmB,cAAc,CAAC6kB,IACjC,EA5fC1B,EA4fK8B,iBAAiB,CAAC,IAAI,CAAC1B,IAAI,GAChC,IAAI,CAACxtB,KAAK,CAAG8uB,EAASj3B,MAAM,CAAG,IAAI,CAACw1B,IAAI,CAACx1B,MAAM,EAAI,CA7fnDu1B,EA6fyD+B,gBAAgB,CAAC,IAAI,CAAC9B,IAAI,CAAChlB,UAAU,CAAC,IAAI,CAACrI,KAAK,CAAG8uB,EAASj3B,MAAM,EAAC,EAC3H,CACF,IAAI,CAACmI,KAAK,EAAIgvB,EACd,IAAM2B,EAAW,IAAI,CAAChB,WAAW,GAIjC,OAHI,AAACgB,GACJ,IAAI,CAAClD,UAAU,CAAC,4BAEV,IAAI,CAACC,OAAO,CAAC,cAAe,CAClC7c,KArgBAuc,EAqgBWwD,SAAS,CACpBZ,SAAUlB,EACV6B,SAAAA,EACAE,OAAQ,EACT,EACD,CAEA/B,EAAWA,EAAS5uB,MAAM,CAAC,EAAG,EAAE8uB,EACjC,CA7gBG5B,EA+gBM8B,iBAAiB,CAACnB,IAC1BJ,EAAO,IAAI,CAACmD,gBAAgB,GAhhB1B1D,EAihBO2D,QAAQ,CAAC9mB,cAAc,CAAC0jB,EAAKn2B,IAAI,EACzCm2B,EAAO,CACN9c,KAnhBAuc,EAmhBW4D,OAAO,CAClB/3B,MAphBAm0B,EAohBY2D,QAAQ,CAACpD,EAAKn2B,IAAI,CAAC,CAC/By5B,IAAKtD,EAAKn2B,IAAI,AACf,EAEQm2B,EAAKn2B,IAAI,GAxhBhB41B,EAwhB0B8D,QAAQ,EACnCvD,CAAAA,EAAO,CAAE9c,KAzhBRuc,EAyhBmB+D,QAAQ,AAAC,IAGtBpD,IA5hBNX,EA4hBkBgE,WAAW,EAC/BzD,CAAAA,EAAO,IAAI,CAAC0D,WAAW,EAAC,CAE1B,QAEA,AAAK1D,GAILA,EAAO,IAAI,CAAC2D,mBAAmB,CAAC3D,GACzB,IAAI,CAACD,OAAO,CAAC,cAAeC,IAJ3B,IAAI,CAACD,OAAO,CAAC,cAAe,GAKrC,C,GAUA4D,IAAAA,sB,MAAAA,SAAoB3D,CAAI,EACvB,IAAI,CAACG,YAAY,GAGjB,IADA,IAAIC,EAAK,IAAI,CAACP,IAAI,CACXO,IArjBHX,EAqjBe8C,WAAW,EAAInC,IArjB9BX,EAqjB0CmD,WAAW,EAAIxC,IArjBzDX,EAqjBqEgE,WAAW,EAAIrD,IArjBpFX,EAqjBgGmE,WAAW,EAAE,CAChH,IAAIC,EAAAA,KAAAA,EACJ,GAAIzD,IAvjBDX,EAujBamE,WAAW,CAAE,CAC5B,GAAI,IAAI,CAAClE,IAAI,CAAChlB,UAAU,CAAC,IAAI,CAACrI,KAAK,CAAG,KAxjBpCotB,EAwjBgD8C,WAAW,CAC5D,MAEDsB,EAAW,GACX,IAAI,CAACxxB,KAAK,EAAI,EACd,IAAI,CAAC8tB,YAAY,GACjBC,EAAK,IAAI,CAACP,IAAI,AACf,CACA,IAAI,CAACxtB,KAAK,GAEN+tB,IAlkBDX,EAkkBamD,WAAW,EAOtB,AAAC5C,AANLA,CAAAA,EAAO,CACN9c,KApkBCuc,EAokBUqE,UAAU,CACrBC,SAAU,GACVjgB,OAAQkc,EACRgE,SAAU,IAAI,CAAChD,gBAAgB,EAChC,GACUgD,QAAQ,EACjB,IAAI,CAAClE,UAAU,CAAC,eAAiB,IAAI,CAACH,IAAI,CAAG,KAE9C,IAAI,CAACQ,YAAY,GAEbC,AADJA,CAAAA,EAAK,IAAI,CAACP,IAAI,AAAD,IA7kBXJ,EA8kBcwE,WAAW,EAC1B,IAAI,CAACnE,UAAU,CAAC,cAEjB,IAAI,CAACztB,KAAK,IAEF+tB,IAnlBNX,EAmlBkBgE,WAAW,CAE/BzD,EAAO,CACN9c,KAtlBCuc,EAslBUyE,QAAQ,CACnB,UAAa,IAAI,CAACC,eAAe,CAvlBhC1E,EAulBsC2E,WAAW,EAClDC,OAAQrE,CACT,EAEQI,CAAAA,IA3lBNX,EA2lBkB8C,WAAW,EAAIsB,CAAO,IACtCA,GACH,IAAI,CAACxxB,KAAK,GAEX,IAAI,CAAC8tB,YAAY,GACjBH,EAAO,CACN9c,KAjmBCuc,EAimBUqE,UAAU,CACrBC,SAAU,GACVjgB,OAAQkc,EACRgE,SAAU,IAAI,CAACb,gBAAgB,EAChC,GAGGU,GACH7D,CAAAA,EAAK6D,QAAQ,CAAG,EAAG,EAGpB,IAAI,CAAC1D,YAAY,GACjBC,EAAK,IAAI,CAACP,IAAI,AACf,CAEA,OAAOG,CACR,C,GAOAwC,IAAAA,uB,MAAAA,WAGC,IAFA,IAAiBpC,EAAIkE,EAAjBC,EAAS,GAznBT9E,EA2nBQ6C,cAAc,CAAC,IAAI,CAACzC,IAAI,GACnC0E,GAAU,IAAI,CAAC7E,IAAI,CAACE,MAAM,CAAC,IAAI,CAACvtB,KAAK,IAGtC,GAAI,IAAI,CAACwtB,IAAI,GA/nBTJ,EA+nBmB8C,WAAW,CAGjC,IAFAgC,GAAU,IAAI,CAAC7E,IAAI,CAACE,MAAM,CAAC,IAAI,CAACvtB,KAAK,IAhoBlCotB,EAkoBS6C,cAAc,CAAC,IAAI,CAACzC,IAAI,GACnC0E,GAAU,IAAI,CAAC7E,IAAI,CAACE,MAAM,CAAC,IAAI,CAACvtB,KAAK,IAMvC,GAAI+tB,AAAO,MAFXA,CAAAA,EAAK,IAAI,CAACT,IAAI,AAAD,GAEKS,AAAO,MAAPA,EAAY,CAQ7B,IAPAmE,GAAU,IAAI,CAAC7E,IAAI,CAACE,MAAM,CAAC,IAAI,CAACvtB,KAAK,IAGjC+tB,CAAO,MAFXA,CAAAA,EAAK,IAAI,CAACT,IAAI,AAAD,GAEKS,AAAO,MAAPA,CAAS,GAC1BmE,CAAAA,GAAU,IAAI,CAAC7E,IAAI,CAACE,MAAM,CAAC,IAAI,CAACvtB,KAAK,GAAE,EA9oBrCotB,EAipBS6C,cAAc,CAAC,IAAI,CAACzC,IAAI,GACnC0E,GAAU,IAAI,CAAC7E,IAAI,CAACE,MAAM,CAAC,IAAI,CAACvtB,KAAK,GAGlC,CArpBDotB,EAqpBO6C,cAAc,CAAC,IAAI,CAAC5C,IAAI,CAAChlB,UAAU,CAAC,IAAI,CAACrI,KAAK,CAAG,KAC1D,IAAI,CAACytB,UAAU,CAAC,sBAAwByE,EAAS,IAAI,CAAC5E,IAAI,CAAG,IAE/D,CAaA,OAXA2E,EAAS,IAAI,CAACzE,IAAI,CA1pBdJ,EA6pBK8B,iBAAiB,CAAC+C,GAC1B,IAAI,CAACxE,UAAU,CAAC,8CACfyE,EAAS,IAAI,CAAC5E,IAAI,CAAG,KAEd2E,CAAAA,IAjqBL7E,EAiqBqB8C,WAAW,EAAKgC,AAAkB,IAAlBA,EAAOr6B,MAAM,EAAUq6B,EAAO7pB,UAAU,CAAC,KAjqB9E+kB,EAiqB0F8C,WAAW,AAAD,GACvG,IAAI,CAACzC,UAAU,CAAC,qBAGV,CACN5c,KAtqBGuc,EAsqBQ4D,OAAO,CAClB/3B,MAAOuH,WAAW0xB,GAClBjB,IAAKiB,CACN,CACD,C,GAOA5B,IAAAA,sB,MAAAA,WAMC,IALA,IAAIhuB,EAAM,GACJ6vB,EAAa,IAAI,CAACnyB,KAAK,CACvBoyB,EAAQ,IAAI,CAAC/E,IAAI,CAACE,MAAM,CAAC,IAAI,CAACvtB,KAAK,IACrCqyB,EAAS,GAEN,IAAI,CAACryB,KAAK,CAAG,IAAI,CAACqtB,IAAI,CAACx1B,MAAM,EAAE,CACrC,IAAIk2B,EAAK,IAAI,CAACV,IAAI,CAACE,MAAM,CAAC,IAAI,CAACvtB,KAAK,IAEpC,GAAI+tB,IAAOqE,EAAO,CACjBC,EAAS,GACT,KACD,CACK,GAAItE,AAAO,OAAPA,EAIR,OAFAA,EAAK,IAAI,CAACV,IAAI,CAACE,MAAM,CAAC,IAAI,CAACvtB,KAAK,KAG/B,IAAK,IAAKsC,GAAO,KAAM,KACvB,KAAK,IAAKA,GAAO,KAAM,KACvB,KAAK,IAAKA,GAAO,IAAM,KACvB,KAAK,IAAKA,GAAO,KAAM,KACvB,KAAK,IAAKA,GAAO,KAAM,KACvB,KAAK,IAAKA,GAAO,KAAQ,KACzB,SAAUA,GAAOyrB,CAClB,MAGAzrB,GAAOyrB,CAET,CAMA,OAJI,AAACsE,GACJ,IAAI,CAAC5E,UAAU,CAAC,yBAA2BnrB,EAAM,KAG3C,CACNuO,KAttBGuc,EAstBQ4D,OAAO,CAClB/3B,MAAOqJ,EACP2uB,IAAK,IAAI,CAAC5D,IAAI,CAACiF,SAAS,CAACH,EAAY,IAAI,CAACnyB,KAAK,CAChD,CACD,C,GASA8wB,IAAAA,mB,MAAAA,WACC,IAAI/C,EAAK,IAAI,CAACP,IAAI,CAAE+E,EAAQ,IAAI,CAACvyB,KAAK,CAStC,IA7uBIotB,EAsuBK8B,iBAAiB,CAACnB,GAC1B,IAAI,CAAC/tB,KAAK,GAGV,IAAI,CAACytB,UAAU,CAAC,cAAgB,IAAI,CAACH,IAAI,EAGnC,IAAI,CAACttB,KAAK,CAAG,IAAI,CAACqtB,IAAI,CAACx1B,MAAM,EAGnC,GAFAk2B,EAAK,IAAI,CAACP,IAAI,CA9uBXJ,EAgvBM+B,gBAAgB,CAACpB,GACzB,IAAI,CAAC/tB,KAAK,QAGV,MAGF,MAAO,CACN6Q,KAxvBGuc,EAwvBQoF,UAAU,CACrBh7B,KAAM,IAAI,CAAC61B,IAAI,CAACj1B,KAAK,CAACm6B,EAAO,IAAI,CAACvyB,KAAK,CACxC,CACD,C,GAWA8xB,IAAAA,kB,MAAAA,SAAgBW,CAAW,EAK1B,IAJA,IAAMlpB,EAAO,EAAE,CACX8oB,EAAS,GACTK,EAAkB,EAEf,IAAI,CAAC1yB,KAAK,CAAG,IAAI,CAACqtB,IAAI,CAACx1B,MAAM,EAAE,CACrC,IAAI,CAACi2B,YAAY,GACjB,IAAIU,EAAO,IAAI,CAAChB,IAAI,CAEpB,GAAIgB,IAASiE,EAAa,CACzBJ,EAAS,GACT,IAAI,CAACryB,KAAK,GAENyyB,IAnxBFrF,EAmxBuB2E,WAAW,EAAIW,GAAmBA,GAAmBnpB,EAAK1R,MAAM,EACxF,IAAI,CAAC41B,UAAU,CAAC,oBAAsBlyB,OAAOo3B,YAAY,CAACF,IAG3D,KACD,CACK,GAAIjE,IAzxBNpB,EAyxBoBsB,UAAU,CAIhC,IAHA,IAAI,CAAC1uB,KAAK,GAGN0yB,EAAAA,IAAoBnpB,EAAK1R,MAAM,CAClC,IAAI46B,IA9xBHrF,EA8xBwB2E,WAAW,CACnC,IAAI,CAACtE,UAAU,CAAC,2BAEZ,GAAIgF,IAjyBRrF,EAiyB6BwE,WAAW,CACxC,IAAK,IAAIxkB,EAAM7D,EAAK1R,MAAM,CAAEuV,EAAMslB,EAAiBtlB,IAClD7D,EAAK5O,IAAI,CAAC,KAEZ,CACD,MAEI,GAAI4O,EAAK1R,MAAM,GAAK66B,GAAmBA,AAAoB,IAApBA,EAE3C,IAAI,CAACjF,UAAU,CAAC,sBAEZ,CACJ,IAAME,EAAO,IAAI,CAACgB,gBAAgB,EAE9B,CAAChB,GAAQA,EAAK9c,IAAI,GA/yBpBuc,EA+yB8BkB,QAAQ,EACvC,IAAI,CAACb,UAAU,CAAC,kBAGjBlkB,EAAK5O,IAAI,CAACgzB,EACX,CACD,CAMA,OAJI,AAAC0E,GACJ,IAAI,CAAC5E,UAAU,CAAC,YAAclyB,OAAOo3B,YAAY,CAACF,IAG5ClpB,CACR,C,GAWA8nB,IAAAA,c,MAAAA,WACC,IAAI,CAACrxB,KAAK,GACV,IAAIouB,EAAQ,IAAI,CAACC,iBAAiB,CAz0B9BjB,EAy0BoC2E,WAAW,EACnD,GAAI,IAAI,CAACvE,IAAI,GA10BTJ,EA00BmB2E,WAAW,OAEjC,CADA,IAAI,CAAC/xB,KAAK,GACNouB,AAAiB,IAAjBA,EAAMv2B,MAAM,EACRu2B,CAAK,CAAC,EAAE,EAEP,CAACA,EAAMv2B,MAAM,EAId,CACNgZ,KAp1BCuc,EAo1BUwF,YAAY,CACvBC,YAAazE,CACd,EAID,IAAI,CAACX,UAAU,CAAC,aAElB,C,GAQA+C,IAAAA,c,MAAAA,WAGC,OAFA,IAAI,CAACxwB,KAAK,GAEH,CACN6Q,KAx2BGuc,EAw2BQ0F,SAAS,CACpB1I,SAAU,IAAI,CAAC0H,eAAe,CAz2B3B1E,EAy2BiCwE,WAAW,CAChD,CACD,C,KAv2BWmB,IAAAA,U,IAAX,WAEC,MAAO,OACR,C,GAKO76B,IAAAA,W,MAAP,WACC,MAAO,wCAbHk1B,EAakD2F,OAAO,AAC9D,C,GAQOC,IAAAA,a,MAAP,SAAkBC,CAAO,EAGxB,OAzBI7F,EAuBCqD,YAAY,CAAG3xB,KAAKD,GAAG,CAACo0B,EAAQp7B,MAAM,CAvBvCu1B,EAuB8CqD,YAAY,EAvB1DrD,EAwBCsD,SAAS,CAACuC,EAAQ,CAAG,EAxBtB7F,CA0BL,C,GASO8F,IAAAA,c,MAAP,SAAmBD,CAAO,CAAEE,CAAU,CAAEC,CAAkB,EASzD,OA5CIhG,EAoCC2B,aAAa,CAAGjwB,KAAKD,GAAG,CAACo0B,EAAQp7B,MAAM,CApCxCu1B,EAoC+C2B,aAAa,EApC5D3B,EAqCC6B,UAAU,CAACgE,EAAQ,CAAGE,EACvBC,EAtCAhG,EAuCE0C,iBAAiB,CAACl0B,GAAG,CAACq3B,GAvCxB7F,EA0CE0C,iBAAiB,CAACuD,MAAM,CAACJ,GA1C3B7F,CA6CL,C,GAOOkG,IAAAA,oB,MAAP,SAAyBhG,CAAI,EAE5B,OAtDIF,EAqDCmG,2BAA2B,CAAC33B,GAAG,CAAC0xB,GArDjCF,CAuDL,C,GAQOoG,IAAAA,a,MAAP,SAAkBC,CAAY,CAAEC,CAAa,EAE5C,OAjEItG,EAgEC2D,QAAQ,CAAC0C,EAAa,CAAGC,EAhE1BtG,CAkEL,C,GAOOuG,IAAAA,gB,MAAP,SAAqBV,CAAO,EAK3B,OAJA,OA1EI7F,EA0EQsD,SAAS,CAACuC,EAAQ,CAC1BA,EAAQp7B,MAAM,GA3Edu1B,EA2EwBqD,YAAY,EA3EpCrD,CAAAA,EA4EEqD,YAAY,CA5EdrD,EA4EsBwG,YAAY,CA5ElCxG,EA4EwCsD,SAAS,GA5EjDtD,CA+EL,C,GAMOyG,IAAAA,oB,MAAP,WAIC,OAzFIzG,EAsFCsD,SAAS,CAAG,CAAC,EAtFdtD,EAuFCqD,YAAY,CAAG,EAvFhBrD,CA0FL,C,GAOO0G,IAAAA,uB,MAAP,SAA4BxG,CAAI,EAE/B,OAnGIF,EAkGCmG,2BAA2B,CAACF,MAAM,CAAC/F,GAlGpCF,CAoGL,C,GAOO2G,IAAAA,iB,MAAP,SAAsBd,CAAO,EAQ5B,OAPA,OA5GI7F,EA4GQ6B,UAAU,CAACgE,EAAQ,CAE3BA,EAAQp7B,MAAM,GA9Gdu1B,EA8GwB2B,aAAa,EA9GrC3B,CAAAA,EA+GE2B,aAAa,CA/Gf3B,EA+GuBwG,YAAY,CA/GnCxG,EA+GyC6B,UAAU,GA/GnD7B,EAiHC0C,iBAAiB,CAACuD,MAAM,CAACJ,GAjH1B7F,CAoHL,C,GAMO4G,IAAAA,qB,MAAP,WAIC,OA9HI5G,EA2HC6B,UAAU,CAAG,CAAC,EA3Hf7B,EA4HC2B,aAAa,CAAG,EA5HjB3B,CA+HL,C,GAOO6G,IAAAA,gB,MAAP,SAAqBR,CAAY,EAEhC,OADA,OAvIIrG,EAuIQ2D,QAAQ,CAAC0C,EAAa,CAvI9BrG,CAyIL,C,GAMO8G,IAAAA,oB,MAAP,WAGC,OAlJI9G,EAgJC2D,QAAQ,CAAG,CAAC,EAhJb3D,CAmJL,C,GAkCO7hB,IAAAA,Q,MAAP,SAAa8hB,CAAI,EAChB,OAAQ,IAtLJD,EAsLaC,GAAO9hB,KAAK,EAC9B,C,GAOOqoB,IAAAA,e,MAAP,SAAoBzpB,CAAG,MACfrL,E,EAAP,MAAOA,AAAAA,CAAAA,EAAAA,IAAG,EAAED,GAAG,OAARC,EAAAA,CAAS,EAA0C,CAAnDA,MAAAA,C,+CAAelG,OAAOC,IAAI,CAACsR,GAAK1L,GAAG,CAACkJ,SAAAA,CAAC,E,OAAIA,EAAE9P,MAAM,A,+kBACzD,C,GAOOo4B,IAAAA,iB,MAAP,SAAsBlC,CAAE,EACvB,OAAQA,GAAM,IAAMA,GAAM,EAC3B,C,GAOO6B,IAAAA,mB,MAAP,SAAwBuE,CAAM,EAC7B,OAjNI/G,EAiNQ6B,UAAU,CAACkF,EAAO,EAAI,CACnC,C,GAOOjF,IAAAA,oB,MAAP,SAAyBnB,CAAE,EAC1B,OAASA,GAAM,IAAMA,GAAM,IACzBA,GAAM,IAAMA,GAAM,KAClBA,GAAM,KAAO,CA5NXX,EA4NiB6B,UAAU,CAAC1zB,OAAOo3B,YAAY,CAAC5E,GAAI,EA5NpDX,EA6NGmG,2BAA2B,CAACr6B,GAAG,CAACqC,OAAOo3B,YAAY,CAAC5E,GAC5D,C,GAMOoB,IAAAA,mB,MAAP,SAAwBpB,CAAE,EACzB,OArOIX,EAqOQ8B,iBAAiB,CAACnB,IArO1BX,EAqOsC6C,cAAc,CAAClC,EAC1D,C,IAtOKX,C,IAg3BNx0B,OAAOw7B,MAAM,CAAChH,EAAM,CACnBQ,MAFa,IAAInB,EAGjBQ,QAAS,IAAIJ,EAAQO,GAMrBkB,SAAiB,WACjBsE,aAAiB,qBACjBJ,WAAiB,aACjBf,WAAiB,mBACjBT,QAAiB,UACjBG,SAAiB,iBACjBU,SAAiB,iBACjBjB,UAAiB,kBACjBb,WAAiB,mBACjB+C,UAAiB,kBAEjB7E,SAAa,EACbC,QAAa,GACbC,QAAa,GACbH,WAAa,GACbkC,YAAa,GACbxB,WAAa,GACb0B,YAAa,GACbC,YAAa,GACbe,YAAa,GACbW,YAAa,GACbxB,YAAa,GACbqB,YAAa,GACbL,YAAa,GACb9C,YAAa,GACb4F,WAAa,GAOb3D,UAAW,CACV,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,CACN,EAKAzB,WAAY,CACX,KAAM,EAAG,KAAM,EACf,KAAM,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAC9B,KAAM,EAAG,KAAM,EAAG,MAAO,EAAG,MAAO,EACnC,IAAK,EAAG,IAAK,EAAG,KAAM,EAAG,KAAM,EAC/B,KAAM,EAAG,KAAM,EAAG,MAAO,EACzB,IAAK,EAAG,IAAK,EACb,IAAK,GAAI,IAAK,GAAI,IAAK,GACvB,KAAM,EACP,EAGAa,kBAAmB,IAAItY,IAAI,CAAC,KAAK,EAGjC+b,4BAA6B,IAAI/b,IAAI,CAAC,IAAK,IAAI,EAK/CuZ,SAAU,CACT,KAAQ,GACR,MAAS,GACT,KAAQ,IACT,EAGAG,SAAU,MACX,GACA9D,EAAKqD,YAAY,CAAGrD,EAAKwG,YAAY,CAACxG,EAAKsD,SAAS,EACpDtD,EAAK2B,aAAa,CAAG3B,EAAKwG,YAAY,CAACxG,EAAK6B,UAAU,EAGtD,IAAMnC,EAAOO,SAAAA,CAAI,E,OAAK,IAAID,EAAKC,GAAO9hB,KAAK,E,EACrC+oB,EAAgB17B,OAAO27B,mBAAmB,CAAC,SAAMC,I,OAAAA,E,GACvD57B,OAAO27B,mBAAmB,CAACnH,GACzBnH,MAAM,CAAC1K,SAAAA,CAAI,E,MAAI,CAAC+Y,EAAc/mB,QAAQ,CAACgO,IAASuR,AAAetkB,SAAfskB,CAAI,CAACvR,EAAK,A,GAC1DziB,OAAO,CAAC,SAACmF,CAAC,EACV6uB,CAAI,CAAC7uB,EAAE,CAAGmvB,CAAI,CAACnvB,EAAE,AAClB,GACD6uB,EAAKM,IAAI,CAAGA,EAyDZN,EAAKG,OAAO,CAACD,QAAQ,CArDP,CACbx1B,KAAM,UAEN21B,KAAAA,SAAKL,CAAI,EAERA,EAAKc,KAAK,CAAChyB,GAAG,CAAC,mBAAoB,SAAuB/F,CAAG,EAC5D,GAAIA,EAAI83B,IAAI,EAAI,IAAI,CAACH,IAAI,GAAKV,EAAKyE,WAAW,CAAE,CAC/C,IAAI,CAACvxB,KAAK,GACV,IAAMzH,EAAO1C,EAAI83B,IAAI,CACf8G,EAAa,IAAI,CAAC9F,gBAAgB,GAQxC,GANI,AAAC8F,GACJ,IAAI,CAAChH,UAAU,CAAC,uBAGjB,IAAI,CAACK,YAAY,GAEb,IAAI,CAACN,IAAI,GAAKV,EAAKuH,UAAU,CAAE,CAClC,IAAI,CAACr0B,KAAK,GACV,IAAM00B,EAAY,IAAI,CAAC/F,gBAAgB,GAcvC,GAZI,AAAC+F,GACJ,IAAI,CAACjH,UAAU,CAAC,uBAEjB53B,EAAI83B,IAAI,CAAG,CACV9c,KA3BkB,wBA4BlBtY,KAAAA,EACAk8B,WAAAA,EACAC,UAAAA,CACD,EAIIn8B,EAAKy3B,QAAQ,EAAIlD,EAAKmC,UAAU,CAAC12B,EAAKy3B,QAAQ,CAAC,EAAI,GAAK,CAE3D,IADA,IAAI2E,EAAUp8B,EACPo8B,EAAQnF,KAAK,CAACQ,QAAQ,EAAIlD,EAAKmC,UAAU,CAAC0F,EAAQnF,KAAK,CAACQ,QAAQ,CAAC,EAAI,IAC3E2E,EAAUA,EAAQnF,KAAK,AAExB35B,CAAAA,EAAI83B,IAAI,CAACp1B,IAAI,CAAGo8B,EAAQnF,KAAK,CAC7BmF,EAAQnF,KAAK,CAAG35B,EAAI83B,IAAI,CACxB93B,EAAI83B,IAAI,CAAGp1B,CACZ,CACD,MAEC,IAAI,CAACk1B,UAAU,CAAC,aAElB,CACD,EACD,CACD,GC/lCA,IAAMmH,EAAY,0B,4MCAX,IAAMC,EAAU,CACnB98B,MACAqqB,QACAzoB,OACAm7B,SACAhmB,IACAhQ,KACAtD,OACAu5B,OACAx5B,OACA+V,OACAhG,KACA0pB,SACAjnB,MACAvN,WACAlC,SACA22B,UACAC,UACAC,mBACAv8B,OAAQ,CACJw8B,UAAW5sB,OACX4rB,OAAQx7B,OAAOw7B,MAAM,CAACpW,IAAI,CAAC,MAC3BwI,YAAa5tB,OAAO4tB,WAAW,CAACxI,IAAI,CAAC,MACrChU,OAAQpR,OAAOoR,MAAM,CAACgU,IAAI,CAAC,MAC3BnlB,KAAMD,OAAOC,IAAI,CAACmlB,IAAI,CAAC,MACvBjD,GAAIniB,OAAOmiB,EAAE,CAACiD,IAAI,CAAC,MACnB9L,OAAQtZ,OAAOsZ,MAAM,CAAC8L,IAAI,CAAC,KAC/B,CACJ,ECqIW,SAASqX,EAAkBC,CAAU,CAAEC,EAAY,CAAC,CAAC,EAC5D,OAAOC,AA+CA,SAAwBF,CAAU,CAAEC,EAAY,CAAC,CAAC,CAAEE,CAAa,EACxE,GAAI,AAAsB,UAAtB,OAAOH,GAA4B,CAAsB,UAAtB,OAAOA,GAA2B,CAACA,GAAc,CAAE,UAAUA,CAAS,GACzG,KAAM,CAAC,wBAAwB,EAAEA,EAAW,6DAA6D,CAAC,AAE1G,OAAOC,GACPA,CAAAA,EAAY,CAAC,GAEjB,IAAM5sB,EAAU+sB,AAyUpB,SAAkCH,CAAS,MAMZA,EALEA,EAKSI,EALEd,EAMxC,IAAMlsB,EAAU,CACZsV,QAASzV,OACT+sB,UAAW,CACP,GAAGA,CAAS,AAChB,EACAV,QAAS,CACL,GAAGc,CAAQ,AACf,EACAC,aAAcC,CAAI,EAKd,OAJA,IAAI,CAACN,SAAS,CAAG,CACb,GAAG,IAAI,CAACA,SAAS,CACjB,GAAGM,CAAI,AACX,EACO,IAAI,AACf,CACJ,EAEA,OADAltB,EAAQitB,YAAY,CAAC5X,IAAI,CAACrV,GACnBA,CAtBX,EA3U6C4sB,GACnCn3B,EAAS03B,EAAgB,AAAsB,UAAtB,OAAOR,EAA0BxI,EAAKwI,GAAcA,EAAY3sB,GAC/F,GAAI8sB,EAAcr3B,GACd,OAAOA,CAEP,MAAM,CACFyS,KAAM,iBACN+C,QAAS,AAAsB,UAAtB,OAAO0hB,EAA0B,CAAC,eAAe,EAAEA,EAAW,+BAA+B,CAAC,CAAG,+CAC9G,CAER,EAhE0BA,EAAYC,EAAWQ,EACjD,CAkHA,SAASA,EAAqB33B,CAAM,EAChC,MAAO,AAAkB,WAAlB,OAAOA,CAClB,CAOA,SAAS03B,EAAgBR,CAAU,CAAE3sB,CAAO,EACxC,OAAO2sB,EAAWzkB,IAAI,EAClB,IAAK,sBAqGuBykB,EAAY3sB,EA6FlB2sB,EAAY3sB,EA2DpB2sB,EAAY3sB,EA1BJ2sB,EAAY3sB,EAzLZ2sB,EAzCUA,EAyCE3sB,EAzCUA,EA0ChD,IAAM1P,EAAQ68B,EAAgBR,EAAW3E,QAAQ,CAAEhoB,GACnD,OAAO2sB,EAAWtF,QAAQ,EACtB,IAAK,IACD,MAAO,CAAC/2B,CACZ,KAAK,IACD,MAAO,CAACA,CACZ,KAAK,IACD,MAAO,CAACA,CACZ,KAAK,IACD,MAAO,CAACA,CACZ,SACI,KAAM,CAAC,gDAAgD,EAAEq8B,EAAWtF,QAAQ,CAAC,EAAE,CAAC,AACxF,CArDI,IAAK,uBAuDkBsF,EAtDUA,EAsDE3sB,EAtDUA,EAuDjD,IAAI4mB,EAAOuG,EAAgBR,EAAW/F,IAAI,CAAE5mB,GACxC6mB,EAAQsG,EAAgBR,EAAW9F,KAAK,CAAE7mB,GAC9C,OAAO2sB,EAAWtF,QAAQ,EACtB,IAAK,IACD,OAAOT,EAAOC,CAClB,KAAK,IACD,OAAOD,EAAOC,CAClB,KAAK,IACD,OAAOD,EAAOC,CAClB,KAAK,IACD,OAAOD,EAAOC,CAClB,KAAK,IACD,OAAOD,EAAOC,CAClB,KAAK,KACD,OAAOD,GAAQC,CACnB,KAAK,KACD,OAAOD,GAAQC,CACnB,KAAK,MACD,OAAOD,IAASC,CACpB,KAAK,KACD,OAAOD,GAAQC,CACnB,KAAK,MACD,OAAOD,IAASC,CACpB,KAAK,IACD,OAAOD,EAAOC,CAClB,KAAK,KACD,OAAOD,GAAQC,CACnB,KAAK,IACD,OAAOD,EAAOC,CAClB,KAAK,KACD,OAAOD,GAAQC,CACnB,KAAK,KACD,OAAOD,KAAQC,CACnB,KAAK,KACD,OAAOD,GAAQC,CACnB,KAAK,KACD,OAAOD,GAAQC,CACnB,KAAK,KACD,OAAOD,GAAQC,CACnB,SACI,KAAM,CAAC,gDAAgD,EAAE8F,EAAWtF,QAAQ,CAAC,UAAU,CAAC,AAChG,CA/FI,IAAK,wBACD,OAgGwBsF,EAhGUA,EAgGE3sB,EAhGUA,EAkG/CpQ,AADMu9B,EAAgBR,EAAW/8B,IAAI,CAAEoQ,GAChCmtB,EAAgBR,EAAWb,UAAU,CAAE9rB,GAAWmtB,EAAgBR,EAAWZ,SAAS,CAAE/rB,EAjGlG,KAAK,qBAmGgB2sB,EAlGUA,EAkGE3sB,EAlGUA,EAmG/C,IAAIY,EAAO+rB,EAAWv5B,SAAS,EAAE0C,IAAIu3B,EAAyBrtB,IAC1DqpB,EAAS8D,EAAgBR,EAAWtD,MAAM,CAAErpB,GAChD,GAAKqpB,EAEE,IAAM,AAAkB,YAAlB,OAAOA,EAChB,KAAM,CAAC,EAAEiE,EAAkBX,EAAWtD,MAAM,EAAE,kBAAkB,CAAC,AACrE,MAHI,KAAM,CAAC,kBAAkB,EAAEiE,EAAkBX,EAAWtD,MAAM,EAAE,2BAA2B,CAAC,CAIhG,OAAOA,KAAUzoB,EAzGb,KAAK,8BA2GyB+rB,EA1GUA,EA0GE3sB,EA1GUA,EA2GxD,IAAMutB,EAASZ,EAAWY,MAAM,EAAEz3B,IAAI,AAACW,IACnC,GACS,eADFA,EAAEyR,IAAI,CAEL,OAAOzR,EAAE5H,IAAI,AAEb,MAAM,CAAC,gCAAgC,EAAE4H,EAAEyR,IAAI,CAAC,CAAC,AAE7D,IAAM,EAAE,CACR,MAAQ,UAAS,GAAGslB,CAAI,EACpB,GAAIA,EAAKt+B,MAAM,CAAGq+B,EAAOr+B,MAAM,CAC3B,KAAM,CAAC,qBAAqB,EAAEq+B,EAAO99B,KAAK,CAAC+9B,EAAKt+B,MAAM,CAAE,IAAI6G,IAAI,CAAC,MAAM,kBAAkB,CAAC,CAE9F,IAAMm3B,EAAOj9B,OAAO4tB,WAAW,CAAC0P,EAAOjX,MAAM,CAAC,CAACH,EAAK1f,EAAG0b,KACnD,IAAMpa,EAAMy1B,CAAI,CAACrb,EAAI,CAOrB,OANIsb,AA2KhB,SAASA,EAAoB11B,CAAG,EAC5B,GAAI,AAAe,UAAf,OAAOA,GAAoB,AAAe,UAAf,OAAOA,GAAoB,AAAe,WAAf,OAAOA,GAAqB,AAAe,YAAf,OAAOA,GAAsBA,AAAQ,OAARA,GAAgBA,aAAe4Q,OAC9I,MAAO,GAEX,GAAI,AAAe,UAAf,OAAO5Q,EAAkB,CACzB,IAAK,IAAM3H,KAAOH,OAAOC,IAAI,CAAC6H,GAC1B,GAAI,CAAC01B,EAAoB11B,CAAG,CAAC3H,EAAI,EAC7B,MAAO,GAGf,MAAO,EACX,CACA,GAAIhB,MAAM8B,OAAO,CAAC6G,GACd,KAAK,IAAM4a,KAAQ5a,EACf,GAAI,CAAC01B,EAAoB9a,GACrB,KAER,CAEJ,MAAO,EACX,EA/LoC5a,IACpBoe,EAAInkB,IAAI,CAAC,CACLyE,EACAsB,EACH,EAEEoe,CACX,EAAG,EAAE,GACL,OAAOgX,EAAgBR,EAAW3oB,IAAI,CAAEhE,EAAQitB,YAAY,CAACC,GACjE,GAAG7X,IAAI,CAACrV,EAAQsV,OAAO,EAAI,KAjIvB,KAAK,mBACD,OAAOoY,AAkInB,SAA+Bf,CAAU,CAAE3sB,CAAO,EAC9C,IA4BIvK,EA5BA+L,EAAM2rB,EAAgBR,EAAW7jB,MAAM,CAAE9I,GAC7C,GAAIwB,AAAQ3B,SAAR2B,EACA,OAAOmrB,EAAW7jB,MAAM,CAACZ,IAAI,EACzB,IAAK,aACD,CACI,IAAIylB,EAAaC,EAAoBjB,EAAW7jB,MAAM,CAAE9I,EACxD,OAAM6tB,eAAe,CAAC,gBAAgB,EAAEF,EAAW,eAAe,CAAC,CACvE,CACJ,IAAK,mBACD,CACI,IAAIG,EAAeF,EAAoBjB,EAAW3D,QAAQ,CAAEhpB,EAC5D,OAAMjQ,UAAU,CAAC,yDAAyD,EAAE+9B,EAAa,EAAE,CAAC,CAChG,CACJ,QACI,KAAM,CAAC,iDAAiD,EAAEnB,EAAW7jB,MAAM,CAACZ,IAAI,CAAC,MAAM,CAAC,AAChG,CAEJ,IAAI6lB,EAASvsB,EACb,GAAI,AAAe,UAAf,OAAOA,EACPusB,EAASn7B,OAAOE,SAAS,MACtB,GAAI,AAAe,UAAf,OAAO0O,EACdusB,EAASl7B,OAAOC,SAAS,MACtB,GAAI,AAAe,YAAf,OAAO0O,QAEX,GAAI,AAAe,UAAf,OAAOA,EACd,KAAM,CAAC,6DAA6D,EAAE,OAAOA,EAAI,CAAC,CAItF,OAFAxB,EAAQsV,OAAO,CAAGyY,EAEXpB,EAAW3D,QAAQ,CAAC9gB,IAAI,EAC3B,IAAK,aACL,IAAK,mBACDzS,EAAS03B,EAAgBR,EAAW3D,QAAQ,CAAEhpB,GAC9C,KACJ,SACI,CACI,IAAMgpB,EAAWmE,EAAgBR,EAAW3D,QAAQ,CAAEhpB,GACtD,GAAI,AAAoB,SAAbgpB,EACP,KAAM,CACF9gB,KAAM,0BACN+C,QAAS,iDACb,EAEJ+iB,EAAqBhF,GACrBvzB,EAAS+L,CAAG,CAACwnB,EAAS,AAC1B,CACR,OACA,AAAI,AAAkB,YAAlB,OAAOvzB,EACAA,EAAO4f,IAAI,CAAC7T,GAEhB/L,CACX,EAtLyCk3B,EAAY3sB,EAC7C,KAAK,kBACD,OAqLkB2sB,EArLUA,EAqLE3sB,EArLUA,EAsLzC2sB,EAAWlL,QAAQ,EAAE3rB,IAAIu3B,EAAyBrtB,GArLrD,KAAK,yBAuLoB2sB,EAtLUA,EAsLE3sB,EAtLUA,EAuLnD,IAAMvK,EAASk3B,EAAWzC,WAAW,CAACp0B,GAAG,CAACu3B,EAAyBrtB,IACnE,OAAOvK,CAAM,CAACA,EAAOvG,MAAM,CAAG,EAAE,AAvL5B,KAAK,oBAyLey9B,EAxLUA,EAwLE3sB,EAxLUA,EAyL9C,GAAI2sB,EAAWtD,MAAM,EAAIsD,AAA2B,eAA3BA,EAAWtD,MAAM,CAACnhB,IAAI,CAAmB,CAC9D,IAAItH,EAAO+rB,EAAWv5B,SAAS,EAAE0C,IAAIu3B,EAAyBrtB,IAC9D,OAAO2sB,EAAWtD,MAAM,CAACx6B,IAAI,EACzB,IAAK,OAEiE,OAAO,IAAIwF,QAAQuM,EAEzF,KAAK,SAC6D,OAAO,IAAI+H,UAAU/H,EACvF,SACI,KAAM,CAAC,kCAAkC,EAAE+rB,EAAWtD,MAAM,CAACx6B,IAAI,CAAC,CAAC,AAC3E,CACJ,CACI,GAAK89B,EAAWtD,MAAM,CAGlB,KAAM,+CAFN,MAAM,kDAtMV,KAAK,UACD,OA0OsBrpB,EA1OUA,EA2OxCguB,EAAqBrB,CADHA,EA1OUA,GA2OIr8B,KAAK,EAC9Bq8B,EAAWr8B,KAAK,AA3OnB,KAAK,iBAqNYq8B,EApNUA,EAoNE3sB,EApNUA,EAqN3CguB,EAAqBrB,EAAW99B,IAAI,EAIpC,IAAMymB,EAAUtV,EAAQsV,OAAO,CAC/B,GAAIA,GAAY,CAAmB,UAAnB,OAAOA,GAAwB,AAAmB,YAAnB,OAAOA,CAAqB,GAAMqX,EAAW99B,IAAI,IAAIymB,EAAS,CACzG,IAAM7f,EAAS6f,CAAO,CAACqX,EAAW99B,IAAI,CAAC,CAEvC,OADAm/B,EAAqBv4B,GACdA,CACX,CAAO,GAAIuK,EAAQ4sB,SAAS,EAAID,EAAW99B,IAAI,IAAImR,EAAQ4sB,SAAS,CAAE,CAClE,IAAMn3B,EAASuK,EAAQ4sB,SAAS,CAACD,EAAW99B,IAAI,CAAC,CAEjD,OADAm/B,EAAqBv4B,GACdA,CACX,QAAO,AAAIk3B,EAAW99B,IAAI,IAAImR,EAAQksB,OAAO,CAClClsB,EAAQksB,OAAO,CAACS,EAAW99B,IAAI,CAAC,CAEvC,MApOA,KAAK,sBAwMiB89B,EAvMUA,EAuME3sB,EAvMUA,EAwMhD,IAAMkqB,EAAcyC,EAAWzC,WAAW,EAAEp0B,IAAIu3B,EAAyBrtB,KAAa,EAAE,CAClFiuB,EAAStB,EAAWsB,MAAM,EAAEn4B,IAAIu3B,EAAyBrtB,KAAa,EAAE,CAC9E,OAAOiuB,EAAO3Q,MAAM,CAAC,AAAC5mB,GAAI,CAACA,EAAEw3B,IAAI,EAAEp4B,GAAG,CAAC,AAACY,GAAIA,EAAEpG,KAAK,EAAEyF,IAAI,CAAC,IAAMm0B,EAAYn0B,IAAI,CAAC,IAAMk4B,EAAO3Q,MAAM,CAAC,AAAC5mB,GAAIA,EAAEw3B,IAAI,EAAEp4B,GAAG,CAAC,AAACY,GAAIA,EAAEpG,KAAK,EAAEyF,IAAI,CAAC,GAzMrI,KAAK,kBACD,OA0M8BiK,EA1MUA,EA2MzC,CACH1P,MAAOq8B,CAFeA,EA1MUA,GA4MdwB,MAAM,CACxBD,KAAMvB,EAAWuB,IAAI,AACzB,CA7MI,SACI,KAAM,CAAC,0DAA0D,EAAEvB,EAAWzkB,IAAI,CAAC,CAAC,CAAC,AAC7F,CACJ,CACA,SAAS0lB,EAAoBjB,CAAU,CAAE3sB,CAAO,EAC5C,OAAO2sB,EAAWzkB,IAAI,EAClB,IAAK,UACD,OAAOykB,EAAWr8B,KAAK,AAC3B,KAAK,aACD,OAAOq8B,EAAW99B,IAAI,AAC1B,KAAK,mBACD,OAAO++B,EAAoBjB,EAAW3D,QAAQ,CAAEhpB,EACpD,SACI,KAAM,CAAC,yDAAyD,EAAE2sB,EAAWzkB,IAAI,CAAC,CAAC,CAAC,AAC5F,CACJ,CAoPA,SAASmlB,EAAyBrtB,CAAO,EACrC,OAAO,SAAuC2sB,CAAU,SACpD,AAAIA,AAAe,OAAfA,EACO,KAEJQ,EAAgBR,EAAY3sB,EACvC,CACJ,CACA,SAASguB,EAAqBn/B,CAAI,EAC9B,GAAIA,AAAS,cAATA,GAAwBA,AAAS,cAATA,GAAwBA,AAAS,gBAATA,EAChD,KAAM,CACFqZ,KAAM,0BACN+C,QAAS,CAAC,kBAAkB,EAAEpc,EAAK,oBAAoB,CAAC,AAC5D,CAER,CAsBA,SAASy+B,EAAkBX,CAAU,SACjC,AAAKA,EAGDA,AAAoB,qBAApBA,EAAWzkB,IAAI,CACRykB,EAAW3D,QAAQ,EAAEn6B,KAGzB89B,EAAW99B,IAAI,CANX,IAOf,CAnmBAs1B,EAAAA,OAAAA,CAAAA,QAAqB,CFNT,CACXt1B,KAAM,QAEN21B,KAAAA,SAAKL,CAAI,EAERA,EAAKoG,WAAW,CAAC,KAAM,GAAK,IAI5BpG,EAAKc,KAAK,CAAChyB,GAAG,CAAC,oBAAqB,SAA6B/F,CAAG,EAEnE,GADA,IAAI,CAACi4B,YAAY,GACb,IAAI,CAACN,IAAI,GAAKV,EAAKsE,WAAW,CAAE,CACnC,IAAM2F,EAAc,IAAI,CAAC/2B,KAAK,CAI9B,GAHA,IAAI,CAACA,KAAK,GAEV,IAAI,CAAC8tB,YAAY,GACb,IAAI,CAACN,IAAI,GAAKV,EAAKiF,WAAW,CAAE,CACnC,IAAI,CAAC/xB,KAAK,GAEV,IAAMovB,EAAO,IAAI,CAACP,cAAc,GAChC,GAAIO,AAAS,OAATA,EAAe,CAElB,IAAMziB,EAAO,IAAI,CAACiiB,sBAAsB,EACpC,CAACjiB,GACJ,IAAI,CAAC8gB,UAAU,CAAC,6BAA+B2B,GAEhDv5B,EAAI83B,IAAI,CAAG,CACV9c,KAAM+jB,EACNsB,OAAQ,KACRvpB,KAAAA,CACD,EACA,MACD,CACD,CACA,IAAI,CAAC3M,KAAK,CAAG+2B,CACd,CACD,GAEAjK,EAAKc,KAAK,CAAChyB,GAAG,CAAC,mBAAoB,SAAwB/F,CAAG,GAC7DmhC,AAGD,SAASA,EAAuBrJ,CAAI,EAC/BA,IAEH/0B,OAAOsZ,MAAM,CAACyb,GAAM70B,OAAO,CAAC,SAAC4H,CAAG,EAC3BA,GAAO,CAAe,SAARA,EAAAA,Y,AAAAA,G,4BAAAA,E,qCAAAA,CAAG,GAAK,UACzBs2B,EAAuBt2B,EAEzB,GAEsB,OAAlBitB,EAAKqC,QAAQ,GAChBrC,EAAK9c,IAAI,CAAG+jB,EACZjH,EAAKuI,MAAM,CAAGvI,EAAK4B,IAAI,CAAG,CAAC5B,EAAK4B,IAAI,CAAC,CAAG,KACxC5B,EAAKhhB,IAAI,CAAGghB,EAAK6B,KAAK,CAClB7B,EAAKuI,MAAM,EAAIvI,EAAKuI,MAAM,CAAC,EAAE,CAACrlB,IAAI,GAAKic,EAAK8F,YAAY,EAC3DjF,CAAAA,EAAKuI,MAAM,CAAGvI,EAAKuI,MAAM,CAAC,EAAE,CAACrD,WAAW,AAAD,EAExC,OAAOlF,EAAK4B,IAAI,CAChB,OAAO5B,EAAK6B,KAAK,CACjB,OAAO7B,EAAKqC,QAAQ,EAGvB,EAxBwBn6B,EAAI83B,IAAI,CAChC,EAwBD,CACD,GE1DAb,EAAAA,OAAAA,CAAAA,QAAqB,CCTT,CACXt1B,KAAM,MAEN21B,KAAAA,SAAKL,CAAI,EACRA,EAAKkG,UAAU,CAAC,OAEhBlG,EAAKc,KAAK,CAAChyB,GAAG,CAAC,cAAe,SAAmB/F,CAAG,EACnD,IAAM83B,EAAO93B,EAAI83B,IAAI,CACrB,GAAIA,GAAQA,AAAkB,QAAlBA,EAAKqC,QAAQ,CAAY,CAChC,AAACrC,EAAKgD,QAAQ,EAAK,CAAC7D,EAAK+E,QAAQ,CAAE/E,EAAK2E,UAAU,CAAC,CAAClkB,QAAQ,CAACogB,EAAKgD,QAAQ,CAAC9f,IAAI,GAClF,IAAI,CAAC4c,UAAU,CAAC,2BAEjB53B,EAAI83B,IAAI,CAAGA,EAAKgD,QAAQ,CAIxB,IADA,IAAIsG,EAAWphC,EAAI83B,IAAI,CAChBsJ,EAASpmB,IAAI,GAAKic,EAAK2E,UAAU,EACvCwF,EAASpmB,IAAI,GAAKic,EAAK+E,QAAQ,EAAIoF,EAASjF,MAAM,CAACnhB,IAAI,GAAKic,EAAK2E,UAAU,EAC3EwF,EAAWA,EAASpmB,IAAI,GAAKic,EAAK2E,UAAU,CACzCwF,EAASxlB,MAAM,CACfwlB,EAASjF,MAAM,CAACvgB,MAAM,AAE1BwlB,CAAAA,EAASpmB,IAAI,CAAG,eACjB,CACD,EACD,CACD,GDhBAic,EAAAA,OAAAA,CAAAA,QAAqB,CEPT,CACXt1B,KAAM,UAEN21B,KAAAA,SAAKC,CAAI,EA+CR,SAAS8J,EAAoBC,CAAO,QACnC,AAAIA,AAAY,MAAZA,GAAmBA,AAAY,MAAZA,GACtB,IAAI,CAACn3B,KAAK,EAAI,EACP,CACN,CAAC,GAAI,GAAG,CACR,CAAC,GAAI,GAAG,CACR,CAAC,GAAI,IAAI,CACT,EAEOm3B,AAAY,MAAZA,GAAmBA,AAAY,MAAZA,GAC3B,IAAI,CAACn3B,KAAK,EAAI,EACP,CAAC,CAAC,GAAI,GAAG,CAAC,EAETm3B,AAAY,MAAZA,GAAmBA,AAAY,MAAZA,GAC1BA,GAAW,KAAOA,GAAW,KAC9B,IAAI,CAACn3B,KAAK,EAAIm3B,GAAW,IAAM,EAAI,EAC5B,CAAC,CAAC,GAAI,GAAG,CAAC,EAEX,IACR,CAgCA,SAASC,EAAavhC,CAAG,E,WAClBs8B,EAAa,IAAI,CAACnyB,KAAK,CACzBkyB,EAAS,GAEPmF,EAAe,WACpB,KAAOjK,EAAK6C,cAAc,CAAC,EAAKzC,IAAI,GAAK,AA5G1B,KA4G0B,EAAKA,IAAI,EAC7C,AA7GU,KA6GV,EAAKA,IAAI,CACZ,EAAKxtB,KAAK,GAGVkyB,GAAU,EAAK7E,IAAI,CAACE,MAAM,CAAC,EAAKvtB,KAAK,GAGxC,EAEAq3B,IACI,IAAI,CAAC7J,IAAI,GAAKJ,EAAK8C,WAAW,GACjCgC,GAAU,IAAI,CAAC7E,IAAI,CAACE,MAAM,CAAC,IAAI,CAACvtB,KAAK,IAErCq3B,KAGD,IAAItJ,EAAK,IAAI,CAACT,IAAI,CACdS,CAAAA,AAAO,MAAPA,GAAcA,AAAO,MAAPA,CAAS,IAC1BmE,GAAU,IAAI,CAAC7E,IAAI,CAACE,MAAM,CAAC,IAAI,CAACvtB,KAAK,IAGjC+tB,CAAO,MAFXA,CAAAA,EAAK,IAAI,CAACT,IAAI,AAAD,GAEKS,AAAO,MAAPA,CAAS,GAC1BmE,CAAAA,GAAU,IAAI,CAAC7E,IAAI,CAACE,MAAM,CAAC,IAAI,CAACvtB,KAAK,GAAE,EAGxCq3B,IAEI,AAACjK,EAAK6C,cAAc,CAAC,IAAI,CAAC5C,IAAI,CAAChlB,UAAU,CAAC,IAAI,CAACrI,KAAK,CAAG,KAC1D,IAAI,CAACytB,UAAU,CAAC,sBAAwByE,EAAS,IAAI,CAAC5E,IAAI,CAAG,MAI/D,IAAM2E,EAAS,IAAI,CAACzE,IAAI,CAGxB,GAAIJ,EAAK8B,iBAAiB,CAAC+C,GAC1B,IAAI,CAACxE,UAAU,CAAC,8CACfyE,EAAS,IAAI,CAAC5E,IAAI,CAAG,UAElB,GAAI2E,IAAW7E,EAAK8C,WAAW,CAAE,CACjCgC,EAAOr6B,MAAM,CAAG,GACnB,IAAI,CAAC41B,UAAU,CAAE,qBAAgE,OAA5CniB,KAAKU,SAAS,CAAC,CAAEimB,OAAAA,EAAQC,OAAAA,CAAO,EAAG,KAAM,KAG/E,IAAI,CAAClyB,KAAK,CAAGmyB,EACb,MACD,CAEAt8B,EAAI83B,IAAI,CAAG,CACV9c,KAAMuc,EAAK4D,OAAO,CAClB/3B,MAAOuH,WAAW0xB,GAClBjB,IAAK,IAAI,CAAC5D,IAAI,CAACiF,SAAS,CAACH,EAAY,IAAI,CAACnyB,KAAK,CAChD,CACD,CA5JAotB,EAAKQ,KAAK,CAAChyB,GAAG,CAAC,eAAgB,SAAsB/F,CAAG,EACvD,GAAI,AARY,KAQZ,IAAI,CAAC23B,IAAI,CAAiB,CAC7B,IAAM2E,EAAa,IAAI,CAACnyB,KAAK,CACvBm3B,EAAU,IAAI,CAAC9J,IAAI,CAACE,MAAM,CAAC,IAAI,CAACvtB,KAAK,CAAG,GACxCs3B,EAASJ,EAAoB/+B,IAAI,CAAC,IAAI,CAAEg/B,GAC9C,GAAKG,GAKL,IADA,IA+EiC9J,EAAM8J,EAhBlBH,EA/DjBjF,EAAS,GA+EoB1E,EA9EA,IAAI,CAACA,IAAI,CA8EH8J,EA9EKA,EA+EtC9J,AA/FS,KA+FTA,GACN8J,EAAOC,IAAI,CAAC,Y,m0BAAEx4B,EAAAA,CAAAA,CAAAA,EAAAA,CAAKF,EAAAA,CAAAA,CAAAA,EAAAA,C,OAAS2uB,GAAQzuB,GAAOyuB,GAAQ3uB,C,IA/E9C,AAjBU,KAiBV,IAAI,CAAC2uB,IAAI,CACZ,IAAI,CAACxtB,KAAK,GAGVkyB,GAAU,IAAI,CAAC7E,IAAI,CAACE,MAAM,CAAC,IAAI,CAACvtB,KAAK,IAKvC,GAAIotB,EAAK+B,gBAAgB,CAAC,IAAI,CAAC3B,IAAI,EAAG,CACrC,GAAIJ,EAAK6C,cAAc,CAAC,IAAI,CAACzC,IAAI,GAAKJ,EAAK6C,cAAc,CAACkH,EAAQ9uB,UAAU,CAAC,IAAK,CAEjF,IAAI,CAACrI,KAAK,CAAGmyB,EAAa,EAC1BiF,EAAaj/B,IAAI,CAAC,IAAI,CAAEtC,GACxB,MACD,CACA,IAAI,CAAC43B,UAAU,CAAC,gCACjB,CAEA53B,EAAI83B,IAAI,CAAG,CACV9c,KAAMuc,EAAK4D,OAAO,CAClB/3B,MAAOqF,SAAS4zB,EAyClB,AAAIiF,AAAY,OADMA,EAxCkBA,IAyCjBA,AAAY,MAAZA,EACf,GAECA,AAAY,MAAZA,GAAmBA,AAAY,MAAZA,EACpB,EAGD,GA/CLlG,IAAK,IAAI,CAAC5D,IAAI,CAACiF,SAAS,CAACH,EAAY,IAAI,CAACnyB,KAAK,CAChD,EACD,KACSotB,CAAAA,EAAK6C,cAAc,CAAC,IAAI,CAACzC,IAAI,GAAK,IAAI,CAACA,IAAI,GAAKJ,EAAK8C,WAAW,AAAD,GACvEkH,EAAaj/B,IAAI,CAAC,IAAI,CAAEtC,EAE1B,EAsHD,CACD,GF1JAi3B,EAAAA,OAAAA,CAAAA,QAAqB,CGRT,CACXt1B,KAAM,QAEN21B,KAAAA,SAAKL,CAAI,EAERA,EAAKc,KAAK,CAAChyB,GAAG,CAAC,eAAgB,SAA4B/F,CAAG,EAC7D,GAAI,AATa,KASb,IAAI,CAAC23B,IAAI,CAAkB,CAI9B,IAHA,IAAMgK,EAAe,EAAE,IAAI,CAACx3B,KAAK,CAE7By3B,EAAY,GACT,IAAI,CAACz3B,KAAK,CAAG,IAAI,CAACqtB,IAAI,CAACx1B,MAAM,EAAE,CACrC,GAAI,AAdW,KAcX,IAAI,CAAC21B,IAAI,EAAoB,CAACiK,EAAW,CAI5C,IAHA,IAAM/5B,EAAU,IAAI,CAAC2vB,IAAI,CAACj1B,KAAK,CAACo/B,EAAc,IAAI,CAACx3B,KAAK,EAEpDxK,EAAQ,GACL,EAAE,IAAI,CAACwK,KAAK,CAAG,IAAI,CAACqtB,IAAI,CAACx1B,MAAM,EAAE,CACvC,IAAM21B,EAAO,IAAI,CAACA,IAAI,CACtB,GAAKA,GAAQ,IAAMA,GAAQ,KACtBA,GAAQ,IAAMA,GAAQ,IACtBA,GAAQ,IAAMA,GAAQ,GAC1Bh4B,GAAS,IAAI,CAAC83B,IAAI,MAGlB,KAEF,CAEA,IAAIr0B,EAAAA,KAAAA,EACJ,GAAI,CACHA,EAAQ,IAAIqY,OAAO5T,EAASlI,EAC7B,CACA,MAAOC,EAAG,CACT,IAAI,CAACg4B,UAAU,CAACh4B,EAAEme,OAAO,CAC1B,CAUA,OARA/d,EAAI83B,IAAI,CAAG,CACV9c,KAAMic,EAAKkE,OAAO,CAClB/3B,MAAAA,EACAg4B,IAAK,IAAI,CAAC5D,IAAI,CAACj1B,KAAK,CAACo/B,EAAe,EAAG,IAAI,CAACx3B,KAAK,CAClD,EAGAnK,EAAI83B,IAAI,CAAG,IAAI,CAAC2D,mBAAmB,CAACz7B,EAAI83B,IAAI,EACrC93B,EAAI83B,IAAI,AAChB,CACI,IAAI,CAACH,IAAI,GAAKV,EAAKyD,WAAW,CACjCkH,EAAY,GAEJA,GAAa,IAAI,CAACjK,IAAI,GAAKV,EAAK8E,WAAW,EACnD6F,CAAAA,EAAY,EAAI,EAEjB,IAAI,CAACz3B,KAAK,EAAI,AArDC,KAqDD,IAAI,CAACwtB,IAAI,CAAmB,EAAI,CAC/C,CACA,IAAI,CAACC,UAAU,CAAC,iBACjB,CACD,EACD,CACD,GHhDAX,EAAAA,OAAAA,CAAAA,QAAqB,CIVT,CACXt1B,KAAM,UAEN21B,KAAAA,SAAKL,CAAI,EAERA,EAAKc,KAAK,CAAChyB,GAAG,CAAC,mBAAoB,SAAuB/F,CAAG,EAC5D,GAAIA,EAAI83B,IAAI,EAAI,IAAI,CAACH,IAAI,GAAKV,EAAKyE,WAAW,CAAE,CAC/C,IAAI,CAACvxB,KAAK,GACV,IAAMzH,EAAO1C,EAAI83B,IAAI,CACf8G,EAAa,IAAI,CAAC9F,gBAAgB,GAQxC,GANI,AAAC8F,GACJ,IAAI,CAAChH,UAAU,CAAC,uBAGjB,IAAI,CAACK,YAAY,GAEb,IAAI,CAACN,IAAI,GAAKV,EAAKuH,UAAU,CAAE,CAClC,IAAI,CAACr0B,KAAK,GACV,IAAM00B,EAAY,IAAI,CAAC/F,gBAAgB,GAcvC,GAZI,AAAC+F,GACJ,IAAI,CAACjH,UAAU,CAAC,uBAEjB53B,EAAI83B,IAAI,CAAG,CACV9c,KA3BkB,wBA4BlBtY,KAAAA,EACAk8B,WAAAA,EACAC,UAAAA,CACD,EAIIn8B,EAAKy3B,QAAQ,EAAIlD,EAAKmC,UAAU,CAAC12B,EAAKy3B,QAAQ,CAAC,EAAI,GAAK,CAE3D,IADA,IAAI2E,EAAUp8B,EACPo8B,EAAQnF,KAAK,CAACQ,QAAQ,EAAIlD,EAAKmC,UAAU,CAAC0F,EAAQnF,KAAK,CAACQ,QAAQ,CAAC,EAAI,IAC3E2E,EAAUA,EAAQnF,KAAK,AAExB35B,CAAAA,EAAI83B,IAAI,CAACp1B,IAAI,CAAGo8B,EAAQnF,KAAK,CAC7BmF,EAAQnF,KAAK,CAAG35B,EAAI83B,IAAI,CACxB93B,EAAI83B,IAAI,CAAGp1B,CACZ,CACD,MAEC,IAAI,CAACk1B,UAAU,CAAC,aAElB,CACD,EACD,CACD,GJtCAX,EAAAA,OAAAA,CAAAA,QAAqB,CKPT,CACXt1B,KAAM,sBAEN21B,KAAAA,SAAKL,CAAI,EACR,SAAS4K,EAAsB7hC,CAAG,E,IAAE8hC,EAAAA,CAAAA,CAAAA,UAAAA,MAAAA,CAAAA,IAAAA,AAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,EAAAA,SAAAA,CAAAA,EAAAA,CACnC,GAAI,AAXY,KAWZ,IAAI,CAACnK,IAAI,CAAiB,CAmB7B,IAlBA,IAAMG,EAAO,CACZ9c,KAVoB,kBAWpB+lB,OAAQ,EAAE,CACV/D,YAAa,EAAE,AAChB,EACIiE,EAAS,GACT7F,EAAM,GACNoB,EAAS,GACPx6B,EAAS,IAAI,CAACw1B,IAAI,CAACx1B,MAAM,CACzB+/B,EAAY,W,OAAMjK,EAAKiJ,MAAM,CAACj8B,IAAI,CAAC,CACxCkW,KAlBoB,kBAmBpB5X,MAAO,CACNg4B,IAAAA,EACA6F,OAAAA,CACD,EACAD,KAAMxE,CACP,E,EAEO,IAAI,CAACryB,KAAK,CAAGnI,GAAQ,CAC3B,I,EAqBC81B,EArBGI,EAAK,IAAI,CAACV,IAAI,CAACE,MAAM,CAAC,EAAE,IAAI,CAACvtB,KAAK,EAEtC,GAAI+tB,AAAO,MAAPA,EAYH,OAXA,IAAI,CAAC/tB,KAAK,EAAI,EACdqyB,EAAS,GACTuF,IAEA/hC,EAAI83B,IAAI,CAAGA,EAEPgK,GAEF9hC,CAAAA,EAAI83B,IAAI,CAAG,IAAI,CAAC2D,mBAAmB,CAACz7B,EAAI83B,IAAI,GAGvC93B,EAAI83B,IAAI,CAEX,GAAII,AAAO,MAAPA,GAAc,AAAqC,MAArC,IAAI,CAACV,IAAI,CAACE,MAAM,CAAC,IAAI,CAACvtB,KAAK,CAAG,GACpD,IAAI,CAACA,KAAK,EAAI,EACd43B,IACA3G,EAAM,GACN6F,EAAS,GACTnJ,AAAAA,CAAAA,EAAAA,EAAKkF,WAAW,AAAD,EAAEl4B,IAAI,OAArBgzB,E,+CAAyB,IAAI,CAACU,iBAAiB,CAnDjC,O,0kBAoDV,AApDU,MAoDV,IAAI,CAACb,IAAI,EACZ,IAAI,CAACC,UAAU,CAAC,oBAGb,GAAIM,AAAO,OAAPA,EAMR,OAJAkD,GAAOlD,EACPA,EAAK,IAAI,CAACV,IAAI,CAACE,MAAM,CAAC,EAAE,IAAI,CAACvtB,KAAK,EAClCixB,GAAOlD,EAECA,GACP,IAAK,IAAK+I,GAAU,KAAM,KAC1B,KAAK,IAAKA,GAAU,KAAM,KAC1B,KAAK,IAAKA,GAAU,IAAM,KAC1B,KAAK,IAAKA,GAAU,KAAM,KAC1B,KAAK,IAAKA,GAAU,KAAM,KAC1B,KAAK,IAAKA,GAAU,KAAQ,KAC5B,SAAUA,GAAU/I,CACrB,MAGA+I,GAAU/I,EACVkD,GAAOlD,CAET,CACA,IAAI,CAACN,UAAU,CAAC,aACjB,CACD,CAEAX,EAAKc,KAAK,CAAChyB,GAAG,CAAC,eAAgB87B,GAE/B5K,EAAKc,KAAK,CAAChyB,GAAG,CAAC,cAAe,SAAwC/F,CAAG,EACxE,GAAKA,AAAAA,CAAAA,EAAI83B,IAAI,CAAC9c,IAAI,GAAKic,EAAK0F,UAAU,EAAI38B,EAAI83B,IAAI,CAAC9c,IAAI,GAAKic,EAAK2E,UAAS,GAAM,AArFhE,KAqFgE,IAAI,CAACjE,IAAI,CAUxF,OATA33B,EAAI83B,IAAI,CAAG,CACV9c,KArF8B,2BAsF9BH,IAAK7a,EAAI83B,IAAI,CACbkK,MAAOH,EAAsB1Z,IAAI,CAAC,IAAI,EAAEnoB,EAAK,GAC9C,EAGAA,EAAI83B,IAAI,CAAG,IAAI,CAAC2D,mBAAmB,CAACz7B,EAAI83B,IAAI,EAErC93B,EAAI83B,IAAI,AAEjB,EACD,CACD,GLlFAb,EAAAA,WAAgB,CAAC,KAAM,GACvBA,EAAAA,WAAgB,CAAC,KAAM,E,iNMFvB,IAAMgL,EAAyBC,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,IACzBC,EAAiBC,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,IACjBC,EAAmBxR,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,IACnByR,EAAwB5P,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,IAE9B,SAAS6P,EAA2BC,CAAa,CAAEC,CAAoB,CAAEH,CAAqB,CAAEI,CAAgB,CAAEzW,CAAY,EAC1H,IAAMgF,EAAQ,CAAC,EACT0R,EAAWC,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,IACXC,EAAsB9/B,OAAOkT,OAAO,CAACysB,EAAiB/iC,KAAK,EAAEywB,MAAM,CAAC,CAAC,EAAG,CAAEvuB,QAAAA,CAAO,CAAE,CAAC,GAAGA,GAAS+G,GAAG,CAAC,CAAC,CAACjH,EAAK,GAAGA,GACpH,IAAK,GAAI,CAACouB,EAAU+S,EAAK,GAAI//B,OAAOkT,OAAO,CAACusB,EAAcvR,KAAK,EAAE,CAC7D,GAAM,CAAE1G,OAAAA,CAAM,CAAE,CAAG0K,AAAAA,GAAAA,EAAAA,+BAAAA,AAAAA,EAAgCwN,EAAsBK,EAAKnhC,IAAI,EAC5EohC,EAAqBC,AA+LnC,SAA2CjT,CAAQ,CAAEyS,CAAa,CAAEjY,CAAM,CAAE0Y,CAAyB,CAAEJ,CAAmB,CAAEF,CAAQ,CAAExW,CAAO,EACzI,IAAM+W,EAAcV,EAAcvR,KAAK,CAAClB,EAAS,CAACmT,WAAW,CACvDC,EAAcC,AAiExB,SAA8B7Y,CAAM,CAAE2Y,CAAW,EAC7C,IAAMG,EAAW9Y,EAAOxkB,GAAG,EAAI,EAAE,CAC3Bu9B,EAAa/Y,EAAO+F,MAAM,EAAI,EAAE,CAChCiT,EAAUhZ,EAAOgG,KAAK,EAAI,EAAE,CAC5B,CAAEiT,WAAAA,CAAU,CAAE,CAAGvB,EAAuBlR,QAAQ,GACtD,MAAO,IACAmS,KACAG,EACN,CAACjT,MAAM,CAAC,AAACqT,GAAK,CAACH,EAAW5rB,QAAQ,CAAC+rB,IAAKC,IAAI,CAAC,CAACC,EAAKC,KAChD,IAAMC,EAAKC,EAASH,EAAKJ,EAASC,CAAU,CAACtR,EAAuByR,GAAK,EAAEpT,MAAO2S,GAC5Ea,EAAKD,EAASF,EAAKL,EAASC,CAAU,CAACtR,EAAuB0R,GAAK,EAAErT,MAAO2S,UAClF,AAAIa,AAAO,KAAPA,EACO,GACAF,AAAO,KAAPA,EACA,EAEAA,EAAKE,CAEpB,EACJ,EApF6CxZ,EAAQ2Y,GAC3CM,EAAa,EAAE,CACrB,IAAK,IAAIC,KAAMN,EAAY,CACvB,GAAM,CAAE5Y,OAAQiI,CAAe,CAAE,CAAG2C,AAAAA,GAAAA,EAAAA,2BAAAA,AAAAA,EAA4B8N,EAA2BlT,EAAU0T,GAC/F9hC,EAAOuwB,EAAuBuR,GAC9B9R,EAAY6Q,EAAcgB,UAAU,CAAC7hC,EAAK,CAEhD,GAAIgwB,EAAW,CACX,IAAMqS,EAAqBxR,GAAiB,CAAC,qBAAqB,EAAE9F,YAAciF,EAAUjF,UAAU,EAAI,EAAE,CAC5G,GAAIsX,GAAuB,CAA8B,UAA9B,OAAOA,GAAmC9hC,MAAM8B,OAAO,CAACggC,IAAuBA,EAAmBhiC,MAAM,CAAG,KAC9H,CAACmqB,GAASG,MAGV,CAACF,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAc4X,EAAoB7X,EAAQG,IAAI,GAF/C,SAMR,IAAM2X,EAA6BzR,GAAiB,CAAC,qBAAqB,EAAEiN,YAAc,KAC1F,GAAIwE,AAA+B,OAA/BA,EACA,GAAI,CACA,GAAI,CAACzE,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAkByE,EAA4B,CAC/C9X,QAAAA,CACJ,GACI,QAER,CAAE,MAAOvsB,EAAG,CACRmZ,QAAQtX,KAAK,CAAC,CAAC,kCAAkC,EAAEwiC,EAA2B,CAAC,CAAErkC,GACjF,QACJ,CAEJ,GAAI+xB,EAAU7rB,WAAW,EAAI,CAAC+8B,EAAoBnrB,QAAQ,CAACia,EAAU7rB,WAAW,GAG5E4G,OAAOw3B,cAAc,EAAI,CAACC,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAexB,EAAUhR,EAAUyS,MAAM,CAAEzS,EAAU0S,OAAO,EAFtF,SAKJb,EAAW1+B,IAAI,CAAC,CACZ2+B,GAAAA,EACA9hC,KAAAA,EACA4sB,WAAYoD,EAAUpD,UAAU,CAChChE,OAAQiI,EACR1sB,YAAa6rB,EAAU7rB,WAAW,CAClC0P,KAAMmc,EAAUnc,IAAI,CACpB4uB,OAAQ5R,GAAiB,CAAC,qBAAqB,EAAE4R,QAAUzS,EAAUyS,MAAM,EAAI,GAC/EC,QAAS7R,GAAiB,CAAC,qBAAqB,EAAE6R,SAAW1S,EAAU0S,OAAO,EAAI,EACtF,EACJ,CACJ,CACA,OAAOb,CACX,EAlPqEzT,EAAUyS,EAAejY,EAAQ+X,EAAuBO,EAAqBF,EAAU1W,EAAaE,OAAO,CACxK8E,CAAAA,CAAK,CAAClB,EAAS,CAAG,CACdxB,WAAYuU,EAAKvU,UAAU,CAC3BwU,mBAAAA,CACJ,CACJ,CACI,AAACuB,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQnC,EAAepR,QAAQ,GAAGE,KAAK,CAAEA,IAC1CkR,EAAejY,QAAQ,CAAC,CACpB+G,MAAAA,CACJ,EAER,CAgBA,SAASsT,IACLhC,EAA2BN,EAAuBlR,QAAQ,GAAIsR,EAAiBtR,QAAQ,GAAIuR,EAAsBvR,QAAQ,GAAInb,EAAAA,EAAAA,CAAAA,QAA0B,GAAIqW,EAAAA,EAAAA,CAAAA,QAAqB,GACpL,CAuBW,SAASiG,EAAuBF,CAAW,EAClD,GAAM,CAACC,EAAc,CAAGD,EAAYG,KAAK,CAAC,KAC1C,OAAOF,CACX,CAsHI,SAAS6R,EAAS9R,CAAW,CAAEwS,CAAe,CAAEC,CAAoB,CAAEC,CAAa,EACnF,IAAMC,EAAkBH,EAAgBt3B,OAAO,CAAC8kB,GAChD,GAAI2S,AAAoB,KAApBA,EACA,OAAOA,CAIJ,EAHA,GAAIF,AAAyB9xB,SAAzB8xB,EAEP,OAAO,IAAOA,EAEd,IAAMG,EAAgBF,EAAcx3B,OAAO,CAAC8kB,UAC5C,AAAI4S,AAAkB,KAAlBA,EAGO,IAAOA,EAEP,EAEf,CACJ,CAlLA3C,EAAuBnsB,SAAS,CAAC,AAAC+uB,IAC9BtC,EAA2BsC,EAAexC,EAAiBtR,QAAQ,GAAIuR,EAAsBvR,QAAQ,GAAInb,EAAAA,EAAAA,CAAAA,QAA0B,GAAIqW,EAAAA,EAAAA,CAAAA,QAAqB,GAChK,GACAoW,EAAiBvsB,SAAS,CAAC,AAAC0Z,IACxB+S,EAA2BN,EAAuBlR,QAAQ,GAAIvB,EAAa8S,EAAsBvR,QAAQ,GAAInb,EAAAA,EAAAA,CAAAA,QAA0B,GAAIqW,EAAAA,EAAAA,CAAAA,QAAqB,GACpK,GACAqW,EAAsBxsB,SAAS,CAAC,AAACgvB,IAC7BvC,EAA2BN,EAAuBlR,QAAQ,GAAIsR,EAAiBtR,QAAQ,GAAI+T,EAAkBlvB,EAAAA,EAAAA,CAAAA,QAA0B,GAAIqW,EAAAA,EAAAA,CAAAA,QAAqB,GACpK,GACArW,EAAAA,EAAAA,CAAAA,SAA2B,CAAC,AAAC8sB,IACzBH,EAA2BN,EAAuBlR,QAAQ,GAAIsR,EAAiBtR,QAAQ,GAAIuR,EAAsBvR,QAAQ,GAAI2R,EAAkBzW,EAAAA,EAAAA,CAAAA,QAAqB,GACxK,GACAA,EAAAA,EAAAA,CAAAA,SAAsB,CAAC,AAACE,IACpBoW,EAA2BN,EAAuBlR,QAAQ,GAAIsR,EAAiBtR,QAAQ,GAAIuR,EAAsBvR,QAAQ,GAAInb,EAAAA,EAAAA,CAAAA,QAA0B,GAAIuW,EAC/J,GAIAoY,IACAQ,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAA6BR,G,sFCtDtB,SAASJ,EAAea,CAAM,CAAEZ,EAAS,EAAI,CAAEC,EAAU,EAAK,EACjE,MAAO9X,EAAQyY,CAAAA,EAASZ,EAASC,CAAM,CAC3C,C,uYCL6C5tB,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAkB,WAAY,CACvEsZ,SAAU,KACVkV,SAAUv4B,OAAOw4B,OAAO,CACxBC,KAAM,QACV,G,oJCH2B1uB,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAkB,gBAAiB,CAC1D2uB,OAAQ,CAAC,CACb,G,2gBCDA,IAAMnD,EAAyBxrB,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAkB,qBAAsB,CACnEwa,MAAO,CAAC,EACRuS,WAAY,CAAC,CACjB,GAMiBtB,EAA4B,IAAIrsB,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAe,qBAAsB,CAC9Eob,MAAO,CAAC,EACRuS,WAAY,CAAC,CACjB,GAWapB,EAAoB,IAAIvsB,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAe,aAAc,CAC9Dob,MAAO,CAAC,CACZ,GAOJ,SAASoU,EAA2BjX,CAAc,EAC9C,IAAMkX,EAAyB,EAAE,CACjC,IAAK,IAAIC,KAAiBxiC,OAAOsZ,MAAM,CAAC+R,EAAeoV,UAAU,EAC7D,IAAK,IAAIgC,KAAYD,EAAcE,SAAS,CACxCH,EAAuBxgC,IAAI,CAAC,CACxBgtB,eAAgB0T,EAAS1T,cAAc,CACvCC,oBAAqBwT,EAAchX,UAAU,CAC7CwB,SAAUyV,EAASzV,QAAQ,CAC3BiC,YAAawT,EAAS/B,EAAE,AAC5B,EAGJ,CAACa,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,EAAQnW,EAAAA,EAAAA,CAAAA,QAA6B,GAAGyD,iBAAiB,CAAE0T,IAC5DnX,EAAAA,EAAAA,CAAAA,QAA6B,CAAC,CAC1ByD,kBAAmB0T,CACvB,EAER,CAnBID,EAA2BpD,EAAuBlR,QAAQ,IAC9DkR,EAAuBnsB,SAAS,CAACuvB,G,kKC/BE5uB,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAkB,yBAA0B,CAC3EivB,WAAY,CAAC,CACjB,GAC4BjvB,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAkB,kBAAmB,CAC7DkvB,gBAAiB,CAAC,CACtB,G,kFCRA,IAAMC,EAA+B,+BAQL,SAASb,EAA6B/9B,CAAE,EACpE,GAAI,CAAC0F,OAAOw3B,cAAc,CACtB,MAAO,KAAK,EAEhB,IAAM2B,EAAU,AAACC,GAAK9+B,EAAG8+B,EAAGC,MAAM,EAElC,OADAr5B,OAAO2M,gBAAgB,CAACusB,EAA8BC,GAC/C,IAAIn5B,OAAOs5B,mBAAmB,CAACJ,EAA8BC,EACxE,CAqCwB,SAASvP,EAAmBnc,CAAI,EACpDzN,OAAOoM,aAAa,CAAC,IAAID,YAlBN,sBAkBkC,CACjDktB,OAAQ5rB,CACZ,GACJ,C,qHCtDc1D,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAkB,cAAe,EAAE,E,uqCCFjD,SAASwvB,EAAiB3xB,CAAG,CAAEpR,CAAG,CAAEE,CAAK,EAWrC,OAVIF,KAAOoR,EACPvR,OAAOuC,cAAc,CAACgP,EAAKpR,EAAK,CAC5BE,MAAOA,EACP+B,WAAY,GACZC,aAAc,GACdC,SAAU,EACd,GAEAiP,CAAG,CAACpR,EAAI,CAAGE,EAERkR,CACX,CAKW,MAAM4xB,UAAkBC,EAAAA,EAAKA,CACpC3jC,aAAa,CACT,KAAK,CAAC,cAERyjC,EAAiB,IAAI,CAAE,YAAa,KAAK,GAAIA,EAAiB,IAAI,CAAE,qBAAsB,KAAK,GAC7F,IAAI,CAAC/I,OAAO,CAAC,GAAGkJ,MAAM,CAAC,CACnBC,UAAW,iCACXC,mBAAoB,gDACxB,GACA,IAAI,CAACD,SAAS,CAAG,IAAI,CAACE,KAAK,CAAC,aAC5B,IAAI,CAACD,kBAAkB,CAAG,IAAI,CAACC,KAAK,CAAC,qBACzC,CACJ,C,gIC3Bc9vB,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAkB,mBAAoB,CAChD+vB,4BAA6B,CAAC,EAC9BC,SAAU,CAAC,CACf,G,wRCLA,GAAG,CAAC//B,IAAI,CAAC,uBAAuB,EAAEggC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAACtkC,CAAC,EAAE,OAAO,IAAI0V,QAAS,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI6uB,cAAe,GAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,CAACvkC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAG,CAAC,SAASA,EAAE,CAAC,CAACA,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAEA,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAEA,CAAC,CAAC,EAAE,AAAC,GAAE,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,EAAE,UAAU,GAAI,GAAE,QAAQ,CAAC,CAAC,GAAGW,OAAO,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAACX,CAAC,EAAE,AAAC,OAAMA,GAAGA,EAAE,EAAE,MAAM,AAAD,GAAKA,CAAAA,EAAE,EAAE,MAAM,AAAD,EAAG,IAAI,IAAI,EAAE,EAAE,EAAE,AAAIF,MAAME,GAAG,EAAEA,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAA4sB,GAAG,CAACsE,IAAI,CAAC,qBAAqB,EAAEggC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,IAAI,AAAC,KAAI,CAAC,OAAO,CAAC,IAAI5uB,QAAS,SAAS1V,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAACA,EAAE,EAAE,MAAM,CAAC,CAAC,EAAG,EAAE,SAAS,EAAE,CAAC,CAACA,CAAC,EAAE,IAAI,EAAEiW,SAAS,IAAI,CAAC,OAAO,IAAIuuB,IAAI,EAAE,GAAG,IAAI,GAAG,IAAIA,IAAIxkC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAACA,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAEW,OAAO,MAAM,CAAC,IAAI,CAACX,EAAE,EAAE,SAAS,EAAE,CAAC,CAACA,CAAC,CAAC,CAAC,EAAE,OAAO,EAAEA,EAAEA,EAAE,GAAG,EAAG,IAAG,EAAE,IAAI,EAAG,GAAE0V,QAAQ,OAAO,CAAC,EAAC,EAAG1V,EAAE,EAAE,IAAI,CAACA,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,cAAc,EAAE,SAAS,EAAE,CAAC,CAACA,CAAC,EAAE,GAAG,CAACA,EAAE,OAAO,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG0V,QAAQ,OAAO,EAAE,EAAO,SAAS,CAAC,EAAU,SAAS,EAAE,CAAC,CAAC1V,CAAC,EAAE,IAAI,EAAEqL,EAAE,OAAO,KAAK,IAAIrL,GAAIA,CAAAA,EAAE,CAAC,GAAG,AAAC,GAAE,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,AAAD,EAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAIuf,IAAI,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE,EAAE,EAAE,CAACvf,EAAE,EAAE,UAAU,AAAC,GAAE,EAAE,CAAC,GAAG,CAAC,EAAEA,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAKykC,YAAY,GAAG,GAAG,EAAE,EAAE,CAAC,IAAK,GAAE,EAAE,CAACzkC,EAAE,EAAE,mBAAmB,CAAC,cAAc,EAAE,EAAE,GAAI,GAAE,EAAE,CAACA,EAAE,EAAE,EAAE,CAAC,GAAG,CAACA,GAAG,EAAE,EAAE,CAAC,OAAO,CAACA,EAAC,EAAG,EAAE,EAAE,EAAE,CAACA,EAAE,gBAAgB,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,IAAIA,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,cAAc,CAAC,CAAE,EAAC,GAAG,EAAE,EAAE,EAAG,GAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,IAAI,cAAc,EAAE,EAAE,EAAE,CAACsE,KAAK,UAAU,CAAE,WAAW,cAAc,GAAGtE,EAAE,OAAO,GAAG,GAAG,EAAE,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,EAAG,KAAK,eAAe,GAAIuW,CAAAA,aAAa,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,EAAC,CAAE,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,IAAIvW,EAAE,EAAE,EAAE,CAAC,EAAEA,IAAI4W,UAAU,aAAa,CAAC,UAAU,AAAC,GAAE,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG5W,EAAE,SAAS,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,OAAO,CAACA,EAAE,EAAQqL,EAAE,SAAS,CAAC,EAAE,IAAIrL,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,GAAI,WAAW,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,KAAKA,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,EAAG,EAA5K,EAAE,EAAE,CAA0K,WAAW,IAAI,IAAI,EAAE,EAAE,CAACA,EAAE,EAAEA,EAAE8D,UAAU,MAAM,CAAC9D,IAAI,CAAC,CAACA,EAAE,CAAC8D,SAAS,CAAC9D,EAAE,CAAC,GAAG,CAAC,OAAO0V,QAAQ,OAAO,CAACrK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,OAAOqK,QAAQ,MAAM,CAAC,EAAE,CAAC,EAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC1V,EAAE4W,UAAU,aAAa,CAAC,gBAAgB,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,AAAI,AAAG,EAAG,SAAS,CAACjW,OAAO,MAAM,CAAC,AAAhC,EAAkC,SAAS,EAAE,AAAxC,EAA0C,SAAS,CAAC,WAAW,CAA/D,EAAkE,AAAlE,EAAoE,SAAS,CAAlF,EAAqF,IAAQ,EAAE,EAAE,EAAE,SAAS,AAAQ,GAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAIX,EAAE,AAAC,MAAK,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,KAAK,IAAIA,GAAGA,EAAE,GAAG,CAAC,IAA2B,EAAE,EAAO,EAAhC,EAAE,IAAI,CAAC,OAAgB,EAA2D,WAAW,GAAG,CAAC,GAAG,aAAayU,SAAS,UAAU,CAAC,OAAO,EAAE,IAAIiB,QAAS,SAAS,CAAC,EAAE,OAAOpL,OAAO,gBAAgB,CAAC,OAAO,EAAE,GAAI,EAA1L,EAA8L,WAAW,OAAO,EAAE,EAAE,CAAC,EAAQsM,UAAU,aAAa,CAAC,UAAU,CAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAI,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAG,GAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,EAAG,IAAI5W,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,OAAOA,GAAG,EAAEA,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAM,GAAE,EAAE,CAACA,EAAE0V,QAAQ,OAAO,GAAG,IAAI,CAAE,WAAW,EAAE,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG1V,EAAE,yBAAyB,CAAC,CAAC,GAAG,GAAI,IAAI,CAAE,WAAW,EAAE,EAAG,EAAE,EAAE,EAAG,GAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,EAAE,EAAE4W,UAAU,aAAa,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAG,EAA5uB,AAAG,CAAT,EAAE,MAAU,EAAE,IAAI,CAAQ,EAAE,IAAI,CAAC,GAAU,EAAE,EAAwsB,CAAC,MAAM,EAAE,CAAC,OAAOlB,QAAQ,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,OAAOA,QAAQ,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,OAAO,KAAK,IAAI,IAAI,CAAC,EAAE,CAACA,QAAQ,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,SAAS1V,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,GAAI,SAAS,CAAC,EAAE,OAAO,EAAE,EAAEA,EAAE,EAAG,CAAC,MAAM,EAAE,CAAC,OAAO0V,QAAQ,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,kBAAkB,CAAC,WAAW,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,WAAW,IAAI,EAAEkB,UAAU,aAAa,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,SAAS,CAAC,CAAC5W,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,OAAOA,EAAE,EAAE,QAAC,AAAG,GAAG,EAAE,IAAI,CAAQ,EAAE,IAAI,CAAC,KAAK,EAAEA,GAAU,CAAC,EAAG,WAAW,OAAO,EAAE4W,UAAU,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAG,SAAS5W,CAAC,EAAE,OAAO,EAAE,EAAE,CAACykC,YAAY,GAAG,GAAGzkC,CAAC,EAAG,EAAI,SAAS,CAAC,EAAE,MAAM,CAAC,EAAG,CAAC,MAAM,EAAE,CAAC,OAAO0V,QAAQ,MAAM,CAAC,EAAE,CAAC,EAA8H1V,EAAE,AAA5H,EAA8H,SAAS,CAAlI,CAAC,CAAC,IAAI,SAAS,IAAI,WAAW,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,cAAc,IAAI,WAAW,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAoB,GAAGA,EAA9I,EAAkJ,EAAI,EAAE,WAAW,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,IAAIU,GAAG,CAAC,IAAIV,EAAE,EAAE,SAAS,CAAC,OAAOA,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAACA,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAACA,EAAE,EAAEA,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAACA,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAACA,EAAE,EAAEA,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAIA,EAAEvC,EAAE,AAA7mJ,SAAW,CAAC,CAACuC,CAAC,EAAE,IAAI,EAAE,GAAG,aAAa,OAAO0B,QAAQ,MAAM,CAAC,CAACA,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG5B,MAAM,OAAO,CAAC,IAAK,GAAE,SAAS,CAAC,CAACE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,UAAU,OAAO,EAAE,OAAO,EAAE,EAAxCA,KAAAA,GAA6C,IAAI,EAAEW,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,MAAM,WAAW,GAAG,EAAE,WAAW,EAAG,GAAE,EAAE,WAAW,CAAC,IAAI,AAAD,EAAG,QAAQ,GAAG,QAAQ,EAAEb,MAAM,IAAI,CAAC,GAAG,cAAc,GAAG,2CAA2C,IAAI,CAAC,GAAG,EAAE,EAApQE,KAAAA,GAAyQ,KAAK,CAAC,CAAC,EAAE,EAAC,EAAoC,CAAC,GAAI,GAAE,GAAG,IAAIyC,EAAE,EAAE,OAAO,WAAW,OAAOA,GAAG,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAACA,IAAI,CAAC,CAAC,CAAC,MAAM,AAAIhC,UAAU,wIAAwI,CAAC,MAAM,AAAC,GAAE,CAAC,CAACiB,OAAO,QAAQ,CAAC,EAAC,EAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAq6H,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,AAAC1B,CAAAA,EAAEvC,GAAE,EAAG,IAAI,EAAG,AAAC,GAAEuC,EAAE,KAAK,AAAD,EAAG,EAAG,EAAEA,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAIuf,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,I,kJCItrK,IAAIukB,EAAAA,CAASA,CAENzvB,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAkB,0BAA2B,CAAC,G,wICH5BD,AAAAA,GAAAA,EAAAA,aAAAA,AAAAA,EAAc,CAC9C+X,WAAY,GACZuY,YAAa,EACjB,G,i9ICiNuCC,AAlNZ,CACvB,CACI,2BACA,MACH,CACD,CACI,yBACA,MACH,CACD,CACI,gBACA,MACH,CACD,CACI,sBACA,MACH,CACD,CACI,6BACA,MACH,CACD,CACI,gCACA,MACH,CACD,CACI,4BACA,MACH,CACD,CACI,uBACA,MACH,CACD,CACI,yBACA,MACH,CACD,CACI,mCACA,MACH,CACD,CACI,uBACA,MACH,CACD,CACI,iCACA,MACH,CACD,CACI,uBACA,MACH,CACD,CACI,oBACA,MACH,CACD,CACI,gBACA,MACH,CACD,CACI,gBACA,MACH,CACD,CACI,wBACA,MACH,CACD,CACI,eACA,MACH,CACD,CACI,sBACA,MACH,CACD,CACI,iCACA,MACH,CACD,CACI,8BACA,MACH,CACD,CACI,qBACA,MACH,CACD,CACI,qBACA,MACH,CACD,CACI,0BACA,MACH,CACD,CACI,6BACA,MACH,CACD,CACI,6BACA,MACH,CACD,CACI,qBACA,MACH,CACD,CACI,8BACA,MACH,CACD,CACI,6BACA,MACH,CACD,CACI,0BACA,MACH,CACD,CACI,gCACA,MACH,CACD,CACI,qBACA,MACH,CACD,CACI,uBACA,MACH,CACD,CACI,wBACA,MACH,CACD,CACI,uBACA,MACH,CACD,CACI,8BACA,MACH,CACD,CACI,+BACA,4BACH,CACD,CACI,2BACA,4BACH,CACD,CACI,8BACA,4BACH,CACD,CACI,4BACA,4BACH,CACD,CACI,yBACA,MACH,CACD,CACI,iCACA,MACH,CACD,CACI,eACA,MACH,CACD,CACI,+BACA,MACH,CACD,CACI,sCACA,MACH,CACD,CACI,6BACA,MACH,CACD,CACI,kBACA,MACH,CACD,CACI,oCACA,MACH,CACD,CACI,kBACA,MACH,CACD,CACI,4DACA,MACH,CACD,CACI,mBACA,MACH,CACD,CACI,yBACA,MACH,CACJ,CACqDn+B,GAAG,CAAC,CAAC,CAAC8c,EAAMshB,EAAI,GAAG,CAAC,EAAEthB,EAAK,CAAC,EAAEshB,EAAI,CAAC,EAAEn+B,IAAI,CAAC,K,oJCnNnDo+B,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAe/E,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,K,0mBCF3B+E,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAe7E,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,K,gmGC0C5C,SAAS6E,EAAeC,CAAK,EAY7B,OAXA,SAAkBC,CAAO,EACrB,GAAM,CAACpxB,EAAO5S,EAAI,CAAGikC,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAASF,EAAMnW,QAAQ,IAC5CsW,AAAAA,GAAAA,EAAAA,SAAAA,AAAAA,EAAU,IAAIH,EAAMpxB,SAAS,CAAC,AAACC,GAAQ5S,EAAI4S,IAAS,EAAE,EACtD,IAAIuxB,EAAeC,AAAAA,GAAAA,EAAAA,OAAAA,AAAAA,EAAQ,IAAIJ,EAAUK,AA9CjD,SAAqBN,CAAK,CAAEC,CAAO,EAC3B,AAAkB,YAAlB,OAAOA,GACPA,CAAAA,EAAUA,EAAQD,EAAK,EAE3B,IAAMO,EAAQ,CAAC,EACf,IAAK,GAAM,CAACC,EAAYC,EAAe,GAAI5kC,OAAOkT,OAAO,CAACkxB,GAAS,CAC/D,IAAMS,EAAgB,SAAS,GAAGl0B,CAAI,EAClCwzB,EAAMhd,QAAQ,CAAC,AAACnU,GACL4xB,EAAe5xB,KAAUrC,GAExC,CACA+zB,CAAAA,CAAK,CAACC,EAAW,CAAGE,CACxB,CACA,OAAOH,CACX,EAgC6DP,EAAOC,GAAW,CAAC,EAAG,CACvEA,EACH,EACD,MAAO,CACH,GAAGpxB,CAAK,CACR,GAAGuxB,CAAY,AACnB,CACJ,CAEJ,C,gPClDAO,EAAAA,OAAAA,CAAAA,MAAY,CAAC1hC,G,suBCLb,IAAM2hC,EAAkB,CAAC,EAed,SAASrxB,EAAkB9U,CAAI,CAAEk0B,CAAY,EACpD,IAAMkS,EAAYD,CAAe,CAACnmC,EAAK,CACvC,GAAIomC,EAOA,OANIA,EAAUC,MAAM,CAChBjvB,QAAQtX,KAAK,CAAC,CAAC,yCAAyC,EAAEE,EAAK,8CAA8C,CAAC,EAE9GomC,EAAU3kC,KAAK,CAAC8mB,QAAQ,CAAC2L,EAAc,IAE3CkS,EAAUC,MAAM,CAAG,GACZD,EAAU3kC,KAAK,AACnB,EACH,IAAM8jC,EAAQe,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,IAAc,IAAIpS,GAKhC,OAJAiS,CAAe,CAACnmC,EAAK,CAAG,CACpByB,MAAO8jC,EACPc,OAAQ,EACZ,EACOd,CACX,CACJ,CAiCW,SAASrxB,EAAelU,CAAI,CAAEumC,CAAa,EAClD,IAAMH,EAAYD,CAAe,CAACnmC,EAAK,CACvC,GAAI,CAAComC,EAAW,CACZ,IAAMb,EAAQe,AAAAA,GAAAA,EAAAA,CAAAA,AAAAA,IAAc,IAAIC,GAAiB,CAAC,GAKlD,OAJAJ,CAAe,CAACnmC,EAAK,CAAG,CACpByB,MAAO8jC,EACPc,OAAQ,EACZ,EACOd,CACX,CACA,OAAOa,EAAU3kC,KAAK,AAC1B,CA1EA6U,WAAW,KACHvL,AAAkB,gBAAlBA,OAAOy7B,MAAM,EACbz7B,CAAAA,OAAO,MAAS,CAAGo7B,CAAc,CAEzC,EAAG,K,oHCNHM,AADaC,C,8BAAAA,OAAAA,CAAAA,OAAa,EAAIA,EAAAA,OAAKA,AAALA,EACzBC,EAAE,CAAC,cAAe,WACnB57B,OAAO67B,OAAO,CAACC,cAAc,CAAC,CAC1B,OACH,CACL,G,kNCPO,SAAS7F,EAASyB,CAAM,EAC3B,MAAO13B,CAAAA,OAAOw3B,cAAc,EAAGE,CAAAA,GAAUprB,UAAUyvB,MAAM,AAAD,CAC5D,C,qECFA,IAAM,EAAkB,AAAC,IAEvB,IADI,EACE,EAA4B,IAAI9mB,IAChC,EAAW,CAAC,EAAS9hB,KACzB,IAAM,EAAY,AAAmB,YAAnB,OAAO,EAAyB,EAAQ,GAAS,EACnE,GAAI,CAACkD,OAAO,EAAE,CAAC,EAAW,GAAQ,CAChC,IAAM,EAAgB,EACtB,EAAQ,AAAClD,CAAAA,AAAW,MAAXA,EAAkBA,EAAU,AAAqB,UAArB,OAAO,GAA0B,AAAc,OAAd,CAAiB,EAAK,EAAYkD,OAAO,MAAM,CAAC,CAAC,EAAG,EAAO,GACjI,EAAU,OAAO,CAAC,AAAC,GAAa,EAAS,EAAO,GAClD,CACF,EACM,EAAW,IAAM,EAcjBhB,EAAM,CAAE,WAAU,WAAU,gBAbV,IAAM,EAaqB,UAZjC,AAAC,IACjB,EAAU,GAAG,CAAC,GACP,IAAM,EAAU,MAAM,CAAC,IAU8B,QAR9C,KAEZgX,QAAQ,IAAI,CACV,0MAGJ,EAAU,KAAK,EACjB,CACsE,EAChE,EAAe,EAAQ,EAAY,EAAU,EAAUhX,GAC7D,OAAOA,CACT,EACM,EAAc,AAAC,GAAgB,EAAc,EAAgB,GAAe,C,kJC7BlF,IAAI,EACH,AAAkB,YAAlB,OAAO+B,OACJA,OAAO,kBACP,qBACA,EACH,AAAkB,YAAlB,OAAOA,OACJA,OAAO,mBACP,sBACA,EACH,AAAkB,YAAlB,OAAOA,OAAwBA,OAAO,iBAAmB,oBACtD,EAAe,AAAC,IACd,GAAS,EAAM,CAAC,CAAG,IACrB,EAAM,CAAC,CAAG,EACV,EAAM,OAAO,CAAC,AAAC,GAAQ,EAAG,CAAC,IAC7B,EAAM,OAAO,CAAC,AAAC,GAAQ,EAAG,CAAC,GAAK,EAAG,CAAC,GAAK,KAE3C,EACI,EAAW,AAAC,GACR,EAAK,GAAG,CAAC,AAAC,IAChB,GAAI,AAAQ,OAAR,GAAgB,AAAe,UAAf,OAAO,EAAkB,CAC5C,GAAI,CAAG,CAAC,EAAc,CAAE,OAAO,EAC/B,GAAI,EAAI,IAAI,CAAE,CACb,IAAI,EAAQ,EAAE,AACd,GAAM,CAAC,CAAG,EACV,EAAI,IAAI,CAAC,AAAC,IACTO,CAAG,CAAC,EAAe,CAAG,EACtB,EAAa,EACd,EAAE,AAACzE,IACFyE,CAAG,CAAC,EAAa,CAAGzE,EACpB,EAAa,EACd,GACA,IAAIyE,EAAM,CAAC,EAEX,OADAA,CAAG,CAAC,EAAc,CAAG,AAAC,GAAQ,EAAG,GAC1BA,CACR,CACD,CACA,IAAI,EAAM,CAAC,EAGX,OAFA,CAAG,CAAC,EAAc,CAAG,WAAY,EACjC,CAAG,CAAC,EAAe,CAAG,EACf,CACR,EAED,GAAoB,CAAC,CAAG,CAAC,EAAQ,EAAM,KAEtC,GAAa,CAAC,GAAQ,EAAE,AAAD,EAAG,CAAC,CAAG,EAAC,EAC/B,IAFI,EAIA,EACA,EACA,EAJA,EAAY,IAAIsd,IAChB,EAAU,EAAO,OAAO,CAIxBpY,EAAU,IAAIuO,QAAQ,CAAC,EAAS,KACnC,EAAS,EACT,EAAe,CAChB,EACAvO,CAAAA,CAAO,CAAC,EAAe,CAAG,EAC1BA,CAAO,CAAC,EAAc,CAAG,AAAC,IAAS,GAAS,EAAG,GAAQ,EAAU,OAAO,CAAC,GAAKA,EAAQ,KAAQ,CAAC,WAAY,EAAI,EAC/G,EAAO,OAAO,CAAGA,EACjB,EAAK,AAAC,IACL,EAAc,EAAS,GAEvB,IADI,EACA,EAAY,IACR,EAAY,GAAG,CAAC,AAAC,IACvB,GAAI,CAAC,CAAC,EAAa,CAAE,MAAM,CAAC,CAAC,EAAa,CAC1C,OAAO,CAAC,CAAC,EAAe,AACzB,GAEG,EAAU,IAAIuO,QAAQ,AAAC,IAE1B,AADA,GAAK,IAAO,EAAQ,EAAU,EAC3B,CAAC,CAAG,EACP,IAAI,EAAU,AAAC,GAAO,IAAM,GAAS,CAAC,EAAU,GAAG,CAAC,IAAO,GAAU,GAAG,CAAC,GAAI,GAAK,CAAC,EAAE,CAAC,EAAK,GAAG,CAAC,GAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAC7G,EAAY,GAAG,CAAC,AAAC,GAAS,CAAG,CAAC,EAAc,CAAC,GAC9C,GACA,OAAO,EAAG,CAAC,CAAG,EAAU,GACzB,EAAG,AAAClY,GAAS,CAACA,EAAM,EAAO2J,CAAO,CAAC,EAAa,CAAG3J,GAAO,EAAa,GAAW,EAAa,EAAK,GACpG,GAAS,EAAM,CAAC,CAAG,GAAM,GAAM,CAAC,CAAG,EACpC,C,KC1EA,EAAoB,CAAC,CAAG,AAAC,IACxB,IAAI,EAAS,GAAU,EAAO,UAAU,CACvC,IAAO,EAAO,OAAU,CACxB,IAAO,EAER,OADA,EAAoB,CAAC,CAAC,EAAQ,CAAE,EAAG,CAAO,GACnC,CACR,ECPA,EAAoB,CAAC,CAAG,CAACA,EAAS,KACjC,IAAI,IAAI,KAAO,EACL,EAAoB,CAAC,CAAC,EAAY,IAAQ,CAAC,EAAoB,CAAC,CAACA,EAAS,IACzEmD,OAAO,cAAc,CAACnD,EAAS,EAAK,CAAE,WAAY,GAAM,IAAK,CAAU,CAAC,EAAI,AAAC,EAGzF,ECNA,EAAoB,CAAC,CAAG,CAAC,EAAK,IAAUmD,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAK,GCAlF,EAAoB,EAAE,CAAG,IAAO,SCAhC,EAAoB,IAAI,CAAG,wB"}