@grafana/scenes 6.7.0 → 6.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/dist/esm/components/layout/CSSGrid/SceneCSSGridItem.js +33 -0
- package/dist/esm/dist/esm/behaviors/CursorSync.js +76 -0
- package/dist/esm/dist/esm/behaviors/LiveNowTimer.js +44 -0
- package/dist/esm/dist/esm/behaviors/SceneQueryController.js +14 -0
- package/dist/esm/dist/esm/components/EmbeddedScene.js +59 -0
- package/dist/esm/dist/esm/components/NestedScene.js +95 -0
- package/dist/esm/dist/esm/components/SceneApp/SceneApp.js +27 -0
- package/dist/esm/dist/esm/components/SceneApp/SceneAppPage.js +176 -0
- package/dist/esm/dist/esm/components/SceneApp/SceneAppPageView.js +104 -0
- package/dist/esm/dist/esm/components/SceneApp/utils.js +42 -0
- package/dist/esm/dist/esm/components/SceneByFrameRepeater.js +41 -0
- package/dist/esm/dist/esm/components/SceneByVariableRepeater.js +55 -0
- package/dist/esm/dist/esm/components/SceneCanvasText.js +32 -0
- package/dist/esm/dist/esm/components/SceneControlsSpacer.js +17 -0
- package/dist/esm/dist/esm/components/SceneDebugger/DebugDetails.js +82 -0
- package/dist/esm/dist/esm/components/SceneDebugger/DebugTreeNode.js +72 -0
- package/dist/esm/dist/esm/components/SceneDebugger/SceneDebugger.js +77 -0
- package/dist/esm/dist/esm/components/SceneReactObject.js +34 -0
- package/dist/esm/dist/esm/components/SceneRefreshPicker.js +205 -0
- package/dist/esm/dist/esm/components/SceneTimePicker.js +139 -0
- package/dist/esm/dist/esm/components/SceneTimeRangeCompare.js +240 -0
- package/dist/esm/dist/esm/components/SceneToolbarButton.js +33 -0
- package/dist/esm/dist/esm/components/VizPanel/VizPanel.js +406 -0
- package/dist/esm/dist/esm/components/VizPanel/VizPanelExploreButton.js +44 -0
- package/dist/esm/dist/esm/components/VizPanel/VizPanelMenu.js +59 -0
- package/dist/esm/dist/esm/components/VizPanel/VizPanelRenderer.js +285 -0
- package/dist/esm/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +45 -0
- package/dist/esm/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +72 -0
- package/dist/esm/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +11 -0
- package/dist/esm/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +164 -0
- package/dist/esm/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +124 -0
- package/dist/esm/dist/esm/components/layout/LazyLoader.js +103 -0
- package/dist/esm/dist/esm/components/layout/SceneFlexLayout.js +135 -0
- package/dist/esm/dist/esm/components/layout/grid/SceneGridItem.js +30 -0
- package/dist/esm/dist/esm/components/layout/grid/SceneGridLayout.js +283 -0
- package/dist/esm/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +178 -0
- package/dist/esm/dist/esm/components/layout/grid/SceneGridRow.js +190 -0
- package/dist/esm/dist/esm/components/layout/grid/constants.js +7 -0
- package/dist/esm/dist/esm/components/layout/grid/utils.js +36 -0
- package/dist/esm/dist/esm/components/layout/split/SplitLayout.js +17 -0
- package/dist/esm/dist/esm/components/layout/split/SplitLayoutRenderer.js +29 -0
- package/dist/esm/dist/esm/components/layout/split/Splitter.js +386 -0
- package/dist/esm/dist/esm/core/SceneComponentWrapper.js +57 -0
- package/dist/esm/dist/esm/core/SceneDataNode.js +43 -0
- package/dist/esm/dist/esm/core/SceneObjectBase.js +286 -0
- package/dist/esm/dist/esm/core/SceneObjectRef.js +32 -0
- package/dist/esm/dist/esm/core/SceneTimeRange.js +231 -0
- package/dist/esm/dist/esm/core/events.js +11 -0
- package/dist/esm/dist/esm/core/sceneGraph/getTimeRange.js +10 -0
- package/dist/esm/dist/esm/core/sceneGraph/index.js +25 -0
- package/dist/esm/dist/esm/core/sceneGraph/sceneGraph.js +178 -0
- package/dist/esm/dist/esm/core/sceneGraph/utils.js +64 -0
- package/dist/esm/dist/esm/core/types.js +15 -0
- package/dist/esm/dist/esm/querying/DataLayersMerger.js +46 -0
- package/dist/esm/dist/esm/querying/ExtraQueryProvider.js +6 -0
- package/dist/esm/dist/esm/querying/RuntimeDataSource.js +6 -0
- package/dist/esm/dist/esm/querying/SceneDataLayerSet.js +100 -0
- package/dist/esm/dist/esm/querying/SceneQueryRunner.js +468 -0
- package/dist/esm/dist/esm/querying/extraQueryProcessingOperator.js +46 -0
- package/dist/esm/dist/esm/querying/getEnrichedDataRequest.js +12 -0
- package/dist/esm/dist/esm/querying/layers/SceneDataLayerBase.js +112 -0
- package/dist/esm/dist/esm/querying/layers/SceneDataLayerControls.js +51 -0
- package/dist/esm/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +130 -0
- package/dist/esm/dist/esm/querying/layers/annotations/filterAnnotations.js +85 -0
- package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +121 -0
- package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +211 -0
- package/dist/esm/dist/esm/querying/layers/annotations/utils.js +77 -0
- package/dist/esm/dist/esm/querying/registerQueryWithController.js +41 -0
- package/dist/esm/dist/esm/services/SceneObjectUrlSyncConfig.js +30 -0
- package/dist/esm/dist/esm/services/UniqueUrlKeyMapper.js +45 -0
- package/dist/esm/dist/esm/services/UrlSyncManager.js +167 -0
- package/dist/esm/dist/esm/services/useUrlSync.js +29 -0
- package/dist/esm/dist/esm/services/utils.js +71 -0
- package/dist/esm/dist/esm/utils/ControlsLabel.js +107 -0
- package/dist/esm/dist/esm/utils/LoadingIndicator.js +19 -0
- package/dist/esm/dist/esm/utils/SafeSerializableSceneObject.js +39 -0
- package/dist/esm/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js +16 -0
- package/dist/esm/dist/esm/utils/date.js +15 -0
- package/dist/esm/dist/esm/utils/evaluateTimeRange.js +16 -0
- package/dist/esm/dist/esm/utils/explore.js +47 -0
- package/dist/esm/dist/esm/utils/getCompareSeriesRefId.js +4 -0
- package/dist/esm/dist/esm/utils/getDataSource.js +18 -0
- package/dist/esm/dist/esm/utils/getMessageFromError.js +24 -0
- package/dist/esm/dist/esm/utils/metricTree.js +53 -0
- package/dist/esm/dist/esm/utils/parseUrlParam.js +41 -0
- package/dist/esm/dist/esm/utils/utils.js +11 -0
- package/dist/esm/dist/esm/utils/wrapInSafeSerializableSceneObject.js +30 -0
- package/dist/esm/dist/esm/utils/writeSceneLog.js +12 -0
- package/dist/esm/dist/esm/variables/VariableDependencyConfig.js +150 -0
- package/dist/esm/dist/esm/variables/VariableValueRecorder.js +71 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFilterBuilder.js +24 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFilterRenderer.js +303 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +162 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +20 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +640 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +65 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +146 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +114 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +68 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +146 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariable.js +289 -0
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +76 -0
- package/dist/esm/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +13 -0
- package/dist/esm/dist/esm/variables/adhoc/patchGetAdhocFilters.js +47 -0
- package/dist/esm/dist/esm/variables/components/VariableValueControl.js +23 -0
- package/dist/esm/dist/esm/variables/components/VariableValueInput.js +33 -0
- package/dist/esm/dist/esm/variables/components/VariableValueSelect.js +228 -0
- package/dist/esm/dist/esm/variables/components/VariableValueSelectors.js +72 -0
- package/dist/esm/dist/esm/variables/components/getOptionSearcher.js +15 -0
- package/dist/esm/dist/esm/variables/constants.js +9 -0
- package/dist/esm/dist/esm/variables/getEnrichedFiltersRequest.js +12 -0
- package/dist/esm/dist/esm/variables/groupby/GroupByVariable.js +259 -0
- package/dist/esm/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +63 -0
- package/dist/esm/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js +13 -0
- package/dist/esm/dist/esm/variables/interpolation/ScopedVarsVariable.js +40 -0
- package/dist/esm/dist/esm/variables/interpolation/defaults.js +21 -0
- package/dist/esm/dist/esm/variables/interpolation/fieldAccessorCache.js +13 -0
- package/dist/esm/dist/esm/variables/interpolation/formatRegistry.js +296 -0
- package/dist/esm/dist/esm/variables/interpolation/sceneInterpolator.js +87 -0
- package/dist/esm/dist/esm/variables/lookupVariable.js +20 -0
- package/dist/esm/dist/esm/variables/macros/AllVariablesMacro.js +57 -0
- package/dist/esm/dist/esm/variables/macros/contextMacros.js +43 -0
- package/dist/esm/dist/esm/variables/macros/dataMacros.js +134 -0
- package/dist/esm/dist/esm/variables/macros/index.js +26 -0
- package/dist/esm/dist/esm/variables/macros/templateProxies.js +51 -0
- package/dist/esm/dist/esm/variables/macros/timeMacros.js +86 -0
- package/dist/esm/dist/esm/variables/macros/types.js +11 -0
- package/dist/esm/dist/esm/variables/macros/urlMacros.js +56 -0
- package/dist/esm/dist/esm/variables/sets/SceneVariableSet.js +254 -0
- package/dist/esm/dist/esm/variables/types.js +11 -0
- package/dist/esm/dist/esm/variables/utils.js +172 -0
- package/dist/esm/dist/esm/variables/variants/ConstantVariable.js +38 -0
- package/dist/esm/dist/esm/variables/variants/CustomVariable.js +60 -0
- package/dist/esm/dist/esm/variables/variants/DataSourceVariable.js +88 -0
- package/dist/esm/dist/esm/variables/variants/IntervalVariable.js +117 -0
- package/dist/esm/dist/esm/variables/variants/MultiValueVariable.js +295 -0
- package/dist/esm/dist/esm/variables/variants/TestVariable.js +117 -0
- package/dist/esm/dist/esm/variables/variants/TextBoxVariable.js +61 -0
- package/dist/esm/dist/esm/variables/variants/query/QueryVariable.js +139 -0
- package/dist/esm/dist/esm/variables/variants/query/createQueryVariableRunner.js +129 -0
- package/dist/esm/dist/esm/variables/variants/query/guards.js +28 -0
- package/dist/esm/dist/esm/variables/variants/query/toMetricFindValues.js +96 -0
- package/dist/esm/dist/esm/variables/variants/query/utils.js +124 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/querying/DataProviderSharer.js +39 -0
- package/dist/esm/src/behaviors/ActWhenVariableChanged.js +27 -0
- package/dist/esm/src/behaviors/CursorSync.js +76 -0
- package/dist/esm/src/behaviors/LiveNowTimer.js +44 -0
- package/dist/esm/src/behaviors/SceneQueryController.js +60 -0
- package/dist/esm/src/behaviors/index.js +5 -0
- package/dist/esm/src/components/EmbeddedScene.js +59 -0
- package/dist/esm/src/components/NestedScene.js +95 -0
- package/dist/esm/src/components/SceneApp/SceneApp.js +37 -0
- package/dist/esm/src/components/SceneApp/SceneAppPage.js +176 -0
- package/dist/esm/src/components/SceneApp/SceneAppPageView.js +104 -0
- package/dist/esm/src/components/SceneApp/utils.js +42 -0
- package/dist/esm/src/components/SceneByFrameRepeater.js +41 -0
- package/dist/esm/src/components/SceneByVariableRepeater.js +55 -0
- package/dist/esm/src/components/SceneCanvasText.js +32 -0
- package/dist/esm/src/components/SceneControlsSpacer.js +17 -0
- package/dist/esm/src/components/SceneDebugger/DebugDetails.js +82 -0
- package/dist/esm/src/components/SceneDebugger/DebugTreeNode.js +72 -0
- package/dist/esm/src/components/SceneDebugger/SceneDebugger.js +77 -0
- package/dist/esm/src/components/SceneReactObject.js +34 -0
- package/dist/esm/src/components/SceneRefreshPicker.js +205 -0
- package/dist/esm/src/components/SceneTimePicker.js +139 -0
- package/dist/esm/src/components/SceneTimeRangeCompare.js +240 -0
- package/dist/esm/src/components/SceneToolbarButton.js +33 -0
- package/dist/esm/src/components/VizPanel/VizPanel.js +406 -0
- package/dist/esm/src/components/VizPanel/VizPanelExploreButton.js +44 -0
- package/dist/esm/src/components/VizPanel/VizPanelMenu.js +59 -0
- package/dist/esm/src/components/VizPanel/VizPanelRenderer.js +285 -0
- package/dist/esm/src/components/VizPanel/VizPanelSeriesLimit.js +45 -0
- package/dist/esm/src/components/VizPanel/colorSeriesConfigFactory.js +72 -0
- package/dist/esm/src/components/VizPanel/registerRuntimePanelPlugin.js +56 -0
- package/dist/esm/src/components/VizPanel/seriesVisibilityConfigFactory.js +164 -0
- package/dist/esm/src/components/layout/CSSGrid/SceneCSSGridLayout.js +124 -0
- package/dist/esm/src/components/layout/LazyLoader.js +103 -0
- package/dist/esm/src/components/layout/SceneFlexLayout.js +135 -0
- package/dist/esm/src/components/layout/grid/SceneGridItem.js +30 -0
- package/dist/esm/src/components/layout/grid/SceneGridLayout.js +283 -0
- package/dist/esm/src/components/layout/grid/SceneGridLayoutRenderer.js +178 -0
- package/dist/esm/src/components/layout/grid/SceneGridRow.js +190 -0
- package/dist/esm/src/components/layout/grid/constants.js +7 -0
- package/dist/esm/src/components/layout/grid/utils.js +36 -0
- package/dist/esm/src/components/layout/split/SplitLayout.js +17 -0
- package/dist/esm/src/components/layout/split/SplitLayoutRenderer.js +29 -0
- package/dist/esm/src/components/layout/split/Splitter.js +386 -0
- package/dist/esm/src/core/PanelBuilders/FieldConfigBuilder.js +100 -0
- package/dist/esm/src/core/PanelBuilders/FieldConfigBuilders.js +75 -0
- package/dist/esm/src/core/PanelBuilders/FieldConfigOverridesBuilder.js +75 -0
- package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilder.js +22 -0
- package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilders.js +85 -0
- package/dist/esm/src/core/PanelBuilders/StandardFieldConfigBuilders.js +52 -0
- package/dist/esm/src/core/PanelBuilders/VizConfigBuilder.js +78 -0
- package/dist/esm/src/core/PanelBuilders/VizConfigBuilders.js +114 -0
- package/dist/esm/src/core/PanelBuilders/VizPanelBuilder.js +162 -0
- package/dist/esm/src/core/PanelBuilders/index.js +116 -0
- package/dist/esm/src/core/SceneComponentWrapper.js +57 -0
- package/dist/esm/src/core/SceneDataNode.js +43 -0
- package/dist/esm/src/core/SceneObjectBase.js +286 -0
- package/dist/esm/src/core/SceneObjectRef.js +32 -0
- package/dist/esm/src/core/SceneTimeRange.js +231 -0
- package/dist/esm/src/core/SceneTimeRangeTransformerBase.js +35 -0
- package/dist/esm/src/core/SceneTimeZoneOverride.js +63 -0
- package/dist/esm/src/core/events.js +11 -0
- package/dist/esm/src/core/sceneGraph/getTimeRange.js +10 -0
- package/dist/esm/src/core/sceneGraph/index.js +25 -0
- package/dist/esm/src/core/sceneGraph/sceneGraph.js +178 -0
- package/dist/esm/src/core/sceneGraph/utils.js +64 -0
- package/dist/esm/src/core/types.js +15 -0
- package/dist/esm/src/index.js +108 -0
- package/dist/esm/src/querying/DataLayersMerger.js +46 -0
- package/dist/esm/src/querying/DataProviderProxy.js +37 -0
- package/dist/esm/src/querying/DataProviderSharer.js +108 -0
- package/dist/esm/src/querying/ExtraQueryProvider.js +6 -0
- package/dist/esm/src/querying/RuntimeDataSource.js +49 -0
- package/dist/esm/src/querying/SceneDataLayerSet.js +100 -0
- package/dist/esm/src/querying/SceneDataTransformer.js +178 -0
- package/dist/esm/src/querying/SceneQueryRunner.js +468 -0
- package/dist/esm/src/querying/extraQueryProcessingOperator.js +46 -0
- package/dist/esm/src/querying/getEnrichedDataRequest.js +12 -0
- package/dist/esm/src/querying/layers/SceneDataLayerBase.js +112 -0
- package/dist/esm/src/querying/layers/SceneDataLayerControls.js +51 -0
- package/dist/esm/src/querying/layers/annotations/AnnotationsDataLayer.js +130 -0
- package/dist/esm/src/querying/layers/annotations/filterAnnotations.js +85 -0
- package/dist/esm/src/querying/layers/annotations/standardAnnotationQuery.js +121 -0
- package/dist/esm/src/querying/layers/annotations/standardAnnotationsSupport.js +211 -0
- package/dist/esm/src/querying/layers/annotations/utils.js +77 -0
- package/dist/esm/src/querying/layers/index.js +2 -0
- package/dist/esm/src/querying/registerQueryWithController.js +41 -0
- package/dist/esm/src/services/SceneObjectUrlSyncConfig.js +30 -0
- package/dist/esm/src/services/UniqueUrlKeyMapper.js +45 -0
- package/dist/esm/src/services/UrlSyncContextProvider.js +17 -0
- package/dist/esm/src/services/UrlSyncManager.js +167 -0
- package/dist/esm/src/services/useUrlSync.js +29 -0
- package/dist/esm/src/services/utils.js +75 -0
- package/dist/esm/src/utils/ControlsLabel.js +107 -0
- package/dist/esm/src/utils/LoadingIndicator.js +19 -0
- package/dist/esm/src/utils/SafeSerializableSceneObject.js +39 -0
- package/dist/esm/src/utils/compatibility/setWindowGrafanaSceneContext.js +16 -0
- package/dist/esm/src/utils/date.js +15 -0
- package/dist/esm/src/utils/evaluateTimeRange.js +16 -0
- package/dist/esm/src/utils/explore.js +47 -0
- package/dist/esm/src/utils/getCompareSeriesRefId.js +4 -0
- package/dist/esm/src/utils/getDataSource.js +18 -0
- package/dist/esm/src/utils/getMessageFromError.js +24 -0
- package/dist/esm/src/utils/metricTree.js +53 -0
- package/dist/esm/src/utils/parseUrlParam.js +41 -0
- package/dist/esm/src/utils/utils.js +11 -0
- package/dist/esm/src/utils/wrapInSafeSerializableSceneObject.js +30 -0
- package/dist/esm/src/utils/writeSceneLog.js +12 -0
- package/dist/esm/src/variables/VariableDependencyConfig.js +150 -0
- package/dist/esm/src/variables/VariableValueRecorder.js +71 -0
- package/dist/esm/src/variables/adhoc/AdHocFilterBuilder.js +24 -0
- package/dist/esm/src/variables/adhoc/AdHocFilterRenderer.js +303 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +162 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +20 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +640 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +65 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +146 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +114 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +68 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/utils.js +146 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersVariable.js +289 -0
- package/dist/esm/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +76 -0
- package/dist/esm/src/variables/adhoc/getAdhocOptionSearcher.js +13 -0
- package/dist/esm/src/variables/adhoc/patchGetAdhocFilters.js +47 -0
- package/dist/esm/src/variables/components/VariableValueControl.js +23 -0
- package/dist/esm/src/variables/components/VariableValueInput.js +33 -0
- package/dist/esm/src/variables/components/VariableValueSelect.js +228 -0
- package/dist/esm/src/variables/components/VariableValueSelectors.js +72 -0
- package/dist/esm/src/variables/components/getOptionSearcher.js +15 -0
- package/dist/esm/src/variables/constants.js +9 -0
- package/dist/esm/src/variables/getEnrichedFiltersRequest.js +12 -0
- package/dist/esm/src/variables/groupby/GroupByVariable.js +259 -0
- package/dist/esm/src/variables/groupby/GroupByVariableUrlSyncHandler.js +63 -0
- package/dist/esm/src/variables/groupby/findActiveGroupByVariablesByUid.js +13 -0
- package/dist/esm/src/variables/interpolation/ScopedVarsVariable.js +40 -0
- package/dist/esm/src/variables/interpolation/defaults.js +21 -0
- package/dist/esm/src/variables/interpolation/fieldAccessorCache.js +13 -0
- package/dist/esm/src/variables/interpolation/formatRegistry.js +296 -0
- package/dist/esm/src/variables/interpolation/sceneInterpolator.js +87 -0
- package/dist/esm/src/variables/lookupVariable.js +20 -0
- package/dist/esm/src/variables/macros/AllVariablesMacro.js +57 -0
- package/dist/esm/src/variables/macros/contextMacros.js +43 -0
- package/dist/esm/src/variables/macros/dataMacros.js +134 -0
- package/dist/esm/src/variables/macros/index.js +35 -0
- package/dist/esm/src/variables/macros/templateProxies.js +51 -0
- package/dist/esm/src/variables/macros/timeMacros.js +86 -0
- package/dist/esm/src/variables/macros/types.js +11 -0
- package/dist/esm/src/variables/macros/urlMacros.js +56 -0
- package/dist/esm/src/variables/sets/SceneVariableSet.js +254 -0
- package/dist/esm/src/variables/types.js +11 -0
- package/dist/esm/src/variables/utils.js +172 -0
- package/dist/esm/src/variables/variants/ConstantVariable.js +38 -0
- package/dist/esm/src/variables/variants/CustomVariable.js +60 -0
- package/dist/esm/src/variables/variants/DataSourceVariable.js +88 -0
- package/dist/esm/src/variables/variants/IntervalVariable.js +117 -0
- package/dist/esm/src/variables/variants/JsonVariable.js +193 -0
- package/dist/esm/src/variables/variants/LocalValueVariable.js +56 -0
- package/dist/esm/src/variables/variants/MultiValueVariable.js +295 -0
- package/dist/esm/src/variables/variants/TestVariable.js +117 -0
- package/dist/esm/src/variables/variants/TextBoxVariable.js +61 -0
- package/dist/esm/src/variables/variants/guards.js +27 -0
- package/dist/esm/src/variables/variants/query/QueryVariable.js +139 -0
- package/dist/esm/src/variables/variants/query/createQueryVariableRunner.js +129 -0
- package/dist/esm/src/variables/variants/query/guards.js +28 -0
- package/dist/esm/src/variables/variants/query/toMetricFindValues.js +96 -0
- package/dist/esm/src/variables/variants/query/utils.js +124 -0
- package/dist/esm/variables/components/VariableValueSelect.js +13 -9
- package/dist/esm/variables/components/VariableValueSelect.js.map +1 -1
- package/dist/esm/variables/variants/ConstantVariable.js +22 -0
- package/dist/esm/variables/variants/ConstantVariable.js.map +1 -1
- package/dist/esm/variables/variants/CustomVariable.js +3 -2
- package/dist/esm/variables/variants/CustomVariable.js.map +1 -1
- package/dist/esm/variables/variants/DataSourceVariable.js +3 -2
- package/dist/esm/variables/variants/DataSourceVariable.js.map +1 -1
- package/dist/esm/variables/variants/JsonVariable.js +96 -0
- package/dist/esm/variables/variants/TestVariable.js +3 -2
- package/dist/esm/variables/variants/TestVariable.js.map +1 -1
- package/dist/esm/variables/variants/json/JsonVariable.js +95 -0
- package/dist/esm/variables/variants/json/JsonVariableOptionProviders.js +70 -0
- package/dist/esm/variables/variants/query/QueryVariable.js +3 -2
- package/dist/esm/variables/variants/query/QueryVariable.js.map +1 -1
- package/dist/index.d.ts +14 -6
- package/dist/index.js +35 -13
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
import { isEqual, cloneDeep } from 'lodash';
|
|
2
|
+
import { ReplaySubject, forkJoin } from 'rxjs';
|
|
3
|
+
import { LoadingState } from '@grafana/schema';
|
|
4
|
+
import { preProcessPanelData, DataTopic, DataFrameView, rangeUtil } from '@grafana/data';
|
|
5
|
+
import { getRunRequest, toDataQueryError, isExpressionReference } from '@grafana/runtime';
|
|
6
|
+
import { SceneObjectBase } from '../core/SceneObjectBase.js';
|
|
7
|
+
import { sceneGraph } from '../core/sceneGraph/index.js';
|
|
8
|
+
import { getDataSource } from '../utils/getDataSource.js';
|
|
9
|
+
import { VariableDependencyConfig } from '../variables/VariableDependencyConfig.js';
|
|
10
|
+
import { writeSceneLog } from '../utils/writeSceneLog.js';
|
|
11
|
+
import { VariableValueRecorder } from '../variables/VariableValueRecorder.js';
|
|
12
|
+
import { emptyPanelData } from '../core/SceneDataNode.js';
|
|
13
|
+
import { getClosest } from '../core/sceneGraph/utils.js';
|
|
14
|
+
import { isExtraQueryProvider } from './ExtraQueryProvider.js';
|
|
15
|
+
import { extraQueryProcessingOperator, passthroughProcessor } from './extraQueryProcessingOperator.js';
|
|
16
|
+
import { filterAnnotations } from './layers/annotations/filterAnnotations.js';
|
|
17
|
+
import { getEnrichedDataRequest } from './getEnrichedDataRequest.js';
|
|
18
|
+
import { findActiveAdHocFilterVariableByUid } from '../variables/adhoc/patchGetAdhocFilters.js';
|
|
19
|
+
import { registerQueryWithController } from './registerQueryWithController.js';
|
|
20
|
+
import { findActiveGroupByVariablesByUid } from '../variables/groupby/findActiveGroupByVariablesByUid.js';
|
|
21
|
+
import { GroupByVariable } from '../variables/groupby/GroupByVariable.js';
|
|
22
|
+
import { AdHocFiltersVariable, isFilterComplete } from '../variables/adhoc/AdHocFiltersVariable.js';
|
|
23
|
+
import { DataLayersMerger } from './DataLayersMerger.js';
|
|
24
|
+
import { interpolate } from '../core/sceneGraph/sceneGraph.js';
|
|
25
|
+
import { wrapInSafeSerializableSceneObject } from '../utils/wrapInSafeSerializableSceneObject.js';
|
|
26
|
+
|
|
27
|
+
var __defProp = Object.defineProperty;
|
|
28
|
+
var __defProps = Object.defineProperties;
|
|
29
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
30
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
31
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
32
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
33
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
34
|
+
var __spreadValues = (a, b) => {
|
|
35
|
+
for (var prop in b || (b = {}))
|
|
36
|
+
if (__hasOwnProp.call(b, prop))
|
|
37
|
+
__defNormalProp(a, prop, b[prop]);
|
|
38
|
+
if (__getOwnPropSymbols)
|
|
39
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
40
|
+
if (__propIsEnum.call(b, prop))
|
|
41
|
+
__defNormalProp(a, prop, b[prop]);
|
|
42
|
+
}
|
|
43
|
+
return a;
|
|
44
|
+
};
|
|
45
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
46
|
+
let counter = 100;
|
|
47
|
+
function getNextRequestId() {
|
|
48
|
+
return "SQR" + counter++;
|
|
49
|
+
}
|
|
50
|
+
class SceneQueryRunner extends SceneObjectBase {
|
|
51
|
+
constructor(initialState) {
|
|
52
|
+
super(initialState);
|
|
53
|
+
this._dataLayersMerger = new DataLayersMerger();
|
|
54
|
+
this._variableValueRecorder = new VariableValueRecorder();
|
|
55
|
+
this._results = new ReplaySubject(1);
|
|
56
|
+
this._scopedVars = { __sceneObject: wrapInSafeSerializableSceneObject(this) };
|
|
57
|
+
this._variableDependency = new VariableDependencyConfig(this, {
|
|
58
|
+
statePaths: ["queries", "datasource"],
|
|
59
|
+
onVariableUpdateCompleted: this.onVariableUpdatesCompleted.bind(this),
|
|
60
|
+
onAnyVariableChanged: this.onAnyVariableChanged.bind(this)
|
|
61
|
+
});
|
|
62
|
+
this.onDataReceived = (data) => {
|
|
63
|
+
const preProcessedData = preProcessPanelData(data, this.state.data);
|
|
64
|
+
this._resultAnnotations = data.annotations;
|
|
65
|
+
const dataWithLayersApplied = this._combineDataLayers(preProcessedData);
|
|
66
|
+
let hasFetchedData = this.state._hasFetchedData;
|
|
67
|
+
if (!hasFetchedData && preProcessedData.state !== LoadingState.Loading) {
|
|
68
|
+
hasFetchedData = true;
|
|
69
|
+
}
|
|
70
|
+
this.setState({ data: dataWithLayersApplied, _hasFetchedData: hasFetchedData });
|
|
71
|
+
this._results.next({ origin: this, data: dataWithLayersApplied });
|
|
72
|
+
};
|
|
73
|
+
this.addActivationHandler(() => this._onActivate());
|
|
74
|
+
}
|
|
75
|
+
getResultsStream() {
|
|
76
|
+
return this._results;
|
|
77
|
+
}
|
|
78
|
+
_onActivate() {
|
|
79
|
+
if (this.isQueryModeAuto()) {
|
|
80
|
+
const timeRange = sceneGraph.getTimeRange(this);
|
|
81
|
+
const providers = this.getClosestExtraQueryProviders();
|
|
82
|
+
for (const provider of providers) {
|
|
83
|
+
this._subs.add(
|
|
84
|
+
provider.subscribeToState((n, p) => {
|
|
85
|
+
if (provider.shouldRerun(p, n, this.state.queries)) {
|
|
86
|
+
this.runQueries();
|
|
87
|
+
}
|
|
88
|
+
})
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
this.subscribeToTimeRangeChanges(timeRange);
|
|
92
|
+
if (this.shouldRunQueriesOnActivate()) {
|
|
93
|
+
this.runQueries();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (!this._dataLayersSub) {
|
|
97
|
+
this._handleDataLayers();
|
|
98
|
+
}
|
|
99
|
+
return () => this._onDeactivate();
|
|
100
|
+
}
|
|
101
|
+
_handleDataLayers() {
|
|
102
|
+
const dataLayers = sceneGraph.getDataLayers(this);
|
|
103
|
+
if (dataLayers.length === 0) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
this._dataLayersSub = this._dataLayersMerger.getMergedStream(dataLayers).subscribe(this._onLayersReceived.bind(this));
|
|
107
|
+
}
|
|
108
|
+
_onLayersReceived(results) {
|
|
109
|
+
var _a, _b, _c, _d, _e;
|
|
110
|
+
const timeRange = sceneGraph.getTimeRange(this);
|
|
111
|
+
const { dataLayerFilter } = this.state;
|
|
112
|
+
let annotations = [];
|
|
113
|
+
let alertStates = [];
|
|
114
|
+
let alertState;
|
|
115
|
+
for (const result of results) {
|
|
116
|
+
for (let frame of result.data.series) {
|
|
117
|
+
if (((_a = frame.meta) == null ? void 0 : _a.dataTopic) === DataTopic.Annotations) {
|
|
118
|
+
annotations = annotations.concat(frame);
|
|
119
|
+
}
|
|
120
|
+
if (((_b = frame.meta) == null ? void 0 : _b.dataTopic) === DataTopic.AlertStates) {
|
|
121
|
+
alertStates = alertStates.concat(frame);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (dataLayerFilter == null ? void 0 : dataLayerFilter.panelId) {
|
|
126
|
+
if (annotations.length > 0) {
|
|
127
|
+
annotations = filterAnnotations(annotations, dataLayerFilter);
|
|
128
|
+
}
|
|
129
|
+
if (alertStates.length > 0) {
|
|
130
|
+
for (const frame of alertStates) {
|
|
131
|
+
const frameView = new DataFrameView(frame);
|
|
132
|
+
for (const row of frameView) {
|
|
133
|
+
if (row.panelId === dataLayerFilter.panelId) {
|
|
134
|
+
alertState = row;
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (allFramesEmpty(annotations) && allFramesEmpty(this._layerAnnotations) && isEqual(alertState, (_c = this.state.data) == null ? void 0 : _c.alertState)) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
this._layerAnnotations = annotations;
|
|
145
|
+
const baseStateUpdate = this.state.data ? this.state.data : __spreadProps(__spreadValues({}, emptyPanelData), { timeRange: timeRange.state.value });
|
|
146
|
+
this.setState({
|
|
147
|
+
data: __spreadProps(__spreadValues({}, baseStateUpdate), {
|
|
148
|
+
annotations: [...(_d = this._resultAnnotations) != null ? _d : [], ...annotations],
|
|
149
|
+
alertState: alertState != null ? alertState : (_e = this.state.data) == null ? void 0 : _e.alertState
|
|
150
|
+
})
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
onVariableUpdatesCompleted() {
|
|
154
|
+
if (this.isQueryModeAuto()) {
|
|
155
|
+
this.runQueries();
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
onAnyVariableChanged(variable) {
|
|
159
|
+
if (this._adhocFiltersVar === variable || this._groupByVar === variable || !this.isQueryModeAuto()) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
if (variable instanceof AdHocFiltersVariable && this._isRelevantAutoVariable(variable)) {
|
|
163
|
+
this.runQueries();
|
|
164
|
+
}
|
|
165
|
+
if (variable instanceof GroupByVariable && this._isRelevantAutoVariable(variable)) {
|
|
166
|
+
this.runQueries();
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
_isRelevantAutoVariable(variable) {
|
|
170
|
+
var _a, _b;
|
|
171
|
+
const datasource = (_a = this.state.datasource) != null ? _a : findFirstDatasource(this.state.queries);
|
|
172
|
+
return variable.state.applyMode === "auto" && (datasource == null ? void 0 : datasource.uid) === ((_b = variable.state.datasource) == null ? void 0 : _b.uid);
|
|
173
|
+
}
|
|
174
|
+
shouldRunQueriesOnActivate() {
|
|
175
|
+
if (this._variableValueRecorder.hasDependenciesChanged(this)) {
|
|
176
|
+
writeSceneLog(
|
|
177
|
+
"SceneQueryRunner",
|
|
178
|
+
"Variable dependency changed while inactive, shouldRunQueriesOnActivate returns true"
|
|
179
|
+
);
|
|
180
|
+
return true;
|
|
181
|
+
}
|
|
182
|
+
if (!this.state.data) {
|
|
183
|
+
return true;
|
|
184
|
+
}
|
|
185
|
+
if (this._isDataTimeRangeStale(this.state.data)) {
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
_isDataTimeRangeStale(data) {
|
|
191
|
+
const timeRange = sceneGraph.getTimeRange(this);
|
|
192
|
+
const stateTimeRange = timeRange.state.value;
|
|
193
|
+
const dataTimeRange = data.timeRange;
|
|
194
|
+
if (stateTimeRange.from.unix() === dataTimeRange.from.unix() && stateTimeRange.to.unix() === dataTimeRange.to.unix()) {
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
writeSceneLog("SceneQueryRunner", "Data time range is stale");
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
_onDeactivate() {
|
|
201
|
+
var _a;
|
|
202
|
+
if (this._querySub) {
|
|
203
|
+
this._querySub.unsubscribe();
|
|
204
|
+
this._querySub = void 0;
|
|
205
|
+
}
|
|
206
|
+
if (this._dataLayersSub) {
|
|
207
|
+
this._dataLayersSub.unsubscribe();
|
|
208
|
+
this._dataLayersSub = void 0;
|
|
209
|
+
}
|
|
210
|
+
(_a = this._timeSub) == null ? void 0 : _a.unsubscribe();
|
|
211
|
+
this._timeSub = void 0;
|
|
212
|
+
this._timeSubRange = void 0;
|
|
213
|
+
this._adhocFiltersVar = void 0;
|
|
214
|
+
this._groupByVar = void 0;
|
|
215
|
+
this._variableValueRecorder.recordCurrentDependencyValuesForSceneObject(this);
|
|
216
|
+
}
|
|
217
|
+
setContainerWidth(width) {
|
|
218
|
+
if (!this._containerWidth && width > 0) {
|
|
219
|
+
this._containerWidth = width;
|
|
220
|
+
if (this.state.maxDataPointsFromWidth && !this.state.maxDataPoints) {
|
|
221
|
+
setTimeout(() => {
|
|
222
|
+
if (this.isActive && !this.state._hasFetchedData) {
|
|
223
|
+
this.runQueries();
|
|
224
|
+
}
|
|
225
|
+
}, 0);
|
|
226
|
+
}
|
|
227
|
+
} else {
|
|
228
|
+
if (width > 0) {
|
|
229
|
+
this._containerWidth = width;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
isDataReadyToDisplay() {
|
|
234
|
+
return Boolean(this.state._hasFetchedData);
|
|
235
|
+
}
|
|
236
|
+
subscribeToTimeRangeChanges(timeRange) {
|
|
237
|
+
if (this._timeSubRange === timeRange) {
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
if (this._timeSub) {
|
|
241
|
+
this._timeSub.unsubscribe();
|
|
242
|
+
}
|
|
243
|
+
this._timeSubRange = timeRange;
|
|
244
|
+
this._timeSub = timeRange.subscribeToState(() => {
|
|
245
|
+
this.runWithTimeRange(timeRange);
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
runQueries() {
|
|
249
|
+
const timeRange = sceneGraph.getTimeRange(this);
|
|
250
|
+
if (this.isQueryModeAuto()) {
|
|
251
|
+
this.subscribeToTimeRangeChanges(timeRange);
|
|
252
|
+
}
|
|
253
|
+
this.runWithTimeRange(timeRange);
|
|
254
|
+
}
|
|
255
|
+
getMaxDataPoints() {
|
|
256
|
+
var _a;
|
|
257
|
+
if (this.state.maxDataPoints) {
|
|
258
|
+
return this.state.maxDataPoints;
|
|
259
|
+
}
|
|
260
|
+
return this.state.maxDataPointsFromWidth ? (_a = this._containerWidth) != null ? _a : 500 : 500;
|
|
261
|
+
}
|
|
262
|
+
cancelQuery() {
|
|
263
|
+
var _a;
|
|
264
|
+
(_a = this._querySub) == null ? void 0 : _a.unsubscribe();
|
|
265
|
+
if (this._dataLayersSub) {
|
|
266
|
+
this._dataLayersSub.unsubscribe();
|
|
267
|
+
this._dataLayersSub = void 0;
|
|
268
|
+
}
|
|
269
|
+
this.setState({
|
|
270
|
+
data: __spreadProps(__spreadValues({}, this.state.data), { state: LoadingState.Done })
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
async runWithTimeRange(timeRange) {
|
|
274
|
+
var _a, _b, _c;
|
|
275
|
+
if (!this.state.maxDataPoints && this.state.maxDataPointsFromWidth && !this._containerWidth) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
if (!this._dataLayersSub) {
|
|
279
|
+
this._handleDataLayers();
|
|
280
|
+
}
|
|
281
|
+
(_a = this._querySub) == null ? void 0 : _a.unsubscribe();
|
|
282
|
+
if (this._variableDependency.hasDependencyInLoadingState()) {
|
|
283
|
+
writeSceneLog("SceneQueryRunner", "Variable dependency is in loading state, skipping query execution");
|
|
284
|
+
this.setState({ data: __spreadProps(__spreadValues({}, (_b = this.state.data) != null ? _b : emptyPanelData), { state: LoadingState.Loading }) });
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
const { queries } = this.state;
|
|
288
|
+
if (!(queries == null ? void 0 : queries.length)) {
|
|
289
|
+
this._setNoDataState();
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
try {
|
|
293
|
+
const datasource = (_c = this.state.datasource) != null ? _c : findFirstDatasource(queries);
|
|
294
|
+
const ds = await getDataSource(datasource, this._scopedVars);
|
|
295
|
+
this.findAndSubscribeToAdHocFilters(datasource == null ? void 0 : datasource.uid);
|
|
296
|
+
const runRequest = getRunRequest();
|
|
297
|
+
const { primary, secondaries, processors } = this.prepareRequests(timeRange, ds);
|
|
298
|
+
writeSceneLog("SceneQueryRunner", "Starting runRequest", this.state.key);
|
|
299
|
+
let stream = runRequest(ds, primary);
|
|
300
|
+
if (secondaries.length > 0) {
|
|
301
|
+
const secondaryStreams = secondaries.map((r) => runRequest(ds, r));
|
|
302
|
+
const op = extraQueryProcessingOperator(processors);
|
|
303
|
+
stream = forkJoin([stream, ...secondaryStreams]).pipe(op);
|
|
304
|
+
}
|
|
305
|
+
stream = stream.pipe(
|
|
306
|
+
registerQueryWithController({
|
|
307
|
+
type: "data",
|
|
308
|
+
request: primary,
|
|
309
|
+
origin: this,
|
|
310
|
+
cancel: () => this.cancelQuery()
|
|
311
|
+
})
|
|
312
|
+
);
|
|
313
|
+
this._querySub = stream.subscribe(this.onDataReceived);
|
|
314
|
+
} catch (err) {
|
|
315
|
+
console.error("PanelQueryRunner Error", err);
|
|
316
|
+
this.onDataReceived(__spreadProps(__spreadValues(__spreadValues({}, emptyPanelData), this.state.data), {
|
|
317
|
+
state: LoadingState.Error,
|
|
318
|
+
errors: [toDataQueryError(err)]
|
|
319
|
+
}));
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
clone(withState) {
|
|
323
|
+
var _a;
|
|
324
|
+
const clone = super.clone(withState);
|
|
325
|
+
if (this._resultAnnotations) {
|
|
326
|
+
clone["_resultAnnotations"] = this._resultAnnotations.map((frame) => __spreadValues({}, frame));
|
|
327
|
+
}
|
|
328
|
+
if (this._layerAnnotations) {
|
|
329
|
+
clone["_layerAnnotations"] = this._layerAnnotations.map((frame) => __spreadValues({}, frame));
|
|
330
|
+
}
|
|
331
|
+
clone["_variableValueRecorder"] = this._variableValueRecorder.cloneAndRecordCurrentValuesForSceneObject(this);
|
|
332
|
+
clone["_containerWidth"] = this._containerWidth;
|
|
333
|
+
clone["_results"].next({ origin: this, data: (_a = this.state.data) != null ? _a : emptyPanelData });
|
|
334
|
+
return clone;
|
|
335
|
+
}
|
|
336
|
+
prepareRequests(timeRange, ds) {
|
|
337
|
+
var _a;
|
|
338
|
+
const { minInterval, queries } = this.state;
|
|
339
|
+
let request = __spreadValues({
|
|
340
|
+
app: "scenes",
|
|
341
|
+
requestId: getNextRequestId(),
|
|
342
|
+
timezone: timeRange.getTimeZone(),
|
|
343
|
+
range: timeRange.state.value,
|
|
344
|
+
interval: "1s",
|
|
345
|
+
intervalMs: 1e3,
|
|
346
|
+
targets: cloneDeep(queries),
|
|
347
|
+
maxDataPoints: this.getMaxDataPoints(),
|
|
348
|
+
scopedVars: this._scopedVars,
|
|
349
|
+
startTime: Date.now(),
|
|
350
|
+
liveStreaming: this.state.liveStreaming,
|
|
351
|
+
rangeRaw: {
|
|
352
|
+
from: timeRange.state.from,
|
|
353
|
+
to: timeRange.state.to
|
|
354
|
+
},
|
|
355
|
+
cacheTimeout: this.state.cacheTimeout,
|
|
356
|
+
queryCachingTTL: this.state.queryCachingTTL
|
|
357
|
+
}, getEnrichedDataRequest(this));
|
|
358
|
+
if (this._adhocFiltersVar) {
|
|
359
|
+
request.filters = this._adhocFiltersVar.state.filters.filter(isFilterComplete);
|
|
360
|
+
}
|
|
361
|
+
if (this._groupByVar) {
|
|
362
|
+
request.groupByKeys = this._groupByVar.state.value;
|
|
363
|
+
}
|
|
364
|
+
request.targets = request.targets.map((query) => {
|
|
365
|
+
var _a2;
|
|
366
|
+
if (!query.datasource || query.datasource.uid !== ds.uid && !((_a2 = ds.meta) == null ? void 0 : _a2.mixed) && isExpressionReference && !isExpressionReference(query.datasource)) {
|
|
367
|
+
query.datasource = ds.getRef();
|
|
368
|
+
}
|
|
369
|
+
return query;
|
|
370
|
+
});
|
|
371
|
+
const lowerIntervalLimit = minInterval ? interpolate(this, minInterval) : ds.interval;
|
|
372
|
+
const norm = rangeUtil.calculateInterval(timeRange.state.value, request.maxDataPoints, lowerIntervalLimit);
|
|
373
|
+
request.scopedVars = Object.assign({}, request.scopedVars, {
|
|
374
|
+
__interval: { text: norm.interval, value: norm.interval },
|
|
375
|
+
__interval_ms: { text: norm.intervalMs.toString(), value: norm.intervalMs }
|
|
376
|
+
});
|
|
377
|
+
request.interval = norm.interval;
|
|
378
|
+
request.intervalMs = norm.intervalMs;
|
|
379
|
+
const primaryTimeRange = timeRange.state.value;
|
|
380
|
+
let secondaryRequests = [];
|
|
381
|
+
let secondaryProcessors = /* @__PURE__ */ new Map();
|
|
382
|
+
for (const provider of (_a = this.getClosestExtraQueryProviders()) != null ? _a : []) {
|
|
383
|
+
for (const { req, processor } of provider.getExtraQueries(request)) {
|
|
384
|
+
const requestId = getNextRequestId();
|
|
385
|
+
secondaryRequests.push(__spreadProps(__spreadValues({}, req), { requestId }));
|
|
386
|
+
secondaryProcessors.set(requestId, processor != null ? processor : passthroughProcessor);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
request.range = primaryTimeRange;
|
|
390
|
+
return { primary: request, secondaries: secondaryRequests, processors: secondaryProcessors };
|
|
391
|
+
}
|
|
392
|
+
_combineDataLayers(data) {
|
|
393
|
+
if (this._layerAnnotations && this._layerAnnotations.length > 0) {
|
|
394
|
+
data.annotations = (data.annotations || []).concat(this._layerAnnotations);
|
|
395
|
+
}
|
|
396
|
+
if (this.state.data && this.state.data.alertState) {
|
|
397
|
+
data.alertState = this.state.data.alertState;
|
|
398
|
+
}
|
|
399
|
+
return data;
|
|
400
|
+
}
|
|
401
|
+
_setNoDataState() {
|
|
402
|
+
if (this.state.data !== emptyPanelData) {
|
|
403
|
+
this.setState({ data: emptyPanelData });
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
getClosestExtraQueryProviders() {
|
|
407
|
+
const found = /* @__PURE__ */ new Map();
|
|
408
|
+
if (!this.parent) {
|
|
409
|
+
return [];
|
|
410
|
+
}
|
|
411
|
+
getClosest(this.parent, (s) => {
|
|
412
|
+
if (isExtraQueryProvider(s) && !found.has(s.constructor)) {
|
|
413
|
+
found.set(s.constructor, s);
|
|
414
|
+
}
|
|
415
|
+
s.forEachChild((child) => {
|
|
416
|
+
if (isExtraQueryProvider(child) && !found.has(child.constructor)) {
|
|
417
|
+
found.set(child.constructor, child);
|
|
418
|
+
}
|
|
419
|
+
});
|
|
420
|
+
return null;
|
|
421
|
+
});
|
|
422
|
+
return Array.from(found.values());
|
|
423
|
+
}
|
|
424
|
+
findAndSubscribeToAdHocFilters(uid) {
|
|
425
|
+
const filtersVar = findActiveAdHocFilterVariableByUid(uid);
|
|
426
|
+
if (this._adhocFiltersVar !== filtersVar) {
|
|
427
|
+
this._adhocFiltersVar = filtersVar;
|
|
428
|
+
this._updateExplicitVariableDependencies();
|
|
429
|
+
}
|
|
430
|
+
const groupByVar = findActiveGroupByVariablesByUid(uid);
|
|
431
|
+
if (this._groupByVar !== groupByVar) {
|
|
432
|
+
this._groupByVar = groupByVar;
|
|
433
|
+
this._updateExplicitVariableDependencies();
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
_updateExplicitVariableDependencies() {
|
|
437
|
+
const explicitDependencies = [];
|
|
438
|
+
if (this._adhocFiltersVar) {
|
|
439
|
+
explicitDependencies.push(this._adhocFiltersVar.state.name);
|
|
440
|
+
}
|
|
441
|
+
if (this._groupByVar) {
|
|
442
|
+
explicitDependencies.push(this._groupByVar.state.name);
|
|
443
|
+
}
|
|
444
|
+
this._variableDependency.setVariableNames(explicitDependencies);
|
|
445
|
+
}
|
|
446
|
+
isQueryModeAuto() {
|
|
447
|
+
var _a;
|
|
448
|
+
return ((_a = this.state.runQueriesMode) != null ? _a : "auto") === "auto";
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
function findFirstDatasource(targets) {
|
|
452
|
+
var _a, _b;
|
|
453
|
+
return (_b = (_a = targets.find((t) => t.datasource !== null)) == null ? void 0 : _a.datasource) != null ? _b : void 0;
|
|
454
|
+
}
|
|
455
|
+
function allFramesEmpty(frames) {
|
|
456
|
+
if (!frames) {
|
|
457
|
+
return true;
|
|
458
|
+
}
|
|
459
|
+
for (let i = 0; i < frames.length; i++) {
|
|
460
|
+
if (frames[i].length > 0) {
|
|
461
|
+
return false;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
return true;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
export { SceneQueryRunner, findFirstDatasource, getNextRequestId };
|
|
468
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVRdWVyeVJ1bm5lci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcXVlcnlpbmcvU2NlbmVRdWVyeVJ1bm5lci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0VxdWFsLCBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExvYWRpbmdTdGF0ZSB9IGZyb20gJ0BncmFmYW5hL3NjaGVtYSc7XG5pbXBvcnQgeyBwcmVQcm9jZXNzUGFuZWxEYXRhLCBEYXRhVG9waWMsIERhdGFGcmFtZVZpZXcsIHJhbmdlVXRpbCB9IGZyb20gJ0BncmFmYW5hL2RhdGEnO1xuaW1wb3J0IHsgZ2V0UnVuUmVxdWVzdCwgdG9EYXRhUXVlcnlFcnJvciwgaXNFeHByZXNzaW9uUmVmZXJlbmNlIH0gZnJvbSAnQGdyYWZhbmEvcnVudGltZSc7XG5pbXBvcnQgeyBTY2VuZU9iamVjdEJhc2UgfSBmcm9tICcuLi9jb3JlL1NjZW5lT2JqZWN0QmFzZS5qcyc7XG5pbXBvcnQgeyBzY2VuZUdyYXBoIH0gZnJvbSAnLi4vY29yZS9zY2VuZUdyYXBoL2luZGV4LmpzJztcbmltcG9ydCB7IGdldERhdGFTb3VyY2UgfSBmcm9tICcuLi91dGlscy9nZXREYXRhU291cmNlLmpzJztcbmltcG9ydCB7IFZhcmlhYmxlRGVwZW5kZW5jeUNvbmZpZyB9IGZyb20gJy4uL3ZhcmlhYmxlcy9WYXJpYWJsZURlcGVuZGVuY3lDb25maWcuanMnO1xuaW1wb3J0IHsgd3JpdGVTY2VuZUxvZyB9IGZyb20gJy4uL3V0aWxzL3dyaXRlU2NlbmVMb2cuanMnO1xuaW1wb3J0IHsgVmFyaWFibGVWYWx1ZVJlY29yZGVyIH0gZnJvbSAnLi4vdmFyaWFibGVzL1ZhcmlhYmxlVmFsdWVSZWNvcmRlci5qcyc7XG5pbXBvcnQgeyBlbXB0eVBhbmVsRGF0YSB9IGZyb20gJy4uL2NvcmUvU2NlbmVEYXRhTm9kZS5qcyc7XG5pbXBvcnQgeyBnZXRDbG9zZXN0IH0gZnJvbSAnLi4vY29yZS9zY2VuZUdyYXBoL3V0aWxzLmpzJztcbmltcG9ydCB7IGlzRXh0cmFRdWVyeVByb3ZpZGVyIH0gZnJvbSAnLi9FeHRyYVF1ZXJ5UHJvdmlkZXIuanMnO1xuaW1wb3J0IHsgZXh0cmFRdWVyeVByb2Nlc3NpbmdPcGVyYXRvciwgcGFzc3Rocm91Z2hQcm9jZXNzb3IgfSBmcm9tICcuL2V4dHJhUXVlcnlQcm9jZXNzaW5nT3BlcmF0b3IuanMnO1xuaW1wb3J0IHsgZmlsdGVyQW5ub3RhdGlvbnMgfSBmcm9tICcuL2xheWVycy9hbm5vdGF0aW9ucy9maWx0ZXJBbm5vdGF0aW9ucy5qcyc7XG5pbXBvcnQgeyBnZXRFbnJpY2hlZERhdGFSZXF1ZXN0IH0gZnJvbSAnLi9nZXRFbnJpY2hlZERhdGFSZXF1ZXN0LmpzJztcbmltcG9ydCB7IGZpbmRBY3RpdmVBZEhvY0ZpbHRlclZhcmlhYmxlQnlVaWQgfSBmcm9tICcuLi92YXJpYWJsZXMvYWRob2MvcGF0Y2hHZXRBZGhvY0ZpbHRlcnMuanMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJRdWVyeVdpdGhDb250cm9sbGVyIH0gZnJvbSAnLi9yZWdpc3RlclF1ZXJ5V2l0aENvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHsgZmluZEFjdGl2ZUdyb3VwQnlWYXJpYWJsZXNCeVVpZCB9IGZyb20gJy4uL3ZhcmlhYmxlcy9ncm91cGJ5L2ZpbmRBY3RpdmVHcm91cEJ5VmFyaWFibGVzQnlVaWQuanMnO1xuaW1wb3J0IHsgR3JvdXBCeVZhcmlhYmxlIH0gZnJvbSAnLi4vdmFyaWFibGVzL2dyb3VwYnkvR3JvdXBCeVZhcmlhYmxlLmpzJztcbmltcG9ydCB7IEFkSG9jRmlsdGVyc1ZhcmlhYmxlLCBpc0ZpbHRlckNvbXBsZXRlIH0gZnJvbSAnLi4vdmFyaWFibGVzL2FkaG9jL0FkSG9jRmlsdGVyc1ZhcmlhYmxlLmpzJztcbmltcG9ydCB7IERhdGFMYXllcnNNZXJnZXIgfSBmcm9tICcuL0RhdGFMYXllcnNNZXJnZXIuanMnO1xuaW1wb3J0IHsgaW50ZXJwb2xhdGUgfSBmcm9tICcuLi9jb3JlL3NjZW5lR3JhcGgvc2NlbmVHcmFwaC5qcyc7XG5pbXBvcnQgeyB3cmFwSW5TYWZlU2VyaWFsaXphYmxlU2NlbmVPYmplY3QgfSBmcm9tICcuLi91dGlscy93cmFwSW5TYWZlU2VyaWFsaXphYmxlU2NlbmVPYmplY3QuanMnO1xuXG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZGVmUHJvcHMgPSBPYmplY3QuZGVmaW5lUHJvcGVydGllcztcbnZhciBfX2dldE93blByb3BEZXNjcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzO1xudmFyIF9fZ2V0T3duUHJvcFN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX19wcm9wSXNFbnVtID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbnZhciBfX2RlZk5vcm1hbFByb3AgPSAob2JqLCBrZXksIHZhbHVlKSA9PiBrZXkgaW4gb2JqID8gX19kZWZQcm9wKG9iaiwga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlIH0pIDogb2JqW2tleV0gPSB2YWx1ZTtcbnZhciBfX3NwcmVhZFZhbHVlcyA9IChhLCBiKSA9PiB7XG4gIGZvciAodmFyIHByb3AgaW4gYiB8fCAoYiA9IHt9KSlcbiAgICBpZiAoX19oYXNPd25Qcm9wLmNhbGwoYiwgcHJvcCkpXG4gICAgICBfX2RlZk5vcm1hbFByb3AoYSwgcHJvcCwgYltwcm9wXSk7XG4gIGlmIChfX2dldE93blByb3BTeW1ib2xzKVxuICAgIGZvciAodmFyIHByb3Agb2YgX19nZXRPd25Qcm9wU3ltYm9scyhiKSkge1xuICAgICAgaWYgKF9fcHJvcElzRW51bS5jYWxsKGIsIHByb3ApKVxuICAgICAgICBfX2RlZk5vcm1hbFByb3AoYSwgcHJvcCwgYltwcm9wXSk7XG4gICAgfVxuICByZXR1cm4gYTtcbn07XG52YXIgX19zcHJlYWRQcm9wcyA9IChhLCBiKSA9PiBfX2RlZlByb3BzKGEsIF9fZ2V0T3duUHJvcERlc2NzKGIpKTtcbmxldCBjb3VudGVyID0gMTAwO1xuZnVuY3Rpb24gZ2V0TmV4dFJlcXVlc3RJZCgpIHtcbiAgcmV0dXJuIFwiU1FSXCIgKyBjb3VudGVyKys7XG59XG5jbGFzcyBTY2VuZVF1ZXJ5UnVubmVyIGV4dGVuZHMgU2NlbmVPYmplY3RCYXNlIHtcbiAgY29uc3RydWN0b3IoaW5pdGlhbFN0YXRlKSB7XG4gICAgc3VwZXIoaW5pdGlhbFN0YXRlKTtcbiAgICB0aGlzLl9kYXRhTGF5ZXJzTWVyZ2VyID0gbmV3IERhdGFMYXllcnNNZXJnZXIoKTtcbiAgICB0aGlzLl92YXJpYWJsZVZhbHVlUmVjb3JkZXIgPSBuZXcgVmFyaWFibGVWYWx1ZVJlY29yZGVyKCk7XG4gICAgdGhpcy5fcmVzdWx0cyA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpO1xuICAgIHRoaXMuX3Njb3BlZFZhcnMgPSB7IF9fc2NlbmVPYmplY3Q6IHdyYXBJblNhZmVTZXJpYWxpemFibGVTY2VuZU9iamVjdCh0aGlzKSB9O1xuICAgIHRoaXMuX3ZhcmlhYmxlRGVwZW5kZW5jeSA9IG5ldyBWYXJpYWJsZURlcGVuZGVuY3lDb25maWcodGhpcywge1xuICAgICAgc3RhdGVQYXRoczogW1wicXVlcmllc1wiLCBcImRhdGFzb3VyY2VcIl0sXG4gICAgICBvblZhcmlhYmxlVXBkYXRlQ29tcGxldGVkOiB0aGlzLm9uVmFyaWFibGVVcGRhdGVzQ29tcGxldGVkLmJpbmQodGhpcyksXG4gICAgICBvbkFueVZhcmlhYmxlQ2hhbmdlZDogdGhpcy5vbkFueVZhcmlhYmxlQ2hhbmdlZC5iaW5kKHRoaXMpXG4gICAgfSk7XG4gICAgdGhpcy5vbkRhdGFSZWNlaXZlZCA9IChkYXRhKSA9PiB7XG4gICAgICBjb25zdCBwcmVQcm9jZXNzZWREYXRhID0gcHJlUHJvY2Vzc1BhbmVsRGF0YShkYXRhLCB0aGlzLnN0YXRlLmRhdGEpO1xuICAgICAgdGhpcy5fcmVzdWx0QW5ub3RhdGlvbnMgPSBkYXRhLmFubm90YXRpb25zO1xuICAgICAgY29uc3QgZGF0YVdpdGhMYXllcnNBcHBsaWVkID0gdGhpcy5fY29tYmluZURhdGFMYXllcnMocHJlUHJvY2Vzc2VkRGF0YSk7XG4gICAgICBsZXQgaGFzRmV0Y2hlZERhdGEgPSB0aGlzLnN0YXRlLl9oYXNGZXRjaGVkRGF0YTtcbiAgICAgIGlmICghaGFzRmV0Y2hlZERhdGEgJiYgcHJlUHJvY2Vzc2VkRGF0YS5zdGF0ZSAhPT0gTG9hZGluZ1N0YXRlLkxvYWRpbmcpIHtcbiAgICAgICAgaGFzRmV0Y2hlZERhdGEgPSB0cnVlO1xuICAgICAgfVxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRhdGE6IGRhdGFXaXRoTGF5ZXJzQXBwbGllZCwgX2hhc0ZldGNoZWREYXRhOiBoYXNGZXRjaGVkRGF0YSB9KTtcbiAgICAgIHRoaXMuX3Jlc3VsdHMubmV4dCh7IG9yaWdpbjogdGhpcywgZGF0YTogZGF0YVdpdGhMYXllcnNBcHBsaWVkIH0pO1xuICAgIH07XG4gICAgdGhpcy5hZGRBY3RpdmF0aW9uSGFuZGxlcigoKSA9PiB0aGlzLl9vbkFjdGl2YXRlKCkpO1xuICB9XG4gIGdldFJlc3VsdHNTdHJlYW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlc3VsdHM7XG4gIH1cbiAgX29uQWN0aXZhdGUoKSB7XG4gICAgaWYgKHRoaXMuaXNRdWVyeU1vZGVBdXRvKCkpIHtcbiAgICAgIGNvbnN0IHRpbWVSYW5nZSA9IHNjZW5lR3JhcGguZ2V0VGltZVJhbmdlKHRoaXMpO1xuICAgICAgY29uc3QgcHJvdmlkZXJzID0gdGhpcy5nZXRDbG9zZXN0RXh0cmFRdWVyeVByb3ZpZGVycygpO1xuICAgICAgZm9yIChjb25zdCBwcm92aWRlciBvZiBwcm92aWRlcnMpIHtcbiAgICAgICAgdGhpcy5fc3Vicy5hZGQoXG4gICAgICAgICAgcHJvdmlkZXIuc3Vic2NyaWJlVG9TdGF0ZSgobiwgcCkgPT4ge1xuICAgICAgICAgICAgaWYgKHByb3ZpZGVyLnNob3VsZFJlcnVuKHAsIG4sIHRoaXMuc3RhdGUucXVlcmllcykpIHtcbiAgICAgICAgICAgICAgdGhpcy5ydW5RdWVyaWVzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9UaW1lUmFuZ2VDaGFuZ2VzKHRpbWVSYW5nZSk7XG4gICAgICBpZiAodGhpcy5zaG91bGRSdW5RdWVyaWVzT25BY3RpdmF0ZSgpKSB7XG4gICAgICAgIHRoaXMucnVuUXVlcmllcygpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXRoaXMuX2RhdGFMYXllcnNTdWIpIHtcbiAgICAgIHRoaXMuX2hhbmRsZURhdGFMYXllcnMoKTtcbiAgICB9XG4gICAgcmV0dXJuICgpID0+IHRoaXMuX29uRGVhY3RpdmF0ZSgpO1xuICB9XG4gIF9oYW5kbGVEYXRhTGF5ZXJzKCkge1xuICAgIGNvbnN0IGRhdGFMYXllcnMgPSBzY2VuZUdyYXBoLmdldERhdGFMYXllcnModGhpcyk7XG4gICAgaWYgKGRhdGFMYXllcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2RhdGFMYXllcnNTdWIgPSB0aGlzLl9kYXRhTGF5ZXJzTWVyZ2VyLmdldE1lcmdlZFN0cmVhbShkYXRhTGF5ZXJzKS5zdWJzY3JpYmUodGhpcy5fb25MYXllcnNSZWNlaXZlZC5iaW5kKHRoaXMpKTtcbiAgfVxuICBfb25MYXllcnNSZWNlaXZlZChyZXN1bHRzKSB7XG4gICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZTtcbiAgICBjb25zdCB0aW1lUmFuZ2UgPSBzY2VuZUdyYXBoLmdldFRpbWVSYW5nZSh0aGlzKTtcbiAgICBjb25zdCB7IGRhdGFMYXllckZpbHRlciB9ID0gdGhpcy5zdGF0ZTtcbiAgICBsZXQgYW5ub3RhdGlvbnMgPSBbXTtcbiAgICBsZXQgYWxlcnRTdGF0ZXMgPSBbXTtcbiAgICBsZXQgYWxlcnRTdGF0ZTtcbiAgICBmb3IgKGNvbnN0IHJlc3VsdCBvZiByZXN1bHRzKSB7XG4gICAgICBmb3IgKGxldCBmcmFtZSBvZiByZXN1bHQuZGF0YS5zZXJpZXMpIHtcbiAgICAgICAgaWYgKCgoX2EgPSBmcmFtZS5tZXRhKSA9PSBudWxsID8gdm9pZCAwIDogX2EuZGF0YVRvcGljKSA9PT0gRGF0YVRvcGljLkFubm90YXRpb25zKSB7XG4gICAgICAgICAgYW5ub3RhdGlvbnMgPSBhbm5vdGF0aW9ucy5jb25jYXQoZnJhbWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgoKF9iID0gZnJhbWUubWV0YSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLmRhdGFUb3BpYykgPT09IERhdGFUb3BpYy5BbGVydFN0YXRlcykge1xuICAgICAgICAgIGFsZXJ0U3RhdGVzID0gYWxlcnRTdGF0ZXMuY29uY2F0KGZyYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGF0YUxheWVyRmlsdGVyID09IG51bGwgPyB2b2lkIDAgOiBkYXRhTGF5ZXJGaWx0ZXIucGFuZWxJZCkge1xuICAgICAgaWYgKGFubm90YXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYW5ub3RhdGlvbnMgPSBmaWx0ZXJBbm5vdGF0aW9ucyhhbm5vdGF0aW9ucywgZGF0YUxheWVyRmlsdGVyKTtcbiAgICAgIH1cbiAgICAgIGlmIChhbGVydFN0YXRlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgZnJhbWUgb2YgYWxlcnRTdGF0ZXMpIHtcbiAgICAgICAgICBjb25zdCBmcmFtZVZpZXcgPSBuZXcgRGF0YUZyYW1lVmlldyhmcmFtZSk7XG4gICAgICAgICAgZm9yIChjb25zdCByb3cgb2YgZnJhbWVWaWV3KSB7XG4gICAgICAgICAgICBpZiAocm93LnBhbmVsSWQgPT09IGRhdGFMYXllckZpbHRlci5wYW5lbElkKSB7XG4gICAgICAgICAgICAgIGFsZXJ0U3RhdGUgPSByb3c7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWxsRnJhbWVzRW1wdHkoYW5ub3RhdGlvbnMpICYmIGFsbEZyYW1lc0VtcHR5KHRoaXMuX2xheWVyQW5ub3RhdGlvbnMpICYmIGlzRXF1YWwoYWxlcnRTdGF0ZSwgKF9jID0gdGhpcy5zdGF0ZS5kYXRhKSA9PSBudWxsID8gdm9pZCAwIDogX2MuYWxlcnRTdGF0ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fbGF5ZXJBbm5vdGF0aW9ucyA9IGFubm90YXRpb25zO1xuICAgIGNvbnN0IGJhc2VTdGF0ZVVwZGF0ZSA9IHRoaXMuc3RhdGUuZGF0YSA/IHRoaXMuc3RhdGUuZGF0YSA6IF9fc3ByZWFkUHJvcHMoX19zcHJlYWRWYWx1ZXMoe30sIGVtcHR5UGFuZWxEYXRhKSwgeyB0aW1lUmFuZ2U6IHRpbWVSYW5nZS5zdGF0ZS52YWx1ZSB9KTtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGRhdGE6IF9fc3ByZWFkUHJvcHMoX19zcHJlYWRWYWx1ZXMoe30sIGJhc2VTdGF0ZVVwZGF0ZSksIHtcbiAgICAgICAgYW5ub3RhdGlvbnM6IFsuLi4oX2QgPSB0aGlzLl9yZXN1bHRBbm5vdGF0aW9ucykgIT0gbnVsbCA/IF9kIDogW10sIC4uLmFubm90YXRpb25zXSxcbiAgICAgICAgYWxlcnRTdGF0ZTogYWxlcnRTdGF0ZSAhPSBudWxsID8gYWxlcnRTdGF0ZSA6IChfZSA9IHRoaXMuc3RhdGUuZGF0YSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9lLmFsZXJ0U3RhdGVcbiAgICAgIH0pXG4gICAgfSk7XG4gIH1cbiAgb25WYXJpYWJsZVVwZGF0ZXNDb21wbGV0ZWQoKSB7XG4gICAgaWYgKHRoaXMuaXNRdWVyeU1vZGVBdXRvKCkpIHtcbiAgICAgIHRoaXMucnVuUXVlcmllcygpO1xuICAgIH1cbiAgfVxuICBvbkFueVZhcmlhYmxlQ2hhbmdlZCh2YXJpYWJsZSkge1xuICAgIGlmICh0aGlzLl9hZGhvY0ZpbHRlcnNWYXIgPT09IHZhcmlhYmxlIHx8IHRoaXMuX2dyb3VwQnlWYXIgPT09IHZhcmlhYmxlIHx8ICF0aGlzLmlzUXVlcnlNb2RlQXV0bygpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh2YXJpYWJsZSBpbnN0YW5jZW9mIEFkSG9jRmlsdGVyc1ZhcmlhYmxlICYmIHRoaXMuX2lzUmVsZXZhbnRBdXRvVmFyaWFibGUodmFyaWFibGUpKSB7XG4gICAgICB0aGlzLnJ1blF1ZXJpZXMoKTtcbiAgICB9XG4gICAgaWYgKHZhcmlhYmxlIGluc3RhbmNlb2YgR3JvdXBCeVZhcmlhYmxlICYmIHRoaXMuX2lzUmVsZXZhbnRBdXRvVmFyaWFibGUodmFyaWFibGUpKSB7XG4gICAgICB0aGlzLnJ1blF1ZXJpZXMoKTtcbiAgICB9XG4gIH1cbiAgX2lzUmVsZXZhbnRBdXRvVmFyaWFibGUodmFyaWFibGUpIHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IGRhdGFzb3VyY2UgPSAoX2EgPSB0aGlzLnN0YXRlLmRhdGFzb3VyY2UpICE9IG51bGwgPyBfYSA6IGZpbmRGaXJzdERhdGFzb3VyY2UodGhpcy5zdGF0ZS5xdWVyaWVzKTtcbiAgICByZXR1cm4gdmFyaWFibGUuc3RhdGUuYXBwbHlNb2RlID09PSBcImF1dG9cIiAmJiAoZGF0YXNvdXJjZSA9PSBudWxsID8gdm9pZCAwIDogZGF0YXNvdXJjZS51aWQpID09PSAoKF9iID0gdmFyaWFibGUuc3RhdGUuZGF0YXNvdXJjZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLnVpZCk7XG4gIH1cbiAgc2hvdWxkUnVuUXVlcmllc09uQWN0aXZhdGUoKSB7XG4gICAgaWYgKHRoaXMuX3ZhcmlhYmxlVmFsdWVSZWNvcmRlci5oYXNEZXBlbmRlbmNpZXNDaGFuZ2VkKHRoaXMpKSB7XG4gICAgICB3cml0ZVNjZW5lTG9nKFxuICAgICAgICBcIlNjZW5lUXVlcnlSdW5uZXJcIixcbiAgICAgICAgXCJWYXJpYWJsZSBkZXBlbmRlbmN5IGNoYW5nZWQgd2hpbGUgaW5hY3RpdmUsIHNob3VsZFJ1blF1ZXJpZXNPbkFjdGl2YXRlIHJldHVybnMgdHJ1ZVwiXG4gICAgICApO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICghdGhpcy5zdGF0ZS5kYXRhKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2lzRGF0YVRpbWVSYW5nZVN0YWxlKHRoaXMuc3RhdGUuZGF0YSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgX2lzRGF0YVRpbWVSYW5nZVN0YWxlKGRhdGEpIHtcbiAgICBjb25zdCB0aW1lUmFuZ2UgPSBzY2VuZUdyYXBoLmdldFRpbWVSYW5nZSh0aGlzKTtcbiAgICBjb25zdCBzdGF0ZVRpbWVSYW5nZSA9IHRpbWVSYW5nZS5zdGF0ZS52YWx1ZTtcbiAgICBjb25zdCBkYXRhVGltZVJhbmdlID0gZGF0YS50aW1lUmFuZ2U7XG4gICAgaWYgKHN0YXRlVGltZVJhbmdlLmZyb20udW5peCgpID09PSBkYXRhVGltZVJhbmdlLmZyb20udW5peCgpICYmIHN0YXRlVGltZVJhbmdlLnRvLnVuaXgoKSA9PT0gZGF0YVRpbWVSYW5nZS50by51bml4KCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgd3JpdGVTY2VuZUxvZyhcIlNjZW5lUXVlcnlSdW5uZXJcIiwgXCJEYXRhIHRpbWUgcmFuZ2UgaXMgc3RhbGVcIik7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgX29uRGVhY3RpdmF0ZSgpIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHRoaXMuX3F1ZXJ5U3ViKSB7XG4gICAgICB0aGlzLl9xdWVyeVN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5fcXVlcnlTdWIgPSB2b2lkIDA7XG4gICAgfVxuICAgIGlmICh0aGlzLl9kYXRhTGF5ZXJzU3ViKSB7XG4gICAgICB0aGlzLl9kYXRhTGF5ZXJzU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLl9kYXRhTGF5ZXJzU3ViID0gdm9pZCAwO1xuICAgIH1cbiAgICAoX2EgPSB0aGlzLl90aW1lU3ViKSA9PSBudWxsID8gdm9pZCAwIDogX2EudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl90aW1lU3ViID0gdm9pZCAwO1xuICAgIHRoaXMuX3RpbWVTdWJSYW5nZSA9IHZvaWQgMDtcbiAgICB0aGlzLl9hZGhvY0ZpbHRlcnNWYXIgPSB2b2lkIDA7XG4gICAgdGhpcy5fZ3JvdXBCeVZhciA9IHZvaWQgMDtcbiAgICB0aGlzLl92YXJpYWJsZVZhbHVlUmVjb3JkZXIucmVjb3JkQ3VycmVudERlcGVuZGVuY3lWYWx1ZXNGb3JTY2VuZU9iamVjdCh0aGlzKTtcbiAgfVxuICBzZXRDb250YWluZXJXaWR0aCh3aWR0aCkge1xuICAgIGlmICghdGhpcy5fY29udGFpbmVyV2lkdGggJiYgd2lkdGggPiAwKSB7XG4gICAgICB0aGlzLl9jb250YWluZXJXaWR0aCA9IHdpZHRoO1xuICAgICAgaWYgKHRoaXMuc3RhdGUubWF4RGF0YVBvaW50c0Zyb21XaWR0aCAmJiAhdGhpcy5zdGF0ZS5tYXhEYXRhUG9pbnRzKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmlzQWN0aXZlICYmICF0aGlzLnN0YXRlLl9oYXNGZXRjaGVkRGF0YSkge1xuICAgICAgICAgICAgdGhpcy5ydW5RdWVyaWVzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHdpZHRoID4gMCkge1xuICAgICAgICB0aGlzLl9jb250YWluZXJXaWR0aCA9IHdpZHRoO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpc0RhdGFSZWFkeVRvRGlzcGxheSgpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLnN0YXRlLl9oYXNGZXRjaGVkRGF0YSk7XG4gIH1cbiAgc3Vic2NyaWJlVG9UaW1lUmFuZ2VDaGFuZ2VzKHRpbWVSYW5nZSkge1xuICAgIGlmICh0aGlzLl90aW1lU3ViUmFuZ2UgPT09IHRpbWVSYW5nZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5fdGltZVN1Yikge1xuICAgICAgdGhpcy5fdGltZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLl90aW1lU3ViUmFuZ2UgPSB0aW1lUmFuZ2U7XG4gICAgdGhpcy5fdGltZVN1YiA9IHRpbWVSYW5nZS5zdWJzY3JpYmVUb1N0YXRlKCgpID0+IHtcbiAgICAgIHRoaXMucnVuV2l0aFRpbWVSYW5nZSh0aW1lUmFuZ2UpO1xuICAgIH0pO1xuICB9XG4gIHJ1blF1ZXJpZXMoKSB7XG4gICAgY29uc3QgdGltZVJhbmdlID0gc2NlbmVHcmFwaC5nZXRUaW1lUmFuZ2UodGhpcyk7XG4gICAgaWYgKHRoaXMuaXNRdWVyeU1vZGVBdXRvKCkpIHtcbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9UaW1lUmFuZ2VDaGFuZ2VzKHRpbWVSYW5nZSk7XG4gICAgfVxuICAgIHRoaXMucnVuV2l0aFRpbWVSYW5nZSh0aW1lUmFuZ2UpO1xuICB9XG4gIGdldE1heERhdGFQb2ludHMoKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh0aGlzLnN0YXRlLm1heERhdGFQb2ludHMpIHtcbiAgICAgIHJldHVybiB0aGlzLnN0YXRlLm1heERhdGFQb2ludHM7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN0YXRlLm1heERhdGFQb2ludHNGcm9tV2lkdGggPyAoX2EgPSB0aGlzLl9jb250YWluZXJXaWR0aCkgIT0gbnVsbCA/IF9hIDogNTAwIDogNTAwO1xuICB9XG4gIGNhbmNlbFF1ZXJ5KCkge1xuICAgIHZhciBfYTtcbiAgICAoX2EgPSB0aGlzLl9xdWVyeVN1YikgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLnVuc3Vic2NyaWJlKCk7XG4gICAgaWYgKHRoaXMuX2RhdGFMYXllcnNTdWIpIHtcbiAgICAgIHRoaXMuX2RhdGFMYXllcnNTdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuX2RhdGFMYXllcnNTdWIgPSB2b2lkIDA7XG4gICAgfVxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgZGF0YTogX19zcHJlYWRQcm9wcyhfX3NwcmVhZFZhbHVlcyh7fSwgdGhpcy5zdGF0ZS5kYXRhKSwgeyBzdGF0ZTogTG9hZGluZ1N0YXRlLkRvbmUgfSlcbiAgICB9KTtcbiAgfVxuICBhc3luYyBydW5XaXRoVGltZVJhbmdlKHRpbWVSYW5nZSkge1xuICAgIHZhciBfYSwgX2IsIF9jO1xuICAgIGlmICghdGhpcy5zdGF0ZS5tYXhEYXRhUG9pbnRzICYmIHRoaXMuc3RhdGUubWF4RGF0YVBvaW50c0Zyb21XaWR0aCAmJiAhdGhpcy5fY29udGFpbmVyV2lkdGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9kYXRhTGF5ZXJzU3ViKSB7XG4gICAgICB0aGlzLl9oYW5kbGVEYXRhTGF5ZXJzKCk7XG4gICAgfVxuICAgIChfYSA9IHRoaXMuX3F1ZXJ5U3ViKSA9PSBudWxsID8gdm9pZCAwIDogX2EudW5zdWJzY3JpYmUoKTtcbiAgICBpZiAodGhpcy5fdmFyaWFibGVEZXBlbmRlbmN5Lmhhc0RlcGVuZGVuY3lJbkxvYWRpbmdTdGF0ZSgpKSB7XG4gICAgICB3cml0ZVNjZW5lTG9nKFwiU2NlbmVRdWVyeVJ1bm5lclwiLCBcIlZhcmlhYmxlIGRlcGVuZGVuY3kgaXMgaW4gbG9hZGluZyBzdGF0ZSwgc2tpcHBpbmcgcXVlcnkgZXhlY3V0aW9uXCIpO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRhdGE6IF9fc3ByZWFkUHJvcHMoX19zcHJlYWRWYWx1ZXMoe30sIChfYiA9IHRoaXMuc3RhdGUuZGF0YSkgIT0gbnVsbCA/IF9iIDogZW1wdHlQYW5lbERhdGEpLCB7IHN0YXRlOiBMb2FkaW5nU3RhdGUuTG9hZGluZyB9KSB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgeyBxdWVyaWVzIH0gPSB0aGlzLnN0YXRlO1xuICAgIGlmICghKHF1ZXJpZXMgPT0gbnVsbCA/IHZvaWQgMCA6IHF1ZXJpZXMubGVuZ3RoKSkge1xuICAgICAgdGhpcy5fc2V0Tm9EYXRhU3RhdGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGFzb3VyY2UgPSAoX2MgPSB0aGlzLnN0YXRlLmRhdGFzb3VyY2UpICE9IG51bGwgPyBfYyA6IGZpbmRGaXJzdERhdGFzb3VyY2UocXVlcmllcyk7XG4gICAgICBjb25zdCBkcyA9IGF3YWl0IGdldERhdGFTb3VyY2UoZGF0YXNvdXJjZSwgdGhpcy5fc2NvcGVkVmFycyk7XG4gICAgICB0aGlzLmZpbmRBbmRTdWJzY3JpYmVUb0FkSG9jRmlsdGVycyhkYXRhc291cmNlID09IG51bGwgPyB2b2lkIDAgOiBkYXRhc291cmNlLnVpZCk7XG4gICAgICBjb25zdCBydW5SZXF1ZXN0ID0gZ2V0UnVuUmVxdWVzdCgpO1xuICAgICAgY29uc3QgeyBwcmltYXJ5LCBzZWNvbmRhcmllcywgcHJvY2Vzc29ycyB9ID0gdGhpcy5wcmVwYXJlUmVxdWVzdHModGltZVJhbmdlLCBkcyk7XG4gICAgICB3cml0ZVNjZW5lTG9nKFwiU2NlbmVRdWVyeVJ1bm5lclwiLCBcIlN0YXJ0aW5nIHJ1blJlcXVlc3RcIiwgdGhpcy5zdGF0ZS5rZXkpO1xuICAgICAgbGV0IHN0cmVhbSA9IHJ1blJlcXVlc3QoZHMsIHByaW1hcnkpO1xuICAgICAgaWYgKHNlY29uZGFyaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3Qgc2Vjb25kYXJ5U3RyZWFtcyA9IHNlY29uZGFyaWVzLm1hcCgocikgPT4gcnVuUmVxdWVzdChkcywgcikpO1xuICAgICAgICBjb25zdCBvcCA9IGV4dHJhUXVlcnlQcm9jZXNzaW5nT3BlcmF0b3IocHJvY2Vzc29ycyk7XG4gICAgICAgIHN0cmVhbSA9IGZvcmtKb2luKFtzdHJlYW0sIC4uLnNlY29uZGFyeVN0cmVhbXNdKS5waXBlKG9wKTtcbiAgICAgIH1cbiAgICAgIHN0cmVhbSA9IHN0cmVhbS5waXBlKFxuICAgICAgICByZWdpc3RlclF1ZXJ5V2l0aENvbnRyb2xsZXIoe1xuICAgICAgICAgIHR5cGU6IFwiZGF0YVwiLFxuICAgICAgICAgIHJlcXVlc3Q6IHByaW1hcnksXG4gICAgICAgICAgb3JpZ2luOiB0aGlzLFxuICAgICAgICAgIGNhbmNlbDogKCkgPT4gdGhpcy5jYW5jZWxRdWVyeSgpXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5fcXVlcnlTdWIgPSBzdHJlYW0uc3Vic2NyaWJlKHRoaXMub25EYXRhUmVjZWl2ZWQpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihcIlBhbmVsUXVlcnlSdW5uZXIgRXJyb3JcIiwgZXJyKTtcbiAgICAgIHRoaXMub25EYXRhUmVjZWl2ZWQoX19zcHJlYWRQcm9wcyhfX3NwcmVhZFZhbHVlcyhfX3NwcmVhZFZhbHVlcyh7fSwgZW1wdHlQYW5lbERhdGEpLCB0aGlzLnN0YXRlLmRhdGEpLCB7XG4gICAgICAgIHN0YXRlOiBMb2FkaW5nU3RhdGUuRXJyb3IsXG4gICAgICAgIGVycm9yczogW3RvRGF0YVF1ZXJ5RXJyb3IoZXJyKV1cbiAgICAgIH0pKTtcbiAgICB9XG4gIH1cbiAgY2xvbmUod2l0aFN0YXRlKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGNsb25lID0gc3VwZXIuY2xvbmUod2l0aFN0YXRlKTtcbiAgICBpZiAodGhpcy5fcmVzdWx0QW5ub3RhdGlvbnMpIHtcbiAgICAgIGNsb25lW1wiX3Jlc3VsdEFubm90YXRpb25zXCJdID0gdGhpcy5fcmVzdWx0QW5ub3RhdGlvbnMubWFwKChmcmFtZSkgPT4gX19zcHJlYWRWYWx1ZXMoe30sIGZyYW1lKSk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9sYXllckFubm90YXRpb25zKSB7XG4gICAgICBjbG9uZVtcIl9sYXllckFubm90YXRpb25zXCJdID0gdGhpcy5fbGF5ZXJBbm5vdGF0aW9ucy5tYXAoKGZyYW1lKSA9PiBfX3NwcmVhZFZhbHVlcyh7fSwgZnJhbWUpKTtcbiAgICB9XG4gICAgY2xvbmVbXCJfdmFyaWFibGVWYWx1ZVJlY29yZGVyXCJdID0gdGhpcy5fdmFyaWFibGVWYWx1ZVJlY29yZGVyLmNsb25lQW5kUmVjb3JkQ3VycmVudFZhbHVlc0ZvclNjZW5lT2JqZWN0KHRoaXMpO1xuICAgIGNsb25lW1wiX2NvbnRhaW5lcldpZHRoXCJdID0gdGhpcy5fY29udGFpbmVyV2lkdGg7XG4gICAgY2xvbmVbXCJfcmVzdWx0c1wiXS5uZXh0KHsgb3JpZ2luOiB0aGlzLCBkYXRhOiAoX2EgPSB0aGlzLnN0YXRlLmRhdGEpICE9IG51bGwgPyBfYSA6IGVtcHR5UGFuZWxEYXRhIH0pO1xuICAgIHJldHVybiBjbG9uZTtcbiAgfVxuICBwcmVwYXJlUmVxdWVzdHModGltZVJhbmdlLCBkcykge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCB7IG1pbkludGVydmFsLCBxdWVyaWVzIH0gPSB0aGlzLnN0YXRlO1xuICAgIGxldCByZXF1ZXN0ID0gX19zcHJlYWRWYWx1ZXMoe1xuICAgICAgYXBwOiBcInNjZW5lc1wiLFxuICAgICAgcmVxdWVzdElkOiBnZXROZXh0UmVxdWVzdElkKCksXG4gICAgICB0aW1lem9uZTogdGltZVJhbmdlLmdldFRpbWVab25lKCksXG4gICAgICByYW5nZTogdGltZVJhbmdlLnN0YXRlLnZhbHVlLFxuICAgICAgaW50ZXJ2YWw6IFwiMXNcIixcbiAgICAgIGludGVydmFsTXM6IDFlMyxcbiAgICAgIHRhcmdldHM6IGNsb25lRGVlcChxdWVyaWVzKSxcbiAgICAgIG1heERhdGFQb2ludHM6IHRoaXMuZ2V0TWF4RGF0YVBvaW50cygpLFxuICAgICAgc2NvcGVkVmFyczogdGhpcy5fc2NvcGVkVmFycyxcbiAgICAgIHN0YXJ0VGltZTogRGF0ZS5ub3coKSxcbiAgICAgIGxpdmVTdHJlYW1pbmc6IHRoaXMuc3RhdGUubGl2ZVN0cmVhbWluZyxcbiAgICAgIHJhbmdlUmF3OiB7XG4gICAgICAgIGZyb206IHRpbWVSYW5nZS5zdGF0ZS5mcm9tLFxuICAgICAgICB0bzogdGltZVJhbmdlLnN0YXRlLnRvXG4gICAgICB9LFxuICAgICAgY2FjaGVUaW1lb3V0OiB0aGlzLnN0YXRlLmNhY2hlVGltZW91dCxcbiAgICAgIHF1ZXJ5Q2FjaGluZ1RUTDogdGhpcy5zdGF0ZS5xdWVyeUNhY2hpbmdUVExcbiAgICB9LCBnZXRFbnJpY2hlZERhdGFSZXF1ZXN0KHRoaXMpKTtcbiAgICBpZiAodGhpcy5fYWRob2NGaWx0ZXJzVmFyKSB7XG4gICAgICByZXF1ZXN0LmZpbHRlcnMgPSB0aGlzLl9hZGhvY0ZpbHRlcnNWYXIuc3RhdGUuZmlsdGVycy5maWx0ZXIoaXNGaWx0ZXJDb21wbGV0ZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9ncm91cEJ5VmFyKSB7XG4gICAgICByZXF1ZXN0Lmdyb3VwQnlLZXlzID0gdGhpcy5fZ3JvdXBCeVZhci5zdGF0ZS52YWx1ZTtcbiAgICB9XG4gICAgcmVxdWVzdC50YXJnZXRzID0gcmVxdWVzdC50YXJnZXRzLm1hcCgocXVlcnkpID0+IHtcbiAgICAgIHZhciBfYTI7XG4gICAgICBpZiAoIXF1ZXJ5LmRhdGFzb3VyY2UgfHwgcXVlcnkuZGF0YXNvdXJjZS51aWQgIT09IGRzLnVpZCAmJiAhKChfYTIgPSBkcy5tZXRhKSA9PSBudWxsID8gdm9pZCAwIDogX2EyLm1peGVkKSAmJiBpc0V4cHJlc3Npb25SZWZlcmVuY2UgJiYgIWlzRXhwcmVzc2lvblJlZmVyZW5jZShxdWVyeS5kYXRhc291cmNlKSkge1xuICAgICAgICBxdWVyeS5kYXRhc291cmNlID0gZHMuZ2V0UmVmKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcXVlcnk7XG4gICAgfSk7XG4gICAgY29uc3QgbG93ZXJJbnRlcnZhbExpbWl0ID0gbWluSW50ZXJ2YWwgPyBpbnRlcnBvbGF0ZSh0aGlzLCBtaW5JbnRlcnZhbCkgOiBkcy5pbnRlcnZhbDtcbiAgICBjb25zdCBub3JtID0gcmFuZ2VVdGlsLmNhbGN1bGF0ZUludGVydmFsKHRpbWVSYW5nZS5zdGF0ZS52YWx1ZSwgcmVxdWVzdC5tYXhEYXRhUG9pbnRzLCBsb3dlckludGVydmFsTGltaXQpO1xuICAgIHJlcXVlc3Quc2NvcGVkVmFycyA9IE9iamVjdC5hc3NpZ24oe30sIHJlcXVlc3Quc2NvcGVkVmFycywge1xuICAgICAgX19pbnRlcnZhbDogeyB0ZXh0OiBub3JtLmludGVydmFsLCB2YWx1ZTogbm9ybS5pbnRlcnZhbCB9LFxuICAgICAgX19pbnRlcnZhbF9tczogeyB0ZXh0OiBub3JtLmludGVydmFsTXMudG9TdHJpbmcoKSwgdmFsdWU6IG5vcm0uaW50ZXJ2YWxNcyB9XG4gICAgfSk7XG4gICAgcmVxdWVzdC5pbnRlcnZhbCA9IG5vcm0uaW50ZXJ2YWw7XG4gICAgcmVxdWVzdC5pbnRlcnZhbE1zID0gbm9ybS5pbnRlcnZhbE1zO1xuICAgIGNvbnN0IHByaW1hcnlUaW1lUmFuZ2UgPSB0aW1lUmFuZ2Uuc3RhdGUudmFsdWU7XG4gICAgbGV0IHNlY29uZGFyeVJlcXVlc3RzID0gW107XG4gICAgbGV0IHNlY29uZGFyeVByb2Nlc3NvcnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgKF9hID0gdGhpcy5nZXRDbG9zZXN0RXh0cmFRdWVyeVByb3ZpZGVycygpKSAhPSBudWxsID8gX2EgOiBbXSkge1xuICAgICAgZm9yIChjb25zdCB7IHJlcSwgcHJvY2Vzc29yIH0gb2YgcHJvdmlkZXIuZ2V0RXh0cmFRdWVyaWVzKHJlcXVlc3QpKSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RJZCA9IGdldE5leHRSZXF1ZXN0SWQoKTtcbiAgICAgICAgc2Vjb25kYXJ5UmVxdWVzdHMucHVzaChfX3NwcmVhZFByb3BzKF9fc3ByZWFkVmFsdWVzKHt9LCByZXEpLCB7IHJlcXVlc3RJZCB9KSk7XG4gICAgICAgIHNlY29uZGFyeVByb2Nlc3NvcnMuc2V0KHJlcXVlc3RJZCwgcHJvY2Vzc29yICE9IG51bGwgPyBwcm9jZXNzb3IgOiBwYXNzdGhyb3VnaFByb2Nlc3Nvcik7XG4gICAgICB9XG4gICAgfVxuICAgIHJlcXVlc3QucmFuZ2UgPSBwcmltYXJ5VGltZVJhbmdlO1xuICAgIHJldHVybiB7IHByaW1hcnk6IHJlcXVlc3QsIHNlY29uZGFyaWVzOiBzZWNvbmRhcnlSZXF1ZXN0cywgcHJvY2Vzc29yczogc2Vjb25kYXJ5UHJvY2Vzc29ycyB9O1xuICB9XG4gIF9jb21iaW5lRGF0YUxheWVycyhkYXRhKSB7XG4gICAgaWYgKHRoaXMuX2xheWVyQW5ub3RhdGlvbnMgJiYgdGhpcy5fbGF5ZXJBbm5vdGF0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBkYXRhLmFubm90YXRpb25zID0gKGRhdGEuYW5ub3RhdGlvbnMgfHwgW10pLmNvbmNhdCh0aGlzLl9sYXllckFubm90YXRpb25zKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RhdGUuZGF0YSAmJiB0aGlzLnN0YXRlLmRhdGEuYWxlcnRTdGF0ZSkge1xuICAgICAgZGF0YS5hbGVydFN0YXRlID0gdGhpcy5zdGF0ZS5kYXRhLmFsZXJ0U3RhdGU7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG4gIF9zZXROb0RhdGFTdGF0ZSgpIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5kYXRhICE9PSBlbXB0eVBhbmVsRGF0YSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRhdGE6IGVtcHR5UGFuZWxEYXRhIH0pO1xuICAgIH1cbiAgfVxuICBnZXRDbG9zZXN0RXh0cmFRdWVyeVByb3ZpZGVycygpIHtcbiAgICBjb25zdCBmb3VuZCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgaWYgKCF0aGlzLnBhcmVudCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBnZXRDbG9zZXN0KHRoaXMucGFyZW50LCAocykgPT4ge1xuICAgICAgaWYgKGlzRXh0cmFRdWVyeVByb3ZpZGVyKHMpICYmICFmb3VuZC5oYXMocy5jb25zdHJ1Y3RvcikpIHtcbiAgICAgICAgZm91bmQuc2V0KHMuY29uc3RydWN0b3IsIHMpO1xuICAgICAgfVxuICAgICAgcy5mb3JFYWNoQ2hpbGQoKGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChpc0V4dHJhUXVlcnlQcm92aWRlcihjaGlsZCkgJiYgIWZvdW5kLmhhcyhjaGlsZC5jb25zdHJ1Y3RvcikpIHtcbiAgICAgICAgICBmb3VuZC5zZXQoY2hpbGQuY29uc3RydWN0b3IsIGNoaWxkKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShmb3VuZC52YWx1ZXMoKSk7XG4gIH1cbiAgZmluZEFuZFN1YnNjcmliZVRvQWRIb2NGaWx0ZXJzKHVpZCkge1xuICAgIGNvbnN0IGZpbHRlcnNWYXIgPSBmaW5kQWN0aXZlQWRIb2NGaWx0ZXJWYXJpYWJsZUJ5VWlkKHVpZCk7XG4gICAgaWYgKHRoaXMuX2FkaG9jRmlsdGVyc1ZhciAhPT0gZmlsdGVyc1Zhcikge1xuICAgICAgdGhpcy5fYWRob2NGaWx0ZXJzVmFyID0gZmlsdGVyc1ZhcjtcbiAgICAgIHRoaXMuX3VwZGF0ZUV4cGxpY2l0VmFyaWFibGVEZXBlbmRlbmNpZXMoKTtcbiAgICB9XG4gICAgY29uc3QgZ3JvdXBCeVZhciA9IGZpbmRBY3RpdmVHcm91cEJ5VmFyaWFibGVzQnlVaWQodWlkKTtcbiAgICBpZiAodGhpcy5fZ3JvdXBCeVZhciAhPT0gZ3JvdXBCeVZhcikge1xuICAgICAgdGhpcy5fZ3JvdXBCeVZhciA9IGdyb3VwQnlWYXI7XG4gICAgICB0aGlzLl91cGRhdGVFeHBsaWNpdFZhcmlhYmxlRGVwZW5kZW5jaWVzKCk7XG4gICAgfVxuICB9XG4gIF91cGRhdGVFeHBsaWNpdFZhcmlhYmxlRGVwZW5kZW5jaWVzKCkge1xuICAgIGNvbnN0IGV4cGxpY2l0RGVwZW5kZW5jaWVzID0gW107XG4gICAgaWYgKHRoaXMuX2FkaG9jRmlsdGVyc1Zhcikge1xuICAgICAgZXhwbGljaXREZXBlbmRlbmNpZXMucHVzaCh0aGlzLl9hZGhvY0ZpbHRlcnNWYXIuc3RhdGUubmFtZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9ncm91cEJ5VmFyKSB7XG4gICAgICBleHBsaWNpdERlcGVuZGVuY2llcy5wdXNoKHRoaXMuX2dyb3VwQnlWYXIuc3RhdGUubmFtZSk7XG4gICAgfVxuICAgIHRoaXMuX3ZhcmlhYmxlRGVwZW5kZW5jeS5zZXRWYXJpYWJsZU5hbWVzKGV4cGxpY2l0RGVwZW5kZW5jaWVzKTtcbiAgfVxuICBpc1F1ZXJ5TW9kZUF1dG8oKSB7XG4gICAgdmFyIF9hO1xuICAgIHJldHVybiAoKF9hID0gdGhpcy5zdGF0ZS5ydW5RdWVyaWVzTW9kZSkgIT0gbnVsbCA/IF9hIDogXCJhdXRvXCIpID09PSBcImF1dG9cIjtcbiAgfVxufVxuZnVuY3Rpb24gZmluZEZpcnN0RGF0YXNvdXJjZSh0YXJnZXRzKSB7XG4gIHZhciBfYSwgX2I7XG4gIHJldHVybiAoX2IgPSAoX2EgPSB0YXJnZXRzLmZpbmQoKHQpID0+IHQuZGF0YXNvdXJjZSAhPT0gbnVsbCkpID09IG51bGwgPyB2b2lkIDAgOiBfYS5kYXRhc291cmNlKSAhPSBudWxsID8gX2IgOiB2b2lkIDA7XG59XG5mdW5jdGlvbiBhbGxGcmFtZXNFbXB0eShmcmFtZXMpIHtcbiAgaWYgKCFmcmFtZXMpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBmb3IgKGxldCBpID0gMDsgaSA8IGZyYW1lcy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChmcmFtZXNbaV0ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IHsgU2NlbmVRdWVyeVJ1bm5lciwgZmluZEZpcnN0RGF0YXNvdXJjZSwgZ2V0TmV4dFJlcXVlc3RJZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lVMk5sYm1WUmRXVnllVkoxYm01bGNpNXFjeUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dmMzSmpMM0YxWlhKNWFXNW5MMU5qWlc1bFVYVmxjbmxTZFc1dVpYSXVkSE1pWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ1kyeHZibVZFWldWd0xDQnBjMFZ4ZFdGc0lIMGdabkp2YlNBbmJHOWtZWE5vSnp0Y2JtbHRjRzl5ZENCN0lHWnZjbXRLYjJsdUxDQlNaWEJzWVhsVGRXSnFaV04wTENCVmJuTjFZbk5qY21saVlXSnNaU0I5SUdaeWIyMGdKM0o0YW5Nbk8xeHVYRzVwYlhCdmNuUWdleUJFWVhSaFVYVmxjbmtzSUVSaGRHRlRiM1Z5WTJWU1pXWXNJRXh2WVdScGJtZFRkR0YwWlNCOUlHWnliMjBnSjBCbmNtRm1ZVzVoTDNOamFHVnRZU2M3WEc1Y2JtbHRjRzl5ZENCN1hHNGdJRUZzWlhKMFUzUmhkR1ZKYm1adkxGeHVJQ0JFWVhSaFJuSmhiV1VzWEc0Z0lFUmhkR0ZHY21GdFpWWnBaWGNzWEc0Z0lFUmhkR0ZSZFdWeWVWSmxjWFZsYzNRc1hHNGdJRVJoZEdGVGIzVnlZMlZCY0drc1hHNGdJRVJoZEdGVWIzQnBZeXhjYmlBZ1VHRnVaV3hFWVhSaExGeHVJQ0J3Y21WUWNtOWpaWE56VUdGdVpXeEVZWFJoTEZ4dUlDQnlZVzVuWlZWMGFXd3NYRzU5SUdaeWIyMGdKMEJuY21GbVlXNWhMMlJoZEdFbk8xeHVYRzR2THlCVVQwUlBPaUJTWlcxdmRtVWdkR2hwY3lCcFoyNXZjbVVnWVc1dWIzUmhkR2x2YmlCM2FHVnVJSFJvWlNCbmNtRm1ZVzVoSUhKMWJuUnBiV1VnWkdWd1pXNWtaVzVqZVNCb1lYTWdZbVZsYmlCMWNHUmhkR1ZrWEc0dkx5QkFkSE10YVdkdWIzSmxYRzVwYlhCdmNuUWdleUJuWlhSU2RXNVNaWEYxWlhOMExDQjBiMFJoZEdGUmRXVnllVVZ5Y205eUxDQnBjMFY0Y0hKbGMzTnBiMjVTWldabGNtVnVZMlVzSUdOdmJtWnBaeUI5SUdaeWIyMGdKMEJuY21GbVlXNWhMM0oxYm5ScGJXVW5PMXh1WEc1cGJYQnZjblFnZXlCVFkyVnVaVTlpYW1WamRFSmhjMlVnZlNCbWNtOXRJQ2N1TGk5amIzSmxMMU5qWlc1bFQySnFaV04wUW1GelpTYzdYRzVwYlhCdmNuUWdleUJ6WTJWdVpVZHlZWEJvSUgwZ1puSnZiU0FuTGk0dlkyOXlaUzl6WTJWdVpVZHlZWEJvSnp0Y2JtbHRjRzl5ZENCN1hHNGdJRVJoZEdGTVlYbGxja1pwYkhSbGNpeGNiaUFnVTJObGJtVkVZWFJoVUhKdmRtbGtaWElzWEc0Z0lGTmpaVzVsUkdGMFlWQnliM1pwWkdWeVVtVnpkV3gwTEZ4dUlDQlRZMlZ1WlVSaGRHRlJkV1Z5ZVN4Y2JpQWdVMk5sYm1WUFltcGxZM1JUZEdGMFpTeGNiaUFnVTJObGJtVlVhVzFsVW1GdVoyVk1hV3RsTEZ4dWZTQm1jbTl0SUNjdUxpOWpiM0psTDNSNWNHVnpKenRjYm1sdGNHOXlkQ0I3SUdkbGRFUmhkR0ZUYjNWeVkyVWdmU0JtY205dElDY3VMaTkxZEdsc2N5OW5aWFJFWVhSaFUyOTFjbU5sSnp0Y2JtbHRjRzl5ZENCN0lGWmhjbWxoWW14bFJHVndaVzVrWlc1amVVTnZibVpwWnlCOUlHWnliMjBnSnk0dUwzWmhjbWxoWW14bGN5OVdZWEpwWVdKc1pVUmxjR1Z1WkdWdVkzbERiMjVtYVdjbk8xeHVhVzF3YjNKMElIc2dkM0pwZEdWVFkyVnVaVXh2WnlCOUlHWnliMjBnSnk0dUwzVjBhV3h6TDNkeWFYUmxVMk5sYm1WTWIyY25PMXh1YVcxd2IzSjBJSHNnVm1GeWFXRmliR1ZXWVd4MVpWSmxZMjl5WkdWeUlIMGdabkp2YlNBbkxpNHZkbUZ5YVdGaWJHVnpMMVpoY21saFlteGxWbUZzZFdWU1pXTnZjbVJsY2ljN1hHNXBiWEJ2Y25RZ2V5QmxiWEIwZVZCaGJtVnNSR0YwWVNCOUlHWnliMjBnSnk0dUwyTnZjbVV2VTJObGJtVkVZWFJoVG05a1pTYzdYRzVwYlhCdmNuUWdleUJuWlhSRGJHOXpaWE4wSUgwZ1puSnZiU0FuTGk0dlkyOXlaUzl6WTJWdVpVZHlZWEJvTDNWMGFXeHpKenRjYm1sdGNHOXlkQ0I3SUdselJYaDBjbUZSZFdWeWVWQnliM1pwWkdWeUxDQkZlSFJ5WVZGMVpYSjVSR0YwWVZCeWIyTmxjM052Y2l3Z1JYaDBjbUZSZFdWeWVWQnliM1pwWkdWeUlIMGdabkp2YlNBbkxpOUZlSFJ5WVZGMVpYSjVVSEp2ZG1sa1pYSW5PMXh1YVcxd2IzSjBJSHNnY0dGemMzUm9jbTkxWjJoUWNtOWpaWE56YjNJc0lHVjRkSEpoVVhWbGNubFFjbTlqWlhOemFXNW5UM0JsY21GMGIzSWdmU0JtY205dElDY3VMMlY0ZEhKaFVYVmxjbmxRY205alpYTnphVzVuVDNCbGNtRjBiM0luTzF4dWFXMXdiM0owSUhzZ1ptbHNkR1Z5UVc1dWIzUmhkR2x2Ym5NZ2ZTQm1jbTl0SUNjdUwyeGhlV1Z5Y3k5aGJtNXZkR0YwYVc5dWN5OW1hV3gwWlhKQmJtNXZkR0YwYVc5dWN5YzdYRzVwYlhCdmNuUWdleUJuWlhSRmJuSnBZMmhsWkVSaGRHRlNaWEYxWlhOMElIMGdabkp2YlNBbkxpOW5aWFJGYm5KcFkyaGxaRVJoZEdGU1pYRjFaWE4wSnp0Y2JtbHRjRzl5ZENCN0lHWnBibVJCWTNScGRtVkJaRWh2WTBacGJIUmxjbFpoY21saFlteGxRbmxWYVdRZ2ZTQm1jbTl0SUNjdUxpOTJZWEpwWVdKc1pYTXZZV1JvYjJNdmNHRjBZMmhIWlhSQlpHaHZZMFpwYkhSbGNuTW5PMXh1YVcxd2IzSjBJSHNnY21WbmFYTjBaWEpSZFdWeWVWZHBkR2hEYjI1MGNtOXNiR1Z5SUgwZ1puSnZiU0FuTGk5eVpXZHBjM1JsY2xGMVpYSjVWMmwwYUVOdmJuUnliMnhzWlhJbk8xeHVhVzF3YjNKMElIc2dabWx1WkVGamRHbDJaVWR5YjNWd1FubFdZWEpwWVdKc1pYTkNlVlZwWkNCOUlHWnliMjBnSnk0dUwzWmhjbWxoWW14bGN5OW5jbTkxY0dKNUwyWnBibVJCWTNScGRtVkhjbTkxY0VKNVZtRnlhV0ZpYkdWelFubFZhV1FuTzF4dWFXMXdiM0owSUhzZ1IzSnZkWEJDZVZaaGNtbGhZbXhsSUgwZ1puSnZiU0FuTGk0dmRtRnlhV0ZpYkdWekwyZHliM1Z3WW5rdlIzSnZkWEJDZVZaaGNtbGhZbXhsSnp0Y2JtbHRjRzl5ZENCN0lFRmtTRzlqUm1sc2RHVnljMVpoY21saFlteGxMQ0JwYzBacGJIUmxja052YlhCc1pYUmxJSDBnWm5KdmJTQW5MaTR2ZG1GeWFXRmliR1Z6TDJGa2FHOWpMMEZrU0c5alJtbHNkR1Z5YzFaaGNtbGhZbXhsSnp0Y2JtbHRjRzl5ZENCN0lGTmpaVzVsVm1GeWFXRmliR1VnZlNCbWNtOXRJQ2N1TGk5MllYSnBZV0pzWlhNdmRIbHdaWE1uTzF4dWFXMXdiM0owSUhzZ1JHRjBZVXhoZVdWeWMwMWxjbWRsY2lCOUlHWnliMjBnSnk0dlJHRjBZVXhoZVdWeWMwMWxjbWRsY2ljN1hHNXBiWEJ2Y25RZ2V5QnBiblJsY25CdmJHRjBaU0I5SUdaeWIyMGdKeTR1TDJOdmNtVXZjMk5sYm1WSGNtRndhQzl6WTJWdVpVZHlZWEJvSnp0Y2JtbHRjRzl5ZENCN0lIZHlZWEJKYmxOaFptVlRaWEpwWVd4cGVtRmliR1ZUWTJWdVpVOWlhbVZqZENCOUlHWnliMjBnSnk0dUwzVjBhV3h6TDNkeVlYQkpibE5oWm1WVFpYSnBZV3hwZW1GaWJHVlRZMlZ1WlU5aWFtVmpkQ2M3WEc1Y2JteGxkQ0JqYjNWdWRHVnlJRDBnTVRBd08xeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaMlYwVG1WNGRGSmxjWFZsYzNSSlpDZ3BJSHRjYmlBZ2NtVjBkWEp1SUNkVFVWSW5JQ3NnWTI5MWJuUmxjaXNyTzF4dWZWeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRkYxWlhKNVVuVnVibVZ5VTNSaGRHVWdaWGgwWlc1a2N5QlRZMlZ1WlU5aWFtVmpkRk4wWVhSbElIdGNiaUFnWkdGMFlUODZJRkJoYm1Wc1JHRjBZVHRjYmlBZ2NYVmxjbWxsY3pvZ1UyTmxibVZFWVhSaFVYVmxjbmxiWFR0Y2JpQWdaR0YwWVhOdmRYSmpaVDg2SUVSaGRHRlRiM1Z5WTJWU1pXWTdYRzRnSUcxcGJrbHVkR1Z5ZG1Gc1B6b2djM1J5YVc1bk8xeHVJQ0J0WVhoRVlYUmhVRzlwYm5SelB6b2diblZ0WW1WeU8xeHVJQ0JzYVhabFUzUnlaV0Z0YVc1blB6b2dZbTl2YkdWaGJqdGNiaUFnYldGNFJHRjBZVkJ2YVc1MGMwWnliMjFYYVdSMGFEODZJR0p2YjJ4bFlXNDdYRzRnSUdOaFkyaGxWR2x0Wlc5MWREODZJRVJoZEdGUmRXVnllVkpsY1hWbGMzUmJKMk5oWTJobFZHbHRaVzkxZENkZE8xeHVJQ0J4ZFdWeWVVTmhZMmhwYm1kVVZFdy9PaUJFWVhSaFVYVmxjbmxTWlhGMVpYTjBXeWR4ZFdWeWVVTmhZMmhwYm1kVVZFd25YVHRjYmlBZ0x5b3FYRzRnSUNBcUlGZG9aVzRnYzJWMElIUnZJR0YxZEc4Z0tIUm9aU0JrWldaaGRXeDBLU0J4ZFdWeWVTQnlkVzV1WlhJZ2QybHNiQ0JwYzNOMVpTQnhkV1Z5YVdWeklHOXVJR0ZqZEdsMllYUmxJQ2gzYUdWdUlIWmhjbWxoWW14bElHUmxjR1Z1WkdWdVkybGxjeUJoY21VZ2NtVmhaSGtwSUc5eUlIZG9aVzRnZEdsdFpTQnlZVzVuWlNCamFHRnVaMlV1WEc0Z0lDQXFJRk5sZENCMGJ5QnRZVzUxWVd3Z2RHOGdhR0YyWlNCbWRXeHNJRzFoYm5WaGJDQmpiMjUwY205c0lHOTJaWElnZDJobGJpQnhkV1Z5YVdWeklHRnlaU0JwYzNOMVpXUXVJRlJ5ZVNCdWIzUWdkRzhnYzJWMElIUm9hWE11SUZSb2FYTWdhWE1nYldGcGJteDVJSFZ6WldaMWJDQm1iM0lnZFc1cGRDQjBaWE4wY3l3Z2IzSWdjM0JsWTJsaGJDQmxaR2RsSUdOaGMyVWdkMjl5YTJac2IzZHpMbHh1SUNBZ0tpOWNiaUFnY25WdVVYVmxjbWxsYzAxdlpHVS9PaUFuWVhWMGJ5Y2dmQ0FuYldGdWRXRnNKenRjYmlBZ0x5OGdSbWxzZEdWeWN5QjBieUJpWlNCaGNIQnNhV1ZrSUhSdklHUmhkR0VnYkdGNVpYSWdjbVZ6ZFd4MGN5QmlaV1p2Y21VZ1kyOXRZbWx1YVc1bklIUm9aVzBnZDJsMGFDQlRVVklnY21WemRXeDBjMXh1SUNCa1lYUmhUR0Y1WlhKR2FXeDBaWEkvT2lCRVlYUmhUR0Y1WlhKR2FXeDBaWEk3WEc0Z0lDOHZJRkJ5YVhaaGRHVWdjblZ1ZEdsdFpTQnpkR0YwWlZ4dUlDQmZhR0Z6Um1WMFkyaGxaRVJoZEdFL09pQmliMjlzWldGdU8xeHVmVnh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVSaGRHRlJkV1Z5ZVVWNGRHVnVaR1ZrSUdWNGRHVnVaSE1nUkdGMFlWRjFaWEo1SUh0Y2JpQWdXMnRsZVRvZ2MzUnlhVzVuWFRvZ1lXNTVPMXh1WEc0Z0lDOHZJRTl3ZENCMGFHbHpJSEYxWlhKNUlHOTFkQ0J2WmlCMGFXMWxJSGRwYm1SdmR5QmpiMjF3WVhKcGMyOXVYRzRnSUhScGJXVlNZVzVuWlVOdmJYQmhjbVUvT2lCaWIyOXNaV0Z1TzF4dWZWeHVYRzR2THlCVWFHVWdjbVZ4ZFdWemRITWdkR2hoZENCM2FXeHNJR0psSUhKMWJpQmllU0IwYUdVZ2NYVmxjbmtnY25WdWJtVnlMbHh1THk5Y2JpOHZJRWRsYm1WeVlXeHNlU0IwYUdVZ2NYVmxjbmtnY25WdWJtVnlJSGRwYkd3Z2NuVnVJR0VnYzJsdVoyeGxJSEJ5YVcxaGNua2djbVZ4ZFdWemRDNWNiaTh2SUVsbUlIUm9aU0J6WTJWdVpTQm5jbUZ3YUNCamIyNTBZV2x1Y3lCcGJYQnNaVzFsYm5SaGRHbHZibk1nYjJaY2JpOHZJR0JGZUhSeVlWRjFaWEo1VUhKdmRtbGtaWEpnTENCMGFHVWdjbVZ4ZFdWemRITWdZM0psWVhSbFpDQmllU0IwYUdWelpWeHVMeThnYVcxd2JHVnRaVzUwWVhScGIyNXpJSGRwYkd3Z1ltVWdZV1JrWldRZ2RHOGdkR2hsSUd4cGMzUWdiMllnYzJWamIyNWtZWEo1SUhKbGNYVmxjM1J6TEZ4dUx5OGdZVzVrSUhSb1pYTmxJSGRwYkd3Z1ltVWdaWGhsWTNWMFpXUWdZWFFnZEdobElITmhiV1VnZEdsdFpTQmhjeUIwYUdVZ2NISnBiV0Z5ZVNCeVpYRjFaWE4wTGx4dUx5OWNiaTh2SUZSb1pTQnlaWE4xYkhSeklHOW1JR1ZoWTJnZ2MyVmpiMjVrWVhKNUlISmxjWFZsYzNRZ2QybHNiQ0JpWlNCd1lYTnpaV1FnZEc4Z1lXNGdZWE56YjJOcFlYUmxaRnh1THk4Z2NISnZZMlZ6YzI5eUlHWjFibU4wYVc5dUlDaGhiRzl1WnlCM2FYUm9JSFJvWlNCeVpYTjFiSFJ6SUc5bUlIUm9aU0J3Y21sdFlYSjVJSEpsY1hWbGMzUXBMRnh1THk4Z2QyaHBZMmdnWTJGdUlIUnlZVzV6Wm05eWJTQjBhR1VnY21WemRXeDBjeUJoY3lCa1pYTnBjbVZrTGx4dWFXNTBaWEptWVdObElGQnlaWEJoY21Wa1VtVnhkV1Z6ZEhNZ2UxeHVJQ0F2THlCVWFHVWdjSEpwYldGeWVTQnlaWEYxWlhOMElIUnZJSEoxYmk1Y2JpQWdjSEpwYldGeWVUb2dSR0YwWVZGMVpYSjVVbVZ4ZFdWemREdGNiaUFnTHk4Z1FTQndiM056YVdKc2VTQmxiWEIwZVNCc2FYTjBJRzltSUhObFkyOXVaR0Z5ZVNCeVpYRjFaWE4wY3lCMGJ5QnlkVzRnWVd4dmJtZHphV1JsWEc0Z0lDOHZJSFJvWlNCd2NtbHRZWEo1SUhKbGNYVmxjM1F1WEc0Z0lITmxZMjl1WkdGeWFXVnpPaUJFWVhSaFVYVmxjbmxTWlhGMVpYTjBXMTA3WEc0Z0lDOHZJRUVnYldGd0lHWnliMjBnWUhKbGNYVmxjM1JKWkdBZ2IyWWdjMlZqYjI1a1lYSjVJSEpsY1hWbGMzUnpJSFJ2SUhCeWIyTmxjM052Y25OY2JpQWdMeThnWm05eUlIUm9iM05sSUhKbGNYVmxjM1J6TGlCUWNtOTJhV1JsWkNCaWVTQjBhR1VnWUVWNGRISmhVWFZsY25sUWNtOTJhV1JsY21BdVhHNGdJSEJ5YjJObGMzTnZjbk02SUUxaGNEeHpkSEpwYm1jc0lFVjRkSEpoVVhWbGNubEVZWFJoVUhKdlkyVnpjMjl5UGp0Y2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklGTmpaVzVsVVhWbGNubFNkVzV1WlhJZ1pYaDBaVzVrY3lCVFkyVnVaVTlpYW1WamRFSmhjMlU4VVhWbGNubFNkVzV1WlhKVGRHRjBaVDRnYVcxd2JHVnRaVzUwY3lCVFkyVnVaVVJoZEdGUWNtOTJhV1JsY2lCN1hHNGdJSEJ5YVhaaGRHVWdYM0YxWlhKNVUzVmlQem9nVlc1emRXSnpZM0pwWW1GaWJHVTdYRzRnSUhCeWFYWmhkR1VnWDJSaGRHRk1ZWGxsY25OVGRXSS9PaUJWYm5OMVluTmpjbWxpWVdKc1pUdGNiaUFnY0hKcGRtRjBaU0JmWkdGMFlVeGhlV1Z5YzAxbGNtZGxjaUE5SUc1bGR5QkVZWFJoVEdGNVpYSnpUV1Z5WjJWeUtDazdYRzRnSUhCeWFYWmhkR1VnWDNScGJXVlRkV0kvT2lCVmJuTjFZbk5qY21saVlXSnNaVHRjYmlBZ2NISnBkbUYwWlNCZmRHbHRaVk4xWWxKaGJtZGxQem9nVTJObGJtVlVhVzFsVW1GdVoyVk1hV3RsTzF4dUlDQndjbWwyWVhSbElGOWpiMjUwWVdsdVpYSlhhV1IwYUQ4NklHNTFiV0psY2p0Y2JpQWdjSEpwZG1GMFpTQmZkbUZ5YVdGaWJHVldZV3gxWlZKbFkyOXlaR1Z5SUQwZ2JtVjNJRlpoY21saFlteGxWbUZzZFdWU1pXTnZjbVJsY2lncE8xeHVJQ0J3Y21sMllYUmxJRjl5WlhOMWJIUnpJRDBnYm1WM0lGSmxjR3hoZVZOMVltcGxZM1E4VTJObGJtVkVZWFJoVUhKdmRtbGtaWEpTWlhOMWJIUStLREVwTzF4dUlDQndjbWwyWVhSbElGOXpZMjl3WldSV1lYSnpJRDBnZXlCZlgzTmpaVzVsVDJKcVpXTjBPaUIzY21Gd1NXNVRZV1psVTJWeWFXRnNhWHBoWW14bFUyTmxibVZQWW1wbFkzUW9kR2hwY3lrZ2ZUdGNiaUFnY0hKcGRtRjBaU0JmYkdGNVpYSkJibTV2ZEdGMGFXOXVjejg2SUVSaGRHRkdjbUZ0WlZ0ZE8xeHVJQ0J3Y21sMllYUmxJRjl5WlhOMWJIUkJibTV2ZEdGMGFXOXVjejg2SUVSaGRHRkdjbUZ0WlZ0ZE8xeHVYRzRnSUhCeWFYWmhkR1VnWDJGa2FHOWpSbWxzZEdWeWMxWmhjajg2SUVGa1NHOWpSbWxzZEdWeWMxWmhjbWxoWW14bE8xeHVJQ0J3Y21sMllYUmxJRjluY205MWNFSjVWbUZ5UHpvZ1IzSnZkWEJDZVZaaGNtbGhZbXhsTzF4dVhHNGdJSEIxWW14cFl5Qm5aWFJTWlhOMWJIUnpVM1J5WldGdEtDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbDl5WlhOMWJIUnpPMXh1SUNCOVhHNWNiaUFnY0hKdmRHVmpkR1ZrSUY5MllYSnBZV0pzWlVSbGNHVnVaR1Z1WTNrNklGWmhjbWxoWW14bFJHVndaVzVrWlc1amVVTnZibVpwWnp4UmRXVnllVkoxYm01bGNsTjBZWFJsUGlBOUlHNWxkeUJXWVhKcFlXSnNaVVJsY0dWdVpHVnVZM2xEYjI1bWFXY29kR2hwY3l3Z2UxeHVJQ0FnSUhOMFlYUmxVR0YwYUhNNklGc25jWFZsY21sbGN5Y3NJQ2RrWVhSaGMyOTFjbU5sSjEwc1hHNGdJQ0FnYjI1V1lYSnBZV0pzWlZWd1pHRjBaVU52YlhCc1pYUmxaRG9nZEdocGN5NXZibFpoY21saFlteGxWWEJrWVhSbGMwTnZiWEJzWlhSbFpDNWlhVzVrS0hSb2FYTXBMRnh1SUNBZ0lHOXVRVzU1Vm1GeWFXRmliR1ZEYUdGdVoyVmtPaUIwYUdsekxtOXVRVzU1Vm1GeWFXRmliR1ZEYUdGdVoyVmtMbUpwYm1Rb2RHaHBjeWtzWEc0Z0lIMHBPMXh1WEc0Z0lIQjFZbXhwWXlCamIyNXpkSEoxWTNSdmNpaHBibWwwYVdGc1UzUmhkR1U2SUZGMVpYSjVVblZ1Ym1WeVUzUmhkR1VwSUh0Y2JpQWdJQ0J6ZFhCbGNpaHBibWwwYVdGc1UzUmhkR1VwTzF4dVhHNGdJQ0FnZEdocGN5NWhaR1JCWTNScGRtRjBhVzl1U0dGdVpHeGxjaWdvS1NBOVBpQjBhR2x6TGw5dmJrRmpkR2wyWVhSbEtDa3BPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JmYjI1QlkzUnBkbUYwWlNncElIdGNiaUFnSUNCcFppQW9kR2hwY3k1cGMxRjFaWEo1VFc5a1pVRjFkRzhvS1NrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnZEdsdFpWSmhibWRsSUQwZ2MyTmxibVZIY21Gd2FDNW5aWFJVYVcxbFVtRnVaMlVvZEdocGN5azdYRzVjYmlBZ0lDQWdJQzh2SUVGa1pDQnpkV0p6WTNKcGNIUnBiMjV6SUhSdklHRnVlU0JsZUhSeVlTQndjbTkyYVdSbGNuTWdjMjhnZEdoaGRDQjBhR1Y1SUhKbGNuVnVJSEYxWlhKcFpYTmNiaUFnSUNBZ0lDOHZJSGRvWlc0Z2RHaGxhWElnYzNSaGRHVWdZMmhoYm1kbGN5QmhibVFnZEdobGVTQnphRzkxYkdRZ2NtVnlkVzR1WEc0Z0lDQWdJQ0JqYjI1emRDQndjbTkyYVdSbGNuTWdQU0IwYUdsekxtZGxkRU5zYjNObGMzUkZlSFJ5WVZGMVpYSjVVSEp2ZG1sa1pYSnpLQ2s3WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUhCeWIzWnBaR1Z5SUc5bUlIQnliM1pwWkdWeWN5a2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxsOXpkV0p6TG1Ga1pDaGNiaUFnSUNBZ0lDQWdJQ0J3Y205MmFXUmxjaTV6ZFdKelkzSnBZbVZVYjFOMFlYUmxLQ2h1TENCd0tTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvY0hKdmRtbGtaWEl1YzJodmRXeGtVbVZ5ZFc0b2NDd2diaXdnZEdocGN5NXpkR0YwWlM1eGRXVnlhV1Z6S1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbkoxYmxGMVpYSnBaWE1vS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCOUtWeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0IwYUdsekxuTjFZbk5qY21saVpWUnZWR2x0WlZKaGJtZGxRMmhoYm1kbGN5aDBhVzFsVW1GdVoyVXBPMXh1WEc0Z0lDQWdJQ0JwWmlBb2RHaHBjeTV6YUc5MWJHUlNkVzVSZFdWeWFXVnpUMjVCWTNScGRtRjBaU2dwS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11Y25WdVVYVmxjbWxsY3lncE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDZ2hkR2hwY3k1ZlpHRjBZVXhoZVdWeWMxTjFZaWtnZTF4dUlDQWdJQ0FnZEdocGN5NWZhR0Z1Wkd4bFJHRjBZVXhoZVdWeWN5Z3BPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlBb0tTQTlQaUIwYUdsekxsOXZia1JsWVdOMGFYWmhkR1VvS1R0Y2JpQWdmVnh1WEc0Z0lDOHZJRlJvYVhNZ2JXVjBhRzlrSUhOMVluTmpjbWxpWlhNZ2RHOGdZV3hzSUZOalpXNWxSR0YwWVV4aGVXVnljeUIxY0NCMWJuUnBiQ0IwYUdVZ2NtOXZkQ3dnWVc1a0lHTnZiV0pwYm1WeklIUm9aU0J5WlhOMWJIUnpJR2x1ZEc4Z1pHRjBZU0J3Y205MmFXUmxaQ0JtY205dElGTmpaVzVsVVhWbGNubFNkVzV1WlhKY2JpQWdjSEpwZG1GMFpTQmZhR0Z1Wkd4bFJHRjBZVXhoZVdWeWN5Z3BJSHRjYmlBZ0lDQmpiMjV6ZENCa1lYUmhUR0Y1WlhKeklEMGdjMk5sYm1WSGNtRndhQzVuWlhSRVlYUmhUR0Y1WlhKektIUm9hWE1wTzF4dVhHNGdJQ0FnYVdZZ0tHUmhkR0ZNWVhsbGNuTXViR1Z1WjNSb0lEMDlQU0F3S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkR2hwY3k1ZlpHRjBZVXhoZVdWeWMxTjFZaUE5SUhSb2FYTXVYMlJoZEdGTVlYbGxjbk5OWlhKblpYSmNiaUFnSUNBZ0lDNW5aWFJOWlhKblpXUlRkSEpsWVcwb1pHRjBZVXhoZVdWeWN5bGNiaUFnSUNBZ0lDNXpkV0p6WTNKcFltVW9kR2hwY3k1ZmIyNU1ZWGxsY25OU1pXTmxhWFpsWkM1aWFXNWtLSFJvYVhNcEtUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdYMjl1VEdGNVpYSnpVbVZqWldsMlpXUW9jbVZ6ZFd4MGN6b2dTWFJsY21GaWJHVThVMk5sYm1WRVlYUmhVSEp2ZG1sa1pYSlNaWE4xYkhRK0tTQjdYRzRnSUNBZ1kyOXVjM1FnZEdsdFpWSmhibWRsSUQwZ2MyTmxibVZIY21Gd2FDNW5aWFJVYVcxbFVtRnVaMlVvZEdocGN5azdYRzRnSUNBZ1kyOXVjM1FnZXlCa1lYUmhUR0Y1WlhKR2FXeDBaWElnZlNBOUlIUm9hWE11YzNSaGRHVTdYRzVjYmlBZ0lDQnNaWFFnWVc1dWIzUmhkR2x2Ym5NNklFUmhkR0ZHY21GdFpWdGRJRDBnVzEwN1hHNGdJQ0FnYkdWMElHRnNaWEowVTNSaGRHVnpPaUJFWVhSaFJuSmhiV1ZiWFNBOUlGdGRPMXh1SUNBZ0lHeGxkQ0JoYkdWeWRGTjBZWFJsT2lCQmJHVnlkRk4wWVhSbFNXNW1ieUI4SUhWdVpHVm1hVzVsWkR0Y2JseHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2NtVnpkV3gwSUc5bUlISmxjM1ZzZEhNcElIdGNiaUFnSUNBZ0lHWnZjaUFvYkdWMElHWnlZVzFsSUc5bUlISmxjM1ZzZEM1a1lYUmhMbk5sY21sbGN5a2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb1puSmhiV1V1YldWMFlUOHVaR0YwWVZSdmNHbGpJRDA5UFNCRVlYUmhWRzl3YVdNdVFXNXViM1JoZEdsdmJuTXBJSHRjYmlBZ0lDQWdJQ0FnSUNCaGJtNXZkR0YwYVc5dWN5QTlJR0Z1Ym05MFlYUnBiMjV6TG1OdmJtTmhkQ2htY21GdFpTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tHWnlZVzFsTG0xbGRHRS9MbVJoZEdGVWIzQnBZeUE5UFQwZ1JHRjBZVlJ2Y0dsakxrRnNaWEowVTNSaGRHVnpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1lXeGxjblJUZEdGMFpYTWdQU0JoYkdWeWRGTjBZWFJsY3k1amIyNWpZWFFvWm5KaGJXVXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0dSaGRHRk1ZWGxsY2tacGJIUmxjajh1Y0dGdVpXeEpaQ2tnZTF4dUlDQWdJQ0FnYVdZZ0tHRnVibTkwWVhScGIyNXpMbXhsYm1kMGFDQStJREFwSUh0Y2JpQWdJQ0FnSUNBZ1lXNXViM1JoZEdsdmJuTWdQU0JtYVd4MFpYSkJibTV2ZEdGMGFXOXVjeWhoYm01dmRHRjBhVzl1Y3l3Z1pHRjBZVXhoZVdWeVJtbHNkR1Z5S1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2FXWWdLR0ZzWlhKMFUzUmhkR1Z6TG14bGJtZDBhQ0ErSURBcElIdGNiaUFnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JtY21GdFpTQnZaaUJoYkdWeWRGTjBZWFJsY3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHWnlZVzFsVm1sbGR5QTlJRzVsZHlCRVlYUmhSbkpoYldWV2FXVjNQRUZzWlhKMFUzUmhkR1ZKYm1adlBpaG1jbUZ0WlNrN1hHNWNiaUFnSUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUhKdmR5QnZaaUJtY21GdFpWWnBaWGNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xtSUNoeWIzY3VjR0Z1Wld4SlpDQTlQVDBnWkdGMFlVeGhlV1Z5Um1sc2RHVnlMbkJoYm1Wc1NXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdZV3hsY25SVGRHRjBaU0E5SUhKdmR6dGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1UydHBjQ0IxYm01bGMzTmhjbmtnYzNSaGRHVWdkWEJrWVhSbGMxeHVJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lHRnNiRVp5WVcxbGMwVnRjSFI1S0dGdWJtOTBZWFJwYjI1ektTQW1KbHh1SUNBZ0lDQWdZV3hzUm5KaGJXVnpSVzF3ZEhrb2RHaHBjeTVmYkdGNVpYSkJibTV2ZEdGMGFXOXVjeWtnSmlaY2JpQWdJQ0FnSUdselJYRjFZV3dvWVd4bGNuUlRkR0YwWlN3Z2RHaHBjeTV6ZEdGMFpTNWtZWFJoUHk1aGJHVnlkRk4wWVhSbEtWeHVJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJSDFjYmx4dUlDQWdJSFJvYVhNdVgyeGhlV1Z5UVc1dWIzUmhkR2x2Ym5NZ1BTQmhibTV2ZEdGMGFXOXVjenRjYmx4dUlDQWdJR052Ym5OMElHSmhjMlZUZEdGMFpWVndaR0YwWlNBOUlIUm9hWE11YzNSaGRHVXVaR0YwWVNBL0lIUm9hWE11YzNSaGRHVXVaR0YwWVNBNklIc2dMaTR1Wlcxd2RIbFFZVzVsYkVSaGRHRXNJSFJwYldWU1lXNW5aVG9nZEdsdFpWSmhibWRsTG5OMFlYUmxMblpoYkhWbElIMDdYRzVjYmlBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0h0Y2JpQWdJQ0FnSUdSaGRHRTZJSHRjYmlBZ0lDQWdJQ0FnTGk0dVltRnpaVk4wWVhSbFZYQmtZWFJsTEZ4dUlDQWdJQ0FnSUNCaGJtNXZkR0YwYVc5dWN6b2dXeTR1TGloMGFHbHpMbDl5WlhOMWJIUkJibTV2ZEdGMGFXOXVjeUEvUHlCYlhTa3NJQzR1TG1GdWJtOTBZWFJwYjI1elhTeGNiaUFnSUNBZ0lDQWdZV3hsY25SVGRHRjBaVG9nWVd4bGNuUlRkR0YwWlNBL1B5QjBhR2x6TG5OMFlYUmxMbVJoZEdFL0xtRnNaWEowVTNSaGRHVXNYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lIMHBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZSb2FYTWdkSEpwWlhNZ2RHOGdjM1JoY25RZ1lTQnVaWGNnY1hWbGNua2dkMmhsYm1WMlpYSWdZU0IyWVhKcFlXSnNaU0JqYjIxd2JHVjBaWE1nYjNJZ2FYTWdZMmhoYm1kbFpDNWNiaUFnSUNwY2JpQWdJQ29nVjJVZ1kyRnlaU0JoWW05MWRDQjJZWEpwWVdKc1pTQjFjR1JoZEdVZ1kyOXRjR3hsZEdsdmJuTWdaWFpsYmlCM2FHVnVJSFJvWlNCMllYSnBZV0pzWlNCb1lYTWdibTkwSUdOb1lXNW5aV1FnWVc1a0lHVjJaVzRnZDJobGJpQnBkQ0JwY3lCdWIzUWdZU0JrYVhKbFkzUWdaR1Z3Wlc1a1pXNWplUzVjYmlBZ0lDb2dSWGhoYlhCc1pUb2dWbUZ5YVdGaWJHVnpJRUVnWVc1a0lFSWdLRUlnWkdWd1pXNWtjeUJ2YmlCQktTNGdRU0IxY0dSaGRHVWdaR1Z3Wlc1a2N5QnZiaUIwYVcxbElISmhibWRsTGlCVGJ5QjNhR1Z1SUhScGJXVWdZMmhoYm1kbElIRjFaWEo1SUhKMWJtNWxjaUIzYVd4c1hHNGdJQ0FxSUdacGJtUWdkR2hoZENCMllYSnBZV0pzWlNCQklHbHpJR3h2WVdScGJtY2dkMmhwWTJnZ2FYTWdZU0JrWlhCbGJtUmxibU41SUc5dUlHOW1JSFpoY21saFlteGxJRUlnYzI4Z2QybHNiQ0J6WlhRZ1gybHpWMkZwZEdsdVowWnZjbFpoY21saFlteGxjeUIwYnlCMGNuVmxJR0Z1WkZ4dUlDQWdLaUJ1YjNRZ2FYTnpkV1VnWVc1NUlIRjFaWEo1TGx4dUlDQWdLbHh1SUNBZ0tpQlhhR1Z1SUVFZ1kyOXRjR3hsZEdWeklHbDBKM01nYkc5aFpHbHVaeUFvZDJsMGFDQnVieUIyWVd4MVpTQmphR0Z1WjJVc0lITnZJRUlnYm1WMlpYSWdkWEJrWVhSbGN5a2dhWFFnZDJsc2JDQmpZWFZ6WlNCaElHTmhiR3dnYjJZZ2RHaHBjeUJtZFc1amRHbHZiaUJzWlhSMGFXNW5YRzRnSUNBcUlIUm9aU0J4ZFdWeWVTQnlkVzV1WlhJZ2EyNXZkeUIwYUdGMElFRWdhR0Z6SUdOdmJYQnNaWFJsWkN3Z1lXNWtJR2x1SUdOaGMyVWdYMmx6VjJGcGRHbHVaMFp2Y2xaaGNtbGhZbXhsY3lCM1pTQjBjbmtnZEc4Z2NuVnVJSFJvWlNCeGRXVnllUzRnVkdobElIRjFaWEo1SUhkcGJHeGNiaUFnSUNvZ2IyNXNlU0J5ZFc0Z2FXWWdZV3hzSUhaaGNtbGhZbXhsY3lCaGNtVWdhVzRnWVNCdWIyNGdiRzloWkdsdVp5QnpkR0YwWlNCemJ5QnBiaUJ2ZEdobGNpQnpZMlZ1WVhKcGIzTWdkMmhsY21VZ1lTQnhkV1Z5ZVNCa1pYQmxibVJ6SUc5dUlHMWhibmtnZG1GeWFXRmliR1Z6SUhSb2FYTWdkMmxzYkZ4dUlDQWdLaUJpWlNCallXeHNaV1FnYldGdWVTQjBhVzFsY3lCMWJuUnBiQ0JoYkd3Z1pHVndaVzVrWlc1amFXVnpJR0Z5WlNCcGJpQmhJRzV2YmlCc2IyRmthVzVuSUhOMFlYUmxMaUFnSUNwY2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ2IyNVdZWEpwWVdKc1pWVndaR0YwWlhORGIyMXdiR1YwWldRb0tTQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdWFYTlJkV1Z5ZVUxdlpHVkJkWFJ2S0NrcElIdGNiaUFnSUNBZ0lIUm9hWE11Y25WdVVYVmxjbWxsY3lncE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRhR1ZqYXlCcFppQjJZV3gxWlNCamFHRnVaMlZrSUdseklHRWdZV1JvYjJNZ1ptbHNkR1Z5SUc4Z1ozSnZkWEFnWW5rZ2RtRnlhV0ZpYkdVZ2RHaGhkQ0JrYVdRZ2JtOTBJR1Y0YVhOMElIZG9aVzRnZDJVZ2FYTnpkV1ZrSUhSb1pTQnNZWE4wSUhGMVpYSjVYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJRzl1UVc1NVZtRnlhV0ZpYkdWRGFHRnVaMlZrS0haaGNtbGhZbXhsT2lCVFkyVnVaVlpoY21saFlteGxLU0I3WEc0Z0lDQWdMeThnU1dZZ2RHaHBjeUIyWVhKcFlXSnNaU0JvWVhNZ1lXeHlaV0ZrZVNCaVpXVnVJR1JsZEdWamRHVmtJSFJvYVhNZ2RtRnlhV0ZpYkdVZ1lYTWdZU0JrWlhCbGJtUmxibU41SUc5dVZtRnlhV0ZpYkdWVmNHUmhkR1Z6UTI5dGNHeGxkR1ZrSUdGaWIzWmxJSGRwYkd3Z2FHRnVaR3hsSUhaaGJIVmxJR05vWVc1blpYTmNiaUFnSUNCcFppQW9kR2hwY3k1ZllXUm9iMk5HYVd4MFpYSnpWbUZ5SUQwOVBTQjJZWEpwWVdKc1pTQjhmQ0IwYUdsekxsOW5jbTkxY0VKNVZtRnlJRDA5UFNCMllYSnBZV0pzWlNCOGZDQWhkR2hwY3k1cGMxRjFaWEo1VFc5a1pVRjFkRzhvS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoMllYSnBZV0pzWlNCcGJuTjBZVzVqWlc5bUlFRmtTRzlqUm1sc2RHVnljMVpoY21saFlteGxJQ1ltSUhSb2FYTXVYMmx6VW1Wc1pYWmhiblJCZFhSdlZtRnlhV0ZpYkdVb2RtRnlhV0ZpYkdVcEtTQjdYRzRnSUNBZ0lDQjBhR2x6TG5KMWJsRjFaWEpwWlhNb0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9kbUZ5YVdGaWJHVWdhVzV6ZEdGdVkyVnZaaUJIY205MWNFSjVWbUZ5YVdGaWJHVWdKaVlnZEdocGN5NWZhWE5TWld4bGRtRnVkRUYxZEc5V1lYSnBZV0pzWlNoMllYSnBZV0pzWlNrcElIdGNiaUFnSUNBZ0lIUm9hWE11Y25WdVVYVmxjbWxsY3lncE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1gybHpVbVZzWlhaaGJuUkJkWFJ2Vm1GeWFXRmliR1VvZG1GeWFXRmliR1U2SUVGa1NHOWpSbWxzZEdWeWMxWmhjbWxoWW14bElId2dSM0p2ZFhCQ2VWWmhjbWxoWW14bEtTQjdYRzRnSUNBZ1kyOXVjM1FnWkdGMFlYTnZkWEpqWlNBOUlIUm9hWE11YzNSaGRHVXVaR0YwWVhOdmRYSmpaU0EvUHlCbWFXNWtSbWx5YzNSRVlYUmhjMjkxY21ObEtIUm9hWE11YzNSaGRHVXVjWFZsY21sbGN5azdYRzRnSUNBZ2NtVjBkWEp1SUhaaGNtbGhZbXhsTG5OMFlYUmxMbUZ3Y0d4NVRXOWtaU0E5UFQwZ0oyRjFkRzhuSUNZbUlHUmhkR0Z6YjNWeVkyVS9MblZwWkNBOVBUMGdkbUZ5YVdGaWJHVXVjM1JoZEdVdVpHRjBZWE52ZFhKalpUOHVkV2xrTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCemFHOTFiR1JTZFc1UmRXVnlhV1Z6VDI1QlkzUnBkbUYwWlNncElIdGNiaUFnSUNCcFppQW9kR2hwY3k1ZmRtRnlhV0ZpYkdWV1lXeDFaVkpsWTI5eVpHVnlMbWhoYzBSbGNHVnVaR1Z1WTJsbGMwTm9ZVzVuWldRb2RHaHBjeWtwSUh0Y2JpQWdJQ0FnSUhkeWFYUmxVMk5sYm1WTWIyY29YRzRnSUNBZ0lDQWdJQ2RUWTJWdVpWRjFaWEo1VW5WdWJtVnlKeXhjYmlBZ0lDQWdJQ0FnSjFaaGNtbGhZbXhsSUdSbGNHVnVaR1Z1WTNrZ1kyaGhibWRsWkNCM2FHbHNaU0JwYm1GamRHbDJaU3dnYzJodmRXeGtVblZ1VVhWbGNtbGxjMDl1UVdOMGFYWmhkR1VnY21WMGRYSnVjeUIwY25WbEoxeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZJRWxtSUhkbElHUnZiaWQwSUdoaGRtVWdZVzU1SUdSaGRHRWdkMlVnYzJodmRXeGtJSEoxYmlCeGRXVnlhV1Z6WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbk4wWVhSbExtUmhkR0VwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUIwY25WbE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklFbG1JSFJwYldVZ2NtRnVaMlVnYVhNZ2MzUmhiR1VnTHlCa2FXWm1aWEpsYm5RZ2QyVWdjMmh2ZFd4a0lISjFiaUJ4ZFdWeWFXVnpYRzRnSUNBZ2FXWWdLSFJvYVhNdVgybHpSR0YwWVZScGJXVlNZVzVuWlZOMFlXeGxLSFJvYVhNdWMzUmhkR1V1WkdGMFlTa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBjblZsTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1gybHpSR0YwWVZScGJXVlNZVzVuWlZOMFlXeGxLR1JoZEdFNklGQmhibVZzUkdGMFlTa2dlMXh1SUNBZ0lHTnZibk4wSUhScGJXVlNZVzVuWlNBOUlITmpaVzVsUjNKaGNHZ3VaMlYwVkdsdFpWSmhibWRsS0hSb2FYTXBPMXh1WEc0Z0lDQWdZMjl1YzNRZ2MzUmhkR1ZVYVcxbFVtRnVaMlVnUFNCMGFXMWxVbUZ1WjJVdWMzUmhkR1V1ZG1Gc2RXVTdYRzRnSUNBZ1kyOXVjM1FnWkdGMFlWUnBiV1ZTWVc1blpTQTlJR1JoZEdFdWRHbHRaVkpoYm1kbE8xeHVYRzRnSUNBZ2FXWWdLRnh1SUNBZ0lDQWdjM1JoZEdWVWFXMWxVbUZ1WjJVdVpuSnZiUzUxYm1sNEtDa2dQVDA5SUdSaGRHRlVhVzFsVW1GdVoyVXVabkp2YlM1MWJtbDRLQ2tnSmlaY2JpQWdJQ0FnSUhOMFlYUmxWR2x0WlZKaGJtZGxMblJ2TG5WdWFYZ29LU0E5UFQwZ1pHRjBZVlJwYldWU1lXNW5aUzUwYnk1MWJtbDRLQ2xjYmlBZ0lDQXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0I5WEc0Z0lDQWdkM0pwZEdWVFkyVnVaVXh2WnlnblUyTmxibVZSZFdWeWVWSjFibTVsY2ljc0lDZEVZWFJoSUhScGJXVWdjbUZ1WjJVZ2FYTWdjM1JoYkdVbktUdGNiaUFnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdYMjl1UkdWaFkzUnBkbUYwWlNncE9pQjJiMmxrSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTVmY1hWbGNubFRkV0lwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVYM0YxWlhKNVUzVmlMblZ1YzNWaWMyTnlhV0psS0NrN1hHNGdJQ0FnSUNCMGFHbHpMbDl4ZFdWeWVWTjFZaUE5SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2RHaHBjeTVmWkdGMFlVeGhlV1Z5YzFOMVlpa2dlMXh1SUNBZ0lDQWdkR2hwY3k1ZlpHRjBZVXhoZVdWeWMxTjFZaTUxYm5OMVluTmpjbWxpWlNncE8xeHVJQ0FnSUNBZ2RHaHBjeTVmWkdGMFlVeGhlV1Z5YzFOMVlpQTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQjBhR2x6TGw5MGFXMWxVM1ZpUHk1MWJuTjFZbk5qY21saVpTZ3BPMXh1SUNBZ0lIUm9hWE11WDNScGJXVlRkV0lnUFNCMWJtUmxabWx1WldRN1hHNGdJQ0FnZEdocGN5NWZkR2x0WlZOMVlsSmhibWRsSUQwZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUhSb2FYTXVYMkZrYUc5alJtbHNkR1Z5YzFaaGNpQTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQjBhR2x6TGw5bmNtOTFjRUo1Vm1GeUlEMGdkVzVrWldacGJtVmtPMXh1SUNBZ0lIUm9hWE11WDNaaGNtbGhZbXhsVm1Gc2RXVlNaV052Y21SbGNpNXlaV052Y21SRGRYSnlaVzUwUkdWd1pXNWtaVzVqZVZaaGJIVmxjMFp2Y2xOalpXNWxUMkpxWldOMEtIUm9hWE1wTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUhObGRFTnZiblJoYVc1bGNsZHBaSFJvS0hkcFpIUm9PaUJ1ZFcxaVpYSXBJSHRjYmlBZ0lDQXZMeUJKWmlCM1pTQmtiMjRuZENCb1lYWmxJR0VnZDJsa2RHZ2dkMlVnYzJodmRXeGtJSEoxYmlCeGRXVnlhV1Z6WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbDlqYjI1MFlXbHVaWEpYYVdSMGFDQW1KaUIzYVdSMGFDQStJREFwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVYMk52Ym5SaGFXNWxjbGRwWkhSb0lEMGdkMmxrZEdnN1hHNWNiaUFnSUNBZ0lDOHZJRWxtSUhkbElHUnZiaWQwSUdoaGRtVWdiV0Y0UkdGMFlWQnZhVzUwY3lCemNHVmphV1pwWTJGc2JIa2djMlYwSUdGdVpDQnRZWGhFWVhSaFVHOXBiblJ6Um5KdmJWZHBaSFJvSUdseklIUnlkV1ZjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbk4wWVhSbExtMWhlRVJoZEdGUWIybHVkSE5HY205dFYybGtkR2dnSmlZZ0lYUm9hWE11YzNSaGRHVXViV0Y0UkdGMFlWQnZhVzUwY3lrZ2UxeHVJQ0FnSUNBZ0lDQXZMeUJCY3lCMGFHbHpJR2x6SUdOaGJHeGxaQ0JtY205dElISmxibVJsY2lCd1lYUm9JSGRsSUc1bFpXUWdkRzhnZDJGcGRDQm1iM0lnYm1WNGRDQjBhV05ySUdKbFptOXlaU0J5ZFc1dWFXNW5JSEYxWlhKcFpYTmNiaUFnSUNBZ0lDQWdjMlYwVkdsdFpXOTFkQ2dvS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11YVhOQlkzUnBkbVVnSmlZZ0lYUm9hWE11YzNSaGRHVXVYMmhoYzBabGRHTm9aV1JFWVhSaEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpMbkoxYmxGMVpYSnBaWE1vS1R0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDBzSURBcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0F2THlCcFppQjBhR1VnZFhCa1lYUmxaQ0JqYjI1MFlXbHVaWElnZDJsa2RHZ2dhWE1nWW1sbloyVnlJSFJvWVc0Z01DQnNaWFFuY3lCeVpXMWxiV0psY2lCMGFHVWdkMmxrZEdnZ2RXNTBhV3dnYm1WNGRDQnhkV1Z5ZVNCcGMzTjFaVnh1SUNBZ0lDQWdhV1lnS0hkcFpIUm9JRDRnTUNrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TGw5amIyNTBZV2x1WlhKWGFXUjBhQ0E5SUhkcFpIUm9PMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QnBjMFJoZEdGU1pXRmtlVlJ2UkdsemNHeGhlU2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdRbTl2YkdWaGJpaDBhR2x6TG5OMFlYUmxMbDlvWVhOR1pYUmphR1ZrUkdGMFlTazdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJSE4xWW5OamNtbGlaVlJ2VkdsdFpWSmhibWRsUTJoaGJtZGxjeWgwYVcxbFVtRnVaMlU2SUZOalpXNWxWR2x0WlZKaGJtZGxUR2xyWlNrZ2UxeHVJQ0FnSUdsbUlDaDBhR2x6TGw5MGFXMWxVM1ZpVW1GdVoyVWdQVDA5SUhScGJXVlNZVzVuWlNrZ2UxeHVJQ0FnSUNBZ0x5OGdUbTkwYUdsdVp5QjBieUJrYnl3Z1lXeHlaV0ZrZVNCemRXSnpZM0pwWW1Wa1hHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0hSb2FYTXVYM1JwYldWVGRXSXBJSHRjYmlBZ0lDQWdJSFJvYVhNdVgzUnBiV1ZUZFdJdWRXNXpkV0p6WTNKcFltVW9LVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQjBhR2x6TGw5MGFXMWxVM1ZpVW1GdVoyVWdQU0IwYVcxbFVtRnVaMlU3WEc0Z0lDQWdkR2hwY3k1ZmRHbHRaVk4xWWlBOUlIUnBiV1ZTWVc1blpTNXpkV0p6WTNKcFltVlViMU4wWVhSbEtDZ3BJRDArSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjblZ1VjJsMGFGUnBiV1ZTWVc1blpTaDBhVzFsVW1GdVoyVXBPMXh1SUNBZ0lIMHBPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJSEoxYmxGMVpYSnBaWE1vS1NCN1hHNGdJQ0FnWTI5dWMzUWdkR2x0WlZKaGJtZGxJRDBnYzJObGJtVkhjbUZ3YUM1blpYUlVhVzFsVW1GdVoyVW9kR2hwY3lrN1hHNGdJQ0FnYVdZZ0tIUm9hWE11YVhOUmRXVnllVTF2WkdWQmRYUnZLQ2twSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjM1ZpYzJOeWFXSmxWRzlVYVcxbFVtRnVaMlZEYUdGdVoyVnpLSFJwYldWU1lXNW5aU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkR2hwY3k1eWRXNVhhWFJvVkdsdFpWSmhibWRsS0hScGJXVlNZVzVuWlNrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHZGxkRTFoZUVSaGRHRlFiMmx1ZEhNb0tTQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdWMzUmhkR1V1YldGNFJHRjBZVkJ2YVc1MGN5a2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11YzNSaGRHVXViV0Y0UkdGMFlWQnZhVzUwY3p0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1emRHRjBaUzV0WVhoRVlYUmhVRzlwYm5SelJuSnZiVmRwWkhSb0lEOGdkR2hwY3k1ZlkyOXVkR0ZwYm1WeVYybGtkR2dnUHo4Z05UQXdJRG9nTlRBd08xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHTmhibU5sYkZGMVpYSjVLQ2tnZTF4dUlDQWdJSFJvYVhNdVgzRjFaWEo1VTNWaVB5NTFibk4xWW5OamNtbGlaU2dwTzF4dVhHNGdJQ0FnYVdZZ0tIUm9hWE11WDJSaGRHRk1ZWGxsY25OVGRXSXBJSHRjYmlBZ0lDQWdJSFJvYVhNdVgyUmhkR0ZNWVhsbGNuTlRkV0l1ZFc1emRXSnpZM0pwWW1Vb0tUdGNiaUFnSUNBZ0lIUm9hWE11WDJSaGRHRk1ZWGxsY25OVGRXSWdQU0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNCa1lYUmhPaUI3SUM0dUxuUm9hWE11YzNSaGRHVXVaR0YwWVNFc0lITjBZWFJsT2lCTWIyRmthVzVuVTNSaGRHVXVSRzl1WlNCOUxGeHVJQ0FnSUgwcE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmhjM2x1WXlCeWRXNVhhWFJvVkdsdFpWSmhibWRsS0hScGJXVlNZVzVuWlRvZ1UyTmxibVZVYVcxbFVtRnVaMlZNYVd0bEtTQjdYRzRnSUNBZ0x5OGdTV1lnYm04Z2JXRjRSR0YwWVZCdmFXNTBjeUJ6Y0dWamFXWnBaV1FnZDJVZ2JXbG5hSFFnYm1WbFpDQjBieUIzWVdsMElHWnZjaUJqYjI1MFlXbHVaWElnZDJsa2RHZ2dkRzhnWW1VZ2MyVjBJR1p5YjIwZ2RHaGxJRzkxZEhOcFpHVmNiaUFnSUNCcFppQW9JWFJvYVhNdWMzUmhkR1V1YldGNFJHRjBZVkJ2YVc1MGN5QW1KaUIwYUdsekxuTjBZWFJsTG0xaGVFUmhkR0ZRYjJsdWRITkdjbTl0VjJsa2RHZ2dKaVlnSVhSb2FYTXVYMk52Ym5SaGFXNWxjbGRwWkhSb0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1NXWWdaR0YwWVNCc1lYbGxjbk1nYzNWaWMyTnlhWEIwYVc5dUlHUnZaWE51SjNRZ1pYaHBjM1FzSUdOeVpXRjBaU0J2Ym1WY2JpQWdJQ0JwWmlBb0lYUm9hWE11WDJSaGRHRk1ZWGxsY25OVGRXSXBJSHRjYmlBZ0lDQWdJSFJvYVhNdVgyaGhibVJzWlVSaGRHRk1ZWGxsY25Nb0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdkx5QkRZVzVqWld3Z1lXNTVJSEoxYm01cGJtY2djWFZsY21sbGMxeHVJQ0FnSUhSb2FYTXVYM0YxWlhKNVUzVmlQeTUxYm5OMVluTmpjbWxpWlNncE8xeHVYRzRnSUNBZ0x5OGdVMnRwY0NCbGVHVmpkWFJwYm1jZ2NYVmxjbWxsY3lCcFppQjJZWEpwWVdKc1pTQmtaWEJsYm1SbGJtTjVJR2x6SUdsdUlHeHZZV1JwYm1jZ2MzUmhkR1ZjYmlBZ0lDQnBaaUFvZEdocGN5NWZkbUZ5YVdGaWJHVkVaWEJsYm1SbGJtTjVMbWhoYzBSbGNHVnVaR1Z1WTNsSmJreHZZV1JwYm1kVGRHRjBaU2dwS1NCN1hHNGdJQ0FnSUNCM2NtbDBaVk5qWlc1bFRHOW5LQ2RUWTJWdVpWRjFaWEo1VW5WdWJtVnlKeXdnSjFaaGNtbGhZbXhsSUdSbGNHVnVaR1Z1WTNrZ2FYTWdhVzRnYkc5aFpHbHVaeUJ6ZEdGMFpTd2djMnRwY0hCcGJtY2djWFZsY25rZ1pYaGxZM1YwYVc5dUp5azdYRzRnSUNBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0hzZ1pHRjBZVG9nZXlBdUxpNG9kR2hwY3k1emRHRjBaUzVrWVhSaElEOC9JR1Z0Y0hSNVVHRnVaV3hFWVhSaEtTd2djM1JoZEdVNklFeHZZV1JwYm1kVGRHRjBaUzVNYjJGa2FXNW5JSDBnZlNrN1hHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2V5QnhkV1Z5YVdWeklIMGdQU0IwYUdsekxuTjBZWFJsTzF4dVhHNGdJQ0FnTHk4Z1UybHRjR3hsSUhCaGRHZ2dkMmhsYmlCdWJ5QnhkV1Z5YVdWeklHVjRhWE4wWEc0Z0lDQWdhV1lnS0NGeGRXVnlhV1Z6UHk1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVYM05sZEU1dlJHRjBZVk4wWVhSbEtDazdYRzRnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lHTnZibk4wSUdSaGRHRnpiM1Z5WTJVZ1BTQjBhR2x6TG5OMFlYUmxMbVJoZEdGemIzVnlZMlVnUHo4Z1ptbHVaRVpwY25OMFJHRjBZWE52ZFhKalpTaHhkV1Z5YVdWektUdGNiaUFnSUNBZ0lHTnZibk4wSUdSeklEMGdZWGRoYVhRZ1oyVjBSR0YwWVZOdmRYSmpaU2hrWVhSaGMyOTFjbU5sTENCMGFHbHpMbDl6WTI5d1pXUldZWEp6S1R0Y2JseHVJQ0FnSUNBZ2RHaHBjeTVtYVc1a1FXNWtVM1ZpYzJOeWFXSmxWRzlCWkVodlkwWnBiSFJsY25Nb1pHRjBZWE52ZFhKalpUOHVkV2xrS1R0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnY25WdVVtVnhkV1Z6ZENBOUlHZGxkRkoxYmxKbGNYVmxjM1FvS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJSHNnY0hKcGJXRnllU3dnYzJWamIyNWtZWEpwWlhNc0lIQnliMk5sYzNOdmNuTWdmU0E5SUhSb2FYTXVjSEpsY0dGeVpWSmxjWFZsYzNSektIUnBiV1ZTWVc1blpTd2daSE1wTzF4dVhHNGdJQ0FnSUNCM2NtbDBaVk5qWlc1bFRHOW5LQ2RUWTJWdVpWRjFaWEo1VW5WdWJtVnlKeXdnSjFOMFlYSjBhVzVuSUhKMWJsSmxjWFZsYzNRbkxDQjBhR2x6TG5OMFlYUmxMbXRsZVNrN1hHNWNiaUFnSUNBZ0lHeGxkQ0J6ZEhKbFlXMGdQU0J5ZFc1U1pYRjFaWE4wS0dSekxDQndjbWx0WVhKNUtUdGNibHh1SUNBZ0lDQWdhV1lnS0hObFkyOXVaR0Z5YVdWekxteGxibWQwYUNBK0lEQXBJSHRjYmlBZ0lDQWdJQ0FnTHk4Z1UzVmliV2wwSUdGc2JDQnpaV052Ym1SaGNua2djbVZ4ZFdWemRITWdhVzRnY0dGeVlXeHNaV3d1WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE5sWTI5dVpHRnllVk4wY21WaGJYTWdQU0J6WldOdmJtUmhjbWxsY3k1dFlYQW9LSElwSUQwK0lISjFibEpsY1hWbGMzUW9aSE1zSUhJcEtUdGNiaUFnSUNBZ0lDQWdMeThnUTNKbFlYUmxJSFJvWlNCeWVHcHpJRzl3WlhKaGRHOXlJSGRvYVdOb0lIZHBiR3dnWTI5dFltbHVaU0IwYUdVZ2NISnBiV0Z5ZVNCaGJtUWdjMlZqYjI1a1lYSjVJSEpsYzNCdmJuTmxjMXh1SUNBZ0lDQWdJQ0F2THlCaWVTQmpZV3hzYVc1bklIUm9aU0JqYjNKeVpXTjBJSEJ5YjJObGMzTnZjaUJtZFc1amRHbHZibk1nY0hKdmRtbGtaV1FnWW5rZ2RHaGxYRzRnSUNBZ0lDQWdJQzh2SUdWNGRISmhJSEpsY1hWbGMzUWdjSEp2ZG1sa1pYSnpMbHh1SUNBZ0lDQWdJQ0JqYjI1emRDQnZjQ0E5SUdWNGRISmhVWFZsY25sUWNtOWpaWE56YVc1blQzQmxjbUYwYjNJb2NISnZZMlZ6YzI5eWN5azdYRzRnSUNBZ0lDQWdJQzh2SUVOdmJXSnBibVVnZEdobElIQnlhVzFoY25rZ1lXNWtJSE5sWTI5dVpHRnllU0J6ZEhKbFlXMXpJR2x1ZEc4Z1lTQnphVzVuYkdVZ2MzUnlaV0Z0TENCaGJtUWdZWEJ3YkhrZ2RHaGxJRzl3WlhKaGRHOXlMbHh1SUNBZ0lDQWdJQ0J6ZEhKbFlXMGdQU0JtYjNKclNtOXBiaWhiYzNSeVpXRnRMQ0F1TGk1elpXTnZibVJoY25sVGRISmxZVzF6WFNrdWNHbHdaU2h2Y0NrN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lITjBjbVZoYlNBOUlITjBjbVZoYlM1d2FYQmxLRnh1SUNBZ0lDQWdJQ0J5WldkcGMzUmxjbEYxWlhKNVYybDBhRU52Ym5SeWIyeHNaWElvZTF4dUlDQWdJQ0FnSUNBZ0lIUjVjR1U2SUNka1lYUmhKeXhjYmlBZ0lDQWdJQ0FnSUNCeVpYRjFaWE4wT2lCd2NtbHRZWEo1TEZ4dUlDQWdJQ0FnSUNBZ0lHOXlhV2RwYmpvZ2RHaHBjeXhjYmlBZ0lDQWdJQ0FnSUNCallXNWpaV3c2SUNncElEMCtJSFJvYVhNdVkyRnVZMlZzVVhWbGNua29LU3hjYmlBZ0lDQWdJQ0FnZlNsY2JpQWdJQ0FnSUNrN1hHNWNiaUFnSUNBZ0lIUm9hWE11WDNGMVpYSjVVM1ZpSUQwZ2MzUnlaV0Z0TG5OMVluTmpjbWxpWlNoMGFHbHpMbTl1UkdGMFlWSmxZMlZwZG1Wa0tUdGNiaUFnSUNCOUlHTmhkR05vSUNobGNuSXBJSHRjYmlBZ0lDQWdJR052Ym5OdmJHVXVaWEp5YjNJb0oxQmhibVZzVVhWbGNubFNkVzV1WlhJZ1JYSnliM0luTENCbGNuSXBPMXh1WEc0Z0lDQWdJQ0IwYUdsekxtOXVSR0YwWVZKbFkyVnBkbVZrS0h0Y2JpQWdJQ0FnSUNBZ0xpNHVaVzF3ZEhsUVlXNWxiRVJoZEdFc1hHNGdJQ0FnSUNBZ0lDNHVMblJvYVhNdWMzUmhkR1V1WkdGMFlTeGNiaUFnSUNBZ0lDQWdjM1JoZEdVNklFeHZZV1JwYm1kVGRHRjBaUzVGY25KdmNpeGNiaUFnSUNBZ0lDQWdaWEp5YjNKek9pQmJkRzlFWVhSaFVYVmxjbmxGY25KdmNpaGxjbklwWFN4Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCamJHOXVaU2gzYVhSb1UzUmhkR1UvT2lCUVlYSjBhV0ZzUEZGMVpYSjVVblZ1Ym1WeVUzUmhkR1UrS1NCN1hHNGdJQ0FnWTI5dWMzUWdZMnh2Ym1VZ1BTQnpkWEJsY2k1amJHOXVaU2gzYVhSb1UzUmhkR1VwTzF4dVhHNGdJQ0FnYVdZZ0tIUm9hWE11WDNKbGMzVnNkRUZ1Ym05MFlYUnBiMjV6S1NCN1hHNGdJQ0FnSUNCamJHOXVaVnNuWDNKbGMzVnNkRUZ1Ym05MFlYUnBiMjV6SjEwZ1BTQjBhR2x6TGw5eVpYTjFiSFJCYm01dmRHRjBhVzl1Y3k1dFlYQW9LR1p5WVcxbEtTQTlQaUFvZXlBdUxpNW1jbUZ0WlNCOUtTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLSFJvYVhNdVgyeGhlV1Z5UVc1dWIzUmhkR2x2Ym5NcElIdGNiaUFnSUNBZ0lHTnNiMjVsV3lkZmJHRjVaWEpCYm01dmRHRjBhVzl1Y3lkZElEMGdkR2hwY3k1ZmJHRjVaWEpCYm01dmRHRjBhVzl1Y3k1dFlYQW9LR1p5WVcxbEtTQTlQaUFvZXlBdUxpNW1jbUZ0WlNCOUtTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyeHZibVZiSjE5MllYSnBZV0pzWlZaaGJIVmxVbVZqYjNKa1pYSW5YU0E5SUhSb2FYTXVYM1poY21saFlteGxWbUZzZFdWU1pXTnZjbVJsY2k1amJHOXVaVUZ1WkZKbFkyOXlaRU4xY25KbGJuUldZV3gxWlhOR2IzSlRZMlZ1WlU5aWFtVmpkQ2gwYUdsektUdGNiaUFnSUNCamJHOXVaVnNuWDJOdmJuUmhhVzVsY2xkcFpIUm9KMTBnUFNCMGFHbHpMbDlqYjI1MFlXbHVaWEpYYVdSMGFEdGNiaUFnSUNCamJHOXVaVnNuWDNKbGMzVnNkSE1uWFM1dVpYaDBLSHNnYjNKcFoybHVPaUIwYUdsekxDQmtZWFJoT2lCMGFHbHpMbk4wWVhSbExtUmhkR0VnUHo4Z1pXMXdkSGxRWVc1bGJFUmhkR0VnZlNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnWTJ4dmJtVTdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJSEJ5WlhCaGNtVlNaWEYxWlhOMGN5aDBhVzFsVW1GdVoyVTZJRk5qWlc1bFZHbHRaVkpoYm1kbFRHbHJaU3dnWkhNNklFUmhkR0ZUYjNWeVkyVkJjR2twT2lCUWNtVndZWEpsWkZKbGNYVmxjM1J6SUh0Y2JpQWdJQ0JqYjI1emRDQjdJRzFwYmtsdWRHVnlkbUZzTENCeGRXVnlhV1Z6SUgwZ1BTQjBhR2x6TG5OMFlYUmxPMXh1WEc0Z0lDQWdiR1YwSUhKbGNYVmxjM1E2SUVSaGRHRlJkV1Z5ZVZKbGNYVmxjM1E4UkdGMFlWRjFaWEo1UlhoMFpXNWtaV1ErSUQwZ2UxeHVJQ0FnSUNBZ1lYQndPaUFuYzJObGJtVnpKeXhjYmlBZ0lDQWdJSEpsY1hWbGMzUkpaRG9nWjJWMFRtVjRkRkpsY1hWbGMzUkpaQ2dwTEZ4dUlDQWdJQ0FnZEdsdFpYcHZibVU2SUhScGJXVlNZVzVuWlM1blpYUlVhVzFsV205dVpTZ3BMRnh1SUNBZ0lDQWdjbUZ1WjJVNklIUnBiV1ZTWVc1blpTNXpkR0YwWlM1MllXeDFaU3hjYmlBZ0lDQWdJR2x1ZEdWeWRtRnNPaUFuTVhNbkxGeHVJQ0FnSUNBZ2FXNTBaWEoyWVd4TmN6b2dNVEF3TUN4Y2JpQWdJQ0FnSUhSaGNtZGxkSE02SUdOc2IyNWxSR1ZsY0NoeGRXVnlhV1Z6S1N4Y2JpQWdJQ0FnSUcxaGVFUmhkR0ZRYjJsdWRITTZJSFJvYVhNdVoyVjBUV0Y0UkdGMFlWQnZhVzUwY3lncExGeHVJQ0FnSUNBZ2MyTnZjR1ZrVm1GeWN6b2dkR2hwY3k1ZmMyTnZjR1ZrVm1GeWN5eGNiaUFnSUNBZ0lITjBZWEowVkdsdFpUb2dSR0YwWlM1dWIzY29LU3hjYmlBZ0lDQWdJR3hwZG1WVGRISmxZVzFwYm1jNklIUm9hWE11YzNSaGRHVXViR2wyWlZOMGNtVmhiV2x1Wnl4Y2JpQWdJQ0FnSUhKaGJtZGxVbUYzT2lCN1hHNGdJQ0FnSUNBZ0lHWnliMjA2SUhScGJXVlNZVzVuWlM1emRHRjBaUzVtY205dExGeHVJQ0FnSUNBZ0lDQjBiem9nZEdsdFpWSmhibWRsTG5OMFlYUmxMblJ2TEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUdOaFkyaGxWR2x0Wlc5MWREb2dkR2hwY3k1emRHRjBaUzVqWVdOb1pWUnBiV1Z2ZFhRc1hHNGdJQ0FnSUNCeGRXVnllVU5oWTJocGJtZFVWRXc2SUhSb2FYTXVjM1JoZEdVdWNYVmxjbmxEWVdOb2FXNW5WRlJNTEZ4dUlDQWdJQ0FnTHk4Z1ZHaHBjeUJoYzJ0eklIUm9aU0J6WTJWdVpTQnliMjkwSUhSdklIQnliM1pwWkdVZ1kyOXVkR1Y0ZENCd2NtOXdaWEowYVdWeklHeHBhMlVnWVhCd0xDQndZVzVsYkNCaGJtUWdaR0Z6YUdKdllYSmtWVWxFWEc0Z0lDQWdJQ0F1TGk1blpYUkZibkpwWTJobFpFUmhkR0ZTWlhGMVpYTjBLSFJvYVhNcExGeHVJQ0FnSUgwN1hHNWNiaUFnSUNCcFppQW9kR2hwY3k1ZllXUm9iMk5HYVd4MFpYSnpWbUZ5S1NCN1hHNGdJQ0FnSUNBdkx5QnZibXg1SUhCaGMzTWdabWxzZEdWeWN5QjBhR0YwSUdoaGRtVWdZbTkwYUNCclpYa2dZVzVrSUhaaGJIVmxYRzRnSUNBZ0lDQXZMeUJBZEhNdGFXZHViM0psSUNoVVpXMXdiM0poY25rZ2FXZHViM0psSUhWdWRHbHNJSGRsSUhWd1pHRjBaU0JBWjNKaFptRnVZUzlrWVhSaEtWeHVJQ0FnSUNBZ2NtVnhkV1Z6ZEM1bWFXeDBaWEp6SUQwZ2RHaHBjeTVmWVdSb2IyTkdhV3gwWlhKelZtRnlMbk4wWVhSbExtWnBiSFJsY25NdVptbHNkR1Z5S0dselJtbHNkR1Z5UTI5dGNHeGxkR1VwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoMGFHbHpMbDluY205MWNFSjVWbUZ5S1NCN1hHNGdJQ0FnSUNBdkx5QkFkSE10YVdkdWIzSmxJQ2hVWlcxd2IzSmhjbmtnYVdkdWIzSmxJSFZ1ZEdsc0lIZGxJSFZ3WkdGMFpTQkFaM0poWm1GdVlTOWtZWFJoS1Z4dUlDQWdJQ0FnY21WeGRXVnpkQzVuY205MWNFSjVTMlY1Y3lBOUlIUm9hWE11WDJkeWIzVndRbmxXWVhJdWMzUmhkR1V1ZG1Gc2RXVTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVnhkV1Z6ZEM1MFlYSm5aWFJ6SUQwZ2NtVnhkV1Z6ZEM1MFlYSm5aWFJ6TG0xaGNDZ29jWFZsY25rcElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNoY2JpQWdJQ0FnSUNBZ0lYRjFaWEo1TG1SaGRHRnpiM1Z5WTJVZ2ZIeGNiaUFnSUNBZ0lDQWdLSEYxWlhKNUxtUmhkR0Z6YjNWeVkyVXVkV2xrSUNFOVBTQmtjeTUxYVdRZ0ppWmNiaUFnSUNBZ0lDQWdJQ0FoWkhNdWJXVjBZVDh1YldsNFpXUWdKaVpjYmlBZ0lDQWdJQ0FnSUNCcGMwVjRjSEpsYzNOcGIyNVNaV1psY21WdVkyVWdMeW9nVkU5RVR6b2dVbVZ0YjNabElIUm9hWE1nWTJobFkyc2dkMmhsYmlCcGMwVjRjSEpsYzNOcGIyNVNaV1psY21WdVkyVWdhWE1nY0hKdmNHVnliSGtnWlhod2IzSjBaV1FnWm5KdmJTQm5jbUZtWVc0Z2NuVnVkR2x0WlNBcUx5QW1KbHh1SUNBZ0lDQWdJQ0FnSUNGcGMwVjRjSEpsYzNOcGIyNVNaV1psY21WdVkyVW9jWFZsY25rdVpHRjBZWE52ZFhKalpTa3BYRzRnSUNBZ0lDQXBJSHRjYmlBZ0lDQWdJQ0FnY1hWbGNua3VaR0YwWVhOdmRYSmpaU0E5SUdSekxtZGxkRkpsWmlncE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUhGMVpYSjVPMXh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdZMjl1YzNRZ2JHOTNaWEpKYm5SbGNuWmhiRXhwYldsMElEMGdiV2x1U1c1MFpYSjJZV3dnUHlCcGJuUmxjbkJ2YkdGMFpTaDBhR2x6TENCdGFXNUpiblJsY25aaGJDa2dPaUJrY3k1cGJuUmxjblpoYkR0Y2JpQWdJQ0JqYjI1emRDQnViM0p0SUQwZ2NtRnVaMlZWZEdsc0xtTmhiR04xYkdGMFpVbHVkR1Z5ZG1Gc0tIUnBiV1ZTWVc1blpTNXpkR0YwWlM1MllXeDFaU3dnY21WeGRXVnpkQzV0WVhoRVlYUmhVRzlwYm5SeklTd2diRzkzWlhKSmJuUmxjblpoYkV4cGJXbDBLVHRjYmx4dUlDQWdJQzh2SUcxaGEyVWdjMmhoYkd4dmR5QmpiM0I1SUc5bUlITmpiM0JsWkNCMllYSnpMRnh1SUNBZ0lDOHZJR0Z1WkNCaFpHUWdZblZwYkhRZ2FXNGdkbUZ5YVdGaWJHVnpJR2x1ZEdWeWRtRnNJR0Z1WkNCcGJuUmxjblpoYkY5dGMxeHVJQ0FnSUhKbGNYVmxjM1F1YzJOdmNHVmtWbUZ5Y3lBOUlFOWlhbVZqZEM1aGMzTnBaMjRvZTMwc0lISmxjWFZsYzNRdWMyTnZjR1ZrVm1GeWN5d2dlMXh1SUNBZ0lDQWdYMTlwYm5SbGNuWmhiRG9nZXlCMFpYaDBPaUJ1YjNKdExtbHVkR1Z5ZG1Gc0xDQjJZV3gxWlRvZ2JtOXliUzVwYm5SbGNuWmhiQ0I5TEZ4dUlDQWdJQ0FnWDE5cGJuUmxjblpoYkY5dGN6b2dleUIwWlhoME9pQnViM0p0TG1sdWRHVnlkbUZzVFhNdWRHOVRkSEpwYm1jb0tTd2dkbUZzZFdVNklHNXZjbTB1YVc1MFpYSjJZV3hOY3lCOUxGeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ2NtVnhkV1Z6ZEM1cGJuUmxjblpoYkNBOUlHNXZjbTB1YVc1MFpYSjJZV3c3WEc0Z0lDQWdjbVZ4ZFdWemRDNXBiblJsY25aaGJFMXpJRDBnYm05eWJTNXBiblJsY25aaGJFMXpPMXh1WEc0Z0lDQWdMeThnU1dZZ2RHaGxjbVVnWVhKbElHRnVlU0JsZUhSeVlTQnlaWEYxWlhOMElIQnliM1pwWkdWeWN5d2dkMlVnYm1WbFpDQjBieUJoWkdRZ1lTQnVaWGNnY21WeGRXVnpkQ0JtYjNJZ1pXRmphRnh1SUNBZ0lDOHZJR0Z1WkNCdFlYQWdkR2hsSUhKbGNYVmxjM1FuY3lCSlJDQjBieUIwYUdVZ2NISnZZMlZ6YzI5eUlHWjFibU4wYVc5dUlHZHBkbVZ1SUdKNUlIUm9aU0J3Y205MmFXUmxjaXdnZEc4Z1pXNXpkWEpsSUhSb1lYUmNiaUFnSUNBdkx5QjBhR1VnY0hKdlkyVnpjMjl5SUdseklHTmhiR3hsWkNCM2FYUm9JSFJvWlNCamIzSnlaV04wSUhKbGMzQnZibk5sSUdSaGRHRXVYRzRnSUNBZ1kyOXVjM1FnY0hKcGJXRnllVlJwYldWU1lXNW5aU0E5SUhScGJXVlNZVzVuWlM1emRHRjBaUzUyWVd4MVpUdGNiaUFnSUNCc1pYUWdjMlZqYjI1a1lYSjVVbVZ4ZFdWemRITTZJRVJoZEdGUmRXVnllVkpsY1hWbGMzUmJYU0E5SUZ0ZE8xeHVJQ0FnSUd4bGRDQnpaV052Ym1SaGNubFFjbTlqWlhOemIzSnpJRDBnYm1WM0lFMWhjQ2dwTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnY0hKdmRtbGtaWElnYjJZZ2RHaHBjeTVuWlhSRGJHOXpaWE4wUlhoMGNtRlJkV1Z5ZVZCeWIzWnBaR1Z5Y3lncElEOC9JRnRkS1NCN1hHNGdJQ0FnSUNCbWIzSWdLR052Ym5OMElIc2djbVZ4TENCd2NtOWpaWE56YjNJZ2ZTQnZaaUJ3Y205MmFXUmxjaTVuWlhSRmVIUnlZVkYxWlhKcFpYTW9jbVZ4ZFdWemRDa3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjbVZ4ZFdWemRFbGtJRDBnWjJWMFRtVjRkRkpsY1hWbGMzUkpaQ2dwTzF4dUlDQWdJQ0FnSUNCelpXTnZibVJoY25sU1pYRjFaWE4wY3k1d2RYTm9LSHNnTGk0dWNtVnhMQ0J5WlhGMVpYTjBTV1FnZlNrN1hHNGdJQ0FnSUNBZ0lITmxZMjl1WkdGeWVWQnliMk5sYzNOdmNuTXVjMlYwS0hKbGNYVmxjM1JKWkN3Z2NISnZZMlZ6YzI5eUlEOC9JSEJoYzNOMGFISnZkV2RvVUhKdlkyVnpjMjl5S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdjbVZ4ZFdWemRDNXlZVzVuWlNBOUlIQnlhVzFoY25sVWFXMWxVbUZ1WjJVN1hHNGdJQ0FnY21WMGRYSnVJSHNnY0hKcGJXRnllVG9nY21WeGRXVnpkQ3dnYzJWamIyNWtZWEpwWlhNNklITmxZMjl1WkdGeWVWSmxjWFZsYzNSekxDQndjbTlqWlhOemIzSnpPaUJ6WldOdmJtUmhjbmxRY205alpYTnpiM0p6SUgwN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHOXVSR0YwWVZKbFkyVnBkbVZrSUQwZ0tHUmhkR0U2SUZCaGJtVnNSR0YwWVNrZ1BUNGdlMXh1SUNBZ0lDOHZJRmRwYkd3Z1kyOXRZbWx1WlNCaGJtNXZkR0YwYVc5dWN5Qm1jbTl0SUZOUlVpQnhkV1Z5YVdWeklDaG1jbUZ0WlhNZ2QybDBhQ0J0WlhSaExtUmhkR0ZVYjNCcFl5QTlQVDBnUkdGMFlWUnZjR2xqTGtGdWJtOTBZWFJwYjI1ektWeHVJQ0FnSUdOdmJuTjBJSEJ5WlZCeWIyTmxjM05sWkVSaGRHRWdQU0J3Y21WUWNtOWpaWE56VUdGdVpXeEVZWFJoS0dSaGRHRXNJSFJvYVhNdWMzUmhkR1V1WkdGMFlTazdYRzVjYmlBZ0lDQXZMeUJUWVhabElIRjFaWEo1SUdGdWJtOTBZWFJwYjI1elhHNGdJQ0FnZEdocGN5NWZjbVZ6ZFd4MFFXNXViM1JoZEdsdmJuTWdQU0JrWVhSaExtRnVibTkwWVhScGIyNXpPMXh1WEc0Z0lDQWdMeThnVjJsc2JDQmpiMjFpYVc1bElHRnVibTkwWVhScGIyNXpJQ1lnWVd4bGNuUWdjM1JoZEdVZ1puSnZiU0JrWVhSaElHeGhlV1Z5SUhCeWIzWnBaR1Z5YzF4dUlDQWdJR052Ym5OMElHUmhkR0ZYYVhSb1RHRjVaWEp6UVhCd2JHbGxaQ0E5SUhSb2FYTXVYMk52YldKcGJtVkVZWFJoVEdGNVpYSnpLSEJ5WlZCeWIyTmxjM05sWkVSaGRHRXBPMXh1WEc0Z0lDQWdiR1YwSUdoaGMwWmxkR05vWldSRVlYUmhJRDBnZEdocGN5NXpkR0YwWlM1ZmFHRnpSbVYwWTJobFpFUmhkR0U3WEc1Y2JpQWdJQ0JwWmlBb0lXaGhjMFpsZEdOb1pXUkVZWFJoSUNZbUlIQnlaVkJ5YjJObGMzTmxaRVJoZEdFdWMzUmhkR1VnSVQwOUlFeHZZV1JwYm1kVGRHRjBaUzVNYjJGa2FXNW5LU0I3WEc0Z0lDQWdJQ0JvWVhOR1pYUmphR1ZrUkdGMFlTQTlJSFJ5ZFdVN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdJR1JoZEdFNklHUmhkR0ZYYVhSb1RHRjVaWEp6UVhCd2JHbGxaQ3dnWDJoaGMwWmxkR05vWldSRVlYUmhPaUJvWVhOR1pYUmphR1ZrUkdGMFlTQjlLVHRjYmlBZ0lDQjBhR2x6TGw5eVpYTjFiSFJ6TG01bGVIUW9leUJ2Y21sbmFXNDZJSFJvYVhNc0lHUmhkR0U2SUdSaGRHRlhhWFJvVEdGNVpYSnpRWEJ3YkdsbFpDQjlLVHRjYmlBZ2ZUdGNibHh1SUNCd2NtbDJZWFJsSUY5amIyMWlhVzVsUkdGMFlVeGhlV1Z5Y3loa1lYUmhPaUJRWVc1bGJFUmhkR0VwSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTVmYkdGNVpYSkJibTV2ZEdGMGFXOXVjeUFtSmlCMGFHbHpMbDlzWVhsbGNrRnVibTkwWVhScGIyNXpMbXhsYm1kMGFDQStJREFwSUh0Y2JpQWdJQ0FnSUdSaGRHRXVZVzV1YjNSaGRHbHZibk1nUFNBb1pHRjBZUzVoYm01dmRHRjBhVzl1Y3lCOGZDQmJYU2t1WTI5dVkyRjBLSFJvYVhNdVgyeGhlV1Z5UVc1dWIzUmhkR2x2Ym5NcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaDBhR2x6TG5OMFlYUmxMbVJoZEdFZ0ppWWdkR2hwY3k1emRHRjBaUzVrWVhSaExtRnNaWEowVTNSaGRHVXBJSHRjYmlBZ0lDQWdJR1JoZEdFdVlXeGxjblJUZEdGMFpTQTlJSFJvYVhNdWMzUmhkR1V1WkdGMFlTNWhiR1Z5ZEZOMFlYUmxPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCa1lYUmhPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JmYzJWMFRtOUVZWFJoVTNSaGRHVW9LU0I3WEc0Z0lDQWdhV1lnS0hSb2FYTXVjM1JoZEdVdVpHRjBZU0FoUFQwZ1pXMXdkSGxRWVc1bGJFUmhkR0VwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9leUJrWVhSaE9pQmxiWEIwZVZCaGJtVnNSR0YwWVNCOUtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dWMkZzYXlCMWNDQjBhR1VnYzJObGJtVWdaM0poY0dnZ1lXNWtJR1pwYm1RZ1lXNTVJRVY0ZEhKaFVYVmxjbmxRY205MmFXUmxjbk11WEc0Z0lDQXFYRzRnSUNBcUlGUm9hWE1nZDJsc2JDQnlaWFIxY200Z1lXNGdZWEp5WVhrZ2IyWWdkR2hsSUdOc2IzTmxjM1FnY0hKdmRtbGtaWElnYjJZZ1pXRmphQ0IwZVhCbExseHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQm5aWFJEYkc5elpYTjBSWGgwY21GUmRXVnllVkJ5YjNacFpHVnljeWdwT2lCQmNuSmhlVHhGZUhSeVlWRjFaWEo1VUhKdmRtbGtaWEk4WVc1NVBqNGdlMXh1SUNBZ0lDOHZJRTFoYVc1MFlXbHVJR0VnYldGd0lHWnliMjBnY0hKdmRtbGtaWElnWTI5dWMzUnlkV04wYjNJZ2RHOGdjSEp2ZG1sa1pYSWdiMkpxWldOMExpQlVhR1VnWTI5dWMzUnlkV04wYjNKY2JpQWdJQ0F2THlCcGN5QjFjMlZrSUdGeklHRWdkVzVwY1hWbElHdGxlU0JtYjNJZ1pXRmphQ0JqYkdGemN5d2dkRzhnWlc1emRYSmxJSGRsSUdoaGRtVWdibThnYlc5eVpTQjBhR0Z1SUc5dVpWeHVJQ0FnSUM4dklIUjVjR1VnYjJZZ1pXRmphQ0IwZVhCbElHOW1JSEJ5YjNacFpHVnlMbHh1SUNBZ0lHTnZibk4wSUdadmRXNWtJRDBnYm1WM0lFMWhjQ2dwTzF4dUlDQWdJR2xtSUNnaGRHaHBjeTV3WVhKbGJuUXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmJYVHRjYmlBZ0lDQjlYRzRnSUNBZ1oyVjBRMnh2YzJWemRDaDBhR2x6TG5CaGNtVnVkQ3dnS0hNcElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNocGMwVjRkSEpoVVhWbGNubFFjbTkyYVdSbGNpaHpLU0FtSmlBaFptOTFibVF1YUdGektITXVZMjl1YzNSeWRXTjBiM0lwS1NCN1hHNGdJQ0FnSUNBZ0lHWnZkVzVrTG5ObGRDaHpMbU52Ym5OMGNuVmpkRzl5TENCektUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lITXVabTl5UldGamFFTm9hV3hrS0NoamFHbHNaQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYVhORmVIUnlZVkYxWlhKNVVISnZkbWxrWlhJb1kyaHBiR1FwSUNZbUlDRm1iM1Z1WkM1b1lYTW9ZMmhwYkdRdVkyOXVjM1J5ZFdOMGIzSXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1ptOTFibVF1YzJWMEtHTm9hV3hrTG1OdmJuTjBjblZqZEc5eUxDQmphR2xzWkNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdMeThnUVd4M1lYbHpJSEpsZEhWeWJpQnVkV3hzSUhOdklIUm9ZWFFnZEdobElITmxZWEpqYUNCamIyNTBhVzUxWlhNZ2RHOGdkR2hsSUhSdmNDQnZabHh1SUNBZ0lDQWdMeThnZEdobElITmpaVzVsSUdkeVlYQm9MbHh1SUNBZ0lDQWdjbVYwZFhKdUlHNTFiR3c3WEc0Z0lDQWdmU2s3WEc0Z0lDQWdjbVYwZFhKdUlFRnljbUY1TG1aeWIyMG9abTkxYm1RdWRtRnNkV1Z6S0NrcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRmRoYkdzZ2RYQWdjMk5sYm1VZ1ozSmhjR2dnWVc1a0lHWnBibVFnZEdobElHTnNiM05sYzNRZ1ptbHNkR1Z5YzJWMElIZHBkR2dnYldGMFkyaHBibWNnWkdGMFlTQnpiM1Z5WTJWY2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1ptbHVaRUZ1WkZOMVluTmpjbWxpWlZSdlFXUkliMk5HYVd4MFpYSnpLSFZwWkRvZ2MzUnlhVzVuSUh3Z2RXNWtaV1pwYm1Wa0tTQjdYRzRnSUNBZ1kyOXVjM1FnWm1sc2RHVnljMVpoY2lBOUlHWnBibVJCWTNScGRtVkJaRWh2WTBacGJIUmxjbFpoY21saFlteGxRbmxWYVdRb2RXbGtLVHRjYmx4dUlDQWdJR2xtSUNoMGFHbHpMbDloWkdodlkwWnBiSFJsY25OV1lYSWdJVDA5SUdacGJIUmxjbk5XWVhJcElIdGNiaUFnSUNBZ0lIUm9hWE11WDJGa2FHOWpSbWxzZEdWeWMxWmhjaUE5SUdacGJIUmxjbk5XWVhJN1hHNGdJQ0FnSUNCMGFHbHpMbDkxY0dSaGRHVkZlSEJzYVdOcGRGWmhjbWxoWW14bFJHVndaVzVrWlc1amFXVnpLQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ1ozSnZkWEJDZVZaaGNpQTlJR1pwYm1SQlkzUnBkbVZIY205MWNFSjVWbUZ5YVdGaWJHVnpRbmxWYVdRb2RXbGtLVHRjYmlBZ0lDQnBaaUFvZEdocGN5NWZaM0p2ZFhCQ2VWWmhjaUFoUFQwZ1ozSnZkWEJDZVZaaGNpa2dlMXh1SUNBZ0lDQWdkR2hwY3k1ZlozSnZkWEJDZVZaaGNpQTlJR2R5YjNWd1FubFdZWEk3WEc0Z0lDQWdJQ0IwYUdsekxsOTFjR1JoZEdWRmVIQnNhV05wZEZaaGNtbGhZbXhsUkdWd1pXNWtaVzVqYVdWektDazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmZkWEJrWVhSbFJYaHdiR2xqYVhSV1lYSnBZV0pzWlVSbGNHVnVaR1Z1WTJsbGN5Z3BJSHRjYmlBZ0lDQmpiMjV6ZENCbGVIQnNhV05wZEVSbGNHVnVaR1Z1WTJsbGN6b2djM1J5YVc1blcxMGdQU0JiWFR0Y2JseHVJQ0FnSUdsbUlDaDBhR2x6TGw5aFpHaHZZMFpwYkhSbGNuTldZWElwSUh0Y2JpQWdJQ0FnSUdWNGNHeHBZMmwwUkdWd1pXNWtaVzVqYVdWekxuQjFjMmdvZEdocGN5NWZZV1JvYjJOR2FXeDBaWEp6Vm1GeUxuTjBZWFJsTG01aGJXVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2gwYUdsekxsOW5jbTkxY0VKNVZtRnlLU0I3WEc0Z0lDQWdJQ0JsZUhCc2FXTnBkRVJsY0dWdVpHVnVZMmxsY3k1d2RYTm9LSFJvYVhNdVgyZHliM1Z3UW5sV1lYSXVjM1JoZEdVdWJtRnRaU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkR2hwY3k1ZmRtRnlhV0ZpYkdWRVpYQmxibVJsYm1ONUxuTmxkRlpoY21saFlteGxUbUZ0WlhNb1pYaHdiR2xqYVhSRVpYQmxibVJsYm1OcFpYTXBPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JwYzFGMVpYSjVUVzlrWlVGMWRHOG9LVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdjbVYwZFhKdUlDaDBhR2x6TG5OMFlYUmxMbkoxYmxGMVpYSnBaWE5OYjJSbElEOC9JQ2RoZFhSdkp5a2dQVDA5SUNkaGRYUnZKenRjYmlBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWm1sdVpFWnBjbk4wUkdGMFlYTnZkWEpqWlNoMFlYSm5aWFJ6T2lCRVlYUmhVWFZsY25sYlhTazZJRVJoZEdGVGIzVnlZMlZTWldZZ2ZDQjFibVJsWm1sdVpXUWdlMXh1SUNCeVpYUjFjbTRnZEdGeVoyVjBjeTVtYVc1a0tDaDBLU0E5UGlCMExtUmhkR0Z6YjNWeVkyVWdJVDA5SUc1MWJHd3BQeTVrWVhSaGMyOTFjbU5sSUQ4L0lIVnVaR1ZtYVc1bFpEdGNibjFjYmx4dVpuVnVZM1JwYjI0Z1lXeHNSbkpoYldWelJXMXdkSGtvWm5KaGJXVnpQem9nUkdGMFlVWnlZVzFsVzEwcElIdGNiaUFnYVdZZ0tDRm1jbUZ0WlhNcElIdGNiaUFnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnZlZ4dVhHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnWm5KaGJXVnpMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnYVdZZ0tHWnlZVzFsYzF0cFhTNXNaVzVuZEdnZ1BpQXdLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NtVjBkWEp1SUhSeWRXVTdYRzU5WEc0aVhTd2libUZ0WlhNaU9sc2lYMkVpWFN3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096dEJRVzFFUVN4SlFVRkpMRTlCUVZVc1IwRkJRU3hIUVVGQkxFTkJRVUU3UVVGRlVDeFRRVUZUTEdkQ1FVRnRRaXhIUVVGQk8wRkJRMnBETEVWQlFVRXNUMEZCVHl4TFFVRlJMRWRCUVVFc1QwRkJRU3hGUVVGQkxFTkJRVUU3UVVGRGFrSXNRMEZCUVR0QlFXOUVUeXhOUVVGTkxIbENRVUY1UWl4bFFVRXJSQ3hEUVVGQk8wRkJRVUVzUlVFd1FqVkdMRmxCUVZrc1dVRkJaME1zUlVGQlFUdEJRVU5xUkN4SlFVRkJMRXRCUVVFc1EwRkJUU3haUVVGWkxFTkJRVUVzUTBGQlFUdEJRWGhDY0VJc1NVRkJVU3hKUVVGQkxFTkJRVUVzYVVKQlFVRXNSMEZCYjBJc1NVRkJTU3huUWtGQmFVSXNSVUZCUVN4RFFVRkJPMEZCU1dwRUxFbEJRVkVzU1VGQlFTeERRVUZCTEhOQ1FVRkJMRWRCUVhsQ0xFbEJRVWtzY1VKQlFYTkNMRVZCUVVFc1EwRkJRVHRCUVVNelJDeEpRVUZSTEVsQlFVRXNRMEZCUVN4UlFVRkJMRWRCUVZjc1NVRkJTU3hoUVVGQkxFTkJRWFZETEVOQlFVTXNRMEZCUVN4RFFVRkJPMEZCUXk5RUxFbEJRVUVzU1VGQlFTeERRVUZSTEZkQlFXTXNSMEZCUVN4RlFVRkZMR0ZCUVdVc1JVRkJRU3hwUTBGQlFTeERRVUZyUXl4SlFVRkpMRU5CUVVVc1JVRkJRU3hEUVVGQk8wRkJWeTlGTEVsQlFWVXNTVUZCUVN4RFFVRkJMRzFDUVVGQkxFZEJRV3RGTEVsQlFVa3NkMEpCUVVFc1EwRkJlVUlzU1VGQlRTeEZRVUZCTzBGQlFVRXNUVUZETjBjc1ZVRkJRU3hGUVVGWkxFTkJRVU1zVTBGQlFTeEZRVUZYTEZsQlFWa3NRMEZCUVR0QlFVRkJMRTFCUTNCRExIbENRVUV5UWl4RlFVRkJMRWxCUVVFc1EwRkJTeXd3UWtGQk1rSXNRMEZCUVN4SlFVRkJMRU5CUVVzc1NVRkJTU3hEUVVGQk8wRkJRVUVzVFVGRGNFVXNiMEpCUVhOQ0xFVkJRVUVzU1VGQlFTeERRVUZMTEc5Q1FVRnhRaXhEUVVGQkxFbEJRVUVzUTBGQlN5eEpRVUZKTEVOQlFVRTdRVUZCUVN4TFFVTXhSQ3hEUVVGQkxFTkJRVUU3UVVGMVkwUXNTVUZCVVN4SlFVRkJMRU5CUVVFc1kwRkJRU3hIUVVGcFFpeERRVUZETEVsQlFXOUNMRXRCUVVFN1FVRkZOVU1zVFVGQlFTeE5RVUZOTEdkQ1FVRnRRaXhIUVVGQkxHMUNRVUZCTEVOQlFXOUNMRWxCUVUwc1JVRkJRU3hKUVVGQkxFTkJRVXNzVFVGQlRTeEpRVUZKTEVOQlFVRXNRMEZCUVR0QlFVZHNSU3hOUVVGQkxFbEJRVUVzUTBGQlN5eHhRa0ZCY1VJc1NVRkJTeXhEUVVGQkxGZEJRVUVzUTBGQlFUdEJRVWN2UWl4TlFVRk5MRTFCUVVFc2NVSkJRVUVzUjBGQmQwSXNTVUZCU3l4RFFVRkJMR3RDUVVGQkxFTkJRVzFDTEdkQ1FVRm5RaXhEUVVGQkxFTkJRVUU3UVVGRmRFVXNUVUZCU1N4SlFVRkJMR05CUVVFc1IwRkJhVUlzUzBGQlN5eExRVUZOTEVOQlFVRXNaVUZCUVN4RFFVRkJPMEZCUldoRExFMUJRVUVzU1VGQlNTeERRVUZETEdOQlFVRXNTVUZCYTBJc1owSkJRV2xDTEVOQlFVRXNTMEZCUVN4TFFVRlZMR0ZCUVdFc1QwRkJVeXhGUVVGQk8wRkJRM1JGTEZGQlFXbENMR05CUVVFc1IwRkJRU3hKUVVGQkxFTkJRVUU3UVVGQlFTeFBRVU51UWp0QlFVVkJMRTFCUVVFc1NVRkJRU3hEUVVGTExGTkJRVk1zUlVGQlJTeEpRVUZCTEVWQlFVMHNjVUpCUVhWQ0xFVkJRVUVzWlVGQlFTeEZRVUZwUWl4blFrRkJaMElzUTBGQlFTeERRVUZCTzBGQlF6bEZMRTFCUVVFc1NVRkJRU3hEUVVGTExGTkJRVk1zU1VGQlN5eERRVUZCTEVWQlFVVXNVVUZCVVN4SlFVRk5MRVZCUVVFc1NVRkJRU3hGUVVGTkxIVkNRVUYxUWl4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVOc1JTeERRVUZCTzBGQmNHUkZMRWxCUVVFc1NVRkJRU3hEUVVGTExHOUNRVUZ4UWl4RFFVRkJMRTFCUVUwc1NVRkJTeXhEUVVGQkxGZEJRVUVzUlVGQllTeERRVUZCTEVOQlFVRTdRVUZCUVN4SFFVTndSRHRCUVVGQkxFVkJaRThzWjBKQlFXMUNMRWRCUVVFN1FVRkRlRUlzU1VGQlFTeFBRVUZQTEVsQlFVc3NRMEZCUVN4UlFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOa08wRkJRVUVzUlVGalVTeFhRVUZqTEVkQlFVRTdRVUZEY0VJc1NVRkJTU3hKUVVGQkxFbEJRVUVzUTBGQlN5eHBRa0ZCYlVJc1JVRkJRVHRCUVVNeFFpeE5RVUZOTEUxQlFVRXNVMEZCUVN4SFFVRlpMRlZCUVZjc1EwRkJRU3haUVVGQkxFTkJRV0VzU1VGQlNTeERRVUZCTEVOQlFVRTdRVUZKT1VNc1RVRkJUU3hOUVVGQkxGTkJRVUVzUjBGQldTeExRVUZMTERaQ1FVRTRRaXhGUVVGQkxFTkJRVUU3UVVGRGNrUXNUVUZCUVN4TFFVRkJMRTFCUVZjc1dVRkJXU3hUUVVGWExFVkJRVUU3UVVGRGFFTXNVVUZCUVN4SlFVRkJMRU5CUVVzc1MwRkJUU3hEUVVGQkxFZEJRVUU3UVVGQlFTeFZRVU5VTEZGQlFWTXNRMEZCUVN4blFrRkJRU3hEUVVGcFFpeERRVUZETEVOQlFVRXNSVUZCUnl4RFFVRk5MRXRCUVVFN1FVRkRiRU1zV1VGQlFTeEpRVUZKTEZOQlFWTXNWMEZCV1N4RFFVRkJMRU5CUVVFc1JVRkJSeXhIUVVGSExFbEJRVXNzUTBGQlFTeExRVUZCTEVOQlFVMHNUMEZCVHl4RFFVRkhMRVZCUVVFN1FVRkRiRVFzWTBGQlFTeEpRVUZCTEVOQlFVc3NWVUZCVnl4RlFVRkJMRU5CUVVFN1FVRkJRU3hoUVVOc1FqdEJRVUZCTEZkQlEwUXNRMEZCUVR0QlFVRkJMRk5CUTBnc1EwRkJRVHRCUVVGQkxFOUJRMFk3UVVGRlFTeE5RVUZCTEVsQlFVRXNRMEZCU3l3MFFrRkJORUlzVTBGQlV5eERRVUZCTEVOQlFVRTdRVUZGTVVNc1RVRkJTU3hKUVVGQkxFbEJRVUVzUTBGQlN5dzBRa0ZCT0VJc1JVRkJRVHRCUVVOeVF5eFJRVUZCTEVsQlFVRXNRMEZCU3l4VlFVRlhMRVZCUVVFc1EwRkJRVHRCUVVGQkxFOUJRMnhDTzBGQlFVRXNTMEZEUmp0QlFVVkJMRWxCUVVrc1NVRkJRU3hEUVVGRExFdEJRVXNzWTBGQlowSXNSVUZCUVR0QlFVTjRRaXhOUVVGQkxFbEJRVUVzUTBGQlN5eHBRa0ZCYTBJc1JVRkJRU3hEUVVGQk8wRkJRVUVzUzBGRGVrSTdRVUZGUVN4SlFVRlBMRTlCUVVFc1RVRkJUU3hMUVVGTExHRkJRV01zUlVGQlFTeERRVUZCTzBGQlFVRXNSMEZEYkVNN1FVRkJRU3hGUVVkUkxHbENRVUZ2UWl4SFFVRkJPMEZCUXpGQ0xFbEJRVTBzVFVGQlFTeFZRVUZCTEVkQlFXRXNWVUZCVnl4RFFVRkJMR0ZCUVVFc1EwRkJZeXhKUVVGSkxFTkJRVUVzUTBGQlFUdEJRVVZvUkN4SlFVRkpMRWxCUVVFc1ZVRkJRU3hEUVVGWExGZEJRVmNzUTBGQlJ5eEZRVUZCTzBGQlF6TkNMRTFCUVVFc1QwRkJRVHRCUVVGQkxFdEJRMFk3UVVGRlFTeEpRVUZMTEVsQlFVRXNRMEZCUVN4alFVRkJMRWRCUVdsQ0xFbEJRVXNzUTBGQlFTeHBRa0ZCUVN4RFFVTjRRaXhsUVVGblFpeERRVUZCTEZWQlFWVXNRMEZETVVJc1EwRkJRU3hUUVVGQkxFTkJRVlVzU1VGQlN5eERRVUZCTEdsQ1FVRkJMRU5CUVd0Q0xFbEJRVXNzUTBGQlFTeEpRVUZKTEVOQlFVTXNRMEZCUVN4RFFVRkJPMEZCUVVFc1IwRkRhRVE3UVVGQlFTeEZRVVZSTEd0Q1FVRnJRaXhQUVVFMFF5eEZRVUZCTzBGQmRreDRSU3hKUVVGQkxFbEJRVUVzUlVGQlFTeEZRVUZCTEVWQlFVRXNSVUZCUVN4RlFVRkJMRVZCUVVFc1JVRkJRU3hGUVVGQkxFVkJRVUVzUTBGQlFUdEJRWGRNU1N4SlFVRk5MRTFCUVVFc1UwRkJRU3hIUVVGWkxGVkJRVmNzUTBGQlFTeFpRVUZCTEVOQlFXRXNTVUZCU1N4RFFVRkJMRU5CUVVFN1FVRkRPVU1zU1VGQlRTeE5RVUZCTEVWQlFVVXNaVUZCWjBJc1JVRkJRU3hIUVVGSkxFbEJRVXNzUTBGQlFTeExRVUZCTEVOQlFVRTdRVUZGYWtNc1NVRkJRU3hKUVVGSkxHTkJRVEpDTEVWQlFVTXNRMEZCUVR0QlFVTm9ReXhKUVVGQkxFbEJRVWtzWTBGQk1rSXNSVUZCUXl4RFFVRkJPMEZCUTJoRExFbEJRVWtzU1VGQlFTeFZRVUZCTEVOQlFVRTdRVUZGU2l4SlFVRkJMRXRCUVVFc1RVRkJWeXhWUVVGVkxFOUJRVk1zUlVGQlFUdEJRVU0xUWl4TlFVRlRMRXRCUVVFc1NVRkJRU3hMUVVGQkxFbEJRVk1zVFVGQlR5eERRVUZCTEVsQlFVRXNRMEZCU3l4TlFVRlJMRVZCUVVFN1FVRkRjRU1zVVVGQlFTeEpRVUZCTEVOQlFVRXNRMEZCU1N4RlFVRk5MRWRCUVVFc1MwRkJRU3hEUVVGQkxFbEJRVUVzUzBGQlRpeEpRVUZaTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGQkxGTkJRVUVzVFVGQll5eFZRVUZWTEZkQlFXRXNSVUZCUVR0QlFVTnVSQ3hWUVVGakxGZEJRVUVzUjBGQlFTeFhRVUZCTEVOQlFWa3NUMEZCVHl4TFFVRkxMRU5CUVVFc1EwRkJRVHRCUVVGQkxGTkJRM2hETzBGQlEwRXNVVUZCUVN4SlFVRkJMRU5CUVVFc1EwRkJTU3hGUVVGTkxFZEJRVUVzUzBGQlFTeERRVUZCTEVsQlFVRXNTMEZCVGl4SlFVRlpMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeERRVUZCTEZOQlFVRXNUVUZCWXl4VlFVRlZMRmRCUVdFc1JVRkJRVHRCUVVOdVJDeFZRVUZqTEZkQlFVRXNSMEZCUVN4WFFVRkJMRU5CUVZrc1QwRkJUeXhMUVVGTExFTkJRVUVzUTBGQlFUdEJRVUZCTEZOQlEzaERPMEZCUVVFc1QwRkRSanRCUVVGQkxFdEJRMFk3UVVGRlFTeEpRVUZCTEVsQlFVa3NiVVJCUVdsQ0xFOUJRVk1zUlVGQlFUdEJRVU0xUWl4TlFVRkpMRWxCUVVFc1YwRkJRU3hEUVVGWkxGTkJRVk1zUTBGQlJ5eEZRVUZCTzBGQlF6RkNMRkZCUVdNc1YwRkJRU3hIUVVGQkxHbENRVUZCTEVOQlFXdENMR0ZCUVdFc1pVRkJaU3hEUVVGQkxFTkJRVUU3UVVGQlFTeFBRVU01UkR0QlFVVkJMRTFCUVVrc1NVRkJRU3hYUVVGQkxFTkJRVmtzVTBGQlV5eERRVUZITEVWQlFVRTdRVUZETVVJc1VVRkJRU3hMUVVGQkxFMUJRVmNzVTBGQlV5eFhRVUZoTEVWQlFVRTdRVUZETDBJc1ZVRkJUU3hOUVVGQkxGTkJRVUVzUjBGQldTeEpRVUZKTEdGQlFVRXNRMEZCT0VJc1MwRkJTeXhEUVVGQkxFTkJRVUU3UVVGRmVrUXNWVUZCUVN4TFFVRkJMRTFCUVZjc1QwRkJUeXhUUVVGWExFVkJRVUU3UVVGRE0wSXNXVUZCU1N4SlFVRkJMRWRCUVVFc1EwRkJTU3hQUVVGWkxFdEJRVUVzWlVGQlFTeERRVUZuUWl4UFFVRlRMRVZCUVVFN1FVRkRNME1zWTBGQllTeFZRVUZCTEVkQlFVRXNSMEZCUVN4RFFVRkJPMEZCUTJJc1kwRkJRU3hOUVVGQk8wRkJRVUVzWVVGRFJqdEJRVUZCTEZkQlEwWTdRVUZCUVN4VFFVTkdPMEZCUVVFc1QwRkRSanRCUVVGQkxFdEJRMFk3UVVGSFFTeEpRVUZCTEVsQlEwVXNZMEZCWlN4RFFVRkJMRmRCUVZjc1EwRkRNVUlzU1VGQlFTeGpRVUZCTEVOQlFXVXNTMEZCU3l4cFFrRkJhVUlzUTBGQlFTeEpRVU55UXl4UFFVRlJMRU5CUVVFc1ZVRkJRU3hGUVVGQkxFTkJRVmtzUlVGQlN5eEhRVUZCTEVsQlFVRXNRMEZCUVN4TFFVRkJMRU5CUVUwc1NVRkJXQ3hMUVVGQkxFbEJRVUVzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRU5CUVdsQ0xGVkJRVlVzUTBGREwwTXNSVUZCUVR0QlFVTkJMRTFCUVVFc1QwRkJRVHRCUVVGQkxFdEJRMFk3UVVGRlFTeEpRVUZCTEVsQlFVRXNRMEZCU3l4cFFrRkJiMElzUjBGQlFTeFhRVUZCTEVOQlFVRTdRVUZGZWtJc1NVRkJRU3hOUVVGTkxHVkJRV3RDTEVkQlFVRXNTVUZCUVN4RFFVRkxMRXRCUVUwc1EwRkJRU3hKUVVGQkxFZEJRVThzU1VGQlN5eERRVUZCTEV0QlFVRXNRMEZCVFN4SlFVRlBMRWRCUVVFc1lVRkJRU3hEUVVGQkxHTkJRVUVzUTBGQlFTeEZRVUZCTEVWQlFVc3NZMEZCVEN4RFFVRkJMRVZCUVVFc1JVRkJjVUlzVTBGQlZ5eEZRVUZCTEZOQlFVRXNRMEZCVlN4TlFVRk5MRXRCUVUwc1JVRkJRU3hEUVVGQkxFTkJRVUU3UVVGRmJFZ3NTVUZCUVN4SlFVRkJMRU5CUVVzc1VVRkJVeXhEUVVGQk8wRkJRVUVzVFVGRFdpeEpRVUZCTEVWQlFVMHNhVU5CUTBRc1pVRkVReXhEUVVGQkxFVkJRVUU3UVVGQlFTeFJRVVZLTEZkQlFVRXNSVUZCWVN4RFFVRkRMRWRCUVVrc1EwRkJRU3hGUVVGQkxFZEJRVUVzU1VGQlFTeERRVUZMTEhWQ1FVRk1MRWxCUVRKQ0xFZEJRVUVzUlVGQlFTeEhRVUZCTEVWQlFVc3NSVUZCUVN4SFFVRkhMRmRCUVZjc1EwRkJRVHRCUVVGQkxGRkJRMmhGTEZWQlFWa3NSVUZCUVN4VlFVRkJMRWxCUVVFc1NVRkJRU3hIUVVGQkxGVkJRVUVzUjBGQlFTeERRVUZqTEVWQlFVc3NSMEZCUVN4SlFVRkJMRU5CUVVFc1MwRkJRU3hEUVVGTkxGTkJRVmdzU1VGQmFVSXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hGUVVGQkxFTkJRVUVzVlVGQlFUdEJRVUZCTEU5QlF6ZERMRU5CUVVFN1FVRkJRU3hMUVVORUxFTkJRVUVzUTBGQlFUdEJRVUZCTEVkQlEwZzdRVUZCUVN4RlFXVlJMREJDUVVFMlFpeEhRVUZCTzBGQlEyNURMRWxCUVVrc1NVRkJRU3hKUVVGQkxFTkJRVXNzYVVKQlFXMUNMRVZCUVVFN1FVRkRNVUlzVFVGQlFTeEpRVUZCTEVOQlFVc3NWVUZCVnl4RlFVRkJMRU5CUVVFN1FVRkJRU3hMUVVOc1FqdEJRVUZCTEVkQlEwWTdRVUZCUVN4RlFVdFJMSEZDUVVGeFFpeFJRVUY1UWl4RlFVRkJPMEZCUlhCRUxFbEJRVWtzU1VGQlFTeEpRVUZCTEVOQlFVc3NjVUpCUVhGQ0xGRkJRVmtzU1VGQlFTeEpRVUZCTEVOQlFVc3NaMEpCUVdkQ0xGRkJRVmtzU1VGQlFTeERRVUZETEVsQlFVc3NRMEZCUVN4bFFVRkJMRVZCUVcxQ0xFVkJRVUU3UVVGRGJFY3NUVUZCUVN4UFFVRkJPMEZCUVVFc1MwRkRSanRCUVVWQkxFbEJRVUVzU1VGQlNTeFJRVUZ2UWl4WlFVRkJMRzlDUVVGQkxFbEJRWGRDTEVsQlFVc3NRMEZCUVN4MVFrRkJRU3hEUVVGM1FpeFJRVUZSTEVOQlFVY3NSVUZCUVR0QlFVTjBSaXhOUVVGQkxFbEJRVUVzUTBGQlN5eFZRVUZYTEVWQlFVRXNRMEZCUVR0QlFVRkJMRXRCUTJ4Q08wRkJSVUVzU1VGQlFTeEpRVUZKTEZGQlFXOUNMRmxCUVVFc1pVRkJRU3hKUVVGdFFpeEpRVUZMTEVOQlFVRXNkVUpCUVVFc1EwRkJkMElzVVVGQlVTeERRVUZITEVWQlFVRTdRVUZEYWtZc1RVRkJRU3hKUVVGQkxFTkJRVXNzVlVGQlZ5eEZRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTnNRanRCUVVGQkxFZEJRMFk3UVVGQlFTeEZRVVZSTEhkQ1FVRjNRaXhSUVVGclJDeEZRVUZCTzBGQmVGSndSaXhKUVVGQkxFbEJRVUVzUlVGQlFTeEZRVUZCTEVWQlFVRXNRMEZCUVR0QlFYbFNTU3hKUVVGTkxFMUJRVUVzVlVGQlFTeEhRVUZCTEVOQlFXRXNWVUZCU3l4TFFVRk5MRU5CUVVFc1ZVRkJRU3hMUVVGWUxGbEJRWGxDTEcxQ1FVRnZRaXhEUVVGQkxFbEJRVUVzUTBGQlN5eE5RVUZOTEU5QlFVOHNRMEZCUVN4RFFVRkJPMEZCUTJ4R0xFbEJRVThzVDBGQlFTeFJRVUZCTEVOQlFWTXNUVUZCVFN4VFFVRmpMRXRCUVVFc1RVRkJRU3hKUVVGQkxFTkJRVlVzZVVOQlFWa3NSMEZCVVN4UFFVRkJMRU5CUVVFc1JVRkJRU3hIUVVGQkxGRkJRVUVzUTBGQlV5eExRVUZOTEVOQlFVRXNWVUZCUVN4TFFVRm1MRWxCUVRKQ0xFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRkJMRWRCUVVFc1EwRkJRU3hEUVVGQk8wRkJRVUVzUjBGREwwWTdRVUZCUVN4RlFVVlJMREJDUVVFMlFpeEhRVUZCTzBGQlEyNURMRWxCUVVFc1NVRkJTU3hKUVVGTExFTkJRVUVzYzBKQlFVRXNRMEZCZFVJc2MwSkJRWFZDTEVOQlFVRXNTVUZCU1N4RFFVRkhMRVZCUVVFN1FVRkROVVFzVFVGQlFTeGhRVUZCTzBGQlFVRXNVVUZEUlN4clFrRkJRVHRCUVVGQkxGRkJRMEVzY1VaQlFVRTdRVUZCUVN4UFFVTkdMRU5CUVVFN1FVRkRRU3hOUVVGUExFOUJRVUVzU1VGQlFTeERRVUZCTzBGQlFVRXNTMEZEVkR0QlFVZEJMRWxCUVVrc1NVRkJRU3hEUVVGRExFbEJRVXNzUTBGQlFTeExRVUZCTEVOQlFVMHNTVUZCVFN4RlFVRkJPMEZCUTNCQ0xFMUJRVThzVDBGQlFTeEpRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTlVPMEZCUjBFc1NVRkJRU3hKUVVGSkxFbEJRVXNzUTBGQlFTeHhRa0ZCUVN4RFFVRnpRaXhKUVVGTExFTkJRVUVzUzBGQlFTeERRVUZOTEVsQlFVa3NRMEZCUnl4RlFVRkJPMEZCUXk5RExFMUJRVThzVDBGQlFTeEpRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTlVPMEZCUlVFc1NVRkJUeXhQUVVGQkxFdEJRVUVzUTBGQlFUdEJRVUZCTEVkQlExUTdRVUZCUVN4RlFVVlJMSE5DUVVGelFpeEpRVUZwUWl4RlFVRkJPMEZCUXpkRExFbEJRVTBzVFVGQlFTeFRRVUZCTEVkQlFWa3NWVUZCVnl4RFFVRkJMRmxCUVVFc1EwRkJZU3hKUVVGSkxFTkJRVUVzUTBGQlFUdEJRVVU1UXl4SlFVRk5MRTFCUVVFc1kwRkJRU3hIUVVGcFFpeFZRVUZWTEV0QlFVMHNRMEZCUVN4TFFVRkJMRU5CUVVFN1FVRkRka01zU1VGQlFTeE5RVUZOTEdkQ1FVRm5RaXhKUVVGTExFTkJRVUVzVTBGQlFTeERRVUZCTzBGQlJUTkNMRWxCUVVFc1NVRkRSU3hqUVVGbExFTkJRVUVzU1VGQlFTeERRVUZMTEVsQlFVc3NSVUZCUVN4TFFVRk5MR05CUVdNc1NVRkJTeXhEUVVGQkxFbEJRVUVzUlVGRGJFUXNTVUZCUVN4alFVRkJMRU5CUVdVc1IwRkJSeXhKUVVGTExFVkJRVUVzUzBGQlRTeGhRVUZqTEVOQlFVRXNSVUZCUVN4RFFVRkhMRTFCUXpsRExFVkJRVUU3UVVGRFFTeE5RVUZQTEU5QlFVRXNTMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkRWRHRCUVVOQkxFbEJRVUVzWVVGQlFTeERRVUZqTEc5Q1FVRnZRaXd3UWtGQk1FSXNRMEZCUVN4RFFVRkJPMEZCUXpWRUxFbEJRVThzVDBGQlFTeEpRVUZCTEVOQlFVRTdRVUZCUVN4SFFVTlVPMEZCUVVFc1JVRkZVU3hoUVVGelFpeEhRVUZCTzBGQmJsVm9ReXhKUVVGQkxFbEJRVUVzUlVGQlFTeERRVUZCTzBGQmIxVkpMRWxCUVVFc1NVRkJTU3hMUVVGTExGTkJRVmNzUlVGQlFUdEJRVU5zUWl4TlFVRkJMRWxCUVVFc1EwRkJTeXhWUVVGVkxGZEJRVmtzUlVGQlFTeERRVUZCTzBGQlF6TkNMRTFCUVVFc1NVRkJRU3hEUVVGTExGTkJRVmtzUjBGQlFTeExRVUZCTEVOQlFVRXNRMEZCUVR0QlFVRkJMRXRCUTI1Q08wRkJSVUVzU1VGQlFTeEpRVUZKTEV0QlFVc3NZMEZCWjBJc1JVRkJRVHRCUVVOMlFpeE5RVUZCTEVsQlFVRXNRMEZCU3l4bFFVRmxMRmRCUVZrc1JVRkJRU3hEUVVGQk8wRkJRMmhETEUxQlFVRXNTVUZCUVN4RFFVRkxMR05CUVdsQ0xFZEJRVUVzUzBGQlFTeERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTjRRanRCUVVWQkxFbEJRVUVzUTBGQlFTeEZRVUZCTEVkQlFVRXNTVUZCUVN4RFFVRkxMR0ZCUVV3c1NVRkJaU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCUVN4WFFVRkJMRVZCUVVFc1EwRkJRVHRCUVVObUxFbEJRVUVzU1VGQlFTeERRVUZMTEZGQlFWY3NSMEZCUVN4TFFVRkJMRU5CUVVFc1EwRkJRVHRCUVVOb1FpeEpRVUZCTEVsQlFVRXNRMEZCU3l4aFFVRm5RaXhIUVVGQkxFdEJRVUVzUTBGQlFTeERRVUZCTzBGQlEzSkNMRWxCUVVFc1NVRkJRU3hEUVVGTExHZENRVUZ0UWl4SFFVRkJMRXRCUVVFc1EwRkJRU3hEUVVGQk8wRkJRM2hDTEVsQlFVRXNTVUZCUVN4RFFVRkxMRmRCUVdNc1IwRkJRU3hMUVVGQkxFTkJRVUVzUTBGQlFUdEJRVU51UWl4SlFVRkxMRWxCUVVFc1EwRkJRU3h6UWtGQlFTeERRVUYxUWl3MFEwRkJORU1zU1VGQlNTeERRVUZCTEVOQlFVRTdRVUZCUVN4SFFVTTVSVHRCUVVGQkxFVkJSVThzYTBKQlFXdENMRXRCUVdVc1JVRkJRVHRCUVVWMFF5eEpRVUZCTEVsQlFVa3NRMEZCUXl4SlFVRkJMRU5CUVVzc1pVRkJiVUlzU1VGQlFTeExRVUZCTEVkQlFWRXNRMEZCUnl4RlFVRkJPMEZCUTNSRExFMUJRVUVzU1VGQlFTeERRVUZMTEdWQlFXdENMRWRCUVVFc1MwRkJRU3hEUVVGQk8wRkJSM1pDTEUxQlFVRXNTVUZCU1N4TFFVRkxMRXRCUVUwc1EwRkJRU3h6UWtGQlFTeEpRVUV3UWl4RFFVRkRMRWxCUVVFc1EwRkJTeXhOUVVGTkxHRkJRV1VzUlVGQlFUdEJRVVZzUlN4UlFVRkJMRlZCUVVFc1EwRkJWeXhOUVVGTk8wRkJRMllzVlVGQlFTeEpRVUZKTEVsQlFVc3NRMEZCUVN4UlFVRkJMRWxCUVZrc1EwRkJReXhKUVVGQkxFTkJRVXNzVFVGQlRTeGxRVUZwUWl4RlFVRkJPMEZCUTJoRUxGbEJRVUVzU1VGQlFTeERRVUZMTEZWQlFWY3NSVUZCUVN4RFFVRkJPMEZCUVVFc1YwRkRiRUk3UVVGQlFTeFhRVU5ETEVOQlFVTXNRMEZCUVN4RFFVRkJPMEZCUVVFc1QwRkRUanRCUVVGQkxFdEJRMHNzVFVGQlFUdEJRVVZNTEUxQlFVRXNTVUZCU1N4UlFVRlJMRU5CUVVjc1JVRkJRVHRCUVVOaUxGRkJRVUVzU1VGQlFTeERRVUZMTEdWQlFXdENMRWRCUVVFc1MwRkJRU3hEUVVGQk8wRkJRVUVzVDBGRGVrSTdRVUZCUVN4TFFVTkdPMEZCUVVFc1IwRkRSanRCUVVGQkxFVkJSVThzYjBKQlFYVkNMRWRCUVVFN1FVRkROVUlzU1VGQlR5eFBRVUZCTEU5QlFVRXNRMEZCVVN4SlFVRkxMRU5CUVVFc1MwRkJRU3hEUVVGTkxHVkJRV1VzUTBGQlFTeERRVUZCTzBGQlFVRXNSMEZETTBNN1FVRkJRU3hGUVVWUkxEUkNRVUUwUWl4VFFVRXJRaXhGUVVGQk8wRkJRMnBGTEVsQlFVa3NTVUZCUVN4SlFVRkJMRU5CUVVzc2EwSkJRV3RDTEZOQlFWY3NSVUZCUVR0QlFVVndReXhOUVVGQkxFOUJRVUU3UVVGQlFTeExRVU5HTzBGQlJVRXNTVUZCUVN4SlFVRkpMRXRCUVVzc1VVRkJWU3hGUVVGQk8wRkJRMnBDTEUxQlFVRXNTVUZCUVN4RFFVRkxMRk5CUVZNc1YwRkJXU3hGUVVGQkxFTkJRVUU3UVVGQlFTeExRVU0xUWp0QlFVVkJMRWxCUVVFc1NVRkJRU3hEUVVGTExHRkJRV2RDTEVkQlFVRXNVMEZCUVN4RFFVRkJPMEZCUTNKQ0xFbEJRVXNzU1VGQlFTeERRVUZCTEZGQlFVRXNSMEZCVnl4VFFVRlZMRU5CUVVFc1owSkJRVUVzUTBGQmFVSXNUVUZCVFR0QlFVTXZReXhOUVVGQkxFbEJRVUVzUTBGQlN5eHBRa0ZCYVVJc1UwRkJVeXhEUVVGQkxFTkJRVUU3UVVGQlFTeExRVU5vUXl4RFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOSU8wRkJRVUVzUlVGRlR5eFZRVUZoTEVkQlFVRTdRVUZEYkVJc1NVRkJUU3hOUVVGQkxGTkJRVUVzUjBGQldTeFZRVUZYTEVOQlFVRXNXVUZCUVN4RFFVRmhMRWxCUVVrc1EwRkJRU3hEUVVGQk8wRkJRemxETEVsQlFVa3NTVUZCUVN4SlFVRkJMRU5CUVVzc2FVSkJRVzFDTEVWQlFVRTdRVUZETVVJc1RVRkJRU3hKUVVGQkxFTkJRVXNzTkVKQlFUUkNMRk5CUVZNc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGRE5VTTdRVUZGUVN4SlFVRkJMRWxCUVVFc1EwRkJTeXhwUWtGQmFVSXNVMEZCVXl4RFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOcVF6dEJRVUZCTEVWQlJWRXNaMEpCUVcxQ0xFZEJRVUU3UVVGNldUZENMRWxCUVVFc1NVRkJRU3hGUVVGQkxFTkJRVUU3UVVFd1dVa3NTVUZCU1N4SlFVRkJMRWxCUVVFc1EwRkJTeXhOUVVGTkxHRkJRV1VzUlVGQlFUdEJRVU0xUWl4TlFVRkJMRTlCUVU4c1MwRkJTeXhMUVVGTkxFTkJRVUVzWVVGQlFTeERRVUZCTzBGQlFVRXNTMEZEY0VJN1FVRkZRU3hKUVVGQkxFOUJRVThzUzBGQlN5eExRVUZOTEVOQlFVRXNjMEpCUVVFc1IwRkJRU3hEUVVGNVFpeEZRVUZMTEVkQlFVRXNTVUZCUVN4RFFVRkJMR1ZCUVVFc1MwRkJUQ3haUVVGM1FpeEhRVUZOTEVkQlFVRXNSMEZCUVN4RFFVRkJPMEZCUVVFc1IwRkRNMFU3UVVGQlFTeEZRVVZQTEZkQlFXTXNSMEZCUVR0QlFXcGFka0lzU1VGQlFTeEpRVUZCTEVWQlFVRXNRMEZCUVR0QlFXdGFTU3hKUVVGQkxFTkJRVUVzUlVGQlFTeEhRVUZCTEVsQlFVRXNRMEZCU3l4alFVRk1MRWxCUVdkQ0xFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRkJMRmRCUVVFc1JVRkJRU3hEUVVGQk8wRkJSV2hDTEVsQlFVRXNTVUZCU1N4TFFVRkxMR05CUVdkQ0xFVkJRVUU3UVVGRGRrSXNUVUZCUVN4SlFVRkJMRU5CUVVzc1pVRkJaU3hYUVVGWkxFVkJRVUVzUTBGQlFUdEJRVU5vUXl4TlFVRkJMRWxCUVVFc1EwRkJTeXhqUVVGcFFpeEhRVUZCTEV0QlFVRXNRMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkRlRUk3UVVGRlFTeEpRVUZCTEVsQlFVRXNRMEZCU3l4UlFVRlRMRU5CUVVFN1FVRkJRU3hOUVVOYUxFbEJRVUVzUlVGQlRTeHBRMEZCU3l4SlFVRkxMRU5CUVVFc1MwRkJRU3hEUVVGTkxFOUJRV2hDTEVWQlFYVkNMRXRCUVVFc1JVRkJUeXhoUVVGaExFbEJRVXNzUlVGQlFTeERRVUZCTzBGQlFVRXNTMEZEZGtRc1EwRkJRU3hEUVVGQk8wRkJRVUVzUjBGRFNEdEJRVUZCTEVWQlJVRXNUVUZCWXl4cFFrRkJhVUlzVTBGQkswSXNSVUZCUVR0QlFUbGFhRVVzU1VGQlFTeEpRVUZCTEVWQlFVRXNSVUZCUVN4RlFVRkJMRVZCUVVFc1JVRkJRU3hEUVVGQk8wRkJaMkZKTEVsQlFVa3NTVUZCUVN4RFFVRkRMRXRCUVVzc1MwRkJUU3hEUVVGQkxHRkJRVUVzU1VGQmFVSXNTMEZCU3l4TFFVRk5MRU5CUVVFc2MwSkJRVUVzU1VGQk1FSXNRMEZCUXl4SlFVRkJMRU5CUVVzc1pVRkJhVUlzUlVGQlFUdEJRVU16Uml4TlFVRkJMRTlCUVVFN1FVRkJRU3hMUVVOR08wRkJSMEVzU1VGQlNTeEpRVUZCTEVOQlFVTXNTMEZCU3l4alFVRm5RaXhGUVVGQk8wRkJRM2hDTEUxQlFVRXNTVUZCUVN4RFFVRkxMR2xDUVVGclFpeEZRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTjZRanRCUVVkQkxFbEJRVUVzUTBGQlFTeEZRVUZCTEVkQlFVRXNTVUZCUVN4RFFVRkxMR05CUVV3c1NVRkJaMElzUjBGQlFTeExRVUZCTEVOQlFVRXNSMEZCUVN4RlFVRkJMRU5CUVVFc1YwRkJRU3hGUVVGQkxFTkJRVUU3UVVGSGFFSXNTVUZCU1N4SlFVRkJMRWxCUVVFc1EwRkJTeXh0UWtGQmIwSXNRMEZCUVN3eVFrRkJRU3hGUVVFclFpeEZRVUZCTzBGQlF6RkVMRTFCUVVFc1lVRkJRU3hEUVVGakxHOUNRVUZ2UWl4dFJVRkJiVVVzUTBGQlFTeERRVUZCTzBGQlEzSkhMRTFCUVVFc1NVRkJRU3hEUVVGTExGRkJRVk1zUTBGQlFTeEZRVUZGTEVsQlFVMHNSVUZCUVN4aFFVRkJMRU5CUVVFc1kwRkJRU3hEUVVGQkxFVkJRVUVzUlVGQlFTeERRVUZOTEZWQlFVc3NTMEZCVFN4RFFVRkJMRWxCUVVFc1MwRkJXQ3hKUVVGdFFpeEhRVUZCTEVWQlFVRXNSMEZCUVN4alFVRkJMRU5CUVVFc1JVRkJla0lzUlVGQk1FTXNTMEZCUVN4RlFVRlBMRmxCUVdFc1EwRkJRU3hQUVVGQkxFdEJRVmNzUTBGQlFTeERRVUZCTzBGQlF5OUdMRTFCUVVFc1QwRkJRVHRCUVVGQkxFdEJRMFk3UVVGRlFTeEpRVUZOTEUxQlFVRXNSVUZCUlN4UFFVRlJMRVZCUVVFc1IwRkJTU3hKUVVGTExFTkJRVUVzUzBGQlFTeERRVUZCTzBGQlIzcENMRWxCUVVrc1NVRkJRU3hGUVVGRExHMURRVUZUTEUxQlFWRXNRMEZCUVN4RlFVRkJPMEZCUTNCQ0xFMUJRVUVzU1VGQlFTeERRVUZMTEdWQlFXZENMRVZCUVVFc1EwRkJRVHRCUVVOeVFpeE5RVUZCTEU5QlFVRTdRVUZCUVN4TFFVTkdPMEZCUlVFc1NVRkJTU3hKUVVGQk8wRkJRMFlzVFVGQlFTeE5RVUZOTEdOQlFXRXNSVUZCU3l4SFFVRkJMRWxCUVVFc1EwRkJRU3hMUVVGQkxFTkJRVTBzVlVGQldDeExRVUZCTEVsQlFVRXNSMEZCUVN4RlFVRkJMRWRCUVhsQ0xHOUNRVUZ2UWl4UFFVRlBMRU5CUVVFc1EwRkJRVHRCUVVOMlJTeE5RVUZCTEUxQlFVMHNSVUZCU3l4SFFVRkJMRTFCUVUwc1lVRkJZeXhEUVVGQkxGVkJRVUVzUlVGQldTeExRVUZMTEZkQlFWY3NRMEZCUVN4RFFVRkJPMEZCUlRORUxFMUJRVXNzU1VGQlFTeERRVUZCTERoQ1FVRkJMRU5CUVN0Q0xIbERRVUZaTEVkQlFVY3NRMEZCUVN4RFFVRkJPMEZCUlc1RUxFMUJRVUVzVFVGQlRTeGhRVUZoTEdGQlFXTXNSVUZCUVN4RFFVRkJPMEZCUTJwRExFMUJRVTBzVFVGQlFTeEZRVUZGTEZOQlFWTXNWMEZCWVN4RlFVRkJMRlZCUVVFc1MwRkJaU3hKUVVGTExFTkJRVUVzWlVGQlFTeERRVUZuUWl4WFFVRlhMRVZCUVVVc1EwRkJRU3hEUVVGQk8wRkJSUzlGTEUxQlFVRXNZVUZCUVN4RFFVRmpMR3RDUVVGdlFpeEZRVUZCTEhGQ1FVRkJMRVZCUVhWQ0xFbEJRVXNzUTBGQlFTeExRVUZCTEVOQlFVMHNSMEZCUnl4RFFVRkJMRU5CUVVFN1FVRkZka1VzVFVGQlNTeEpRVUZCTEUxQlFVRXNSMEZCVXl4VlFVRlhMRU5CUVVFc1JVRkJRU3hGUVVGSkxFOUJRVThzUTBGQlFTeERRVUZCTzBGQlJXNURMRTFCUVVrc1NVRkJRU3hYUVVGQkxFTkJRVmtzVTBGQlV5eERRVUZITEVWQlFVRTdRVUZGTVVJc1VVRkJUU3hOUVVGQkxHZENRVUZCTEVkQlFXMUNMRmxCUVZrc1IwRkJTU3hEUVVGQkxFTkJRVU1zVFVGQlRTeFZRVUZYTEVOQlFVRXNSVUZCUVN4RlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGQkxFTkJRVUU3UVVGSmFrVXNVVUZCVFN4TlFVRkJMRVZCUVVFc1IwRkJTeXcyUWtGQk5rSXNWVUZCVlN4RFFVRkJMRU5CUVVFN1FVRkZiRVFzVVVGQlV5eE5RVUZCTEVkQlFVRXNVVUZCUVN4RFFVRlRMRU5CUVVNc1RVRkJVU3hGUVVGQkxFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1EwRkJRU3hEUVVGRkxFdEJRVXNzUlVGQlJTeERRVUZCTEVOQlFVRTdRVUZCUVN4UFFVTXhSRHRCUVVWQkxFMUJRVUVzVFVGQlFTeEhRVUZUTEUxQlFVOHNRMEZCUVN4SlFVRkJPMEZCUVVFc1VVRkRaQ3d5UWtGQk5FSXNRMEZCUVR0QlFVRkJMRlZCUXpGQ0xFbEJRVTBzUlVGQlFTeE5RVUZCTzBGQlFVRXNWVUZEVGl4UFFVRlRMRVZCUVVFc1QwRkJRVHRCUVVGQkxGVkJRMVFzVFVGQlVTeEZRVUZCTEVsQlFVRTdRVUZCUVN4VlFVTlNMRTFCUVVFc1JVRkJVU3hOUVVGTkxFbEJRVUVzUTBGQlN5eFhRVUZaTEVWQlFVRTdRVUZCUVN4VFFVTm9ReXhEUVVGQk8wRkJRVUVzVDBGRFNDeERRVUZCTzBGQlJVRXNUVUZCUVN4SlFVRkJMRU5CUVVzc1UwRkJXU3hIUVVGQkxFMUJRVUVzUTBGQlR5eFRRVUZWTEVOQlFVRXNTVUZCUVN4RFFVRkxMR05CUVdNc1EwRkJRU3hEUVVGQk8wRkJRVUVzWVVGRE9VTXNSMEZCVUN4RlFVRkJPMEZCUTBFc1RVRkJVU3hQUVVGQkxFTkJRVUVzUzBGQlFTeERRVUZOTERCQ1FVRXdRaXhIUVVGSExFTkJRVUVzUTBGQlFUdEJRVVV6UXl4TlFVRkJMRWxCUVVFc1EwRkJTeXhqUVVGbExFTkJRVUVzWVVGQlFTeERRVUZCTEdOQlFVRXNRMEZCUVN4alFVRkJMRU5CUVVFc1JVRkJRU3hGUVVObUxHTkJRMEVzUTBGQlFTeEZRVUZCTEVsQlFVRXNRMEZCU3l4TlFVRk5MRWxCUmtrc1EwRkJRU3hGUVVGQk8wRkJRVUVzVVVGSGJFSXNUMEZCVHl4WlFVRmhMRU5CUVVFc1MwRkJRVHRCUVVGQkxGRkJRM0JDTEUxQlFWRXNSVUZCUVN4RFFVRkRMR2RDUVVGcFFpeERRVUZCTEVkQlFVY3NRMEZCUXl4RFFVRkJPMEZCUVVFc1QwRkRMMElzUTBGQlFTeERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTklPMEZCUVVFc1IwRkRSanRCUVVGQkxFVkJSVThzVFVGQlRTeFRRVUYxUXl4RlFVRkJPMEZCZW1WMFJDeEpRVUZCTEVsQlFVRXNSVUZCUVN4RFFVRkJPMEZCTUdWSkxFbEJRVTBzVFVGQlFTeExRVUZCTEVkQlFWRXNTMEZCVFN4RFFVRkJMRXRCUVVFc1EwRkJUU3hUUVVGVExFTkJRVUVzUTBGQlFUdEJRVVZ1UXl4SlFVRkJMRWxCUVVrc1MwRkJTeXhyUWtGQmIwSXNSVUZCUVR0QlFVTXpRaXhOUVVGQkxFdEJRVUVzUTBGQlRTeDNRa0ZCZDBJc1NVRkJTeXhEUVVGQkxHdENRVUZCTEVOQlFXMUNMRWxCUVVrc1EwRkJReXhMUVVGQkxFdEJRVmNzYlVKQlFVc3NTMEZCVVN4RFFVRkJMRU5CUVVFc1EwRkJRVHRCUVVGQkxFdEJRM0pHTzBGQlJVRXNTVUZCUVN4SlFVRkpMRXRCUVVzc2FVSkJRVzFDTEVWQlFVRTdRVUZETVVJc1RVRkJRU3hMUVVGQkxFTkJRVTBzZFVKQlFYVkNMRWxCUVVzc1EwRkJRU3hwUWtGQlFTeERRVUZyUWl4SlFVRkpMRU5CUVVNc1MwRkJRU3hMUVVGWExHMUNRVUZMTEV0QlFWRXNRMEZCUVN4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVOdVJqdEJRVVZCTEVsQlFVRXNTMEZCUVN4RFFVRk5MSGRDUVVFMFFpeERRVUZCTEVkQlFVRXNTVUZCUVN4RFFVRkxMSE5DUVVGMVFpeERRVUZCTEhsRFFVRkJMRU5CUVRCRExFbEJRVWtzUTBGQlFTeERRVUZCTzBGQlF6VkhMRWxCUVVFc1MwRkJRU3hEUVVGTkxIRkNRVUZ4UWl4SlFVRkxMRU5CUVVFc1pVRkJRU3hEUVVGQk8wRkJRMmhETEVsQlFVMHNTMEZCUVN4RFFVRkJMRlZCUVVFc1EwRkJRU3hEUVVGWkxFbEJRVXNzUTBGQlFTeEZRVUZGTEUxQlFWRXNSVUZCUVN4SlFVRkJMRVZCUVUwc1NVRkJUU3hGUVVGQkxFTkJRVUVzUlVGQlFTeEhRVUZCTEVsQlFVRXNRMEZCU3l4TFFVRk5MRU5CUVVFc1NVRkJRU3hMUVVGWUxFbEJRVzFDTEVkQlFVRXNSVUZCUVN4SFFVRkJMR05CUVVFc1JVRkJaMElzUTBGQlFTeERRVUZCTzBGQlJXaEdMRWxCUVU4c1QwRkJRU3hMUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU5VTzBGQlFVRXNSVUZGVVN4bFFVRkJMRU5CUVdkQ0xGZEJRU3RDTEVWQlFYRkRMRVZCUVVFN1FVRXpaamxHTEVsQlFVRXNTVUZCUVN4RlFVRkJMRU5CUVVFN1FVRTBaa2tzU1VGQlFTeE5RVUZOTEVWQlFVVXNWMEZCUVN4RlFVRmhMRTlCUVZFc1JVRkJRU3hIUVVGSkxFbEJRVXNzUTBGQlFTeExRVUZCTEVOQlFVRTdRVUZGZEVNc1NVRkJRU3hKUVVGSkxFOUJRU3RETEVkQlFVRXNZMEZCUVN4RFFVRkJPMEZCUVVFc1RVRkRha1FzUjBGQlN5eEZRVUZCTEZGQlFVRTdRVUZCUVN4TlFVTk1MRmRCUVZjc1owSkJRV2xDTEVWQlFVRTdRVUZCUVN4TlFVTTFRaXhSUVVGQkxFVkJRVlVzVlVGQlZTeFhRVUZaTEVWQlFVRTdRVUZCUVN4TlFVTm9ReXhMUVVGQkxFVkJRVThzVlVGQlZTeExRVUZOTEVOQlFVRXNTMEZCUVR0QlFVRkJMRTFCUTNaQ0xGRkJRVlVzUlVGQlFTeEpRVUZCTzBGQlFVRXNUVUZEVml4VlFVRlpMRVZCUVVFc1IwRkJRVHRCUVVGQkxFMUJRMW9zVDBGQlFTeEZRVUZUTEZWQlFWVXNUMEZCVHl4RFFVRkJPMEZCUVVFc1RVRkRNVUlzWVVGQlFTeEZRVUZsTEV0QlFVc3NaMEpCUVdsQ0xFVkJRVUU3UVVGQlFTeE5RVU55UXl4WlFVRlpMRWxCUVVzc1EwRkJRU3hYUVVGQk8wRkJRVUVzVFVGRGFrSXNVMEZCUVN4RlFVRlhMRXRCUVVzc1IwRkJTU3hGUVVGQk8wRkJRVUVzVFVGRGNFSXNZVUZCUVN4RlFVRmxMRXRCUVVzc1MwRkJUU3hEUVVGQkxHRkJRVUU3UVVGQlFTeE5RVU14UWl4UlFVRlZMRVZCUVVFN1FVRkJRU3hSUVVOU0xFbEJRVUVzUlVGQlRTeFZRVUZWTEV0QlFVMHNRMEZCUVN4SlFVRkJPMEZCUVVFc1VVRkRkRUlzUlVGQlFTeEZRVUZKTEZWQlFWVXNTMEZCVFN4RFFVRkJMRVZCUVVFN1FVRkJRU3hQUVVOMFFqdEJRVUZCTEUxQlEwRXNXVUZCUVN4RlFVRmpMRXRCUVVzc1MwRkJUU3hEUVVGQkxGbEJRVUU3UVVGQlFTeE5RVU42UWl4bFFVRkJMRVZCUVdsQ0xFdEJRVXNzUzBGQlRTeERRVUZCTEdWQlFVRTdRVUZCUVN4TFFVRkJMRVZCUlhwQ0xIVkNRVUYxUWl4SlFVRkpMRU5CUVVFc1EwRkJRU3hEUVVGQk8wRkJSMmhETEVsQlFVRXNTVUZCU1N4TFFVRkxMR2RDUVVGclFpeEZRVUZCTzBGQlIzcENMRTFCUVVFc1QwRkJRU3hEUVVGUkxGVkJRVlVzU1VGQlN5eERRVUZCTEdkQ1FVRkJMRU5CUVdsQ0xFdEJRVTBzUTBGQlFTeFBRVUZCTEVOQlFWRXNUMEZCVHl4blFrRkJaMElzUTBGQlFTeERRVUZCTzBGQlFVRXNTMEZETDBVN1FVRkZRU3hKUVVGQkxFbEJRVWtzUzBGQlN5eFhRVUZoTEVWQlFVRTdRVUZGY0VJc1RVRkJVU3hQUVVGQkxFTkJRVUVzVjBGQlFTeEhRVUZqTEVsQlFVc3NRMEZCUVN4WFFVRkJMRU5CUVZrc1MwRkJUU3hEUVVGQkxFdEJRVUVzUTBGQlFUdEJRVUZCTEV0QlF5OURPMEZCUlVFc1NVRkJRU3hQUVVGQkxFTkJRVkVzVDBGQlZTeEhRVUZCTEU5QlFVRXNRMEZCVVN4UFFVRlJMRU5CUVVFc1IwRkJRU3hEUVVGSkxFTkJRVU1zUzBGQlZTeExRVUZCTzBGQkwyaENja1FzVFVGQlFVRXNTVUZCUVVFc1IwRkJRVUVzUTBGQlFVRTdRVUZuYVVKTkxFMUJRMFVzU1VGQlFTeERRVUZETEUxQlFVMHNWVUZEVGl4SlFVRkJMRXRCUVVFc1EwRkJUU3hYUVVGWExFZEJRVkVzUzBGQlFTeEZRVUZCTEVOQlFVY3NUMEZETTBJc1JVRkJRMEVzUTBGQlFVRXNSMEZCUVVFc1IwRkJRU3hIUVVGSExFbEJRVWdzUzBGQlFTeEpRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVGQkxFbEJRVk1zUzBGRFZpeERRVUZCTEVsQlFVRXNjVUpCUVVFc1NVRkRRU3hEUVVGRExIRkNRVUZ6UWl4RFFVRkJMRXRCUVVFc1EwRkJUU3hWUVVGVkxFTkJRM3BETEVWQlFVRTdRVUZEUVN4UlFVRk5MRXRCUVVFc1EwRkJRU3hWUVVGQkxFZEJRV0VzUjBGQlJ5eE5RVUZQTEVWQlFVRXNRMEZCUVR0QlFVRkJMRTlCUXk5Q08wRkJRMEVzVFVGQlR5eFBRVUZCTEV0QlFVRXNRMEZCUVR0QlFVRkJMRXRCUTFJc1EwRkJRU3hEUVVGQk8wRkJSVVFzU1VGQlFTeE5RVUZOTEhGQ1FVRnhRaXhYUVVGakxFZEJRVUVzVjBGQlFTeERRVUZaTEVsQlFVMHNSVUZCUVN4WFFVRlhMRWxCUVVrc1JVRkJSeXhEUVVGQkxGRkJRVUVzUTBGQlFUdEJRVU0zUlN4SlFVRk5MRTFCUVVFc1NVRkJRU3hIUVVGUExGVkJRVlVzYVVKQlFXdENMRU5CUVVFc1UwRkJRU3hEUVVGVkxFMUJRVTBzUzBGQlR5eEZRVUZCTEU5QlFVRXNRMEZCVVN4bFFVRm5RaXhyUWtGQmEwSXNRMEZCUVN4RFFVRkJPMEZCU1RGSExFbEJRVUVzVDBGQlFTeERRVUZSTEdGQlFXRXNUVUZCVHl4RFFVRkJMRTFCUVVFc1EwRkJUeXhGUVVGRExFVkJRVWNzVVVGQlVTeFZRVUZaTEVWQlFVRTdRVUZCUVN4TlFVTjZSQ3haUVVGWkxFVkJRVVVzU1VGQlFTeEZRVUZOTEV0QlFVc3NVVUZCVlN4RlFVRkJMRXRCUVVFc1JVRkJUeXhMUVVGTExGRkJRVk1zUlVGQlFUdEJRVUZCTEUxQlEzaEVMR0ZCUVVFc1JVRkJaU3hGUVVGRkxFbEJRVTBzUlVGQlFTeEpRVUZCTEVOQlFVc3NWMEZCVnl4UlFVRlRMRVZCUVVFc1JVRkJSeXhMUVVGUExFVkJRVUVzU1VGQlFTeERRVUZMTEZWQlFWY3NSVUZCUVR0QlFVRkJMRXRCUXpORkxFTkJRVUVzUTBGQlFUdEJRVVZFTEVsQlFVRXNUMEZCUVN4RFFVRlJMRmRCUVZjc1NVRkJTeXhEUVVGQkxGRkJRVUVzUTBGQlFUdEJRVU40UWl4SlFVRkJMRTlCUVVFc1EwRkJVU3hoUVVGaExFbEJRVXNzUTBGQlFTeFZRVUZCTEVOQlFVRTdRVUZMTVVJc1NVRkJUU3hOUVVGQkxHZENRVUZCTEVkQlFXMUNMRlZCUVZVc1MwRkJUU3hEUVVGQkxFdEJRVUVzUTBGQlFUdEJRVU42UXl4SlFVRkJMRWxCUVVrc2IwSkJRWGRETEVWQlFVTXNRMEZCUVR0QlFVTTNReXhKUVVGSkxFbEJRVUVzYlVKQlFVRXNkVUpCUVRCQ0xFZEJRVWtzUlVGQlFTeERRVUZCTzBGQlEyeERMRWxCUVVFc1MwRkJRU3hOUVVGWExHRkJRVmtzUlVGQlN5eEhRVUZCTEVsQlFVRXNRMEZCUVN3MlFrRkJRU3hGUVVGTUxFdEJRVUVzU1VGQlFTeEhRVUZCTEVWQlFVRXNSMEZCZDBNc1JVRkJTU3hGUVVGQk8wRkJRMnBGTEUxQlFVRXNTMEZCUVN4TlFVRlhMRVZCUVVVc1IwRkJTeXhGUVVGQkxGTkJRVUVzVFVGQlpTeFJRVUZUTEVOQlFVRXNaVUZCUVN4RFFVRm5RaXhQUVVGUExFTkJRVWNzUlVGQlFUdEJRVU5zUlN4UlFVRkJMRTFCUVUwc1dVRkJXU3huUWtGQmFVSXNSVUZCUVN4RFFVRkJPMEZCUTI1RExGRkJRVUVzYVVKQlFVRXNRMEZCYTBJc1NVRkJTeXhEUVVGQkxHRkJRVUVzUTBGQlFTeGpRVUZCTEVOQlFVRXNSVUZCUVN4RlFVRkxMRWRCUVV3c1EwRkJRU3hGUVVGQkxFVkJRVlVzVjBGQlZ5eERRVUZCTEVOQlFVRXNRMEZCUVR0QlFVTTFReXhSUVVGdlFpeHRRa0ZCUVN4RFFVRkJMRWRCUVVFc1EwRkJTU3hUUVVGWExFVkJRVUVzVTBGQlFTeEpRVUZCTEVsQlFVRXNSMEZCUVN4VFFVRkJMRWRCUVdFc2IwSkJRVzlDTEVOQlFVRXNRMEZCUVR0QlFVRkJMRTlCUTNSRk8wRkJRVUVzUzBGRFJqdEJRVU5CTEVsQlFVRXNUMEZCUVN4RFFVRlJMRXRCUVZFc1IwRkJRU3huUWtGQlFTeERRVUZCTzBGQlEyaENMRWxCUVVFc1QwRkJUeXhGUVVGRkxFOUJRVk1zUlVGQlFTeFBRVUZCTEVWQlFWTXNWMEZCWVN4RlFVRkJMR2xDUVVGQkxFVkJRVzFDTEZsQlFWa3NiVUpCUVc5Q0xFVkJRVUVzUTBGQlFUdEJRVUZCTEVkQlF6ZEdPMEZCUVVFc1JVRnpRbEVzYlVKQlFXMUNMRWxCUVdsQ0xFVkJRVUU3UVVGRE1VTXNTVUZCUVN4SlFVRkpMRWxCUVVzc1EwRkJRU3hwUWtGQlFTeEpRVUZ4UWl4SlFVRkxMRU5CUVVFc2FVSkJRVUVzUTBGQmEwSXNVMEZCVXl4RFFVRkhMRVZCUVVFN1FVRkRMMFFzVFVGQlFTeEpRVUZCTEVOQlFVc3NaVUZCWlN4SlFVRkxMRU5CUVVFc1YwRkJRU3hKUVVGbExFVkJRVWtzUlVGQlFTeE5RVUZCTEVOQlFVOHNTMEZCU3l4cFFrRkJhVUlzUTBGQlFTeERRVUZCTzBGQlFVRXNTMEZETTBVN1FVRkZRU3hKUVVGQkxFbEJRVWtzUzBGQlN5eExRVUZOTEVOQlFVRXNTVUZCUVN4SlFVRlJMRWxCUVVzc1EwRkJRU3hMUVVGQkxFTkJRVTBzUzBGQlN5eFZRVUZaTEVWQlFVRTdRVUZEYWtRc1RVRkJTeXhKUVVGQkxFTkJRVUVzVlVGQlFTeEhRVUZoTEVsQlFVc3NRMEZCUVN4TFFVRkJMRU5CUVUwc1NVRkJTeXhEUVVGQkxGVkJRVUVzUTBGQlFUdEJRVUZCTEV0QlEzQkRPMEZCUlVFc1NVRkJUeXhQUVVGQkxFbEJRVUVzUTBGQlFUdEJRVUZCTEVkQlExUTdRVUZCUVN4RlFVVlJMR1ZCUVd0Q0xFZEJRVUU3UVVGRGVFSXNTVUZCU1N4SlFVRkJMRWxCUVVFc1EwRkJTeXhMUVVGTkxFTkJRVUVzU1VGQlFTeExRVUZUTEdOQlFXZENMRVZCUVVFN1FVRkRkRU1zVFVGQlFTeEpRVUZCTEVOQlFVc3NVVUZCVXl4RFFVRkJMRVZCUVVVc1NVRkJUU3hGUVVGQkxHTkJRVUVzUlVGQlowSXNRMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkRlRU03UVVGQlFTeEhRVU5HTzBGQlFVRXNSVUZQVVN3MlFrRkJaMFVzUjBGQlFUdEJRVWwwUlN4SlFVRk5MRTFCUVVFc1MwRkJRU3gxUWtGQldTeEhRVUZKTEVWQlFVRXNRMEZCUVR0QlFVTjBRaXhKUVVGSkxFbEJRVUVzUTBGQlF5eExRVUZMTEUxQlFWRXNSVUZCUVR0QlFVTm9RaXhOUVVGQkxFOUJRVThzUlVGQlF5eERRVUZCTzBGQlFVRXNTMEZEVmp0QlFVTkJMRWxCUVZjc1ZVRkJRU3hEUVVGQkxFbEJRVUVzUTBGQlN5eE5RVUZSTEVWQlFVRXNRMEZCUXl4RFFVRk5MRXRCUVVFN1FVRkROMElzVFVGQlNTeEpRVUZCTEc5Q1FVRkJMRU5CUVhGQ0xFTkJRVU1zUTBGQlN5eEpRVUZCTEVOQlFVTXNUVUZCVFN4SFFVRkpMRU5CUVVFc1EwRkJRU3hEUVVGRkxGZEJRVmNzUTBGQlJ5eEZRVUZCTzBGQlEzaEVMRkZCUVUwc1MwRkJRU3hEUVVGQkxFZEJRVUVzUTBGQlNTeERRVUZGTEVOQlFVRXNWMEZCUVN4RlFVRmhMRU5CUVVNc1EwRkJRU3hEUVVGQk8wRkJRVUVzVDBGRE5VSTdRVUZEUVN4TlFVRkZMRU5CUVVFc1EwRkJRU3haUVVGQkxFTkJRV0VzUTBGQlF5eExRVUZWTEV0QlFVRTdRVUZEZUVJc1VVRkJTU3hKUVVGQkxHOUNRVUZCTEVOQlFYRkNMRXRCUVVzc1EwRkJTeXhKUVVGQkxFTkJRVU1zVFVGQlRTeEhRVUZKTEVOQlFVRXNTMEZCUVN4RFFVRk5MRmRCUVZjc1EwRkJSeXhGUVVGQk8wRkJRMmhGTEZWQlFVMHNTMEZCUVN4RFFVRkJMRWRCUVVFc1EwRkJTU3hMUVVGTkxFTkJRVUVzVjBGQlFTeEZRVUZoTEV0QlFVc3NRMEZCUVN4RFFVRkJPMEZCUVVFc1UwRkRjRU03UVVGQlFTeFBRVU5FTEVOQlFVRXNRMEZCUVR0QlFVZEVMRTFCUVU4c1QwRkJRU3hKUVVGQkxFTkJRVUU3UVVGQlFTeExRVU5TTEVOQlFVRXNRMEZCUVR0QlFVTkVMRWxCUVVFc1QwRkJUeXhMUVVGTkxFTkJRVUVzU1VGQlFTeERRVUZMTEV0QlFVMHNRMEZCUVN4TlFVRkJMRVZCUVZFc1EwRkJRU3hEUVVGQk8wRkJRVUVzUjBGRGJFTTdRVUZCUVN4RlFVdFJMQ3RDUVVFclFpeEhRVUY1UWl4RlFVRkJPMEZCUXpsRUxFbEJRVTBzVFVGQlFTeFZRVUZCTEVkQlFXRXNiVU5CUVcxRExFZEJRVWNzUTBGQlFTeERRVUZCTzBGQlJYcEVMRWxCUVVrc1NVRkJRU3hKUVVGQkxFTkJRVXNzY1VKQlFYRkNMRlZCUVZrc1JVRkJRVHRCUVVONFF5eE5RVUZCTEVsQlFVRXNRMEZCU3l4blFrRkJiVUlzUjBGQlFTeFZRVUZCTEVOQlFVRTdRVUZEZUVJc1RVRkJRU3hKUVVGQkxFTkJRVXNzYlVOQlFXOURMRVZCUVVFc1EwRkJRVHRCUVVGQkxFdEJRek5ETzBGQlJVRXNTVUZCVFN4TlFVRkJMRlZCUVVFc1IwRkJZU3huUTBGQlowTXNSMEZCUnl4RFFVRkJMRU5CUVVFN1FVRkRkRVFzU1VGQlNTeEpRVUZCTEVsQlFVRXNRMEZCU3l4blFrRkJaMElzVlVGQldTeEZRVUZCTzBGQlEyNURMRTFCUVVFc1NVRkJRU3hEUVVGTExGZEJRV01zUjBGQlFTeFZRVUZCTEVOQlFVRTdRVUZEYmtJc1RVRkJRU3hKUVVGQkxFTkJRVXNzYlVOQlFXOURMRVZCUVVFc1EwRkJRVHRCUVVGQkxFdEJRek5ETzBGQlFVRXNSMEZEUmp0QlFVRkJMRVZCUlZFc2JVTkJRWE5ETEVkQlFVRTdRVUZETlVNc1NVRkJRU3hOUVVGTkxIVkNRVUZwUXl4RlFVRkRMRU5CUVVFN1FVRkZlRU1zU1VGQlFTeEpRVUZKTEV0QlFVc3NaMEpCUVd0Q0xFVkJRVUU3UVVGRGVrSXNUVUZCUVN4dlFrRkJRU3hEUVVGeFFpeEpRVUZMTEVOQlFVRXNTVUZCUVN4RFFVRkxMR2RDUVVGcFFpeERRVUZCTEV0QlFVRXNRMEZCVFN4SlFVRkpMRU5CUVVFc1EwRkJRVHRCUVVGQkxFdEJRelZFTzBGQlJVRXNTVUZCUVN4SlFVRkpMRXRCUVVzc1YwRkJZU3hGUVVGQk8wRkJRM0JDTEUxQlFVRXNiMEpCUVVFc1EwRkJjVUlzU1VGQlN5eERRVUZCTEVsQlFVRXNRMEZCU3l4WFFVRlpMRU5CUVVFc1MwRkJRU3hEUVVGTkxFbEJRVWtzUTBGQlFTeERRVUZCTzBGQlFVRXNTMEZEZGtRN1FVRkZRU3hKUVVGTExFbEJRVUVzUTBGQlFTeHRRa0ZCUVN4RFFVRnZRaXhwUWtGQmFVSXNiMEpCUVc5Q0xFTkJRVUVzUTBGQlFUdEJRVUZCTEVkQlEyaEZPMEZCUVVFc1JVRkZVU3hsUVVFeVFpeEhRVUZCTzBGQk4zRkNja01zU1VGQlFTeEpRVUZCTEVWQlFVRXNRMEZCUVR0QlFUaHhRa2tzU1VGQlFTeFBRVUZCTEVOQlFVRXNRMEZCVVN4RlFVRkxMRWRCUVVFc1NVRkJRU3hEUVVGQkxFdEJRVUVzUTBGQlRTeGpRVUZZTEV0QlFVRXNTVUZCUVN4SFFVRkJMRVZCUVVFc1IwRkJOa0lzVFVGQldTeE5RVUZCTEUxQlFVRXNRMEZCUVR0QlFVRkJMRWRCUTI1RU8wRkJRMFlzUTBGQlFUdEJRVVZQTEZOQlFWTXNiMEpCUVc5Q0xFOUJRV2xFTEVWQlFVRTdRVUZzY2tKeVJpeEZRVUZCTEVsQlFVRXNSVUZCUVN4RlFVRkJMRVZCUVVFc1EwRkJRVHRCUVcxeVFrVXNSVUZCVHl4UFFVRkJMRU5CUVVFc1JVRkJRU3hIUVVGQkxFTkJRVUVzUlVGQlFTeEhRVUZCTEU5QlFVRXNRMEZCVVN4SlFVRkxMRU5CUVVFc1EwRkJReXhEUVVGTkxFdEJRVUVzUTBGQlFTeERRVUZGTEdWQlFXVXNTVUZCU1N4RFFVRkJMRXRCUVhwRExFbEJRVFJETEVkQlFVRXNTMEZCUVN4RFFVRkJMRWRCUVVFc1JVRkJRU3hEUVVGQkxGVkJRVUVzUzBGQk5VTXNTVUZCTUVRc1IwRkJRU3hGUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVOQlFVRTdRVUZEYmtVc1EwRkJRVHRCUVVWQkxGTkJRVk1zWlVGQlpTeE5RVUZ6UWl4RlFVRkJPMEZCUXpWRExFVkJRVUVzU1VGQlNTeERRVUZETEUxQlFWRXNSVUZCUVR0QlFVTllMRWxCUVU4c1QwRkJRU3hKUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU5VTzBGQlJVRXNSVUZCUVN4TFFVRkJMRWxCUVZNc1EwRkJTU3hIUVVGQkxFTkJRVUVzUlVGQlJ5eERRVUZKTEVkQlFVRXNUVUZCUVN4RFFVRlBMRkZCUVZFc1EwRkJTeXhGUVVGQkxFVkJRVUU3UVVGRGRFTXNTVUZCU1N4SlFVRkJMRTFCUVVFc1EwRkJUeXhEUVVGSExFTkJRVUVzUTBGQlFTeE5RVUZCTEVkQlFWTXNRMEZCUnl4RlFVRkJPMEZCUTNoQ0xFMUJRVThzVDBGQlFTeExRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTlVPMEZCUVVFc1IwRkRSanRCUVVWQkxFVkJRVThzVDBGQlFTeEpRVUZC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
|