@grafana/scenes 6.8.0 → 6.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/esm/index.js +1 -1
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/package.json +2 -2
  8. package/dist/esm/components/layout/CSSGrid/SceneCSSGridItem.js +0 -33
  9. package/dist/esm/dist/esm/behaviors/CursorSync.js +0 -76
  10. package/dist/esm/dist/esm/behaviors/LiveNowTimer.js +0 -44
  11. package/dist/esm/dist/esm/behaviors/SceneQueryController.js +0 -14
  12. package/dist/esm/dist/esm/components/EmbeddedScene.js +0 -59
  13. package/dist/esm/dist/esm/components/NestedScene.js +0 -95
  14. package/dist/esm/dist/esm/components/SceneApp/SceneApp.js +0 -27
  15. package/dist/esm/dist/esm/components/SceneApp/SceneAppPage.js +0 -176
  16. package/dist/esm/dist/esm/components/SceneApp/SceneAppPageView.js +0 -104
  17. package/dist/esm/dist/esm/components/SceneApp/utils.js +0 -42
  18. package/dist/esm/dist/esm/components/SceneByFrameRepeater.js +0 -41
  19. package/dist/esm/dist/esm/components/SceneByVariableRepeater.js +0 -55
  20. package/dist/esm/dist/esm/components/SceneCanvasText.js +0 -32
  21. package/dist/esm/dist/esm/components/SceneControlsSpacer.js +0 -17
  22. package/dist/esm/dist/esm/components/SceneDebugger/DebugDetails.js +0 -82
  23. package/dist/esm/dist/esm/components/SceneDebugger/DebugTreeNode.js +0 -72
  24. package/dist/esm/dist/esm/components/SceneDebugger/SceneDebugger.js +0 -77
  25. package/dist/esm/dist/esm/components/SceneReactObject.js +0 -34
  26. package/dist/esm/dist/esm/components/SceneRefreshPicker.js +0 -205
  27. package/dist/esm/dist/esm/components/SceneTimePicker.js +0 -139
  28. package/dist/esm/dist/esm/components/SceneTimeRangeCompare.js +0 -240
  29. package/dist/esm/dist/esm/components/SceneToolbarButton.js +0 -33
  30. package/dist/esm/dist/esm/components/VizPanel/VizPanel.js +0 -406
  31. package/dist/esm/dist/esm/components/VizPanel/VizPanelExploreButton.js +0 -44
  32. package/dist/esm/dist/esm/components/VizPanel/VizPanelMenu.js +0 -59
  33. package/dist/esm/dist/esm/components/VizPanel/VizPanelRenderer.js +0 -285
  34. package/dist/esm/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +0 -45
  35. package/dist/esm/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +0 -72
  36. package/dist/esm/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +0 -11
  37. package/dist/esm/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
  38. package/dist/esm/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
  39. package/dist/esm/dist/esm/components/layout/LazyLoader.js +0 -103
  40. package/dist/esm/dist/esm/components/layout/SceneFlexLayout.js +0 -135
  41. package/dist/esm/dist/esm/components/layout/grid/SceneGridItem.js +0 -30
  42. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayout.js +0 -283
  43. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
  44. package/dist/esm/dist/esm/components/layout/grid/SceneGridRow.js +0 -190
  45. package/dist/esm/dist/esm/components/layout/grid/constants.js +0 -7
  46. package/dist/esm/dist/esm/components/layout/grid/utils.js +0 -36
  47. package/dist/esm/dist/esm/components/layout/split/SplitLayout.js +0 -17
  48. package/dist/esm/dist/esm/components/layout/split/SplitLayoutRenderer.js +0 -29
  49. package/dist/esm/dist/esm/components/layout/split/Splitter.js +0 -386
  50. package/dist/esm/dist/esm/core/SceneComponentWrapper.js +0 -57
  51. package/dist/esm/dist/esm/core/SceneDataNode.js +0 -43
  52. package/dist/esm/dist/esm/core/SceneObjectBase.js +0 -286
  53. package/dist/esm/dist/esm/core/SceneObjectRef.js +0 -32
  54. package/dist/esm/dist/esm/core/SceneTimeRange.js +0 -231
  55. package/dist/esm/dist/esm/core/events.js +0 -11
  56. package/dist/esm/dist/esm/core/sceneGraph/getTimeRange.js +0 -10
  57. package/dist/esm/dist/esm/core/sceneGraph/index.js +0 -25
  58. package/dist/esm/dist/esm/core/sceneGraph/sceneGraph.js +0 -178
  59. package/dist/esm/dist/esm/core/sceneGraph/utils.js +0 -64
  60. package/dist/esm/dist/esm/core/types.js +0 -15
  61. package/dist/esm/dist/esm/querying/DataLayersMerger.js +0 -46
  62. package/dist/esm/dist/esm/querying/ExtraQueryProvider.js +0 -6
  63. package/dist/esm/dist/esm/querying/RuntimeDataSource.js +0 -6
  64. package/dist/esm/dist/esm/querying/SceneDataLayerSet.js +0 -100
  65. package/dist/esm/dist/esm/querying/SceneQueryRunner.js +0 -468
  66. package/dist/esm/dist/esm/querying/extraQueryProcessingOperator.js +0 -46
  67. package/dist/esm/dist/esm/querying/getEnrichedDataRequest.js +0 -12
  68. package/dist/esm/dist/esm/querying/layers/SceneDataLayerBase.js +0 -112
  69. package/dist/esm/dist/esm/querying/layers/SceneDataLayerControls.js +0 -51
  70. package/dist/esm/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
  71. package/dist/esm/dist/esm/querying/layers/annotations/filterAnnotations.js +0 -85
  72. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +0 -121
  73. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
  74. package/dist/esm/dist/esm/querying/layers/annotations/utils.js +0 -77
  75. package/dist/esm/dist/esm/querying/registerQueryWithController.js +0 -41
  76. package/dist/esm/dist/esm/services/SceneObjectUrlSyncConfig.js +0 -30
  77. package/dist/esm/dist/esm/services/UniqueUrlKeyMapper.js +0 -45
  78. package/dist/esm/dist/esm/services/UrlSyncManager.js +0 -167
  79. package/dist/esm/dist/esm/services/useUrlSync.js +0 -29
  80. package/dist/esm/dist/esm/services/utils.js +0 -71
  81. package/dist/esm/dist/esm/utils/ControlsLabel.js +0 -107
  82. package/dist/esm/dist/esm/utils/LoadingIndicator.js +0 -19
  83. package/dist/esm/dist/esm/utils/SafeSerializableSceneObject.js +0 -39
  84. package/dist/esm/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
  85. package/dist/esm/dist/esm/utils/date.js +0 -15
  86. package/dist/esm/dist/esm/utils/evaluateTimeRange.js +0 -16
  87. package/dist/esm/dist/esm/utils/explore.js +0 -47
  88. package/dist/esm/dist/esm/utils/getCompareSeriesRefId.js +0 -4
  89. package/dist/esm/dist/esm/utils/getDataSource.js +0 -18
  90. package/dist/esm/dist/esm/utils/getMessageFromError.js +0 -24
  91. package/dist/esm/dist/esm/utils/metricTree.js +0 -53
  92. package/dist/esm/dist/esm/utils/parseUrlParam.js +0 -41
  93. package/dist/esm/dist/esm/utils/utils.js +0 -11
  94. package/dist/esm/dist/esm/utils/wrapInSafeSerializableSceneObject.js +0 -30
  95. package/dist/esm/dist/esm/utils/writeSceneLog.js +0 -12
  96. package/dist/esm/dist/esm/variables/VariableDependencyConfig.js +0 -150
  97. package/dist/esm/dist/esm/variables/VariableValueRecorder.js +0 -71
  98. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterBuilder.js +0 -24
  99. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterRenderer.js +0 -303
  100. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
  101. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
  102. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
  103. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
  104. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
  105. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
  106. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
  107. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
  108. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariable.js +0 -289
  109. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
  110. package/dist/esm/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +0 -13
  111. package/dist/esm/dist/esm/variables/adhoc/patchGetAdhocFilters.js +0 -47
  112. package/dist/esm/dist/esm/variables/components/VariableValueControl.js +0 -23
  113. package/dist/esm/dist/esm/variables/components/VariableValueInput.js +0 -33
  114. package/dist/esm/dist/esm/variables/components/VariableValueSelect.js +0 -228
  115. package/dist/esm/dist/esm/variables/components/VariableValueSelectors.js +0 -72
  116. package/dist/esm/dist/esm/variables/components/getOptionSearcher.js +0 -15
  117. package/dist/esm/dist/esm/variables/constants.js +0 -9
  118. package/dist/esm/dist/esm/variables/getEnrichedFiltersRequest.js +0 -12
  119. package/dist/esm/dist/esm/variables/groupby/GroupByVariable.js +0 -259
  120. package/dist/esm/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
  121. package/dist/esm/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
  122. package/dist/esm/dist/esm/variables/interpolation/ScopedVarsVariable.js +0 -40
  123. package/dist/esm/dist/esm/variables/interpolation/defaults.js +0 -21
  124. package/dist/esm/dist/esm/variables/interpolation/fieldAccessorCache.js +0 -13
  125. package/dist/esm/dist/esm/variables/interpolation/formatRegistry.js +0 -296
  126. package/dist/esm/dist/esm/variables/interpolation/sceneInterpolator.js +0 -87
  127. package/dist/esm/dist/esm/variables/lookupVariable.js +0 -20
  128. package/dist/esm/dist/esm/variables/macros/AllVariablesMacro.js +0 -57
  129. package/dist/esm/dist/esm/variables/macros/contextMacros.js +0 -43
  130. package/dist/esm/dist/esm/variables/macros/dataMacros.js +0 -134
  131. package/dist/esm/dist/esm/variables/macros/index.js +0 -26
  132. package/dist/esm/dist/esm/variables/macros/templateProxies.js +0 -51
  133. package/dist/esm/dist/esm/variables/macros/timeMacros.js +0 -86
  134. package/dist/esm/dist/esm/variables/macros/types.js +0 -11
  135. package/dist/esm/dist/esm/variables/macros/urlMacros.js +0 -56
  136. package/dist/esm/dist/esm/variables/sets/SceneVariableSet.js +0 -254
  137. package/dist/esm/dist/esm/variables/types.js +0 -11
  138. package/dist/esm/dist/esm/variables/utils.js +0 -172
  139. package/dist/esm/dist/esm/variables/variants/ConstantVariable.js +0 -38
  140. package/dist/esm/dist/esm/variables/variants/CustomVariable.js +0 -60
  141. package/dist/esm/dist/esm/variables/variants/DataSourceVariable.js +0 -88
  142. package/dist/esm/dist/esm/variables/variants/IntervalVariable.js +0 -117
  143. package/dist/esm/dist/esm/variables/variants/MultiValueVariable.js +0 -295
  144. package/dist/esm/dist/esm/variables/variants/TestVariable.js +0 -117
  145. package/dist/esm/dist/esm/variables/variants/TextBoxVariable.js +0 -61
  146. package/dist/esm/dist/esm/variables/variants/query/QueryVariable.js +0 -139
  147. package/dist/esm/dist/esm/variables/variants/query/createQueryVariableRunner.js +0 -129
  148. package/dist/esm/dist/esm/variables/variants/query/guards.js +0 -28
  149. package/dist/esm/dist/esm/variables/variants/query/toMetricFindValues.js +0 -96
  150. package/dist/esm/dist/esm/variables/variants/query/utils.js +0 -124
  151. package/dist/esm/querying/DataProviderSharer.js +0 -39
  152. package/dist/esm/src/behaviors/ActWhenVariableChanged.js +0 -27
  153. package/dist/esm/src/behaviors/CursorSync.js +0 -76
  154. package/dist/esm/src/behaviors/LiveNowTimer.js +0 -44
  155. package/dist/esm/src/behaviors/SceneQueryController.js +0 -60
  156. package/dist/esm/src/behaviors/index.js +0 -5
  157. package/dist/esm/src/components/EmbeddedScene.js +0 -59
  158. package/dist/esm/src/components/NestedScene.js +0 -95
  159. package/dist/esm/src/components/SceneApp/SceneApp.js +0 -37
  160. package/dist/esm/src/components/SceneApp/SceneAppPage.js +0 -176
  161. package/dist/esm/src/components/SceneApp/SceneAppPageView.js +0 -104
  162. package/dist/esm/src/components/SceneApp/utils.js +0 -42
  163. package/dist/esm/src/components/SceneByFrameRepeater.js +0 -41
  164. package/dist/esm/src/components/SceneByVariableRepeater.js +0 -55
  165. package/dist/esm/src/components/SceneCanvasText.js +0 -32
  166. package/dist/esm/src/components/SceneControlsSpacer.js +0 -17
  167. package/dist/esm/src/components/SceneDebugger/DebugDetails.js +0 -82
  168. package/dist/esm/src/components/SceneDebugger/DebugTreeNode.js +0 -72
  169. package/dist/esm/src/components/SceneDebugger/SceneDebugger.js +0 -77
  170. package/dist/esm/src/components/SceneReactObject.js +0 -34
  171. package/dist/esm/src/components/SceneRefreshPicker.js +0 -205
  172. package/dist/esm/src/components/SceneTimePicker.js +0 -139
  173. package/dist/esm/src/components/SceneTimeRangeCompare.js +0 -240
  174. package/dist/esm/src/components/SceneToolbarButton.js +0 -33
  175. package/dist/esm/src/components/VizPanel/VizPanel.js +0 -406
  176. package/dist/esm/src/components/VizPanel/VizPanelExploreButton.js +0 -44
  177. package/dist/esm/src/components/VizPanel/VizPanelMenu.js +0 -59
  178. package/dist/esm/src/components/VizPanel/VizPanelRenderer.js +0 -285
  179. package/dist/esm/src/components/VizPanel/VizPanelSeriesLimit.js +0 -45
  180. package/dist/esm/src/components/VizPanel/colorSeriesConfigFactory.js +0 -72
  181. package/dist/esm/src/components/VizPanel/registerRuntimePanelPlugin.js +0 -56
  182. package/dist/esm/src/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
  183. package/dist/esm/src/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
  184. package/dist/esm/src/components/layout/LazyLoader.js +0 -103
  185. package/dist/esm/src/components/layout/SceneFlexLayout.js +0 -135
  186. package/dist/esm/src/components/layout/grid/SceneGridItem.js +0 -30
  187. package/dist/esm/src/components/layout/grid/SceneGridLayout.js +0 -283
  188. package/dist/esm/src/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
  189. package/dist/esm/src/components/layout/grid/SceneGridRow.js +0 -190
  190. package/dist/esm/src/components/layout/grid/constants.js +0 -7
  191. package/dist/esm/src/components/layout/grid/utils.js +0 -36
  192. package/dist/esm/src/components/layout/split/SplitLayout.js +0 -17
  193. package/dist/esm/src/components/layout/split/SplitLayoutRenderer.js +0 -29
  194. package/dist/esm/src/components/layout/split/Splitter.js +0 -386
  195. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilder.js +0 -100
  196. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilders.js +0 -75
  197. package/dist/esm/src/core/PanelBuilders/FieldConfigOverridesBuilder.js +0 -75
  198. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilder.js +0 -22
  199. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilders.js +0 -85
  200. package/dist/esm/src/core/PanelBuilders/StandardFieldConfigBuilders.js +0 -52
  201. package/dist/esm/src/core/PanelBuilders/VizConfigBuilder.js +0 -78
  202. package/dist/esm/src/core/PanelBuilders/VizConfigBuilders.js +0 -114
  203. package/dist/esm/src/core/PanelBuilders/VizPanelBuilder.js +0 -162
  204. package/dist/esm/src/core/PanelBuilders/index.js +0 -116
  205. package/dist/esm/src/core/SceneComponentWrapper.js +0 -57
  206. package/dist/esm/src/core/SceneDataNode.js +0 -43
  207. package/dist/esm/src/core/SceneObjectBase.js +0 -286
  208. package/dist/esm/src/core/SceneObjectRef.js +0 -32
  209. package/dist/esm/src/core/SceneTimeRange.js +0 -231
  210. package/dist/esm/src/core/SceneTimeRangeTransformerBase.js +0 -35
  211. package/dist/esm/src/core/SceneTimeZoneOverride.js +0 -63
  212. package/dist/esm/src/core/events.js +0 -11
  213. package/dist/esm/src/core/sceneGraph/getTimeRange.js +0 -10
  214. package/dist/esm/src/core/sceneGraph/index.js +0 -25
  215. package/dist/esm/src/core/sceneGraph/sceneGraph.js +0 -178
  216. package/dist/esm/src/core/sceneGraph/utils.js +0 -64
  217. package/dist/esm/src/core/types.js +0 -15
  218. package/dist/esm/src/index.js +0 -108
  219. package/dist/esm/src/querying/DataLayersMerger.js +0 -46
  220. package/dist/esm/src/querying/DataProviderProxy.js +0 -37
  221. package/dist/esm/src/querying/DataProviderSharer.js +0 -108
  222. package/dist/esm/src/querying/ExtraQueryProvider.js +0 -6
  223. package/dist/esm/src/querying/RuntimeDataSource.js +0 -49
  224. package/dist/esm/src/querying/SceneDataLayerSet.js +0 -100
  225. package/dist/esm/src/querying/SceneDataTransformer.js +0 -178
  226. package/dist/esm/src/querying/SceneQueryRunner.js +0 -468
  227. package/dist/esm/src/querying/extraQueryProcessingOperator.js +0 -46
  228. package/dist/esm/src/querying/getEnrichedDataRequest.js +0 -12
  229. package/dist/esm/src/querying/layers/SceneDataLayerBase.js +0 -112
  230. package/dist/esm/src/querying/layers/SceneDataLayerControls.js +0 -51
  231. package/dist/esm/src/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
  232. package/dist/esm/src/querying/layers/annotations/filterAnnotations.js +0 -85
  233. package/dist/esm/src/querying/layers/annotations/standardAnnotationQuery.js +0 -121
  234. package/dist/esm/src/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
  235. package/dist/esm/src/querying/layers/annotations/utils.js +0 -77
  236. package/dist/esm/src/querying/layers/index.js +0 -2
  237. package/dist/esm/src/querying/registerQueryWithController.js +0 -41
  238. package/dist/esm/src/services/SceneObjectUrlSyncConfig.js +0 -30
  239. package/dist/esm/src/services/UniqueUrlKeyMapper.js +0 -45
  240. package/dist/esm/src/services/UrlSyncContextProvider.js +0 -17
  241. package/dist/esm/src/services/UrlSyncManager.js +0 -167
  242. package/dist/esm/src/services/useUrlSync.js +0 -29
  243. package/dist/esm/src/services/utils.js +0 -75
  244. package/dist/esm/src/utils/ControlsLabel.js +0 -107
  245. package/dist/esm/src/utils/LoadingIndicator.js +0 -19
  246. package/dist/esm/src/utils/SafeSerializableSceneObject.js +0 -39
  247. package/dist/esm/src/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
  248. package/dist/esm/src/utils/date.js +0 -15
  249. package/dist/esm/src/utils/evaluateTimeRange.js +0 -16
  250. package/dist/esm/src/utils/explore.js +0 -47
  251. package/dist/esm/src/utils/getCompareSeriesRefId.js +0 -4
  252. package/dist/esm/src/utils/getDataSource.js +0 -18
  253. package/dist/esm/src/utils/getMessageFromError.js +0 -24
  254. package/dist/esm/src/utils/metricTree.js +0 -53
  255. package/dist/esm/src/utils/parseUrlParam.js +0 -41
  256. package/dist/esm/src/utils/utils.js +0 -11
  257. package/dist/esm/src/utils/wrapInSafeSerializableSceneObject.js +0 -30
  258. package/dist/esm/src/utils/writeSceneLog.js +0 -12
  259. package/dist/esm/src/variables/VariableDependencyConfig.js +0 -150
  260. package/dist/esm/src/variables/VariableValueRecorder.js +0 -71
  261. package/dist/esm/src/variables/adhoc/AdHocFilterBuilder.js +0 -24
  262. package/dist/esm/src/variables/adhoc/AdHocFilterRenderer.js +0 -303
  263. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
  264. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
  265. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
  266. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
  267. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
  268. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
  269. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
  270. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
  271. package/dist/esm/src/variables/adhoc/AdHocFiltersVariable.js +0 -289
  272. package/dist/esm/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
  273. package/dist/esm/src/variables/adhoc/getAdhocOptionSearcher.js +0 -13
  274. package/dist/esm/src/variables/adhoc/patchGetAdhocFilters.js +0 -47
  275. package/dist/esm/src/variables/components/VariableValueControl.js +0 -23
  276. package/dist/esm/src/variables/components/VariableValueInput.js +0 -33
  277. package/dist/esm/src/variables/components/VariableValueSelect.js +0 -228
  278. package/dist/esm/src/variables/components/VariableValueSelectors.js +0 -72
  279. package/dist/esm/src/variables/components/getOptionSearcher.js +0 -15
  280. package/dist/esm/src/variables/constants.js +0 -9
  281. package/dist/esm/src/variables/getEnrichedFiltersRequest.js +0 -12
  282. package/dist/esm/src/variables/groupby/GroupByVariable.js +0 -259
  283. package/dist/esm/src/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
  284. package/dist/esm/src/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
  285. package/dist/esm/src/variables/interpolation/ScopedVarsVariable.js +0 -40
  286. package/dist/esm/src/variables/interpolation/defaults.js +0 -21
  287. package/dist/esm/src/variables/interpolation/fieldAccessorCache.js +0 -13
  288. package/dist/esm/src/variables/interpolation/formatRegistry.js +0 -296
  289. package/dist/esm/src/variables/interpolation/sceneInterpolator.js +0 -87
  290. package/dist/esm/src/variables/lookupVariable.js +0 -20
  291. package/dist/esm/src/variables/macros/AllVariablesMacro.js +0 -57
  292. package/dist/esm/src/variables/macros/contextMacros.js +0 -43
  293. package/dist/esm/src/variables/macros/dataMacros.js +0 -134
  294. package/dist/esm/src/variables/macros/index.js +0 -35
  295. package/dist/esm/src/variables/macros/templateProxies.js +0 -51
  296. package/dist/esm/src/variables/macros/timeMacros.js +0 -86
  297. package/dist/esm/src/variables/macros/types.js +0 -11
  298. package/dist/esm/src/variables/macros/urlMacros.js +0 -56
  299. package/dist/esm/src/variables/sets/SceneVariableSet.js +0 -254
  300. package/dist/esm/src/variables/types.js +0 -11
  301. package/dist/esm/src/variables/utils.js +0 -172
  302. package/dist/esm/src/variables/variants/ConstantVariable.js +0 -38
  303. package/dist/esm/src/variables/variants/CustomVariable.js +0 -60
  304. package/dist/esm/src/variables/variants/DataSourceVariable.js +0 -88
  305. package/dist/esm/src/variables/variants/IntervalVariable.js +0 -117
  306. package/dist/esm/src/variables/variants/JsonVariable.js +0 -193
  307. package/dist/esm/src/variables/variants/LocalValueVariable.js +0 -56
  308. package/dist/esm/src/variables/variants/MultiValueVariable.js +0 -295
  309. package/dist/esm/src/variables/variants/TestVariable.js +0 -117
  310. package/dist/esm/src/variables/variants/TextBoxVariable.js +0 -61
  311. package/dist/esm/src/variables/variants/guards.js +0 -27
  312. package/dist/esm/src/variables/variants/query/QueryVariable.js +0 -139
  313. package/dist/esm/src/variables/variants/query/createQueryVariableRunner.js +0 -129
  314. package/dist/esm/src/variables/variants/query/guards.js +0 -28
  315. package/dist/esm/src/variables/variants/query/toMetricFindValues.js +0 -96
  316. package/dist/esm/src/variables/variants/query/utils.js +0 -124
  317. package/dist/esm/variables/variants/JsonVariable.js +0 -96
  318. package/dist/esm/variables/variants/json/JsonVariable.js +0 -95
  319. package/dist/esm/variables/variants/json/JsonVariableOptionProviders.js +0 -70
