@grafana/scenes 6.7.0--canary.1091.14350229100.0 → 6.8.0

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 (331) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/esm/components/layout/CSSGrid/SceneCSSGridItem.js +33 -0
  3. package/dist/esm/dist/esm/behaviors/CursorSync.js +76 -0
  4. package/dist/esm/dist/esm/behaviors/LiveNowTimer.js +44 -0
  5. package/dist/esm/dist/esm/behaviors/SceneQueryController.js +14 -0
  6. package/dist/esm/dist/esm/components/EmbeddedScene.js +59 -0
  7. package/dist/esm/dist/esm/components/NestedScene.js +95 -0
  8. package/dist/esm/dist/esm/components/SceneApp/SceneApp.js +27 -0
  9. package/dist/esm/dist/esm/components/SceneApp/SceneAppPage.js +176 -0
  10. package/dist/esm/dist/esm/components/SceneApp/SceneAppPageView.js +104 -0
  11. package/dist/esm/dist/esm/components/SceneApp/utils.js +42 -0
  12. package/dist/esm/dist/esm/components/SceneByFrameRepeater.js +41 -0
  13. package/dist/esm/dist/esm/components/SceneByVariableRepeater.js +55 -0
  14. package/dist/esm/dist/esm/components/SceneCanvasText.js +32 -0
  15. package/dist/esm/dist/esm/components/SceneControlsSpacer.js +17 -0
  16. package/dist/esm/dist/esm/components/SceneDebugger/DebugDetails.js +82 -0
  17. package/dist/esm/dist/esm/components/SceneDebugger/DebugTreeNode.js +72 -0
  18. package/dist/esm/dist/esm/components/SceneDebugger/SceneDebugger.js +77 -0
  19. package/dist/esm/dist/esm/components/SceneReactObject.js +34 -0
  20. package/dist/esm/dist/esm/components/SceneRefreshPicker.js +205 -0
  21. package/dist/esm/dist/esm/components/SceneTimePicker.js +139 -0
  22. package/dist/esm/dist/esm/components/SceneTimeRangeCompare.js +240 -0
  23. package/dist/esm/dist/esm/components/SceneToolbarButton.js +33 -0
  24. package/dist/esm/dist/esm/components/VizPanel/VizPanel.js +406 -0
  25. package/dist/esm/dist/esm/components/VizPanel/VizPanelExploreButton.js +44 -0
  26. package/dist/esm/dist/esm/components/VizPanel/VizPanelMenu.js +59 -0
  27. package/dist/esm/dist/esm/components/VizPanel/VizPanelRenderer.js +285 -0
  28. package/dist/esm/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +45 -0
  29. package/dist/esm/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +72 -0
  30. package/dist/esm/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +11 -0
  31. package/dist/esm/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +164 -0
  32. package/dist/esm/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +124 -0
  33. package/dist/esm/dist/esm/components/layout/LazyLoader.js +103 -0
  34. package/dist/esm/dist/esm/components/layout/SceneFlexLayout.js +135 -0
  35. package/dist/esm/dist/esm/components/layout/grid/SceneGridItem.js +30 -0
  36. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayout.js +283 -0
  37. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +178 -0
  38. package/dist/esm/dist/esm/components/layout/grid/SceneGridRow.js +190 -0
  39. package/dist/esm/dist/esm/components/layout/grid/constants.js +7 -0
  40. package/dist/esm/dist/esm/components/layout/grid/utils.js +36 -0
  41. package/dist/esm/dist/esm/components/layout/split/SplitLayout.js +17 -0
  42. package/dist/esm/dist/esm/components/layout/split/SplitLayoutRenderer.js +29 -0
  43. package/dist/esm/dist/esm/components/layout/split/Splitter.js +386 -0
  44. package/dist/esm/dist/esm/core/SceneComponentWrapper.js +57 -0
  45. package/dist/esm/dist/esm/core/SceneDataNode.js +43 -0
  46. package/dist/esm/dist/esm/core/SceneObjectBase.js +286 -0
  47. package/dist/esm/dist/esm/core/SceneObjectRef.js +32 -0
  48. package/dist/esm/dist/esm/core/SceneTimeRange.js +231 -0
  49. package/dist/esm/dist/esm/core/events.js +11 -0
  50. package/dist/esm/dist/esm/core/sceneGraph/getTimeRange.js +10 -0
  51. package/dist/esm/dist/esm/core/sceneGraph/index.js +25 -0
  52. package/dist/esm/dist/esm/core/sceneGraph/sceneGraph.js +178 -0
  53. package/dist/esm/dist/esm/core/sceneGraph/utils.js +64 -0
  54. package/dist/esm/dist/esm/core/types.js +15 -0
  55. package/dist/esm/dist/esm/querying/DataLayersMerger.js +46 -0
  56. package/dist/esm/dist/esm/querying/ExtraQueryProvider.js +6 -0
  57. package/dist/esm/dist/esm/querying/RuntimeDataSource.js +6 -0
  58. package/dist/esm/dist/esm/querying/SceneDataLayerSet.js +100 -0
  59. package/dist/esm/dist/esm/querying/SceneQueryRunner.js +468 -0
  60. package/dist/esm/dist/esm/querying/extraQueryProcessingOperator.js +46 -0
  61. package/dist/esm/dist/esm/querying/getEnrichedDataRequest.js +12 -0
  62. package/dist/esm/dist/esm/querying/layers/SceneDataLayerBase.js +112 -0
  63. package/dist/esm/dist/esm/querying/layers/SceneDataLayerControls.js +51 -0
  64. package/dist/esm/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +130 -0
  65. package/dist/esm/dist/esm/querying/layers/annotations/filterAnnotations.js +85 -0
  66. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +121 -0
  67. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +211 -0
  68. package/dist/esm/dist/esm/querying/layers/annotations/utils.js +77 -0
  69. package/dist/esm/dist/esm/querying/registerQueryWithController.js +41 -0
  70. package/dist/esm/dist/esm/services/SceneObjectUrlSyncConfig.js +30 -0
  71. package/dist/esm/dist/esm/services/UniqueUrlKeyMapper.js +45 -0
  72. package/dist/esm/dist/esm/services/UrlSyncManager.js +167 -0
  73. package/dist/esm/dist/esm/services/useUrlSync.js +29 -0
  74. package/dist/esm/dist/esm/services/utils.js +71 -0
  75. package/dist/esm/dist/esm/utils/ControlsLabel.js +107 -0
  76. package/dist/esm/dist/esm/utils/LoadingIndicator.js +19 -0
  77. package/dist/esm/dist/esm/utils/SafeSerializableSceneObject.js +39 -0
  78. package/dist/esm/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js +16 -0
  79. package/dist/esm/dist/esm/utils/date.js +15 -0
  80. package/dist/esm/dist/esm/utils/evaluateTimeRange.js +16 -0
  81. package/dist/esm/dist/esm/utils/explore.js +47 -0
  82. package/dist/esm/dist/esm/utils/getCompareSeriesRefId.js +4 -0
  83. package/dist/esm/dist/esm/utils/getDataSource.js +18 -0
  84. package/dist/esm/dist/esm/utils/getMessageFromError.js +24 -0
  85. package/dist/esm/dist/esm/utils/metricTree.js +53 -0
  86. package/dist/esm/dist/esm/utils/parseUrlParam.js +41 -0
  87. package/dist/esm/dist/esm/utils/utils.js +11 -0
  88. package/dist/esm/dist/esm/utils/wrapInSafeSerializableSceneObject.js +30 -0
  89. package/dist/esm/dist/esm/utils/writeSceneLog.js +12 -0
  90. package/dist/esm/dist/esm/variables/VariableDependencyConfig.js +150 -0
  91. package/dist/esm/dist/esm/variables/VariableValueRecorder.js +71 -0
  92. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterBuilder.js +24 -0
  93. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterRenderer.js +303 -0
  94. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +162 -0
  95. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +20 -0
  96. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +640 -0
  97. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +65 -0
  98. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +146 -0
  99. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +114 -0
  100. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +68 -0
  101. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +146 -0
  102. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariable.js +289 -0
  103. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +76 -0
  104. package/dist/esm/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +13 -0
  105. package/dist/esm/dist/esm/variables/adhoc/patchGetAdhocFilters.js +47 -0
  106. package/dist/esm/dist/esm/variables/components/VariableValueControl.js +23 -0
  107. package/dist/esm/dist/esm/variables/components/VariableValueInput.js +33 -0
  108. package/dist/esm/dist/esm/variables/components/VariableValueSelect.js +228 -0
  109. package/dist/esm/dist/esm/variables/components/VariableValueSelectors.js +72 -0
  110. package/dist/esm/dist/esm/variables/components/getOptionSearcher.js +15 -0
  111. package/dist/esm/dist/esm/variables/constants.js +9 -0
  112. package/dist/esm/dist/esm/variables/getEnrichedFiltersRequest.js +12 -0
  113. package/dist/esm/dist/esm/variables/groupby/GroupByVariable.js +259 -0
  114. package/dist/esm/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +63 -0
  115. package/dist/esm/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js +13 -0
  116. package/dist/esm/dist/esm/variables/interpolation/ScopedVarsVariable.js +40 -0
  117. package/dist/esm/dist/esm/variables/interpolation/defaults.js +21 -0
  118. package/dist/esm/dist/esm/variables/interpolation/fieldAccessorCache.js +13 -0
  119. package/dist/esm/dist/esm/variables/interpolation/formatRegistry.js +296 -0
  120. package/dist/esm/dist/esm/variables/interpolation/sceneInterpolator.js +87 -0
  121. package/dist/esm/dist/esm/variables/lookupVariable.js +20 -0
  122. package/dist/esm/dist/esm/variables/macros/AllVariablesMacro.js +57 -0
  123. package/dist/esm/dist/esm/variables/macros/contextMacros.js +43 -0
  124. package/dist/esm/dist/esm/variables/macros/dataMacros.js +134 -0
  125. package/dist/esm/dist/esm/variables/macros/index.js +26 -0
  126. package/dist/esm/dist/esm/variables/macros/templateProxies.js +51 -0
  127. package/dist/esm/dist/esm/variables/macros/timeMacros.js +86 -0
  128. package/dist/esm/dist/esm/variables/macros/types.js +11 -0
  129. package/dist/esm/dist/esm/variables/macros/urlMacros.js +56 -0
  130. package/dist/esm/dist/esm/variables/sets/SceneVariableSet.js +254 -0
  131. package/dist/esm/dist/esm/variables/types.js +11 -0
  132. package/dist/esm/dist/esm/variables/utils.js +172 -0
  133. package/dist/esm/dist/esm/variables/variants/ConstantVariable.js +38 -0
  134. package/dist/esm/dist/esm/variables/variants/CustomVariable.js +60 -0
  135. package/dist/esm/dist/esm/variables/variants/DataSourceVariable.js +88 -0
  136. package/dist/esm/dist/esm/variables/variants/IntervalVariable.js +117 -0
  137. package/dist/esm/dist/esm/variables/variants/MultiValueVariable.js +295 -0
  138. package/dist/esm/dist/esm/variables/variants/TestVariable.js +117 -0
  139. package/dist/esm/dist/esm/variables/variants/TextBoxVariable.js +61 -0
  140. package/dist/esm/dist/esm/variables/variants/query/QueryVariable.js +139 -0
  141. package/dist/esm/dist/esm/variables/variants/query/createQueryVariableRunner.js +129 -0
  142. package/dist/esm/dist/esm/variables/variants/query/guards.js +28 -0
  143. package/dist/esm/dist/esm/variables/variants/query/toMetricFindValues.js +96 -0
  144. package/dist/esm/dist/esm/variables/variants/query/utils.js +124 -0
  145. package/dist/esm/index.js +1 -1
  146. package/dist/esm/index.js.map +1 -1
  147. package/dist/esm/querying/DataProviderSharer.js +39 -0
  148. package/dist/esm/src/behaviors/ActWhenVariableChanged.js +27 -0
  149. package/dist/esm/src/behaviors/CursorSync.js +76 -0
  150. package/dist/esm/src/behaviors/LiveNowTimer.js +44 -0
  151. package/dist/esm/src/behaviors/SceneQueryController.js +60 -0
  152. package/dist/esm/src/behaviors/index.js +5 -0
  153. package/dist/esm/src/components/EmbeddedScene.js +59 -0
  154. package/dist/esm/src/components/NestedScene.js +95 -0
  155. package/dist/esm/src/components/SceneApp/SceneApp.js +37 -0
  156. package/dist/esm/src/components/SceneApp/SceneAppPage.js +176 -0
  157. package/dist/esm/src/components/SceneApp/SceneAppPageView.js +104 -0
  158. package/dist/esm/src/components/SceneApp/utils.js +42 -0
  159. package/dist/esm/src/components/SceneByFrameRepeater.js +41 -0
  160. package/dist/esm/src/components/SceneByVariableRepeater.js +55 -0
  161. package/dist/esm/src/components/SceneCanvasText.js +32 -0
  162. package/dist/esm/src/components/SceneControlsSpacer.js +17 -0
  163. package/dist/esm/src/components/SceneDebugger/DebugDetails.js +82 -0
  164. package/dist/esm/src/components/SceneDebugger/DebugTreeNode.js +72 -0
  165. package/dist/esm/src/components/SceneDebugger/SceneDebugger.js +77 -0
  166. package/dist/esm/src/components/SceneReactObject.js +34 -0
  167. package/dist/esm/src/components/SceneRefreshPicker.js +205 -0
  168. package/dist/esm/src/components/SceneTimePicker.js +139 -0
  169. package/dist/esm/src/components/SceneTimeRangeCompare.js +240 -0
  170. package/dist/esm/src/components/SceneToolbarButton.js +33 -0
  171. package/dist/esm/src/components/VizPanel/VizPanel.js +406 -0
  172. package/dist/esm/src/components/VizPanel/VizPanelExploreButton.js +44 -0
  173. package/dist/esm/src/components/VizPanel/VizPanelMenu.js +59 -0
  174. package/dist/esm/src/components/VizPanel/VizPanelRenderer.js +285 -0
  175. package/dist/esm/src/components/VizPanel/VizPanelSeriesLimit.js +45 -0
  176. package/dist/esm/src/components/VizPanel/colorSeriesConfigFactory.js +72 -0
  177. package/dist/esm/src/components/VizPanel/registerRuntimePanelPlugin.js +56 -0
  178. package/dist/esm/src/components/VizPanel/seriesVisibilityConfigFactory.js +164 -0
  179. package/dist/esm/src/components/layout/CSSGrid/SceneCSSGridLayout.js +124 -0
  180. package/dist/esm/src/components/layout/LazyLoader.js +103 -0
  181. package/dist/esm/src/components/layout/SceneFlexLayout.js +135 -0
  182. package/dist/esm/src/components/layout/grid/SceneGridItem.js +30 -0
  183. package/dist/esm/src/components/layout/grid/SceneGridLayout.js +283 -0
  184. package/dist/esm/src/components/layout/grid/SceneGridLayoutRenderer.js +178 -0
  185. package/dist/esm/src/components/layout/grid/SceneGridRow.js +190 -0
  186. package/dist/esm/src/components/layout/grid/constants.js +7 -0
  187. package/dist/esm/src/components/layout/grid/utils.js +36 -0
  188. package/dist/esm/src/components/layout/split/SplitLayout.js +17 -0
  189. package/dist/esm/src/components/layout/split/SplitLayoutRenderer.js +29 -0
  190. package/dist/esm/src/components/layout/split/Splitter.js +386 -0
  191. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilder.js +100 -0
  192. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilders.js +75 -0
  193. package/dist/esm/src/core/PanelBuilders/FieldConfigOverridesBuilder.js +75 -0
  194. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilder.js +22 -0
  195. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilders.js +85 -0
  196. package/dist/esm/src/core/PanelBuilders/StandardFieldConfigBuilders.js +52 -0
  197. package/dist/esm/src/core/PanelBuilders/VizConfigBuilder.js +78 -0
  198. package/dist/esm/src/core/PanelBuilders/VizConfigBuilders.js +114 -0
  199. package/dist/esm/src/core/PanelBuilders/VizPanelBuilder.js +162 -0
  200. package/dist/esm/src/core/PanelBuilders/index.js +116 -0
  201. package/dist/esm/src/core/SceneComponentWrapper.js +57 -0
  202. package/dist/esm/src/core/SceneDataNode.js +43 -0
  203. package/dist/esm/src/core/SceneObjectBase.js +286 -0
  204. package/dist/esm/src/core/SceneObjectRef.js +32 -0
  205. package/dist/esm/src/core/SceneTimeRange.js +231 -0
  206. package/dist/esm/src/core/SceneTimeRangeTransformerBase.js +35 -0
  207. package/dist/esm/src/core/SceneTimeZoneOverride.js +63 -0
  208. package/dist/esm/src/core/events.js +11 -0
  209. package/dist/esm/src/core/sceneGraph/getTimeRange.js +10 -0
  210. package/dist/esm/src/core/sceneGraph/index.js +25 -0
  211. package/dist/esm/src/core/sceneGraph/sceneGraph.js +178 -0
  212. package/dist/esm/src/core/sceneGraph/utils.js +64 -0
  213. package/dist/esm/src/core/types.js +15 -0
  214. package/dist/esm/src/index.js +108 -0
  215. package/dist/esm/src/querying/DataLayersMerger.js +46 -0
  216. package/dist/esm/src/querying/DataProviderProxy.js +37 -0
  217. package/dist/esm/src/querying/DataProviderSharer.js +108 -0
  218. package/dist/esm/src/querying/ExtraQueryProvider.js +6 -0
  219. package/dist/esm/src/querying/RuntimeDataSource.js +49 -0
  220. package/dist/esm/src/querying/SceneDataLayerSet.js +100 -0
  221. package/dist/esm/src/querying/SceneDataTransformer.js +178 -0
  222. package/dist/esm/src/querying/SceneQueryRunner.js +468 -0
  223. package/dist/esm/src/querying/extraQueryProcessingOperator.js +46 -0
  224. package/dist/esm/src/querying/getEnrichedDataRequest.js +12 -0
  225. package/dist/esm/src/querying/layers/SceneDataLayerBase.js +112 -0
  226. package/dist/esm/src/querying/layers/SceneDataLayerControls.js +51 -0
  227. package/dist/esm/src/querying/layers/annotations/AnnotationsDataLayer.js +130 -0
  228. package/dist/esm/src/querying/layers/annotations/filterAnnotations.js +85 -0
  229. package/dist/esm/src/querying/layers/annotations/standardAnnotationQuery.js +121 -0
  230. package/dist/esm/src/querying/layers/annotations/standardAnnotationsSupport.js +211 -0
  231. package/dist/esm/src/querying/layers/annotations/utils.js +77 -0
  232. package/dist/esm/src/querying/layers/index.js +2 -0
  233. package/dist/esm/src/querying/registerQueryWithController.js +41 -0
  234. package/dist/esm/src/services/SceneObjectUrlSyncConfig.js +30 -0
  235. package/dist/esm/src/services/UniqueUrlKeyMapper.js +45 -0
  236. package/dist/esm/src/services/UrlSyncContextProvider.js +17 -0
  237. package/dist/esm/src/services/UrlSyncManager.js +167 -0
  238. package/dist/esm/src/services/useUrlSync.js +29 -0
  239. package/dist/esm/src/services/utils.js +75 -0
  240. package/dist/esm/src/utils/ControlsLabel.js +107 -0
  241. package/dist/esm/src/utils/LoadingIndicator.js +19 -0
  242. package/dist/esm/src/utils/SafeSerializableSceneObject.js +39 -0
  243. package/dist/esm/src/utils/compatibility/setWindowGrafanaSceneContext.js +16 -0
  244. package/dist/esm/src/utils/date.js +15 -0
  245. package/dist/esm/src/utils/evaluateTimeRange.js +16 -0
  246. package/dist/esm/src/utils/explore.js +47 -0
  247. package/dist/esm/src/utils/getCompareSeriesRefId.js +4 -0
  248. package/dist/esm/src/utils/getDataSource.js +18 -0
  249. package/dist/esm/src/utils/getMessageFromError.js +24 -0
  250. package/dist/esm/src/utils/metricTree.js +53 -0
  251. package/dist/esm/src/utils/parseUrlParam.js +41 -0
  252. package/dist/esm/src/utils/utils.js +11 -0
  253. package/dist/esm/src/utils/wrapInSafeSerializableSceneObject.js +30 -0
  254. package/dist/esm/src/utils/writeSceneLog.js +12 -0
  255. package/dist/esm/src/variables/VariableDependencyConfig.js +150 -0
  256. package/dist/esm/src/variables/VariableValueRecorder.js +71 -0
  257. package/dist/esm/src/variables/adhoc/AdHocFilterBuilder.js +24 -0
  258. package/dist/esm/src/variables/adhoc/AdHocFilterRenderer.js +303 -0
  259. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +162 -0
  260. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +20 -0
  261. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +640 -0
  262. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +65 -0
  263. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +146 -0
  264. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +114 -0
  265. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +68 -0
  266. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/utils.js +146 -0
  267. package/dist/esm/src/variables/adhoc/AdHocFiltersVariable.js +289 -0
  268. package/dist/esm/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +76 -0
  269. package/dist/esm/src/variables/adhoc/getAdhocOptionSearcher.js +13 -0
  270. package/dist/esm/src/variables/adhoc/patchGetAdhocFilters.js +47 -0
  271. package/dist/esm/src/variables/components/VariableValueControl.js +23 -0
  272. package/dist/esm/src/variables/components/VariableValueInput.js +33 -0
  273. package/dist/esm/src/variables/components/VariableValueSelect.js +228 -0
  274. package/dist/esm/src/variables/components/VariableValueSelectors.js +72 -0
  275. package/dist/esm/src/variables/components/getOptionSearcher.js +15 -0
  276. package/dist/esm/src/variables/constants.js +9 -0
  277. package/dist/esm/src/variables/getEnrichedFiltersRequest.js +12 -0
  278. package/dist/esm/src/variables/groupby/GroupByVariable.js +259 -0
  279. package/dist/esm/src/variables/groupby/GroupByVariableUrlSyncHandler.js +63 -0
  280. package/dist/esm/src/variables/groupby/findActiveGroupByVariablesByUid.js +13 -0
  281. package/dist/esm/src/variables/interpolation/ScopedVarsVariable.js +40 -0
  282. package/dist/esm/src/variables/interpolation/defaults.js +21 -0
  283. package/dist/esm/src/variables/interpolation/fieldAccessorCache.js +13 -0
  284. package/dist/esm/src/variables/interpolation/formatRegistry.js +296 -0
  285. package/dist/esm/src/variables/interpolation/sceneInterpolator.js +87 -0
  286. package/dist/esm/src/variables/lookupVariable.js +20 -0
  287. package/dist/esm/src/variables/macros/AllVariablesMacro.js +57 -0
  288. package/dist/esm/src/variables/macros/contextMacros.js +43 -0
  289. package/dist/esm/src/variables/macros/dataMacros.js +134 -0
  290. package/dist/esm/src/variables/macros/index.js +35 -0
  291. package/dist/esm/src/variables/macros/templateProxies.js +51 -0
  292. package/dist/esm/src/variables/macros/timeMacros.js +86 -0
  293. package/dist/esm/src/variables/macros/types.js +11 -0
  294. package/dist/esm/src/variables/macros/urlMacros.js +56 -0
  295. package/dist/esm/src/variables/sets/SceneVariableSet.js +254 -0
  296. package/dist/esm/src/variables/types.js +11 -0
  297. package/dist/esm/src/variables/utils.js +172 -0
  298. package/dist/esm/src/variables/variants/ConstantVariable.js +38 -0
  299. package/dist/esm/src/variables/variants/CustomVariable.js +60 -0
  300. package/dist/esm/src/variables/variants/DataSourceVariable.js +88 -0
  301. package/dist/esm/src/variables/variants/IntervalVariable.js +117 -0
  302. package/dist/esm/src/variables/variants/JsonVariable.js +193 -0
  303. package/dist/esm/src/variables/variants/LocalValueVariable.js +56 -0
  304. package/dist/esm/src/variables/variants/MultiValueVariable.js +295 -0
  305. package/dist/esm/src/variables/variants/TestVariable.js +117 -0
  306. package/dist/esm/src/variables/variants/TextBoxVariable.js +61 -0
  307. package/dist/esm/src/variables/variants/guards.js +27 -0
  308. package/dist/esm/src/variables/variants/query/QueryVariable.js +139 -0
  309. package/dist/esm/src/variables/variants/query/createQueryVariableRunner.js +129 -0
  310. package/dist/esm/src/variables/variants/query/guards.js +28 -0
  311. package/dist/esm/src/variables/variants/query/toMetricFindValues.js +96 -0
  312. package/dist/esm/src/variables/variants/query/utils.js +124 -0
  313. package/dist/esm/variables/components/VariableValueSelect.js +13 -9
  314. package/dist/esm/variables/components/VariableValueSelect.js.map +1 -1
  315. package/dist/esm/variables/variants/ConstantVariable.js +22 -0
  316. package/dist/esm/variables/variants/ConstantVariable.js.map +1 -1
  317. package/dist/esm/variables/variants/CustomVariable.js +3 -2
  318. package/dist/esm/variables/variants/CustomVariable.js.map +1 -1
  319. package/dist/esm/variables/variants/DataSourceVariable.js +3 -2
  320. package/dist/esm/variables/variants/DataSourceVariable.js.map +1 -1
  321. package/dist/esm/variables/variants/JsonVariable.js +96 -0
  322. package/dist/esm/variables/variants/TestVariable.js +3 -2
  323. package/dist/esm/variables/variants/TestVariable.js.map +1 -1
  324. package/dist/esm/variables/variants/json/JsonVariable.js +95 -0
  325. package/dist/esm/variables/variants/json/JsonVariableOptionProviders.js +70 -0
  326. package/dist/esm/variables/variants/query/QueryVariable.js +3 -2
  327. package/dist/esm/variables/variants/query/QueryVariable.js.map +1 -1
  328. package/dist/index.d.ts +14 -6
  329. package/dist/index.js +35 -13
  330. package/dist/index.js.map +1 -1
  331. package/package.json +2 -2
