@sap/open.fe 1.99.0 → 1.100.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/package.json +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/.library +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/.theming +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/MessageButton-dbg.js +1748 -1813
- package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +2 -3
- package/packages/sap.fe.common/src/sap/fe/common/MessageButton.ts +1801 -0
- package/packages/sap.fe.common/src/sap/fe/common/MessageFilter-dbg.js +77 -32
- package/packages/sap.fe.common/src/sap/fe/common/MessageFilter.js +2 -3
- package/packages/sap.fe.common/src/sap/fe/common/MessageFilter.ts +26 -0
- package/packages/sap.fe.common/src/sap/fe/common/MessagePopover-dbg.js +43 -53
- package/packages/sap.fe.common/src/sap/fe/common/MessagePopover.js +2 -3
- package/packages/sap.fe.common/src/sap/fe/common/MessagePopover.ts +39 -0
- package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +31 -38
- package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +8 -9
- package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js.map +3 -3
- package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +23 -71
- package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +4 -4
- package/packages/sap.fe.common/src/sap/fe/common/library.js +4 -5
- package/packages/sap.fe.common/src/sap/fe/common/library.ts +35 -0
- package/packages/sap.fe.common/src/sap/fe/common/manifest.json +3 -3
- package/packages/sap.fe.common/src/sap/fe/common/resources.json +54 -32
- package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.jsmeta.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/.library +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/.theming +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper-dbg.js +1 -69
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.ts +0 -70
- package/packages/sap.fe.core/src/sap/fe/core/AppComponent-dbg.js +388 -399
- package/packages/sap.fe.core/src/sap/fe/core/AppComponent.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/AppComponent.ts +403 -0
- package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler-dbg.js +127 -158
- package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/BaseController-dbg.js +82 -58
- package/packages/sap.fe.core/src/sap/fe/core/BaseController.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/BaseController.ts +68 -0
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +111 -20
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.ts +131 -32
- package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI-dbg.js +278 -274
- package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI.ts +250 -0
- package/packages/sap.fe.core/src/sap/fe/core/PageController-dbg.js +157 -29
- package/packages/sap.fe.core/src/sap/fe/core/PageController.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/PageController.ts +60 -32
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +694 -756
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.ts +11 -9
- package/packages/sap.fe.core/src/sap/fe/core/Synchronization-dbg.js +21 -31
- package/packages/sap.fe.core/src/sap/fe/core/Synchronization.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.ts +10 -3
- package/packages/sap.fe.core/src/sap/fe/core/TemplateModel-dbg.js +20 -38
- package/packages/sap.fe.core/src/sap/fe/core/TemplateModel.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/TemplateModel.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +1354 -1370
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.ts +33 -22
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/ActivitySync-dbg.js +392 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/ActivitySync.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/ActivitySync.ts +355 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/CollaborationCommon-dbg.js +136 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +119 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/Manage-dbg.js +262 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/Manage.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/Manage.ts +244 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +103 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/UserDetails.fragment.xml +13 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/draft-dbg.js +30 -68
- package/packages/sap.fe.core/src/sap/fe/core/actions/draft.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/actions/draft.ts +44 -71
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +55 -36
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.ts +66 -46
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +34 -15
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations.ts +48 -18
- package/packages/sap.fe.core/src/sap/fe/core/actions/sticky-dbg.js +17 -4
- package/packages/sap.fe.core/src/sap/fe/core/actions/sticky.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/actions/sticky.ts +21 -4
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata-dbg.js +69 -66
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +65 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +1593 -1669
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.ts +1672 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation-dbg.js +79 -54
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +61 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +718 -779
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +783 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +796 -816
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +803 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +1004 -1005
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.ts +978 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +487 -521
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +141 -169
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit.ts +156 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +233 -244
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.ts +225 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady-dbg.js +301 -336
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.ts +12 -10
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator-dbg.js +188 -175
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator.ts +163 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +157 -149
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder.ts +151 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing-dbg.js +144 -125
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing.ts +132 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener-dbg.js +7 -6
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener.ts +3 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share-dbg.js +230 -268
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share.ts +231 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +592 -633
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.ts +8 -7
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState-dbg.js +788 -806
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.ts +805 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/controls/ActionPartial.fragment.xml +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution-dbg.js +67 -66
- package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution.ts +72 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +90 -75
- package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper.ts +83 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +130 -125
- package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.ts +126 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +103 -112
- package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +101 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper-dbg.js +122 -135
- package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper.ts +115 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar-dbg.js +162 -159
- package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar.ts +143 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper-dbg.js +45 -39
- package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper.ts +40 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/MultiValueParameterDelegate-dbg.js +37 -42
- package/packages/sap.fe.core/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -2
- package/packages/sap.fe.core/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +31 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +126 -116
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer.ts +98 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +241 -255
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter.ts +245 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +150 -141
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +125 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +335 -322
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +337 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +74 -74
- package/packages/sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +70 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext-dbg.js +348 -379
- package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.ts +19 -16
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +12 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +12 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper-dbg.js +354 -378
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.ts +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +6 -4
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +5 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField-dbg.js +26 -12
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.ts +37 -13
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +4 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI.ts +3 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +130 -23
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +134 -29
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +118 -53
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +156 -93
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +161 -207
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +148 -206
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +115 -133
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +20 -6
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper.ts +16 -4
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +12 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +11 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key-dbg.js +42 -57
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +25 -4
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +20 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +10 -4
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.ts +15 -4
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +7 -5
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +5 -1
- package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +92 -98
- package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.ts +91 -0
- package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js.map +3 -3
- package/packages/sap.fe.core/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +104 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/CollaborationFormatter.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/CollaborationFormatter.ts +60 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter-dbg.js +53 -2
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.ts +51 -0
- package/packages/sap.fe.core/src/sap/fe/core/fpm/Component-dbg.js +50 -54
- package/packages/sap.fe.core/src/sap/fe/core/fpm/Component.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/fpm/Component.ts +48 -0
- package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/fpm/resources.json +7 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +323 -309
- package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.ts +363 -337
- package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression-dbg.js +7 -7
- package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.ts +7 -7
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport-dbg.js +186 -62
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.ts +168 -52
- package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper-dbg.js +5 -4
- package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -5
- package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper-dbg.js +601 -684
- package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper.ts +699 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper-dbg.js +25 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.ts +23 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +5 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators.ts +4 -0
- package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +426 -451
- package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +36 -32
- package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +3 -3
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +644 -738
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +4 -4
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js +24 -35
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js.map +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/library.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/library.support.js +22 -33
- package/packages/sap.fe.core/src/sap/fe/core/library.support.ts +23 -0
- package/packages/sap.fe.core/src/sap/fe/core/library.ts +420 -0
- package/packages/sap.fe.core/src/sap/fe/core/manifest.json +10 -10
- package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +5 -3
- package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +4 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +22 -5
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +28 -8
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +28 -8
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +29 -9
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +26 -6
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +28 -8
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +28 -8
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +26 -6
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +30 -10
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +27 -7
- package/packages/sap.fe.core/src/sap/fe/core/resources.json +745 -384
- package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +45 -71
- package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +154 -192
- package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +4 -4
- package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +66 -92
- package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +284 -339
- package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory.ts +10 -13
- package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +67 -102
- package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory.ts +5 -2
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +754 -814
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.ts +13 -13
- package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory-dbg.js +649 -736
- package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.ts +7 -4
- package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +567 -592
- package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.ts +22 -3
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +354 -386
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +21 -14
- package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage-dbg.controller.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/support/CommonHelper-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/support/CommonHelper.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/support/Diagnostics-dbg.js +36 -48
- package/packages/sap.fe.core/src/sap/fe/core/support/Diagnostics.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +93 -85
- package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.ts +104 -95
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper-dbg.js +25 -32
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.ts +36 -35
- package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters-dbg.js +32 -26
- package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.ts +37 -24
- package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1664 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jsmeta.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jstemplates.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/MacroNavigationModel.js +59 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/localService/RootEntity.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/Component.js +33 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/FieldMessages.controller.js +34 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/FieldMessages.view.xml +18 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/localService/Entities.json +6 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/localService/service.cds +6 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/manifest.json +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldMessages.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/FilterBarSVandAnnotationDefaults.controller.js +1 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.controller.js +7 -2
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.view.xml +9 -3
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/RootEntity.js +23 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/RootEntity.ts +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/service.cds +11 -23
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/Component.js +40 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/TableMessages.controller.js +35 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/TableMessages.view.xml +21 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/localService/RootEntity.json +82 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/localService/service.cds +82 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/manifest.json +78 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/tableMessages.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/localService/ChildEntity.json +5 -4
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/manifest.json +3 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/App.view.xml +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/AnnotationHelper.spec.js +1 -169
- package/packages/sap.fe.core/test/sap/fe/core/jest/AnnotationHelper.spec.ts +0 -212
- package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.js +2305 -119
- package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.ts +2206 -67
- package/packages/sap.fe.core/test/sap/fe/core/jest/FilterUtils.spec.js +40 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/FilterUtils.spec.ts +34 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/FlexibleColumnLayout.spec.js +114 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/FlexibleColumnLayout.spec.ts +114 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/Paginators.spec.js +113 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/Paginators.spec.ts +78 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/RouterProxy.spec.js +599 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/RouterProxy.spec.ts +614 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.js +23 -5
- package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.ts +26 -14
- package/packages/sap.fe.core/test/sap/fe/core/jest/TransactionHelper.spec.js +87 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/TransactionHelper.spec.ts +82 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/VisualFilterUtils.spec.js +124 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/VisualFilterUtils.spec.ts +141 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +34768 -67
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/ActivitySync.spec.js +170 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/ActivitySync.spec.ts +155 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/CollaborationCommon.spec.js +101 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/CollaborationCommon.spec.ts +94 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/Manage.spec.js +82 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/Manage.spec.ts +77 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/draft.spec.js +2 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/draft.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/messageHandling.spec.js +7 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/messageHandling.spec.ts +7 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/operations.spec.js +104 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/operations.spec.ts +96 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/sticky.spec.js +83 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/sticky.spec.ts +79 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/appcomponent.spec.js +72 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/appcomponent.spec.ts +64 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.js +619 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.ts +668 -5
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalEditFlow.spec.js +297 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalEditFlow.spec.ts +276 -6
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalIntentBasedNavigation.spec.js +149 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalIntentBasedNavigation.spec.ts +142 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalRouting.spec.js +776 -182
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalRouting.spec.ts +181 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.js +19 -43
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MassEdit.spec.js +2 -18
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MassEdit.spec.ts +8 -6
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.js +5 -27
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Routing.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Routing.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Share.spec.js +86 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Share.spec.ts +80 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.js +2 -18
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controls/DataLossOrDraftDiscardHandler.spec.js +45 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controls/DataLossOrDraftDiscardHandler.spec.ts +29 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controls/FilterBar.spec.js +51 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controls/FilterBar.spec.ts +47 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controls/__snapshots__/FilterBar.spec.ts.snap +3 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.js +2 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Filter.spec.js +25 -36
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Filter.spec.ts +26 -36
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.js +3 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.ts +2 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.ts +6 -5
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +133 -9
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +171 -8
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.js +174 -210
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.ts +294 -230
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/Filter.spec.ts.snap +3 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/Chart.spec.js +237 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/Chart.spec.ts +246 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/DataVisualization.spec.js +9993 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/DataVisualization.spec.ts +11352 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/Table.spec.js +460 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/Table.spec.ts +543 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/TableAnalytics.spec.js +616 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/TableAnalytics.spec.ts +711 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/manifest.json +887 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/objectPage/HeaderAndFooterAction.spec.js +393 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/objectPage/HeaderAndFooterAction.spec.ts +434 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/DataConverter.js +31 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/DataConverter.ts +12 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/Filter.cds +27 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/MassEditHelper.cds +12 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/manifest.json +150 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/metadata.xml +365 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/metadata_groupable_options.xml +96 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/metadata_textArrangement.xml +102 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/metadata_withPV.xml +359 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/Table.cds +89 -27
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/TemplatingTestData.js +421 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/TemplatingTestData.ts +413 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/aggregatedSD/metadata.xml +3767 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/dsr/manifest.json +185 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/dsr/metadata.xml +1534 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/manifest.json +887 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/salesOrderMetadata_qunit.xml +4995 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/CollaborationFormatters.spec.js +48 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/CollaborationFormatters.spec.ts +48 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.js +131 -51
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.ts +81 -31
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.js +13 -7
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.ts +12 -6
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/MassEditHelper.spec.js +17 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/MassEditHelper.spec.ts +24 -7
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.js +61 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.ts +59 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/PasteHelper.spec.js +3 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/PasteHelper.spec.ts +1 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/SemanticDateOperators.spec.js +4 -4
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/SemanticDateOperators.spec.ts +6 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/StableIdHelper.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/StableIdHelper.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/__snapshots__/AppStartupHelper.spec.ts.snap +19 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/__snapshots__/MassEditHelper.spec.ts.snap +0 -73
- package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/ChangePageConfiguration.spec.js +11 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/ChangePageConfiguration.spec.ts +15 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/__snapshots__/ChangePageConfiguration.spec.ts.snap +30 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.js +49 -5
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.ts +60 -5
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/DataModelPathHelper.spec.js +384 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/DataModelPathHelper.spec.ts +427 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.js +132 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.ts +156 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/UIFormatters.spec.js +273 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/UIFormatters.spec.ts +402 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/ValueHelpTemplating.spec.js +45 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/ValueHelpTemplating.spec.ts +40 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/TemplatingExpressions.qunit.js +2 -1
- package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +0 -102
- package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.100.json +326 -0
- package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.99.json +0 -22
- package/packages/sap.fe.macros/src/sap/fe/macros/.library +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/.theming +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata-dbg.js +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI-dbg.js +22 -43
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI.ts +3 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +14 -24
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicator.fragment.xml +3 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/Field.fragment.xml +16 -18
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +162 -100
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.ts +93 -16
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.fragment.xml +2 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata-dbg.js +16 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +58 -83
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +16 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +112 -192
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FormAPI-dbg.js +4 -20
- package/packages/sap.fe.macros/src/sap/fe/macros/FormAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainerAPI-dbg.js +10 -31
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainerAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI-dbg.js +147 -162
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.ts +32 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata-dbg.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +56 -74
- package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +90 -39
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +284 -251
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +126 -14
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +38 -101
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +68 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +72 -12
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +67 -10
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +5 -12
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/DraftEditState.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper-dbg.js +1 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils-dbg.js +62 -39
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue-dbg.js +104 -50
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue.js +2 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue.ts +68 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range-dbg.js +83 -35
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range.js +2 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range.ts +66 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value-dbg.js +327 -216
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value.js +2 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value.ts +303 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollaborationAvatar.fragment.xml +15 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata-dbg.js +14 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.ts +18 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.fragment.xml +12 -29
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata-dbg.js +9 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +1 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata-dbg.js +529 -533
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata.js +2 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata.ts +568 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/FilterField.fragment.xml +0 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator-dbg.js +3 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator.ts +3 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldContent.fragment.xml +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +13 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/DataPoint.fragment.xml +4 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ExpandableText.fragment.xml +1 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LabelSemanticKey.fragment.xml +1 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Link.fragment.xml +38 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWithQuickViewForm.fragment.xml +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWrapper.fragment.xml +3 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/MdcFieldWithValueHelp.fragment.xml +1 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectIdentifier.fragment.xml +55 -11
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/SemanticKeyWithDraftIndicator.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Text.fragment.xml +3 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DatePicker.fragment.xml +9 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DateTimePicker.fragment.xml +9 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/Input.fragment.xml +12 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithUnit.fragment.xml +26 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithValueHelp.fragment.xml +10 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/RatingIndicator.fragment.xml +9 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TimePicker.fragment.xml +9 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/fragments/ObjectIdentifierContent.fragment.xml +4 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +31 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +20 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime-dbg.js +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.ts +7 -9
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +90 -118
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +13 -12
- package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +185 -214
- package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +4 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/library.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +9 -9
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +4 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +4 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saptrc.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +4 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +4 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +273 -199
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Column.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +2 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/CreationRow.fragment.xml +13 -20
- package/packages/sap.fe.macros/src/sap/fe/macros/table/CustomColumn.fragment.xml +1 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +5 -110
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +98 -78
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.metadata-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.metadata.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +211 -10
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.jsmeta.json +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.js +1 -45
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.ts +0 -60
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldAPI.spec.js +78 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldAPI.spec.ts +71 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.js +35 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.ts +44 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarDelegate.spec.js +0 -76
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarMacro.spec.js +27 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarMacro.spec.ts +28 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterFieldHelper.spec.js +10 -12
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterFieldHelper.spec.ts +10 -10
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterUtils.spec.js +129 -15
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroAPI.spec.js +13 -39
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroAPI.spec.ts +2 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/RetrieveTextFromValueList.spec.js +119 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/RetrieveTextFromValueList.spec.ts +113 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/Table.spec.js +166 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/Table.spec.ts +190 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.js +457 -389
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.ts +504 -425
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.js +104 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.ts +158 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ChartDelegate.spec.ts.snap +0 -6
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/DatapointMacro.spec.ts.snap +5 -5
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroDataFieldTypes.spec.ts.snap +114 -25
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroWithSemanticKey.spec.ts.snap +40 -40
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroWithValueHelp.spec.ts.snap +4 -8
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterBarMacro.spec.ts.snap +19 -19
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterField.spec.ts.snap +3 -5
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +12 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/SimpleFieldMacro.spec.ts.snap +89 -90
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/Table.spec.ts.snap +1314 -58
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/TableMacro.spec.ts.snap +459 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroDataFieldTypes.cds +18 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/QuickViewForm.cds +6 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Table.cds +107 -106
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/TableAPI.cds +197 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.js +33 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.ts +30 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.js +72 -29
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.ts +86 -18
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/__snapshots__/columnWidth.spec.ts.snap +51 -27
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.js +55 -9
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.ts +46 -6
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/data/columnWidth.cds +28 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.js +170 -43
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.ts +131 -15
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/__snapshots__/TableDelegate.spec.ts.snap +90 -53
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/tsx/TestTSX.spec.tsx +2 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/index.json +0 -5
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelper.qunit.js +1 -99
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormElementTemplating.qunit.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MacroMetadata.qunit.js +4 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelper.qunit.js +4 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueHelpTemplating.qunit.js +15 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueListHelper.qunit.js +265 -106
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/metadata/simpleMetadata.js +38 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.100.json +372 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.99.json +0 -11
- package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +2 -2
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js.map +2 -2
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +2 -2
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js.map +2 -2
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +3 -3
- package/packages/sap.fe.navigation/src/sap/fe/navigation/resources.json +8 -8
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -1
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js.map +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js.map +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +3 -3
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/resources.json +27 -27
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/css_variables.source.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/resources.json +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/css_variables.less +315 -14
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/css_variables.source.less +315 -14
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/resources.json +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/css_variables.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/css_variables.source.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/resources.json +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/css_variables.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/css_variables.source.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/resources.json +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/css_variables.less +315 -14
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/css_variables.source.less +315 -14
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/resources.json +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/css_variables.less +317 -16
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/css_variables.source.less +317 -16
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/resources.json +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/css_variables.less +317 -16
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/css_variables.source.less +317 -16
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/resources.json +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/css_variables.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/css_variables.source.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/resources.json +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/css_variables.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/css_variables.source.less +316 -15
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/resources.json +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_horizon/css_variables.less +400 -99
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_horizon/css_variables.source.less +400 -99
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_horizon/resources.json +2 -2
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -1
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/.library +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/.theming +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/resources.json +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component-dbg.js +7 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +22 -21
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +13 -18
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +7 -7
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.xml +3 -3
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +50 -9
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +1 -12
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +5 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +50 -17
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +7 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/FlexBox-dbg.designtime.js +3 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +19 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/CollaborationDraft.fragment.xml +36 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +1 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacetCustomContainer.fragment.xml +1 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl-dbg.controller.js +3 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer-dbg.controller.js +3 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/designtime/library-preload.designtime.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/designtime/library-preload.designtime.js.map +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +4 -3
- package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +22 -21
- package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +4 -4
- package/packages/sap.fe.templates/src/sap/fe/templates/library.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +14 -14
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ar.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_bg.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ca.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cs.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cy.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_da.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_de.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_el.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_GB.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es_MX.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_et.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fi.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr_CA.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hi.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hr.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hu.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_id.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_it.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_iw.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ja.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_kk.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ko.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lt.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lv.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ms.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_nl.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_no.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pl.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt_PT.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ro.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ru.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sh.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sk.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sl.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sv.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_th.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_tr.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_uk.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_vi.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_CN.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_TW.properties +0 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +115 -89
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +353 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.jsmeta.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/IntentBasedNavigation.spec.js +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/IntentBasedNavigation.spec.ts +3 -3
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/Share.spec.js +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/Share.spec.ts +4 -4
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/ViewState.spec.js +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/ViewState.spec.ts +2 -2
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.js +2 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.ts +2 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/HeaderFacet.spec.ts.snap +7 -7
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.js +30 -61
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.ts +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.100.json +192 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.99.json +0 -11
- package/packages/sap.fe.test/src/sap/fe/test/.library +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/.theming +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/FeMocks-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/FeMocks.ts +8 -8
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper-dbg.js +6 -4
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.ts +10 -6
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper-dbg.js +126 -203
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.ts +17 -2
- package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAPI-dbg.js +9 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAPI.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +2 -2
- package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js.map +2 -2
- package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +9 -18
- package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +3 -3
- package/packages/sap.fe.test/src/sap/fe/test/library.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/manifest.json +3 -3
- package/packages/sap.fe.test/src/sap/fe/test/resources.json +18 -18
- package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -1
- package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplatingTs.qunit.js +0 -271
|
@@ -736,6 +736,92 @@ sap.ui.define(["sap/fe/core/TransactionHelper", "sap/fe/core/BusyLocker", "sap/f
|
|
|
736
736
|
}
|
|
737
737
|
});
|
|
738
738
|
});
|
|
739
|
+
describe("deleteDocument(): warning text", function () {
|
|
740
|
+
var oTransactionHelper;
|
|
741
|
+
var vContexts;
|
|
742
|
+
var oGetProgrammingModelMock;
|
|
743
|
+
var oDeleteDraftMock;
|
|
744
|
+
var oGetTranslatedTextMock;
|
|
745
|
+
var mParams;
|
|
746
|
+
var messageHandler;
|
|
747
|
+
|
|
748
|
+
function createContext(salesOrder) {
|
|
749
|
+
return {
|
|
750
|
+
getObject: function () {
|
|
751
|
+
return {
|
|
752
|
+
SalesOrder: salesOrder
|
|
753
|
+
};
|
|
754
|
+
}
|
|
755
|
+
};
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
beforeEach(function () {
|
|
759
|
+
oTransactionHelper = new TransactionHelper(oAppComponent, oLockObject);
|
|
760
|
+
oGetProgrammingModelMock = jest.spyOn(oTransactionHelper, "getProgrammingModel");
|
|
761
|
+
oGetProgrammingModelMock.mockReturnValue("Draft");
|
|
762
|
+
messageHandler = {
|
|
763
|
+
showMessageDialog: function () {
|
|
764
|
+
return Promise.resolve();
|
|
765
|
+
},
|
|
766
|
+
showMessages: function () {
|
|
767
|
+
return Promise.resolve();
|
|
768
|
+
}
|
|
769
|
+
};
|
|
770
|
+
oDeleteDraftMock = jest.spyOn(draft, "deleteDraft");
|
|
771
|
+
oDeleteDraftMock.mockResolvedValue();
|
|
772
|
+
oGetTranslatedTextMock = jest.spyOn(CommonUtils, "getTranslatedText");
|
|
773
|
+
oGetTranslatedTextMock.mockReturnValue("");
|
|
774
|
+
});
|
|
775
|
+
afterEach(function () {
|
|
776
|
+
jest.restoreAllMocks();
|
|
777
|
+
});
|
|
778
|
+
it("Warning text when only title is available", function () {
|
|
779
|
+
try {
|
|
780
|
+
vContexts = [createContext(2915717)];
|
|
781
|
+
mParams = {
|
|
782
|
+
noDialog: true,
|
|
783
|
+
title: "2915717",
|
|
784
|
+
entitySetName: "SalesOrderManage"
|
|
785
|
+
};
|
|
786
|
+
return Promise.resolve(oTransactionHelper.deleteDocument(vContexts, mParams, {}, messageHandler)).then(function () {
|
|
787
|
+
expect(oGetTranslatedTextMock).toBeCalledWith("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO", {}, ["2915717", ""], "SalesOrderManage");
|
|
788
|
+
});
|
|
789
|
+
} catch (e) {
|
|
790
|
+
return Promise.reject(e);
|
|
791
|
+
}
|
|
792
|
+
});
|
|
793
|
+
it("Warning text when only description is available", function () {
|
|
794
|
+
try {
|
|
795
|
+
vContexts = [createContext(2915717)];
|
|
796
|
+
mParams = {
|
|
797
|
+
noDialog: true,
|
|
798
|
+
description: "SalesOrder",
|
|
799
|
+
entitySetName: "SalesOrderManage"
|
|
800
|
+
};
|
|
801
|
+
return Promise.resolve(oTransactionHelper.deleteDocument(vContexts, mParams, {}, messageHandler)).then(function () {
|
|
802
|
+
expect(oGetTranslatedTextMock).toBeCalledWith("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR", {});
|
|
803
|
+
});
|
|
804
|
+
} catch (e) {
|
|
805
|
+
return Promise.reject(e);
|
|
806
|
+
}
|
|
807
|
+
});
|
|
808
|
+
it("Warning text when both description and title is available", function () {
|
|
809
|
+
try {
|
|
810
|
+
vContexts = [createContext(2915717)];
|
|
811
|
+
mParams = {
|
|
812
|
+
noDialog: true,
|
|
813
|
+
title: "2915717",
|
|
814
|
+
description: "SalesOrder",
|
|
815
|
+
entitySetName: "SalesOrderManage"
|
|
816
|
+
};
|
|
817
|
+
return Promise.resolve(oTransactionHelper.deleteDocument(vContexts, mParams, {}, messageHandler)).then(function () {
|
|
818
|
+
expect(oGetTranslatedTextMock).toBeCalledWith("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO", {}, ["2915717", "SalesOrder"], "SalesOrderManage");
|
|
819
|
+
});
|
|
820
|
+
} catch (e) {
|
|
821
|
+
return Promise.reject(e);
|
|
822
|
+
}
|
|
823
|
+
});
|
|
824
|
+
});
|
|
739
825
|
});
|
|
740
826
|
}, false);
|
|
741
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyYW5zYWN0aW9uSGVscGVyLnNwZWMudHMiXSwibmFtZXMiOlsiYm9keSIsInJlY292ZXIiLCJyZXN1bHQiLCJlIiwidGhlbiIsIm9BcHBDb21wb25lbnQiLCJvTG9ja09iamVjdCIsImRlc2NyaWJlIiwib1RyYW5zYWN0aW9uSGVscGVyIiwiVHJhbnNhY3Rpb25IZWxwZXIiLCJhTmV3QWN0aW9uVGVzdERhdGEiLCJzRGVzY3JpcHRpb24iLCJvU3RhcnR1cFBhcmFtZXRlcnMiLCJzQ3JlYXRlSGFzaCIsIm9NZXRhTW9kZWwiLCJzTWV0YVBhdGgiLCJzRXhwZWN0ZWRSZXN1bHQiLCJ1bmRlZmluZWQiLCJzRGVzY09uU3VjY2VzcyIsInByZWZlcnJlZE1vZGUiLCJnZXRPYmplY3QiLCJmb3JFYWNoIiwib1Rlc3REYXRhIiwiaXQiLCJzUmVzdWx0IiwiX2dldE5ld0FjdGlvbiIsImV4cGVjdCIsInRvRXF1YWwiLCJhVGVzdHMiLCJ0aXRsZSIsInNOZXdBY3Rpb24iLCJvUmVzb3VyY2VCdW5kbGVDb3JlIiwiZXhwZWN0ZWQiLCJnZXRUZXh0Iiwic0Fubm90YXRpb24iLCIkVHlwZSIsIkFjdGlvbiIsIkxhYmVsIiwiTmF2aWdhdGlvbkF2YWlsYWJsZSIsIlJlcXVpcmVzQ29udGV4dCIsIlNlbWFudGljT2JqZWN0IiwiVmFsdWUiLCIkUGF0aCIsIm9UZXN0IiwiX2dldFNwZWNpZmljQ3JlYXRlQWN0aW9uRGlhbG9nTGFiZWwiLCJ0b0JlIiwib0NvbnRleHQiLCJvTG9ja01vY2siLCJvVW5sb2NrTW9jayIsIm9HZXRQcm9ncmFtbWluZ01vZGVsTW9jayIsIm9PbkJlZm9yZURpc2NhcmRNb2NrIiwib0RlbGV0ZURyYWZ0TW9jayIsIm9EaXNjYXJkRG9jdW1lbnRNb2NrIiwibVBhcmFtcyIsIm1lc3NhZ2VIYW5kbGVyIiwiYmVmb3JlRWFjaCIsImdldE1vZGVsIiwiYmluZENvbnRleHQiLCJnZXRCb3VuZENvbnRleHQiLCJyZXF1ZXN0T2JqZWN0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJnZXRQYXRoIiwiaGFzUGVuZGluZ0NoYW5nZXMiLCJnZXRCaW5kaW5nIiwicmVzZXRDaGFuZ2VzIiwicmVmcmVzaCIsImplc3QiLCJzcHlPbiIsIkJ1c3lMb2NrZXIiLCJtb2NrSW1wbGVtZW50YXRpb24iLCJjYW5jZWxCdXR0b24iLCJza2lwRGlzY2FyZFBvcG92ZXIiLCJiZWZvcmVDYW5jZWxDYWxsQmFjayIsInJlbW92ZVRyYW5zaXRpb25NZXNzYWdlcyIsInNob3dNZXNzYWdlcyIsImRyYWZ0Iiwic3RpY2t5IiwiYWZ0ZXJFYWNoIiwicmVzdG9yZUFsbE1vY2tzIiwiY2FuY2VsRG9jdW1lbnQiLCJ0b0hhdmVCZWVuQ2FsbGVkVGltZXMiLCJ0b0JlQ2FsbGVkV2l0aCIsInJlamVjdCIsInZDb250ZXh0cyIsIm9PbkJlZm9yZURlbGV0ZU1vY2siLCJvRmluZEFjdGl2ZURyYWZ0Um9vdENvbnRleHRzTW9jayIsIm9BZnRlckRlbGV0ZVByb2Nlc3NNb2NrIiwib0dldFRyYW5zbGF0ZWRUZXh0TW9jayIsImNyZWF0ZUNvbnRleHQiLCJzYWxlc09yZGVyIiwiU2FsZXNPcmRlciIsIm1vY2tSZXR1cm5WYWx1ZSIsInVuU2F2ZWRDb250ZXh0cyIsImxvY2tlZENvbnRleHRzIiwiZWRpdEZsb3ciLCJiYXNlIiwib25CZWZvcmVEZWxldGUiLCJzaG93TWVzc2FnZURpYWxvZyIsIm1vY2tSZXNvbHZlZFZhbHVlIiwiQ29tbW9uVXRpbHMiLCJudW1iZXJPZlNlbGVjdGVkQ29udGV4dHMiLCJub0RpYWxvZyIsImJlZm9yZURlbGV0ZUNhbGxCYWNrIiwiZGVsZXRlRG9jdW1lbnQiLCJvTWFpbkxpc3RCaW5kaW5nIiwib09uQmVmb3JlQ3JlYXRlTW9jayIsIm9BcHBDb21wb25lbnRNb2NrIiwib01vZGVsSGVscGVyTW9jayIsIm9DYWxsRnVuY3Rpb25JbXBvcnRNb2NrIiwib09uQWZ0ZXJDcmVhdGVDb21wbGV0aW9uTW9jayIsIm9DcmVhdGVNb2NrIiwibW9ja01vZGVsIiwiTW9ja01vZGVsIiwibW9ja01ldGFNb2RlbCIsIk1vY2tNZXRhTW9kZWwiLCJzZXRNZXRhTW9kZWwiLCJnZXRIZWFkZXJDb250ZXh0IiwiaXNSZWxhdGl2ZSIsImNyZWF0ZSIsImdldENvbXBvbmVudERhdGEiLCJnZXRSb3V0ZXJQcm94eSIsImdldEhhc2giLCJNb2RlbEhlbHBlciIsIm9wZXJhdGlvbnMiLCJjcmVhdGlvbk1vZGUiLCJiZWZvcmVDcmVhdGVDYWxsQmFjayIsImNyZWF0ZURvY3VtZW50Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7O0FBZ2pCTyxrQkFBZ0JBLElBQWhCLEVBQXNCQyxPQUF0QixFQUErQjtBQUNyQyxRQUFJO0FBQ0gsVUFBSUMsTUFBTSxHQUFHRixJQUFJLEVBQWpCO0FBQ0EsS0FGRCxDQUVFLE9BQU1HLENBQU4sRUFBUztBQUNWLGFBQU9GLE9BQU8sQ0FBQ0UsQ0FBRCxDQUFkO0FBQ0E7O0FBQ0QsUUFBSUQsTUFBTSxJQUFJQSxNQUFNLENBQUNFLElBQXJCLEVBQTJCO0FBQzFCLGFBQU9GLE1BQU0sQ0FBQ0UsSUFBUCxDQUFZLEtBQUssQ0FBakIsRUFBb0JILE9BQXBCLENBQVA7QUFDQTs7QUFDRCxXQUFPQyxNQUFQO0FBQ0E7O0FBbmpCRCxNQUFNRyxhQUFrQixHQUFHLEVBQTNCO0FBQ0EsTUFBTUMsV0FBZ0IsR0FBRyxFQUF6QjtBQUNBQyxFQUFBQSxRQUFRLENBQUMsbUJBQUQsRUFBc0IsWUFBTTtBQUNuQyxRQUFNQyxrQkFBa0IsR0FBRyxJQUFJQyxpQkFBSixDQUFzQkosYUFBdEIsRUFBcUNDLFdBQXJDLENBQTNCO0FBRUFDLElBQUFBLFFBQVEsQ0FBQyxtQkFBRCxFQUFzQixZQUFNO0FBQ25DLFVBQU1HLGtCQUFrQixHQUFHLENBQzFCO0FBQ0NDLFFBQUFBLFlBQVksRUFBRSxzQkFEZjtBQUVDQyxRQUFBQSxrQkFBa0IsRUFBRSxFQUZyQjtBQUdDQyxRQUFBQSxXQUFXLEVBQUUsRUFIZDtBQUlDQyxRQUFBQSxVQUFVLEVBQUUsRUFKYjtBQUtDQyxRQUFBQSxTQUFT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U0FUQztBQUFBO0FBQUE7QUFBQSxRQUFGO0FBVUExRCxNQUFBQSxFQUFFLENBQUMsNEJBQUQ7QUFBQSxZQUEyQztBQUFBLDBDQUN4QztBQUNIbUYsWUFBQUEsbUJBQW1CLEdBQUd2QyxJQUFJLENBQUNDLEtBQUwsQ0FBV2YsT0FBWCxFQUFvQixzQkFBcEIsQ0FBdEI7QUFDQXFELFlBQUFBLG1CQUFtQixDQUFDUCxpQkFBcEI7QUFDQVksWUFBQUEsV0FBVyxHQUFHNUMsSUFBSSxDQUFDQyxLQUFMLENBQVdxQyxnQkFBWCxFQUE2QixRQUE3QixDQUFkO0FBQ0FNLFlBQUFBLFdBQVcsQ0FBQ1osaUJBQVo7QUFKRyxtQ0FLRzNGLGtCQUFrQixDQUFDdUgsY0FBbkIsQ0FBa0N0QixnQkFBbEMsRUFBb0RwRCxPQUFwRCxFQUE2RCxFQUE3RCxFQUFpRUMsY0FBakUsRUFBaUYsS0FBakYsRUFBd0ZyQyxTQUF4RixDQUxIO0FBTUgsV0FQMkMsY0FPcEM7QUFDUFMsWUFBQUEsTUFBTSxDQUFDZ0YsbUJBQUQsQ0FBTixDQUE0QnpCLHFCQUE1QixDQUFrRCxDQUFsRDtBQUNBdkQsWUFBQUEsTUFBTSxDQUFDZ0YsbUJBQUQsQ0FBTixDQUE0QnhCLGNBQTVCLENBQTJDO0FBQUUsNkJBQWU7QUFBakIsYUFBM0M7QUFDQXhELFlBQUFBLE1BQU0sQ0FBQ3FGLFdBQUQsQ0FBTixDQUFvQjlCLHFCQUFwQixDQUEwQyxDQUExQztBQUNBLFdBWDJDOztBQUFBO0FBWTVDLFNBWkM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQWFBLEtBaEhPLENBQVI7QUFpSEEsR0FuckJPLENBQVIiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUcmFuc2FjdGlvbkhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvVHJhbnNhY3Rpb25IZWxwZXJcIjtcbmltcG9ydCBCdXN5TG9ja2VyIGZyb20gXCJzYXAvZmUvY29yZS9CdXN5TG9ja2VyXCI7XG5pbXBvcnQgZHJhZnQgZnJvbSBcInNhcC9mZS9jb3JlL2FjdGlvbnMvZHJhZnRcIjtcbmltcG9ydCBzdGlja3kgZnJvbSBcInNhcC9mZS9jb3JlL2FjdGlvbnMvc3RpY2t5XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgeyBNb2NrTWV0YU1vZGVsLCBNb2NrTW9kZWwgfSBmcm9tIFwic2FwL2ZlL3Rlc3QvVUk1TW9ja0hlbHBlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgb3BlcmF0aW9ucyBmcm9tIFwic2FwL2ZlL2NvcmUvYWN0aW9ucy9vcGVyYXRpb25zXCI7XG5cbmNvbnN0IG9BcHBDb21wb25lbnQ6IGFueSA9IHt9O1xuY29uc3Qgb0xvY2tPYmplY3Q6IGFueSA9IHt9O1xuZGVzY3JpYmUoXCJUcmFuc2FjdGlvbkhlbHBlclwiLCAoKSA9PiB7XG5cdGNvbnN0IG9UcmFuc2FjdGlvbkhlbHBlciA9IG5ldyBUcmFuc2FjdGlvbkhlbHBlcihvQXBwQ29tcG9uZW50LCBvTG9ja09iamVjdCk7XG5cblx0ZGVzY3JpYmUoXCJfZ2V0TmV3QWN0aW9uKCk6IFwiLCAoKSA9PiB7XG5cdFx0Y29uc3QgYU5ld0FjdGlvblRlc3REYXRhID0gW1xuXHRcdFx0e1xuXHRcdFx0XHRzRGVzY3JpcHRpb246IFwiVGVzdGluZyBlbXB0eSB2YWx1ZXNcIixcblx0XHRcdFx0b1N0YXJ0dXBQYXJhbWV0ZXJzOiB7fSxcblx0XHRcdFx0c0NyZWF0ZUhhc2g6IFwiXCIsXG5cdFx0XHRcdG9NZXRhTW9kZWw6IHt9LFxuXHRcdFx0XHRzTWV0YVBhdGg6IFwiXCIsXG5cdFx0XHRcdHNFeHBlY3RlZFJlc3VsdDogdW5kZWZpbmVkLFxuXHRcdFx0XHRzRGVzY09uU3VjY2VzczogXCJlbXB0eSBwYXJhbWV0ZXJzOiB1bmRlZmluZWQgcmVzdWx0XCJcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdHNEZXNjcmlwdGlvbjogXCJNaXNzaW5nIE1ldGFNb2RlbFwiLFxuXHRcdFx0XHRvU3RhcnR1cFBhcmFtZXRlcnM6IHtcblx0XHRcdFx0XHRwcmVmZXJyZWRNb2RlOiBbXCJjcmVhdGVXaXRoOmNvbS5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2QuQ3JlYXRlRnJvbUN1c3RvbWVyXCJdXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHNDcmVhdGVIYXNoOiBcIlwiLFxuXHRcdFx0XHRvTWV0YU1vZGVsOiB7fSxcblx0XHRcdFx0c01ldGFQYXRoOiBcIlwiLFxuXHRcdFx0XHRzRXhwZWN0ZWRSZXN1bHQ6IHVuZGVmaW5lZCxcblx0XHRcdFx0c0Rlc2NPblN1Y2Nlc3M6IFwibWlzc2luZyBNZXRhTW9kZWw6IHVuZGVmaW5lZCByZXN1bHRcIlxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0c0Rlc2NyaXB0aW9uOiBcInZhbGlkIGZ1bmN0aW9uIGNhbGxcIixcblx0XHRcdFx0b1N0YXJ0dXBQYXJhbWV0ZXJzOiB7XG5cdFx0XHRcdFx0cHJlZmVycmVkTW9kZTogW1wiY3JlYXRlV2l0aDpjb20uY19zYWxlc29yZGVybWFuYWdlX3NkLkNyZWF0ZUZyb21DdXN0b21lclwiXVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRzQ3JlYXRlSGFzaDogXCJTYWxlc09yZGVyTWFuYWdlKC4uLik/aS1hY3Rpb249Y3JlYXRlV2l0aFwiLFxuXHRcdFx0XHRvTWV0YU1vZGVsOiB7XG5cdFx0XHRcdFx0Z2V0T2JqZWN0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdHJldHVybiBcIk5ld0FjdGlvbiBmdW5jdGlvblwiO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0c01ldGFQYXRoOiBcIi9TYWxlc09yZGVyTWFuYWdlXCIsXG5cdFx0XHRcdHNFeHBlY3RlZFJlc3VsdDogXCJjb20uY19zYWxlc29yZGVybWFuYWdlX3NkLkNyZWF0ZUZyb21DdXN0b21lclwiLFxuXHRcdFx0XHRzRGVzY09uU3VjY2VzczogXCJ2YWxpZCBwYXJhbWV0ZXJzOiBmdW5jdGlvbiBmb3IgQ3JlYXRlV2l0aCByZXR1cm5lZFwiXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRzRGVzY3JpcHRpb246IFwidmFsaWQgZnVuY3Rpb24gY2FsbCBmb3IgTmV3QWN0aW9uXCIsXG5cdFx0XHRcdG9TdGFydHVwUGFyYW1ldGVyczoge1xuXHRcdFx0XHRcdHByZWZlcnJlZE1vZGU6IFtcImNyZWF0ZVwiXVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRzQ3JlYXRlSGFzaDogXCJTYWxlc09yZGVyTWFuYWdlKC4uLik/aS1hY3Rpb249Y3JlYXRlXCIsXG5cdFx0XHRcdG9NZXRhTW9kZWw6IHtcblx0XHRcdFx0XHRnZXRPYmplY3Q6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFwiTmV3QWN0aW9uIGZ1bmN0aW9uXCI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRzTWV0YVBhdGg6IFwiL1NhbGVzT3JkZXJNYW5hZ2VcIixcblx0XHRcdFx0c0V4cGVjdGVkUmVzdWx0OiBcIk5ld0FjdGlvbiBmdW5jdGlvblwiLFxuXHRcdFx0XHRzRGVzY09uU3VjY2VzczogXCJ2YWxpZCBwYXJhbWV0ZXJzOiBmdW5jdGlvbiBmb3IgQ3JlYXRlIGZyb20gTmV3QWN0aW9uIHJldHVybmVkXCJcblx0XHRcdH1cblx0XHRdO1xuXG5cdFx0YU5ld0FjdGlvblRlc3REYXRhLmZvckVhY2gob1Rlc3REYXRhID0+IHtcblx0XHRcdGl0KFxuXHRcdFx0XHRvVGVzdERhdGEuc0Rlc2NyaXB0aW9uLFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0XCJyZWZlcmVuY2VzXCI6IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJ0eXBlXCI6IFwiXCIsXG5cdFx0XHRcdFx0XHRcdFwiSURcIjogXCJcIlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF1cblx0XHRcdFx0fSxcblx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0Y29uc3Qgc1Jlc3VsdCA9IG9UcmFuc2FjdGlvbkhlbHBlci5fZ2V0TmV3QWN0aW9uKFxuXHRcdFx0XHRcdFx0b1Rlc3REYXRhLm9TdGFydHVwUGFyYW1ldGVycyxcblx0XHRcdFx0XHRcdG9UZXN0RGF0YS5zQ3JlYXRlSGFzaCxcblx0XHRcdFx0XHRcdG9UZXN0RGF0YS5vTWV0YU1vZGVsIGFzIGFueSxcblx0XHRcdFx0XHRcdG9UZXN0RGF0YS5zTWV0YVBhdGhcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGV4cGVjdChzUmVzdWx0KS50b0VxdWFsKG9UZXN0RGF0YS5zRXhwZWN0ZWRSZXN1bHQpO1xuXHRcdFx0XHR9XG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcIl9nZXRTcGVjaWZpY0NyZWF0ZUFjdGlvbkRpYWxvZ0xhYmVsKCk6IFwiLCAoKSA9PiB7XG5cdFx0Y29uc3QgYVRlc3RzID0gW1xuXHRcdFx0e1xuXHRcdFx0XHR0aXRsZTogXCJhbGwgZW1wdHkgb3IgdW5kZWZpbmVkXCIsXG5cdFx0XHRcdG9NZXRhTW9kZWw6IHVuZGVmaW5lZCxcblx0XHRcdFx0c01ldGFQYXRoOiBcIlwiLFxuXHRcdFx0XHRzTmV3QWN0aW9uOiBcIlwiLFxuXHRcdFx0XHRvUmVzb3VyY2VCdW5kbGVDb3JlOiB1bmRlZmluZWQsXG5cdFx0XHRcdGV4cGVjdGVkOiB1bmRlZmluZWRcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdHRpdGxlOiBcIndpdGggZW1wdHkgTWV0YU1vZGVsIGFuZCB2YWxpZCBSZXNvdXJjZUJ1bmRsZVwiLFxuXHRcdFx0XHRvTWV0YU1vZGVsOiB1bmRlZmluZWQsXG5cdFx0XHRcdHNNZXRhUGF0aDogXCJcIixcblx0XHRcdFx0c05ld0FjdGlvbjogXCJcIixcblx0XHRcdFx0b1Jlc291cmNlQnVuZGxlQ29yZToge1xuXHRcdFx0XHRcdGdldFRleHQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFwiQ3JlYXRlXCI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRleHBlY3RlZDogXCJDcmVhdGVcIlxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0dGl0bGU6IFwiTWV0YU1vZGVsIHJldHVybnMgdW5kZWZpbmVkXCIsXG5cdFx0XHRcdG9NZXRhTW9kZWw6IHtcblx0XHRcdFx0XHRnZXRPYmplY3Q6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHNNZXRhUGF0aDogXCJcIixcblx0XHRcdFx0c05ld0FjdGlvbjogXCJcIixcblx0XHRcdFx0b1Jlc291cmNlQnVuZGxlQ29yZToge1xuXHRcdFx0XHRcdGdldFRleHQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFwiQ3JlYXRlXCI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRleHBlY3RlZDogXCJDcmVhdGVcIlxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0dGl0bGU6IFwiTWV0YU1vZGVsIHJldHVybnMgbGFiZWwgZm9yIEFjdGlvblwiLFxuXHRcdFx0XHRvTWV0YU1vZGVsOiB7XG5cdFx0XHRcdFx0Z2V0T2JqZWN0OiBmdW5jdGlvbihzQW5ub3RhdGlvbjogc3RyaW5nKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gc0Fubm90YXRpb24gPT09XG5cdFx0XHRcdFx0XHRcdFwiL1NhbGVzT3JkZXJNYW5hZ2UvY29tLmNfc2FsZXNvcmRlcm1hbmFnZV9zZC5DcmVhdGVGcm9tQ3VzdG9tZXJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkxhYmVsXCJcblx0XHRcdFx0XHRcdFx0PyBcIkFjdGlvbjogQ3JlYXRlIGZyb20gQ3VzdG9tZXJcIlxuXHRcdFx0XHRcdFx0XHQ6IHVuZGVmaW5lZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHNNZXRhUGF0aDogXCIvU2FsZXNPcmRlck1hbmFnZVwiLFxuXHRcdFx0XHRzTmV3QWN0aW9uOiBcImNvbS5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2QuQ3JlYXRlRnJvbUN1c3RvbWVyXCIsXG5cdFx0XHRcdG9SZXNvdXJjZUJ1bmRsZUNvcmU6IHtcblx0XHRcdFx0XHRnZXRUZXh0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdHJldHVybiBcIkNyZWF0ZVwiO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0ZXhwZWN0ZWQ6IFwiQWN0aW9uOiBDcmVhdGUgZnJvbSBDdXN0b21lclwiXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHR0aXRsZTogXCJMaW5lSXRlbSBhbmQgQWN0aW9uIGxhYmVsIGF2YWlsYWJsZSAtLT4gTGluZUl0ZW0gaGFzIHByaW9yaXR5XCIsXG5cdFx0XHRcdG9NZXRhTW9kZWw6IHtcblx0XHRcdFx0XHRnZXRPYmplY3Q6IGZ1bmN0aW9uKHNBbm5vdGF0aW9uOiBzdHJpbmcpIHtcblx0XHRcdFx0XHRcdHN3aXRjaCAoc0Fubm90YXRpb24pIHtcblx0XHRcdFx0XHRcdFx0Y2FzZSBcIi9TYWxlc09yZGVyTWFuYWdlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbVwiOlxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBbXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCRUeXBlOiBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEZvckFjdGlvblwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRBY3Rpb246IFwiY29tLmNfc2FsZXNvcmRlcm1hbmFnZV9zZC5DcmVhdGVXaXRoU2FsZXNPcmRlclR5cGVcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0TGFiZWw6IFwiQm91bmQgQWN0aW9uIHdpdGggcGFyYW1zXCJcblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCRUeXBlOiBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvblwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRBY3Rpb246IFwibWFuYWdlSW5saW5lXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdExhYmVsOiBcIklCTlwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHROYXZpZ2F0aW9uQXZhaWxhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRSZXF1aXJlc0NvbnRleHQ6IGZhbHNlLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRTZW1hbnRpY09iamVjdDogXCJTYWxlc09yZGVyXCJcblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCRUeXBlOiBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEZvckFjdGlvblwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRBY3Rpb246IFwiY29tLmNfc2FsZXNvcmRlcm1hbmFnZV9zZC5DcmVhdGVGcm9tQ3VzdG9tZXJcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0TGFiZWw6IFwiTGluZUl0ZW06IENyZWF0ZSBmcm9tIEN1c3RvbWVyXCJcblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCRUeXBlOiBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRWYWx1ZTogeyAkUGF0aDogXCJJRFwiIH1cblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRdO1xuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRjYXNlIFwiL1NhbGVzT3JkZXJNYW5hZ2UvY29tLmNfc2FsZXNvcmRlcm1hbmFnZV9zZC5DcmVhdGVGcm9tQ3VzdG9tZXJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkxhYmVsXCI6XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIFwiQWN0aW9uOiBDcmVhdGUgZnJvbSBDdXN0b21lclwiO1xuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRzTWV0YVBhdGg6IFwiL1NhbGVzT3JkZXJNYW5hZ2VcIixcblx0XHRcdFx0c05ld0FjdGlvbjogXCJjb20uY19zYWxlc29yZGVybWFuYWdlX3NkLkNyZWF0ZUZyb21DdXN0b21lclwiLFxuXHRcdFx0XHRvUmVzb3VyY2VCdW5kbGVDb3JlOiB7XG5cdFx0XHRcdFx0Z2V0VGV4dDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gXCJDcmVhdGVcIjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGV4cGVjdGVkOiBcIkxpbmVJdGVtOiBDcmVhdGUgZnJvbSBDdXN0b21lclwiXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHR0aXRsZTogXCJMaW5lSXRlbSBhbm5vdGF0aW9uIGhhcyBhZGRpdGlvbmFsIGNvbGxlY3Rpb24gaW4gYnJhY2tldHNcIixcblx0XHRcdFx0b01ldGFNb2RlbDoge1xuXHRcdFx0XHRcdGdldE9iamVjdDogZnVuY3Rpb24oc0Fubm90YXRpb246IHN0cmluZykge1xuXHRcdFx0XHRcdFx0c3dpdGNoIChzQW5ub3RhdGlvbikge1xuXHRcdFx0XHRcdFx0XHRjYXNlIFwiL1NhbGVzT3JkZXJNYW5hZ2UvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtXCI6XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0JFR5cGU6IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9yQWN0aW9uXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdEFjdGlvbjogXCJjb20uY19zYWxlc29yZGVybWFuYWdlX3NkLkNyZWF0ZVdpdGhTYWxlc09yZGVyVHlwZVwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRMYWJlbDogXCJCb3VuZCBBY3Rpb24gd2l0aCBwYXJhbXNcIlxuXHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0JFR5cGU6IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdExhYmVsOiBcIm5vIGFjdGlvbiBhdmFpbGFibGVcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0VmFsdWU6IHsgJFBhdGg6IFwiTk9BQ1RJT05cIiB9XG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQkVHlwZTogXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25cIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0QWN0aW9uOiBcIm1hbmFnZUlubGluZVwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRMYWJlbDogXCJJQk5cIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0TmF2aWdhdGlvbkF2YWlsYWJsZTogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0UmVxdWlyZXNDb250ZXh0OiBmYWxzZSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0U2VtYW50aWNPYmplY3Q6IFwiU2FsZXNPcmRlclwiXG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQkVHlwZTogXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JBY3Rpb25cIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0QWN0aW9uOlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiY29tLmNfc2FsZXNvcmRlcm1hbmFnZV9zZC5DcmVhdGVGcm9tQ3VzdG9tZXIoQ29sbGVjdGlvbihjb20uc2FwLmdhdGV3YXkuc3J2ZC5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2QudjAwMDEuU2FsZXNPcmRlck1hbmFnZVR5cGUpKVwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRMYWJlbDogXCJMaW5lSXRlbTogQ3JlYXRlIGZyb20gQ3VzdG9tZXJcIlxuXHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0JFR5cGU6IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFZhbHVlOiB7ICRQYXRoOiBcIklEXCIgfVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdF07XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdGNhc2UgXCIvU2FsZXNPcmRlck1hbmFnZS9jb20uY19zYWxlc29yZGVybWFuYWdlX3NkLkNyZWF0ZUZyb21DdXN0b21lckBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuTGFiZWxcIjpcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gXCJBY3Rpb246IENyZWF0ZSBmcm9tIEN1c3RvbWVyXCI7XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHNNZXRhUGF0aDogXCIvU2FsZXNPcmRlck1hbmFnZVwiLFxuXHRcdFx0XHRzTmV3QWN0aW9uOiBcImNvbS5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2QuQ3JlYXRlRnJvbUN1c3RvbWVyXCIsXG5cdFx0XHRcdG9SZXNvdXJjZUJ1bmRsZUNvcmU6IHtcblx0XHRcdFx0XHRnZXRUZXh0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdHJldHVybiBcIkNyZWF0ZVwiO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0ZXhwZWN0ZWQ6IFwiTGluZUl0ZW06IENyZWF0ZSBmcm9tIEN1c3RvbWVyXCJcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdHRpdGxlOiBcIkxpbmVJdGVtIGFubm90YXRpb24gd2l0aCBzaW1pbGFyIGFjdGlvbiBuYW1lc1wiLFxuXHRcdFx0XHRvTWV0YU1vZGVsOiB7XG5cdFx0XHRcdFx0Z2V0T2JqZWN0OiBmdW5jdGlvbihzQW5ub3RhdGlvbjogc3RyaW5nKSB7XG5cdFx0XHRcdFx0XHRzd2l0Y2ggKHNBbm5vdGF0aW9uKSB7XG5cdFx0XHRcdFx0XHRcdGNhc2UgXCIvU2FsZXNPcmRlck1hbmFnZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW1cIjpcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQkVHlwZTogXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JBY3Rpb25cIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0QWN0aW9uOiBcImNvbS5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2QuQ3JlYXRlV2l0aFNhbGVzT3JkZXJUeXBlXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdExhYmVsOiBcIkJvdW5kIEFjdGlvbiB3aXRoIHBhcmFtc1wiXG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQkVHlwZTogXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0TGFiZWw6IFwibm8gYWN0aW9uIGF2YWlsYWJsZVwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRWYWx1ZTogeyAkUGF0aDogXCJOT0FDVElPTlwiIH1cblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCRUeXBlOiBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEZvckFjdGlvblwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRBY3Rpb246IFwiY29tLmNfc2FsZXNvcmRlcm1hbmFnZV9zZC5DcmVhdGVGcm9tQ3VzdG9tZXJFeHRlbmRlZFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRMYWJlbDogXCJMaW5lSXRlbTogQ3JlYXRlIGZyb20gQ3VzdG9tZXIgRXh0ZW5kZWRcIlxuXHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0JFR5cGU6IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdEFjdGlvbjogXCJtYW5hZ2VJbmxpbmVcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0TGFiZWw6IFwiSUJOXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdE5hdmlnYXRpb25BdmFpbGFibGU6IHRydWUsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFJlcXVpcmVzQ29udGV4dDogZmFsc2UsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFNlbWFudGljT2JqZWN0OiBcIlNhbGVzT3JkZXJcIlxuXHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0JFR5cGU6IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9yQWN0aW9uXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdEFjdGlvbjogXCJjb20uY19zYWxlc29yZGVybWFuYWdlX3NkLkNyZWF0ZUZyb21DdXN0b21lclwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRMYWJlbDogXCJMaW5lSXRlbTogQ3JlYXRlIGZyb20gQ3VzdG9tZXJcIlxuXHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0JFR5cGU6IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFZhbHVlOiB7ICRQYXRoOiBcIklEXCIgfVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdF07XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdGNhc2UgXCIvU2FsZXNPcmRlck1hbmFnZS9jb20uY19zYWxlc29yZGVybWFuYWdlX3NkLkNyZWF0ZUZyb21DdXN0b21lckBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuTGFiZWxcIjpcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gXCJBY3Rpb246IENyZWF0ZSBmcm9tIEN1c3RvbWVyXCI7XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHNNZXRhUGF0aDogXCIvU2FsZXNPcmRlck1hbmFnZVwiLFxuXHRcdFx0XHRzTmV3QWN0aW9uOiBcImNvbS5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2QuQ3JlYXRlRnJvbUN1c3RvbWVyXCIsXG5cdFx0XHRcdG9SZXNvdXJjZUJ1bmRsZUNvcmU6IHtcblx0XHRcdFx0XHRnZXRUZXh0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdHJldHVybiBcIkNyZWF0ZVwiO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0ZXhwZWN0ZWQ6IFwiTGluZUl0ZW06IENyZWF0ZSBmcm9tIEN1c3RvbWVyXCJcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdHRpdGxlOiBcIk1ldGFNb2RlbCBoYXMgbGFiZWwgZm9yIEFjdGlvbiwgYnV0IE1ldGFQYXRoIG1pc3NpbmdcIixcblx0XHRcdFx0b01ldGFNb2RlbDoge1xuXHRcdFx0XHRcdGdldE9iamVjdDogZnVuY3Rpb24oc0Fubm90YXRpb246IHN0cmluZykge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHNBbm5vdGF0aW9uID09PVxuXHRcdFx0XHRcdFx0XHRcIi9TYWxlc09yZGVyTWFuYWdlL2NvbS5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2QuQ3JlYXRlRnJvbUN1c3RvbWVyQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5MYWJlbFwiXG5cdFx0XHRcdFx0XHRcdD8gXCJBY3Rpb246IENyZWF0ZSBieSBDdXN0b21lclwiXG5cdFx0XHRcdFx0XHRcdDogdW5kZWZpbmVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0c01ldGFQYXRoOiBcIlwiLFxuXHRcdFx0XHRzTmV3QWN0aW9uOiBcImNvbS5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2QuQ3JlYXRlRnJvbUN1c3RvbWVyXCIsXG5cdFx0XHRcdG9SZXNvdXJjZUJ1bmRsZUNvcmU6IHtcblx0XHRcdFx0XHRnZXRUZXh0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdHJldHVybiBcIkNyZWF0ZVwiO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0ZXhwZWN0ZWQ6IFwiQ3JlYXRlXCJcblx0XHRcdH1cblx0XHRdO1xuXG5cdFx0YVRlc3RzLmZvckVhY2gob1Rlc3QgPT4ge1xuXHRcdFx0aXQoXG5cdFx0XHRcdG9UZXN0LnRpdGxlLFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0XCJyZWZlcmVuY2VzXCI6IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJ0eXBlXCI6IFwiQkNQXCIsXG5cdFx0XHRcdFx0XHRcdFwiSURcIjogXCIyMTcwMzI2MzExXCJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGV4cGVjdChcblx0XHRcdFx0XHRcdG9UcmFuc2FjdGlvbkhlbHBlci5fZ2V0U3BlY2lmaWNDcmVhdGVBY3Rpb25EaWFsb2dMYWJlbChcblx0XHRcdFx0XHRcdFx0b1Rlc3Qub01ldGFNb2RlbCBhcyBhbnksXG5cdFx0XHRcdFx0XHRcdG9UZXN0LnNNZXRhUGF0aCxcblx0XHRcdFx0XHRcdFx0b1Rlc3Quc05ld0FjdGlvbixcblx0XHRcdFx0XHRcdFx0b1Rlc3Qub1Jlc291cmNlQnVuZGxlQ29yZSBhcyBhbnlcblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHQpLnRvQmUob1Rlc3QuZXhwZWN0ZWQpO1xuXHRcdFx0XHR9XG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9KTtcblx0ZGVzY3JpYmUoXCJjYW5jZWxEb2N1bWVudCgpOiBvbkJlZm9yZURpc2NhcmRcIiwgKCkgPT4ge1xuXHRcdGxldCBvVHJhbnNhY3Rpb25IZWxwZXI6IFRyYW5zYWN0aW9uSGVscGVyO1xuXHRcdGxldCBvQ29udGV4dDogYW55O1xuXHRcdGxldCBvTG9ja01vY2s7XG5cdFx0bGV0IG9VbmxvY2tNb2NrO1xuXHRcdGxldCBvR2V0UHJvZ3JhbW1pbmdNb2RlbE1vY2s6IGFueTtcblx0XHRsZXQgb09uQmVmb3JlRGlzY2FyZE1vY2s6IGFueTtcblx0XHRsZXQgb0RlbGV0ZURyYWZ0TW9jazogYW55O1xuXHRcdGxldCBvRGlzY2FyZERvY3VtZW50TW9jazogYW55O1xuXHRcdGxldCBtUGFyYW1zOiBhbnk7XG5cdFx0bGV0IG1lc3NhZ2VIYW5kbGVyOiBhbnk7XG5cdFx0YmVmb3JlRWFjaCgoKSA9PiB7XG5cdFx0XHRvVHJhbnNhY3Rpb25IZWxwZXIgPSBuZXcgVHJhbnNhY3Rpb25IZWxwZXIob0FwcENvbXBvbmVudCwgb0xvY2tPYmplY3QpO1xuXHRcdFx0b0NvbnRleHQgPSB7XG5cdFx0XHRcdGdldE1vZGVsOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0YmluZENvbnRleHQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRcdGdldEJvdW5kQ29udGV4dDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXF1ZXN0T2JqZWN0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fSxcblx0XHRcdFx0Z2V0UGF0aDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFwiXCI7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGhhc1BlbmRpbmdDaGFuZ2VzOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fSxcblx0XHRcdFx0Z2V0QmluZGluZzogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdHJlc2V0Q2hhbmdlczogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fSxcblx0XHRcdFx0cmVmcmVzaDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHRcdFx0fSxcblx0XHRcdFx0cmVxdWVzdE9iamVjdDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRvTG9ja01vY2sgPSBqZXN0LnNweU9uKEJ1c3lMb2NrZXIsIFwibG9ja1wiKTtcblx0XHRcdG9Mb2NrTW9jay5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gZmFsc2UpO1xuXHRcdFx0b1VubG9ja01vY2sgPSBqZXN0LnNweU9uKEJ1c3lMb2NrZXIsIFwidW5sb2NrXCIpO1xuXHRcdFx0b1VubG9ja01vY2subW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IGZhbHNlKTtcblx0XHRcdG1QYXJhbXMgPSB7XG5cdFx0XHRcdGNhbmNlbEJ1dHRvbjogbnVsbCxcblx0XHRcdFx0c2tpcERpc2NhcmRQb3BvdmVyOiB0cnVlLFxuXHRcdFx0XHRiZWZvcmVDYW5jZWxDYWxsQmFjazogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0b0dldFByb2dyYW1taW5nTW9kZWxNb2NrID0gamVzdC5zcHlPbihvVHJhbnNhY3Rpb25IZWxwZXIsIFwiZ2V0UHJvZ3JhbW1pbmdNb2RlbFwiKTtcblx0XHRcdG1lc3NhZ2VIYW5kbGVyID0ge1xuXHRcdFx0XHRyZW1vdmVUcmFuc2l0aW9uTWVzc2FnZXM6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHNob3dNZXNzYWdlczogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0b0RlbGV0ZURyYWZ0TW9jayA9IGplc3Quc3B5T24oZHJhZnQsIFwiZGVsZXRlRHJhZnRcIik7XG5cdFx0XHRvRGVsZXRlRHJhZnRNb2NrLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB7XG5cdFx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHRcdH0pO1xuXHRcdFx0b0Rpc2NhcmREb2N1bWVudE1vY2sgPSBqZXN0LnNweU9uKHN0aWNreSwgXCJkaXNjYXJkRG9jdW1lbnRcIik7XG5cdFx0XHRvRGlzY2FyZERvY3VtZW50TW9jay5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0XHRhZnRlckVhY2goKCkgPT4ge1xuXHRcdFx0amVzdC5yZXN0b3JlQWxsTW9ja3MoKTtcblx0XHR9KTtcblx0XHRpdChcIm9uQmVmb3JlRGlzY2FyZCBpcyByZXNvbHZlZCBmb3IgZHJhZnQgcHJvZ3JhbW1pbmcgbW9kZWxcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0b0dldFByb2dyYW1taW5nTW9kZWxNb2NrLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB7XG5cdFx0XHRcdHJldHVybiBcIkRyYWZ0XCI7XG5cdFx0XHR9KTtcblx0XHRcdG9PbkJlZm9yZURpc2NhcmRNb2NrID0gamVzdC5zcHlPbihtUGFyYW1zLCBcImJlZm9yZUNhbmNlbENhbGxCYWNrXCIpO1xuXHRcdFx0b09uQmVmb3JlRGlzY2FyZE1vY2subW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdFx0fSk7XG5cdFx0XHRhd2FpdCBvVHJhbnNhY3Rpb25IZWxwZXIuY2FuY2VsRG9jdW1lbnQob0NvbnRleHQsIG1QYXJhbXMsIHt9LCBtZXNzYWdlSGFuZGxlcik7XG5cdFx0XHRleHBlY3Qob09uQmVmb3JlRGlzY2FyZE1vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblx0XHRcdGV4cGVjdChvT25CZWZvcmVEaXNjYXJkTW9jaykudG9CZUNhbGxlZFdpdGgoeyBcImNvbnRleHRcIjogb0NvbnRleHQgfSk7XG5cdFx0XHRleHBlY3Qob0RlbGV0ZURyYWZ0TW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdH0pO1xuXHRcdGl0KFwib25CZWZvcmVEaXNjYXJkIGlzIHJlamVjdGVkIGZvciBkcmFmdCBwcm9ncmFtbWluZyBtb2RlbFwiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRvR2V0UHJvZ3JhbW1pbmdNb2RlbE1vY2subW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gXCJEcmFmdFwiO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0b09uQmVmb3JlRGlzY2FyZE1vY2sgPSBqZXN0LnNweU9uKG1QYXJhbXMsIFwiYmVmb3JlQ2FuY2VsQ2FsbEJhY2tcIik7XG5cdFx0XHRcdG9PbkJlZm9yZURpc2NhcmRNb2NrLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVqZWN0KCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRhd2FpdCBvVHJhbnNhY3Rpb25IZWxwZXIuY2FuY2VsRG9jdW1lbnQob0NvbnRleHQsIG1QYXJhbXMsIHt9LCBtZXNzYWdlSGFuZGxlcik7XG5cdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0ZXhwZWN0KG9PbkJlZm9yZURpc2NhcmRNb2NrKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG5cdFx0XHRcdGV4cGVjdChvT25CZWZvcmVEaXNjYXJkTW9jaykudG9CZUNhbGxlZFdpdGgoeyBcImNvbnRleHRcIjogb0NvbnRleHQgfSk7XG5cdFx0XHRcdGV4cGVjdChvRGVsZXRlRHJhZnRNb2NrKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0aXQoXCJvbkJlZm9yZURpc2NhcmQgaXMgcmVzb2x2ZWQgZm9yIHN0aWNreSBwcm9ncmFtbWluZyBtb2RlbFwiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRvR2V0UHJvZ3JhbW1pbmdNb2RlbE1vY2subW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIFwiU3RpY2t5XCI7XG5cdFx0XHR9KTtcblx0XHRcdG9PbkJlZm9yZURpc2NhcmRNb2NrID0gamVzdC5zcHlPbihtUGFyYW1zLCBcImJlZm9yZUNhbmNlbENhbGxCYWNrXCIpO1xuXHRcdFx0b09uQmVmb3JlRGlzY2FyZE1vY2subW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdFx0fSk7XG5cdFx0XHRhd2FpdCBvVHJhbnNhY3Rpb25IZWxwZXIuY2FuY2VsRG9jdW1lbnQob0NvbnRleHQsIG1QYXJhbXMsIHt9LCBtZXNzYWdlSGFuZGxlcik7XG5cdFx0XHRleHBlY3Qob09uQmVmb3JlRGlzY2FyZE1vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblx0XHRcdGV4cGVjdChvT25CZWZvcmVEaXNjYXJkTW9jaykudG9CZUNhbGxlZFdpdGgoeyBcImNvbnRleHRcIjogb0NvbnRleHQgfSk7XG5cdFx0XHRleHBlY3Qob0Rpc2NhcmREb2N1bWVudE1vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblx0XHR9KTtcblx0XHRpdChcIm9uQmVmb3JlRGlzY2FyZCBpcyByZWplY3RlZCBmb3Igc3RpY2t5IHByb2dyYW1taW5nIG1vZGVsXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdG9HZXRQcm9ncmFtbWluZ01vZGVsTW9jay5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBcIlN0aWNreVwiO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0b09uQmVmb3JlRGlzY2FyZE1vY2sgPSBqZXN0LnNweU9uKG1QYXJhbXMsIFwiYmVmb3JlQ2FuY2VsQ2FsbEJhY2tcIik7XG5cdFx0XHRcdG9PbkJlZm9yZURpc2NhcmRNb2NrLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVqZWN0KCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRhd2FpdCBvVHJhbnNhY3Rpb25IZWxwZXIuY2FuY2VsRG9jdW1lbnQob0NvbnRleHQsIG1QYXJhbXMsIHt9LCBtZXNzYWdlSGFuZGxlcik7XG5cdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0ZXhwZWN0KG9PbkJlZm9yZURpc2NhcmRNb2NrKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG5cdFx0XHRcdGV4cGVjdChvT25CZWZvcmVEaXNjYXJkTW9jaykudG9CZUNhbGxlZFdpdGgoeyBcImNvbnRleHRcIjogb0NvbnRleHQgfSk7XG5cdFx0XHRcdGV4cGVjdChvRGlzY2FyZERvY3VtZW50TW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDApO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9KTtcblx0ZGVzY3JpYmUoXCJkZWxldGVEb2N1bWVudCgpOiBvbkJlZm9yZURlbGV0ZVwiLCAoKSA9PiB7XG5cdFx0bGV0IG9UcmFuc2FjdGlvbkhlbHBlcjogVHJhbnNhY3Rpb25IZWxwZXI7XG5cdFx0bGV0IHZDb250ZXh0cztcblx0XHRsZXQgb0xvY2tNb2NrO1xuXHRcdGxldCBvVW5sb2NrTW9jaztcblx0XHRsZXQgb0dldFByb2dyYW1taW5nTW9kZWxNb2NrOiBhbnk7XG5cdFx0bGV0IG9PbkJlZm9yZURlbGV0ZU1vY2s6IGFueTtcblx0XHRsZXQgb0RlbGV0ZURyYWZ0TW9jazogYW55O1xuXHRcdGxldCBvRmluZEFjdGl2ZURyYWZ0Um9vdENvbnRleHRzTW9jaztcblx0XHRsZXQgb0FmdGVyRGVsZXRlUHJvY2Vzc01vY2s7XG5cdFx0bGV0IG9HZXRUcmFuc2xhdGVkVGV4dE1vY2s7XG5cdFx0bGV0IG1QYXJhbXM6IGFueTtcblx0XHRsZXQgbWVzc2FnZUhhbmRsZXI6IGFueTtcblx0XHRmdW5jdGlvbiBjcmVhdGVDb250ZXh0KHNhbGVzT3JkZXI6IGFueSkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0Z2V0T2JqZWN0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0U2FsZXNPcmRlcjogc2FsZXNPcmRlclxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0fVxuXHRcdGJlZm9yZUVhY2goKCkgPT4ge1xuXHRcdFx0b1RyYW5zYWN0aW9uSGVscGVyID0gbmV3IFRyYW5zYWN0aW9uSGVscGVyKG9BcHBDb21wb25lbnQsIG9Mb2NrT2JqZWN0KTtcblx0XHRcdG9Mb2NrTW9jayA9IGplc3Quc3B5T24oQnVzeUxvY2tlciwgXCJsb2NrXCIpO1xuXHRcdFx0b0xvY2tNb2NrLm1vY2tSZXR1cm5WYWx1ZShmYWxzZSk7XG5cdFx0XHRvVW5sb2NrTW9jayA9IGplc3Quc3B5T24oQnVzeUxvY2tlciwgXCJ1bmxvY2tcIik7XG5cdFx0XHRvVW5sb2NrTW9jay5tb2NrUmV0dXJuVmFsdWUoZmFsc2UpO1xuXHRcdFx0bVBhcmFtcyA9IHtcblx0XHRcdFx0dW5TYXZlZENvbnRleHRzOiBbXSxcblx0XHRcdFx0bG9ja2VkQ29udGV4dHM6IFtdLFxuXHRcdFx0XHRlZGl0Rmxvdzoge1xuXHRcdFx0XHRcdGJhc2U6IHtcblx0XHRcdFx0XHRcdGVkaXRGbG93OiB7XG5cdFx0XHRcdFx0XHRcdG9uQmVmb3JlRGVsZXRlOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRvR2V0UHJvZ3JhbW1pbmdNb2RlbE1vY2sgPSBqZXN0LnNweU9uKG9UcmFuc2FjdGlvbkhlbHBlciwgXCJnZXRQcm9ncmFtbWluZ01vZGVsXCIpO1xuXHRcdFx0b0dldFByb2dyYW1taW5nTW9kZWxNb2NrLm1vY2tSZXR1cm5WYWx1ZShcIkRyYWZ0XCIpO1xuXHRcdFx0bWVzc2FnZUhhbmRsZXIgPSB7XG5cdFx0XHRcdHNob3dNZXNzYWdlRGlhbG9nOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHNob3dNZXNzYWdlczogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0b0RlbGV0ZURyYWZ0TW9jayA9IGplc3Quc3B5T24oZHJhZnQsIFwiZGVsZXRlRHJhZnRcIik7XG5cdFx0XHRvRGVsZXRlRHJhZnRNb2NrLm1vY2tSZXNvbHZlZFZhbHVlKCk7XG5cdFx0XHRvRmluZEFjdGl2ZURyYWZ0Um9vdENvbnRleHRzTW9jayA9IGplc3Quc3B5T24ob1RyYW5zYWN0aW9uSGVscGVyLCBcImZpbmRBY3RpdmVEcmFmdFJvb3RDb250ZXh0c1wiKTtcblx0XHRcdG9GaW5kQWN0aXZlRHJhZnRSb290Q29udGV4dHNNb2NrLm1vY2tSZXNvbHZlZFZhbHVlKCk7XG5cdFx0XHRvQWZ0ZXJEZWxldGVQcm9jZXNzTW9jayA9IGplc3Quc3B5T24ob1RyYW5zYWN0aW9uSGVscGVyLCBcImFmdGVyRGVsZXRlUHJvY2Vzc1wiKTtcblx0XHRcdG9BZnRlckRlbGV0ZVByb2Nlc3NNb2NrLm1vY2tSZXR1cm5WYWx1ZSgpO1xuXHRcdFx0b0dldFRyYW5zbGF0ZWRUZXh0TW9jayA9IGplc3Quc3B5T24oQ29tbW9uVXRpbHMsIFwiZ2V0VHJhbnNsYXRlZFRleHRcIik7XG5cdFx0XHRvR2V0VHJhbnNsYXRlZFRleHRNb2NrLm1vY2tSZXR1cm5WYWx1ZShcIlwiKTtcblx0XHR9KTtcblx0XHRhZnRlckVhY2goKCkgPT4ge1xuXHRcdFx0amVzdC5yZXN0b3JlQWxsTW9ja3MoKTtcblx0XHR9KTtcblx0XHRpdChcIm9uQmVmb3JlRGVsZXRlIGlzIHJlc29sdmVkIGZvciBzaW5nbGUgQ29udGV4dFwiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHR2Q29udGV4dHMgPSBbY3JlYXRlQ29udGV4dCg2NDM3KV07XG5cdFx0XHRtUGFyYW1zLm51bWJlck9mU2VsZWN0ZWRDb250ZXh0cyA9IDE7XG5cdFx0XHRtUGFyYW1zLm5vRGlhbG9nID0gdHJ1ZTtcblx0XHRcdG1QYXJhbXMuYmVmb3JlRGVsZXRlQ2FsbEJhY2sgPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdFx0fTtcblx0XHRcdG9PbkJlZm9yZURlbGV0ZU1vY2sgPSBqZXN0LnNweU9uKG1QYXJhbXMsIFwiYmVmb3JlRGVsZXRlQ2FsbEJhY2tcIik7XG5cdFx0XHRvT25CZWZvcmVEZWxldGVNb2NrLm1vY2tSZXNvbHZlZFZhbHVlKCk7XG5cdFx0XHRhd2FpdCBvVHJhbnNhY3Rpb25IZWxwZXIuZGVsZXRlRG9jdW1lbnQodkNvbnRleHRzLCBtUGFyYW1zLCB7fSwgbWVzc2FnZUhhbmRsZXIpO1xuXHRcdFx0ZXhwZWN0KG9PbkJlZm9yZURlbGV0ZU1vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblx0XHRcdGV4cGVjdChvT25CZWZvcmVEZWxldGVNb2NrKS50b0JlQ2FsbGVkV2l0aCh7IFwiY29udGV4dHNcIjogdkNvbnRleHRzIH0pO1xuXHRcdFx0ZXhwZWN0KG9EZWxldGVEcmFmdE1vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblx0XHR9KTtcblx0XHRpdChcIm9uQmVmb3JlRGVsZXRlIGlzIHJlc29sdmVkIGZvciBtdWx0aXBsZSBjb250ZXh0c1wiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHR2Q29udGV4dHMgPSBbY3JlYXRlQ29udGV4dCg2NDM3KSwgY3JlYXRlQ29udGV4dCgyOTE1NzE3KV07XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRvR2V0UHJvZ3JhbW1pbmdNb2RlbE1vY2subW9ja1JldHVyblZhbHVlKFwiRHJhZnRcIik7XG5cdFx0XHRcdG1QYXJhbXMubm9EaWFsb2cgPSB0cnVlO1xuXHRcdFx0XHRtUGFyYW1zLmJlZm9yZURlbGV0ZUNhbGxCYWNrID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdFx0XHR9O1xuXHRcdFx0XHRvT25CZWZvcmVEZWxldGVNb2NrID0gamVzdC5zcHlPbihtUGFyYW1zLCBcImJlZm9yZURlbGV0ZUNhbGxCYWNrXCIpO1xuXHRcdFx0XHRvT25CZWZvcmVEZWxldGVNb2NrLm1vY2tSZXNvbHZlZFZhbHVlKCk7XG5cdFx0XHRcdGF3YWl0IG9UcmFuc2FjdGlvbkhlbHBlci5kZWxldGVEb2N1bWVudCh2Q29udGV4dHMsIG1QYXJhbXMsIHt9LCBtZXNzYWdlSGFuZGxlcik7XG5cdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0ZXhwZWN0KG9PbkJlZm9yZURlbGV0ZU1vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblx0XHRcdFx0ZXhwZWN0KG9PbkJlZm9yZURlbGV0ZU1vY2spLnRvQmVDYWxsZWRXaXRoKHsgXCJjb250ZXh0c1wiOiB2Q29udGV4dHMgfSk7XG5cdFx0XHRcdGV4cGVjdChvRGVsZXRlRHJhZnRNb2NrKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMik7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0pO1xuXHRkZXNjcmliZShcImNyZWF0ZURvY3VtZW50KCk6IG9uQmVmb3JlQ3JlYXRlXCIsICgpID0+IHtcblx0XHRsZXQgb1RyYW5zYWN0aW9uSGVscGVyOiBUcmFuc2FjdGlvbkhlbHBlcjtcblx0XHRsZXQgb01haW5MaXN0QmluZGluZzogYW55O1xuXHRcdGxldCBvTG9ja01vY2s7XG5cdFx0bGV0IG9VbmxvY2tNb2NrO1xuXHRcdGxldCBvT25CZWZvcmVDcmVhdGVNb2NrOiBhbnk7XG5cdFx0bGV0IG9BcHBDb21wb25lbnRNb2NrO1xuXHRcdGxldCBvR2V0UHJvZ3JhbW1pbmdNb2RlbE1vY2s7XG5cdFx0bGV0IG9Nb2RlbEhlbHBlck1vY2s7XG5cdFx0bGV0IG9DYWxsRnVuY3Rpb25JbXBvcnRNb2NrO1xuXHRcdGxldCBvT25BZnRlckNyZWF0ZUNvbXBsZXRpb25Nb2NrO1xuXHRcdGxldCBvQ3JlYXRlTW9jazogYW55O1xuXHRcdGxldCBtUGFyYW1zOiBhbnk7XG5cdFx0bGV0IG1lc3NhZ2VIYW5kbGVyOiBhbnk7XG5cdFx0YmVmb3JlRWFjaCgoKSA9PiB7XG5cdFx0XHRjb25zdCBtb2NrTW9kZWwgPSBuZXcgTW9ja01vZGVsKCk7XG5cdFx0XHRjb25zdCBtb2NrTWV0YU1vZGVsID0gbmV3IE1vY2tNZXRhTW9kZWwoe30pO1xuXHRcdFx0bW9ja01vZGVsLnNldE1ldGFNb2RlbChtb2NrTWV0YU1vZGVsKTtcblx0XHRcdG9UcmFuc2FjdGlvbkhlbHBlciA9IG5ldyBUcmFuc2FjdGlvbkhlbHBlcihvQXBwQ29tcG9uZW50LCBvTG9ja09iamVjdCk7XG5cdFx0XHRvTWFpbkxpc3RCaW5kaW5nID0ge1xuXHRcdFx0XHRnZXRNb2RlbDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIG1vY2tNb2RlbDtcblx0XHRcdFx0fSxcblx0XHRcdFx0Z2V0SGVhZGVyQ29udGV4dDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdGdldFBhdGg6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRpc1JlbGF0aXZlOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fSxcblx0XHRcdFx0Z2V0UGF0aDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFwiL1NhbGVzT3JkZXJNYW5hZ2VcIjtcblx0XHRcdFx0fSxcblx0XHRcdFx0Y3JlYXRlOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRvQXBwQ29tcG9uZW50TW9jayA9IGplc3Quc3B5T24ob1RyYW5zYWN0aW9uSGVscGVyLCBcIl9nZXRBcHBDb21wb25lbnRcIik7XG5cdFx0XHRvQXBwQ29tcG9uZW50TW9jay5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdGdldENvbXBvbmVudERhdGE6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRnZXRSb3V0ZXJQcm94eTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRnZXRIYXNoOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gXCJcIjtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH07XG5cdFx0XHR9KTtcblx0XHRcdG9PbkFmdGVyQ3JlYXRlQ29tcGxldGlvbk1vY2sgPSBqZXN0LnNweU9uKG9UcmFuc2FjdGlvbkhlbHBlciwgXCJvbkFmdGVyQ3JlYXRlQ29tcGxldGlvblwiKTtcblx0XHRcdG9PbkFmdGVyQ3JlYXRlQ29tcGxldGlvbk1vY2subW9ja1Jlc29sdmVkVmFsdWUodW5kZWZpbmVkKTtcblx0XHRcdG9HZXRQcm9ncmFtbWluZ01vZGVsTW9jayA9IGplc3Quc3B5T24ob1RyYW5zYWN0aW9uSGVscGVyLCBcImdldFByb2dyYW1taW5nTW9kZWxcIik7XG5cdFx0XHRvTG9ja01vY2sgPSBqZXN0LnNweU9uKEJ1c3lMb2NrZXIsIFwibG9ja1wiKTtcblx0XHRcdG9Mb2NrTW9jay5tb2NrUmV0dXJuVmFsdWUoZmFsc2UpO1xuXHRcdFx0b1VubG9ja01vY2sgPSBqZXN0LnNweU9uKEJ1c3lMb2NrZXIsIFwidW5sb2NrXCIpO1xuXHRcdFx0b1VubG9ja01vY2subW9ja1JldHVyblZhbHVlKGZhbHNlKTtcblx0XHRcdG9Nb2RlbEhlbHBlck1vY2sgPSBqZXN0LnNweU9uKE1vZGVsSGVscGVyLCBcImdldFRhcmdldEVudGl0eVNldFwiKTtcblx0XHRcdG9Nb2RlbEhlbHBlck1vY2subW9ja1JldHVyblZhbHVlKFwiXCIpO1xuXHRcdFx0b0NhbGxGdW5jdGlvbkltcG9ydE1vY2sgPSBqZXN0LnNweU9uKG9wZXJhdGlvbnMsIFwiY2FsbEZ1bmN0aW9uSW1wb3J0XCIpO1xuXHRcdFx0b0NhbGxGdW5jdGlvbkltcG9ydE1vY2subW9ja1Jlc29sdmVkVmFsdWUodW5kZWZpbmVkKTtcblx0XHRcdG1QYXJhbXMgPSB7XG5cdFx0XHRcdGNyZWF0aW9uTW9kZTogXCJDcmVhdGlvblJvd1wiLFxuXHRcdFx0XHRiZWZvcmVDcmVhdGVDYWxsQmFjazogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0b0dldFByb2dyYW1taW5nTW9kZWxNb2NrID0gamVzdC5zcHlPbihvVHJhbnNhY3Rpb25IZWxwZXIsIFwiZ2V0UHJvZ3JhbW1pbmdNb2RlbFwiKTtcblx0XHRcdG9HZXRQcm9ncmFtbWluZ01vZGVsTW9jay5tb2NrUmV0dXJuVmFsdWUoXCJEcmFmdFwiIGFzIGFueSk7XG5cdFx0XHRtZXNzYWdlSGFuZGxlciA9IHtcblx0XHRcdFx0cmVtb3ZlVHJhbnNpdGlvbk1lc3NhZ2VzOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRzaG93TWVzc2FnZXM6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0c2hvd01lc3NhZ2VEaWFsb2c6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9KTtcblx0XHRhZnRlckVhY2goKCkgPT4ge1xuXHRcdFx0amVzdC5yZXN0b3JlQWxsTW9ja3MoKTtcblx0XHR9KTtcblx0XHRpdChcIm9uQmVmb3JlQ3JlYXRlIGlzIHJlc29sdmVkXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdG9PbkJlZm9yZUNyZWF0ZU1vY2sgPSBqZXN0LnNweU9uKG1QYXJhbXMsIFwiYmVmb3JlQ3JlYXRlQ2FsbEJhY2tcIik7XG5cdFx0XHRvT25CZWZvcmVDcmVhdGVNb2NrLm1vY2tSZXNvbHZlZFZhbHVlKCk7XG5cdFx0XHRvQ3JlYXRlTW9jayA9IGplc3Quc3B5T24ob01haW5MaXN0QmluZGluZywgXCJjcmVhdGVcIik7XG5cdFx0XHRvQ3JlYXRlTW9jay5tb2NrUmVzb2x2ZWRWYWx1ZSgpO1xuXHRcdFx0YXdhaXQgb1RyYW5zYWN0aW9uSGVscGVyLmNyZWF0ZURvY3VtZW50KG9NYWluTGlzdEJpbmRpbmcsIG1QYXJhbXMsIHt9LCBtZXNzYWdlSGFuZGxlciwgZmFsc2UsIHVuZGVmaW5lZCk7XG5cdFx0XHRleHBlY3Qob09uQmVmb3JlQ3JlYXRlTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdFx0ZXhwZWN0KG9PbkJlZm9yZUNyZWF0ZU1vY2spLnRvQmVDYWxsZWRXaXRoKHsgXCJjb250ZXh0UGF0aFwiOiBcIi9TYWxlc09yZGVyTWFuYWdlXCIgfSk7XG5cdFx0XHRleHBlY3Qob0NyZWF0ZU1vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblx0XHR9KTtcblx0XHRpdChcIm9uQmVmb3JlQ3JlYXRlIGlzIHJlamVjdGVkXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdG9PbkJlZm9yZUNyZWF0ZU1vY2sgPSBqZXN0LnNweU9uKG1QYXJhbXMsIFwiYmVmb3JlQ3JlYXRlQ2FsbEJhY2tcIik7XG5cdFx0XHRcdG9PbkJlZm9yZUNyZWF0ZU1vY2subW9ja1Jlc29sdmVkVmFsdWUoKTtcblx0XHRcdFx0b0NyZWF0ZU1vY2sgPSBqZXN0LnNweU9uKG9NYWluTGlzdEJpbmRpbmcsIFwiY3JlYXRlXCIpO1xuXHRcdFx0XHRvQ3JlYXRlTW9jay5tb2NrUmVzb2x2ZWRWYWx1ZSgpO1xuXHRcdFx0XHRhd2FpdCBvVHJhbnNhY3Rpb25IZWxwZXIuY3JlYXRlRG9jdW1lbnQob01haW5MaXN0QmluZGluZywgbVBhcmFtcywge30sIG1lc3NhZ2VIYW5kbGVyLCBmYWxzZSwgdW5kZWZpbmVkKTtcblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRleHBlY3Qob09uQmVmb3JlQ3JlYXRlTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdFx0XHRleHBlY3Qob09uQmVmb3JlQ3JlYXRlTW9jaykudG9CZUNhbGxlZFdpdGgoeyBcImNvbnRleHRQYXRoXCI6IFwiL1NhbGVzT3JkZXJNYW5hZ2VcIiB9KTtcblx0XHRcdFx0ZXhwZWN0KG9DcmVhdGVNb2NrKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0pO1xufSk7XG4iXX0=
|
|
827
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRyYW5zYWN0aW9uSGVscGVyLnNwZWMudHMiXSwibmFtZXMiOlsiYm9keSIsInJlY292ZXIiLCJyZXN1bHQiLCJlIiwidGhlbiIsIm9BcHBDb21wb25lbnQiLCJvTG9ja09iamVjdCIsImRlc2NyaWJlIiwib1RyYW5zYWN0aW9uSGVscGVyIiwiVHJhbnNhY3Rpb25IZWxwZXIiLCJhTmV3QWN0aW9uVGVzdERhdGEiLCJzRGVzY3JpcHRpb24iLCJvU3RhcnR1cFBhcmFtZXRlcnMiLCJzQ3JlYXRlSGFzaCIsIm9NZXRhTW9kZWwiLCJzTWV0YVBhdGgiLCJzRXhwZWN0ZWRSZXN1bHQiLCJ1bmRlZmluZWQiLCJzRGVzY09uU3VjY2VzcyIsInByZWZlcnJlZE1vZGUiLCJnZXRPYmplY3QiLCJmb3JFYWNoIiwib1Rlc3REYXRhIiwiaXQiLCJzUmVzdWx0IiwiX2dldE5ld0FjdGlvbiIsImV4cGVjdCIsInRvRXF1YWwiLCJhVGVzdHMiLCJ0aXRsZSIsInNOZXdBY3Rpb24iLCJvUmVzb3VyY2VCdW5kbGVDb3JlIiwiZXhwZWN0ZWQiLCJnZXRUZXh0Iiwic0Fubm90YXRpb24iLCIkVHlwZSIsIkFjdGlvbiIsIkxhYmVsIiwiTmF2aWdhdGlvbkF2YWlsYWJsZSIsIlJlcXVpcmVzQ29udGV4dCIsIlNlbWFudGljT2JqZWN0IiwiVmFsdWUiLCIkUGF0aCIsIm9UZXN0IiwiX2dldFNwZWNpZmljQ3JlYXRlQWN0aW9uRGlhbG9nTGFiZWwiLCJ0b0JlIiwib0NvbnRleHQiLCJvTG9ja01vY2siLCJvVW5sb2NrTW9jayIsIm9HZXRQcm9ncmFtbWluZ01vZGVsTW9jayIsIm9PbkJlZm9yZURpc2NhcmRNb2NrIiwib0RlbGV0ZURyYWZ0TW9jayIsIm9EaXNjYXJkRG9jdW1lbnRNb2NrIiwibVBhcmFtcyIsIm1lc3NhZ2VIYW5kbGVyIiwiYmVmb3JlRWFjaCIsImdldE1vZGVsIiwiYmluZENvbnRleHQiLCJnZXRCb3VuZENvbnRleHQiLCJyZXF1ZXN0T2JqZWN0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJnZXRQYXRoIiwiaGFzUGVuZGluZ0NoYW5nZXMiLCJnZXRCaW5kaW5nIiwicmVzZXRDaGFuZ2VzIiwicmVmcmVzaCIsImplc3QiLCJzcHlPbiIsIkJ1c3lMb2NrZXIiLCJtb2NrSW1wbGVtZW50YXRpb24iLCJjYW5jZWxCdXR0b24iLCJza2lwRGlzY2FyZFBvcG92ZXIiLCJiZWZvcmVDYW5jZWxDYWxsQmFjayIsInJlbW92ZVRyYW5zaXRpb25NZXNzYWdlcyIsInNob3dNZXNzYWdlcyIsImRyYWZ0Iiwic3RpY2t5IiwiYWZ0ZXJFYWNoIiwicmVzdG9yZUFsbE1vY2tzIiwiY2FuY2VsRG9jdW1lbnQiLCJ0b0hhdmVCZWVuQ2FsbGVkVGltZXMiLCJ0b0JlQ2FsbGVkV2l0aCIsInJlamVjdCIsInZDb250ZXh0cyIsIm9PbkJlZm9yZURlbGV0ZU1vY2siLCJvRmluZEFjdGl2ZURyYWZ0Um9vdENvbnRleHRzTW9jayIsIm9BZnRlckRlbGV0ZVByb2Nlc3NNb2NrIiwib0dldFRyYW5zbGF0ZWRUZXh0TW9jayIsImNyZWF0ZUNvbnRleHQiLCJzYWxlc09yZGVyIiwiU2FsZXNPcmRlciIsIm1vY2tSZXR1cm5WYWx1ZSIsInVuU2F2ZWRDb250ZXh0cyIsImxvY2tlZENvbnRleHRzIiwiZWRpdEZsb3ciLCJiYXNlIiwib25CZWZvcmVEZWxldGUiLCJzaG93TWVzc2FnZURpYWxvZyIsIm1vY2tSZXNvbHZlZFZhbHVlIiwiQ29tbW9uVXRpbHMiLCJudW1iZXJPZlNlbGVjdGVkQ29udGV4dHMiLCJub0RpYWxvZyIsImJlZm9yZURlbGV0ZUNhbGxCYWNrIiwiZGVsZXRlRG9jdW1lbnQiLCJvTWFpbkxpc3RCaW5kaW5nIiwib09uQmVmb3JlQ3JlYXRlTW9jayIsIm9BcHBDb21wb25lbnRNb2NrIiwib01vZGVsSGVscGVyTW9jayIsIm9DYWxsRnVuY3Rpb25JbXBvcnRNb2NrIiwib09uQWZ0ZXJDcmVhdGVDb21wbGV0aW9uTW9jayIsIm9DcmVhdGVNb2NrIiwibW9ja01vZGVsIiwiTW9ja01vZGVsIiwibW9ja01ldGFNb2RlbCIsIk1vY2tNZXRhTW9kZWwiLCJzZXRNZXRhTW9kZWwiLCJnZXRIZWFkZXJDb250ZXh0IiwiaXNSZWxhdGl2ZSIsImNyZWF0ZSIsImdldENvbXBvbmVudERhdGEiLCJnZXRSb3V0ZXJQcm94eSIsImdldEhhc2giLCJNb2RlbEhlbHBlciIsIm9wZXJhdGlvbnMiLCJjcmVhdGlvbk1vZGUiLCJiZWZvcmVDcmVhdGVDYWxsQmFjayIsImNyZWF0ZURvY3VtZW50IiwiZW50aXR5U2V0TmFtZSIsImRlc2NyaXB0aW9uIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7O0FBZ2pCTyxrQkFBZ0JBLElBQWhCLEVBQXNCQyxPQUF0QixFQUErQjtBQUNyQyxRQUFJO0FBQ0gsVUFBSUMsTUFBTSxHQUFHRixJQUFJLEVBQWpCO0FBQ0EsS0FGRCxDQUVFLE9BQU1HLENBQU4sRUFBUztBQUNWLGFBQU9GLE9BQU8sQ0FBQ0UsQ0FBRCxDQUFkO0FBQ0E7O0FBQ0QsUUFBSUQsTUFBTSxJQUFJQSxNQUFNLENBQUNFLElBQXJCLEVBQTJCO0FBQzFCLGFBQU9GLE1BQU0sQ0FBQ0UsSUFBUCxDQUFZLEtBQUssQ0FBakIsRUFBb0JILE9BQXBCLENBQVA7QUFDQTs7QUFDRCxXQUFPQyxNQUFQO0FBQ0E7O0FBbGpCRCxNQUFNRyxhQUFrQixHQUFHLEVBQTNCO0FBQ0EsTUFBTUMsV0FBZ0IsR0FBRyxFQUF6QjtBQUNBQyxFQUFBQSxRQUFRLENBQUMsbUJBQUQsRUFBc0IsWUFBTTtBQUNuQyxRQUFNQyxrQkFBa0IsR0FBRyxJQUFJQyxpQkFBSixDQUFzQkosYUFBdEIsRUFBcUNDLFdBQXJDLENBQTNCO0FBRUFDLElBQUFBLFFBQVEsQ0FBQyxtQkFBRCxFQUFzQixZQUFNO0FBQ25DLFVBQU1HLGtCQUFrQixHQUFHLENBQzFCO0FBQ0NDLFFBQUFBLFlBQVksRUFBRSxzQkFEZjtBQUVDQyxRQUFBQSxrQkFBa0IsRUFBRSxFQUZyQjtBQUdDQyxRQUFBQSxXQUFXLEVBQUUsRUFIZDtBQUlDQyxRQUFBQSxV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RztBQUNUaUQsWUFBQUEsUUFBUSxFQUFFLElBREQ7QUFFVHpFLFlBQUFBLEtBQUssRUFBRSxTQUZFO0FBR1RvRyxZQUFBQSxXQUFXLEVBQUUsWUFISjtBQUlURCxZQUFBQSxhQUFhLEVBQUU7QUFKTixXQUFWO0FBRjJFLGlDQVFyRXhILGtCQUFrQixDQUFDZ0csY0FBbkIsQ0FBa0NwQixTQUFsQyxFQUE2Qy9CLE9BQTdDLEVBQXNELEVBQXRELEVBQTBEQyxjQUExRCxDQVJxRTtBQVMzRTVCLFlBQUFBLE1BQU0sQ0FBQzhELHNCQUFELENBQU4sQ0FBK0JOLGNBQS9CLENBQ0MsaUVBREQsRUFFQyxFQUZELEVBR0MsQ0FBQyxTQUFELEVBQVksWUFBWixDQUhELEVBSUMsa0JBSkQ7QUFUMkU7QUFlM0UsU0FmQztBQUFBO0FBQUE7QUFBQSxRQUFGO0FBZ0JBLEtBOUVPLENBQVI7QUErRUEsR0Fud0JPLENBQVIiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUcmFuc2FjdGlvbkhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvVHJhbnNhY3Rpb25IZWxwZXJcIjtcbmltcG9ydCBCdXN5TG9ja2VyIGZyb20gXCJzYXAvZmUvY29yZS9CdXN5TG9ja2VyXCI7XG5pbXBvcnQgZHJhZnQgZnJvbSBcInNhcC9mZS9jb3JlL2FjdGlvbnMvZHJhZnRcIjtcbmltcG9ydCBzdGlja3kgZnJvbSBcInNhcC9mZS9jb3JlL2FjdGlvbnMvc3RpY2t5XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgeyBNb2NrTWV0YU1vZGVsLCBNb2NrTW9kZWwgfSBmcm9tIFwic2FwL2ZlL3Rlc3QvVUk1TW9ja0hlbHBlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgb3BlcmF0aW9ucyBmcm9tIFwic2FwL2ZlL2NvcmUvYWN0aW9ucy9vcGVyYXRpb25zXCI7XG5pbXBvcnQgUmVzb3VyY2VCdW5kbGUgZnJvbSBcInNhcC9iYXNlL2kxOG4vUmVzb3VyY2VCdW5kbGVcIjtcblxuY29uc3Qgb0FwcENvbXBvbmVudDogYW55ID0ge307XG5jb25zdCBvTG9ja09iamVjdDogYW55ID0ge307XG5kZXNjcmliZShcIlRyYW5zYWN0aW9uSGVscGVyXCIsICgpID0+IHtcblx0Y29uc3Qgb1RyYW5zYWN0aW9uSGVscGVyID0gbmV3IFRyYW5zYWN0aW9uSGVscGVyKG9BcHBDb21wb25lbnQsIG9Mb2NrT2JqZWN0KTtcblxuXHRkZXNjcmliZShcIl9nZXROZXdBY3Rpb24oKTogXCIsICgpID0+IHtcblx0XHRjb25zdCBhTmV3QWN0aW9uVGVzdERhdGEgPSBbXG5cdFx0XHR7XG5cdFx0XHRcdHNEZXNjcmlwdGlvbjogXCJUZXN0aW5nIGVtcHR5IHZhbHVlc1wiLFxuXHRcdFx0XHRvU3RhcnR1cFBhcmFtZXRlcnM6IHt9LFxuXHRcdFx0XHRzQ3JlYXRlSGFzaDogXCJcIixcblx0XHRcdFx0b01ldGFNb2RlbDoge30sXG5cdFx0XHRcdHNNZXRhUGF0aDogXCJcIixcblx0XHRcdFx0c0V4cGVjdGVkUmVzdWx0OiB1bmRlZmluZWQsXG5cdFx0XHRcdHNEZXNjT25TdWNjZXNzOiBcImVtcHR5IHBhcmFtZXRlcnM6IHVuZGVmaW5lZCByZXN1bHRcIlxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0c0Rlc2NyaXB0aW9uOiBcIk1pc3NpbmcgTWV0YU1vZGVsXCIsXG5cdFx0XHRcdG9TdGFydHVwUGFyYW1ldGVyczoge1xuXHRcdFx0XHRcdHByZWZlcnJlZE1vZGU6IFtcImNyZWF0ZVdpdGg6Y29tLmNfc2FsZXNvcmRlcm1hbmFnZV9zZC5DcmVhdGVGcm9tQ3VzdG9tZXJcIl1cblx0XHRcdFx0fSxcblx0XHRcdFx0c0NyZWF0ZUhhc2g6IFwiXCIsXG5cdFx0XHRcdG9NZXRhTW9kZWw6IHt9LFxuXHRcdFx0XHRzTWV0YVBhdGg6IFwiXCIsXG5cdFx0XHRcdHNFeHBlY3RlZFJlc3VsdDogdW5kZWZpbmVkLFxuXHRcdFx0XHRzRGVzY09uU3VjY2VzczogXCJtaXNzaW5nIE1ldGFNb2RlbDogdW5kZWZpbmVkIHJlc3VsdFwiXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRzRGVzY3JpcHRpb246IFwidmFsaWQgZnVuY3Rpb24gY2FsbFwiLFxuXHRcdFx0XHRvU3RhcnR1cFBhcmFtZXRlcnM6IHtcblx0XHRcdFx0XHRwcmVmZXJyZWRNb2RlOiBbXCJjcmVhdGVXaXRoOmNvbS5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2QuQ3JlYXRlRnJvbUN1c3RvbWVyXCJdXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHNDcmVhdGVIYXNoOiBcIlNhbGVzT3JkZXJNYW5hZ2UoLi4uKT9pLWFjdGlvbj1jcmVhdGVXaXRoXCIsXG5cdFx0XHRcdG9NZXRhTW9kZWw6IHtcblx0XHRcdFx0XHRnZXRPYmplY3Q6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFwiTmV3QWN0aW9uIGZ1bmN0aW9uXCI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRzTWV0YVBhdGg6IFwiL1NhbGVzT3JkZXJNYW5hZ2VcIixcblx0XHRcdFx0c0V4cGVjdGVkUmVzdWx0OiBcImNvbS5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2QuQ3JlYXRlRnJvbUN1c3RvbWVyXCIsXG5cdFx0XHRcdHNEZXNjT25TdWNjZXNzOiBcInZhbGlkIHBhcmFtZXRlcnM6IGZ1bmN0aW9uIGZvciBDcmVhdGVXaXRoIHJldHVybmVkXCJcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdHNEZXNjcmlwdGlvbjogXCJ2YWxpZCBmdW5jdGlvbiBjYWxsIGZvciBOZXdBY3Rpb25cIixcblx0XHRcdFx0b1N0YXJ0dXBQYXJhbWV0ZXJzOiB7XG5cdFx0XHRcdFx0cHJlZmVycmVkTW9kZTogW1wiY3JlYXRlXCJdXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHNDcmVhdGVIYXNoOiBcIlNhbGVzT3JkZXJNYW5hZ2UoLi4uKT9pLWFjdGlvbj1jcmVhdGVcIixcblx0XHRcdFx0b01ldGFNb2RlbDoge1xuXHRcdFx0XHRcdGdldE9iamVjdDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gXCJOZXdBY3Rpb24gZnVuY3Rpb25cIjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHNNZXRhUGF0aDogXCIvU2FsZXNPcmRlck1hbmFnZVwiLFxuXHRcdFx0XHRzRXhwZWN0ZWRSZXN1bHQ6IFwiTmV3QWN0aW9uIGZ1bmN0aW9uXCIsXG5cdFx0XHRcdHNEZXNjT25TdWNjZXNzOiBcInZhbGlkIHBhcmFtZXRlcnM6IGZ1bmN0aW9uIGZvciBDcmVhdGUgZnJvbSBOZXdBY3Rpb24gcmV0dXJuZWRcIlxuXHRcdFx0fVxuXHRcdF07XG5cblx0XHRhTmV3QWN0aW9uVGVzdERhdGEuZm9yRWFjaChvVGVzdERhdGEgPT4ge1xuXHRcdFx0aXQoXG5cdFx0XHRcdG9UZXN0RGF0YS5zRGVzY3JpcHRpb24sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcInR5cGVcIjogXCJcIixcblx0XHRcdFx0XHRcdFx0XCJJRFwiOiBcIlwiXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRjb25zdCBzUmVzdWx0ID0gb1RyYW5zYWN0aW9uSGVscGVyLl9nZXROZXdBY3Rpb24oXG5cdFx0XHRcdFx0XHRvVGVzdERhdGEub1N0YXJ0dXBQYXJhbWV0ZXJzLFxuXHRcdFx0XHRcdFx0b1Rlc3REYXRhLnNDcmVhdGVIYXNoLFxuXHRcdFx0XHRcdFx0b1Rlc3REYXRhLm9NZXRhTW9kZWwgYXMgYW55LFxuXHRcdFx0XHRcdFx0b1Rlc3REYXRhLnNNZXRhUGF0aFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0ZXhwZWN0KHNSZXN1bHQpLnRvRXF1YWwob1Rlc3REYXRhLnNFeHBlY3RlZFJlc3VsdCk7XG5cdFx0XHRcdH1cblx0XHRcdCk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiX2dldFNwZWNpZmljQ3JlYXRlQWN0aW9uRGlhbG9nTGFiZWwoKTogXCIsICgpID0+IHtcblx0XHRjb25zdCBhVGVzdHMgPSBbXG5cdFx0XHR7XG5cdFx0XHRcdHRpdGxlOiBcImFsbCBlbXB0eSBvciB1bmRlZmluZWRcIixcblx0XHRcdFx0b01ldGFNb2RlbDogdW5kZWZpbmVkLFxuXHRcdFx0XHRzTWV0YVBhdGg6IFwiXCIsXG5cdFx0XHRcdHNOZXdBY3Rpb246IFwiXCIsXG5cdFx0XHRcdG9SZXNvdXJjZUJ1bmRsZUNvcmU6IHVuZGVmaW5lZCxcblx0XHRcdFx0ZXhwZWN0ZWQ6IHVuZGVmaW5lZFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0dGl0bGU6IFwid2l0aCBlbXB0eSBNZXRhTW9kZWwgYW5kIHZhbGlkIFJlc291cmNlQnVuZGxlXCIsXG5cdFx0XHRcdG9NZXRhTW9kZWw6IHVuZGVmaW5lZCxcblx0XHRcdFx0c01ldGFQYXRoOiBcIlwiLFxuXHRcdFx0XHRzTmV3QWN0aW9uOiBcIlwiLFxuXHRcdFx0XHRvUmVzb3VyY2VCdW5kbGVDb3JlOiB7XG5cdFx0XHRcdFx0Z2V0VGV4dDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gXCJDcmVhdGVcIjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGV4cGVjdGVkOiBcIkNyZWF0ZVwiXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHR0aXRsZTogXCJNZXRhTW9kZWwgcmV0dXJucyB1bmRlZmluZWRcIixcblx0XHRcdFx0b01ldGFNb2RlbDoge1xuXHRcdFx0XHRcdGdldE9iamVjdDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0c01ldGFQYXRoOiBcIlwiLFxuXHRcdFx0XHRzTmV3QWN0aW9uOiBcIlwiLFxuXHRcdFx0XHRvUmVzb3VyY2VCdW5kbGVDb3JlOiB7XG5cdFx0XHRcdFx0Z2V0VGV4dDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gXCJDcmVhdGVcIjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGV4cGVjdGVkOiBcIkNyZWF0ZVwiXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHR0aXRsZTogXCJNZXRhTW9kZWwgcmV0dXJucyBsYWJlbCBmb3IgQWN0aW9uXCIsXG5cdFx0XHRcdG9NZXRhTW9kZWw6IHtcblx0XHRcdFx0XHRnZXRPYmplY3Q6IGZ1bmN0aW9uKHNBbm5vdGF0aW9uOiBzdHJpbmcpIHtcblx0XHRcdFx0XHRcdHJldHVybiBzQW5ub3RhdGlvbiA9PT1cblx0XHRcdFx0XHRcdFx0XCIvU2FsZXNPcmRlck1hbmFnZS9jb20uY19zYWxlc29yZGVybWFuYWdlX3NkLkNyZWF0ZUZyb21DdXN0b21lckBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuTGFiZWxcIlxuXHRcdFx0XHRcdFx0XHQ/IFwiQWN0aW9uOiBDcmVhdGUgZnJvbSBDdXN0b21lclwiXG5cdFx0XHRcdFx0XHRcdDogdW5kZWZpbmVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0c01ldGFQYXRoOiBcIi9TYWxlc09yZGVyTWFuYWdlXCIsXG5cdFx0XHRcdHNOZXdBY3Rpb246IFwiY29tLmNfc2FsZXNvcmRlcm1hbmFnZV9zZC5DcmVhdGVGcm9tQ3VzdG9tZXJcIixcblx0XHRcdFx0b1Jlc291cmNlQnVuZGxlQ29yZToge1xuXHRcdFx0XHRcdGdldFRleHQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFwiQ3JlYXRlXCI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRleHBlY3RlZDogXCJBY3Rpb246IENyZWF0ZSBmcm9tIEN1c3RvbWVyXCJcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdHRpdGxlOiBcIkxpbmVJdGVtIGFuZCBBY3Rpb24gbGFiZWwgYXZhaWxhYmxlIC0tPiBMaW5lSXRlbSBoYXMgcHJpb3JpdHlcIixcblx0XHRcdFx0b01ldGFNb2RlbDoge1xuXHRcdFx0XHRcdGdldE9iamVjdDogZnVuY3Rpb24oc0Fubm90YXRpb246IHN0cmluZykge1xuXHRcdFx0XHRcdFx0c3dpdGNoIChzQW5ub3RhdGlvbikge1xuXHRcdFx0XHRcdFx0XHRjYXNlIFwiL1NhbGVzT3JkZXJNYW5hZ2UvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtXCI6XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0JFR5cGU6IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9yQWN0aW9uXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdEFjdGlvbjogXCJjb20uY19zYWxlc29yZGVybWFuYWdlX3NkLkNyZWF0ZVdpdGhTYWxlc09yZGVyVHlwZVwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRMYWJlbDogXCJCb3VuZCBBY3Rpb24gd2l0aCBwYXJhbXNcIlxuXHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0JFR5cGU6IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdEFjdGlvbjogXCJtYW5hZ2VJbmxpbmVcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0TGFiZWw6IFwiSUJOXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdE5hdmlnYXRpb25BdmFpbGFibGU6IHRydWUsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFJlcXVpcmVzQ29udGV4dDogZmFsc2UsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFNlbWFudGljT2JqZWN0OiBcIlNhbGVzT3JkZXJcIlxuXHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0JFR5cGU6IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9yQWN0aW9uXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdEFjdGlvbjogXCJjb20uY19zYWxlc29yZGVybWFuYWdlX3NkLkNyZWF0ZUZyb21DdXN0b21lclwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRMYWJlbDogXCJMaW5lSXRlbTogQ3JlYXRlIGZyb20gQ3VzdG9tZXJcIlxuXHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0JFR5cGU6IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFZhbHVlOiB7ICRQYXRoOiBcIklEXCIgfVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdF07XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdGNhc2UgXCIvU2FsZXNPcmRlck1hbmFnZS9jb20uY19zYWxlc29yZGVybWFuYWdlX3NkLkNyZWF0ZUZyb21DdXN0b21lckBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuTGFiZWxcIjpcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gXCJBY3Rpb246IENyZWF0ZSBmcm9tIEN1c3RvbWVyXCI7XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHNNZXRhUGF0aDogXCIvU2FsZXNPcmRlck1hbmFnZVwiLFxuXHRcdFx0XHRzTmV3QWN0aW9uOiBcImNvbS5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2QuQ3JlYXRlRnJvbUN1c3RvbWVyXCIsXG5cdFx0XHRcdG9SZXNvdXJjZUJ1bmRsZUNvcmU6IHtcblx0XHRcdFx0XHRnZXRUZXh0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdHJldHVybiBcIkNyZWF0ZVwiO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0ZXhwZWN0ZWQ6IFwiTGluZUl0ZW06IENyZWF0ZSBmcm9tIEN1c3RvbWVyXCJcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdHRpdGxlOiBcIkxpbmVJdGVtIGFubm90YXRpb24gaGFzIGFkZGl0aW9uYWwgY29sbGVjdGlvbiBpbiBicmFja2V0c1wiLFxuXHRcdFx0XHRvTWV0YU1vZGVsOiB7XG5cdFx0XHRcdFx0Z2V0T2JqZWN0OiBmdW5jdGlvbihzQW5ub3RhdGlvbjogc3RyaW5nKSB7XG5cdFx0XHRcdFx0XHRzd2l0Y2ggKHNBbm5vdGF0aW9uKSB7XG5cdFx0XHRcdFx0XHRcdGNhc2UgXCIvU2FsZXNPcmRlck1hbmFnZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW1cIjpcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQkVHlwZTogXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JBY3Rpb25cIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0QWN0aW9uOiBcImNvbS5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2QuQ3JlYXRlV2l0aFNhbGVzT3JkZXJUeXBlXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdExhYmVsOiBcIkJvdW5kIEFjdGlvbiB3aXRoIHBhcmFtc1wiXG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQkVHlwZTogXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0TGFiZWw6IFwibm8gYWN0aW9uIGF2YWlsYWJsZVwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRWYWx1ZTogeyAkUGF0aDogXCJOT0FDVElPTlwiIH1cblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCRUeXBlOiBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvblwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRBY3Rpb246IFwibWFuYWdlSW5saW5lXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdExhYmVsOiBcIklCTlwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHROYXZpZ2F0aW9uQXZhaWxhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRSZXF1aXJlc0NvbnRleHQ6IGZhbHNlLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRTZW1hbnRpY09iamVjdDogXCJTYWxlc09yZGVyXCJcblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCRUeXBlOiBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEZvckFjdGlvblwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRBY3Rpb246XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XCJjb20uY19zYWxlc29yZGVybWFuYWdlX3NkLkNyZWF0ZUZyb21DdXN0b21lcihDb2xsZWN0aW9uKGNvbS5zYXAuZ2F0ZXdheS5zcnZkLmNfc2FsZXNvcmRlcm1hbmFnZV9zZC52MDAwMS5TYWxlc09yZGVyTWFuYWdlVHlwZSkpXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdExhYmVsOiBcIkxpbmVJdGVtOiBDcmVhdGUgZnJvbSBDdXN0b21lclwiXG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQkVHlwZTogXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0VmFsdWU6IHsgJFBhdGg6IFwiSURcIiB9XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XTtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0Y2FzZSBcIi9TYWxlc09yZGVyTWFuYWdlL2NvbS5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2QuQ3JlYXRlRnJvbUN1c3RvbWVyQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5MYWJlbFwiOlxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBcIkFjdGlvbjogQ3JlYXRlIGZyb20gQ3VzdG9tZXJcIjtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0c01ldGFQYXRoOiBcIi9TYWxlc09yZGVyTWFuYWdlXCIsXG5cdFx0XHRcdHNOZXdBY3Rpb246IFwiY29tLmNfc2FsZXNvcmRlcm1hbmFnZV9zZC5DcmVhdGVGcm9tQ3VzdG9tZXJcIixcblx0XHRcdFx0b1Jlc291cmNlQnVuZGxlQ29yZToge1xuXHRcdFx0XHRcdGdldFRleHQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFwiQ3JlYXRlXCI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRleHBlY3RlZDogXCJMaW5lSXRlbTogQ3JlYXRlIGZyb20gQ3VzdG9tZXJcIlxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0dGl0bGU6IFwiTGluZUl0ZW0gYW5ub3RhdGlvbiB3aXRoIHNpbWlsYXIgYWN0aW9uIG5hbWVzXCIsXG5cdFx0XHRcdG9NZXRhTW9kZWw6IHtcblx0XHRcdFx0XHRnZXRPYmplY3Q6IGZ1bmN0aW9uKHNBbm5vdGF0aW9uOiBzdHJpbmcpIHtcblx0XHRcdFx0XHRcdHN3aXRjaCAoc0Fubm90YXRpb24pIHtcblx0XHRcdFx0XHRcdFx0Y2FzZSBcIi9TYWxlc09yZGVyTWFuYWdlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbVwiOlxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBbXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCRUeXBlOiBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEZvckFjdGlvblwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRBY3Rpb246IFwiY29tLmNfc2FsZXNvcmRlcm1hbmFnZV9zZC5DcmVhdGVXaXRoU2FsZXNPcmRlclR5cGVcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0TGFiZWw6IFwiQm91bmQgQWN0aW9uIHdpdGggcGFyYW1zXCJcblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCRUeXBlOiBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRMYWJlbDogXCJubyBhY3Rpb24gYXZhaWxhYmxlXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFZhbHVlOiB7ICRQYXRoOiBcIk5PQUNUSU9OXCIgfVxuXHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0JFR5cGU6IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9yQWN0aW9uXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdEFjdGlvbjogXCJjb20uY19zYWxlc29yZGVybWFuYWdlX3NkLkNyZWF0ZUZyb21DdXN0b21lckV4dGVuZGVkXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdExhYmVsOiBcIkxpbmVJdGVtOiBDcmVhdGUgZnJvbSBDdXN0b21lciBFeHRlbmRlZFwiXG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQkVHlwZTogXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25cIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0QWN0aW9uOiBcIm1hbmFnZUlubGluZVwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRMYWJlbDogXCJJQk5cIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0TmF2aWdhdGlvbkF2YWlsYWJsZTogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0UmVxdWlyZXNDb250ZXh0OiBmYWxzZSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0U2VtYW50aWNPYmplY3Q6IFwiU2FsZXNPcmRlclwiXG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQkVHlwZTogXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JBY3Rpb25cIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0QWN0aW9uOiBcImNvbS5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2QuQ3JlYXRlRnJvbUN1c3RvbWVyXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdExhYmVsOiBcIkxpbmVJdGVtOiBDcmVhdGUgZnJvbSBDdXN0b21lclwiXG5cdFx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQkVHlwZTogXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0VmFsdWU6IHsgJFBhdGg6IFwiSURcIiB9XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XTtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0Y2FzZSBcIi9TYWxlc09yZGVyTWFuYWdlL2NvbS5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2QuQ3JlYXRlRnJvbUN1c3RvbWVyQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5MYWJlbFwiOlxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBcIkFjdGlvbjogQ3JlYXRlIGZyb20gQ3VzdG9tZXJcIjtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0c01ldGFQYXRoOiBcIi9TYWxlc09yZGVyTWFuYWdlXCIsXG5cdFx0XHRcdHNOZXdBY3Rpb246IFwiY29tLmNfc2FsZXNvcmRlcm1hbmFnZV9zZC5DcmVhdGVGcm9tQ3VzdG9tZXJcIixcblx0XHRcdFx0b1Jlc291cmNlQnVuZGxlQ29yZToge1xuXHRcdFx0XHRcdGdldFRleHQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFwiQ3JlYXRlXCI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRleHBlY3RlZDogXCJMaW5lSXRlbTogQ3JlYXRlIGZyb20gQ3VzdG9tZXJcIlxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0dGl0bGU6IFwiTWV0YU1vZGVsIGhhcyBsYWJlbCBmb3IgQWN0aW9uLCBidXQgTWV0YVBhdGggbWlzc2luZ1wiLFxuXHRcdFx0XHRvTWV0YU1vZGVsOiB7XG5cdFx0XHRcdFx0Z2V0T2JqZWN0OiBmdW5jdGlvbihzQW5ub3RhdGlvbjogc3RyaW5nKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gc0Fubm90YXRpb24gPT09XG5cdFx0XHRcdFx0XHRcdFwiL1NhbGVzT3JkZXJNYW5hZ2UvY29tLmNfc2FsZXNvcmRlcm1hbmFnZV9zZC5DcmVhdGVGcm9tQ3VzdG9tZXJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkxhYmVsXCJcblx0XHRcdFx0XHRcdFx0PyBcIkFjdGlvbjogQ3JlYXRlIGJ5IEN1c3RvbWVyXCJcblx0XHRcdFx0XHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRzTWV0YVBhdGg6IFwiXCIsXG5cdFx0XHRcdHNOZXdBY3Rpb246IFwiY29tLmNfc2FsZXNvcmRlcm1hbmFnZV9zZC5DcmVhdGVGcm9tQ3VzdG9tZXJcIixcblx0XHRcdFx0b1Jlc291cmNlQnVuZGxlQ29yZToge1xuXHRcdFx0XHRcdGdldFRleHQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFwiQ3JlYXRlXCI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRleHBlY3RlZDogXCJDcmVhdGVcIlxuXHRcdFx0fVxuXHRcdF07XG5cblx0XHRhVGVzdHMuZm9yRWFjaChvVGVzdCA9PiB7XG5cdFx0XHRpdChcblx0XHRcdFx0b1Rlc3QudGl0bGUsXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcInR5cGVcIjogXCJCQ1BcIixcblx0XHRcdFx0XHRcdFx0XCJJRFwiOiBcIjIxNzAzMjYzMTFcIlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF1cblx0XHRcdFx0fSxcblx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0ZXhwZWN0KFxuXHRcdFx0XHRcdFx0b1RyYW5zYWN0aW9uSGVscGVyLl9nZXRTcGVjaWZpY0NyZWF0ZUFjdGlvbkRpYWxvZ0xhYmVsKFxuXHRcdFx0XHRcdFx0XHRvVGVzdC5vTWV0YU1vZGVsIGFzIGFueSxcblx0XHRcdFx0XHRcdFx0b1Rlc3Quc01ldGFQYXRoLFxuXHRcdFx0XHRcdFx0XHRvVGVzdC5zTmV3QWN0aW9uLFxuXHRcdFx0XHRcdFx0XHRvVGVzdC5vUmVzb3VyY2VCdW5kbGVDb3JlIGFzIGFueVxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdCkudG9CZShvVGVzdC5leHBlY3RlZCk7XG5cdFx0XHRcdH1cblx0XHRcdCk7XG5cdFx0fSk7XG5cdH0pO1xuXHRkZXNjcmliZShcImNhbmNlbERvY3VtZW50KCk6IG9uQmVmb3JlRGlzY2FyZFwiLCAoKSA9PiB7XG5cdFx0bGV0IG9UcmFuc2FjdGlvbkhlbHBlcjogVHJhbnNhY3Rpb25IZWxwZXI7XG5cdFx0bGV0IG9Db250ZXh0OiBhbnk7XG5cdFx0bGV0IG9Mb2NrTW9jaztcblx0XHRsZXQgb1VubG9ja01vY2s7XG5cdFx0bGV0IG9HZXRQcm9ncmFtbWluZ01vZGVsTW9jazogYW55O1xuXHRcdGxldCBvT25CZWZvcmVEaXNjYXJkTW9jazogYW55O1xuXHRcdGxldCBvRGVsZXRlRHJhZnRNb2NrOiBhbnk7XG5cdFx0bGV0IG9EaXNjYXJkRG9jdW1lbnRNb2NrOiBhbnk7XG5cdFx0bGV0IG1QYXJhbXM6IGFueTtcblx0XHRsZXQgbWVzc2FnZUhhbmRsZXI6IGFueTtcblx0XHRiZWZvcmVFYWNoKCgpID0+IHtcblx0XHRcdG9UcmFuc2FjdGlvbkhlbHBlciA9IG5ldyBUcmFuc2FjdGlvbkhlbHBlcihvQXBwQ29tcG9uZW50LCBvTG9ja09iamVjdCk7XG5cdFx0XHRvQ29udGV4dCA9IHtcblx0XHRcdFx0Z2V0TW9kZWw6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRiaW5kQ29udGV4dDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdFx0Z2V0Qm91bmRDb250ZXh0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlcXVlc3RPYmplY3Q6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRnZXRQYXRoOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gXCJcIjtcblx0XHRcdFx0fSxcblx0XHRcdFx0aGFzUGVuZGluZ0NoYW5nZXM6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRnZXRCaW5kaW5nOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0cmVzZXRDaGFuZ2VzOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRyZWZyZXNoOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRyZXF1ZXN0T2JqZWN0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHRcdG9Mb2NrTW9jayA9IGplc3Quc3B5T24oQnVzeUxvY2tlciwgXCJsb2NrXCIpO1xuXHRcdFx0b0xvY2tNb2NrLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBmYWxzZSk7XG5cdFx0XHRvVW5sb2NrTW9jayA9IGplc3Quc3B5T24oQnVzeUxvY2tlciwgXCJ1bmxvY2tcIik7XG5cdFx0XHRvVW5sb2NrTW9jay5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gZmFsc2UpO1xuXHRcdFx0bVBhcmFtcyA9IHtcblx0XHRcdFx0Y2FuY2VsQnV0dG9uOiBudWxsLFxuXHRcdFx0XHRza2lwRGlzY2FyZFBvcG92ZXI6IHRydWUsXG5cdFx0XHRcdGJlZm9yZUNhbmNlbENhbGxCYWNrOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRvR2V0UHJvZ3JhbW1pbmdNb2RlbE1vY2sgPSBqZXN0LnNweU9uKG9UcmFuc2FjdGlvbkhlbHBlciwgXCJnZXRQcm9ncmFtbWluZ01vZGVsXCIpO1xuXHRcdFx0bWVzc2FnZUhhbmRsZXIgPSB7XG5cdFx0XHRcdHJlbW92ZVRyYW5zaXRpb25NZXNzYWdlczogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHRcdFx0fSxcblx0XHRcdFx0c2hvd01lc3NhZ2VzOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRvRGVsZXRlRHJhZnRNb2NrID0gamVzdC5zcHlPbihkcmFmdCwgXCJkZWxldGVEcmFmdFwiKTtcblx0XHRcdG9EZWxldGVEcmFmdE1vY2subW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdFx0fSk7XG5cdFx0XHRvRGlzY2FyZERvY3VtZW50TW9jayA9IGplc3Quc3B5T24oc3RpY2t5LCBcImRpc2NhcmREb2N1bWVudFwiKTtcblx0XHRcdG9EaXNjYXJkRG9jdW1lbnRNb2NrLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB7XG5cdFx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHRcdGFmdGVyRWFjaCgoKSA9PiB7XG5cdFx0XHRqZXN0LnJlc3RvcmVBbGxNb2NrcygpO1xuXHRcdH0pO1xuXHRcdGl0KFwib25CZWZvcmVEaXNjYXJkIGlzIHJlc29sdmVkIGZvciBkcmFmdCBwcm9ncmFtbWluZyBtb2RlbFwiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRvR2V0UHJvZ3JhbW1pbmdNb2RlbE1vY2subW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIFwiRHJhZnRcIjtcblx0XHRcdH0pO1xuXHRcdFx0b09uQmVmb3JlRGlzY2FyZE1vY2sgPSBqZXN0LnNweU9uKG1QYXJhbXMsIFwiYmVmb3JlQ2FuY2VsQ2FsbEJhY2tcIik7XG5cdFx0XHRvT25CZWZvcmVEaXNjYXJkTW9jay5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0XHR9KTtcblx0XHRcdGF3YWl0IG9UcmFuc2FjdGlvbkhlbHBlci5jYW5jZWxEb2N1bWVudChvQ29udGV4dCwgbVBhcmFtcywge30sIG1lc3NhZ2VIYW5kbGVyKTtcblx0XHRcdGV4cGVjdChvT25CZWZvcmVEaXNjYXJkTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdFx0ZXhwZWN0KG9PbkJlZm9yZURpc2NhcmRNb2NrKS50b0JlQ2FsbGVkV2l0aCh7IFwiY29udGV4dFwiOiBvQ29udGV4dCB9KTtcblx0XHRcdGV4cGVjdChvRGVsZXRlRHJhZnRNb2NrKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG5cdFx0fSk7XG5cdFx0aXQoXCJvbkJlZm9yZURpc2NhcmQgaXMgcmVqZWN0ZWQgZm9yIGRyYWZ0IHByb2dyYW1taW5nIG1vZGVsXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdG9HZXRQcm9ncmFtbWluZ01vZGVsTW9jay5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBcIkRyYWZ0XCI7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRvT25CZWZvcmVEaXNjYXJkTW9jayA9IGplc3Quc3B5T24obVBhcmFtcywgXCJiZWZvcmVDYW5jZWxDYWxsQmFja1wiKTtcblx0XHRcdFx0b09uQmVmb3JlRGlzY2FyZE1vY2subW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZWplY3QoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGF3YWl0IG9UcmFuc2FjdGlvbkhlbHBlci5jYW5jZWxEb2N1bWVudChvQ29udGV4dCwgbVBhcmFtcywge30sIG1lc3NhZ2VIYW5kbGVyKTtcblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRleHBlY3Qob09uQmVmb3JlRGlzY2FyZE1vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblx0XHRcdFx0ZXhwZWN0KG9PbkJlZm9yZURpc2NhcmRNb2NrKS50b0JlQ2FsbGVkV2l0aCh7IFwiY29udGV4dFwiOiBvQ29udGV4dCB9KTtcblx0XHRcdFx0ZXhwZWN0KG9EZWxldGVEcmFmdE1vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygwKTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRpdChcIm9uQmVmb3JlRGlzY2FyZCBpcyByZXNvbHZlZCBmb3Igc3RpY2t5IHByb2dyYW1taW5nIG1vZGVsXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdG9HZXRQcm9ncmFtbWluZ01vZGVsTW9jay5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gXCJTdGlja3lcIjtcblx0XHRcdH0pO1xuXHRcdFx0b09uQmVmb3JlRGlzY2FyZE1vY2sgPSBqZXN0LnNweU9uKG1QYXJhbXMsIFwiYmVmb3JlQ2FuY2VsQ2FsbEJhY2tcIik7XG5cdFx0XHRvT25CZWZvcmVEaXNjYXJkTW9jay5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0XHR9KTtcblx0XHRcdGF3YWl0IG9UcmFuc2FjdGlvbkhlbHBlci5jYW5jZWxEb2N1bWVudChvQ29udGV4dCwgbVBhcmFtcywge30sIG1lc3NhZ2VIYW5kbGVyKTtcblx0XHRcdGV4cGVjdChvT25CZWZvcmVEaXNjYXJkTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdFx0ZXhwZWN0KG9PbkJlZm9yZURpc2NhcmRNb2NrKS50b0JlQ2FsbGVkV2l0aCh7IFwiY29udGV4dFwiOiBvQ29udGV4dCB9KTtcblx0XHRcdGV4cGVjdChvRGlzY2FyZERvY3VtZW50TW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdH0pO1xuXHRcdGl0KFwib25CZWZvcmVEaXNjYXJkIGlzIHJlamVjdGVkIGZvciBzdGlja3kgcHJvZ3JhbW1pbmcgbW9kZWxcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0b0dldFByb2dyYW1taW5nTW9kZWxNb2NrLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIFwiU3RpY2t5XCI7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRvT25CZWZvcmVEaXNjYXJkTW9jayA9IGplc3Quc3B5T24obVBhcmFtcywgXCJiZWZvcmVDYW5jZWxDYWxsQmFja1wiKTtcblx0XHRcdFx0b09uQmVmb3JlRGlzY2FyZE1vY2subW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZWplY3QoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGF3YWl0IG9UcmFuc2FjdGlvbkhlbHBlci5jYW5jZWxEb2N1bWVudChvQ29udGV4dCwgbVBhcmFtcywge30sIG1lc3NhZ2VIYW5kbGVyKTtcblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRleHBlY3Qob09uQmVmb3JlRGlzY2FyZE1vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblx0XHRcdFx0ZXhwZWN0KG9PbkJlZm9yZURpc2NhcmRNb2NrKS50b0JlQ2FsbGVkV2l0aCh7IFwiY29udGV4dFwiOiBvQ29udGV4dCB9KTtcblx0XHRcdFx0ZXhwZWN0KG9EaXNjYXJkRG9jdW1lbnRNb2NrKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0pO1xuXHRkZXNjcmliZShcImRlbGV0ZURvY3VtZW50KCk6IG9uQmVmb3JlRGVsZXRlXCIsICgpID0+IHtcblx0XHRsZXQgb1RyYW5zYWN0aW9uSGVscGVyOiBUcmFuc2FjdGlvbkhlbHBlcjtcblx0XHRsZXQgdkNvbnRleHRzO1xuXHRcdGxldCBvTG9ja01vY2s7XG5cdFx0bGV0IG9VbmxvY2tNb2NrO1xuXHRcdGxldCBvR2V0UHJvZ3JhbW1pbmdNb2RlbE1vY2s6IGFueTtcblx0XHRsZXQgb09uQmVmb3JlRGVsZXRlTW9jazogYW55O1xuXHRcdGxldCBvRGVsZXRlRHJhZnRNb2NrOiBhbnk7XG5cdFx0bGV0IG9GaW5kQWN0aXZlRHJhZnRSb290Q29udGV4dHNNb2NrO1xuXHRcdGxldCBvQWZ0ZXJEZWxldGVQcm9jZXNzTW9jaztcblx0XHRsZXQgb0dldFRyYW5zbGF0ZWRUZXh0TW9jaztcblx0XHRsZXQgbVBhcmFtczogYW55O1xuXHRcdGxldCBtZXNzYWdlSGFuZGxlcjogYW55O1xuXHRcdGZ1bmN0aW9uIGNyZWF0ZUNvbnRleHQoc2FsZXNPcmRlcjogYW55KSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRnZXRPYmplY3Q6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRTYWxlc09yZGVyOiBzYWxlc09yZGVyXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9XG5cdFx0YmVmb3JlRWFjaCgoKSA9PiB7XG5cdFx0XHRvVHJhbnNhY3Rpb25IZWxwZXIgPSBuZXcgVHJhbnNhY3Rpb25IZWxwZXIob0FwcENvbXBvbmVudCwgb0xvY2tPYmplY3QpO1xuXHRcdFx0b0xvY2tNb2NrID0gamVzdC5zcHlPbihCdXN5TG9ja2VyLCBcImxvY2tcIik7XG5cdFx0XHRvTG9ja01vY2subW9ja1JldHVyblZhbHVlKGZhbHNlKTtcblx0XHRcdG9VbmxvY2tNb2NrID0gamVzdC5zcHlPbihCdXN5TG9ja2VyLCBcInVubG9ja1wiKTtcblx0XHRcdG9VbmxvY2tNb2NrLm1vY2tSZXR1cm5WYWx1ZShmYWxzZSk7XG5cdFx0XHRtUGFyYW1zID0ge1xuXHRcdFx0XHR1blNhdmVkQ29udGV4dHM6IFtdLFxuXHRcdFx0XHRsb2NrZWRDb250ZXh0czogW10sXG5cdFx0XHRcdGVkaXRGbG93OiB7XG5cdFx0XHRcdFx0YmFzZToge1xuXHRcdFx0XHRcdFx0ZWRpdEZsb3c6IHtcblx0XHRcdFx0XHRcdFx0b25CZWZvcmVEZWxldGU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHRcdG9HZXRQcm9ncmFtbWluZ01vZGVsTW9jayA9IGplc3Quc3B5T24ob1RyYW5zYWN0aW9uSGVscGVyLCBcImdldFByb2dyYW1taW5nTW9kZWxcIik7XG5cdFx0XHRvR2V0UHJvZ3JhbW1pbmdNb2RlbE1vY2subW9ja1JldHVyblZhbHVlKFwiRHJhZnRcIik7XG5cdFx0XHRtZXNzYWdlSGFuZGxlciA9IHtcblx0XHRcdFx0c2hvd01lc3NhZ2VEaWFsb2c6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0c2hvd01lc3NhZ2VzOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRvRGVsZXRlRHJhZnRNb2NrID0gamVzdC5zcHlPbihkcmFmdCwgXCJkZWxldGVEcmFmdFwiKTtcblx0XHRcdG9EZWxldGVEcmFmdE1vY2subW9ja1Jlc29sdmVkVmFsdWUoKTtcblx0XHRcdG9GaW5kQWN0aXZlRHJhZnRSb290Q29udGV4dHNNb2NrID0gamVzdC5zcHlPbihvVHJhbnNhY3Rpb25IZWxwZXIsIFwiZmluZEFjdGl2ZURyYWZ0Um9vdENvbnRleHRzXCIpO1xuXHRcdFx0b0ZpbmRBY3RpdmVEcmFmdFJvb3RDb250ZXh0c01vY2subW9ja1Jlc29sdmVkVmFsdWUoKTtcblx0XHRcdG9BZnRlckRlbGV0ZVByb2Nlc3NNb2NrID0gamVzdC5zcHlPbihvVHJhbnNhY3Rpb25IZWxwZXIsIFwiYWZ0ZXJEZWxldGVQcm9jZXNzXCIpO1xuXHRcdFx0b0FmdGVyRGVsZXRlUHJvY2Vzc01vY2subW9ja1JldHVyblZhbHVlKCk7XG5cdFx0XHRvR2V0VHJhbnNsYXRlZFRleHRNb2NrID0gamVzdC5zcHlPbihDb21tb25VdGlscywgXCJnZXRUcmFuc2xhdGVkVGV4dFwiKTtcblx0XHRcdG9HZXRUcmFuc2xhdGVkVGV4dE1vY2subW9ja1JldHVyblZhbHVlKFwiXCIpO1xuXHRcdH0pO1xuXHRcdGFmdGVyRWFjaCgoKSA9PiB7XG5cdFx0XHRqZXN0LnJlc3RvcmVBbGxNb2NrcygpO1xuXHRcdH0pO1xuXHRcdGl0KFwib25CZWZvcmVEZWxldGUgaXMgcmVzb2x2ZWQgZm9yIHNpbmdsZSBDb250ZXh0XCIsIGFzeW5jICgpID0+IHtcblx0XHRcdHZDb250ZXh0cyA9IFtjcmVhdGVDb250ZXh0KDY0MzcpXTtcblx0XHRcdG1QYXJhbXMubnVtYmVyT2ZTZWxlY3RlZENvbnRleHRzID0gMTtcblx0XHRcdG1QYXJhbXMubm9EaWFsb2cgPSB0cnVlO1xuXHRcdFx0bVBhcmFtcy5iZWZvcmVEZWxldGVDYWxsQmFjayA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0XHR9O1xuXHRcdFx0b09uQmVmb3JlRGVsZXRlTW9jayA9IGplc3Quc3B5T24obVBhcmFtcywgXCJiZWZvcmVEZWxldGVDYWxsQmFja1wiKTtcblx0XHRcdG9PbkJlZm9yZURlbGV0ZU1vY2subW9ja1Jlc29sdmVkVmFsdWUoKTtcblx0XHRcdGF3YWl0IG9UcmFuc2FjdGlvbkhlbHBlci5kZWxldGVEb2N1bWVudCh2Q29udGV4dHMsIG1QYXJhbXMsIHt9LCBtZXNzYWdlSGFuZGxlcik7XG5cdFx0XHRleHBlY3Qob09uQmVmb3JlRGVsZXRlTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdFx0ZXhwZWN0KG9PbkJlZm9yZURlbGV0ZU1vY2spLnRvQmVDYWxsZWRXaXRoKHsgXCJjb250ZXh0c1wiOiB2Q29udGV4dHMgfSk7XG5cdFx0XHRleHBlY3Qob0RlbGV0ZURyYWZ0TW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdH0pO1xuXHRcdGl0KFwib25CZWZvcmVEZWxldGUgaXMgcmVzb2x2ZWQgZm9yIG11bHRpcGxlIGNvbnRleHRzXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdHZDb250ZXh0cyA9IFtjcmVhdGVDb250ZXh0KDY0MzcpLCBjcmVhdGVDb250ZXh0KDI5MTU3MTcpXTtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdG9HZXRQcm9ncmFtbWluZ01vZGVsTW9jay5tb2NrUmV0dXJuVmFsdWUoXCJEcmFmdFwiKTtcblx0XHRcdFx0bVBhcmFtcy5ub0RpYWxvZyA9IHRydWU7XG5cdFx0XHRcdG1QYXJhbXMuYmVmb3JlRGVsZXRlQ2FsbEJhY2sgPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0XHRcdH07XG5cdFx0XHRcdG9PbkJlZm9yZURlbGV0ZU1vY2sgPSBqZXN0LnNweU9uKG1QYXJhbXMsIFwiYmVmb3JlRGVsZXRlQ2FsbEJhY2tcIik7XG5cdFx0XHRcdG9PbkJlZm9yZURlbGV0ZU1vY2subW9ja1Jlc29sdmVkVmFsdWUoKTtcblx0XHRcdFx0YXdhaXQgb1RyYW5zYWN0aW9uSGVscGVyLmRlbGV0ZURvY3VtZW50KHZDb250ZXh0cywgbVBhcmFtcywge30sIG1lc3NhZ2VIYW5kbGVyKTtcblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRleHBlY3Qob09uQmVmb3JlRGVsZXRlTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdFx0XHRleHBlY3Qob09uQmVmb3JlRGVsZXRlTW9jaykudG9CZUNhbGxlZFdpdGgoeyBcImNvbnRleHRzXCI6IHZDb250ZXh0cyB9KTtcblx0XHRcdFx0ZXhwZWN0KG9EZWxldGVEcmFmdE1vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygyKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSk7XG5cdGRlc2NyaWJlKFwiY3JlYXRlRG9jdW1lbnQoKTogb25CZWZvcmVDcmVhdGVcIiwgKCkgPT4ge1xuXHRcdGxldCBvVHJhbnNhY3Rpb25IZWxwZXI6IFRyYW5zYWN0aW9uSGVscGVyO1xuXHRcdGxldCBvTWFpbkxpc3RCaW5kaW5nOiBhbnk7XG5cdFx0bGV0IG9Mb2NrTW9jaztcblx0XHRsZXQgb1VubG9ja01vY2s7XG5cdFx0bGV0IG9PbkJlZm9yZUNyZWF0ZU1vY2s6IGFueTtcblx0XHRsZXQgb0FwcENvbXBvbmVudE1vY2s7XG5cdFx0bGV0IG9HZXRQcm9ncmFtbWluZ01vZGVsTW9jaztcblx0XHRsZXQgb01vZGVsSGVscGVyTW9jaztcblx0XHRsZXQgb0NhbGxGdW5jdGlvbkltcG9ydE1vY2s7XG5cdFx0bGV0IG9PbkFmdGVyQ3JlYXRlQ29tcGxldGlvbk1vY2s7XG5cdFx0bGV0IG9DcmVhdGVNb2NrOiBhbnk7XG5cdFx0bGV0IG1QYXJhbXM6IGFueTtcblx0XHRsZXQgbWVzc2FnZUhhbmRsZXI6IGFueTtcblx0XHRiZWZvcmVFYWNoKCgpID0+IHtcblx0XHRcdGNvbnN0IG1vY2tNb2RlbCA9IG5ldyBNb2NrTW9kZWwoKTtcblx0XHRcdGNvbnN0IG1vY2tNZXRhTW9kZWwgPSBuZXcgTW9ja01ldGFNb2RlbCh7fSk7XG5cdFx0XHRtb2NrTW9kZWwuc2V0TWV0YU1vZGVsKG1vY2tNZXRhTW9kZWwpO1xuXHRcdFx0b1RyYW5zYWN0aW9uSGVscGVyID0gbmV3IFRyYW5zYWN0aW9uSGVscGVyKG9BcHBDb21wb25lbnQsIG9Mb2NrT2JqZWN0KTtcblx0XHRcdG9NYWluTGlzdEJpbmRpbmcgPSB7XG5cdFx0XHRcdGdldE1vZGVsOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gbW9ja01vZGVsO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRnZXRIZWFkZXJDb250ZXh0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0Z2V0UGF0aDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGlzUmVsYXRpdmU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRnZXRQYXRoOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gXCIvU2FsZXNPcmRlck1hbmFnZVwiO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRjcmVhdGU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHRcdG9BcHBDb21wb25lbnRNb2NrID0gamVzdC5zcHlPbihvVHJhbnNhY3Rpb25IZWxwZXIsIFwiX2dldEFwcENvbXBvbmVudFwiKTtcblx0XHRcdG9BcHBDb21wb25lbnRNb2NrLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB7XG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0Z2V0Q29tcG9uZW50RGF0YTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGdldFJvdXRlclByb3h5OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdGdldEhhc2g6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBcIlwiO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBhcyBhbnk7XG5cdFx0XHR9KTtcblx0XHRcdG9PbkFmdGVyQ3JlYXRlQ29tcGxldGlvbk1vY2sgPSBqZXN0LnNweU9uKG9UcmFuc2FjdGlvbkhlbHBlciwgXCJvbkFmdGVyQ3JlYXRlQ29tcGxldGlvblwiKTtcblx0XHRcdG9PbkFmdGVyQ3JlYXRlQ29tcGxldGlvbk1vY2subW9ja1Jlc29sdmVkVmFsdWUodW5kZWZpbmVkKTtcblx0XHRcdG9HZXRQcm9ncmFtbWluZ01vZGVsTW9jayA9IGplc3Quc3B5T24ob1RyYW5zYWN0aW9uSGVscGVyLCBcImdldFByb2dyYW1taW5nTW9kZWxcIik7XG5cdFx0XHRvTG9ja01vY2sgPSBqZXN0LnNweU9uKEJ1c3lMb2NrZXIsIFwibG9ja1wiKTtcblx0XHRcdG9Mb2NrTW9jay5tb2NrUmV0dXJuVmFsdWUoZmFsc2UpO1xuXHRcdFx0b1VubG9ja01vY2sgPSBqZXN0LnNweU9uKEJ1c3lMb2NrZXIsIFwidW5sb2NrXCIpO1xuXHRcdFx0b1VubG9ja01vY2subW9ja1JldHVyblZhbHVlKGZhbHNlKTtcblx0XHRcdG9Nb2RlbEhlbHBlck1vY2sgPSBqZXN0LnNweU9uKE1vZGVsSGVscGVyLCBcImdldFRhcmdldEVudGl0eVNldFwiKTtcblx0XHRcdG9Nb2RlbEhlbHBlck1vY2subW9ja1JldHVyblZhbHVlKFwiXCIpO1xuXHRcdFx0b0NhbGxGdW5jdGlvbkltcG9ydE1vY2sgPSBqZXN0LnNweU9uKG9wZXJhdGlvbnMsIFwiY2FsbEZ1bmN0aW9uSW1wb3J0XCIpO1xuXHRcdFx0b0NhbGxGdW5jdGlvbkltcG9ydE1vY2subW9ja1Jlc29sdmVkVmFsdWUodW5kZWZpbmVkKTtcblx0XHRcdG1QYXJhbXMgPSB7XG5cdFx0XHRcdGNyZWF0aW9uTW9kZTogXCJDcmVhdGlvblJvd1wiLFxuXHRcdFx0XHRiZWZvcmVDcmVhdGVDYWxsQmFjazogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0b0dldFByb2dyYW1taW5nTW9kZWxNb2NrID0gamVzdC5zcHlPbihvVHJhbnNhY3Rpb25IZWxwZXIsIFwiZ2V0UHJvZ3JhbW1pbmdNb2RlbFwiKTtcblx0XHRcdG9HZXRQcm9ncmFtbWluZ01vZGVsTW9jay5tb2NrUmV0dXJuVmFsdWUoXCJEcmFmdFwiIGFzIGFueSk7XG5cdFx0XHRtZXNzYWdlSGFuZGxlciA9IHtcblx0XHRcdFx0cmVtb3ZlVHJhbnNpdGlvbk1lc3NhZ2VzOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRzaG93TWVzc2FnZXM6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0c2hvd01lc3NhZ2VEaWFsb2c6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9KTtcblx0XHRhZnRlckVhY2goKCkgPT4ge1xuXHRcdFx0amVzdC5yZXN0b3JlQWxsTW9ja3MoKTtcblx0XHR9KTtcblx0XHRpdChcIm9uQmVmb3JlQ3JlYXRlIGlzIHJlc29sdmVkXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdG9PbkJlZm9yZUNyZWF0ZU1vY2sgPSBqZXN0LnNweU9uKG1QYXJhbXMsIFwiYmVmb3JlQ3JlYXRlQ2FsbEJhY2tcIik7XG5cdFx0XHRvT25CZWZvcmVDcmVhdGVNb2NrLm1vY2tSZXNvbHZlZFZhbHVlKCk7XG5cdFx0XHRvQ3JlYXRlTW9jayA9IGplc3Quc3B5T24ob01haW5MaXN0QmluZGluZywgXCJjcmVhdGVcIik7XG5cdFx0XHRvQ3JlYXRlTW9jay5tb2NrUmVzb2x2ZWRWYWx1ZSgpO1xuXHRcdFx0YXdhaXQgb1RyYW5zYWN0aW9uSGVscGVyLmNyZWF0ZURvY3VtZW50KG9NYWluTGlzdEJpbmRpbmcsIG1QYXJhbXMsIHt9LCBtZXNzYWdlSGFuZGxlciwgZmFsc2UsIHVuZGVmaW5lZCk7XG5cdFx0XHRleHBlY3Qob09uQmVmb3JlQ3JlYXRlTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdFx0ZXhwZWN0KG9PbkJlZm9yZUNyZWF0ZU1vY2spLnRvQmVDYWxsZWRXaXRoKHsgXCJjb250ZXh0UGF0aFwiOiBcIi9TYWxlc09yZGVyTWFuYWdlXCIgfSk7XG5cdFx0XHRleHBlY3Qob0NyZWF0ZU1vY2spLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblx0XHR9KTtcblx0XHRpdChcIm9uQmVmb3JlQ3JlYXRlIGlzIHJlamVjdGVkXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdG9PbkJlZm9yZUNyZWF0ZU1vY2sgPSBqZXN0LnNweU9uKG1QYXJhbXMsIFwiYmVmb3JlQ3JlYXRlQ2FsbEJhY2tcIik7XG5cdFx0XHRcdG9PbkJlZm9yZUNyZWF0ZU1vY2subW9ja1Jlc29sdmVkVmFsdWUoKTtcblx0XHRcdFx0b0NyZWF0ZU1vY2sgPSBqZXN0LnNweU9uKG9NYWluTGlzdEJpbmRpbmcsIFwiY3JlYXRlXCIpO1xuXHRcdFx0XHRvQ3JlYXRlTW9jay5tb2NrUmVzb2x2ZWRWYWx1ZSgpO1xuXHRcdFx0XHRhd2FpdCBvVHJhbnNhY3Rpb25IZWxwZXIuY3JlYXRlRG9jdW1lbnQob01haW5MaXN0QmluZGluZywgbVBhcmFtcywge30sIG1lc3NhZ2VIYW5kbGVyLCBmYWxzZSwgdW5kZWZpbmVkKTtcblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRleHBlY3Qob09uQmVmb3JlQ3JlYXRlTW9jaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdFx0XHRleHBlY3Qob09uQmVmb3JlQ3JlYXRlTW9jaykudG9CZUNhbGxlZFdpdGgoeyBcImNvbnRleHRQYXRoXCI6IFwiL1NhbGVzT3JkZXJNYW5hZ2VcIiB9KTtcblx0XHRcdFx0ZXhwZWN0KG9DcmVhdGVNb2NrKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiZGVsZXRlRG9jdW1lbnQoKTogd2FybmluZyB0ZXh0XCIsICgpID0+IHtcblx0XHRsZXQgb1RyYW5zYWN0aW9uSGVscGVyOiBUcmFuc2FjdGlvbkhlbHBlcjtcblx0XHRsZXQgdkNvbnRleHRzO1xuXHRcdGxldCBvR2V0UHJvZ3JhbW1pbmdNb2RlbE1vY2s6IGFueTtcblx0XHRsZXQgb0RlbGV0ZURyYWZ0TW9jazogYW55O1xuXHRcdGxldCBvR2V0VHJhbnNsYXRlZFRleHRNb2NrOiBhbnk7XG5cdFx0bGV0IG1QYXJhbXM6IGFueTtcblx0XHRsZXQgbWVzc2FnZUhhbmRsZXI6IGFueTtcblx0XHRmdW5jdGlvbiBjcmVhdGVDb250ZXh0KHNhbGVzT3JkZXI6IGFueSkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0Z2V0T2JqZWN0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0U2FsZXNPcmRlcjogc2FsZXNPcmRlclxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0fVxuXHRcdGJlZm9yZUVhY2goKCkgPT4ge1xuXHRcdFx0b1RyYW5zYWN0aW9uSGVscGVyID0gbmV3IFRyYW5zYWN0aW9uSGVscGVyKG9BcHBDb21wb25lbnQsIG9Mb2NrT2JqZWN0KTtcblx0XHRcdG9HZXRQcm9ncmFtbWluZ01vZGVsTW9jayA9IGplc3Quc3B5T24ob1RyYW5zYWN0aW9uSGVscGVyLCBcImdldFByb2dyYW1taW5nTW9kZWxcIik7XG5cdFx0XHRvR2V0UHJvZ3JhbW1pbmdNb2RlbE1vY2subW9ja1JldHVyblZhbHVlKFwiRHJhZnRcIik7XG5cdFx0XHRtZXNzYWdlSGFuZGxlciA9IHtcblx0XHRcdFx0c2hvd01lc3NhZ2VEaWFsb2c6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0c2hvd01lc3NhZ2VzOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRvRGVsZXRlRHJhZnRNb2NrID0gamVzdC5zcHlPbihkcmFmdCwgXCJkZWxldGVEcmFmdFwiKTtcblx0XHRcdG9EZWxldGVEcmFmdE1vY2subW9ja1Jlc29sdmVkVmFsdWUoKTtcblx0XHRcdG9HZXRUcmFuc2xhdGVkVGV4dE1vY2sgPSBqZXN0LnNweU9uKENvbW1vblV0aWxzLCBcImdldFRyYW5zbGF0ZWRUZXh0XCIpO1xuXHRcdFx0b0dldFRyYW5zbGF0ZWRUZXh0TW9jay5tb2NrUmV0dXJuVmFsdWUoXCJcIik7XG5cdFx0fSk7XG5cdFx0YWZ0ZXJFYWNoKCgpID0+IHtcblx0XHRcdGplc3QucmVzdG9yZUFsbE1vY2tzKCk7XG5cdFx0fSk7XG5cdFx0aXQoXCJXYXJuaW5nIHRleHQgd2hlbiBvbmx5IHRpdGxlIGlzIGF2YWlsYWJsZVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHR2Q29udGV4dHMgPSBbY3JlYXRlQ29udGV4dCgyOTE1NzE3KV07XG5cdFx0XHRtUGFyYW1zID0ge1xuXHRcdFx0XHRub0RpYWxvZzogdHJ1ZSxcblx0XHRcdFx0dGl0bGU6IFwiMjkxNTcxN1wiLFxuXHRcdFx0XHRlbnRpdHlTZXROYW1lOiBcIlNhbGVzT3JkZXJNYW5hZ2VcIlxuXHRcdFx0fTtcblx0XHRcdGF3YWl0IG9UcmFuc2FjdGlvbkhlbHBlci5kZWxldGVEb2N1bWVudCh2Q29udGV4dHMsIG1QYXJhbXMsIHt9LCBtZXNzYWdlSGFuZGxlcik7XG5cdFx0XHRleHBlY3Qob0dldFRyYW5zbGF0ZWRUZXh0TW9jaykudG9CZUNhbGxlZFdpdGgoXG5cdFx0XHRcdFwiQ19UUkFOU0FDVElPTl9IRUxQRVJfT0JKRUNUX1BBR0VfQ09ORklSTV9ERUxFVEVfV0lUSF9PQkpFQ1RJTkZPXCIsXG5cdFx0XHRcdHt9LFxuXHRcdFx0XHRbXCIyOTE1NzE3XCIsIFwiXCJdLFxuXHRcdFx0XHRcIlNhbGVzT3JkZXJNYW5hZ2VcIlxuXHRcdFx0KTtcblx0XHR9KTtcblx0XHRpdChcIldhcm5pbmcgdGV4dCB3aGVuIG9ubHkgZGVzY3JpcHRpb24gaXMgYXZhaWxhYmxlXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdHZDb250ZXh0cyA9IFtjcmVhdGVDb250ZXh0KDI5MTU3MTcpXTtcblx0XHRcdG1QYXJhbXMgPSB7XG5cdFx0XHRcdG5vRGlhbG9nOiB0cnVlLFxuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJTYWxlc09yZGVyXCIsXG5cdFx0XHRcdGVudGl0eVNldE5hbWU6IFwiU2FsZXNPcmRlck1hbmFnZVwiXG5cdFx0XHR9O1xuXHRcdFx0YXdhaXQgb1RyYW5zYWN0aW9uSGVscGVyLmRlbGV0ZURvY3VtZW50KHZDb250ZXh0cywgbVBhcmFtcywge30sIG1lc3NhZ2VIYW5kbGVyKTtcblx0XHRcdGV4cGVjdChvR2V0VHJhbnNsYXRlZFRleHRNb2NrKS50b0JlQ2FsbGVkV2l0aChcIkNfVFJBTlNBQ1RJT05fSEVMUEVSX09CSkVDVF9QQUdFX0NPTkZJUk1fREVMRVRFX1dJVEhfT0JKRUNUVElUTEVfU0lOR1VMQVJcIiwge30pO1xuXHRcdH0pO1xuXHRcdGl0KFwiV2FybmluZyB0ZXh0IHdoZW4gYm90aCBkZXNjcmlwdGlvbiBhbmQgdGl0bGUgaXMgYXZhaWxhYmxlXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdHZDb250ZXh0cyA9IFtjcmVhdGVDb250ZXh0KDI5MTU3MTcpXTtcblx0XHRcdG1QYXJhbXMgPSB7XG5cdFx0XHRcdG5vRGlhbG9nOiB0cnVlLFxuXHRcdFx0XHR0aXRsZTogXCIyOTE1NzE3XCIsXG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBcIlNhbGVzT3JkZXJcIixcblx0XHRcdFx0ZW50aXR5U2V0TmFtZTogXCJTYWxlc09yZGVyTWFuYWdlXCJcblx0XHRcdH07XG5cdFx0XHRhd2FpdCBvVHJhbnNhY3Rpb25IZWxwZXIuZGVsZXRlRG9jdW1lbnQodkNvbnRleHRzLCBtUGFyYW1zLCB7fSwgbWVzc2FnZUhhbmRsZXIpO1xuXHRcdFx0ZXhwZWN0KG9HZXRUcmFuc2xhdGVkVGV4dE1vY2spLnRvQmVDYWxsZWRXaXRoKFxuXHRcdFx0XHRcIkNfVFJBTlNBQ1RJT05fSEVMUEVSX09CSkVDVF9QQUdFX0NPTkZJUk1fREVMRVRFX1dJVEhfT0JKRUNUSU5GT1wiLFxuXHRcdFx0XHR7fSxcblx0XHRcdFx0W1wiMjkxNTcxN1wiLCBcIlNhbGVzT3JkZXJcIl0sXG5cdFx0XHRcdFwiU2FsZXNPcmRlck1hbmFnZVwiXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9KTtcbn0pO1xuIl19
|
|
@@ -6,6 +6,7 @@ import CommonUtils from "sap/fe/core/CommonUtils";
|
|
|
6
6
|
import { MockMetaModel, MockModel } from "sap/fe/test/UI5MockHelper";
|
|
7
7
|
import ModelHelper from "sap/fe/core/helpers/ModelHelper";
|
|
8
8
|
import operations from "sap/fe/core/actions/operations";
|
|
9
|
+
import ResourceBundle from "sap/base/i18n/ResourceBundle";
|
|
9
10
|
|
|
10
11
|
const oAppComponent: any = {};
|
|
11
12
|
const oLockObject: any = {};
|
|
@@ -640,7 +641,7 @@ describe("TransactionHelper", () => {
|
|
|
640
641
|
}
|
|
641
642
|
};
|
|
642
643
|
}
|
|
643
|
-
};
|
|
644
|
+
} as any;
|
|
644
645
|
});
|
|
645
646
|
oOnAfterCreateCompletionMock = jest.spyOn(oTransactionHelper, "onAfterCreateCompletion");
|
|
646
647
|
oOnAfterCreateCompletionMock.mockResolvedValue(undefined);
|
|
@@ -700,4 +701,84 @@ describe("TransactionHelper", () => {
|
|
|
700
701
|
}
|
|
701
702
|
});
|
|
702
703
|
});
|
|
704
|
+
|
|
705
|
+
describe("deleteDocument(): warning text", () => {
|
|
706
|
+
let oTransactionHelper: TransactionHelper;
|
|
707
|
+
let vContexts;
|
|
708
|
+
let oGetProgrammingModelMock: any;
|
|
709
|
+
let oDeleteDraftMock: any;
|
|
710
|
+
let oGetTranslatedTextMock: any;
|
|
711
|
+
let mParams: any;
|
|
712
|
+
let messageHandler: any;
|
|
713
|
+
function createContext(salesOrder: any) {
|
|
714
|
+
return {
|
|
715
|
+
getObject: function() {
|
|
716
|
+
return {
|
|
717
|
+
SalesOrder: salesOrder
|
|
718
|
+
};
|
|
719
|
+
}
|
|
720
|
+
};
|
|
721
|
+
}
|
|
722
|
+
beforeEach(() => {
|
|
723
|
+
oTransactionHelper = new TransactionHelper(oAppComponent, oLockObject);
|
|
724
|
+
oGetProgrammingModelMock = jest.spyOn(oTransactionHelper, "getProgrammingModel");
|
|
725
|
+
oGetProgrammingModelMock.mockReturnValue("Draft");
|
|
726
|
+
messageHandler = {
|
|
727
|
+
showMessageDialog: function() {
|
|
728
|
+
return Promise.resolve();
|
|
729
|
+
},
|
|
730
|
+
showMessages: function() {
|
|
731
|
+
return Promise.resolve();
|
|
732
|
+
}
|
|
733
|
+
};
|
|
734
|
+
oDeleteDraftMock = jest.spyOn(draft, "deleteDraft");
|
|
735
|
+
oDeleteDraftMock.mockResolvedValue();
|
|
736
|
+
oGetTranslatedTextMock = jest.spyOn(CommonUtils, "getTranslatedText");
|
|
737
|
+
oGetTranslatedTextMock.mockReturnValue("");
|
|
738
|
+
});
|
|
739
|
+
afterEach(() => {
|
|
740
|
+
jest.restoreAllMocks();
|
|
741
|
+
});
|
|
742
|
+
it("Warning text when only title is available", async () => {
|
|
743
|
+
vContexts = [createContext(2915717)];
|
|
744
|
+
mParams = {
|
|
745
|
+
noDialog: true,
|
|
746
|
+
title: "2915717",
|
|
747
|
+
entitySetName: "SalesOrderManage"
|
|
748
|
+
};
|
|
749
|
+
await oTransactionHelper.deleteDocument(vContexts, mParams, {}, messageHandler);
|
|
750
|
+
expect(oGetTranslatedTextMock).toBeCalledWith(
|
|
751
|
+
"C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO",
|
|
752
|
+
{},
|
|
753
|
+
["2915717", ""],
|
|
754
|
+
"SalesOrderManage"
|
|
755
|
+
);
|
|
756
|
+
});
|
|
757
|
+
it("Warning text when only description is available", async () => {
|
|
758
|
+
vContexts = [createContext(2915717)];
|
|
759
|
+
mParams = {
|
|
760
|
+
noDialog: true,
|
|
761
|
+
description: "SalesOrder",
|
|
762
|
+
entitySetName: "SalesOrderManage"
|
|
763
|
+
};
|
|
764
|
+
await oTransactionHelper.deleteDocument(vContexts, mParams, {}, messageHandler);
|
|
765
|
+
expect(oGetTranslatedTextMock).toBeCalledWith("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR", {});
|
|
766
|
+
});
|
|
767
|
+
it("Warning text when both description and title is available", async () => {
|
|
768
|
+
vContexts = [createContext(2915717)];
|
|
769
|
+
mParams = {
|
|
770
|
+
noDialog: true,
|
|
771
|
+
title: "2915717",
|
|
772
|
+
description: "SalesOrder",
|
|
773
|
+
entitySetName: "SalesOrderManage"
|
|
774
|
+
};
|
|
775
|
+
await oTransactionHelper.deleteDocument(vContexts, mParams, {}, messageHandler);
|
|
776
|
+
expect(oGetTranslatedTextMock).toBeCalledWith(
|
|
777
|
+
"C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO",
|
|
778
|
+
{},
|
|
779
|
+
["2915717", "SalesOrder"],
|
|
780
|
+
"SalesOrderManage"
|
|
781
|
+
);
|
|
782
|
+
});
|
|
783
|
+
});
|
|
703
784
|
});
|