@@ -1,303 +0,0 @@
1
- import React, { useState, useMemo } from 'react';
2
- import { isMultiValueOperator } from './AdHocFiltersVariable.js';
3
- import { useStyles2, Select, Field, Button } from '@grafana/ui';
4
- import { cx, css } from '@emotion/css';
5
- import { ControlsLabel } from '../../utils/ControlsLabel.js';
6
- import { getAdhocOptionSearcher } from './getAdhocOptionSearcher.js';
7
- import { handleOptionGroups } from '../utils.js';
8
- import { OptionWithCheckbox } from '../components/VariableValueSelect.js';
9
-
10
- var __defProp = Object.defineProperty;
11
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
12
- var __hasOwnProp = Object.prototype.hasOwnProperty;
13
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
14
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
- var __spreadValues = (a, b) => {
16
- for (var prop in b || (b = {}))
17
- if (__hasOwnProp.call(b, prop))
18
- __defNormalProp(a, prop, b[prop]);
19
- if (__getOwnPropSymbols)
20
- for (var prop of __getOwnPropSymbols(b)) {
21
- if (__propIsEnum.call(b, prop))
22
- __defNormalProp(a, prop, b[prop]);
23
- }
24
- return a;
25
- };
26
- function keyLabelToOption(key, label) {
27
- return key !== "" ? {
28
- value: key,
29
- label: label || key
30
- } : null;
31
- }
32
- const filterNoOp = () => true;
33
- function AdHocFilterRenderer({ filter, model }) {
34
- var _a, _b, _c, _d, _e;
35
- const styles = useStyles2(getStyles);
36
- const [keys, setKeys] = useState([]);
37
- const [values, setValues] = useState([]);
38
- const [isKeysLoading, setIsKeysLoading] = useState(false);
39
- const [isValuesLoading, setIsValuesLoading] = useState(false);
40
- const [isKeysOpen, setIsKeysOpen] = useState(false);
41
- const [isValuesOpen, setIsValuesOpen] = useState(false);
42
- const [isOperatorOpen, setIsOperatorOpen] = useState(false);
43
- const [valueInputValue, setValueInputValue] = useState("");
44
- const [valueHasCustomValue, setValueHasCustomValue] = useState(false);
45
- const [uncommittedValue, setUncommittedValue] = useState(
46
- filter.values ? filter.values.map((value, index) => {
47
- var _a2;
48
- return keyLabelToOption(value, (_a2 = filter.valueLabels) == null ? void 0 : _a2[index]);
49
- }) : []
50
- );
51
- const isMultiValue = isMultiValueOperator(filter.operator);
52
- const keyValue = keyLabelToOption(filter.key, filter.keyLabel);
53
- const valueValue = keyLabelToOption(filter.value, (_a = filter.valueLabels) == null ? void 0 : _a[0]);
54
- const optionSearcher = useMemo(() => getAdhocOptionSearcher(values), [values]);
55
- const onValueInputChange = (value, { action }) => {
56
- if (action === "input-change") {
57
- setValueInputValue(value);
58
- }
59
- return value;
60
- };
61
- const onOperatorChange = (v) => {
62
- var _a2, _b2;
63
- const existingOperator = filter.operator;
64
- const newOperator = v.value;
65
- const update = { operator: newOperator };
66
- if (isMultiValueOperator(existingOperator) && !isMultiValueOperator(newOperator)) {
67
- update.value = "";
68
- update.valueLabels = [""];
69
- update.values = void 0;
70
- setUncommittedValue([]);
71
- } else if (!isMultiValueOperator(existingOperator) && isMultiValueOperator(newOperator) && filter.value) {
72
- update.values = [filter.value];
73
- setUncommittedValue([
74
- {
75
- value: filter.value,
76
- label: (_b2 = (_a2 = filter.valueLabels) == null ? void 0 : _a2[0]) != null ? _b2 : filter.value
77
- }
78
- ]);
79
- }
80
- model._updateFilter(filter, update);
81
- };
82
- const filteredValueOptions = useMemo(
83
- () => handleOptionGroups(optionSearcher(valueInputValue)),
84
- [optionSearcher, valueInputValue]
85
- );
86
- const multiValueProps = {
87
- isMulti: true,
88
- value: uncommittedValue,
89
- components: {
90
- Option: OptionWithCheckbox
91
- },
92
- hideSelectedOptions: false,
93
- closeMenuOnSelect: false,
94
- openMenuOnFocus: false,
95
- onChange: (v) => {
96
- setUncommittedValue(v);
97
- if (v.some((value) => value.__isNew__)) {
98
- setValueInputValue("");
99
- }
100
- },
101
- onBlur: () => {
102
- var _a2, _b2;
103
- model._updateFilter(filter, {
104
- value: (_b2 = (_a2 = uncommittedValue[0]) == null ? void 0 : _a2.value) != null ? _b2 : "",
105
- values: uncommittedValue.map((option) => option.value),
106
- valueLabels: uncommittedValue.map((option) => option.label)
107
- });
108
- }
109
- };
110
- const valueSelect = /* @__PURE__ */ React.createElement(Select, __spreadValues({
111
- virtualized: true,
112
- allowCustomValue: (_b = model.state.allowCustomValue) != null ? _b : true,
113
- isValidNewOption: (inputValue) => inputValue.trim().length > 0,
114
- allowCreateWhileLoading: true,
115
- formatCreateLabel: (inputValue) => `Use custom value: ${inputValue}`,
116
- disabled: model.state.readOnly,
117
- className: cx(styles.value, isValuesOpen ? styles.widthWhenOpen : void 0),
118
- width: "auto",
119
- value: valueValue,
120
- filterOption: filterNoOp,
121
- placeholder: "Select value",
122
- options: filteredValueOptions,
123
- inputValue: valueInputValue,
124
- onInputChange: onValueInputChange,
125
- onChange: (v) => {
126
- model._updateFilter(filter, {
127
- value: v.value,
128
- valueLabels: v.label ? [v.label] : [v.value]
129
- });
130
- if (valueHasCustomValue !== v.__isNew__) {
131
- setValueHasCustomValue(v.__isNew__);
132
- }
133
- },
134
- isOpen: isValuesOpen && !isValuesLoading,
135
- isLoading: isValuesLoading,
136
- openMenuOnFocus: true,
137
- onOpenMenu: async () => {
138
- var _a2;
139
- setIsValuesLoading(true);
140
- setIsValuesOpen(true);
141
- const values2 = await model._getValuesFor(filter);
142
- setIsValuesLoading(false);
143
- setValues(values2);
144
- if (valueHasCustomValue) {
145
- setValueInputValue((_a2 = valueValue == null ? void 0 : valueValue.label) != null ? _a2 : "");
146
- }
147
- },
148
- onCloseMenu: () => {
149
- setIsValuesOpen(false);
150
- setValueInputValue("");
151
- }
152
- }, isMultiValue && multiValueProps));
153
- const keySelect = /* @__PURE__ */ React.createElement(Select, {
154
- key: `${isValuesLoading ? "loading" : "loaded"}`,
155
- disabled: model.state.readOnly,
156
- className: cx(styles.key, isKeysOpen ? styles.widthWhenOpen : void 0),
157
- width: "auto",
158
- allowCustomValue: (_c = model.state.allowCustomValue) != null ? _c : true,
159
- value: keyValue,
160
- placeholder: "Select label",
161
- options: handleOptionGroups(keys),
162
- onChange: (v) => {
163
- model._updateFilter(filter, {
164
- key: v.value,
165
- keyLabel: v.label,
166
- value: "",
167
- valueLabels: [""],
168
- values: void 0
169
- });
170
- setUncommittedValue([]);
171
- },
172
- autoFocus: filter.key === "",
173
- isOpen: isKeysOpen && !isKeysLoading,
174
- isLoading: isKeysLoading,
175
- onOpenMenu: async () => {
176
- setIsKeysOpen(true);
177
- setIsKeysLoading(true);
178
- const keys2 = await model._getKeys(filter.key);
179
- setIsKeysLoading(false);
180
- setKeys(keys2);
181
- },
182
- onCloseMenu: () => {
183
- setIsKeysOpen(false);
184
- },
185
- onBlur: () => {
186
- if (filter.key === "") {
187
- model._removeFilter(filter);
188
- }
189
- },
190
- openMenuOnFocus: true
191
- });
192
- const operatorSelect = /* @__PURE__ */ React.createElement(Select, {
193
- className: cx(styles.operator, {
194
- [styles.widthWhenOpen]: isOperatorOpen
195
- }),
196
- value: filter.operator,
197
- disabled: model.state.readOnly,
198
- options: model._getOperators(),
199
- onChange: onOperatorChange,
200
- onOpenMenu: () => {
201
- setIsOperatorOpen(true);
202
- },
203
- onCloseMenu: () => {
204
- setIsOperatorOpen(false);
205
- }
206
- });
207
- if (model.state.layout === "vertical") {
208
- if (filter.key) {
209
- const label = /* @__PURE__ */ React.createElement(ControlsLabel, {
210
- layout: "vertical",
211
- label: (_d = filter.key) != null ? _d : "",
212
- onRemove: () => model._removeFilter(filter)
213
- });
214
- return /* @__PURE__ */ React.createElement(Field, {
215
- label,
216
- "data-testid": `AdHocFilter-${filter.key}`,
217
- className: styles.field
218
- }, /* @__PURE__ */ React.createElement("div", {
219
- className: styles.wrapper
220
- }, operatorSelect, valueSelect));
221
- } else {
222
- return /* @__PURE__ */ React.createElement(Field, {
223
- label: "Select label",
224
- "data-testid": `AdHocFilter-${filter.key}`,
225
- className: styles.field
226
- }, keySelect);
227
- }
228
- }
229
- return /* @__PURE__ */ React.createElement("div", {
230
- className: styles.wrapper,
231
- "data-testid": `AdHocFilter-${filter.key}`
232
- }, keySelect, operatorSelect, valueSelect, /* @__PURE__ */ React.createElement(Button, {
233
- variant: "secondary",
234
- "aria-label": "Remove filter",
235
- title: "Remove filter",
236
- className: styles.removeButton,
237
- icon: "times",
238
- "data-testid": `AdHocFilter-remove-${(_e = filter.key) != null ? _e : ""}`,
239
- onClick: () => model._removeFilter(filter)
240
- }));
241
- }
242
- const getStyles = (theme) => ({
243
- field: css({
244
- marginBottom: 0
245
- }),
246
- wrapper: css({
247
- display: "flex",
248
- "> *": {
249
- "&:not(:first-child)": {
250
- marginLeft: -1
251
- },
252
- "&:first-child": {
253
- borderTopRightRadius: 0,
254
- borderBottomRightRadius: 0
255
- },
256
- "&:last-child": {
257
- borderTopLeftRadius: 0,
258
- borderBottomLeftRadius: 0
259
- },
260
- "&:not(:first-child):not(:last-child)": {
261
- borderRadius: 0
262
- },
263
- position: "relative",
264
- zIndex: 0,
265
- "&:hover": {
266
- zIndex: 1
267
- },
268
- "&:focus-within": {
269
- zIndex: 2
270
- }
271
- }
272
- }),
273
- widthWhenOpen: css({
274
- minWidth: theme.spacing(16)
275
- }),
276
- value: css({
277
- flexBasis: "content",
278
- flexShrink: 1,
279
- minWidth: "90px"
280
- }),
281
- key: css({
282
- flexBasis: "content",
283
- minWidth: "90px",
284
- flexShrink: 1
285
- }),
286
- operator: css({
287
- flexShrink: 0,
288
- flexBasis: "content"
289
- }),
290
- removeButton: css({
291
- paddingLeft: theme.spacing(3 / 2),
292
- paddingRight: theme.spacing(3 / 2),
293
- borderLeft: "none",
294
- width: theme.spacing(3),
295
- marginRight: theme.spacing(1),
296
- boxSizing: "border-box",
297
- position: "relative",
298
- left: "1px"
299
- })
300
- });
301
-
302
- export { AdHocFilterRenderer };
303
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRIb2NGaWx0ZXJSZW5kZXJlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdmFyaWFibGVzL2FkaG9jL0FkSG9jRmlsdGVyUmVuZGVyZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgaXNNdWx0aVZhbHVlT3BlcmF0b3IgfSBmcm9tICcuL0FkSG9jRmlsdGVyc1ZhcmlhYmxlLmpzJztcbmltcG9ydCB7IHVzZVN0eWxlczIsIFNlbGVjdCwgRmllbGQsIEJ1dHRvbiB9IGZyb20gJ0BncmFmYW5hL3VpJztcbmltcG9ydCB7IGN4LCBjc3MgfSBmcm9tICdAZW1vdGlvbi9jc3MnO1xuaW1wb3J0IHsgQ29udHJvbHNMYWJlbCB9IGZyb20gJy4uLy4uL3V0aWxzL0NvbnRyb2xzTGFiZWwuanMnO1xuaW1wb3J0IHsgZ2V0QWRob2NPcHRpb25TZWFyY2hlciB9IGZyb20gJy4vZ2V0QWRob2NPcHRpb25TZWFyY2hlci5qcyc7XG5pbXBvcnQgeyBoYW5kbGVPcHRpb25Hcm91cHMgfSBmcm9tICcuLi91dGlscy5qcyc7XG5pbXBvcnQgeyBPcHRpb25XaXRoQ2hlY2tib3ggfSBmcm9tICcuLi9jb21wb25lbnRzL1ZhcmlhYmxlVmFsdWVTZWxlY3QuanMnO1xuXG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZ2V0T3duUHJvcFN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX19wcm9wSXNFbnVtID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbnZhciBfX2RlZk5vcm1hbFByb3AgPSAob2JqLCBrZXksIHZhbHVlKSA9PiBrZXkgaW4gb2JqID8gX19kZWZQcm9wKG9iaiwga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlIH0pIDogb2JqW2tleV0gPSB2YWx1ZTtcbnZhciBfX3NwcmVhZFZhbHVlcyA9IChhLCBiKSA9PiB7XG4gIGZvciAodmFyIHByb3AgaW4gYiB8fCAoYiA9IHt9KSlcbiAgICBpZiAoX19oYXNPd25Qcm9wLmNhbGwoYiwgcHJvcCkpXG4gICAgICBfX2RlZk5vcm1hbFByb3AoYSwgcHJvcCwgYltwcm9wXSk7XG4gIGlmIChfX2dldE93blByb3BTeW1ib2xzKVxuICAgIGZvciAodmFyIHByb3Agb2YgX19nZXRPd25Qcm9wU3ltYm9scyhiKSkge1xuICAgICAgaWYgKF9fcHJvcElzRW51bS5jYWxsKGIsIHByb3ApKVxuICAgICAgICBfX2RlZk5vcm1hbFByb3AoYSwgcHJvcCwgYltwcm9wXSk7XG4gICAgfVxuICByZXR1cm4gYTtcbn07XG5mdW5jdGlvbiBrZXlMYWJlbFRvT3B0aW9uKGtleSwgbGFiZWwpIHtcbiAgcmV0dXJuIGtleSAhPT0gXCJcIiA/IHtcbiAgICB2YWx1ZToga2V5LFxuICAgIGxhYmVsOiBsYWJlbCB8fCBrZXlcbiAgfSA6IG51bGw7XG59XG5jb25zdCBmaWx0ZXJOb09wID0gKCkgPT4gdHJ1ZTtcbmZ1bmN0aW9uIEFkSG9jRmlsdGVyUmVuZGVyZXIoeyBmaWx0ZXIsIG1vZGVsIH0pIHtcbiAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZTtcbiAgY29uc3Qgc3R5bGVzID0gdXNlU3R5bGVzMihnZXRTdHlsZXMpO1xuICBjb25zdCBba2V5cywgc2V0S2V5c10gPSB1c2VTdGF0ZShbXSk7XG4gIGNvbnN0IFt2YWx1ZXMsIHNldFZhbHVlc10gPSB1c2VTdGF0ZShbXSk7XG4gIGNvbnN0IFtpc0tleXNMb2FkaW5nLCBzZXRJc0tleXNMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2lzVmFsdWVzTG9hZGluZywgc2V0SXNWYWx1ZXNMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2lzS2V5c09wZW4sIHNldElzS2V5c09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbaXNWYWx1ZXNPcGVuLCBzZXRJc1ZhbHVlc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbaXNPcGVyYXRvck9wZW4sIHNldElzT3BlcmF0b3JPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3ZhbHVlSW5wdXRWYWx1ZSwgc2V0VmFsdWVJbnB1dFZhbHVlXSA9IHVzZVN0YXRlKFwiXCIpO1xuICBjb25zdCBbdmFsdWVIYXNDdXN0b21WYWx1ZSwgc2V0VmFsdWVIYXNDdXN0b21WYWx1ZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFt1bmNvbW1pdHRlZFZhbHVlLCBzZXRVbmNvbW1pdHRlZFZhbHVlXSA9IHVzZVN0YXRlKFxuICAgIGZpbHRlci52YWx1ZXMgPyBmaWx0ZXIudmFsdWVzLm1hcCgodmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICB2YXIgX2EyO1xuICAgICAgcmV0dXJuIGtleUxhYmVsVG9PcHRpb24odmFsdWUsIChfYTIgPSBmaWx0ZXIudmFsdWVMYWJlbHMpID09IG51bGwgPyB2b2lkIDAgOiBfYTJbaW5kZXhdKTtcbiAgICB9KSA6IFtdXG4gICk7XG4gIGNvbnN0IGlzTXVsdGlWYWx1ZSA9IGlzTXVsdGlWYWx1ZU9wZXJhdG9yKGZpbHRlci5vcGVyYXRvcik7XG4gIGNvbnN0IGtleVZhbHVlID0ga2V5TGFiZWxUb09wdGlvbihmaWx0ZXIua2V5LCBmaWx0ZXIua2V5TGFiZWwpO1xuICBjb25zdCB2YWx1ZVZhbHVlID0ga2V5TGFiZWxUb09wdGlvbihmaWx0ZXIudmFsdWUsIChfYSA9IGZpbHRlci52YWx1ZUxhYmVscykgPT0gbnVsbCA/IHZvaWQgMCA6IF9hWzBdKTtcbiAgY29uc3Qgb3B0aW9uU2VhcmNoZXIgPSB1c2VNZW1vKCgpID0+IGdldEFkaG9jT3B0aW9uU2VhcmNoZXIodmFsdWVzKSwgW3ZhbHVlc10pO1xuICBjb25zdCBvblZhbHVlSW5wdXRDaGFuZ2UgPSAodmFsdWUsIHsgYWN0aW9uIH0pID0+IHtcbiAgICBpZiAoYWN0aW9uID09PSBcImlucHV0LWNoYW5nZVwiKSB7XG4gICAgICBzZXRWYWx1ZUlucHV0VmFsdWUodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH07XG4gIGNvbnN0IG9uT3BlcmF0b3JDaGFuZ2UgPSAodikgPT4ge1xuICAgIHZhciBfYTIsIF9iMjtcbiAgICBjb25zdCBleGlzdGluZ09wZXJhdG9yID0gZmlsdGVyLm9wZXJhdG9yO1xuICAgIGNvbnN0IG5ld09wZXJhdG9yID0gdi52YWx1ZTtcbiAgICBjb25zdCB1cGRhdGUgPSB7IG9wZXJhdG9yOiBuZXdPcGVyYXRvciB9O1xuICAgIGlmIChpc011bHRpVmFsdWVPcGVyYXRvcihleGlzdGluZ09wZXJhdG9yKSAmJiAhaXNNdWx0aVZhbHVlT3BlcmF0b3IobmV3T3BlcmF0b3IpKSB7XG4gICAgICB1cGRhdGUudmFsdWUgPSBcIlwiO1xuICAgICAgdXBkYXRlLnZhbHVlTGFiZWxzID0gW1wiXCJdO1xuICAgICAgdXBkYXRlLnZhbHVlcyA9IHZvaWQgMDtcbiAgICAgIHNldFVuY29tbWl0dGVkVmFsdWUoW10pO1xuICAgIH0gZWxzZSBpZiAoIWlzTXVsdGlWYWx1ZU9wZXJhdG9yKGV4aXN0aW5nT3BlcmF0b3IpICYmIGlzTXVsdGlWYWx1ZU9wZXJhdG9yKG5ld09wZXJhdG9yKSAmJiBmaWx0ZXIudmFsdWUpIHtcbiAgICAgIHVwZGF0ZS52YWx1ZXMgPSBbZmlsdGVyLnZhbHVlXTtcbiAgICAgIHNldFVuY29tbWl0dGVkVmFsdWUoW1xuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6IGZpbHRlci52YWx1ZSxcbiAgICAgICAgICBsYWJlbDogKF9iMiA9IChfYTIgPSBmaWx0ZXIudmFsdWVMYWJlbHMpID09IG51bGwgPyB2b2lkIDAgOiBfYTJbMF0pICE9IG51bGwgPyBfYjIgOiBmaWx0ZXIudmFsdWVcbiAgICAgICAgfVxuICAgICAgXSk7XG4gICAgfVxuICAgIG1vZGVsLl91cGRhdGVGaWx0ZXIoZmlsdGVyLCB1cGRhdGUpO1xuICB9O1xuICBjb25zdCBmaWx0ZXJlZFZhbHVlT3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gaGFuZGxlT3B0aW9uR3JvdXBzKG9wdGlvblNlYXJjaGVyKHZhbHVlSW5wdXRWYWx1ZSkpLFxuICAgIFtvcHRpb25TZWFyY2hlciwgdmFsdWVJbnB1dFZhbHVlXVxuICApO1xuICBjb25zdCBtdWx0aVZhbHVlUHJvcHMgPSB7XG4gICAgaXNNdWx0aTogdHJ1ZSxcbiAgICB2YWx1ZTogdW5jb21taXR0ZWRWYWx1ZSxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICBPcHRpb246IE9wdGlvbldpdGhDaGVja2JveFxuICAgIH0sXG4gICAgaGlkZVNlbGVjdGVkT3B0aW9uczogZmFsc2UsXG4gICAgY2xvc2VNZW51T25TZWxlY3Q6IGZhbHNlLFxuICAgIG9wZW5NZW51T25Gb2N1czogZmFsc2UsXG4gICAgb25DaGFuZ2U6ICh2KSA9PiB7XG4gICAgICBzZXRVbmNvbW1pdHRlZFZhbHVlKHYpO1xuICAgICAgaWYgKHYuc29tZSgodmFsdWUpID0+IHZhbHVlLl9faXNOZXdfXykpIHtcbiAgICAgICAgc2V0VmFsdWVJbnB1dFZhbHVlKFwiXCIpO1xuICAgICAgfVxuICAgIH0sXG4gICAgb25CbHVyOiAoKSA9PiB7XG4gICAgICB2YXIgX2EyLCBfYjI7XG4gICAgICBtb2RlbC5fdXBkYXRlRmlsdGVyKGZpbHRlciwge1xuICAgICAgICB2YWx1ZTogKF9iMiA9IChfYTIgPSB1bmNvbW1pdHRlZFZhbHVlWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX2EyLnZhbHVlKSAhPSBudWxsID8gX2IyIDogXCJcIixcbiAgICAgICAgdmFsdWVzOiB1bmNvbW1pdHRlZFZhbHVlLm1hcCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUpLFxuICAgICAgICB2YWx1ZUxhYmVsczogdW5jb21taXR0ZWRWYWx1ZS5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLmxhYmVsKVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuICBjb25zdCB2YWx1ZVNlbGVjdCA9IC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KFNlbGVjdCwgX19zcHJlYWRWYWx1ZXMoe1xuICAgIHZpcnR1YWxpemVkOiB0cnVlLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IChfYiA9IG1vZGVsLnN0YXRlLmFsbG93Q3VzdG9tVmFsdWUpICE9IG51bGwgPyBfYiA6IHRydWUsXG4gICAgaXNWYWxpZE5ld09wdGlvbjogKGlucHV0VmFsdWUpID0+IGlucHV0VmFsdWUudHJpbSgpLmxlbmd0aCA+IDAsXG4gICAgYWxsb3dDcmVhdGVXaGlsZUxvYWRpbmc6IHRydWUsXG4gICAgZm9ybWF0Q3JlYXRlTGFiZWw6IChpbnB1dFZhbHVlKSA9PiBgVXNlIGN1c3RvbSB2YWx1ZTogJHtpbnB1dFZhbHVlfWAsXG4gICAgZGlzYWJsZWQ6IG1vZGVsLnN0YXRlLnJlYWRPbmx5LFxuICAgIGNsYXNzTmFtZTogY3goc3R5bGVzLnZhbHVlLCBpc1ZhbHVlc09wZW4gPyBzdHlsZXMud2lkdGhXaGVuT3BlbiA6IHZvaWQgMCksXG4gICAgd2lkdGg6IFwiYXV0b1wiLFxuICAgIHZhbHVlOiB2YWx1ZVZhbHVlLFxuICAgIGZpbHRlck9wdGlvbjogZmlsdGVyTm9PcCxcbiAgICBwbGFjZWhvbGRlcjogXCJTZWxlY3QgdmFsdWVcIixcbiAgICBvcHRpb25zOiBmaWx0ZXJlZFZhbHVlT3B0aW9ucyxcbiAgICBpbnB1dFZhbHVlOiB2YWx1ZUlucHV0VmFsdWUsXG4gICAgb25JbnB1dENoYW5nZTogb25WYWx1ZUlucHV0Q2hhbmdlLFxuICAgIG9uQ2hhbmdlOiAodikgPT4ge1xuICAgICAgbW9kZWwuX3VwZGF0ZUZpbHRlcihmaWx0ZXIsIHtcbiAgICAgICAgdmFsdWU6IHYudmFsdWUsXG4gICAgICAgIHZhbHVlTGFiZWxzOiB2LmxhYmVsID8gW3YubGFiZWxdIDogW3YudmFsdWVdXG4gICAgICB9KTtcbiAgICAgIGlmICh2YWx1ZUhhc0N1c3RvbVZhbHVlICE9PSB2Ll9faXNOZXdfXykge1xuICAgICAgICBzZXRWYWx1ZUhhc0N1c3RvbVZhbHVlKHYuX19pc05ld19fKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGlzT3BlbjogaXNWYWx1ZXNPcGVuICYmICFpc1ZhbHVlc0xvYWRpbmcsXG4gICAgaXNMb2FkaW5nOiBpc1ZhbHVlc0xvYWRpbmcsXG4gICAgb3Blbk1lbnVPbkZvY3VzOiB0cnVlLFxuICAgIG9uT3Blbk1lbnU6IGFzeW5jICgpID0+IHtcbiAgICAgIHZhciBfYTI7XG4gICAgICBzZXRJc1ZhbHVlc0xvYWRpbmcodHJ1ZSk7XG4gICAgICBzZXRJc1ZhbHVlc09wZW4odHJ1ZSk7XG4gICAgICBjb25zdCB2YWx1ZXMyID0gYXdhaXQgbW9kZWwuX2dldFZhbHVlc0ZvcihmaWx0ZXIpO1xuICAgICAgc2V0SXNWYWx1ZXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgIHNldFZhbHVlcyh2YWx1ZXMyKTtcbiAgICAgIGlmICh2YWx1ZUhhc0N1c3RvbVZhbHVlKSB7XG4gICAgICAgIHNldFZhbHVlSW5wdXRWYWx1ZSgoX2EyID0gdmFsdWVWYWx1ZSA9PSBudWxsID8gdm9pZCAwIDogdmFsdWVWYWx1ZS5sYWJlbCkgIT0gbnVsbCA/IF9hMiA6IFwiXCIpO1xuICAgICAgfVxuICAgIH0sXG4gICAgb25DbG9zZU1lbnU6ICgpID0+IHtcbiAgICAgIHNldElzVmFsdWVzT3BlbihmYWxzZSk7XG4gICAgICBzZXRWYWx1ZUlucHV0VmFsdWUoXCJcIik7XG4gICAgfVxuICB9LCBpc011bHRpVmFsdWUgJiYgbXVsdGlWYWx1ZVByb3BzKSk7XG4gIGNvbnN0IGtleVNlbGVjdCA9IC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KFNlbGVjdCwge1xuICAgIGtleTogYCR7aXNWYWx1ZXNMb2FkaW5nID8gXCJsb2FkaW5nXCIgOiBcImxvYWRlZFwifWAsXG4gICAgZGlzYWJsZWQ6IG1vZGVsLnN0YXRlLnJlYWRPbmx5LFxuICAgIGNsYXNzTmFtZTogY3goc3R5bGVzLmtleSwgaXNLZXlzT3BlbiA/IHN0eWxlcy53aWR0aFdoZW5PcGVuIDogdm9pZCAwKSxcbiAgICB3aWR0aDogXCJhdXRvXCIsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogKF9jID0gbW9kZWwuc3RhdGUuYWxsb3dDdXN0b21WYWx1ZSkgIT0gbnVsbCA/IF9jIDogdHJ1ZSxcbiAgICB2YWx1ZToga2V5VmFsdWUsXG4gICAgcGxhY2Vob2xkZXI6IFwiU2VsZWN0IGxhYmVsXCIsXG4gICAgb3B0aW9uczogaGFuZGxlT3B0aW9uR3JvdXBzKGtleXMpLFxuICAgIG9uQ2hhbmdlOiAodikgPT4ge1xuICAgICAgbW9kZWwuX3VwZGF0ZUZpbHRlcihmaWx0ZXIsIHtcbiAgICAgICAga2V5OiB2LnZhbHVlLFxuICAgICAgICBrZXlMYWJlbDogdi5sYWJlbCxcbiAgICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICAgIHZhbHVlTGFiZWxzOiBbXCJcIl0sXG4gICAgICAgIHZhbHVlczogdm9pZCAwXG4gICAgICB9KTtcbiAgICAgIHNldFVuY29tbWl0dGVkVmFsdWUoW10pO1xuICAgIH0sXG4gICAgYXV0b0ZvY3VzOiBmaWx0ZXIua2V5ID09PSBcIlwiLFxuICAgIGlzT3BlbjogaXNLZXlzT3BlbiAmJiAhaXNLZXlzTG9hZGluZyxcbiAgICBpc0xvYWRpbmc6IGlzS2V5c0xvYWRpbmcsXG4gICAgb25PcGVuTWVudTogYXN5bmMgKCkgPT4ge1xuICAgICAgc2V0SXNLZXlzT3Blbih0cnVlKTtcbiAgICAgIHNldElzS2V5c0xvYWRpbmcodHJ1ZSk7XG4gICAgICBjb25zdCBrZXlzMiA9IGF3YWl0IG1vZGVsLl9nZXRLZXlzKGZpbHRlci5rZXkpO1xuICAgICAgc2V0SXNLZXlzTG9hZGluZyhmYWxzZSk7XG4gICAgICBzZXRLZXlzKGtleXMyKTtcbiAgICB9LFxuICAgIG9uQ2xvc2VNZW51OiAoKSA9PiB7XG4gICAgICBzZXRJc0tleXNPcGVuKGZhbHNlKTtcbiAgICB9LFxuICAgIG9uQmx1cjogKCkgPT4ge1xuICAgICAgaWYgKGZpbHRlci5rZXkgPT09IFwiXCIpIHtcbiAgICAgICAgbW9kZWwuX3JlbW92ZUZpbHRlcihmaWx0ZXIpO1xuICAgICAgfVxuICAgIH0sXG4gICAgb3Blbk1lbnVPbkZvY3VzOiB0cnVlXG4gIH0pO1xuICBjb25zdCBvcGVyYXRvclNlbGVjdCA9IC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KFNlbGVjdCwge1xuICAgIGNsYXNzTmFtZTogY3goc3R5bGVzLm9wZXJhdG9yLCB7XG4gICAgICBbc3R5bGVzLndpZHRoV2hlbk9wZW5dOiBpc09wZXJhdG9yT3BlblxuICAgIH0pLFxuICAgIHZhbHVlOiBmaWx0ZXIub3BlcmF0b3IsXG4gICAgZGlzYWJsZWQ6IG1vZGVsLnN0YXRlLnJlYWRPbmx5LFxuICAgIG9wdGlvbnM6IG1vZGVsLl9nZXRPcGVyYXRvcnMoKSxcbiAgICBvbkNoYW5nZTogb25PcGVyYXRvckNoYW5nZSxcbiAgICBvbk9wZW5NZW51OiAoKSA9PiB7XG4gICAgICBzZXRJc09wZXJhdG9yT3Blbih0cnVlKTtcbiAgICB9LFxuICAgIG9uQ2xvc2VNZW51OiAoKSA9PiB7XG4gICAgICBzZXRJc09wZXJhdG9yT3BlbihmYWxzZSk7XG4gICAgfVxuICB9KTtcbiAgaWYgKG1vZGVsLnN0YXRlLmxheW91dCA9PT0gXCJ2ZXJ0aWNhbFwiKSB7XG4gICAgaWYgKGZpbHRlci5rZXkpIHtcbiAgICAgIGNvbnN0IGxhYmVsID0gLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29udHJvbHNMYWJlbCwge1xuICAgICAgICBsYXlvdXQ6IFwidmVydGljYWxcIixcbiAgICAgICAgbGFiZWw6IChfZCA9IGZpbHRlci5rZXkpICE9IG51bGwgPyBfZCA6IFwiXCIsXG4gICAgICAgIG9uUmVtb3ZlOiAoKSA9PiBtb2RlbC5fcmVtb3ZlRmlsdGVyKGZpbHRlcilcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KEZpZWxkLCB7XG4gICAgICAgIGxhYmVsLFxuICAgICAgICBcImRhdGEtdGVzdGlkXCI6IGBBZEhvY0ZpbHRlci0ke2ZpbHRlci5rZXl9YCxcbiAgICAgICAgY2xhc3NOYW1lOiBzdHlsZXMuZmllbGRcbiAgICAgIH0sIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBzdHlsZXMud3JhcHBlclxuICAgICAgfSwgb3BlcmF0b3JTZWxlY3QsIHZhbHVlU2VsZWN0KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8gUmVhY3QuY3JlYXRlRWxlbWVudChGaWVsZCwge1xuICAgICAgICBsYWJlbDogXCJTZWxlY3QgbGFiZWxcIixcbiAgICAgICAgXCJkYXRhLXRlc3RpZFwiOiBgQWRIb2NGaWx0ZXItJHtmaWx0ZXIua2V5fWAsXG4gICAgICAgIGNsYXNzTmFtZTogc3R5bGVzLmZpZWxkXG4gICAgICB9LCBrZXlTZWxlY3QpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogc3R5bGVzLndyYXBwZXIsXG4gICAgXCJkYXRhLXRlc3RpZFwiOiBgQWRIb2NGaWx0ZXItJHtmaWx0ZXIua2V5fWBcbiAgfSwga2V5U2VsZWN0LCBvcGVyYXRvclNlbGVjdCwgdmFsdWVTZWxlY3QsIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KEJ1dHRvbiwge1xuICAgIHZhcmlhbnQ6IFwic2Vjb25kYXJ5XCIsXG4gICAgXCJhcmlhLWxhYmVsXCI6IFwiUmVtb3ZlIGZpbHRlclwiLFxuICAgIHRpdGxlOiBcIlJlbW92ZSBmaWx0ZXJcIixcbiAgICBjbGFzc05hbWU6IHN0eWxlcy5yZW1vdmVCdXR0b24sXG4gICAgaWNvbjogXCJ0aW1lc1wiLFxuICAgIFwiZGF0YS10ZXN0aWRcIjogYEFkSG9jRmlsdGVyLXJlbW92ZS0keyhfZSA9IGZpbHRlci5rZXkpICE9IG51bGwgPyBfZSA6IFwiXCJ9YCxcbiAgICBvbkNsaWNrOiAoKSA9PiBtb2RlbC5fcmVtb3ZlRmlsdGVyKGZpbHRlcilcbiAgfSkpO1xufVxuY29uc3QgZ2V0U3R5bGVzID0gKHRoZW1lKSA9PiAoe1xuICBmaWVsZDogY3NzKHtcbiAgICBtYXJnaW5Cb3R0b206IDBcbiAgfSksXG4gIHdyYXBwZXI6IGNzcyh7XG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgXCI+ICpcIjoge1xuICAgICAgXCImOm5vdCg6Zmlyc3QtY2hpbGQpXCI6IHtcbiAgICAgICAgbWFyZ2luTGVmdDogLTFcbiAgICAgIH0sXG4gICAgICBcIiY6Zmlyc3QtY2hpbGRcIjoge1xuICAgICAgICBib3JkZXJUb3BSaWdodFJhZGl1czogMCxcbiAgICAgICAgYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6IDBcbiAgICAgIH0sXG4gICAgICBcIiY6bGFzdC1jaGlsZFwiOiB7XG4gICAgICAgIGJvcmRlclRvcExlZnRSYWRpdXM6IDAsXG4gICAgICAgIGJvcmRlckJvdHRvbUxlZnRSYWRpdXM6IDBcbiAgICAgIH0sXG4gICAgICBcIiY6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKVwiOiB7XG4gICAgICAgIGJvcmRlclJhZGl1czogMFxuICAgICAgfSxcbiAgICAgIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gICAgICB6SW5kZXg6IDAsXG4gICAgICBcIiY6aG92ZXJcIjoge1xuICAgICAgICB6SW5kZXg6IDFcbiAgICAgIH0sXG4gICAgICBcIiY6Zm9jdXMtd2l0aGluXCI6IHtcbiAgICAgICAgekluZGV4OiAyXG4gICAgICB9XG4gICAgfVxuICB9KSxcbiAgd2lkdGhXaGVuT3BlbjogY3NzKHtcbiAgICBtaW5XaWR0aDogdGhlbWUuc3BhY2luZygxNilcbiAgfSksXG4gIHZhbHVlOiBjc3Moe1xuICAgIGZsZXhCYXNpczogXCJjb250ZW50XCIsXG4gICAgZmxleFNocmluazogMSxcbiAgICBtaW5XaWR0aDogXCI5MHB4XCJcbiAgfSksXG4gIGtleTogY3NzKHtcbiAgICBmbGV4QmFzaXM6IFwiY29udGVudFwiLFxuICAgIG1pbldpZHRoOiBcIjkwcHhcIixcbiAgICBmbGV4U2hyaW5rOiAxXG4gIH0pLFxuICBvcGVyYXRvcjogY3NzKHtcbiAgICBmbGV4U2hyaW5rOiAwLFxuICAgIGZsZXhCYXNpczogXCJjb250ZW50XCJcbiAgfSksXG4gIHJlbW92ZUJ1dHRvbjogY3NzKHtcbiAgICBwYWRkaW5nTGVmdDogdGhlbWUuc3BhY2luZygzIC8gMiksXG4gICAgcGFkZGluZ1JpZ2h0OiB0aGVtZS5zcGFjaW5nKDMgLyAyKSxcbiAgICBib3JkZXJMZWZ0OiBcIm5vbmVcIixcbiAgICB3aWR0aDogdGhlbWUuc3BhY2luZygzKSxcbiAgICBtYXJnaW5SaWdodDogdGhlbWUuc3BhY2luZygxKSxcbiAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gICAgbGVmdDogXCIxcHhcIlxuICB9KVxufSk7XG5cbmV4cG9ydCB7IEFkSG9jRmlsdGVyUmVuZGVyZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUVdSSWIyTkdhV3gwWlhKU1pXNWtaWEpsY2k1cWN5SXNJbk52ZFhKalpYTWlPbHNpTGk0dkxpNHZMaTR2TGk0dmMzSmpMM1poY21saFlteGxjeTloWkdodll5OUJaRWh2WTBacGJIUmxjbEpsYm1SbGNtVnlMblJ6ZUNKZExDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ1VtVmhZM1FzSUhzZ2RYTmxUV1Z0Ynl3Z2RYTmxVM1JoZEdVZ2ZTQm1jbTl0SUNkeVpXRmpkQ2M3WEc1Y2JtbHRjRzl5ZENCN0lFRmtTRzlqUm1sc2RHVnljMVpoY21saFlteGxMQ0JCWkVodlkwWnBiSFJsY2xkcGRHaE1ZV0psYkhNc0lHbHpUWFZzZEdsV1lXeDFaVTl3WlhKaGRHOXlJSDBnWm5KdmJTQW5MaTlCWkVodlkwWnBiSFJsY25OV1lYSnBZV0pzWlNjN1hHNXBiWEJ2Y25RZ2V5QkhjbUZtWVc1aFZHaGxiV1V5TENCVFpXeGxZM1JoWW14bFZtRnNkV1VnZlNCbWNtOXRJQ2RBWjNKaFptRnVZUzlrWVhSaEp6dGNibWx0Y0c5eWRDQjdJRUoxZEhSdmJpd2dSbWxsYkdRc0lFbHVjSFYwUVdOMGFXOXVUV1YwWVN3Z1UyVnNaV04wTENCMWMyVlRkSGxzWlhNeUlIMGdabkp2YlNBblFHZHlZV1poYm1FdmRXa25PMXh1YVcxd2IzSjBJSHNnWTNOekxDQmplQ0I5SUdaeWIyMGdKMEJsYlc5MGFXOXVMMk56Y3ljN1hHNXBiWEJ2Y25RZ2V5QkRiMjUwY205c2MweGhZbVZzSUgwZ1puSnZiU0FuTGk0dkxpNHZkWFJwYkhNdlEyOXVkSEp2YkhOTVlXSmxiQ2M3WEc1cGJYQnZjblFnZXlCblpYUkJaR2h2WTA5d2RHbHZibE5sWVhKamFHVnlJSDBnWm5KdmJTQW5MaTluWlhSQlpHaHZZMDl3ZEdsdmJsTmxZWEpqYUdWeUp6dGNibWx0Y0c5eWRDQjdJR2hoYm1Sc1pVOXdkR2x2YmtkeWIzVndjeUI5SUdaeWIyMGdKeTR1TDNWMGFXeHpKenRjYm1sdGNHOXlkQ0I3SUU5d2RHbHZibGRwZEdoRGFHVmphMkp2ZUNCOUlHWnliMjBnSnk0dUwyTnZiWEJ2Ym1WdWRITXZWbUZ5YVdGaWJHVldZV3gxWlZObGJHVmpkQ2M3WEc1Y2JtbHVkR1Z5Wm1GalpTQlFjbTl3Y3lCN1hHNGdJR1pwYkhSbGNqb2dRV1JJYjJOR2FXeDBaWEpYYVhSb1RHRmlaV3h6TzF4dUlDQnRiMlJsYkRvZ1FXUkliMk5HYVd4MFpYSnpWbUZ5YVdGaWJHVTdYRzU5WEc1Y2JtWjFibU4wYVc5dUlHdGxlVXhoWW1Wc1ZHOVBjSFJwYjI0b2EyVjVPaUJ6ZEhKcGJtY3NJR3hoWW1Wc1B6b2djM1J5YVc1bktUb2dVMlZzWldOMFlXSnNaVlpoYkhWbElId2diblZzYkNCN1hHNGdJSEpsZEhWeWJpQnJaWGtnSVQwOUlDY25YRzRnSUNBZ1B5QjdYRzRnSUNBZ0lDQWdJSFpoYkhWbE9pQnJaWGtzWEc0Z0lDQWdJQ0FnSUd4aFltVnNPaUJzWVdKbGJDQjhmQ0JyWlhrc1hHNGdJQ0FnSUNCOVhHNGdJQ0FnT2lCdWRXeHNPMXh1ZlZ4dVhHNWpiMjV6ZENCbWFXeDBaWEpPYjA5d0lEMGdLQ2tnUFQ0Z2RISjFaVHRjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUVGa1NHOWpSbWxzZEdWeVVtVnVaR1Z5WlhJb2V5Qm1hV3gwWlhJc0lHMXZaR1ZzSUgwNklGQnliM0J6S1NCN1hHNGdJR052Ym5OMElITjBlV3hsY3lBOUlIVnpaVk4wZVd4bGN6SW9aMlYwVTNSNWJHVnpLVHRjYmx4dUlDQmpiMjV6ZENCYmEyVjVjeXdnYzJWMFMyVjVjMTBnUFNCMWMyVlRkR0YwWlR4VFpXeGxZM1JoWW14bFZtRnNkV1ZiWFQ0b1cxMHBPMXh1SUNCamIyNXpkQ0JiZG1Gc2RXVnpMQ0J6WlhSV1lXeDFaWE5kSUQwZ2RYTmxVM1JoZEdVOFUyVnNaV04wWVdKc1pWWmhiSFZsVzEwK0tGdGRLVHRjYmlBZ1kyOXVjM1FnVzJselMyVjVjMHh2WVdScGJtY3NJSE5sZEVselMyVjVjMHh2WVdScGJtZGRJRDBnZFhObFUzUmhkR1VvWm1Gc2MyVXBPMXh1SUNCamIyNXpkQ0JiYVhOV1lXeDFaWE5NYjJGa2FXNW5MQ0J6WlhSSmMxWmhiSFZsYzB4dllXUnBibWRkSUQwZ2RYTmxVM1JoZEdVb1ptRnNjMlVwTzF4dUlDQmpiMjV6ZENCYmFYTkxaWGx6VDNCbGJpd2djMlYwU1hOTFpYbHpUM0JsYmwwZ1BTQjFjMlZUZEdGMFpTaG1ZV3h6WlNrN1hHNGdJR052Ym5OMElGdHBjMVpoYkhWbGMwOXdaVzRzSUhObGRFbHpWbUZzZFdWelQzQmxibDBnUFNCMWMyVlRkR0YwWlNobVlXeHpaU2s3WEc0Z0lHTnZibk4wSUZ0cGMwOXdaWEpoZEc5eVQzQmxiaXdnYzJWMFNYTlBjR1Z5WVhSdmNrOXdaVzVkSUQwZ2RYTmxVM1JoZEdVb1ptRnNjMlVwTzF4dUlDQmpiMjV6ZENCYmRtRnNkV1ZKYm5CMWRGWmhiSFZsTENCelpYUldZV3gxWlVsdWNIVjBWbUZzZFdWZElEMGdkWE5sVTNSaGRHVW9KeWNwTzF4dUlDQmpiMjV6ZENCYmRtRnNkV1ZJWVhORGRYTjBiMjFXWVd4MVpTd2djMlYwVm1Gc2RXVklZWE5EZFhOMGIyMVdZV3gxWlYwZ1BTQjFjMlZUZEdGMFpTaG1ZV3h6WlNrN1hHNGdJQzh2SUZSdklHNXZkQ0IwY21sbloyVnlJSEYxWlhKcFpYTWdiMjRnWlhabGNua2djMlZzWldOMGFXOXVJSGRsSUhOMGIzSmxJSFJvYVhNZ2MzUmhkR1VnYkc5allXeHNlU0JvWlhKbElHRnVaQ0J2Ym14NUlIVndaR0YwWlNCMGFHVWdkbUZ5YVdGaWJHVWdiMjVDYkhWeVhHNGdJR052Ym5OMElGdDFibU52YlcxcGRIUmxaRlpoYkhWbExDQnpaWFJWYm1OdmJXMXBkSFJsWkZaaGJIVmxYU0E5SUhWelpWTjBZWFJsUEZObGJHVmpkR0ZpYkdWV1lXeDFaVDRvWEc0Z0lDQWdabWxzZEdWeUxuWmhiSFZsY3lBL0lHWnBiSFJsY2k1MllXeDFaWE11YldGd0tDaDJZV3gxWlN3Z2FXNWtaWGdwSUQwK0lHdGxlVXhoWW1Wc1ZHOVBjSFJwYjI0b2RtRnNkV1VzSUdacGJIUmxjaTUyWVd4MVpVeGhZbVZzY3o4dVcybHVaR1Y0WFNrcElEb2dXMTFjYmlBZ0tUdGNiaUFnWTI5dWMzUWdhWE5OZFd4MGFWWmhiSFZsSUQwZ2FYTk5kV3gwYVZaaGJIVmxUM0JsY21GMGIzSW9abWxzZEdWeUxtOXdaWEpoZEc5eUtUdGNibHh1SUNCamIyNXpkQ0JyWlhsV1lXeDFaU0E5SUd0bGVVeGhZbVZzVkc5UGNIUnBiMjRvWm1sc2RHVnlMbXRsZVN3Z1ptbHNkR1Z5TG10bGVVeGhZbVZzS1R0Y2JpQWdZMjl1YzNRZ2RtRnNkV1ZXWVd4MVpTQTlJR3RsZVV4aFltVnNWRzlQY0hScGIyNG9abWxzZEdWeUxuWmhiSFZsTENCbWFXeDBaWEl1ZG1Gc2RXVk1ZV0psYkhNL0xsc3dYU2s3WEc1Y2JpQWdZMjl1YzNRZ2IzQjBhVzl1VTJWaGNtTm9aWElnUFNCMWMyVk5aVzF2S0NncElEMCtJR2RsZEVGa2FHOWpUM0IwYVc5dVUyVmhjbU5vWlhJb2RtRnNkV1Z6S1N3Z1czWmhiSFZsYzEwcE8xeHVYRzRnSUdOdmJuTjBJRzl1Vm1Gc2RXVkpibkIxZEVOb1lXNW5aU0E5SUNoMllXeDFaVG9nYzNSeWFXNW5MQ0I3SUdGamRHbHZiaUI5T2lCSmJuQjFkRUZqZEdsdmJrMWxkR0VwSUQwK0lIdGNiaUFnSUNCcFppQW9ZV04wYVc5dUlEMDlQU0FuYVc1d2RYUXRZMmhoYm1kbEp5a2dlMXh1SUNBZ0lDQWdjMlYwVm1Gc2RXVkpibkIxZEZaaGJIVmxLSFpoYkhWbEtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFpoYkhWbE8xeHVJQ0I5TzF4dVhHNGdJR052Ym5OMElHOXVUM0JsY21GMGIzSkRhR0Z1WjJVZ1BTQW9kam9nVTJWc1pXTjBZV0pzWlZaaGJIVmxLU0E5UGlCN1hHNGdJQ0FnWTI5dWMzUWdaWGhwYzNScGJtZFBjR1Z5WVhSdmNpQTlJR1pwYkhSbGNpNXZjR1Z5WVhSdmNqdGNiaUFnSUNCamIyNXpkQ0J1WlhkUGNHVnlZWFJ2Y2lBOUlIWXVkbUZzZFdVN1hHNWNiaUFnSUNCamIyNXpkQ0IxY0dSaGRHVTZJRkJoY25ScFlXdzhRV1JJYjJOR2FXeDBaWEpYYVhSb1RHRmlaV3h6UGlBOUlIc2diM0JsY21GMGIzSTZJRzVsZDA5d1pYSmhkRzl5SUgwN1hHNGdJQ0FnTHk4Z1kyeGxZWElnZG1Gc2RXVWdhV1lnYjNCbGNtRjBiM0lnYUdGeklHTm9ZVzVuWldRZ1puSnZiU0J0ZFd4MGFTQjBieUJ6YVc1bmJHVmNiaUFnSUNCcFppQW9hWE5OZFd4MGFWWmhiSFZsVDNCbGNtRjBiM0lvWlhocGMzUnBibWRQY0dWeVlYUnZjaWtnSmlZZ0lXbHpUWFZzZEdsV1lXeDFaVTl3WlhKaGRHOXlLRzVsZDA5d1pYSmhkRzl5S1NrZ2UxeHVJQ0FnSUNBZ2RYQmtZWFJsTG5aaGJIVmxJRDBnSnljN1hHNGdJQ0FnSUNCMWNHUmhkR1V1ZG1Gc2RXVk1ZV0psYkhNZ1BTQmJKeWRkTzF4dUlDQWdJQ0FnZFhCa1lYUmxMblpoYkhWbGN5QTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQWdJSE5sZEZWdVkyOXRiV2wwZEdWa1ZtRnNkV1VvVzEwcE8xeHVJQ0FnSUNBZ0x5OGdjMlYwSUhaaGJIVmxjeUJwWmlCdmNHVnlZWFJ2Y2lCb1lYTWdZMmhoYm1kbFpDQm1jbTl0SUhOcGJtZHNaU0IwYnlCdGRXeDBhVnh1SUNBZ0lIMGdaV3h6WlNCcFppQW9JV2x6VFhWc2RHbFdZV3gxWlU5d1pYSmhkRzl5S0dWNGFYTjBhVzVuVDNCbGNtRjBiM0lwSUNZbUlHbHpUWFZzZEdsV1lXeDFaVTl3WlhKaGRHOXlLRzVsZDA5d1pYSmhkRzl5S1NBbUppQm1hV3gwWlhJdWRtRnNkV1VwSUh0Y2JpQWdJQ0FnSUhWd1pHRjBaUzUyWVd4MVpYTWdQU0JiWm1sc2RHVnlMblpoYkhWbFhUdGNiaUFnSUNBZ0lITmxkRlZ1WTI5dGJXbDBkR1ZrVm1Gc2RXVW9XMXh1SUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ2RtRnNkV1U2SUdacGJIUmxjaTUyWVd4MVpTeGNiaUFnSUNBZ0lDQWdJQ0JzWVdKbGJEb2dabWxzZEdWeUxuWmhiSFZsVEdGaVpXeHpQeTViTUYwZ1B6OGdabWxzZEdWeUxuWmhiSFZsTEZ4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ1hTazdYRzRnSUNBZ2ZWeHVJQ0FnSUcxdlpHVnNMbDkxY0dSaGRHVkdhV3gwWlhJb1ptbHNkR1Z5TENCMWNHUmhkR1VwTzF4dUlDQjlPMXh1WEc0Z0lHTnZibk4wSUdacGJIUmxjbVZrVm1Gc2RXVlBjSFJwYjI1eklEMGdkWE5sVFdWdGJ5aGNiaUFnSUNBb0tTQTlQaUJvWVc1a2JHVlBjSFJwYjI1SGNtOTFjSE1vYjNCMGFXOXVVMlZoY21Ob1pYSW9kbUZzZFdWSmJuQjFkRlpoYkhWbEtTa3NYRzRnSUNBZ1cyOXdkR2x2YmxObFlYSmphR1Z5TENCMllXeDFaVWx1Y0hWMFZtRnNkV1ZkWEc0Z0lDazdYRzVjYmlBZ1kyOXVjM1FnYlhWc2RHbFdZV3gxWlZCeWIzQnpJRDBnZTF4dUlDQWdJR2x6VFhWc2RHazZJSFJ5ZFdVc1hHNGdJQ0FnZG1Gc2RXVTZJSFZ1WTI5dGJXbDBkR1ZrVm1Gc2RXVXNYRzRnSUNBZ1kyOXRjRzl1Wlc1MGN6b2dlMXh1SUNBZ0lDQWdUM0IwYVc5dU9pQlBjSFJwYjI1WGFYUm9RMmhsWTJ0aWIzZ3NYRzRnSUNBZ2ZTeGNiaUFnSUNCb2FXUmxVMlZzWldOMFpXUlBjSFJwYjI1ek9pQm1ZV3h6WlN4Y2JpQWdJQ0JqYkc5elpVMWxiblZQYmxObGJHVmpkRG9nWm1Gc2MyVXNYRzRnSUNBZ2IzQmxiazFsYm5WUGJrWnZZM1Z6T2lCbVlXeHpaU3hjYmlBZ0lDQnZia05vWVc1blpUb2dLSFk2SUZObGJHVmpkR0ZpYkdWV1lXeDFaU2tnUFQ0Z2UxeHVJQ0FnSUNBZ2MyVjBWVzVqYjIxdGFYUjBaV1JXWVd4MVpTaDJLVHRjYmlBZ0lDQWdJQzh2SUdOc1pXRnlJR2x1Y0hWMElIWmhiSFZsSUhkb1pXNGdZM0psWVhScGJtY2dZU0J1WlhjZ1kzVnpkRzl0SUcxMWJIUnBJSFpoYkhWbFhHNGdJQ0FnSUNCcFppQW9kaTV6YjIxbEtDaDJZV3gxWlRvZ1UyVnNaV04wWVdKc1pWWmhiSFZsS1NBOVBpQjJZV3gxWlM1ZlgybHpUbVYzWDE4cEtTQjdYRzRnSUNBZ0lDQWdJSE5sZEZaaGJIVmxTVzV3ZFhSV1lXeDFaU2duSnlrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlN4Y2JpQWdJQ0J2YmtKc2RYSTZJQ2dwSUQwK0lIdGNiaUFnSUNBZ0lHMXZaR1ZzTGw5MWNHUmhkR1ZHYVd4MFpYSW9abWxzZEdWeUxDQjdYRzRnSUNBZ0lDQWdJSFpoYkhWbE9pQjFibU52YlcxcGRIUmxaRlpoYkhWbFd6QmRQeTUyWVd4MVpTQS9QeUFuSnl4Y2JpQWdJQ0FnSUNBZ0x5OGdWRTlFVHlCeVpXMXZkbVVnWlhod1pXTjBMV1Z5Y205eUlIZG9aVzRnZDJVbmNtVWdiMjRnZEdobElHeGhkR1Z6ZENCMlpYSnphVzl1SUc5bUlFQm5jbUZtWVc1aEwyUmhkR0ZjYmlBZ0lDQWdJQ0FnZG1Gc2RXVnpPaUIxYm1OdmJXMXBkSFJsWkZaaGJIVmxMbTFoY0Nnb2IzQjBhVzl1T2lCVFpXeGxZM1JoWW14bFZtRnNkV1U4YzNSeWFXNW5QaWtnUFQ0Z2IzQjBhVzl1TG5aaGJIVmxLU3hjYmlBZ0lDQWdJQ0FnZG1Gc2RXVk1ZV0psYkhNNklIVnVZMjl0YldsMGRHVmtWbUZzZFdVdWJXRndLQ2h2Y0hScGIyNDZJRk5sYkdWamRHRmliR1ZXWVd4MVpUeHpkSEpwYm1jK0tTQTlQaUJ2Y0hScGIyNHViR0ZpWld3cExGeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZTeGNiaUFnZlR0Y2JseHVJQ0JqYjI1emRDQjJZV3gxWlZObGJHVmpkQ0E5SUNoY2JpQWdJQ0E4VTJWc1pXTjBYRzRnSUNBZ0lDQjJhWEowZFdGc2FYcGxaRnh1SUNBZ0lDQWdZV3hzYjNkRGRYTjBiMjFXWVd4MVpUMTdiVzlrWld3dWMzUmhkR1V1WVd4c2IzZERkWE4wYjIxV1lXeDFaU0EvUHlCMGNuVmxmVnh1SUNBZ0lDQWdhWE5XWVd4cFpFNWxkMDl3ZEdsdmJqMTdLR2x1Y0hWMFZtRnNkV1VwSUQwK0lHbHVjSFYwVm1Gc2RXVXVkSEpwYlNncExteGxibWQwYUNBK0lEQjlYRzRnSUNBZ0lDQmhiR3h2ZDBOeVpXRjBaVmRvYVd4bFRHOWhaR2x1WjF4dUlDQWdJQ0FnWm05eWJXRjBRM0psWVhSbFRHRmlaV3c5ZXlocGJuQjFkRlpoYkhWbEtTQTlQaUJnVlhObElHTjFjM1J2YlNCMllXeDFaVG9nSkh0cGJuQjFkRlpoYkhWbGZXQjlYRzRnSUNBZ0lDQmthWE5oWW14bFpEMTdiVzlrWld3dWMzUmhkR1V1Y21WaFpFOXViSGw5WEc0Z0lDQWdJQ0JqYkdGemMwNWhiV1U5ZTJONEtITjBlV3hsY3k1MllXeDFaU3dnYVhOV1lXeDFaWE5QY0dWdUlEOGdjM1I1YkdWekxuZHBaSFJvVjJobGJrOXdaVzRnT2lCMWJtUmxabWx1WldRcGZWeHVJQ0FnSUNBZ2QybGtkR2c5WENKaGRYUnZYQ0pjYmlBZ0lDQWdJSFpoYkhWbFBYdDJZV3gxWlZaaGJIVmxmVnh1SUNBZ0lDQWdabWxzZEdWeVQzQjBhVzl1UFh0bWFXeDBaWEpPYjA5d2ZWeHVJQ0FnSUNBZ2NHeGhZMlZvYjJ4a1pYSTlleWRUWld4bFkzUWdkbUZzZFdVbmZWeHVJQ0FnSUNBZ2IzQjBhVzl1Y3oxN1ptbHNkR1Z5WldSV1lXeDFaVTl3ZEdsdmJuTjlYRzRnSUNBZ0lDQnBibkIxZEZaaGJIVmxQWHQyWVd4MVpVbHVjSFYwVm1Gc2RXVjlYRzRnSUNBZ0lDQnZia2x1Y0hWMFEyaGhibWRsUFh0dmJsWmhiSFZsU1c1d2RYUkRhR0Z1WjJWOVhHNGdJQ0FnSUNCdmJrTm9ZVzVuWlQxN0tIWXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ2JXOWtaV3d1WDNWd1pHRjBaVVpwYkhSbGNpaG1hV3gwWlhJc0lIdGNiaUFnSUNBZ0lDQWdJQ0IyWVd4MVpUb2dkaTUyWVd4MVpTeGNiaUFnSUNBZ0lDQWdJQ0IyWVd4MVpVeGhZbVZzY3pvZ2RpNXNZV0psYkNBL0lGdDJMbXhoWW1Wc1hTQTZJRnQyTG5aaGJIVmxYU3hjYmlBZ0lDQWdJQ0FnZlNrN1hHNWNiaUFnSUNBZ0lDQWdhV1lnS0haaGJIVmxTR0Z6UTNWemRHOXRWbUZzZFdVZ0lUMDlJSFl1WDE5cGMwNWxkMTlmS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjMlYwVm1Gc2RXVklZWE5EZFhOMGIyMVdZV3gxWlNoMkxsOWZhWE5PWlhkZlh5azdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDE5WEc0Z0lDQWdJQ0F2THlCMGFHVnlaU2R6SUdFZ1luVm5JR2x1SUhKbFlXTjBMWE5sYkdWamRDQjNhR1Z5WlNCMGFHVWdiV1Z1ZFNCa2IyVnpiaWQwSUhKbFkyRnNZM1ZzWVhSbElHbDBjeUJ3YjNOcGRHbHZiaUIzYUdWdUlIUm9aU0J2Y0hScGIyNXpJR0Z5WlNCc2IyRmtaV1FnWVhONWJtTm9jbTl1YjNWemJIbGNiaUFnSUNBZ0lDOHZJSE5sWlNCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdlozSmhabUZ1WVM5bmNtRm1ZVzVoTDJsemMzVmxjeTgyTXpVMU9GeHVJQ0FnSUNBZ0x5OGdhVzV6ZEdWaFpDd2dkMlVnWlhod2JHbGphWFJzZVNCamIyNTBjbTlzSUhSb1pTQnRaVzUxSUhacGMybGlhV3hwZEhrZ1lXNWtJSEJ5WlhabGJuUWdjMmh2ZDJsdVp5QnBkQ0IxYm5ScGJDQjBhR1VnYjNCMGFXOXVjeUJvWVhabElHWjFiR3g1SUd4dllXUmxaRnh1SUNBZ0lDQWdhWE5QY0dWdVBYdHBjMVpoYkhWbGMwOXdaVzRnSmlZZ0lXbHpWbUZzZFdWelRHOWhaR2x1WjMxY2JpQWdJQ0FnSUdselRHOWhaR2x1WnoxN2FYTldZV3gxWlhOTWIyRmthVzVuZlZ4dUlDQWdJQ0FnYjNCbGJrMWxiblZQYmtadlkzVnpQWHQwY25WbGZWeHVJQ0FnSUNBZ2IyNVBjR1Z1VFdWdWRUMTdZWE41Ym1NZ0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNCelpYUkpjMVpoYkhWbGMweHZZV1JwYm1jb2RISjFaU2s3WEc0Z0lDQWdJQ0FnSUhObGRFbHpWbUZzZFdWelQzQmxiaWgwY25WbEtUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2RtRnNkV1Z6SUQwZ1lYZGhhWFFnYlc5a1pXd3VYMmRsZEZaaGJIVmxjMFp2Y2lobWFXeDBaWElwTzF4dUlDQWdJQ0FnSUNCelpYUkpjMVpoYkhWbGMweHZZV1JwYm1jb1ptRnNjMlVwTzF4dUlDQWdJQ0FnSUNCelpYUldZV3gxWlhNb2RtRnNkV1Z6S1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLSFpoYkhWbFNHRnpRM1Z6ZEc5dFZtRnNkV1VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnpaWFJXWVd4MVpVbHVjSFYwVm1Gc2RXVW9kbUZzZFdWV1lXeDFaVDh1YkdGaVpXd2dQejhnSnljcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlmVnh1SUNBZ0lDQWdiMjVEYkc5elpVMWxiblU5ZXlncElEMCtJSHRjYmlBZ0lDQWdJQ0FnYzJWMFNYTldZV3gxWlhOUGNHVnVLR1poYkhObEtUdGNiaUFnSUNBZ0lDQWdjMlYwVm1Gc2RXVkpibkIxZEZaaGJIVmxLQ2NuS1R0Y2JpQWdJQ0FnSUgxOVhHNGdJQ0FnSUNCN0xpNHVLR2x6VFhWc2RHbFdZV3gxWlNBbUppQnRkV3gwYVZaaGJIVmxVSEp2Y0hNcGZWeHVJQ0FnSUM4K1hHNGdJQ2s3WEc1Y2JpQWdZMjl1YzNRZ2EyVjVVMlZzWldOMElEMGdLRnh1SUNBZ0lEeFRaV3hsWTNSY2JpQWdJQ0FnSUM4dklFSjVJR05vWVc1bmFXNW5JSFJvWlNCclpYa3NJSGRsSUhKbGMyVjBJSFJvWlNCVFpXeGxZM1FnWTI5dGNHOXVaVzUwTEZ4dUlDQWdJQ0FnTHk4Z2RHOGdaVzV6ZFhKbElIUm9ZWFFnZEdobElHeHZZV1JsWkNCMllXeDFaWE1nWVhKbElITm9iM2R1SUdGbWRHVnlJSFJvWlhrZ1lYSmxJR3h2WVdSbFpGeHVJQ0FnSUNBZ2EyVjVQWHRnSkh0cGMxWmhiSFZsYzB4dllXUnBibWNnUHlBbmJHOWhaR2x1WnljZ09pQW5iRzloWkdWa0ozMWdmVnh1SUNBZ0lDQWdaR2x6WVdKc1pXUTllMjF2WkdWc0xuTjBZWFJsTG5KbFlXUlBibXg1ZlZ4dUlDQWdJQ0FnWTJ4aGMzTk9ZVzFsUFh0amVDaHpkSGxzWlhNdWEyVjVMQ0JwYzB0bGVYTlBjR1Z1SUQ4Z2MzUjViR1Z6TG5kcFpIUm9WMmhsYms5d1pXNGdPaUIxYm1SbFptbHVaV1FwZlZ4dUlDQWdJQ0FnZDJsa2RHZzlYQ0poZFhSdlhDSmNiaUFnSUNBZ0lHRnNiRzkzUTNWemRHOXRWbUZzZFdVOWUyMXZaR1ZzTG5OMFlYUmxMbUZzYkc5M1EzVnpkRzl0Vm1Gc2RXVWdQejhnZEhKMVpYMWNiaUFnSUNBZ0lIWmhiSFZsUFh0clpYbFdZV3gxWlgxY2JpQWdJQ0FnSUhCc1lXTmxhRzlzWkdWeVBYc25VMlZzWldOMElHeGhZbVZzSjMxY2JpQWdJQ0FnSUc5d2RHbHZibk05ZTJoaGJtUnNaVTl3ZEdsdmJrZHliM1Z3Y3loclpYbHpLWDFjYmlBZ0lDQWdJRzl1UTJoaGJtZGxQWHNvZGlrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0J0YjJSbGJDNWZkWEJrWVhSbFJtbHNkR1Z5S0dacGJIUmxjaXdnZTF4dUlDQWdJQ0FnSUNBZ0lHdGxlVG9nZGk1MllXeDFaU3hjYmlBZ0lDQWdJQ0FnSUNCclpYbE1ZV0psYkRvZ2RpNXNZV0psYkN4Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJqYkdWaGNpQjJZV3gxWlNCcFppQnJaWGtnYUdGeklHTm9ZVzVuWldSY2JpQWdJQ0FnSUNBZ0lDQjJZV3gxWlRvZ0p5Y3NYRzRnSUNBZ0lDQWdJQ0FnZG1Gc2RXVk1ZV0psYkhNNklGc25KMTBzWEc0Z0lDQWdJQ0FnSUNBZ2RtRnNkV1Z6T2lCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0J6WlhSVmJtTnZiVzFwZEhSbFpGWmhiSFZsS0Z0ZEtUdGNiaUFnSUNBZ0lIMTlYRzRnSUNBZ0lDQmhkWFJ2Um05amRYTTllMlpwYkhSbGNpNXJaWGtnUFQwOUlDY25mVnh1SUNBZ0lDQWdMeThnZEdobGNtVW5jeUJoSUdKMVp5QnBiaUJ5WldGamRDMXpaV3hsWTNRZ2QyaGxjbVVnZEdobElHMWxiblVnWkc5bGMyNG5kQ0J5WldOaGJHTjFiR0YwWlNCcGRITWdjRzl6YVhScGIyNGdkMmhsYmlCMGFHVWdiM0IwYVc5dWN5QmhjbVVnYkc5aFpHVmtJR0Z6ZVc1amFISnZibTkxYzJ4NVhHNGdJQ0FnSUNBdkx5QnpaV1VnYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJkeVlXWmhibUV2WjNKaFptRnVZUzlwYzNOMVpYTXZOak0xTlRoY2JpQWdJQ0FnSUM4dklHbHVjM1JsWVdRc0lIZGxJR1Y0Y0d4cFkybDBiSGtnWTI5dWRISnZiQ0IwYUdVZ2JXVnVkU0IyYVhOcFltbHNhWFI1SUdGdVpDQndjbVYyWlc1MElITm9iM2RwYm1jZ2FYUWdkVzUwYVd3Z2RHaGxJRzl3ZEdsdmJuTWdhR0YyWlNCbWRXeHNlU0JzYjJGa1pXUmNiaUFnSUNBZ0lHbHpUM0JsYmoxN2FYTkxaWGx6VDNCbGJpQW1KaUFoYVhOTFpYbHpURzloWkdsdVozMWNiaUFnSUNBZ0lHbHpURzloWkdsdVp6MTdhWE5MWlhselRHOWhaR2x1WjMxY2JpQWdJQ0FnSUc5dVQzQmxiazFsYm5VOWUyRnplVzVqSUNncElEMCtJSHRjYmlBZ0lDQWdJQ0FnYzJWMFNYTkxaWGx6VDNCbGJpaDBjblZsS1R0Y2JpQWdJQ0FnSUNBZ2MyVjBTWE5MWlhselRHOWhaR2x1WnloMGNuVmxLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdhMlY1Y3lBOUlHRjNZV2wwSUcxdlpHVnNMbDluWlhSTFpYbHpLR1pwYkhSbGNpNXJaWGtwTzF4dUlDQWdJQ0FnSUNCelpYUkpjMHRsZVhOTWIyRmthVzVuS0daaGJITmxLVHRjYmlBZ0lDQWdJQ0FnYzJWMFMyVjVjeWhyWlhsektUdGNiaUFnSUNBZ0lIMTlYRzRnSUNBZ0lDQnZia05zYjNObFRXVnVkVDE3S0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0J6WlhSSmMwdGxlWE5QY0dWdUtHWmhiSE5sS1R0Y2JpQWdJQ0FnSUgxOVhHNGdJQ0FnSUNCdmJrSnNkWEk5ZXlncElEMCtJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHWnBiSFJsY2k1clpYa2dQVDA5SUNjbktTQjdYRzRnSUNBZ0lDQWdJQ0FnYlc5a1pXd3VYM0psYlc5MlpVWnBiSFJsY2lobWFXeDBaWElwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOWZWeHVJQ0FnSUNBZ2IzQmxiazFsYm5WUGJrWnZZM1Z6UFh0MGNuVmxmVnh1SUNBZ0lDOCtYRzRnSUNrN1hHNWNiaUFnWTI5dWMzUWdiM0JsY21GMGIzSlRaV3hsWTNRZ1BTQW9YRzRnSUNBZ1BGTmxiR1ZqZEZ4dUlDQWdJQ0FnWTJ4aGMzTk9ZVzFsUFh0amVDaHpkSGxzWlhNdWIzQmxjbUYwYjNJc0lIdGNiaUFnSUNBZ0lDQWdXM04wZVd4bGN5NTNhV1IwYUZkb1pXNVBjR1Z1WFRvZ2FYTlBjR1Z5WVhSdmNrOXdaVzRzWEc0Z0lDQWdJQ0I5S1gxY2JpQWdJQ0FnSUhaaGJIVmxQWHRtYVd4MFpYSXViM0JsY21GMGIzSjlYRzRnSUNBZ0lDQmthWE5oWW14bFpEMTdiVzlrWld3dWMzUmhkR1V1Y21WaFpFOXViSGw5WEc0Z0lDQWdJQ0J2Y0hScGIyNXpQWHR0YjJSbGJDNWZaMlYwVDNCbGNtRjBiM0p6S0NsOVhHNGdJQ0FnSUNCdmJrTm9ZVzVuWlQxN2IyNVBjR1Z5WVhSdmNrTm9ZVzVuWlgxY2JpQWdJQ0FnSUc5dVQzQmxiazFsYm5VOWV5Z3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ2MyVjBTWE5QY0dWeVlYUnZjazl3Wlc0b2RISjFaU2s3WEc0Z0lDQWdJQ0I5ZlZ4dUlDQWdJQ0FnYjI1RGJHOXpaVTFsYm5VOWV5Z3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ2MyVjBTWE5QY0dWeVlYUnZjazl3Wlc0b1ptRnNjMlVwTzF4dUlDQWdJQ0FnZlgxY2JpQWdJQ0F2UGx4dUlDQXBPMXh1WEc0Z0lHbG1JQ2h0YjJSbGJDNXpkR0YwWlM1c1lYbHZkWFFnUFQwOUlDZDJaWEowYVdOaGJDY3BJSHRjYmlBZ0lDQnBaaUFvWm1sc2RHVnlMbXRsZVNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYkdGaVpXd2dQU0FvWEc0Z0lDQWdJQ0FnSUR4RGIyNTBjbTlzYzB4aFltVnNJR3hoZVc5MWREMWNJblpsY25ScFkyRnNYQ0lnYkdGaVpXdzllMlpwYkhSbGNpNXJaWGtnUHo4Z0p5ZDlJRzl1VW1WdGIzWmxQWHNvS1NBOVBpQnRiMlJsYkM1ZmNtVnRiM1psUm1sc2RHVnlLR1pwYkhSbGNpbDlJQzgrWEc0Z0lDQWdJQ0FwTzF4dVhHNGdJQ0FnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnSUNBOFJtbGxiR1FnYkdGaVpXdzllMnhoWW1Wc2ZTQmtZWFJoTFhSbGMzUnBaRDE3WUVGa1NHOWpSbWxzZEdWeUxTUjdabWxzZEdWeUxtdGxlWDFnZlNCamJHRnpjMDVoYldVOWUzTjBlV3hsY3k1bWFXVnNaSDArWEc0Z0lDQWdJQ0FnSUNBZ1BHUnBkaUJqYkdGemMwNWhiV1U5ZTNOMGVXeGxjeTUzY21Gd2NHVnlmVDVjYmlBZ0lDQWdJQ0FnSUNBZ0lIdHZjR1Z5WVhSdmNsTmxiR1ZqZEgxY2JpQWdJQ0FnSUNBZ0lDQWdJSHQyWVd4MVpWTmxiR1ZqZEgxY2JpQWdJQ0FnSUNBZ0lDQThMMlJwZGo1Y2JpQWdJQ0FnSUNBZ1BDOUdhV1ZzWkQ1Y2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQW9YRzRnSUNBZ0lDQWdJRHhHYVdWc1pDQnNZV0psYkQxN0oxTmxiR1ZqZENCc1lXSmxiQ2Q5SUdSaGRHRXRkR1Z6ZEdsa1BYdGdRV1JJYjJOR2FXeDBaWEl0Skh0bWFXeDBaWEl1YTJWNWZXQjlJR05zWVhOelRtRnRaVDE3YzNSNWJHVnpMbVpwWld4a2ZUNWNiaUFnSUNBZ0lDQWdJQ0I3YTJWNVUyVnNaV04wZlZ4dUlDQWdJQ0FnSUNBOEwwWnBaV3hrUGx4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCeVpYUjFjbTRnS0Z4dUlDQWdJRHhrYVhZZ1kyeGhjM05PWVcxbFBYdHpkSGxzWlhNdWQzSmhjSEJsY24wZ1pHRjBZUzEwWlhOMGFXUTllMkJCWkVodlkwWnBiSFJsY2kwa2UyWnBiSFJsY2k1clpYbDlZSDArWEc0Z0lDQWdJQ0I3YTJWNVUyVnNaV04wZlZ4dUlDQWdJQ0FnZTI5d1pYSmhkRzl5VTJWc1pXTjBmVnh1SUNBZ0lDQWdlM1poYkhWbFUyVnNaV04wZlZ4dUlDQWdJQ0FnUEVKMWRIUnZibHh1SUNBZ0lDQWdJQ0IyWVhKcFlXNTBQVndpYzJWamIyNWtZWEo1WENKY2JpQWdJQ0FnSUNBZ1lYSnBZUzFzWVdKbGJEMWNJbEpsYlc5MlpTQm1hV3gwWlhKY0lseHVJQ0FnSUNBZ0lDQjBhWFJzWlQxY0lsSmxiVzkyWlNCbWFXeDBaWEpjSWx4dUlDQWdJQ0FnSUNCamJHRnpjMDVoYldVOWUzTjBlV3hsY3k1eVpXMXZkbVZDZFhSMGIyNTlYRzRnSUNBZ0lDQWdJR2xqYjI0OVhDSjBhVzFsYzF3aVhHNGdJQ0FnSUNBZ0lHUmhkR0V0ZEdWemRHbGtQWHRnUVdSSWIyTkdhV3gwWlhJdGNtVnRiM1psTFNSN1ptbHNkR1Z5TG10bGVTQS9QeUFuSjMxZ2ZWeHVJQ0FnSUNBZ0lDQnZia05zYVdOclBYc29LU0E5UGlCdGIyUmxiQzVmY21WdGIzWmxSbWxzZEdWeUtHWnBiSFJsY2lsOVhHNGdJQ0FnSUNBdlBseHVJQ0FnSUR3dlpHbDJQbHh1SUNBcE8xeHVmVnh1WEc1amIyNXpkQ0JuWlhSVGRIbHNaWE1nUFNBb2RHaGxiV1U2SUVkeVlXWmhibUZVYUdWdFpUSXBJRDArSUNoN1hHNGdJR1pwWld4a09pQmpjM01vZTF4dUlDQWdJRzFoY21kcGJrSnZkSFJ2YlRvZ01DeGNiaUFnZlNrc1hHNGdJSGR5WVhCd1pYSTZJR056Y3loN1hHNGdJQ0FnWkdsemNHeGhlVG9nSjJac1pYZ25MRnh1SUNBZ0lDYytJQ29uT2lCN1hHNGdJQ0FnSUNBbkpqcHViM1FvT21acGNuTjBMV05vYVd4a0tTYzZJSHRjYmlBZ0lDQWdJQ0FnTHk4Z1RtVm5ZWFJwZG1VZ2JXRnlaMmx1SUdocFpHVnpJSFJvWlNCa2IzVmliR1V0WW05eVpHVnlJRzl1SUdGa2FtRmpaVzUwSUhObGJHVmpkSE5jYmlBZ0lDQWdJQ0FnYldGeVoybHVUR1ZtZERvZ0xURXNYRzRnSUNBZ0lDQjlMRnh1WEc0Z0lDQWdJQ0FuSmpwbWFYSnpkQzFqYUdsc1pDYzZJSHRjYmlBZ0lDQWdJQ0FnWW05eVpHVnlWRzl3VW1sbmFIUlNZV1JwZFhNNklEQXNYRzRnSUNBZ0lDQWdJR0p2Y21SbGNrSnZkSFJ2YlZKcFoyaDBVbUZrYVhWek9pQXdMRnh1SUNBZ0lDQWdmU3hjYmx4dUlDQWdJQ0FnSnlZNmJHRnpkQzFqYUdsc1pDYzZJSHRjYmlBZ0lDQWdJQ0FnWW05eVpHVnlWRzl3VEdWbWRGSmhaR2wxY3pvZ01DeGNiaUFnSUNBZ0lDQWdZbTl5WkdWeVFtOTBkRzl0VEdWbWRGSmhaR2wxY3pvZ01DeGNiaUFnSUNBZ0lIMHNYRzVjYmlBZ0lDQWdJQ2NtT201dmRDZzZabWx5YzNRdFkyaHBiR1FwT201dmRDZzZiR0Z6ZEMxamFHbHNaQ2tuT2lCN1hHNGdJQ0FnSUNBZ0lHSnZjbVJsY2xKaFpHbDFjem9nTUN4Y2JpQWdJQ0FnSUgwc1hHNWNiaUFnSUNBZ0lDOHZJRVpwZUNCbWIyTjFjeUJ6ZEdGMFpTQjZTVzVrWlhnZ2FYTnpkV1Z6WEc0Z0lDQWdJQ0J3YjNOcGRHbHZiam9nSjNKbGJHRjBhWFpsSnl4Y2JpQWdJQ0FnSUhwSmJtUmxlRG9nTUN4Y2JseHVJQ0FnSUNBZ0x5OGdRV1JxWVdObGJuUWdZbTl5WkdWeWN5QmhjbVVnYjNabGNteGhjSEJwYm1jc0lITnZJSEpoYVhObElHTm9hV3hrY21WdUlIVndJSGRvWlc0Z2FHOTJaWEpwYm1jZ1pYUmpYRzRnSUNBZ0lDQXZMeUJ6YnlCaGJHd2dkR2hoZENCamFHbHNaQ2R6SUdKdmNtUmxjbk1nWVhKbElIWnBjMmxpYkdVdVhHNGdJQ0FnSUNBbkpqcG9iM1psY2ljNklIdGNiaUFnSUNBZ0lDQWdla2x1WkdWNE9pQXhMRnh1SUNBZ0lDQWdmU3hjYmx4dUlDQWdJQ0FnSnlZNlptOWpkWE10ZDJsMGFHbHVKem9nZTF4dUlDQWdJQ0FnSUNCNlNXNWtaWGc2SURJc1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUgwc1hHNGdJSDBwTEZ4dUlDQjNhV1IwYUZkb1pXNVBjR1Z1T2lCamMzTW9lMXh1SUNBZ0lHMXBibGRwWkhSb09pQjBhR1Z0WlM1emNHRmphVzVuS0RFMktTeGNiaUFnZlNrc1hHNGdJSFpoYkhWbE9pQmpjM01vZTF4dUlDQWdJR1pzWlhoQ1lYTnBjem9nSjJOdmJuUmxiblFuTEZ4dUlDQWdJR1pzWlhoVGFISnBibXM2SURFc1hHNGdJQ0FnYldsdVYybGtkR2c2SUNjNU1IQjRKeXhjYmlBZ2ZTa3NYRzRnSUd0bGVUb2dZM056S0h0Y2JpQWdJQ0JtYkdWNFFtRnphWE02SUNkamIyNTBaVzUwSnl4Y2JpQWdJQ0J0YVc1WGFXUjBhRG9nSnprd2NIZ25MRnh1SUNBZ0lHWnNaWGhUYUhKcGJtczZJREVzWEc0Z0lIMHBMRnh1SUNCdmNHVnlZWFJ2Y2pvZ1kzTnpLSHRjYmlBZ0lDQm1iR1Y0VTJoeWFXNXJPaUF3TEZ4dUlDQWdJR1pzWlhoQ1lYTnBjem9nSjJOdmJuUmxiblFuTEZ4dUlDQjlLU3hjYmlBZ2NtVnRiM1psUW5WMGRHOXVPaUJqYzNNb2UxeHVJQ0FnSUhCaFpHUnBibWRNWldaME9pQjBhR1Z0WlM1emNHRmphVzVuS0RNZ0x5QXlLU3hjYmlBZ0lDQndZV1JrYVc1blVtbG5hSFE2SUhSb1pXMWxMbk53WVdOcGJtY29NeUF2SURJcExGeHVJQ0FnSUdKdmNtUmxja3hsWm5RNklDZHViMjVsSnl4Y2JpQWdJQ0IzYVdSMGFEb2dkR2hsYldVdWMzQmhZMmx1WnlnektTeGNiaUFnSUNCdFlYSm5hVzVTYVdkb2REb2dkR2hsYldVdWMzQmhZMmx1WnlneEtTeGNiaUFnSUNCaWIzaFRhWHBwYm1jNklDZGliM0prWlhJdFltOTRKeXhjYmlBZ0lDQXZMeUJVYnlCdWIzUWdhR0YyWlNCaWRYUjBiMjRnWW1GamEyZHliM1Z1WkNCaGJtUWdiR0Z6ZENCelpXeGxZM1FnWW05eVpHVnlJR2x1ZEdWeWMyVmpkRnh1SUNBZ0lIQnZjMmwwYVc5dU9pQW5jbVZzWVhScGRtVW5MRnh1SUNBZ0lHeGxablE2SUNjeGNIZ25MRnh1SUNCOUtTeGNibjBwTzF4dUlsMHNJbTVoYldWeklqcGJJbDloSWl3aVgySWlMQ0oyWVd4MVpYTWlMQ0pyWlhseklsMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMEZCWjBKQkxGTkJRVk1zWjBKQlFVRXNRMEZCYVVJc1MwRkJZU3hMUVVGM1F5eEZRVUZCTzBGQlF6ZEZMRVZCUVVFc1QwRkJUeXhSUVVGUkxFVkJRMWdzUjBGQlFUdEJRVUZCTEVsQlEwVXNTMEZCVHl4RlFVRkJMRWRCUVVFN1FVRkJRU3hKUVVOUUxFOUJRVThzUzBGQlV5eEpRVUZCTEVkQlFVRTdRVUZCUVN4SFFVVnNRaXhIUVVGQkxFbEJRVUVzUTBGQlFUdEJRVU5PTEVOQlFVRTdRVUZGUVN4TlFVRk5MR0ZCUVdFc1RVRkJUU3hKUVVGQkxFTkJRVUU3UVVGRmJFSXNVMEZCVXl4dFFrRkJiMElzUTBGQlFTeEZRVUZGTEUxQlFWRXNSVUZCUVN4TFFVRkJMRVZCUVdkQ0xFVkJRVUU3UVVFelFqbEVMRVZCUVVFc1NVRkJRU3hGUVVGQkxFVkJRVUVzUlVGQlFTeEZRVUZCTEVWQlFVRXNSVUZCUVN4RlFVRkJMRVZCUVVFc1JVRkJRU3hEUVVGQk8wRkJORUpGTEVWQlFVMHNUVUZCUVN4TlFVRkJMRWRCUVZNc1YwRkJWeXhUUVVGVExFTkJRVUVzUTBGQlFUdEJRVVZ1UXl4RlFVRkJMRTFCUVUwc1EwRkJReXhKUVVGTkxFVkJRVUVzVDBGQlR5eERRVUZKTEVkQlFVRXNVVUZCUVN4RFFVRTBRaXhGUVVGRkxFTkJRVUVzUTBGQlFUdEJRVU4wUkN4RlFVRkJMRTFCUVUwc1EwRkJReXhOUVVGUkxFVkJRVUVzVTBGQlV5eERRVUZKTEVkQlFVRXNVVUZCUVN4RFFVRTBRaXhGUVVGRkxFTkJRVUVzUTBGQlFUdEJRVU14UkN4RlFVRkJMRTFCUVUwc1EwRkJReXhoUVVGQkxFVkJRV1VzWjBKQlFXZENMRU5CUVVFc1IwRkJTU3hUUVVGVExFdEJRVXNzUTBGQlFTeERRVUZCTzBGQlEzaEVMRVZCUVVFc1RVRkJUU3hEUVVGRExHVkJRVUVzUlVGQmFVSXNhMEpCUVd0Q0xFTkJRVUVzUjBGQlNTeFRRVUZUTEV0QlFVc3NRMEZCUVN4RFFVRkJPMEZCUXpWRUxFVkJRVUVzVFVGQlRTeERRVUZETEZWQlFVRXNSVUZCV1N4aFFVRmhMRU5CUVVFc1IwRkJTU3hUUVVGVExFdEJRVXNzUTBGQlFTeERRVUZCTzBGQlEyeEVMRVZCUVVFc1RVRkJUU3hEUVVGRExGbEJRVUVzUlVGQll5eGxRVUZsTEVOQlFVRXNSMEZCU1N4VFFVRlRMRXRCUVVzc1EwRkJRU3hEUVVGQk8wRkJRM1JFTEVWQlFVRXNUVUZCVFN4RFFVRkRMR05CUVVFc1JVRkJaMElzYVVKQlFXbENMRU5CUVVFc1IwRkJTU3hUUVVGVExFdEJRVXNzUTBGQlFTeERRVUZCTzBGQlF6RkVMRVZCUVVFc1RVRkJUU3hEUVVGRExHVkJRVUVzUlVGQmFVSXNhMEpCUVd0Q0xFTkJRVUVzUjBGQlNTeFRRVUZUTEVWQlFVVXNRMEZCUVN4RFFVRkJPMEZCUTNwRUxFVkJRVUVzVFVGQlRTeERRVUZETEcxQ1FVRkJMRVZCUVhGQ0xITkNRVUZ6UWl4RFFVRkJMRWRCUVVrc1UwRkJVeXhMUVVGTExFTkJRVUVzUTBGQlFUdEJRVVZ3UlN4RlFVRk5MRTFCUVVFc1EwRkJReXhuUWtGQmEwSXNSVUZCUVN4dFFrRkJiVUlzUTBGQlNTeEhRVUZCTEZGQlFVRTdRVUZCUVN4SlFVTTVReXhQUVVGUExFMUJRVk1zUjBGQlFTeE5RVUZCTEVOQlFVOHNUMEZCVHl4SFFVRkpMRU5CUVVFc1EwRkJReXhQUVVGUExFdEJRVThzUzBGQlFUdEJRWHBEY2tRc1RVRkJRVUVzU1VGQlFVRXNSMEZCUVVFc1EwRkJRVUU3UVVGNVEzZEVMRTFCUVVFc1QwRkJRU3huUWtGQlFTeERRVUZwUWl4UlFVRlBRU3hIUVVGQkxFZEJRVUVzVFVGQlFTeERRVUZQTEZkQlFWQXNTMEZCUVN4SlFVRkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUZCTEVsQlFYRkNMRXRCUVUwc1EwRkJRU3hEUVVGQkxFTkJRVUU3UVVGQlFTeExRVUZETEVsQlFVa3NSVUZCUXp0QlFVRkJMRWRCUXk5SExFTkJRVUU3UVVGRFFTeEZRVUZOTEUxQlFVRXNXVUZCUVN4SFFVRmxMRzlDUVVGeFFpeERRVUZCTEUxQlFVRXNRMEZCVHl4UlFVRlJMRU5CUVVFc1EwRkJRVHRCUVVWNlJDeEZRVUZCTEUxQlFVMHNVVUZCVnl4SFFVRkJMR2RDUVVGQkxFTkJRV2xDTEUxQlFVOHNRMEZCUVN4SFFVRkJMRVZCUVVzc1QwRkJUeXhSUVVGUkxFTkJRVUVzUTBGQlFUdEJRVU0zUkN4RlFVRkJMRTFCUVUwc1lVRkJZU3huUWtGQmFVSXNRMEZCUVN4TlFVRkJMRU5CUVU4c1VVRkJUeXhGUVVGUExFZEJRVUVzVFVGQlFTeERRVUZCTEZkQlFVRXNTMEZCVUN4dFFrRkJjVUlzUTBGQlJTeERRVUZCTEVOQlFVRXNRMEZCUVR0QlFVVjZSU3hGUVVGTkxFMUJRVUVzWTBGQlFTeEhRVUZwUWl4UlFVRlJMRTFCUVUwc2MwSkJRVUVzUTBGQmRVSXNUVUZCVFN4RFFVRkhMRVZCUVVFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlFTeERRVUZCTzBGQlJUZEZMRVZCUVVFc1RVRkJUU3hyUWtGQmNVSXNSMEZCUVN4RFFVRkRMRXRCUVdVc1JVRkJRU3hGUVVGRkxGRkJRVGhDTEV0QlFVRTdRVUZEZWtVc1NVRkJRU3hKUVVGSkxGZEJRVmNzWTBGQlowSXNSVUZCUVR0QlFVTTNRaXhOUVVGQkxHdENRVUZCTEVOQlFXMUNMRXRCUVVzc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGRE1VSTdRVUZEUVN4SlFVRlBMRTlCUVVFc1MwRkJRU3hEUVVGQk8wRkJRVUVzUjBGRFZDeERRVUZCTzBGQlJVRXNSVUZCVFN4TlFVRkJMR2RDUVVGQkxFZEJRVzFDTEVOQlFVTXNRMEZCZFVJc1MwRkJRVHRCUVhwRWJrUXNTVUZCUVN4SlFVRkJRU3hIUVVGQlF5eEZRVUZCUVN4SFFVRkJRU3hEUVVGQlFUdEJRVEJFU1N4SlFVRkJMRTFCUVUwc2JVSkJRVzFDTEUxQlFVOHNRMEZCUVN4UlFVRkJMRU5CUVVFN1FVRkRhRU1zU1VGQlFTeE5RVUZOTEdOQlFXTXNRMEZCUlN4RFFVRkJMRXRCUVVFc1EwRkJRVHRCUVVWMFFpeEpRVUZOTEUxQlFVRXNUVUZCUVN4SFFVRjVReXhGUVVGRkxGRkJRVUVzUlVGQlZTeFhRVUZaTEVWQlFVRXNRMEZCUVR0QlFVVjJSU3hKUVVGQkxFbEJRVWtzY1VKQlFYRkNMR2RDUVVGblFpeERRVUZCTEVsQlFVc3NRMEZCUXl4dlFrRkJRU3hEUVVGeFFpeFhRVUZYTEVOQlFVY3NSVUZCUVR0QlFVTm9SaXhOUVVGQkxFMUJRVUVzUTBGQlR5eExRVUZSTEVkQlFVRXNSVUZCUVN4RFFVRkJPMEZCUTJZc1RVRkJUeXhOUVVGQkxFTkJRVUVzVjBGQlFTeEhRVUZqTEVOQlFVTXNSVUZCUlN4RFFVRkJMRU5CUVVFN1FVRkRlRUlzVFVGQlFTeE5RVUZCTEVOQlFVOHNUVUZCVXl4SFFVRkJMRXRCUVVFc1EwRkJRU3hEUVVGQk8wRkJRMmhDTEUxQlFVRXNiVUpCUVVFc1EwRkJiMElzUlVGQlJTeERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVVjRRaXhOUVVGQkxFbEJRVmNzUTBGQlF5eHZRa0ZCY1VJc1EwRkJRU3huUWtGQlowSXNTMEZCU3l4dlFrRkJjVUlzUTBGQlFTeFhRVUZYTEVOQlFVc3NTVUZCUVN4TlFVRkJMRU5CUVU4c1MwRkJUeXhGUVVGQk8wRkJRM1pITEUxQlFVOHNUVUZCUVN4RFFVRkJMRTFCUVVFc1IwRkJVeXhEUVVGRExFMUJRVUVzUTBGQlR5eExRVUZMTEVOQlFVRXNRMEZCUVR0QlFVTTNRaXhOUVVGdlFpeHRRa0ZCUVN4RFFVRkJPMEZCUVVFc1VVRkRiRUk3UVVGQlFTeFZRVU5GTEU5QlFVOHNUVUZCVHl4RFFVRkJMRXRCUVVFN1FVRkJRU3hWUVVOa0xFdEJRVUVzUlVGQlFTeERRVUZQUVN4SFFVRkJSQ3hIUVVGQlFTeERRVUZCUVN4SFFVRkJRU3hIUVVGQkxFMUJRVThzUTBGQlFTeFhRVUZCTEV0QlFWQXNaMEpCUVVGQkxFZEJRWEZDTEVOQlFVRXNRMEZCUVN4RFFVRkJMRXRCUVhKQ0xFbEJRVUZETEVkQlFVRkJMRWRCUVVGQkxFZEJRVEpDTEUxQlFVOHNRMEZCUVN4TFFVRkJPMEZCUVVFc1UwRkRNME03UVVGQlFTeFBRVU5FTEVOQlFVRXNRMEZCUVR0QlFVRkJMRXRCUTBnN1FVRkRRU3hKUVVGTkxFdEJRVUVzUTBGQlFTeGhRVUZCTEVOQlFXTXNVVUZCVVN4TlFVRk5MRU5CUVVFc1EwRkJRVHRCUVVGQkxFZEJRM0JETEVOQlFVRTdRVUZGUVN4RlFVRkJMRTFCUVUwc2IwSkJRWFZDTEVkQlFVRXNUMEZCUVR0QlFVRkJMRWxCUXpOQ0xFMUJRVTBzYTBKQlFVRXNRMEZCYlVJc1kwRkJaU3hEUVVGQkxHVkJRV1VzUTBGQlF5eERRVUZCTzBGQlFVRXNTVUZEZUVRc1EwRkJReXhuUWtGQlowSXNaVUZCWlN4RFFVRkJPMEZCUVVFc1IwRkRiRU1zUTBGQlFUdEJRVVZCTEVWQlFVRXNUVUZCVFN4bFFVRnJRaXhIUVVGQk8wRkJRVUVzU1VGRGRFSXNUMEZCVXl4RlFVRkJMRWxCUVVFN1FVRkJRU3hKUVVOVUxFdEJRVThzUlVGQlFTeG5Ra0ZCUVR0QlFVRkJMRWxCUTFBc1ZVRkJXU3hGUVVGQk8wRkJRVUVzVFVGRFZpeE5RVUZSTEVWQlFVRXNhMEpCUVVFN1FVRkJRU3hMUVVOV08wRkJRVUVzU1VGRFFTeHRRa0ZCY1VJc1JVRkJRU3hMUVVGQk8wRkJRVUVzU1VGRGNrSXNhVUpCUVcxQ0xFVkJRVUVzUzBGQlFUdEJRVUZCTEVsQlEyNUNMR1ZCUVdsQ0xFVkJRVUVzUzBGQlFUdEJRVUZCTEVsQlEycENMRkZCUVVFc1JVRkJWU3hEUVVGRExFTkJRWFZDTEV0QlFVRTdRVUZEYUVNc1RVRkJRU3h0UWtGQlFTeERRVUZ2UWl4RFFVRkRMRU5CUVVFc1EwRkJRVHRCUVVWeVFpeE5RVUZCTEVsQlFVa3NSVUZCUlN4SlFVRkxMRU5CUVVFc1EwRkJReXhMUVVFeVFpeExRVUZCTEV0QlFVRXNRMEZCVFN4VFFVRlRMRU5CUVVjc1JVRkJRVHRCUVVOMlJDeFJRVUZCTEd0Q1FVRkJMRU5CUVcxQ0xFVkJRVVVzUTBGQlFTeERRVUZCTzBGQlFVRXNUMEZEZGtJN1FVRkJRU3hMUVVOR08wRkJRVUVzU1VGRFFTeFJRVUZSTEUxQlFVMDdRVUYwUjJ4Q0xFMUJRVUVzU1VGQlFVUXNSMEZCUVVNc1JVRkJRVUVzUjBGQlFVRXNRMEZCUVVFN1FVRjFSMDBzVFVGQlFTeExRVUZCTEVOQlFVMHNZMEZCWXl4TlFVRlJMRVZCUVVFN1FVRkJRU3hSUVVNeFFpeExRVUZCTEVWQlFVRXNRMEZCVDBFc1QwRkJRVVFzUjBGQlFTeEhRVUZCTEdkQ1FVRkJMRU5CUVdsQ0xFOUJRV3BDTEVsQlFVRkJMRWRCUVVGQkxFdEJRVUZCTEVOQlFVRkJMRWRCUVVGQkxFZEJRVUZCTEVOQlFYRkNMRXRCUVhKQ0xFdEJRVUVzU1VGQlFTeEhRVUZCUXl4SFFVRTRRaXhIUVVGQkxFVkJRVUU3UVVGQlFTeFJRVVZ5UXl4UlFVRlJMR2RDUVVGcFFpeERRVUZCTEVkQlFVRXNRMEZCU1N4RFFVRkRMRTFCUVVFc1MwRkJiME1zVDBGQlR5eExRVUZMTEVOQlFVRTdRVUZCUVN4UlFVTTVSU3hoUVVGaExHZENRVUZwUWl4RFFVRkJMRWRCUVVFc1EwRkJTU3hEUVVGRExFMUJRVUVzUzBGQmIwTXNUMEZCVHl4TFFVRkxMRU5CUVVFN1FVRkJRU3hQUVVOd1JpeERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTklPMEZCUVVFc1IwRkRSaXhEUVVGQk8wRkJSVUVzUlVGQlFTeE5RVUZOTERoQ1FVTklMRXRCUVVFc1EwRkJRU3hoUVVGQkxFTkJRVUVzVFVGQlFTeEZRVUZCTEdOQlFVRXNRMEZCUVR0QlFVRkJMRWxCUTBNc1YwRkJWeXhGUVVGQkxFbEJRVUU3UVVGQlFTeEpRVU5ZTEdkQ1FVRnJRaXhGUVVGQkxFTkJRVUVzUlVGQlFTeEhRVUZCTEV0QlFVRXNRMEZCVFN4TFFVRk5MRU5CUVVFc1owSkJRVUVzUzBGQldpeEpRVUZuUXl4SFFVRkJMRVZCUVVFc1IwRkJRU3hKUVVGQk8wRkJRVUVzU1VGRGJFUXNhMEpCUVd0Q0xFTkJRVU1zVlVGQlFTeExRVUZsTEZWQlFWY3NRMEZCUVN4SlFVRkJMRWRCUVU4c1RVRkJVeXhIUVVGQkxFTkJRVUU3UVVGQlFTeEpRVU0zUkN4MVFrRkJkVUlzUlVGQlFTeEpRVUZCTzBGQlFVRXNTVUZEZGtJc2FVSkJRVUVzUlVGQmJVSXNRMEZCUXl4VlFVRkJMRXRCUVdVc1EwRkJjVUlzYTBKQlFVRXNSVUZCUVN4VlFVRkJMRU5CUVVFc1EwRkJRVHRCUVVGQkxFbEJRM2hFTEZGQlFVRXNSVUZCVlN4TlFVRk5MRXRCUVUwc1EwRkJRU3hSUVVGQk8wRkJRVUVzU1VGRGRFSXNWMEZCVnl4RlFVRkhMRU5CUVVFc1RVRkJRU3hEUVVGUExFOUJRVThzV1VGQlpTeEhRVUZCTEUxQlFVRXNRMEZCVHl4blFrRkJaMElzUzBGQlV5eERRVUZCTEVOQlFVRTdRVUZCUVN4SlFVTXpSU3hMUVVGTkxFVkJRVUVzVFVGQlFUdEJRVUZCTEVsQlEwNHNTMEZCVHl4RlFVRkJMRlZCUVVFN1FVRkJRU3hKUVVOUUxGbEJRV01zUlVGQlFTeFZRVUZCTzBGQlFVRXNTVUZEWkN4WFFVRmhMRVZCUVVFc1kwRkJRVHRCUVVGQkxFbEJRMklzVDBGQlV5eEZRVUZCTEc5Q1FVRkJPMEZCUVVFc1NVRkRWQ3hWUVVGWkxFVkJRVUVzWlVGQlFUdEJRVUZCTEVsQlExb3NZVUZCWlN4RlFVRkJMR3RDUVVGQk8wRkJRVUVzU1VGRFppeFJRVUZCTEVWQlFWVXNRMEZCUXl4RFFVRk5MRXRCUVVFN1FVRkRaaXhOUVVGQkxFdEJRVUVzUTBGQlRTeGpRVUZqTEUxQlFWRXNSVUZCUVR0QlFVRkJMRkZCUXpGQ0xFOUJRVThzUTBGQlJTeERRVUZCTEV0QlFVRTdRVUZCUVN4UlFVTlVMRmRCUVVFc1JVRkJZU3hGUVVGRkxFdEJRVkVzUjBGQlFTeERRVUZETEVWQlFVVXNTMEZCU3l4RFFVRkJMRWRCUVVrc1EwRkJReXhEUVVGQkxFTkJRVVVzUzBGQlN5eERRVUZCTzBGQlFVRXNUMEZETlVNc1EwRkJRU3hEUVVGQk8wRkJSVVFzVFVGQlNTeEpRVUZCTEcxQ1FVRkJMRXRCUVhkQ0xFVkJRVVVzVTBGQlZ5eEZRVUZCTzBGQlEzWkRMRkZCUVVFc2MwSkJRVUVzUTBGQmRVSXNSVUZCUlN4VFFVRlRMRU5CUVVFc1EwRkJRVHRCUVVGQkxFOUJRM0JETzBGQlFVRXNTMEZEUmp0QlFVRkJMRWxCU1VFc1RVRkJRU3hGUVVGUkxHZENRVUZuUWl4RFFVRkRMR1ZCUVVFN1FVRkJRU3hKUVVONlFpeFRRVUZYTEVWQlFVRXNaVUZCUVR0QlFVRkJMRWxCUTFnc1pVRkJhVUlzUlVGQlFTeEpRVUZCTzBGQlFVRXNTVUZEYWtJc1dVRkJXU3haUVVGWk8wRkJhRW81UWl4TlFVRkJSQ3hKUVVGQlFTeEhRVUZCUVN4RFFVRkJRVHRCUVdsS1VTeE5RVUZCTEd0Q1FVRkJMRU5CUVcxQ0xFbEJRVWtzUTBGQlFTeERRVUZCTzBGQlEzWkNMRTFCUVVFc1pVRkJRU3hEUVVGblFpeEpRVUZKTEVOQlFVRXNRMEZCUVR0QlFVTndRaXhOUVVGQkxFMUJRVTFGTEU5QlFWTXNSMEZCUVN4TlFVRk5MRXRCUVUwc1EwRkJRU3hoUVVGQkxFTkJRV01zVFVGQlRTeERRVUZCTEVOQlFVRTdRVUZETDBNc1RVRkJRU3hyUWtGQlFTeERRVUZ0UWl4TFFVRkxMRU5CUVVFc1EwRkJRVHRCUVVONFFpeE5RVUZCTEZOQlFVRXNRMEZCVlVFc1QwRkJUU3hEUVVGQkxFTkJRVUU3UVVGRGFFSXNUVUZCUVN4SlFVRkpMRzFDUVVGeFFpeEZRVUZCTzBGQlEzWkNMRkZCUVVFc2EwSkJRVUVzUTBGQlFTeERRVUZ0UWtZc1IwRkJRU3hIUVVGQkxGVkJRVUVzU1VGQlFTeEpRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1ZVRkJRU3hEUVVGWkxFdEJRVm9zUzBGQlFTeEpRVUZCTEVkQlFVRkJMRTFCUVhGQ0xFVkJRVVVzUTBGQlFTeERRVUZCTzBGQlFVRXNUMEZETlVNN1FVRkJRU3hMUVVOR08wRkJRVUVzU1VGRFFTeGhRVUZoTEUxQlFVMDdRVUZEYWtJc1RVRkJRU3hsUVVGQkxFTkJRV2RDTEV0QlFVc3NRMEZCUVN4RFFVRkJPMEZCUTNKQ0xFMUJRVUVzYTBKQlFVRXNRMEZCYlVJc1JVRkJSU3hEUVVGQkxFTkJRVUU3UVVGQlFTeExRVU4yUWp0QlFVRkJMRWRCUVVFc1JVRkRTeXhuUWtGQlowSXNaVUZEZGtJc1EwRkJRU3hEUVVGQkxFTkJRVUU3UVVGSFJpeEZRVUZCTEUxQlFVMHNORUpCUTBnc1MwRkJRU3hEUVVGQkxHRkJRVUVzUTBGQlFTeE5RVUZCTEVWQlFVRTdRVUZCUVN4SlFVZERMRWRCUVVFc1JVRkJTeXhEUVVGSExFVkJRVUVzWlVGQlFTeEhRVUZyUWl4VFFVRlpMRWRCUVVFc1VVRkJRU3hEUVVGQkxFTkJRVUU3UVVGQlFTeEpRVU4wUXl4UlFVRkJMRVZCUVZVc1RVRkJUU3hMUVVGTkxFTkJRVUVzVVVGQlFUdEJRVUZCTEVsQlEzUkNMRmRCUVZjc1JVRkJSeXhEUVVGQkxFMUJRVUVzUTBGQlR5eExRVUZMTEZWQlFXRXNSMEZCUVN4TlFVRkJMRU5CUVU4c1owSkJRV2RDTEV0QlFWTXNRMEZCUVN4RFFVRkJPMEZCUVVFc1NVRkRka1VzUzBGQlRTeEZRVUZCTEUxQlFVRTdRVUZCUVN4SlFVTk9MR2RDUVVGclFpeEZRVUZCTEVOQlFVRXNSVUZCUVN4SFFVRkJMRXRCUVVFc1EwRkJUU3hMUVVGTkxFTkJRVUVzWjBKQlFVRXNTMEZCV2l4SlFVRm5ReXhIUVVGQkxFVkJRVUVzUjBGQlFTeEpRVUZCTzBGQlFVRXNTVUZEYkVRc1MwRkJUeXhGUVVGQkxGRkJRVUU3UVVGQlFTeEpRVU5RTEZkQlFXRXNSVUZCUVN4alFVRkJPMEZCUVVFc1NVRkRZaXhQUVVGQkxFVkJRVk1zYlVKQlFXMUNMRWxCUVVrc1EwRkJRVHRCUVVGQkxFbEJRMmhETEZGQlFVRXNSVUZCVlN4RFFVRkRMRU5CUVUwc1MwRkJRVHRCUVVObUxFMUJRVUVzUzBGQlFTeERRVUZOTEdOQlFXTXNUVUZCVVN4RlFVRkJPMEZCUVVFc1VVRkRNVUlzUzBGQlN5eERRVUZGTEVOQlFVRXNTMEZCUVR0QlFVRkJMRkZCUTFBc1ZVRkJWU3hEUVVGRkxFTkJRVUVzUzBGQlFUdEJRVUZCTEZGQlJWb3NTMEZCVHl4RlFVRkJMRVZCUVVFN1FVRkJRU3hSUVVOUUxGZEJRVUVzUlVGQllTeERRVUZETEVWQlFVVXNRMEZCUVR0QlFVRkJMRkZCUTJoQ0xFMUJRVkVzUlVGQlFTeExRVUZCTEVOQlFVRTdRVUZCUVN4UFFVTlVMRU5CUVVFc1EwRkJRVHRCUVVORUxFMUJRVUVzYlVKQlFVRXNRMEZCYjBJc1JVRkJSU3hEUVVGQkxFTkJRVUU3UVVGQlFTeExRVU40UWp0QlFVRkJMRWxCUTBFc1UwRkJRU3hGUVVGWExFOUJRVThzUjBGQlVTeExRVUZCTEVWQlFVRTdRVUZCUVN4SlFVa3hRaXhOUVVGQkxFVkJRVkVzWTBGQll5eERRVUZETEdGQlFVRTdRVUZCUVN4SlFVTjJRaXhUUVVGWExFVkJRVUVzWVVGQlFUdEJRVUZCTEVsQlExZ3NXVUZCV1N4WlFVRlpPMEZCUTNSQ0xFMUJRVUVzWVVGQlFTeERRVUZqTEVsQlFVa3NRMEZCUVN4RFFVRkJPMEZCUTJ4Q0xFMUJRVUVzWjBKQlFVRXNRMEZCYVVJc1NVRkJTU3hEUVVGQkxFTkJRVUU3UVVGRGNrSXNUVUZCUVN4TlFVRk5SeXhMUVVGUExFZEJRVUVzVFVGQlRTeExRVUZOTEVOQlFVRXNVVUZCUVN4RFFVRlRMRTlCUVU4c1IwRkJSeXhEUVVGQkxFTkJRVUU3UVVGRE5VTXNUVUZCUVN4blFrRkJRU3hEUVVGcFFpeExRVUZMTEVOQlFVRXNRMEZCUVR0QlFVTjBRaXhOUVVGQkxFOUJRVUVzUTBGQlVVRXNTMEZCU1N4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVOa08wRkJRVUVzU1VGRFFTeGhRVUZoTEUxQlFVMDdRVUZEYWtJc1RVRkJRU3hoUVVGQkxFTkJRV01zUzBGQlN5eERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTnlRanRCUVVGQkxFbEJRMEVzVVVGQlVTeE5RVUZOTzBGQlExb3NUVUZCU1N4SlFVRkJMRTFCUVVFc1EwRkJUeXhSUVVGUkxFVkJRVWtzUlVGQlFUdEJRVU55UWl4UlFVRkJMRXRCUVVFc1EwRkJUU3hqUVVGakxFMUJRVTBzUTBGQlFTeERRVUZCTzBGQlFVRXNUMEZETlVJN1FVRkJRU3hMUVVOR08wRkJRVUVzU1VGRFFTeGxRVUZwUWl4RlFVRkJMRWxCUVVFN1FVRkJRU3hIUVVOdVFpeERRVUZCTEVOQlFVRTdRVUZIUml4RlFVRkJMRTFCUVUwc2FVTkJRMGdzUzBGQlFTeERRVUZCTEdGQlFVRXNRMEZCUVN4TlFVRkJMRVZCUVVFN1FVRkJRU3hKUVVORExGTkJRVUVzUlVGQlZ5eEZRVUZITEVOQlFVRXNUVUZCUVN4RFFVRlBMRkZCUVZVc1JVRkJRVHRCUVVGQkxFMUJRemRDTEVOQlFVTXNUMEZCVHl4aFFVRm5RaXhIUVVGQkxHTkJRVUU3UVVGQlFTeExRVU42UWl4RFFVRkJPMEZCUVVFc1NVRkRSQ3hQUVVGUExFMUJRVThzUTBGQlFTeFJRVUZCTzBGQlFVRXNTVUZEWkN4UlFVRkJMRVZCUVZVc1RVRkJUU3hMUVVGTkxFTkJRVUVzVVVGQlFUdEJRVUZCTEVsQlEzUkNMRTlCUVVFc1JVRkJVeXhOUVVGTkxHRkJRV01zUlVGQlFUdEJRVUZCTEVsQlF6ZENMRkZCUVZVc1JVRkJRU3huUWtGQlFUdEJRVUZCTEVsQlExWXNXVUZCV1N4TlFVRk5PMEZCUTJoQ0xFMUJRVUVzYVVKQlFVRXNRMEZCYTBJc1NVRkJTU3hEUVVGQkxFTkJRVUU3UVVGQlFTeExRVU40UWp0QlFVRkJMRWxCUTBFc1lVRkJZU3hOUVVGTk8wRkJRMnBDTEUxQlFVRXNhVUpCUVVFc1EwRkJhMElzUzBGQlN5eERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTjZRanRCUVVGQkxFZEJRMFlzUTBGQlFTeERRVUZCTzBGQlIwWXNSVUZCU1N4SlFVRkJMRXRCUVVFc1EwRkJUU3hMUVVGTkxFTkJRVUVzVFVGQlFTeExRVUZYTEZWQlFWa3NSVUZCUVR0QlFVTnlReXhKUVVGQkxFbEJRVWtzVDBGQlR5eEhRVUZMTEVWQlFVRTdRVUZEWkN4TlFVRkJMRTFCUVUwc2QwSkJRMGdzUzBGQlFTeERRVUZCTEdGQlFVRXNRMEZCUVN4aFFVRkJMRVZCUVVFN1FVRkJRU3hSUVVGakxFMUJRVThzUlVGQlFTeFZRVUZCTzBGQlFVRXNVVUZCVnl4TFFVRkJMRVZCUVVFc1EwRkJUeXhGUVVGUExFZEJRVUVzVFVGQlFTeERRVUZCTEVkQlFVRXNTMEZCVUN4SlFVRmpMRWRCUVVFc1JVRkJRU3hIUVVGQkxFVkJRVUU3UVVGQlFTeFJRVUZKTEZGQlFWVXNSVUZCUVN4TlFVRk5MRXRCUVUwc1EwRkJRU3hoUVVGQkxFTkJRV01zVFVGQlRTeERRVUZCTzBGQlFVRXNUMEZCUnl4RFFVRkJMRU5CUVVFN1FVRkhla2NzVFVGQlFTeDFRa0ZEUnl4TFFVRkJMRU5CUVVFc1lVRkJRU3hEUVVGQkxFdEJRVUVzUlVGQlFUdEJRVUZCTEZGQlFVMHNTMEZCUVR0QlFVRkJMRkZCUVdNc1lVRkJRU3hGUVVGaExHVkJRV1VzVFVGQlR5eERRVUZCTEVkQlFVRXNRMEZCUVN4RFFVRkJPMEZCUVVFc1VVRkJUeXhYUVVGWExFMUJRVThzUTBGQlFTeExRVUZCTzBGQlFVRXNUMEZCUVN4clFrRkRPVVVzUzBGQlFTeERRVUZCTEdGQlFVRXNRMEZCUVN4TFFVRkJMRVZCUVVFN1FVRkJRU3hSUVVGSkxGZEJRVmNzVFVGQlR5eERRVUZCTEU5QlFVRTdRVUZCUVN4UFFVTndRaXhGUVVGQkxHTkJRVUVzUlVGRFFTeFhRVU5JTEVOQlEwWXNRMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkZSeXhOUVVGQk8wRkJRMHdzVFVGQlFTeDFRa0ZEUnl4TFFVRkJMRU5CUVVFc1lVRkJRU3hEUVVGQkxFdEJRVUVzUlVGQlFUdEJRVUZCTEZGQlFVMHNTMEZCVHl4RlFVRkJMR05CUVVFN1FVRkJRU3hSUVVGblFpeGhRVUZCTEVWQlFXRXNaVUZCWlN4TlFVRlBMRU5CUVVFc1IwRkJRU3hEUVVGQkxFTkJRVUU3UVVGQlFTeFJRVUZQTEZkQlFWY3NUVUZCVHl4RFFVRkJMRXRCUVVFN1FVRkJRU3hQUVVGQkxFVkJRM1pHTEZOQlEwZ3NRMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkZTanRCUVVGQkxFZEJRMFk3UVVGRlFTeEZRVUZCTEhWQ1FVTkhMRXRCUVVFc1EwRkJRU3hoUVVGQkxFTkJRVUVzUzBGQlFTeEZRVUZCTzBGQlFVRXNTVUZCU1N4WFFVRlhMRTFCUVU4c1EwRkJRU3hQUVVGQk8wRkJRVUVzU1VGQlV5eGhRVUZCTEVWQlFXRXNaVUZCWlN4TlFVRlBMRU5CUVVFc1IwRkJRU3hEUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU5vUlN4RlFVRkJMRk5CUVVFc1JVRkRRU3hqUVVOQkxFVkJRVUVzVjBGQlFTeHJRa0ZEUVN4TFFVRkJMRU5CUVVFc1lVRkJRU3hEUVVGQkxFMUJRVUVzUlVGQlFUdEJRVUZCTEVsQlEwTXNUMEZCVVN4RlFVRkJMRmRCUVVFN1FVRkJRU3hKUVVOU0xGbEJRVmNzUlVGQlFTeGxRVUZCTzBGQlFVRXNTVUZEV0N4TFFVRk5MRVZCUVVFc1pVRkJRVHRCUVVGQkxFbEJRMDRzVjBGQlZ5eE5RVUZQTEVOQlFVRXNXVUZCUVR0QlFVRkJMRWxCUTJ4Q0xFbEJRVXNzUlVGQlFTeFBRVUZCTzBGQlFVRXNTVUZEVEN4aFFVRmhMRVZCUVVFc1EwRkJRU3h0UWtGQlFTeEZRVUZCTEVOQlFYTkNMRVZCUVU4c1IwRkJRU3hOUVVGQkxFTkJRVUVzUjBGQlFTeExRVUZRTEVsQlFXTXNSMEZCUVN4RlFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGQkxFTkJRVUU3UVVGQlFTeEpRVU5xUkN4UFFVRlRMRVZCUVVFc1RVRkJUU3hMUVVGTkxFTkJRVUVzWVVGQlFTeERRVUZqTEUxQlFVMHNRMEZCUVR0QlFVRkJMRWRCUXpORExFTkJRMFlzUTBGQlFTeERRVUZCTzBGQlJVb3NRMEZCUVR0QlFVVkJMRTFCUVUwc1UwRkJRU3hIUVVGWkxFTkJRVU1zUzBGQk1FSXNUVUZCUVR0QlFVRkJMRVZCUXpORExFOUJRVThzUjBGQlNTeERRVUZCTzBGQlFVRXNTVUZEVkN4WlFVRmpMRVZCUVVFc1EwRkJRVHRCUVVGQkxFZEJRMllzUTBGQlFUdEJRVUZCTEVWQlEwUXNVMEZCVXl4SFFVRkpMRU5CUVVFN1FVRkJRU3hKUVVOWUxFOUJRVk1zUlVGQlFTeE5RVUZCTzBGQlFVRXNTVUZEVkN4TFFVRlBMRVZCUVVFN1FVRkJRU3hOUVVOTUxIRkNRVUYxUWl4RlFVRkJPMEZCUVVFc1VVRkZja0lzVlVGQldTeEZRVUZCTEVOQlFVRXNRMEZCUVR0QlFVRkJMRTlCUTJRN1FVRkJRU3hOUVVWQkxHVkJRV2xDTEVWQlFVRTdRVUZCUVN4UlFVTm1MRzlDUVVGelFpeEZRVUZCTEVOQlFVRTdRVUZCUVN4UlFVTjBRaXgxUWtGQmVVSXNSVUZCUVN4RFFVRkJPMEZCUVVFc1QwRkRNMEk3UVVGQlFTeE5RVVZCTEdOQlFXZENMRVZCUVVFN1FVRkJRU3hSUVVOa0xHMUNRVUZ4UWl4RlFVRkJMRU5CUVVFN1FVRkJRU3hSUVVOeVFpeHpRa0ZCZDBJc1JVRkJRU3hEUVVGQk8wRkJRVUVzVDBGRE1VSTdRVUZCUVN4TlFVVkJMSE5EUVVGM1F5eEZRVUZCTzBGQlFVRXNVVUZEZEVNc1dVRkJZeXhGUVVGQkxFTkJRVUU3UVVGQlFTeFBRVU5vUWp0QlFVRkJMRTFCUjBFc1VVRkJWU3hGUVVGQkxGVkJRVUU3UVVGQlFTeE5RVU5XTEUxQlFWRXNSVUZCUVN4RFFVRkJPMEZCUVVFc1RVRkpVaXhUUVVGWExFVkJRVUU3UVVGQlFTeFJRVU5VTEUxQlFWRXNSVUZCUVN4RFFVRkJPMEZCUVVFc1QwRkRWanRCUVVGQkxFMUJSVUVzWjBKQlFXdENMRVZCUVVFN1FVRkJRU3hSUVVOb1FpeE5RVUZSTEVWQlFVRXNRMEZCUVR0QlFVRkJMRTlCUTFZN1FVRkJRU3hMUVVOR08wRkJRVUVzUjBGRFJDeERRVUZCTzBGQlFVRXNSVUZEUkN4bFFVRmxMRWRCUVVrc1EwRkJRVHRCUVVGQkxFbEJRMnBDTEZGQlFVRXNSVUZCVlN4TFFVRk5MRU5CUVVFc1QwRkJRU3hEUVVGUkxFVkJRVVVzUTBGQlFUdEJRVUZCTEVkQlF6TkNMRU5CUVVFN1FVRkJRU3hGUVVORUxFOUJRVThzUjBGQlNTeERRVUZCTzBGQlFVRXNTVUZEVkN4VFFVRlhMRVZCUVVFc1UwRkJRVHRCUVVGQkxFbEJRMWdzVlVGQldTeEZRVUZCTEVOQlFVRTdRVUZCUVN4SlFVTmFMRkZCUVZVc1JVRkJRU3hOUVVGQk8wRkJRVUVzUjBGRFdDeERRVUZCTzBGQlFVRXNSVUZEUkN4TFFVRkxMRWRCUVVrc1EwRkJRVHRCUVVGQkxFbEJRMUFzVTBGQlZ5eEZRVUZCTEZOQlFVRTdRVUZCUVN4SlFVTllMRkZCUVZVc1JVRkJRU3hOUVVGQk8wRkJRVUVzU1VGRFZpeFZRVUZaTEVWQlFVRXNRMEZCUVR0QlFVRkJMRWRCUTJJc1EwRkJRVHRCUVVGQkxFVkJRMFFzVlVGQlZTeEhRVUZKTEVOQlFVRTdRVUZCUVN4SlFVTmFMRlZCUVZrc1JVRkJRU3hEUVVGQk8wRkJRVUVzU1VGRFdpeFRRVUZYTEVWQlFVRXNVMEZCUVR0QlFVRkJMRWRCUTFvc1EwRkJRVHRCUVVGQkxFVkJRMFFzWTBGQll5eEhRVUZKTEVOQlFVRTdRVUZCUVN4SlFVTm9RaXhYUVVGaExFVkJRVUVzUzBGQlFTeERRVUZOTEU5QlFWRXNRMEZCUVN4RFFVRkJMRWRCUVVrc1EwRkJReXhEUVVGQk8wRkJRVUVzU1VGRGFFTXNXVUZCWXl4RlFVRkJMRXRCUVVFc1EwRkJUU3hQUVVGUkxFTkJRVUVzUTBGQlFTeEhRVUZKTEVOQlFVTXNRMEZCUVR0QlFVRkJMRWxCUTJwRExGVkJRVmtzUlVGQlFTeE5RVUZCTzBGQlFVRXNTVUZEV2l4TFFVRkJMRVZCUVU4c1MwRkJUU3hEUVVGQkxFOUJRVUVzUTBGQlVTeERRVUZETEVOQlFVRTdRVUZCUVN4SlFVTjBRaXhYUVVGQkxFVkJRV0VzUzBGQlRTeERRVUZCTEU5QlFVRXNRMEZCVVN4RFFVRkRMRU5CUVVFN1FVRkJRU3hKUVVNMVFpeFRRVUZYTEVWQlFVRXNXVUZCUVR0QlFVRkJMRWxCUlZnc1VVRkJWU3hGUVVGQkxGVkJRVUU3UVVGQlFTeEpRVU5XTEVsQlFVMHNSVUZCUVN4TFFVRkJPMEZCUVVFc1IwRkRVQ3hEUVVGQk8wRkJRMGdzUTBGQlFTeERRVUZCT3pzN095SjlcbiJdLCJuYW1lcyI6WyJfYSIsIl9iIiwidmFsdWVzIiwia2V5cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxTQUFTLGdCQUFBLENBQWlCLEtBQWEsS0FBd0MsRUFBQTtBQUM3RSxFQUFBLE9BQU8sUUFBUSxFQUNYLEdBQUE7SUFDRSxLQUFPLEVBQUEsR0FBQTtBQUNQLElBQUEsS0FBQSxFQUFPLEtBQVMsSUFBQSxHQUFBO0dBRWxCLEdBQUEsSUFBQSxDQUFBO0FBQ04sQ0FBQTtBQUVBLE1BQU0sYUFBYSxNQUFNLElBQUEsQ0FBQTtBQUVsQixTQUFTLG1CQUFvQixDQUFBLEVBQUUsTUFBUSxFQUFBLEtBQUEsRUFBZ0IsRUFBQTtBQTNCOUQsRUFBQSxJQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLENBQUE7QUE0QlEsRUFBQSxNQUFBLE1BQUEsR0FBUyxXQUFXLFNBQVMsQ0FBQSxDQUFBO0FBRW5DLEVBQUEsTUFBTSxDQUFDLElBQU0sRUFBQSxPQUFPLENBQUksR0FBQSxRQUFBLENBQTRCLEVBQUUsQ0FBQSxDQUFBO0FBQ3RELEVBQUEsTUFBTSxDQUFDLE1BQVEsRUFBQSxTQUFTLENBQUksR0FBQSxRQUFBLENBQTRCLEVBQUUsQ0FBQSxDQUFBO0FBQzFELEVBQUEsTUFBTSxDQUFDLGFBQUEsRUFBZSxnQkFBZ0IsQ0FBQSxHQUFJLFNBQVMsS0FBSyxDQUFBLENBQUE7QUFDeEQsRUFBQSxNQUFNLENBQUMsZUFBQSxFQUFpQixrQkFBa0IsQ0FBQSxHQUFJLFNBQVMsS0FBSyxDQUFBLENBQUE7QUFDNUQsRUFBQSxNQUFNLENBQUMsVUFBQSxFQUFZLGFBQWEsQ0FBQSxHQUFJLFNBQVMsS0FBSyxDQUFBLENBQUE7QUFDbEQsRUFBQSxNQUFNLENBQUMsWUFBQSxFQUFjLGVBQWUsQ0FBQSxHQUFJLFNBQVMsS0FBSyxDQUFBLENBQUE7QUFDdEQsRUFBQSxNQUFNLENBQUMsY0FBQSxFQUFnQixpQkFBaUIsQ0FBQSxHQUFJLFNBQVMsS0FBSyxDQUFBLENBQUE7QUFDMUQsRUFBQSxNQUFNLENBQUMsZUFBQSxFQUFpQixrQkFBa0IsQ0FBQSxHQUFJLFNBQVMsRUFBRSxDQUFBLENBQUE7QUFDekQsRUFBQSxNQUFNLENBQUMsbUJBQUEsRUFBcUIsc0JBQXNCLENBQUEsR0FBSSxTQUFTLEtBQUssQ0FBQSxDQUFBO0FBRTlELEVBQUEsTUFBQSxDQUFDLGdCQUFrQixFQUFBLG1CQUFtQixDQUFJLEdBQUEsUUFBQTtBQUM5QyxJQUFBLE1BQUEsQ0FBTyxTQUFTLE1BQU8sQ0FBQSxNQUFBLENBQU8sR0FBSSxDQUFBLENBQUMsT0FBTyxLQUFPLEtBQUE7QUF6Q3JEQSxNQUFBQSxJQUFBQSxHQUFBQSxDQUFBQTtBQXlDd0QsTUFBQSxPQUFBLGdCQUFBLENBQWlCLFFBQU9BLEdBQUEsR0FBQSxNQUFBLENBQU8sZ0JBQVAsSUFBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxJQUFxQixLQUFNLENBQUEsQ0FBQSxDQUFBO0FBQUEsS0FBQyxJQUFJLEVBQUE7QUFBQyxHQUFBLENBQUE7QUFFekcsRUFBQSxNQUFBLFlBQUEsR0FBZSxvQkFBcUIsQ0FBQSxNQUFBLENBQU8sUUFBUSxDQUFBLENBQUE7QUFFekQsRUFBQSxNQUFNLFFBQVcsR0FBQSxnQkFBQSxDQUFpQixNQUFPLENBQUEsR0FBQSxFQUFLLE9BQU8sUUFBUSxDQUFBLENBQUE7QUFDN0QsRUFBTSxNQUFBLFVBQUEsR0FBYSxnQkFBaUIsQ0FBQSxNQUFBLENBQU8sS0FBTyxFQUFBLENBQUEsRUFBQSxHQUFPLE9BQUEsV0FBUCxLQUFBLElBQUEsR0FBQSxLQUFBLENBQUEsR0FBQSxFQUFBLENBQXFCLENBQUUsQ0FBQSxDQUFBLENBQUE7QUFFbkUsRUFBQSxNQUFBLGNBQUEsR0FBaUIsUUFBUSxNQUFNLHNCQUFBLENBQXVCLE1BQU0sQ0FBRyxFQUFBLENBQUMsTUFBTSxDQUFDLENBQUEsQ0FBQTtBQUU3RSxFQUFBLE1BQU0sa0JBQXFCLEdBQUEsQ0FBQyxLQUFlLEVBQUEsRUFBRSxRQUE4QixLQUFBO0FBQ3pFLElBQUEsSUFBSSxXQUFXLGNBQWdCLEVBQUE7QUFDN0IsTUFBQSxrQkFBQSxDQUFtQixLQUFLLENBQUEsQ0FBQTtBQUFBLEtBQUE7QUFFbkIsSUFBQSxPQUFBLEtBQUEsQ0FBQTtBQUFBLEdBQUEsQ0FBQTtBQUdILEVBQUEsTUFBQSxnQkFBQSxHQUFtQixDQUFDLENBQXVCLEtBQUE7QUF6RG5ELElBQUEsSUFBQUEsR0FBQUMsRUFBQUEsR0FBQUEsQ0FBQUE7QUEwREksSUFBQSxNQUFNLG1CQUFtQixNQUFPLENBQUEsUUFBQSxDQUFBO0FBQ2hDLElBQUEsTUFBTSxjQUFjLENBQUUsQ0FBQSxLQUFBLENBQUE7QUFFaEIsSUFBQSxNQUFBLE1BQUEsR0FBeUMsRUFBRSxRQUFBLEVBQVUsV0FBWSxFQUFBLENBQUE7QUFFdkUsSUFBQSxJQUFJLHFCQUFxQixnQkFBZ0IsQ0FBQSxJQUFLLENBQUMsb0JBQUEsQ0FBcUIsV0FBVyxDQUFHLEVBQUE7QUFDaEYsTUFBQSxNQUFBLENBQU8sS0FBUSxHQUFBLEVBQUEsQ0FBQTtBQUNSLE1BQUEsTUFBQSxDQUFBLFdBQUEsR0FBYyxDQUFDLEVBQUUsQ0FBQSxDQUFBO0FBQ3hCLE1BQUEsTUFBQSxDQUFPLE1BQVMsR0FBQSxLQUFBLENBQUEsQ0FBQTtBQUNoQixNQUFBLG1CQUFBLENBQW9CLEVBQUUsQ0FBQSxDQUFBO0tBRWIsTUFBQSxJQUFBLENBQUMscUJBQXFCLGdCQUFnQixDQUFBLElBQUsscUJBQXFCLFdBQVcsQ0FBQSxJQUFLLE9BQU8sS0FBTyxFQUFBO0FBQ2hHLE1BQUEsTUFBQSxDQUFBLE1BQUEsR0FBUyxDQUFDLE1BQUEsQ0FBTyxLQUFLLENBQUEsQ0FBQTtBQUNULE1BQUEsbUJBQUEsQ0FBQTtBQUNsQixRQUFBO0FBQ0UsVUFBQSxLQUFBLEVBQU8sTUFBTyxDQUFBLEtBQUE7VUFDZCxLQUFPQSxFQUFBQSxDQUFBQSxHQUFBQSxHQUFBQSxDQUFBRCxHQUFBLEdBQUEsTUFBQSxDQUFPLFdBQVAsS0FBQSxJQUFBLEdBQUEsU0FBQUEsR0FBcUIsQ0FBQSxDQUFBLENBQUEsS0FBckIsSUFBQUMsR0FBQUEsR0FBQUEsR0FBMkIsTUFBTyxDQUFBLEtBQUE7QUFBQSxTQUFBO09BRTVDLENBQUEsQ0FBQTtBQUFBLEtBQUE7QUFFRyxJQUFBLEtBQUEsQ0FBQSxhQUFBLENBQWMsUUFBUSxNQUFNLENBQUEsQ0FBQTtBQUFBLEdBQUEsQ0FBQTtBQUdwQyxFQUFBLE1BQU0sb0JBQXVCLEdBQUEsT0FBQTtJQUMzQixNQUFNLGtCQUFBLENBQW1CLGNBQWUsQ0FBQSxlQUFlLENBQUMsQ0FBQTtBQUN4RCxJQUFBLENBQUMsZ0JBQWdCLGVBQWUsQ0FBQTtBQUFBLEdBQUEsQ0FBQTtBQUdsQyxFQUFBLE1BQU0sZUFBa0IsR0FBQTtJQUN0QixPQUFTLEVBQUEsSUFBQTtJQUNULEtBQU8sRUFBQSxnQkFBQTtJQUNQLFVBQVksRUFBQTtNQUNWLE1BQVEsRUFBQSxrQkFBQTtBQUFBLEtBQUE7SUFFVixtQkFBcUIsRUFBQSxLQUFBO0lBQ3JCLGlCQUFtQixFQUFBLEtBQUE7SUFDbkIsZUFBaUIsRUFBQSxLQUFBO0FBQ2pCLElBQUEsUUFBQSxFQUFVLENBQUMsQ0FBdUIsS0FBQTtBQUNoQyxNQUFBLG1CQUFBLENBQW9CLENBQUMsQ0FBQSxDQUFBO0FBRXJCLE1BQUEsSUFBSSxFQUFFLElBQUssQ0FBQSxDQUFDLEtBQTJCLEtBQUEsS0FBQSxDQUFNLFNBQVMsQ0FBRyxFQUFBO0FBQ3ZELFFBQUEsa0JBQUEsQ0FBbUIsRUFBRSxDQUFBLENBQUE7QUFBQSxPQUFBO0FBQ3ZCLEtBQUE7QUFFRixJQUFBLE1BQUEsRUFBUSxNQUFNO0FBdEdsQixNQUFBLElBQUFELEdBQUFDLEVBQUFBLEdBQUFBLENBQUFBO0FBdUdNLE1BQUEsS0FBQSxDQUFNLGNBQWMsTUFBUSxFQUFBO1FBQzFCLEtBQU9BLEVBQUFBLENBQUFBLEdBQUFBLEdBQUFBLENBQUFELE1BQUEsZ0JBQWlCLENBQUEsQ0FBQSxDQUFBLEtBQWpCLE9BQUFBLEtBQUFBLENBQUFBLEdBQUFBLEdBQUFBLENBQXFCLEtBQXJCLEtBQUEsSUFBQSxHQUFBQyxHQUE4QixHQUFBLEVBQUE7QUFFckMsUUFBQSxNQUFBLEVBQVEsZ0JBQWlCLENBQUEsR0FBQSxDQUFJLENBQUMsTUFBQSxLQUFvQyxPQUFPLEtBQUssQ0FBQTtBQUM5RSxRQUFBLFdBQUEsRUFBYSxnQkFBaUIsQ0FBQSxHQUFBLENBQUksQ0FBQyxNQUFBLEtBQW9DLE9BQU8sS0FBSyxDQUFBO09BQ3BGLENBQUEsQ0FBQTtBQUFBLEtBQUE7QUFDSCxHQUFBLENBQUE7QUFHRixFQUFBLE1BQU0sV0FDSCxtQkFBQSxLQUFBLENBQUEsYUFBQSxDQUFBLE1BQUEsRUFBQSxjQUFBLENBQUE7SUFDQyxXQUFXLEVBQUEsSUFBQTtBQUNYLElBQUEsZ0JBQUEsRUFBQSxDQUFrQixFQUFBLEdBQUEsS0FBQSxDQUFNLEtBQU0sQ0FBQSxnQkFBQSxLQUFaLE9BQWdDLEVBQUEsR0FBQSxJQUFBO0FBQ2xELElBQUEsZ0JBQUEsRUFBa0IsQ0FBQyxVQUFBLEtBQWUsVUFBVyxDQUFBLElBQUEsR0FBTyxNQUFTLEdBQUEsQ0FBQTtJQUM3RCx1QkFBdUIsRUFBQSxJQUFBO0lBQ3ZCLGlCQUFtQixFQUFBLENBQUMsZUFBZSxDQUFxQixrQkFBQSxFQUFBLFVBQUEsQ0FBQSxDQUFBO0FBQ3hELElBQUEsUUFBQSxFQUFVLE1BQU0sS0FBTSxDQUFBLFFBQUE7QUFDdEIsSUFBQSxTQUFBLEVBQVcsR0FBRyxNQUFPLENBQUEsS0FBQSxFQUFPLFlBQWUsR0FBQSxNQUFBLENBQU8sZ0JBQWdCLEtBQVMsQ0FBQSxDQUFBO0lBQzNFLEtBQU0sRUFBQSxNQUFBO0lBQ04sS0FBTyxFQUFBLFVBQUE7SUFDUCxZQUFjLEVBQUEsVUFBQTtJQUNkLFdBQWEsRUFBQSxjQUFBO0lBQ2IsT0FBUyxFQUFBLG9CQUFBO0lBQ1QsVUFBWSxFQUFBLGVBQUE7SUFDWixhQUFlLEVBQUEsa0JBQUE7QUFDZixJQUFBLFFBQUEsRUFBVSxDQUFDLENBQU0sS0FBQTtBQUNmLE1BQUEsS0FBQSxDQUFNLGNBQWMsTUFBUSxFQUFBO0FBQzFCLFFBQUEsS0FBQSxFQUFPLENBQUUsQ0FBQSxLQUFBO1FBQ1QsV0FBYSxFQUFBLENBQUEsQ0FBRSxRQUFRLENBQUMsQ0FBQSxDQUFFLEtBQUssQ0FBSSxHQUFBLENBQUMsRUFBRSxLQUFLLENBQUE7T0FDNUMsQ0FBQSxDQUFBO0FBRUcsTUFBQSxJQUFBLG1CQUFBLEtBQXdCLEVBQUUsU0FBVyxFQUFBO0FBQ3ZDLFFBQUEsc0JBQUEsQ0FBdUIsRUFBRSxTQUFTLENBQUEsQ0FBQTtBQUFBLE9BQUE7QUFDcEMsS0FBQTtBQUtGLElBQUEsTUFBQSxFQUFRLGdCQUFnQixDQUFDLGVBQUE7SUFDekIsU0FBVyxFQUFBLGVBQUE7SUFDWCxlQUFpQixFQUFBLElBQUE7QUFDakIsSUFBQSxVQUFBLEVBQVksWUFBWTtBQWhKOUJELE1BQUFBLElBQUFBLEdBQUFBLENBQUFBO0FBaUpRLE1BQUEsa0JBQUEsQ0FBbUIsSUFBSSxDQUFBLENBQUE7QUFDdkIsTUFBQSxlQUFBLENBQWdCLElBQUksQ0FBQSxDQUFBO0FBQ3BCLE1BQUEsTUFBTUUsT0FBUyxHQUFBLE1BQU0sS0FBTSxDQUFBLGFBQUEsQ0FBYyxNQUFNLENBQUEsQ0FBQTtBQUMvQyxNQUFBLGtCQUFBLENBQW1CLEtBQUssQ0FBQSxDQUFBO0FBQ3hCLE1BQUEsU0FBQSxDQUFVQSxPQUFNLENBQUEsQ0FBQTtBQUNoQixNQUFBLElBQUksbUJBQXFCLEVBQUE7QUFDdkIsUUFBbUJGLGtCQUFBQSxDQUFBQSxDQUFBQSxHQUFBQSxHQUFBLGNBQUEsSUFBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBLFdBQVksS0FBWixLQUFBLElBQUEsR0FBQUEsTUFBcUIsRUFBRSxDQUFBLENBQUE7QUFBQSxPQUFBO0FBQzVDLEtBQUE7QUFFRixJQUFBLFdBQUEsRUFBYSxNQUFNO0FBQ2pCLE1BQUEsZUFBQSxDQUFnQixLQUFLLENBQUEsQ0FBQTtBQUNyQixNQUFBLGtCQUFBLENBQW1CLEVBQUUsQ0FBQSxDQUFBO0FBQUEsS0FBQTtHQUVsQixFQUFBLFlBQUEsSUFBZ0IsZUFDdkIsQ0FBQSxDQUFBLENBQUE7QUFHRixFQUFNLE1BQUEsU0FBQSxtQkFDSCxLQUFBLENBQUEsYUFBQSxDQUFBLE1BQUEsRUFBQTtJQUdDLEdBQUssRUFBQSxDQUFBLEVBQUcsa0JBQWtCLFNBQVksR0FBQSxRQUFBLENBQUEsQ0FBQTtBQUN0QyxJQUFBLFFBQUEsRUFBVSxNQUFNLEtBQU0sQ0FBQSxRQUFBO0FBQ3RCLElBQUEsU0FBQSxFQUFXLEdBQUcsTUFBTyxDQUFBLEdBQUEsRUFBSyxVQUFhLEdBQUEsTUFBQSxDQUFPLGdCQUFnQixLQUFTLENBQUEsQ0FBQTtJQUN2RSxLQUFNLEVBQUEsTUFBQTtBQUNOLElBQUEsZ0JBQUEsRUFBQSxDQUFrQixFQUFBLEdBQUEsS0FBQSxDQUFNLEtBQU0sQ0FBQSxnQkFBQSxLQUFaLE9BQWdDLEVBQUEsR0FBQSxJQUFBO0lBQ2xELEtBQU8sRUFBQSxRQUFBO0lBQ1AsV0FBYSxFQUFBLGNBQUE7QUFDYixJQUFBLE9BQUEsRUFBUyxtQkFBbUIsSUFBSSxDQUFBO0FBQ2hDLElBQUEsUUFBQSxFQUFVLENBQUMsQ0FBTSxLQUFBO0FBQ2YsTUFBQSxLQUFBLENBQU0sY0FBYyxNQUFRLEVBQUE7QUFDMUIsUUFBQSxHQUFBLEVBQUssQ0FBRSxDQUFBLEtBQUE7QUFDUCxRQUFBLFFBQUEsRUFBVSxDQUFFLENBQUEsS0FBQTtRQUVaLEtBQU8sRUFBQSxFQUFBO0FBQ1AsUUFBQSxXQUFBLEVBQWEsQ0FBQyxFQUFFLENBQUE7UUFDaEIsTUFBUSxFQUFBLEtBQUEsQ0FBQTtPQUNULENBQUEsQ0FBQTtBQUNELE1BQUEsbUJBQUEsQ0FBb0IsRUFBRSxDQUFBLENBQUE7QUFBQSxLQUFBO0FBRXhCLElBQUEsU0FBQSxFQUFXLE9BQU8sR0FBUSxLQUFBLEVBQUE7QUFJMUIsSUFBQSxNQUFBLEVBQVEsY0FBYyxDQUFDLGFBQUE7SUFDdkIsU0FBVyxFQUFBLGFBQUE7QUFDWCxJQUFBLFVBQUEsRUFBWSxZQUFZO0FBQ3RCLE1BQUEsYUFBQSxDQUFjLElBQUksQ0FBQSxDQUFBO0FBQ2xCLE1BQUEsZ0JBQUEsQ0FBaUIsSUFBSSxDQUFBLENBQUE7QUFDckIsTUFBQSxNQUFNRyxLQUFPLEdBQUEsTUFBTSxLQUFNLENBQUEsUUFBQSxDQUFTLE9BQU8sR0FBRyxDQUFBLENBQUE7QUFDNUMsTUFBQSxnQkFBQSxDQUFpQixLQUFLLENBQUEsQ0FBQTtBQUN0QixNQUFBLE9BQUEsQ0FBUUEsS0FBSSxDQUFBLENBQUE7QUFBQSxLQUFBO0FBRWQsSUFBQSxXQUFBLEVBQWEsTUFBTTtBQUNqQixNQUFBLGFBQUEsQ0FBYyxLQUFLLENBQUEsQ0FBQTtBQUFBLEtBQUE7QUFFckIsSUFBQSxNQUFBLEVBQVEsTUFBTTtBQUNSLE1BQUEsSUFBQSxNQUFBLENBQU8sUUFBUSxFQUFJLEVBQUE7QUFDckIsUUFBQSxLQUFBLENBQU0sY0FBYyxNQUFNLENBQUEsQ0FBQTtBQUFBLE9BQUE7QUFDNUIsS0FBQTtJQUVGLGVBQWlCLEVBQUEsSUFBQTtHQUNuQixDQUFBLENBQUE7QUFHRixFQUFNLE1BQUEsY0FBQSxtQkFDSCxLQUFBLENBQUEsYUFBQSxDQUFBLE1BQUEsRUFBQTtJQUNDLFNBQVcsRUFBQSxFQUFBLENBQUcsT0FBTyxRQUFVLEVBQUE7QUFDN0IsTUFBQSxDQUFDLE9BQU8sYUFBZ0IsR0FBQSxjQUFBO0tBQ3pCLENBQUE7QUFDRCxJQUFBLEtBQUEsRUFBTyxNQUFPLENBQUEsUUFBQTtBQUNkLElBQUEsUUFBQSxFQUFVLE1BQU0sS0FBTSxDQUFBLFFBQUE7QUFDdEIsSUFBQSxPQUFBLEVBQVMsTUFBTSxhQUFjLEVBQUE7SUFDN0IsUUFBVSxFQUFBLGdCQUFBO0FBQ1YsSUFBQSxVQUFBLEVBQVksTUFBTTtBQUNoQixNQUFBLGlCQUFBLENBQWtCLElBQUksQ0FBQSxDQUFBO0FBQUEsS0FBQTtBQUV4QixJQUFBLFdBQUEsRUFBYSxNQUFNO0FBQ2pCLE1BQUEsaUJBQUEsQ0FBa0IsS0FBSyxDQUFBLENBQUE7QUFBQSxLQUFBO0dBRTNCLENBQUEsQ0FBQTtBQUdFLEVBQUEsSUFBQSxLQUFBLENBQU0sS0FBTSxDQUFBLE1BQUEsS0FBVyxVQUFZLEVBQUE7QUFDckMsSUFBQSxJQUFJLE9BQU8sR0FBSyxFQUFBO0FBQ2QsTUFBTSxNQUFBLEtBQUEsbUJBQ0gsS0FBQSxDQUFBLGFBQUEsQ0FBQSxhQUFBLEVBQUE7UUFBYyxNQUFPLEVBQUEsVUFBQTtBQUFXLFFBQUEsS0FBQSxFQUFBLENBQU8sRUFBTyxHQUFBLE1BQUEsQ0FBQSxHQUFQLEtBQUEsSUFBQSxHQUFjLEVBQUEsR0FBQSxFQUFBO1FBQUksUUFBVSxFQUFBLE1BQU0sS0FBTSxDQUFBLGFBQUEsQ0FBYyxNQUFNLENBQUE7T0FBRyxDQUFBLENBQUE7QUFHekcsTUFDRyx1QkFBQSxLQUFBLENBQUEsY0FBQSxLQUFBLEVBQUE7QUFBTSxRQUFBLEtBQUE7QUFBYyxRQUFBLGFBQUEsRUFBYSxlQUFlLE1BQU8sQ0FBQSxHQUFBLENBQUEsQ0FBQTtBQUFPLFFBQUEsU0FBQSxFQUFXLE1BQU8sQ0FBQSxLQUFBO09BQzlFLGtCQUFBLEtBQUEsQ0FBQSxjQUFBLEtBQUEsRUFBQTtBQUFJLFFBQUEsU0FBQSxFQUFXLE1BQU8sQ0FBQSxPQUFBO09BQ3BCLEVBQUEsY0FBQSxFQUNBLFdBQ0gsQ0FDRixDQUFBLENBQUE7S0FFRyxNQUFBO0FBQ0wsTUFDRyx1QkFBQSxLQUFBLENBQUEsY0FBQSxLQUFBLEVBQUE7UUFBTSxLQUFPLEVBQUEsY0FBQTtBQUFnQixRQUFBLGFBQUEsRUFBYSxlQUFlLE1BQU8sQ0FBQSxHQUFBLENBQUEsQ0FBQTtBQUFPLFFBQUEsU0FBQSxFQUFXLE1BQU8sQ0FBQSxLQUFBO0FBQUEsT0FBQSxFQUN2RixTQUNILENBQUEsQ0FBQTtBQUFBLEtBQUE7QUFFSixHQUFBO0FBR0YsRUFDRyx1QkFBQSxLQUFBLENBQUEsY0FBQSxLQUFBLEVBQUE7QUFBSSxJQUFBLFNBQUEsRUFBVyxNQUFPLENBQUEsT0FBQTtBQUFTLElBQUEsYUFBQSxFQUFhLGVBQWUsTUFBTyxDQUFBLEdBQUEsQ0FBQSxDQUFBO0FBQUEsR0FBQSxFQUNoRSxTQUNBLEVBQUEsY0FBQSxFQUNBLFdBQ0Esa0JBQUEsS0FBQSxDQUFBLGNBQUEsTUFBQSxFQUFBO0lBQ0MsT0FBUSxFQUFBLFdBQUE7SUFDUixZQUFXLEVBQUEsZUFBQTtJQUNYLEtBQU0sRUFBQSxlQUFBO0FBQ04sSUFBQSxTQUFBLEVBQVcsTUFBTyxDQUFBLFlBQUE7SUFDbEIsSUFBSyxFQUFBLE9BQUE7QUFDTCxJQUFBLGFBQUEsRUFBYSxDQUFzQixtQkFBQSxFQUFBLENBQUEsRUFBQSxHQUFPLE1BQUEsQ0FBQSxHQUFBLEtBQVAsT0FBYyxFQUFBLEdBQUEsRUFBQSxDQUFBLENBQUE7SUFDakQsT0FBUyxFQUFBLE1BQU0sS0FBTSxDQUFBLGFBQUEsQ0FBYyxNQUFNLENBQUE7QUFBQSxHQUMzQyxDQUNGLENBQUEsQ0FBQTtBQUVKLENBQUE7QUFFQSxNQUFNLFNBQUEsR0FBWSxDQUFDLEtBQTBCLE1BQUE7QUFDM0MsRUFBQSxLQUFBLEVBQU8sR0FBSSxDQUFBO0lBQ1QsWUFBYyxFQUFBLENBQUE7R0FDZixDQUFBO0FBQ0QsRUFBQSxPQUFBLEVBQVMsR0FBSSxDQUFBO0lBQ1gsT0FBUyxFQUFBLE1BQUE7SUFDVCxLQUFPLEVBQUE7TUFDTCxxQkFBdUIsRUFBQTtRQUVyQixVQUFZLEVBQUEsQ0FBQSxDQUFBO0FBQUEsT0FBQTtNQUdkLGVBQWlCLEVBQUE7UUFDZixvQkFBc0IsRUFBQSxDQUFBO1FBQ3RCLHVCQUF5QixFQUFBLENBQUE7QUFBQSxPQUFBO01BRzNCLGNBQWdCLEVBQUE7UUFDZCxtQkFBcUIsRUFBQSxDQUFBO1FBQ3JCLHNCQUF3QixFQUFBLENBQUE7QUFBQSxPQUFBO01BRzFCLHNDQUF3QyxFQUFBO1FBQ3RDLFlBQWMsRUFBQSxDQUFBO0FBQUEsT0FBQTtNQUloQixRQUFVLEVBQUEsVUFBQTtNQUNWLE1BQVEsRUFBQSxDQUFBO01BSVIsU0FBVyxFQUFBO1FBQ1QsTUFBUSxFQUFBLENBQUE7QUFBQSxPQUFBO01BR1YsZ0JBQWtCLEVBQUE7UUFDaEIsTUFBUSxFQUFBLENBQUE7QUFBQSxPQUFBO0FBQ1YsS0FBQTtHQUVILENBQUE7QUFDRCxFQUFBLGFBQUEsRUFBZSxHQUFJLENBQUE7SUFDakIsUUFBVSxFQUFBLEtBQUEsQ0FBTSxRQUFRLEVBQUUsQ0FBQTtHQUMzQixDQUFBO0FBQ0QsRUFBQSxLQUFBLEVBQU8sR0FBSSxDQUFBO0lBQ1QsU0FBVyxFQUFBLFNBQUE7SUFDWCxVQUFZLEVBQUEsQ0FBQTtJQUNaLFFBQVUsRUFBQSxNQUFBO0dBQ1gsQ0FBQTtBQUNELEVBQUEsR0FBQSxFQUFLLEdBQUksQ0FBQTtJQUNQLFNBQVcsRUFBQSxTQUFBO0lBQ1gsUUFBVSxFQUFBLE1BQUE7SUFDVixVQUFZLEVBQUEsQ0FBQTtHQUNiLENBQUE7QUFDRCxFQUFBLFFBQUEsRUFBVSxHQUFJLENBQUE7SUFDWixVQUFZLEVBQUEsQ0FBQTtJQUNaLFNBQVcsRUFBQSxTQUFBO0dBQ1osQ0FBQTtBQUNELEVBQUEsWUFBQSxFQUFjLEdBQUksQ0FBQTtJQUNoQixXQUFhLEVBQUEsS0FBQSxDQUFNLE9BQVEsQ0FBQSxDQUFBLEdBQUksQ0FBQyxDQUFBO0lBQ2hDLFlBQWMsRUFBQSxLQUFBLENBQU0sT0FBUSxDQUFBLENBQUEsR0FBSSxDQUFDLENBQUE7SUFDakMsVUFBWSxFQUFBLE1BQUE7SUFDWixLQUFPLEVBQUEsS0FBQSxDQUFNLFFBQVEsQ0FBQyxDQUFBO0lBQ3RCLFdBQWEsRUFBQSxLQUFBLENBQU0sUUFBUSxDQUFDLENBQUE7SUFDNUIsU0FBVyxFQUFBLFlBQUE7SUFFWCxRQUFVLEVBQUEsVUFBQTtJQUNWLElBQU0sRUFBQSxLQUFBO0dBQ1AsQ0FBQTtBQUNILENBQUEsQ0FBQTs7OzsifQ==