@sapui5/sap.fe.core 1.103.0 → 1.106.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 +5 -5
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime.js +121 -0
- package/src/sap/fe/core/ActionRuntime.ts +122 -0
- package/src/sap/fe/core/AppComponent.js +24 -11
- package/src/sap/fe/core/AppComponent.ts +17 -5
- package/src/sap/fe/core/AppStateHandler.js +74 -62
- package/src/sap/fe/core/AppStateHandler.ts +24 -29
- package/src/sap/fe/core/BaseController.js +2 -2
- package/src/sap/fe/core/CommonUtils.js +147 -180
- package/src/sap/fe/core/CommonUtils.ts +166 -193
- package/src/sap/fe/core/ExtensionAPI.js +2 -2
- package/src/sap/fe/core/PageController.js +2 -2
- package/src/sap/fe/core/TemplateComponent.js +21 -10
- package/src/sap/fe/core/TemplateComponent.ts +3 -0
- package/src/sap/fe/core/TemplateModel.js +2 -2
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +11 -3
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +7 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +194 -43
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +162 -24
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js +14 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.ts +5 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +609 -227
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +268 -119
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +111 -76
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +96 -76
- package/src/sap/fe/core/controllerextensions/BusyLocker.js +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js +723 -637
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +361 -398
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +2 -2
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +83 -55
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +42 -44
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +29 -27
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +35 -30
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +171 -74
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +167 -76
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +5 -21
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -17
- package/src/sap/fe/core/controllerextensions/MassEdit.js +3 -3
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +1 -1
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +2 -2
- package/src/sap/fe/core/controllerextensions/PageReady.js +3 -3
- package/src/sap/fe/core/controllerextensions/PageReady.ts +5 -1
- package/src/sap/fe/core/controllerextensions/Paginator.js +13 -13
- package/src/sap/fe/core/controllerextensions/Paginator.ts +11 -11
- package/src/sap/fe/core/controllerextensions/Placeholder.js +2 -2
- package/src/sap/fe/core/controllerextensions/Routing.js +2 -2
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
- package/src/sap/fe/core/controllerextensions/Share.js +154 -123
- package/src/sap/fe/core/controllerextensions/Share.ts +93 -95
- package/src/sap/fe/core/controllerextensions/SideEffects.js +157 -97
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +151 -95
- package/src/sap/fe/core/controllerextensions/ViewState.js +151 -80
- package/src/sap/fe/core/controllerextensions/ViewState.ts +95 -93
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +9 -9
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +6 -7
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +26 -11
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +30 -11
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +57 -40
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +55 -47
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +31 -32
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1376 -914
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +654 -714
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +372 -326
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +210 -276
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +309 -0
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +320 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +670 -521
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +537 -535
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +85 -65
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +16 -21
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +25 -13
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +53 -43
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +18 -27
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +9 -15
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +19 -3
- package/src/sap/fe/core/controls/ActionParameterDialogFieldValueHelp.fragment.xml +35 -0
- package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +26 -16
- package/src/sap/fe/core/controls/Any.js +1 -1
- package/src/sap/fe/core/controls/CommandExecution.js +2 -2
- package/src/sap/fe/core/controls/ConditionalWrapper.js +2 -2
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +5 -5
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +0 -3
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
- package/src/sap/fe/core/controls/FieldWrapper.js +2 -2
- package/src/sap/fe/core/controls/FileWrapper.js +8 -3
- package/src/sap/fe/core/controls/FileWrapper.ts +5 -1
- package/src/sap/fe/core/controls/FilterBar.js +2 -2
- package/src/sap/fe/core/controls/FormElementWrapper.js +2 -2
- package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -1
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +48 -17
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +2 -2
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +2 -2
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +2 -2
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +3 -3
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +2 -2
- package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +22 -35
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +2 -2
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +1 -1
- package/src/sap/fe/core/converters/ConverterContext.js +23 -2
- package/src/sap/fe/core/converters/ConverterContext.ts +34 -9
- package/src/sap/fe/core/converters/ManifestSettings.js +19 -18
- package/src/sap/fe/core/converters/ManifestSettings.ts +53 -47
- package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
- package/src/sap/fe/core/converters/MetaModelConverter.js +32 -10
- package/src/sap/fe/core/converters/MetaModelConverter.ts +42 -19
- package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
- package/src/sap/fe/core/converters/annotations/DataField.js +5 -2
- package/src/sap/fe/core/converters/annotations/DataField.ts +5 -1
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +69 -23
- package/src/sap/fe/core/converters/controls/Common/Action.js +98 -51
- package/src/sap/fe/core/converters/controls/Common/Action.ts +121 -44
- package/src/sap/fe/core/converters/controls/Common/Chart.js +31 -34
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +26 -34
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +43 -7
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +60 -33
- package/src/sap/fe/core/converters/controls/Common/Form.js +8 -6
- package/src/sap/fe/core/converters/controls/Common/Form.ts +11 -14
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +16 -15
- package/src/sap/fe/core/converters/controls/Common/Table.js +188 -157
- package/src/sap/fe/core/converters/controls/Common/Table.ts +279 -230
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +4 -4
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +57 -21
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +71 -18
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +30 -8
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +24 -7
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +43 -34
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +37 -25
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +85 -49
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +74 -50
- package/src/sap/fe/core/converters/helpers/Aggregation.js +54 -4
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +56 -8
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +6 -4
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +10 -2
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +182 -0
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +167 -0
- package/src/sap/fe/core/converters/helpers/ID.js +3 -1
- package/src/sap/fe/core/converters/helpers/ID.ts +1 -0
- package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
- package/src/sap/fe/core/converters/helpers/Key.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +2 -3
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +8 -14
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +6 -9
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +31 -31
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +54 -47
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +44 -15
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +64 -30
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
- package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
- package/src/sap/fe/core/formatters/StandardFormatter.js +13 -6
- package/src/sap/fe/core/formatters/StandardFormatter.ts +20 -14
- package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
- package/src/sap/fe/core/formatters/TableFormatterTypes.js +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
- package/src/sap/fe/core/fpm/Component.js +33 -7
- package/src/sap/fe/core/fpm/Component.ts +14 -0
- package/src/sap/fe/core/helpers/AnnotationEnum.js +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper.js +5 -4
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +4 -3
- package/src/sap/fe/core/helpers/BindingToolkit.js +56 -24
- package/src/sap/fe/core/helpers/BindingToolkit.ts +67 -21
- package/src/sap/fe/core/helpers/ClassSupport.js +31 -3
- package/src/sap/fe/core/helpers/ClassSupport.ts +24 -1
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -1
- package/src/sap/fe/core/helpers/EditState.js +1 -1
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -1
- package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -1
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +1 -1
- package/src/sap/fe/core/helpers/LoaderUtils.js +39 -0
- package/src/sap/fe/core/helpers/LoaderUtils.ts +14 -0
- package/src/sap/fe/core/helpers/MassEditHelper.js +475 -99
- package/src/sap/fe/core/helpers/MassEditHelper.ts +468 -155
- package/src/sap/fe/core/helpers/MessageStrip.js +81 -0
- package/src/sap/fe/core/helpers/MessageStrip.ts +79 -0
- package/src/sap/fe/core/helpers/ModelHelper.js +1 -1
- package/src/sap/fe/core/helpers/PasteHelper.js +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +82 -36
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +52 -36
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
- package/src/sap/fe/core/helpers/SideEffectsHelper.js +146 -0
- package/src/sap/fe/core/helpers/SideEffectsHelper.ts +128 -0
- package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
- package/src/sap/fe/core/helpers/Synchronization.js +1 -1
- package/src/sap/fe/core/helpers/ToES6Promise.js +32 -0
- package/src/sap/fe/core/helpers/ToES6Promise.ts +19 -0
- package/src/sap/fe/core/jsx-runtime/Fragment.js +16 -0
- package/src/sap/fe/core/jsx-runtime/Fragment.ts +3 -0
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js +109 -0
- package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +47 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +119 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +98 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js +105 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +89 -0
- package/src/sap/fe/core/jsx-runtime/jsx.js +12 -90
- package/src/sap/fe/core/jsx-runtime/jsx.ts +24 -85
- package/src/sap/fe/core/jsx-runtime/jsxs.js +1 -1
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +179 -0
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +150 -0
- package/src/sap/fe/core/library.js +2 -2
- package/src/sap/fe/core/library.support.js +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
- package/src/sap/fe/core/messagebundle.properties +4 -41
- package/src/sap/fe/core/messagebundle_ar.properties +22 -45
- package/src/sap/fe/core/messagebundle_bg.properties +22 -45
- package/src/sap/fe/core/messagebundle_ca.properties +22 -45
- package/src/sap/fe/core/messagebundle_cs.properties +22 -45
- package/src/sap/fe/core/messagebundle_cy.properties +21 -44
- package/src/sap/fe/core/messagebundle_da.properties +22 -45
- package/src/sap/fe/core/messagebundle_de.properties +22 -45
- package/src/sap/fe/core/messagebundle_el.properties +22 -45
- package/src/sap/fe/core/messagebundle_en.properties +21 -44
- package/src/sap/fe/core/messagebundle_en_GB.properties +21 -44
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +21 -42
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +20 -40
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +21 -42
- package/src/sap/fe/core/messagebundle_es.properties +22 -45
- package/src/sap/fe/core/messagebundle_es_MX.properties +22 -45
- package/src/sap/fe/core/messagebundle_et.properties +22 -45
- package/src/sap/fe/core/messagebundle_fi.properties +22 -45
- package/src/sap/fe/core/messagebundle_fr.properties +21 -44
- package/src/sap/fe/core/messagebundle_fr_CA.properties +20 -43
- package/src/sap/fe/core/messagebundle_hi.properties +22 -45
- package/src/sap/fe/core/messagebundle_hr.properties +22 -45
- package/src/sap/fe/core/messagebundle_hu.properties +22 -45
- package/src/sap/fe/core/messagebundle_id.properties +22 -45
- package/src/sap/fe/core/messagebundle_it.properties +22 -45
- package/src/sap/fe/core/messagebundle_iw.properties +22 -45
- package/src/sap/fe/core/messagebundle_ja.properties +22 -45
- package/src/sap/fe/core/messagebundle_kk.properties +22 -45
- package/src/sap/fe/core/messagebundle_ko.properties +27 -50
- package/src/sap/fe/core/messagebundle_lt.properties +22 -45
- package/src/sap/fe/core/messagebundle_lv.properties +22 -45
- package/src/sap/fe/core/messagebundle_ms.properties +22 -45
- package/src/sap/fe/core/messagebundle_nl.properties +24 -47
- package/src/sap/fe/core/messagebundle_no.properties +22 -45
- package/src/sap/fe/core/messagebundle_pl.properties +23 -46
- package/src/sap/fe/core/messagebundle_pt.properties +23 -46
- package/src/sap/fe/core/messagebundle_pt_PT.properties +22 -45
- package/src/sap/fe/core/messagebundle_ro.properties +22 -45
- package/src/sap/fe/core/messagebundle_ru.properties +22 -45
- package/src/sap/fe/core/messagebundle_sh.properties +22 -45
- package/src/sap/fe/core/messagebundle_sk.properties +22 -45
- package/src/sap/fe/core/messagebundle_sl.properties +22 -45
- package/src/sap/fe/core/messagebundle_sv.properties +22 -45
- package/src/sap/fe/core/messagebundle_th.properties +20 -43
- package/src/sap/fe/core/messagebundle_tr.properties +22 -45
- package/src/sap/fe/core/messagebundle_uk.properties +22 -45
- package/src/sap/fe/core/messagebundle_vi.properties +22 -45
- package/src/sap/fe/core/messagebundle_zh_CN.properties +22 -45
- package/src/sap/fe/core/messagebundle_zh_TW.properties +22 -45
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +2 -2
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +102 -74
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +62 -63
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +2 -2
- package/src/sap/fe/core/services/NavigationServiceFactory.js +11 -8
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +10 -7
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -2
- package/src/sap/fe/core/services/RoutingServiceFactory.js +2 -2
- package/src/sap/fe/core/services/ShellServicesFactory.js +22 -2
- package/src/sap/fe/core/services/ShellServicesFactory.ts +19 -0
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +4 -4
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +2 -2
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +251 -200
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +160 -144
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -2
- package/src/sap/fe/core/support/AnnotationIssue.support.js +1 -1
- package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +1 -1
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +1 -1
- package/src/sap/fe/core/support/CommonHelper.js +1 -1
- package/src/sap/fe/core/support/Diagnostics.js +1 -1
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +1 -1
- package/src/sap/fe/core/templating/CommonFormatters.js +4 -3
- package/src/sap/fe/core/templating/CommonFormatters.ts +5 -1
- package/src/sap/fe/core/templating/CriticalityFormatters.js +1 -1
- package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js +8 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +5 -2
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper.js +4 -5
- package/src/sap/fe/core/templating/EntitySetHelper.ts +4 -3
- package/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
- package/src/sap/fe/core/templating/FilterHelper.js +34 -15
- package/src/sap/fe/core/templating/FilterHelper.ts +28 -12
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.js +1 -1
- package/src/sap/fe/core/templating/UIFormatters.js +5 -3
- package/src/sap/fe/core/templating/UIFormatters.ts +7 -5
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +2 -2
- package/src/sap/fe/core/type/Email.js +2 -2
|
@@ -184,4 +184,4 @@ sap.ui.define(["sap/ui/core/Core", "sap/ui/core/format/DateFormat"], function (C
|
|
|
184
184
|
|
|
185
185
|
return valueFormatters;
|
|
186
186
|
}, true);
|
|
187
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlZhbHVlRm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbInZhbHVlRm9ybWF0dGVycyIsInNOYW1lIiwiaGFzT3duUHJvcGVydHkiLCJvQXJncyIsImFwcGx5IiwiZm9ybWF0V2l0aEJyYWNrZXRzIiwiZmlyc3RQYXJ0Iiwic2Vjb25kUGFydCIsIkNvcmUiLCJnZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUiLCJnZXRUZXh0IiwiX19mdW5jdGlvbk5hbWUiLCJmb3JtYXRXaXRoUGVyY2VudGFnZSIsInNWYWx1ZSIsInVuZGVmaW5lZCIsImNvbXB1dGVQZXJjZW50YWdlIiwidmFsdWUiLCJ0YXJnZXQiLCJzVW5pdCIsInNQZXJjZW50U3RyaW5nIiwiaVZhbHVlIiwicGFyc2VGbG9hdCIsImlUYXJnZXQiLCJ0b1N0cmluZyIsImZvcm1hdENyaXRpY2FsaXR5SWNvbiIsInZhbCIsInNJY29uIiwiZm9ybWF0Q3JpdGljYWxpdHlWYWx1ZVN0YXRlIiwic1ZhbHVlU3RhdGUiLCJmb3JtYXRDcml0aWNhbGl0eUJ1dHRvblR5cGUiLCJzVHlwZSIsImZvcm1hdENyaXRpY2FsaXR5Q29sb3JNaWNyb0NoYXJ0Iiwic0NvbG9yIiwiZm9ybWF0UHJvZ3Jlc3NJbmRpY2F0b3JUZXh0IiwidW5pdCIsInVuaXRTcGxpdCIsInNwbGl0Iiwic2VhcmNoVW5pdCIsImRhdGVGb3JtYXQiLCJEYXRlRm9ybWF0IiwiZ2V0RGF0ZUluc3RhbmNlIiwibG9jYWxlRGF0YSIsIm9Mb2NhbGVEYXRhIiwibURhdGEiLCJvUmVzb3VyY2VNb2RlbCIsInVuaXREaXNwbGF5ZWQiLCJkYXRlRmllbGRzIiwiZGlzcGxheU5hbWUiLCJ1bml0cyIsInNob3J0Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTUEsZUFBZSxHQUFHLFVBQXdCQyxLQUF4QixFQUE2RDtBQUNwRixRQUFJRCxlQUFlLENBQUNFLGNBQWhC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LENBQUosa0RBQUksc0JBQWdDYSxXQUFwQyxFQUFpRDtBQUN2REYsUUFBQUEsYUFBYSxHQUFHSixVQUFVLENBQUNPLEtBQVgsQ0FBaUJDLEtBQWpCLENBQXVCZixJQUF2QixFQUE2QmEsV0FBN0M7QUFDQTs7QUFFRCxhQUFPSCxjQUFjLENBQUNsQyxPQUFmLENBQXVCLG9EQUF2QixFQUE2RSxDQUFDTSxLQUFELEVBQVFDLE1BQVIsRUFBZ0I0QixhQUFoQixDQUE3RSxDQUFQO0FBQ0E7QUFDRCxHQWhCTTs7QUFpQlBaLEVBQUFBLDJCQUEyQixDQUFDdEIsY0FBNUIsR0FBNkMsbUVBQTdDOztBQUVBWCxFQUFBQSxlQUFlLENBQUNLLGtCQUFoQixHQUFxQ0Esa0JBQXJDO0FBQ0FMLEVBQUFBLGVBQWUsQ0FBQ1ksb0JBQWhCLEdBQXVDQSxvQkFBdkM7QUFDQVosRUFBQUEsZUFBZSxDQUFDZSxpQkFBaEIsR0FBb0NBLGlCQUFwQztBQUNBZixFQUFBQSxlQUFlLENBQUN3QixxQkFBaEIsR0FBd0NBLHFCQUF4QztBQUNBeEIsRUFBQUEsZUFBZSxDQUFDMkIsMkJBQWhCLEdBQThDQSwyQkFBOUM7QUFDQTNCLEVBQUFBLGVBQWUsQ0FBQzZCLDJCQUFoQixHQUE4Q0EsMkJBQTlDO0FBQ0E3QixFQUFBQSxlQUFlLENBQUMrQixnQ0FBaEIsR0FBbURBLGdDQUFuRDtBQUNBL0IsRUFBQUEsZUFBZSxDQUFDaUMsMkJBQWhCLEdBQThDQSwyQkFBOUM7QUFDQTtBQUNBO0FBQ0E7O1NBQ2VqQyxlIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29yZSBmcm9tIFwic2FwL3VpL2NvcmUvQ29yZVwiO1xuaW1wb3J0IERhdGVGb3JtYXQgZnJvbSBcInNhcC91aS9jb3JlL2Zvcm1hdC9EYXRlRm9ybWF0XCI7XG5pbXBvcnQgdHlwZSB7IENvcmVFeCB9IGZyb20gXCJ0eXBlcy9leHRlbnNpb25fdHlwZXNcIjtcbi8qKlxuICogQ29sbGVjdGlvbiBvZiB0YWJsZSBmb3JtYXR0ZXJzLlxuICpcbiAqIEBwYXJhbSB0aGlzIFRoZSBjb250ZXh0XG4gKiBAcGFyYW0gc05hbWUgVGhlIGlubmVyIGZ1bmN0aW9uIG5hbWVcbiAqIEBwYXJhbSBvQXJncyBUaGUgaW5uZXIgZnVuY3Rpb24gcGFyYW1ldGVyc1xuICogQHJldHVybnMgVGhlIHZhbHVlIGZyb20gdGhlIGlubmVyIGZ1bmN0aW9uXG4gKi9cbmNvbnN0IHZhbHVlRm9ybWF0dGVycyA9IGZ1bmN0aW9uICh0aGlzOiBvYmplY3QsIHNOYW1lOiBzdHJpbmcsIC4uLm9BcmdzOiBhbnlbXSk6IGFueSB7XG5cdGlmICh2YWx1ZUZvcm1hdHRlcnMuaGFzT3duUHJvcGVydHkoc05hbWUpKSB7XG5cdFx0cmV0dXJuICh2YWx1ZUZvcm1hdHRlcnMgYXMgYW55KVtzTmFtZV0uYXBwbHkodGhpcywgb0FyZ3MpO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG59O1xuXG5jb25zdCBmb3JtYXRXaXRoQnJhY2tldHMgPSAoZmlyc3RQYXJ0Pzogc3RyaW5nLCBzZWNvbmRQYXJ0Pzogc3RyaW5nKTogc3RyaW5nID0+IHtcblx0aWYgKGZpcnN0UGFydCAmJiBzZWNvbmRQYXJ0KSB7XG5cdFx0cmV0dXJuIChDb3JlIGFzIENvcmVFeCkuZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlKFwic2FwLmZlLmNvcmVcIikuZ2V0VGV4dChcIkNfRk9STUFUX0ZPUl9URVhUX0FSUkFOR0VNRU5UXCIsIFtmaXJzdFBhcnQsIHNlY29uZFBhcnRdKTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gZmlyc3RQYXJ0IHx8IHNlY29uZFBhcnQgfHwgXCJcIjtcblx0fVxufTtcbmZvcm1hdFdpdGhCcmFja2V0cy5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5WYWx1ZUZvcm1hdHRlciNmb3JtYXRXaXRoQnJhY2tldHNcIjtcblxuY29uc3QgZm9ybWF0V2l0aFBlcmNlbnRhZ2UgPSAoc1ZhbHVlPzogc3RyaW5nKTogc3RyaW5nID0+IHtcblx0cmV0dXJuIHNWYWx1ZSAhPT0gbnVsbCAmJiBzVmFsdWUgIT09IHVuZGVmaW5lZCA/IGAke3NWYWx1ZX0gJWAgOiBcIlwiO1xufTtcbmZvcm1hdFdpdGhQZXJjZW50YWdlLl9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLlZhbHVlRm9ybWF0dGVyI2Zvcm1hdFdpdGhQZXJjZW50YWdlXCI7XG5cbmNvbnN0IGNvbXB1dGVQZXJjZW50YWdlID0gKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIsIHRhcmdldDogc3RyaW5nIHwgbnVtYmVyLCBzVW5pdD86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG5cdGxldCBzUGVyY2VudFN0cmluZzogc3RyaW5nO1xuXHRjb25zdCBpVmFsdWU6IG51bWJlciA9IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHBhcnNlRmxvYXQodmFsdWUpIDogdmFsdWU7XG5cdGNvbnN0IGlUYXJnZXQ6IG51bWJlciA9IHR5cGVvZiB0YXJnZXQgPT09IFwic3RyaW5nXCIgPyBwYXJzZUZsb2F0KHRhcmdldCkgOiB0YXJnZXQ7XG5cblx0aWYgKHNVbml0ID09PSBcIiVcIikge1xuXHRcdGlmIChpVmFsdWUgPiAxMDApIHtcblx0XHRcdHNQZXJjZW50U3RyaW5nID0gXCIxMDBcIjtcblx0XHR9IGVsc2UgaWYgKGlWYWx1ZSA8PSAwKSB7XG5cdFx0XHRzUGVyY2VudFN0cmluZyA9IFwiMFwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzUGVyY2VudFN0cmluZyA9IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHZhbHVlIDogdmFsdWU/LnRvU3RyaW5nKCk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKGlWYWx1ZSA+IGlUYXJnZXQpIHtcblx0XHRzUGVyY2VudFN0cmluZyA9IFwiMTAwXCI7XG5cdH0gZWxzZSBpZiAoaVZhbHVlIDw9IDApIHtcblx0XHRzUGVyY2VudFN0cmluZyA9IFwiMFwiO1xuXHR9IGVsc2Uge1xuXHRcdHNQZXJjZW50U3RyaW5nID0gaVZhbHVlICYmIGlUYXJnZXQgPyAoKGlWYWx1ZSAvIGlUYXJnZXQpICogMTAwKS50b1N0cmluZygpIDogXCIwXCI7XG5cdH1cblx0cmV0dXJuIHNQZXJjZW50U3RyaW5nO1xufTtcbmNvbXB1dGVQZXJjZW50YWdlLl9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLlZhbHVlRm9ybWF0dGVyI2NvbXB1dGVQZXJjZW50YWdlXCI7XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRDcml0aWNhbGl0eUljb24gPSAodmFsPzogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcblx0bGV0IHNJY29uOiBzdHJpbmc7XG5cdGlmICh2YWwgPT09IFwiVUkuQ3JpdGljYWxpdHlUeXBlL05lZ2F0aXZlXCIgfHwgdmFsID09PSBcIjFcIiB8fCB2YWwgPT09IDEpIHtcblx0XHRzSWNvbiA9IFwic2FwLWljb246Ly9tZXNzYWdlLWVycm9yXCI7XG5cdH0gZWxzZSBpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9Dcml0aWNhbFwiIHx8IHZhbCA9PT0gXCIyXCIgfHwgdmFsID09PSAyKSB7XG5cdFx0c0ljb24gPSBcInNhcC1pY29uOi8vbWVzc2FnZS13YXJuaW5nXCI7XG5cdH0gZWxzZSBpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9Qb3NpdGl2ZVwiIHx8IHZhbCA9PT0gXCIzXCIgfHwgdmFsID09PSAzKSB7XG5cdFx0c0ljb24gPSBcInNhcC1pY29uOi8vbWVzc2FnZS1zdWNjZXNzXCI7XG5cdH0gZWxzZSBpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9JbmZvcm1hdGlvblwiIHx8IHZhbCA9PT0gXCI1XCIgfHwgdmFsID09PSA1KSB7XG5cdFx0c0ljb24gPSBcInNhcC1pY29uOi8vbWVzc2FnZS1pbmZvcm1hdGlvblwiO1xuXHR9IGVsc2Uge1xuXHRcdHNJY29uID0gXCJcIjtcblx0fVxuXHRyZXR1cm4gc0ljb247XG59O1xuZm9ybWF0Q3JpdGljYWxpdHlJY29uLl9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLlZhbHVlRm9ybWF0dGVyI2Zvcm1hdENyaXRpY2FsaXR5SWNvblwiO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0Q3JpdGljYWxpdHlWYWx1ZVN0YXRlID0gKHZhbD86IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG5cdGxldCBzVmFsdWVTdGF0ZTogc3RyaW5nO1xuXHRpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9OZWdhdGl2ZVwiIHx8IHZhbCA9PT0gXCIxXCIgfHwgdmFsID09PSAxKSB7XG5cdFx0c1ZhbHVlU3RhdGUgPSBcIkVycm9yXCI7XG5cdH0gZWxzZSBpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9Dcml0aWNhbFwiIHx8IHZhbCA9PT0gXCIyXCIgfHwgdmFsID09PSAyKSB7XG5cdFx0c1ZhbHVlU3RhdGUgPSBcIldhcm5pbmdcIjtcblx0fSBlbHNlIGlmICh2YWwgPT09IFwiVUkuQ3JpdGljYWxpdHlUeXBlL1Bvc2l0aXZlXCIgfHwgdmFsID09PSBcIjNcIiB8fCB2YWwgPT09IDMpIHtcblx0XHRzVmFsdWVTdGF0ZSA9IFwiU3VjY2Vzc1wiO1xuXHR9IGVsc2UgaWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvSW5mb3JtYXRpb25cIiB8fCB2YWwgPT09IFwiNVwiIHx8IHZhbCA9PT0gNSkge1xuXHRcdHNWYWx1ZVN0YXRlID0gXCJJbmZvcm1hdGlvblwiO1xuXHR9IGVsc2Uge1xuXHRcdHNWYWx1ZVN0YXRlID0gXCJOb25lXCI7XG5cdH1cblx0cmV0dXJuIHNWYWx1ZVN0YXRlO1xufTtcbmZvcm1hdENyaXRpY2FsaXR5VmFsdWVTdGF0ZS5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5WYWx1ZUZvcm1hdHRlciNmb3JtYXRDcml0aWNhbGl0eVZhbHVlU3RhdGVcIjtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdENyaXRpY2FsaXR5QnV0dG9uVHlwZSA9ICh2YWw/OiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuXHRsZXQgc1R5cGU6IHN0cmluZztcblx0aWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvTmVnYXRpdmVcIiB8fCB2YWwgPT09IFwiMVwiIHx8IHZhbCA9PT0gMSkge1xuXHRcdHNUeXBlID0gXCJSZWplY3RcIjtcblx0fSBlbHNlIGlmICh2YWwgPT09IFwiVUkuQ3JpdGljYWxpdHlUeXBlL1Bvc2l0aXZlXCIgfHwgdmFsID09PSBcIjNcIiB8fCB2YWwgPT09IDMpIHtcblx0XHRzVHlwZSA9IFwiQWNjZXB0XCI7XG5cdH0gZWxzZSB7XG5cdFx0c1R5cGUgPSBcIkRlZmF1bHRcIjtcblx0fVxuXHRyZXR1cm4gc1R5cGU7XG59O1xuZm9ybWF0Q3JpdGljYWxpdHlCdXR0b25UeXBlLl9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLlZhbHVlRm9ybWF0dGVyI2Zvcm1hdENyaXRpY2FsaXR5QnV0dG9uVHlwZVwiO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0Q3JpdGljYWxpdHlDb2xvck1pY3JvQ2hhcnQgPSAodmFsPzogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcblx0bGV0IHNDb2xvcjogc3RyaW5nO1xuXHRpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9OZWdhdGl2ZVwiIHx8IHZhbCA9PT0gXCIxXCIgfHwgdmFsID09PSAxKSB7XG5cdFx0c0NvbG9yID0gXCJFcnJvclwiO1xuXHR9IGVsc2UgaWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvQ3JpdGljYWxcIiB8fCB2YWwgPT09IFwiMlwiIHx8IHZhbCA9PT0gMikge1xuXHRcdHNDb2xvciA9IFwiQ3JpdGljYWxcIjtcblx0fSBlbHNlIGlmICh2YWwgPT09IFwiVUkuQ3JpdGljYWxpdHlUeXBlL1Bvc2l0aXZlXCIgfHwgdmFsID09PSBcIjNcIiB8fCB2YWwgPT09IDMpIHtcblx0XHRzQ29sb3IgPSBcIkdvb2RcIjtcblx0fSBlbHNlIHtcblx0XHRzQ29sb3IgPSBcIk5ldXRyYWxcIjtcblx0fVxuXHRyZXR1cm4gc0NvbG9yO1xufTtcbmZvcm1hdENyaXRpY2FsaXR5Q29sb3JNaWNyb0NoYXJ0Ll9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLlZhbHVlRm9ybWF0dGVyI2Zvcm1hdENyaXRpY2FsaXR5Q29sb3JNaWNyb0NoYXJ0XCI7XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRQcm9ncmVzc0luZGljYXRvclRleHQgPSAodmFsdWU6IGFueSwgdGFyZ2V0OiBhbnksIHVuaXQ6IGFueSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG5cdGlmICh2YWx1ZSAmJiB0YXJnZXQgJiYgdW5pdCkge1xuXHRcdGNvbnN0IHVuaXRTcGxpdCA9IHVuaXQuc3BsaXQoXCItXCIpO1xuXHRcdGNvbnN0IHNlYXJjaFVuaXQgPSBgJHt1bml0U3BsaXRbMV0gPT09IHVuZGVmaW5lZCA/IHVuaXQgOiB1bml0U3BsaXRbMV19LW5hcnJvd2A7XG5cdFx0Y29uc3QgZGF0ZUZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCkgYXMgYW55O1xuXHRcdGNvbnN0IGxvY2FsZURhdGEgPSBkYXRlRm9ybWF0Lm9Mb2NhbGVEYXRhLm1EYXRhO1xuXHRcdGNvbnN0IG9SZXNvdXJjZU1vZGVsID0gKENvcmUgYXMgQ29yZUV4KS5nZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUoXCJzYXAuZmUubWFjcm9zXCIpO1xuXHRcdGxldCB1bml0RGlzcGxheWVkID0gdW5pdDtcblx0XHRpZiAobG9jYWxlRGF0YT8uZGF0ZUZpZWxkc1tzZWFyY2hVbml0XT8uZGlzcGxheU5hbWUpIHtcblx0XHRcdHVuaXREaXNwbGF5ZWQgPSBsb2NhbGVEYXRhLmRhdGVGaWVsZHNbc2VhcmNoVW5pdF0uZGlzcGxheU5hbWU7XG5cdFx0fSBlbHNlIGlmIChsb2NhbGVEYXRhPy51bml0cz8uc2hvcnRbdW5pdF0/LmRpc3BsYXlOYW1lKSB7XG5cdFx0XHR1bml0RGlzcGxheWVkID0gbG9jYWxlRGF0YS51bml0cy5zaG9ydFt1bml0XS5kaXNwbGF5TmFtZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gb1Jlc291cmNlTW9kZWwuZ2V0VGV4dChcIlRfQ09NTU9OX1BST0dSRVNTX0lORElDQVRPUl9ESVNQTEFZX1ZBTFVFX1dJVEhfVU9NXCIsIFt2YWx1ZSwgdGFyZ2V0LCB1bml0RGlzcGxheWVkXSk7XG5cdH1cbn07XG5mb3JtYXRQcm9ncmVzc0luZGljYXRvclRleHQuX19mdW5jdGlvbk5hbWUgPSBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuVmFsdWVGb3JtYXR0ZXIjZm9ybWF0UHJvZ3Jlc3NJbmRpY2F0b3JUZXh0XCI7XG5cbnZhbHVlRm9ybWF0dGVycy5mb3JtYXRXaXRoQnJhY2tldHMgPSBmb3JtYXRXaXRoQnJhY2tldHM7XG52YWx1ZUZvcm1hdHRlcnMuZm9ybWF0V2l0aFBlcmNlbnRhZ2UgPSBmb3JtYXRXaXRoUGVyY2VudGFnZTtcbnZhbHVlRm9ybWF0dGVycy5jb21wdXRlUGVyY2VudGFnZSA9IGNvbXB1dGVQZXJjZW50YWdlO1xudmFsdWVGb3JtYXR0ZXJzLmZvcm1hdENyaXRpY2FsaXR5SWNvbiA9IGZvcm1hdENyaXRpY2FsaXR5SWNvbjtcbnZhbHVlRm9ybWF0dGVycy5mb3JtYXRDcml0aWNhbGl0eVZhbHVlU3RhdGUgPSBmb3JtYXRDcml0aWNhbGl0eVZhbHVlU3RhdGU7XG52YWx1ZUZvcm1hdHRlcnMuZm9ybWF0Q3JpdGljYWxpdHlCdXR0b25UeXBlID0gZm9ybWF0Q3JpdGljYWxpdHlCdXR0b25UeXBlO1xudmFsdWVGb3JtYXR0ZXJzLmZvcm1hdENyaXRpY2FsaXR5Q29sb3JNaWNyb0NoYXJ0ID0gZm9ybWF0Q3JpdGljYWxpdHlDb2xvck1pY3JvQ2hhcnQ7XG52YWx1ZUZvcm1hdHRlcnMuZm9ybWF0UHJvZ3Jlc3NJbmRpY2F0b3JUZXh0ID0gZm9ybWF0UHJvZ3Jlc3NJbmRpY2F0b3JUZXh0O1xuLyoqXG4gKiBAZ2xvYmFsXG4gKi9cbmV4cG9ydCBkZWZhdWx0IHZhbHVlRm9ybWF0dGVycztcbiJdfQ==
|
|
187
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ2YWx1ZUZvcm1hdHRlcnMiLCJzTmFtZSIsImhhc093blByb3BlcnR5Iiwib0FyZ3MiLCJhcHBseSIsImZvcm1hdFdpdGhCcmFja2V0cyIsImZpcnN0UGFydCIsInNlY29uZFBhcnQiLCJDb3JlIiwiZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlIiwiZ2V0VGV4dCIsIl9fZnVuY3Rpb25OYW1lIiwiZm9ybWF0V2l0aFBlcmNlbnRhZ2UiLCJzVmFsdWUiLCJ1bmRlZmluZWQiLCJjb21wdXRlUGVyY2VudGFnZSIsInZhbHVlIiwidGFyZ2V0Iiwic1VuaXQiLCJzUGVyY2VudFN0cmluZyIsImlWYWx1ZSIsInBhcnNlRmxvYXQiLCJpVGFyZ2V0IiwidG9TdHJpbmciLCJmb3JtYXRDcml0aWNhbGl0eUljb24iLCJ2YWwiLCJzSWNvbiIsImZvcm1hdENyaXRpY2FsaXR5VmFsdWVTdGF0ZSIsInNWYWx1ZVN0YXRlIiwiZm9ybWF0Q3JpdGljYWxpdHlCdXR0b25UeXBlIiwic1R5cGUiLCJmb3JtYXRDcml0aWNhbGl0eUNvbG9yTWljcm9DaGFydCIsInNDb2xvciIsImZvcm1hdFByb2dyZXNzSW5kaWNhdG9yVGV4dCIsInVuaXQiLCJ1bml0U3BsaXQiLCJzcGxpdCIsInNlYXJjaFVuaXQiLCJkYXRlRm9ybWF0IiwiRGF0ZUZvcm1hdCIsImdldERhdGVJbnN0YW5jZSIsImxvY2FsZURhdGEiLCJvTG9jYWxlRGF0YSIsIm1EYXRhIiwib1Jlc291cmNlTW9kZWwiLCJ1bml0RGlzcGxheWVkIiwiZGF0ZUZpZWxkcyIsImRpc3BsYXlOYW1lIiwidW5pdHMiLCJzaG9ydCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiVmFsdWVGb3JtYXR0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvcmUgZnJvbSBcInNhcC91aS9jb3JlL0NvcmVcIjtcbmltcG9ydCBEYXRlRm9ybWF0IGZyb20gXCJzYXAvdWkvY29yZS9mb3JtYXQvRGF0ZUZvcm1hdFwiO1xuaW1wb3J0IHR5cGUgeyBDb3JlRXggfSBmcm9tIFwidHlwZXMvZXh0ZW5zaW9uX3R5cGVzXCI7XG4vKipcbiAqIENvbGxlY3Rpb24gb2YgdGFibGUgZm9ybWF0dGVycy5cbiAqXG4gKiBAcGFyYW0gdGhpcyBUaGUgY29udGV4dFxuICogQHBhcmFtIHNOYW1lIFRoZSBpbm5lciBmdW5jdGlvbiBuYW1lXG4gKiBAcGFyYW0gb0FyZ3MgVGhlIGlubmVyIGZ1bmN0aW9uIHBhcmFtZXRlcnNcbiAqIEByZXR1cm5zIFRoZSB2YWx1ZSBmcm9tIHRoZSBpbm5lciBmdW5jdGlvblxuICovXG5jb25zdCB2YWx1ZUZvcm1hdHRlcnMgPSBmdW5jdGlvbiAodGhpczogb2JqZWN0LCBzTmFtZTogc3RyaW5nLCAuLi5vQXJnczogYW55W10pOiBhbnkge1xuXHRpZiAodmFsdWVGb3JtYXR0ZXJzLmhhc093blByb3BlcnR5KHNOYW1lKSkge1xuXHRcdHJldHVybiAodmFsdWVGb3JtYXR0ZXJzIGFzIGFueSlbc05hbWVdLmFwcGx5KHRoaXMsIG9BcmdzKTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxufTtcblxuY29uc3QgZm9ybWF0V2l0aEJyYWNrZXRzID0gKGZpcnN0UGFydD86IHN0cmluZywgc2Vjb25kUGFydD86IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdGlmIChmaXJzdFBhcnQgJiYgc2Vjb25kUGFydCkge1xuXHRcdHJldHVybiAoQ29yZSBhcyBDb3JlRXgpLmdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZShcInNhcC5mZS5jb3JlXCIpLmdldFRleHQoXCJDX0ZPUk1BVF9GT1JfVEVYVF9BUlJBTkdFTUVOVFwiLCBbZmlyc3RQYXJ0LCBzZWNvbmRQYXJ0XSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIGZpcnN0UGFydCB8fCBzZWNvbmRQYXJ0IHx8IFwiXCI7XG5cdH1cbn07XG5mb3JtYXRXaXRoQnJhY2tldHMuX19mdW5jdGlvbk5hbWUgPSBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuVmFsdWVGb3JtYXR0ZXIjZm9ybWF0V2l0aEJyYWNrZXRzXCI7XG5cbmNvbnN0IGZvcm1hdFdpdGhQZXJjZW50YWdlID0gKHNWYWx1ZT86IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdHJldHVybiBzVmFsdWUgIT09IG51bGwgJiYgc1ZhbHVlICE9PSB1bmRlZmluZWQgPyBgJHtzVmFsdWV9ICVgIDogXCJcIjtcbn07XG5mb3JtYXRXaXRoUGVyY2VudGFnZS5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5WYWx1ZUZvcm1hdHRlciNmb3JtYXRXaXRoUGVyY2VudGFnZVwiO1xuXG5jb25zdCBjb21wdXRlUGVyY2VudGFnZSA9ICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyLCB0YXJnZXQ6IHN0cmluZyB8IG51bWJlciwgc1VuaXQ/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuXHRsZXQgc1BlcmNlbnRTdHJpbmc6IHN0cmluZztcblx0Y29uc3QgaVZhbHVlOiBudW1iZXIgPSB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyBwYXJzZUZsb2F0KHZhbHVlKSA6IHZhbHVlO1xuXHRjb25zdCBpVGFyZ2V0OiBudW1iZXIgPSB0eXBlb2YgdGFyZ2V0ID09PSBcInN0cmluZ1wiID8gcGFyc2VGbG9hdCh0YXJnZXQpIDogdGFyZ2V0O1xuXG5cdGlmIChzVW5pdCA9PT0gXCIlXCIpIHtcblx0XHRpZiAoaVZhbHVlID4gMTAwKSB7XG5cdFx0XHRzUGVyY2VudFN0cmluZyA9IFwiMTAwXCI7XG5cdFx0fSBlbHNlIGlmIChpVmFsdWUgPD0gMCkge1xuXHRcdFx0c1BlcmNlbnRTdHJpbmcgPSBcIjBcIjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c1BlcmNlbnRTdHJpbmcgPSB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyB2YWx1ZSA6IHZhbHVlPy50b1N0cmluZygpO1xuXHRcdH1cblx0fSBlbHNlIGlmIChpVmFsdWUgPiBpVGFyZ2V0KSB7XG5cdFx0c1BlcmNlbnRTdHJpbmcgPSBcIjEwMFwiO1xuXHR9IGVsc2UgaWYgKGlWYWx1ZSA8PSAwKSB7XG5cdFx0c1BlcmNlbnRTdHJpbmcgPSBcIjBcIjtcblx0fSBlbHNlIHtcblx0XHRzUGVyY2VudFN0cmluZyA9IGlWYWx1ZSAmJiBpVGFyZ2V0ID8gKChpVmFsdWUgLyBpVGFyZ2V0KSAqIDEwMCkudG9TdHJpbmcoKSA6IFwiMFwiO1xuXHR9XG5cdHJldHVybiBzUGVyY2VudFN0cmluZztcbn07XG5jb21wdXRlUGVyY2VudGFnZS5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5WYWx1ZUZvcm1hdHRlciNjb21wdXRlUGVyY2VudGFnZVwiO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0Q3JpdGljYWxpdHlJY29uID0gKHZhbD86IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG5cdGxldCBzSWNvbjogc3RyaW5nO1xuXHRpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9OZWdhdGl2ZVwiIHx8IHZhbCA9PT0gXCIxXCIgfHwgdmFsID09PSAxKSB7XG5cdFx0c0ljb24gPSBcInNhcC1pY29uOi8vbWVzc2FnZS1lcnJvclwiO1xuXHR9IGVsc2UgaWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvQ3JpdGljYWxcIiB8fCB2YWwgPT09IFwiMlwiIHx8IHZhbCA9PT0gMikge1xuXHRcdHNJY29uID0gXCJzYXAtaWNvbjovL21lc3NhZ2Utd2FybmluZ1wiO1xuXHR9IGVsc2UgaWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvUG9zaXRpdmVcIiB8fCB2YWwgPT09IFwiM1wiIHx8IHZhbCA9PT0gMykge1xuXHRcdHNJY29uID0gXCJzYXAtaWNvbjovL21lc3NhZ2Utc3VjY2Vzc1wiO1xuXHR9IGVsc2UgaWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvSW5mb3JtYXRpb25cIiB8fCB2YWwgPT09IFwiNVwiIHx8IHZhbCA9PT0gNSkge1xuXHRcdHNJY29uID0gXCJzYXAtaWNvbjovL21lc3NhZ2UtaW5mb3JtYXRpb25cIjtcblx0fSBlbHNlIHtcblx0XHRzSWNvbiA9IFwiXCI7XG5cdH1cblx0cmV0dXJuIHNJY29uO1xufTtcbmZvcm1hdENyaXRpY2FsaXR5SWNvbi5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5WYWx1ZUZvcm1hdHRlciNmb3JtYXRDcml0aWNhbGl0eUljb25cIjtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdENyaXRpY2FsaXR5VmFsdWVTdGF0ZSA9ICh2YWw/OiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuXHRsZXQgc1ZhbHVlU3RhdGU6IHN0cmluZztcblx0aWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvTmVnYXRpdmVcIiB8fCB2YWwgPT09IFwiMVwiIHx8IHZhbCA9PT0gMSkge1xuXHRcdHNWYWx1ZVN0YXRlID0gXCJFcnJvclwiO1xuXHR9IGVsc2UgaWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvQ3JpdGljYWxcIiB8fCB2YWwgPT09IFwiMlwiIHx8IHZhbCA9PT0gMikge1xuXHRcdHNWYWx1ZVN0YXRlID0gXCJXYXJuaW5nXCI7XG5cdH0gZWxzZSBpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9Qb3NpdGl2ZVwiIHx8IHZhbCA9PT0gXCIzXCIgfHwgdmFsID09PSAzKSB7XG5cdFx0c1ZhbHVlU3RhdGUgPSBcIlN1Y2Nlc3NcIjtcblx0fSBlbHNlIGlmICh2YWwgPT09IFwiVUkuQ3JpdGljYWxpdHlUeXBlL0luZm9ybWF0aW9uXCIgfHwgdmFsID09PSBcIjVcIiB8fCB2YWwgPT09IDUpIHtcblx0XHRzVmFsdWVTdGF0ZSA9IFwiSW5mb3JtYXRpb25cIjtcblx0fSBlbHNlIHtcblx0XHRzVmFsdWVTdGF0ZSA9IFwiTm9uZVwiO1xuXHR9XG5cdHJldHVybiBzVmFsdWVTdGF0ZTtcbn07XG5mb3JtYXRDcml0aWNhbGl0eVZhbHVlU3RhdGUuX19mdW5jdGlvbk5hbWUgPSBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuVmFsdWVGb3JtYXR0ZXIjZm9ybWF0Q3JpdGljYWxpdHlWYWx1ZVN0YXRlXCI7XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRDcml0aWNhbGl0eUJ1dHRvblR5cGUgPSAodmFsPzogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcblx0bGV0IHNUeXBlOiBzdHJpbmc7XG5cdGlmICh2YWwgPT09IFwiVUkuQ3JpdGljYWxpdHlUeXBlL05lZ2F0aXZlXCIgfHwgdmFsID09PSBcIjFcIiB8fCB2YWwgPT09IDEpIHtcblx0XHRzVHlwZSA9IFwiUmVqZWN0XCI7XG5cdH0gZWxzZSBpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9Qb3NpdGl2ZVwiIHx8IHZhbCA9PT0gXCIzXCIgfHwgdmFsID09PSAzKSB7XG5cdFx0c1R5cGUgPSBcIkFjY2VwdFwiO1xuXHR9IGVsc2Uge1xuXHRcdHNUeXBlID0gXCJEZWZhdWx0XCI7XG5cdH1cblx0cmV0dXJuIHNUeXBlO1xufTtcbmZvcm1hdENyaXRpY2FsaXR5QnV0dG9uVHlwZS5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5WYWx1ZUZvcm1hdHRlciNmb3JtYXRDcml0aWNhbGl0eUJ1dHRvblR5cGVcIjtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdENyaXRpY2FsaXR5Q29sb3JNaWNyb0NoYXJ0ID0gKHZhbD86IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG5cdGxldCBzQ29sb3I6IHN0cmluZztcblx0aWYgKHZhbCA9PT0gXCJVSS5Dcml0aWNhbGl0eVR5cGUvTmVnYXRpdmVcIiB8fCB2YWwgPT09IFwiMVwiIHx8IHZhbCA9PT0gMSkge1xuXHRcdHNDb2xvciA9IFwiRXJyb3JcIjtcblx0fSBlbHNlIGlmICh2YWwgPT09IFwiVUkuQ3JpdGljYWxpdHlUeXBlL0NyaXRpY2FsXCIgfHwgdmFsID09PSBcIjJcIiB8fCB2YWwgPT09IDIpIHtcblx0XHRzQ29sb3IgPSBcIkNyaXRpY2FsXCI7XG5cdH0gZWxzZSBpZiAodmFsID09PSBcIlVJLkNyaXRpY2FsaXR5VHlwZS9Qb3NpdGl2ZVwiIHx8IHZhbCA9PT0gXCIzXCIgfHwgdmFsID09PSAzKSB7XG5cdFx0c0NvbG9yID0gXCJHb29kXCI7XG5cdH0gZWxzZSB7XG5cdFx0c0NvbG9yID0gXCJOZXV0cmFsXCI7XG5cdH1cblx0cmV0dXJuIHNDb2xvcjtcbn07XG5mb3JtYXRDcml0aWNhbGl0eUNvbG9yTWljcm9DaGFydC5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5WYWx1ZUZvcm1hdHRlciNmb3JtYXRDcml0aWNhbGl0eUNvbG9yTWljcm9DaGFydFwiO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0UHJvZ3Jlc3NJbmRpY2F0b3JUZXh0ID0gKHZhbHVlOiBhbnksIHRhcmdldDogYW55LCB1bml0OiBhbnkpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuXHRpZiAodmFsdWUgJiYgdGFyZ2V0ICYmIHVuaXQpIHtcblx0XHRjb25zdCB1bml0U3BsaXQgPSB1bml0LnNwbGl0KFwiLVwiKTtcblx0XHRjb25zdCBzZWFyY2hVbml0ID0gYCR7dW5pdFNwbGl0WzFdID09PSB1bmRlZmluZWQgPyB1bml0IDogdW5pdFNwbGl0WzFdfS1uYXJyb3dgO1xuXHRcdGNvbnN0IGRhdGVGb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpIGFzIGFueTtcblx0XHRjb25zdCBsb2NhbGVEYXRhID0gZGF0ZUZvcm1hdC5vTG9jYWxlRGF0YS5tRGF0YTtcblx0XHRjb25zdCBvUmVzb3VyY2VNb2RlbCA9IChDb3JlIGFzIENvcmVFeCkuZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlKFwic2FwLmZlLm1hY3Jvc1wiKTtcblx0XHRsZXQgdW5pdERpc3BsYXllZCA9IHVuaXQ7XG5cdFx0aWYgKGxvY2FsZURhdGE/LmRhdGVGaWVsZHNbc2VhcmNoVW5pdF0/LmRpc3BsYXlOYW1lKSB7XG5cdFx0XHR1bml0RGlzcGxheWVkID0gbG9jYWxlRGF0YS5kYXRlRmllbGRzW3NlYXJjaFVuaXRdLmRpc3BsYXlOYW1lO1xuXHRcdH0gZWxzZSBpZiAobG9jYWxlRGF0YT8udW5pdHM/LnNob3J0W3VuaXRdPy5kaXNwbGF5TmFtZSkge1xuXHRcdFx0dW5pdERpc3BsYXllZCA9IGxvY2FsZURhdGEudW5pdHMuc2hvcnRbdW5pdF0uZGlzcGxheU5hbWU7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG9SZXNvdXJjZU1vZGVsLmdldFRleHQoXCJUX0NPTU1PTl9QUk9HUkVTU19JTkRJQ0FUT1JfRElTUExBWV9WQUxVRV9XSVRIX1VPTVwiLCBbdmFsdWUsIHRhcmdldCwgdW5pdERpc3BsYXllZF0pO1xuXHR9XG59O1xuZm9ybWF0UHJvZ3Jlc3NJbmRpY2F0b3JUZXh0Ll9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLlZhbHVlRm9ybWF0dGVyI2Zvcm1hdFByb2dyZXNzSW5kaWNhdG9yVGV4dFwiO1xuXG52YWx1ZUZvcm1hdHRlcnMuZm9ybWF0V2l0aEJyYWNrZXRzID0gZm9ybWF0V2l0aEJyYWNrZXRzO1xudmFsdWVGb3JtYXR0ZXJzLmZvcm1hdFdpdGhQZXJjZW50YWdlID0gZm9ybWF0V2l0aFBlcmNlbnRhZ2U7XG52YWx1ZUZvcm1hdHRlcnMuY29tcHV0ZVBlcmNlbnRhZ2UgPSBjb21wdXRlUGVyY2VudGFnZTtcbnZhbHVlRm9ybWF0dGVycy5mb3JtYXRDcml0aWNhbGl0eUljb24gPSBmb3JtYXRDcml0aWNhbGl0eUljb247XG52YWx1ZUZvcm1hdHRlcnMuZm9ybWF0Q3JpdGljYWxpdHlWYWx1ZVN0YXRlID0gZm9ybWF0Q3JpdGljYWxpdHlWYWx1ZVN0YXRlO1xudmFsdWVGb3JtYXR0ZXJzLmZvcm1hdENyaXRpY2FsaXR5QnV0dG9uVHlwZSA9IGZvcm1hdENyaXRpY2FsaXR5QnV0dG9uVHlwZTtcbnZhbHVlRm9ybWF0dGVycy5mb3JtYXRDcml0aWNhbGl0eUNvbG9yTWljcm9DaGFydCA9IGZvcm1hdENyaXRpY2FsaXR5Q29sb3JNaWNyb0NoYXJ0O1xudmFsdWVGb3JtYXR0ZXJzLmZvcm1hdFByb2dyZXNzSW5kaWNhdG9yVGV4dCA9IGZvcm1hdFByb2dyZXNzSW5kaWNhdG9yVGV4dDtcbi8qKlxuICogQGdsb2JhbFxuICovXG5leHBvcnQgZGVmYXVsdCB2YWx1ZUZvcm1hdHRlcnM7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7OztFQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxJQUFNQSxlQUFlLEdBQUcsVUFBd0JDLEtBQXhCLEVBQTZEO0lBQ3BGLElBQUlELGVBQWUsQ0FBQ0UsY0FBaEIsQ0FBK0JELEtBQS9CLENBQUosRUFBMkM7TUFBQSxrQ0FEc0JFLEtBQ3RCO1FBRHNCQSxLQUN0QjtNQUFBOztNQUMxQyxPQUFRSCxlQUFELENBQXlCQyxLQUF6QixFQUFnQ0csS0FBaEMsQ0FBc0MsSUFBdEMsRUFBNENELEtBQTVDLENBQVA7SUFDQSxDQUZELE1BRU87TUFDTixPQUFPLEVBQVA7SUFDQTtFQUNELENBTkQ7O0VBUUEsSUFBTUUsa0JBQWtCLEdBQUcsVUFBQ0MsU0FBRCxFQUFxQkMsVUFBckIsRUFBcUQ7SUFDL0UsSUFBSUQsU0FBUyxJQUFJQyxVQUFqQixFQUE2QjtNQUM1QixPQUFRQyxJQUFELENBQWlCQyx3QkFBakIsQ0FBMEMsYUFBMUMsRUFBeURDLE9BQXpELENBQWlFLCtCQUFqRSxFQUFrRyxDQUFDSixTQUFELEVBQVlDLFVBQVosQ0FBbEcsQ0FBUDtJQUNBLENBRkQsTUFFTztNQUNOLE9BQU9ELFNBQVMsSUFBSUMsVUFBYixJQUEyQixFQUFsQztJQUNBO0VBQ0QsQ0FORDs7RUFPQUYsa0JBQWtCLENBQUNNLGNBQW5CLEdBQW9DLDBEQUFwQzs7RUFFQSxJQUFNQyxvQkFBb0IsR0FBRyxVQUFDQyxNQUFELEVBQTZCO0lBQ3pELE9BQU9BLE1BQU0sS0FBSyxJQUFYLElBQW1CQSxNQUFNLEtBQUtDLFNBQTlCLGFBQTZDRCxNQUE3QyxVQUEwRCxFQUFqRTtFQUNBLENBRkQ7O0VBR0FELG9CQUFvQixDQUFDRCxjQUFyQixHQUFzQyw0REFBdEM7O0VBRUEsSUFBTUksaUJBQWlCLEdBQUcsVUFBQ0MsS0FBRCxFQUF5QkMsTUFBekIsRUFBa0RDLEtBQWxELEVBQXlGO0lBQ2xILElBQUlDLGNBQUo7SUFDQSxJQUFNQyxNQUFjLEdBQUcsT0FBT0osS0FBUCxLQUFpQixRQUFqQixHQUE0QkssVUFBVSxDQUFDTCxLQUFELENBQXRDLEdBQWdEQSxLQUF2RTtJQUNBLElBQU1NLE9BQWUsR0FBRyxPQUFPTCxNQUFQLEtBQWtCLFFBQWxCLEdBQTZCSSxVQUFVLENBQUNKLE1BQUQsQ0FBdkMsR0FBa0RBLE1BQTFFOztJQUVBLElBQUlDLEtBQUssS0FBSyxHQUFkLEVBQW1CO01BQ2xCLElBQUlFLE1BQU0sR0FBRyxHQUFiLEVBQWtCO1FBQ2pCRCxjQUFjLEdBQUcsS0FBakI7TUFDQSxDQUZELE1BRU8sSUFBSUMsTUFBTSxJQUFJLENBQWQsRUFBaUI7UUFDdkJELGNBQWMsR0FBRyxHQUFqQjtNQUNBLENBRk0sTUFFQTtRQUNOQSxjQUFjLEdBQUcsT0FBT0gsS0FBUCxLQUFpQixRQUFqQixHQUE0QkEsS0FBNUIsR0FBb0NBLEtBQXBDLGFBQW9DQSxLQUFwQyx1QkFBb0NBLEtBQUssQ0FBRU8sUUFBUCxFQUFyRDtNQUNBO0lBQ0QsQ0FSRCxNQVFPLElBQUlILE1BQU0sR0FBR0UsT0FBYixFQUFzQjtNQUM1QkgsY0FBYyxHQUFHLEtBQWpCO0lBQ0EsQ0FGTSxNQUVBLElBQUlDLE1BQU0sSUFBSSxDQUFkLEVBQWlCO01BQ3ZCRCxjQUFjLEdBQUcsR0FBakI7SUFDQSxDQUZNLE1BRUE7TUFDTkEsY0FBYyxHQUFHQyxNQUFNLElBQUlFLE9BQVYsR0FBb0IsQ0FBRUYsTUFBTSxHQUFHRSxPQUFWLEdBQXFCLEdBQXRCLEVBQTJCQyxRQUEzQixFQUFwQixHQUE0RCxHQUE3RTtJQUNBOztJQUNELE9BQU9KLGNBQVA7RUFDQSxDQXJCRDs7RUFzQkFKLGlCQUFpQixDQUFDSixjQUFsQixHQUFtQyx5REFBbkM7O0VBRU8sSUFBTWEscUJBQXFCLEdBQUcsVUFBQ0MsR0FBRCxFQUErQztJQUNuRixJQUFJQyxLQUFKOztJQUNBLElBQUlELEdBQUcsS0FBSyw2QkFBUixJQUF5Q0EsR0FBRyxLQUFLLEdBQWpELElBQXdEQSxHQUFHLEtBQUssQ0FBcEUsRUFBdUU7TUFDdEVDLEtBQUssR0FBRywwQkFBUjtJQUNBLENBRkQsTUFFTyxJQUFJRCxHQUFHLEtBQUssNkJBQVIsSUFBeUNBLEdBQUcsS0FBSyxHQUFqRCxJQUF3REEsR0FBRyxLQUFLLENBQXBFLEVBQXVFO01BQzdFQyxLQUFLLEdBQUcsNEJBQVI7SUFDQSxDQUZNLE1BRUEsSUFBSUQsR0FBRyxLQUFLLDZCQUFSLElBQXlDQSxHQUFHLEtBQUssR0FBakQsSUFBd0RBLEdBQUcsS0FBSyxDQUFwRSxFQUF1RTtNQUM3RUMsS0FBSyxHQUFHLDRCQUFSO0lBQ0EsQ0FGTSxNQUVBLElBQUlELEdBQUcsS0FBSyxnQ0FBUixJQUE0Q0EsR0FBRyxLQUFLLEdBQXBELElBQTJEQSxHQUFHLEtBQUssQ0FBdkUsRUFBMEU7TUFDaEZDLEtBQUssR0FBRyxnQ0FBUjtJQUNBLENBRk0sTUFFQTtNQUNOQSxLQUFLLEdBQUcsRUFBUjtJQUNBOztJQUNELE9BQU9BLEtBQVA7RUFDQSxDQWRNOztFQWVQRixxQkFBcUIsQ0FBQ2IsY0FBdEIsR0FBdUMsNkRBQXZDOzs7RUFFTyxJQUFNZ0IsMkJBQTJCLEdBQUcsVUFBQ0YsR0FBRCxFQUErQztJQUN6RixJQUFJRyxXQUFKOztJQUNBLElBQUlILEdBQUcsS0FBSyw2QkFBUixJQUF5Q0EsR0FBRyxLQUFLLEdBQWpELElBQXdEQSxHQUFHLEtBQUssQ0FBcEUsRUFBdUU7TUFDdEVHLFdBQVcsR0FBRyxPQUFkO0lBQ0EsQ0FGRCxNQUVPLElBQUlILEdBQUcsS0FBSyw2QkFBUixJQUF5Q0EsR0FBRyxLQUFLLEdBQWpELElBQXdEQSxHQUFHLEtBQUssQ0FBcEUsRUFBdUU7TUFDN0VHLFdBQVcsR0FBRyxTQUFkO0lBQ0EsQ0FGTSxNQUVBLElBQUlILEdBQUcsS0FBSyw2QkFBUixJQUF5Q0EsR0FBRyxLQUFLLEdBQWpELElBQXdEQSxHQUFHLEtBQUssQ0FBcEUsRUFBdUU7TUFDN0VHLFdBQVcsR0FBRyxTQUFkO0lBQ0EsQ0FGTSxNQUVBLElBQUlILEdBQUcsS0FBSyxnQ0FBUixJQUE0Q0EsR0FBRyxLQUFLLEdBQXBELElBQTJEQSxHQUFHLEtBQUssQ0FBdkUsRUFBMEU7TUFDaEZHLFdBQVcsR0FBRyxhQUFkO0lBQ0EsQ0FGTSxNQUVBO01BQ05BLFdBQVcsR0FBRyxNQUFkO0lBQ0E7O0lBQ0QsT0FBT0EsV0FBUDtFQUNBLENBZE07O0VBZVBELDJCQUEyQixDQUFDaEIsY0FBNUIsR0FBNkMsbUVBQTdDOzs7RUFFTyxJQUFNa0IsMkJBQTJCLEdBQUcsVUFBQ0osR0FBRCxFQUErQztJQUN6RixJQUFJSyxLQUFKOztJQUNBLElBQUlMLEdBQUcsS0FBSyw2QkFBUixJQUF5Q0EsR0FBRyxLQUFLLEdBQWpELElBQXdEQSxHQUFHLEtBQUssQ0FBcEUsRUFBdUU7TUFDdEVLLEtBQUssR0FBRyxRQUFSO0lBQ0EsQ0FGRCxNQUVPLElBQUlMLEdBQUcsS0FBSyw2QkFBUixJQUF5Q0EsR0FBRyxLQUFLLEdBQWpELElBQXdEQSxHQUFHLEtBQUssQ0FBcEUsRUFBdUU7TUFDN0VLLEtBQUssR0FBRyxRQUFSO0lBQ0EsQ0FGTSxNQUVBO01BQ05BLEtBQUssR0FBRyxTQUFSO0lBQ0E7O0lBQ0QsT0FBT0EsS0FBUDtFQUNBLENBVk07O0VBV1BELDJCQUEyQixDQUFDbEIsY0FBNUIsR0FBNkMsbUVBQTdDOzs7RUFFTyxJQUFNb0IsZ0NBQWdDLEdBQUcsVUFBQ04sR0FBRCxFQUErQztJQUM5RixJQUFJTyxNQUFKOztJQUNBLElBQUlQLEdBQUcsS0FBSyw2QkFBUixJQUF5Q0EsR0FBRyxLQUFLLEdBQWpELElBQXdEQSxHQUFHLEtBQUssQ0FBcEUsRUFBdUU7TUFDdEVPLE1BQU0sR0FBRyxPQUFUO0lBQ0EsQ0FGRCxNQUVPLElBQUlQLEdBQUcsS0FBSyw2QkFBUixJQUF5Q0EsR0FBRyxLQUFLLEdBQWpELElBQXdEQSxHQUFHLEtBQUssQ0FBcEUsRUFBdUU7TUFDN0VPLE1BQU0sR0FBRyxVQUFUO0lBQ0EsQ0FGTSxNQUVBLElBQUlQLEdBQUcsS0FBSyw2QkFBUixJQUF5Q0EsR0FBRyxLQUFLLEdBQWpELElBQXdEQSxHQUFHLEtBQUssQ0FBcEUsRUFBdUU7TUFDN0VPLE1BQU0sR0FBRyxNQUFUO0lBQ0EsQ0FGTSxNQUVBO01BQ05BLE1BQU0sR0FBRyxTQUFUO0lBQ0E7O0lBQ0QsT0FBT0EsTUFBUDtFQUNBLENBWk07O0VBYVBELGdDQUFnQyxDQUFDcEIsY0FBakMsR0FBa0Qsd0VBQWxEOzs7RUFFTyxJQUFNc0IsMkJBQTJCLEdBQUcsVUFBQ2pCLEtBQUQsRUFBYUMsTUFBYixFQUEwQmlCLElBQTFCLEVBQTREO0lBQ3RHLElBQUlsQixLQUFLLElBQUlDLE1BQVQsSUFBbUJpQixJQUF2QixFQUE2QjtNQUFBOztNQUM1QixJQUFNQyxTQUFTLEdBQUdELElBQUksQ0FBQ0UsS0FBTCxDQUFXLEdBQVgsQ0FBbEI7TUFDQSxJQUFNQyxVQUFVLGFBQU1GLFNBQVMsQ0FBQyxDQUFELENBQVQsS0FBaUJyQixTQUFqQixHQUE2Qm9CLElBQTdCLEdBQW9DQyxTQUFTLENBQUMsQ0FBRCxDQUFuRCxZQUFoQjtNQUNBLElBQU1HLFVBQVUsR0FBR0MsVUFBVSxDQUFDQyxlQUFYLEVBQW5CO01BQ0EsSUFBTUMsVUFBVSxHQUFHSCxVQUFVLENBQUNJLFdBQVgsQ0FBdUJDLEtBQTFDO01BQ0EsSUFBTUMsY0FBYyxHQUFJcEMsSUFBRCxDQUFpQkMsd0JBQWpCLENBQTBDLGVBQTFDLENBQXZCO01BQ0EsSUFBSW9DLGFBQWEsR0FBR1gsSUFBcEI7O01BQ0EsSUFBSU8sVUFBSixhQUFJQSxVQUFKLHdDQUFJQSxVQUFVLENBQUVLLFVBQVosQ0FBdUJULFVBQXZCLENBQUosa0RBQUksc0JBQW9DVSxXQUF4QyxFQUFxRDtRQUNwREYsYUFBYSxHQUFHSixVQUFVLENBQUNLLFVBQVgsQ0FBc0JULFVBQXRCLEVBQWtDVSxXQUFsRDtNQUNBLENBRkQsTUFFTyxJQUFJTixVQUFKLGFBQUlBLFVBQUosb0NBQUlBLFVBQVUsQ0FBRU8sS0FBaEIsdUVBQUksa0JBQW1CQyxLQUFuQixDQUF5QmYsSUFBekIsQ0FBSixrREFBSSxzQkFBZ0NhLFdBQXBDLEVBQWlEO1FBQ3ZERixhQUFhLEdBQUdKLFVBQVUsQ0FBQ08sS0FBWCxDQUFpQkMsS0FBakIsQ0FBdUJmLElBQXZCLEVBQTZCYSxXQUE3QztNQUNBOztNQUVELE9BQU9ILGNBQWMsQ0FBQ2xDLE9BQWYsQ0FBdUIsb0RBQXZCLEVBQTZFLENBQUNNLEtBQUQsRUFBUUMsTUFBUixFQUFnQjRCLGFBQWhCLENBQTdFLENBQVA7SUFDQTtFQUNELENBaEJNOztFQWlCUFosMkJBQTJCLENBQUN0QixjQUE1QixHQUE2QyxtRUFBN0M7O0VBRUFYLGVBQWUsQ0FBQ0ssa0JBQWhCLEdBQXFDQSxrQkFBckM7RUFDQUwsZUFBZSxDQUFDWSxvQkFBaEIsR0FBdUNBLG9CQUF2QztFQUNBWixlQUFlLENBQUNlLGlCQUFoQixHQUFvQ0EsaUJBQXBDO0VBQ0FmLGVBQWUsQ0FBQ3dCLHFCQUFoQixHQUF3Q0EscUJBQXhDO0VBQ0F4QixlQUFlLENBQUMyQiwyQkFBaEIsR0FBOENBLDJCQUE5QztFQUNBM0IsZUFBZSxDQUFDNkIsMkJBQWhCLEdBQThDQSwyQkFBOUM7RUFDQTdCLGVBQWUsQ0FBQytCLGdDQUFoQixHQUFtREEsZ0NBQW5EO0VBQ0EvQixlQUFlLENBQUNpQywyQkFBaEIsR0FBOENBLDJCQUE5QztFQUNBO0FBQ0E7QUFDQTs7U0FDZWpDLGUifQ==
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/TemplateComponent"], function (ClassSupport, TemplateComponent) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
var _dec, _dec2, _class, _class2, _descriptor;
|
|
8
|
+
var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2, _descriptor3;
|
|
9
9
|
|
|
10
10
|
var property = ClassSupport.property;
|
|
11
11
|
var defineUI5Class = ClassSupport.defineUI5Class;
|
|
@@ -16,7 +16,7 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/TemplateComponen
|
|
|
16
16
|
|
|
17
17
|
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
|
|
18
18
|
|
|
19
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf
|
|
19
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
20
20
|
|
|
21
21
|
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
|
|
22
22
|
|
|
@@ -54,20 +54,34 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/TemplateComponen
|
|
|
54
54
|
manifest: "json"
|
|
55
55
|
}), _dec2 = property({
|
|
56
56
|
type: "string"
|
|
57
|
+
}), _dec3 = property({
|
|
58
|
+
type: "string"
|
|
59
|
+
}), _dec4 = property({
|
|
60
|
+
type: "string"
|
|
57
61
|
}), _dec(_class = (_class2 = /*#__PURE__*/function (_TemplateComponent) {
|
|
58
62
|
_inheritsLoose(FPMComponent, _TemplateComponent);
|
|
59
63
|
|
|
60
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Name of the XML view which is used for this page. The XML view can contain SAP Fiori elements Building Blocks and XML template constructions.
|
|
66
|
+
*
|
|
67
|
+
* @public
|
|
68
|
+
*/
|
|
69
|
+
function FPMComponent(mSettings) {
|
|
61
70
|
var _this;
|
|
62
71
|
|
|
63
|
-
|
|
64
|
-
|
|
72
|
+
if (mSettings.viewType === "JSX") {
|
|
73
|
+
mSettings._mdxViewName = mSettings.viewName;
|
|
74
|
+
mSettings.viewName = "module:sap/fe/core/jsx-runtime/ViewLoader";
|
|
65
75
|
}
|
|
66
76
|
|
|
67
|
-
_this = _TemplateComponent.call
|
|
77
|
+
_this = _TemplateComponent.call(this, mSettings) || this;
|
|
68
78
|
|
|
69
79
|
_initializerDefineProperty(_this, "viewName", _descriptor, _assertThisInitialized(_this));
|
|
70
80
|
|
|
81
|
+
_initializerDefineProperty(_this, "controllerName", _descriptor2, _assertThisInitialized(_this));
|
|
82
|
+
|
|
83
|
+
_initializerDefineProperty(_this, "_mdxViewName", _descriptor3, _assertThisInitialized(_this));
|
|
84
|
+
|
|
71
85
|
return _this;
|
|
72
86
|
}
|
|
73
87
|
|
|
@@ -77,7 +91,19 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/TemplateComponen
|
|
|
77
91
|
enumerable: true,
|
|
78
92
|
writable: true,
|
|
79
93
|
initializer: null
|
|
94
|
+
}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "controllerName", [_dec3], {
|
|
95
|
+
configurable: true,
|
|
96
|
+
enumerable: true,
|
|
97
|
+
writable: true,
|
|
98
|
+
initializer: null
|
|
99
|
+
}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "_mdxViewName", [_dec4], {
|
|
100
|
+
configurable: true,
|
|
101
|
+
enumerable: true,
|
|
102
|
+
writable: true,
|
|
103
|
+
initializer: function () {
|
|
104
|
+
return "";
|
|
105
|
+
}
|
|
80
106
|
})), _class2)) || _class);
|
|
81
107
|
return FPMComponent;
|
|
82
108
|
}, false);
|
|
83
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
109
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGUE1Db21wb25lbnQiLCJkZWZpbmVVSTVDbGFzcyIsIm1hbmlmZXN0IiwicHJvcGVydHkiLCJ0eXBlIiwibVNldHRpbmdzIiwidmlld1R5cGUiLCJfbWR4Vmlld05hbWUiLCJ2aWV3TmFtZSIsIlRlbXBsYXRlQ29tcG9uZW50Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJDb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IFRlbXBsYXRlQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9UZW1wbGF0ZUNvbXBvbmVudFwiO1xuXG4vKipcbiAqIENvbXBvbmVudCB0aGF0IGNhbiBiZSB1c2VkIGFzIGEgd3JhcHBlciBjb21wb25lbnQgZm9yIGN1c3RvbSBwYWdlcy5cbiAqXG4gKiBUaGUgY29tcG9uZW50IGNhbiBiZSB1c2VkIGluIGNhc2UgeW91IHdhbnQgdG8gdXNlIFNBUCBGaW9yaSBlbGVtZW50cyBCdWlsZGluZyBCbG9ja3Mgb3IgWE1MIHRlbXBsYXRlXG4gKiBjb25zdHJ1Y3Rpb25zLiBZb3UgY2FuIGVpdGhlciBleHRlbmQgdGhlIGNvbXBvbmVudCBhbmQgc2V0IHRoZSB2aWV3TmFtZSBhbmQgY29udGV4dFBhdGggd2l0aGluIHlvdXIgY29kZVxuICogb3IgeW91IGNhbiB1c2UgaXQgdG8gd3JhcCB5b3VyIGN1c3RvbSBYTUwgdmlldyBkaXJlY3RseSB0aGUgbWFuaWZlc3Qgd2hlbiB5b3UgZGVmaW5lIHlvdXIgY3VzdG9tIHBhZ2VcbiAqIHVuZGVyIHNhcHVpNS9yb3V0aW5nL3RhcmdldHM6XG4gKlxuICogPHByZT5cbiAqIFwibXlDdXN0b21QYWdlXCI6IHtcbiAqXHRcInR5cGVcIjogXCJDb21wb25lbnRcIixcbiAqXHRcImlkXCI6IFwibXlDdXN0b21QYWdlXCIsXG4gKlx0XCJuYW1lXCI6IFwic2FwLmZlLmNvcmUuZnBtXCIsXG4gKlx0XCJ0aXRsZVwiOiBcIk15IEN1c3RvbSBQYWdlXCIsXG4gKlx0XCJvcHRpb25zXCI6IHtcbiAqXHRcdFwic2V0dGluZ3NcIjoge1xuICpcdFx0XHRcInZpZXdOYW1lXCI6IFwibXlOYW1lc3BhY2UubXlWaWV3XCIsXG4gKlx0XHRcdFwiY29udGV4dFBhdGhcIjogXCIvTXlFbnRpdHlTZXRcIlxuICpcdFx0XHR9XG4gKlx0XHR9XG4gKlx0fVxuICogPC9wcmU+XG4gKlxuICogQG5hbWUgc2FwLmZlLmNvcmUuZnBtLkNvbXBvbmVudFxuICogQHB1YmxpY1xuICogQGV4cGVyaW1lbnRhbCBBcyBvZiB2ZXJzaW9uIDEuOTIuMFxuICogQHNpbmNlIDEuOTIuMFxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5mcG0uQ29tcG9uZW50XCIsIHsgbWFuaWZlc3Q6IFwianNvblwiIH0pXG5jbGFzcyBGUE1Db21wb25lbnQgZXh0ZW5kcyBUZW1wbGF0ZUNvbXBvbmVudCB7XG5cdC8qKlxuXHQgKiBOYW1lIG9mIHRoZSBYTUwgdmlldyB3aGljaCBpcyB1c2VkIGZvciB0aGlzIHBhZ2UuIFRoZSBYTUwgdmlldyBjYW4gY29udGFpbiBTQVAgRmlvcmkgZWxlbWVudHMgQnVpbGRpbmcgQmxvY2tzIGFuZCBYTUwgdGVtcGxhdGUgY29uc3RydWN0aW9ucy5cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHR2aWV3TmFtZSE6IHN0cmluZztcblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRjb250cm9sbGVyTmFtZT86IHN0cmluZztcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdF9tZHhWaWV3TmFtZSA9IFwiXCI7XG5cblx0Y29uc3RydWN0b3IobVNldHRpbmdzOiBQcm9wZXJ0aWVzT2Y8RlBNQ29tcG9uZW50Pikge1xuXHRcdGlmIChtU2V0dGluZ3Mudmlld1R5cGUgPT09IFwiSlNYXCIpIHtcblx0XHRcdG1TZXR0aW5ncy5fbWR4Vmlld05hbWUgPSBtU2V0dGluZ3Mudmlld05hbWU7XG5cdFx0XHRtU2V0dGluZ3Mudmlld05hbWUgPSBcIm1vZHVsZTpzYXAvZmUvY29yZS9qc3gtcnVudGltZS9WaWV3TG9hZGVyXCI7XG5cdFx0fVxuXHRcdHN1cGVyKG1TZXR0aW5ncyBhcyBhbnkpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZQTUNvbXBvbmVudDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7TUFFTUEsWSxXQURMQyxjQUFjLENBQUMsMkJBQUQsRUFBOEI7SUFBRUMsUUFBUSxFQUFFO0VBQVosQ0FBOUIsQyxVQU9iQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVIsQ0FBRCxDLFVBRVJELFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUixDQUFELEMsVUFHUkQsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFSLENBQUQsQzs7O0lBVlQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtJQVNDLHNCQUFZQyxTQUFaLEVBQW1EO01BQUE7O01BQ2xELElBQUlBLFNBQVMsQ0FBQ0MsUUFBVixLQUF1QixLQUEzQixFQUFrQztRQUNqQ0QsU0FBUyxDQUFDRSxZQUFWLEdBQXlCRixTQUFTLENBQUNHLFFBQW5DO1FBQ0FILFNBQVMsQ0FBQ0csUUFBVixHQUFxQiwyQ0FBckI7TUFDQTs7TUFDRCxzQ0FBTUgsU0FBTjs7TUFMa0Q7O01BQUE7O01BQUE7O01BQUE7SUFNbEQ7OztJQXBCeUJJLGlCOzs7Ozs7Ozs7Ozs7Ozs7YUFZWCxFOzs7U0FXRFQsWSJ9
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { PropertiesOf } from "sap/fe/core/helpers/ClassSupport";
|
|
1
2
|
import { defineUI5Class, property } from "sap/fe/core/helpers/ClassSupport";
|
|
2
3
|
import TemplateComponent from "sap/fe/core/TemplateComponent";
|
|
3
4
|
|
|
@@ -38,6 +39,19 @@ class FPMComponent extends TemplateComponent {
|
|
|
38
39
|
*/
|
|
39
40
|
@property({ type: "string" })
|
|
40
41
|
viewName!: string;
|
|
42
|
+
@property({ type: "string" })
|
|
43
|
+
controllerName?: string;
|
|
44
|
+
|
|
45
|
+
@property({ type: "string" })
|
|
46
|
+
_mdxViewName = "";
|
|
47
|
+
|
|
48
|
+
constructor(mSettings: PropertiesOf<FPMComponent>) {
|
|
49
|
+
if (mSettings.viewType === "JSX") {
|
|
50
|
+
mSettings._mdxViewName = mSettings.viewName;
|
|
51
|
+
mSettings.viewName = "module:sap/fe/core/jsx-runtime/ViewLoader";
|
|
52
|
+
}
|
|
53
|
+
super(mSettings as any);
|
|
54
|
+
}
|
|
41
55
|
}
|
|
42
56
|
|
|
43
57
|
export default FPMComponent;
|
|
@@ -46,4 +46,4 @@ sap.ui.define([], function () {
|
|
|
46
46
|
_exports.resolveEnumValue = resolveEnumValue;
|
|
47
47
|
return _exports;
|
|
48
48
|
}, false);
|
|
49
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFTlVNX1ZBTFVFUyIsInJlc29sdmVFbnVtVmFsdWUiLCJlbnVtTmFtZSIsInNwbGl0IiwidGVybU5hbWUiLCJ2YWx1ZSIsImhhc093blByb3BlcnR5Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJBbm5vdGF0aW9uRW51bS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGxpc3QgbmVlZHMgdG8gY29tZSBmcm9tIEFWVFxuY29uc3QgRU5VTV9WQUxVRVMgPSB7XG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkZpZWxkQ29udHJvbFR5cGVcIjoge1xuXHRcdFwiTWFuZGF0b3J5XCI6IDcsXG5cdFx0XCJPcHRpb25hbFwiOiAzLFxuXHRcdFwiUmVhZE9ubHlcIjogMCxcblx0XHRcIkluYXBwbGljYWJsZVwiOiAwLFxuXHRcdFwiRGlzYWJsZWRcIjogMVxuXHR9XG59O1xuZXhwb3J0IGNvbnN0IHJlc29sdmVFbnVtVmFsdWUgPSBmdW5jdGlvbihlbnVtTmFtZTogc3RyaW5nKSB7XG5cdGNvbnN0IFt0ZXJtTmFtZSwgdmFsdWVdID0gZW51bU5hbWUuc3BsaXQoXCIvXCIpO1xuXHRpZiAoRU5VTV9WQUxVRVMuaGFzT3duUHJvcGVydHkodGVybU5hbWUpKSB7XG5cdFx0cmV0dXJuIChFTlVNX1ZBTFVFUyBhcyBhbnkpW3Rlcm1OYW1lXVt2YWx1ZV07XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59O1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFBQTtFQUNBLElBQU1BLFdBQVcsR0FBRztJQUNuQixtREFBbUQ7TUFDbEQsYUFBYSxDQURxQztNQUVsRCxZQUFZLENBRnNDO01BR2xELFlBQVksQ0FIc0M7TUFJbEQsZ0JBQWdCLENBSmtDO01BS2xELFlBQVk7SUFMc0M7RUFEaEMsQ0FBcEI7O0VBU08sSUFBTUMsZ0JBQWdCLEdBQUcsVUFBU0MsUUFBVCxFQUEyQjtJQUMxRCxzQkFBMEJBLFFBQVEsQ0FBQ0MsS0FBVCxDQUFlLEdBQWYsQ0FBMUI7SUFBQTtJQUFBLElBQU9DLFFBQVA7SUFBQSxJQUFpQkMsS0FBakI7O0lBQ0EsSUFBSUwsV0FBVyxDQUFDTSxjQUFaLENBQTJCRixRQUEzQixDQUFKLEVBQTBDO01BQ3pDLE9BQVFKLFdBQUQsQ0FBcUJJLFFBQXJCLEVBQStCQyxLQUEvQixDQUFQO0lBQ0EsQ0FGRCxNQUVPO01BQ04sT0FBTyxLQUFQO0lBQ0E7RUFDRCxDQVBNIn0=
|
|
@@ -96,7 +96,7 @@ sap.ui.define(["sap/ui/model/Filter", "sap/ui/model/FilterOperator", "./ModelHel
|
|
|
96
96
|
},
|
|
97
97
|
|
|
98
98
|
/**
|
|
99
|
-
* Creates a PageInfo from a route if
|
|
99
|
+
* Creates a PageInfo from a route if it's reachable from the startup parameters.
|
|
100
100
|
*
|
|
101
101
|
* @param oRoute The route
|
|
102
102
|
* @param oManifestRouting The app manifest routing section
|
|
@@ -111,8 +111,9 @@ sap.ui.define(["sap/ui/model/Filter", "sap/ui/model/FilterOperator", "./ModelHel
|
|
|
111
111
|
var sPattern = oRoute.pattern.replace(":?query:", "");
|
|
112
112
|
sPattern = sPattern.replace(/\/$/, "");
|
|
113
113
|
|
|
114
|
-
if (!sPattern) {
|
|
115
|
-
|
|
114
|
+
if (!sPattern || !sPattern.endsWith(")")) {
|
|
115
|
+
// Ignore level-0 routes (ListReport) or routes corresponding to a 1-1 relation (no keys in the URL in this case)
|
|
116
|
+
return undefined;
|
|
116
117
|
}
|
|
117
118
|
|
|
118
119
|
sPattern = sPattern.replace(/\(\{[^\}]*\}\)/g, "(#)"); // Replace keys with #
|
|
@@ -370,4 +371,4 @@ sap.ui.define(["sap/ui/model/Filter", "sap/ui/model/FilterOperator", "./ModelHel
|
|
|
370
371
|
};
|
|
371
372
|
return AppStartupHelper;
|
|
372
373
|
}, false);
|
|
373
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwcFN0YXJ0dXBIZWxwZXIudHMiXSwibmFtZXMiOlsiQXBwU3RhcnR1cEhlbHBlciIsIl9nZXRLZXlzRnJvbVN0YXJ0dXBQYXJhbXMiLCJhS2V5TmFtZXMiLCJvU3RhcnR1cFBhcmFtZXRlcnMiLCJiQWxsRm91bmQiLCJhS2V5cyIsIm1hcCIsIm5hbWUiLCJsZW5ndGgiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsIl9jcmVhdGVGaWx0ZXJGcm9tS2V5cyIsImJEcmFmdE1vZGUiLCJvTWV0YU1vZGVsIiwiYkZpbHRlckNhc2VTZW5zaXRpdmUiLCJNb2RlbEhlbHBlciIsImlzRmlsdGVyaW5nQ2FzZVNlbnNpdGl2ZSIsImJGaWx0ZXJPbkFjdGl2ZUVudGl0eSIsImFGaWx0ZXJzIiwia2V5IiwiRmlsdGVyIiwicGF0aCIsIm9wZXJhdG9yIiwiRmlsdGVyT3BlcmF0b3IiLCJFUSIsInZhbHVlMSIsImNhc2VTZW5zaXRpdmUiLCJvRHJhZnRGaWx0ZXIiLCJmaWx0ZXJzIiwiYW5kIiwicHVzaCIsIl9yZXF1ZXN0T2JqZWN0c0Zyb21QYXJhbWV0ZXJzIiwiYVN0YXJ0dXBQYWdlcyIsIm9Nb2RlbCIsImFDb250ZXh0UHJvbWlzZXMiLCJwYWdlSW5mbyIsInNlbWFudGljS2V5cyIsInRlY2huaWNhbEtleXMiLCJvRmlsdGVyIiwiZHJhZnRNb2RlIiwiZ2V0TWV0YU1vZGVsIiwib0xpc3RCaW5kIiwiYmluZExpc3QiLCJjb250ZXh0UGF0aCIsImpvaW4iLCJyZXF1ZXN0Q29udGV4dHMiLCJQcm9taXNlIiwiYWxsIiwiX2dldFJlYWNoYWJsZVBhZ2VJbmZvRnJvbVJvdXRlIiwib1JvdXRlIiwib01hbmlmZXN0Um91dGluZyIsInNQYXR0ZXJuIiwicGF0dGVybiIsInJlcGxhY2UiLCJzVGFyZ2V0TmFtZSIsIkFycmF5IiwiaXNBcnJheSIsInRhcmdldCIsIm9UYXJnZXQiLCJ0YXJnZXRzIiwiYVBhdHRlcm5TZWdtZW50cyIsInNwbGl0IiwicGFnZUxldmVsIiwib3B0aW9ucyIsInNldHRpbmdzIiwiYWxsb3dEZWVwTGlua2luZyIsInNDb250ZXh0UGF0aCIsImVudGl0eVNldCIsIm9FbnRpdHlUeXBlIiwiZ2V0T2JqZWN0IiwiYVNlbWFudGljS2V5TmFtZXMiLCJhU2VtYW50aWNrS2V5cyIsInNlbUtleSIsIiRQcm9wZXJ0eVBhdGgiLCJhVGVjaG5pY2FsS2V5cyIsIl9nZXRSZWFjaGFibGVQYWdlcyIsImFSb3V0ZXMiLCJyb3V0ZXMiLCJtUGFnZXNCeUxldmVsIiwiZm9yRWFjaCIsIm9QYWdlSW5mbyIsImFSZWFjaGFibGVQYWdlcyIsImxldmVsIiwiX2dldFN0YXJ0dXBQYWdlc0Zyb21TdGFydHVwUGFyYW1zIiwicmVzdWx0IiwiY3VycmVudCIsImZpbmRSZWN1cnNpdmUiLCJhQ3VycmVudExldmVsUGFnZXMiLCJsYXN0UGFnZSIsIm5leHRQYWdlIiwiaW5kZXhPZiIsInBvcCIsInNsaWNlIiwiX2dldERlZXBMaW5rT2JqZWN0IiwiYUNvbnRleHRzIiwiY29udGV4dCIsImhhc2giLCJvQ29udGV4dCIsImdldFBhdGgiLCJnZXREZWVwTGlua1N0YXJ0dXBIYXNoIiwicmVxdWVzdE9iamVjdCIsInRoZW4iLCJhVmFsdWVzIiwiYUZvdW5kQ29udGV4dHMiLCJnZXRDcmVhdGVTdGFydHVwSGFzaCIsIm9Sb3V0ZXIiLCJvRW50aXR5U2V0QW5ub3RhdGlvbnMiLCJzTWV0YVBhdGgiLCJiQ3JlYXRhYmxlIiwiYk5ld0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZSIsIm9JbnNlcnRSZXN0cmljdGlvbnMiLCJJbnNlcnRhYmxlIiwiZ2V0RGVmYXVsdENyZWF0ZUhhc2giLCJzRGVmYXVsdENyZWF0ZUhhc2giLCJwcmVmZXJyZWRNb2RlIiwic0hhc2giLCJzdWJzdHIiLCJzdWJzdHJpbmciLCJnZXRSb3V0ZUluZm9CeUhhc2giLCJFcnJvciJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQXFCQSxNQUFNQSxnQkFBZ0IsR0FBRztBQUN4QjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FB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a0JBQWtCLENBQUN6RyxNQUFuQixHQUE0QnlHLGtCQUFrQixDQUFDdkIsT0FBbkIsQ0FBMkIsR0FBM0IsSUFBa0MsQ0FBeEcsR0FDR3VCLGtCQUFrQixDQUFDRyxNQUFuQixDQUEwQixDQUExQixFQUE2Qkgsa0JBQWtCLENBQUN2QixPQUFuQixDQUEyQixHQUEzQixDQUE3QixDQURILEdBRUcsUUFISjtBQUlBeUIsTUFBQUEsS0FBSyxhQUFNakQsWUFBWSxDQUFDbUQsU0FBYixDQUF1QixDQUF2QixDQUFOLDRCQUFpREosa0JBQWpELENBQUw7O0FBQ0EsVUFBSVIsT0FBTyxDQUFDYSxrQkFBUixDQUEyQkgsS0FBM0IsQ0FBSixFQUF1QztBQUN0QyxlQUFPQSxLQUFQO0FBQ0EsT0FGRCxNQUVPO0FBQ04sY0FBTSxJQUFJSSxLQUFKLDZDQUErQ3JELFlBQVksQ0FBQ21ELFNBQWIsQ0FBdUIsQ0FBdkIsQ0FBL0MsRUFBTjtBQUNBO0FBQ0Q7QUFuWXVCLEdBQXpCO1NBc1llckgsZ0IiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFJvdXRlciBmcm9tIFwic2FwL3VpL2NvcmUvcm91dGluZy9Sb3V0ZXJcIjtcbmltcG9ydCBGaWx0ZXIgZnJvbSBcInNhcC91aS9tb2RlbC9GaWx0ZXJcIjtcbmltcG9ydCBGaWx0ZXJPcGVyYXRvciBmcm9tIFwic2FwL3VpL21vZGVsL0ZpbHRlck9wZXJhdG9yXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwiLi9Nb2RlbEhlbHBlclwiO1xuXG50eXBlIFZhbHVlZEtleSA9IHtcblx0bmFtZTogc3RyaW5nO1xuXHR2YWx1ZTogc3RyaW5nO1xufTtcblxudHlwZSBQYWdlSW5mbyA9IHtcblx0cGF0dGVybjogc3RyaW5nO1xuXHRjb250ZXh0UGF0aDogc3RyaW5nO1xuXHRkcmFmdE1vZGU6IEJvb2xlYW47XG5cdHRlY2huaWNhbEtleXM6IFZhbHVlZEtleVtdIHwgdW5kZWZpbmVkO1xuXHRzZW1hbnRpY0tleXM6IFZhbHVlZEtleVtdIHwgdW5kZWZpbmVkO1xuXHR0YXJnZXQ6IHN0cmluZztcblx0cGFnZUxldmVsOiBudW1iZXI7XG59O1xuXG5jb25zdCBBcHBTdGFydHVwSGVscGVyID0ge1xuXHQvKipcblx0ICogUmV0cmlldmVzIGEgc2V0IG9mIGtleSB2YWx1ZXMgZnJvbSBzdGFydHVwIHBhcmFtZXRlcnMuXG5cdCAqXG5cdCAqIEBwYXJhbSBhS2V5TmFtZXMgVGhlIGFycmF5IG9mIGtleSBuYW1lc1xuXHQgKiBAcGFyYW0gb1N0YXJ0dXBQYXJhbWV0ZXJzIFRoZSBzdGFydHVwIHBhcmFtZXRlcnNcblx0ICogQHJldHVybnMgQW4gYXJyYXkgb2YgcGFpcnMgXFx7bmFtZSwgdmFsdWVcXH0gaWYgYWxsIGtleSB2YWx1ZXMgY291bGQgYmUgZm91bmQgaW4gdGhlIHN0YXJ0dXAgcGFyYW1ldGVycywgdW5kZWZpbmVkIG90aGVyd2lzZVxuXHQgKi9cblx0X2dldEtleXNGcm9tU3RhcnR1cFBhcmFtczogZnVuY3Rpb24gKGFLZXlOYW1lczogc3RyaW5nW10sIG9TdGFydHVwUGFyYW1ldGVyczogYW55KTogVmFsdWVkS2V5W10gfCB1bmRlZmluZWQge1xuXHRcdGxldCBiQWxsRm91bmQgPSB0cnVlO1xuXHRcdGNvbnN0IGFLZXlzID0gYUtleU5hbWVzLm1hcCgobmFtZSkgPT4ge1xuXHRcdFx0aWYgKG9TdGFydHVwUGFyYW1ldGVyc1tuYW1lXSAmJiBvU3RhcnR1cFBhcmFtZXRlcnNbbmFtZV0ubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdHJldHVybiB7IG5hbWUsIHZhbHVlOiBvU3RhcnR1cFBhcmFtZXRlcnNbbmFtZV1bMF0gYXMgc3RyaW5nIH07XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBBIHVuaXF1ZSBrZXkgdmFsdWUgY291bGRuJ3QgYmUgZm91bmQgaW4gdGhlIHN0YXJ0dXAgcGFyYW1ldGVyc1xuXHRcdFx0XHRiQWxsRm91bmQgPSBmYWxzZTtcblx0XHRcdFx0cmV0dXJuIHsgbmFtZSwgdmFsdWU6IFwiXCIgfTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHJldHVybiBiQWxsRm91bmQgPyBhS2V5cyA6IHVuZGVmaW5lZDtcblx0fSxcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIGZpbHRlciBmcm9tIGEgbGlzdCBvZiBrZXkgdmFsdWVzLlxuXHQgKlxuXHQgKiBAcGFyYW0gYUtleXMgQXJyYXkgb2Ygc2VtYW50aWMga2V5cyBvciB0ZWNobmljYWwga2V5cyAod2l0aCB2YWx1ZXMpXG5cdCAqIEBwYXJhbSBiRHJhZnRNb2RlIFRydWUgaWYgdGhlIGVudGl0eSBzdXBwb3J0cyBkcmFmdCBtb2RlXG5cdCAqIEBwYXJhbSBvTWV0YU1vZGVsIFRoZSBtZXRhbW9kZWxcblx0ICogQHJldHVybnMgVGhlIGZpbHRlclxuXHQgKi9cblx0X2NyZWF0ZUZpbHRlckZyb21LZXlzOiBmdW5jdGlvbiAoYUtleXM6IFZhbHVlZEtleVtdLCBiRHJhZnRNb2RlOiBCb29sZWFuLCBvTWV0YU1vZGVsOiBPRGF0YU1ldGFNb2RlbCk6IEZpbHRlciB7XG5cdFx0Y29uc3QgYkZpbHRlckNhc2VTZW5zaXRpdmUgPSBNb2RlbEhlbHBlci5pc0ZpbHRlcmluZ0Nhc2VTZW5zaXRpdmUob01ldGFNb2RlbCk7XG5cblx0XHRsZXQgYkZpbHRlck9uQWN0aXZlRW50aXR5ID0gZmFsc2U7XG5cdFx0Y29uc3QgYUZpbHRlcnMgPSBhS2V5cy5tYXAoKGtleSkgPT4ge1xuXHRcdFx0aWYgKGtleS5uYW1lID09PSBcIklzQWN0aXZlRW50aXR5XCIpIHtcblx0XHRcdFx0YkZpbHRlck9uQWN0aXZlRW50aXR5ID0gdHJ1ZTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBuZXcgRmlsdGVyKHtcblx0XHRcdFx0cGF0aDoga2V5Lm5hbWUsXG5cdFx0XHRcdG9wZXJhdG9yOiBGaWx0ZXJPcGVyYXRvci5FUSxcblx0XHRcdFx0dmFsdWUxOiBrZXkudmFsdWUsXG5cdFx0XHRcdGNhc2VTZW5zaXRpdmU6IGJGaWx0ZXJDYXNlU2Vuc2l0aXZlXG5cdFx0XHR9KTtcblx0XHR9KTtcblx0XHRpZiAoYkRyYWZ0TW9kZSAmJiAhYkZpbHRlck9uQWN0aXZlRW50aXR5KSB7XG5cdFx0XHRjb25zdCBvRHJhZnRGaWx0ZXIgPSBuZXcgRmlsdGVyKHtcblx0XHRcdFx0ZmlsdGVyczogW25ldyBGaWx0ZXIoXCJJc0FjdGl2ZUVudGl0eVwiLCBcIkVRXCIsIGZhbHNlKSwgbmV3IEZpbHRlcihcIlNpYmxpbmdFbnRpdHkvSXNBY3RpdmVFbnRpdHlcIiwgXCJFUVwiLCBudWxsKV0sXG5cdFx0XHRcdGFuZDogZmFsc2Vcblx0XHRcdH0pO1xuXHRcdFx0YUZpbHRlcnMucHVzaChvRHJhZnRGaWx0ZXIpO1xuXHRcdH1cblxuXHRcdHJldHVybiBuZXcgRmlsdGVyKGFGaWx0ZXJzLCB0cnVlKTtcblx0fSxcblxuXHQvKipcblx0ICogTG9hZHMgYWxsIGNvbnRleHRzIGZvciBhIGxpc3Qgb2YgcGFnZSBpbmZvcy5cblx0ICpcblx0ICogQHBhcmFtIGFTdGFydHVwUGFnZXMgVGhlIGxpc3Qgb2YgcGFnZSBpbmZvc1xuXHQgKiBAcGFyYW0gb01vZGVsIFRoZSBtb2RlbCB1c2VkIHRvIGxvYWQgdGhlIGNvbnRleHRzXG5cdCAqIEByZXR1cm5zIEEgUHJvbWlzZSBmb3IgYWxsIGNvbnRleHRzXG5cdCAqL1xuXHRfcmVxdWVzdE9iamVjdHNGcm9tUGFyYW1ldGVyczogZnVuY3Rpb24gKGFTdGFydHVwUGFnZXM6IFBhZ2VJbmZvW10sIG9Nb2RlbDogT0RhdGFNb2RlbCk6IFByb21pc2U8Q29udGV4dFtdW10+IHtcblx0XHQvLyBMb2FkIHRoZSByZXNwZWN0aXZlIG9iamVjdHMgZm9yIGFsbCBvYmplY3QgcGFnZXMgZm91bmQgaW4gYUV4dGVybmFsbHlOYXZpZ2FibGVQYWdlc1xuXHRcdGNvbnN0IGFDb250ZXh0UHJvbWlzZXMgPSBhU3RhcnR1cFBhZ2VzLm1hcCgocGFnZUluZm8pID0+IHtcblx0XHRcdGNvbnN0IGFLZXlzID0gcGFnZUluZm8uc2VtYW50aWNLZXlzIHx8IHBhZ2VJbmZvLnRlY2huaWNhbEtleXMgfHwgW107XG5cdFx0XHRjb25zdCBvRmlsdGVyID0gdGhpcy5fY3JlYXRlRmlsdGVyRnJvbUtleXMoYUtleXMsIHBhZ2VJbmZvLmRyYWZ0TW9kZSwgb01vZGVsLmdldE1ldGFNb2RlbCgpKTtcblxuXHRcdFx0Ly8gb25seSByZXF1ZXN0IGEgbWluaW11bSBvZiBmaWVsZHMgdG8gYm9vc3QgYmFja2VuZCBwZXJmb3JtYW5jZSBzaW5jZSB0aGlzIGlzIG9ubHkgdXNlZCB0byBjaGVjayBpZiBhbiBvYmplY3QgZXhpc3RzXG5cdFx0XHRjb25zdCBvTGlzdEJpbmQgPSBvTW9kZWwuYmluZExpc3QocGFnZUluZm8uY29udGV4dFBhdGgsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBvRmlsdGVyLCB7XG5cdFx0XHRcdFwiJHNlbGVjdFwiOiBhS2V5c1xuXHRcdFx0XHRcdC5tYXAoKGtleSkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGtleS5uYW1lO1xuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0LmpvaW4oXCIsXCIpXG5cdFx0XHR9IGFzIGFueSk7XG5cdFx0XHRyZXR1cm4gb0xpc3RCaW5kLnJlcXVlc3RDb250ZXh0cygwLCAyKTtcblx0XHR9KTtcblxuXHRcdHJldHVybiBQcm9taXNlLmFsbChhQ29udGV4dFByb21pc2VzKTtcblx0fSxcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIFBhZ2VJbmZvIGZyb20gYSByb3V0ZSBpZiB0aSdzIHJlYWNoYWJsZSBmcm9tIHRoZSBzdGFydHVwIHBhcmFtZXRlcnMuXG5cdCAqXG5cdCAqIEBwYXJhbSBvUm91dGUgVGhlIHJvdXRlXG5cdCAqIEBwYXJhbSBvTWFuaWZlc3RSb3V0aW5nIFRoZSBhcHAgbWFuaWZlc3Qgcm91dGluZyBzZWN0aW9uXG5cdCAqIEBwYXJhbSBvU3RhcnR1cFBhcmFtZXRlcnMgVGhlIHN0YXJ0dXAgcGFyYW1ldGVyc1xuXHQgKiBAcGFyYW0gb01ldGFNb2RlbCBUaGUgYXBwIG1ldGFtb2RlbFxuXHQgKiBAcmV0dXJucyBBIHBhZ2UgaW5mbyBpZiB0aGUgcGFnZSBpcyByZWFjaGFibGUsIHVuZGVmaW5lZCBvdGhlcndpc2Vcblx0ICovXG5cdF9nZXRSZWFjaGFibGVQYWdlSW5mb0Zyb21Sb3V0ZTogZnVuY3Rpb24gKFxuXHRcdG9Sb3V0ZTogYW55LFxuXHRcdG9NYW5pZmVzdFJvdXRpbmc6IGFueSxcblx0XHRvU3RhcnR1cFBhcmFtZXRlcnM6IGFueSxcblx0XHRvTWV0YU1vZGVsOiBPRGF0YU1ldGFNb2RlbFxuXHQpOiBQYWdlSW5mbyB8IHVuZGVmaW5lZCB7XG5cdFx0Ly8gUmVtb3ZlIHRyYWlsaW5nICc6P3F1ZXJ5OicgYW5kICcvJ1xuXHRcdGxldCBzUGF0dGVybjogc3RyaW5nID0gb1JvdXRlLnBhdHRlcm4ucmVwbGFjZShcIjo/cXVlcnk6XCIsIFwiXCIpO1xuXHRcdHNQYXR0ZXJuID0gc1BhdHRlcm4ucmVwbGFjZSgvXFwvJC8sIFwiXCIpO1xuXG5cdFx0aWYgKCFzUGF0dGVybikge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDsgLy8gSWdub3JlIGxldmVsLTAgcm91dGVzIChMaXN0UmVwb3J0KVxuXHRcdH1cblxuXHRcdHNQYXR0ZXJuID0gc1BhdHRlcm4ucmVwbGFjZSgvXFwoXFx7W15cXH1dKlxcfVxcKS9nLCBcIigjKVwiKTsgLy8gUmVwbGFjZSBrZXlzIHdpdGggI1xuXG5cdFx0Ly8gR2V0IHRoZSByaWdodG1vc3QgdGFyZ2V0IGZvciB0aGlzIHJvdXRlXG5cdFx0Y29uc3Qgc1RhcmdldE5hbWU6IHN0cmluZyA9IEFycmF5LmlzQXJyYXkob1JvdXRlLnRhcmdldCkgPyBvUm91dGUudGFyZ2V0W29Sb3V0ZS50YXJnZXQubGVuZ3RoIC0gMV0gOiBvUm91dGUudGFyZ2V0O1xuXHRcdGNvbnN0IG9UYXJnZXQgPSBvTWFuaWZlc3RSb3V0aW5nLnRhcmdldHNbc1RhcmdldE5hbWVdO1xuXG5cdFx0Y29uc3QgYVBhdHRlcm5TZWdtZW50cyA9IHNQYXR0ZXJuLnNwbGl0KFwiL1wiKTtcblx0XHRjb25zdCBwYWdlTGV2ZWwgPSBhUGF0dGVyblNlZ21lbnRzLmxlbmd0aCAtIDE7XG5cblx0XHRpZiAocGFnZUxldmVsICE9PSAwICYmIG9UYXJnZXQ/Lm9wdGlvbnM/LnNldHRpbmdzPy5hbGxvd0RlZXBMaW5raW5nICE9PSB0cnVlKSB7XG5cdFx0XHQvLyBUaGUgZmlyc3QgbGV2ZWwgb2Ygb2JqZWN0IHBhZ2UgYWxsb3dzIGRlZXAgbGlua2luZyBieSBkZWZhdWx0LlxuXHRcdFx0Ly8gT3RoZXJ3aXNlLCB0aGUgdGFyZ2V0IG11c3QgYWxsb3cgZGVlcCBsaW5raW5nIGV4cGxpY2l0ZWx5IGluIHRoZSBtYW5pZmVzdFxuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHRjb25zdCBzQ29udGV4dFBhdGg6IHN0cmluZyA9XG5cdFx0XHRvVGFyZ2V0Lm9wdGlvbnMuc2V0dGluZ3MuY29udGV4dFBhdGggfHwgKG9UYXJnZXQub3B0aW9ucy5zZXR0aW5ncy5lbnRpdHlTZXQgJiYgYC8ke29UYXJnZXQub3B0aW9ucy5zZXR0aW5ncy5lbnRpdHlTZXR9YCk7XG5cdFx0Y29uc3Qgb0VudGl0eVR5cGUgPSBzQ29udGV4dFBhdGggJiYgb01ldGFNb2RlbC5nZXRPYmplY3QoYC8kRW50aXR5Q29udGFpbmVyJHtzQ29udGV4dFBhdGh9L2ApO1xuXG5cdFx0aWYgKCFvRW50aXR5VHlwZSkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHQvLyBHZXQgdGhlIHNlbWFudGljIGtleSB2YWx1ZXMgZm9yIHRoZSBlbnRpdHlcblx0XHRjb25zdCBhU2VtYW50aWNLZXlOYW1lczogYW55ID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYC8kRW50aXR5Q29udGFpbmVyJHtzQ29udGV4dFBhdGh9L0Bjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuU2VtYW50aWNLZXlgKTtcblxuXHRcdGNvbnN0IGFTZW1hbnRpY2tLZXlzID0gYVNlbWFudGljS2V5TmFtZXNcblx0XHRcdD8gdGhpcy5fZ2V0S2V5c0Zyb21TdGFydHVwUGFyYW1zKFxuXHRcdFx0XHRcdGFTZW1hbnRpY0tleU5hbWVzLm1hcCgoc2VtS2V5OiBhbnkpID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBzZW1LZXkuJFByb3BlcnR5UGF0aCBhcyBzdHJpbmc7XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0b1N0YXJ0dXBQYXJhbWV0ZXJzXG5cdFx0XHQgIClcblx0XHRcdDogdW5kZWZpbmVkO1xuXG5cdFx0Ly8gR2V0IHRoZSB0ZWNobmljYWwga2V5cyBvbmx5IGlmIHdlIGNvdWxkbid0IGZpbmQgdGhlIHNlbWFudGljIGtleSB2YWx1ZXMsIGFuZCBvbiBmaXJzdCBsZXZlbCBPUFxuXHRcdGNvbnN0IGFUZWNobmljYWxLZXlzID1cblx0XHRcdCFhU2VtYW50aWNrS2V5cyAmJiBwYWdlTGV2ZWwgPT09IDAgPyB0aGlzLl9nZXRLZXlzRnJvbVN0YXJ0dXBQYXJhbXMob0VudGl0eVR5cGVbXCIkS2V5XCJdLCBvU3RhcnR1cFBhcmFtZXRlcnMpIDogdW5kZWZpbmVkO1xuXG5cdFx0aWYgKGFTZW1hbnRpY2tLZXlzID09PSB1bmRlZmluZWQgJiYgYVRlY2huaWNhbEtleXMgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Ly8gV2UgY291bGRuJ3QgZmluZCB0aGUgc2VtYW50aWMvdGVjaG5pY2FsIGtleXMgaW4gdGhlIHN0YXJ0dXAgcGFyYW1ldGVyc1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHQvLyBUaGUgc3RhcnR1cCBwYXJhbWV0ZXJzIGNvbnRhaW4gdmFsdWVzIGZvciBhbGwgc2VtYW50aWMga2V5cyAob3IgdGVjaG5pY2FsIGtleXMpIC0tPiB3ZSBjYW4gc3RvcmUgdGhlIHBhZ2UgaW5mbyBpbiB0aGUgY29ycmVzcG9uZGluZyBsZXZlbFxuXHRcdGNvbnN0IGRyYWZ0TW9kZSA9XG5cdFx0XHRvTWV0YU1vZGVsLmdldE9iamVjdChgLyRFbnRpdHlDb250YWluZXIke3NDb250ZXh0UGF0aH1AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkRyYWZ0Um9vdGApIHx8XG5cdFx0XHRvTWV0YU1vZGVsLmdldE9iamVjdChgLyRFbnRpdHlDb250YWluZXIke3NDb250ZXh0UGF0aH1AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkRyYWZ0Tm9kZWApXG5cdFx0XHRcdD8gdHJ1ZVxuXHRcdFx0XHQ6IGZhbHNlO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhdHRlcm46IHNQYXR0ZXJuLFxuXHRcdFx0Y29udGV4dFBhdGg6IHNDb250ZXh0UGF0aCxcblx0XHRcdGRyYWZ0TW9kZSxcblx0XHRcdHRlY2huaWNhbEtleXM6IGFUZWNobmljYWxLZXlzLFxuXHRcdFx0c2VtYW50aWNLZXlzOiBhU2VtYW50aWNrS2V5cyxcblx0XHRcdHRhcmdldDogc1RhcmdldE5hbWUsXG5cdFx0XHRwYWdlTGV2ZWxcblx0XHR9O1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGFsbCBwYWdlcyB0aGF0IGFsbG93IGRlZXBsaW5rIGFuZCB0aGF0IGNhbiBiZSByZWFjaGVkIHVzaW5nIHRoZSBzdGFydHVwIHBhcmFtZXRlcnMuXG5cdCAqXG5cdCAqIEBwYXJhbSBvTWFuaWZlc3RSb3V0aW5nIFRoZSByb3V0aW5nIGluZm9ybWF0aW9uIGZyb20gdGhlIGFwcCBtYW5pZmVzdFxuXHQgKiBAcGFyYW0gb1N0YXJ0dXBQYXJhbWV0ZXJzIFRoZSBzdGFydHVwIHBhcmFtZXRlcnNcblx0ICogQHBhcmFtIG9NZXRhTW9kZWwgVGhlIG1ldGFtb2RlbFxuXHQgKiBAcmV0dXJucyBUaGUgcmVhY2hhYmxlIHBhZ2VzXG5cdCAqL1xuXHRfZ2V0UmVhY2hhYmxlUGFnZXM6IGZ1bmN0aW9uIChvTWFuaWZlc3RSb3V0aW5nOiBhbnksIG9TdGFydHVwUGFyYW1ldGVyczogYW55LCBvTWV0YU1vZGVsOiBPRGF0YU1ldGFNb2RlbCk6IFBhZ2VJbmZvW11bXSB7XG5cdFx0Y29uc3QgYVJvdXRlczogYW55W10gPSBvTWFuaWZlc3RSb3V0aW5nLnJvdXRlcztcblx0XHRjb25zdCBtUGFnZXNCeUxldmVsOiBSZWNvcmQ8bnVtYmVyLCBQYWdlSW5mb1tdPiA9IHt9O1xuXG5cdFx0YVJvdXRlcy5mb3JFYWNoKChvUm91dGUpID0+IHtcblx0XHRcdGNvbnN0IG9QYWdlSW5mbyA9IHRoaXMuX2dldFJlYWNoYWJsZVBhZ2VJbmZvRnJvbVJvdXRlKG9Sb3V0ZSwgb01hbmlmZXN0Um91dGluZywgb1N0YXJ0dXBQYXJhbWV0ZXJzLCBvTWV0YU1vZGVsKTtcblxuXHRcdFx0aWYgKG9QYWdlSW5mbykge1xuXHRcdFx0XHRpZiAoIW1QYWdlc0J5TGV2ZWxbb1BhZ2VJbmZvLnBhZ2VMZXZlbF0pIHtcblx0XHRcdFx0XHRtUGFnZXNCeUxldmVsW29QYWdlSW5mby5wYWdlTGV2ZWxdID0gW107XG5cdFx0XHRcdH1cblx0XHRcdFx0bVBhZ2VzQnlMZXZlbFtvUGFnZUluZm8ucGFnZUxldmVsXS5wdXNoKG9QYWdlSW5mbyk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHQvLyBBIHBhZ2UgaXMgcmVhY2hhYmxlIG9ubHkgaWYgYWxsIGl0cyBwYXJlbnRzIGFyZSBhbHNvIHJlYWNoYWJsZVxuXHRcdC8vIFNvIGlmIHdlIGNvdWxkbid0IGZpbmQgYW55IHBhZ2VzIGZvciBhIGdpdmVuIGxldmVsLCBhbGwgcGFnZXMgd2l0aCBhIGhpZ2hlciBsZXZlbCB3b24ndCBiZSByZWFjaGFibGUgYW55d2F5XG5cdFx0Y29uc3QgYVJlYWNoYWJsZVBhZ2VzOiBQYWdlSW5mb1tdW10gPSBbXTtcblx0XHRsZXQgbGV2ZWwgPSAwO1xuXHRcdHdoaWxlIChtUGFnZXNCeUxldmVsW2xldmVsXSkge1xuXHRcdFx0YVJlYWNoYWJsZVBhZ2VzLnB1c2gobVBhZ2VzQnlMZXZlbFtsZXZlbF0pO1xuXHRcdFx0bGV2ZWwrKztcblx0XHR9XG5cblx0XHRyZXR1cm4gYVJlYWNoYWJsZVBhZ2VzO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIGxpc3Qgb2Ygc3RhcnR1cCBwYWdlcy5cblx0ICpcblx0ICogQHBhcmFtIG9NYW5pZmVzdFJvdXRpbmcgVGhlIHJvdXRpbmcgaW5mb3JtYXRpb24gZnJvbSB0aGUgYXBwIG1hbmlmZXN0XG5cdCAqIEBwYXJhbSBvU3RhcnR1cFBhcmFtZXRlcnMgVGhlIHN0YXJ0dXAgcGFyYW1ldGVyc1xuXHQgKiBAcGFyYW0gb01ldGFNb2RlbCBUaGUgbWV0YW1vZGVsXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHN0YXJ0dXAgcGFnZSBpbmZvc1xuXHQgKi9cblx0X2dldFN0YXJ0dXBQYWdlc0Zyb21TdGFydHVwUGFyYW1zOiBmdW5jdGlvbiAob01hbmlmZXN0Um91dGluZzogYW55LCBvU3RhcnR1cFBhcmFtZXRlcnM6IGFueSwgb01ldGFNb2RlbDogT0RhdGFNZXRhTW9kZWwpOiBQYWdlSW5mb1tdIHtcblx0XHQvLyBGaW5kIGFsbCBwYWdlcyB0aGF0IGNhbiBiZSByZWFjaGVkIHdpdGggdGhlIHN0YXJ0dXAgcGFyYW1ldGVyc1xuXHRcdGNvbnN0IGFSZWFjaGFibGVQYWdlcyA9IHRoaXMuX2dldFJlYWNoYWJsZVBhZ2VzKG9NYW5pZmVzdFJvdXRpbmcsIG9TdGFydHVwUGFyYW1ldGVycywgb01ldGFNb2RlbCk7XG5cblx0XHRpZiAoYVJlYWNoYWJsZVBhZ2VzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdC8vIEZpbmQgdGhlIGxvbmdlc3Qgc2VxdWVuY2Ugb2YgcGFnZXMgdGhhdCBjYW4gYmUgcmVhY2hlZCAocmVjdXJzaXZlbHkpXG5cdFx0bGV0IHJlc3VsdDogUGFnZUluZm9bXSA9IFtdO1xuXHRcdGNvbnN0IGN1cnJlbnQ6IFBhZ2VJbmZvW10gPSBbXTtcblxuXHRcdGZ1bmN0aW9uIGZpbmRSZWN1cnNpdmUobGV2ZWw6IG51bWJlcikge1xuXHRcdFx0Y29uc3QgYUN1cnJlbnRMZXZlbFBhZ2VzID0gYVJlYWNoYWJsZVBhZ2VzW2xldmVsXTtcblx0XHRcdGNvbnN0IGxhc3RQYWdlID0gY3VycmVudC5sZW5ndGggPyBjdXJyZW50W2N1cnJlbnQubGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG5cblx0XHRcdGlmIChhQ3VycmVudExldmVsUGFnZXMpIHtcblx0XHRcdFx0YUN1cnJlbnRMZXZlbFBhZ2VzLmZvckVhY2goZnVuY3Rpb24gKG5leHRQYWdlKSB7XG5cdFx0XHRcdFx0aWYgKCFsYXN0UGFnZSB8fCBuZXh0UGFnZS5wYXR0ZXJuLmluZGV4T2YobGFzdFBhZ2UucGF0dGVybikgPT09IDApIHtcblx0XHRcdFx0XHRcdC8vIFdlIG9ubHkgY29uc2lkZXIgcGFnZXMgdGhhdCBjYW4gYmUgcmVhY2hlZCBmcm9tIHRoZSBwYWdlIGF0IHRoZSBwcmV2aW91cyBsZXZlbCxcblx0XHRcdFx0XHRcdC8vIC0tPiB0aGVpciBwYXR0ZXJuIG11c3QgYmUgdGhlIHBhdHRlcm4gb2YgdGhlIHByZXZpb3VzIHBhZ2Ugd2l0aCBhbm90aGVyIHNlZ21lbnQgYXBwZW5kZWRcblx0XHRcdFx0XHRcdGN1cnJlbnQucHVzaChuZXh0UGFnZSk7XG5cdFx0XHRcdFx0XHRmaW5kUmVjdXJzaXZlKGxldmVsICsgMSk7XG5cdFx0XHRcdFx0XHRjdXJyZW50LnBvcCgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoY3VycmVudC5sZW5ndGggPiByZXN1bHQubGVuZ3RoKSB7XG5cdFx0XHRcdHJlc3VsdCA9IGN1cnJlbnQuc2xpY2UoKTsgLy8gV2UgaGF2ZSBmb3VuZCBhIHNlcXVlbmNlIGxvbmdlciB0aGFuIG91ciBwcmV2aW91cyBiZXN0IC0tPiBzdG9yZSBpdCBhcyB0aGUgbmV3IGxvbmdlc3Rcblx0XHRcdH1cblx0XHR9XG5cblx0XHRmaW5kUmVjdXJzaXZlKDApO1xuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSxcblxuXHQvKipcblx0ICogQ3JlYXRlcyB0aGUgc3RhcnR1cCBvYmplY3QgZnJvbSB0aGUgbGlzdCBvZiBwYWdlcyBhbmQgY29udGV4dHMuXG5cdCAqXG5cdCAqIEBwYXJhbSBhU3RhcnR1cFBhZ2VzIFRoZSBwYWdlc1xuXHQgKiBAcGFyYW0gYUNvbnRleHRzIFRoZSBjb250ZXh0c1xuXHQgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyBlaXRoZXIgYSBoYXNoIG9yIGEgY29udGV4dCB0byBuYXZpZ2F0ZSB0bywgb3IgYW4gZW1wdHkgb2JqZWN0IGlmIG5vIGRlZXAgbGluayB3YXMgZm91bmRcblx0ICovXG5cdF9nZXREZWVwTGlua09iamVjdDogZnVuY3Rpb24gKGFTdGFydHVwUGFnZXM6IFBhZ2VJbmZvW10sIGFDb250ZXh0czogQ29udGV4dFtdKTogeyBoYXNoPzogc3RyaW5nOyBjb250ZXh0PzogQ29udGV4dCB9IHtcblx0XHRpZiAoYUNvbnRleHRzLmxlbmd0aCA9PT0gMSkge1xuXHRcdFx0cmV0dXJuIHsgY29udGV4dDogYUNvbnRleHRzWzBdIH07XG5cdFx0fSBlbHNlIGlmIChhQ29udGV4dHMubGVuZ3RoID4gMSkge1xuXHRcdFx0Ly8gTmF2aWdhdGlvbiB0byBhIGRlZXBlciBsZXZlbCAtLT4gdXNlIHRoZSBwYXR0ZXJuIG9mIHRoZSBkZWVwZXN0IG9iamVjdCBwYWdlXG5cdFx0XHQvLyBhbmQgcmVwbGFjZSB0aGUgcGFyYW1ldGVycyBieSB0aGUgSUQgZnJvbSB0aGUgY29udGV4dHNcblx0XHRcdGxldCBoYXNoID0gYVN0YXJ0dXBQYWdlc1thU3RhcnR1cFBhZ2VzLmxlbmd0aCAtIDFdLnBhdHRlcm47XG5cdFx0XHRhQ29udGV4dHMuZm9yRWFjaChmdW5jdGlvbiAob0NvbnRleHQpIHtcblx0XHRcdFx0aGFzaCA9IGhhc2gucmVwbGFjZShcIigjKVwiLCBgKCR7b0NvbnRleHQuZ2V0UGF0aCgpLnNwbGl0KFwiKFwiKVsxXX1gKTtcblx0XHRcdH0pO1xuXG5cdFx0XHRyZXR1cm4geyBoYXNoIH07XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB7fTtcblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIENhbGN1bGF0ZXMgc3RhcnR1cCBwYXJhbWV0ZXJzIGZvciBhIGRlZXBsaW5rIGNhc2UsIGZyb20gc3RhcnR1cCBwYXJhbWV0ZXJzIGFuZCByb3V0aW5nIGluZm9pcm1hdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIG9NYW5pZmVzdFJvdXRpbmcgVGhlIHJvdXRpbmcgaW5mb3JtYXRpb24gZnJvbSB0aGUgYXBwIG1hbmlmZXN0XG5cdCAqIEBwYXJhbSBvU3RhcnR1cFBhcmFtZXRlcnMgVGhlIHN0YXJ0dXAgcGFyYW1ldGVyc1xuXHQgKiBAcGFyYW0gb01vZGVsIFRoZSBPRGF0YSBtb2RlbFxuXHQgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyBlaXRoZXIgYSBoYXNoIG9yIGEgY29udGV4dCB0byBuYXZpZ2F0ZSB0bywgb3IgYW4gZW1wdHkgb2JqZWN0IGlmIG5vIGRlZXAgbGluayB3YXMgZm91bmRcblx0ICovXG5cdGdldERlZXBMaW5rU3RhcnR1cEhhc2g6IGZ1bmN0aW9uIChcblx0XHRvTWFuaWZlc3RSb3V0aW5nOiBhbnksXG5cdFx0b1N0YXJ0dXBQYXJhbWV0ZXJzOiBhbnksXG5cdFx0b01vZGVsOiBPRGF0YU1vZGVsXG5cdCk6IFByb21pc2U8eyBoYXNoPzogc3RyaW5nOyBjb250ZXh0PzogQ29udGV4dCB9PiB7XG5cdFx0bGV0IGFTdGFydHVwUGFnZXM6IFBhZ2VJbmZvW107XG5cblx0XHRyZXR1cm4gb01vZGVsXG5cdFx0XHQuZ2V0TWV0YU1vZGVsKClcblx0XHRcdC5yZXF1ZXN0T2JqZWN0KFwiLyRFbnRpdHlDb250YWluZXIvXCIpXG5cdFx0XHQudGhlbigoKSA9PiB7XG5cdFx0XHRcdC8vIENoZWNrIGlmIHNlbWFudGljIGtleXMgYXJlIHByZXNlbnQgaW4gdXJsIHBhcmFtZXRlcnMgZm9yIGV2ZXJ5IG9iamVjdCBwYWdlIGF0IGVhY2ggbGV2ZWxcblx0XHRcdFx0YVN0YXJ0dXBQYWdlcyA9IHRoaXMuX2dldFN0YXJ0dXBQYWdlc0Zyb21TdGFydHVwUGFyYW1zKG9NYW5pZmVzdFJvdXRpbmcsIG9TdGFydHVwUGFyYW1ldGVycywgb01vZGVsLmdldE1ldGFNb2RlbCgpKTtcblxuXHRcdFx0XHRyZXR1cm4gdGhpcy5fcmVxdWVzdE9iamVjdHNGcm9tUGFyYW1ldGVycyhhU3RhcnR1cFBhZ2VzLCBvTW9kZWwpO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKChhVmFsdWVzOiBDb250ZXh0W11bXSkgPT4ge1xuXHRcdFx0XHRpZiAoYVZhbHVlcy5sZW5ndGgpIHtcblx0XHRcdFx0XHQvLyBNYWtlIHN1cmUgd2Ugb25seSBnZXQgMSBjb250ZXh0IHBlciBwcm9taXNlLCBhbmQgZmxhdHRlbiB0aGUgYXJyYXlcblx0XHRcdFx0XHRjb25zdCBhQ29udGV4dHM6IENvbnRleHRbXSA9IFtdO1xuXHRcdFx0XHRcdGFWYWx1ZXMuZm9yRWFjaChmdW5jdGlvbiAoYUZvdW5kQ29udGV4dHMpIHtcblx0XHRcdFx0XHRcdGlmIChhRm91bmRDb250ZXh0cy5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0XHRcdFx0YUNvbnRleHRzLnB1c2goYUZvdW5kQ29udGV4dHNbMF0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0cmV0dXJuIGFDb250ZXh0cy5sZW5ndGggPT09IGFWYWx1ZXMubGVuZ3RoID8gdGhpcy5fZ2V0RGVlcExpbmtPYmplY3QoYVN0YXJ0dXBQYWdlcywgYUNvbnRleHRzKSA6IHt9O1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiB7fTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIENhbGN1bGF0ZXMgdGhlIG5ldyBoYXNoIGJhc2VkIG9uIHRoZSBzdGFydHVwIHBhcmFtZXRlcnMuXG5cdCAqXG5cdCAqIEBwYXJhbSBvU3RhcnR1cFBhcmFtZXRlcnMgVGhlIHN0YXJ0dXAgcGFyYW1ldGVyIHZhbHVlcyAobWFwIHBhcmFtZXRlciBuYW1lIC0+IGFycmF5IG9mIHZhbHVlcylcblx0ICogQHBhcmFtIHNDb250ZXh0UGF0aCBUaGUgY29udGV4dCBwYXRoIGZvciB0aGUgc3RhcnR1cCBvZiB0aGUgYXBwIChnZW5lcmFsbHkgdGhlIHBhdGggdG8gdGhlIG1haW4gZW50aXR5IHNldClcblx0ICogQHBhcmFtIG9Sb3V0ZXIgVGhlIHJvdXRlciBpbnN0YW5jZVxuXHQgKiBAcGFyYW0gb01ldGFNb2RlbCBUaGUgbWV0YSBtb2RlbFxuXHQgKiBAcmV0dXJucyBBIHByb21pc2UgY29udGFpbmluZyB0aGUgaGFzaCB0byBuYXZpZ2F0ZSB0bywgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIHRoZXJlJ3Mgbm8gbmVlZCB0byBuYXZpZ2F0ZVxuXHQgKi9cblx0Z2V0Q3JlYXRlU3RhcnR1cEhhc2g6IGZ1bmN0aW9uIChcblx0XHRvU3RhcnR1cFBhcmFtZXRlcnM6IGFueSxcblx0XHRzQ29udGV4dFBhdGg6IHN0cmluZyxcblx0XHRvUm91dGVyOiBSb3V0ZXIsXG5cdFx0b01ldGFNb2RlbDogT0RhdGFNZXRhTW9kZWxcblx0KTogUHJvbWlzZTxTdHJpbmc+IHtcblx0XHRyZXR1cm4gb01ldGFNb2RlbC5yZXF1ZXN0T2JqZWN0KGAke3NDb250ZXh0UGF0aH1AYCkudGhlbigob0VudGl0eVNldEFubm90YXRpb25zOiBhbnkpID0+IHtcblx0XHRcdGxldCBzTWV0YVBhdGggPSBcIlwiO1xuXHRcdFx0bGV0IGJDcmVhdGFibGUgPSB0cnVlO1xuXG5cdFx0XHRpZiAoXG5cdFx0XHRcdG9FbnRpdHlTZXRBbm5vdGF0aW9uc1tcIkBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnRSb290XCJdICYmXG5cdFx0XHRcdG9FbnRpdHlTZXRBbm5vdGF0aW9uc1tcIkBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnRSb290XCJdW1wiTmV3QWN0aW9uXCJdXG5cdFx0XHQpIHtcblx0XHRcdFx0c01ldGFQYXRoID0gYCR7c0NvbnRleHRQYXRofUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnRSb290L05ld0FjdGlvbkBPcmcuT0RhdGEuQ29yZS5WMS5PcGVyYXRpb25BdmFpbGFibGVgO1xuXHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0b0VudGl0eVNldEFubm90YXRpb25zW1wiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlNlc3Npb24udjEuU3RpY2t5U2Vzc2lvblN1cHBvcnRlZFwiXSAmJlxuXHRcdFx0XHRvRW50aXR5U2V0QW5ub3RhdGlvbnNbXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuU2Vzc2lvbi52MS5TdGlja3lTZXNzaW9uU3VwcG9ydGVkXCJdW1wiTmV3QWN0aW9uXCJdXG5cdFx0XHQpIHtcblx0XHRcdFx0c01ldGFQYXRoID0gYCR7c0NvbnRleHRQYXRofUBjb20uc2FwLnZvY2FidWxhcmllcy5TZXNzaW9uLnYxLlN0aWNreVNlc3Npb25TdXBwb3J0ZWQvTmV3QWN0aW9uQE9yZy5PRGF0YS5Db3JlLlYxLk9wZXJhdGlvbkF2YWlsYWJsZWA7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChzTWV0YVBhdGgpIHtcblx0XHRcdFx0Y29uc3QgYk5ld0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZSA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KHNNZXRhUGF0aCk7XG5cdFx0XHRcdGlmIChiTmV3QWN0aW9uT3BlcmF0aW9uQXZhaWxhYmxlID09PSBmYWxzZSkge1xuXHRcdFx0XHRcdGJDcmVhdGFibGUgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3Qgb0luc2VydFJlc3RyaWN0aW9ucyA9IG9FbnRpdHlTZXRBbm5vdGF0aW9uc1tcIkBPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLkluc2VydFJlc3RyaWN0aW9uc1wiXTtcblx0XHRcdFx0aWYgKG9JbnNlcnRSZXN0cmljdGlvbnMgJiYgb0luc2VydFJlc3RyaWN0aW9ucy5JbnNlcnRhYmxlID09PSBmYWxzZSkge1xuXHRcdFx0XHRcdGJDcmVhdGFibGUgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKGJDcmVhdGFibGUpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0RGVmYXVsdENyZWF0ZUhhc2gob1N0YXJ0dXBQYXJhbWV0ZXJzLCBzQ29udGV4dFBhdGgsIG9Sb3V0ZXIpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIFwiXCI7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIENhbGN1bGF0ZXMgdGhlIGhhc2ggdG8gY3JlYXRlIGEgbmV3IG9iamVjdC5cblx0ICpcblx0ICogQHBhcmFtIG9TdGFydHVwUGFyYW1ldGVycyBUaGUgc3RhcnR1cCBwYXJhbWV0ZXIgdmFsdWVzIChtYXAgcGFyYW1ldGVyIG5hbWUgLT4gYXJyYXkgb2YgdmFsdWVzKVxuXHQgKiBAcGFyYW0gc0NvbnRleHRQYXRoIFRoZSBjb250ZXh0IHBhdGggb2YgdGhlIGVudGl0eSBzZXQgdG8gYmUgdXNlZCBmb3IgdGhlIGNyZWF0aW9uXG5cdCAqIEBwYXJhbSBvUm91dGVyIFRoZSByb3V0ZXIgaW5zdGFuY2Vcblx0ICogQHJldHVybnMgVGhlIGhhc2hcblx0ICovXG5cdGdldERlZmF1bHRDcmVhdGVIYXNoOiBmdW5jdGlvbiAob1N0YXJ0dXBQYXJhbWV0ZXJzOiBhbnksIHNDb250ZXh0UGF0aDogc3RyaW5nLCBvUm91dGVyOiBSb3V0ZXIpOiBzdHJpbmcge1xuXHRcdGxldCBzRGVmYXVsdENyZWF0ZUhhc2ggPVxuXHRcdFx0b1N0YXJ0dXBQYXJhbWV0ZXJzICYmIG9TdGFydHVwUGFyYW1ldGVycy5wcmVmZXJyZWRNb2RlID8gKG9TdGFydHVwUGFyYW1ldGVycy5wcmVmZXJyZWRNb2RlWzBdIGFzIHN0cmluZykgOiBcImNyZWF0ZVwiO1xuXHRcdGxldCBzSGFzaCA9IFwiXCI7XG5cblx0XHRzRGVmYXVsdENyZWF0ZUhhc2ggPVxuXHRcdFx0c0RlZmF1bHRDcmVhdGVIYXNoLmluZGV4T2YoXCI6XCIpICE9PSAtMSAmJiBzRGVmYXVsdENyZWF0ZUhhc2gubGVuZ3RoID4gc0RlZmF1bHRDcmVhdGVIYXNoLmluZGV4T2YoXCI6XCIpICsgMVxuXHRcdFx0XHQ/IHNEZWZhdWx0Q3JlYXRlSGFzaC5zdWJzdHIoMCwgc0RlZmF1bHRDcmVhdGVIYXNoLmluZGV4T2YoXCI6XCIpKVxuXHRcdFx0XHQ6IFwiY3JlYXRlXCI7XG5cdFx0c0hhc2ggPSBgJHtzQ29udGV4dFBhdGguc3Vic3RyaW5nKDEpfSguLi4pP2ktYWN0aW9uPSR7c0RlZmF1bHRDcmVhdGVIYXNofWA7XG5cdFx0aWYgKG9Sb3V0ZXIuZ2V0Um91dGVJbmZvQnlIYXNoKHNIYXNoKSkge1xuXHRcdFx0cmV0dXJuIHNIYXNoO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYE5vIHJvdXRlIG1hdGNoIGZvciBjcmVhdGluZyBhIG5ldyAke3NDb250ZXh0UGF0aC5zdWJzdHJpbmcoMSl9YCk7XG5cdFx0fVxuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBcHBTdGFydHVwSGVscGVyO1xuIl19
|
|
374
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBcHBTdGFydHVwSGVscGVyIiwiX2dldEtleXNGcm9tU3RhcnR1cFBhcmFtcyIsImFLZXlOYW1lcyIsIm9TdGFydHVwUGFyYW1ldGVycyIsImJBbGxGb3VuZCIsImFLZXlzIiwibWFwIiwibmFtZSIsImxlbmd0aCIsInZhbHVlIiwidW5kZWZpbmVkIiwiX2NyZWF0ZUZpbHRlckZyb21LZXlzIiwiYkRyYWZ0TW9kZSIsIm9NZXRhTW9kZWwiLCJiRmlsdGVyQ2FzZVNlbnNpdGl2ZSIsIk1vZGVsSGVscGVyIiwiaXNGaWx0ZXJpbmdDYXNlU2Vuc2l0aXZlIiwiYkZpbHRlck9uQWN0aXZlRW50aXR5IiwiYUZpbHRlcnMiLCJrZXkiLCJGaWx0ZXIiLCJwYXRoIiwib3BlcmF0b3IiLCJGaWx0ZXJPcGVyYXRvciIsIkVRIiwidmFsdWUxIiwiY2FzZVNlbnNpdGl2ZSIsIm9EcmFmdEZpbHRlciIsImZpbHRlcnMiLCJhbmQiLCJwdXNoIiwiX3JlcXVlc3RPYmplY3RzRnJvbVBhcmFtZXRlcnMiLCJhU3RhcnR1cFBhZ2VzIiwib01vZGVsIiwiYUNvbnRleHRQcm9taXNlcyIsInBhZ2VJbmZvIiwic2VtYW50aWNLZXlzIiwidGVjaG5pY2FsS2V5cyIsIm9GaWx0ZXIiLCJkcmFmdE1vZGUiLCJnZXRNZXRhTW9kZWwiLCJvTGlzdEJpbmQiLCJiaW5kTGlzdCIsImNvbnRleHRQYXRoIiwiam9pbiIsInJlcXVlc3RDb250ZXh0cyIsIlByb21pc2UiLCJhbGwiLCJfZ2V0UmVhY2hhYmxlUGFnZUluZm9Gcm9tUm91dGUiLCJvUm91dGUiLCJvTWFuaWZlc3RSb3V0aW5nIiwic1BhdHRlcm4iLCJwYXR0ZXJuIiwicmVwbGFjZSIsImVuZHNXaXRoIiwic1RhcmdldE5hbWUiLCJBcnJheSIsImlzQXJyYXkiLCJ0YXJnZXQiLCJvVGFyZ2V0IiwidGFyZ2V0cyIsImFQYXR0ZXJuU2VnbWVudHMiLCJzcGxpdCIsInBhZ2VMZXZlbCIsIm9wdGlvbnMiLCJzZXR0aW5ncyIsImFsbG93RGVlcExpbmtpbmciLCJzQ29udGV4dFBhdGgiLCJlbnRpdHlTZXQiLCJvRW50aXR5VHlwZSIsImdldE9iamVjdCIsImFTZW1hbnRpY0tleU5hbWVzIiwiYVNlbWFudGlja0tleXMiLCJzZW1LZXkiLCIkUHJvcGVydHlQYXRoIiwiYVRlY2huaWNhbEtleXMiLCJfZ2V0UmVhY2hhYmxlUGFnZXMiLCJhUm91dGVzIiwicm91dGVzIiwibVBhZ2VzQnlMZXZlbCIsImZvckVhY2giLCJvUGFnZUluZm8iLCJhUmVhY2hhYmxlUGFnZXMiLCJsZXZlbCIsIl9nZXRTdGFydHVwUGFnZXNGcm9tU3RhcnR1cFBhcmFtcyIsInJlc3VsdCIsImN1cnJlbnQiLCJmaW5kUmVjdXJzaXZlIiwiYUN1cnJlbnRMZXZlbFBhZ2VzIiwibGFzdFBhZ2UiLCJuZXh0UGFnZSIsImluZGV4T2YiLCJwb3AiLCJzbGljZSIsIl9nZXREZWVwTGlua09iamVjdCIsImFDb250ZXh0cyIsImNvbnRleHQiLCJoYXNoIiwib0NvbnRleHQiLCJnZXRQYXRoIiwiZ2V0RGVlcExpbmtTdGFydHVwSGFzaCIsInJlcXVlc3RPYmplY3QiLCJ0aGVuIiwiYVZhbHVlcyIsImFGb3VuZENvbnRleHRzIiwiZ2V0Q3JlYXRlU3RhcnR1cEhhc2giLCJvUm91dGVyIiwib0VudGl0eVNldEFubm90YXRpb25zIiwic01ldGFQYXRoIiwiYkNyZWF0YWJsZSIsImJOZXdBY3Rpb25PcGVyYXRpb25BdmFpbGFibGUiLCJvSW5zZXJ0UmVzdHJpY3Rpb25zIiwiSW5zZXJ0YWJsZSIsImdldERlZmF1bHRDcmVhdGVIYXNoIiwic0RlZmF1bHRDcmVhdGVIYXNoIiwicHJlZmVycmVkTW9kZSIsInNIYXNoIiwic3Vic3RyIiwic3Vic3RyaW5nIiwiZ2V0Um91dGVJbmZvQnlIYXNoIiwiRXJyb3IiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkFwcFN0YXJ0dXBIZWxwZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgUm91dGVyIGZyb20gXCJzYXAvdWkvY29yZS9yb3V0aW5nL1JvdXRlclwiO1xuaW1wb3J0IEZpbHRlciBmcm9tIFwic2FwL3VpL21vZGVsL0ZpbHRlclwiO1xuaW1wb3J0IEZpbHRlck9wZXJhdG9yIGZyb20gXCJzYXAvdWkvbW9kZWwvRmlsdGVyT3BlcmF0b3JcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCIuL01vZGVsSGVscGVyXCI7XG5cbnR5cGUgVmFsdWVkS2V5ID0ge1xuXHRuYW1lOiBzdHJpbmc7XG5cdHZhbHVlOiBzdHJpbmc7XG59O1xuXG50eXBlIFBhZ2VJbmZvID0ge1xuXHRwYXR0ZXJuOiBzdHJpbmc7XG5cdGNvbnRleHRQYXRoOiBzdHJpbmc7XG5cdGRyYWZ0TW9kZTogQm9vbGVhbjtcblx0dGVjaG5pY2FsS2V5czogVmFsdWVkS2V5W10gfCB1bmRlZmluZWQ7XG5cdHNlbWFudGljS2V5czogVmFsdWVkS2V5W10gfCB1bmRlZmluZWQ7XG5cdHRhcmdldDogc3RyaW5nO1xuXHRwYWdlTGV2ZWw6IG51bWJlcjtcbn07XG5cbmNvbnN0IEFwcFN0YXJ0dXBIZWxwZXIgPSB7XG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgYSBzZXQgb2Yga2V5IHZhbHVlcyBmcm9tIHN0YXJ0dXAgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQHBhcmFtIGFLZXlOYW1lcyBUaGUgYXJyYXkgb2Yga2V5IG5hbWVzXG5cdCAqIEBwYXJhbSBvU3RhcnR1cFBhcmFtZXRlcnMgVGhlIHN0YXJ0dXAgcGFyYW1ldGVyc1xuXHQgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBwYWlycyBcXHtuYW1lLCB2YWx1ZVxcfSBpZiBhbGwga2V5IHZhbHVlcyBjb3VsZCBiZSBmb3VuZCBpbiB0aGUgc3RhcnR1cCBwYXJhbWV0ZXJzLCB1bmRlZmluZWQgb3RoZXJ3aXNlXG5cdCAqL1xuXHRfZ2V0S2V5c0Zyb21TdGFydHVwUGFyYW1zOiBmdW5jdGlvbiAoYUtleU5hbWVzOiBzdHJpbmdbXSwgb1N0YXJ0dXBQYXJhbWV0ZXJzOiBhbnkpOiBWYWx1ZWRLZXlbXSB8IHVuZGVmaW5lZCB7XG5cdFx0bGV0IGJBbGxGb3VuZCA9IHRydWU7XG5cdFx0Y29uc3QgYUtleXMgPSBhS2V5TmFtZXMubWFwKChuYW1lKSA9PiB7XG5cdFx0XHRpZiAob1N0YXJ0dXBQYXJhbWV0ZXJzW25hbWVdICYmIG9TdGFydHVwUGFyYW1ldGVyc1tuYW1lXS5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0cmV0dXJuIHsgbmFtZSwgdmFsdWU6IG9TdGFydHVwUGFyYW1ldGVyc1tuYW1lXVswXSBhcyBzdHJpbmcgfTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIEEgdW5pcXVlIGtleSB2YWx1ZSBjb3VsZG4ndCBiZSBmb3VuZCBpbiB0aGUgc3RhcnR1cCBwYXJhbWV0ZXJzXG5cdFx0XHRcdGJBbGxGb3VuZCA9IGZhbHNlO1xuXHRcdFx0XHRyZXR1cm4geyBuYW1lLCB2YWx1ZTogXCJcIiB9O1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIGJBbGxGb3VuZCA/IGFLZXlzIDogdW5kZWZpbmVkO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgZmlsdGVyIGZyb20gYSBsaXN0IG9mIGtleSB2YWx1ZXMuXG5cdCAqXG5cdCAqIEBwYXJhbSBhS2V5cyBBcnJheSBvZiBzZW1hbnRpYyBrZXlzIG9yIHRlY2huaWNhbCBrZXlzICh3aXRoIHZhbHVlcylcblx0ICogQHBhcmFtIGJEcmFmdE1vZGUgVHJ1ZSBpZiB0aGUgZW50aXR5IHN1cHBvcnRzIGRyYWZ0IG1vZGVcblx0ICogQHBhcmFtIG9NZXRhTW9kZWwgVGhlIG1ldGFtb2RlbFxuXHQgKiBAcmV0dXJucyBUaGUgZmlsdGVyXG5cdCAqL1xuXHRfY3JlYXRlRmlsdGVyRnJvbUtleXM6IGZ1bmN0aW9uIChhS2V5czogVmFsdWVkS2V5W10sIGJEcmFmdE1vZGU6IEJvb2xlYW4sIG9NZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsKTogRmlsdGVyIHtcblx0XHRjb25zdCBiRmlsdGVyQ2FzZVNlbnNpdGl2ZSA9IE1vZGVsSGVscGVyLmlzRmlsdGVyaW5nQ2FzZVNlbnNpdGl2ZShvTWV0YU1vZGVsKTtcblxuXHRcdGxldCBiRmlsdGVyT25BY3RpdmVFbnRpdHkgPSBmYWxzZTtcblx0XHRjb25zdCBhRmlsdGVycyA9IGFLZXlzLm1hcCgoa2V5KSA9PiB7XG5cdFx0XHRpZiAoa2V5Lm5hbWUgPT09IFwiSXNBY3RpdmVFbnRpdHlcIikge1xuXHRcdFx0XHRiRmlsdGVyT25BY3RpdmVFbnRpdHkgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG5ldyBGaWx0ZXIoe1xuXHRcdFx0XHRwYXRoOiBrZXkubmFtZSxcblx0XHRcdFx0b3BlcmF0b3I6IEZpbHRlck9wZXJhdG9yLkVRLFxuXHRcdFx0XHR2YWx1ZTE6IGtleS52YWx1ZSxcblx0XHRcdFx0Y2FzZVNlbnNpdGl2ZTogYkZpbHRlckNhc2VTZW5zaXRpdmVcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHRcdGlmIChiRHJhZnRNb2RlICYmICFiRmlsdGVyT25BY3RpdmVFbnRpdHkpIHtcblx0XHRcdGNvbnN0IG9EcmFmdEZpbHRlciA9IG5ldyBGaWx0ZXIoe1xuXHRcdFx0XHRmaWx0ZXJzOiBbbmV3IEZpbHRlcihcIklzQWN0aXZlRW50aXR5XCIsIFwiRVFcIiwgZmFsc2UpLCBuZXcgRmlsdGVyKFwiU2libGluZ0VudGl0eS9Jc0FjdGl2ZUVudGl0eVwiLCBcIkVRXCIsIG51bGwpXSxcblx0XHRcdFx0YW5kOiBmYWxzZVxuXHRcdFx0fSk7XG5cdFx0XHRhRmlsdGVycy5wdXNoKG9EcmFmdEZpbHRlcik7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG5ldyBGaWx0ZXIoYUZpbHRlcnMsIHRydWUpO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBMb2FkcyBhbGwgY29udGV4dHMgZm9yIGEgbGlzdCBvZiBwYWdlIGluZm9zLlxuXHQgKlxuXHQgKiBAcGFyYW0gYVN0YXJ0dXBQYWdlcyBUaGUgbGlzdCBvZiBwYWdlIGluZm9zXG5cdCAqIEBwYXJhbSBvTW9kZWwgVGhlIG1vZGVsIHVzZWQgdG8gbG9hZCB0aGUgY29udGV4dHNcblx0ICogQHJldHVybnMgQSBQcm9taXNlIGZvciBhbGwgY29udGV4dHNcblx0ICovXG5cdF9yZXF1ZXN0T2JqZWN0c0Zyb21QYXJhbWV0ZXJzOiBmdW5jdGlvbiAoYVN0YXJ0dXBQYWdlczogUGFnZUluZm9bXSwgb01vZGVsOiBPRGF0YU1vZGVsKTogUHJvbWlzZTxDb250ZXh0W11bXT4ge1xuXHRcdC8vIExvYWQgdGhlIHJlc3BlY3RpdmUgb2JqZWN0cyBmb3IgYWxsIG9iamVjdCBwYWdlcyBmb3VuZCBpbiBhRXh0ZXJuYWxseU5hdmlnYWJsZVBhZ2VzXG5cdFx0Y29uc3QgYUNvbnRleHRQcm9taXNlcyA9IGFTdGFydHVwUGFnZXMubWFwKChwYWdlSW5mbykgPT4ge1xuXHRcdFx0Y29uc3QgYUtleXMgPSBwYWdlSW5mby5zZW1hbnRpY0tleXMgfHwgcGFnZUluZm8udGVjaG5pY2FsS2V5cyB8fCBbXTtcblx0XHRcdGNvbnN0IG9GaWx0ZXIgPSB0aGlzLl9jcmVhdGVGaWx0ZXJGcm9tS2V5cyhhS2V5cywgcGFnZUluZm8uZHJhZnRNb2RlLCBvTW9kZWwuZ2V0TWV0YU1vZGVsKCkpO1xuXG5cdFx0XHQvLyBvbmx5IHJlcXVlc3QgYSBtaW5pbXVtIG9mIGZpZWxkcyB0byBib29zdCBiYWNrZW5kIHBlcmZvcm1hbmNlIHNpbmNlIHRoaXMgaXMgb25seSB1c2VkIHRvIGNoZWNrIGlmIGFuIG9iamVjdCBleGlzdHNcblx0XHRcdGNvbnN0IG9MaXN0QmluZCA9IG9Nb2RlbC5iaW5kTGlzdChwYWdlSW5mby5jb250ZXh0UGF0aCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIG9GaWx0ZXIsIHtcblx0XHRcdFx0XCIkc2VsZWN0XCI6IGFLZXlzXG5cdFx0XHRcdFx0Lm1hcCgoa2V5KSA9PiB7XG5cdFx0XHRcdFx0XHRyZXR1cm4ga2V5Lm5hbWU7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQuam9pbihcIixcIilcblx0XHRcdH0gYXMgYW55KTtcblx0XHRcdHJldHVybiBvTGlzdEJpbmQucmVxdWVzdENvbnRleHRzKDAsIDIpO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIFByb21pc2UuYWxsKGFDb250ZXh0UHJvbWlzZXMpO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgUGFnZUluZm8gZnJvbSBhIHJvdXRlIGlmIGl0J3MgcmVhY2hhYmxlIGZyb20gdGhlIHN0YXJ0dXAgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQHBhcmFtIG9Sb3V0ZSBUaGUgcm91dGVcblx0ICogQHBhcmFtIG9NYW5pZmVzdFJvdXRpbmcgVGhlIGFwcCBtYW5pZmVzdCByb3V0aW5nIHNlY3Rpb25cblx0ICogQHBhcmFtIG9TdGFydHVwUGFyYW1ldGVycyBUaGUgc3RhcnR1cCBwYXJhbWV0ZXJzXG5cdCAqIEBwYXJhbSBvTWV0YU1vZGVsIFRoZSBhcHAgbWV0YW1vZGVsXG5cdCAqIEByZXR1cm5zIEEgcGFnZSBpbmZvIGlmIHRoZSBwYWdlIGlzIHJlYWNoYWJsZSwgdW5kZWZpbmVkIG90aGVyd2lzZVxuXHQgKi9cblx0X2dldFJlYWNoYWJsZVBhZ2VJbmZvRnJvbVJvdXRlOiBmdW5jdGlvbiAoXG5cdFx0b1JvdXRlOiBhbnksXG5cdFx0b01hbmlmZXN0Um91dGluZzogYW55LFxuXHRcdG9TdGFydHVwUGFyYW1ldGVyczogYW55LFxuXHRcdG9NZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsXG5cdCk6IFBhZ2VJbmZvIHwgdW5kZWZpbmVkIHtcblx0XHQvLyBSZW1vdmUgdHJhaWxpbmcgJzo/cXVlcnk6JyBhbmQgJy8nXG5cdFx0bGV0IHNQYXR0ZXJuOiBzdHJpbmcgPSBvUm91dGUucGF0dGVybi5yZXBsYWNlKFwiOj9xdWVyeTpcIiwgXCJcIik7XG5cdFx0c1BhdHRlcm4gPSBzUGF0dGVybi5yZXBsYWNlKC9cXC8kLywgXCJcIik7XG5cblx0XHRpZiAoIXNQYXR0ZXJuIHx8ICFzUGF0dGVybi5lbmRzV2l0aChcIilcIikpIHtcblx0XHRcdC8vIElnbm9yZSBsZXZlbC0wIHJvdXRlcyAoTGlzdFJlcG9ydCkgb3Igcm91dGVzIGNvcnJlc3BvbmRpbmcgdG8gYSAxLTEgcmVsYXRpb24gKG5vIGtleXMgaW4gdGhlIFVSTCBpbiB0aGlzIGNhc2UpXG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdHNQYXR0ZXJuID0gc1BhdHRlcm4ucmVwbGFjZSgvXFwoXFx7W15cXH1dKlxcfVxcKS9nLCBcIigjKVwiKTsgLy8gUmVwbGFjZSBrZXlzIHdpdGggI1xuXG5cdFx0Ly8gR2V0IHRoZSByaWdodG1vc3QgdGFyZ2V0IGZvciB0aGlzIHJvdXRlXG5cdFx0Y29uc3Qgc1RhcmdldE5hbWU6IHN0cmluZyA9IEFycmF5LmlzQXJyYXkob1JvdXRlLnRhcmdldCkgPyBvUm91dGUudGFyZ2V0W29Sb3V0ZS50YXJnZXQubGVuZ3RoIC0gMV0gOiBvUm91dGUudGFyZ2V0O1xuXHRcdGNvbnN0IG9UYXJnZXQgPSBvTWFuaWZlc3RSb3V0aW5nLnRhcmdldHNbc1RhcmdldE5hbWVdO1xuXG5cdFx0Y29uc3QgYVBhdHRlcm5TZWdtZW50cyA9IHNQYXR0ZXJuLnNwbGl0KFwiL1wiKTtcblx0XHRjb25zdCBwYWdlTGV2ZWwgPSBhUGF0dGVyblNlZ21lbnRzLmxlbmd0aCAtIDE7XG5cblx0XHRpZiAocGFnZUxldmVsICE9PSAwICYmIG9UYXJnZXQ/Lm9wdGlvbnM/LnNldHRpbmdzPy5hbGxvd0RlZXBMaW5raW5nICE9PSB0cnVlKSB7XG5cdFx0XHQvLyBUaGUgZmlyc3QgbGV2ZWwgb2Ygb2JqZWN0IHBhZ2UgYWxsb3dzIGRlZXAgbGlua2luZyBieSBkZWZhdWx0LlxuXHRcdFx0Ly8gT3RoZXJ3aXNlLCB0aGUgdGFyZ2V0IG11c3QgYWxsb3cgZGVlcCBsaW5raW5nIGV4cGxpY2l0ZWx5IGluIHRoZSBtYW5pZmVzdFxuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHRjb25zdCBzQ29udGV4dFBhdGg6IHN0cmluZyA9XG5cdFx0XHRvVGFyZ2V0Lm9wdGlvbnMuc2V0dGluZ3MuY29udGV4dFBhdGggfHwgKG9UYXJnZXQub3B0aW9ucy5zZXR0aW5ncy5lbnRpdHlTZXQgJiYgYC8ke29UYXJnZXQub3B0aW9ucy5zZXR0aW5ncy5lbnRpdHlTZXR9YCk7XG5cdFx0Y29uc3Qgb0VudGl0eVR5cGUgPSBzQ29udGV4dFBhdGggJiYgb01ldGFNb2RlbC5nZXRPYmplY3QoYC8kRW50aXR5Q29udGFpbmVyJHtzQ29udGV4dFBhdGh9L2ApO1xuXG5cdFx0aWYgKCFvRW50aXR5VHlwZSkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHQvLyBHZXQgdGhlIHNlbWFudGljIGtleSB2YWx1ZXMgZm9yIHRoZSBlbnRpdHlcblx0XHRjb25zdCBhU2VtYW50aWNLZXlOYW1lczogYW55ID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYC8kRW50aXR5Q29udGFpbmVyJHtzQ29udGV4dFBhdGh9L0Bjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuU2VtYW50aWNLZXlgKTtcblxuXHRcdGNvbnN0IGFTZW1hbnRpY2tLZXlzID0gYVNlbWFudGljS2V5TmFtZXNcblx0XHRcdD8gdGhpcy5fZ2V0S2V5c0Zyb21TdGFydHVwUGFyYW1zKFxuXHRcdFx0XHRcdGFTZW1hbnRpY0tleU5hbWVzLm1hcCgoc2VtS2V5OiBhbnkpID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBzZW1LZXkuJFByb3BlcnR5UGF0aCBhcyBzdHJpbmc7XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0b1N0YXJ0dXBQYXJhbWV0ZXJzXG5cdFx0XHQgIClcblx0XHRcdDogdW5kZWZpbmVkO1xuXG5cdFx0Ly8gR2V0IHRoZSB0ZWNobmljYWwga2V5cyBvbmx5IGlmIHdlIGNvdWxkbid0IGZpbmQgdGhlIHNlbWFudGljIGtleSB2YWx1ZXMsIGFuZCBvbiBmaXJzdCBsZXZlbCBPUFxuXHRcdGNvbnN0IGFUZWNobmljYWxLZXlzID1cblx0XHRcdCFhU2VtYW50aWNrS2V5cyAmJiBwYWdlTGV2ZWwgPT09IDAgPyB0aGlzLl9nZXRLZXlzRnJvbVN0YXJ0dXBQYXJhbXMob0VudGl0eVR5cGVbXCIkS2V5XCJdLCBvU3RhcnR1cFBhcmFtZXRlcnMpIDogdW5kZWZpbmVkO1xuXG5cdFx0aWYgKGFTZW1hbnRpY2tLZXlzID09PSB1bmRlZmluZWQgJiYgYVRlY2huaWNhbEtleXMgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Ly8gV2UgY291bGRuJ3QgZmluZCB0aGUgc2VtYW50aWMvdGVjaG5pY2FsIGtleXMgaW4gdGhlIHN0YXJ0dXAgcGFyYW1ldGVyc1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHQvLyBUaGUgc3RhcnR1cCBwYXJhbWV0ZXJzIGNvbnRhaW4gdmFsdWVzIGZvciBhbGwgc2VtYW50aWMga2V5cyAob3IgdGVjaG5pY2FsIGtleXMpIC0tPiB3ZSBjYW4gc3RvcmUgdGhlIHBhZ2UgaW5mbyBpbiB0aGUgY29ycmVzcG9uZGluZyBsZXZlbFxuXHRcdGNvbnN0IGRyYWZ0TW9kZSA9XG5cdFx0XHRvTWV0YU1vZGVsLmdldE9iamVjdChgLyRFbnRpdHlDb250YWluZXIke3NDb250ZXh0UGF0aH1AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkRyYWZ0Um9vdGApIHx8XG5cdFx0XHRvTWV0YU1vZGVsLmdldE9iamVjdChgLyRFbnRpdHlDb250YWluZXIke3NDb250ZXh0UGF0aH1AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkRyYWZ0Tm9kZWApXG5cdFx0XHRcdD8gdHJ1ZVxuXHRcdFx0XHQ6IGZhbHNlO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhdHRlcm46IHNQYXR0ZXJuLFxuXHRcdFx0Y29udGV4dFBhdGg6IHNDb250ZXh0UGF0aCxcblx0XHRcdGRyYWZ0TW9kZSxcblx0XHRcdHRlY2huaWNhbEtleXM6IGFUZWNobmljYWxLZXlzLFxuXHRcdFx0c2VtYW50aWNLZXlzOiBhU2VtYW50aWNrS2V5cyxcblx0XHRcdHRhcmdldDogc1RhcmdldE5hbWUsXG5cdFx0XHRwYWdlTGV2ZWxcblx0XHR9O1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGFsbCBwYWdlcyB0aGF0IGFsbG93IGRlZXBsaW5rIGFuZCB0aGF0IGNhbiBiZSByZWFjaGVkIHVzaW5nIHRoZSBzdGFydHVwIHBhcmFtZXRlcnMuXG5cdCAqXG5cdCAqIEBwYXJhbSBvTWFuaWZlc3RSb3V0aW5nIFRoZSByb3V0aW5nIGluZm9ybWF0aW9uIGZyb20gdGhlIGFwcCBtYW5pZmVzdFxuXHQgKiBAcGFyYW0gb1N0YXJ0dXBQYXJhbWV0ZXJzIFRoZSBzdGFydHVwIHBhcmFtZXRlcnNcblx0ICogQHBhcmFtIG9NZXRhTW9kZWwgVGhlIG1ldGFtb2RlbFxuXHQgKiBAcmV0dXJucyBUaGUgcmVhY2hhYmxlIHBhZ2VzXG5cdCAqL1xuXHRfZ2V0UmVhY2hhYmxlUGFnZXM6IGZ1bmN0aW9uIChvTWFuaWZlc3RSb3V0aW5nOiBhbnksIG9TdGFydHVwUGFyYW1ldGVyczogYW55LCBvTWV0YU1vZGVsOiBPRGF0YU1ldGFNb2RlbCk6IFBhZ2VJbmZvW11bXSB7XG5cdFx0Y29uc3QgYVJvdXRlczogYW55W10gPSBvTWFuaWZlc3RSb3V0aW5nLnJvdXRlcztcblx0XHRjb25zdCBtUGFnZXNCeUxldmVsOiBSZWNvcmQ8bnVtYmVyLCBQYWdlSW5mb1tdPiA9IHt9O1xuXG5cdFx0YVJvdXRlcy5mb3JFYWNoKChvUm91dGUpID0+IHtcblx0XHRcdGNvbnN0IG9QYWdlSW5mbyA9IHRoaXMuX2dldFJlYWNoYWJsZVBhZ2VJbmZvRnJvbVJvdXRlKG9Sb3V0ZSwgb01hbmlmZXN0Um91dGluZywgb1N0YXJ0dXBQYXJhbWV0ZXJzLCBvTWV0YU1vZGVsKTtcblxuXHRcdFx0aWYgKG9QYWdlSW5mbykge1xuXHRcdFx0XHRpZiAoIW1QYWdlc0J5TGV2ZWxbb1BhZ2VJbmZvLnBhZ2VMZXZlbF0pIHtcblx0XHRcdFx0XHRtUGFnZXNCeUxldmVsW29QYWdlSW5mby5wYWdlTGV2ZWxdID0gW107XG5cdFx0XHRcdH1cblx0XHRcdFx0bVBhZ2VzQnlMZXZlbFtvUGFnZUluZm8ucGFnZUxldmVsXS5wdXNoKG9QYWdlSW5mbyk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHQvLyBBIHBhZ2UgaXMgcmVhY2hhYmxlIG9ubHkgaWYgYWxsIGl0cyBwYXJlbnRzIGFyZSBhbHNvIHJlYWNoYWJsZVxuXHRcdC8vIFNvIGlmIHdlIGNvdWxkbid0IGZpbmQgYW55IHBhZ2VzIGZvciBhIGdpdmVuIGxldmVsLCBhbGwgcGFnZXMgd2l0aCBhIGhpZ2hlciBsZXZlbCB3b24ndCBiZSByZWFjaGFibGUgYW55d2F5XG5cdFx0Y29uc3QgYVJlYWNoYWJsZVBhZ2VzOiBQYWdlSW5mb1tdW10gPSBbXTtcblx0XHRsZXQgbGV2ZWwgPSAwO1xuXHRcdHdoaWxlIChtUGFnZXNCeUxldmVsW2xldmVsXSkge1xuXHRcdFx0YVJlYWNoYWJsZVBhZ2VzLnB1c2gobVBhZ2VzQnlMZXZlbFtsZXZlbF0pO1xuXHRcdFx0bGV2ZWwrKztcblx0XHR9XG5cblx0XHRyZXR1cm4gYVJlYWNoYWJsZVBhZ2VzO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIGxpc3Qgb2Ygc3RhcnR1cCBwYWdlcy5cblx0ICpcblx0ICogQHBhcmFtIG9NYW5pZmVzdFJvdXRpbmcgVGhlIHJvdXRpbmcgaW5mb3JtYXRpb24gZnJvbSB0aGUgYXBwIG1hbmlmZXN0XG5cdCAqIEBwYXJhbSBvU3RhcnR1cFBhcmFtZXRlcnMgVGhlIHN0YXJ0dXAgcGFyYW1ldGVyc1xuXHQgKiBAcGFyYW0gb01ldGFNb2RlbCBUaGUgbWV0YW1vZGVsXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHN0YXJ0dXAgcGFnZSBpbmZvc1xuXHQgKi9cblx0X2dldFN0YXJ0dXBQYWdlc0Zyb21TdGFydHVwUGFyYW1zOiBmdW5jdGlvbiAob01hbmlmZXN0Um91dGluZzogYW55LCBvU3RhcnR1cFBhcmFtZXRlcnM6IGFueSwgb01ldGFNb2RlbDogT0RhdGFNZXRhTW9kZWwpOiBQYWdlSW5mb1tdIHtcblx0XHQvLyBGaW5kIGFsbCBwYWdlcyB0aGF0IGNhbiBiZSByZWFjaGVkIHdpdGggdGhlIHN0YXJ0dXAgcGFyYW1ldGVyc1xuXHRcdGNvbnN0IGFSZWFjaGFibGVQYWdlcyA9IHRoaXMuX2dldFJlYWNoYWJsZVBhZ2VzKG9NYW5pZmVzdFJvdXRpbmcsIG9TdGFydHVwUGFyYW1ldGVycywgb01ldGFNb2RlbCk7XG5cblx0XHRpZiAoYVJlYWNoYWJsZVBhZ2VzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdC8vIEZpbmQgdGhlIGxvbmdlc3Qgc2VxdWVuY2Ugb2YgcGFnZXMgdGhhdCBjYW4gYmUgcmVhY2hlZCAocmVjdXJzaXZlbHkpXG5cdFx0bGV0IHJlc3VsdDogUGFnZUluZm9bXSA9IFtdO1xuXHRcdGNvbnN0IGN1cnJlbnQ6IFBhZ2VJbmZvW10gPSBbXTtcblxuXHRcdGZ1bmN0aW9uIGZpbmRSZWN1cnNpdmUobGV2ZWw6IG51bWJlcikge1xuXHRcdFx0Y29uc3QgYUN1cnJlbnRMZXZlbFBhZ2VzID0gYVJlYWNoYWJsZVBhZ2VzW2xldmVsXTtcblx0XHRcdGNvbnN0IGxhc3RQYWdlID0gY3VycmVudC5sZW5ndGggPyBjdXJyZW50W2N1cnJlbnQubGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG5cblx0XHRcdGlmIChhQ3VycmVudExldmVsUGFnZXMpIHtcblx0XHRcdFx0YUN1cnJlbnRMZXZlbFBhZ2VzLmZvckVhY2goZnVuY3Rpb24gKG5leHRQYWdlKSB7XG5cdFx0XHRcdFx0aWYgKCFsYXN0UGFnZSB8fCBuZXh0UGFnZS5wYXR0ZXJuLmluZGV4T2YobGFzdFBhZ2UucGF0dGVybikgPT09IDApIHtcblx0XHRcdFx0XHRcdC8vIFdlIG9ubHkgY29uc2lkZXIgcGFnZXMgdGhhdCBjYW4gYmUgcmVhY2hlZCBmcm9tIHRoZSBwYWdlIGF0IHRoZSBwcmV2aW91cyBsZXZlbCxcblx0XHRcdFx0XHRcdC8vIC0tPiB0aGVpciBwYXR0ZXJuIG11c3QgYmUgdGhlIHBhdHRlcm4gb2YgdGhlIHByZXZpb3VzIHBhZ2Ugd2l0aCBhbm90aGVyIHNlZ21lbnQgYXBwZW5kZWRcblx0XHRcdFx0XHRcdGN1cnJlbnQucHVzaChuZXh0UGFnZSk7XG5cdFx0XHRcdFx0XHRmaW5kUmVjdXJzaXZlKGxldmVsICsgMSk7XG5cdFx0XHRcdFx0XHRjdXJyZW50LnBvcCgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoY3VycmVudC5sZW5ndGggPiByZXN1bHQubGVuZ3RoKSB7XG5cdFx0XHRcdHJlc3VsdCA9IGN1cnJlbnQuc2xpY2UoKTsgLy8gV2UgaGF2ZSBmb3VuZCBhIHNlcXVlbmNlIGxvbmdlciB0aGFuIG91ciBwcmV2aW91cyBiZXN0IC0tPiBzdG9yZSBpdCBhcyB0aGUgbmV3IGxvbmdlc3Rcblx0XHRcdH1cblx0XHR9XG5cblx0XHRmaW5kUmVjdXJzaXZlKDApO1xuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSxcblxuXHQvKipcblx0ICogQ3JlYXRlcyB0aGUgc3RhcnR1cCBvYmplY3QgZnJvbSB0aGUgbGlzdCBvZiBwYWdlcyBhbmQgY29udGV4dHMuXG5cdCAqXG5cdCAqIEBwYXJhbSBhU3RhcnR1cFBhZ2VzIFRoZSBwYWdlc1xuXHQgKiBAcGFyYW0gYUNvbnRleHRzIFRoZSBjb250ZXh0c1xuXHQgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyBlaXRoZXIgYSBoYXNoIG9yIGEgY29udGV4dCB0byBuYXZpZ2F0ZSB0bywgb3IgYW4gZW1wdHkgb2JqZWN0IGlmIG5vIGRlZXAgbGluayB3YXMgZm91bmRcblx0ICovXG5cdF9nZXREZWVwTGlua09iamVjdDogZnVuY3Rpb24gKGFTdGFydHVwUGFnZXM6IFBhZ2VJbmZvW10sIGFDb250ZXh0czogQ29udGV4dFtdKTogeyBoYXNoPzogc3RyaW5nOyBjb250ZXh0PzogQ29udGV4dCB9IHtcblx0XHRpZiAoYUNvbnRleHRzLmxlbmd0aCA9PT0gMSkge1xuXHRcdFx0cmV0dXJuIHsgY29udGV4dDogYUNvbnRleHRzWzBdIH07XG5cdFx0fSBlbHNlIGlmIChhQ29udGV4dHMubGVuZ3RoID4gMSkge1xuXHRcdFx0Ly8gTmF2aWdhdGlvbiB0byBhIGRlZXBlciBsZXZlbCAtLT4gdXNlIHRoZSBwYXR0ZXJuIG9mIHRoZSBkZWVwZXN0IG9iamVjdCBwYWdlXG5cdFx0XHQvLyBhbmQgcmVwbGFjZSB0aGUgcGFyYW1ldGVycyBieSB0aGUgSUQgZnJvbSB0aGUgY29udGV4dHNcblx0XHRcdGxldCBoYXNoID0gYVN0YXJ0dXBQYWdlc1thU3RhcnR1cFBhZ2VzLmxlbmd0aCAtIDFdLnBhdHRlcm47XG5cdFx0XHRhQ29udGV4dHMuZm9yRWFjaChmdW5jdGlvbiAob0NvbnRleHQpIHtcblx0XHRcdFx0aGFzaCA9IGhhc2gucmVwbGFjZShcIigjKVwiLCBgKCR7b0NvbnRleHQuZ2V0UGF0aCgpLnNwbGl0KFwiKFwiKVsxXX1gKTtcblx0XHRcdH0pO1xuXG5cdFx0XHRyZXR1cm4geyBoYXNoIH07XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB7fTtcblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIENhbGN1bGF0ZXMgc3RhcnR1cCBwYXJhbWV0ZXJzIGZvciBhIGRlZXBsaW5rIGNhc2UsIGZyb20gc3RhcnR1cCBwYXJhbWV0ZXJzIGFuZCByb3V0aW5nIGluZm9pcm1hdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIG9NYW5pZmVzdFJvdXRpbmcgVGhlIHJvdXRpbmcgaW5mb3JtYXRpb24gZnJvbSB0aGUgYXBwIG1hbmlmZXN0XG5cdCAqIEBwYXJhbSBvU3RhcnR1cFBhcmFtZXRlcnMgVGhlIHN0YXJ0dXAgcGFyYW1ldGVyc1xuXHQgKiBAcGFyYW0gb01vZGVsIFRoZSBPRGF0YSBtb2RlbFxuXHQgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyBlaXRoZXIgYSBoYXNoIG9yIGEgY29udGV4dCB0byBuYXZpZ2F0ZSB0bywgb3IgYW4gZW1wdHkgb2JqZWN0IGlmIG5vIGRlZXAgbGluayB3YXMgZm91bmRcblx0ICovXG5cdGdldERlZXBMaW5rU3RhcnR1cEhhc2g6IGZ1bmN0aW9uIChcblx0XHRvTWFuaWZlc3RSb3V0aW5nOiBhbnksXG5cdFx0b1N0YXJ0dXBQYXJhbWV0ZXJzOiBhbnksXG5cdFx0b01vZGVsOiBPRGF0YU1vZGVsXG5cdCk6IFByb21pc2U8eyBoYXNoPzogc3RyaW5nOyBjb250ZXh0PzogQ29udGV4dCB9PiB7XG5cdFx0bGV0IGFTdGFydHVwUGFnZXM6IFBhZ2VJbmZvW107XG5cblx0XHRyZXR1cm4gb01vZGVsXG5cdFx0XHQuZ2V0TWV0YU1vZGVsKClcblx0XHRcdC5yZXF1ZXN0T2JqZWN0KFwiLyRFbnRpdHlDb250YWluZXIvXCIpXG5cdFx0XHQudGhlbigoKSA9PiB7XG5cdFx0XHRcdC8vIENoZWNrIGlmIHNlbWFudGljIGtleXMgYXJlIHByZXNlbnQgaW4gdXJsIHBhcmFtZXRlcnMgZm9yIGV2ZXJ5IG9iamVjdCBwYWdlIGF0IGVhY2ggbGV2ZWxcblx0XHRcdFx0YVN0YXJ0dXBQYWdlcyA9IHRoaXMuX2dldFN0YXJ0dXBQYWdlc0Zyb21TdGFydHVwUGFyYW1zKG9NYW5pZmVzdFJvdXRpbmcsIG9TdGFydHVwUGFyYW1ldGVycywgb01vZGVsLmdldE1ldGFNb2RlbCgpKTtcblxuXHRcdFx0XHRyZXR1cm4gdGhpcy5fcmVxdWVzdE9iamVjdHNGcm9tUGFyYW1ldGVycyhhU3RhcnR1cFBhZ2VzLCBvTW9kZWwpO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKChhVmFsdWVzOiBDb250ZXh0W11bXSkgPT4ge1xuXHRcdFx0XHRpZiAoYVZhbHVlcy5sZW5ndGgpIHtcblx0XHRcdFx0XHQvLyBNYWtlIHN1cmUgd2Ugb25seSBnZXQgMSBjb250ZXh0IHBlciBwcm9taXNlLCBhbmQgZmxhdHRlbiB0aGUgYXJyYXlcblx0XHRcdFx0XHRjb25zdCBhQ29udGV4dHM6IENvbnRleHRbXSA9IFtdO1xuXHRcdFx0XHRcdGFWYWx1ZXMuZm9yRWFjaChmdW5jdGlvbiAoYUZvdW5kQ29udGV4dHMpIHtcblx0XHRcdFx0XHRcdGlmIChhRm91bmRDb250ZXh0cy5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0XHRcdFx0YUNvbnRleHRzLnB1c2goYUZvdW5kQ29udGV4dHNbMF0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0cmV0dXJuIGFDb250ZXh0cy5sZW5ndGggPT09IGFWYWx1ZXMubGVuZ3RoID8gdGhpcy5fZ2V0RGVlcExpbmtPYmplY3QoYVN0YXJ0dXBQYWdlcywgYUNvbnRleHRzKSA6IHt9O1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiB7fTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIENhbGN1bGF0ZXMgdGhlIG5ldyBoYXNoIGJhc2VkIG9uIHRoZSBzdGFydHVwIHBhcmFtZXRlcnMuXG5cdCAqXG5cdCAqIEBwYXJhbSBvU3RhcnR1cFBhcmFtZXRlcnMgVGhlIHN0YXJ0dXAgcGFyYW1ldGVyIHZhbHVlcyAobWFwIHBhcmFtZXRlciBuYW1lIC0+IGFycmF5IG9mIHZhbHVlcylcblx0ICogQHBhcmFtIHNDb250ZXh0UGF0aCBUaGUgY29udGV4dCBwYXRoIGZvciB0aGUgc3RhcnR1cCBvZiB0aGUgYXBwIChnZW5lcmFsbHkgdGhlIHBhdGggdG8gdGhlIG1haW4gZW50aXR5IHNldClcblx0ICogQHBhcmFtIG9Sb3V0ZXIgVGhlIHJvdXRlciBpbnN0YW5jZVxuXHQgKiBAcGFyYW0gb01ldGFNb2RlbCBUaGUgbWV0YSBtb2RlbFxuXHQgKiBAcmV0dXJucyBBIHByb21pc2UgY29udGFpbmluZyB0aGUgaGFzaCB0byBuYXZpZ2F0ZSB0bywgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIHRoZXJlJ3Mgbm8gbmVlZCB0byBuYXZpZ2F0ZVxuXHQgKi9cblx0Z2V0Q3JlYXRlU3RhcnR1cEhhc2g6IGZ1bmN0aW9uIChcblx0XHRvU3RhcnR1cFBhcmFtZXRlcnM6IGFueSxcblx0XHRzQ29udGV4dFBhdGg6IHN0cmluZyxcblx0XHRvUm91dGVyOiBSb3V0ZXIsXG5cdFx0b01ldGFNb2RlbDogT0RhdGFNZXRhTW9kZWxcblx0KTogUHJvbWlzZTxTdHJpbmc+IHtcblx0XHRyZXR1cm4gb01ldGFNb2RlbC5yZXF1ZXN0T2JqZWN0KGAke3NDb250ZXh0UGF0aH1AYCkudGhlbigob0VudGl0eVNldEFubm90YXRpb25zOiBhbnkpID0+IHtcblx0XHRcdGxldCBzTWV0YVBhdGggPSBcIlwiO1xuXHRcdFx0bGV0IGJDcmVhdGFibGUgPSB0cnVlO1xuXG5cdFx0XHRpZiAoXG5cdFx0XHRcdG9FbnRpdHlTZXRBbm5vdGF0aW9uc1tcIkBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnRSb290XCJdICYmXG5cdFx0XHRcdG9FbnRpdHlTZXRBbm5vdGF0aW9uc1tcIkBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnRSb290XCJdW1wiTmV3QWN0aW9uXCJdXG5cdFx0XHQpIHtcblx0XHRcdFx0c01ldGFQYXRoID0gYCR7c0NvbnRleHRQYXRofUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnRSb290L05ld0FjdGlvbkBPcmcuT0RhdGEuQ29yZS5WMS5PcGVyYXRpb25BdmFpbGFibGVgO1xuXHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0b0VudGl0eVNldEFubm90YXRpb25zW1wiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlNlc3Npb24udjEuU3RpY2t5U2Vzc2lvblN1cHBvcnRlZFwiXSAmJlxuXHRcdFx0XHRvRW50aXR5U2V0QW5ub3RhdGlvbnNbXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuU2Vzc2lvbi52MS5TdGlja3lTZXNzaW9uU3VwcG9ydGVkXCJdW1wiTmV3QWN0aW9uXCJdXG5cdFx0XHQpIHtcblx0XHRcdFx0c01ldGFQYXRoID0gYCR7c0NvbnRleHRQYXRofUBjb20uc2FwLnZvY2FidWxhcmllcy5TZXNzaW9uLnYxLlN0aWNreVNlc3Npb25TdXBwb3J0ZWQvTmV3QWN0aW9uQE9yZy5PRGF0YS5Db3JlLlYxLk9wZXJhdGlvbkF2YWlsYWJsZWA7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChzTWV0YVBhdGgpIHtcblx0XHRcdFx0Y29uc3QgYk5ld0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZSA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KHNNZXRhUGF0aCk7XG5cdFx0XHRcdGlmIChiTmV3QWN0aW9uT3BlcmF0aW9uQXZhaWxhYmxlID09PSBmYWxzZSkge1xuXHRcdFx0XHRcdGJDcmVhdGFibGUgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3Qgb0luc2VydFJlc3RyaWN0aW9ucyA9IG9FbnRpdHlTZXRBbm5vdGF0aW9uc1tcIkBPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLkluc2VydFJlc3RyaWN0aW9uc1wiXTtcblx0XHRcdFx0aWYgKG9JbnNlcnRSZXN0cmljdGlvbnMgJiYgb0luc2VydFJlc3RyaWN0aW9ucy5JbnNlcnRhYmxlID09PSBmYWxzZSkge1xuXHRcdFx0XHRcdGJDcmVhdGFibGUgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKGJDcmVhdGFibGUpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0RGVmYXVsdENyZWF0ZUhhc2gob1N0YXJ0dXBQYXJhbWV0ZXJzLCBzQ29udGV4dFBhdGgsIG9Sb3V0ZXIpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIFwiXCI7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIENhbGN1bGF0ZXMgdGhlIGhhc2ggdG8gY3JlYXRlIGEgbmV3IG9iamVjdC5cblx0ICpcblx0ICogQHBhcmFtIG9TdGFydHVwUGFyYW1ldGVycyBUaGUgc3RhcnR1cCBwYXJhbWV0ZXIgdmFsdWVzIChtYXAgcGFyYW1ldGVyIG5hbWUgLT4gYXJyYXkgb2YgdmFsdWVzKVxuXHQgKiBAcGFyYW0gc0NvbnRleHRQYXRoIFRoZSBjb250ZXh0IHBhdGggb2YgdGhlIGVudGl0eSBzZXQgdG8gYmUgdXNlZCBmb3IgdGhlIGNyZWF0aW9uXG5cdCAqIEBwYXJhbSBvUm91dGVyIFRoZSByb3V0ZXIgaW5zdGFuY2Vcblx0ICogQHJldHVybnMgVGhlIGhhc2hcblx0ICovXG5cdGdldERlZmF1bHRDcmVhdGVIYXNoOiBmdW5jdGlvbiAob1N0YXJ0dXBQYXJhbWV0ZXJzOiBhbnksIHNDb250ZXh0UGF0aDogc3RyaW5nLCBvUm91dGVyOiBSb3V0ZXIpOiBzdHJpbmcge1xuXHRcdGxldCBzRGVmYXVsdENyZWF0ZUhhc2ggPVxuXHRcdFx0b1N0YXJ0dXBQYXJhbWV0ZXJzICYmIG9TdGFydHVwUGFyYW1ldGVycy5wcmVmZXJyZWRNb2RlID8gKG9TdGFydHVwUGFyYW1ldGVycy5wcmVmZXJyZWRNb2RlWzBdIGFzIHN0cmluZykgOiBcImNyZWF0ZVwiO1xuXHRcdGxldCBzSGFzaCA9IFwiXCI7XG5cblx0XHRzRGVmYXVsdENyZWF0ZUhhc2ggPVxuXHRcdFx0c0RlZmF1bHRDcmVhdGVIYXNoLmluZGV4T2YoXCI6XCIpICE9PSAtMSAmJiBzRGVmYXVsdENyZWF0ZUhhc2gubGVuZ3RoID4gc0RlZmF1bHRDcmVhdGVIYXNoLmluZGV4T2YoXCI6XCIpICsgMVxuXHRcdFx0XHQ/IHNEZWZhdWx0Q3JlYXRlSGFzaC5zdWJzdHIoMCwgc0RlZmF1bHRDcmVhdGVIYXNoLmluZGV4T2YoXCI6XCIpKVxuXHRcdFx0XHQ6IFwiY3JlYXRlXCI7XG5cdFx0c0hhc2ggPSBgJHtzQ29udGV4dFBhdGguc3Vic3RyaW5nKDEpfSguLi4pP2ktYWN0aW9uPSR7c0RlZmF1bHRDcmVhdGVIYXNofWA7XG5cdFx0aWYgKG9Sb3V0ZXIuZ2V0Um91dGVJbmZvQnlIYXNoKHNIYXNoKSkge1xuXHRcdFx0cmV0dXJuIHNIYXNoO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYE5vIHJvdXRlIG1hdGNoIGZvciBjcmVhdGluZyBhIG5ldyAke3NDb250ZXh0UGF0aC5zdWJzdHJpbmcoMSl9YCk7XG5cdFx0fVxuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBcHBTdGFydHVwSGVscGVyO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7O0VBdUJBLElBQU1BLGdCQUFnQixHQUFHO0lBQ3hCO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0NDLHlCQUF5QixFQUFFLFVBQVVDLFNBQVYsRUFBK0JDLGtCQUEvQixFQUFpRjtNQUMzRyxJQUFJQyxTQUFTLEdBQUcsSUFBaEI7TUFDQSxJQUFNQyxLQUFLLEdBQUdILFNBQVMsQ0FBQ0ksR0FBVixDQUFjLFVBQUNDLElBQUQsRUFBVTtRQUNyQyxJQUFJSixrQkFBa0IsQ0FBQ0ksSUFBRCxDQUFsQixJQUE0Qkosa0JBQWtCLENBQUNJLElBQUQsQ0FBbEIsQ0FBeUJDLE1BQXpCLEtBQW9DLENBQXBFLEVBQXVFO1VBQ3RFLE9BQU87WUFBRUQsSUFBSSxFQUFKQSxJQUFGO1lBQVFFLEtBQUssRUFBRU4sa0JBQWtCLENBQUNJLElBQUQsQ0FBbEIsQ0FBeUIsQ0FBekI7VUFBZixDQUFQO1FBQ0EsQ0FGRCxNQUVPO1VBQ047VUFDQUgsU0FBUyxHQUFHLEtBQVo7VUFDQSxPQUFPO1lBQUVHLElBQUksRUFBSkEsSUFBRjtZQUFRRSxLQUFLLEVBQUU7VUFBZixDQUFQO1FBQ0E7TUFDRCxDQVJhLENBQWQ7TUFVQSxPQUFPTCxTQUFTLEdBQUdDLEtBQUgsR0FBV0ssU0FBM0I7SUFDQSxDQXJCdUI7O0lBdUJ4QjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0NDLHFCQUFxQixFQUFFLFVBQVVOLEtBQVYsRUFBOEJPLFVBQTlCLEVBQW1EQyxVQUFuRCxFQUF1RjtNQUM3RyxJQUFNQyxvQkFBb0IsR0FBR0MsV0FB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
|
|
@@ -106,7 +106,7 @@ const AppStartupHelper = {
|
|
|
106
106
|
},
|
|
107
107
|
|
|
108
108
|
/**
|
|
109
|
-
* Creates a PageInfo from a route if
|
|
109
|
+
* Creates a PageInfo from a route if it's reachable from the startup parameters.
|
|
110
110
|
*
|
|
111
111
|
* @param oRoute The route
|
|
112
112
|
* @param oManifestRouting The app manifest routing section
|
|
@@ -124,8 +124,9 @@ const AppStartupHelper = {
|
|
|
124
124
|
let sPattern: string = oRoute.pattern.replace(":?query:", "");
|
|
125
125
|
sPattern = sPattern.replace(/\/$/, "");
|
|
126
126
|
|
|
127
|
-
if (!sPattern) {
|
|
128
|
-
|
|
127
|
+
if (!sPattern || !sPattern.endsWith(")")) {
|
|
128
|
+
// Ignore level-0 routes (ListReport) or routes corresponding to a 1-1 relation (no keys in the URL in this case)
|
|
129
|
+
return undefined;
|
|
129
130
|
}
|
|
130
131
|
|
|
131
132
|
sPattern = sPattern.replace(/\(\{[^\}]*\}\)/g, "(#)"); // Replace keys with #
|