@sapui5/sap.fe.core 1.124.2 → 1.126.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/core/.library +5 -1
- package/src/sap/fe/core/ActionRuntime.js +2 -2
- package/src/sap/fe/core/ActionRuntime.ts +4 -4
- package/src/sap/fe/core/AppComponent.js +2 -2
- package/src/sap/fe/core/AppComponent.ts +1 -1
- package/src/sap/fe/core/AppStateHandler.js +2 -2
- package/src/sap/fe/core/AppStateHandler.ts +1 -1
- package/src/sap/fe/core/BaseController.js +2 -2
- package/src/sap/fe/core/BaseController.ts +1 -1
- package/src/sap/fe/core/CommonUtils.js +3 -3
- package/src/sap/fe/core/CommonUtils.ts +12 -15
- package/src/sap/fe/core/ExtensionAPI.js +2 -2
- package/src/sap/fe/core/ExtensionAPI.ts +4 -3
- package/src/sap/fe/core/PageController.js +2 -2
- package/src/sap/fe/core/PageController.ts +1 -1
- package/src/sap/fe/core/ResourceModel.js +2 -2
- package/src/sap/fe/core/ResourceModel.ts +1 -1
- package/src/sap/fe/core/ReuseComponent.js +172 -0
- package/src/sap/fe/core/ReuseComponent.ts +165 -0
- package/src/sap/fe/core/TemplateComponent.js +2 -2
- package/src/sap/fe/core/TemplateComponent.ts +5 -1
- package/src/sap/fe/core/TemplateModel.js +2 -2
- package/src/sap/fe/core/TemplateModel.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +92 -6
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +90 -10
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +30 -3
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +28 -4
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +10 -16
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +19 -16
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.js +3 -3
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.ts +5 -5
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +2 -2
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +1 -1
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +17 -5
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +14 -6
- package/src/sap/fe/core/controllerextensions/ContextSharing.js +2 -2
- package/src/sap/fe/core/controllerextensions/ContextSharing.ts +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js +57 -43
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +61 -46
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +2 -2
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +1 -1
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +8 -11
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +8 -16
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +10 -7
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +5 -5
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +22 -18
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +28 -23
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +4 -4
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +4 -1
- package/src/sap/fe/core/controllerextensions/PageReady.js +21 -15
- package/src/sap/fe/core/controllerextensions/PageReady.ts +29 -20
- package/src/sap/fe/core/controllerextensions/Paginator.js +2 -2
- package/src/sap/fe/core/controllerextensions/Paginator.ts +1 -1
- package/src/sap/fe/core/controllerextensions/Placeholder.js +12 -6
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +15 -1
- package/src/sap/fe/core/controllerextensions/Recommendations.js +26 -8
- package/src/sap/fe/core/controllerextensions/Recommendations.ts +29 -3
- package/src/sap/fe/core/controllerextensions/Routing.js +5 -7
- package/src/sap/fe/core/controllerextensions/Routing.ts +4 -4
- package/src/sap/fe/core/controllerextensions/Share.js +4 -4
- package/src/sap/fe/core/controllerextensions/Share.ts +10 -6
- package/src/sap/fe/core/controllerextensions/SideEffects.js +20 -5
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +22 -2
- package/src/sap/fe/core/controllerextensions/Telemetry.js +2 -2
- package/src/sap/fe/core/controllerextensions/Telemetry.ts +1 -1
- package/src/sap/fe/core/controllerextensions/ViewState.js +79 -81
- package/src/sap/fe/core/controllerextensions/ViewState.ts +117 -105
- package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.js +3 -3
- package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.ts +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +2 -2
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +2 -2
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +17 -8
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +8 -2
- package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +10 -9
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +15 -10
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +2 -2
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +130 -158
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +240 -275
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +2 -2
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +1 -1
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +46 -28
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +60 -32
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +2 -2
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +1 -1
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.js +2 -2
- package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.ts +27 -3
- package/src/sap/fe/core/controls/CommandExecution.js +2 -2
- package/src/sap/fe/core/controls/CommandExecution.ts +2 -2
- package/src/sap/fe/core/controls/ComponentLoader.js +3 -3
- package/src/sap/fe/core/controls/ComponentLoader.ts +2 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +3 -3
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +2 -2
- package/src/sap/fe/core/controls/EventDelegateHook.js +2 -2
- package/src/sap/fe/core/controls/EventDelegateHook.ts +2 -2
- package/src/sap/fe/core/controls/FormElementWrapper.js +51 -6
- package/src/sap/fe/core/controls/FormElementWrapper.ts +43 -2
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +3 -3
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.tsx +3 -3
- package/src/sap/fe/core/converters/ConverterContext.js +4 -2
- package/src/sap/fe/core/converters/ConverterContext.ts +5 -2
- package/src/sap/fe/core/converters/ManifestSettings.js +8 -2
- package/src/sap/fe/core/converters/ManifestSettings.ts +25 -3
- package/src/sap/fe/core/converters/ManifestWrapper.js +12 -3
- package/src/sap/fe/core/converters/ManifestWrapper.ts +11 -1
- package/src/sap/fe/core/converters/MetaModelConverter.js +7 -6
- package/src/sap/fe/core/converters/MetaModelConverter.ts +6 -2
- package/src/sap/fe/core/converters/annotations/DataField.js +56 -16
- package/src/sap/fe/core/converters/annotations/DataField.ts +74 -25
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +19 -18
- package/src/sap/fe/core/converters/controls/Common/Action.js +5 -5
- package/src/sap/fe/core/converters/controls/Common/Action.ts +14 -14
- package/src/sap/fe/core/converters/controls/Common/Chart.js +40 -7
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +56 -20
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +8 -11
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +23 -27
- package/src/sap/fe/core/converters/controls/Common/Form.js +10 -3
- package/src/sap/fe/core/converters/controls/Common/Form.ts +13 -4
- package/src/sap/fe/core/converters/controls/Common/KPI.js +3 -2
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +6 -2
- package/src/sap/fe/core/converters/controls/Common/Table.js +137 -48
- package/src/sap/fe/core/converters/controls/Common/Table.ts +174 -52
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +73 -21
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +91 -20
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +4 -4
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +2 -2
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +2 -2
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +2 -2
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +3 -3
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +17 -16
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +18 -17
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +2 -2
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +9 -9
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +12 -12
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +13 -7
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +12 -5
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +9 -73
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +4 -74
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +5 -10
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +3 -12
- package/src/sap/fe/core/formatters/CriticalityFormatter.js +4 -7
- package/src/sap/fe/core/formatters/CriticalityFormatter.ts +3 -3
- package/src/sap/fe/core/formatters/FiscalFormat.js +5 -3
- package/src/sap/fe/core/formatters/FiscalFormat.ts +4 -2
- package/src/sap/fe/core/formatters/StandardFormatter.js +2 -2
- package/src/sap/fe/core/formatters/StandardFormatter.ts +3 -3
- package/src/sap/fe/core/fpm/Component.js +3 -3
- package/src/sap/fe/core/fpm/Component.ts +3 -3
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.js +2 -2
- package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.ts +1 -1
- package/src/sap/fe/core/helpers/BindingHelper.js +2 -2
- package/src/sap/fe/core/helpers/BindingHelper.ts +2 -2
- package/src/sap/fe/core/helpers/BindingToolkitEvaluator.js +2 -2
- package/src/sap/fe/core/helpers/BindingToolkitEvaluator.ts +2 -2
- package/src/sap/fe/core/helpers/DeleteHelper.js +7 -4
- package/src/sap/fe/core/helpers/DeleteHelper.ts +9 -3
- package/src/sap/fe/core/helpers/MetaModelFunction.js +5 -5
- package/src/sap/fe/core/helpers/MetaModelFunction.ts +2 -2
- package/src/sap/fe/core/helpers/MetaPath.js +9 -3
- package/src/sap/fe/core/helpers/MetaPath.ts +8 -2
- package/src/sap/fe/core/helpers/ModelHelper.js +149 -3
- package/src/sap/fe/core/helpers/ModelHelper.ts +202 -6
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +3 -3
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.ts +2 -2
- package/src/sap/fe/core/helpers/TitleHelper.js +4 -4
- package/src/sap/fe/core/helpers/TitleHelper.ts +4 -4
- package/src/sap/fe/core/library.js +4 -4
- package/src/sap/fe/core/library.ts +2 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +11 -3
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +10 -2
- package/src/sap/fe/core/messagebundle.properties +8 -57
- package/src/sap/fe/core/messagebundle_ar.properties +2 -0
- package/src/sap/fe/core/messagebundle_bg.properties +2 -0
- package/src/sap/fe/core/messagebundle_ca.properties +2 -0
- package/src/sap/fe/core/messagebundle_cnr.properties +2 -0
- package/src/sap/fe/core/messagebundle_cs.properties +2 -0
- package/src/sap/fe/core/messagebundle_cy.properties +4 -2
- package/src/sap/fe/core/messagebundle_da.properties +2 -0
- package/src/sap/fe/core/messagebundle_de.properties +2 -0
- package/src/sap/fe/core/messagebundle_el.properties +2 -0
- package/src/sap/fe/core/messagebundle_en.properties +6 -57
- package/src/sap/fe/core/messagebundle_en_GB.properties +2 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +3 -36
- package/src/sap/fe/core/messagebundle_es.properties +2 -0
- package/src/sap/fe/core/messagebundle_es_MX.properties +2 -0
- package/src/sap/fe/core/messagebundle_et.properties +2 -0
- package/src/sap/fe/core/messagebundle_fi.properties +2 -0
- package/src/sap/fe/core/messagebundle_fr.properties +2 -0
- package/src/sap/fe/core/messagebundle_fr_CA.properties +3 -1
- package/src/sap/fe/core/messagebundle_hi.properties +2 -0
- package/src/sap/fe/core/messagebundle_hr.properties +2 -0
- package/src/sap/fe/core/messagebundle_hu.properties +3 -1
- package/src/sap/fe/core/messagebundle_id.properties +2 -0
- package/src/sap/fe/core/messagebundle_it.properties +2 -0
- package/src/sap/fe/core/messagebundle_iw.properties +3 -1
- package/src/sap/fe/core/messagebundle_ja.properties +2 -0
- package/src/sap/fe/core/messagebundle_kk.properties +2 -0
- package/src/sap/fe/core/messagebundle_ko.properties +2 -0
- package/src/sap/fe/core/messagebundle_lt.properties +2 -0
- package/src/sap/fe/core/messagebundle_lv.properties +2 -0
- package/src/sap/fe/core/messagebundle_mk.properties +2 -0
- package/src/sap/fe/core/messagebundle_ms.properties +2 -0
- package/src/sap/fe/core/messagebundle_nl.properties +2 -0
- package/src/sap/fe/core/messagebundle_no.properties +2 -0
- package/src/sap/fe/core/messagebundle_pl.properties +2 -0
- package/src/sap/fe/core/messagebundle_pt.properties +2 -0
- package/src/sap/fe/core/messagebundle_pt_PT.properties +2 -0
- package/src/sap/fe/core/messagebundle_ro.properties +2 -0
- package/src/sap/fe/core/messagebundle_ru.properties +2 -0
- package/src/sap/fe/core/messagebundle_sh.properties +64 -62
- package/src/sap/fe/core/messagebundle_sk.properties +2 -0
- package/src/sap/fe/core/messagebundle_sl.properties +2 -0
- package/src/sap/fe/core/messagebundle_sr.properties +2 -0
- package/src/sap/fe/core/messagebundle_sv.properties +2 -0
- package/src/sap/fe/core/messagebundle_th.properties +2 -0
- package/src/sap/fe/core/messagebundle_tr.properties +2 -0
- package/src/sap/fe/core/messagebundle_uk.properties +3 -1
- package/src/sap/fe/core/messagebundle_vi.properties +2 -0
- package/src/sap/fe/core/messagebundle_zh_CN.properties +2 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +2 -0
- package/src/sap/fe/core/operationsHelper.js +3 -3
- package/src/sap/fe/core/operationsHelper.ts +2 -2
- package/src/sap/fe/core/rootView/Fcl.controller.js +3 -3
- package/src/sap/fe/core/rootView/Fcl.controller.ts +2 -2
- package/src/sap/fe/core/rootView/NavContainer.controller.js +2 -2
- package/src/sap/fe/core/rootView/NavContainer.controller.ts +1 -1
- package/src/sap/fe/core/rootView/RootViewBaseController.js +114 -92
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +120 -106
- package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js +2 -2
- package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.js +6 -4
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +4 -3
- package/src/sap/fe/core/services/RoutingServiceFactory.js +2 -2
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
- package/src/sap/fe/core/services/ShellServicesFactory.ts +12 -2
- package/src/sap/fe/core/services/TelemetryServiceFactory.js +8 -2
- package/src/sap/fe/core/services/TelemetryServiceFactory.ts +7 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +16 -9
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +22 -11
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +2 -2
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -2
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
- package/src/sap/fe/core/templating/ActionHelper.js +2 -2
- package/src/sap/fe/core/templating/ActionHelper.ts +2 -2
- package/src/sap/fe/core/templating/CommonFormatters.js +2 -2
- package/src/sap/fe/core/templating/CommonFormatters.ts +3 -3
- package/src/sap/fe/core/templating/CriticalityFormatters.js +2 -2
- package/src/sap/fe/core/templating/CriticalityFormatters.ts +2 -2
- package/src/sap/fe/core/templating/DataFieldFormatters.js +4 -4
- package/src/sap/fe/core/templating/DataFieldFormatters.ts +2 -2
- package/src/sap/fe/core/templating/DataModelPathHelper.js +2 -2
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +2 -2
- package/src/sap/fe/core/templating/EntityTypeHelper.js +2 -2
- package/src/sap/fe/core/templating/EntityTypeHelper.ts +2 -2
- package/src/sap/fe/core/templating/FieldControlHelper.js +2 -2
- package/src/sap/fe/core/templating/FieldControlHelper.ts +2 -2
- package/src/sap/fe/core/templating/SemanticObjectHelper.js +2 -2
- package/src/sap/fe/core/templating/SemanticObjectHelper.ts +2 -2
- package/src/sap/fe/core/templating/UIFormatters.js +7 -7
- package/src/sap/fe/core/templating/UIFormatters.ts +6 -6
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +2 -2
- package/src/sap/fe/core/type/DateTimeWithTimezone.ts +1 -1
- package/src/sap/fe/core/type/Email.js +2 -2
- package/src/sap/fe/core/type/Email.ts +1 -1
- package/src/sap/fe/core/type/FiscalDate.js +2 -2
- package/src/sap/fe/core/type/FiscalDate.ts +1 -1
- package/src/sap/fe/core/type/InputMask.js +124 -0
- package/src/sap/fe/core/type/InputMask.ts +131 -0
- package/ui5.yaml +19 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +0 -81
- package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +0 -117
- package/src/sap/fe/core/helpers/AnnotationEnum.js +0 -33
- package/src/sap/fe/core/helpers/AnnotationEnum.ts +0 -21
- package/src/sap/fe/core/helpers/BindingToolkit.js +0 -1813
- package/src/sap/fe/core/helpers/BindingToolkit.ts +0 -2450
- package/src/sap/fe/core/helpers/ClassSupport.js +0 -584
- package/src/sap/fe/core/helpers/ClassSupport.ts +0 -697
- package/src/sap/fe/core/jsx-runtime/Fragment.js +0 -14
- package/src/sap/fe/core/jsx-runtime/Fragment.ts +0 -3
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js +0 -93
- package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +0 -86
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +0 -177
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +0 -197
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js +0 -237
- package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +0 -246
- package/src/sap/fe/core/jsx-runtime/jsx.js +0 -47
- package/src/sap/fe/core/jsx-runtime/jsx.ts +0 -71
- package/src/sap/fe/core/jsx-runtime/jsxs.js +0 -10
- package/src/sap/fe/core/jsx-runtime/jsxs.ts +0 -3
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +0 -172
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +0 -194
|
@@ -17,7 +17,7 @@ import UiModelConstants from "sap/fe/core/controllerextensions/editFlow/editFlow
|
|
|
17
17
|
import operations from "sap/fe/core/controllerextensions/editFlow/operations";
|
|
18
18
|
import sticky from "sap/fe/core/controllerextensions/editFlow/sticky";
|
|
19
19
|
import messageHandling from "sap/fe/core/controllerextensions/messageHandler/messageHandling";
|
|
20
|
-
import
|
|
20
|
+
import * as MetaModelConverter from "sap/fe/core/converters/MetaModelConverter";
|
|
21
21
|
import { isDataFieldForAction } from "sap/fe/core/converters/annotations/DataField";
|
|
22
22
|
import type { DeleteOption, DeleteParameters } from "sap/fe/core/helpers/DeleteHelper";
|
|
23
23
|
import deleteHelper from "sap/fe/core/helpers/DeleteHelper";
|
|
@@ -156,7 +156,7 @@ class TransactionHelper {
|
|
|
156
156
|
const model = listBinding.getModel();
|
|
157
157
|
const metaModel = model.getMetaModel();
|
|
158
158
|
const metaContext = metaModel.getMetaContext(listBinding.getResolvedPath() as string);
|
|
159
|
-
const listBindingObjectPath = getInvolvedDataModelObjects(metaContext);
|
|
159
|
+
const listBindingObjectPath = MetaModelConverter.getInvolvedDataModelObjects(metaContext);
|
|
160
160
|
|
|
161
161
|
const defaultFuncOnTargetObject = (listBindingObjectPath.targetObject as NavigationProperty | EntitySet).annotations.Common
|
|
162
162
|
?.DefaultValuesFunction;
|
|
@@ -176,7 +176,7 @@ class TransactionHelper {
|
|
|
176
176
|
}
|
|
177
177
|
const defaultFunctionPath = `${metaModel.getMetaPath(defaultFunctionContext.getPath())}/${defaultFunctionName}`;
|
|
178
178
|
|
|
179
|
-
const defaultFunctionObjectPath = getInvolvedDataModelObjects(metaModel.getMetaContext(defaultFunctionPath));
|
|
179
|
+
const defaultFunctionObjectPath = MetaModelConverter.getInvolvedDataModelObjects(metaModel.getMetaContext(defaultFunctionPath));
|
|
180
180
|
const defaultFunctionResult = (defaultFunctionObjectPath.targetObject as Action)?.isBound
|
|
181
181
|
? await operations.callBoundFunction(defaultFunctionName.toString(), defaultFunctionContext, model)
|
|
182
182
|
: ((await operations.callFunctionImport(defaultFunctionName.toString(), model)) as ODataV4Context);
|
|
@@ -234,7 +234,7 @@ class TransactionHelper {
|
|
|
234
234
|
|
|
235
235
|
// Add the parent path in the initial data if a parent is provided
|
|
236
236
|
if (options.parentContext) {
|
|
237
|
-
const objectPath = getInvolvedDataModelObjects(metaModel.getMetaContext(listBinding.getPath()));
|
|
237
|
+
const objectPath = MetaModelConverter.getInvolvedDataModelObjects(metaModel.getMetaContext(listBinding.getPath()));
|
|
238
238
|
const hierarchyQualifier = (listBinding.getAggregation() as { hierarchyQualifier: string }).hierarchyQualifier;
|
|
239
239
|
const parentNavigation =
|
|
240
240
|
objectPath.targetEntityType.annotations.Aggregation?.[`RecursiveHierarchy#${hierarchyQualifier}`]
|
|
@@ -924,10 +924,15 @@ class TransactionHelper {
|
|
|
924
924
|
const messagesReceived = messageHandling.getMessages().concat(messageHandling.getMessages(true, true)); // get unbound and bound messages present in the model
|
|
925
925
|
if (!(messagesReceived.length === 1 && messagesReceived[0].getType() === coreLibrary.MessageType.Success)) {
|
|
926
926
|
// show our object creation toast only if it is not coming from backend
|
|
927
|
+
const metaModel = context.getModel().getMetaModel();
|
|
928
|
+
const metaContext = metaModel.getMetaContext(context.getPath());
|
|
929
|
+
const entitySet = MetaModelConverter.getInvolvedDataModelObjects(metaContext).targetObject as
|
|
930
|
+
| EntitySet
|
|
931
|
+
| NavigationProperty;
|
|
927
932
|
MessageToast.show(
|
|
928
933
|
isNewObject
|
|
929
|
-
? resourceModel.getText("C_TRANSACTION_HELPER_OBJECT_CREATED")
|
|
930
|
-
: resourceModel.getText("C_TRANSACTION_HELPER_OBJECT_SAVED")
|
|
934
|
+
? resourceModel.getText("C_TRANSACTION_HELPER_OBJECT_CREATED", undefined, entitySet.name)
|
|
935
|
+
: resourceModel.getText("C_TRANSACTION_HELPER_OBJECT_SAVED", undefined, entitySet.name)
|
|
931
936
|
);
|
|
932
937
|
}
|
|
933
938
|
|
|
@@ -1018,7 +1023,6 @@ class TransactionHelper {
|
|
|
1018
1023
|
// and the acions it refers to present outside the entitycontainer, hence to obtain kind of the action
|
|
1019
1024
|
// split() on its name was required
|
|
1020
1025
|
const sName = sActionName.split("/")[1];
|
|
1021
|
-
sActionName = sName || sActionName;
|
|
1022
1026
|
|
|
1023
1027
|
contextToProcess = sName ? undefined : mParameters.contexts;
|
|
1024
1028
|
//checking whether the context is an array with more than 0 length or not an array(create action)
|
|
@@ -1036,12 +1040,13 @@ class TransactionHelper {
|
|
|
1036
1040
|
// also gather additional property paths to be requested such as text associations
|
|
1037
1041
|
// ensure deepClone so the original SideEffects mapping is not modified (BCP: 2380117956)
|
|
1038
1042
|
const mSideEffectsParameters =
|
|
1039
|
-
deepClone(
|
|
1040
|
-
|
|
1043
|
+
deepClone(
|
|
1044
|
+
appComponent.getSideEffectsService().getODataActionSideEffects(sName || sActionName, contextToProcess as ODataV4Context)
|
|
1045
|
+
) || {};
|
|
1041
1046
|
|
|
1042
1047
|
try {
|
|
1043
1048
|
let oResult: undefined | ODataV4Context | PromiseSettledResult<undefined | ODataV4Context>[];
|
|
1044
|
-
if (contextToProcess
|
|
1049
|
+
if (contextToProcess) {
|
|
1045
1050
|
oResult = await operations.callBoundAction(sActionName, mParameters.contexts as ODataV4Context[], oModel, appComponent, {
|
|
1046
1051
|
parameterValues: mParameters.parameterValues as Record<string, string | boolean | number | MultiValueFieldItem[]>[],
|
|
1047
1052
|
invocationGrouping: mParameters.invocationGrouping,
|
|
@@ -309,7 +309,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/EditState", "sap/fe/core/hel
|
|
|
309
309
|
dataLossDialog.close();
|
|
310
310
|
break;
|
|
311
311
|
case DraftDataLossOptions.Keep:
|
|
312
|
-
processFunctionForDrafts(
|
|
312
|
+
processFunctionForDrafts();
|
|
313
313
|
dataLossDialog.close();
|
|
314
314
|
break;
|
|
315
315
|
case DraftDataLossOptions.Discard:
|
|
@@ -337,4 +337,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/EditState", "sap/fe/core/hel
|
|
|
337
337
|
};
|
|
338
338
|
return draftDataLossPopup;
|
|
339
339
|
}, false);
|
|
340
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZpZ2F0aW9uVHlwZSIsIkRyYWZ0RGF0YUxvc3NPcHRpb25zIiwiZGF0YUxvc3NEaWFsb2ciLCJEcmFmdERhdGFMb3NzRGlhbG9nQmxvY2siLCJzaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24iLCJwYWdlQ29udHJvbGxlciIsInJiU2lsZW50bHlLZWVwIiwib01hbmlmZXN0IiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0TWFuaWZlc3RFbnRyeSIsImFwcCIsInByb2Nlc3NGY2xNb2RlIiwiZHJhZnRBZG1pbkRhdGEiLCJmbkNhbmNlbEZ1bmN0aW9uIiwib0NvbnRyb2xsZXIiLCJwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMiLCJiU2tpcEJpbmRpbmdUb1ZpZXciLCJjb250ZXh0IiwiQ3JlYXRpb25EYXRlVGltZSIsIkxhc3RDaGFuZ2VEYXRlVGltZSIsIm9wZW4iLCJ0aGVuIiwic2VsZWN0ZWRLZXkiLCJkcmFmdERhdGFMb3NzUG9wdXAiLCJoYW5kbGVEaWFsb2dTZWxlY3Rpb24iLCJwcm9jZXNzTm9BY3RpdmVFbnRpdHlNb2RlIiwibmF2aWdhdGlvblR5cGUiLCJiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uIiwiRWRpdFN0YXRlIiwiaXNFZGl0U3RhdGVEaXJ0eSIsIkJhY2tOYXZpZ2F0aW9uIiwiZGlzY2FyZERyYWZ0IiwiZXJyb3IiLCJMb2ciLCJGb3J3YXJkTmF2aWdhdGlvbiIsInByb2Nlc3NFZGl0aW5nRHJhZnRGb3JFeGlzdGluZ0VudGl0eSIsIm9Db250ZXh0IiwibVBhcmFtZXRlcnMiLCJza2lwRGlzY2FyZFBvcG92ZXIiLCJlZGl0RmxvdyIsImNhbmNlbERvY3VtZW50IiwicHJvY2Vzc0VkaXRTdGF0ZURpcnR5IiwicHJvY2Vzc0RyYWZ0QWRtaW5EYXRhIiwiZm5Qcm9jZXNzRnVuY3Rpb24iLCJjb2xsYWJvcmF0aW9uQ29ubmVjdGVkIiwiY29sbGFib3JhdGl2ZURyYWZ0IiwiaXNDb25uZWN0ZWQiLCJkaXNjb25uZWN0IiwiYXJncyIsImFwcGx5IiwiZ2V0Um9vdFZpZXdDb250cm9sbGVyIiwiaXNGY2xFbmFibGVkIiwiZ2V0T2JqZWN0IiwiSGFzQWN0aXZlRW50aXR5IiwicHJvY2Vzc0RhdGFMb3NzT3JEcmFmdERpc2NhcmRDb25maXJtYXRpb24iLCJvVmlldyIsImdldFZpZXciLCJvTW9kZWwiLCJnZXRNb2RlbCIsIm9NZXRhTW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJ2aWV3RGF0YSIsImdldFZpZXdEYXRhIiwiY29udGV4dFBhdGgiLCJlbnRpdHlTZXQiLCJ1bmRlZmluZWQiLCJpc0RyYWZ0Um9vdCIsIm9VSU1vZGVsIiwiYklzRWRpdGFibGUiLCJnZXRQcm9wZXJ0eSIsIm9yaWdpbmFsQ29udGV4dCIsImRyYWZ0Um9vdFBhdGgiLCJnZXRQYXRoIiwiTW9kZWxIZWxwZXIiLCJnZXREcmFmdFJvb3RQYXRoIiwiYmluZENvbnRleHQiLCIkZXhwYW5kIiwiZ2V0Qm91bmRDb250ZXh0IiwiaXNEZWxldGVkIiwicmVxdWVzdE9iamVjdCIsIm9FcnJvciIsInNhdmVEb2N1bWVudCIsImNvbnRyb2xsZXIiLCJoYXNJbml0aWFsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0IiwiaXNBIiwiX3NhdmVEb2N1bWVudCIsInNraXBCaW5kaW5nVG9WaWV3IiwicGFyYW1zIiwic2tpcEJhY2tOYXZpZ2F0aW9uIiwiU2F2ZSIsImNhdGNoIiwiUmVjb21tZW5kYXRpb25EaWFsb2dEZWNpc2lvbiIsIkNvbnRpbnVlIiwiY2xvc2UiLCJLZWVwIiwiRGlzY2FyZCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiZHJhZnREYXRhTG9zc1BvcHVwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgRWRpdFN0YXRlIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0VkaXRTdGF0ZVwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgdHlwZSBPYmplY3RQYWdlQ29udHJvbGxlckNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvT2JqZWN0UGFnZS9PYmplY3RQYWdlQ29udHJvbGxlci5jb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSBPRGF0YVY0Q29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCBEcmFmdERhdGFMb3NzRGlhbG9nQmxvY2sgZnJvbSBcIi4uLy4uL2NvbnRyb2xzL0RhdGFMb3NzT3JEcmFmdERpc2NhcmQvRHJhZnREYXRhTG9zc0RpYWxvZy5ibG9ja1wiO1xuaW1wb3J0IHsgUmVjb21tZW5kYXRpb25EaWFsb2dEZWNpc2lvbiB9IGZyb20gXCIuLi8uLi9jb250cm9scy9SZWNvbW1lbmRhdGlvbnMvQ29uZmlybVJlY29tbWVuZGF0aW9uRGlhbG9nLmJsb2NrXCI7XG5cbi8qIEVudW0gZm9yIG5hdmlnYXRpb24gdHlwZXMgKi9cbmVudW0gTmF2aWdhdGlvblR5cGUge1xuXHRCYWNrTmF2aWdhdGlvbiA9IFwiQmFja05hdmlnYXRpb25cIixcblx0Rm9yd2FyZE5hdmlnYXRpb24gPSBcIkZvcndhcmROYXZpZ2F0aW9uXCJcbn1cblxuLyogRW51bSB0eXBlcyBmb3IgdGhlIGRhdGEgbG9zcyBkaWFsb2cgb3B0aW9ucyAqL1xuZW51bSBEcmFmdERhdGFMb3NzT3B0aW9ucyB7XG5cdFNhdmUgPSBcImRyYWZ0RGF0YUxvc3NPcHRpb25TYXZlXCIsXG5cdEtlZXAgPSBcImRyYWZ0RGF0YUxvc3NPcHRpb25LZWVwXCIsXG5cdERpc2NhcmQgPSBcImRyYWZ0RGF0YUxvc3NPcHRpb25EaXNjYXJkXCJcbn1cblxudHlwZSBEcmFmdEFkbWluaXN0cmF0aXZlRGF0YSA9IHtcblx0Q3JlYXRpb25EYXRlVGltZTogRGF0ZTtcblx0TGFzdENoYW5nZURhdGVUaW1lOiBEYXRlO1xufTtcblxuLypDcmVhdGUgdGhlIGRhdGEgbG9zcyBkaWFsb2cqL1xuY29uc3QgZGF0YUxvc3NEaWFsb2cgPSBuZXcgRHJhZnREYXRhTG9zc0RpYWxvZ0Jsb2NrKHt9KTtcblxuLyoqXG4gKiBUaGUgbWV0aG9kIGNoZWNrcyB3aGV0aGVyIGFuIG9wdGlvbmFsIHBhcmFtZXRlciBpbiB0aGUgbWFuaWZlc3QgaXMgc2V0IHRvIHNpbGVudGx5IGtlZXAgdGhlIGRyYWZ0IGluIGNhc2UgYSBmb3J3YXJkIG5hdmlnYXRpb24gaXMgdHJpZ2dlcmVkLlxuICpcbiAqIEBwYXJhbSBwYWdlQ29udHJvbGxlciBUaGUgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IFBhZ2VDb250cm9sbGVyIGluc3RhbmNlXG4gKiBAcmV0dXJucyBCb29sZWFuIHZhbHVlIHdpdGggdHJ1ZSBvciBmYWxzZSB0byBzaWxlbnRseSBrZWVwIHRoZSBkcmFmdFxuICovXG5mdW5jdGlvbiBzaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24ocGFnZUNvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyKTogYm9vbGVhbiB7XG5cdGxldCByYlNpbGVudGx5S2VlcDtcblx0Y29uc3Qgb01hbmlmZXN0ID0gcGFnZUNvbnRyb2xsZXIuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0TWFuaWZlc3RFbnRyeShcInNhcC5mZVwiKTtcblx0cmJTaWxlbnRseUtlZXAgPSBvTWFuaWZlc3Q/LmFwcD8uc2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uIHx8IGZhbHNlO1xuXHRyZXR1cm4gcmJTaWxlbnRseUtlZXA7XG59XG5cbi8qKlxuICogTG9naWMgdG8gcHJvY2VzcyB0aGUgRkNMIG1vZGUuXG4gKlxuICogQHBhcmFtIGRyYWZ0QWRtaW5EYXRhIEFkbWluIGRhdGFcbiAqIEBwYXJhbSBmbkNhbmNlbEZ1bmN0aW9uIFRoZSBjYW5jZWwgZnVuY3Rpb25cbiAqIEBwYXJhbSBvQ29udHJvbGxlciBUaGUgY3VycmVudCBjb250cm9sbGVyIHJlZmVyZW5jZWRcbiAqIEBwYXJhbSBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMgVGhlIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBiU2tpcEJpbmRpbmdUb1ZpZXcgVGhlIG9wdGlvbmFsIHBhcmFtZXRlciB0byBza2lwIHRoZSBiaW5kaW5nIHRvIHRoZSB2aWV3XG4gKiBAcGFyYW0gY29udGV4dCBUaGUgY29udGV4dCB0byBiZSB1c2VkIGZvciB0aGUgZHJhZnQgb3BlcmF0aW9uXG4gKiBAcmV0dXJucyBOb3RoaW5nXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NGY2xNb2RlKFxuXHRkcmFmdEFkbWluRGF0YTogRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGEsXG5cdGZuQ2FuY2VsRnVuY3Rpb246IEZ1bmN0aW9uLFxuXHRvQ29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIsXG5cdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0czogRnVuY3Rpb24sXG5cdGJTa2lwQmluZGluZ1RvVmlldz86IGJvb2xlYW4sXG5cdGNvbnRleHQ/OiBPRGF0YVY0Q29udGV4dFxuKTogUHJvbWlzZTx2b2lkPiB7XG5cdC8vIFRoZSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIGluIEZDTCBtb2RlIHNvIGluIHRoaXMgY2FzZSB3ZSBmYWxsIGJhY2sgdG9cblx0Ly8gdGhlIG9sZCBsb2dpYyBzaW5jZSB0aGUgZGlydHkgc3RhdGUgaGFuZGxpbmcgaXMgbm90IHByb3Blcmx5IHdvcmtpbmdcblx0Ly8gZm9yIEZDTC5cblx0aWYgKGRyYWZ0QWRtaW5EYXRhLkNyZWF0aW9uRGF0ZVRpbWUgIT09IGRyYWZ0QWRtaW5EYXRhLkxhc3RDaGFuZ2VEYXRlVGltZSkge1xuXHRcdHJldHVybiBkYXRhTG9zc0RpYWxvZ1xuXHRcdFx0Lm9wZW4ob0NvbnRyb2xsZXIpXG5cdFx0XHQudGhlbigoc2VsZWN0ZWRLZXkpID0+XG5cdFx0XHRcdGRyYWZ0RGF0YUxvc3NQb3B1cC5oYW5kbGVEaWFsb2dTZWxlY3Rpb24oXG5cdFx0XHRcdFx0c2VsZWN0ZWRLZXkgYXMgc3RyaW5nLFxuXHRcdFx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyxcblx0XHRcdFx0XHRmbkNhbmNlbEZ1bmN0aW9uLFxuXHRcdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRcdGJTa2lwQmluZGluZ1RvVmlldyxcblx0XHRcdFx0XHRjb250ZXh0XG5cdFx0XHRcdClcblx0XHRcdCk7XG5cdH0gZWxzZSB7XG5cdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdH1cbn1cblxuLyoqXG4gKiBMb2dpYyB0byBwcm9jZXNzIHRoZSBtb2RlIHdpdGggbm8gYWN0aXZlIGVudGl0eS5cbiAqXG4gKiBAcGFyYW0gZHJhZnRBZG1pbkRhdGEgQWRtaW4gZGF0YVxuICogQHBhcmFtIGZuQ2FuY2VsRnVuY3Rpb24gVGhlIGNhbmNlbCBmdW5jdGlvblxuICogQHBhcmFtIG9Db250cm9sbGVyIFRoZSBjdXJyZW50IGNvbnRyb2xsZXIgcmVmZXJlbmNlZFxuICogQHBhcmFtIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyBUaGUgZnVuY3Rpb24gdG8gcHJvY2VzcyB0aGUgaGFuZGxlclxuICogQHBhcmFtIG5hdmlnYXRpb25UeXBlIFRoZSBuYXZpZ2F0aW9uIHR5cGUgZm9yIHdoaWNoIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkXG4gKiBAcGFyYW0gYlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbiBUaGUgcGFyYW1ldGVyIHRvIGRldGVybWluZSB3aGV0aGVyIHRvIHNraXAgdGhlIHBvcHVwIGFwcGVhcmFuY2UgaW4gZm9yd2FyZCBjYXNlXG4gKiBAcGFyYW0gYlNraXBCaW5kaW5nVG9WaWV3IFRoZSBvcHRpb25hbCBwYXJhbWV0ZXIgdG8gc2tpcCB0aGUgYmluZGluZyB0byB0aGUgdmlld1xuICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgdG8gYmUgdXNlZCBmb3IgdGhlIGRyYWZ0IG9wZXJhdGlvbnNcbiAqIEByZXR1cm5zIE5vdGhpbmdcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc05vQWN0aXZlRW50aXR5TW9kZShcblx0ZHJhZnRBZG1pbkRhdGE6IERyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhLFxuXHRmbkNhbmNlbEZ1bmN0aW9uOiBGdW5jdGlvbixcblx0b0NvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyLFxuXHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHM6IEZ1bmN0aW9uLFxuXHRuYXZpZ2F0aW9uVHlwZTogTmF2aWdhdGlvblR5cGUsXG5cdGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb246IGJvb2xlYW4sXG5cdGJTa2lwQmluZGluZ1RvVmlldz86IGJvb2xlYW4sXG5cdGNvbnRleHQ/OiBPRGF0YVY0Q29udGV4dFxuKTogUHJvbWlzZTx2b2lkPiB7XG5cdC8vIFRoZXJlIGlzIG5vIGFjdGl2ZSBlbnRpdHkgc28sIHdlIGFyZSBlZGl0aW5nIGVpdGhlciBuZXdseSBjcmVhdGVkIGRhdGEgb3Jcblx0Ly8gYSBkcmFmdCB3aGljaCBoYXMgbmV2ZXIgYmVlbiBzYXZlZCB0byBhY3RpdmUgdmVyc2lvblxuXHQvLyBTaW5jZSB3ZSB3YW50IHRvIHJlYWN0IGRpZmZlcmVudGx5IGluIHRoZSB0d28gc2l0dWF0aW9ucywgd2UgaGF2ZSB0byBjaGVjayB0aGVcblx0Ly8gZGlydHkgc3RhdGVcblx0aWYgKEVkaXRTdGF0ZS5pc0VkaXRTdGF0ZURpcnR5KCkpIHtcblx0XHRpZiAoZHJhZnRBZG1pbkRhdGEuQ3JlYXRpb25EYXRlVGltZSA9PT0gZHJhZnRBZG1pbkRhdGEuTGFzdENoYW5nZURhdGVUaW1lICYmIG5hdmlnYXRpb25UeXBlID09PSBOYXZpZ2F0aW9uVHlwZS5CYWNrTmF2aWdhdGlvbikge1xuXHRcdFx0Ly8gaW4gY2FzZSB3ZSBoYXZlIHVudG91Y2hlZCBjaGFuZ2VzIGZvciB0aGUgZHJhZnQgYW5kIGEgXCJiYWNrXCJcblx0XHRcdC8vIG5hdmlnYXRpb24gd2UgY2FuIHNpbGVudGx5IGRpc2NhcmQgdGhlIGRyYWZ0IGFnYWluXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvbWlzZS9uby1uZXN0aW5nXG5cdFx0XHR0cnkge1xuXHRcdFx0XHRhd2FpdCBkcmFmdERhdGFMb3NzUG9wdXAuZGlzY2FyZERyYWZ0KG9Db250cm9sbGVyLCBiU2tpcEJpbmRpbmdUb1ZpZXcsIGNvbnRleHQpO1xuXHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0XHRcdH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIGNhbmNlbGluZyB0aGUgZG9jdW1lbnRcIiwgZXJyb3IgYXMgc3RyaW5nKTtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKG5hdmlnYXRpb25UeXBlID09PSBOYXZpZ2F0aW9uVHlwZS5Gb3J3YXJkTmF2aWdhdGlvbiAmJiBiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uKSB7XG5cdFx0XHQvLyBJbiBjYXNlIHdlIGhhdmUgYSBcImZvcndhcmQgbmF2aWdhdGlvblwiIGFuZCBhbiBhZGRpdGlvbmFsIHBhcmFtZXRlciBzZXQgaW4gdGhlIG1hbmlmZXN0XG5cdFx0XHQvLyB3ZSBcInNpbGVudGx5XCIga2VlcCB0aGUgZHJhZnRcblx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBJbiB0aGlzIGNhc2UgZGF0YSBpcyBiZWluZyBjaGFuZ2VkIG9yIGEgZm9yd2FyZCBuYXZpZ2F0aW9uIGlzIHRyaWdnZXJlZFxuXHRcdFx0Ly8gYW5kLCB3ZSBhbHdheXMgd2FudCB0byBzaG93IHRoZSBkYXRhIGxvc3MgZGlhbG9nIG9uIG5hdmlnYXRpb25cblx0XHRcdHJldHVybiBkYXRhTG9zc0RpYWxvZ1xuXHRcdFx0XHQub3BlbihvQ29udHJvbGxlcilcblx0XHRcdFx0LnRoZW4oKHNlbGVjdGVkS2V5KSA9PlxuXHRcdFx0XHRcdGRyYWZ0RGF0YUxvc3NQb3B1cC5oYW5kbGVEaWFsb2dTZWxlY3Rpb24oXG5cdFx0XHRcdFx0XHRzZWxlY3RlZEtleSBhcyBzdHJpbmcsXG5cdFx0XHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsXG5cdFx0XHRcdFx0XHRmbkNhbmNlbEZ1bmN0aW9uLFxuXHRcdFx0XHRcdFx0b0NvbnRyb2xsZXIsXG5cdFx0XHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXcsXG5cdFx0XHRcdFx0XHRjb250ZXh0XG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHQvLyBXZSBhcmUgZWRpdGluZyBhIGRyYWZ0IHdoaWNoIGhhcyBiZWVuIGNyZWF0ZWQgZWFybGllciBidXQgbmV2ZXIgc2F2ZWQgdG8gYWN0aXZlXG5cdFx0Ly8gdmVyc2lvbiBhbmQgc2luY2UgdGhlIGVkaXQgc3RhdGUgaXMgbm90IGRpcnR5LCB0aGVyZSBoYXZlIGJlZW4gbm8gdXNlciBjaGFuZ2VzXG5cdFx0Ly8gc28gaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gc2lsZW50bHkgbmF2aWdhdGUgYW5kIGRvIG5vdGhpbmdcblx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0fVxufVxuXG4vKipcbiAqIExvZ2ljIHRvIHByb2Nlc3MgdGhlIGRyYWZ0IGVkaXRpbmcgZm9yIGV4aXN0aW5nIGVudGl0eS5cbiAqXG4gKiBAcGFyYW0gb0NvbnRyb2xsZXIgVGhlIGN1cnJlbnQgY29udHJvbGxlciByZWZlcmVuY2VkLlxuICogQHBhcmFtIG9Db250ZXh0IFRoZSBjb250ZXh0IG9mIHRoZSBjdXJyZW50IGNhbGxcbiAqIEBwYXJhbSBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMgVGhlIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uVHlwZSBUaGUgbmF2aWdhdGlvbiB0eXBlIGZvciB3aGljaCB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZFxuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRWRpdGluZ0RyYWZ0Rm9yRXhpc3RpbmdFbnRpdHkoXG5cdG9Db250cm9sbGVyOiBQYWdlQ29udHJvbGxlcixcblx0b0NvbnRleHQ6IE9EYXRhVjRDb250ZXh0LFxuXHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHM6IEZ1bmN0aW9uLFxuXHRuYXZpZ2F0aW9uVHlwZTogTmF2aWdhdGlvblR5cGVcbik6IFByb21pc2U8dm9pZD4ge1xuXHQvLyBXZSBhcmUgZWRpdGluZyBhIGRyYWZ0IGZvciBhbiBleGlzdGluZyBhY3RpdmUgZW50aXR5XG5cdC8vIFRoZSBDcmVhdGlvbkRhdGVUaW1lIGFuZCBMYXN0Q2hhbmdlRGF0ZVRpbWUgYXJlIGVxdWFsLCBzbyB0aGlzIGRyYWZ0IHdhc1xuXHQvLyBuZXZlciBzYXZlZCBiZWZvcmUsIGhlbmNlIHdlJ3JlIGN1cnJlbnRseSBlZGl0aW5nIGEgbmV3bHkgY3JlYXRlZCBkcmFmdCBmb3Jcblx0Ly8gYW4gZXhpc3RpbmcgYWN0aXZlIGVudGl0eSBmb3IgdGhlIGZpcnN0IHRpbWUuXG5cdC8vIEFsc28sIHRoZXJlIGhhdmUgc28gZmFyIGJlZW4gbm8gY2hhbmdlcyBtYWRlIHRvIHRoZSBkcmFmdCBhbmQgaW4gdGhpc1xuXHQvLyBjYXNlIHdlIHdhbnQgdG8gc2lsZW50bHkgbmF2aWdhdGUgYW5kIGRlbGV0ZSB0aGUgZHJhZnQgaW4gY2FzZSBvZiBhIGJhY2tcblx0Ly8gbmF2aWdhdGlvbiBidXQgaW4gY2FzZSBvZiBhIGZvcndhcmQgbmF2aWdhdGlvbiB3ZSB3YW50IHRvIHNpbGVudGx5IGtlZXAgaXQhXG5cdGlmIChuYXZpZ2F0aW9uVHlwZSA9PT0gTmF2aWdhdGlvblR5cGUuQmFja05hdmlnYXRpb24pIHtcblx0XHRjb25zdCBtUGFyYW1ldGVycyA9IHtcblx0XHRcdHNraXBEaXNjYXJkUG9wb3ZlcjogdHJ1ZVxuXHRcdH07XG5cblx0XHR0cnkge1xuXHRcdFx0YXdhaXQgb0NvbnRyb2xsZXIuZWRpdEZsb3cuY2FuY2VsRG9jdW1lbnQob0NvbnRleHQsIG1QYXJhbWV0ZXJzKTtcblx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSBjYW5jZWxpbmcgdGhlIGRvY3VtZW50XCIsIGVycm9yIGFzIEVycm9yKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Ly8gSW4gY2FzZSBvZiBhIGZvcndhcmQgbmF2aWdhdGlvbiB3ZSBzaWxlbnRseSBrZWVwIHRoZSBkcmFmdCBhbmQgb25seVxuXHRcdC8vIGV4ZWN1dGUgdGhlIGZvbGxvd3VwIGZ1bmN0aW9uLlxuXHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHR9XG59XG5cbi8qKlxuICogTG9naWMgdG8gcHJvY2VzcyB0aGUgY29udGV4dCB3aGVuIHRoZSBlZGl0IHN0YXRlIGlzIGluIGRpcnR5IG1vZGUuXG4gKlxuICogQHBhcmFtIG9Db250cm9sbGVyIFRoZSBjdXJyZW50IGNvbnRyb2xsZXIgcmVmZXJlbmNlZC5cbiAqIEBwYXJhbSBmbkNhbmNlbEZ1bmN0aW9uIFRoZSBjYW5jZWwgZnVuY3Rpb25cbiAqIEBwYXJhbSBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMgVGhlIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uVHlwZSBUaGUgbmF2aWdhdGlvbiB0eXBlIGZvciB3aGljaCB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZFxuICogQHBhcmFtIGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24gVGhlIHBhcmFtZXRlciB0byBkZXRlcm1pbmUgd2hldGhlciB0byBza2lwIHRoZSBwb3B1cCBhcHBlYXJhbmNlIGluIGZvcndhcmQgY2FzZVxuICogQHBhcmFtIGJTa2lwQmluZGluZ1RvVmlldyBUaGUgb3B0aW9uYWwgcGFyYW1ldGVyIHRvIHNraXAgdGhlIGJpbmRpbmcgdG8gdGhlIHZpZXcuXG4gKiBAcGFyYW0gY29udGV4dCBUaGUgY29udGV4dCB0byBiZSB1c2VkIGZvciB0aGUgZHJhZnQgb3BlcmF0aW9uc1xuICogQHJldHVybnMgTm90aGluZ1xuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRWRpdFN0YXRlRGlydHkoXG5cdG9Db250cm9sbGVyOiBQYWdlQ29udHJvbGxlcixcblx0Zm5DYW5jZWxGdW5jdGlvbjogRnVuY3Rpb24sXG5cdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0czogRnVuY3Rpb24sXG5cdG5hdmlnYXRpb25UeXBlOiBOYXZpZ2F0aW9uVHlwZSxcblx0YlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbjogYm9vbGVhbixcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhbixcblx0Y29udGV4dD86IE9EYXRhVjRDb250ZXh0XG4pOiBQcm9taXNlPHZvaWQ+IHtcblx0aWYgKG5hdmlnYXRpb25UeXBlID09PSBOYXZpZ2F0aW9uVHlwZS5Gb3J3YXJkTmF2aWdhdGlvbiAmJiBiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uKSB7XG5cdFx0Ly8gSW4gY2FzZSB3ZSBoYXZlIGEgXCJmb3J3YXJkIG5hdmlnYXRpb25cIiBhbmQgYW4gYWRkaXRpb25hbCBwYXJhbWV0ZXIgc2V0IGluIHRoZSBtYW5pZmVzdFxuXHRcdC8vIHdlIFwic2lsZW50bHlcIiBrZWVwIHRoZSBkcmFmdFxuXHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHR9IGVsc2Uge1xuXHRcdC8vIFRoZSBDcmVhdGlvbkRhdGVUaW1lIGFuZCBMYXN0Q2hhbmdlRGF0ZVRpbWUgYXJlIE5PVCBlcXVhbCwgc28gd2UgYXJlIGN1cnJlbnRseSBlZGl0aW5nXG5cdFx0Ly8gYW4gZXhpc3RpbmcgZHJhZnQgYW5kIG5lZWQgdG8gZGlzdGluZ3Vpc2ggZGVwZW5kaW5nIG9uIGlmIGFueSBjaGFuZ2VzXG5cdFx0Ly8gaGF2ZSBiZWVuIG1hZGUgaW4gdGhlIGN1cnJlbnQgZWRpdGluZyBzZXNzaW9uIG9yIG5vdFxuXHRcdC8vIENoYW5nZXMgaGF2ZSBiZWVuIG1hZGUgaW4gdGhlIGN1cnJlbnQgZWRpdGluZyBzZXNzaW9uLCBzbyB3ZSB3YW50XG5cdFx0Ly8gdG8gc2hvdyB0aGUgZGF0YSBsb3NzIGRpYWxvZyBhbmQgbGV0IHRoZSB1c2VyIGRlY2lkZVxuXHRcdHJldHVybiBkYXRhTG9zc0RpYWxvZ1xuXHRcdFx0Lm9wZW4ob0NvbnRyb2xsZXIpXG5cdFx0XHQudGhlbigoc2VsZWN0ZWRLZXkpID0+XG5cdFx0XHRcdGRyYWZ0RGF0YUxvc3NQb3B1cC5oYW5kbGVEaWFsb2dTZWxlY3Rpb24oXG5cdFx0XHRcdFx0c2VsZWN0ZWRLZXkgYXMgc3RyaW5nLFxuXHRcdFx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyxcblx0XHRcdFx0XHRmbkNhbmNlbEZ1bmN0aW9uLFxuXHRcdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRcdGJTa2lwQmluZGluZ1RvVmlldyxcblx0XHRcdFx0XHRjb250ZXh0XG5cdFx0XHRcdClcblx0XHRcdCk7XG5cdH1cbn1cblxuLyoqXG4gKiBMb2dpYyB0byBwcm9jZXNzIHRoZSBhZG1pbiBkYXRhLlxuICpcbiAqIEBwYXJhbSBkcmFmdEFkbWluRGF0YSBBZG1pbiBkYXRhXG4gKiBAcGFyYW0gZm5Qcm9jZXNzRnVuY3Rpb24gVGhlIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBmbkNhbmNlbEZ1bmN0aW9uIFRoZSBjYW5jZWwgZnVuY3Rpb25cbiAqIEBwYXJhbSBvQ29udGV4dCBUaGUgY29udGV4dCBvZiB0aGUgY3VycmVudCBjYWxsXG4gKiBAcGFyYW0gb0NvbnRyb2xsZXIgVGhlIGN1cnJlbnQgY29udHJvbGxlciByZWZlcmVuY2VkXG4gKiBAcGFyYW0gYlNraXBCaW5kaW5nVG9WaWV3IFRoZSBvcHRpb25hbCBwYXJhbWV0ZXIgdG8gc2tpcCB0aGUgYmluZGluZyB0byB0aGUgdmlld1xuICogQHBhcmFtIG5hdmlnYXRpb25UeXBlIFRoZSBuYXZpZ2F0aW9uIHR5cGUgZm9yIHdoaWNoIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkXG4gKiBAcmV0dXJucyBOb3RoaW5nXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NEcmFmdEFkbWluRGF0YShcblx0ZHJhZnRBZG1pbkRhdGE6IERyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhLFxuXHRmblByb2Nlc3NGdW5jdGlvbjogRnVuY3Rpb24sXG5cdGZuQ2FuY2VsRnVuY3Rpb246IEZ1bmN0aW9uLFxuXHRvQ29udGV4dDogT0RhdGFWNENvbnRleHQsXG5cdG9Db250cm9sbGVyOiBQYWdlQ29udHJvbGxlcixcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhbixcblx0bmF2aWdhdGlvblR5cGU6IE5hdmlnYXRpb25UeXBlID0gTmF2aWdhdGlvblR5cGUuQmFja05hdmlnYXRpb25cbik6IFByb21pc2U8dm9pZD4ge1xuXHRjb25zdCBjb2xsYWJvcmF0aW9uQ29ubmVjdGVkID0gb0NvbnRyb2xsZXIuY29sbGFib3JhdGl2ZURyYWZ0LmlzQ29ubmVjdGVkKCk7XG5cdGNvbnN0IHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyA9ICFjb2xsYWJvcmF0aW9uQ29ubmVjdGVkXG5cdFx0PyBmblByb2Nlc3NGdW5jdGlvblxuXHRcdDogZnVuY3Rpb24gKC4uLmFyZ3M6IHVua25vd25bXSk6IHZvaWQge1xuXHRcdFx0XHRvQ29udHJvbGxlci5jb2xsYWJvcmF0aXZlRHJhZnQuZGlzY29ubmVjdCgpO1xuXHRcdFx0XHRmblByb2Nlc3NGdW5jdGlvbi5hcHBseShudWxsLCAuLi5hcmdzKTtcblx0XHQgIH07XG5cblx0Y29uc3QgYlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbiA9IHNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbihvQ29udHJvbGxlcik7XG5cblx0aWYgKGRyYWZ0QWRtaW5EYXRhKSB7XG5cdFx0aWYgKG9Db250cm9sbGVyLmdldEFwcENvbXBvbmVudCgpLmdldFJvb3RWaWV3Q29udHJvbGxlcigpLmlzRmNsRW5hYmxlZCgpKSB7XG5cdFx0XHRhd2FpdCBwcm9jZXNzRmNsTW9kZShkcmFmdEFkbWluRGF0YSwgZm5DYW5jZWxGdW5jdGlvbiwgb0NvbnRyb2xsZXIsIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cywgYlNraXBCaW5kaW5nVG9WaWV3LCBvQ29udGV4dCk7XG5cdFx0fSBlbHNlIGlmICghb0NvbnRleHQuZ2V0T2JqZWN0KCkuSGFzQWN0aXZlRW50aXR5KSB7XG5cdFx0XHRwcm9jZXNzTm9BY3RpdmVFbnRpdHlNb2RlKFxuXHRcdFx0XHRkcmFmdEFkbWluRGF0YSxcblx0XHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdFx0b0NvbnRyb2xsZXIsXG5cdFx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyxcblx0XHRcdFx0bmF2aWdhdGlvblR5cGUsXG5cdFx0XHRcdGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24sXG5cdFx0XHRcdGJTa2lwQmluZGluZ1RvVmlld1xuXHRcdFx0KTtcblx0XHR9IGVsc2UgaWYgKGRyYWZ0QWRtaW5EYXRhLkNyZWF0aW9uRGF0ZVRpbWUgPT09IGRyYWZ0QWRtaW5EYXRhLkxhc3RDaGFuZ2VEYXRlVGltZSkge1xuXHRcdFx0cHJvY2Vzc0VkaXRpbmdEcmFmdEZvckV4aXN0aW5nRW50aXR5KG9Db250cm9sbGVyLCBvQ29udGV4dCwgcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzLCBuYXZpZ2F0aW9uVHlwZSk7XG5cdFx0fSBlbHNlIGlmIChFZGl0U3RhdGUuaXNFZGl0U3RhdGVEaXJ0eSgpKSB7XG5cdFx0XHRwcm9jZXNzRWRpdFN0YXRlRGlydHkoXG5cdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRmbkNhbmNlbEZ1bmN0aW9uLFxuXHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsXG5cdFx0XHRcdG5hdmlnYXRpb25UeXBlLFxuXHRcdFx0XHRiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uLFxuXHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXdcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIFRoZSB1c2VyIHN0YXJ0ZWQgZWRpdGluZyB0aGUgZXhpc3RpbmcgZHJhZnQgYnV0IGRpZCBub3QgbWFrZSBhbnkgY2hhbmdlc1xuXHRcdFx0Ly8gaW4gdGhlIGN1cnJlbnQgZWRpdGluZyBzZXNzaW9uLCBzbyBpbiB0aGlzIGNhc2Ugd2UgZG8gbm90IHdhbnRcblx0XHRcdC8vIHRvIHNob3cgdGhlIGRhdGEgbG9zcyBkaWFsb2cgYnV0IGp1c3Qga2VlcCB0aGUgZHJhZnRcblx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRmblByb2Nlc3NGdW5jdGlvbigpO1xuXHR9XG59XG5cbi8qKlxuICogVGhlIGdlbmVyYWwgaGFuZGxlciBpbiB3aGljaCB0aGUgaW5kaXZpZHVhbCBzdGVwcyBhcmUgY2FsbGVkLlxuICpcbiAqIEBwYXJhbSBmblByb2Nlc3NGdW5jdGlvblxuICogQHBhcmFtIGZuQ2FuY2VsRnVuY3Rpb25cbiAqIEBwYXJhbSBvQ29udGV4dFxuICogQHBhcmFtIG9Db250cm9sbGVyXG4gKiBAcGFyYW0gYlNraXBCaW5kaW5nVG9WaWV3XG4gKiBAcGFyYW0gbmF2aWdhdGlvblR5cGVcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0RhdGFMb3NzT3JEcmFmdERpc2NhcmRDb25maXJtYXRpb24oXG5cdGZuUHJvY2Vzc0Z1bmN0aW9uOiBGdW5jdGlvbixcblx0Zm5DYW5jZWxGdW5jdGlvbjogRnVuY3Rpb24sXG5cdG9Db250ZXh0OiBPRGF0YVY0Q29udGV4dCxcblx0b0NvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyLFxuXHRiU2tpcEJpbmRpbmdUb1ZpZXc/OiBib29sZWFuLFxuXHRuYXZpZ2F0aW9uVHlwZTogTmF2aWdhdGlvblR5cGUgPSBOYXZpZ2F0aW9uVHlwZS5CYWNrTmF2aWdhdGlvblxuKTogUHJvbWlzZTx2b2lkPiB7XG5cdGNvbnN0IG9WaWV3ID0gb0NvbnRyb2xsZXIuZ2V0VmlldygpO1xuXHRjb25zdCBvTW9kZWwgPSBvQ29udGV4dC5nZXRNb2RlbCgpO1xuXHRjb25zdCBvTWV0YU1vZGVsID0gb01vZGVsLmdldE1ldGFNb2RlbCgpO1xuXHRjb25zdCB2aWV3RGF0YSA9IG9WaWV3LmdldFZpZXdEYXRhKCkgYXMgeyBlbnRpdHlTZXQ/OiBzdHJpbmc7IGNvbnRleHRQYXRoPzogc3RyaW5nIH07XG5cdGNvbnN0IGNvbnRleHRQYXRoID0gdmlld0RhdGEuY29udGV4dFBhdGggfHwgKHZpZXdEYXRhLmVudGl0eVNldCA/IGAvJHt2aWV3RGF0YS5lbnRpdHlTZXR9YCA6IHVuZGVmaW5lZCk7XG5cdGNvbnN0IGlzRHJhZnRSb290ID0gY29udGV4dFBhdGggPyAhIW9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAke2NvbnRleHRQYXRofUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnRSb290YCkgOiBmYWxzZTtcblx0Y29uc3Qgb1VJTW9kZWwgPSBvVmlldy5nZXRNb2RlbChcInVpXCIpO1xuXHRjb25zdCBiSXNFZGl0YWJsZSA9IG9VSU1vZGVsLmdldFByb3BlcnR5KFwiL2lzRWRpdGFibGVcIik7XG5cdGNvbnN0IG9yaWdpbmFsQ29udGV4dCA9IG9Db250ZXh0O1xuXHRsZXQgZHJhZnRSb290UGF0aCA9IG9Db250ZXh0LmdldFBhdGgoKTtcblx0aWYgKCFpc0RyYWZ0Um9vdCkge1xuXHRcdGRyYWZ0Um9vdFBhdGggPSBNb2RlbEhlbHBlci5nZXREcmFmdFJvb3RQYXRoKG9Db250ZXh0KSA/PyBkcmFmdFJvb3RQYXRoO1xuXHR9XG5cdG9Db250ZXh0ID0gb01vZGVsLmJpbmRDb250ZXh0KGRyYWZ0Um9vdFBhdGgsIHVuZGVmaW5lZCwgeyAkZXhwYW5kOiBcIkRyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhXCIgfSkuZ2V0Qm91bmRDb250ZXh0KCk7XG5cblx0Ly8gU2hvdWxkbid0IGRpc3BsYXkgZGF0YSBsb3NzIHBvcG92ZXIgb24gc2hlbGwgYmFjayBuYXZpZ2F0aW9uIGZyb20gc3ViLW9iamVjdCBwYWdlc1xuXHQvLyBvciB3aGVuIG9iamVjdCBwYWdlIGlzIGluIGRpc3BsYXkgbW9kZSwgb3Igd2hlbiB0aGUgb2JqZWN0IGlzIGRlbGV0ZWRcblx0aWYgKG9yaWdpbmFsQ29udGV4dC5pc0RlbGV0ZWQoKSB8fCAoIWlzRHJhZnRSb290ICYmIG5hdmlnYXRpb25UeXBlID09PSBOYXZpZ2F0aW9uVHlwZS5CYWNrTmF2aWdhdGlvbikgfHwgIWJJc0VkaXRhYmxlKSB7XG5cdFx0Zm5Qcm9jZXNzRnVuY3Rpb24oKTtcblx0fSBlbHNlIHtcblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgZHJhZnRBZG1pbkRhdGEgPSBhd2FpdCBvQ29udGV4dC5yZXF1ZXN0T2JqZWN0KFwiRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGFcIik7XG5cdFx0XHRhd2FpdCBwcm9jZXNzRHJhZnRBZG1pbkRhdGEoXG5cdFx0XHRcdGRyYWZ0QWRtaW5EYXRhLFxuXHRcdFx0XHRmblByb2Nlc3NGdW5jdGlvbixcblx0XHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdFx0b0NvbnRleHQsXG5cdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXcsXG5cdFx0XHRcdG5hdmlnYXRpb25UeXBlXG5cdFx0XHQpO1xuXHRcdH0gY2F0Y2ggKG9FcnJvcjogdW5rbm93bikge1xuXHRcdFx0TG9nLmVycm9yKFwiQ2Fubm90IHJldHJpZXZlIGRyYWZ0RGF0YUNvbnRleHQgaW5mb3JtYXRpb25cIiwgb0Vycm9yIGFzIHN0cmluZyk7XG5cdFx0XHRmblByb2Nlc3NGdW5jdGlvbigpO1xuXHRcdH1cblx0fVxufVxuXG4vKipcbiAqIFNhdmVzIHRoZSBkb2N1bWVudC4gSWYgdGhlIGNvbnRyb2xsZXIgaXMgb2YgdHlwZSBPYmplY3RQYWdlLCB0aGVuIGludGVybmFsIF9zYXZlRG9jdW1lbnQgaXMgY2FsbGVkLCBvdGhlcndpc2Ugc2F2ZURvY3VtZW50XG4gKiBmcm9tIEVkaXRGbG93IGlzIGNhbGxlZC5cbiAqXG4gKiBAcGFyYW0gY29udHJvbGxlciBDb250cm9sbGVyIG9mIHRoZSBjdXJyZW50IHZpZXdcbiAqIEBwYXJhbSBjb250ZXh0IFRoZSBjb250ZXh0IHRvIGJlIHVzZWQgZm9yIHRoZSBkcmFmdCBvcGVyYXRpb25zXG4gKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2ZWQgaWYgdGhlIHNhdmUgd2FzIHN1Y2Nlc3NmdWxcbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2F2ZURvY3VtZW50KGNvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyLCBjb250ZXh0PzogT0RhdGFWNENvbnRleHQpOiBQcm9taXNlPHVua25vd24+IHtcblx0Y29uc3QgaGFzSW5pdGlhbENvbnRleHQgPSBjb250ZXh0ICE9PSB1bmRlZmluZWQ7XG5cdGNvbnRleHQgPSBjb250ZXh0ID8/IGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KCk7XG5cdGlmICghaGFzSW5pdGlhbENvbnRleHQgJiYgY29udHJvbGxlci5pc0E8T2JqZWN0UGFnZUNvbnRyb2xsZXJDb250cm9sbGVyPihcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5PYmplY3RQYWdlQ29udHJvbGxlclwiKSkge1xuXHRcdHJldHVybiBjb250cm9sbGVyLl9zYXZlRG9jdW1lbnQoKTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gY29udHJvbGxlci5lZGl0Rmxvdy5zYXZlRG9jdW1lbnQoY29udGV4dCwge30pO1xuXHR9XG59XG5cbi8qKlxuICogRGlzY2FyZHMgdGhlIGRyYWZ0LlxuICpcbiAqIEBwYXJhbSBjb250cm9sbGVyIENvbnRyb2xsZXIgb2YgdGhlIGN1cnJlbnQgdmlld1xuICogQHBhcmFtIHNraXBCaW5kaW5nVG9WaWV3IFRoZSBwYXJhbWV0ZXIgdG8gc2tpcCB0aGUgYmluZGluZyB0byB0aGUgdmlld1xuICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgdG8gYmUgdXNlZCBmb3IgdGhlIGRyYWZ0IG9wZXJhdGlvbnNcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZlZCBpZiBjYW5jZWxEb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bFxuICovXG5hc3luYyBmdW5jdGlvbiBkaXNjYXJkRHJhZnQoXG5cdGNvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyLFxuXHRza2lwQmluZGluZ1RvVmlldzogYm9vbGVhbiB8IHVuZGVmaW5lZCxcblx0Y29udGV4dD86IE9EYXRhVjRDb250ZXh0XG4pOiBQcm9taXNlPHVua25vd24+IHtcblx0Y29udGV4dCA9IGNvbnRleHQgPz8gY29udHJvbGxlci5nZXRWaWV3KCkuZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0Y29uc3QgcGFyYW1zID0ge1xuXHRcdHNraXBCYWNrTmF2aWdhdGlvbjogdHJ1ZSxcblx0XHRza2lwRGlzY2FyZFBvcG92ZXI6IHRydWUsXG5cdFx0c2tpcEJpbmRpbmdUb1ZpZXc6IHNraXBCaW5kaW5nVG9WaWV3ICE9PSB1bmRlZmluZWQgPyBza2lwQmluZGluZ1RvVmlldyA6IHRydWVcblx0fTtcblx0cmV0dXJuIGNvbnRyb2xsZXIuZWRpdEZsb3cuY2FuY2VsRG9jdW1lbnQoY29udGV4dCwgcGFyYW1zKTtcbn1cblxuLyoqXG4gKiBFeGVjdXRlcyB0aGUgZm9sbG93LXVwIGZ1bmN0aW9ucyBhZnRlciBhbiBvcHRpb24gd2FzIHNlbGVjdGVkIGluIHRoZSBkYXRhIGxvc3MgZGlhbG9nLlxuICpcbiAqIEBwYXJhbSBzZWxlY3RlZEtleSBUaGUga2V5IG9mIHRoZSBzZWxlY3RlZCBvcHRpb24gZnJvbSB0aGUgZGF0YSBsb3NzIGRpYWxvZ1xuICogQHBhcmFtIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyBUaGUgZnVuY3Rpb24gdG8gcHJvY2VzcyB0aGUgaGFuZGxlclxuICogQHBhcmFtIGZuQ2FuY2VsRnVuY3Rpb24gVGhlIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBjb250cm9sbGVyIENvbnRyb2xsZXIgb2YgdGhlIGN1cnJlbnQgdmlld1xuICogQHBhcmFtIHNraXBCaW5kaW5nVG9WaWV3IFRoZSBwYXJhbWV0ZXIgdG8gc2tpcCB0aGUgYmluZGluZyB0byB0aGUgdmlld1xuICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgdG8gYmUgdXNlZCBmb3IgdGhlIGJpbmRpbmdcbiAqL1xuZnVuY3Rpb24gaGFuZGxlRGlhbG9nU2VsZWN0aW9uKFxuXHRzZWxlY3RlZEtleTogc3RyaW5nLFxuXHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHM6IEZ1bmN0aW9uLFxuXHRmbkNhbmNlbEZ1bmN0aW9uOiBGdW5jdGlvbixcblx0Y29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIsXG5cdHNraXBCaW5kaW5nVG9WaWV3OiBib29sZWFuIHwgdW5kZWZpbmVkLFxuXHRjb250ZXh0PzogT0RhdGFWNENvbnRleHRcbik6IHZvaWQge1xuXHRzd2l0Y2ggKHNlbGVjdGVkS2V5KSB7XG5cdFx0Y2FzZSBEcmFmdERhdGFMb3NzT3B0aW9ucy5TYXZlOlxuXHRcdFx0ZHJhZnREYXRhTG9zc1BvcHVwXG5cdFx0XHRcdC5zYXZlRG9jdW1lbnQoY29udHJvbGxlciwgY29udGV4dClcblx0XHRcdFx0LnRoZW4oKGNvbnRleHQ/KSA9PiBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoY29udGV4dCkpXG5cdFx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGlmIChlcnJvciA9PT0gUmVjb21tZW5kYXRpb25EaWFsb2dEZWNpc2lvbi5Db250aW51ZSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGZuQ2FuY2VsRnVuY3Rpb24oKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgc2F2aW5nIGRvY3VtZW50XCIsIGVycm9yKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRkYXRhTG9zc0RpYWxvZy5jbG9zZSgpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBEcmFmdERhdGFMb3NzT3B0aW9ucy5LZWVwOlxuXHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KCkpO1xuXHRcdFx0ZGF0YUxvc3NEaWFsb2cuY2xvc2UoKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgRHJhZnREYXRhTG9zc09wdGlvbnMuRGlzY2FyZDpcblx0XHRcdGRyYWZ0RGF0YUxvc3NQb3B1cFxuXHRcdFx0XHQuZGlzY2FyZERyYWZ0KGNvbnRyb2xsZXIsIHNraXBCaW5kaW5nVG9WaWV3LCBjb250ZXh0KVxuXHRcdFx0XHQudGhlbigoY29udGV4dD8pID0+IHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyhjb250ZXh0KSlcblx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgZGlzY2FyZGluZyBkcmFmdFwiLCBlcnJvcik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0ZGF0YUxvc3NEaWFsb2cuY2xvc2UoKTtcblx0XHRcdGJyZWFrO1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRmbkNhbmNlbEZ1bmN0aW9uKCk7XG5cdFx0XHRkYXRhTG9zc0RpYWxvZy5jbG9zZSgpO1xuXHR9XG59XG5cbmNvbnN0IGRyYWZ0RGF0YUxvc3NQb3B1cCA9IHtcblx0cHJvY2Vzc0RhdGFMb3NzT3JEcmFmdERpc2NhcmRDb25maXJtYXRpb246IHByb2Nlc3NEYXRhTG9zc09yRHJhZnREaXNjYXJkQ29uZmlybWF0aW9uLFxuXHRzaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb246IHNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbixcblx0TmF2aWdhdGlvblR5cGU6IE5hdmlnYXRpb25UeXBlLFxuXHRwcm9jZXNzRmNsTW9kZTogcHJvY2Vzc0ZjbE1vZGUsXG5cdHByb2Nlc3NOb0FjdGl2ZUVudGl0eU1vZGU6IHByb2Nlc3NOb0FjdGl2ZUVudGl0eU1vZGUsXG5cdHByb2Nlc3NFZGl0aW5nRHJhZnRGb3JFeGlzdGluZ0VudGl0eTogcHJvY2Vzc0VkaXRpbmdEcmFmdEZvckV4aXN0aW5nRW50aXR5LFxuXHRwcm9jZXNzRWRpdFN0YXRlRGlydHk6IHByb2Nlc3NFZGl0U3RhdGVEaXJ0eSxcblx0aGFuZGxlRGlhbG9nU2VsZWN0aW9uOiBoYW5kbGVEaWFsb2dTZWxlY3Rpb24sXG5cdHNhdmVEb2N1bWVudDogc2F2ZURvY3VtZW50LFxuXHRkaXNjYXJkRHJhZnQ6IGRpc2NhcmREcmFmdFxufTtcblxuZXhwb3J0IGRlZmF1bHQgZHJhZnREYXRhTG9zc1BvcHVwO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7OztFQVNBO0VBQUEsSUFDS0EsY0FBYztFQUtuQjtFQUFBLFdBTEtBLGNBQWM7SUFBZEEsY0FBYztJQUFkQSxjQUFjO0VBQUEsR0FBZEEsY0FBYyxLQUFkQSxjQUFjO0VBQUEsSUFNZEMsb0JBQW9CO0VBQUEsV0FBcEJBLG9CQUFvQjtJQUFwQkEsb0JBQW9CO0lBQXBCQSxvQkFBb0I7SUFBcEJBLG9CQUFvQjtFQUFBLEdBQXBCQSxvQkFBb0IsS0FBcEJBLG9CQUFvQjtFQVd6QjtFQUNBLE1BQU1DLGNBQWMsR0FBRyxJQUFJQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7RUFFdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0EsU0FBU0Msb0NBQW9DLENBQUNDLGNBQThCLEVBQVc7SUFBQTtJQUN0RixJQUFJQyxjQUFjO0lBQ2xCLE1BQU1DLFNBQVMsR0FBR0YsY0FBYyxDQUFDRyxlQUFlLEVBQUUsQ0FBQ0MsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO0lBQzdFSCxjQUFjLEdBQUcsQ0FBQUMsU0FBUyxhQUFUQSxTQUFTLHlDQUFUQSxTQUFTLENBQUVHLEdBQUcsbURBQWQsZUFBZ0JOLG9D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
|
|
340
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZpZ2F0aW9uVHlwZSIsIkRyYWZ0RGF0YUxvc3NPcHRpb25zIiwiZGF0YUxvc3NEaWFsb2ciLCJEcmFmdERhdGFMb3NzRGlhbG9nQmxvY2siLCJzaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24iLCJwYWdlQ29udHJvbGxlciIsInJiU2lsZW50bHlLZWVwIiwib01hbmlmZXN0IiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0TWFuaWZlc3RFbnRyeSIsImFwcCIsInByb2Nlc3NGY2xNb2RlIiwiZHJhZnRBZG1pbkRhdGEiLCJmbkNhbmNlbEZ1bmN0aW9uIiwib0NvbnRyb2xsZXIiLCJwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMiLCJiU2tpcEJpbmRpbmdUb1ZpZXciLCJjb250ZXh0IiwiQ3JlYXRpb25EYXRlVGltZSIsIkxhc3RDaGFuZ2VEYXRlVGltZSIsIm9wZW4iLCJ0aGVuIiwic2VsZWN0ZWRLZXkiLCJkcmFmdERhdGFMb3NzUG9wdXAiLCJoYW5kbGVEaWFsb2dTZWxlY3Rpb24iLCJwcm9jZXNzTm9BY3RpdmVFbnRpdHlNb2RlIiwibmF2aWdhdGlvblR5cGUiLCJiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uIiwiRWRpdFN0YXRlIiwiaXNFZGl0U3RhdGVEaXJ0eSIsIkJhY2tOYXZpZ2F0aW9uIiwiZGlzY2FyZERyYWZ0IiwiZXJyb3IiLCJMb2ciLCJGb3J3YXJkTmF2aWdhdGlvbiIsInByb2Nlc3NFZGl0aW5nRHJhZnRGb3JFeGlzdGluZ0VudGl0eSIsIm9Db250ZXh0IiwibVBhcmFtZXRlcnMiLCJza2lwRGlzY2FyZFBvcG92ZXIiLCJlZGl0RmxvdyIsImNhbmNlbERvY3VtZW50IiwicHJvY2Vzc0VkaXRTdGF0ZURpcnR5IiwicHJvY2Vzc0RyYWZ0QWRtaW5EYXRhIiwiZm5Qcm9jZXNzRnVuY3Rpb24iLCJjb2xsYWJvcmF0aW9uQ29ubmVjdGVkIiwiY29sbGFib3JhdGl2ZURyYWZ0IiwiaXNDb25uZWN0ZWQiLCJkaXNjb25uZWN0IiwiYXJncyIsImFwcGx5IiwiZ2V0Um9vdFZpZXdDb250cm9sbGVyIiwiaXNGY2xFbmFibGVkIiwiZ2V0T2JqZWN0IiwiSGFzQWN0aXZlRW50aXR5IiwicHJvY2Vzc0RhdGFMb3NzT3JEcmFmdERpc2NhcmRDb25maXJtYXRpb24iLCJvVmlldyIsImdldFZpZXciLCJvTW9kZWwiLCJnZXRNb2RlbCIsIm9NZXRhTW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJ2aWV3RGF0YSIsImdldFZpZXdEYXRhIiwiY29udGV4dFBhdGgiLCJlbnRpdHlTZXQiLCJ1bmRlZmluZWQiLCJpc0RyYWZ0Um9vdCIsIm9VSU1vZGVsIiwiYklzRWRpdGFibGUiLCJnZXRQcm9wZXJ0eSIsIm9yaWdpbmFsQ29udGV4dCIsImRyYWZ0Um9vdFBhdGgiLCJnZXRQYXRoIiwiTW9kZWxIZWxwZXIiLCJnZXREcmFmdFJvb3RQYXRoIiwiYmluZENvbnRleHQiLCIkZXhwYW5kIiwiZ2V0Qm91bmRDb250ZXh0IiwiaXNEZWxldGVkIiwicmVxdWVzdE9iamVjdCIsIm9FcnJvciIsInNhdmVEb2N1bWVudCIsImNvbnRyb2xsZXIiLCJoYXNJbml0aWFsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0IiwiaXNBIiwiX3NhdmVEb2N1bWVudCIsInNraXBCaW5kaW5nVG9WaWV3IiwicGFyYW1zIiwic2tpcEJhY2tOYXZpZ2F0aW9uIiwiU2F2ZSIsImNhdGNoIiwiUmVjb21tZW5kYXRpb25EaWFsb2dEZWNpc2lvbiIsIkNvbnRpbnVlIiwiY2xvc2UiLCJLZWVwIiwiRGlzY2FyZCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiZHJhZnREYXRhTG9zc1BvcHVwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgRWRpdFN0YXRlIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0VkaXRTdGF0ZVwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgdHlwZSBPYmplY3RQYWdlQ29udHJvbGxlckNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvT2JqZWN0UGFnZS9PYmplY3RQYWdlQ29udHJvbGxlci5jb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSBPRGF0YVY0Q29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCBEcmFmdERhdGFMb3NzRGlhbG9nQmxvY2sgZnJvbSBcIi4uLy4uL2NvbnRyb2xzL0RhdGFMb3NzT3JEcmFmdERpc2NhcmQvRHJhZnREYXRhTG9zc0RpYWxvZy5ibG9ja1wiO1xuaW1wb3J0IHsgUmVjb21tZW5kYXRpb25EaWFsb2dEZWNpc2lvbiB9IGZyb20gXCIuLi8uLi9jb250cm9scy9SZWNvbW1lbmRhdGlvbnMvQ29uZmlybVJlY29tbWVuZGF0aW9uRGlhbG9nLmJsb2NrXCI7XG5cbi8qIEVudW0gZm9yIG5hdmlnYXRpb24gdHlwZXMgKi9cbmVudW0gTmF2aWdhdGlvblR5cGUge1xuXHRCYWNrTmF2aWdhdGlvbiA9IFwiQmFja05hdmlnYXRpb25cIixcblx0Rm9yd2FyZE5hdmlnYXRpb24gPSBcIkZvcndhcmROYXZpZ2F0aW9uXCJcbn1cblxuLyogRW51bSB0eXBlcyBmb3IgdGhlIGRhdGEgbG9zcyBkaWFsb2cgb3B0aW9ucyAqL1xuZW51bSBEcmFmdERhdGFMb3NzT3B0aW9ucyB7XG5cdFNhdmUgPSBcImRyYWZ0RGF0YUxvc3NPcHRpb25TYXZlXCIsXG5cdEtlZXAgPSBcImRyYWZ0RGF0YUxvc3NPcHRpb25LZWVwXCIsXG5cdERpc2NhcmQgPSBcImRyYWZ0RGF0YUxvc3NPcHRpb25EaXNjYXJkXCJcbn1cblxudHlwZSBEcmFmdEFkbWluaXN0cmF0aXZlRGF0YSA9IHtcblx0Q3JlYXRpb25EYXRlVGltZTogRGF0ZTtcblx0TGFzdENoYW5nZURhdGVUaW1lOiBEYXRlO1xufTtcblxuLypDcmVhdGUgdGhlIGRhdGEgbG9zcyBkaWFsb2cqL1xuY29uc3QgZGF0YUxvc3NEaWFsb2cgPSBuZXcgRHJhZnREYXRhTG9zc0RpYWxvZ0Jsb2NrKHt9KTtcblxuLyoqXG4gKiBUaGUgbWV0aG9kIGNoZWNrcyB3aGV0aGVyIGFuIG9wdGlvbmFsIHBhcmFtZXRlciBpbiB0aGUgbWFuaWZlc3QgaXMgc2V0IHRvIHNpbGVudGx5IGtlZXAgdGhlIGRyYWZ0IGluIGNhc2UgYSBmb3J3YXJkIG5hdmlnYXRpb24gaXMgdHJpZ2dlcmVkLlxuICpcbiAqIEBwYXJhbSBwYWdlQ29udHJvbGxlciBUaGUgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IFBhZ2VDb250cm9sbGVyIGluc3RhbmNlXG4gKiBAcmV0dXJucyBCb29sZWFuIHZhbHVlIHdpdGggdHJ1ZSBvciBmYWxzZSB0byBzaWxlbnRseSBrZWVwIHRoZSBkcmFmdFxuICovXG5mdW5jdGlvbiBzaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24ocGFnZUNvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyKTogYm9vbGVhbiB7XG5cdGxldCByYlNpbGVudGx5S2VlcDtcblx0Y29uc3Qgb01hbmlmZXN0ID0gcGFnZUNvbnRyb2xsZXIuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0TWFuaWZlc3RFbnRyeShcInNhcC5mZVwiKTtcblx0cmJTaWxlbnRseUtlZXAgPSBvTWFuaWZlc3Q/LmFwcD8uc2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uIHx8IGZhbHNlO1xuXHRyZXR1cm4gcmJTaWxlbnRseUtlZXA7XG59XG5cbi8qKlxuICogTG9naWMgdG8gcHJvY2VzcyB0aGUgRkNMIG1vZGUuXG4gKlxuICogQHBhcmFtIGRyYWZ0QWRtaW5EYXRhIEFkbWluIGRhdGFcbiAqIEBwYXJhbSBmbkNhbmNlbEZ1bmN0aW9uIFRoZSBjYW5jZWwgZnVuY3Rpb25cbiAqIEBwYXJhbSBvQ29udHJvbGxlciBUaGUgY3VycmVudCBjb250cm9sbGVyIHJlZmVyZW5jZWRcbiAqIEBwYXJhbSBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMgVGhlIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBiU2tpcEJpbmRpbmdUb1ZpZXcgVGhlIG9wdGlvbmFsIHBhcmFtZXRlciB0byBza2lwIHRoZSBiaW5kaW5nIHRvIHRoZSB2aWV3XG4gKiBAcGFyYW0gY29udGV4dCBUaGUgY29udGV4dCB0byBiZSB1c2VkIGZvciB0aGUgZHJhZnQgb3BlcmF0aW9uXG4gKiBAcmV0dXJucyBOb3RoaW5nXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NGY2xNb2RlKFxuXHRkcmFmdEFkbWluRGF0YTogRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGEsXG5cdGZuQ2FuY2VsRnVuY3Rpb246IEZ1bmN0aW9uLFxuXHRvQ29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIsXG5cdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0czogRnVuY3Rpb24sXG5cdGJTa2lwQmluZGluZ1RvVmlldz86IGJvb2xlYW4sXG5cdGNvbnRleHQ/OiBPRGF0YVY0Q29udGV4dFxuKTogUHJvbWlzZTx2b2lkPiB7XG5cdC8vIFRoZSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIGluIEZDTCBtb2RlIHNvIGluIHRoaXMgY2FzZSB3ZSBmYWxsIGJhY2sgdG9cblx0Ly8gdGhlIG9sZCBsb2dpYyBzaW5jZSB0aGUgZGlydHkgc3RhdGUgaGFuZGxpbmcgaXMgbm90IHByb3Blcmx5IHdvcmtpbmdcblx0Ly8gZm9yIEZDTC5cblx0aWYgKGRyYWZ0QWRtaW5EYXRhLkNyZWF0aW9uRGF0ZVRpbWUgIT09IGRyYWZ0QWRtaW5EYXRhLkxhc3RDaGFuZ2VEYXRlVGltZSkge1xuXHRcdHJldHVybiBkYXRhTG9zc0RpYWxvZ1xuXHRcdFx0Lm9wZW4ob0NvbnRyb2xsZXIpXG5cdFx0XHQudGhlbigoc2VsZWN0ZWRLZXkpID0+XG5cdFx0XHRcdGRyYWZ0RGF0YUxvc3NQb3B1cC5oYW5kbGVEaWFsb2dTZWxlY3Rpb24oXG5cdFx0XHRcdFx0c2VsZWN0ZWRLZXkgYXMgc3RyaW5nLFxuXHRcdFx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyxcblx0XHRcdFx0XHRmbkNhbmNlbEZ1bmN0aW9uLFxuXHRcdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRcdGJTa2lwQmluZGluZ1RvVmlldyxcblx0XHRcdFx0XHRjb250ZXh0XG5cdFx0XHRcdClcblx0XHRcdCk7XG5cdH0gZWxzZSB7XG5cdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdH1cbn1cblxuLyoqXG4gKiBMb2dpYyB0byBwcm9jZXNzIHRoZSBtb2RlIHdpdGggbm8gYWN0aXZlIGVudGl0eS5cbiAqXG4gKiBAcGFyYW0gZHJhZnRBZG1pbkRhdGEgQWRtaW4gZGF0YVxuICogQHBhcmFtIGZuQ2FuY2VsRnVuY3Rpb24gVGhlIGNhbmNlbCBmdW5jdGlvblxuICogQHBhcmFtIG9Db250cm9sbGVyIFRoZSBjdXJyZW50IGNvbnRyb2xsZXIgcmVmZXJlbmNlZFxuICogQHBhcmFtIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyBUaGUgZnVuY3Rpb24gdG8gcHJvY2VzcyB0aGUgaGFuZGxlclxuICogQHBhcmFtIG5hdmlnYXRpb25UeXBlIFRoZSBuYXZpZ2F0aW9uIHR5cGUgZm9yIHdoaWNoIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkXG4gKiBAcGFyYW0gYlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbiBUaGUgcGFyYW1ldGVyIHRvIGRldGVybWluZSB3aGV0aGVyIHRvIHNraXAgdGhlIHBvcHVwIGFwcGVhcmFuY2UgaW4gZm9yd2FyZCBjYXNlXG4gKiBAcGFyYW0gYlNraXBCaW5kaW5nVG9WaWV3IFRoZSBvcHRpb25hbCBwYXJhbWV0ZXIgdG8gc2tpcCB0aGUgYmluZGluZyB0byB0aGUgdmlld1xuICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgdG8gYmUgdXNlZCBmb3IgdGhlIGRyYWZ0IG9wZXJhdGlvbnNcbiAqIEByZXR1cm5zIE5vdGhpbmdcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc05vQWN0aXZlRW50aXR5TW9kZShcblx0ZHJhZnRBZG1pbkRhdGE6IERyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhLFxuXHRmbkNhbmNlbEZ1bmN0aW9uOiBGdW5jdGlvbixcblx0b0NvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyLFxuXHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHM6IEZ1bmN0aW9uLFxuXHRuYXZpZ2F0aW9uVHlwZTogTmF2aWdhdGlvblR5cGUsXG5cdGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb246IGJvb2xlYW4sXG5cdGJTa2lwQmluZGluZ1RvVmlldz86IGJvb2xlYW4sXG5cdGNvbnRleHQ/OiBPRGF0YVY0Q29udGV4dFxuKTogUHJvbWlzZTx2b2lkPiB7XG5cdC8vIFRoZXJlIGlzIG5vIGFjdGl2ZSBlbnRpdHkgc28sIHdlIGFyZSBlZGl0aW5nIGVpdGhlciBuZXdseSBjcmVhdGVkIGRhdGEgb3Jcblx0Ly8gYSBkcmFmdCB3aGljaCBoYXMgbmV2ZXIgYmVlbiBzYXZlZCB0byBhY3RpdmUgdmVyc2lvblxuXHQvLyBTaW5jZSB3ZSB3YW50IHRvIHJlYWN0IGRpZmZlcmVudGx5IGluIHRoZSB0d28gc2l0dWF0aW9ucywgd2UgaGF2ZSB0byBjaGVjayB0aGVcblx0Ly8gZGlydHkgc3RhdGVcblx0aWYgKEVkaXRTdGF0ZS5pc0VkaXRTdGF0ZURpcnR5KCkpIHtcblx0XHRpZiAoZHJhZnRBZG1pbkRhdGEuQ3JlYXRpb25EYXRlVGltZSA9PT0gZHJhZnRBZG1pbkRhdGEuTGFzdENoYW5nZURhdGVUaW1lICYmIG5hdmlnYXRpb25UeXBlID09PSBOYXZpZ2F0aW9uVHlwZS5CYWNrTmF2aWdhdGlvbikge1xuXHRcdFx0Ly8gaW4gY2FzZSB3ZSBoYXZlIHVudG91Y2hlZCBjaGFuZ2VzIGZvciB0aGUgZHJhZnQgYW5kIGEgXCJiYWNrXCJcblx0XHRcdC8vIG5hdmlnYXRpb24gd2UgY2FuIHNpbGVudGx5IGRpc2NhcmQgdGhlIGRyYWZ0IGFnYWluXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvbWlzZS9uby1uZXN0aW5nXG5cdFx0XHR0cnkge1xuXHRcdFx0XHRhd2FpdCBkcmFmdERhdGFMb3NzUG9wdXAuZGlzY2FyZERyYWZ0KG9Db250cm9sbGVyLCBiU2tpcEJpbmRpbmdUb1ZpZXcsIGNvbnRleHQpO1xuXHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0XHRcdH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIGNhbmNlbGluZyB0aGUgZG9jdW1lbnRcIiwgZXJyb3IgYXMgc3RyaW5nKTtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKG5hdmlnYXRpb25UeXBlID09PSBOYXZpZ2F0aW9uVHlwZS5Gb3J3YXJkTmF2aWdhdGlvbiAmJiBiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uKSB7XG5cdFx0XHQvLyBJbiBjYXNlIHdlIGhhdmUgYSBcImZvcndhcmQgbmF2aWdhdGlvblwiIGFuZCBhbiBhZGRpdGlvbmFsIHBhcmFtZXRlciBzZXQgaW4gdGhlIG1hbmlmZXN0XG5cdFx0XHQvLyB3ZSBcInNpbGVudGx5XCIga2VlcCB0aGUgZHJhZnRcblx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBJbiB0aGlzIGNhc2UgZGF0YSBpcyBiZWluZyBjaGFuZ2VkIG9yIGEgZm9yd2FyZCBuYXZpZ2F0aW9uIGlzIHRyaWdnZXJlZFxuXHRcdFx0Ly8gYW5kLCB3ZSBhbHdheXMgd2FudCB0byBzaG93IHRoZSBkYXRhIGxvc3MgZGlhbG9nIG9uIG5hdmlnYXRpb25cblx0XHRcdHJldHVybiBkYXRhTG9zc0RpYWxvZ1xuXHRcdFx0XHQub3BlbihvQ29udHJvbGxlcilcblx0XHRcdFx0LnRoZW4oKHNlbGVjdGVkS2V5KSA9PlxuXHRcdFx0XHRcdGRyYWZ0RGF0YUxvc3NQb3B1cC5oYW5kbGVEaWFsb2dTZWxlY3Rpb24oXG5cdFx0XHRcdFx0XHRzZWxlY3RlZEtleSBhcyBzdHJpbmcsXG5cdFx0XHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsXG5cdFx0XHRcdFx0XHRmbkNhbmNlbEZ1bmN0aW9uLFxuXHRcdFx0XHRcdFx0b0NvbnRyb2xsZXIsXG5cdFx0XHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXcsXG5cdFx0XHRcdFx0XHRjb250ZXh0XG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHQvLyBXZSBhcmUgZWRpdGluZyBhIGRyYWZ0IHdoaWNoIGhhcyBiZWVuIGNyZWF0ZWQgZWFybGllciBidXQgbmV2ZXIgc2F2ZWQgdG8gYWN0aXZlXG5cdFx0Ly8gdmVyc2lvbiBhbmQgc2luY2UgdGhlIGVkaXQgc3RhdGUgaXMgbm90IGRpcnR5LCB0aGVyZSBoYXZlIGJlZW4gbm8gdXNlciBjaGFuZ2VzXG5cdFx0Ly8gc28gaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gc2lsZW50bHkgbmF2aWdhdGUgYW5kIGRvIG5vdGhpbmdcblx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0fVxufVxuXG4vKipcbiAqIExvZ2ljIHRvIHByb2Nlc3MgdGhlIGRyYWZ0IGVkaXRpbmcgZm9yIGV4aXN0aW5nIGVudGl0eS5cbiAqXG4gKiBAcGFyYW0gb0NvbnRyb2xsZXIgVGhlIGN1cnJlbnQgY29udHJvbGxlciByZWZlcmVuY2VkLlxuICogQHBhcmFtIG9Db250ZXh0IFRoZSBjb250ZXh0IG9mIHRoZSBjdXJyZW50IGNhbGxcbiAqIEBwYXJhbSBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMgVGhlIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uVHlwZSBUaGUgbmF2aWdhdGlvbiB0eXBlIGZvciB3aGljaCB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZFxuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRWRpdGluZ0RyYWZ0Rm9yRXhpc3RpbmdFbnRpdHkoXG5cdG9Db250cm9sbGVyOiBQYWdlQ29udHJvbGxlcixcblx0b0NvbnRleHQ6IE9EYXRhVjRDb250ZXh0LFxuXHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHM6IEZ1bmN0aW9uLFxuXHRuYXZpZ2F0aW9uVHlwZTogTmF2aWdhdGlvblR5cGVcbik6IFByb21pc2U8dm9pZD4ge1xuXHQvLyBXZSBhcmUgZWRpdGluZyBhIGRyYWZ0IGZvciBhbiBleGlzdGluZyBhY3RpdmUgZW50aXR5XG5cdC8vIFRoZSBDcmVhdGlvbkRhdGVUaW1lIGFuZCBMYXN0Q2hhbmdlRGF0ZVRpbWUgYXJlIGVxdWFsLCBzbyB0aGlzIGRyYWZ0IHdhc1xuXHQvLyBuZXZlciBzYXZlZCBiZWZvcmUsIGhlbmNlIHdlJ3JlIGN1cnJlbnRseSBlZGl0aW5nIGEgbmV3bHkgY3JlYXRlZCBkcmFmdCBmb3Jcblx0Ly8gYW4gZXhpc3RpbmcgYWN0aXZlIGVudGl0eSBmb3IgdGhlIGZpcnN0IHRpbWUuXG5cdC8vIEFsc28sIHRoZXJlIGhhdmUgc28gZmFyIGJlZW4gbm8gY2hhbmdlcyBtYWRlIHRvIHRoZSBkcmFmdCBhbmQgaW4gdGhpc1xuXHQvLyBjYXNlIHdlIHdhbnQgdG8gc2lsZW50bHkgbmF2aWdhdGUgYW5kIGRlbGV0ZSB0aGUgZHJhZnQgaW4gY2FzZSBvZiBhIGJhY2tcblx0Ly8gbmF2aWdhdGlvbiBidXQgaW4gY2FzZSBvZiBhIGZvcndhcmQgbmF2aWdhdGlvbiB3ZSB3YW50IHRvIHNpbGVudGx5IGtlZXAgaXQhXG5cdGlmIChuYXZpZ2F0aW9uVHlwZSA9PT0gTmF2aWdhdGlvblR5cGUuQmFja05hdmlnYXRpb24pIHtcblx0XHRjb25zdCBtUGFyYW1ldGVycyA9IHtcblx0XHRcdHNraXBEaXNjYXJkUG9wb3ZlcjogdHJ1ZVxuXHRcdH07XG5cblx0XHR0cnkge1xuXHRcdFx0YXdhaXQgb0NvbnRyb2xsZXIuZWRpdEZsb3cuY2FuY2VsRG9jdW1lbnQob0NvbnRleHQsIG1QYXJhbWV0ZXJzKTtcblx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSBjYW5jZWxpbmcgdGhlIGRvY3VtZW50XCIsIGVycm9yIGFzIEVycm9yKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Ly8gSW4gY2FzZSBvZiBhIGZvcndhcmQgbmF2aWdhdGlvbiB3ZSBzaWxlbnRseSBrZWVwIHRoZSBkcmFmdCBhbmQgb25seVxuXHRcdC8vIGV4ZWN1dGUgdGhlIGZvbGxvd3VwIGZ1bmN0aW9uLlxuXHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHR9XG59XG5cbi8qKlxuICogTG9naWMgdG8gcHJvY2VzcyB0aGUgY29udGV4dCB3aGVuIHRoZSBlZGl0IHN0YXRlIGlzIGluIGRpcnR5IG1vZGUuXG4gKlxuICogQHBhcmFtIG9Db250cm9sbGVyIFRoZSBjdXJyZW50IGNvbnRyb2xsZXIgcmVmZXJlbmNlZC5cbiAqIEBwYXJhbSBmbkNhbmNlbEZ1bmN0aW9uIFRoZSBjYW5jZWwgZnVuY3Rpb25cbiAqIEBwYXJhbSBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMgVGhlIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uVHlwZSBUaGUgbmF2aWdhdGlvbiB0eXBlIGZvciB3aGljaCB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZFxuICogQHBhcmFtIGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24gVGhlIHBhcmFtZXRlciB0byBkZXRlcm1pbmUgd2hldGhlciB0byBza2lwIHRoZSBwb3B1cCBhcHBlYXJhbmNlIGluIGZvcndhcmQgY2FzZVxuICogQHBhcmFtIGJTa2lwQmluZGluZ1RvVmlldyBUaGUgb3B0aW9uYWwgcGFyYW1ldGVyIHRvIHNraXAgdGhlIGJpbmRpbmcgdG8gdGhlIHZpZXcuXG4gKiBAcGFyYW0gY29udGV4dCBUaGUgY29udGV4dCB0byBiZSB1c2VkIGZvciB0aGUgZHJhZnQgb3BlcmF0aW9uc1xuICogQHJldHVybnMgTm90aGluZ1xuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRWRpdFN0YXRlRGlydHkoXG5cdG9Db250cm9sbGVyOiBQYWdlQ29udHJvbGxlcixcblx0Zm5DYW5jZWxGdW5jdGlvbjogRnVuY3Rpb24sXG5cdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0czogRnVuY3Rpb24sXG5cdG5hdmlnYXRpb25UeXBlOiBOYXZpZ2F0aW9uVHlwZSxcblx0YlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbjogYm9vbGVhbixcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhbixcblx0Y29udGV4dD86IE9EYXRhVjRDb250ZXh0XG4pOiBQcm9taXNlPHZvaWQ+IHtcblx0aWYgKG5hdmlnYXRpb25UeXBlID09PSBOYXZpZ2F0aW9uVHlwZS5Gb3J3YXJkTmF2aWdhdGlvbiAmJiBiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uKSB7XG5cdFx0Ly8gSW4gY2FzZSB3ZSBoYXZlIGEgXCJmb3J3YXJkIG5hdmlnYXRpb25cIiBhbmQgYW4gYWRkaXRpb25hbCBwYXJhbWV0ZXIgc2V0IGluIHRoZSBtYW5pZmVzdFxuXHRcdC8vIHdlIFwic2lsZW50bHlcIiBrZWVwIHRoZSBkcmFmdFxuXHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHR9IGVsc2Uge1xuXHRcdC8vIFRoZSBDcmVhdGlvbkRhdGVUaW1lIGFuZCBMYXN0Q2hhbmdlRGF0ZVRpbWUgYXJlIE5PVCBlcXVhbCwgc28gd2UgYXJlIGN1cnJlbnRseSBlZGl0aW5nXG5cdFx0Ly8gYW4gZXhpc3RpbmcgZHJhZnQgYW5kIG5lZWQgdG8gZGlzdGluZ3Vpc2ggZGVwZW5kaW5nIG9uIGlmIGFueSBjaGFuZ2VzXG5cdFx0Ly8gaGF2ZSBiZWVuIG1hZGUgaW4gdGhlIGN1cnJlbnQgZWRpdGluZyBzZXNzaW9uIG9yIG5vdFxuXHRcdC8vIENoYW5nZXMgaGF2ZSBiZWVuIG1hZGUgaW4gdGhlIGN1cnJlbnQgZWRpdGluZyBzZXNzaW9uLCBzbyB3ZSB3YW50XG5cdFx0Ly8gdG8gc2hvdyB0aGUgZGF0YSBsb3NzIGRpYWxvZyBhbmQgbGV0IHRoZSB1c2VyIGRlY2lkZVxuXHRcdHJldHVybiBkYXRhTG9zc0RpYWxvZ1xuXHRcdFx0Lm9wZW4ob0NvbnRyb2xsZXIpXG5cdFx0XHQudGhlbigoc2VsZWN0ZWRLZXkpID0+XG5cdFx0XHRcdGRyYWZ0RGF0YUxvc3NQb3B1cC5oYW5kbGVEaWFsb2dTZWxlY3Rpb24oXG5cdFx0XHRcdFx0c2VsZWN0ZWRLZXkgYXMgc3RyaW5nLFxuXHRcdFx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyxcblx0XHRcdFx0XHRmbkNhbmNlbEZ1bmN0aW9uLFxuXHRcdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRcdGJTa2lwQmluZGluZ1RvVmlldyxcblx0XHRcdFx0XHRjb250ZXh0XG5cdFx0XHRcdClcblx0XHRcdCk7XG5cdH1cbn1cblxuLyoqXG4gKiBMb2dpYyB0byBwcm9jZXNzIHRoZSBhZG1pbiBkYXRhLlxuICpcbiAqIEBwYXJhbSBkcmFmdEFkbWluRGF0YSBBZG1pbiBkYXRhXG4gKiBAcGFyYW0gZm5Qcm9jZXNzRnVuY3Rpb24gVGhlIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBmbkNhbmNlbEZ1bmN0aW9uIFRoZSBjYW5jZWwgZnVuY3Rpb25cbiAqIEBwYXJhbSBvQ29udGV4dCBUaGUgY29udGV4dCBvZiB0aGUgY3VycmVudCBjYWxsXG4gKiBAcGFyYW0gb0NvbnRyb2xsZXIgVGhlIGN1cnJlbnQgY29udHJvbGxlciByZWZlcmVuY2VkXG4gKiBAcGFyYW0gYlNraXBCaW5kaW5nVG9WaWV3IFRoZSBvcHRpb25hbCBwYXJhbWV0ZXIgdG8gc2tpcCB0aGUgYmluZGluZyB0byB0aGUgdmlld1xuICogQHBhcmFtIG5hdmlnYXRpb25UeXBlIFRoZSBuYXZpZ2F0aW9uIHR5cGUgZm9yIHdoaWNoIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkXG4gKiBAcmV0dXJucyBOb3RoaW5nXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NEcmFmdEFkbWluRGF0YShcblx0ZHJhZnRBZG1pbkRhdGE6IERyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhLFxuXHRmblByb2Nlc3NGdW5jdGlvbjogRnVuY3Rpb24sXG5cdGZuQ2FuY2VsRnVuY3Rpb246IEZ1bmN0aW9uLFxuXHRvQ29udGV4dDogT0RhdGFWNENvbnRleHQsXG5cdG9Db250cm9sbGVyOiBQYWdlQ29udHJvbGxlcixcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhbixcblx0bmF2aWdhdGlvblR5cGU6IE5hdmlnYXRpb25UeXBlID0gTmF2aWdhdGlvblR5cGUuQmFja05hdmlnYXRpb25cbik6IFByb21pc2U8dm9pZD4ge1xuXHRjb25zdCBjb2xsYWJvcmF0aW9uQ29ubmVjdGVkID0gb0NvbnRyb2xsZXIuY29sbGFib3JhdGl2ZURyYWZ0LmlzQ29ubmVjdGVkKCk7XG5cdGNvbnN0IHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyA9ICFjb2xsYWJvcmF0aW9uQ29ubmVjdGVkXG5cdFx0PyBmblByb2Nlc3NGdW5jdGlvblxuXHRcdDogZnVuY3Rpb24gKC4uLmFyZ3M6IHVua25vd25bXSk6IHZvaWQge1xuXHRcdFx0XHRvQ29udHJvbGxlci5jb2xsYWJvcmF0aXZlRHJhZnQuZGlzY29ubmVjdCgpO1xuXHRcdFx0XHRmblByb2Nlc3NGdW5jdGlvbi5hcHBseShudWxsLCAuLi5hcmdzKTtcblx0XHQgIH07XG5cblx0Y29uc3QgYlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbiA9IHNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbihvQ29udHJvbGxlcik7XG5cblx0aWYgKGRyYWZ0QWRtaW5EYXRhKSB7XG5cdFx0aWYgKG9Db250cm9sbGVyLmdldEFwcENvbXBvbmVudCgpLmdldFJvb3RWaWV3Q29udHJvbGxlcigpLmlzRmNsRW5hYmxlZCgpKSB7XG5cdFx0XHRhd2FpdCBwcm9jZXNzRmNsTW9kZShkcmFmdEFkbWluRGF0YSwgZm5DYW5jZWxGdW5jdGlvbiwgb0NvbnRyb2xsZXIsIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cywgYlNraXBCaW5kaW5nVG9WaWV3LCBvQ29udGV4dCk7XG5cdFx0fSBlbHNlIGlmICghb0NvbnRleHQuZ2V0T2JqZWN0KCkuSGFzQWN0aXZlRW50aXR5KSB7XG5cdFx0XHRwcm9jZXNzTm9BY3RpdmVFbnRpdHlNb2RlKFxuXHRcdFx0XHRkcmFmdEFkbWluRGF0YSxcblx0XHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdFx0b0NvbnRyb2xsZXIsXG5cdFx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyxcblx0XHRcdFx0bmF2aWdhdGlvblR5cGUsXG5cdFx0XHRcdGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24sXG5cdFx0XHRcdGJTa2lwQmluZGluZ1RvVmlld1xuXHRcdFx0KTtcblx0XHR9IGVsc2UgaWYgKGRyYWZ0QWRtaW5EYXRhLkNyZWF0aW9uRGF0ZVRpbWUgPT09IGRyYWZ0QWRtaW5EYXRhLkxhc3RDaGFuZ2VEYXRlVGltZSkge1xuXHRcdFx0cHJvY2Vzc0VkaXRpbmdEcmFmdEZvckV4aXN0aW5nRW50aXR5KG9Db250cm9sbGVyLCBvQ29udGV4dCwgcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzLCBuYXZpZ2F0aW9uVHlwZSk7XG5cdFx0fSBlbHNlIGlmIChFZGl0U3RhdGUuaXNFZGl0U3RhdGVEaXJ0eSgpKSB7XG5cdFx0XHRwcm9jZXNzRWRpdFN0YXRlRGlydHkoXG5cdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRmbkNhbmNlbEZ1bmN0aW9uLFxuXHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsXG5cdFx0XHRcdG5hdmlnYXRpb25UeXBlLFxuXHRcdFx0XHRiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uLFxuXHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXdcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIFRoZSB1c2VyIHN0YXJ0ZWQgZWRpdGluZyB0aGUgZXhpc3RpbmcgZHJhZnQgYnV0IGRpZCBub3QgbWFrZSBhbnkgY2hhbmdlc1xuXHRcdFx0Ly8gaW4gdGhlIGN1cnJlbnQgZWRpdGluZyBzZXNzaW9uLCBzbyBpbiB0aGlzIGNhc2Ugd2UgZG8gbm90IHdhbnRcblx0XHRcdC8vIHRvIHNob3cgdGhlIGRhdGEgbG9zcyBkaWFsb2cgYnV0IGp1c3Qga2VlcCB0aGUgZHJhZnRcblx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRmblByb2Nlc3NGdW5jdGlvbigpO1xuXHR9XG59XG5cbi8qKlxuICogVGhlIGdlbmVyYWwgaGFuZGxlciBpbiB3aGljaCB0aGUgaW5kaXZpZHVhbCBzdGVwcyBhcmUgY2FsbGVkLlxuICpcbiAqIEBwYXJhbSBmblByb2Nlc3NGdW5jdGlvblxuICogQHBhcmFtIGZuQ2FuY2VsRnVuY3Rpb25cbiAqIEBwYXJhbSBvQ29udGV4dFxuICogQHBhcmFtIG9Db250cm9sbGVyXG4gKiBAcGFyYW0gYlNraXBCaW5kaW5nVG9WaWV3XG4gKiBAcGFyYW0gbmF2aWdhdGlvblR5cGVcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0RhdGFMb3NzT3JEcmFmdERpc2NhcmRDb25maXJtYXRpb24oXG5cdGZuUHJvY2Vzc0Z1bmN0aW9uOiBGdW5jdGlvbixcblx0Zm5DYW5jZWxGdW5jdGlvbjogRnVuY3Rpb24sXG5cdG9Db250ZXh0OiBPRGF0YVY0Q29udGV4dCxcblx0b0NvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyLFxuXHRiU2tpcEJpbmRpbmdUb1ZpZXc/OiBib29sZWFuLFxuXHRuYXZpZ2F0aW9uVHlwZTogTmF2aWdhdGlvblR5cGUgPSBOYXZpZ2F0aW9uVHlwZS5CYWNrTmF2aWdhdGlvblxuKTogUHJvbWlzZTx2b2lkPiB7XG5cdGNvbnN0IG9WaWV3ID0gb0NvbnRyb2xsZXIuZ2V0VmlldygpO1xuXHRjb25zdCBvTW9kZWwgPSBvQ29udGV4dC5nZXRNb2RlbCgpO1xuXHRjb25zdCBvTWV0YU1vZGVsID0gb01vZGVsLmdldE1ldGFNb2RlbCgpO1xuXHRjb25zdCB2aWV3RGF0YSA9IG9WaWV3LmdldFZpZXdEYXRhKCkgYXMgeyBlbnRpdHlTZXQ/OiBzdHJpbmc7IGNvbnRleHRQYXRoPzogc3RyaW5nIH07XG5cdGNvbnN0IGNvbnRleHRQYXRoID0gdmlld0RhdGEuY29udGV4dFBhdGggfHwgKHZpZXdEYXRhLmVudGl0eVNldCA/IGAvJHt2aWV3RGF0YS5lbnRpdHlTZXR9YCA6IHVuZGVmaW5lZCk7XG5cdGNvbnN0IGlzRHJhZnRSb290ID0gY29udGV4dFBhdGggPyAhIW9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAke2NvbnRleHRQYXRofUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnRSb290YCkgOiBmYWxzZTtcblx0Y29uc3Qgb1VJTW9kZWwgPSBvVmlldy5nZXRNb2RlbChcInVpXCIpO1xuXHRjb25zdCBiSXNFZGl0YWJsZSA9IG9VSU1vZGVsLmdldFByb3BlcnR5KFwiL2lzRWRpdGFibGVcIik7XG5cdGNvbnN0IG9yaWdpbmFsQ29udGV4dCA9IG9Db250ZXh0O1xuXHRsZXQgZHJhZnRSb290UGF0aCA9IG9Db250ZXh0LmdldFBhdGgoKTtcblx0aWYgKCFpc0RyYWZ0Um9vdCkge1xuXHRcdGRyYWZ0Um9vdFBhdGggPSBNb2RlbEhlbHBlci5nZXREcmFmdFJvb3RQYXRoKG9Db250ZXh0KSA/PyBkcmFmdFJvb3RQYXRoO1xuXHR9XG5cdG9Db250ZXh0ID0gb01vZGVsLmJpbmRDb250ZXh0KGRyYWZ0Um9vdFBhdGgsIHVuZGVmaW5lZCwgeyAkZXhwYW5kOiBcIkRyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhXCIgfSkuZ2V0Qm91bmRDb250ZXh0KCk7XG5cblx0Ly8gU2hvdWxkbid0IGRpc3BsYXkgZGF0YSBsb3NzIHBvcG92ZXIgb24gc2hlbGwgYmFjayBuYXZpZ2F0aW9uIGZyb20gc3ViLW9iamVjdCBwYWdlc1xuXHQvLyBvciB3aGVuIG9iamVjdCBwYWdlIGlzIGluIGRpc3BsYXkgbW9kZSwgb3Igd2hlbiB0aGUgb2JqZWN0IGlzIGRlbGV0ZWRcblx0aWYgKG9yaWdpbmFsQ29udGV4dC5pc0RlbGV0ZWQoKSB8fCAoIWlzRHJhZnRSb290ICYmIG5hdmlnYXRpb25UeXBlID09PSBOYXZpZ2F0aW9uVHlwZS5CYWNrTmF2aWdhdGlvbikgfHwgIWJJc0VkaXRhYmxlKSB7XG5cdFx0Zm5Qcm9jZXNzRnVuY3Rpb24oKTtcblx0fSBlbHNlIHtcblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgZHJhZnRBZG1pbkRhdGEgPSBhd2FpdCBvQ29udGV4dC5yZXF1ZXN0T2JqZWN0KFwiRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGFcIik7XG5cdFx0XHRhd2FpdCBwcm9jZXNzRHJhZnRBZG1pbkRhdGEoXG5cdFx0XHRcdGRyYWZ0QWRtaW5EYXRhLFxuXHRcdFx0XHRmblByb2Nlc3NGdW5jdGlvbixcblx0XHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdFx0b0NvbnRleHQsXG5cdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXcsXG5cdFx0XHRcdG5hdmlnYXRpb25UeXBlXG5cdFx0XHQpO1xuXHRcdH0gY2F0Y2ggKG9FcnJvcjogdW5rbm93bikge1xuXHRcdFx0TG9nLmVycm9yKFwiQ2Fubm90IHJldHJpZXZlIGRyYWZ0RGF0YUNvbnRleHQgaW5mb3JtYXRpb25cIiwgb0Vycm9yIGFzIHN0cmluZyk7XG5cdFx0XHRmblByb2Nlc3NGdW5jdGlvbigpO1xuXHRcdH1cblx0fVxufVxuXG4vKipcbiAqIFNhdmVzIHRoZSBkb2N1bWVudC4gSWYgdGhlIGNvbnRyb2xsZXIgaXMgb2YgdHlwZSBPYmplY3RQYWdlLCB0aGVuIGludGVybmFsIF9zYXZlRG9jdW1lbnQgaXMgY2FsbGVkLCBvdGhlcndpc2Ugc2F2ZURvY3VtZW50XG4gKiBmcm9tIEVkaXRGbG93IGlzIGNhbGxlZC5cbiAqXG4gKiBAcGFyYW0gY29udHJvbGxlciBDb250cm9sbGVyIG9mIHRoZSBjdXJyZW50IHZpZXdcbiAqIEBwYXJhbSBjb250ZXh0IFRoZSBjb250ZXh0IHRvIGJlIHVzZWQgZm9yIHRoZSBkcmFmdCBvcGVyYXRpb25zXG4gKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2ZWQgaWYgdGhlIHNhdmUgd2FzIHN1Y2Nlc3NmdWxcbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2F2ZURvY3VtZW50KGNvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyLCBjb250ZXh0PzogT0RhdGFWNENvbnRleHQpOiBQcm9taXNlPHVua25vd24+IHtcblx0Y29uc3QgaGFzSW5pdGlhbENvbnRleHQgPSBjb250ZXh0ICE9PSB1bmRlZmluZWQ7XG5cdGNvbnRleHQgPSBjb250ZXh0ID8/IGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KCk7XG5cdGlmICghaGFzSW5pdGlhbENvbnRleHQgJiYgY29udHJvbGxlci5pc0E8T2JqZWN0UGFnZUNvbnRyb2xsZXJDb250cm9sbGVyPihcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5PYmplY3RQYWdlQ29udHJvbGxlclwiKSkge1xuXHRcdHJldHVybiBjb250cm9sbGVyLl9zYXZlRG9jdW1lbnQoKTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gY29udHJvbGxlci5lZGl0Rmxvdy5zYXZlRG9jdW1lbnQoY29udGV4dCwge30pO1xuXHR9XG59XG5cbi8qKlxuICogRGlzY2FyZHMgdGhlIGRyYWZ0LlxuICpcbiAqIEBwYXJhbSBjb250cm9sbGVyIENvbnRyb2xsZXIgb2YgdGhlIGN1cnJlbnQgdmlld1xuICogQHBhcmFtIHNraXBCaW5kaW5nVG9WaWV3IFRoZSBwYXJhbWV0ZXIgdG8gc2tpcCB0aGUgYmluZGluZyB0byB0aGUgdmlld1xuICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgdG8gYmUgdXNlZCBmb3IgdGhlIGRyYWZ0IG9wZXJhdGlvbnNcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZlZCBpZiBjYW5jZWxEb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bFxuICovXG5hc3luYyBmdW5jdGlvbiBkaXNjYXJkRHJhZnQoXG5cdGNvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyLFxuXHRza2lwQmluZGluZ1RvVmlldzogYm9vbGVhbiB8IHVuZGVmaW5lZCxcblx0Y29udGV4dD86IE9EYXRhVjRDb250ZXh0XG4pOiBQcm9taXNlPHVua25vd24+IHtcblx0Y29udGV4dCA9IGNvbnRleHQgPz8gY29udHJvbGxlci5nZXRWaWV3KCkuZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0Y29uc3QgcGFyYW1zID0ge1xuXHRcdHNraXBCYWNrTmF2aWdhdGlvbjogdHJ1ZSxcblx0XHRza2lwRGlzY2FyZFBvcG92ZXI6IHRydWUsXG5cdFx0c2tpcEJpbmRpbmdUb1ZpZXc6IHNraXBCaW5kaW5nVG9WaWV3ICE9PSB1bmRlZmluZWQgPyBza2lwQmluZGluZ1RvVmlldyA6IHRydWVcblx0fTtcblx0cmV0dXJuIGNvbnRyb2xsZXIuZWRpdEZsb3cuY2FuY2VsRG9jdW1lbnQoY29udGV4dCwgcGFyYW1zKTtcbn1cblxuLyoqXG4gKiBFeGVjdXRlcyB0aGUgZm9sbG93LXVwIGZ1bmN0aW9ucyBhZnRlciBhbiBvcHRpb24gd2FzIHNlbGVjdGVkIGluIHRoZSBkYXRhIGxvc3MgZGlhbG9nLlxuICpcbiAqIEBwYXJhbSBzZWxlY3RlZEtleSBUaGUga2V5IG9mIHRoZSBzZWxlY3RlZCBvcHRpb24gZnJvbSB0aGUgZGF0YSBsb3NzIGRpYWxvZ1xuICogQHBhcmFtIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyBUaGUgZnVuY3Rpb24gdG8gcHJvY2VzcyB0aGUgaGFuZGxlclxuICogQHBhcmFtIGZuQ2FuY2VsRnVuY3Rpb24gVGhlIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBjb250cm9sbGVyIENvbnRyb2xsZXIgb2YgdGhlIGN1cnJlbnQgdmlld1xuICogQHBhcmFtIHNraXBCaW5kaW5nVG9WaWV3IFRoZSBwYXJhbWV0ZXIgdG8gc2tpcCB0aGUgYmluZGluZyB0byB0aGUgdmlld1xuICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgdG8gYmUgdXNlZCBmb3IgdGhlIGJpbmRpbmdcbiAqL1xuZnVuY3Rpb24gaGFuZGxlRGlhbG9nU2VsZWN0aW9uKFxuXHRzZWxlY3RlZEtleTogc3RyaW5nLFxuXHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHM6IEZ1bmN0aW9uLFxuXHRmbkNhbmNlbEZ1bmN0aW9uOiBGdW5jdGlvbixcblx0Y29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIsXG5cdHNraXBCaW5kaW5nVG9WaWV3OiBib29sZWFuIHwgdW5kZWZpbmVkLFxuXHRjb250ZXh0PzogT0RhdGFWNENvbnRleHRcbik6IHZvaWQge1xuXHRzd2l0Y2ggKHNlbGVjdGVkS2V5KSB7XG5cdFx0Y2FzZSBEcmFmdERhdGFMb3NzT3B0aW9ucy5TYXZlOlxuXHRcdFx0ZHJhZnREYXRhTG9zc1BvcHVwXG5cdFx0XHRcdC5zYXZlRG9jdW1lbnQoY29udHJvbGxlciwgY29udGV4dClcblx0XHRcdFx0LnRoZW4oKGNvbnRleHQ/KSA9PiBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoY29udGV4dCkpXG5cdFx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGlmIChlcnJvciA9PT0gUmVjb21tZW5kYXRpb25EaWFsb2dEZWNpc2lvbi5Db250aW51ZSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGZuQ2FuY2VsRnVuY3Rpb24oKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgc2F2aW5nIGRvY3VtZW50XCIsIGVycm9yKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRkYXRhTG9zc0RpYWxvZy5jbG9zZSgpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBEcmFmdERhdGFMb3NzT3B0aW9ucy5LZWVwOlxuXHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdFx0XHRkYXRhTG9zc0RpYWxvZy5jbG9zZSgpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBEcmFmdERhdGFMb3NzT3B0aW9ucy5EaXNjYXJkOlxuXHRcdFx0ZHJhZnREYXRhTG9zc1BvcHVwXG5cdFx0XHRcdC5kaXNjYXJkRHJhZnQoY29udHJvbGxlciwgc2tpcEJpbmRpbmdUb1ZpZXcsIGNvbnRleHQpXG5cdFx0XHRcdC50aGVuKChjb250ZXh0PykgPT4gcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKGNvbnRleHQpKVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGVycm9yOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSBkaXNjYXJkaW5nIGRyYWZ0XCIsIGVycm9yKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRkYXRhTG9zc0RpYWxvZy5jbG9zZSgpO1xuXHRcdFx0YnJlYWs7XG5cdFx0ZGVmYXVsdDpcblx0XHRcdGZuQ2FuY2VsRnVuY3Rpb24oKTtcblx0XHRcdGRhdGFMb3NzRGlhbG9nLmNsb3NlKCk7XG5cdH1cbn1cblxuY29uc3QgZHJhZnREYXRhTG9zc1BvcHVwID0ge1xuXHRwcm9jZXNzRGF0YUxvc3NPckRyYWZ0RGlzY2FyZENvbmZpcm1hdGlvbjogcHJvY2Vzc0RhdGFMb3NzT3JEcmFmdERpc2NhcmRDb25maXJtYXRpb24sXG5cdHNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbjogc2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uLFxuXHROYXZpZ2F0aW9uVHlwZTogTmF2aWdhdGlvblR5cGUsXG5cdHByb2Nlc3NGY2xNb2RlOiBwcm9jZXNzRmNsTW9kZSxcblx0cHJvY2Vzc05vQWN0aXZlRW50aXR5TW9kZTogcHJvY2Vzc05vQWN0aXZlRW50aXR5TW9kZSxcblx0cHJvY2Vzc0VkaXRpbmdEcmFmdEZvckV4aXN0aW5nRW50aXR5OiBwcm9jZXNzRWRpdGluZ0RyYWZ0Rm9yRXhpc3RpbmdFbnRpdHksXG5cdHByb2Nlc3NFZGl0U3RhdGVEaXJ0eTogcHJvY2Vzc0VkaXRTdGF0ZURpcnR5LFxuXHRoYW5kbGVEaWFsb2dTZWxlY3Rpb246IGhhbmRsZURpYWxvZ1NlbGVjdGlvbixcblx0c2F2ZURvY3VtZW50OiBzYXZlRG9jdW1lbnQsXG5cdGRpc2NhcmREcmFmdDogZGlzY2FyZERyYWZ0XG59O1xuXG5leHBvcnQgZGVmYXVsdCBkcmFmdERhdGFMb3NzUG9wdXA7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7O0VBU0E7RUFBQSxJQUNLQSxjQUFjO0VBS25CO0VBQUEsV0FMS0EsY0FBYztJQUFkQSxjQUFjO0lBQWRBLGNBQWM7RUFBQSxHQUFkQSxjQUFjLEtBQWRBLGNBQWM7RUFBQSxJQU1kQyxvQkFBb0I7RUFBQSxXQUFwQkEsb0JBQW9CO0lBQXBCQSxvQkFBb0I7SUFBcEJBLG9CQUFvQjtJQUFwQkEsb0JBQW9CO0VBQUEsR0FBcEJBLG9CQUFvQixLQUFwQkEsb0JBQW9CO0VBV3pCO0VBQ0EsTUFBTUMsY0FBYyxHQUFHLElBQUlDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDOztFQUV2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxTQUFTQyxvQ0FBb0MsQ0FBQ0MsY0FBOEIsRUFBVztJQUFBO0lBQ3RGLElBQUlDLGNBQWM7SUFDbEIsTUFBTUMsU0FBUyxHQUFHRixjQUFjLENBQUNHLGVBQWUsRUFBRSxDQUFDQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7SUFDN0VILGNBQWMsR0FBRyxDQUFBQyxTQUFTLGFBQVRBLFNBQVMseUNBQVRBLFNBQVMsQ0FBRUcsR0FBRyxtREFBZCxlQUFnQk4sb0NBQW9DLEtBQUksS0FBSztJQUM5RSxPQUFPRSxjQUFjO0VBQ3RCOztF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
|
|
@@ -426,7 +426,7 @@ function handleDialogSelection(
|
|
|
426
426
|
dataLossDialog.close();
|
|
427
427
|
break;
|
|
428
428
|
case DraftDataLossOptions.Keep:
|
|
429
|
-
processFunctionForDrafts(
|
|
429
|
+
processFunctionForDrafts();
|
|
430
430
|
dataLossDialog.close();
|
|
431
431
|
break;
|
|
432
432
|
case DraftDataLossOptions.Discard:
|