@@ -0,0 +1,30 @@
1
+ import { config } from '@grafana/runtime';
2
+ import { SafeSerializableSceneObject } from './SafeSerializableSceneObject.js';
3
+
4
+ function shouldWrapInSafeSerializableSceneObject(grafanaVersion) {
5
+ const pattern = /^(\d+)\.(\d+)\.(\d+)/;
6
+ const match = grafanaVersion.match(pattern);
7
+ if (!match) {
8
+ return false;
9
+ }
10
+ const major = parseInt(match[1], 10);
11
+ const minor = parseInt(match[2], 10);
12
+ const patch = parseInt(match[3], 10);
13
+ if (major === 11) {
14
+ return minor === 0 && patch >= 4 || minor === 1 && patch >= 2 || minor > 1;
15
+ }
16
+ if (major === 10) {
17
+ return minor === 4 && patch >= 8 || minor >= 5;
18
+ }
19
+ return major > 11;
20
+ }
21
+ function wrapInSafeSerializableSceneObject(sceneObject) {
22
+ const version = config.buildInfo.version;
23
+ if (shouldWrapInSafeSerializableSceneObject(version)) {
24
+ return new SafeSerializableSceneObject(sceneObject);
25
+ }
26
+ return { value: sceneObject, text: "__sceneObject" };
27
+ }
28
+
29
+ export { shouldWrapInSafeSerializableSceneObject, wrapInSafeSerializableSceneObject };
30
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcEluU2FmZVNlcmlhbGl6YWJsZVNjZW5lT2JqZWN0LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi91dGlscy93cmFwSW5TYWZlU2VyaWFsaXphYmxlU2NlbmVPYmplY3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnQGdyYWZhbmEvcnVudGltZSc7XG5pbXBvcnQgeyBTYWZlU2VyaWFsaXphYmxlU2NlbmVPYmplY3QgfSBmcm9tICcuL1NhZmVTZXJpYWxpemFibGVTY2VuZU9iamVjdC5qcyc7XG5cbmZ1bmN0aW9uIHNob3VsZFdyYXBJblNhZmVTZXJpYWxpemFibGVTY2VuZU9iamVjdChncmFmYW5hVmVyc2lvbikge1xuICBjb25zdCBwYXR0ZXJuID0gL14oXFxkKylcXC4oXFxkKylcXC4oXFxkKykvO1xuICBjb25zdCBtYXRjaCA9IGdyYWZhbmFWZXJzaW9uLm1hdGNoKHBhdHRlcm4pO1xuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IG1ham9yID0gcGFyc2VJbnQobWF0Y2hbMV0sIDEwKTtcbiAgY29uc3QgbWlub3IgPSBwYXJzZUludChtYXRjaFsyXSwgMTApO1xuICBjb25zdCBwYXRjaCA9IHBhcnNlSW50KG1hdGNoWzNdLCAxMCk7XG4gIGlmIChtYWpvciA9PT0gMTEpIHtcbiAgICByZXR1cm4gbWlub3IgPT09IDAgJiYgcGF0Y2ggPj0gNCB8fCBtaW5vciA9PT0gMSAmJiBwYXRjaCA+PSAyIHx8IG1pbm9yID4gMTtcbiAgfVxuICBpZiAobWFqb3IgPT09IDEwKSB7XG4gICAgcmV0dXJuIG1pbm9yID09PSA0ICYmIHBhdGNoID49IDggfHwgbWlub3IgPj0gNTtcbiAgfVxuICByZXR1cm4gbWFqb3IgPiAxMTtcbn1cbmZ1bmN0aW9uIHdyYXBJblNhZmVTZXJpYWxpemFibGVTY2VuZU9iamVjdChzY2VuZU9iamVjdCkge1xuICBjb25zdCB2ZXJzaW9uID0gY29uZmlnLmJ1aWxkSW5mby52ZXJzaW9uO1xuICBpZiAoc2hvdWxkV3JhcEluU2FmZVNlcmlhbGl6YWJsZVNjZW5lT2JqZWN0KHZlcnNpb24pKSB7XG4gICAgcmV0dXJuIG5ldyBTYWZlU2VyaWFsaXphYmxlU2NlbmVPYmplY3Qoc2NlbmVPYmplY3QpO1xuICB9XG4gIHJldHVybiB7IHZhbHVlOiBzY2VuZU9iamVjdCwgdGV4dDogXCJfX3NjZW5lT2JqZWN0XCIgfTtcbn1cblxuZXhwb3J0IHsgc2hvdWxkV3JhcEluU2FmZVNlcmlhbGl6YWJsZVNjZW5lT2JqZWN0LCB3cmFwSW5TYWZlU2VyaWFsaXphYmxlU2NlbmVPYmplY3QgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZDNKaGNFbHVVMkZtWlZObGNtbGhiR2w2WVdKc1pWTmpaVzVsVDJKcVpXTjBMbXB6SWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOXpjbU12ZFhScGJITXZkM0poY0VsdVUyRm1aVk5sY21saGJHbDZZV0pzWlZOalpXNWxUMkpxWldOMExuUnpJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUdOdmJtWnBaeUI5SUdaeWIyMGdKMEJuY21GbVlXNWhMM0oxYm5ScGJXVW5PMXh1YVcxd2IzSjBJSHNnVTJObGJtVlBZbXBsWTNRZ2ZTQm1jbTl0SUNjdUxpOWpiM0psTDNSNWNHVnpKenRjYm1sdGNHOXlkQ0I3SUZOaFptVlRaWEpwWVd4cGVtRmliR1ZUWTJWdVpVOWlhbVZqZENCOUlHWnliMjBnSnk0dlUyRm1aVk5sY21saGJHbDZZV0pzWlZOalpXNWxUMkpxWldOMEp6dGNibWx0Y0c5eWRDQjdJRk5qYjNCbFpGWmhjaUI5SUdaeWIyMGdKMEJuY21GbVlXNWhMMlJoZEdFbk8xeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjMmh2ZFd4a1YzSmhjRWx1VTJGbVpWTmxjbWxoYkdsNllXSnNaVk5qWlc1bFQySnFaV04wS0dkeVlXWmhibUZXWlhKemFXOXVPaUJ6ZEhKcGJtY3BPaUJpYjI5c1pXRnVJSHRjYmlBZ1kyOXVjM1FnY0dGMGRHVnliaUE5SUM5ZUtGeGNaQ3NwWEZ3dUtGeGNaQ3NwWEZ3dUtGeGNaQ3NwTHp0Y2JpQWdZMjl1YzNRZ2JXRjBZMmdnUFNCbmNtRm1ZVzVoVm1WeWMybHZiaTV0WVhSamFDaHdZWFIwWlhKdUtUdGNibHh1SUNCcFppQW9JVzFoZEdOb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNCOVhHNWNiaUFnWTI5dWMzUWdiV0ZxYjNJZ1BTQndZWEp6WlVsdWRDaHRZWFJqYUZzeFhTd2dNVEFwTzF4dUlDQmpiMjV6ZENCdGFXNXZjaUE5SUhCaGNuTmxTVzUwS0cxaGRHTm9XekpkTENBeE1DazdYRzRnSUdOdmJuTjBJSEJoZEdOb0lEMGdjR0Z5YzJWSmJuUW9iV0YwWTJoYk0xMHNJREV3S1R0Y2JseHVJQ0JwWmlBb2JXRnFiM0lnUFQwOUlERXhLU0I3WEc0Z0lDQWdjbVYwZFhKdUlDaHRhVzV2Y2lBOVBUMGdNQ0FtSmlCd1lYUmphQ0ErUFNBMEtTQjhmQ0FvYldsdWIzSWdQVDA5SURFZ0ppWWdjR0YwWTJnZ1BqMGdNaWtnZkh3Z2JXbHViM0lnUGlBeE8xeHVJQ0I5WEc1Y2JpQWdhV1lnS0cxaGFtOXlJRDA5UFNBeE1Da2dlMXh1SUNBZ0lISmxkSFZ5YmlBb2JXbHViM0lnUFQwOUlEUWdKaVlnY0dGMFkyZ2dQajBnT0NrZ2ZId2diV2x1YjNJZ1BqMGdOVHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUJ0WVdwdmNpQStJREV4T3lBdkx5QkJjM04xYldsdVp5QjJaWEp6YVc5dWN5Qm5jbVZoZEdWeUlIUm9ZVzRnTVRFZ1lYSmxJR0ZzYzI4Z2MzVndjRzl5ZEdWa0xseHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnZDNKaGNFbHVVMkZtWlZObGNtbGhiR2w2WVdKc1pWTmpaVzVsVDJKcVpXTjBLSE5qWlc1bFQySnFaV04wT2lCVFkyVnVaVTlpYW1WamRDazZJRk5qYjNCbFpGWmhjaUI3WEc0Z0lHTnZibk4wSUhabGNuTnBiMjRnUFNCamIyNW1hV2N1WW5WcGJHUkpibVp2TG5abGNuTnBiMjQ3WEc1Y2JpQWdhV1lnS0hOb2IzVnNaRmR5WVhCSmJsTmhabVZUWlhKcFlXeHBlbUZpYkdWVFkyVnVaVTlpYW1WamRDaDJaWEp6YVc5dUtTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCdVpYY2dVMkZtWlZObGNtbGhiR2w2WVdKc1pWTmpaVzVsVDJKcVpXTjBLSE5qWlc1bFQySnFaV04wS1R0Y2JpQWdmVnh1WEc0Z0lISmxkSFZ5YmlCN0lIWmhiSFZsT2lCelkyVnVaVTlpYW1WamRDd2dkR1Y0ZERvZ0oxOWZjMk5sYm1WUFltcGxZM1FuSUgwN1hHNTlYRzRpWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3TzBGQlMwOHNVMEZCVXl4M1EwRkJkME1zWTBGQmFVTXNSVUZCUVR0QlFVTjJSaXhGUVVGQkxFMUJRVTBzVDBGQlZTeEhRVUZCTEhOQ1FVRkJMRU5CUVVFN1FVRkRhRUlzUlVGQlRTeE5RVUZCTEV0QlFVRXNSMEZCVVN4alFVRmxMRU5CUVVFc1MwRkJRU3hEUVVGTkxFOUJRVThzUTBGQlFTeERRVUZCTzBGQlJURkRMRVZCUVVFc1NVRkJTU3hEUVVGRExFdEJRVThzUlVGQlFUdEJRVU5XTEVsQlFVOHNUMEZCUVN4TFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOVU8wRkJSVUVzUlVGQlFTeE5RVUZOTEV0QlFWRXNSMEZCUVN4UlFVRkJMRU5CUVZNc1MwRkJUU3hEUVVGQkxFTkJRVUVzUTBGQlFTeEZRVUZKTEVWQlFVVXNRMEZCUVN4RFFVRkJPMEZCUTI1RExFVkJRVUVzVFVGQlRTeExRVUZSTEVkQlFVRXNVVUZCUVN4RFFVRlRMRXRCUVUwc1EwRkJRU3hEUVVGQkxFTkJRVUVzUlVGQlNTeEZRVUZGTEVOQlFVRXNRMEZCUVR0QlFVTnVReXhGUVVGQkxFMUJRVTBzUzBGQlVTeEhRVUZCTEZGQlFVRXNRMEZCVXl4TFFVRk5MRU5CUVVFc1EwRkJRU3hEUVVGQkxFVkJRVWtzUlVGQlJTeERRVUZCTEVOQlFVRTdRVUZGYmtNc1JVRkJRU3hKUVVGSkxGVkJRVlVzUlVGQlNTeEZRVUZCTzBGQlEyaENMRWxCUVZFc1QwRkJRU3hMUVVGQkxFdEJRVlVzUzBGQlN5eExRVUZUTEVsQlFVRXNRMEZCUVN4SlFVRlBMRlZCUVZVc1EwRkJTeXhKUVVGQkxFdEJRVUVzU1VGQlV5eExRVUZOTEV0QlFWRXNSMEZCUVN4RFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVNdlJUdEJRVVZCTEVWQlFVRXNTVUZCU1N4VlFVRlZMRVZCUVVrc1JVRkJRVHRCUVVOb1FpeEpRVUZCTEU5QlFWRXNTMEZCVlN4TFFVRkJMRU5CUVVFc1NVRkJTeXhMUVVGVExFbEJRVUVzUTBGQlFTeEpRVUZOTEV0QlFWTXNTVUZCUVN4RFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOcVJEdEJRVVZCTEVWQlFVRXNUMEZCVHl4TFFVRlJMRWRCUVVFc1JVRkJRU3hEUVVGQk8wRkJRMnBDTEVOQlFVRTdRVUZGVHl4VFFVRlRMR3REUVVGclF5eFhRVUZ4UXl4RlFVRkJPMEZCUTNKR0xFVkJRVTBzVFVGQlFTeFBRVUZCTEVkQlFWVXNUMEZCVHl4VFFVRlZMRU5CUVVFc1QwRkJRU3hEUVVGQk8wRkJSV3BETEVWQlFVa3NTVUZCUVN4MVEwRkJRU3hEUVVGM1F5eFBRVUZQTEVOQlFVY3NSVUZCUVR0QlFVTndSQ3hKUVVGUExFOUJRVUVzU1VGQlNTdzBRa0ZCTkVJc1YwRkJWeXhEUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU53UkR0QlFVVkJMRVZCUVVFc1QwRkJUeXhGUVVGRkxFdEJRVUVzUlVGQlR5eFhRVUZoTEVWQlFVRXNTVUZCUVN4RlFVRk5MR1ZCUVdkQ0xFVkJRVUVzUTBGQlFUdEJRVU55UkRzN096c2lmUT09XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS08sU0FBUyx3Q0FBd0MsY0FBaUMsRUFBQTtBQUN2RixFQUFBLE1BQU0sT0FBVSxHQUFBLHNCQUFBLENBQUE7QUFDVixFQUFBLE1BQUEsS0FBQSxHQUFRLGNBQWUsQ0FBQSxLQUFBLENBQU0sT0FBTyxDQUFBLENBQUE7QUFFMUMsRUFBQSxJQUFJLENBQUMsS0FBTyxFQUFBO0FBQ0gsSUFBQSxPQUFBLEtBQUEsQ0FBQTtBQUFBLEdBQUE7QUFHVCxFQUFBLE1BQU0sS0FBUSxHQUFBLFFBQUEsQ0FBUyxLQUFNLENBQUEsQ0FBQSxDQUFBLEVBQUksRUFBRSxDQUFBLENBQUE7QUFDbkMsRUFBQSxNQUFNLEtBQVEsR0FBQSxRQUFBLENBQVMsS0FBTSxDQUFBLENBQUEsQ0FBQSxFQUFJLEVBQUUsQ0FBQSxDQUFBO0FBQ25DLEVBQUEsTUFBTSxLQUFRLEdBQUEsUUFBQSxDQUFTLEtBQU0sQ0FBQSxDQUFBLENBQUEsRUFBSSxFQUFFLENBQUEsQ0FBQTtBQUVuQyxFQUFBLElBQUksVUFBVSxFQUFJLEVBQUE7QUFDUixJQUFBLE9BQUEsS0FBQSxLQUFVLEtBQUssS0FBUyxJQUFBLENBQUEsSUFBTyxVQUFVLENBQUssSUFBQSxLQUFBLElBQVMsS0FBTSxLQUFRLEdBQUEsQ0FBQSxDQUFBO0FBQUEsR0FBQTtBQUcvRSxFQUFBLElBQUksVUFBVSxFQUFJLEVBQUE7QUFDaEIsSUFBQSxPQUFRLEtBQVUsS0FBQSxDQUFBLElBQUssS0FBUyxJQUFBLENBQUEsSUFBTSxLQUFTLElBQUEsQ0FBQSxDQUFBO0FBQUEsR0FBQTtBQUdqRCxFQUFBLE9BQU8sS0FBUSxHQUFBLEVBQUEsQ0FBQTtBQUNqQixDQUFBO0FBRU8sU0FBUyxrQ0FBa0MsV0FBcUMsRUFBQTtBQUMvRSxFQUFBLE1BQUEsT0FBQSxHQUFVLE9BQU8sU0FBVSxDQUFBLE9BQUEsQ0FBQTtBQUU3QixFQUFBLElBQUEsdUNBQUEsQ0FBd0MsT0FBTyxDQUFHLEVBQUE7QUFDN0MsSUFBQSxPQUFBLElBQUksNEJBQTRCLFdBQVcsQ0FBQSxDQUFBO0FBQUEsR0FBQTtBQUdwRCxFQUFBLE9BQU8sRUFBRSxLQUFBLEVBQU8sV0FBYSxFQUFBLElBQUEsRUFBTSxlQUFnQixFQUFBLENBQUE7QUFDckQ7Ozs7In0=
@@ -0,0 +1,12 @@
1
+ function writeSceneLog(logger, message, ...rest) {
2
+ let loggingEnabled = false;
3
+ if (typeof window !== "undefined") {
4
+ loggingEnabled = localStorage.getItem("grafana.debug.scenes") === "true";
5
+ }
6
+ if (loggingEnabled) {
7
+ console.log(`${logger}: `, message, ...rest);
8
+ }
9
+ }
10
+
11
+ export { writeSceneLog };
12
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVTY2VuZUxvZy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdXRpbHMvd3JpdGVTY2VuZUxvZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiB3cml0ZVNjZW5lTG9nKGxvZ2dlciwgbWVzc2FnZSwgLi4ucmVzdCkge1xuICBsZXQgbG9nZ2luZ0VuYWJsZWQgPSBmYWxzZTtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBsb2dnaW5nRW5hYmxlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZ3JhZmFuYS5kZWJ1Zy5zY2VuZXNcIikgPT09IFwidHJ1ZVwiO1xuICB9XG4gIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgIGNvbnNvbGUubG9nKGAke2xvZ2dlcn06IGAsIG1lc3NhZ2UsIC4uLnJlc3QpO1xuICB9XG59XG5cbmV4cG9ydCB7IHdyaXRlU2NlbmVMb2cgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZDNKcGRHVlRZMlZ1WlV4dlp5NXFjeUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dmMzSmpMM1YwYVd4ekwzZHlhWFJsVTJObGJtVk1iMmN1ZEhNaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2laWGh3YjNKMElHWjFibU4wYVc5dUlIZHlhWFJsVTJObGJtVk1iMmNvYkc5bloyVnlPaUJ6ZEhKcGJtY3NJRzFsYzNOaFoyVTZJSE4wY21sdVp5d2dMaTR1Y21WemREb2dkVzVyYm05M2JsdGRLU0I3WEc0Z0lHeGxkQ0JzYjJkbmFXNW5SVzVoWW14bFpDQTlJR1poYkhObE8xeHVYRzRnSUdsbUlDaDBlWEJsYjJZZ2QybHVaRzkzSUNFOVBTQW5kVzVrWldacGJtVmtKeWtnZTF4dUlDQWdJR3h2WjJkcGJtZEZibUZpYkdWa0lEMGdiRzlqWVd4VGRHOXlZV2RsTG1kbGRFbDBaVzBvSjJkeVlXWmhibUV1WkdWaWRXY3VjMk5sYm1Wekp5a2dQVDA5SUNkMGNuVmxKenRjYmlBZ2ZWeHVYRzRnSUdsbUlDaHNiMmRuYVc1blJXNWhZbXhsWkNrZ2UxeHVJQ0FnSUdOdmJuTnZiR1V1Ykc5bktHQWtlMnh2WjJkbGNuMDZJR0FzSUcxbGMzTmhaMlVzSUM0dUxuSmxjM1FwTzF4dUlDQjlYRzU5WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFXZENMRk5CUVVFc1lVRkJRU3hEUVVGakxFMUJRV2RDTEVWQlFVRXNUMEZCUVN4RlFVRkJMRWRCUVc5Q0xFbEJRV2xDTEVWQlFVRTdRVUZEYWtZc1JVRkJRU3hKUVVGSkxHTkJRV2xDTEVkQlFVRXNTMEZCUVN4RFFVRkJPMEZCUlhKQ0xFVkJRVWtzU1VGQlFTeFBRVUZQTEZkQlFWY3NWMEZCWVN4RlFVRkJPMEZCUTJwRExFbEJRV2xDTEdOQlFVRXNSMEZCUVN4WlFVRkJMRU5CUVdFc1QwRkJVU3hEUVVGQkxITkNRVUZ6UWl4RFFVRk5MRXRCUVVFc1RVRkJRU3hEUVVGQk8wRkJRVUVzUjBGRGNFVTdRVUZGUVN4RlFVRkJMRWxCUVVrc1kwRkJaMElzUlVGQlFUdEJRVU5zUWl4SlFVRkJMRTlCUVVFc1EwRkJVU3hIUVVGSkxFTkJRVUVzUTBGQlFTeEZRVUZITEUxQlFWa3NRMEZCUVN4RlFVRkJMRU5CUVVFc1JVRkJRU3hQUVVGQkxFVkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVRXNRMEZCUVR0QlFVRkJMRWRCUXpkRE8wRkJRMFk3T3pzN0luMD1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBZ0IsU0FBQSxhQUFBLENBQWMsTUFBZ0IsRUFBQSxPQUFBLEVBQUEsR0FBb0IsSUFBaUIsRUFBQTtBQUNqRixFQUFBLElBQUksY0FBaUIsR0FBQSxLQUFBLENBQUE7QUFFakIsRUFBQSxJQUFBLE9BQU8sV0FBVyxXQUFhLEVBQUE7QUFDaEIsSUFBQSxjQUFBLEdBQUEsWUFBQSxDQUFhLE9BQVEsQ0FBQSxzQkFBc0IsQ0FBTSxLQUFBLE1BQUEsQ0FBQTtBQUFBLEdBQUE7QUFHcEUsRUFBQSxJQUFJLGNBQWdCLEVBQUE7QUFDbEIsSUFBQSxPQUFBLENBQVEsR0FBSSxDQUFBLENBQUEsRUFBRyxNQUFZLENBQUEsRUFBQSxDQUFBLEVBQUEsT0FBQSxFQUFTLEdBQUcsSUFBSSxDQUFBLENBQUE7QUFBQSxHQUFBO0FBRS9DOzs7OyJ9
@@ -0,0 +1,150 @@
1
+ import { DataLinkBuiltInVars } from '@grafana/data';
2
+ import { sceneGraph } from '../core/sceneGraph/index.js';
3
+ import { writeSceneLog } from '../utils/writeSceneLog.js';
4
+ import { VARIABLE_REGEX } from './constants.js';
5
+ import { safeStringifyValue } from './utils.js';
6
+ import { ConstantVariable } from './variants/ConstantVariable.js';
7
+
8
+ class VariableDependencyConfig {
9
+ constructor(_sceneObject, _options) {
10
+ this._sceneObject = _sceneObject;
11
+ this._options = _options;
12
+ this._dependencies = /* @__PURE__ */ new Set();
13
+ this._isWaitingForVariables = false;
14
+ this.scanCount = 0;
15
+ this._statePaths = _options.statePaths;
16
+ if (this._options.handleTimeMacros) {
17
+ this.handleTimeMacros();
18
+ }
19
+ }
20
+ hasDependencyOn(name) {
21
+ return this.getNames().has(name);
22
+ }
23
+ variableUpdateCompleted(variable, hasChanged) {
24
+ const deps = this.getNames();
25
+ let dependencyChanged = false;
26
+ if ((deps.has(variable.state.name) || deps.has(DataLinkBuiltInVars.includeVars)) && hasChanged) {
27
+ dependencyChanged = true;
28
+ }
29
+ writeSceneLog(
30
+ "VariableDependencyConfig",
31
+ "variableUpdateCompleted",
32
+ variable.state.name,
33
+ dependencyChanged,
34
+ this._isWaitingForVariables
35
+ );
36
+ if (this._options.onAnyVariableChanged) {
37
+ this._options.onAnyVariableChanged(variable);
38
+ }
39
+ if (this._options.onVariableUpdateCompleted && (this._isWaitingForVariables || dependencyChanged)) {
40
+ this._options.onVariableUpdateCompleted();
41
+ }
42
+ if (dependencyChanged) {
43
+ if (this._options.onReferencedVariableValueChanged) {
44
+ this._options.onReferencedVariableValueChanged(variable);
45
+ }
46
+ if (!this._options.onReferencedVariableValueChanged && !this._options.onVariableUpdateCompleted) {
47
+ this._sceneObject.forceRender();
48
+ }
49
+ }
50
+ }
51
+ hasDependencyInLoadingState() {
52
+ if (sceneGraph.hasVariableDependencyInLoadingState(this._sceneObject)) {
53
+ this._isWaitingForVariables = true;
54
+ return true;
55
+ }
56
+ this._isWaitingForVariables = false;
57
+ return false;
58
+ }
59
+ getNames() {
60
+ const prevState = this._state;
61
+ const newState = this._state = this._sceneObject.state;
62
+ if (!prevState) {
63
+ this.scanStateForDependencies(this._state);
64
+ return this._dependencies;
65
+ }
66
+ if (newState !== prevState) {
67
+ if (this._statePaths) {
68
+ for (const path of this._statePaths) {
69
+ if (path === "*" || newState[path] !== prevState[path]) {
70
+ this.scanStateForDependencies(newState);
71
+ break;
72
+ }
73
+ }
74
+ } else {
75
+ this.scanStateForDependencies(newState);
76
+ }
77
+ }
78
+ return this._dependencies;
79
+ }
80
+ setVariableNames(varNames) {
81
+ this._options.variableNames = varNames;
82
+ this.scanStateForDependencies(this._state);
83
+ }
84
+ setPaths(paths) {
85
+ this._statePaths = paths;
86
+ }
87
+ scanStateForDependencies(state) {
88
+ this._dependencies.clear();
89
+ this.scanCount += 1;
90
+ if (this._options.variableNames) {
91
+ for (const name of this._options.variableNames) {
92
+ this._dependencies.add(name);
93
+ }
94
+ }
95
+ if (this._statePaths) {
96
+ for (const path of this._statePaths) {
97
+ if (path === "*") {
98
+ this.extractVariablesFrom(state);
99
+ break;
100
+ } else {
101
+ const value = state[path];
102
+ if (value) {
103
+ this.extractVariablesFrom(value);
104
+ }
105
+ }
106
+ }
107
+ }
108
+ }
109
+ extractVariablesFrom(value) {
110
+ VARIABLE_REGEX.lastIndex = 0;
111
+ const stringToCheck = typeof value !== "string" ? safeStringifyValue(value) : value;
112
+ const matches = stringToCheck.matchAll(VARIABLE_REGEX);
113
+ if (!matches) {
114
+ return;
115
+ }
116
+ for (const match of matches) {
117
+ const [, var1, var2, , var3] = match;
118
+ const variableName = var1 || var2 || var3;
119
+ this._dependencies.add(variableName);
120
+ }
121
+ }
122
+ handleTimeMacros() {
123
+ this._sceneObject.addActivationHandler(() => {
124
+ const timeRange = sceneGraph.getTimeRange(this._sceneObject);
125
+ const sub = timeRange.subscribeToState((newState, oldState) => {
126
+ const deps = this.getNames();
127
+ const hasFromDep = deps.has("__from");
128
+ const hasToDep = deps.has("__to");
129
+ const hasTimeZone = deps.has("__timezone");
130
+ if (newState.value !== oldState.value) {
131
+ if (hasFromDep) {
132
+ const variable = new ConstantVariable({ name: "__from", value: newState.from });
133
+ this.variableUpdateCompleted(variable, true);
134
+ } else if (hasToDep) {
135
+ const variable = new ConstantVariable({ name: "__to", value: newState.to });
136
+ this.variableUpdateCompleted(variable, true);
137
+ }
138
+ }
139
+ if (newState.timeZone !== oldState.timeZone && hasTimeZone) {
140
+ const variable = new ConstantVariable({ name: "__timezone", value: newState.timeZone });
141
+ this.variableUpdateCompleted(variable, true);
142
+ }
143
+ });
144
+ return () => sub.unsubscribe();
145
+ });
146
+ }
147
+ }
148
+
149
+ export { VariableDependencyConfig };
150
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFyaWFibGVEZXBlbmRlbmN5Q29uZmlnLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi92YXJpYWJsZXMvVmFyaWFibGVEZXBlbmRlbmN5Q29uZmlnLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFMaW5rQnVpbHRJblZhcnMgfSBmcm9tICdAZ3JhZmFuYS9kYXRhJztcbmltcG9ydCB7IHNjZW5lR3JhcGggfSBmcm9tICcuLi9jb3JlL3NjZW5lR3JhcGgvaW5kZXguanMnO1xuaW1wb3J0IHsgd3JpdGVTY2VuZUxvZyB9IGZyb20gJy4uL3V0aWxzL3dyaXRlU2NlbmVMb2cuanMnO1xuaW1wb3J0IHsgVkFSSUFCTEVfUkVHRVggfSBmcm9tICcuL2NvbnN0YW50cy5qcyc7XG5pbXBvcnQgeyBzYWZlU3RyaW5naWZ5VmFsdWUgfSBmcm9tICcuL3V0aWxzLmpzJztcbmltcG9ydCB7IENvbnN0YW50VmFyaWFibGUgfSBmcm9tICcuL3ZhcmlhbnRzL0NvbnN0YW50VmFyaWFibGUuanMnO1xuXG5jbGFzcyBWYXJpYWJsZURlcGVuZGVuY3lDb25maWcge1xuICBjb25zdHJ1Y3Rvcihfc2NlbmVPYmplY3QsIF9vcHRpb25zKSB7XG4gICAgdGhpcy5fc2NlbmVPYmplY3QgPSBfc2NlbmVPYmplY3Q7XG4gICAgdGhpcy5fb3B0aW9ucyA9IF9vcHRpb25zO1xuICAgIHRoaXMuX2RlcGVuZGVuY2llcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7XG4gICAgdGhpcy5faXNXYWl0aW5nRm9yVmFyaWFibGVzID0gZmFsc2U7XG4gICAgdGhpcy5zY2FuQ291bnQgPSAwO1xuICAgIHRoaXMuX3N0YXRlUGF0aHMgPSBfb3B0aW9ucy5zdGF0ZVBhdGhzO1xuICAgIGlmICh0aGlzLl9vcHRpb25zLmhhbmRsZVRpbWVNYWNyb3MpIHtcbiAgICAgIHRoaXMuaGFuZGxlVGltZU1hY3JvcygpO1xuICAgIH1cbiAgfVxuICBoYXNEZXBlbmRlbmN5T24obmFtZSkge1xuICAgIHJldHVybiB0aGlzLmdldE5hbWVzKCkuaGFzKG5hbWUpO1xuICB9XG4gIHZhcmlhYmxlVXBkYXRlQ29tcGxldGVkKHZhcmlhYmxlLCBoYXNDaGFuZ2VkKSB7XG4gICAgY29uc3QgZGVwcyA9IHRoaXMuZ2V0TmFtZXMoKTtcbiAgICBsZXQgZGVwZW5kZW5jeUNoYW5nZWQgPSBmYWxzZTtcbiAgICBpZiAoKGRlcHMuaGFzKHZhcmlhYmxlLnN0YXRlLm5hbWUpIHx8IGRlcHMuaGFzKERhdGFMaW5rQnVpbHRJblZhcnMuaW5jbHVkZVZhcnMpKSAmJiBoYXNDaGFuZ2VkKSB7XG4gICAgICBkZXBlbmRlbmN5Q2hhbmdlZCA9IHRydWU7XG4gICAgfVxuICAgIHdyaXRlU2NlbmVMb2coXG4gICAgICBcIlZhcmlhYmxlRGVwZW5kZW5jeUNvbmZpZ1wiLFxuICAgICAgXCJ2YXJpYWJsZVVwZGF0ZUNvbXBsZXRlZFwiLFxuICAgICAgdmFyaWFibGUuc3RhdGUubmFtZSxcbiAgICAgIGRlcGVuZGVuY3lDaGFuZ2VkLFxuICAgICAgdGhpcy5faXNXYWl0aW5nRm9yVmFyaWFibGVzXG4gICAgKTtcbiAgICBpZiAodGhpcy5fb3B0aW9ucy5vbkFueVZhcmlhYmxlQ2hhbmdlZCkge1xuICAgICAgdGhpcy5fb3B0aW9ucy5vbkFueVZhcmlhYmxlQ2hhbmdlZCh2YXJpYWJsZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9vcHRpb25zLm9uVmFyaWFibGVVcGRhdGVDb21wbGV0ZWQgJiYgKHRoaXMuX2lzV2FpdGluZ0ZvclZhcmlhYmxlcyB8fCBkZXBlbmRlbmN5Q2hhbmdlZCkpIHtcbiAgICAgIHRoaXMuX29wdGlvbnMub25WYXJpYWJsZVVwZGF0ZUNvbXBsZXRlZCgpO1xuICAgIH1cbiAgICBpZiAoZGVwZW5kZW5jeUNoYW5nZWQpIHtcbiAgICAgIGlmICh0aGlzLl9vcHRpb25zLm9uUmVmZXJlbmNlZFZhcmlhYmxlVmFsdWVDaGFuZ2VkKSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMub25SZWZlcmVuY2VkVmFyaWFibGVWYWx1ZUNoYW5nZWQodmFyaWFibGUpO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLl9vcHRpb25zLm9uUmVmZXJlbmNlZFZhcmlhYmxlVmFsdWVDaGFuZ2VkICYmICF0aGlzLl9vcHRpb25zLm9uVmFyaWFibGVVcGRhdGVDb21wbGV0ZWQpIHtcbiAgICAgICAgdGhpcy5fc2NlbmVPYmplY3QuZm9yY2VSZW5kZXIoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaGFzRGVwZW5kZW5jeUluTG9hZGluZ1N0YXRlKCkge1xuICAgIGlmIChzY2VuZUdyYXBoLmhhc1ZhcmlhYmxlRGVwZW5kZW5jeUluTG9hZGluZ1N0YXRlKHRoaXMuX3NjZW5lT2JqZWN0KSkge1xuICAgICAgdGhpcy5faXNXYWl0aW5nRm9yVmFyaWFibGVzID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB0aGlzLl9pc1dhaXRpbmdGb3JWYXJpYWJsZXMgPSBmYWxzZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgZ2V0TmFtZXMoKSB7XG4gICAgY29uc3QgcHJldlN0YXRlID0gdGhpcy5fc3RhdGU7XG4gICAgY29uc3QgbmV3U3RhdGUgPSB0aGlzLl9zdGF0ZSA9IHRoaXMuX3NjZW5lT2JqZWN0LnN0YXRlO1xuICAgIGlmICghcHJldlN0YXRlKSB7XG4gICAgICB0aGlzLnNjYW5TdGF0ZUZvckRlcGVuZGVuY2llcyh0aGlzLl9zdGF0ZSk7XG4gICAgICByZXR1cm4gdGhpcy5fZGVwZW5kZW5jaWVzO1xuICAgIH1cbiAgICBpZiAobmV3U3RhdGUgIT09IHByZXZTdGF0ZSkge1xuICAgICAgaWYgKHRoaXMuX3N0YXRlUGF0aHMpIHtcbiAgICAgICAgZm9yIChjb25zdCBwYXRoIG9mIHRoaXMuX3N0YXRlUGF0aHMpIHtcbiAgICAgICAgICBpZiAocGF0aCA9PT0gXCIqXCIgfHwgbmV3U3RhdGVbcGF0aF0gIT09IHByZXZTdGF0ZVtwYXRoXSkge1xuICAgICAgICAgICAgdGhpcy5zY2FuU3RhdGVGb3JEZXBlbmRlbmNpZXMobmV3U3RhdGUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNjYW5TdGF0ZUZvckRlcGVuZGVuY2llcyhuZXdTdGF0ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9kZXBlbmRlbmNpZXM7XG4gIH1cbiAgc2V0VmFyaWFibGVOYW1lcyh2YXJOYW1lcykge1xuICAgIHRoaXMuX29wdGlvbnMudmFyaWFibGVOYW1lcyA9IHZhck5hbWVzO1xuICAgIHRoaXMuc2NhblN0YXRlRm9yRGVwZW5kZW5jaWVzKHRoaXMuX3N0YXRlKTtcbiAgfVxuICBzZXRQYXRocyhwYXRocykge1xuICAgIHRoaXMuX3N0YXRlUGF0aHMgPSBwYXRocztcbiAgfVxuICBzY2FuU3RhdGVGb3JEZXBlbmRlbmNpZXMoc3RhdGUpIHtcbiAgICB0aGlzLl9kZXBlbmRlbmNpZXMuY2xlYXIoKTtcbiAgICB0aGlzLnNjYW5Db3VudCArPSAxO1xuICAgIGlmICh0aGlzLl9vcHRpb25zLnZhcmlhYmxlTmFtZXMpIHtcbiAgICAgIGZvciAoY29uc3QgbmFtZSBvZiB0aGlzLl9vcHRpb25zLnZhcmlhYmxlTmFtZXMpIHtcbiAgICAgICAgdGhpcy5fZGVwZW5kZW5jaWVzLmFkZChuYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuX3N0YXRlUGF0aHMpIHtcbiAgICAgIGZvciAoY29uc3QgcGF0aCBvZiB0aGlzLl9zdGF0ZVBhdGhzKSB7XG4gICAgICAgIGlmIChwYXRoID09PSBcIipcIikge1xuICAgICAgICAgIHRoaXMuZXh0cmFjdFZhcmlhYmxlc0Zyb20oc3RhdGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gc3RhdGVbcGF0aF07XG4gICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmV4dHJhY3RWYXJpYWJsZXNGcm9tKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZXh0cmFjdFZhcmlhYmxlc0Zyb20odmFsdWUpIHtcbiAgICBWQVJJQUJMRV9SRUdFWC5sYXN0SW5kZXggPSAwO1xuICAgIGNvbnN0IHN0cmluZ1RvQ2hlY2sgPSB0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgPyBzYWZlU3RyaW5naWZ5VmFsdWUodmFsdWUpIDogdmFsdWU7XG4gICAgY29uc3QgbWF0Y2hlcyA9IHN0cmluZ1RvQ2hlY2subWF0Y2hBbGwoVkFSSUFCTEVfUkVHRVgpO1xuICAgIGlmICghbWF0Y2hlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIG1hdGNoZXMpIHtcbiAgICAgIGNvbnN0IFssIHZhcjEsIHZhcjIsICwgdmFyM10gPSBtYXRjaDtcbiAgICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IHZhcjEgfHwgdmFyMiB8fCB2YXIzO1xuICAgICAgdGhpcy5fZGVwZW5kZW5jaWVzLmFkZCh2YXJpYWJsZU5hbWUpO1xuICAgIH1cbiAgfVxuICBoYW5kbGVUaW1lTWFjcm9zKCkge1xuICAgIHRoaXMuX3NjZW5lT2JqZWN0LmFkZEFjdGl2YXRpb25IYW5kbGVyKCgpID0+IHtcbiAgICAgIGNvbnN0IHRpbWVSYW5nZSA9IHNjZW5lR3JhcGguZ2V0VGltZVJhbmdlKHRoaXMuX3NjZW5lT2JqZWN0KTtcbiAgICAgIGNvbnN0IHN1YiA9IHRpbWVSYW5nZS5zdWJzY3JpYmVUb1N0YXRlKChuZXdTdGF0ZSwgb2xkU3RhdGUpID0+IHtcbiAgICAgICAgY29uc3QgZGVwcyA9IHRoaXMuZ2V0TmFtZXMoKTtcbiAgICAgICAgY29uc3QgaGFzRnJvbURlcCA9IGRlcHMuaGFzKFwiX19mcm9tXCIpO1xuICAgICAgICBjb25zdCBoYXNUb0RlcCA9IGRlcHMuaGFzKFwiX190b1wiKTtcbiAgICAgICAgY29uc3QgaGFzVGltZVpvbmUgPSBkZXBzLmhhcyhcIl9fdGltZXpvbmVcIik7XG4gICAgICAgIGlmIChuZXdTdGF0ZS52YWx1ZSAhPT0gb2xkU3RhdGUudmFsdWUpIHtcbiAgICAgICAgICBpZiAoaGFzRnJvbURlcCkge1xuICAgICAgICAgICAgY29uc3QgdmFyaWFibGUgPSBuZXcgQ29uc3RhbnRWYXJpYWJsZSh7IG5hbWU6IFwiX19mcm9tXCIsIHZhbHVlOiBuZXdTdGF0ZS5mcm9tIH0pO1xuICAgICAgICAgICAgdGhpcy52YXJpYWJsZVVwZGF0ZUNvbXBsZXRlZCh2YXJpYWJsZSwgdHJ1ZSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChoYXNUb0RlcCkge1xuICAgICAgICAgICAgY29uc3QgdmFyaWFibGUgPSBuZXcgQ29uc3RhbnRWYXJpYWJsZSh7IG5hbWU6IFwiX190b1wiLCB2YWx1ZTogbmV3U3RhdGUudG8gfSk7XG4gICAgICAgICAgICB0aGlzLnZhcmlhYmxlVXBkYXRlQ29tcGxldGVkKHZhcmlhYmxlLCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5ld1N0YXRlLnRpbWVab25lICE9PSBvbGRTdGF0ZS50aW1lWm9uZSAmJiBoYXNUaW1lWm9uZSkge1xuICAgICAgICAgIGNvbnN0IHZhcmlhYmxlID0gbmV3IENvbnN0YW50VmFyaWFibGUoeyBuYW1lOiBcIl9fdGltZXpvbmVcIiwgdmFsdWU6IG5ld1N0YXRlLnRpbWVab25lIH0pO1xuICAgICAgICAgIHRoaXMudmFyaWFibGVVcGRhdGVDb21wbGV0ZWQodmFyaWFibGUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoKSA9PiBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgeyBWYXJpYWJsZURlcGVuZGVuY3lDb25maWcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pVm1GeWFXRmliR1ZFWlhCbGJtUmxibU41UTI5dVptbG5MbXB6SWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOXpjbU12ZG1GeWFXRmliR1Z6TDFaaGNtbGhZbXhsUkdWd1pXNWtaVzVqZVVOdmJtWnBaeTUwY3lKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QkVZWFJoVEdsdWEwSjFhV3gwU1c1V1lYSnpJSDBnWm5KdmJTQW5RR2R5WVdaaGJtRXZaR0YwWVNjN1hHNXBiWEJ2Y25RZ2V5QnpZMlZ1WlVkeVlYQm9JSDBnWm5KdmJTQW5MaTR2WTI5eVpTOXpZMlZ1WlVkeVlYQm9KenRjYm1sdGNHOXlkQ0I3SUZOalpXNWxUMkpxWldOMExDQlRZMlZ1WlU5aWFtVmpkRk4wWVhSbElIMGdabkp2YlNBbkxpNHZZMjl5WlM5MGVYQmxjeWM3WEc1cGJYQnZjblFnZXlCM2NtbDBaVk5qWlc1bFRHOW5JSDBnWm5KdmJTQW5MaTR2ZFhScGJITXZkM0pwZEdWVFkyVnVaVXh2WnljN1hHNXBiWEJ2Y25RZ2V5QldRVkpKUVVKTVJWOVNSVWRGV0NCOUlHWnliMjBnSnk0dlkyOXVjM1JoYm5Sekp6dGNibHh1YVcxd2IzSjBJSHNnVTJObGJtVldZWEpwWVdKc1pTd2dVMk5sYm1WV1lYSnBZV0pzWlVSbGNHVnVaR1Z1WTNsRGIyNW1hV2RNYVd0bElIMGdabkp2YlNBbkxpOTBlWEJsY3ljN1hHNXBiWEJ2Y25RZ2V5QnpZV1psVTNSeWFXNW5hV1o1Vm1Gc2RXVWdmU0JtY205dElDY3VMM1YwYVd4ekp6dGNibWx0Y0c5eWRDQjdJRU52Ym5OMFlXNTBWbUZ5YVdGaWJHVWdmU0JtY205dElDY3VMM1poY21saGJuUnpMME52Ym5OMFlXNTBWbUZ5YVdGaWJHVW5PMXh1WEc1cGJuUmxjbVpoWTJVZ1ZtRnlhV0ZpYkdWRVpYQmxibVJsYm1ONVEyOXVabWxuVDNCMGFXOXVjenhVVTNSaGRHVWdaWGgwWlc1a2N5QlRZMlZ1WlU5aWFtVmpkRk4wWVhSbFBpQjdYRzRnSUM4cUtseHVJQ0FnS2lCVGRHRjBaU0J3WVhSb2N5QjBieUJ6WTJGdUlDOGdaWGgwY21GamRDQjJZWEpwWVdKc1pTQmtaWEJsYm1SbGJtTnBaWE1nWm5KdmJTNGdUR1ZoZG1VZ1pXMXdkSGtnZEc4Z2MyTmhiaUJoYkd3Z2NHRjBhSE11WEc0Z0lDQXFMMXh1SUNCemRHRjBaVkJoZEdoelB6b2dRWEp5WVhrOGEyVjViMllnVkZOMFlYUmxJSHdnSnlvblBqdGNibHh1SUNBdktpcGNiaUFnSUNvZ1JYaHdiR2xqYVhRZ2JHbHpkQ0J2WmlCMllYSnBZV0pzWlNCdVlXMWxjeUIwYnlCa1pYQmxibVFnYjI0dUlFeGxZWFpsSUdWdGNIUjVJSFJ2SUhOallXNGdjM1JoZEdVZ1ptOXlJR1JsY0dWdVpHVnVZMmxsY3k1Y2JpQWdJQ292WEc0Z0lIWmhjbWxoWW14bFRtRnRaWE0vT2lCemRISnBibWRiWFR0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nVDNCMGFXOXVZV3dnZDJGNUlIUnZJR04xYzNSdmJXbDZaU0JvYjNjZ2RHOGdhR0Z1Wkd4bElIZG9aVzRnWVNCa1pYQmxibVJsYm5RZ2RtRnlhV0ZpYkdVZ1kyaGhibWRsYzF4dUlDQWdLaUJKWmlCdWIzUWdjM0JsWTJsbWFXVmtJSFJvWlNCa1pXWmhkV3gwSUdKbGFHRjJhVzl5SUdseklIUnZJSFJ5YVdkblpYSWdZU0J5WlMxeVpXNWtaWEpjYmlBZ0lDb3ZYRzRnSUc5dVVtVm1aWEpsYm1ObFpGWmhjbWxoWW14bFZtRnNkV1ZEYUdGdVoyVmtQem9nS0haaGNtbGhZbXhsT2lCVFkyVnVaVlpoY21saFlteGxLU0E5UGlCMmIybGtPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlVkMjhnYzJObGJtRnlhVzl6SUhSeWFXZG5aWElnZEdocGN5QmpZV3hzWW1GamF5QjBieUJpWlNCallXeHNaV1F1WEc0Z0lDQXFJREV1SUZkb1pXNGdZVzU1SUdScGNtVmpkQ0JrWlhCbGJtUmxibU41SUdOb1lXNW5aV1FnZG1Gc2RXVmNiaUFnSUNvZ01pNGdTVzRnWTJGelpTQm9ZWE5FWlhCbGJtUmxibU41U1c1TWIyRmthVzVuVTNSaGRHVWdkMkZ6SUdOaGJHeGxaQ0JoYm1RZ2NtVjBkWEp1WldRZ2RISjFaU0IzWlNCeVpXRnNiSGtnWTJGeVpTQmhZbTkxZENCaGJua2dkbUZ5YVdGaWJHVWdkWEJrWVhSbExpQlRieUJwYmlCMGFHbHpJSE5qWlc1aGNtbHZJSFJvYVhNZ1kyRnNiR0poWTJzZ2FYTWdZMkZzYkdWa1hHNGdJQ0FxSUNBZ0lHRm1kR1Z5SUdGdWVTQjJZWEpwWVdKc1pTQjFjR1JoZEdVZ1kyOXRjR3hsZEdWekxpQlVhR2x6SUdseklIUnZJR052ZG1WeUlITmpaVzVoY21sdmN5QjNhR1Z5WlNCaGJpQnZZbXBsWTNRZ2FYTWdkMkZwZEdsdVp5Qm1iM0lnYVc1a2FYSmxZM1FnWkdWd1pXNWtaVzVqYVdWeklIUnZJR052YlhCc1pYUmxMbHh1SUNBZ0tpOWNiaUFnYjI1V1lYSnBZV0pzWlZWd1pHRjBaVU52YlhCc1pYUmxaRDg2SUNncElEMCtJSFp2YVdRN1hHNWNiaUFnTHlvcVhHNGdJQ0FxSUU5d2RHbHZibUZzSUhkaGVTQjBieUJ6ZFdKelkzSnBZbVVnZEc4Z1lXeHNJSFpoY21saFlteGxJSFpoYkhWbElHTm9ZVzVuWlhNc0lHVjJaVzRnZEc4Z2RtRnlhV0ZpYkdWeklIUm9ZWFFnWVhKbElHNXZkQ0JrWlhCbGJtUmxibU5wWlhNdVhHNGdJQ0FxTDF4dUlDQnZia0Z1ZVZaaGNtbGhZbXhsUTJoaGJtZGxaRDg2SUNoMllYSnBZV0pzWlRvZ1UyTmxibVZXWVhKcFlXSnNaU2tnUFQ0Z2RtOXBaRHRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dTR0Z1Wkd4bElIUnBiV1VnYldGamNtOXpMbHh1SUNBZ0tpOWNiaUFnYUdGdVpHeGxWR2x0WlUxaFkzSnZjejg2SUdKdmIyeGxZVzQ3WEc1OVhHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCV1lYSnBZV0pzWlVSbGNHVnVaR1Z1WTNsRGIyNW1hV2M4VkZOMFlYUmxJR1Y0ZEdWdVpITWdVMk5sYm1WUFltcGxZM1JUZEdGMFpUNGdhVzF3YkdWdFpXNTBjeUJUWTJWdVpWWmhjbWxoWW14bFJHVndaVzVrWlc1amVVTnZibVpwWjB4cGEyVWdlMXh1SUNCd2NtbDJZWFJsSUY5emRHRjBaVG9nVkZOMFlYUmxJSHdnZFc1a1pXWnBibVZrTzF4dUlDQndjbWwyWVhSbElGOWtaWEJsYm1SbGJtTnBaWE1nUFNCdVpYY2dVMlYwUEhOMGNtbHVaejRvS1R0Y2JpQWdjSEpwZG1GMFpTQmZjM1JoZEdWUVlYUm9jejg2SUVGeWNtRjVQR3RsZVc5bUlGUlRkR0YwWlNCOElDY3FKejQ3WEc0Z0lIQnlhWFpoZEdVZ1gybHpWMkZwZEdsdVowWnZjbFpoY21saFlteGxjeUE5SUdaaGJITmxPMXh1WEc0Z0lIQjFZbXhwWXlCelkyRnVRMjkxYm5RZ1BTQXdPMXh1WEc0Z0lIQjFZbXhwWXlCamIyNXpkSEoxWTNSdmNpaGNiaUFnSUNCd2NtbDJZWFJsSUY5elkyVnVaVTlpYW1WamREb2dVMk5sYm1WUFltcGxZM1E4VkZOMFlYUmxQaXhjYmlBZ0lDQndjbWwyWVhSbElGOXZjSFJwYjI1ek9pQldZWEpwWVdKc1pVUmxjR1Z1WkdWdVkzbERiMjVtYVdkUGNIUnBiMjV6UEZSVGRHRjBaVDVjYmlBZ0tTQjdYRzRnSUNBZ2RHaHBjeTVmYzNSaGRHVlFZWFJvY3lBOUlGOXZjSFJwYjI1ekxuTjBZWFJsVUdGMGFITTdYRzVjYmlBZ0lDQnBaaUFvZEdocGN5NWZiM0IwYVc5dWN5NW9ZVzVrYkdWVWFXMWxUV0ZqY205ektTQjdYRzRnSUNBZ0lDQjBhR2x6TG1oaGJtUnNaVlJwYldWTllXTnliM01vS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1ZYTmxaQ0IwYnlCamFHVmpheUJtYjNJZ1pHVndaVzVrWlc1amVTQnZiaUJoSUhOd1pXTnBabWxqSUhaaGNtbGhZbXhsWEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nYUdGelJHVndaVzVrWlc1amVVOXVLRzVoYldVNklITjBjbWx1WnlrNklHSnZiMnhsWVc0Z2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtZGxkRTVoYldWektDa3VhR0Z6S0c1aGJXVXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZSb2FYTWdhWE1nWTJGc2JHVmtJSGRvWlc1bGRtVnlJR0Z1ZVNCelpYUWdiMllnZG1GeWFXRmliR1Z6SUdoaGRtVWdibVYzSUhaaGJIVmxjeTRnU1hRZ2FYTWdkWEFnZEc4Z2RHaHBjeUJwYlhCc1pXMWxiblJoZEdsdmJpQjBieUJqYUdWamF5QnBaaUJwZENkeklISmxiR1YyWVc1MElHZHBkbVZ1SUhSb1pTQmpkWEp5Wlc1MElHUmxjR1Z1WkdWdVkybGxjeTVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUIyWVhKcFlXSnNaVlZ3WkdGMFpVTnZiWEJzWlhSbFpDaDJZWEpwWVdKc1pUb2dVMk5sYm1WV1lYSnBZV0pzWlN3Z2FHRnpRMmhoYm1kbFpEb2dZbTl2YkdWaGJpa2dlMXh1SUNBZ0lHTnZibk4wSUdSbGNITWdQU0IwYUdsekxtZGxkRTVoYldWektDazdYRzRnSUNBZ2JHVjBJR1JsY0dWdVpHVnVZM2xEYUdGdVoyVmtJRDBnWm1Gc2MyVTdYRzVjYmlBZ0lDQnBaaUFvS0dSbGNITXVhR0Z6S0haaGNtbGhZbXhsTG5OMFlYUmxMbTVoYldVcElIeDhJR1JsY0hNdWFHRnpLRVJoZEdGTWFXNXJRblZwYkhSSmJsWmhjbk11YVc1amJIVmtaVlpoY25NcEtTQW1KaUJvWVhORGFHRnVaMlZrS1NCN1hHNGdJQ0FnSUNCa1pYQmxibVJsYm1ONVEyaGhibWRsWkNBOUlIUnlkV1U3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkM0pwZEdWVFkyVnVaVXh2WnloY2JpQWdJQ0FnSUNkV1lYSnBZV0pzWlVSbGNHVnVaR1Z1WTNsRGIyNW1hV2NuTEZ4dUlDQWdJQ0FnSjNaaGNtbGhZbXhsVlhCa1lYUmxRMjl0Y0d4bGRHVmtKeXhjYmlBZ0lDQWdJSFpoY21saFlteGxMbk4wWVhSbExtNWhiV1VzWEc0Z0lDQWdJQ0JrWlhCbGJtUmxibU41UTJoaGJtZGxaQ3hjYmlBZ0lDQWdJSFJvYVhNdVgybHpWMkZwZEdsdVowWnZjbFpoY21saFlteGxjMXh1SUNBZ0lDazdYRzVjYmlBZ0lDQnBaaUFvZEdocGN5NWZiM0IwYVc5dWN5NXZia0Z1ZVZaaGNtbGhZbXhsUTJoaGJtZGxaQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NWZiM0IwYVc5dWN5NXZia0Z1ZVZaaGNtbGhZbXhsUTJoaGJtZGxaQ2gyWVhKcFlXSnNaU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnU1dZZ1kzVnpkRzl0SUdoaGJtUnNaWElnWTJGc2JHVmtJSGRvWlc0Z1pHVndaVzVrWlc1amVTQnBjeUJqYUdGdVoyVmtJRzl5SUhkb1pXNGdkMlVnWVhKbElIZGhhWFJwYm1jZ1ptOXlJSFpoY21saFlteGxjMXh1SUNBZ0lHbG1JQ2gwYUdsekxsOXZjSFJwYjI1ekxtOXVWbUZ5YVdGaWJHVlZjR1JoZEdWRGIyMXdiR1YwWldRZ0ppWWdLSFJvYVhNdVgybHpWMkZwZEdsdVowWnZjbFpoY21saFlteGxjeUI4ZkNCa1pYQmxibVJsYm1ONVEyaGhibWRsWkNrcElIdGNiaUFnSUNBZ0lIUm9hWE11WDI5d2RHbHZibk11YjI1V1lYSnBZV0pzWlZWd1pHRjBaVU52YlhCc1pYUmxaQ2dwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoa1pYQmxibVJsYm1ONVEyaGhibWRsWkNrZ2UxeHVJQ0FnSUNBZ2FXWWdLSFJvYVhNdVgyOXdkR2x2Ym5NdWIyNVNaV1psY21WdVkyVmtWbUZ5YVdGaWJHVldZV3gxWlVOb1lXNW5aV1FwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVmYjNCMGFXOXVjeTV2YmxKbFptVnlaVzVqWldSV1lYSnBZV0pzWlZaaGJIVmxRMmhoYm1kbFpDaDJZWEpwWVdKc1pTazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQzh2SUdsbUlHNXZJR05oYkd4aVlXTnJjeUJoY21VZ2MzQmxZMmxtYVdWa0lIUm9aVzRnYW5WemRDQmtieUJoSUdadmNtTmxVbVZ1WkdWeVhHNGdJQ0FnSUNCcFppQW9JWFJvYVhNdVgyOXdkR2x2Ym5NdWIyNVNaV1psY21WdVkyVmtWbUZ5YVdGaWJHVldZV3gxWlVOb1lXNW5aV1FnSmlZZ0lYUm9hWE11WDI5d2RHbHZibk11YjI1V1lYSnBZV0pzWlZWd1pHRjBaVU52YlhCc1pYUmxaQ2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbDl6WTJWdVpVOWlhbVZqZEM1bWIzSmpaVkpsYm1SbGNpZ3BPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5Qm9ZWE5FWlhCbGJtUmxibU41U1c1TWIyRmthVzVuVTNSaGRHVW9LU0I3WEc0Z0lDQWdhV1lnS0hOalpXNWxSM0poY0dndWFHRnpWbUZ5YVdGaWJHVkVaWEJsYm1SbGJtTjVTVzVNYjJGa2FXNW5VM1JoZEdVb2RHaHBjeTVmYzJObGJtVlBZbXBsWTNRcEtTQjdYRzRnSUNBZ0lDQjBhR2x6TGw5cGMxZGhhWFJwYm1kR2IzSldZWEpwWVdKc1pYTWdQU0IwY25WbE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RHaHBjeTVmYVhOWFlXbDBhVzVuUm05eVZtRnlhV0ZpYkdWeklEMGdabUZzYzJVN1hHNGdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHZGxkRTVoYldWektDazZJRk5sZER4emRISnBibWMrSUh0Y2JpQWdJQ0JqYjI1emRDQndjbVYyVTNSaGRHVWdQU0IwYUdsekxsOXpkR0YwWlR0Y2JpQWdJQ0JqYjI1emRDQnVaWGRUZEdGMFpTQTlJQ2gwYUdsekxsOXpkR0YwWlNBOUlIUm9hWE11WDNOalpXNWxUMkpxWldOMExuTjBZWFJsS1R0Y2JseHVJQ0FnSUdsbUlDZ2hjSEpsZGxOMFlYUmxLU0I3WEc0Z0lDQWdJQ0F2THlCR2FYSnpkQ0IwYVcxbElIZGxJR0ZzZDJGNWN5QnpZMkZ1SUdadmNpQmtaWEJsYm1SbGJtTnBaWE5jYmlBZ0lDQWdJSFJvYVhNdWMyTmhibE4wWVhSbFJtOXlSR1Z3Wlc1a1pXNWphV1Z6S0hSb2FYTXVYM04wWVhSbEtUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbDlrWlhCbGJtUmxibU5wWlhNN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1UyVmpiMjVrSUhScGJXVWdkMlVnYjI1c2VTQnpZMkZ1SUdsbUlITjBZWFJsSUdseklHRWdaR2xtWm1WeVpXNTBJR0Z1WkNCcFppQmhibmtnYzNCbFkybG1hV01nYzNSaGRHVWdjR0YwYUNCb1lYTWdZMmhoYm1kbFpGeHVJQ0FnSUdsbUlDaHVaWGRUZEdGMFpTQWhQVDBnY0hKbGRsTjBZWFJsS1NCN1hHNGdJQ0FnSUNCcFppQW9kR2hwY3k1ZmMzUmhkR1ZRWVhSb2N5a2dlMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUhCaGRHZ2diMllnZEdocGN5NWZjM1JoZEdWUVlYUm9jeWtnZTF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2h3WVhSb0lEMDlQU0FuS2ljZ2ZId2dibVYzVTNSaGRHVmJjR0YwYUYwZ0lUMDlJSEJ5WlhaVGRHRjBaVnR3WVhSb1hTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV6WTJGdVUzUmhkR1ZHYjNKRVpYQmxibVJsYm1OcFpYTW9ibVYzVTNSaGRHVXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG5OallXNVRkR0YwWlVadmNrUmxjR1Z1WkdWdVkybGxjeWh1WlhkVGRHRjBaU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDJSbGNHVnVaR1Z1WTJsbGN6dGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJWY0dSaGRHVWdkbUZ5YVdGaWJHVk9ZVzFsYzF4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhObGRGWmhjbWxoWW14bFRtRnRaWE1vZG1GeVRtRnRaWE02SUhOMGNtbHVaMXRkS1NCN1hHNGdJQ0FnZEdocGN5NWZiM0IwYVc5dWN5NTJZWEpwWVdKc1pVNWhiV1Z6SUQwZ2RtRnlUbUZ0WlhNN1hHNGdJQ0FnZEdocGN5NXpZMkZ1VTNSaGRHVkdiM0pFWlhCbGJtUmxibU5wWlhNb2RHaHBjeTVmYzNSaGRHVWhLVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJ6WlhSUVlYUm9jeWh3WVhSb2N6b2dRWEp5WVhrOGEyVjViMllnVkZOMFlYUmxJSHdnSnlvblBpa2dlMXh1SUNBZ0lIUm9hWE11WDNOMFlYUmxVR0YwYUhNZ1BTQndZWFJvY3p0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2MyTmhibE4wWVhSbFJtOXlSR1Z3Wlc1a1pXNWphV1Z6S0hOMFlYUmxPaUJVVTNSaGRHVXBJSHRjYmlBZ0lDQjBhR2x6TGw5a1pYQmxibVJsYm1OcFpYTXVZMnhsWVhJb0tUdGNiaUFnSUNCMGFHbHpMbk5qWVc1RGIzVnVkQ0FyUFNBeE8xeHVYRzRnSUNBZ2FXWWdLSFJvYVhNdVgyOXdkR2x2Ym5NdWRtRnlhV0ZpYkdWT1lXMWxjeWtnZTF4dUlDQWdJQ0FnWm05eUlDaGpiMjV6ZENCdVlXMWxJRzltSUhSb2FYTXVYMjl3ZEdsdmJuTXVkbUZ5YVdGaWJHVk9ZVzFsY3lrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TGw5a1pYQmxibVJsYm1OcFpYTXVZV1JrS0c1aGJXVXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2gwYUdsekxsOXpkR0YwWlZCaGRHaHpLU0I3WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUhCaGRHZ2diMllnZEdocGN5NWZjM1JoZEdWUVlYUm9jeWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9jR0YwYUNBOVBUMGdKeW9uS1NCN1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1bGVIUnlZV04wVm1GeWFXRmliR1Z6Um5KdmJTaHpkR0YwWlNrN1hHNGdJQ0FnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2RtRnNkV1VnUFNCemRHRjBaVnR3WVhSb1hUdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSFJvYVhNdVpYaDBjbUZqZEZaaGNtbGhZbXhsYzBaeWIyMG9kbUZzZFdVcE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWlhoMGNtRmpkRlpoY21saFlteGxjMFp5YjIwb2RtRnNkV1U2SUhWdWEyNXZkMjRwSUh0Y2JpQWdJQ0JXUVZKSlFVSk1SVjlTUlVkRldDNXNZWE4wU1c1a1pYZ2dQU0F3TzF4dVhHNGdJQ0FnWTI5dWMzUWdjM1J5YVc1blZHOURhR1ZqYXlBOUlIUjVjR1Z2WmlCMllXeDFaU0FoUFQwZ0ozTjBjbWx1WnljZ1B5QnpZV1psVTNSeWFXNW5hV1o1Vm1Gc2RXVW9kbUZzZFdVcElEb2dkbUZzZFdVN1hHNWNiaUFnSUNCamIyNXpkQ0J0WVhSamFHVnpJRDBnYzNSeWFXNW5WRzlEYUdWamF5NXRZWFJqYUVGc2JDaFdRVkpKUVVKTVJWOVNSVWRGV0NrN1hHNGdJQ0FnYVdZZ0tDRnRZWFJqYUdWektTQjdYRzRnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWm05eUlDaGpiMjV6ZENCdFlYUmphQ0J2WmlCdFlYUmphR1Z6S1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JiTENCMllYSXhMQ0IyWVhJeUxDQXNJSFpoY2pOZElEMGdiV0YwWTJnN1hHNGdJQ0FnSUNCamIyNXpkQ0IyWVhKcFlXSnNaVTVoYldVZ1BTQjJZWEl4SUh4OElIWmhjaklnZkh3Z2RtRnlNenRjYmlBZ0lDQWdJSFJvYVhNdVgyUmxjR1Z1WkdWdVkybGxjeTVoWkdRb2RtRnlhV0ZpYkdWT1lXMWxLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR2hoYm1Sc1pWUnBiV1ZOWVdOeWIzTW9LU0I3WEc0Z0lDQWdkR2hwY3k1ZmMyTmxibVZQWW1wbFkzUXVZV1JrUVdOMGFYWmhkR2x2YmtoaGJtUnNaWElvS0NrZ1BUNGdlMXh1SUNBZ0lDQWdZMjl1YzNRZ2RHbHRaVkpoYm1kbElEMGdjMk5sYm1WSGNtRndhQzVuWlhSVWFXMWxVbUZ1WjJVb2RHaHBjeTVmYzJObGJtVlBZbXBsWTNRcE8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCemRXSWdQU0IwYVcxbFVtRnVaMlV1YzNWaWMyTnlhV0psVkc5VGRHRjBaU2dvYm1WM1UzUmhkR1VzSUc5c1pGTjBZWFJsS1NBOVBpQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUmxjSE1nUFNCMGFHbHpMbWRsZEU1aGJXVnpLQ2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR2hoYzBaeWIyMUVaWEFnUFNCa1pYQnpMbWhoY3lnblgxOW1jbTl0SnlrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdoaGMxUnZSR1Z3SUQwZ1pHVndjeTVvWVhNb0oxOWZkRzhuS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYUdGelZHbHRaVnB2Ym1VZ1BTQmtaWEJ6TG1oaGN5Z25YMTkwYVcxbGVtOXVaU2NwTzF4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2h1WlhkVGRHRjBaUzUyWVd4MVpTQWhQVDBnYjJ4a1UzUmhkR1V1ZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJQ0FnSUNBdkx5QkpaaUI1YjNVZ2FHRjJaU0JpYjNSb0lGOWZabkp2YlNBbUlGOWZkRy9Db0dGeklHUmxjR1Z1WkdWdVkybGxjeUI1YjNVZ2IyNXNlU0JuWlhRZ2JtOTBhV1pwWldRZ2RHaGhkQ0JtY205dElHTm9ZVzVuWldRZ1lXNWtJSFpwWTJVZ2RtVnljMkZjYmlBZ0lDQWdJQ0FnSUNCcFppQW9hR0Z6Um5KdmJVUmxjQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2RtRnlhV0ZpYkdVZ1BTQnVaWGNnUTI5dWMzUmhiblJXWVhKcFlXSnNaU2g3SUc1aGJXVTZJQ2RmWDJaeWIyMG5MQ0IyWVd4MVpUb2dibVYzVTNSaGRHVXVabkp2YlNCOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2FYTXVkbUZ5YVdGaWJHVlZjR1JoZEdWRGIyMXdiR1YwWldRb2RtRnlhV0ZpYkdVc0lIUnlkV1VwTzF4dUlDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9hR0Z6Vkc5RVpYQXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhaaGNtbGhZbXhsSUQwZ2JtVjNJRU52Ym5OMFlXNTBWbUZ5YVdGaWJHVW9leUJ1WVcxbE9pQW5YMTkwYnljc0lIWmhiSFZsT2lCdVpYZFRkR0YwWlM1MGJ5QjlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11ZG1GeWFXRmliR1ZWY0dSaGRHVkRiMjF3YkdWMFpXUW9kbUZ5YVdGaWJHVXNJSFJ5ZFdVcE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lHbG1JQ2h1WlhkVGRHRjBaUzUwYVcxbFdtOXVaU0FoUFQwZ2IyeGtVM1JoZEdVdWRHbHRaVnB2Ym1VZ0ppWWdhR0Z6VkdsdFpWcHZibVVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCMllYSnBZV0pzWlNBOUlHNWxkeUJEYjI1emRHRnVkRlpoY21saFlteGxLSHNnYm1GdFpUb2dKMTlmZEdsdFpYcHZibVVuTENCMllXeDFaVG9nYm1WM1UzUmhkR1V1ZEdsdFpWcHZibVVnZlNrN1hHNGdJQ0FnSUNBZ0lDQWdkR2hwY3k1MllYSnBZV0pzWlZWd1pHRjBaVU52YlhCc1pYUmxaQ2gyWVhKcFlXSnNaU3dnZEhKMVpTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDBwTzF4dVhHNGdJQ0FnSUNCeVpYUjFjbTRnS0NrZ1BUNGdjM1ZpTG5WdWMzVmljMk55YVdKbEtDazdYRzRnSUNBZ2ZTazdYRzRnSUgxY2JuMWNiaUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN08wRkJPRU5QTEUxQlFVMHNkMEpCUVhWSExFTkJRVUU3UVVGQlFTeEZRVkV6Unl4WFFVRkJMRU5CUTBjc1kwRkRRU3hSUVVOU0xFVkJRVUU3UVVGR1VTeEpRVUZCTEVsQlFVRXNRMEZCUVN4WlFVRkJMRWRCUVVFc1dVRkJRU3hEUVVGQk8wRkJRMEVzU1VGQlFTeEpRVUZCTEVOQlFVRXNVVUZCUVN4SFFVRkJMRkZCUVVFc1EwRkJRVHRCUVZKV0xFbEJRVkVzU1VGQlFTeERRVUZCTEdGQlFVRXNkVUpCUVc5Q0xFZEJRVmtzUlVGQlFTeERRVUZCTzBGQlJYaERMRWxCUVVFc1NVRkJRU3hEUVVGUkxITkNRVUY1UWl4SFFVRkJMRXRCUVVFc1EwRkJRVHRCUVVWcVF5eEpRVUZCTEVsQlFVRXNRMEZCVHl4VFFVRlpMRWRCUVVFc1EwRkJRU3hEUVVGQk8wRkJUV3BDTEVsQlFVRXNTVUZCUVN4RFFVRkxMR05CUVdNc1VVRkJVeXhEUVVGQkxGVkJRVUVzUTBGQlFUdEJRVVUxUWl4SlFVRkpMRWxCUVVFc1NVRkJRU3hEUVVGTExGTkJRVk1zWjBKQlFXdENMRVZCUVVFN1FVRkRiRU1zVFVGQlFTeEpRVUZCTEVOQlFVc3NaMEpCUVdsQ0xFVkJRVUVzUTBGQlFUdEJRVUZCTEV0QlEzaENPMEZCUVVFc1IwRkRSanRCUVVGQkxFVkJTMDhzWjBKQlFXZENMRWxCUVhWQ0xFVkJRVUU3UVVGRE5VTXNTVUZCUVN4UFFVRlBMRWxCUVVzc1EwRkJRU3hSUVVGQkxFVkJRVmNzUTBGQlFTeEhRVUZCTEVOQlFVa3NTVUZCU1N4RFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOcVF6dEJRVUZCTEVWQlMwOHNkVUpCUVVFc1EwRkJkMElzVlVGQmVVSXNWVUZCY1VJc1JVRkJRVHRCUVVNelJTeEpRVUZOTEUxQlFVRXNTVUZCUVN4SFFVRlBMRXRCUVVzc1VVRkJVeXhGUVVGQkxFTkJRVUU3UVVGRE0wSXNTVUZCUVN4SlFVRkpMR2xDUVVGdlFpeEhRVUZCTEV0QlFVRXNRMEZCUVR0QlFVVjRRaXhKUVVGTExFbEJRVUVzUTBGQlFTeEpRVUZCTEVOQlFVc3NSMEZCU1N4RFFVRkJMRkZCUVVFc1EwRkJVeXhMUVVGTkxFTkJRVUVzU1VGQlNTeERRVUZMTEVsQlFVRXNTVUZCUVN4RFFVRkxMRWRCUVVrc1EwRkJRU3h0UWtGQlFTeERRVUZ2UWl4WFFVRlhMRU5CUVVFc1MwRkJUU3hWUVVGWkxFVkJRVUU3UVVGRE9VWXNUVUZCYjBJc2FVSkJRVUVzUjBGQlFTeEpRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTjBRanRCUVVWQkxFbEJRVUVzWVVGQlFUdEJRVUZCTEUxQlEwVXNNRUpCUVVFN1FVRkJRU3hOUVVOQkxIbENRVUZCTzBGQlFVRXNUVUZEUVN4VFFVRlRMRXRCUVUwc1EwRkJRU3hKUVVGQk8wRkJRVUVzVFVGRFppeHBRa0ZCUVR0QlFVRkJMRTFCUTBFc1NVRkJTeXhEUVVGQkxITkNRVUZCTzBGQlFVRXNTMEZEVUN4RFFVRkJPMEZCUlVFc1NVRkJTU3hKUVVGQkxFbEJRVUVzUTBGQlN5eFRRVUZUTEc5Q1FVRnpRaXhGUVVGQk8wRkJRM1JETEUxQlFVc3NTVUZCUVN4RFFVRkJMRkZCUVVFc1EwRkJVeXh4UWtGQmNVSXNVVUZCVVN4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVNM1F6dEJRVWRCTEVsQlFVRXNTVUZCU1N4SlFVRkxMRU5CUVVFc1VVRkJRU3hEUVVGVExIbENRVUU0UWl4TFFVRkJMRWxCUVVFc1EwRkJTeXd3UWtGQk1FSXNhVUpCUVc5Q0xFTkJRVUVzUlVGQlFUdEJRVU5xUnl4TlFVRkJMRWxCUVVFc1EwRkJTeXhUUVVGVExIbENRVUV3UWl4RlFVRkJMRU5CUVVFN1FVRkJRU3hMUVVNeFF6dEJRVVZCTEVsQlFVRXNTVUZCU1N4cFFrRkJiVUlzUlVGQlFUdEJRVU55UWl4TlFVRkpMRWxCUVVFc1NVRkJRU3hEUVVGTExGTkJRVk1zWjBOQlFXdERMRVZCUVVFN1FVRkRiRVFzVVVGQlN5eEpRVUZCTEVOQlFVRXNVVUZCUVN4RFFVRlRMR2xEUVVGcFF5eFJRVUZSTEVOQlFVRXNRMEZCUVR0QlFVRkJMRTlCUTNwRU8wRkJSMEVzVFVGQlFTeEpRVUZKTEVOQlFVTXNTVUZCU3l4RFFVRkJMRkZCUVVFc1EwRkJVeXh2UTBGQmIwTXNRMEZCUXl4SlFVRkJMRU5CUVVzc1UwRkJVeXg1UWtGQk1rSXNSVUZCUVR0QlFVTXZSaXhSUVVGQkxFbEJRVUVzUTBGQlN5eGhRVUZoTEZkQlFWa3NSVUZCUVN4RFFVRkJPMEZCUVVFc1QwRkRhRU03UVVGQlFTeExRVU5HTzBGQlFVRXNSMEZEUmp0QlFVRkJMRVZCUlU4c01rSkJRVGhDTEVkQlFVRTdRVUZEYmtNc1NVRkJRU3hKUVVGSkxGVkJRVmNzUTBGQlFTeHRRMEZCUVN4RFFVRnZReXhKUVVGTExFTkJRVUVzV1VGQldTeERRVUZITEVWQlFVRTdRVUZEY2tVc1RVRkJRU3hKUVVGQkxFTkJRVXNzYzBKQlFYbENMRWRCUVVFc1NVRkJRU3hEUVVGQk8wRkJRemxDTEUxQlFVOHNUMEZCUVN4SlFVRkJMRU5CUVVFN1FVRkJRU3hMUVVOVU8wRkJSVUVzU1VGQlFTeEpRVUZCTEVOQlFVc3NjMEpCUVhsQ0xFZEJRVUVzUzBGQlFTeERRVUZCTzBGQlF6bENMRWxCUVU4c1QwRkJRU3hMUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU5VTzBGQlFVRXNSVUZGVHl4UlFVRjNRaXhIUVVGQk8wRkJRemRDTEVsQlFVRXNUVUZCVFN4WlFVRlpMRWxCUVVzc1EwRkJRU3hOUVVGQkxFTkJRVUU3UVVGRGRrSXNTVUZCUVN4TlFVRk5MRkZCUVZrc1IwRkJRU3hKUVVGQkxFTkJRVXNzVFVGQlV5eEhRVUZCTEVsQlFVRXNRMEZCU3l4WlFVRmhMRU5CUVVFc1MwRkJRU3hEUVVGQk8wRkJSV3hFTEVsQlFVRXNTVUZCU1N4RFFVRkRMRk5CUVZjc1JVRkJRVHRCUVVWa0xFMUJRVXNzU1VGQlFTeERRVUZCTEhkQ1FVRkJMRU5CUVhsQ0xFdEJRVXNzVFVGQlRTeERRVUZCTEVOQlFVRTdRVUZEZWtNc1RVRkJRU3hQUVVGUExFbEJRVXNzUTBGQlFTeGhRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTmtPMEZCUjBFc1NVRkJRU3hKUVVGSkxHRkJRV0VzVTBGQlZ5eEZRVUZCTzBGQlF6RkNMRTFCUVVFc1NVRkJTU3hMUVVGTExGZEJRV0VzUlVGQlFUdEJRVU53UWl4UlFVRlhMRXRCUVVFc1RVRkJRU3hKUVVGQkxFbEJRVkVzUzBGQlN5eFhRVUZoTEVWQlFVRTdRVUZEYmtNc1ZVRkJRU3hKUVVGSkxFbEJRVk1zUzBGQlFTeEhRVUZCTEVsQlFVOHNVVUZCVXl4RFFVRkJMRWxCUVVFc1EwRkJRU3hMUVVGVkxGVkJRVlVzU1VGQlR5eERRVUZCTEVWQlFVRTdRVUZEZEVRc1dVRkJRU3hKUVVGQkxFTkJRVXNzZVVKQlFYbENMRkZCUVZFc1EwRkJRU3hEUVVGQk8wRkJRM1JETEZsQlFVRXNUVUZCUVR0QlFVRkJMRmRCUTBZN1FVRkJRU3hUUVVOR08wRkJRVUVzVDBGRFN5eE5RVUZCTzBGQlEwd3NVVUZCUVN4SlFVRkJMRU5CUVVzc2VVSkJRWGxDTEZGQlFWRXNRMEZCUVN4RFFVRkJPMEZCUVVFc1QwRkRlRU03UVVGQlFTeExRVU5HTzBGQlJVRXNTVUZCUVN4UFFVRlBMRWxCUVVzc1EwRkJRU3hoUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU5rTzBGQlFVRXNSVUZMVHl4cFFrRkJhVUlzVVVGQmIwSXNSVUZCUVR0QlFVTXhReXhKUVVGQkxFbEJRVUVzUTBGQlN5eFRRVUZUTEdGQlFXZENMRWRCUVVFc1VVRkJRU3hEUVVGQk8wRkJRemxDTEVsQlFVc3NTVUZCUVN4RFFVRkJMSGRDUVVGQkxFTkJRWGxDTEV0QlFVc3NUVUZCVHl4RFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVNMVF6dEJRVUZCTEVWQlJVOHNVMEZCVXl4TFFVRnJReXhGUVVGQk8wRkJRMmhFTEVsQlFVRXNTVUZCUVN4RFFVRkxMRmRCUVdNc1IwRkJRU3hMUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU55UWp0QlFVRkJMRVZCUlZFc2VVSkJRWGxDTEV0QlFXVXNSVUZCUVR0QlFVTTVReXhKUVVGQkxFbEJRVUVzUTBGQlN5eGpRVUZqTEV0QlFVMHNSVUZCUVN4RFFVRkJPMEZCUTNwQ0xFbEJRVUVzU1VGQlFTeERRVUZMTEZOQlFXRXNTVUZCUVN4RFFVRkJMRU5CUVVFN1FVRkZiRUlzU1VGQlNTeEpRVUZCTEVsQlFVRXNRMEZCU3l4VFFVRlRMR0ZCUVdVc1JVRkJRVHRCUVVNdlFpeE5RVUZYTEV0QlFVRXNUVUZCUVN4SlFVRkJMRWxCUVZFc1NVRkJTeXhEUVVGQkxGRkJRVUVzUTBGQlV5eGhRVUZsTEVWQlFVRTdRVUZET1VNc1VVRkJTeXhKUVVGQkxFTkJRVUVzWVVGQlFTeERRVUZqTEVsQlFVa3NTVUZCU1N4RFFVRkJMRU5CUVVFN1FVRkJRU3hQUVVNM1FqdEJRVUZCTEV0QlEwWTdRVUZGUVN4SlFVRkJMRWxCUVVrc1MwRkJTeXhYUVVGaExFVkJRVUU3UVVGRGNFSXNUVUZCVnl4TFFVRkJMRTFCUVVFc1NVRkJRU3hKUVVGUkxFdEJRVXNzVjBGQllTeEZRVUZCTzBGQlEyNURMRkZCUVVFc1NVRkJTU3hUUVVGVExFZEJRVXNzUlVGQlFUdEJRVU5vUWl4VlFVRkJMRWxCUVVFc1EwRkJTeXh4UWtGQmNVSXNTMEZCU3l4RFFVRkJMRU5CUVVFN1FVRkRMMElzVlVGQlFTeE5RVUZCTzBGQlFVRXNVMEZEU3l4TlFVRkJPMEZCUTB3c1ZVRkJRU3hOUVVGTkxGRkJRVkVzUzBGQlRTeERRVUZCTEVsQlFVRXNRMEZCUVN4RFFVRkJPMEZCUTNCQ0xGVkJRVUVzU1VGQlNTeExRVUZQTEVWQlFVRTdRVUZEVkN4WlFVRkJMRWxCUVVFc1EwRkJTeXh4UWtGQmNVSXNTMEZCU3l4RFFVRkJMRU5CUVVFN1FVRkJRU3hYUVVOcVF6dEJRVUZCTEZOQlEwWTdRVUZCUVN4UFFVTkdPMEZCUVVFc1MwRkRSanRCUVVGQkxFZEJRMFk3UVVGQlFTeEZRVVZSTEhGQ1FVRnhRaXhMUVVGblFpeEZRVUZCTzBGQlF6TkRMRWxCUVVFc1kwRkJRU3hEUVVGbExGTkJRVmtzUjBGQlFTeERRVUZCTEVOQlFVRTdRVUZGTTBJc1NVRkJRU3hOUVVGTkxHZENRVUZuUWl4UFFVRlBMRXRCUVVFc1MwRkJWU3hSUVVGWExFZEJRVUVzYTBKQlFVRXNRMEZCYlVJc1MwRkJTeXhEUVVGSkxFZEJRVUVzUzBGQlFTeERRVUZCTzBGQlJUbEZMRWxCUVUwc1RVRkJRU3hQUVVGQkxFZEJRVlVzWVVGQll5eERRVUZCTEZGQlFVRXNRMEZCVXl4alFVRmpMRU5CUVVFc1EwRkJRVHRCUVVOeVJDeEpRVUZCTEVsQlFVa3NRMEZCUXl4UFFVRlRMRVZCUVVFN1FVRkRXaXhOUVVGQkxFOUJRVUU3UVVGQlFTeExRVU5HTzBGQlJVRXNTVUZCUVN4TFFVRkJMRTFCUVZjc1UwRkJVeXhQUVVGVExFVkJRVUU3UVVGRE0wSXNUVUZCUVN4TlFVRk5MRWRCUVVjc1NVRkJRU3hGUVVGTkxFbEJRVTBzU1VGQlJTeEpRVUZKTEVOQlFVa3NSMEZCUVN4TFFVRkJMRU5CUVVFN1FVRkRMMElzVFVGQlRTeE5RVUZCTEZsQlFVRXNSMEZCWlN4UlFVRlJMRWxCUVZFc1NVRkJRU3hKUVVGQkxFTkJRVUU3UVVGRGNrTXNUVUZCU3l4SlFVRkJMRU5CUVVFc1lVRkJRU3hEUVVGakxFbEJRVWtzV1VGQldTeERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTnlRenRCUVVGQkxFZEJRMFk3UVVGQlFTeEZRVVZSTEdkQ1FVRnRRaXhIUVVGQk8wRkJRM3BDTEVsQlFVc3NTVUZCUVN4RFFVRkJMRmxCUVVFc1EwRkJZU3h4UWtGQmNVSXNUVUZCVFR0QlFVTXpReXhOUVVGQkxFMUJRVTBzVTBGQldTeEhRVUZCTEZWQlFVRXNRMEZCVnl4WlFVRmhMRU5CUVVFc1NVRkJRU3hEUVVGTExGbEJRVmtzUTBGQlFTeERRVUZCTzBGQlJUTkVMRTFCUVVFc1RVRkJUU3hIUVVGTkxFZEJRVUVzVTBGQlFTeERRVUZWTEdkQ1FVRnBRaXhEUVVGQkxFTkJRVU1zVlVGQlZTeFJRVUZoTEV0QlFVRTdRVUZETjBRc1VVRkJUU3hOUVVGQkxFbEJRVUVzUjBGQlR5eExRVUZMTEZGQlFWTXNSVUZCUVN4RFFVRkJPMEZCUXpOQ0xGRkJRVTBzVFVGQlFTeFZRVUZCTEVkQlFXRXNTVUZCU3l4RFFVRkJMRWRCUVVFc1EwRkJTU3hSUVVGUkxFTkJRVUVzUTBGQlFUdEJRVU53UXl4UlFVRk5MRTFCUVVFc1VVRkJRU3hIUVVGWExFbEJRVXNzUTBGQlFTeEhRVUZCTEVOQlFVa3NUVUZCVFN4RFFVRkJMRU5CUVVFN1FVRkRhRU1zVVVGQlRTeE5RVUZCTEZkQlFVRXNSMEZCWXl4SlFVRkxMRU5CUVVFc1IwRkJRU3hEUVVGSkxGbEJRVmtzUTBGQlFTeERRVUZCTzBGQlJYcERMRkZCUVVrc1NVRkJRU3hSUVVGQkxFTkJRVk1zUzBGQlZTeExRVUZCTEZGQlFVRXNRMEZCVXl4TFFVRlBMRVZCUVVFN1FVRkZja01zVlVGQlFTeEpRVUZKTEZWQlFWa3NSVUZCUVR0QlFVTmtMRmxCUVUwc1RVRkJRU3hSUVVGQkxFZEJRVmNzU1VGQlNTeG5Ra0ZCYVVJc1EwRkJRU3hGUVVGRkxFMUJRVTBzVVVGQlZTeEZRVUZCTEV0QlFVRXNSVUZCVHl4UlFVRlRMRU5CUVVFc1NVRkJRU3hGUVVGTkxFTkJRVUVzUTBGQlFUdEJRVU01UlN4WlFVRkxMRWxCUVVFc1EwRkJRU3gxUWtGQlFTeERRVUYzUWl4VlFVRlZMRWxCUVVrc1EwRkJRU3hEUVVGQk8wRkJRVUVzY1VKQlEyeERMRkZCUVZVc1JVRkJRVHRCUVVOdVFpeFpRVUZOTEUxQlFVRXNVVUZCUVN4SFFVRlhMRWxCUVVrc1owSkJRV2xDTEVOQlFVRXNSVUZCUlN4TlFVRk5MRTFCUVZFc1JVRkJRU3hMUVVGQkxFVkJRVThzVVVGQlV5eERRVUZCTEVWQlFVRXNSVUZCU1N4RFFVRkJMRU5CUVVFN1FVRkRNVVVzV1VGQlN5eEpRVUZCTEVOQlFVRXNkVUpCUVVFc1EwRkJkMElzVlVGQlZTeEpRVUZKTEVOQlFVRXNRMEZCUVR0QlFVRkJMRmRCUXpkRE8wRkJRVUVzVTBGRFJqdEJRVVZCTEZGQlFVRXNTVUZCU1N4UlFVRlRMRU5CUVVFc1VVRkJRU3hMUVVGaExGRkJRVk1zUTBGQlFTeFJRVUZCTEVsQlFWa3NWMEZCWVN4RlFVRkJPMEZCUXpGRUxGVkJRVTBzVFVGQlFTeFJRVUZCTEVkQlFWY3NTVUZCU1N4blFrRkJhVUlzUTBGQlFTeEZRVUZGTEUxQlFVMHNXVUZCWXl4RlFVRkJMRXRCUVVFc1JVRkJUeXhSUVVGVExFTkJRVUVzVVVGQlFTeEZRVUZWTEVOQlFVRXNRMEZCUVR0QlFVTjBSaXhWUVVGTExFbEJRVUVzUTBGQlFTeDFRa0ZCUVN4RFFVRjNRaXhWUVVGVkxFbEJRVWtzUTBGQlFTeERRVUZCTzBGQlFVRXNVMEZETjBNN1FVRkJRU3hQUVVORUxFTkJRVUVzUTBGQlFUdEJRVVZFTEUxQlFVOHNUMEZCUVN4TlFVRk5MRWxCUVVrc1YwRkJXU3hGUVVGQkxFTkJRVUU3UVVGQlFTeExRVU01UWl4RFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOSU8wRkJRMFk3T3pzN0luMD1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoi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
@@ -0,0 +1,71 @@
1
+ import { sceneGraph } from '../core/sceneGraph/index.js';
2
+ import { isVariableValueEqual } from './utils.js';
3
+
4
+ class VariableValueRecorder {
5
+ constructor() {
6
+ this._values = /* @__PURE__ */ new Map();
7
+ }
8
+ recordCurrentDependencyValuesForSceneObject(sceneObject) {
9
+ this.clearValues();
10
+ if (!sceneObject.variableDependency) {
11
+ return;
12
+ }
13
+ for (const variableName of sceneObject.variableDependency.getNames()) {
14
+ const variable = sceneGraph.lookupVariable(variableName, sceneObject);
15
+ if (variable) {
16
+ this._values.set(variable.state.name, variable.getValue());
17
+ }
18
+ }
19
+ }
20
+ cloneAndRecordCurrentValuesForSceneObject(sceneObject) {
21
+ const clone = new VariableValueRecorder();
22
+ clone.recordCurrentDependencyValuesForSceneObject(sceneObject);
23
+ return clone;
24
+ }
25
+ clearValues() {
26
+ this._values.clear();
27
+ }
28
+ hasValues() {
29
+ return !!this._values;
30
+ }
31
+ recordCurrentValue(variable) {
32
+ this._values.set(variable.state.name, variable.getValue());
33
+ }
34
+ hasRecordedValue(variable) {
35
+ return this._values.has(variable.state.name);
36
+ }
37
+ hasValueChanged(variable) {
38
+ if (this._values.has(variable.state.name)) {
39
+ const value = this._values.get(variable.state.name);
40
+ if (!isVariableValueEqual(value, variable.getValue())) {
41
+ return true;
42
+ }
43
+ }
44
+ return false;
45
+ }
46
+ hasDependenciesChanged(sceneObject) {
47
+ if (!this._values) {
48
+ return false;
49
+ }
50
+ if (!sceneObject.variableDependency) {
51
+ return false;
52
+ }
53
+ for (const variableName of sceneObject.variableDependency.getNames()) {
54
+ const variable = sceneGraph.lookupVariable(variableName, sceneObject);
55
+ if (!variable) {
56
+ continue;
57
+ }
58
+ const name = variable.state.name;
59
+ if (variable && this._values.has(name)) {
60
+ const value = this._values.get(name);
61
+ if (!isVariableValueEqual(value, variable.getValue())) {
62
+ return true;
63
+ }
64
+ }
65
+ }
66
+ return false;
67
+ }
68
+ }
69
+
70
+ export { VariableValueRecorder };
71
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFyaWFibGVWYWx1ZVJlY29yZGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi92YXJpYWJsZXMvVmFyaWFibGVWYWx1ZVJlY29yZGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNjZW5lR3JhcGggfSBmcm9tICcuLi9jb3JlL3NjZW5lR3JhcGgvaW5kZXguanMnO1xuaW1wb3J0IHsgaXNWYXJpYWJsZVZhbHVlRXF1YWwgfSBmcm9tICcuL3V0aWxzLmpzJztcblxuY2xhc3MgVmFyaWFibGVWYWx1ZVJlY29yZGVyIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fdmFsdWVzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgfVxuICByZWNvcmRDdXJyZW50RGVwZW5kZW5jeVZhbHVlc0ZvclNjZW5lT2JqZWN0KHNjZW5lT2JqZWN0KSB7XG4gICAgdGhpcy5jbGVhclZhbHVlcygpO1xuICAgIGlmICghc2NlbmVPYmplY3QudmFyaWFibGVEZXBlbmRlbmN5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoY29uc3QgdmFyaWFibGVOYW1lIG9mIHNjZW5lT2JqZWN0LnZhcmlhYmxlRGVwZW5kZW5jeS5nZXROYW1lcygpKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZSA9IHNjZW5lR3JhcGgubG9va3VwVmFyaWFibGUodmFyaWFibGVOYW1lLCBzY2VuZU9iamVjdCk7XG4gICAgICBpZiAodmFyaWFibGUpIHtcbiAgICAgICAgdGhpcy5fdmFsdWVzLnNldCh2YXJpYWJsZS5zdGF0ZS5uYW1lLCB2YXJpYWJsZS5nZXRWYWx1ZSgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY2xvbmVBbmRSZWNvcmRDdXJyZW50VmFsdWVzRm9yU2NlbmVPYmplY3Qoc2NlbmVPYmplY3QpIHtcbiAgICBjb25zdCBjbG9uZSA9IG5ldyBWYXJpYWJsZVZhbHVlUmVjb3JkZXIoKTtcbiAgICBjbG9uZS5yZWNvcmRDdXJyZW50RGVwZW5kZW5jeVZhbHVlc0ZvclNjZW5lT2JqZWN0KHNjZW5lT2JqZWN0KTtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH1cbiAgY2xlYXJWYWx1ZXMoKSB7XG4gICAgdGhpcy5fdmFsdWVzLmNsZWFyKCk7XG4gIH1cbiAgaGFzVmFsdWVzKCkge1xuICAgIHJldHVybiAhIXRoaXMuX3ZhbHVlcztcbiAgfVxuICByZWNvcmRDdXJyZW50VmFsdWUodmFyaWFibGUpIHtcbiAgICB0aGlzLl92YWx1ZXMuc2V0KHZhcmlhYmxlLnN0YXRlLm5hbWUsIHZhcmlhYmxlLmdldFZhbHVlKCkpO1xuICB9XG4gIGhhc1JlY29yZGVkVmFsdWUodmFyaWFibGUpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVzLmhhcyh2YXJpYWJsZS5zdGF0ZS5uYW1lKTtcbiAgfVxuICBoYXNWYWx1ZUNoYW5nZWQodmFyaWFibGUpIHtcbiAgICBpZiAodGhpcy5fdmFsdWVzLmhhcyh2YXJpYWJsZS5zdGF0ZS5uYW1lKSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLl92YWx1ZXMuZ2V0KHZhcmlhYmxlLnN0YXRlLm5hbWUpO1xuICAgICAgaWYgKCFpc1ZhcmlhYmxlVmFsdWVFcXVhbCh2YWx1ZSwgdmFyaWFibGUuZ2V0VmFsdWUoKSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBoYXNEZXBlbmRlbmNpZXNDaGFuZ2VkKHNjZW5lT2JqZWN0KSB7XG4gICAgaWYgKCF0aGlzLl92YWx1ZXMpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCFzY2VuZU9iamVjdC52YXJpYWJsZURlcGVuZGVuY3kpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB2YXJpYWJsZU5hbWUgb2Ygc2NlbmVPYmplY3QudmFyaWFibGVEZXBlbmRlbmN5LmdldE5hbWVzKCkpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlID0gc2NlbmVHcmFwaC5sb29rdXBWYXJpYWJsZSh2YXJpYWJsZU5hbWUsIHNjZW5lT2JqZWN0KTtcbiAgICAgIGlmICghdmFyaWFibGUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBuYW1lID0gdmFyaWFibGUuc3RhdGUubmFtZTtcbiAgICAgIGlmICh2YXJpYWJsZSAmJiB0aGlzLl92YWx1ZXMuaGFzKG5hbWUpKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5fdmFsdWVzLmdldChuYW1lKTtcbiAgICAgICAgaWYgKCFpc1ZhcmlhYmxlVmFsdWVFcXVhbCh2YWx1ZSwgdmFyaWFibGUuZ2V0VmFsdWUoKSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IHsgVmFyaWFibGVWYWx1ZVJlY29yZGVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVZtRnlhV0ZpYkdWV1lXeDFaVkpsWTI5eVpHVnlMbXB6SWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOXpjbU12ZG1GeWFXRmliR1Z6TDFaaGNtbGhZbXhsVm1Gc2RXVlNaV052Y21SbGNpNTBjeUpkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZXlCelkyVnVaVWR5WVhCb0lIMGdabkp2YlNBbkxpNHZZMjl5WlM5elkyVnVaVWR5WVhCb0p6dGNibWx0Y0c5eWRDQjdJRk5qWlc1bFQySnFaV04wSUgwZ1puSnZiU0FuTGk0dlkyOXlaUzkwZVhCbGN5YzdYRzVwYlhCdmNuUWdleUJUWTJWdVpWWmhjbWxoWW14bExDQldZWEpwWVdKc1pWWmhiSFZsSUgwZ1puSnZiU0FuTGk5MGVYQmxjeWM3WEc1cGJYQnZjblFnZXlCcGMxWmhjbWxoWW14bFZtRnNkV1ZGY1hWaGJDQjlJR1p5YjIwZ0p5NHZkWFJwYkhNbk8xeHVYRzR2S2lwY2JpQXFJRlZ6WldaMWJDQm1iM0lnY21WdFpXMWlaWEpwYm1jZ2RtRnlhV0ZpYkdVZ2RtRnNkV1Z6SUhSdklHdHViM2NnYVdZZ2RHaGxlU0JvWVhabElHTm9ZVzVuWldSY2JpQXFLaTljYm1WNGNHOXlkQ0JqYkdGemN5QldZWEpwWVdKc1pWWmhiSFZsVW1WamIzSmtaWElnZTF4dUlDQndjbWwyWVhSbElGOTJZV3gxWlhNZ1BTQnVaWGNnVFdGd1BITjBjbWx1Wnl3Z1ZtRnlhV0ZpYkdWV1lXeDFaU0I4SUhWdVpHVm1hVzVsWkNCOElHNTFiR3crS0NrN1hHNWNiaUFnY0hWaWJHbGpJSEpsWTI5eVpFTjFjbkpsYm5SRVpYQmxibVJsYm1ONVZtRnNkV1Z6Um05eVUyTmxibVZQWW1wbFkzUW9jMk5sYm1WUFltcGxZM1E2SUZOalpXNWxUMkpxWldOMEtTQjdYRzRnSUNBZ2RHaHBjeTVqYkdWaGNsWmhiSFZsY3lncE8xeHVYRzRnSUNBZ2FXWWdLQ0Z6WTJWdVpVOWlhbVZqZEM1MllYSnBZV0pzWlVSbGNHVnVaR1Z1WTNrcElIdGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUhaaGNtbGhZbXhsVG1GdFpTQnZaaUJ6WTJWdVpVOWlhbVZqZEM1MllYSnBZV0pzWlVSbGNHVnVaR1Z1WTNrdVoyVjBUbUZ0WlhNb0tTa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2RtRnlhV0ZpYkdVZ1BTQnpZMlZ1WlVkeVlYQm9MbXh2YjJ0MWNGWmhjbWxoWW14bEtIWmhjbWxoWW14bFRtRnRaU3dnYzJObGJtVlBZbXBsWTNRcE8xeHVJQ0FnSUNBZ2FXWWdLSFpoY21saFlteGxLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVYM1poYkhWbGN5NXpaWFFvZG1GeWFXRmliR1V1YzNSaGRHVXVibUZ0WlN3Z2RtRnlhV0ZpYkdVdVoyVjBWbUZzZFdVb0tTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHTnNiMjVsUVc1a1VtVmpiM0prUTNWeWNtVnVkRlpoYkhWbGMwWnZjbE5qWlc1bFQySnFaV04wS0hOalpXNWxUMkpxWldOME9pQlRZMlZ1WlU5aWFtVmpkQ2tnZTF4dUlDQWdJR052Ym5OMElHTnNiMjVsSUQwZ2JtVjNJRlpoY21saFlteGxWbUZzZFdWU1pXTnZjbVJsY2lncE8xeHVJQ0FnSUdOc2IyNWxMbkpsWTI5eVpFTjFjbkpsYm5SRVpYQmxibVJsYm1ONVZtRnNkV1Z6Um05eVUyTmxibVZQWW1wbFkzUW9jMk5sYm1WUFltcGxZM1FwTzF4dUlDQWdJSEpsZEhWeWJpQmpiRzl1WlR0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCamJHVmhjbFpoYkhWbGN5Z3BJSHRjYmlBZ0lDQjBhR2x6TGw5MllXeDFaWE11WTJ4bFlYSW9LVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJvWVhOV1lXeDFaWE1vS1RvZ1ltOXZiR1ZoYmlCN1hHNGdJQ0FnY21WMGRYSnVJQ0VoZEdocGN5NWZkbUZzZFdWek8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklISmxZMjl5WkVOMWNuSmxiblJXWVd4MVpTaDJZWEpwWVdKc1pUb2dVMk5sYm1WV1lYSnBZV0pzWlNrZ2UxeHVJQ0FnSUhSb2FYTXVYM1poYkhWbGN5NXpaWFFvZG1GeWFXRmliR1V1YzNSaGRHVXVibUZ0WlN3Z2RtRnlhV0ZpYkdVdVoyVjBWbUZzZFdVb0tTazdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdhR0Z6VW1WamIzSmtaV1JXWVd4MVpTaDJZWEpwWVdKc1pUb2dVMk5sYm1WV1lYSnBZV0pzWlNrNklHSnZiMnhsWVc0Z2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxsOTJZV3gxWlhNdWFHRnpLSFpoY21saFlteGxMbk4wWVhSbExtNWhiV1VwTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdoaGMxWmhiSFZsUTJoaGJtZGxaQ2gyWVhKcFlXSnNaVG9nVTJObGJtVldZWEpwWVdKc1pTazZJR0p2YjJ4bFlXNGdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxsOTJZV3gxWlhNdWFHRnpLSFpoY21saFlteGxMbk4wWVhSbExtNWhiV1VwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0IyWVd4MVpTQTlJSFJvYVhNdVgzWmhiSFZsY3k1blpYUW9kbUZ5YVdGaWJHVXVjM1JoZEdVdWJtRnRaU2s3WEc0Z0lDQWdJQ0JwWmlBb0lXbHpWbUZ5YVdGaWJHVldZV3gxWlVWeGRXRnNLSFpoYkhWbExDQjJZWEpwWVdKc1pTNW5aWFJXWVd4MVpTZ3BLU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdhR0Z6UkdWd1pXNWtaVzVqYVdWelEyaGhibWRsWkNoelkyVnVaVTlpYW1WamREb2dVMk5sYm1WUFltcGxZM1FwT2lCaWIyOXNaV0Z1SUh0Y2JpQWdJQ0JwWmlBb0lYUm9hWE11WDNaaGJIVmxjeWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDZ2hjMk5sYm1WUFltcGxZM1F1ZG1GeWFXRmliR1ZFWlhCbGJtUmxibU41S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQjJZWEpwWVdKc1pVNWhiV1VnYjJZZ2MyTmxibVZQWW1wbFkzUXVkbUZ5YVdGaWJHVkVaWEJsYm1SbGJtTjVMbWRsZEU1aGJXVnpLQ2twSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSFpoY21saFlteGxJRDBnYzJObGJtVkhjbUZ3YUM1c2IyOXJkWEJXWVhKcFlXSnNaU2gyWVhKcFlXSnNaVTVoYldVc0lITmpaVzVsVDJKcVpXTjBLVHRjYmlBZ0lDQWdJR2xtSUNnaGRtRnlhV0ZpYkdVcElIdGNiaUFnSUNBZ0lDQWdZMjl1ZEdsdWRXVTdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR052Ym5OMElHNWhiV1VnUFNCMllYSnBZV0pzWlM1emRHRjBaUzV1WVcxbE8xeHVYRzRnSUNBZ0lDQnBaaUFvZG1GeWFXRmliR1VnSmlZZ2RHaHBjeTVmZG1Gc2RXVnpMbWhoY3lodVlXMWxLU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0IyWVd4MVpTQTlJSFJvYVhNdVgzWmhiSFZsY3k1blpYUW9ibUZ0WlNrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doYVhOV1lYSnBZV0pzWlZaaGJIVmxSWEYxWVd3b2RtRnNkV1VzSUhaaGNtbGhZbXhsTG1kbGRGWmhiSFZsS0NrcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSFJ5ZFdVN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUgxY2JuMWNiaUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3UVVGUlR5eE5RVUZOTEhGQ1FVRnpRaXhEUVVGQk8wRkJRVUVzUlVGQk5VSXNWMEZCUVN4SFFVRkJPMEZCUTB3c1NVRkJVU3hKUVVGQkxFTkJRVUVzVDBGQlFTeDFRa0ZCWXl4SFFVRTRReXhGUVVGQkxFTkJRVUU3UVVGQlFTeEhRVUZCTzBGQlFVRXNSVUZGTjBRc05FTkJRVFJETEZkQlFUQkNMRVZCUVVFN1FVRkRNMFVzU1VGQlFTeEpRVUZCTEVOQlFVc3NWMEZCV1N4RlFVRkJMRU5CUVVFN1FVRkZha0lzU1VGQlNTeEpRVUZCTEVOQlFVTXNXVUZCV1N4clFrRkJiMElzUlVGQlFUdEJRVU51UXl4TlFVRkJMRTlCUVVFN1FVRkJRU3hMUVVOR08wRkJSVUVzU1VGQlFTeExRVUZCTEUxQlFWY3NXVUZCWjBJc1NVRkJRU3hYUVVGQkxFTkJRVmtzYTBKQlFXMUNMRU5CUVVFc1VVRkJRU3hGUVVGWkxFVkJRVUU3UVVGRGNFVXNUVUZCUVN4TlFVRk5MRkZCUVZjc1IwRkJRU3hWUVVGQkxFTkJRVmNzWTBGQlpTeERRVUZCTEZsQlFVRXNSVUZCWXl4WFFVRlhMRU5CUVVFc1EwRkJRVHRCUVVOd1JTeE5RVUZCTEVsQlFVa3NVVUZCVlN4RlFVRkJPMEZCUTFvc1VVRkJRU3hKUVVGQkxFTkJRVXNzVVVGQlVTeEhRVUZKTEVOQlFVRXNVVUZCUVN4RFFVRlRMRTFCUVUwc1NVRkJUU3hGUVVGQkxGRkJRVUVzUTBGQlV5eFZRVUZWTEVOQlFVRXNRMEZCUVR0QlFVRkJMRTlCUXpORU8wRkJRVUVzUzBGRFJqdEJRVUZCTEVkQlEwWTdRVUZCUVN4RlFVVlBMREJEUVVFd1F5eFhRVUV3UWl4RlFVRkJPMEZCUTNwRkxFbEJRVTBzVFVGQlFTeExRVUZCTEVkQlFWRXNTVUZCU1N4eFFrRkJjMElzUlVGQlFTeERRVUZCTzBGQlEzaERMRWxCUVVFc1MwRkJRU3hEUVVGTkxEUkRRVUUwUXl4WFFVRlhMRU5CUVVFc1EwRkJRVHRCUVVNM1JDeEpRVUZQTEU5QlFVRXNTMEZCUVN4RFFVRkJPMEZCUVVFc1IwRkRWRHRCUVVGQkxFVkJSVThzVjBGQll5eEhRVUZCTzBGQlEyNUNMRWxCUVVFc1NVRkJRU3hEUVVGTExGRkJRVkVzUzBGQlRTeEZRVUZCTEVOQlFVRTdRVUZCUVN4SFFVTnlRanRCUVVGQkxFVkJSVThzVTBGQmNVSXNSMEZCUVR0QlFVTXhRaXhKUVVGUExFOUJRVUVzUTBGQlF5eERRVUZETEVsQlFVc3NRMEZCUVN4UFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOb1FqdEJRVUZCTEVWQlJVOHNiVUpCUVcxQ0xGRkJRWGxDTEVWQlFVRTdRVUZEYWtRc1NVRkJRU3hKUVVGQkxFTkJRVXNzVVVGQlVTeEhRVUZKTEVOQlFVRXNVVUZCUVN4RFFVRlRMRTFCUVUwc1NVRkJUU3hGUVVGQkxGRkJRVUVzUTBGQlV5eFZRVUZWTEVOQlFVRXNRMEZCUVR0QlFVRkJMRWRCUXpORU8wRkJRVUVzUlVGRlR5eHBRa0ZCYVVJc1VVRkJhME1zUlVGQlFUdEJRVU40UkN4SlFVRkJMRTlCUVU4c1NVRkJTeXhEUVVGQkxFOUJRVUVzUTBGQlVTeEhRVUZKTEVOQlFVRXNVVUZCUVN4RFFVRlRMRTFCUVUwc1NVRkJTU3hEUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU0zUXp0QlFVRkJMRVZCUlU4c1owSkJRV2RDTEZGQlFXdERMRVZCUVVFN1FVRkRka1FzU1VGQlFTeEpRVUZKTEV0QlFVc3NUMEZCVVN4RFFVRkJMRWRCUVVFc1EwRkJTU3hSUVVGVExFTkJRVUVzUzBGQlFTeERRVUZOTEVsQlFVa3NRMEZCUnl4RlFVRkJPMEZCUTNwRExFMUJRVUVzVFVGQlRTeFJRVUZSTEVsQlFVc3NRMEZCUVN4UFFVRkJMRU5CUVZFc1IwRkJTU3hEUVVGQkxGRkJRVUVzUTBGQlV5eE5RVUZOTEVsQlFVa3NRMEZCUVN4RFFVRkJPMEZCUTJ4RUxFMUJRVUVzU1VGQlNTeERRVUZETEc5Q1FVRnhRaXhEUVVGQkxFdEJRVUVzUlVGQlR5eFJRVUZUTEVOQlFVRXNVVUZCUVN4RlFVRlZMRU5CUVVjc1JVRkJRVHRCUVVOeVJDeFJRVUZQTEU5QlFVRXNTVUZCUVN4RFFVRkJPMEZCUVVFc1QwRkRWRHRCUVVGQkxFdEJRMFk3UVVGRlFTeEpRVUZQTEU5QlFVRXNTMEZCUVN4RFFVRkJPMEZCUVVFc1IwRkRWRHRCUVVGQkxFVkJSVThzZFVKQlFYVkNMRmRCUVcxRExFVkJRVUU3UVVGREwwUXNTVUZCU1N4SlFVRkJMRU5CUVVNc1MwRkJTeXhQUVVGVExFVkJRVUU3UVVGRGFrSXNUVUZCVHl4UFFVRkJMRXRCUVVFc1EwRkJRVHRCUVVGQkxFdEJRMVE3UVVGRlFTeEpRVUZKTEVsQlFVRXNRMEZCUXl4WlFVRlpMR3RDUVVGdlFpeEZRVUZCTzBGQlEyNURMRTFCUVU4c1QwRkJRU3hMUVVGQkxFTkJRVUU3UVVGQlFTeExRVU5VTzBGQlJVRXNTVUZCUVN4TFFVRkJMRTFCUVZjc1dVRkJaMElzU1VGQlFTeFhRVUZCTEVOQlFWa3NhMEpCUVcxQ0xFTkJRVUVzVVVGQlFTeEZRVUZaTEVWQlFVRTdRVUZEY0VVc1RVRkJRU3hOUVVGTkxGRkJRVmNzUjBGQlFTeFZRVUZCTEVOQlFWY3NZMEZCWlN4RFFVRkJMRmxCUVVFc1JVRkJZeXhYUVVGWExFTkJRVUVzUTBGQlFUdEJRVU53UlN4TlFVRkJMRWxCUVVrc1EwRkJReXhSUVVGVkxFVkJRVUU3UVVGRFlpeFJRVUZCTEZOQlFVRTdRVUZCUVN4UFFVTkdPMEZCUlVFc1RVRkJUU3hOUVVGQkxFbEJRVUVzUjBGQlR5eFRRVUZUTEV0QlFVMHNRMEZCUVN4SlFVRkJMRU5CUVVFN1FVRkZOVUlzVFVGQlFTeEpRVUZKTEZGQlFWa3NTVUZCUVN4SlFVRkJMRU5CUVVzc1QwRkJVU3hEUVVGQkxFZEJRVUVzUTBGQlNTeEpRVUZKTEVOQlFVY3NSVUZCUVR0QlFVTjBReXhSUVVGQkxFMUJRVTBzUzBGQlVTeEhRVUZCTEVsQlFVRXNRMEZCU3l4UFFVRlJMRU5CUVVFc1IwRkJRU3hEUVVGSkxFbEJRVWtzUTBGQlFTeERRVUZCTzBGQlEyNURMRkZCUVVFc1NVRkJTU3hEUVVGRExHOUNRVUZ4UWl4RFFVRkJMRXRCUVVFc1JVRkJUeXhSUVVGVExFTkJRVUVzVVVGQlFTeEZRVUZWTEVOQlFVY3NSVUZCUVR0QlFVTnlSQ3hWUVVGUExFOUJRVUVzU1VGQlFTeERRVUZCTzBGQlFVRXNVMEZEVkR0QlFVRkJMRTlCUTBZN1FVRkJRU3hMUVVOR08wRkJSVUVzU1VGQlR5eFBRVUZCTEV0QlFVRXNRMEZCUVR0QlFVRkJMRWRCUTFRN1FVRkRSanM3T3pzaWZRPT1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFRTyxNQUFNLHFCQUFzQixDQUFBO0VBQTVCLFdBQUEsR0FBQTtBQUNHLElBQUEsSUFBQSxDQUFBLE9BQUEsdUJBQWMsR0FBOEMsRUFBQSxDQUFBO0FBQUEsR0FBQTtBQUU3RCxFQUFBLDJDQUFBLENBQTRDLFdBQTBCLEVBQUE7QUFDM0UsSUFBQSxJQUFBLENBQUssV0FBWSxFQUFBLENBQUE7QUFFYixJQUFBLElBQUEsQ0FBQyxZQUFZLGtCQUFvQixFQUFBO0FBQ25DLE1BQUEsT0FBQTtBQUFBLEtBQUE7QUFHRixJQUFBLEtBQUEsTUFBVyxZQUFnQixJQUFBLFdBQUEsQ0FBWSxrQkFBbUIsQ0FBQSxRQUFBLEVBQVksRUFBQTtBQUNwRSxNQUFBLE1BQU0sUUFBVyxHQUFBLFVBQUEsQ0FBVyxjQUFlLENBQUEsWUFBQSxFQUFjLFdBQVcsQ0FBQSxDQUFBO0FBQ3BFLE1BQUEsSUFBSSxR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
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import { AdHocFilterRenderer } from './AdHocFilterRenderer.js';
3
+ import { Button } from '@grafana/ui';
4
+
5
+ function AdHocFilterBuilder({ model, addFilterButtonText }) {
6
+ const { _wip } = model.useState();
7
+ if (!_wip) {
8
+ return /* @__PURE__ */ React.createElement(Button, {
9
+ variant: "secondary",
10
+ icon: "plus",
11
+ title: "Add filter",
12
+ "aria-label": "Add filter",
13
+ "data-testid": `AdHocFilter-add`,
14
+ onClick: () => model._addWip()
15
+ }, addFilterButtonText);
16
+ }
17
+ return /* @__PURE__ */ React.createElement(AdHocFilterRenderer, {
18
+ filter: _wip,
19
+ model
20
+ });
21
+ }
22
+
23
+ export { AdHocFilterBuilder };
24
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRIb2NGaWx0ZXJCdWlsZGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi92YXJpYWJsZXMvYWRob2MvQWRIb2NGaWx0ZXJCdWlsZGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBBZEhvY0ZpbHRlclJlbmRlcmVyIH0gZnJvbSAnLi9BZEhvY0ZpbHRlclJlbmRlcmVyLmpzJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJ0BncmFmYW5hL3VpJztcblxuZnVuY3Rpb24gQWRIb2NGaWx0ZXJCdWlsZGVyKHsgbW9kZWwsIGFkZEZpbHRlckJ1dHRvblRleHQgfSkge1xuICBjb25zdCB7IF93aXAgfSA9IG1vZGVsLnVzZVN0YXRlKCk7XG4gIGlmICghX3dpcCkge1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8gUmVhY3QuY3JlYXRlRWxlbWVudChCdXR0b24sIHtcbiAgICAgIHZhcmlhbnQ6IFwic2Vjb25kYXJ5XCIsXG4gICAgICBpY29uOiBcInBsdXNcIixcbiAgICAgIHRpdGxlOiBcIkFkZCBmaWx0ZXJcIixcbiAgICAgIFwiYXJpYS1sYWJlbFwiOiBcIkFkZCBmaWx0ZXJcIixcbiAgICAgIFwiZGF0YS10ZXN0aWRcIjogYEFkSG9jRmlsdGVyLWFkZGAsXG4gICAgICBvbkNsaWNrOiAoKSA9PiBtb2RlbC5fYWRkV2lwKClcbiAgICB9LCBhZGRGaWx0ZXJCdXR0b25UZXh0KTtcbiAgfVxuICByZXR1cm4gLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQWRIb2NGaWx0ZXJSZW5kZXJlciwge1xuICAgIGZpbHRlcjogX3dpcCxcbiAgICBtb2RlbFxuICB9KTtcbn1cblxuZXhwb3J0IHsgQWRIb2NGaWx0ZXJCdWlsZGVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVFXUkliMk5HYVd4MFpYSkNkV2xzWkdWeUxtcHpJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOXpjbU12ZG1GeWFXRmliR1Z6TDJGa2FHOWpMMEZrU0c5alJtbHNkR1Z5UW5WcGJHUmxjaTUwYzNnaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElGSmxZV04wSUdaeWIyMGdKM0psWVdOMEp6dGNibHh1YVcxd2IzSjBJSHNnUVdSSWIyTkdhV3gwWlhKU1pXNWtaWEpsY2lCOUlHWnliMjBnSnk0dlFXUkliMk5HYVd4MFpYSlNaVzVrWlhKbGNpYzdYRzVwYlhCdmNuUWdleUJCWkVodlkwWnBiSFJsY25OV1lYSnBZV0pzWlNCOUlHWnliMjBnSnk0dlFXUkliMk5HYVd4MFpYSnpWbUZ5YVdGaWJHVW5PMXh1YVcxd2IzSjBJSHNnUW5WMGRHOXVJSDBnWm5KdmJTQW5RR2R5WVdaaGJtRXZkV2tuTzF4dVhHNXBiblJsY21aaFkyVWdVSEp2Y0hNZ2UxeHVJQ0J0YjJSbGJEb2dRV1JJYjJOR2FXeDBaWEp6Vm1GeWFXRmliR1U3WEc0Z0lHRmtaRVpwYkhSbGNrSjFkSFJ2YmxSbGVIUS9PaUJ6ZEhKcGJtYzdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCQlpFaHZZMFpwYkhSbGNrSjFhV3hrWlhJb2V5QnRiMlJsYkN3Z1lXUmtSbWxzZEdWeVFuVjBkRzl1VkdWNGRDQjlPaUJRY205d2N5a2dlMXh1SUNCamIyNXpkQ0I3SUY5M2FYQWdmU0E5SUcxdlpHVnNMblZ6WlZOMFlYUmxLQ2s3WEc1Y2JpQWdhV1lnS0NGZmQybHdLU0I3WEc0Z0lDQWdjbVYwZFhKdUlDaGNiaUFnSUNBZ0lEeENkWFIwYjI1Y2JpQWdJQ0FnSUNBZ2RtRnlhV0Z1ZEQxY0luTmxZMjl1WkdGeWVWd2lYRzRnSUNBZ0lDQWdJR2xqYjI0OVhDSndiSFZ6WENKY2JpQWdJQ0FnSUNBZ2RHbDBiR1U5ZXlkQlpHUWdabWxzZEdWeUozMWNiaUFnSUNBZ0lDQWdZWEpwWVMxc1lXSmxiRDFjSWtGa1pDQm1hV3gwWlhKY0lseHVJQ0FnSUNBZ0lDQmtZWFJoTFhSbGMzUnBaRDE3WUVGa1NHOWpSbWxzZEdWeUxXRmtaR0I5WEc0Z0lDQWdJQ0FnSUc5dVEyeHBZMnM5ZXlncElEMCtJRzF2WkdWc0xsOWhaR1JYYVhBb0tYMWNiaUFnSUNBZ0lENWNiaUFnSUNBZ0lDQWdlMkZrWkVacGJIUmxja0oxZEhSdmJsUmxlSFI5WEc0Z0lDQWdJQ0E4TDBKMWRIUnZiajVjYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnY21WMGRYSnVJRHhCWkVodlkwWnBiSFJsY2xKbGJtUmxjbVZ5SUdacGJIUmxjajE3WDNkcGNIMGdiVzlrWld3OWUyMXZaR1ZzZlNBdlBqdGNibjFjYmlKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN08wRkJWMDhzVTBGQlV5eHJRa0ZCYlVJc1EwRkJRU3hGUVVGRkxFdEJRVThzUlVGQlFTeHRRa0ZCUVN4RlFVRTRRaXhGUVVGQk8wRkJRM2hGTEVWQlFVRXNUVUZCVFN4RlFVRkZMRWxCUVVFc1JVRkJVeXhIUVVGQkxFdEJRVUVzUTBGQlRTeFJRVUZUTEVWQlFVRXNRMEZCUVR0QlFVVm9ReXhGUVVGQkxFbEJRVWtzUTBGQlF5eEpRVUZOTEVWQlFVRTdRVUZEVkN4SlFVRkJMSFZDUVVOSExFdEJRVUVzUTBGQlFTeGhRVUZCTEVOQlFVRXNUVUZCUVN4RlFVRkJPMEZCUVVFc1RVRkRReXhQUVVGUkxFVkJRVUVzVjBGQlFUdEJRVUZCTEUxQlExSXNTVUZCU3l4RlFVRkJMRTFCUVVFN1FVRkJRU3hOUVVOTUxFdEJRVThzUlVGQlFTeFpRVUZCTzBGQlFVRXNUVUZEVUN4WlFVRlhMRVZCUVVFc1dVRkJRVHRCUVVGQkxFMUJRMWdzWVVGQllTeEZRVUZCTEVOQlFVRXNaVUZCUVN4RFFVRkJPMEZCUVVFc1RVRkRZaXhQUVVGQkxFVkJRVk1zVFVGQlRTeExRVUZCTEVOQlFVMHNUMEZCVVN4RlFVRkJPMEZCUVVFc1MwRkJRU3hGUVVVMVFpeHRRa0ZEU0N4RFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVWS08wRkJSVUVzUlVGQlFTeDFRa0ZCVVN4TFFVRkJMRU5CUVVFc1lVRkJRU3hEUVVGQkxHMUNRVUZCTEVWQlFVRTdRVUZCUVN4SlFVRnZRaXhOUVVGUkxFVkJRVUVzU1VGQlFUdEJRVUZCTEVsQlFVMHNTMEZCUVR0QlFVRkJMRWRCUVdNc1EwRkJRU3hEUVVGQk8wRkJRekZFT3pzN095SjlcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBV08sU0FBUyxrQkFBbUIsQ0FBQSxFQUFFLEtBQU8sRUFBQSxtQkFBQSxFQUE4QixFQUFBO0FBQ3hFLEVBQUEsTUFBTSxFQUFFLElBQUEsRUFBUyxHQUFBLEtBQUEsQ0FBTSxRQUFTLEVBQUEsQ0FBQTtBQUVoQyxFQUFBLElBQUksQ0FBQyxJQUFNLEVBQUE7QUFDVCxJQUNHLHVCQUFBLEtBQUEsQ0FBQSxjQUFBLE1BQUEsRUFBQTtNQUNDLE9BQVEsRUFBQSxXQUFBO01BQ1IsSUFBSyxFQUFBLE1BQUE7TUFDTCxLQUFPLEVBQUEsWUFBQTtNQUNQLFlBQVcsRUFBQSxZQUFBO01BQ1gsYUFBYSxFQUFBLENBQUEsZUFBQSxDQUFBO01BQ2IsT0FBUyxFQUFBLE1BQU0sTUFBTSxPQUFRLEVBQUE7QUFBQSxLQUFBLEVBRTVCLG1CQUNILENBQUEsQ0FBQTtBQUFBLEdBQUE7QUFJSixFQUFRLHVCQUFBLEtBQUEsQ0FBQSxjQUFBLG1CQUFBLEVBQUE7SUFBb0IsTUFBUSxFQUFBLElBQUE7QUFBTSxJQUFBLEtBQUE7R0FBYyxDQUFBLENBQUE7QUFDMUQ7Ozs7In0=