@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
|
@@ -596,7 +596,9 @@ sap.ui.define(["path", "sap/fe/core/helpers/MassEditHelper", "sap/ui/model/json/
|
|
|
596
596
|
_RequestedQuantityUnit: {
|
|
597
597
|
UnitOfMeasure: "EUR",
|
|
598
598
|
UnitOfMeasure_Text: "Euro"
|
|
599
|
-
}
|
|
599
|
+
},
|
|
600
|
+
DocumentDate: "20-12-2022",
|
|
601
|
+
Rating: 4
|
|
600
602
|
}), new MockContext({
|
|
601
603
|
ID: "2",
|
|
602
604
|
fieldControlType_item: 7,
|
|
@@ -616,7 +618,9 @@ sap.ui.define(["path", "sap/fe/core/helpers/MassEditHelper", "sap/ui/model/json/
|
|
|
616
618
|
_RequestedQuantityUnit: {
|
|
617
619
|
UnitOfMeasure: "USD",
|
|
618
620
|
UnitOfMeasure_Text: "US Dollar"
|
|
619
|
-
}
|
|
621
|
+
},
|
|
622
|
+
DocumentDate: "20-12-2022",
|
|
623
|
+
Rating: 5
|
|
620
624
|
})];
|
|
621
625
|
var tableFields = [{
|
|
622
626
|
"dataProperty": "ID",
|
|
@@ -668,6 +672,16 @@ sap.ui.define(["path", "sap/fe/core/helpers/MassEditHelper", "sap/ui/model/json/
|
|
|
668
672
|
"label": "Net Amount",
|
|
669
673
|
"annotationPath": "/SalesOrderItem/@com.sap.vocabularies.UI.v1.LineItem/9",
|
|
670
674
|
"inputType": undefined
|
|
675
|
+
}, {
|
|
676
|
+
"dataProperty": "DocumentDate",
|
|
677
|
+
"label": "Document Date",
|
|
678
|
+
"annotationPath": "/SalesOrderItem/@com.sap.vocabularies.UI.v1.LineItem/10",
|
|
679
|
+
"inputType": "sap.ui.mdc.Field"
|
|
680
|
+
}, {
|
|
681
|
+
"dataProperty": "Rating",
|
|
682
|
+
"label": "Rating Indicator",
|
|
683
|
+
"annotationPath": "/SalesOrderItem/@com.sap.vocabularies.UI.v1.LineItem/11",
|
|
684
|
+
"inputType": "sap.m.RatingIndicator"
|
|
671
685
|
}];
|
|
672
686
|
beforeAll(function () {
|
|
673
687
|
try {
|
|
@@ -709,4 +723,4 @@ sap.ui.define(["path", "sap/fe/core/helpers/MassEditHelper", "sap/ui/model/json/
|
|
|
709
723
|
});
|
|
710
724
|
});
|
|
711
725
|
}, false);
|
|
712
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1hc3NFZGl0SGVscGVyLnNwZWMudHMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJvVGVzdFJlZmVyZW5jZXMiLCJhZnRlckFsbCIsImplc3QiLCJyZXN0b3JlQWxsTW9ja3MiLCJpdCIsIm9EaWFsb2dEYXRhTW9kZWwiLCJKU09OTW9kZWwiLCJvRGlhbG9nUnVudGltZU1vZGVsIiwib0NvbnRyb2xsZXIiLCJNb2NrQ29udHJvbGxlciIsIm9Db250cm9sIiwiTW9ja0NvbnRyb2wiLCJvVGFibGUiLCJhQ29udGV4dHMiLCJzcHlPbiIsIk1hc3NFZGl0SGVscGVyIiwibW9ja1JldHVyblZhbHVlIiwiZm4iLCJYTUxQcmVwcm9jZXNzb3IiLCJGcmFnbWVudCIsIm1vY2tSZXNvbHZlZFZhbHVlIiwiY3JlYXRlRGlhbG9nIiwib1Jlc3BvbnNlIiwiZXhwZWN0IiwiaXNBIiwidG9CZVRydXRoeSIsIm1ldGFNb2RlbCIsImNvbnRleHQiLCJkaXNwbGF5TW9kZSIsInRleHRCaW5kaW5nIiwidGV4dFBhcmFtZXRlcnMiLCJiZWZvcmVBbGwiLCJtZXRhTW9kZWxDb250ZXh0IiwiTW9ja0NvbnRleHQiLCJkZWZhdWx0TW9kZWwiLCJNb2NrTW9kZWwiLCJNb2NrTWV0YU1vZGVsIiwic2V0TWV0YU1vZGVsIiwiQ29tbW9uVXRpbHMiLCJtb2NrSW1wbGVtZW50YXRpb24iLCJwYXRoIiwiYmVmb3JlRWFjaCIsImdldFRleHRBcnJhbmdlbWVudEluZm8iLCJnZXRPYmplY3QiLCJ0b0hhdmVCZWVuTGFzdENhbGxlZFdpdGgiLCJ0ZXh0QXJyYW5nZW1lbnQiLCJ0b0VxdWFsIiwidmFsdWVQYXRoIiwiZGVzY3JpcHRpb25QYXRoIiwidW5kZWZpbmVkIiwidmFsdWUiLCJkZXNjcmlwdGlvbiIsImZ1bGxUZXh0IiwicGFyYW1ldGVycyIsInByb3BlcnR5SW5mbyIsInZhbHVlcyIsImRlZmF1bHRWYWx1ZXMiLCJjb250ZXh0cyIsIm5vVmFsdWVDb250ZXh0cyIsImlzVW5pdCIsImRhdGFQcm9wZXJ0eSIsInNldERlZmF1bHRWYWx1ZXNUb0RpYWxvZyIsImFycmF5Q29udGFpbmluZyIsIm9iamVjdENvbnRhaW5pbmciLCJpc0ZpZWxkUmVxdWlyZWQiLCJpbnB1dFR5cGUiLCJjb250ZXh0c0hpZGRlbiIsInJlc3VsdCIsImdldEhpZGRlblZhbHVlRm9yQ29udGV4dHMiLCIkUGF0aCIsImdldERlZmF1bHRTZWxlY3Rpb25QYXRoQ29tYm9Cb3giLCJnZXRWYWx1ZUZvck11bHRpTGV2ZWxQYXRoIiwiZGF0YUFycmF5IiwicHJvcGVydHkiLCJiaW5kaW5nIiwiZW50aXR5U2V0Iiwib1J1bnRpbWVNb2RlbCIsInNldFJ1bnRpbWVNb2RlbE9uRGlhbG9nIiwib1Jlc3BvbnNlRGF0YSIsImdldERhdGEiLCJzRXhwZWN0ZWQiLCJ0b01hdGNoU25hcHNob3QiLCJKU09OIiwic3RyaW5naWZ5IiwiT2JqZWN0Iiwia2V5cyIsInRvQmUiLCJ1bml0RGF0YSIsIklEIiwiZmllbGRDb250cm9sVHlwZV9pdGVtIiwiTWF0ZXJpYWwiLCJSZXF1ZXN0ZWRRdWFudGl0eSIsIlJlcXVlc3RlZFF1YW50aXR5VW5pdCIsImlzVmVyaWZpZWQiLCJIaWRkZW5Qcm9wIiwiX01hdGVyaWFsIiwiTWF0ZXJpYWxfVGV4dCIsIl9NYXRlcmlhbEdyb3VwIiwiTWF0ZXJpYWxHcm91cCIsIk1hdGVyaWFsR3JvdXBfVGV4dCIsIl9SZXF1ZXN0ZWRRdWFudGl0eVVuaXQiLCJVbml0T2ZNZWFzdXJlIiwiVW5pdE9mTWVhc3VyZV9UZXh0IiwidGFibGVGaWVsZHMiLCJzTWV0YWRhdGFVcmwiLCJjb21waWxlQ0RTIiwiam9pbiIsIl9fZGlybmFtZSIsImdldE1ldGFNb2RlbCIsIm1vZGVsIiwiZ2V0TW9kZWwiLCJkYXRhIiwib1RlbXBsYXRlTW9kZWwiLCJwcmVwYXJlRGF0YUZvckRpYWxvZyJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O0FBVUFBLEVBQUFBLFFBQVEsQ0FBQyxnQkFBRCxFQUFtQixZQUFXO0FBQ3JDLFFBQU1DLGVBQWUsR0FBRztBQUN2QixvQkFBYyxDQUNiO0FBQ0MsZ0JBQVEsTUFEVDtBQUVDLGNBQU07QUFGUCxPQURhO0FBRFMsS0FBeEI7QUFTQUQsSUFBQUEsUUFBUSxDQUFDLGNBQUQsRUFBaUIsWUFBTTtBQUM5QkUsTUFBQUEsUUFBUTtBQUFBLFlBQWE7QUFDcEJDLFVBQUFBLElBQUksQ0FBQ0MsZUFBTDtBQURvQjtBQUVwQixTQUZPO0FBQUE7QUFBQTtBQUFBLFFBQVI7QUFJQUMsTUFBQUEsRUFBRSxDQUFDLDBDQUFELEVBQTZDSixlQUE3QztBQUFBLFlBQTBFO0FBQzNFLGNBQU1LLGdCQUEyQixHQUFHLElBQUlDLFNBQUosQ0FBYyxFQUFkLENBQXBDO0FBQ0EsY0FBTUMsbUJBQThCLEdBQUcsSUFBSUQsU0FBSixDQUFjLEVBQWQsQ0FBdkM7QUFDQSxjQUFNRSxXQUEyQixHQUFHLElBQUlDLGNBQUosRUFBcEM7QUFDQSxjQUFNQyxRQUFhLEdBQUcsSUFBSUMsV0FBSixFQUF0QjtBQUNBLGNBQU1DLE1BQWMsR0FBRyxFQUF2QjtBQUNBLGNBQU1DLFNBQXdCLEdBQUcsRUFBakM7QUFFQVgsVUFBQUEsSUFBSSxDQUFDWSxLQUFMLENBQVdDLGNBQVgsRUFBMkIsMEJBQTNCLEVBQXVEQyxlQUF2RCxDQUF1RWQsSUFBSSxDQUFDZSxFQUFMLEVBQXZFO0FBQ0FmLFVBQUFBLElBQUksQ0FBQ1ksS0FBTCxDQUFXQyxjQUFYLEVBQTJCLHNCQUEzQixFQUFtREMsZUFBbkQsQ0FBbUVYLGdCQUFuRTtBQUNBSCxVQUFBQSxJQUFJLENBQUNZLEtBQUwsQ0FBV0MsY0FBWCxFQUEyQix5QkFBM0IsRUFBc0RDLGVBQXRELENBQXNFVCxtQkFBdEU7QUFDQUwsVUFBQUEsSUFBSSxDQUFDWSxLQUFMLENBQVdJLGVBQVgsRUFBNEIsU0FBNUIsRUFBdUNGLGVBQXZDLENBQXVELFVBQXZEO0FBQ0FkLFVBQUFBLElBQUksQ0FBQ1ksS0FBTCxDQUFXSyxRQUFYLEVBQXFCLE1BQXJCLEVBQTZCQyxpQkFBN0IsQ0FBK0NWLFFBQS9DO0FBWjJFLGlDQWNuREssY0FBYyxDQUFDTSxZQUFmLENBQTRCVCxNQUE1QixFQUFvQ0MsU0FBcEMsRUFBZ0RMLFdBQWhELENBZG1ELGlCQWNyRWMsU0FkcUU7QUFlM0VDLFlBQUFBLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxHQUFWLENBQWMsY0FBZCxDQUFELENBQU4sQ0FBc0NDLFVBQXRDO0FBZjJFO0FBZ0IzRSxTQWhCQztBQUFBO0FBQUE7QUFBQSxRQUFGO0FBaUJBLEtBdEJPLENBQVI7QUF3QkExQixJQUFBQSxRQUFRLENBQUMsd0JBQUQsRUFBMkIsWUFBTTtBQUN4QyxVQUFJMkIsU0FBSjtBQUNBLFVBQUlDLE9BQUo7QUFDQSxVQUFJQyxXQUFtQixHQUFHLEVBQTFCO0FBQ0EsVUFBSUMsV0FBSjtBQUNBLFVBQUlDLGNBQUo7QUFFQUMsTUFBQUEsU0FBUztBQUFBLFlBQWE7QUFDckIsY0FBTUMsZ0JBQTZCLEdBQUcsSUFBSUMsV0FBSixDQUFnQixFQUFoQixDQUF0QztBQUNBLGNBQU1DLFlBQXVCLEdBQUcsSUFBSUMsU0FBSixFQUFoQztBQUVBVCxVQUFBQSxTQUFTLEdBQUcsSUFBSVUsYUFBSixDQUFrQkosZ0JBQWxCLENBQVo7QUFDQUUsVUFBQUEsWUFBWSxDQUFDRyxZQUFiLENBQTBCWCxTQUExQjtBQUNBQyxVQUFBQSxPQUFPLEdBQUcsSUFBSU0sV0FBSixDQUFnQjtBQUN6Qix3QkFBWSxNQURhO0FBRXpCLG9CQUFRO0FBRmlCLFdBQWhCLENBQVY7QUFLQS9CLFVBQUFBLElBQUksQ0FBQ1ksS0FBTCxDQUFXd0IsV0FBWCxFQUF3QixvQkFBeEIsRUFBOENDLGtCQUE5QyxDQUFpRTtBQUFBLG1CQUFNWCxXQUFOO0FBQUEsV0FBakU7QUFDQTFCLFVBQUFBLElBQUksQ0FBQ1ksS0FBTCxDQUFXYSxPQUFYLEVBQW9CLFVBQXBCLEVBQWdDWCxlQUFoQyxDQUFpRGtCLFlBQWpEO0FBRUFKLFVBQUFBLGNBQWMsR0FBRyxDQUNoQjtBQUNDVSxZQUFBQSxJQUFJLEVBQUU7QUFEUCxXQURnQixFQUloQjtBQUNDQSxZQUFBQSxJQUFJLEVBQUU7QUFEUCxXQUpnQixDQUFqQjtBQWRxQjtBQXNCckIsU0F0QlE7QUFBQTtBQUFBO0FBQUEsUUFBVDtBQXdCQUMsTUFBQUEsVUFBVSxhQUFhO0FBQ3RCWixRQUFBQSxXQUFXLEdBQUcsRUFBZDtBQURzQjtBQUV0QixPQUZTLENBQVY7QUFJQTVCLE1BQUFBLFFBQVE7QUFBQSxZQUFhO0FBQ3BCQyxVQUFBQSxJQUFJLENBQUNDLGVBQUw7QUFEb0I7QUFFcEIsU0FGTztBQUFBO0FBQUE7QUFBQSxRQUFSO0FBSUFDLE1BQUFBLEVBQUUsQ0FBQywrRUFBRCxFQUFrRkosZUFBbEY7QUFBQSxZQUErRztBQUMvRzZCLFVBQUFBLFdBQUQsQ0FBcUJXLElBQXJCLEdBQTRCLE1BQTVCO0FBQ0FaLFVBQUFBLFdBQVcsR0FBRyxhQUFkO0FBRUEsY0FBTU4sU0FBUyxHQUFHUCxjQUFjLENBQUMyQixzQkFBZixDQUFzQyxVQUF0QyxFQUFrRGIsV0FBbEQsRUFBK0QsWUFBL0QsRUFBNkVGLE9BQTdFLENBQWxCO0FBRUFKLFVBQUFBLE1BQU0sQ0FBQ0csU0FBUyxDQUFDaUIsU0FBWCxDQUFOLENBQTRCQyx3QkFBNUIsQ0FBcUQsc0JBQXJEO0FBQ0FyQixVQUFBQSxNQUFNLENBQUNELFNBQVMsQ0FBQ3VCLGVBQVgsQ0FBTixDQUFrQ0MsT0FBbEMsQ0FBMENsQixXQUExQztBQUNBTCxVQUFBQSxNQUFNLENBQUNELFNBQVMsQ0FBQ3lCLFNBQVgsQ0FBTixDQUE0QkQsT0FBNUIsQ0FBb0MsVUFBcEM7QUFDQXZCLFVBQUFBLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDMEIsZUFBWCxDQUFOLENBQWtDRixPQUFsQyxDQUEwQ0csU0FBMUM7QUFDQTFCLFVBQUFBLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDNEIsS0FBWCxDQUFOLENBQXdCSixPQUF4QixDQUFnQyxNQUFoQztBQUNBdkIsVUFBQUEsTUFBTSxDQUFDRCxTQUFTLENBQUM2QixXQUFYLENBQU4sQ0FBOEJMLE9BQTlCLENBQXNDLE1BQXRDO0FBQ0F2QixVQUFBQSxNQUFNLENBQUNELFNBQVMsQ0FBQzhCLFFBQVgsQ0FBTixDQUEyQk4sT0FBM0IsQ0FBbUMsTUFBbkM7QUFaZ0g7QUFhaEgsU0FiQztBQUFBO0FBQUE7QUFBQSxRQUFGO0FBZUExQyxNQUFBQSxFQUFFLENBQUMseUVBQUQsRUFBNEVKLGVBQTVFO0FBQUEsWUFBeUc7QUFDekc2QixVQUFBQSxXQUFELENBQXFCVyxJQUFyQixHQUE0QixNQUE1QjtBQUNBWixVQUFBQSxXQUFXLEdBQUcsT0FBZDtBQUVBLGNBQU1OLFNBQVMsR0FBR1AsY0FBYyxDQUFDMkIsc0JBQWYsQ0FBc0MsVUFBdEMsRUFBa0RiLFdBQWxELEVBQStELFlBQS9ELEVBQTZFRixPQUE3RSxDQUFsQjtBQUVBSixVQUFBQSxNQUFNLENBQUNHLFNBQVMsQ0FBQ2lCLFNBQVgsQ0FBTixDQUE0QkMsd0JBQTVCLENBQXFELHNCQUFyRDtBQUNBckIsVUFBQUEsTUFBTSxDQUFDRCxTQUFTLENBQUN1QixlQUFYLENBQU4sQ0FBa0NDLE9BQWxDLENBQTBDbEIsV0FBMUM7QUFDQUwsVUFBQUEsTUFBTSxDQUFDRCxTQUFTLENBQUN5QixTQUFYLENBQU4sQ0FBNEJELE9BQTVCLENBQW9DLFVBQXBDO0FBQ0F2QixVQUFBQSxNQUFNLENBQUNELFNBQVMsQ0FBQzBCLGVBQVgsQ0FBTixDQUFrQ0YsT0FBbEMsQ0FBMENHLFNBQTFDO0FBQ0ExQixVQUFBQSxNQUFNLENBQUNELFNBQVMsQ0FBQzRCLEtBQVgsQ0FBTixDQUF3QkosT0FBeEIsQ0FBZ0MsTUFBaEM7QUFDQXZCLFVBQUFBLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDNkIsV0FBWCxDQUFOLENBQThCTCxPQUE5QixDQUFzQ0csU0FBdEM7QUFDQTFCLFVBQUFBLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDOEIsUUFBWCxDQUFOLENBQTJCTixPQUEzQixDQUFtQyxNQUFuQztBQVowRztBQWExRyxTQWJDO0FBQUE7QUFBQTtBQUFBLFFBQUY7QUFlQTFDLE1BQUFBLEVBQUUsQ0FBQywwRkFBRCxFQUE2RkosZUFBN0Y7QUFBQSxZQUEwSDtBQUMxSDZCLFVBQUFBLFdBQUQsQ0FBcUJ3QixVQUFyQixHQUFrQ3ZCLGNBQWxDO0FBQ0FGLFVBQUFBLFdBQVcsR0FBRyxrQkFBZDtBQUVBLGNBQU1OLFNBQVMsR0FBR1AsY0FBYyxDQUFDMkIsc0JBQWYsQ0FBc0MsVUFBdEMsRUFBa0RiLFdBQWxELEVBQStELFlBQS9ELEVBQTZFRixPQUE3RSxDQUFsQjtBQUVBSixVQUFBQSxNQUFNLENBQUNHLFNBQVMsQ0FBQ2lCLFNBQVgsQ0FBTixDQUE0QkMsd0JBQTVCLENBQXFELHNCQUFyRDtBQUNBckIsVUFBQUEsTUFBTSxDQUFDRCxTQUFTLENBQUN1QixlQUFYLENBQU4sQ0FBa0NDLE9BQWxDLENBQTBDbEIsV0FBMUM7QUFDQUwsVUFBQUEsTUFBTSxDQUFDRCxTQUFTLENBQUN5QixTQUFYLENBQU4sQ0FBNEJELE9BQTVCLENBQW9DLFVBQXBDO0FBQ0F2QixVQUFBQSxNQUFNLENBQUNELFNBQVMsQ0FBQzBCLGVBQVgsQ0FBTixDQUFrQ0YsT0FBbEMsQ0FBMEMsTUFBMUM7QUFDQXZCLFVBQUFBLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDNEIsS0FBWCxDQUFOLENBQXdCSixPQUF4QixDQUFnQyxNQUFoQztBQUNBdkIsVUFBQUEsTUFBTSxDQUFDRCxTQUFTLENBQUM2QixXQUFYLENBQU4sQ0FBOEJMLE9BQTlCLENBQXNDLE1BQXRDO0FBQ0F2QixVQUFBQSxNQUFNLENBQUNELFNBQVMsQ0FBQzhCLFFBQVgsQ0FBTixDQUEyQk4sT0FBM0IsQ0FBbUMsYUFBbkM7QUFaMkg7QUFhM0gsU0FiQztBQUFBO0FBQUE7QUFBQSxRQUFGO0FBZUExQyxNQUFBQSxFQUFFLENBQUMsMEZBQUQsRUFBNkZKLGVBQTdGO0FBQUEsWUFBMEg7QUFDMUg2QixVQUFBQSxXQUFELENBQXFCd0IsVUFBckIsR0FBa0N2QixjQUFsQztBQUNBRixVQUFBQSxXQUFXLEdBQUcsa0JBQWQ7QUFFQSxjQUFNTixTQUFTLEdBQUdQLGNBQWMsQ0FBQzJCLHNCQUFmLENBQXNDLFVBQXRDLEVBQWtEYixXQUFsRCxFQUErRCxZQUEvRCxFQUE2RUYsT0FBN0UsQ0FBbEI7QUFFQUosVUFBQUEsTUFBTSxDQUFDRyxTQUFTLENBQUNpQixTQUFYLENBQU4sQ0FBNEJDLHdCQUE1QixDQUFxRCxzQkFBckQ7QUFDQXJCLFVBQUFBLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDdUIsZUFBWCxDQUFOLENBQWtDQyxPQUFsQyxDQUEwQ2xCLFdBQTFDO0FBQ0FMLFVBQUFBLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDeUIsU0FBWCxDQUFOLENBQTRCRCxPQUE1QixDQUFvQyxVQUFwQztBQUNBdkIsVUFBQUEsTUFBTSxDQUFDRCxTQUFTLENBQUMwQixlQUFYLENBQU4sQ0FBa0NGLE9BQWxDLENBQTBDLE1BQTFDO0FBQ0F2QixVQUFBQSxNQUFNLENBQUNELFNBQVMsQ0FBQzRCLEtBQVgsQ0FBTixDQUF3QkosT0FBeEIsQ0FBZ0MsTUFBaEM7QUFDQXZCLFVBQUFBLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDNkIsV0FBWCxDQUFOLENBQThCTCxPQUE5QixDQUFzQyxNQUF0QztBQUNBdkIsVUFBQUEsTUFBTSxDQUFDRCxTQUFTLENBQUM4QixRQUFYLENBQU4sQ0FBMkJOLE9BQTNCLENBQW1DLGFBQW5DO0FBWjJIO0FBYTNILFNBYkM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQWNBLEtBbEdPLENBQVI7QUFvR0EvQyxJQUFBQSxRQUFRLENBQUMsMEJBQUQsRUFBNkIsWUFBTTtBQUMxQyxVQUFJdUQsWUFBb0IsR0FBRyxFQUEzQjtBQUNBLFVBQUlDLE1BQXFCLEdBQUcsRUFBNUI7QUFDQSxVQUFJQyxhQUFKO0FBQ0EsVUFBSUMsUUFBdUIsR0FBRyxFQUE5QjtBQUNBLFVBQUlDLGVBQThCLEdBQUcsRUFBckM7QUFDQSxVQUFJQyxNQUFlLEdBQUcsS0FBdEI7QUFFQTVCLE1BQUFBLFNBQVM7QUFBQSxZQUFhO0FBQ3JCeUIsVUFBQUEsYUFBYSxHQUFHO0FBQ2Ysa0NBQXNCLFFBRFA7QUFFZiwrQkFBbUIsaUJBRko7QUFHZiwrQkFBbUIsa0JBSEo7QUFJZiw2QkFBaUIsZUFKRjtBQUtmLCtCQUFtQixNQUxKO0FBTWYsZ0NBQW9CO0FBTkwsV0FBaEI7QUFRQUMsVUFBQUEsUUFBUSxHQUFHLENBQ1YsSUFBSXhCLFdBQUosQ0FBZ0I7QUFDZix3QkFBWTtBQURHLFdBQWhCLENBRFUsRUFJVixJQUFJQSxXQUFKLENBQWdCO0FBQ2Ysd0JBQVk7QUFERyxXQUFoQixDQUpVLENBQVg7QUFRQXlCLFVBQUFBLGVBQWUsR0FBRyxDQUNqQixJQUFJekIsV0FBSixDQUFnQjtBQUNmLHdCQUFZZ0I7QUFERyxXQUFoQixDQURpQixFQUlqQixJQUFJaEIsV0FBSixDQUFnQjtBQUNmLHdCQUFZO0FBREcsV0FBaEIsQ0FKaUIsQ0FBbEI7QUFqQnFCO0FBeUJyQixTQXpCUTtBQUFBO0FBQUE7QUFBQSxRQUFUO0FBMkJBUSxNQUFBQSxVQUFVO0FBQUEsWUFBYTtBQUN0QmEsVUFBQUEsWUFBWSxHQUFHO0FBQ2RNLFlBQUFBLFlBQVksRUFBRTtBQURBLFdBQWY7QUFHQUwsVUFBQUEsTUFBTSxHQUFHLEVBQVQ7QUFDQUksVUFBQUEsTUFBTSxHQUFHLEtBQVQ7QUFMc0I7QUFNdEIsU0FOUztBQUFBO0FBQUE7QUFBQSxRQUFWO0FBUUExRCxNQUFBQSxRQUFRO0FBQUEsWUFBYTtBQUNwQkMsVUFBQUEsSUFBSSxDQUFDQyxlQUFMO0FBRG9CO0FBRXBCLFNBRk87QUFBQTtBQUFBO0FBQUEsUUFBUjtBQUlBQyxNQUFBQSxFQUFFLENBQUMsNERBQUQsRUFBK0RKLGVBQS9EO0FBQUEsWUFBNEY7QUFDN0ZlLFVBQUFBLGNBQWMsQ0FBQzhDLHdCQUFmLENBQXdDTixNQUF4QyxFQUFnREUsUUFBaEQsRUFBMERELGFBQTFELEVBQXlFRixZQUF6RSxFQUF1RkssTUFBdkY7QUFDQXBDLFVBQUFBLE1BQU0sQ0FBQ2dDLE1BQUQsQ0FBTixDQUFlVCxPQUFmLENBQ0N2QixNQUFNLENBQUN1QyxlQUFQLENBQXVCLENBQUN2QyxNQUFNLENBQUN3QyxnQkFBUCxDQUF3QjtBQUFFLG1CQUFPLGtCQUFUO0FBQTZCLG9CQUFRO0FBQXJDLFdBQXhCLENBQUQsQ0FBdkIsQ0FERDtBQUdBeEMsVUFBQUEsTUFBTSxDQUFDZ0MsTUFBRCxDQUFOLENBQWVULE9BQWYsQ0FDQ3ZCLE1BQU0sQ0FBQ3VDLGVBQVAsQ0FBdUIsQ0FBQ3ZDLE1BQU0sQ0FBQ3dDLGdCQUFQLENBQXdCO0FBQUUsbUJBQU8sMEJBQVQ7QUFBcUMsb0JBQVE7QUFBN0MsV0FBeEIsQ0FBRCxDQUF2QixDQUREO0FBTDZGO0FBUTdGLFNBUkM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQVVBM0QsTUFBQUEsRUFBRSxDQUFDLGtFQUFELEVBQXFFSixlQUFyRTtBQUFBLFlBQWtHO0FBQ2xHc0QsVUFBQUEsWUFBRCxDQUFzQlUsZUFBdEIsR0FBd0MsSUFBeEM7QUFDQWpELFVBQUFBLGNBQWMsQ0FBQzhDLHdCQUFmLENBQXdDTixNQUF4QyxFQUFnREUsUUFBaEQsRUFBMERELGFBQTFELEVBQXlFRixZQUF6RSxFQUF1RkssTUFBdkY7QUFDQXBDLFVBQUFBLE1BQU0sQ0FBQ2dDLE1BQUQsQ0FBTixDQUFlVCxPQUFmLENBQ0N2QixNQUFNLENBQUN1QyxlQUFQLENBQXVCLENBQUN2QyxNQUFNLENBQUN3QyxnQkFBUCxDQUF3QjtBQUFFLG1CQUFPLGtCQUFUO0FBQTZCLG9CQUFRO0FBQXJDLFdBQXhCLENBQUQsQ0FBdkIsQ0FERDtBQUhtRztBQU1uRyxTQU5DO0FBQUE7QUFBQTtBQUFBLFFBQUY7QUFRQTNELE1BQUFBLEVBQUUsQ0FBQyw4REFBRCxFQUFpRUosZUFBakU7QUFBQSxZQUE4RjtBQUMvRjJELFVBQUFBLE1BQU0sR0FBRyxJQUFUO0FBQ0E1QyxVQUFBQSxjQUFjLENBQUM4Qyx3QkFBZixDQUF3Q04sTUFBeEMsRUFBZ0RFLFFBQWhELEVBQTBERCxhQUExRCxFQUF5RUYsWUFBekUsRUFBdUZLLE1BQXZGO0FBQ0FwQyxVQUFBQSxNQUFNLENBQUNnQyxNQUFELENBQU4sQ0FBZVQsT0FBZixDQUNDdkIsTUFBTSxDQUFDdUMsZUFBUCxDQUF1QixDQUFDdkMsTUFBTSxDQUFDd0MsZ0JBQVAsQ0FBd0I7QUFBRSxtQkFBTyxrQkFBVDtBQUE2QixvQkFBUTtBQUFyQyxXQUF4QixDQUFELENBQXZCLENBREQ7QUFIK0Y7QUFNL0YsU0FOQztBQUFBO0FBQUE7QUFBQSxRQUFGO0FBUUEzRCxNQUFBQSxFQUFFLENBQUMsNERBQUQsRUFBK0RKLGVBQS9EO0FBQUEsWUFBNEY7QUFDNUZzRCxVQUFBQSxZQUFELENBQXNCVSxlQUF0QixHQUF3QyxJQUF4QztBQUNBakQsVUFBQUEsY0FBYyxDQUFDOEMsd0JBQWYsQ0FBd0NOLE1BQXhDLEVBQWdERyxlQUFoRCxFQUFpRUYsYUFBakUsRUFBZ0ZGLFlBQWhGLEVBQThGSyxNQUE5RjtBQUNBcEMsVUFBQUEsTUFBTSxDQUFDZ0MsTUFBRCxDQUFOLENBQWVULE9BQWYsQ0FDQ3ZCLE1BQU0sQ0FBQ3VDLGVBQVAsQ0FBdUIsQ0FBQ3ZDLE1BQU0sQ0FBQ3dDLGdCQUFQLENBQXdCO0FBQUUsbUJBQU8sa0JBQVQ7QUFBNkIsb0JBQVE7QUFBckMsV0FBeEIsQ0FBRCxDQUF2QixDQUREO0FBR0F4QyxVQUFBQSxNQUFNLENBQUNnQyxNQUFELENBQU4sQ0FBZVQsT0FBZixDQUNDdkIsTUFBTSxDQUFDdUMsZUFBUCxDQUF1QixDQUFDdkMsTUFBTSxDQUFDd0MsZ0JBQVAsQ0FBd0I7QUFBRSxtQkFBTyxnQkFBVDtBQUEyQixvQkFBUTtBQUFuQyxXQUF4QixDQUFELENBQXZCLENBREQ7QUFONkY7QUFTN0YsU0FUQztBQUFBO0FBQUE7QUFBQSxRQUFGO0FBV0EzRCxNQUFBQSxFQUFFLENBQUMseURBQUQsRUFBNERKLGVBQTVEO0FBQUEsWUFBeUY7QUFDekZzRCxVQUFBQSxZQUFELENBQXNCVyxTQUF0QixHQUFrQyxrQkFBbEM7QUFDQWxELFVBQUFBLGNBQWMsQ0FBQzhDLHdCQUFmLENBQXdDTixNQUF4QyxFQUFnREUsUUFBaEQsRUFBMERELGFBQTFELEVBQXlFRixZQUF6RSxFQUF1RkssTUFBdkY7QUFDQXBDLFVBQUFBLE1BQU0sQ0FBQ2dDLE1BQUQsQ0FBTixDQUFlVCxPQUFmLENBQ0N2QixNQUFNLENBQUN1QyxlQUFQLENBQXVCLENBQUN2QyxNQUFNLENBQUN3QyxnQkFBUCxDQUF3QjtBQUFFLG1CQUFPLGtCQUFUO0FBQTZCLG9CQUFRO0FBQXJDLFdBQXhCLENBQUQsQ0FBdkIsQ0FERDtBQUdBeEMsVUFBQUEsTUFBTSxDQUFDZ0MsTUFBRCxDQUFOLENBQWVULE9BQWYsQ0FDQ3ZCLE1BQU0sQ0FBQ3VDLGVBQVAsQ0FBdUIsQ0FBQ3ZDLE1BQU0sQ0FBQ3dDLGdCQUFQLENBQXdCO0FBQUUsbUJBQU8sMEJBQVQ7QUFBcUMsb0JBQVE7QUFBN0MsV0FBeEIsQ0FBRCxDQUF2QixDQUREO0FBTjBGO0FBUzFGLFNBVEM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQVdBM0QsTUFBQUEsRUFBRSxDQUFDLHlEQUFELEVBQTRESixlQUE1RDtBQUFBLFlBQXlGO0FBQ3pGc0QsVUFBQUEsWUFBRCxDQUFzQlcsU0FBdEIsR0FBa0MsZ0JBQWxDO0FBQ0FsRCxVQUFBQSxjQUFjLENBQUM4Qyx3QkFBZixDQUF3Q04sTUFBeEMsRUFBZ0RFLFFBQWhELEVBQTBERCxhQUExRCxFQUF5RUYsWUFBekUsRUFBdUZLLE1BQXZGO0FBQ0FwQyxVQUFBQSxNQUFNLENBQUNnQyxNQUFELENBQU4sQ0FBZVQsT0FBZixDQUNDdkIsTUFBTSxDQUFDdUMsZUFBUCxDQUF1QixDQUFDdkMsTUFBTSxDQUFDd0MsZ0JBQVAsQ0FBd0I7QUFBRSxtQkFBTyxrQkFBVDtBQUE2QixvQkFBUTtBQUFyQyxXQUF4QixDQUFELENBQXZCLENBREQ7QUFHQXhDLFVBQUFBLE1BQU0sQ0FBQ2dDLE1BQUQsQ0FBTixDQUFlVCxPQUFmLENBQ0N2QixNQUFNLENBQUN1QyxlQUFQLENBQXVCLENBQUN2QyxNQUFNLENBQUN3QyxnQkFBUCxDQUF3QjtBQUFFLG1CQUFPLDBCQUFUO0FBQXFDLG9CQUFRO0FBQTdDLFdBQXhCLENBQUQsQ0FBdkIsQ0FERDtBQU4wRjtBQVMxRixTQVRDO0FBQUE7QUFBQTtBQUFBLFFBQUY7QUFVQSxLQXpHTyxDQUFSO0FBMkdBaEUsSUFBQUEsUUFBUSxDQUFDLDJCQUFELEVBQThCLFlBQU07QUFDM0MsVUFBSTBELFFBQXVCLEdBQUcsRUFBOUI7QUFDQSxVQUFJUyxjQUE2QixHQUFHLEVBQXBDO0FBRUFuQyxNQUFBQSxTQUFTO0FBQUEsWUFBYTtBQUNyQjBCLFVBQUFBLFFBQVEsR0FBRyxDQUNWLElBQUl4QixXQUFKLENBQWdCO0FBQ2YsMEJBQWM7QUFEQyxXQUFoQixDQURVLEVBSVYsSUFBSUEsV0FBSixDQUFnQjtBQUNmLDBCQUFjO0FBREMsV0FBaEIsQ0FKVSxDQUFYO0FBU0FpQyxVQUFBQSxjQUFjLEdBQUcsQ0FDaEIsSUFBSWpDLFdBQUosQ0FBZ0I7QUFDZiwwQkFBYztBQURDLFdBQWhCLENBRGdCLEVBSWhCLElBQUlBLFdBQUosQ0FBZ0I7QUFDZiwwQkFBYztBQURDLFdBQWhCLENBSmdCLENBQWpCO0FBVnFCO0FBa0JyQixTQWxCUTtBQUFBO0FBQUE7QUFBQSxRQUFUO0FBb0JBN0IsTUFBQUEsRUFBRSxDQUFDLGtEQUFELEVBQXFESixlQUFyRDtBQUFBLFlBQWtGO0FBQ25GLGNBQU1tRSxNQUFNLEdBQUdwRCxjQUFjLENBQUNxRCx5QkFBZixDQUF5QyxJQUF6QyxFQUErQ1gsUUFBL0MsQ0FBZjtBQUNBbEMsVUFBQUEsTUFBTSxDQUFDNEMsTUFBRCxDQUFOLENBQWVyQixPQUFmLENBQXVCLElBQXZCO0FBRm1GO0FBR25GLFNBSEM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQUtBMUMsTUFBQUEsRUFBRSxDQUFDLG1EQUFELEVBQXNESixlQUF0RDtBQUFBLFlBQW1GO0FBQ3BGLGNBQU1tRSxNQUFNLEdBQUdwRCxjQUFjLENBQUNxRCx5QkFBZixDQUF5QyxLQUF6QyxFQUFnRFgsUUFBaEQsQ0FBZjtBQUNBbEMsVUFBQUEsTUFBTSxDQUFDNEMsTUFBRCxDQUFOLENBQWVyQixPQUFmLENBQXVCLEtBQXZCO0FBRm9GO0FBR3BGLFNBSEM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQUtBMUMsTUFBQUEsRUFBRSxDQUFDLGlEQUFELEVBQW9ESixlQUFwRDtBQUFBLFlBQWlGO0FBQ2xGLGNBQU1tRSxNQUFNLEdBQUdwRCxjQUFjLENBQUNxRCx5QkFBZixDQUF5QztBQUFFQyxZQUFBQSxLQUFLLEVBQUU7QUFBVCxXQUF6QyxFQUFrRVosUUFBbEUsQ0FBZjtBQUNBbEMsVUFBQUEsTUFBTSxDQUFDNEMsTUFBRCxDQUFOLENBQWVyQixPQUFmLENBQXVCLEtBQXZCO0FBRmtGO0FBR2xGLFNBSEM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQUtBMUMsTUFBQUEsRUFBRSxDQUFDLGdEQUFELEVBQW1ESixlQUFuRDtBQUFBLFlBQWdGO0FBQ2pGLGNBQU1tRSxNQUFNLEdBQUdwRCxjQUFjLENBQUNxRCx5QkFBZixDQUF5QztBQUFFQyxZQUFBQSxLQUFLLEVBQUU7QUFBVCxXQUF6QyxFQUFrRUgsY0FBbEUsQ0FBZjtBQUNBM0MsVUFBQUEsTUFBTSxDQUFDNEMsTUFBRCxDQUFOLENBQWVyQixPQUFmLENBQXVCLElBQXZCO0FBRmlGO0FBR2pGLFNBSEM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQUlBLEtBM0NPLENBQVI7QUE2Q0EvQyxJQUFBQSxRQUFRLENBQUMsaUNBQUQsRUFBb0MsWUFBTTtBQUNqREssTUFBQUEsRUFBRSxDQUFDLDREQUFELEVBQStESixlQUEvRDtBQUFBLFlBQTRGO0FBQzdGLGNBQU15RCxRQUF1QixHQUFHLENBQy9CLElBQUl4QixXQUFKLENBQWdCO0FBQ2Ysd0JBQVk7QUFERyxXQUFoQixDQUQrQixFQUkvQixJQUFJQSxXQUFKLENBQWdCO0FBQ2Ysd0JBQVk7QUFERyxXQUFoQixDQUorQixDQUFoQztBQVNBLGNBQU1rQyxNQUFNLEdBQUdwRCxjQUFjLENBQUN1RCwrQkFBZixDQUErQ2IsUUFBL0MsRUFBeUQsVUFBekQsQ0FBZjtBQUNBbEMsVUFBQUEsTUFBTSxDQUFDNEMsTUFBRCxDQUFOLENBQWVyQixPQUFmLENBQXVCLGtCQUF2QjtBQVg2RjtBQVk3RixTQVpDO0FBQUE7QUFBQTtBQUFBLFFBQUY7QUFjQTFDLE1BQUFBLEVBQUUsQ0FBQywwREFBRCxFQUE2REosZUFBN0Q7QUFBQSxZQUEwRjtBQUMzRixjQUFNeUQsUUFBdUIsR0FBRyxDQUMvQixJQUFJeEIsV0FBSixDQUFnQjtBQUNmLHdCQUFZO0FBREcsV0FBaEIsQ0FEK0IsRUFJL0IsSUFBSUEsV0FBSixDQUFnQjtBQUNmLHdCQUFZO0FBREcsV0FBaEIsQ0FKK0IsQ0FBaEM7QUFTQSxjQUFNa0MsTUFBTSxHQUFHcEQsY0FBYyxDQUFDdUQsK0JBQWYsQ0FBK0NiLFFBQS9DLEVBQXlELFVBQXpELENBQWY7QUFDQWxDLFVBQUFBLE1BQU0sQ0FBQzRDLE1BQUQsQ0FBTixDQUFlckIsT0FBZixDQUF1QixVQUF2QjtBQVgyRjtBQVkzRixTQVpDO0FBQUE7QUFBQTtBQUFBLFFBQUY7QUFjQTFDLE1BQUFBLEVBQUUsQ0FBQyxzREFBRCxFQUF5REosZUFBekQ7QUFBQSxZQUFzRjtBQUN2RixjQUFNeUQsUUFBdUIsR0FBRyxDQUMvQixJQUFJeEIsV0FBSixDQUFnQjtBQUNmLHdCQUFZZ0I7QUFERyxXQUFoQixDQUQrQixFQUkvQixJQUFJaEIsV0FBSixDQUFnQjtBQUNmLHdCQUFZZ0I7QUFERyxXQUFoQixDQUorQixDQUFoQztBQVNBLGNBQU1rQixNQUFNLEdBQUdwRCxjQUFjLENBQUN1RCwrQkFBZixDQUErQ2IsUUFBL0MsRUFBeUQsVUFBekQsQ0FBZjtBQUNBbEMsVUFBQUEsTUFBTSxDQUFDNEMsTUFBRCxDQUFOLENBQWVyQixPQUFmLENBQXVCLGdCQUF2QjtBQVh1RjtBQVl2RixTQVpDO0FBQUE7QUFBQTtBQUFBLFFBQUY7QUFhQSxLQTFDTyxDQUFSO0FBNENBL0MsSUFBQUEsUUFBUSxDQUFDLDJCQUFELEVBQThCLFlBQU07QUFDM0NLLE1BQUFBLEVBQUUsQ0FBQywrQ0FBRCxFQUFrREosZUFBbEQ7QUFBQSxZQUErRTtBQUNoRixjQUFNdUQsTUFBYyxHQUFHO0FBQ3RCLHdCQUFZLENBRFU7QUFFdEIsbUJBQU87QUFDTiwyQkFBYTtBQURQO0FBRmUsV0FBdkI7QUFPQSxjQUFNWSxNQUFNLEdBQUdwRCxjQUFjLENBQUN3RCx5QkFBZixDQUF5QyxlQUF6QyxFQUEwRGhCLE1BQTFELENBQWY7QUFDQWhDLFVBQUFBLE1BQU0sQ0FBQzRDLE1BQUQsQ0FBTixDQUFlckIsT0FBZixDQUF1QixDQUF2QjtBQVRnRjtBQVVoRixTQVZDO0FBQUE7QUFBQTtBQUFBLFFBQUY7QUFZQTFDLE1BQUFBLEVBQUUsQ0FBQyxrREFBRCxFQUFxREosZUFBckQ7QUFBQSxZQUFrRjtBQUNuRixjQUFNdUQsTUFBYyxHQUFHO0FBQ3RCLHdCQUFZLENBRFU7QUFFdEIsbUJBQU87QUFDTiwyQkFBYTtBQURQO0FBRmUsV0FBdkI7QUFPQSxjQUFNWSxNQUFNLEdBQUdwRCxjQUFjLENBQUN3RCx5QkFBZixDQUF5QyxVQUF6QyxFQUFxRGhCLE1BQXJELENBQWY7QUFDQWhDLFVBQUFBLE1BQU0sQ0FBQzRDLE1BQUQsQ0FBTixDQUFlckIsT0FBZixDQUF1QkcsU0FBdkI7QUFUbUY7QUFVbkYsU0FWQztBQUFBO0FBQUE7QUFBQSxRQUFGO0FBV0EsS0F4Qk8sQ0FBUjtBQTBCQWxELElBQUFBLFFBQVEsQ0FBQyx5QkFBRCxFQUE0QixZQUFNO0FBQ3pDLFVBQU15RCxhQUFxQixHQUFHO0FBQzdCLDhCQUFzQixRQURPO0FBRTdCLDJCQUFtQixpQkFGVTtBQUc3QiwyQkFBbUIsa0JBSFU7QUFJN0IseUJBQWlCLGVBSlk7QUFLN0IsMkJBQW1CLE1BTFU7QUFNN0IsNEJBQW9CO0FBTlMsT0FBOUI7QUFRQSxVQUFNQyxRQUF1QixHQUFHLENBQy9CLElBQUl4QixXQUFKLENBQWdCO0FBQ2Ysb0JBQVksR0FERztBQUVmLDZCQUFxQixDQUZOO0FBR2YscUJBQWE7QUFDWiwwQ0FBZ0M7QUFEcEI7QUFIRSxPQUFoQixDQUQrQixFQVEvQixJQUFJQSxXQUFKLENBQWdCO0FBQ2Ysb0JBQVksR0FERztBQUVmLDZCQUFxQixDQUZOO0FBR2YscUJBQWE7QUFDWiwwQ0FBZ0M7QUFEcEI7QUFIRSxPQUFoQixDQVIrQixFQWUvQixJQUFJQSxXQUFKLENBQWdCO0FBQ2Ysb0JBQVksR0FERztBQUVmLDZCQUFxQixDQUZOO0FBR2YscUJBQWE7QUFDWiwwQ0FBZ0M7QUFEcEI7QUFIRSxPQUFoQixDQWYrQixDQUFoQztBQXVCQSxVQUFNdUMsU0FBd0IsR0FBRyxDQUNoQztBQUNDLHdCQUFnQixVQURqQjtBQUVDLHdCQUFnQixLQUZqQjtBQUdDLDJCQUFtQixtQ0FIcEI7QUFJQyxxQkFBYSx5QkFKZDtBQUtDLHVCQUFlO0FBQ2Qsd0JBQWMsQ0FDYjtBQUFFLHFCQUFTLFVBQVg7QUFBdUIscUJBQVM7QUFBaEMsV0FEYSxFQUViO0FBQUUscUJBQVMsU0FBWDtBQUFzQixvQkFBUTtBQUE5QixXQUZhLEVBR2I7QUFDQyxxQkFBUyxTQURWO0FBRUMsb0JBQVEsVUFGVDtBQUdDLG9CQUFRLGdDQUhUO0FBSUMsMkJBQWU7QUFBRSwyQkFBYTtBQUFmLGFBSmhCO0FBS0MsNkJBQWlCO0FBQUUsdUNBQXlCO0FBQTNCO0FBTGxCLFdBSGE7QUFEQSxTQUxoQjtBQWtCQyw4QkFBc0I7QUFDckIsc0JBQVksQ0FDWDtBQUNDLHFCQUFTLFlBRFY7QUFFQyx3QkFBWSxLQUZiO0FBR0Msd0JBQVk7QUFBRSx1QkFBUyxTQUFYO0FBQXNCLHNCQUFRO0FBQTlCLGFBSGI7QUFJQyx3QkFBWTtBQUFFLHVCQUFTLFVBQVg7QUFBdUIsdUJBQVM7QUFBaEM7QUFKYixXQURXLEVBT1g7QUFDQyxxQkFBUyxZQURWO0FBRUMsd0JBQVksS0FGYjtBQUdDLHdCQUFZO0FBQUUsdUJBQVMsU0FBWDtBQUFzQixzQkFBUTtBQUE5QixhQUhiO0FBSUMsd0JBQVk7QUFBRSx1QkFBUyxVQUFYO0FBQXVCLHVCQUFTO0FBQWhDO0FBSmIsV0FQVyxDQURTO0FBZXJCLHNCQUFZLElBZlM7QUFnQnJCLG1CQUFTO0FBaEJZO0FBbEJ2QixPQURnQyxFQXNDaEM7QUFDQyx3QkFBZ0IsbUJBRGpCO0FBRUMsd0JBQWdCLHVCQUZqQjtBQUdDLDJCQUFtQixJQUhwQjtBQUlDLHFCQUFhLHlCQUpkO0FBS0MsdUJBQWU7QUFDZCx3QkFBYztBQURBLFNBTGhCO0FBUUMsOEJBQXNCO0FBUnZCLE9BdENnQyxFQWdEaEM7QUFDQyx3QkFBZ0Isd0NBRGpCO0FBRUMsd0JBQWdCLEtBRmpCO0FBR0MsMkJBQW1CLEtBSHBCO0FBSUMscUJBQWEseUJBSmQ7QUFLQyx1QkFBZTtBQUFFLG1CQUFTLFNBQVg7QUFBc0Isa0JBQVE7QUFBOUIsU0FMaEI7QUFNQyw4QkFBc0I7QUFOdkIsT0FoRGdDLENBQWpDO0FBMERBekMsTUFBQUEsU0FBUztBQUFBLFlBQWE7QUFDckI3QixVQUFBQSxJQUFJLENBQUNZLEtBQUwsQ0FBV0MsY0FBWCxFQUEyQix3QkFBM0IsRUFBcUR3QixrQkFBckQsQ0FBd0UsVUFBQ2tDLFFBQUQsRUFBV0MsT0FBWCxFQUFvQkMsU0FBcEIsRUFBK0JoRCxPQUEvQjtBQUFBLG1CQUN2RUEsT0FBTyxDQUFDZ0IsU0FBUixDQUFrQjhCLFFBQWxCLENBRHVFO0FBQUEsV0FBeEU7QUFEcUI7QUFJckIsU0FKUTtBQUFBO0FBQUE7QUFBQSxRQUFUO0FBTUF4RSxNQUFBQSxRQUFRO0FBQUEsWUFBYTtBQUNwQkMsVUFBQUEsSUFBSSxDQUFDQyxlQUFMO0FBRG9CO0FBRXBCLFNBRk87QUFBQTtBQUFBO0FBQUEsUUFBUjtBQUlBQyxNQUFBQSxFQUFFLENBQUMscURBQUQsRUFBd0RKLGVBQXhEO0FBQUEsWUFBcUY7QUFDdEYsY0FBTTRFLGFBQWEsR0FBRzdELGNBQWMsQ0FBQzhELHVCQUFmLENBQXVDcEIsUUFBdkMsRUFBaURlLFNBQWpELEVBQTREaEIsYUFBNUQsQ0FBdEI7QUFDQSxjQUFNc0IsYUFBYSxHQUFHRixhQUFhLENBQUNHLE9BQWQsRUFBdEI7QUFDQSxjQUFNQyxTQUFTLEdBQ2Qsa0tBREQ7QUFHQXpELFVBQUFBLE1BQU0sQ0FBQ3VELGFBQUQsQ0FBTixDQUFzQkcsZUFBdEI7QUFFQTFELFVBQUFBLE1BQU0sQ0FBQzJELElBQUksQ0FBQ0MsU0FBTCxDQUFlQyxNQUFNLENBQUNDLElBQVAsQ0FBWVAsYUFBYSxDQUFDdkIsTUFBMUIsQ0FBZixDQUFELENBQU4sQ0FBMEQrQixJQUExRCxDQUErREosSUFBSSxDQUFDQyxTQUFMLENBQWUsQ0FBQyxVQUFELEVBQWEsbUJBQWIsRUFBa0MsV0FBbEMsQ0FBZixDQUEvRDtBQUNBNUQsVUFBQUEsTUFBTSxDQUFDMkQsSUFBSSxDQUFDQyxTQUFMLENBQWVDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZUCxhQUFhLENBQUNTLFFBQTFCLENBQWYsQ0FBRCxDQUFOLENBQTRERCxJQUE1RCxDQUFpRUosSUFBSSxDQUFDQyxTQUFMLENBQWUsQ0FBQyx1QkFBRCxDQUFmLENBQWpFO0FBVHNGO0FBVXRGLFNBVkM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQVdBLEtBL0dPLENBQVI7QUFpSEFwRixJQUFBQSxRQUFRLENBQUMsc0JBQUQsRUFBeUIsWUFBTTtBQUN0QyxVQUFNYSxNQUFjLEdBQUcsRUFBdkI7QUFDQSxVQUFNNkMsUUFBNEIsR0FBRyxDQUNwQyxJQUFJeEIsV0FBSixDQUFnQjtBQUNmdUQsUUFBQUEsRUFBRSxFQUFFLEdBRFc7QUFFZkMsUUFBQUEscUJBQXFCLEVBQUUsQ0FGUjtBQUdmQyxRQUFBQSxRQUFRLEVBQUUsTUFISztBQUlmQyxRQUFBQSxpQkFBaUIsRUFBRSxDQUpKO0FBS2ZDLFFBQUFBLHFCQUFxQixFQUFFLEtBTFI7QUFNZkMsUUFBQUEsVUFBVSxFQUFFLElBTkc7QUFPZkMsUUFBQUEsVUFBVSxFQUFFLE1BUEc7QUFRZkMsUUFBQUEsU0FBUyxFQUFFO0FBQ1ZMLFVBQUFBLFFBQVEsRUFBRSxNQURBO0FBRVZNLFVBQUFBLGFBQWEsRUFBRSxZQUZMO0FBR1ZDLFVBQUFBLGNBQWMsRUFBRTtBQUNmQyxZQUFBQSxhQUFhLEVBQUUsTUFEQTtBQUVmQyxZQUFBQSxrQkFBa0IsRUFBRTtBQUZMO0FBSE4sU0FSSTtBQWdCZkMsUUFBQUEsc0JBQXNCLEVBQUU7QUFDdkJDLFVBQUFBLGFBQWEsRUFBRSxLQURRO0FBRXZCQyxVQUFBQSxrQkFBa0IsRUFBRTtBQUZHO0FBaEJULE9BQWhCLENBRG9DLEVBc0JwQyxJQUFJckUsV0FBSixDQUFnQjtBQUNmdUQsUUFBQUEsRUFBRSxFQUFFLEdBRFc7QUFFZkMsUUFBQUEscUJBQXFCLEVBQUUsQ0FGUjtBQUdmQyxRQUFBQSxRQUFRLEVBQUUsTUFISztBQUlmQyxRQUFBQSxpQkFBaUIsRUFBRSxDQUpKO0FBS2ZDLFFBQUFBLHFCQUFxQixFQUFFLEtBTFI7QUFNZkMsUUFBQUEsVUFBVSxFQUFFLElBTkc7QUFPZkMsUUFBQUEsVUFBVSxFQUFFLE1BUEc7QUFRZkMsUUFBQUEsU0FBUyxFQUFFO0FBQ1ZMLFVBQUFBLFFBQVEsRUFBRSxNQURBO0FBRVZNLFVBQUFBLGFBQWEsRUFBRSxZQUZMO0FBR1ZDLFVBQUFBLGNBQWMsRUFBRTtBQUNmQyxZQUFBQSxhQUFhLEVBQUUsTUFEQTtBQUVmQyxZQUFBQSxrQkFBa0IsRUFBRTtBQUZMO0FBSE4sU0FSSTtBQWdCZkMsUUFBQUEsc0JBQXNCLEVBQUU7QUFDdkJDLFVBQUFBLGFBQWEsRUFBRSxLQURRO0FBRXZCQyxVQUFBQSxrQkFBa0IsRUFBRTtBQUZHO0FBaEJULE9BQWhCLENBdEJvQyxDQUFyQztBQTRDQSxVQUFNQyxXQUEwQixHQUFHLENBQ2xDO0FBQ0Msd0JBQWdCLElBRGpCO0FBRUMsaUJBQVMsSUFGVjtBQUdDLDBCQUFrQix3REFIbkI7QUFJQyxxQkFBYXREO0FBSmQsT0FEa0MsRUFPbEM7QUFDQyx3QkFBZ0IsVUFEakI7QUFFQyxpQkFBUyxVQUZWO0FBR0MsMEJBQWtCLHdEQUhuQjtBQUlDLHFCQUFhO0FBSmQsT0FQa0MsRUFhbEM7QUFDQyx3QkFBZ0Isb0JBRGpCO0FBRUMsaUJBQVMsVUFGVjtBQUdDLDBCQUFrQix3REFIbkI7QUFJQyxxQkFBYUE7QUFKZCxPQWJrQyxFQW1CbEM7QUFDQyx3QkFBZ0Isd0NBRGpCO0FBRUMsaUJBQVMsZ0JBRlY7QUFHQywwQkFBa0Isd0RBSG5CO0FBSUMscUJBQWE7QUFKZCxPQW5Ca0MsRUF5QmxDO0FBQ0Msd0JBQWdCLFlBRGpCO0FBRUMsaUJBQVMsYUFGVjtBQUdDLDBCQUFrQix3REFIbkI7QUFJQyxxQkFBYTtBQUpkLE9BekJrQyxFQStCbEM7QUFDQyx3QkFBZ0IsWUFEakI7QUFFQyxpQkFBUyxtQkFGVjtBQUdDLDBCQUFrQix3REFIbkI7QUFJQyxxQkFBYTtBQUpkLE9BL0JrQyxFQXFDbEM7QUFDQyx3QkFBZ0IsbUJBRGpCO0FBRUMsaUJBQVMsb0JBRlY7QUFHQywwQkFBa0Isd0RBSG5CO0FBSUMscUJBQWE7QUFKZCxPQXJDa0MsRUEyQ2xDO0FBQ0Msd0JBQWdCLGdFQURqQjtBQUVDLGlCQUFTLGNBRlY7QUFHQywwQkFBa0Isd0RBSG5CO0FBSUMscUJBQWFBO0FBSmQsT0EzQ2tDLEVBaURsQztBQUNDLHdCQUFnQiw4RUFEakI7QUFFQyxpQkFBUyxLQUZWO0FBR0MsMEJBQWtCLHdEQUhuQjtBQUlDLHFCQUFhQTtBQUpkLE9BakRrQyxFQXVEbEM7QUFDQyx3QkFBZ0IsNENBRGpCO0FBRUMsaUJBQVMsWUFGVjtBQUdDLDBCQUFrQix3REFIbkI7QUFJQyxxQkFBYUE7QUFKZCxPQXZEa0MsQ0FBbkM7QUE4REFsQixNQUFBQSxTQUFTO0FBQUEsWUFBYTtBQUNyQixjQUFNeUUsWUFBWSxHQUFHQyxVQUFVLENBQUNqRSxJQUFJLENBQUNrRSxJQUFMLENBQVVDLFNBQVYsRUFBcUIsU0FBckIsRUFBZ0Msb0JBQWhDLENBQUQsQ0FBL0I7QUFEcUIsaUNBRUdDLFlBQVksQ0FBQ0osWUFBRCxDQUZmLGlCQUVmOUUsU0FGZTtBQUdyQixnQkFBTW1GLEtBQUssR0FBRyxJQUFJMUUsU0FBSixFQUFkO0FBRUEwRSxZQUFBQSxLQUFLLENBQUN4RSxZQUFOLENBQW1CWCxTQUFuQjtBQUNDZCxZQUFBQSxNQUFELENBQWdCa0csUUFBaEIsR0FBMkI1RyxJQUFJLENBQUNlLEVBQUwsQ0FBUTtBQUFBLHFCQUFNNEYsS0FBTjtBQUFBLGFBQVIsQ0FBM0I7QUFDQ2pHLFlBQUFBLE1BQUQsQ0FBZ0JtRyxJQUFoQixHQUF1QjdHLElBQUksQ0FBQ2UsRUFBTCxDQUFRO0FBQUEscUJBQU0saUJBQU47QUFBQSxhQUFSLENBQXZCO0FBRUFmLFlBQUFBLElBQUksQ0FBQ1ksS0FBTCxDQUFXQyxjQUFYLEVBQTJCLGdCQUEzQixFQUE2Q0MsZUFBN0MsQ0FBNkR1RixXQUE3RDtBQVRxQjtBQVVyQixTQVZRO0FBQUE7QUFBQTtBQUFBLFFBQVQ7QUFZQXRHLE1BQUFBLFFBQVE7QUFBQSxZQUFhO0FBQ3BCQyxVQUFBQSxJQUFJLENBQUNDLGVBQUw7QUFEb0I7QUFFcEIsU0FGTztBQUFBO0FBQUE7QUFBQSxRQUFSO0FBSUFDLE1BQUFBLEVBQUUsQ0FBQyxrREFBRCxFQUFxREosZUFBckQ7QUFBQSxZQUFrRjtBQUNuRixjQUFNbUUsTUFBcUIsR0FBRyxFQUE5QjtBQUNBLGNBQU02QyxjQUFjLEdBQUdqRyxjQUFjLENBQUNrRyxvQkFBZixDQUFvQ3JHLE1BQXBDLEVBQTRDNkMsUUFBNUMsRUFBc0RVLE1BQXRELENBQXZCO0FBQ0EsY0FBTVcsYUFBYSxHQUFHa0MsY0FBYyxDQUFDakMsT0FBZixFQUF0QjtBQUNBeEQsVUFBQUEsTUFBTSxDQUFDdUQsYUFBRCxDQUFOLENBQXNCRyxlQUF0QjtBQUptRjtBQUtuRixTQUxDO0FBQUE7QUFBQTtBQUFBLFFBQUY7QUFNQSxLQWxJTyxDQUFSO0FBbUlBLEdBeGxCTyxDQUFSIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgTWFzc0VkaXRIZWxwZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVyc1wiO1xuaW1wb3J0IENvbnRyb2xsZXIgZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBYTUxQcmVwcm9jZXNzb3IgZnJvbSBcInNhcC91aS9jb3JlL3V0aWwvWE1MUHJlcHJvY2Vzc29yXCI7XG5pbXBvcnQgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEZyYWdtZW50IGZyb20gXCJzYXAvdWkvY29yZS9GcmFnbWVudFwiO1xuaW1wb3J0IHsgTW9ja01vZGVsLCBNb2NrTWV0YU1vZGVsLCBNb2NrQ29udHJvbCwgTW9ja0NvbnRleHQsIE1vY2tDb250cm9sbGVyIH0gZnJvbSBcInNhcC9mZS90ZXN0L1VJNU1vY2tIZWxwZXJcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB7IGNvbXBpbGVDRFMsIGdldE1ldGFNb2RlbCB9IGZyb20gXCJzYXAvZmUvdGVzdC9KZXN0VGVtcGxhdGluZ0hlbHBlclwiO1xuaW1wb3J0IE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5cbmRlc2NyaWJlKFwiTWFzc0VkaXRIZWxwZXJcIiwgZnVuY3Rpb24oKSB7XG5cdGNvbnN0IG9UZXN0UmVmZXJlbmNlcyA9IHtcblx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0e1xuXHRcdFx0XHRcInR5cGVcIjogXCJKSVJBXCIsXG5cdFx0XHRcdFwiSURcIjogXCJGSU9SSVRFQ0hQMS0xOTQxNVwiXG5cdFx0XHR9XG5cdFx0XVxuXHR9O1xuXG5cdGRlc2NyaWJlKFwiY3JlYXRlRGlhbG9nXCIsICgpID0+IHtcblx0XHRhZnRlckFsbChhc3luYyAoKSA9PiB7XG5cdFx0XHRqZXN0LnJlc3RvcmVBbGxNb2NrcygpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJDaGVjayBjcmVhdGVEaWFsb2cgaXMgd29ya2luZyBjb3JyZWN0bHkuXCIsIG9UZXN0UmVmZXJlbmNlcywgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3Qgb0RpYWxvZ0RhdGFNb2RlbDogSlNPTk1vZGVsID0gbmV3IEpTT05Nb2RlbCh7fSk7XG5cdFx0XHRjb25zdCBvRGlhbG9nUnVudGltZU1vZGVsOiBKU09OTW9kZWwgPSBuZXcgSlNPTk1vZGVsKHt9KTtcblx0XHRcdGNvbnN0IG9Db250cm9sbGVyOiBNb2NrQ29udHJvbGxlciA9IG5ldyBNb2NrQ29udHJvbGxlcigpO1xuXHRcdFx0Y29uc3Qgb0NvbnRyb2w6IGFueSA9IG5ldyBNb2NrQ29udHJvbCgpO1xuXHRcdFx0Y29uc3Qgb1RhYmxlOiBvYmplY3QgPSB7fTtcblx0XHRcdGNvbnN0IGFDb250ZXh0czogQXJyYXk8b2JqZWN0PiA9IFtdO1xuXG5cdFx0XHRqZXN0LnNweU9uKE1hc3NFZGl0SGVscGVyLCBcImdldERlZmF1bHRUZXh0c0ZvckRpYWxvZ1wiKS5tb2NrUmV0dXJuVmFsdWUoamVzdC5mbigpKTtcblx0XHRcdGplc3Quc3B5T24oTWFzc0VkaXRIZWxwZXIsIFwicHJlcGFyZURhdGFGb3JEaWFsb2dcIikubW9ja1JldHVyblZhbHVlKG9EaWFsb2dEYXRhTW9kZWwpO1xuXHRcdFx0amVzdC5zcHlPbihNYXNzRWRpdEhlbHBlciwgXCJzZXRSdW50aW1lTW9kZWxPbkRpYWxvZ1wiKS5tb2NrUmV0dXJuVmFsdWUob0RpYWxvZ1J1bnRpbWVNb2RlbCk7XG5cdFx0XHRqZXN0LnNweU9uKFhNTFByZXByb2Nlc3NvciwgXCJwcm9jZXNzXCIpLm1vY2tSZXR1cm5WYWx1ZShcIkZyYWdtZW50XCIpO1xuXHRcdFx0amVzdC5zcHlPbihGcmFnbWVudCwgXCJsb2FkXCIpLm1vY2tSZXNvbHZlZFZhbHVlKG9Db250cm9sIGFzIENvbnRyb2wpO1xuXG5cdFx0XHRjb25zdCBvUmVzcG9uc2UgPSBhd2FpdCBNYXNzRWRpdEhlbHBlci5jcmVhdGVEaWFsb2cob1RhYmxlLCBhQ29udGV4dHMsIChvQ29udHJvbGxlciBhcyBhbnkpIGFzIENvbnRyb2xsZXIpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZS5pc0EoXCJzYXAubS5EaWFsb2dcIikpLnRvQmVUcnV0aHkoKTtcblx0XHR9KTtcblx0fSk7XG5cblx0ZGVzY3JpYmUoXCJnZXRUZXh0QXJyYW5nZW1lbnRJbmZvXCIsICgpID0+IHtcblx0XHRsZXQgbWV0YU1vZGVsITogTW9ja01ldGFNb2RlbDtcblx0XHRsZXQgY29udGV4dCE6IE1vY2tDb250ZXh0O1xuXHRcdGxldCBkaXNwbGF5TW9kZTogc3RyaW5nID0gXCJcIjtcblx0XHRsZXQgdGV4dEJpbmRpbmchOiBvYmplY3Q7XG5cdFx0bGV0IHRleHRQYXJhbWV0ZXJzITogQXJyYXk8b2JqZWN0PjtcblxuXHRcdGJlZm9yZUFsbChhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCBtZXRhTW9kZWxDb250ZXh0OiBNb2NrQ29udGV4dCA9IG5ldyBNb2NrQ29udGV4dCh7fSk7XG5cdFx0XHRjb25zdCBkZWZhdWx0TW9kZWw6IE1vY2tNb2RlbCA9IG5ldyBNb2NrTW9kZWwoKTtcblxuXHRcdFx0bWV0YU1vZGVsID0gbmV3IE1vY2tNZXRhTW9kZWwobWV0YU1vZGVsQ29udGV4dCk7XG5cdFx0XHRkZWZhdWx0TW9kZWwuc2V0TWV0YU1vZGVsKG1ldGFNb2RlbCk7XG5cdFx0XHRjb250ZXh0ID0gbmV3IE1vY2tDb250ZXh0KHtcblx0XHRcdFx0XCJQcm9wZXJ0eVwiOiBcIkNvZGVcIixcblx0XHRcdFx0XCJEZXNjXCI6IFwiVGV4dFwiXG5cdFx0XHR9KTtcblxuXHRcdFx0amVzdC5zcHlPbihDb21tb25VdGlscywgXCJjb21wdXRlRGlzcGxheU1vZGVcIikubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IGRpc3BsYXlNb2RlIGFzIGFueSk7XG5cdFx0XHRqZXN0LnNweU9uKGNvbnRleHQsIFwiZ2V0TW9kZWxcIikubW9ja1JldHVyblZhbHVlKChkZWZhdWx0TW9kZWwgYXMgYW55KSBhcyBPRGF0YU1vZGVsKTtcblxuXHRcdFx0dGV4dFBhcmFtZXRlcnMgPSBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRwYXRoOiBcIlByb3BlcnR5XCJcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHBhdGg6IFwiRGVzY1wiXG5cdFx0XHRcdH1cblx0XHRcdF07XG5cdFx0fSk7XG5cblx0XHRiZWZvcmVFYWNoKGFzeW5jICgpID0+IHtcblx0XHRcdHRleHRCaW5kaW5nID0ge307XG5cdFx0fSk7XG5cblx0XHRhZnRlckFsbChhc3luYyAoKSA9PiB7XG5cdFx0XHRqZXN0LnJlc3RvcmVBbGxNb2NrcygpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJDaGVjayBnZXRUZXh0QXJyYW5nZW1lbnRJbmZvIHdpdGggdGV4dCBwYXRoIGFuZCBkaXNwbGF5TW9kZSBhcyAnRGVzY3JpcHRpb24nLlwiLCBvVGVzdFJlZmVyZW5jZXMsIGFzeW5jICgpID0+IHtcblx0XHRcdCh0ZXh0QmluZGluZyBhcyBhbnkpLnBhdGggPSBcIkRlc2NcIjtcblx0XHRcdGRpc3BsYXlNb2RlID0gXCJEZXNjcmlwdGlvblwiO1xuXG5cdFx0XHRjb25zdCBvUmVzcG9uc2UgPSBNYXNzRWRpdEhlbHBlci5nZXRUZXh0QXJyYW5nZW1lbnRJbmZvKFwiUHJvcGVydHlcIiwgdGV4dEJpbmRpbmcsIFwiL0VudGl0eVNldFwiLCBjb250ZXh0KSBhcyBhbnk7XG5cblx0XHRcdGV4cGVjdChtZXRhTW9kZWwuZ2V0T2JqZWN0KS50b0hhdmVCZWVuTGFzdENhbGxlZFdpdGgoXCIvRW50aXR5U2V0L1Byb3BlcnR5QFwiKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UudGV4dEFycmFuZ2VtZW50KS50b0VxdWFsKGRpc3BsYXlNb2RlKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UudmFsdWVQYXRoKS50b0VxdWFsKFwiUHJvcGVydHlcIik7XG5cdFx0XHRleHBlY3Qob1Jlc3BvbnNlLmRlc2NyaXB0aW9uUGF0aCkudG9FcXVhbCh1bmRlZmluZWQpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZS52YWx1ZSkudG9FcXVhbChcIkNvZGVcIik7XG5cdFx0XHRleHBlY3Qob1Jlc3BvbnNlLmRlc2NyaXB0aW9uKS50b0VxdWFsKFwiVGV4dFwiKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UuZnVsbFRleHQpLnRvRXF1YWwoXCJUZXh0XCIpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJDaGVjayBnZXRUZXh0QXJyYW5nZW1lbnRJbmZvIHdpdGggdGV4dCBwYXRoIGFuZCBkaXNwbGF5TW9kZSBhcyAnVmFsdWUnLlwiLCBvVGVzdFJlZmVyZW5jZXMsIGFzeW5jICgpID0+IHtcblx0XHRcdCh0ZXh0QmluZGluZyBhcyBhbnkpLnBhdGggPSBcIkRlc2NcIjtcblx0XHRcdGRpc3BsYXlNb2RlID0gXCJWYWx1ZVwiO1xuXG5cdFx0XHRjb25zdCBvUmVzcG9uc2UgPSBNYXNzRWRpdEhlbHBlci5nZXRUZXh0QXJyYW5nZW1lbnRJbmZvKFwiUHJvcGVydHlcIiwgdGV4dEJpbmRpbmcsIFwiL0VudGl0eVNldFwiLCBjb250ZXh0KSBhcyBhbnk7XG5cblx0XHRcdGV4cGVjdChtZXRhTW9kZWwuZ2V0T2JqZWN0KS50b0hhdmVCZWVuTGFzdENhbGxlZFdpdGgoXCIvRW50aXR5U2V0L1Byb3BlcnR5QFwiKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UudGV4dEFycmFuZ2VtZW50KS50b0VxdWFsKGRpc3BsYXlNb2RlKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UudmFsdWVQYXRoKS50b0VxdWFsKFwiUHJvcGVydHlcIik7XG5cdFx0XHRleHBlY3Qob1Jlc3BvbnNlLmRlc2NyaXB0aW9uUGF0aCkudG9FcXVhbCh1bmRlZmluZWQpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZS52YWx1ZSkudG9FcXVhbChcIkNvZGVcIik7XG5cdFx0XHRleHBlY3Qob1Jlc3BvbnNlLmRlc2NyaXB0aW9uKS50b0VxdWFsKHVuZGVmaW5lZCk7XG5cdFx0XHRleHBlY3Qob1Jlc3BvbnNlLmZ1bGxUZXh0KS50b0VxdWFsKFwiQ29kZVwiKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiQ2hlY2sgZ2V0VGV4dEFycmFuZ2VtZW50SW5mbyB3aXRoIHRleHQgcGFyYW1ldGVycyBhbmQgZGlzcGxheU1vZGUgYXMgJ0Rlc2NyaXB0aW9uVmFsdWUnLlwiLCBvVGVzdFJlZmVyZW5jZXMsIGFzeW5jICgpID0+IHtcblx0XHRcdCh0ZXh0QmluZGluZyBhcyBhbnkpLnBhcmFtZXRlcnMgPSB0ZXh0UGFyYW1ldGVycztcblx0XHRcdGRpc3BsYXlNb2RlID0gXCJEZXNjcmlwdGlvblZhbHVlXCI7XG5cblx0XHRcdGNvbnN0IG9SZXNwb25zZSA9IE1hc3NFZGl0SGVscGVyLmdldFRleHRBcnJhbmdlbWVudEluZm8oXCJQcm9wZXJ0eVwiLCB0ZXh0QmluZGluZywgXCIvRW50aXR5U2V0XCIsIGNvbnRleHQpIGFzIGFueTtcblxuXHRcdFx0ZXhwZWN0KG1ldGFNb2RlbC5nZXRPYmplY3QpLnRvSGF2ZUJlZW5MYXN0Q2FsbGVkV2l0aChcIi9FbnRpdHlTZXQvUHJvcGVydHlAXCIpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZS50ZXh0QXJyYW5nZW1lbnQpLnRvRXF1YWwoZGlzcGxheU1vZGUpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZS52YWx1ZVBhdGgpLnRvRXF1YWwoXCJQcm9wZXJ0eVwiKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UuZGVzY3JpcHRpb25QYXRoKS50b0VxdWFsKFwiRGVzY1wiKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UudmFsdWUpLnRvRXF1YWwoXCJDb2RlXCIpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZS5kZXNjcmlwdGlvbikudG9FcXVhbChcIlRleHRcIik7XG5cdFx0XHRleHBlY3Qob1Jlc3BvbnNlLmZ1bGxUZXh0KS50b0VxdWFsKFwiVGV4dCAoQ29kZSlcIik7XG5cdFx0fSk7XG5cblx0XHRpdChcIkNoZWNrIGdldFRleHRBcnJhbmdlbWVudEluZm8gd2l0aCB0ZXh0IHBhcmFtZXRlcnMgYW5kIGRpc3BsYXlNb2RlIGFzICdWYWx1ZURlc2NyaXB0aW9uJy5cIiwgb1Rlc3RSZWZlcmVuY2VzLCBhc3luYyAoKSA9PiB7XG5cdFx0XHQodGV4dEJpbmRpbmcgYXMgYW55KS5wYXJhbWV0ZXJzID0gdGV4dFBhcmFtZXRlcnM7XG5cdFx0XHRkaXNwbGF5TW9kZSA9IFwiVmFsdWVEZXNjcmlwdGlvblwiO1xuXG5cdFx0XHRjb25zdCBvUmVzcG9uc2UgPSBNYXNzRWRpdEhlbHBlci5nZXRUZXh0QXJyYW5nZW1lbnRJbmZvKFwiUHJvcGVydHlcIiwgdGV4dEJpbmRpbmcsIFwiL0VudGl0eVNldFwiLCBjb250ZXh0KSBhcyBhbnk7XG5cblx0XHRcdGV4cGVjdChtZXRhTW9kZWwuZ2V0T2JqZWN0KS50b0hhdmVCZWVuTGFzdENhbGxlZFdpdGgoXCIvRW50aXR5U2V0L1Byb3BlcnR5QFwiKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UudGV4dEFycmFuZ2VtZW50KS50b0VxdWFsKGRpc3BsYXlNb2RlKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UudmFsdWVQYXRoKS50b0VxdWFsKFwiUHJvcGVydHlcIik7XG5cdFx0XHRleHBlY3Qob1Jlc3BvbnNlLmRlc2NyaXB0aW9uUGF0aCkudG9FcXVhbChcIkRlc2NcIik7XG5cdFx0XHRleHBlY3Qob1Jlc3BvbnNlLnZhbHVlKS50b0VxdWFsKFwiQ29kZVwiKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UuZGVzY3JpcHRpb24pLnRvRXF1YWwoXCJUZXh0XCIpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZS5mdWxsVGV4dCkudG9FcXVhbChcIkNvZGUgKFRleHQpXCIpO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcInNldERlZmF1bHRWYWx1ZXNUb0RpYWxvZ1wiLCAoKSA9PiB7XG5cdFx0bGV0IHByb3BlcnR5SW5mbzogb2JqZWN0ID0ge307XG5cdFx0bGV0IHZhbHVlczogQXJyYXk8b2JqZWN0PiA9IFtdO1xuXHRcdGxldCBkZWZhdWx0VmFsdWVzOiBvYmplY3Q7XG5cdFx0bGV0IGNvbnRleHRzOiBBcnJheTxvYmplY3Q+ID0gW107XG5cdFx0bGV0IG5vVmFsdWVDb250ZXh0czogQXJyYXk8b2JqZWN0PiA9IFtdO1xuXHRcdGxldCBpc1VuaXQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRcdGJlZm9yZUFsbChhc3luYyAoKSA9PiB7XG5cdFx0XHRkZWZhdWx0VmFsdWVzID0ge1xuXHRcdFx0XHRcImtlZXBFeGlzdGluZ1ByZWZpeFwiOiBcIjwgS2VlcFwiLFxuXHRcdFx0XHRcImxlYXZlQmxhbmtWYWx1ZVwiOiBcIjwgTGVhdmUgQmxhbmsgPlwiLFxuXHRcdFx0XHRcImNsZWFyRmllbGRWYWx1ZVwiOiBcIjwgQ2xlYXIgVmFsdWVzID5cIixcblx0XHRcdFx0XCJtYXNzRWRpdFRpdGxlXCI6IFwiTWFzcyBFZGl0ICgyKVwiLFxuXHRcdFx0XHRcImFwcGx5QnV0dG9uVGV4dFwiOiBcIlNhdmVcIixcblx0XHRcdFx0XCJjYW5jZWxCdXR0b25UZXh0XCI6IFwiQ2FuY2VsXCJcblx0XHRcdH07XG5cdFx0XHRjb250ZXh0cyA9IFtcblx0XHRcdFx0bmV3IE1vY2tDb250ZXh0KHtcblx0XHRcdFx0XHRcIkFnZW5jeUlEXCI6IFwiMVwiXG5cdFx0XHRcdH0pLFxuXHRcdFx0XHRuZXcgTW9ja0NvbnRleHQoe1xuXHRcdFx0XHRcdFwiQWdlbmN5SURcIjogXCIyXCJcblx0XHRcdFx0fSlcblx0XHRcdF07XG5cdFx0XHRub1ZhbHVlQ29udGV4dHMgPSBbXG5cdFx0XHRcdG5ldyBNb2NrQ29udGV4dCh7XG5cdFx0XHRcdFx0XCJBZ2VuY3lJRFwiOiB1bmRlZmluZWRcblx0XHRcdFx0fSksXG5cdFx0XHRcdG5ldyBNb2NrQ29udGV4dCh7XG5cdFx0XHRcdFx0XCJBZ2VuY3lJRFwiOiBcIlwiXG5cdFx0XHRcdH0pXG5cdFx0XHRdO1xuXHRcdH0pO1xuXG5cdFx0YmVmb3JlRWFjaChhc3luYyAoKSA9PiB7XG5cdFx0XHRwcm9wZXJ0eUluZm8gPSB7XG5cdFx0XHRcdGRhdGFQcm9wZXJ0eTogXCJBZ2VuY3lJRFwiXG5cdFx0XHR9O1xuXHRcdFx0dmFsdWVzID0gW107XG5cdFx0XHRpc1VuaXQgPSBmYWxzZTtcblx0XHR9KTtcblxuXHRcdGFmdGVyQWxsKGFzeW5jICgpID0+IHtcblx0XHRcdGplc3QucmVzdG9yZUFsbE1vY2tzKCk7XG5cdFx0fSk7XG5cblx0XHRpdChcIkNoZWNrIHNldERlZmF1bHRWYWx1ZXNUb0RpYWxvZyB3aXRoIHByb3BlcnR5IGFuZCBubyB2YWx1ZS5cIiwgb1Rlc3RSZWZlcmVuY2VzLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRNYXNzRWRpdEhlbHBlci5zZXREZWZhdWx0VmFsdWVzVG9EaWFsb2codmFsdWVzLCBjb250ZXh0cywgZGVmYXVsdFZhbHVlcywgcHJvcGVydHlJbmZvLCBpc1VuaXQpO1xuXHRcdFx0ZXhwZWN0KHZhbHVlcykudG9FcXVhbChcblx0XHRcdFx0ZXhwZWN0LmFycmF5Q29udGFpbmluZyhbZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoeyBcImtleVwiOiBcIkRlZmF1bHQvQWdlbmN5SURcIiwgXCJ0ZXh0XCI6IFwiPCBLZWVwIFZhbHVlcyA+XCIgfSldKVxuXHRcdFx0KTtcblx0XHRcdGV4cGVjdCh2YWx1ZXMpLnRvRXF1YWwoXG5cdFx0XHRcdGV4cGVjdC5hcnJheUNvbnRhaW5pbmcoW2V4cGVjdC5vYmplY3RDb250YWluaW5nKHsgXCJrZXlcIjogXCJDbGVhckZpZWxkVmFsdWUvQWdlbmN5SURcIiwgXCJ0ZXh0XCI6IFwiPCBDbGVhciBWYWx1ZXMgPlwiIH0pXSlcblx0XHRcdCk7XG5cdFx0fSk7XG5cblx0XHRpdChcIkNoZWNrIHNldERlZmF1bHRWYWx1ZXNUb0RpYWxvZyB3aXRoIHJlcXVpcmVkIHByb3BlcnR5IGFuZCB2YWx1ZS5cIiwgb1Rlc3RSZWZlcmVuY2VzLCBhc3luYyAoKSA9PiB7XG5cdFx0XHQocHJvcGVydHlJbmZvIGFzIGFueSkuaXNGaWVsZFJlcXVpcmVkID0gdHJ1ZTtcblx0XHRcdE1hc3NFZGl0SGVscGVyLnNldERlZmF1bHRWYWx1ZXNUb0RpYWxvZyh2YWx1ZXMsIGNvbnRleHRzLCBkZWZhdWx0VmFsdWVzLCBwcm9wZXJ0eUluZm8sIGlzVW5pdCk7XG5cdFx0XHRleHBlY3QodmFsdWVzKS50b0VxdWFsKFxuXHRcdFx0XHRleHBlY3QuYXJyYXlDb250YWluaW5nKFtleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7IFwia2V5XCI6IFwiRGVmYXVsdC9BZ2VuY3lJRFwiLCBcInRleHRcIjogXCI8IEtlZXAgVmFsdWVzID5cIiB9KV0pXG5cdFx0XHQpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJDaGVjayBzZXREZWZhdWx0VmFsdWVzVG9EaWFsb2cgd2l0aCB1bml0IHByb3BlcnR5IGFuZCB2YWx1ZS5cIiwgb1Rlc3RSZWZlcmVuY2VzLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRpc1VuaXQgPSB0cnVlO1xuXHRcdFx0TWFzc0VkaXRIZWxwZXIuc2V0RGVmYXVsdFZhbHVlc1RvRGlhbG9nKHZhbHVlcywgY29udGV4dHMsIGRlZmF1bHRWYWx1ZXMsIHByb3BlcnR5SW5mbywgaXNVbml0KTtcblx0XHRcdGV4cGVjdCh2YWx1ZXMpLnRvRXF1YWwoXG5cdFx0XHRcdGV4cGVjdC5hcnJheUNvbnRhaW5pbmcoW2V4cGVjdC5vYmplY3RDb250YWluaW5nKHsgXCJrZXlcIjogXCJEZWZhdWx0L0FnZW5jeUlEXCIsIFwidGV4dFwiOiBcIjwgS2VlcCBWYWx1ZXMgPlwiIH0pXSlcblx0XHRcdCk7XG5cdFx0fSk7XG5cblx0XHRpdChcIkNoZWNrIHNldERlZmF1bHRWYWx1ZXNUb0RpYWxvZyB3aXRoIHByb3BlcnR5IGFuZCBubyB2YWx1ZS5cIiwgb1Rlc3RSZWZlcmVuY2VzLCBhc3luYyAoKSA9PiB7XG5cdFx0XHQocHJvcGVydHlJbmZvIGFzIGFueSkuaXNGaWVsZFJlcXVpcmVkID0gdHJ1ZTtcblx0XHRcdE1hc3NFZGl0SGVscGVyLnNldERlZmF1bHRWYWx1ZXNUb0RpYWxvZyh2YWx1ZXMsIG5vVmFsdWVDb250ZXh0cywgZGVmYXVsdFZhbHVlcywgcHJvcGVydHlJbmZvLCBpc1VuaXQpO1xuXHRcdFx0ZXhwZWN0KHZhbHVlcykudG9FcXVhbChcblx0XHRcdFx0ZXhwZWN0LmFycmF5Q29udGFpbmluZyhbZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoeyBcImtleVwiOiBcIkRlZmF1bHQvQWdlbmN5SURcIiwgXCJ0ZXh0XCI6IFwiPCBLZWVwIFZhbHVlcyA+XCIgfSldKVxuXHRcdFx0KTtcblx0XHRcdGV4cGVjdCh2YWx1ZXMpLnRvRXF1YWwoXG5cdFx0XHRcdGV4cGVjdC5hcnJheUNvbnRhaW5pbmcoW2V4cGVjdC5vYmplY3RDb250YWluaW5nKHsgXCJrZXlcIjogXCJFbXB0eS9BZ2VuY3lJRFwiLCBcInRleHRcIjogXCI8IExlYXZlIEJsYW5rID5cIiB9KV0pXG5cdFx0XHQpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJDaGVjayBzZXREZWZhdWx0VmFsdWVzVG9EaWFsb2cgd2l0aCBwcm9wZXJ0eSBhbmQgdmFsdWUuXCIsIG9UZXN0UmVmZXJlbmNlcywgYXN5bmMgKCkgPT4ge1xuXHRcdFx0KHByb3BlcnR5SW5mbyBhcyBhbnkpLmlucHV0VHlwZSA9IFwic2FwLm0uRGF0ZVBpY2tlclwiO1xuXHRcdFx0TWFzc0VkaXRIZWxwZXIuc2V0RGVmYXVsdFZhbHVlc1RvRGlhbG9nKHZhbHVlcywgY29udGV4dHMsIGRlZmF1bHRWYWx1ZXMsIHByb3BlcnR5SW5mbywgaXNVbml0KTtcblx0XHRcdGV4cGVjdCh2YWx1ZXMpLnRvRXF1YWwoXG5cdFx0XHRcdGV4cGVjdC5hcnJheUNvbnRhaW5pbmcoW2V4cGVjdC5vYmplY3RDb250YWluaW5nKHsgXCJrZXlcIjogXCJEZWZhdWx0L0FnZW5jeUlEXCIsIFwidGV4dFwiOiBcIjwgS2VlcCBEYXRlcyA+XCIgfSldKVxuXHRcdFx0KTtcblx0XHRcdGV4cGVjdCh2YWx1ZXMpLnRvRXF1YWwoXG5cdFx0XHRcdGV4cGVjdC5hcnJheUNvbnRhaW5pbmcoW2V4cGVjdC5vYmplY3RDb250YWluaW5nKHsgXCJrZXlcIjogXCJDbGVhckZpZWxkVmFsdWUvQWdlbmN5SURcIiwgXCJ0ZXh0XCI6IFwiPCBDbGVhciBWYWx1ZXMgPlwiIH0pXSlcblx0XHRcdCk7XG5cdFx0fSk7XG5cblx0XHRpdChcIkNoZWNrIHNldERlZmF1bHRWYWx1ZXNUb0RpYWxvZyB3aXRoIHByb3BlcnR5IGFuZCB2YWx1ZS5cIiwgb1Rlc3RSZWZlcmVuY2VzLCBhc3luYyAoKSA9PiB7XG5cdFx0XHQocHJvcGVydHlJbmZvIGFzIGFueSkuaW5wdXRUeXBlID0gXCJzYXAubS5DaGVja0JveFwiO1xuXHRcdFx0TWFzc0VkaXRIZWxwZXIuc2V0RGVmYXVsdFZhbHVlc1RvRGlhbG9nKHZhbHVlcywgY29udGV4dHMsIGRlZmF1bHRWYWx1ZXMsIHByb3BlcnR5SW5mbywgaXNVbml0KTtcblx0XHRcdGV4cGVjdCh2YWx1ZXMpLnRvRXF1YWwoXG5cdFx0XHRcdGV4cGVjdC5hcnJheUNvbnRhaW5pbmcoW2V4cGVjdC5vYmplY3RDb250YWluaW5nKHsgXCJrZXlcIjogXCJEZWZhdWx0L0FnZW5jeUlEXCIsIFwidGV4dFwiOiBcIjwgS2VlcCBTZXR0aW5ncyA+XCIgfSldKVxuXHRcdFx0KTtcblx0XHRcdGV4cGVjdCh2YWx1ZXMpLnRvRXF1YWwoXG5cdFx0XHRcdGV4cGVjdC5hcnJheUNvbnRhaW5pbmcoW2V4cGVjdC5vYmplY3RDb250YWluaW5nKHsgXCJrZXlcIjogXCJDbGVhckZpZWxkVmFsdWUvQWdlbmN5SURcIiwgXCJ0ZXh0XCI6IFwiPCBDbGVhciBWYWx1ZXMgPlwiIH0pXSlcblx0XHRcdCk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiZ2V0SGlkZGVuVmFsdWVGb3JDb250ZXh0c1wiLCAoKSA9PiB7XG5cdFx0bGV0IGNvbnRleHRzOiBBcnJheTxvYmplY3Q+ID0gW107XG5cdFx0bGV0IGNvbnRleHRzSGlkZGVuOiBBcnJheTxvYmplY3Q+ID0gW107XG5cblx0XHRiZWZvcmVBbGwoYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29udGV4dHMgPSBbXG5cdFx0XHRcdG5ldyBNb2NrQ29udGV4dCh7XG5cdFx0XHRcdFx0XCJIaWRkZW5Qcm9wXCI6IGZhbHNlXG5cdFx0XHRcdH0pLFxuXHRcdFx0XHRuZXcgTW9ja0NvbnRleHQoe1xuXHRcdFx0XHRcdFwiSGlkZGVuUHJvcFwiOiB0cnVlXG5cdFx0XHRcdH0pXG5cdFx0XHRdO1xuXG5cdFx0XHRjb250ZXh0c0hpZGRlbiA9IFtcblx0XHRcdFx0bmV3IE1vY2tDb250ZXh0KHtcblx0XHRcdFx0XHRcIkhpZGRlblByb3BcIjogdHJ1ZVxuXHRcdFx0XHR9KSxcblx0XHRcdFx0bmV3IE1vY2tDb250ZXh0KHtcblx0XHRcdFx0XHRcIkhpZGRlblByb3BcIjogdHJ1ZVxuXHRcdFx0XHR9KVxuXHRcdFx0XTtcblx0XHR9KTtcblxuXHRcdGl0KFwiQ2hlY2sgZ2V0SGlkZGVuVmFsdWVGb3JDb250ZXh0cyBmb3Igc3RhdGljIHRydWUuXCIsIG9UZXN0UmVmZXJlbmNlcywgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gTWFzc0VkaXRIZWxwZXIuZ2V0SGlkZGVuVmFsdWVGb3JDb250ZXh0cyh0cnVlLCBjb250ZXh0cyk7XG5cdFx0XHRleHBlY3QocmVzdWx0KS50b0VxdWFsKHRydWUpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJDaGVjayBnZXRIaWRkZW5WYWx1ZUZvckNvbnRleHRzIGZvciBzdGF0aWMgZmFsc2UuXCIsIG9UZXN0UmVmZXJlbmNlcywgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gTWFzc0VkaXRIZWxwZXIuZ2V0SGlkZGVuVmFsdWVGb3JDb250ZXh0cyhmYWxzZSwgY29udGV4dHMpO1xuXHRcdFx0ZXhwZWN0KHJlc3VsdCkudG9FcXVhbChmYWxzZSk7XG5cdFx0fSk7XG5cblx0XHRpdChcIkNoZWNrIGdldEhpZGRlblZhbHVlRm9yQ29udGV4dHMgZm9yIHBhdGggZmFsc2UuXCIsIG9UZXN0UmVmZXJlbmNlcywgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gTWFzc0VkaXRIZWxwZXIuZ2V0SGlkZGVuVmFsdWVGb3JDb250ZXh0cyh7ICRQYXRoOiBcIkhpZGRlblByb3BcIiB9LCBjb250ZXh0cyk7XG5cdFx0XHRleHBlY3QocmVzdWx0KS50b0VxdWFsKGZhbHNlKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiQ2hlY2sgZ2V0SGlkZGVuVmFsdWVGb3JDb250ZXh0cyBmb3IgcGF0aCB0cnVlLlwiLCBvVGVzdFJlZmVyZW5jZXMsIGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IHJlc3VsdCA9IE1hc3NFZGl0SGVscGVyLmdldEhpZGRlblZhbHVlRm9yQ29udGV4dHMoeyAkUGF0aDogXCJIaWRkZW5Qcm9wXCIgfSwgY29udGV4dHNIaWRkZW4pO1xuXHRcdFx0ZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh0cnVlKTtcblx0XHR9KTtcblx0fSk7XG5cblx0ZGVzY3JpYmUoXCJnZXREZWZhdWx0U2VsZWN0aW9uUGF0aENvbWJvQm94XCIsICgpID0+IHtcblx0XHRpdChcIkNoZWNrIGdldERlZmF1bHRTZWxlY3Rpb25QYXRoQ29tYm9Cb3ggZm9yIG11bHRpcGxlIHVuaXF1ZS5cIiwgb1Rlc3RSZWZlcmVuY2VzLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCBjb250ZXh0czogQXJyYXk8b2JqZWN0PiA9IFtcblx0XHRcdFx0bmV3IE1vY2tDb250ZXh0KHtcblx0XHRcdFx0XHRcIlByb3BlcnR5XCI6IDFcblx0XHRcdFx0fSksXG5cdFx0XHRcdG5ldyBNb2NrQ29udGV4dCh7XG5cdFx0XHRcdFx0XCJQcm9wZXJ0eVwiOiAyXG5cdFx0XHRcdH0pXG5cdFx0XHRdO1xuXG5cdFx0XHRjb25zdCByZXN1bHQgPSBNYXNzRWRpdEhlbHBlci5nZXREZWZhdWx0U2VsZWN0aW9uUGF0aENvbWJvQm94KGNvbnRleHRzLCBcIlByb3BlcnR5XCIpO1xuXHRcdFx0ZXhwZWN0KHJlc3VsdCkudG9FcXVhbChcIkRlZmF1bHQvUHJvcGVydHlcIik7XG5cdFx0fSk7XG5cblx0XHRpdChcIkNoZWNrIGdldERlZmF1bHRTZWxlY3Rpb25QYXRoQ29tYm9Cb3ggZm9yIHNpbmdsZSB1bmlxdWUuXCIsIG9UZXN0UmVmZXJlbmNlcywgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgY29udGV4dHM6IEFycmF5PG9iamVjdD4gPSBbXG5cdFx0XHRcdG5ldyBNb2NrQ29udGV4dCh7XG5cdFx0XHRcdFx0XCJQcm9wZXJ0eVwiOiAxXG5cdFx0XHRcdH0pLFxuXHRcdFx0XHRuZXcgTW9ja0NvbnRleHQoe1xuXHRcdFx0XHRcdFwiUHJvcGVydHlcIjogMVxuXHRcdFx0XHR9KVxuXHRcdFx0XTtcblxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gTWFzc0VkaXRIZWxwZXIuZ2V0RGVmYXVsdFNlbGVjdGlvblBhdGhDb21ib0JveChjb250ZXh0cywgXCJQcm9wZXJ0eVwiKTtcblx0XHRcdGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoXCJQcm9wZXJ0eVwiKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiQ2hlY2sgZ2V0RGVmYXVsdFNlbGVjdGlvblBhdGhDb21ib0JveCBmb3Igbm8gdW5pcXVlLlwiLCBvVGVzdFJlZmVyZW5jZXMsIGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IGNvbnRleHRzOiBBcnJheTxvYmplY3Q+ID0gW1xuXHRcdFx0XHRuZXcgTW9ja0NvbnRleHQoe1xuXHRcdFx0XHRcdFwiUHJvcGVydHlcIjogdW5kZWZpbmVkXG5cdFx0XHRcdH0pLFxuXHRcdFx0XHRuZXcgTW9ja0NvbnRleHQoe1xuXHRcdFx0XHRcdFwiUHJvcGVydHlcIjogdW5kZWZpbmVkXG5cdFx0XHRcdH0pXG5cdFx0XHRdO1xuXG5cdFx0XHRjb25zdCByZXN1bHQgPSBNYXNzRWRpdEhlbHBlci5nZXREZWZhdWx0U2VsZWN0aW9uUGF0aENvbWJvQm94KGNvbnRleHRzLCBcIlByb3BlcnR5XCIpO1xuXHRcdFx0ZXhwZWN0KHJlc3VsdCkudG9FcXVhbChcIkVtcHR5L1Byb3BlcnR5XCIpO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcImdldFZhbHVlRm9yTXVsdGlMZXZlbFBhdGhcIiwgKCkgPT4ge1xuXHRcdGl0KFwiQ2hlY2sgZ2V0VmFsdWVGb3JNdWx0aUxldmVsUGF0aCBmb3IgbmF2IHByb3AuXCIsIG9UZXN0UmVmZXJlbmNlcywgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgdmFsdWVzOiBvYmplY3QgPSB7XG5cdFx0XHRcdFwiUHJvcGVydHlcIjogMixcblx0XHRcdFx0XCJOYXZcIjoge1xuXHRcdFx0XHRcdFwiUHJvcGVydHkxXCI6IDFcblx0XHRcdFx0fVxuXHRcdFx0fTtcblxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gTWFzc0VkaXRIZWxwZXIuZ2V0VmFsdWVGb3JNdWx0aUxldmVsUGF0aChcIk5hdi9Qcm9wZXJ0eTFcIiwgdmFsdWVzKTtcblx0XHRcdGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoMSk7XG5cdFx0fSk7XG5cblx0XHRpdChcIkNoZWNrIGdldFZhbHVlRm9yTXVsdGlMZXZlbFBhdGggZm9yIG5vcm1hbCBwcm9wLlwiLCBvVGVzdFJlZmVyZW5jZXMsIGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IHZhbHVlczogb2JqZWN0ID0ge1xuXHRcdFx0XHRcIlByb3BlcnR5XCI6IDIsXG5cdFx0XHRcdFwiTmF2XCI6IHtcblx0XHRcdFx0XHRcIlByb3BlcnR5MVwiOiAxXG5cdFx0XHRcdH1cblx0XHRcdH07XG5cblx0XHRcdGNvbnN0IHJlc3VsdCA9IE1hc3NFZGl0SGVscGVyLmdldFZhbHVlRm9yTXVsdGlMZXZlbFBhdGgoXCJQcm9wZXJ0eVwiLCB2YWx1ZXMpO1xuXHRcdFx0ZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh1bmRlZmluZWQpO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcInNldFJ1bnRpbWVNb2RlbE9uRGlhbG9nXCIsICgpID0+IHtcblx0XHRjb25zdCBkZWZhdWx0VmFsdWVzOiBvYmplY3QgPSB7XG5cdFx0XHRcImtlZXBFeGlzdGluZ1ByZWZpeFwiOiBcIjwgS2VlcFwiLFxuXHRcdFx0XCJsZWF2ZUJsYW5rVmFsdWVcIjogXCI8IExlYXZlIEJsYW5rID5cIixcblx0XHRcdFwiY2xlYXJGaWVsZFZhbHVlXCI6IFwiPCBDbGVhciBWYWx1ZXMgPlwiLFxuXHRcdFx0XCJtYXNzRWRpdFRpdGxlXCI6IFwiTWFzcyBFZGl0ICgyKVwiLFxuXHRcdFx0XCJhcHBseUJ1dHRvblRleHRcIjogXCJTYXZlXCIsXG5cdFx0XHRcImNhbmNlbEJ1dHRvblRleHRcIjogXCJDYW5jZWxcIlxuXHRcdH07XG5cdFx0Y29uc3QgY29udGV4dHM6IEFycmF5PG9iamVjdD4gPSBbXG5cdFx0XHRuZXcgTW9ja0NvbnRleHQoe1xuXHRcdFx0XHRcIk1hdGVyaWFsXCI6IFwiMVwiLFxuXHRcdFx0XHRcIlJlcXVlc3RlZFF1YW50aXR5XCI6IDIsXG5cdFx0XHRcdFwiX01hdGVyaWFsXCI6IHtcblx0XHRcdFx0XHRcIl9NYXRlcmlhbEdyb3VwX01hdGVyaWFsR3JvdXBcIjogXCJHcnAxXCJcblx0XHRcdFx0fVxuXHRcdFx0fSksXG5cdFx0XHRuZXcgTW9ja0NvbnRleHQoe1xuXHRcdFx0XHRcIk1hdGVyaWFsXCI6IFwiMlwiLFxuXHRcdFx0XHRcIlJlcXVlc3RlZFF1YW50aXR5XCI6IDMsXG5cdFx0XHRcdFwiX01hdGVyaWFsXCI6IHtcblx0XHRcdFx0XHRcIl9NYXRlcmlhbEdyb3VwX01hdGVyaWFsR3JvdXBcIjogXCJHcnAyXCJcblx0XHRcdFx0fVxuXHRcdFx0fSksXG5cdFx0XHRuZXcgTW9ja0NvbnRleHQoe1xuXHRcdFx0XHRcIk1hdGVyaWFsXCI6IFwiMlwiLFxuXHRcdFx0XHRcIlJlcXVlc3RlZFF1YW50aXR5XCI6IDMsXG5cdFx0XHRcdFwiX01hdGVyaWFsXCI6IHtcblx0XHRcdFx0XHRcIl9NYXRlcmlhbEdyb3VwX01hdGVyaWFsR3JvdXBcIjogXCJHcnAzXCJcblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHRdO1xuXHRcdGNvbnN0IGRhdGFBcnJheTogQXJyYXk8b2JqZWN0PiA9IFtcblx0XHRcdHtcblx0XHRcdFx0XCJkYXRhUHJvcGVydHlcIjogXCJNYXRlcmlhbFwiLFxuXHRcdFx0XHRcInVuaXRQcm9wZXJ0eVwiOiBmYWxzZSxcblx0XHRcdFx0XCJpc0ZpZWxkUmVxdWlyZWRcIjogXCJ7PSV7ZmllbGRDb250cm9sVHlwZV9pdGVtfSA9PT0gN31cIixcblx0XHRcdFx0XCJlbnRpdHlTZXRcIjogXCIvU2FsZXNPcmRlck1hbmFnZS9fSXRlbVwiLFxuXHRcdFx0XHRcInRleHRCaW5kaW5nXCI6IHtcblx0XHRcdFx0XHRcInBhcmFtZXRlcnNcIjogW1xuXHRcdFx0XHRcdFx0eyBcIl90eXBlXCI6IFwiQ29uc3RhbnRcIiwgXCJ2YWx1ZVwiOiBcImZvcm1hdFdpdGhCcmFja2V0c1wiIH0sXG5cdFx0XHRcdFx0XHR7IFwiX3R5cGVcIjogXCJCaW5kaW5nXCIsIFwicGF0aFwiOiBcIl9NYXRlcmlhbC9NYXRlcmlhbF9UZXh0XCIgfSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJfdHlwZVwiOiBcIkJpbmRpbmdcIixcblx0XHRcdFx0XHRcdFx0XCJwYXRoXCI6IFwiTWF0ZXJpYWxcIixcblx0XHRcdFx0XHRcdFx0XCJ0eXBlXCI6IFwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuU3RyaW5nXCIsXG5cdFx0XHRcdFx0XHRcdFwiY29uc3RyYWludHNcIjogeyBcIm1heExlbmd0aFwiOiA0MCB9LFxuXHRcdFx0XHRcdFx0XHRcImZvcm1hdE9wdGlvbnNcIjogeyBcInBhcnNlS2VlcHNFbXB0eVN0cmluZ1wiOiB0cnVlIH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwiaXNQcm9wZXJ0eVJlYWRPbmx5XCI6IHtcblx0XHRcdFx0XHRcIm9wZXJhbmRzXCI6IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJfdHlwZVwiOiBcIkNvbXBhcmlzb25cIixcblx0XHRcdFx0XHRcdFx0XCJvcGVyYXRvclwiOiBcIj09PVwiLFxuXHRcdFx0XHRcdFx0XHRcIm9wZXJhbmQxXCI6IHsgXCJfdHlwZVwiOiBcIkJpbmRpbmdcIiwgXCJwYXRoXCI6IFwiZmllbGRDb250cm9sVHlwZV9pdGVtXCIgfSxcblx0XHRcdFx0XHRcdFx0XCJvcGVyYW5kMlwiOiB7IFwiX3R5cGVcIjogXCJDb25zdGFudFwiLCBcInZhbHVlXCI6IDEgfVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJfdHlwZVwiOiBcIkNvbXBhcmlzb25cIixcblx0XHRcdFx0XHRcdFx0XCJvcGVyYXRvclwiOiBcIj09PVwiLFxuXHRcdFx0XHRcdFx0XHRcIm9wZXJhbmQxXCI6IHsgXCJfdHlwZVwiOiBcIkJpbmRpbmdcIiwgXCJwYXRoXCI6IFwiZmllbGRDb250cm9sVHlwZV9pdGVtXCIgfSxcblx0XHRcdFx0XHRcdFx0XCJvcGVyYW5kMlwiOiB7IFwiX3R5cGVcIjogXCJDb25zdGFudFwiLCBcInZhbHVlXCI6IFwiMVwiIH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFwib3BlcmF0b3JcIjogXCJ8fFwiLFxuXHRcdFx0XHRcdFwiX3R5cGVcIjogXCJTZXRcIlxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRcImRhdGFQcm9wZXJ0eVwiOiBcIlJlcXVlc3RlZFF1YW50aXR5XCIsXG5cdFx0XHRcdFwidW5pdFByb3BlcnR5XCI6IFwiUmVxdWVzdGVkUXVhbnRpdHlVbml0XCIsXG5cdFx0XHRcdFwiaXNGaWVsZFJlcXVpcmVkXCI6IHRydWUsXG5cdFx0XHRcdFwiZW50aXR5U2V0XCI6IFwiL1NhbGVzT3JkZXJNYW5hZ2UvX0l0ZW1cIixcblx0XHRcdFx0XCJ0ZXh0QmluZGluZ1wiOiB7XG5cdFx0XHRcdFx0XCJwYXJhbWV0ZXJzXCI6IHt9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwiaXNQcm9wZXJ0eVJlYWRPbmx5XCI6IGZhbHNlXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRcImRhdGFQcm9wZXJ0eVwiOiBcIl9NYXRlcmlhbC9fTWF0ZXJpYWxHcm91cF9NYXRlcmlhbEdyb3VwXCIsXG5cdFx0XHRcdFwidW5pdFByb3BlcnR5XCI6IGZhbHNlLFxuXHRcdFx0XHRcImlzRmllbGRSZXF1aXJlZFwiOiBmYWxzZSxcblx0XHRcdFx0XCJlbnRpdHlTZXRcIjogXCIvU2FsZXNPcmRlck1hbmFnZS9fSXRlbVwiLFxuXHRcdFx0XHRcInRleHRCaW5kaW5nXCI6IHsgXCJfdHlwZVwiOiBcIkJpbmRpbmdcIiwgXCJwYXRoXCI6IFwiXCIgfSxcblx0XHRcdFx0XCJpc1Byb3BlcnR5UmVhZE9ubHlcIjogZmFsc2Vcblx0XHRcdH1cblx0XHRdO1xuXG5cdFx0YmVmb3JlQWxsKGFzeW5jICgpID0+IHtcblx0XHRcdGplc3Quc3B5T24oTWFzc0VkaXRIZWxwZXIsIFwiZ2V0VGV4dEFycmFuZ2VtZW50SW5mb1wiKS5tb2NrSW1wbGVtZW50YXRpb24oKHByb3BlcnR5LCBiaW5kaW5nLCBlbnRpdHlTZXQsIGNvbnRleHQpID0+XG5cdFx0XHRcdGNvbnRleHQuZ2V0T2JqZWN0KHByb3BlcnR5KVxuXHRcdFx0KTtcblx0XHR9KTtcblxuXHRcdGFmdGVyQWxsKGFzeW5jICgpID0+IHtcblx0XHRcdGplc3QucmVzdG9yZUFsbE1vY2tzKCk7XG5cdFx0fSk7XG5cblx0XHRpdChcIkNoZWNrIHNldFJ1bnRpbWVNb2RlbE9uRGlhbG9nIGlzIHdvcmtpbmcgY29ycmVjdGx5LlwiLCBvVGVzdFJlZmVyZW5jZXMsIGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IG9SdW50aW1lTW9kZWwgPSBNYXNzRWRpdEhlbHBlci5zZXRSdW50aW1lTW9kZWxPbkRpYWxvZyhjb250ZXh0cywgZGF0YUFycmF5LCBkZWZhdWx0VmFsdWVzKTtcblx0XHRcdGNvbnN0IG9SZXNwb25zZURhdGEgPSBvUnVudGltZU1vZGVsLmdldERhdGEoKTtcblx0XHRcdGNvbnN0IHNFeHBlY3RlZCA9XG5cdFx0XHRcdCd7XCJ2YWx1ZXNcIjpbXSxcInVuaXREYXRhXCI6W10sXCJyZXN1bHRzXCI6W10sXCJyZWFkYWJsZVByb3BlcnR5RGF0YVwiOlt7XCJwcm9wZXJ0eVwiOlwiTWF0ZXJpYWxcIixcInByb3BlcnR5UGF0aFwiOlwiZmllbGRDb250cm9sVHlwZV9pdGVtXCIsXCJwcm9wZXJ0eVZhbHVlXCI6MSxcInR5cGVcIjpcIlBhdGhcIn1dfSc7XG5cblx0XHRcdGV4cGVjdChvUmVzcG9uc2VEYXRhKS50b01hdGNoU25hcHNob3QoKTtcblxuXHRcdFx0ZXhwZWN0KEpTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKG9SZXNwb25zZURhdGEudmFsdWVzKSkpLnRvQmUoSlNPTi5zdHJpbmdpZnkoW1wiTWF0ZXJpYWxcIiwgXCJSZXF1ZXN0ZWRRdWFudGl0eVwiLCBcIl9NYXRlcmlhbFwiXSkpO1xuXHRcdFx0ZXhwZWN0KEpTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKG9SZXNwb25zZURhdGEudW5pdERhdGEpKSkudG9CZShKU09OLnN0cmluZ2lmeShbXCJSZXF1ZXN0ZWRRdWFudGl0eVVuaXRcIl0pKTtcblx0XHR9KTtcblx0fSk7XG5cblx0ZGVzY3JpYmUoXCJwcmVwYXJlRGF0YUZvckRpYWxvZ1wiLCAoKSA9PiB7XG5cdFx0Y29uc3Qgb1RhYmxlOiBvYmplY3QgPSB7fTtcblx0XHRjb25zdCBjb250ZXh0czogQXJyYXk8TW9ja0NvbnRleHQ+ID0gW1xuXHRcdFx0bmV3IE1vY2tDb250ZXh0KHtcblx0XHRcdFx0SUQ6IFwiMVwiLFxuXHRcdFx0XHRmaWVsZENvbnRyb2xUeXBlX2l0ZW06IDcsXG5cdFx0XHRcdE1hdGVyaWFsOiBcIk1BVDFcIixcblx0XHRcdFx0UmVxdWVzdGVkUXVhbnRpdHk6IDIsXG5cdFx0XHRcdFJlcXVlc3RlZFF1YW50aXR5VW5pdDogXCJQQ3NcIixcblx0XHRcdFx0aXNWZXJpZmllZDogdHJ1ZSxcblx0XHRcdFx0SGlkZGVuUHJvcDogXCJIaWRlXCIsXG5cdFx0XHRcdF9NYXRlcmlhbDoge1xuXHRcdFx0XHRcdE1hdGVyaWFsOiBcIk1BVDFcIixcblx0XHRcdFx0XHRNYXRlcmlhbF9UZXh0OiBcIk1hdGVyaWFsIDFcIixcblx0XHRcdFx0XHRfTWF0ZXJpYWxHcm91cDoge1xuXHRcdFx0XHRcdFx0TWF0ZXJpYWxHcm91cDogXCJHUlAxXCIsXG5cdFx0XHRcdFx0XHRNYXRlcmlhbEdyb3VwX1RleHQ6IFwiR3JvdXAgMVwiXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRfUmVxdWVzdGVkUXVhbnRpdHlVbml0OiB7XG5cdFx0XHRcdFx0VW5pdE9mTWVhc3VyZTogXCJFVVJcIixcblx0XHRcdFx0XHRVbml0T2ZNZWFzdXJlX1RleHQ6IFwiRXVyb1wiXG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFx0bmV3IE1vY2tDb250ZXh0KHtcblx0XHRcdFx0SUQ6IFwiMlwiLFxuXHRcdFx0XHRmaWVsZENvbnRyb2xUeXBlX2l0ZW06IDcsXG5cdFx0XHRcdE1hdGVyaWFsOiBcIk1BVDJcIixcblx0XHRcdFx0UmVxdWVzdGVkUXVhbnRpdHk6IDMsXG5cdFx0XHRcdFJlcXVlc3RlZFF1YW50aXR5VW5pdDogXCJWb2xcIixcblx0XHRcdFx0aXNWZXJpZmllZDogdHJ1ZSxcblx0XHRcdFx0SGlkZGVuUHJvcDogXCJIaWRlXCIsXG5cdFx0XHRcdF9NYXRlcmlhbDoge1xuXHRcdFx0XHRcdE1hdGVyaWFsOiBcIk1BVDJcIixcblx0XHRcdFx0XHRNYXRlcmlhbF9UZXh0OiBcIk1hdGVyaWFsIDJcIixcblx0XHRcdFx0XHRfTWF0ZXJpYWxHcm91cDoge1xuXHRcdFx0XHRcdFx0TWF0ZXJpYWxHcm91cDogXCJHUlAyXCIsXG5cdFx0XHRcdFx0XHRNYXRlcmlhbEdyb3VwX1RleHQ6IFwiR3JvdXAgMlwiXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRfUmVxdWVzdGVkUXVhbnRpdHlVbml0OiB7XG5cdFx0XHRcdFx0VW5pdE9mTWVhc3VyZTogXCJVU0RcIixcblx0XHRcdFx0XHRVbml0T2ZNZWFzdXJlX1RleHQ6IFwiVVMgRG9sbGFyXCJcblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHRdO1xuXHRcdGNvbnN0IHRhYmxlRmllbGRzOiBBcnJheTxvYmplY3Q+ID0gW1xuXHRcdFx0e1xuXHRcdFx0XHRcImRhdGFQcm9wZXJ0eVwiOiBcIklEXCIsXG5cdFx0XHRcdFwibGFiZWxcIjogXCJJRFwiLFxuXHRcdFx0XHRcImFubm90YXRpb25QYXRoXCI6IFwiL1NhbGVzT3JkZXJJdGVtL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbS8wXCIsXG5cdFx0XHRcdFwiaW5wdXRUeXBlXCI6IHVuZGVmaW5lZFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0XCJkYXRhUHJvcGVydHlcIjogXCJNYXRlcmlhbFwiLFxuXHRcdFx0XHRcImxhYmVsXCI6IFwiTWF0ZXJpYWxcIixcblx0XHRcdFx0XCJhbm5vdGF0aW9uUGF0aFwiOiBcIi9TYWxlc09yZGVySXRlbS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW0vMVwiLFxuXHRcdFx0XHRcImlucHV0VHlwZVwiOiBcInNhcC51aS5tZGMuRmllbGRcIlxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0XCJkYXRhUHJvcGVydHlcIjogXCJfTWF0ZXJpYWwvTWF0ZXJpYWxcIixcblx0XHRcdFx0XCJsYWJlbFwiOiBcIk1hdGVyaWFsXCIsXG5cdFx0XHRcdFwiYW5ub3RhdGlvblBhdGhcIjogXCIvU2FsZXNPcmRlckl0ZW0vQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtLzJcIixcblx0XHRcdFx0XCJpbnB1dFR5cGVcIjogdW5kZWZpbmVkXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRcImRhdGFQcm9wZXJ0eVwiOiBcIl9NYXRlcmlhbC9fTWF0ZXJpYWxHcm91cF9NYXRlcmlhbEdyb3VwXCIsXG5cdFx0XHRcdFwibGFiZWxcIjogXCJNYXRlcmlhbCBHcm91cFwiLFxuXHRcdFx0XHRcImFubm90YXRpb25QYXRoXCI6IFwiL1NhbGVzT3JkZXJJdGVtL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbS8zXCIsXG5cdFx0XHRcdFwiaW5wdXRUeXBlXCI6IFwic2FwLm0uSW5wdXRcIlxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0XCJkYXRhUHJvcGVydHlcIjogXCJIaWRkZW5Qcm9wXCIsXG5cdFx0XHRcdFwibGFiZWxcIjogXCJIaWRkZW4gUHJvcFwiLFxuXHRcdFx0XHRcImFubm90YXRpb25QYXRoXCI6IFwiL1NhbGVzT3JkZXJJdGVtL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbS80XCIsXG5cdFx0XHRcdFwiaW5wdXRUeXBlXCI6IFwic2FwLnVpLm1kYy5GaWVsZFwiXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRcImRhdGFQcm9wZXJ0eVwiOiBcImlzVmVyaWZpZWRcIixcblx0XHRcdFx0XCJsYWJlbFwiOiBcIlZlcmlmaWVkIE1hdGVyaWFsXCIsXG5cdFx0XHRcdFwiYW5ub3RhdGlvblBhdGhcIjogXCIvU2FsZXNPcmRlckl0ZW0vQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtLzVcIixcblx0XHRcdFx0XCJpbnB1dFR5cGVcIjogXCJzYXAubS5DaGVja0JveFwiXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRcImRhdGFQcm9wZXJ0eVwiOiBcIlJlcXVlc3RlZFF1YW50aXR5XCIsXG5cdFx0XHRcdFwibGFiZWxcIjogXCJSZXF1ZXN0ZWQgUXVhbnRpdHlcIixcblx0XHRcdFx0XCJhbm5vdGF0aW9uUGF0aFwiOiBcIi9TYWxlc09yZGVySXRlbS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW0vNlwiLFxuXHRcdFx0XHRcImlucHV0VHlwZVwiOiBcInNhcC51aS5tZGMuRmllbGRcIlxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0XCJkYXRhUHJvcGVydHlcIjogXCJEYXRhRmllbGRGb3JBY3Rpb246OmNvbS5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2QuRHVtbXlCb3VuZEFjdGlvblwiLFxuXHRcdFx0XHRcImxhYmVsXCI6IFwiQm91bmQgQWN0aW9uXCIsXG5cdFx0XHRcdFwiYW5ub3RhdGlvblBhdGhcIjogXCIvU2FsZXNPcmRlckl0ZW0vQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtLzdcIixcblx0XHRcdFx0XCJpbnB1dFR5cGVcIjogdW5kZWZpbmVkXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRcImRhdGFQcm9wZXJ0eVwiOiBcIkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbjo6U2FsZXNPcmRlcjo6bWFuYWdlSW5saW5lOjpSZXF1aXJlc0NvbnRleHRcIixcblx0XHRcdFx0XCJsYWJlbFwiOiBcIklCTlwiLFxuXHRcdFx0XHRcImFubm90YXRpb25QYXRoXCI6IFwiL1NhbGVzT3JkZXJJdGVtL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbS84XCIsXG5cdFx0XHRcdFwiaW5wdXRUeXBlXCI6IHVuZGVmaW5lZFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0XCJkYXRhUHJvcGVydHlcIjogXCJEYXRhRmllbGRGb3JBbm5vdGF0aW9uOjpDaGFydDo6UmFkaWFsQ2hhcnRcIixcblx0XHRcdFx0XCJsYWJlbFwiOiBcIk5ldCBBbW91bnRcIixcblx0XHRcdFx0XCJhbm5vdGF0aW9uUGF0aFwiOiBcIi9TYWxlc09yZGVySXRlbS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW0vOVwiLFxuXHRcdFx0XHRcImlucHV0VHlwZVwiOiB1bmRlZmluZWRcblx0XHRcdH1cblx0XHRdO1xuXHRcdGJlZm9yZUFsbChhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCBzTWV0YWRhdGFVcmwgPSBjb21waWxlQ0RTKHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi4vZGF0YVwiLCBcIk1hc3NFZGl0SGVscGVyLmNkc1wiKSk7XG5cdFx0XHRjb25zdCBtZXRhTW9kZWwgPSBhd2FpdCBnZXRNZXRhTW9kZWwoc01ldGFkYXRhVXJsKTtcblx0XHRcdGNvbnN0IG1vZGVsID0gbmV3IE1vY2tNb2RlbCgpO1xuXG5cdFx0XHRtb2RlbC5zZXRNZXRhTW9kZWwobWV0YU1vZGVsKTtcblx0XHRcdChvVGFibGUgYXMgYW55KS5nZXRNb2RlbCA9IGplc3QuZm4oKCkgPT4gbW9kZWwpO1xuXHRcdFx0KG9UYWJsZSBhcyBhbnkpLmRhdGEgPSBqZXN0LmZuKCgpID0+IFwiL1NhbGVzT3JkZXJJdGVtXCIpO1xuXG5cdFx0XHRqZXN0LnNweU9uKE1hc3NFZGl0SGVscGVyLCBcImdldFRhYmxlRmllbGRzXCIpLm1vY2tSZXR1cm5WYWx1ZSh0YWJsZUZpZWxkcyk7XG5cdFx0fSk7XG5cblx0XHRhZnRlckFsbChhc3luYyAoKSA9PiB7XG5cdFx0XHRqZXN0LnJlc3RvcmVBbGxNb2NrcygpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJDaGVjayBwcmVwYXJlRGF0YUZvckRpYWxvZyBpcyB3b3JraW5nIGNvcnJlY3RseS5cIiwgb1Rlc3RSZWZlcmVuY2VzLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCByZXN1bHQ6IEFycmF5PG9iamVjdD4gPSBbXTtcblx0XHRcdGNvbnN0IG9UZW1wbGF0ZU1vZGVsID0gTWFzc0VkaXRIZWxwZXIucHJlcGFyZURhdGFGb3JEaWFsb2cob1RhYmxlLCBjb250ZXh0cywgcmVzdWx0KTtcblx0XHRcdGNvbnN0IG9SZXNwb25zZURhdGEgPSBvVGVtcGxhdGVNb2RlbC5nZXREYXRhKCk7XG5cdFx0XHRleHBlY3Qob1Jlc3BvbnNlRGF0YSkudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0fSk7XG5cdH0pO1xufSk7XG4iXX0=
|
|
726
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1hc3NFZGl0SGVscGVyLnNwZWMudHMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJvVGVzdFJlZmVyZW5jZXMiLCJhZnRlckFsbCIsImplc3QiLCJyZXN0b3JlQWxsTW9ja3MiLCJpdCIsIm9EaWFsb2dEYXRhTW9kZWwiLCJKU09OTW9kZWwiLCJvRGlhbG9nUnVudGltZU1vZGVsIiwib0NvbnRyb2xsZXIiLCJNb2NrQ29udHJvbGxlciIsIm9Db250cm9sIiwiTW9ja0NvbnRyb2wiLCJvVGFibGUiLCJhQ29udGV4dHMiLCJzcHlPbiIsIk1hc3NFZGl0SGVscGVyIiwibW9ja1JldHVyblZhbHVlIiwiZm4iLCJYTUxQcmVwcm9jZXNzb3IiLCJGcmFnbWVudCIsIm1vY2tSZXNvbHZlZFZhbHVlIiwiY3JlYXRlRGlhbG9nIiwib1Jlc3BvbnNlIiwiZXhwZWN0IiwiaXNBIiwidG9CZVRydXRoeSIsIm1ldGFNb2RlbCIsImNvbnRleHQiLCJkaXNwbGF5TW9kZSIsInRleHRCaW5kaW5nIiwidGV4dFBhcmFtZXRlcnMiLCJiZWZvcmVBbGwiLCJtZXRhTW9kZWxDb250ZXh0IiwiTW9ja0NvbnRleHQiLCJkZWZhdWx0TW9kZWwiLCJNb2NrTW9kZWwiLCJNb2NrTWV0YU1vZGVsIiwic2V0TWV0YU1vZGVsIiwiQ29tbW9uVXRpbHMiLCJtb2NrSW1wbGVtZW50YXRpb24iLCJwYXRoIiwiYmVmb3JlRWFjaCIsImdldFRleHRBcnJhbmdlbWVudEluZm8iLCJnZXRPYmplY3QiLCJ0b0hhdmVCZWVuTGFzdENhbGxlZFdpdGgiLCJ0ZXh0QXJyYW5nZW1lbnQiLCJ0b0VxdWFsIiwidmFsdWVQYXRoIiwiZGVzY3JpcHRpb25QYXRoIiwidW5kZWZpbmVkIiwidmFsdWUiLCJkZXNjcmlwdGlvbiIsImZ1bGxUZXh0IiwicGFyYW1ldGVycyIsInByb3BlcnR5SW5mbyIsInZhbHVlcyIsImRlZmF1bHRWYWx1ZXMiLCJjb250ZXh0cyIsIm5vVmFsdWVDb250ZXh0cyIsImlzVW5pdCIsImRhdGFQcm9wZXJ0eSIsInNldERlZmF1bHRWYWx1ZXNUb0RpYWxvZyIsImFycmF5Q29udGFpbmluZyIsIm9iamVjdENvbnRhaW5pbmciLCJpc0ZpZWxkUmVxdWlyZWQiLCJpbnB1dFR5cGUiLCJjb250ZXh0c0hpZGRlbiIsInJlc3VsdCIsImdldEhpZGRlblZhbHVlRm9yQ29udGV4dHMiLCIkUGF0aCIsImdldERlZmF1bHRTZWxlY3Rpb25QYXRoQ29tYm9Cb3giLCJnZXRWYWx1ZUZvck11bHRpTGV2ZWxQYXRoIiwiZGF0YUFycmF5IiwicHJvcGVydHkiLCJiaW5kaW5nIiwiZW50aXR5U2V0Iiwib1J1bnRpbWVNb2RlbCIsInNldFJ1bnRpbWVNb2RlbE9uRGlhbG9nIiwib1Jlc3BvbnNlRGF0YSIsImdldERhdGEiLCJzRXhwZWN0ZWQiLCJ0b01hdGNoU25hcHNob3QiLCJKU09OIiwic3RyaW5naWZ5IiwiT2JqZWN0Iiwia2V5cyIsInRvQmUiLCJ1bml0RGF0YSIsIklEIiwiZmllbGRDb250cm9sVHlwZV9pdGVtIiwiTWF0ZXJpYWwiLCJSZXF1ZXN0ZWRRdWFudGl0eSIsIlJlcXVlc3RlZFF1YW50aXR5VW5pdCIsImlzVmVyaWZpZWQiLCJIaWRkZW5Qcm9wIiwiX01hdGVyaWFsIiwiTWF0ZXJpYWxfVGV4dCIsIl9NYXRlcmlhbEdyb3VwIiwiTWF0ZXJpYWxHcm91cCIsIk1hdGVyaWFsR3JvdXBfVGV4dCIsIl9SZXF1ZXN0ZWRRdWFudGl0eVVuaXQiLCJVbml0T2ZNZWFzdXJlIiwiVW5pdE9mTWVhc3VyZV9UZXh0IiwiRG9jdW1lbnREYXRlIiwiUmF0aW5nIiwidGFibGVGaWVsZHMiLCJzTWV0YWRhdGFVcmwiLCJjb21waWxlQ0RTIiwiam9pbiIsIl9fZGlybmFtZSIsImdldE1ldGFNb2RlbCIsIm1vZGVsIiwiZ2V0TW9kZWwiLCJkYXRhIiwib1RlbXBsYXRlTW9kZWwiLCJwcmVwYXJlRGF0YUZvckRpYWxvZyJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O0FBV0FBLEVBQUFBLFFBQVEs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IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCBNYXNzRWRpdEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9NYXNzRWRpdEhlbHBlclwiO1xuaW1wb3J0IENvbnRyb2xsZXIgZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBYTUxQcmVwcm9jZXNzb3IgZnJvbSBcInNhcC91aS9jb3JlL3V0aWwvWE1MUHJlcHJvY2Vzc29yXCI7XG5pbXBvcnQgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEZyYWdtZW50IGZyb20gXCJzYXAvdWkvY29yZS9GcmFnbWVudFwiO1xuaW1wb3J0IHsgTW9ja01vZGVsLCBNb2NrTWV0YU1vZGVsLCBNb2NrQ29udHJvbCwgTW9ja0NvbnRleHQsIE1vY2tDb250cm9sbGVyIH0gZnJvbSBcInNhcC9mZS90ZXN0L1VJNU1vY2tIZWxwZXJcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB7IGNvbXBpbGVDRFMsIGdldE1ldGFNb2RlbCB9IGZyb20gXCJzYXAvZmUvdGVzdC9KZXN0VGVtcGxhdGluZ0hlbHBlclwiO1xuaW1wb3J0IE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5pbXBvcnQgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5cbmRlc2NyaWJlKFwiTWFzc0VkaXRIZWxwZXJcIiwgZnVuY3Rpb24oKSB7XG5cdGNvbnN0IG9UZXN0UmVmZXJlbmNlcyA9IHtcblx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0e1xuXHRcdFx0XHRcInR5cGVcIjogXCJKSVJBXCIsXG5cdFx0XHRcdFwiSURcIjogXCJGSU9SSVRFQ0hQMS0xOTQxNVwiXG5cdFx0XHR9XG5cdFx0XVxuXHR9O1xuXG5cdGRlc2NyaWJlKFwiY3JlYXRlRGlhbG9nXCIsICgpID0+IHtcblx0XHRhZnRlckFsbChhc3luYyAoKSA9PiB7XG5cdFx0XHRqZXN0LnJlc3RvcmVBbGxNb2NrcygpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJDaGVjayBjcmVhdGVEaWFsb2cgaXMgd29ya2luZyBjb3JyZWN0bHkuXCIsIG9UZXN0UmVmZXJlbmNlcywgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3Qgb0RpYWxvZ0RhdGFNb2RlbDogSlNPTk1vZGVsID0gbmV3IEpTT05Nb2RlbCh7fSk7XG5cdFx0XHRjb25zdCBvRGlhbG9nUnVudGltZU1vZGVsOiBKU09OTW9kZWwgPSBuZXcgSlNPTk1vZGVsKHt9KTtcblx0XHRcdGNvbnN0IG9Db250cm9sbGVyOiBNb2NrQ29udHJvbGxlciA9IG5ldyBNb2NrQ29udHJvbGxlcigpO1xuXHRcdFx0Y29uc3Qgb0NvbnRyb2w6IGFueSA9IG5ldyBNb2NrQ29udHJvbCgpO1xuXHRcdFx0Y29uc3Qgb1RhYmxlOiBhbnkgPSB7fTtcblx0XHRcdGNvbnN0IGFDb250ZXh0czogQXJyYXk8b2JqZWN0PiA9IFtdO1xuXG5cdFx0XHRqZXN0LnNweU9uKE1hc3NFZGl0SGVscGVyLCBcImdldERlZmF1bHRUZXh0c0ZvckRpYWxvZ1wiKS5tb2NrUmV0dXJuVmFsdWUoamVzdC5mbigpIGFzIGFueSk7XG5cdFx0XHRqZXN0LnNweU9uKE1hc3NFZGl0SGVscGVyLCBcInByZXBhcmVEYXRhRm9yRGlhbG9nXCIpLm1vY2tSZXR1cm5WYWx1ZShvRGlhbG9nRGF0YU1vZGVsKTtcblx0XHRcdGplc3Quc3B5T24oTWFzc0VkaXRIZWxwZXIsIFwic2V0UnVudGltZU1vZGVsT25EaWFsb2dcIikubW9ja1JldHVyblZhbHVlKG9EaWFsb2dSdW50aW1lTW9kZWwpO1xuXHRcdFx0amVzdC5zcHlPbihYTUxQcmVwcm9jZXNzb3IsIFwicHJvY2Vzc1wiKS5tb2NrUmV0dXJuVmFsdWUoXCJGcmFnbWVudFwiKTtcblx0XHRcdGplc3Quc3B5T24oRnJhZ21lbnQsIFwibG9hZFwiKS5tb2NrUmVzb2x2ZWRWYWx1ZShvQ29udHJvbCBhcyBDb250cm9sKTtcblxuXHRcdFx0Y29uc3Qgb1Jlc3BvbnNlID0gYXdhaXQgTWFzc0VkaXRIZWxwZXIuY3JlYXRlRGlhbG9nKG9UYWJsZSwgYUNvbnRleHRzLCAob0NvbnRyb2xsZXIgYXMgYW55KSBhcyBQYWdlQ29udHJvbGxlcik7XG5cdFx0XHRleHBlY3Qob1Jlc3BvbnNlLmlzQShcInNhcC5tLkRpYWxvZ1wiKSkudG9CZVRydXRoeSgpO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcImdldFRleHRBcnJhbmdlbWVudEluZm9cIiwgKCkgPT4ge1xuXHRcdGxldCBtZXRhTW9kZWwhOiBNb2NrTWV0YU1vZGVsO1xuXHRcdGxldCBjb250ZXh0ITogTW9ja0NvbnRleHQ7XG5cdFx0bGV0IGRpc3BsYXlNb2RlOiBzdHJpbmcgPSBcIlwiO1xuXHRcdGxldCB0ZXh0QmluZGluZyE6IG9iamVjdDtcblx0XHRsZXQgdGV4dFBhcmFtZXRlcnMhOiBBcnJheTxvYmplY3Q+O1xuXG5cdFx0YmVmb3JlQWxsKGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IG1ldGFNb2RlbENvbnRleHQ6IE1vY2tDb250ZXh0ID0gbmV3IE1vY2tDb250ZXh0KHt9KTtcblx0XHRcdGNvbnN0IGRlZmF1bHRNb2RlbDogTW9ja01vZGVsID0gbmV3IE1vY2tNb2RlbCgpO1xuXG5cdFx0XHRtZXRhTW9kZWwgPSBuZXcgTW9ja01ldGFNb2RlbChtZXRhTW9kZWxDb250ZXh0KTtcblx0XHRcdGRlZmF1bHRNb2RlbC5zZXRNZXRhTW9kZWwobWV0YU1vZGVsKTtcblx0XHRcdGNvbnRleHQgPSBuZXcgTW9ja0NvbnRleHQoe1xuXHRcdFx0XHRcIlByb3BlcnR5XCI6IFwiQ29kZVwiLFxuXHRcdFx0XHRcIkRlc2NcIjogXCJUZXh0XCJcblx0XHRcdH0pO1xuXG5cdFx0XHRqZXN0LnNweU9uKENvbW1vblV0aWxzLCBcImNvbXB1dGVEaXNwbGF5TW9kZVwiKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gZGlzcGxheU1vZGUgYXMgYW55KTtcblx0XHRcdGplc3Quc3B5T24oY29udGV4dCwgXCJnZXRNb2RlbFwiKS5tb2NrUmV0dXJuVmFsdWUoKGRlZmF1bHRNb2RlbCBhcyBhbnkpIGFzIE9EYXRhTW9kZWwpO1xuXG5cdFx0XHR0ZXh0UGFyYW1ldGVycyA9IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHBhdGg6IFwiUHJvcGVydHlcIlxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0cGF0aDogXCJEZXNjXCJcblx0XHRcdFx0fVxuXHRcdFx0XTtcblx0XHR9KTtcblxuXHRcdGJlZm9yZUVhY2goYXN5bmMgKCkgPT4ge1xuXHRcdFx0dGV4dEJpbmRpbmcgPSB7fTtcblx0XHR9KTtcblxuXHRcdGFmdGVyQWxsKGFzeW5jICgpID0+IHtcblx0XHRcdGplc3QucmVzdG9yZUFsbE1vY2tzKCk7XG5cdFx0fSk7XG5cblx0XHRpdChcIkNoZWNrIGdldFRleHRBcnJhbmdlbWVudEluZm8gd2l0aCB0ZXh0IHBhdGggYW5kIGRpc3BsYXlNb2RlIGFzICdEZXNjcmlwdGlvbicuXCIsIG9UZXN0UmVmZXJlbmNlcywgYXN5bmMgKCkgPT4ge1xuXHRcdFx0KHRleHRCaW5kaW5nIGFzIGFueSkucGF0aCA9IFwiRGVzY1wiO1xuXHRcdFx0ZGlzcGxheU1vZGUgPSBcIkRlc2NyaXB0aW9uXCI7XG5cblx0XHRcdGNvbnN0IG9SZXNwb25zZSA9IE1hc3NFZGl0SGVscGVyLmdldFRleHRBcnJhbmdlbWVudEluZm8oXCJQcm9wZXJ0eVwiLCB0ZXh0QmluZGluZywgXCIvRW50aXR5U2V0XCIsIGNvbnRleHQpIGFzIGFueTtcblxuXHRcdFx0ZXhwZWN0KG1ldGFNb2RlbC5nZXRPYmplY3QpLnRvSGF2ZUJlZW5MYXN0Q2FsbGVkV2l0aChcIi9FbnRpdHlTZXQvUHJvcGVydHlAXCIpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZS50ZXh0QXJyYW5nZW1lbnQpLnRvRXF1YWwoZGlzcGxheU1vZGUpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZS52YWx1ZVBhdGgpLnRvRXF1YWwoXCJQcm9wZXJ0eVwiKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UuZGVzY3JpcHRpb25QYXRoKS50b0VxdWFsKHVuZGVmaW5lZCk7XG5cdFx0XHRleHBlY3Qob1Jlc3BvbnNlLnZhbHVlKS50b0VxdWFsKFwiQ29kZVwiKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UuZGVzY3JpcHRpb24pLnRvRXF1YWwoXCJUZXh0XCIpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZS5mdWxsVGV4dCkudG9FcXVhbChcIlRleHRcIik7XG5cdFx0fSk7XG5cblx0XHRpdChcIkNoZWNrIGdldFRleHRBcnJhbmdlbWVudEluZm8gd2l0aCB0ZXh0IHBhdGggYW5kIGRpc3BsYXlNb2RlIGFzICdWYWx1ZScuXCIsIG9UZXN0UmVmZXJlbmNlcywgYXN5bmMgKCkgPT4ge1xuXHRcdFx0KHRleHRCaW5kaW5nIGFzIGFueSkucGF0aCA9IFwiRGVzY1wiO1xuXHRcdFx0ZGlzcGxheU1vZGUgPSBcIlZhbHVlXCI7XG5cblx0XHRcdGNvbnN0IG9SZXNwb25zZSA9IE1hc3NFZGl0SGVscGVyLmdldFRleHRBcnJhbmdlbWVudEluZm8oXCJQcm9wZXJ0eVwiLCB0ZXh0QmluZGluZywgXCIvRW50aXR5U2V0XCIsIGNvbnRleHQpIGFzIGFueTtcblxuXHRcdFx0ZXhwZWN0KG1ldGFNb2RlbC5nZXRPYmplY3QpLnRvSGF2ZUJlZW5MYXN0Q2FsbGVkV2l0aChcIi9FbnRpdHlTZXQvUHJvcGVydHlAXCIpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZS50ZXh0QXJyYW5nZW1lbnQpLnRvRXF1YWwoZGlzcGxheU1vZGUpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZS52YWx1ZVBhdGgpLnRvRXF1YWwoXCJQcm9wZXJ0eVwiKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UuZGVzY3JpcHRpb25QYXRoKS50b0VxdWFsKHVuZGVmaW5lZCk7XG5cdFx0XHRleHBlY3Qob1Jlc3BvbnNlLnZhbHVlKS50b0VxdWFsKFwiQ29kZVwiKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UuZGVzY3JpcHRpb24pLnRvRXF1YWwodW5kZWZpbmVkKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UuZnVsbFRleHQpLnRvRXF1YWwoXCJDb2RlXCIpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJDaGVjayBnZXRUZXh0QXJyYW5nZW1lbnRJbmZvIHdpdGggdGV4dCBwYXJhbWV0ZXJzIGFuZCBkaXNwbGF5TW9kZSBhcyAnRGVzY3JpcHRpb25WYWx1ZScuXCIsIG9UZXN0UmVmZXJlbmNlcywgYXN5bmMgKCkgPT4ge1xuXHRcdFx0KHRleHRCaW5kaW5nIGFzIGFueSkucGFyYW1ldGVycyA9IHRleHRQYXJhbWV0ZXJzO1xuXHRcdFx0ZGlzcGxheU1vZGUgPSBcIkRlc2NyaXB0aW9uVmFsdWVcIjtcblxuXHRcdFx0Y29uc3Qgb1Jlc3BvbnNlID0gTWFzc0VkaXRIZWxwZXIuZ2V0VGV4dEFycmFuZ2VtZW50SW5mbyhcIlByb3BlcnR5XCIsIHRleHRCaW5kaW5nLCBcIi9FbnRpdHlTZXRcIiwgY29udGV4dCkgYXMgYW55O1xuXG5cdFx0XHRleHBlY3QobWV0YU1vZGVsLmdldE9iamVjdCkudG9IYXZlQmVlbkxhc3RDYWxsZWRXaXRoKFwiL0VudGl0eVNldC9Qcm9wZXJ0eUBcIik7XG5cdFx0XHRleHBlY3Qob1Jlc3BvbnNlLnRleHRBcnJhbmdlbWVudCkudG9FcXVhbChkaXNwbGF5TW9kZSk7XG5cdFx0XHRleHBlY3Qob1Jlc3BvbnNlLnZhbHVlUGF0aCkudG9FcXVhbChcIlByb3BlcnR5XCIpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZS5kZXNjcmlwdGlvblBhdGgpLnRvRXF1YWwoXCJEZXNjXCIpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZS52YWx1ZSkudG9FcXVhbChcIkNvZGVcIik7XG5cdFx0XHRleHBlY3Qob1Jlc3BvbnNlLmRlc2NyaXB0aW9uKS50b0VxdWFsKFwiVGV4dFwiKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UuZnVsbFRleHQpLnRvRXF1YWwoXCJUZXh0IChDb2RlKVwiKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiQ2hlY2sgZ2V0VGV4dEFycmFuZ2VtZW50SW5mbyB3aXRoIHRleHQgcGFyYW1ldGVycyBhbmQgZGlzcGxheU1vZGUgYXMgJ1ZhbHVlRGVzY3JpcHRpb24nLlwiLCBvVGVzdFJlZmVyZW5jZXMsIGFzeW5jICgpID0+IHtcblx0XHRcdCh0ZXh0QmluZGluZyBhcyBhbnkpLnBhcmFtZXRlcnMgPSB0ZXh0UGFyYW1ldGVycztcblx0XHRcdGRpc3BsYXlNb2RlID0gXCJWYWx1ZURlc2NyaXB0aW9uXCI7XG5cblx0XHRcdGNvbnN0IG9SZXNwb25zZSA9IE1hc3NFZGl0SGVscGVyLmdldFRleHRBcnJhbmdlbWVudEluZm8oXCJQcm9wZXJ0eVwiLCB0ZXh0QmluZGluZywgXCIvRW50aXR5U2V0XCIsIGNvbnRleHQpIGFzIGFueTtcblxuXHRcdFx0ZXhwZWN0KG1ldGFNb2RlbC5nZXRPYmplY3QpLnRvSGF2ZUJlZW5MYXN0Q2FsbGVkV2l0aChcIi9FbnRpdHlTZXQvUHJvcGVydHlAXCIpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZS50ZXh0QXJyYW5nZW1lbnQpLnRvRXF1YWwoZGlzcGxheU1vZGUpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZS52YWx1ZVBhdGgpLnRvRXF1YWwoXCJQcm9wZXJ0eVwiKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UuZGVzY3JpcHRpb25QYXRoKS50b0VxdWFsKFwiRGVzY1wiKTtcblx0XHRcdGV4cGVjdChvUmVzcG9uc2UudmFsdWUpLnRvRXF1YWwoXCJDb2RlXCIpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZS5kZXNjcmlwdGlvbikudG9FcXVhbChcIlRleHRcIik7XG5cdFx0XHRleHBlY3Qob1Jlc3BvbnNlLmZ1bGxUZXh0KS50b0VxdWFsKFwiQ29kZSAoVGV4dClcIik7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwic2V0RGVmYXVsdFZhbHVlc1RvRGlhbG9nXCIsICgpID0+IHtcblx0XHRsZXQgcHJvcGVydHlJbmZvOiBvYmplY3QgPSB7fTtcblx0XHRsZXQgdmFsdWVzOiBBcnJheTxvYmplY3Q+ID0gW107XG5cdFx0bGV0IGRlZmF1bHRWYWx1ZXM6IG9iamVjdDtcblx0XHRsZXQgY29udGV4dHM6IEFycmF5PG9iamVjdD4gPSBbXTtcblx0XHRsZXQgbm9WYWx1ZUNvbnRleHRzOiBBcnJheTxvYmplY3Q+ID0gW107XG5cdFx0bGV0IGlzVW5pdDogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdFx0YmVmb3JlQWxsKGFzeW5jICgpID0+IHtcblx0XHRcdGRlZmF1bHRWYWx1ZXMgPSB7XG5cdFx0XHRcdFwia2VlcEV4aXN0aW5nUHJlZml4XCI6IFwiPCBLZWVwXCIsXG5cdFx0XHRcdFwibGVhdmVCbGFua1ZhbHVlXCI6IFwiPCBMZWF2ZSBCbGFuayA+XCIsXG5cdFx0XHRcdFwiY2xlYXJGaWVsZFZhbHVlXCI6IFwiPCBDbGVhciBWYWx1ZXMgPlwiLFxuXHRcdFx0XHRcIm1hc3NFZGl0VGl0bGVcIjogXCJNYXNzIEVkaXQgKDIpXCIsXG5cdFx0XHRcdFwiYXBwbHlCdXR0b25UZXh0XCI6IFwiU2F2ZVwiLFxuXHRcdFx0XHRcImNhbmNlbEJ1dHRvblRleHRcIjogXCJDYW5jZWxcIlxuXHRcdFx0fTtcblx0XHRcdGNvbnRleHRzID0gW1xuXHRcdFx0XHRuZXcgTW9ja0NvbnRleHQoe1xuXHRcdFx0XHRcdFwiQWdlbmN5SURcIjogXCIxXCJcblx0XHRcdFx0fSksXG5cdFx0XHRcdG5ldyBNb2NrQ29udGV4dCh7XG5cdFx0XHRcdFx0XCJBZ2VuY3lJRFwiOiBcIjJcIlxuXHRcdFx0XHR9KVxuXHRcdFx0XTtcblx0XHRcdG5vVmFsdWVDb250ZXh0cyA9IFtcblx0XHRcdFx0bmV3IE1vY2tDb250ZXh0KHtcblx0XHRcdFx0XHRcIkFnZW5jeUlEXCI6IHVuZGVmaW5lZFxuXHRcdFx0XHR9KSxcblx0XHRcdFx0bmV3IE1vY2tDb250ZXh0KHtcblx0XHRcdFx0XHRcIkFnZW5jeUlEXCI6IFwiXCJcblx0XHRcdFx0fSlcblx0XHRcdF07XG5cdFx0fSk7XG5cblx0XHRiZWZvcmVFYWNoKGFzeW5jICgpID0+IHtcblx0XHRcdHByb3BlcnR5SW5mbyA9IHtcblx0XHRcdFx0ZGF0YVByb3BlcnR5OiBcIkFnZW5jeUlEXCJcblx0XHRcdH07XG5cdFx0XHR2YWx1ZXMgPSBbXTtcblx0XHRcdGlzVW5pdCA9IGZhbHNlO1xuXHRcdH0pO1xuXG5cdFx0YWZ0ZXJBbGwoYXN5bmMgKCkgPT4ge1xuXHRcdFx0amVzdC5yZXN0b3JlQWxsTW9ja3MoKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiQ2hlY2sgc2V0RGVmYXVsdFZhbHVlc1RvRGlhbG9nIHdpdGggcHJvcGVydHkgYW5kIG5vIHZhbHVlLlwiLCBvVGVzdFJlZmVyZW5jZXMsIGFzeW5jICgpID0+IHtcblx0XHRcdE1hc3NFZGl0SGVscGVyLnNldERlZmF1bHRWYWx1ZXNUb0RpYWxvZyh2YWx1ZXMsIGNvbnRleHRzLCBkZWZhdWx0VmFsdWVzLCBwcm9wZXJ0eUluZm8sIGlzVW5pdCk7XG5cdFx0XHRleHBlY3QodmFsdWVzKS50b0VxdWFsKFxuXHRcdFx0XHRleHBlY3QuYXJyYXlDb250YWluaW5nKFtleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7IFwia2V5XCI6IFwiRGVmYXVsdC9BZ2VuY3lJRFwiLCBcInRleHRcIjogXCI8IEtlZXAgVmFsdWVzID5cIiB9KV0pXG5cdFx0XHQpO1xuXHRcdFx0ZXhwZWN0KHZhbHVlcykudG9FcXVhbChcblx0XHRcdFx0ZXhwZWN0LmFycmF5Q29udGFpbmluZyhbZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoeyBcImtleVwiOiBcIkNsZWFyRmllbGRWYWx1ZS9BZ2VuY3lJRFwiLCBcInRleHRcIjogXCI8IENsZWFyIFZhbHVlcyA+XCIgfSldKVxuXHRcdFx0KTtcblx0XHR9KTtcblxuXHRcdGl0KFwiQ2hlY2sgc2V0RGVmYXVsdFZhbHVlc1RvRGlhbG9nIHdpdGggcmVxdWlyZWQgcHJvcGVydHkgYW5kIHZhbHVlLlwiLCBvVGVzdFJlZmVyZW5jZXMsIGFzeW5jICgpID0+IHtcblx0XHRcdChwcm9wZXJ0eUluZm8gYXMgYW55KS5pc0ZpZWxkUmVxdWlyZWQgPSB0cnVlO1xuXHRcdFx0TWFzc0VkaXRIZWxwZXIuc2V0RGVmYXVsdFZhbHVlc1RvRGlhbG9nKHZhbHVlcywgY29udGV4dHMsIGRlZmF1bHRWYWx1ZXMsIHByb3BlcnR5SW5mbywgaXNVbml0KTtcblx0XHRcdGV4cGVjdCh2YWx1ZXMpLnRvRXF1YWwoXG5cdFx0XHRcdGV4cGVjdC5hcnJheUNvbnRhaW5pbmcoW2V4cGVjdC5vYmplY3RDb250YWluaW5nKHsgXCJrZXlcIjogXCJEZWZhdWx0L0FnZW5jeUlEXCIsIFwidGV4dFwiOiBcIjwgS2VlcCBWYWx1ZXMgPlwiIH0pXSlcblx0XHRcdCk7XG5cdFx0fSk7XG5cblx0XHRpdChcIkNoZWNrIHNldERlZmF1bHRWYWx1ZXNUb0RpYWxvZyB3aXRoIHVuaXQgcHJvcGVydHkgYW5kIHZhbHVlLlwiLCBvVGVzdFJlZmVyZW5jZXMsIGFzeW5jICgpID0+IHtcblx0XHRcdGlzVW5pdCA9IHRydWU7XG5cdFx0XHRNYXNzRWRpdEhlbHBlci5zZXREZWZhdWx0VmFsdWVzVG9EaWFsb2codmFsdWVzLCBjb250ZXh0cywgZGVmYXVsdFZhbHVlcywgcHJvcGVydHlJbmZvLCBpc1VuaXQpO1xuXHRcdFx0ZXhwZWN0KHZhbHVlcykudG9FcXVhbChcblx0XHRcdFx0ZXhwZWN0LmFycmF5Q29udGFpbmluZyhbZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoeyBcImtleVwiOiBcIkRlZmF1bHQvQWdlbmN5SURcIiwgXCJ0ZXh0XCI6IFwiPCBLZWVwIFZhbHVlcyA+XCIgfSldKVxuXHRcdFx0KTtcblx0XHR9KTtcblxuXHRcdGl0KFwiQ2hlY2sgc2V0RGVmYXVsdFZhbHVlc1RvRGlhbG9nIHdpdGggcHJvcGVydHkgYW5kIG5vIHZhbHVlLlwiLCBvVGVzdFJlZmVyZW5jZXMsIGFzeW5jICgpID0+IHtcblx0XHRcdChwcm9wZXJ0eUluZm8gYXMgYW55KS5pc0ZpZWxkUmVxdWlyZWQgPSB0cnVlO1xuXHRcdFx0TWFzc0VkaXRIZWxwZXIuc2V0RGVmYXVsdFZhbHVlc1RvRGlhbG9nKHZhbHVlcywgbm9WYWx1ZUNvbnRleHRzLCBkZWZhdWx0VmFsdWVzLCBwcm9wZXJ0eUluZm8sIGlzVW5pdCk7XG5cdFx0XHRleHBlY3QodmFsdWVzKS50b0VxdWFsKFxuXHRcdFx0XHRleHBlY3QuYXJyYXlDb250YWluaW5nKFtleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7IFwia2V5XCI6IFwiRGVmYXVsdC9BZ2VuY3lJRFwiLCBcInRleHRcIjogXCI8IEtlZXAgVmFsdWVzID5cIiB9KV0pXG5cdFx0XHQpO1xuXHRcdFx0ZXhwZWN0KHZhbHVlcykudG9FcXVhbChcblx0XHRcdFx0ZXhwZWN0LmFycmF5Q29udGFpbmluZyhbZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoeyBcImtleVwiOiBcIkVtcHR5L0FnZW5jeUlEXCIsIFwidGV4dFwiOiBcIjwgTGVhdmUgQmxhbmsgPlwiIH0pXSlcblx0XHRcdCk7XG5cdFx0fSk7XG5cblx0XHRpdChcIkNoZWNrIHNldERlZmF1bHRWYWx1ZXNUb0RpYWxvZyB3aXRoIHByb3BlcnR5IGFuZCB2YWx1ZS5cIiwgb1Rlc3RSZWZlcmVuY2VzLCBhc3luYyAoKSA9PiB7XG5cdFx0XHQocHJvcGVydHlJbmZvIGFzIGFueSkuaW5wdXRUeXBlID0gXCJzYXAubS5EYXRlUGlja2VyXCI7XG5cdFx0XHRNYXNzRWRpdEhlbHBlci5zZXREZWZhdWx0VmFsdWVzVG9EaWFsb2codmFsdWVzLCBjb250ZXh0cywgZGVmYXVsdFZhbHVlcywgcHJvcGVydHlJbmZvLCBpc1VuaXQpO1xuXHRcdFx0ZXhwZWN0KHZhbHVlcykudG9FcXVhbChcblx0XHRcdFx0ZXhwZWN0LmFycmF5Q29udGFpbmluZyhbZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoeyBcImtleVwiOiBcIkRlZmF1bHQvQWdlbmN5SURcIiwgXCJ0ZXh0XCI6IFwiPCBLZWVwIERhdGVzID5cIiB9KV0pXG5cdFx0XHQpO1xuXHRcdFx0ZXhwZWN0KHZhbHVlcykudG9FcXVhbChcblx0XHRcdFx0ZXhwZWN0LmFycmF5Q29udGFpbmluZyhbZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoeyBcImtleVwiOiBcIkNsZWFyRmllbGRWYWx1ZS9BZ2VuY3lJRFwiLCBcInRleHRcIjogXCI8IENsZWFyIFZhbHVlcyA+XCIgfSldKVxuXHRcdFx0KTtcblx0XHR9KTtcblxuXHRcdGl0KFwiQ2hlY2sgc2V0RGVmYXVsdFZhbHVlc1RvRGlhbG9nIHdpdGggcHJvcGVydHkgYW5kIHZhbHVlLlwiLCBvVGVzdFJlZmVyZW5jZXMsIGFzeW5jICgpID0+IHtcblx0XHRcdChwcm9wZXJ0eUluZm8gYXMgYW55KS5pbnB1dFR5cGUgPSBcInNhcC5tLkNoZWNrQm94XCI7XG5cdFx0XHRNYXNzRWRpdEhlbHBlci5zZXREZWZhdWx0VmFsdWVzVG9EaWFsb2codmFsdWVzLCBjb250ZXh0cywgZGVmYXVsdFZhbHVlcywgcHJvcGVydHlJbmZvLCBpc1VuaXQpO1xuXHRcdFx0ZXhwZWN0KHZhbHVlcykudG9FcXVhbChcblx0XHRcdFx0ZXhwZWN0LmFycmF5Q29udGFpbmluZyhbZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoeyBcImtleVwiOiBcIkRlZmF1bHQvQWdlbmN5SURcIiwgXCJ0ZXh0XCI6IFwiPCBLZWVwIFNldHRpbmdzID5cIiB9KV0pXG5cdFx0XHQpO1xuXHRcdFx0ZXhwZWN0KHZhbHVlcykudG9FcXVhbChcblx0XHRcdFx0ZXhwZWN0LmFycmF5Q29udGFpbmluZyhbZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoeyBcImtleVwiOiBcIkNsZWFyRmllbGRWYWx1ZS9BZ2VuY3lJRFwiLCBcInRleHRcIjogXCI8IENsZWFyIFZhbHVlcyA+XCIgfSldKVxuXHRcdFx0KTtcblx0XHR9KTtcblx0fSk7XG5cblx0ZGVzY3JpYmUoXCJnZXRIaWRkZW5WYWx1ZUZvckNvbnRleHRzXCIsICgpID0+IHtcblx0XHRsZXQgY29udGV4dHM6IEFycmF5PG9iamVjdD4gPSBbXTtcblx0XHRsZXQgY29udGV4dHNIaWRkZW46IEFycmF5PG9iamVjdD4gPSBbXTtcblxuXHRcdGJlZm9yZUFsbChhc3luYyAoKSA9PiB7XG5cdFx0XHRjb250ZXh0cyA9IFtcblx0XHRcdFx0bmV3IE1vY2tDb250ZXh0KHtcblx0XHRcdFx0XHRcIkhpZGRlblByb3BcIjogZmFsc2Vcblx0XHRcdFx0fSksXG5cdFx0XHRcdG5ldyBNb2NrQ29udGV4dCh7XG5cdFx0XHRcdFx0XCJIaWRkZW5Qcm9wXCI6IHRydWVcblx0XHRcdFx0fSlcblx0XHRcdF07XG5cblx0XHRcdGNvbnRleHRzSGlkZGVuID0gW1xuXHRcdFx0XHRuZXcgTW9ja0NvbnRleHQoe1xuXHRcdFx0XHRcdFwiSGlkZGVuUHJvcFwiOiB0cnVlXG5cdFx0XHRcdH0pLFxuXHRcdFx0XHRuZXcgTW9ja0NvbnRleHQoe1xuXHRcdFx0XHRcdFwiSGlkZGVuUHJvcFwiOiB0cnVlXG5cdFx0XHRcdH0pXG5cdFx0XHRdO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJDaGVjayBnZXRIaWRkZW5WYWx1ZUZvckNvbnRleHRzIGZvciBzdGF0aWMgdHJ1ZS5cIiwgb1Rlc3RSZWZlcmVuY2VzLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBNYXNzRWRpdEhlbHBlci5nZXRIaWRkZW5WYWx1ZUZvckNvbnRleHRzKHRydWUsIGNvbnRleHRzKTtcblx0XHRcdGV4cGVjdChyZXN1bHQpLnRvRXF1YWwodHJ1ZSk7XG5cdFx0fSk7XG5cblx0XHRpdChcIkNoZWNrIGdldEhpZGRlblZhbHVlRm9yQ29udGV4dHMgZm9yIHN0YXRpYyBmYWxzZS5cIiwgb1Rlc3RSZWZlcmVuY2VzLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBNYXNzRWRpdEhlbHBlci5nZXRIaWRkZW5WYWx1ZUZvckNvbnRleHRzKGZhbHNlLCBjb250ZXh0cyk7XG5cdFx0XHRleHBlY3QocmVzdWx0KS50b0VxdWFsKGZhbHNlKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiQ2hlY2sgZ2V0SGlkZGVuVmFsdWVGb3JDb250ZXh0cyBmb3IgcGF0aCBmYWxzZS5cIiwgb1Rlc3RSZWZlcmVuY2VzLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBNYXNzRWRpdEhlbHBlci5nZXRIaWRkZW5WYWx1ZUZvckNvbnRleHRzKHsgJFBhdGg6IFwiSGlkZGVuUHJvcFwiIH0sIGNvbnRleHRzKTtcblx0XHRcdGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZmFsc2UpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJDaGVjayBnZXRIaWRkZW5WYWx1ZUZvckNvbnRleHRzIGZvciBwYXRoIHRydWUuXCIsIG9UZXN0UmVmZXJlbmNlcywgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gTWFzc0VkaXRIZWxwZXIuZ2V0SGlkZGVuVmFsdWVGb3JDb250ZXh0cyh7ICRQYXRoOiBcIkhpZGRlblByb3BcIiB9LCBjb250ZXh0c0hpZGRlbik7XG5cdFx0XHRleHBlY3QocmVzdWx0KS50b0VxdWFsKHRydWUpO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcImdldERlZmF1bHRTZWxlY3Rpb25QYXRoQ29tYm9Cb3hcIiwgKCkgPT4ge1xuXHRcdGl0KFwiQ2hlY2sgZ2V0RGVmYXVsdFNlbGVjdGlvblBhdGhDb21ib0JveCBmb3IgbXVsdGlwbGUgdW5pcXVlLlwiLCBvVGVzdFJlZmVyZW5jZXMsIGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IGNvbnRleHRzOiBBcnJheTxvYmplY3Q+ID0gW1xuXHRcdFx0XHRuZXcgTW9ja0NvbnRleHQoe1xuXHRcdFx0XHRcdFwiUHJvcGVydHlcIjogMVxuXHRcdFx0XHR9KSxcblx0XHRcdFx0bmV3IE1vY2tDb250ZXh0KHtcblx0XHRcdFx0XHRcIlByb3BlcnR5XCI6IDJcblx0XHRcdFx0fSlcblx0XHRcdF07XG5cblx0XHRcdGNvbnN0IHJlc3VsdCA9IE1hc3NFZGl0SGVscGVyLmdldERlZmF1bHRTZWxlY3Rpb25QYXRoQ29tYm9Cb3goY29udGV4dHMsIFwiUHJvcGVydHlcIik7XG5cdFx0XHRleHBlY3QocmVzdWx0KS50b0VxdWFsKFwiRGVmYXVsdC9Qcm9wZXJ0eVwiKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiQ2hlY2sgZ2V0RGVmYXVsdFNlbGVjdGlvblBhdGhDb21ib0JveCBmb3Igc2luZ2xlIHVuaXF1ZS5cIiwgb1Rlc3RSZWZlcmVuY2VzLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCBjb250ZXh0czogQXJyYXk8b2JqZWN0PiA9IFtcblx0XHRcdFx0bmV3IE1vY2tDb250ZXh0KHtcblx0XHRcdFx0XHRcIlByb3BlcnR5XCI6IDFcblx0XHRcdFx0fSksXG5cdFx0XHRcdG5ldyBNb2NrQ29udGV4dCh7XG5cdFx0XHRcdFx0XCJQcm9wZXJ0eVwiOiAxXG5cdFx0XHRcdH0pXG5cdFx0XHRdO1xuXG5cdFx0XHRjb25zdCByZXN1bHQgPSBNYXNzRWRpdEhlbHBlci5nZXREZWZhdWx0U2VsZWN0aW9uUGF0aENvbWJvQm94KGNvbnRleHRzLCBcIlByb3BlcnR5XCIpO1xuXHRcdFx0ZXhwZWN0KHJlc3VsdCkudG9FcXVhbChcIlByb3BlcnR5XCIpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJDaGVjayBnZXREZWZhdWx0U2VsZWN0aW9uUGF0aENvbWJvQm94IGZvciBubyB1bmlxdWUuXCIsIG9UZXN0UmVmZXJlbmNlcywgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgY29udGV4dHM6IEFycmF5PG9iamVjdD4gPSBbXG5cdFx0XHRcdG5ldyBNb2NrQ29udGV4dCh7XG5cdFx0XHRcdFx0XCJQcm9wZXJ0eVwiOiB1bmRlZmluZWRcblx0XHRcdFx0fSksXG5cdFx0XHRcdG5ldyBNb2NrQ29udGV4dCh7XG5cdFx0XHRcdFx0XCJQcm9wZXJ0eVwiOiB1bmRlZmluZWRcblx0XHRcdFx0fSlcblx0XHRcdF07XG5cblx0XHRcdGNvbnN0IHJlc3VsdCA9IE1hc3NFZGl0SGVscGVyLmdldERlZmF1bHRTZWxlY3Rpb25QYXRoQ29tYm9Cb3goY29udGV4dHMsIFwiUHJvcGVydHlcIik7XG5cdFx0XHRleHBlY3QocmVzdWx0KS50b0VxdWFsKFwiRW1wdHkvUHJvcGVydHlcIik7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiZ2V0VmFsdWVGb3JNdWx0aUxldmVsUGF0aFwiLCAoKSA9PiB7XG5cdFx0aXQoXCJDaGVjayBnZXRWYWx1ZUZvck11bHRpTGV2ZWxQYXRoIGZvciBuYXYgcHJvcC5cIiwgb1Rlc3RSZWZlcmVuY2VzLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCB2YWx1ZXM6IG9iamVjdCA9IHtcblx0XHRcdFx0XCJQcm9wZXJ0eVwiOiAyLFxuXHRcdFx0XHRcIk5hdlwiOiB7XG5cdFx0XHRcdFx0XCJQcm9wZXJ0eTFcIjogMVxuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXG5cdFx0XHRjb25zdCByZXN1bHQgPSBNYXNzRWRpdEhlbHBlci5nZXRWYWx1ZUZvck11bHRpTGV2ZWxQYXRoKFwiTmF2L1Byb3BlcnR5MVwiLCB2YWx1ZXMpO1xuXHRcdFx0ZXhwZWN0KHJlc3VsdCkudG9FcXVhbCgxKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiQ2hlY2sgZ2V0VmFsdWVGb3JNdWx0aUxldmVsUGF0aCBmb3Igbm9ybWFsIHByb3AuXCIsIG9UZXN0UmVmZXJlbmNlcywgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgdmFsdWVzOiBvYmplY3QgPSB7XG5cdFx0XHRcdFwiUHJvcGVydHlcIjogMixcblx0XHRcdFx0XCJOYXZcIjoge1xuXHRcdFx0XHRcdFwiUHJvcGVydHkxXCI6IDFcblx0XHRcdFx0fVxuXHRcdFx0fTtcblxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gTWFzc0VkaXRIZWxwZXIuZ2V0VmFsdWVGb3JNdWx0aUxldmVsUGF0aChcIlByb3BlcnR5XCIsIHZhbHVlcyk7XG5cdFx0XHRleHBlY3QocmVzdWx0KS50b0VxdWFsKHVuZGVmaW5lZCk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwic2V0UnVudGltZU1vZGVsT25EaWFsb2dcIiwgKCkgPT4ge1xuXHRcdGNvbnN0IGRlZmF1bHRWYWx1ZXM6IG9iamVjdCA9IHtcblx0XHRcdFwia2VlcEV4aXN0aW5nUHJlZml4XCI6IFwiPCBLZWVwXCIsXG5cdFx0XHRcImxlYXZlQmxhbmtWYWx1ZVwiOiBcIjwgTGVhdmUgQmxhbmsgPlwiLFxuXHRcdFx0XCJjbGVhckZpZWxkVmFsdWVcIjogXCI8IENsZWFyIFZhbHVlcyA+XCIsXG5cdFx0XHRcIm1hc3NFZGl0VGl0bGVcIjogXCJNYXNzIEVkaXQgKDIpXCIsXG5cdFx0XHRcImFwcGx5QnV0dG9uVGV4dFwiOiBcIlNhdmVcIixcblx0XHRcdFwiY2FuY2VsQnV0dG9uVGV4dFwiOiBcIkNhbmNlbFwiXG5cdFx0fTtcblx0XHRjb25zdCBjb250ZXh0czogQXJyYXk8b2JqZWN0PiA9IFtcblx0XHRcdG5ldyBNb2NrQ29udGV4dCh7XG5cdFx0XHRcdFwiTWF0ZXJpYWxcIjogXCIxXCIsXG5cdFx0XHRcdFwiUmVxdWVzdGVkUXVhbnRpdHlcIjogMixcblx0XHRcdFx0XCJfTWF0ZXJpYWxcIjoge1xuXHRcdFx0XHRcdFwiX01hdGVyaWFsR3JvdXBfTWF0ZXJpYWxHcm91cFwiOiBcIkdycDFcIlxuXHRcdFx0XHR9XG5cdFx0XHR9KSxcblx0XHRcdG5ldyBNb2NrQ29udGV4dCh7XG5cdFx0XHRcdFwiTWF0ZXJpYWxcIjogXCIyXCIsXG5cdFx0XHRcdFwiUmVxdWVzdGVkUXVhbnRpdHlcIjogMyxcblx0XHRcdFx0XCJfTWF0ZXJpYWxcIjoge1xuXHRcdFx0XHRcdFwiX01hdGVyaWFsR3JvdXBfTWF0ZXJpYWxHcm91cFwiOiBcIkdycDJcIlxuXHRcdFx0XHR9XG5cdFx0XHR9KSxcblx0XHRcdG5ldyBNb2NrQ29udGV4dCh7XG5cdFx0XHRcdFwiTWF0ZXJpYWxcIjogXCIyXCIsXG5cdFx0XHRcdFwiUmVxdWVzdGVkUXVhbnRpdHlcIjogMyxcblx0XHRcdFx0XCJfTWF0ZXJpYWxcIjoge1xuXHRcdFx0XHRcdFwiX01hdGVyaWFsR3JvdXBfTWF0ZXJpYWxHcm91cFwiOiBcIkdycDNcIlxuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdF07XG5cdFx0Y29uc3QgZGF0YUFycmF5OiBBcnJheTxvYmplY3Q+ID0gW1xuXHRcdFx0e1xuXHRcdFx0XHRcImRhdGFQcm9wZXJ0eVwiOiBcIk1hdGVyaWFsXCIsXG5cdFx0XHRcdFwidW5pdFByb3BlcnR5XCI6IGZhbHNlLFxuXHRcdFx0XHRcImlzRmllbGRSZXF1aXJlZFwiOiBcIns9JXtmaWVsZENvbnRyb2xUeXBlX2l0ZW19ID09PSA3fVwiLFxuXHRcdFx0XHRcImVudGl0eVNldFwiOiBcIi9TYWxlc09yZGVyTWFuYWdlL19JdGVtXCIsXG5cdFx0XHRcdFwidGV4dEJpbmRpbmdcIjoge1xuXHRcdFx0XHRcdFwicGFyYW1ldGVyc1wiOiBbXG5cdFx0XHRcdFx0XHR7IFwiX3R5cGVcIjogXCJDb25zdGFudFwiLCBcInZhbHVlXCI6IFwiZm9ybWF0V2l0aEJyYWNrZXRzXCIgfSxcblx0XHRcdFx0XHRcdHsgXCJfdHlwZVwiOiBcIkJpbmRpbmdcIiwgXCJwYXRoXCI6IFwiX01hdGVyaWFsL01hdGVyaWFsX1RleHRcIiB9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcIl90eXBlXCI6IFwiQmluZGluZ1wiLFxuXHRcdFx0XHRcdFx0XHRcInBhdGhcIjogXCJNYXRlcmlhbFwiLFxuXHRcdFx0XHRcdFx0XHRcInR5cGVcIjogXCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5TdHJpbmdcIixcblx0XHRcdFx0XHRcdFx0XCJjb25zdHJhaW50c1wiOiB7IFwibWF4TGVuZ3RoXCI6IDQwIH0sXG5cdFx0XHRcdFx0XHRcdFwiZm9ybWF0T3B0aW9uc1wiOiB7IFwicGFyc2VLZWVwc0VtcHR5U3RyaW5nXCI6IHRydWUgfVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF1cblx0XHRcdFx0fSxcblx0XHRcdFx0XCJpc1Byb3BlcnR5UmVhZE9ubHlcIjoge1xuXHRcdFx0XHRcdFwib3BlcmFuZHNcIjogW1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcIl90eXBlXCI6IFwiQ29tcGFyaXNvblwiLFxuXHRcdFx0XHRcdFx0XHRcIm9wZXJhdG9yXCI6IFwiPT09XCIsXG5cdFx0XHRcdFx0XHRcdFwib3BlcmFuZDFcIjogeyBcIl90eXBlXCI6IFwiQmluZGluZ1wiLCBcInBhdGhcIjogXCJmaWVsZENvbnRyb2xUeXBlX2l0ZW1cIiB9LFxuXHRcdFx0XHRcdFx0XHRcIm9wZXJhbmQyXCI6IHsgXCJfdHlwZVwiOiBcIkNvbnN0YW50XCIsIFwidmFsdWVcIjogMSB9XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcIl90eXBlXCI6IFwiQ29tcGFyaXNvblwiLFxuXHRcdFx0XHRcdFx0XHRcIm9wZXJhdG9yXCI6IFwiPT09XCIsXG5cdFx0XHRcdFx0XHRcdFwib3BlcmFuZDFcIjogeyBcIl90eXBlXCI6IFwiQmluZGluZ1wiLCBcInBhdGhcIjogXCJmaWVsZENvbnRyb2xUeXBlX2l0ZW1cIiB9LFxuXHRcdFx0XHRcdFx0XHRcIm9wZXJhbmQyXCI6IHsgXCJfdHlwZVwiOiBcIkNvbnN0YW50XCIsIFwidmFsdWVcIjogXCIxXCIgfVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XCJvcGVyYXRvclwiOiBcInx8XCIsXG5cdFx0XHRcdFx0XCJfdHlwZVwiOiBcIlNldFwiXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdFwiZGF0YVByb3BlcnR5XCI6IFwiUmVxdWVzdGVkUXVhbnRpdHlcIixcblx0XHRcdFx0XCJ1bml0UHJvcGVydHlcIjogXCJSZXF1ZXN0ZWRRdWFudGl0eVVuaXRcIixcblx0XHRcdFx0XCJpc0ZpZWxkUmVxdWlyZWRcIjogdHJ1ZSxcblx0XHRcdFx0XCJlbnRpdHlTZXRcIjogXCIvU2FsZXNPcmRlck1hbmFnZS9fSXRlbVwiLFxuXHRcdFx0XHRcInRleHRCaW5kaW5nXCI6IHtcblx0XHRcdFx0XHRcInBhcmFtZXRlcnNcIjoge31cblx0XHRcdFx0fSxcblx0XHRcdFx0XCJpc1Byb3BlcnR5UmVhZE9ubHlcIjogZmFsc2Vcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdFwiZGF0YVByb3BlcnR5XCI6IFwiX01hdGVyaWFsL19NYXRlcmlhbEdyb3VwX01hdGVyaWFsR3JvdXBcIixcblx0XHRcdFx0XCJ1bml0UHJvcGVydHlcIjogZmFsc2UsXG5cdFx0XHRcdFwiaXNGaWVsZFJlcXVpcmVkXCI6IGZhbHNlLFxuXHRcdFx0XHRcImVudGl0eVNldFwiOiBcIi9TYWxlc09yZGVyTWFuYWdlL19JdGVtXCIsXG5cdFx0XHRcdFwidGV4dEJpbmRpbmdcIjogeyBcIl90eXBlXCI6IFwiQmluZGluZ1wiLCBcInBhdGhcIjogXCJcIiB9LFxuXHRcdFx0XHRcImlzUHJvcGVydHlSZWFkT25seVwiOiBmYWxzZVxuXHRcdFx0fVxuXHRcdF07XG5cblx0XHRiZWZvcmVBbGwoYXN5bmMgKCkgPT4ge1xuXHRcdFx0amVzdC5zcHlPbihNYXNzRWRpdEhlbHBlciwgXCJnZXRUZXh0QXJyYW5nZW1lbnRJbmZvXCIpLm1vY2tJbXBsZW1lbnRhdGlvbigocHJvcGVydHksIGJpbmRpbmcsIGVudGl0eVNldCwgY29udGV4dCkgPT5cblx0XHRcdFx0Y29udGV4dC5nZXRPYmplY3QocHJvcGVydHkpXG5cdFx0XHQpO1xuXHRcdH0pO1xuXG5cdFx0YWZ0ZXJBbGwoYXN5bmMgKCkgPT4ge1xuXHRcdFx0amVzdC5yZXN0b3JlQWxsTW9ja3MoKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiQ2hlY2sgc2V0UnVudGltZU1vZGVsT25EaWFsb2cgaXMgd29ya2luZyBjb3JyZWN0bHkuXCIsIG9UZXN0UmVmZXJlbmNlcywgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3Qgb1J1bnRpbWVNb2RlbCA9IE1hc3NFZGl0SGVscGVyLnNldFJ1bnRpbWVNb2RlbE9uRGlhbG9nKGNvbnRleHRzLCBkYXRhQXJyYXksIGRlZmF1bHRWYWx1ZXMpO1xuXHRcdFx0Y29uc3Qgb1Jlc3BvbnNlRGF0YSA9IG9SdW50aW1lTW9kZWwuZ2V0RGF0YSgpO1xuXHRcdFx0Y29uc3Qgc0V4cGVjdGVkID1cblx0XHRcdFx0J3tcInZhbHVlc1wiOltdLFwidW5pdERhdGFcIjpbXSxcInJlc3VsdHNcIjpbXSxcInJlYWRhYmxlUHJvcGVydHlEYXRhXCI6W3tcInByb3BlcnR5XCI6XCJNYXRlcmlhbFwiLFwicHJvcGVydHlQYXRoXCI6XCJmaWVsZENvbnRyb2xUeXBlX2l0ZW1cIixcInByb3BlcnR5VmFsdWVcIjoxLFwidHlwZVwiOlwiUGF0aFwifV19JztcblxuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZURhdGEpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXG5cdFx0XHRleHBlY3QoSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmtleXMob1Jlc3BvbnNlRGF0YS52YWx1ZXMpKSkudG9CZShKU09OLnN0cmluZ2lmeShbXCJNYXRlcmlhbFwiLCBcIlJlcXVlc3RlZFF1YW50aXR5XCIsIFwiX01hdGVyaWFsXCJdKSk7XG5cdFx0XHRleHBlY3QoSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmtleXMob1Jlc3BvbnNlRGF0YS51bml0RGF0YSkpKS50b0JlKEpTT04uc3RyaW5naWZ5KFtcIlJlcXVlc3RlZFF1YW50aXR5VW5pdFwiXSkpO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcInByZXBhcmVEYXRhRm9yRGlhbG9nXCIsICgpID0+IHtcblx0XHRjb25zdCBvVGFibGU6IGFueSA9IHt9O1xuXHRcdGNvbnN0IGNvbnRleHRzOiBBcnJheTxNb2NrQ29udGV4dD4gPSBbXG5cdFx0XHRuZXcgTW9ja0NvbnRleHQoe1xuXHRcdFx0XHRJRDogXCIxXCIsXG5cdFx0XHRcdGZpZWxkQ29udHJvbFR5cGVfaXRlbTogNyxcblx0XHRcdFx0TWF0ZXJpYWw6IFwiTUFUMVwiLFxuXHRcdFx0XHRSZXF1ZXN0ZWRRdWFudGl0eTogMixcblx0XHRcdFx0UmVxdWVzdGVkUXVhbnRpdHlVbml0OiBcIlBDc1wiLFxuXHRcdFx0XHRpc1ZlcmlmaWVkOiB0cnVlLFxuXHRcdFx0XHRIaWRkZW5Qcm9wOiBcIkhpZGVcIixcblx0XHRcdFx0X01hdGVyaWFsOiB7XG5cdFx0XHRcdFx0TWF0ZXJpYWw6IFwiTUFUMVwiLFxuXHRcdFx0XHRcdE1hdGVyaWFsX1RleHQ6IFwiTWF0ZXJpYWwgMVwiLFxuXHRcdFx0XHRcdF9NYXRlcmlhbEdyb3VwOiB7XG5cdFx0XHRcdFx0XHRNYXRlcmlhbEdyb3VwOiBcIkdSUDFcIixcblx0XHRcdFx0XHRcdE1hdGVyaWFsR3JvdXBfVGV4dDogXCJHcm91cCAxXCJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdF9SZXF1ZXN0ZWRRdWFudGl0eVVuaXQ6IHtcblx0XHRcdFx0XHRVbml0T2ZNZWFzdXJlOiBcIkVVUlwiLFxuXHRcdFx0XHRcdFVuaXRPZk1lYXN1cmVfVGV4dDogXCJFdXJvXCJcblx0XHRcdFx0fSxcblx0XHRcdFx0RG9jdW1lbnREYXRlOiBcIjIwLTEyLTIwMjJcIixcblx0XHRcdFx0UmF0aW5nOiA0XG5cdFx0XHR9KSxcblx0XHRcdG5ldyBNb2NrQ29udGV4dCh7XG5cdFx0XHRcdElEOiBcIjJcIixcblx0XHRcdFx0ZmllbGRDb250cm9sVHlwZV9pdGVtOiA3LFxuXHRcdFx0XHRNYXRlcmlhbDogXCJNQVQyXCIsXG5cdFx0XHRcdFJlcXVlc3RlZFF1YW50aXR5OiAzLFxuXHRcdFx0XHRSZXF1ZXN0ZWRRdWFudGl0eVVuaXQ6IFwiVm9sXCIsXG5cdFx0XHRcdGlzVmVyaWZpZWQ6IHRydWUsXG5cdFx0XHRcdEhpZGRlblByb3A6IFwiSGlkZVwiLFxuXHRcdFx0XHRfTWF0ZXJpYWw6IHtcblx0XHRcdFx0XHRNYXRlcmlhbDogXCJNQVQyXCIsXG5cdFx0XHRcdFx0TWF0ZXJpYWxfVGV4dDogXCJNYXRlcmlhbCAyXCIsXG5cdFx0XHRcdFx0X01hdGVyaWFsR3JvdXA6IHtcblx0XHRcdFx0XHRcdE1hdGVyaWFsR3JvdXA6IFwiR1JQMlwiLFxuXHRcdFx0XHRcdFx0TWF0ZXJpYWxHcm91cF9UZXh0OiBcIkdyb3VwIDJcIlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0X1JlcXVlc3RlZFF1YW50aXR5VW5pdDoge1xuXHRcdFx0XHRcdFVuaXRPZk1lYXN1cmU6IFwiVVNEXCIsXG5cdFx0XHRcdFx0VW5pdE9mTWVhc3VyZV9UZXh0OiBcIlVTIERvbGxhclwiXG5cdFx0XHRcdH0sXG5cdFx0XHRcdERvY3VtZW50RGF0ZTogXCIyMC0xMi0yMDIyXCIsXG5cdFx0XHRcdFJhdGluZzogNVxuXHRcdFx0fSlcblx0XHRdO1xuXHRcdGNvbnN0IHRhYmxlRmllbGRzOiBBcnJheTxvYmplY3Q+ID0gW1xuXHRcdFx0e1xuXHRcdFx0XHRcImRhdGFQcm9wZXJ0eVwiOiBcIklEXCIsXG5cdFx0XHRcdFwibGFiZWxcIjogXCJJRFwiLFxuXHRcdFx0XHRcImFubm90YXRpb25QYXRoXCI6IFwiL1NhbGVzT3JkZXJJdGVtL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbS8wXCIsXG5cdFx0XHRcdFwiaW5wdXRUeXBlXCI6IHVuZGVmaW5lZFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0XCJkYXRhUHJvcGVydHlcIjogXCJNYXRlcmlhbFwiLFxuXHRcdFx0XHRcImxhYmVsXCI6IFwiTWF0ZXJpYWxcIixcblx0XHRcdFx0XCJhbm5vdGF0aW9uUGF0aFwiOiBcIi9TYWxlc09yZGVySXRlbS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW0vMVwiLFxuXHRcdFx0XHRcImlucHV0VHlwZVwiOiBcInNhcC51aS5tZGMuRmllbGRcIlxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0XCJkYXRhUHJvcGVydHlcIjogXCJfTWF0ZXJpYWwvTWF0ZXJpYWxcIixcblx0XHRcdFx0XCJsYWJlbFwiOiBcIk1hdGVyaWFsXCIsXG5cdFx0XHRcdFwiYW5ub3RhdGlvblBhdGhcIjogXCIvU2FsZXNPcmRlckl0ZW0vQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtLzJcIixcblx0XHRcdFx0XCJpbnB1dFR5cGVcIjogdW5kZWZpbmVkXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRcImRhdGFQcm9wZXJ0eVwiOiBcIl9NYXRlcmlhbC9fTWF0ZXJpYWxHcm91cF9NYXRlcmlhbEdyb3VwXCIsXG5cdFx0XHRcdFwibGFiZWxcIjogXCJNYXRlcmlhbCBHcm91cFwiLFxuXHRcdFx0XHRcImFubm90YXRpb25QYXRoXCI6IFwiL1NhbGVzT3JkZXJJdGVtL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbS8zXCIsXG5cdFx0XHRcdFwiaW5wdXRUeXBlXCI6IFwic2FwLm0uSW5wdXRcIlxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0XCJkYXRhUHJvcGVydHlcIjogXCJIaWRkZW5Qcm9wXCIsXG5cdFx0XHRcdFwibGFiZWxcIjogXCJIaWRkZW4gUHJvcFwiLFxuXHRcdFx0XHRcImFubm90YXRpb25QYXRoXCI6IFwiL1NhbGVzT3JkZXJJdGVtL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbS80XCIsXG5cdFx0XHRcdFwiaW5wdXRUeXBlXCI6IFwic2FwLnVpLm1kYy5GaWVsZFwiXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRcImRhdGFQcm9wZXJ0eVwiOiBcImlzVmVyaWZpZWRcIixcblx0XHRcdFx0XCJsYWJlbFwiOiBcIlZlcmlmaWVkIE1hdGVyaWFsXCIsXG5cdFx0XHRcdFwiYW5ub3RhdGlvblBhdGhcIjogXCIvU2FsZXNPcmRlckl0ZW0vQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtLzVcIixcblx0XHRcdFx0XCJpbnB1dFR5cGVcIjogXCJzYXAubS5DaGVja0JveFwiXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRcImRhdGFQcm9wZXJ0eVwiOiBcIlJlcXVlc3RlZFF1YW50aXR5XCIsXG5cdFx0XHRcdFwibGFiZWxcIjogXCJSZXF1ZXN0ZWQgUXVhbnRpdHlcIixcblx0XHRcdFx0XCJhbm5vdGF0aW9uUGF0aFwiOiBcIi9TYWxlc09yZGVySXRlbS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW0vNlwiLFxuXHRcdFx0XHRcImlucHV0VHlwZVwiOiBcInNhcC51aS5tZGMuRmllbGRcIlxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0XCJkYXRhUHJvcGVydHlcIjogXCJEYXRhRmllbGRGb3JBY3Rpb246OmNvbS5jX3NhbGVzb3JkZXJtYW5hZ2Vfc2QuRHVtbXlCb3VuZEFjdGlvblwiLFxuXHRcdFx0XHRcImxhYmVsXCI6IFwiQm91bmQgQWN0aW9uXCIsXG5cdFx0XHRcdFwiYW5ub3RhdGlvblBhdGhcIjogXCIvU2FsZXNPcmRlckl0ZW0vQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtLzdcIixcblx0XHRcdFx0XCJpbnB1dFR5cGVcIjogdW5kZWZpbmVkXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRcImRhdGFQcm9wZXJ0eVwiOiBcIkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbjo6U2FsZXNPcmRlcjo6bWFuYWdlSW5saW5lOjpSZXF1aXJlc0NvbnRleHRcIixcblx0XHRcdFx0XCJsYWJlbFwiOiBcIklCTlwiLFxuXHRcdFx0XHRcImFubm90YXRpb25QYXRoXCI6IFwiL1NhbGVzT3JkZXJJdGVtL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbS84XCIsXG5cdFx0XHRcdFwiaW5wdXRUeXBlXCI6IHVuZGVmaW5lZFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0XCJkYXRhUHJvcGVydHlcIjogXCJEYXRhRmllbGRGb3JBbm5vdGF0aW9uOjpDaGFydDo6UmFkaWFsQ2hhcnRcIixcblx0XHRcdFx0XCJsYWJlbFwiOiBcIk5ldCBBbW91bnRcIixcblx0XHRcdFx0XCJhbm5vdGF0aW9uUGF0aFwiOiBcIi9TYWxlc09yZGVySXRlbS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW0vOVwiLFxuXHRcdFx0XHRcImlucHV0VHlwZVwiOiB1bmRlZmluZWRcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdFwiZGF0YVByb3BlcnR5XCI6IFwiRG9jdW1lbnREYXRlXCIsXG5cdFx0XHRcdFwibGFiZWxcIjogXCJEb2N1bWVudCBEYXRlXCIsXG5cdFx0XHRcdFwiYW5ub3RhdGlvblBhdGhcIjogXCIvU2FsZXNPcmRlckl0ZW0vQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtLzEwXCIsXG5cdFx0XHRcdFwiaW5wdXRUeXBlXCI6IFwic2FwLnVpLm1kYy5GaWVsZFwiXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRcImRhdGFQcm9wZXJ0eVwiOiBcIlJhdGluZ1wiLFxuXHRcdFx0XHRcImxhYmVsXCI6IFwiUmF0aW5nIEluZGljYXRvclwiLFxuXHRcdFx0XHRcImFubm90YXRpb25QYXRoXCI6IFwiL1NhbGVzT3JkZXJJdGVtL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbS8xMVwiLFxuXHRcdFx0XHRcImlucHV0VHlwZVwiOiBcInNhcC5tLlJhdGluZ0luZGljYXRvclwiXG5cdFx0XHR9XG5cdFx0XTtcblx0XHRiZWZvcmVBbGwoYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3Qgc01ldGFkYXRhVXJsID0gY29tcGlsZUNEUyhwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uL2RhdGFcIiwgXCJNYXNzRWRpdEhlbHBlci5jZHNcIikpO1xuXHRcdFx0Y29uc3QgbWV0YU1vZGVsID0gYXdhaXQgZ2V0TWV0YU1vZGVsKHNNZXRhZGF0YVVybCk7XG5cdFx0XHRjb25zdCBtb2RlbCA9IG5ldyBNb2NrTW9kZWwoKTtcblxuXHRcdFx0bW9kZWwuc2V0TWV0YU1vZGVsKG1ldGFNb2RlbCk7XG5cdFx0XHQob1RhYmxlIGFzIGFueSkuZ2V0TW9kZWwgPSBqZXN0LmZuKCgpID0+IG1vZGVsKTtcblx0XHRcdChvVGFibGUgYXMgYW55KS5kYXRhID0gamVzdC5mbigoKSA9PiBcIi9TYWxlc09yZGVySXRlbVwiKTtcblxuXHRcdFx0amVzdC5zcHlPbihNYXNzRWRpdEhlbHBlciwgXCJnZXRUYWJsZUZpZWxkc1wiKS5tb2NrUmV0dXJuVmFsdWUodGFibGVGaWVsZHMpO1xuXHRcdH0pO1xuXG5cdFx0YWZ0ZXJBbGwoYXN5bmMgKCkgPT4ge1xuXHRcdFx0amVzdC5yZXN0b3JlQWxsTW9ja3MoKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiQ2hlY2sgcHJlcGFyZURhdGFGb3JEaWFsb2cgaXMgd29ya2luZyBjb3JyZWN0bHkuXCIsIG9UZXN0UmVmZXJlbmNlcywgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgcmVzdWx0OiBBcnJheTxvYmplY3Q+ID0gW107XG5cdFx0XHRjb25zdCBvVGVtcGxhdGVNb2RlbCA9IE1hc3NFZGl0SGVscGVyLnByZXBhcmVEYXRhRm9yRGlhbG9nKG9UYWJsZSwgY29udGV4dHMsIHJlc3VsdCk7XG5cdFx0XHRjb25zdCBvUmVzcG9uc2VEYXRhID0gb1RlbXBsYXRlTW9kZWwuZ2V0RGF0YSgpO1xuXHRcdFx0ZXhwZWN0KG9SZXNwb25zZURhdGEpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdH0pO1xuXHR9KTtcbn0pO1xuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import path from "path";
|
|
2
|
-
import
|
|
2
|
+
import MassEditHelper from "sap/fe/core/helpers/MassEditHelper";
|
|
3
3
|
import Controller from "sap/ui/core/mvc/Controller";
|
|
4
4
|
import JSONModel from "sap/ui/model/json/JSONModel";
|
|
5
5
|
import XMLPreprocessor from "sap/ui/core/util/XMLPreprocessor";
|
|
@@ -9,6 +9,7 @@ import { MockModel, MockMetaModel, MockControl, MockContext, MockController } fr
|
|
|
9
9
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
10
10
|
import { compileCDS, getMetaModel } from "sap/fe/test/JestTemplatingHelper";
|
|
11
11
|
import ODataModel from "sap/ui/model/odata/v4/ODataModel";
|
|
12
|
+
import PageController from "sap/fe/core/PageController";
|
|
12
13
|
|
|
13
14
|
describe("MassEditHelper", function() {
|
|
14
15
|
const oTestReferences = {
|
|
@@ -30,16 +31,16 @@ describe("MassEditHelper", function() {
|
|
|
30
31
|
const oDialogRuntimeModel: JSONModel = new JSONModel({});
|
|
31
32
|
const oController: MockController = new MockController();
|
|
32
33
|
const oControl: any = new MockControl();
|
|
33
|
-
const oTable:
|
|
34
|
+
const oTable: any = {};
|
|
34
35
|
const aContexts: Array<object> = [];
|
|
35
36
|
|
|
36
|
-
jest.spyOn(MassEditHelper, "getDefaultTextsForDialog").mockReturnValue(jest.fn());
|
|
37
|
+
jest.spyOn(MassEditHelper, "getDefaultTextsForDialog").mockReturnValue(jest.fn() as any);
|
|
37
38
|
jest.spyOn(MassEditHelper, "prepareDataForDialog").mockReturnValue(oDialogDataModel);
|
|
38
39
|
jest.spyOn(MassEditHelper, "setRuntimeModelOnDialog").mockReturnValue(oDialogRuntimeModel);
|
|
39
40
|
jest.spyOn(XMLPreprocessor, "process").mockReturnValue("Fragment");
|
|
40
41
|
jest.spyOn(Fragment, "load").mockResolvedValue(oControl as Control);
|
|
41
42
|
|
|
42
|
-
const oResponse = await MassEditHelper.createDialog(oTable, aContexts, (oController as any) as
|
|
43
|
+
const oResponse = await MassEditHelper.createDialog(oTable, aContexts, (oController as any) as PageController);
|
|
43
44
|
expect(oResponse.isA("sap.m.Dialog")).toBeTruthy();
|
|
44
45
|
});
|
|
45
46
|
});
|
|
@@ -480,7 +481,7 @@ describe("MassEditHelper", function() {
|
|
|
480
481
|
});
|
|
481
482
|
|
|
482
483
|
describe("prepareDataForDialog", () => {
|
|
483
|
-
const oTable:
|
|
484
|
+
const oTable: any = {};
|
|
484
485
|
const contexts: Array<MockContext> = [
|
|
485
486
|
new MockContext({
|
|
486
487
|
ID: "1",
|
|
@@ -501,7 +502,9 @@ describe("MassEditHelper", function() {
|
|
|
501
502
|
_RequestedQuantityUnit: {
|
|
502
503
|
UnitOfMeasure: "EUR",
|
|
503
504
|
UnitOfMeasure_Text: "Euro"
|
|
504
|
-
}
|
|
505
|
+
},
|
|
506
|
+
DocumentDate: "20-12-2022",
|
|
507
|
+
Rating: 4
|
|
505
508
|
}),
|
|
506
509
|
new MockContext({
|
|
507
510
|
ID: "2",
|
|
@@ -522,7 +525,9 @@ describe("MassEditHelper", function() {
|
|
|
522
525
|
_RequestedQuantityUnit: {
|
|
523
526
|
UnitOfMeasure: "USD",
|
|
524
527
|
UnitOfMeasure_Text: "US Dollar"
|
|
525
|
-
}
|
|
528
|
+
},
|
|
529
|
+
DocumentDate: "20-12-2022",
|
|
530
|
+
Rating: 5
|
|
526
531
|
})
|
|
527
532
|
];
|
|
528
533
|
const tableFields: Array<object> = [
|
|
@@ -585,6 +590,18 @@ describe("MassEditHelper", function() {
|
|
|
585
590
|
"label": "Net Amount",
|
|
586
591
|
"annotationPath": "/SalesOrderItem/@com.sap.vocabularies.UI.v1.LineItem/9",
|
|
587
592
|
"inputType": undefined
|
|
593
|
+
},
|
|
594
|
+
{
|
|
595
|
+
"dataProperty": "DocumentDate",
|
|
596
|
+
"label": "Document Date",
|
|
597
|
+
"annotationPath": "/SalesOrderItem/@com.sap.vocabularies.UI.v1.LineItem/10",
|
|
598
|
+
"inputType": "sap.ui.mdc.Field"
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
"dataProperty": "Rating",
|
|
602
|
+
"label": "Rating Indicator",
|
|
603
|
+
"annotationPath": "/SalesOrderItem/@com.sap.vocabularies.UI.v1.LineItem/11",
|
|
604
|
+
"inputType": "sap.m.RatingIndicator"
|
|
588
605
|
}
|
|
589
606
|
];
|
|
590
607
|
beforeAll(async () => {
|
|
@@ -87,6 +87,66 @@ sap.ui.define(["sap/fe/core/helpers/ModelHelper", "sap/fe/test/UI5MockHelper", "
|
|
|
87
87
|
expect(actualValue).toEqual(oInput.bExpectedValue);
|
|
88
88
|
});
|
|
89
89
|
});
|
|
90
|
+
it("Unit test to check isCollaborationDraftSupported ", function () {
|
|
91
|
+
[{
|
|
92
|
+
oMetaModel: {
|
|
93
|
+
getObject: function (sParam) {
|
|
94
|
+
return sParam === "/" ? {
|
|
95
|
+
"rootEntitySet": {
|
|
96
|
+
$kind: "EntitySet"
|
|
97
|
+
},
|
|
98
|
+
"nodeEntitySet": {
|
|
99
|
+
$kind: "EntitySet"
|
|
100
|
+
}
|
|
101
|
+
} : "ShareAction";
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
templatingInterface: null,
|
|
105
|
+
bExpectedValue: true,
|
|
106
|
+
sMessage: "Share Action exists"
|
|
107
|
+
}, {
|
|
108
|
+
oMetaModel: {
|
|
109
|
+
getObject: function (sParam) {
|
|
110
|
+
return sParam === "/" ? {
|
|
111
|
+
"rootEntitySet": {
|
|
112
|
+
$kind: "EntitySet"
|
|
113
|
+
},
|
|
114
|
+
"nodeEntitySet": {
|
|
115
|
+
$kind: "EntitySet"
|
|
116
|
+
}
|
|
117
|
+
} : undefined;
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
templatingInterface: null,
|
|
121
|
+
bExpectedValue: false,
|
|
122
|
+
sMessage: "Share Action doesn't exist"
|
|
123
|
+
}, {
|
|
124
|
+
oMetaModel: null,
|
|
125
|
+
templatingInterface: {
|
|
126
|
+
context: {
|
|
127
|
+
getModel: function () {
|
|
128
|
+
return {
|
|
129
|
+
getObject: function (sParam) {
|
|
130
|
+
return sParam === "/" ? {
|
|
131
|
+
"rootEntitySet": {
|
|
132
|
+
$kind: "EntitySet"
|
|
133
|
+
},
|
|
134
|
+
"nodeEntitySet": {
|
|
135
|
+
$kind: "EntitySet"
|
|
136
|
+
}
|
|
137
|
+
} : undefined;
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
bExpectedValue: false,
|
|
144
|
+
sMessage: "Usage in XML Template"
|
|
145
|
+
}].forEach(function (oInput) {
|
|
146
|
+
var actualValue = ModelHelper.isCollaborationDraftSupported(oInput.oMetaModel, oInput.templatingInterface);
|
|
147
|
+
expect(actualValue).toEqual(oInput.bExpectedValue);
|
|
148
|
+
});
|
|
149
|
+
});
|
|
90
150
|
describe("Unit test to check Internal JSON Model enhancement", function () {
|
|
91
151
|
var _oDummyControl$getBin;
|
|
92
152
|
|
|
@@ -350,4 +410,4 @@ sap.ui.define(["sap/fe/core/helpers/ModelHelper", "sap/fe/test/UI5MockHelper", "
|
|
|
350
410
|
});
|
|
351
411
|
});
|
|
352
412
|
}, false);
|
|
353
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1vZGVsSGVscGVyLnNwZWMudHMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJpdCIsIm9NZXRhTW9kZWwiLCJnZXRPYmplY3QiLCJzUGFyYW0iLCIka2luZCIsImJFeHBlY3RlZFZhbHVlIiwic01lc3NhZ2UiLCJ1bmRlZmluZWQiLCJmb3JFYWNoIiwib0lucHV0IiwiYWN0dWFsVmFsdWUiLCJNb2RlbEhlbHBlciIsImlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsImV4cGVjdCIsInRvRXF1YWwiLCJnZXRNZXRhQ29udGV4dCIsInNQYXRoIiwiZ2V0UGF0aCIsImlzRHJhZnRTdXBwb3J0ZWQiLCJvRHVtbXlDb250cm9sIiwiQ29udHJvbCIsIm9JbnRlcm5hbE1vZGVsIiwiSlNPTk1vZGVsIiwiY29udHJvbCIsImVuaGFuY2VJbnRlcm5hbEpTT05Nb2RlbCIsInNldE1vZGVsIiwiYmluZEVsZW1lbnQiLCJwYXRoIiwibW9kZWwiLCJzU2V0VmFsdWUiLCJnZXRCaW5kaW5nQ29udGV4dCIsInNldFByb3BlcnR5Iiwic0dldFZhbHVlIiwiZ2V0UHJvcGVydHkiLCJpc0ZpbHRlcmluZ0Nhc2VTZW5zaXRpdmUiLCJvUGFyYW1ldGVyIiwiJE5hbWUiLCIkTnVsbGFibGUiLCIkVHlwZSIsIiRpc0NvbGxlY3Rpb24iLCJnZXRBY3Rpb25QYXJhbWV0ZXJJdGVtc01vZGVsUGF0aCIsInZMaXN0QmluZGluZyIsIm9WaWV3Iiwic1ZpZXdDb250ZXh0UGF0aCIsIm9Sb290QmluZGluZyIsInNCaW5kaW5nUGF0aCIsIm9Nb2NrR2V0TWV0YVBhdGgiLCJiZWZvcmVBbGwiLCJWaWV3IiwiVUk1TW9ja0hlbHBlciIsIk1vY2tNZXRhTW9kZWwiLCJqZXN0Iiwic3B5T24iLCJvTW9kZWwiLCJNb2NrTW9kZWwiLCJzZXRNZXRhTW9kZWwiLCJvTW9ja0dldE1vZGVsIiwibW9ja1JldHVyblZhbHVlIiwib0NvbnRleHQiLCJNb2NrQ29udGV4dCIsIm9Nb2NrR2V0Q29udGV4dCIsIm9Nb2NrR2V0UGF0aCIsIm1vY2tJbXBsZW1lbnRhdGlvbiIsImdldFJvb3RCaW5kaW5nIiwiYmVmb3JlRWFjaCIsImFmdGVyQWxsIiwicmVzdG9yZUFsbE1vY2tzIiwiZ2V0QWJzb2x1dGVNZXRhUGF0aEZvckxpc3RCaW5kaW5nIiwibGFzdENhbGxlZFdpdGgiLCJzQ29udGV4dFBhdGgiLCJnZXRNZXRhUGF0aEZvckNvbnRleHQiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7QUFNQUEsRUFBQUEsUUFBUSxDQUFDLGFBQUQsRUFBZ0IsWUFBTTtBQUM3QkMsSUFBQUEsRUFBRSxDQUFDLDhDQUFELEVBQWlELFlBQU07QUFDeEQsT0FDQztBQUNDQyxRQUFBQSxVQUFVLEVBQUU7QUFDWEMsVUFBQUEsU0FBUyxFQUFFLFVBQVNDLE1BQVQsRUFBeUI7QUFDbkMsbUJBQU9BLE1BQU0sS0FBSyxHQUFYLEdBQ0o7QUFDQSwrQkFBaUI7QUFBRUMsZ0JBQUFBLEtBQUssRUFBRTtBQUFUO0FBRGpCLGFBREksR0FJSjtBQUNBLHlFQUEyRDtBQUQzRCxhQUpIO0FBT0E7QUFUVSxTQURiO0FBWUNDLFFBQUFBLGNBQWMsRUFBRSxJQVpqQjtBQWFDQyxRQUFBQSxRQUFRLEVBQUU7QUFiWCxPQURELEVBZ0JDO0FBQ0NMLFFBQUFBLFVBQVUsRUFBRTtBQUNYQyxVQUFBQSxTQUFTLEVBQUUsVUFBU0MsTUFBVCxFQUF5QjtBQUNuQyxtQkFBT0EsTUFBTSxLQUFLLEdBQVgsR0FDSjtBQUNBLCtCQUFpQjtBQUFFQyxnQkFBQUEsS0FBSyxFQUFFO0FBQVQ7QUFEakIsYUFESSxHQUlKRyxTQUpIO0FBS0E7QUFQVSxTQURiO0FBVUNGLFFBQUFBLGNBQWMsRUFBRSxLQVZqQjtBQVdDQyxRQUFBQSxRQUFRLEVBQUU7QUFYWCxPQWhCRCxFQTZCRUUsT0E3QkYsQ0E2QlUsVUFBU0MsTUFBVCxFQUFpQjtBQUMxQixZQUFNQyxXQUFXLEdBQUdDLFdBQVcsQ0FBQ0Msd0JBQVosQ0FBcUNILE1BQU0sQ0FBQ1IsVUFBNUMsQ0FBcEI7QUFDQVks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VDtBQWlCQUwsTUFBQUEsVUFBVSxhQUFrQjtBQUMzQjtBQUNBSyxRQUFBQSxZQUFZLEdBQUcsRUFBZjtBQUYyQjtBQUczQixPQUhTLENBQVY7QUFLQUosTUFBQUEsUUFBUTtBQUFBLFlBQWtCO0FBQ3pCZCxVQUFBQSxJQUFJLENBQUNlLGVBQUw7QUFEeUI7QUFFekIsU0FGTztBQUFBO0FBQUE7QUFBQSxRQUFSO0FBSUFsRSxNQUFBQSxFQUFFLENBQUMsbUJBQUQ7QUFBQSxZQUFrQztBQUNuQztBQUNBcUUsVUFBQUEsWUFBWSxHQUFHLGNBQWY7QUFDQTFELFVBQUFBLFdBQVcsQ0FBQzJELHFCQUFaLENBQWtDWixRQUFsQztBQUNBN0MsVUFBQUEsTUFBTSxDQUFDaUMsZ0JBQUQsQ0FBTixDQUF5QnNCLGNBQXpCLENBQXdDLGNBQXhDO0FBSm1DO0FBS25DLFNBTEM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQU9BcEUsTUFBQUEsRUFBRSxDQUFDLGtDQUFEO0FBQUEsWUFBaUQ7QUFDbEQ7QUFDQXFFLFVBQUFBLFlBQVksR0FBRyxvQkFBZjtBQUNBMUQsVUFBQUEsV0FBVyxDQUFDMkQscUJBQVosQ0FBa0NaLFFBQWxDO0FBQ0E3QyxVQUFBQSxNQUFNLENBQUNpQyxnQkFBRCxDQUFOLENBQXlCc0IsY0FBekIsQ0FBd0Msb0JBQXhDO0FBSmtEO0FBS2xELFNBTEM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQU1BLEtBekNPLENBQVI7QUEwQ0EsR0FsVk8sQ0FBUiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1vZGVsSGVscGVyLCB7IEludGVybmFsTW9kZWxDb250ZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCAqIGFzIFVJNU1vY2tIZWxwZXIgZnJvbSBcInNhcC9mZS90ZXN0L1VJNU1vY2tIZWxwZXJcIjtcbmltcG9ydCBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCBNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL01vZGVsXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5cbmRlc2NyaWJlKFwiTW9kZWxIZWxwZXJcIiwgKCkgPT4ge1xuXHRpdChcIlVuaXQgdGVzdCB0byBjaGVjayBpc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQgXCIsICgpID0+IHtcblx0XHRbXG5cdFx0XHR7XG5cdFx0XHRcdG9NZXRhTW9kZWw6IHtcblx0XHRcdFx0XHRnZXRPYmplY3Q6IGZ1bmN0aW9uKHNQYXJhbTogc3RyaW5nKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gc1BhcmFtID09PSBcIi9cIlxuXHRcdFx0XHRcdFx0XHQ/IHtcblx0XHRcdFx0XHRcdFx0XHRcdFwicm9vdEVudGl0eVNldFwiOiB7ICRraW5kOiBcIkVudGl0eVNldFwiIH1cblx0XHRcdFx0XHRcdFx0ICB9XG5cdFx0XHRcdFx0XHRcdDoge1xuXHRcdFx0XHRcdFx0XHRcdFx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuU2Vzc2lvbi52MS5TdGlja3lTZXNzaW9uU3VwcG9ydGVkXCI6IHRydWVcblx0XHRcdFx0XHRcdFx0ICB9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0YkV4cGVjdGVkVmFsdWU6IHRydWUsXG5cdFx0XHRcdHNNZXNzYWdlOiBcInByZXNlbmNlIG9mIHNlc3Npb24uc3RpY2t5c2Vzc2lvbiBhbm5vdGF0aW9uIGF0IHBhcmVudCBlbnRpdHlcIlxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0b01ldGFNb2RlbDoge1xuXHRcdFx0XHRcdGdldE9iamVjdDogZnVuY3Rpb24oc1BhcmFtOiBzdHJpbmcpIHtcblx0XHRcdFx0XHRcdHJldHVybiBzUGFyYW0gPT09IFwiL1wiXG5cdFx0XHRcdFx0XHRcdD8ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XCJyb290RW50aXR5U2V0XCI6IHsgJGtpbmQ6IFwiRW50aXR5U2V0XCIgfVxuXHRcdFx0XHRcdFx0XHQgIH1cblx0XHRcdFx0XHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRiRXhwZWN0ZWRWYWx1ZTogZmFsc2UsXG5cdFx0XHRcdHNNZXNzYWdlOiBcImFic2VuY2Ugb2Ygc2Vzc2lvbi5zdGlja3lzZXNzaW9uIGFubm90YXRpb24gYXQgcGFyZW50IGVudGl0eVwiXG5cdFx0XHR9XG5cdFx0XS5mb3JFYWNoKGZ1bmN0aW9uKG9JbnB1dCkge1xuXHRcdFx0Y29uc3QgYWN0dWFsVmFsdWUgPSBNb2RlbEhlbHBlci5pc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQob0lucHV0Lm9NZXRhTW9kZWwgYXMgT0RhdGFNZXRhTW9kZWwpO1xuXHRcdFx0ZXhwZWN0KGFjdHVhbFZhbHVlKS50b0VxdWFsKG9JbnB1dC5iRXhwZWN0ZWRWYWx1ZSk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGl0KFwiVW5pdCB0ZXN0IHRvIGNoZWNrIGlzRHJhZnRTdXBwb3J0ZWQgXCIsICgpID0+IHtcblx0XHRbXG5cdFx0XHR7XG5cdFx0XHRcdG9NZXRhTW9kZWw6IHtcblx0XHRcdFx0XHRnZXRNZXRhQ29udGV4dDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRnZXRPYmplY3Q6IGZ1bmN0aW9uKHNQYXRoOiBzdHJpbmcpIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoc1BhdGggPT09IFwiJGtpbmRcIikge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIFwiRW50aXR5U2V0XCI7XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiRWRpdEFjdGlvblwiOiBcIkRyYWZ0RWRpdFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIlNhdmVBY3Rpb25cIjogXCJEcmFmdFNhdmVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdGdldFBhdGg6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBcIi9Sb290RW50aXR5U2V0XCI7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRzUGF0aDogXCIvUm9vdEVudGl0eVNldCgxMjMpXCIsXG5cdFx0XHRcdGJFeHBlY3RlZFZhbHVlOiB0cnVlLFxuXHRcdFx0XHRzTWVzc2FnZTogXCJwcmVzZW5jZSBvZiBkcmFmdCBhbm5vdGF0aW9uc1wiXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRvTWV0YU1vZGVsOiB7XG5cdFx0XHRcdFx0Z2V0TWV0YUNvbnRleHQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0Z2V0T2JqZWN0OiBmdW5jdGlvbihzUGF0aDogc3RyaW5nKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHNQYXRoID09PSBcIiRraW5kXCIpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBcIkVudGl0eVNldFwiO1xuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdGdldFBhdGg6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBcIi9Sb290RW50aXR5U2V0XCI7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRzUGF0aDogXCIvUm9vdEVudGl0eVNldCgxMjMpXCIsXG5cdFx0XHRcdGJFeHBlY3RlZFZhbHVlOiBmYWxzZSxcblx0XHRcdFx0c01lc3NhZ2U6IFwiYWJzZW5jZSBvZiBkcmFmdCBhbm5vdGF0aW9uc1wiXG5cdFx0XHR9XG5cdFx0XS5mb3JFYWNoKGZ1bmN0aW9uKG9JbnB1dCkge1xuXHRcdFx0Y29uc3QgYWN0dWFsVmFsdWUgPSBNb2RlbEhlbHBlci5pc0RyYWZ0U3VwcG9ydGVkKG9JbnB1dC5vTWV0YU1vZGVsLCBvSW5wdXQuc1BhdGgpO1xuXHRcdFx0ZXhwZWN0KGFjdHVhbFZhbHVlKS50b0VxdWFsKG9JbnB1dC5iRXhwZWN0ZWRWYWx1ZSk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiVW5pdCB0ZXN0IHRvIGNoZWNrIEludGVybmFsIEpTT04gTW9kZWwgZW5oYW5jZW1lbnRcIiwgKCkgPT4ge1xuXHRcdGNvbnN0IG9EdW1teUNvbnRyb2wgPSBuZXcgQ29udHJvbCgpO1xuXG5cdFx0Ly92YXIgb1N0dWIgPSBzYW5kYm94LnN0dWIob1RhYmxlLCBcImdldE1vZGVsXCIpO1xuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsID0gbmV3IEpTT05Nb2RlbCh7XG5cdFx0XHRjb250cm9sOiB7fVxuXHRcdH0pO1xuXG5cdFx0TW9kZWxIZWxwZXIuZW5oYW5jZUludGVybmFsSlNPTk1vZGVsKG9JbnRlcm5hbE1vZGVsKTtcblxuXHRcdG9EdW1teUNvbnRyb2wuc2V0TW9kZWwob0ludGVybmFsTW9kZWwsIFwiaW50ZXJuYWxcIik7XG5cdFx0Ly9vU3R1Yi53aXRoQXJncyhcImludGVybmFsXCIpLnJldHVybnModWlNb2RlbCk7XG5cdFx0b0R1bW15Q29udHJvbC5iaW5kRWxlbWVudCh7XG5cdFx0XHRwYXRoOiBcIi9jb250cm9sL215RHVtbXlDb250cm9sXCIsXG5cdFx0XHRtb2RlbDogXCJpbnRlcm5hbFwiXG5cdFx0fSk7XG5cblx0XHRjb25zdCBzU2V0VmFsdWUgPSBcImR1bW15VmFsdWVcIjtcblx0XHQob0R1bW15Q29udHJvbC5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0KS5zZXRQcm9wZXJ0eShcImR1bW15UHJvcGVydHlcIiwgc1NldFZhbHVlKTtcblx0XHRjb25zdCBzR2V0VmFsdWUgPSBvRHVtbXlDb250cm9sLmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIik/LmdldFByb3BlcnR5KFwiZHVtbXlQcm9wZXJ0eVwiKTtcblxuXHRcdGV4cGVjdChzU2V0VmFsdWUpLnRvRXF1YWwoc0dldFZhbHVlKTtcblx0fSk7XG5cblx0ZGVzY3JpYmUoXCJpc0ZpbHRlcmluZ0Nhc2VTZW5zaXRpdmVcIiwgKCkgPT4ge1xuXHRcdGl0KFxuXHRcdFx0XCJTdXBwb3J0IG9mICd0b2xvd2VyJyBpbiBmaWx0ZXIgZnVuY3Rpb25zIGFubm90YXRpb25cIixcblx0XHRcdHtcblx0XHRcdFx0XCJyZWZlcmVuY2VzXCI6IFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcInR5cGVcIjogXCJKSVJBXCIsXG5cdFx0XHRcdFx0XHRcIklEXCI6IFwiRklPUklURUNIUDEtMTkwMTlcIlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XVxuXHRcdFx0fSxcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3Qgb01ldGFNb2RlbCA9IHtcblx0XHRcdFx0XHRnZXRPYmplY3Q6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFtcImNvbnRhaW5zXCIsIFwiZW5kc3dpdGhcIiwgXCJzdGFydHN3aXRoXCIsIFwibGVuZ3RoXCIsIFwiaW5kZXhvZlwiLCBcInN1YnN0cmluZ1wiLCBcInRvbG93ZXJcIl07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXG5cdFx0XHRcdGV4cGVjdChNb2RlbEhlbHBlci5pc0ZpbHRlcmluZ0Nhc2VTZW5zaXRpdmUob01ldGFNb2RlbCkpLnRvRXF1YWwoZmFsc2UpO1xuXHRcdFx0fVxuXHRcdCk7XG5cdFx0aXQoXG5cdFx0XHRcIk5vIHN1cHBvcnQgb2YgJ3RvbG93ZXInIGluIGZpbHRlciBmdW5jdGlvbnMgYW5ub3RhdGlvblwiLFxuXHRcdFx0e1xuXHRcdFx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFwidHlwZVwiOiBcIkpJUkFcIixcblx0XHRcdFx0XHRcdFwiSURcIjogXCJGSU9SSVRFQ0hQMS0xOTAxOVwiXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdXG5cdFx0XHR9LFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRjb25zdCBvTWV0YU1vZGVsID0ge1xuXHRcdFx0XHRcdGdldE9iamVjdDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gW1wiY29udGFpbnNcIiwgXCJlbmRzd2l0aFwiLCBcInN0YXJ0c3dpdGhcIiwgXCJsZW5ndGhcIiwgXCJpbmRleG9mXCIsIFwic3Vic3RyaW5nXCJdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fTtcblxuXHRcdFx0XHRleHBlY3QoTW9kZWxIZWxwZXIuaXNGaWx0ZXJpbmdDYXNlU2Vuc2l0aXZlKG9NZXRhTW9kZWwpKS50b0VxdWFsKHRydWUpO1xuXHRcdFx0fVxuXHRcdCk7XG5cdFx0aXQoXG5cdFx0XHRcIk5vIGZpbHRlciBmdW5jdGlvbnMgYW5ub3RhdGlvblwiLFxuXHRcdFx0e1xuXHRcdFx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFwidHlwZVwiOiBcIkpJUkFcIixcblx0XHRcdFx0XHRcdFwiSURcIjogXCJGSU9SSVRFQ0hQMS0xOTAxOVwiXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdXG5cdFx0XHR9LFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRjb25zdCBvTWV0YU1vZGVsID0ge1xuXHRcdFx0XHRcdGdldE9iamVjdDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fTtcblxuXHRcdFx0XHRleHBlY3QoTW9kZWxIZWxwZXIuaXNGaWx0ZXJpbmdDYXNlU2Vuc2l0aXZlKG9NZXRhTW9kZWwpKS50b0VxdWFsKHRydWUpO1xuXHRcdFx0fVxuXHRcdCk7XG5cdFx0aXQoXG5cdFx0XHRcIk5vIG1ldGFtb2RlbFwiLFxuXHRcdFx0e1xuXHRcdFx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFwidHlwZVwiOiBcIkpJUkFcIixcblx0XHRcdFx0XHRcdFwiSURcIjogXCJGSU9SSVRFQ0hQMS0xOTAxOVwiXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdXG5cdFx0XHR9LFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRjb25zdCBvTWV0YU1vZGVsID0gdW5kZWZpbmVkO1xuXHRcdFx0XHRleHBlY3QoTW9kZWxIZWxwZXIuaXNGaWx0ZXJpbmdDYXNlU2Vuc2l0aXZlKG9NZXRhTW9kZWwpKS50b0VxdWFsKHVuZGVmaW5lZCk7XG5cdFx0XHR9XG5cdFx0KTtcblx0fSk7XG5cblx0ZGVzY3JpYmUoXCJnZXRBY3Rpb25QYXJhbWV0ZXJJdGVtc01vZGVsUGF0aFwiLCAoKSA9PiB7XG5cdFx0aXQoXCJSZXR1cm4gdmFsaWQgZm9ybWF0dGVyIHN0cmluZ1wiLCAoKSA9PiB7XG5cdFx0XHRjb25zdCBvUGFyYW1ldGVyID0ge1xuXHRcdFx0XHQkTmFtZTogXCJTYWxlc09yZGVySXRlbUlkXCIsXG5cdFx0XHRcdCROdWxsYWJsZTogZmFsc2UsXG5cdFx0XHRcdCRUeXBlOiBcIkVkbS5JbnQzMlwiLFxuXHRcdFx0XHQkaXNDb2xsZWN0aW9uOiB0cnVlXG5cdFx0XHR9O1xuXHRcdFx0ZXhwZWN0KE1vZGVsSGVscGVyLmdldEFjdGlvblBhcmFtZXRlckl0ZW1zTW9kZWxQYXRoKG9QYXJhbWV0ZXIpKS50b0VxdWFsKFwie3BhdGg6ICdtdmZ2aWV3Pi9TYWxlc09yZGVySXRlbUlkJ31cIik7XG5cdFx0fSk7XG5cdFx0aXQoXCJSZXR1cm4gc3RyaW5nIGZvciBlbXB0eSAkTmFtZVwiLCAoKSA9PiB7XG5cdFx0XHRjb25zdCBvUGFyYW1ldGVyID0ge1xuXHRcdFx0XHQkTmFtZTogXCJcIixcblx0XHRcdFx0JE51bGxhYmxlOiBmYWxzZSxcblx0XHRcdFx0JFR5cGU6IFwiRWRtLkludDMyXCIsXG5cdFx0XHRcdCRpc0NvbGxlY3Rpb246IHRydWVcblx0XHRcdH07XG5cdFx0XHRleHBlY3QoTW9kZWxIZWxwZXIuZ2V0QWN0aW9uUGFyYW1ldGVySXRlbXNNb2RlbFBhdGgob1BhcmFtZXRlcikpLnRvRXF1YWwodW5kZWZpbmVkKTtcblx0XHR9KTtcblx0XHRpdChcIlJldHVybiBzdHJpbmcgZm9yIHVuZGVmaW5lZCAkTmFtZVwiLCAoKSA9PiB7XG5cdFx0XHRjb25zdCBvUGFyYW1ldGVyID0ge1xuXHRcdFx0XHQkTmFtZTogdW5kZWZpbmVkLFxuXHRcdFx0XHQkTnVsbGFibGU6IGZhbHNlLFxuXHRcdFx0XHQkVHlwZTogXCJFZG0uSW50MzJcIixcblx0XHRcdFx0JGlzQ29sbGVjdGlvbjogdHJ1ZVxuXHRcdFx0fTtcblx0XHRcdGV4cGVjdChNb2RlbEhlbHBlci5nZXRBY3Rpb25QYXJhbWV0ZXJJdGVtc01vZGVsUGF0aChvUGFyYW1ldGVyKSkudG9FcXVhbCh1bmRlZmluZWQpO1xuXHRcdH0pO1xuXHRcdGl0KFwiUmV0dXJuIHN0cmluZyBmb3IgdW5kZWZpbmVkIG9QYXJhbWV0ZXJcIiwgKCkgPT4ge1xuXHRcdFx0Y29uc3Qgb1BhcmFtZXRlciA9IHVuZGVmaW5lZDtcblx0XHRcdGV4cGVjdChNb2RlbEhlbHBlci5nZXRBY3Rpb25QYXJhbWV0ZXJJdGVtc01vZGVsUGF0aChvUGFyYW1ldGVyKSkudG9FcXVhbCh1bmRlZmluZWQpO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcImdldEFic29sdXRlTWV0YVBhdGhGb3JMaXN0QmluZGluZ1wiLCAoKSA9PiB7XG5cdFx0bGV0IHZMaXN0QmluZGluZzogYW55LCBvVmlldzogVmlldywgc1ZpZXdDb250ZXh0UGF0aDogc3RyaW5nLCBvUm9vdEJpbmRpbmc6IGFueSwgc0JpbmRpbmdQYXRoOiBzdHJpbmcsIG9Nb2NrR2V0TWV0YVBhdGg6IGFueTtcblx0XHRiZWZvcmVBbGwoYXN5bmMgZnVuY3Rpb24oKSB7XG5cdFx0XHRvVmlldyA9IG5ldyBWaWV3KCk7XG5cblx0XHRcdC8vIG1ldGFNb2RlbCBtb2Nrc1xuXHRcdFx0Y29uc3Qgb01ldGFNb2RlbCA9IG5ldyBVSTVNb2NrSGVscGVyLk1vY2tNZXRhTW9kZWwoKTtcblx0XHRcdG9Nb2NrR2V0TWV0YVBhdGggPSBqZXN0LnNweU9uKG9NZXRhTW9kZWwsIFwiZ2V0TWV0YVBhdGhcIik7XG5cblx0XHRcdC8vIG1vZGVsIG1vY2tzXG5cdFx0XHRjb25zdCBvTW9kZWwgPSBuZXcgVUk1TW9ja0hlbHBlci5Nb2NrTW9kZWwoKTtcblx0XHRcdG9Nb2RlbC5zZXRNZXRhTW9kZWwob01ldGFNb2RlbCk7XG5cdFx0XHRjb25zdCBvTW9ja0dldE1vZGVsID0gamVzdC5zcHlPbihvVmlldywgXCJnZXRNb2RlbFwiKTtcblx0XHRcdG9Nb2NrR2V0TW9kZWwubW9ja1JldHVyblZhbHVlKChvTW9kZWwgYXMgYW55KSBhcyBNb2RlbCk7XG5cblx0XHRcdC8vIGNvbnRleHQgbW9ja3Ncblx0XHRcdGNvbnN0IG9Db250ZXh0ID0gbmV3IFVJNU1vY2tIZWxwZXIuTW9ja0NvbnRleHQoKTtcblx0XHRcdGNvbnN0IG9Nb2NrR2V0Q29udGV4dCA9IGplc3Quc3B5T24ob1ZpZXcsIFwiZ2V0QmluZGluZ0NvbnRleHRcIik7XG5cdFx0XHRvTW9ja0dldENvbnRleHQubW9ja1JldHVyblZhbHVlKG9Db250ZXh0IGFzIGFueSk7XG5cdFx0XHRjb25zdCBvTW9ja0dldFBhdGggPSBqZXN0LnNweU9uKG9Db250ZXh0LCBcImdldFBhdGhcIik7XG5cdFx0XHRvTW9ja0dldFBhdGgubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHNWaWV3Q29udGV4dFBhdGgpO1xuXHRcdFx0dkxpc3RCaW5kaW5nID0ge1xuXHRcdFx0XHRnZXRSb290QmluZGluZzogKCkgPT4gb1Jvb3RCaW5kaW5nLFxuXHRcdFx0XHRnZXRQYXRoOiAoKSA9PiBzQmluZGluZ1BhdGhcblx0XHRcdH07XG5cdFx0fSk7XG5cblx0XHRiZWZvcmVFYWNoKGFzeW5jIGZ1bmN0aW9uKCkge1xuXHRcdFx0Ly8gQ2xlYW4gSlNPTlxuXHRcdFx0b1Jvb3RCaW5kaW5nID0ge307XG5cdFx0XHRzVmlld0NvbnRleHRQYXRoID0gXCJcIjtcblx0XHRcdHNCaW5kaW5nUGF0aCA9IFwiXCI7XG5cdFx0fSk7XG5cblx0XHRhZnRlckFsbChhc3luYyBmdW5jdGlvbigpIHtcblx0XHRcdGplc3QucmVzdG9yZUFsbE1vY2tzKCk7XG5cdFx0fSk7XG5cblx0XHRpdChcIldpdGggQWJzb2x1dGUgbGlzdCBiaW5kaW5nXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdC8vIENhc2VzIHRvIGNvbnNpZGVyXG5cdFx0XHRvUm9vdEJpbmRpbmcgPSB2TGlzdEJpbmRpbmc7XG5cdFx0XHRzQmluZGluZ1BhdGggPSBcIi9TT1wiO1xuXHRcdFx0TW9kZWxIZWxwZXIuZ2V0QWJzb2x1dGVNZXRhUGF0aEZvckxpc3RCaW5kaW5nKG9WaWV3LCB2TGlzdEJpbmRpbmcpO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrR2V0TWV0YVBhdGgpLmxhc3RDYWxsZWRXaXRoKFwiL1NPXCIpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJXaXRoIFJlbGF0aXZlIGxpc3QgYmluZGluZ1wiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHQvLyBDYXNlcyB0byBjb25zaWRlclxuXHRcdFx0b1Jvb3RCaW5kaW5nID0ge1xuXHRcdFx0XHRnZXRQYXRoOiAoKSA9PiBcIi9TTyhhPTEsYj0yKVwiXG5cdFx0XHR9O1xuXHRcdFx0c0JpbmRpbmdQYXRoID0gXCJfSXRlbVwiO1xuXHRcdFx0TW9kZWxIZWxwZXIuZ2V0QWJzb2x1dGVNZXRhUGF0aEZvckxpc3RCaW5kaW5nKG9WaWV3LCB2TGlzdEJpbmRpbmcpO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrR2V0TWV0YVBhdGgpLmxhc3RDYWxsZWRXaXRoKFwiL1NPKGE9MSxiPTIpL19JdGVtXCIpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJXaXRoIEFic29sdXRlIHBhdGhcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Ly8gQ2FzZXMgdG8gY29uc2lkZXJcblx0XHRcdE1vZGVsSGVscGVyLmdldEFic29sdXRlTWV0YVBhdGhGb3JMaXN0QmluZGluZyhvVmlldywgXCIvU09cIik7XG5cdFx0XHRleHBlY3Qob01vY2tHZXRNZXRhUGF0aCkubGFzdENhbGxlZFdpdGgoXCIvU09cIik7XG5cdFx0fSk7XG5cblx0XHRpdChcIldpdGggU3RyaW5nIHBhdGhcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Ly8gQ2FzZXMgdG8gY29uc2lkZXJcblx0XHRcdHNWaWV3Q29udGV4dFBhdGggPSBcIi9TTyhhPTEsYj0yKVwiO1xuXHRcdFx0TW9kZWxIZWxwZXIuZ2V0QWJzb2x1dGVNZXRhUGF0aEZvckxpc3RCaW5kaW5nKG9WaWV3LCBcIl9JdGVtXCIpO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrR2V0TWV0YVBhdGgpLmxhc3RDYWxsZWRXaXRoKFwiL1NPKGE9MSxiPTIpL19JdGVtXCIpO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcImdldE1ldGFQYXRoRm9yQ29udGV4dFwiLCAoKSA9PiB7XG5cdFx0bGV0IG9Db250ZXh0OiBhbnksIHNDb250ZXh0UGF0aDogc3RyaW5nLCBvTW9ja0dldE1ldGFQYXRoOiBhbnk7XG5cdFx0YmVmb3JlQWxsKGFzeW5jIGZ1bmN0aW9uKCkge1xuXHRcdFx0Ly8gbWV0YU1vZGVsIG1vY2tzXG5cdFx0XHRjb25zdCBvTWV0YU1vZGVsID0gbmV3IFVJNU1vY2tIZWxwZXIuTW9ja01ldGFNb2RlbCgpO1xuXHRcdFx0b01vY2tHZXRNZXRhUGF0aCA9IGplc3Quc3B5T24ob01ldGFNb2RlbCwgXCJnZXRNZXRhUGF0aFwiKTtcblxuXHRcdFx0Ly8gbW9kZWwgbW9ja3Ncblx0XHRcdGNvbnN0IG9Nb2RlbCA9IG5ldyBVSTVNb2NrSGVscGVyLk1vY2tNb2RlbCgpO1xuXHRcdFx0b01vZGVsLnNldE1ldGFNb2RlbChvTWV0YU1vZGVsKTtcblxuXHRcdFx0Ly8gY29udGV4dCBtb2Nrc1xuXHRcdFx0b0NvbnRleHQgPSBuZXcgVUk1TW9ja0hlbHBlci5Nb2NrQ29udGV4dCgpO1xuXHRcdFx0Y29uc3Qgb01vY2tHZXRNb2RlbCA9IGplc3Quc3B5T24ob0NvbnRleHQsIFwiZ2V0TW9kZWxcIik7XG5cdFx0XHRvTW9ja0dldE1vZGVsLm1vY2tSZXR1cm5WYWx1ZShvTW9kZWwpO1xuXHRcdFx0Y29uc3Qgb01vY2tHZXRQYXRoID0gamVzdC5zcHlPbihvQ29udGV4dCwgXCJnZXRQYXRoXCIpO1xuXHRcdFx0b01vY2tHZXRQYXRoLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBzQ29udGV4dFBhdGgpO1xuXHRcdH0pO1xuXG5cdFx0YmVmb3JlRWFjaChhc3luYyBmdW5jdGlvbigpIHtcblx0XHRcdC8vIENsZWFuIEpTT05cblx0XHRcdHNDb250ZXh0UGF0aCA9IFwiXCI7XG5cdFx0fSk7XG5cblx0XHRhZnRlckFsbChhc3luYyBmdW5jdGlvbigpIHtcblx0XHRcdGplc3QucmVzdG9yZUFsbE1vY2tzKCk7XG5cdFx0fSk7XG5cblx0XHRpdChcIldpdGggY29udGV4dCBQYXRoXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdC8vIENhc2VzIHRvIGNvbnNpZGVyXG5cdFx0XHRzQ29udGV4dFBhdGggPSBcIi9TTyhhPTEsYj0yKVwiO1xuXHRcdFx0TW9kZWxIZWxwZXIuZ2V0TWV0YVBhdGhGb3JDb250ZXh0KG9Db250ZXh0KTtcblx0XHRcdGV4cGVjdChvTW9ja0dldE1ldGFQYXRoKS5sYXN0Q2FsbGVkV2l0aChcIi9TTyhhPTEsYj0yKVwiKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiV2l0aCBjb250ZXh0IFBhdGggYW5kIG5hdmlnYXRpb25cIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Ly8gQ2FzZXMgdG8gY29uc2lkZXJcblx0XHRcdHNDb250ZXh0UGF0aCA9IFwiL1NPKGE9MSxiPTIpL19JdGVtXCI7XG5cdFx0XHRNb2RlbEhlbHBlci5nZXRNZXRhUGF0aEZvckNvbnRleHQob0NvbnRleHQpO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrR2V0TWV0YVBhdGgpLmxhc3RDYWxsZWRXaXRoKFwiL1NPKGE9MSxiPTIpL19JdGVtXCIpO1xuXHRcdH0pO1xuXHR9KTtcbn0pO1xuIl19
|
|
413
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1vZGVsSGVscGVyLnNwZWMudHMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJpdCIsIm9NZXRhTW9kZWwiLCJnZXRPYmplY3QiLCJzUGFyYW0iLCIka2luZCIsImJFeHBlY3RlZFZhbHVlIiwic01lc3NhZ2UiLCJ1bmRlZmluZWQiLCJmb3JFYWNoIiwib0lucHV0IiwiYWN0dWFsVmFsdWUiLCJNb2RlbEhlbHBlciIsImlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsImV4cGVjdCIsInRvRXF1YWwiLCJnZXRNZXRhQ29udGV4dCIsInNQYXRoIiwiZ2V0UGF0aCIsImlzRHJhZnRTdXBwb3J0ZWQiLCJ0ZW1wbGF0aW5nSW50ZXJmYWNlIiwiY29udGV4dCIsImdldE1vZGVsIiwiaXNDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQiLCJvRHVtbXlDb250cm9sIiwiQ29udHJvbCIsIm9JbnRlcm5hbE1vZGVsIiwiSlNPTk1vZGVsIiwiY29udHJvbCIsImVuaGFuY2VJbnRlcm5hbEpTT05Nb2RlbCIsInNldE1vZGVsIiwiYmluZEVsZW1lbnQiLCJwYXRoIiwibW9kZWwiLCJzU2V0VmFsdWUiLCJnZXRCaW5kaW5nQ29udGV4dCIsInNldFByb3BlcnR5Iiwic0dldFZhbHVlIiwiZ2V0UHJvcGVydHkiLCJpc0ZpbHRlcmluZ0Nhc2VTZW5zaXRpdmUiLCJvUGFyYW1ldGVyIiwiJE5hbWUiLCIkTnVsbGFibGUiLCIkVHlwZSIsIiRpc0NvbGxlY3Rpb24iLCJnZXRBY3Rpb25QYXJhbWV0ZXJJdGVtc01vZGVsUGF0aCIsInZMaXN0QmluZGluZyIsIm9WaWV3Iiwic1ZpZXdDb250ZXh0UGF0aCIsIm9Sb290QmluZGluZyIsInNCaW5kaW5nUGF0aCIsIm9Nb2NrR2V0TWV0YVBhdGgiLCJiZWZvcmVBbGwiLCJWaWV3IiwiVUk1TW9ja0hlbHBlciIsIk1vY2tNZXRhTW9kZWwiLCJqZXN0Iiwic3B5T24iLCJvTW9kZWwiLCJNb2NrTW9kZWwiLCJzZXRNZXRhTW9kZWwiLCJvTW9ja0dldE1vZGVsIiwibW9ja1JldHVyblZhbHVlIiwib0NvbnRleHQiLCJNb2NrQ29udGV4dCIsIm9Nb2NrR2V0Q29udGV4dCIsIm9Nb2NrR2V0UGF0aCIsIm1vY2tJbXBsZW1lbnRhdGlvbiIsImdldFJvb3RCaW5kaW5nIiwiYmVmb3JlRWFjaCIsImFmdGVyQWxsIiwicmVzdG9yZUFsbE1vY2tzIiwiZ2V0QWJzb2x1dGVNZXRhUGF0aEZvckxpc3RCaW5kaW5nIiwibGFzdENhbGxlZFdpdGgiLCJzQ29udGV4dFBhdGgiLCJnZXRNZXRhUGF0aEZvckNvbnRleHQiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7QUFNQUEsRUFBQUEsUUFBUSxDQUFDLGFBQUQsRUFBZ0IsWUFBTTtBQUM3QkMsSUFBQUEsRUFBRSxDQUFDLDhDQUFELEVBQWlELFlBQU07QUFDeEQsT0FDQztBQUNDQyxRQUFBQSxVQUFVLEVBQUU7QUFDWEMsVUFBQUEsU0FBUyxFQUFFLFVBQVNDLE1BQVQsRUFBeUI7QUFDbkMsbUJBQU9BLE1BQU0sS0FBSyxHQUFYLEdBQ0o7QUFDQSwrQkFBaUI7QUFBRUMsZ0JBQUFBLEtBQUssRUFBRTtBQUFUO0FBRGpCLGFBREksR0FJSjtBQUNBLHlFQUEyRDtBQUQzRCxhQUpIO0FBT0E7QUFUVSxTQURiO0FBWUNDLFFBQUFBLGNBQWMsRUFBRSxJQVpqQjtBQWFDQyxRQUFBQSxRQUFRLEVBQUU7QUFiWCxPQURELEVBZ0JDO0FBQ0NMLFFBQUFBLFVBQVUsRUFBRTtBQUNYQyxVQUFBQSxTQUFTLEVBQUUsVUFBU0MsTUFBVCxFQUF5QjtBQUNuQyxtQkFBT0EsTUFBTSxLQUFLLEdBQVgsR0FDSjtBQUNBLCtCQUFpQjtBQUFFQyxnQkFBQUEsS0FBSyxFQUFFO0FBQVQ7QUFEakIsYUFESSxHQUlKRyxTQUpIO0FBS0E7QUFQVSxTQURiO0FBVUNGLFFBQUFBLGNBQWMsRUFBRSxLQVZqQjtBQVdDQyxRQUFBQSxRQUFRLEVBQUU7QUFYWCxPQWhCRCxFQTZCRUUsT0E3QkYsQ0E2QlUsVUFBU0MsTUFBVCxFQUFpQjtB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QUFEO0FBQUEsWUFBaUQ7QUFDbEQ7QUFDQXlFLFVBQUFBLFlBQVksR0FBRyxvQkFBZjtBQUNBOUQsVUFBQUEsV0FBVyxDQUFDK0QscUJBQVosQ0FBa0NaLFFBQWxDO0FBQ0FqRCxVQUFBQSxNQUFNLENBQUNxQyxnQkFBRCxDQUFOLENBQXlCc0IsY0FBekIsQ0FBd0Msb0JBQXhDO0FBSmtEO0FBS2xELFNBTEM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQU1BLEtBekNPLENBQVI7QUEwQ0EsR0E3WU8sQ0FBUiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1vZGVsSGVscGVyLCB7IEludGVybmFsTW9kZWxDb250ZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCAqIGFzIFVJNU1vY2tIZWxwZXIgZnJvbSBcInNhcC9mZS90ZXN0L1VJNU1vY2tIZWxwZXJcIjtcbmltcG9ydCBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCBNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL01vZGVsXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5cbmRlc2NyaWJlKFwiTW9kZWxIZWxwZXJcIiwgKCkgPT4ge1xuXHRpdChcIlVuaXQgdGVzdCB0byBjaGVjayBpc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQgXCIsICgpID0+IHtcblx0XHRbXG5cdFx0XHR7XG5cdFx0XHRcdG9NZXRhTW9kZWw6IHtcblx0XHRcdFx0XHRnZXRPYmplY3Q6IGZ1bmN0aW9uKHNQYXJhbTogc3RyaW5nKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gc1BhcmFtID09PSBcIi9cIlxuXHRcdFx0XHRcdFx0XHQ/IHtcblx0XHRcdFx0XHRcdFx0XHRcdFwicm9vdEVudGl0eVNldFwiOiB7ICRraW5kOiBcIkVudGl0eVNldFwiIH1cblx0XHRcdFx0XHRcdFx0ICB9XG5cdFx0XHRcdFx0XHRcdDoge1xuXHRcdFx0XHRcdFx0XHRcdFx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuU2Vzc2lvbi52MS5TdGlja3lTZXNzaW9uU3VwcG9ydGVkXCI6IHRydWVcblx0XHRcdFx0XHRcdFx0ICB9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0YkV4cGVjdGVkVmFsdWU6IHRydWUsXG5cdFx0XHRcdHNNZXNzYWdlOiBcInByZXNlbmNlIG9mIHNlc3Npb24uc3RpY2t5c2Vzc2lvbiBhbm5vdGF0aW9uIGF0IHBhcmVudCBlbnRpdHlcIlxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0b01ldGFNb2RlbDoge1xuXHRcdFx0XHRcdGdldE9iamVjdDogZnVuY3Rpb24oc1BhcmFtOiBzdHJpbmcpIHtcblx0XHRcdFx0XHRcdHJldHVybiBzUGFyYW0gPT09IFwiL1wiXG5cdFx0XHRcdFx0XHRcdD8ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XCJyb290RW50aXR5U2V0XCI6IHsgJGtpbmQ6IFwiRW50aXR5U2V0XCIgfVxuXHRcdFx0XHRcdFx0XHQgIH1cblx0XHRcdFx0XHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRiRXhwZWN0ZWRWYWx1ZTogZmFsc2UsXG5cdFx0XHRcdHNNZXNzYWdlOiBcImFic2VuY2Ugb2Ygc2Vzc2lvbi5zdGlja3lzZXNzaW9uIGFubm90YXRpb24gYXQgcGFyZW50IGVudGl0eVwiXG5cdFx0XHR9XG5cdFx0XS5mb3JFYWNoKGZ1bmN0aW9uKG9JbnB1dCkge1xuXHRcdFx0Y29uc3QgYWN0dWFsVmFsdWUgPSBNb2RlbEhlbHBlci5pc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQob0lucHV0Lm9NZXRhTW9kZWwgYXMgT0RhdGFNZXRhTW9kZWwpO1xuXHRcdFx0ZXhwZWN0KGFjdHVhbFZhbHVlKS50b0VxdWFsKG9JbnB1dC5iRXhwZWN0ZWRWYWx1ZSk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGl0KFwiVW5pdCB0ZXN0IHRvIGNoZWNrIGlzRHJhZnRTdXBwb3J0ZWQgXCIsICgpID0+IHtcblx0XHRbXG5cdFx0XHR7XG5cdFx0XHRcdG9NZXRhTW9kZWw6IHtcblx0XHRcdFx0XHRnZXRNZXRhQ29udGV4dDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRnZXRPYmplY3Q6IGZ1bmN0aW9uKHNQYXRoOiBzdHJpbmcpIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoc1BhdGggPT09IFwiJGtpbmRcIikge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIFwiRW50aXR5U2V0XCI7XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiRWRpdEFjdGlvblwiOiBcIkRyYWZ0RWRpdFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIlNhdmVBY3Rpb25cIjogXCJEcmFmdFNhdmVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdGdldFBhdGg6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBcIi9Sb290RW50aXR5U2V0XCI7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRzUGF0aDogXCIvUm9vdEVudGl0eVNldCgxMjMpXCIsXG5cdFx0XHRcdGJFeHBlY3RlZFZhbHVlOiB0cnVlLFxuXHRcdFx0XHRzTWVzc2FnZTogXCJwcmVzZW5jZSBvZiBkcmFmdCBhbm5vdGF0aW9uc1wiXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRvTWV0YU1vZGVsOiB7XG5cdFx0XHRcdFx0Z2V0TWV0YUNvbnRleHQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0Z2V0T2JqZWN0OiBmdW5jdGlvbihzUGF0aDogc3RyaW5nKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHNQYXRoID09PSBcIiRraW5kXCIpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBcIkVudGl0eVNldFwiO1xuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdGdldFBhdGg6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBcIi9Sb290RW50aXR5U2V0XCI7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRzUGF0aDogXCIvUm9vdEVudGl0eVNldCgxMjMpXCIsXG5cdFx0XHRcdGJFeHBlY3RlZFZhbHVlOiBmYWxzZSxcblx0XHRcdFx0c01lc3NhZ2U6IFwiYWJzZW5jZSBvZiBkcmFmdCBhbm5vdGF0aW9uc1wiXG5cdFx0XHR9XG5cdFx0XS5mb3JFYWNoKGZ1bmN0aW9uKG9JbnB1dCkge1xuXHRcdFx0Y29uc3QgYWN0dWFsVmFsdWUgPSBNb2RlbEhlbHBlci5pc0RyYWZ0U3VwcG9ydGVkKG9JbnB1dC5vTWV0YU1vZGVsLCBvSW5wdXQuc1BhdGgpO1xuXHRcdFx0ZXhwZWN0KGFjdHVhbFZhbHVlKS50b0VxdWFsKG9JbnB1dC5iRXhwZWN0ZWRWYWx1ZSk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGl0KFwiVW5pdCB0ZXN0IHRvIGNoZWNrIGlzQ29sbGFib3JhdGlvbkRyYWZ0U3VwcG9ydGVkIFwiLCAoKSA9PiB7XG5cdFx0W1xuXHRcdFx0e1xuXHRcdFx0XHRvTWV0YU1vZGVsOiB7XG5cdFx0XHRcdFx0Z2V0T2JqZWN0OiBmdW5jdGlvbihzUGFyYW06IHN0cmluZykge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHNQYXJhbSA9PT0gXCIvXCJcblx0XHRcdFx0XHRcdFx0PyB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcInJvb3RFbnRpdHlTZXRcIjogeyAka2luZDogXCJFbnRpdHlTZXRcIiB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0XCJub2RlRW50aXR5U2V0XCI6IHsgJGtpbmQ6IFwiRW50aXR5U2V0XCIgfVxuXHRcdFx0XHRcdFx0XHQgIH1cblx0XHRcdFx0XHRcdFx0OiBcIlNoYXJlQWN0aW9uXCI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHR0ZW1wbGF0aW5nSW50ZXJmYWNlOiBudWxsLFxuXHRcdFx0XHRiRXhwZWN0ZWRWYWx1ZTogdHJ1ZSxcblx0XHRcdFx0c01lc3NhZ2U6IFwiU2hhcmUgQWN0aW9uIGV4aXN0c1wiXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRvTWV0YU1vZGVsOiB7XG5cdFx0XHRcdFx0Z2V0T2JqZWN0OiBmdW5jdGlvbihzUGFyYW06IHN0cmluZykge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHNQYXJhbSA9PT0gXCIvXCJcblx0XHRcdFx0XHRcdFx0PyB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcInJvb3RFbnRpdHlTZXRcIjogeyAka2luZDogXCJFbnRpdHlTZXRcIiB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0XCJub2RlRW50aXR5U2V0XCI6IHsgJGtpbmQ6IFwiRW50aXR5U2V0XCIgfVxuXHRcdFx0XHRcdFx0XHQgIH1cblx0XHRcdFx0XHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHR0ZW1wbGF0aW5nSW50ZXJmYWNlOiBudWxsLFxuXHRcdFx0XHRiRXhwZWN0ZWRWYWx1ZTogZmFsc2UsXG5cdFx0XHRcdHNNZXNzYWdlOiBcIlNoYXJlIEFjdGlvbiBkb2Vzbid0IGV4aXN0XCJcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdG9NZXRhTW9kZWw6IG51bGwsXG5cdFx0XHRcdHRlbXBsYXRpbmdJbnRlcmZhY2U6IHtcblx0XHRcdFx0XHRjb250ZXh0OiB7XG5cdFx0XHRcdFx0XHRnZXRNb2RlbDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdFx0Z2V0T2JqZWN0OiBmdW5jdGlvbihzUGFyYW06IHN0cmluZykge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHNQYXJhbSA9PT0gXCIvXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PyB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcInJvb3RFbnRpdHlTZXRcIjogeyAka2luZDogXCJFbnRpdHlTZXRcIiB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XCJub2RlRW50aXR5U2V0XCI6IHsgJGtpbmQ6IFwiRW50aXR5U2V0XCIgfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQgIH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0YkV4cGVjdGVkVmFsdWU6IGZhbHNlLFxuXHRcdFx0XHRzTWVzc2FnZTogXCJVc2FnZSBpbiBYTUwgVGVtcGxhdGVcIlxuXHRcdFx0fVxuXHRcdF0uZm9yRWFjaChmdW5jdGlvbihvSW5wdXQpIHtcblx0XHRcdGNvbnN0IGFjdHVhbFZhbHVlID0gTW9kZWxIZWxwZXIuaXNDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQob0lucHV0Lm9NZXRhTW9kZWwgYXMgT0RhdGFNZXRhTW9kZWwsIG9JbnB1dC50ZW1wbGF0aW5nSW50ZXJmYWNlKTtcblx0XHRcdGV4cGVjdChhY3R1YWxWYWx1ZSkudG9FcXVhbChvSW5wdXQuYkV4cGVjdGVkVmFsdWUpO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcIlVuaXQgdGVzdCB0byBjaGVjayBJbnRlcm5hbCBKU09OIE1vZGVsIGVuaGFuY2VtZW50XCIsICgpID0+IHtcblx0XHRjb25zdCBvRHVtbXlDb250cm9sID0gbmV3IENvbnRyb2woKTtcblxuXHRcdC8vdmFyIG9TdHViID0gc2FuZGJveC5zdHViKG9UYWJsZSwgXCJnZXRNb2RlbFwiKTtcblx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbCA9IG5ldyBKU09OTW9kZWwoe1xuXHRcdFx0Y29udHJvbDoge31cblx0XHR9KTtcblxuXHRcdE1vZGVsSGVscGVyLmVuaGFuY2VJbnRlcm5hbEpTT05Nb2RlbChvSW50ZXJuYWxNb2RlbCk7XG5cblx0XHRvRHVtbXlDb250cm9sLnNldE1vZGVsKG9JbnRlcm5hbE1vZGVsLCBcImludGVybmFsXCIpO1xuXHRcdC8vb1N0dWIud2l0aEFyZ3MoXCJpbnRlcm5hbFwiKS5yZXR1cm5zKHVpTW9kZWwpO1xuXHRcdG9EdW1teUNvbnRyb2wuYmluZEVsZW1lbnQoe1xuXHRcdFx0cGF0aDogXCIvY29udHJvbC9teUR1bW15Q29udHJvbFwiLFxuXHRcdFx0bW9kZWw6IFwiaW50ZXJuYWxcIlxuXHRcdH0pO1xuXG5cdFx0Y29uc3Qgc1NldFZhbHVlID0gXCJkdW1teVZhbHVlXCI7XG5cdFx0KG9EdW1teUNvbnRyb2wuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dCkuc2V0UHJvcGVydHkoXCJkdW1teVByb3BlcnR5XCIsIHNTZXRWYWx1ZSk7XG5cdFx0Y29uc3Qgc0dldFZhbHVlID0gb0R1bW15Q29udHJvbC5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpPy5nZXRQcm9wZXJ0eShcImR1bW15UHJvcGVydHlcIik7XG5cblx0XHRleHBlY3Qoc1NldFZhbHVlKS50b0VxdWFsKHNHZXRWYWx1ZSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiaXNGaWx0ZXJpbmdDYXNlU2Vuc2l0aXZlXCIsICgpID0+IHtcblx0XHRpdChcblx0XHRcdFwiU3VwcG9ydCBvZiAndG9sb3dlcicgaW4gZmlsdGVyIGZ1bmN0aW9ucyBhbm5vdGF0aW9uXCIsXG5cdFx0XHR7XG5cdFx0XHRcdFwicmVmZXJlbmNlc1wiOiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XCJ0eXBlXCI6IFwiSklSQVwiLFxuXHRcdFx0XHRcdFx0XCJJRFwiOiBcIkZJT1JJVEVDSFAxLTE5MDE5XCJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdF1cblx0XHRcdH0sXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG9NZXRhTW9kZWwgPSB7XG5cdFx0XHRcdFx0Z2V0T2JqZWN0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdHJldHVybiBbXCJjb250YWluc1wiLCBcImVuZHN3aXRoXCIsIFwic3RhcnRzd2l0aFwiLCBcImxlbmd0aFwiLCBcImluZGV4b2ZcIiwgXCJzdWJzdHJpbmdcIiwgXCJ0b2xvd2VyXCJdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fTtcblxuXHRcdFx0XHRleHBlY3QoTW9kZWxIZWxwZXIuaXNGaWx0ZXJpbmdDYXNlU2Vuc2l0aXZlKG9NZXRhTW9kZWwpKS50b0VxdWFsKGZhbHNlKTtcblx0XHRcdH1cblx0XHQpO1xuXHRcdGl0KFxuXHRcdFx0XCJObyBzdXBwb3J0IG9mICd0b2xvd2VyJyBpbiBmaWx0ZXIgZnVuY3Rpb25zIGFubm90YXRpb25cIixcblx0XHRcdHtcblx0XHRcdFx0XCJyZWZlcmVuY2VzXCI6IFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcInR5cGVcIjogXCJKSVJBXCIsXG5cdFx0XHRcdFx0XHRcIklEXCI6IFwiRklPUklURUNIUDEtMTkwMTlcIlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XVxuXHRcdFx0fSxcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3Qgb01ldGFNb2RlbCA9IHtcblx0XHRcdFx0XHRnZXRPYmplY3Q6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFtcImNvbnRhaW5zXCIsIFwiZW5kc3dpdGhcIiwgXCJzdGFydHN3aXRoXCIsIFwibGVuZ3RoXCIsIFwiaW5kZXhvZlwiLCBcInN1YnN0cmluZ1wiXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH07XG5cblx0XHRcdFx0ZXhwZWN0KE1vZGVsSGVscGVyLmlzRmlsdGVyaW5nQ2FzZVNlbnNpdGl2ZShvTWV0YU1vZGVsKSkudG9FcXVhbCh0cnVlKTtcblx0XHRcdH1cblx0XHQpO1xuXHRcdGl0KFxuXHRcdFx0XCJObyBmaWx0ZXIgZnVuY3Rpb25zIGFubm90YXRpb25cIixcblx0XHRcdHtcblx0XHRcdFx0XCJyZWZlcmVuY2VzXCI6IFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcInR5cGVcIjogXCJKSVJBXCIsXG5cdFx0XHRcdFx0XHRcIklEXCI6IFwiRklPUklURUNIUDEtMTkwMTlcIlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XVxuXHRcdFx0fSxcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3Qgb01ldGFNb2RlbCA9IHtcblx0XHRcdFx0XHRnZXRPYmplY3Q6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH07XG5cblx0XHRcdFx0ZXhwZWN0KE1vZGVsSGVscGVyLmlzRmlsdGVyaW5nQ2FzZVNlbnNpdGl2ZShvTWV0YU1vZGVsKSkudG9FcXVhbCh0cnVlKTtcblx0XHRcdH1cblx0XHQpO1xuXHRcdGl0KFxuXHRcdFx0XCJObyBtZXRhbW9kZWxcIixcblx0XHRcdHtcblx0XHRcdFx0XCJyZWZlcmVuY2VzXCI6IFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcInR5cGVcIjogXCJKSVJBXCIsXG5cdFx0XHRcdFx0XHRcIklEXCI6IFwiRklPUklURUNIUDEtMTkwMTlcIlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XVxuXHRcdFx0fSxcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3Qgb01ldGFNb2RlbCA9IHVuZGVmaW5lZDtcblx0XHRcdFx0ZXhwZWN0KE1vZGVsSGVscGVyLmlzRmlsdGVyaW5nQ2FzZVNlbnNpdGl2ZShvTWV0YU1vZGVsKSkudG9FcXVhbCh1bmRlZmluZWQpO1xuXHRcdFx0fVxuXHRcdCk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiZ2V0QWN0aW9uUGFyYW1ldGVySXRlbXNNb2RlbFBhdGhcIiwgKCkgPT4ge1xuXHRcdGl0KFwiUmV0dXJuIHZhbGlkIGZvcm1hdHRlciBzdHJpbmdcIiwgKCkgPT4ge1xuXHRcdFx0Y29uc3Qgb1BhcmFtZXRlciA9IHtcblx0XHRcdFx0JE5hbWU6IFwiU2FsZXNPcmRlckl0ZW1JZFwiLFxuXHRcdFx0XHQkTnVsbGFibGU6IGZhbHNlLFxuXHRcdFx0XHQkVHlwZTogXCJFZG0uSW50MzJcIixcblx0XHRcdFx0JGlzQ29sbGVjdGlvbjogdHJ1ZVxuXHRcdFx0fTtcblx0XHRcdGV4cGVjdChNb2RlbEhlbHBlci5nZXRBY3Rpb25QYXJhbWV0ZXJJdGVtc01vZGVsUGF0aChvUGFyYW1ldGVyKSkudG9FcXVhbChcIntwYXRoOiAnbXZmdmlldz4vU2FsZXNPcmRlckl0ZW1JZCd9XCIpO1xuXHRcdH0pO1xuXHRcdGl0KFwiUmV0dXJuIHN0cmluZyBmb3IgZW1wdHkgJE5hbWVcIiwgKCkgPT4ge1xuXHRcdFx0Y29uc3Qgb1BhcmFtZXRlciA9IHtcblx0XHRcdFx0JE5hbWU6IFwiXCIsXG5cdFx0XHRcdCROdWxsYWJsZTogZmFsc2UsXG5cdFx0XHRcdCRUeXBlOiBcIkVkbS5JbnQzMlwiLFxuXHRcdFx0XHQkaXNDb2xsZWN0aW9uOiB0cnVlXG5cdFx0XHR9O1xuXHRcdFx0ZXhwZWN0KE1vZGVsSGVscGVyLmdldEFjdGlvblBhcmFtZXRlckl0ZW1zTW9kZWxQYXRoKG9QYXJhbWV0ZXIpKS50b0VxdWFsKHVuZGVmaW5lZCk7XG5cdFx0fSk7XG5cdFx0aXQoXCJSZXR1cm4gc3RyaW5nIGZvciB1bmRlZmluZWQgJE5hbWVcIiwgKCkgPT4ge1xuXHRcdFx0Y29uc3Qgb1BhcmFtZXRlciA9IHtcblx0XHRcdFx0JE5hbWU6IHVuZGVmaW5lZCxcblx0XHRcdFx0JE51bGxhYmxlOiBmYWxzZSxcblx0XHRcdFx0JFR5cGU6IFwiRWRtLkludDMyXCIsXG5cdFx0XHRcdCRpc0NvbGxlY3Rpb246IHRydWVcblx0XHRcdH07XG5cdFx0XHRleHBlY3QoTW9kZWxIZWxwZXIuZ2V0QWN0aW9uUGFyYW1ldGVySXRlbXNNb2RlbFBhdGgob1BhcmFtZXRlcikpLnRvRXF1YWwodW5kZWZpbmVkKTtcblx0XHR9KTtcblx0XHRpdChcIlJldHVybiBzdHJpbmcgZm9yIHVuZGVmaW5lZCBvUGFyYW1ldGVyXCIsICgpID0+IHtcblx0XHRcdGNvbnN0IG9QYXJhbWV0ZXIgPSB1bmRlZmluZWQ7XG5cdFx0XHRleHBlY3QoTW9kZWxIZWxwZXIuZ2V0QWN0aW9uUGFyYW1ldGVySXRlbXNNb2RlbFBhdGgob1BhcmFtZXRlcikpLnRvRXF1YWwodW5kZWZpbmVkKTtcblx0XHR9KTtcblx0fSk7XG5cblx0ZGVzY3JpYmUoXCJnZXRBYnNvbHV0ZU1ldGFQYXRoRm9yTGlzdEJpbmRpbmdcIiwgKCkgPT4ge1xuXHRcdGxldCB2TGlzdEJpbmRpbmc6IGFueSwgb1ZpZXc6IFZpZXcsIHNWaWV3Q29udGV4dFBhdGg6IHN0cmluZywgb1Jvb3RCaW5kaW5nOiBhbnksIHNCaW5kaW5nUGF0aDogc3RyaW5nLCBvTW9ja0dldE1ldGFQYXRoOiBhbnk7XG5cdFx0YmVmb3JlQWxsKGFzeW5jIGZ1bmN0aW9uKCkge1xuXHRcdFx0b1ZpZXcgPSBuZXcgVmlldygpO1xuXG5cdFx0XHQvLyBtZXRhTW9kZWwgbW9ja3Ncblx0XHRcdGNvbnN0IG9NZXRhTW9kZWwgPSBuZXcgVUk1TW9ja0hlbHBlci5Nb2NrTWV0YU1vZGVsKCk7XG5cdFx0XHRvTW9ja0dldE1ldGFQYXRoID0gamVzdC5zcHlPbihvTWV0YU1vZGVsLCBcImdldE1ldGFQYXRoXCIpO1xuXG5cdFx0XHQvLyBtb2RlbCBtb2Nrc1xuXHRcdFx0Y29uc3Qgb01vZGVsID0gbmV3IFVJNU1vY2tIZWxwZXIuTW9ja01vZGVsKCk7XG5cdFx0XHRvTW9kZWwuc2V0TWV0YU1vZGVsKG9NZXRhTW9kZWwpO1xuXHRcdFx0Y29uc3Qgb01vY2tHZXRNb2RlbCA9IGplc3Quc3B5T24ob1ZpZXcsIFwiZ2V0TW9kZWxcIik7XG5cdFx0XHRvTW9ja0dldE1vZGVsLm1vY2tSZXR1cm5WYWx1ZSgob01vZGVsIGFzIGFueSkgYXMgTW9kZWwpO1xuXG5cdFx0XHQvLyBjb250ZXh0IG1vY2tzXG5cdFx0XHRjb25zdCBvQ29udGV4dCA9IG5ldyBVSTVNb2NrSGVscGVyLk1vY2tDb250ZXh0KCk7XG5cdFx0XHRjb25zdCBvTW9ja0dldENvbnRleHQgPSBqZXN0LnNweU9uKG9WaWV3LCBcImdldEJpbmRpbmdDb250ZXh0XCIpO1xuXHRcdFx0b01vY2tHZXRDb250ZXh0Lm1vY2tSZXR1cm5WYWx1ZShvQ29udGV4dCBhcyBhbnkpO1xuXHRcdFx0Y29uc3Qgb01vY2tHZXRQYXRoID0gamVzdC5zcHlPbihvQ29udGV4dCwgXCJnZXRQYXRoXCIpO1xuXHRcdFx0b01vY2tHZXRQYXRoLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBzVmlld0NvbnRleHRQYXRoKTtcblx0XHRcdHZMaXN0QmluZGluZyA9IHtcblx0XHRcdFx0Z2V0Um9vdEJpbmRpbmc6ICgpID0+IG9Sb290QmluZGluZyxcblx0XHRcdFx0Z2V0UGF0aDogKCkgPT4gc0JpbmRpbmdQYXRoXG5cdFx0XHR9O1xuXHRcdH0pO1xuXG5cdFx0YmVmb3JlRWFjaChhc3luYyBmdW5jdGlvbigpIHtcblx0XHRcdC8vIENsZWFuIEpTT05cblx0XHRcdG9Sb290QmluZGluZyA9IHt9O1xuXHRcdFx0c1ZpZXdDb250ZXh0UGF0aCA9IFwiXCI7XG5cdFx0XHRzQmluZGluZ1BhdGggPSBcIlwiO1xuXHRcdH0pO1xuXG5cdFx0YWZ0ZXJBbGwoYXN5bmMgZnVuY3Rpb24oKSB7XG5cdFx0XHRqZXN0LnJlc3RvcmVBbGxNb2NrcygpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJXaXRoIEFic29sdXRlIGxpc3QgYmluZGluZ1wiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHQvLyBDYXNlcyB0byBjb25zaWRlclxuXHRcdFx0b1Jvb3RCaW5kaW5nID0gdkxpc3RCaW5kaW5nO1xuXHRcdFx0c0JpbmRpbmdQYXRoID0gXCIvU09cIjtcblx0XHRcdE1vZGVsSGVscGVyLmdldEFic29sdXRlTWV0YVBhdGhGb3JMaXN0QmluZGluZyhvVmlldywgdkxpc3RCaW5kaW5nKTtcblx0XHRcdGV4cGVjdChvTW9ja0dldE1ldGFQYXRoKS5sYXN0Q2FsbGVkV2l0aChcIi9TT1wiKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiV2l0aCBSZWxhdGl2ZSBsaXN0IGJpbmRpbmdcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Ly8gQ2FzZXMgdG8gY29uc2lkZXJcblx0XHRcdG9Sb290QmluZGluZyA9IHtcblx0XHRcdFx0Z2V0UGF0aDogKCkgPT4gXCIvU08oYT0xLGI9MilcIlxuXHRcdFx0fTtcblx0XHRcdHNCaW5kaW5nUGF0aCA9IFwiX0l0ZW1cIjtcblx0XHRcdE1vZGVsSGVscGVyLmdldEFic29sdXRlTWV0YVBhdGhGb3JMaXN0QmluZGluZyhvVmlldywgdkxpc3RCaW5kaW5nKTtcblx0XHRcdGV4cGVjdChvTW9ja0dldE1ldGFQYXRoKS5sYXN0Q2FsbGVkV2l0aChcIi9TTyhhPTEsYj0yKS9fSXRlbVwiKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiV2l0aCBBYnNvbHV0ZSBwYXRoXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdC8vIENhc2VzIHRvIGNvbnNpZGVyXG5cdFx0XHRNb2RlbEhlbHBlci5nZXRBYnNvbHV0ZU1ldGFQYXRoRm9yTGlzdEJpbmRpbmcob1ZpZXcsIFwiL1NPXCIpO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrR2V0TWV0YVBhdGgpLmxhc3RDYWxsZWRXaXRoKFwiL1NPXCIpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJXaXRoIFN0cmluZyBwYXRoXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdC8vIENhc2VzIHRvIGNvbnNpZGVyXG5cdFx0XHRzVmlld0NvbnRleHRQYXRoID0gXCIvU08oYT0xLGI9MilcIjtcblx0XHRcdE1vZGVsSGVscGVyLmdldEFic29sdXRlTWV0YVBhdGhGb3JMaXN0QmluZGluZyhvVmlldywgXCJfSXRlbVwiKTtcblx0XHRcdGV4cGVjdChvTW9ja0dldE1ldGFQYXRoKS5sYXN0Q2FsbGVkV2l0aChcIi9TTyhhPTEsYj0yKS9fSXRlbVwiKTtcblx0XHR9KTtcblx0fSk7XG5cblx0ZGVzY3JpYmUoXCJnZXRNZXRhUGF0aEZvckNvbnRleHRcIiwgKCkgPT4ge1xuXHRcdGxldCBvQ29udGV4dDogYW55LCBzQ29udGV4dFBhdGg6IHN0cmluZywgb01vY2tHZXRNZXRhUGF0aDogYW55O1xuXHRcdGJlZm9yZUFsbChhc3luYyBmdW5jdGlvbigpIHtcblx0XHRcdC8vIG1ldGFNb2RlbCBtb2Nrc1xuXHRcdFx0Y29uc3Qgb01ldGFNb2RlbCA9IG5ldyBVSTVNb2NrSGVscGVyLk1vY2tNZXRhTW9kZWwoKTtcblx0XHRcdG9Nb2NrR2V0TWV0YVBhdGggPSBqZXN0LnNweU9uKG9NZXRhTW9kZWwsIFwiZ2V0TWV0YVBhdGhcIik7XG5cblx0XHRcdC8vIG1vZGVsIG1vY2tzXG5cdFx0XHRjb25zdCBvTW9kZWwgPSBuZXcgVUk1TW9ja0hlbHBlci5Nb2NrTW9kZWwoKTtcblx0XHRcdG9Nb2RlbC5zZXRNZXRhTW9kZWwob01ldGFNb2RlbCk7XG5cblx0XHRcdC8vIGNvbnRleHQgbW9ja3Ncblx0XHRcdG9Db250ZXh0ID0gbmV3IFVJNU1vY2tIZWxwZXIuTW9ja0NvbnRleHQoKTtcblx0XHRcdGNvbnN0IG9Nb2NrR2V0TW9kZWwgPSBqZXN0LnNweU9uKG9Db250ZXh0LCBcImdldE1vZGVsXCIpO1xuXHRcdFx0b01vY2tHZXRNb2RlbC5tb2NrUmV0dXJuVmFsdWUob01vZGVsKTtcblx0XHRcdGNvbnN0IG9Nb2NrR2V0UGF0aCA9IGplc3Quc3B5T24ob0NvbnRleHQsIFwiZ2V0UGF0aFwiKTtcblx0XHRcdG9Nb2NrR2V0UGF0aC5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gc0NvbnRleHRQYXRoKTtcblx0XHR9KTtcblxuXHRcdGJlZm9yZUVhY2goYXN5bmMgZnVuY3Rpb24oKSB7XG5cdFx0XHQvLyBDbGVhbiBKU09OXG5cdFx0XHRzQ29udGV4dFBhdGggPSBcIlwiO1xuXHRcdH0pO1xuXG5cdFx0YWZ0ZXJBbGwoYXN5bmMgZnVuY3Rpb24oKSB7XG5cdFx0XHRqZXN0LnJlc3RvcmVBbGxNb2NrcygpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJXaXRoIGNvbnRleHQgUGF0aFwiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHQvLyBDYXNlcyB0byBjb25zaWRlclxuXHRcdFx0c0NvbnRleHRQYXRoID0gXCIvU08oYT0xLGI9MilcIjtcblx0XHRcdE1vZGVsSGVscGVyLmdldE1ldGFQYXRoRm9yQ29udGV4dChvQ29udGV4dCk7XG5cdFx0XHRleHBlY3Qob01vY2tHZXRNZXRhUGF0aCkubGFzdENhbGxlZFdpdGgoXCIvU08oYT0xLGI9MilcIik7XG5cdFx0fSk7XG5cblx0XHRpdChcIldpdGggY29udGV4dCBQYXRoIGFuZCBuYXZpZ2F0aW9uXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdC8vIENhc2VzIHRvIGNvbnNpZGVyXG5cdFx0XHRzQ29udGV4dFBhdGggPSBcIi9TTyhhPTEsYj0yKS9fSXRlbVwiO1xuXHRcdFx0TW9kZWxIZWxwZXIuZ2V0TWV0YVBhdGhGb3JDb250ZXh0KG9Db250ZXh0KTtcblx0XHRcdGV4cGVjdChvTW9ja0dldE1ldGFQYXRoKS5sYXN0Q2FsbGVkV2l0aChcIi9TTyhhPTEsYj0yKS9fSXRlbVwiKTtcblx0XHR9KTtcblx0fSk7XG59KTtcbiJdfQ==
|