@sapui5/sap.fe.macros 1.138.0 → 1.140.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/macros/.library +1 -1
- package/src/sap/fe/macros/Breadcrumbs.js +269 -0
- package/src/sap/fe/macros/Breadcrumbs.tsx +243 -0
- package/src/sap/fe/macros/CommonHelper.js +2 -2
- package/src/sap/fe/macros/CommonHelper.ts +1 -1
- package/src/sap/fe/macros/Field.js +85 -58
- package/src/sap/fe/macros/Field.ts +104 -60
- package/src/sap/fe/macros/FooterContent.js +44 -11
- package/src/sap/fe/macros/FooterContent.tsx +48 -9
- package/src/sap/fe/macros/FormElement.js +2 -2
- package/src/sap/fe/macros/FormElement.ts +1 -2
- package/src/sap/fe/macros/MessageButton.js +1 -2
- package/src/sap/fe/macros/MessageButton.tsx +0 -1
- package/src/sap/fe/macros/MultiValueField.js +17 -6
- package/src/sap/fe/macros/MultiValueField.tsx +7 -4
- package/src/sap/fe/macros/RichTextEditor.js +30 -5
- package/src/sap/fe/macros/RichTextEditor.tsx +34 -6
- package/src/sap/fe/macros/Share.js +85 -40
- package/src/sap/fe/macros/Share.tsx +42 -1
- package/src/sap/fe/macros/Status.js +226 -0
- package/src/sap/fe/macros/Status.tsx +192 -0
- package/src/sap/fe/macros/ValueHelp.js +4 -29
- package/src/sap/fe/macros/ValueHelp.tsx +2 -43
- package/src/sap/fe/macros/ai/EasyFillButton.js +10 -4
- package/src/sap/fe/macros/ai/EasyFillButton.tsx +8 -1
- package/src/sap/fe/macros/ai/EasyFillDialog.js +25 -10
- package/src/sap/fe/macros/ai/EasyFillDialog.tsx +32 -23
- package/src/sap/fe/macros/ai/EasyFilterBar.js +123 -114
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +140 -124
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +11 -5
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +14 -5
- package/src/sap/fe/macros/ai/SummarizationButton.js +2 -2
- package/src/sap/fe/macros/ai/SummarizationButton.tsx +1 -1
- package/src/sap/fe/macros/chart/ChartDelegate.js +4 -4
- package/src/sap/fe/macros/chart/ChartDelegate.ts +3 -3
- package/src/sap/fe/macros/chart/ChartHelper.js +1 -2
- package/src/sap/fe/macros/chart/ChartHelper.ts +0 -1
- package/src/sap/fe/macros/chart/ChartRuntime.js +1 -2
- package/src/sap/fe/macros/chart/ChartRuntime.ts +0 -1
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +20 -6
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +16 -8
- package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.js +3 -1
- package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.ts +2 -0
- package/src/sap/fe/macros/controls/FieldWrapper.js +9 -3
- package/src/sap/fe/macros/controls/FieldWrapper.ts +11 -2
- package/src/sap/fe/macros/controls/FilterBar.js +49 -2
- package/src/sap/fe/macros/controls/FilterBar.ts +55 -1
- package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.js +2 -2
- package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.tsx +2 -2
- package/src/sap/fe/macros/controls/RequiredFlexBox.js +62 -0
- package/src/sap/fe/macros/controls/RequiredFlexBox.tsx +20 -0
- package/src/sap/fe/macros/controls/filterbar/VisualFilter.js +21 -11
- package/src/sap/fe/macros/controls/filterbar/VisualFilter.ts +25 -11
- package/src/sap/fe/macros/controls/filterbar/VisualFilterContainer.js +11 -2
- package/src/sap/fe/macros/controls/filterbar/VisualFilterContainer.ts +12 -1
- package/src/sap/fe/macros/controls/filterbar/utils/VisualFilterUtils.js +18 -1
- package/src/sap/fe/macros/controls/filterbar/utils/VisualFilterUtils.ts +20 -0
- package/src/sap/fe/macros/coreUI/CreateDialog.js +2 -2
- package/src/sap/fe/macros/coreUI/CreateDialog.tsx +1 -1
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +43 -4
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +48 -1
- package/src/sap/fe/macros/designtime/Designtime.helper.js +39 -2
- package/src/sap/fe/macros/designtime/Designtime.helper.ts +39 -0
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.js +15 -4
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.tsx +5 -0
- package/src/sap/fe/macros/field/FieldBaseDelegate.js +20 -8
- package/src/sap/fe/macros/field/FieldBaseDelegate.ts +34 -9
- package/src/sap/fe/macros/field/FieldFormatOptions.js +73 -44
- package/src/sap/fe/macros/field/FieldFormatOptions.ts +20 -2
- package/src/sap/fe/macros/field/FieldRuntime.js +1 -2
- package/src/sap/fe/macros/field/FieldRuntime.ts +0 -1
- package/src/sap/fe/macros/filter/FilterUtils.js +3 -5
- package/src/sap/fe/macros/filter/FilterUtils.ts +2 -4
- package/src/sap/fe/macros/filterBar/FilterBar.block.js +8 -2
- package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +2 -5
- package/src/sap/fe/macros/filterBar/FilterBarAPI.js +8 -8
- package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +8 -8
- package/src/sap/fe/macros/filterBar/designtime/FilterBar.designtime.js +3 -1
- package/src/sap/fe/macros/filterBar/designtime/FilterBar.designtime.ts +2 -0
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +1 -1
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +1 -1
- package/src/sap/fe/macros/form/Form.js +1 -4
- package/src/sap/fe/macros/form/Form.tsx +0 -3
- package/src/sap/fe/macros/form/FormActionButtons.fragment.xml +13 -2
- package/src/sap/fe/macros/form/FormContainer.block.js +1 -2
- package/src/sap/fe/macros/form/FormContainer.block.ts +0 -1
- package/src/sap/fe/macros/form/FormContainer.fragment.xml +40 -0
- package/src/sap/fe/macros/form/FormContainerAPI.js +14 -16
- package/src/sap/fe/macros/form/FormContainerAPI.ts +13 -15
- package/src/sap/fe/macros/form/FormDelegate.js +20 -1
- package/src/sap/fe/macros/form/FormDelegate.ts +25 -0
- package/src/sap/fe/macros/form/FormHelper.js +1 -2
- package/src/sap/fe/macros/form/FormHelper.ts +0 -1
- package/src/sap/fe/macros/formatters/TableFormatter.js +10 -1
- package/src/sap/fe/macros/formatters/TableFormatter.ts +14 -5
- package/src/sap/fe/macros/fpm/CustomFragment.block.js +1 -2
- package/src/sap/fe/macros/fpm/CustomFragment.block.ts +0 -1
- package/src/sap/fe/macros/inlineEdit/InlineEdit.js +15 -3
- package/src/sap/fe/macros/inlineEdit/InlineEdit.ts +14 -2
- package/src/sap/fe/macros/internal/ActionCommand.block.js +1 -2
- package/src/sap/fe/macros/internal/ActionCommand.block.ts +0 -1
- package/src/sap/fe/macros/internal/DataPoint.js +2 -1
- package/src/sap/fe/macros/internal/DataPoint.tsx +1 -0
- package/src/sap/fe/macros/internal/DataPointFormatOptions.js +11 -2
- package/src/sap/fe/macros/internal/DataPointFormatOptions.ts +3 -0
- package/src/sap/fe/macros/internal/FilterField.block.js +10 -2
- package/src/sap/fe/macros/internal/FilterField.block.ts +11 -1
- package/src/sap/fe/macros/internal/field/CheckBoxGroup.fragment.xml +25 -0
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +51 -13
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +53 -6
- package/src/sap/fe/macros/internal/field/EditStyle.js +5 -1
- package/src/sap/fe/macros/internal/field/EditStyle.tsx +4 -0
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +9 -2
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +11 -0
- package/src/sap/fe/macros/internal/field/FieldStyles.js +1 -1
- package/src/sap/fe/macros/internal/field/FieldStyles.tsx +2 -1
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.js +46 -8
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.ts +60 -6
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +38 -2
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +37 -2
- package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +2 -1
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +16 -5
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +21 -9
- package/src/sap/fe/macros/internal/valuehelp/ValueListTable.fragment.xml +1 -0
- package/src/sap/fe/macros/library.js +1 -1
- package/src/sap/fe/macros/mdc/adapter/StateHelper.js +7 -2
- package/src/sap/fe/macros/mdc/adapter/StateHelper.ts +7 -3
- package/src/sap/fe/macros/messagebundle.properties +42 -32
- package/src/sap/fe/macros/messagebundle_ar.properties +12 -4
- package/src/sap/fe/macros/messagebundle_bg.properties +11 -3
- package/src/sap/fe/macros/messagebundle_ca.properties +15 -7
- package/src/sap/fe/macros/messagebundle_cnr.properties +12 -4
- package/src/sap/fe/macros/messagebundle_cs.properties +10 -2
- package/src/sap/fe/macros/messagebundle_cy.properties +12 -4
- package/src/sap/fe/macros/messagebundle_da.properties +11 -3
- package/src/sap/fe/macros/messagebundle_de.properties +18 -10
- package/src/sap/fe/macros/messagebundle_el.properties +13 -5
- package/src/sap/fe/macros/messagebundle_en.properties +16 -8
- package/src/sap/fe/macros/messagebundle_en_GB.properties +16 -8
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +16 -8
- package/src/sap/fe/macros/messagebundle_es.properties +13 -5
- package/src/sap/fe/macros/messagebundle_es_MX.properties +14 -6
- package/src/sap/fe/macros/messagebundle_et.properties +13 -5
- package/src/sap/fe/macros/messagebundle_fi.properties +14 -6
- package/src/sap/fe/macros/messagebundle_fr.properties +14 -6
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +15 -7
- package/src/sap/fe/macros/messagebundle_hi.properties +11 -3
- package/src/sap/fe/macros/messagebundle_hr.properties +11 -3
- package/src/sap/fe/macros/messagebundle_hu.properties +10 -2
- package/src/sap/fe/macros/messagebundle_id.properties +18 -10
- package/src/sap/fe/macros/messagebundle_it.properties +10 -2
- package/src/sap/fe/macros/messagebundle_iw.properties +10 -2
- package/src/sap/fe/macros/messagebundle_ja.properties +13 -5
- package/src/sap/fe/macros/messagebundle_kk.properties +15 -7
- package/src/sap/fe/macros/messagebundle_ko.properties +10 -2
- package/src/sap/fe/macros/messagebundle_lt.properties +11 -3
- package/src/sap/fe/macros/messagebundle_lv.properties +12 -4
- package/src/sap/fe/macros/messagebundle_mk.properties +12 -4
- package/src/sap/fe/macros/messagebundle_ms.properties +14 -6
- package/src/sap/fe/macros/messagebundle_nl.properties +13 -5
- package/src/sap/fe/macros/messagebundle_no.properties +12 -4
- package/src/sap/fe/macros/messagebundle_pl.properties +12 -4
- package/src/sap/fe/macros/messagebundle_pt.properties +13 -5
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +12 -4
- package/src/sap/fe/macros/messagebundle_ro.properties +12 -4
- package/src/sap/fe/macros/messagebundle_ru.properties +13 -5
- package/src/sap/fe/macros/messagebundle_sh.properties +12 -4
- package/src/sap/fe/macros/messagebundle_sk.properties +11 -3
- package/src/sap/fe/macros/messagebundle_sl.properties +12 -4
- package/src/sap/fe/macros/messagebundle_sr.properties +12 -4
- package/src/sap/fe/macros/messagebundle_sv.properties +11 -3
- package/src/sap/fe/macros/messagebundle_th.properties +11 -3
- package/src/sap/fe/macros/messagebundle_tr.properties +10 -2
- package/src/sap/fe/macros/messagebundle_uk.properties +17 -9
- package/src/sap/fe/macros/messagebundle_vi.properties +12 -4
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +11 -3
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +12 -4
- package/src/sap/fe/macros/messages/MessageButton.js +55 -36
- package/src/sap/fe/macros/messages/MessageButton.ts +64 -39
- package/src/sap/fe/macros/messages/MessagePopover.js +2 -2
- package/src/sap/fe/macros/messages/MessagePopover.ts +4 -4
- package/src/sap/fe/macros/microchart/MicroChartContainer.js +1 -2
- package/src/sap/fe/macros/microchart/MicroChartContainer.ts +1 -2
- package/src/sap/fe/macros/microchart/MicroChartHelper.js +1 -2
- package/src/sap/fe/macros/microchart/MicroChartHelper.tsx +0 -1
- package/src/sap/fe/macros/share/ShareAPI.js +4 -29
- package/src/sap/fe/macros/share/ShareAPI.ts +1 -32
- package/src/sap/fe/macros/situations/SituationsPopover.js +3 -1
- package/src/sap/fe/macros/situations/SituationsPopover.ts +2 -0
- package/src/sap/fe/macros/table/Action.js +24 -2
- package/src/sap/fe/macros/table/Action.ts +13 -0
- package/src/sap/fe/macros/table/ActionGroup.js +24 -2
- package/src/sap/fe/macros/table/ActionGroup.ts +13 -0
- package/src/sap/fe/macros/table/ActionGroupOverride.js +24 -2
- package/src/sap/fe/macros/table/ActionGroupOverride.ts +13 -0
- package/src/sap/fe/macros/table/ActionOverride.js +24 -2
- package/src/sap/fe/macros/table/ActionOverride.ts +13 -0
- package/src/sap/fe/macros/table/ActionsTemplating.js +73 -12
- package/src/sap/fe/macros/table/ActionsTemplating.tsx +69 -13
- package/src/sap/fe/macros/table/Column.js +3 -3
- package/src/sap/fe/macros/table/Column.ts +2 -2
- package/src/sap/fe/macros/table/MdcTableTemplate.js +20 -8
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +36 -7
- package/src/sap/fe/macros/table/QuickFilterSelector.js +35 -14
- package/src/sap/fe/macros/table/QuickFilterSelector.tsx +22 -3
- package/src/sap/fe/macros/table/Table.block.js +137 -108
- package/src/sap/fe/macros/table/Table.block.tsx +29 -2
- package/src/sap/fe/macros/table/TableAPI.js +143 -133
- package/src/sap/fe/macros/table/TableAPI.ts +5 -1
- package/src/sap/fe/macros/table/TableDefinition.js +4 -2
- package/src/sap/fe/macros/table/TableDefinition.ts +3 -1
- package/src/sap/fe/macros/table/TableHelper.js +1 -2
- package/src/sap/fe/macros/table/TableHelper.ts +0 -1
- package/src/sap/fe/macros/table/TableRuntime.js +26 -7
- package/src/sap/fe/macros/table/TableRuntime.ts +33 -5
- package/src/sap/fe/macros/table/Utils.js +6 -2
- package/src/sap/fe/macros/table/Utils.ts +5 -1
- package/src/sap/fe/macros/table/delegates/ALPTableDelegate.js +1 -2
- package/src/sap/fe/macros/table/delegates/ALPTableDelegate.ts +0 -1
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +25 -20
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +25 -24
- package/src/sap/fe/macros/table/delegates/TreeTableDelegate.js +1 -2
- package/src/sap/fe/macros/table/delegates/TreeTableDelegate.ts +0 -1
- package/src/sap/fe/macros/table/designtime/Table.designtime.js +3 -1
- package/src/sap/fe/macros/table/designtime/Table.designtime.ts +2 -0
- package/src/sap/fe/macros/table/massEdit/designtime/MassEdit.designtime.js +3 -1
- package/src/sap/fe/macros/table/massEdit/designtime/MassEdit.designtime.ts +2 -1
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +2 -1
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +1 -0
- package/src/sap/fe/macros/table/mixin/TableHierarchy.js +8 -1
- package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +10 -0
- package/src/sap/fe/macros/table/mixin/TableSharing.js +3 -2
- package/src/sap/fe/macros/table/mixin/TableSharing.ts +9 -1
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +20 -6
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +36 -14
- package/src/sap/fe/macros/visualfilters/VisualFilter.js +95 -7
- package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +93 -3
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +16 -5
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +18 -4
|
@@ -220,7 +220,7 @@ class MessageButton extends Button {
|
|
|
220
220
|
const viewId = this._getViewId(this.getId());
|
|
221
221
|
const view = UI5Element.getElementById(viewId as string);
|
|
222
222
|
const uIModel = view?.getModel("internal") as JSONModel;
|
|
223
|
-
uIModel?.setProperty("/
|
|
223
|
+
uIModel?.setProperty("/messageTargetPropertyPath", undefined);
|
|
224
224
|
}
|
|
225
225
|
|
|
226
226
|
/**
|
|
@@ -487,18 +487,26 @@ class MessageButton extends Button {
|
|
|
487
487
|
);
|
|
488
488
|
|
|
489
489
|
message.setGroupName(sectionBasedGroupName);
|
|
490
|
-
const
|
|
491
|
-
const
|
|
492
|
-
const
|
|
493
|
-
const
|
|
490
|
+
const view = UI5Element.getElementById(this._getViewId(this.getId()) as string);
|
|
491
|
+
const viewContextPath = view?.getBindingContext()?.getPath();
|
|
492
|
+
const messageTargetPropertyName = messageObject.getTargets()[0]?.split("/").pop();
|
|
493
|
+
const internalModel = view?.getModel("internal") as JSONModel;
|
|
494
|
+
const internalModelMessageTargetPropertyPath = internalModel?.getProperty("/messageTargetPropertyPath");
|
|
495
|
+
const internalModelMessageTargetPropertyContextPath = internalModelMessageTargetPropertyPath?.substring(
|
|
496
|
+
0,
|
|
497
|
+
internalModelMessageTargetPropertyPath.lastIndexOf("/")
|
|
498
|
+
);
|
|
499
|
+
// activeTitlePress should only be triggered in forward navigation and not in back navigation
|
|
494
500
|
if (
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
501
|
+
internalModelMessageTargetPropertyContextPath &&
|
|
502
|
+
messageTargetPropertyName &&
|
|
503
|
+
viewContextPath &&
|
|
504
|
+
messageTargetPropertyName === internalModelMessageTargetPropertyPath.split("/").pop() &&
|
|
505
|
+
viewContextPath.length >= internalModelMessageTargetPropertyContextPath.length &&
|
|
506
|
+
viewContextPath.startsWith(internalModelMessageTargetPropertyContextPath)
|
|
499
507
|
) {
|
|
500
508
|
this.oMessagePopover.fireActiveTitlePress({ item: message });
|
|
501
|
-
|
|
509
|
+
internalModel.setProperty("/messageTargetPropertyPath", false);
|
|
502
510
|
}
|
|
503
511
|
}
|
|
504
512
|
this.oItemBinding.attachChange(this._setMessageData, this);
|
|
@@ -901,12 +909,6 @@ class MessageButton extends Button {
|
|
|
901
909
|
this.fireEvent("messageChange", {
|
|
902
910
|
iMessageLength: 0
|
|
903
911
|
});
|
|
904
|
-
|
|
905
|
-
const view = UI5Element.getElementById(this.sViewId) as FEView | undefined;
|
|
906
|
-
if (view) {
|
|
907
|
-
// If there are no messages to show, we reset 'messageTargetProperty'.
|
|
908
|
-
view.getModel("internal").setProperty("/messageTargetProperty", undefined);
|
|
909
|
-
}
|
|
910
912
|
}
|
|
911
913
|
|
|
912
914
|
/**
|
|
@@ -924,9 +926,8 @@ class MessageButton extends Button {
|
|
|
924
926
|
oResourceBundle = Library.getResourceBundleFor("sap.fe.core")!,
|
|
925
927
|
iMessageLength = oMessages.length;
|
|
926
928
|
let sButtonType = ButtonType.Default,
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
sMessageText = "";
|
|
929
|
+
messageKey = "",
|
|
930
|
+
messageText = "";
|
|
930
931
|
if (iMessageLength > 0) {
|
|
931
932
|
for (let i = 0; i < iMessageLength; i++) {
|
|
932
933
|
if (!oMessages[i].getType() || oMessages[i].getType().toString() === "") {
|
|
@@ -952,22 +953,46 @@ class MessageButton extends Button {
|
|
|
952
953
|
oMessageCount[MessageType.Information];
|
|
953
954
|
|
|
954
955
|
this.setText(totalNumberOfMessages.toString());
|
|
956
|
+
let messageCount = 0;
|
|
957
|
+
const messageKeys = {
|
|
958
|
+
Error: {
|
|
959
|
+
singleTooltipKey: "C_COMMON_SAPFE_ERROR_MESSAGES_PAGE_TITLE_ERROR",
|
|
960
|
+
multipleTooltipKey: "C_COMMON_SAPFE_ERROR_MESSAGES_PAGE_MULTIPLE_ERROR_TOOLTIP"
|
|
961
|
+
},
|
|
962
|
+
Warning: {
|
|
963
|
+
singleTooltipKey: "C_MESSAGE_HANDLING_SAPFE_ERROR_MESSAGES_PAGE_TITLE_WARNING",
|
|
964
|
+
multipleTooltipKey: "C_COMMON_SAPFE_ERROR_MESSAGES_PAGE_WARNING_TOOLTIP"
|
|
965
|
+
},
|
|
966
|
+
Information: {
|
|
967
|
+
singleTooltipKey: "C_MESSAGE_HANDLING_SAPFE_ERROR_MESSAGES_PAGE_TITLE_INFO",
|
|
968
|
+
multipleTooltipKey: "C_MESSAGE_HANDLING_SAPFE_ERROR_MESSAGES_PAGE_TITLE_INFO"
|
|
969
|
+
},
|
|
970
|
+
Success: {
|
|
971
|
+
singleTooltipKey: "C_MESSAGE_HANDLING_SAPFE_ERROR_MESSAGES_PAGE_TITLE_SUCCESS",
|
|
972
|
+
multipleTooltipKey: "C_MESSAGE_HANDLING_SAPFE_ERROR_MESSAGES_PAGE_MULTIPLE_SUCCESS_TOOLTIP"
|
|
973
|
+
}
|
|
974
|
+
};
|
|
955
975
|
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
976
|
+
for (const [key, value] of Object.entries(messageKeys)) {
|
|
977
|
+
const messageType = key as keyof MessageCount;
|
|
978
|
+
const messageTypeCount = oMessageCount[messageType];
|
|
979
|
+
if (messageTypeCount > 1) {
|
|
980
|
+
messageCount = messageTypeCount;
|
|
981
|
+
messageKey = value.multipleTooltipKey;
|
|
982
|
+
break;
|
|
983
|
+
} else if (messageTypeCount === 1) {
|
|
984
|
+
messageCount = messageTypeCount;
|
|
985
|
+
messageKey = value.singleTooltipKey;
|
|
986
|
+
break;
|
|
987
|
+
}
|
|
966
988
|
}
|
|
967
|
-
if (
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
989
|
+
if (messageKey) {
|
|
990
|
+
messageText = oResourceBundle.getText(messageKey);
|
|
991
|
+
const MESSAGEBUTTON_SHORTCUT = "Ctrl+Shift+M";
|
|
992
|
+
const toolTip = `${oResourceBundle.getText(
|
|
993
|
+
"C_COMMON_SAPFE_ERROR_MESSAGES_PAGE_TOOLTIP"
|
|
994
|
+
)}: ${messageCount} ${messageText} (${MESSAGEBUTTON_SHORTCUT})`;
|
|
995
|
+
this.setTooltip(toolTip);
|
|
971
996
|
}
|
|
972
997
|
this.setIcon(sIcon);
|
|
973
998
|
this.setType(sButtonType);
|
|
@@ -1088,9 +1113,9 @@ class MessageButton extends Button {
|
|
|
1088
1113
|
return undefined;
|
|
1089
1114
|
} else {
|
|
1090
1115
|
// control not found on table
|
|
1091
|
-
const
|
|
1092
|
-
if (
|
|
1093
|
-
(oView.getModel("internal") as JSONModel).setProperty("/
|
|
1116
|
+
const errorPropertyPath = oMessage.getTargets()[0];
|
|
1117
|
+
if (errorPropertyPath) {
|
|
1118
|
+
(oView.getModel("internal") as JSONModel).setProperty("/messageTargetPropertyPath", errorPropertyPath);
|
|
1094
1119
|
}
|
|
1095
1120
|
if (this._navigationConfigured(targetMdcTable)) {
|
|
1096
1121
|
return (oView.getController() as PageController)._routing.navigateForwardToContext(
|
|
@@ -1323,9 +1348,9 @@ class MessageButton extends Button {
|
|
|
1323
1348
|
this.setFocusToControl(oTargetField);
|
|
1324
1349
|
return undefined;
|
|
1325
1350
|
} else {
|
|
1326
|
-
const
|
|
1327
|
-
if (
|
|
1328
|
-
(view.getModel("internal") as JSONModel).setProperty("/
|
|
1351
|
+
const errorPropertyPath = message.getTargets()[0];
|
|
1352
|
+
if (errorPropertyPath) {
|
|
1353
|
+
(view.getModel("internal") as JSONModel).setProperty("/messageTargetPropertyPath", errorPropertyPath);
|
|
1329
1354
|
}
|
|
1330
1355
|
if (targetMdcTable && this._navigationConfigured(targetMdcTable)) {
|
|
1331
1356
|
return (view.getController() as PageController)._routing.navigateForwardToContext(
|
|
@@ -76,7 +76,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/CommonUt
|
|
|
76
76
|
await environmentService.prepareFeature("ErrorExplanation");
|
|
77
77
|
const {
|
|
78
78
|
explain
|
|
79
|
-
} = await __ui5_require_async("ux/eng/fioriai/reuse/
|
|
79
|
+
} = await __ui5_require_async("ux/eng/fioriai/reuse/errorexplanation/ErrorExplanation");
|
|
80
80
|
const registrationIds = appComponent.getManifestEntry("sap.fiori")?.registrationIds;
|
|
81
81
|
const registrationIdsString = registrationIds && registrationIds.length > 0 ? registrationIds.join(",") : "";
|
|
82
82
|
const errorExplanationMetadata = {
|
|
@@ -108,4 +108,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/CommonUt
|
|
|
108
108
|
}(MessagePopover)) || _class);
|
|
109
109
|
return FeMessagePopover;
|
|
110
110
|
}, false);
|
|
111
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGZU1lc3NhZ2VQb3BvdmVyIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2NsYXNzIiwiX01lc3NhZ2VQb3BvdmVyIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsImluaXQiLCJNZXNzYWdlUG9wb3ZlciIsInNldE1vZGVsIiwiTWVzc2FnaW5nIiwiZ2V0TWVzc2FnZU1vZGVsIiwiYmluZEFnZ3JlZ2F0aW9uIiwicGF0aCIsImxlbmd0aCIsInRlbXBsYXRlIiwiTWVzc2FnZUl0ZW0iLCJ0eXBlIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsIm1hcmt1cERlc2NyaXB0aW9uIiwibG9uZ3RleHRVcmwiLCJzdWJ0aXRsZSIsImFjdGl2ZVRpdGxlIiwibGluayIsImdldExpbmtGb3JFcnJvckV4cGxhbmF0aW9uIiwidW5kZWZpbmVkIiwic2V0R3JvdXBJdGVtcyIsIm1lc3NhZ2VQb3BvdmVySW5zdGFuY2UiLCJhcHBDb21wb25lbnQiLCJDb21tb25VdGlscyIsImdldEFwcENvbXBvbmVudCIsImVudmlyb25tZW50U2VydmljZSIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwiZW52aXJvbm1lbnRDYXBhYmlsaXRpZXMiLCJFcnJvckV4cGxhbmF0aW9uIiwiTGluayIsInRleHQiLCJMaWJyYXJ5IiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJnZXRUZXh0IiwiaWNvbiIsImN1c3RvbURhdGEiLCJDdXN0b21EYXRhIiwia2V5IiwidmFsdWUiLCJwcmVzcyIsInByZXBhcmVGZWF0dXJlIiwiZXhwbGFpbiIsIl9fdWk1X3JlcXVpcmVfYXN5bmMiLCJyZWdpc3RyYXRpb25JZHMiLCJnZXRNYW5pZmVzdEVudHJ5IiwicmVnaXN0cmF0aW9uSWRzU3RyaW5nIiwiam9pbiIsImVycm9yRXhwbGFuYXRpb25NZXRhZGF0YSIsInZlcnNpb24iLCJmaW9yaUlkIiwiYXBwTmFtZSIsImNvbXBvbmVudE5hbWUiLCJpZCIsImVycm9yRXhwbGFuYXRpb25EYXRhIiwibWVzc2FnZSIsImRhdGEiLCJjb2RlIiwiZGVzY3JpcHRpb25VcmwiLCJlcnJvciIsIkxvZyIsIkZFU1JIZWxwZXIiLCJzZXRTZW1hbnRpY1N0ZXBuYW1lIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJNZXNzYWdlUG9wb3Zlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IExpbmsgZnJvbSBcInNhcC9tL0xpbmtcIjtcbmltcG9ydCBNZXNzYWdlSXRlbSBmcm9tIFwic2FwL20vTWVzc2FnZUl0ZW1cIjtcbmltcG9ydCBNZXNzYWdlUG9wb3ZlciBmcm9tIFwic2FwL20vTWVzc2FnZVBvcG92ZXJcIjtcbmltcG9ydCBDdXN0b21EYXRhIGZyb20gXCJzYXAvdWkvY29yZS9DdXN0b21EYXRhXCI7XG5pbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgTWVzc2FnaW5nIGZyb20gXCJzYXAvdWkvY29yZS9NZXNzYWdpbmdcIjtcbmltcG9ydCBGRVNSSGVscGVyIGZyb20gXCJzYXAvdWkvcGVyZm9ybWFuY2UvdHJhY2UvRkVTUkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBFcnJvckV4cGxhbmF0aW9uRGF0YSwgRXJyb3JFeHBsYW5hdGlvbk1ldGFkYXRhIH0gZnJvbSBcInV4L2VuZy9maW9yaWFpL3JldXNlL2Vycm9yRXhwbGFuYXRpb24vRXJyb3JFeHBsYW5hdGlvblwiO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLm1lc3NhZ2VzLk1lc3NhZ2VQb3BvdmVyXCIpXG5jbGFzcyBGZU1lc3NhZ2VQb3BvdmVyIGV4dGVuZHMgTWVzc2FnZVBvcG92ZXIge1xuXHRpbml0KCk6IHZvaWQge1xuXHRcdE1lc3NhZ2VQb3BvdmVyLnByb3RvdHlwZS5pbml0LmFwcGx5KHRoaXMpO1xuXHRcdHRoaXMuc2V0TW9kZWwoTWVzc2FnaW5nLmdldE1lc3NhZ2VNb2RlbCgpLCBcIm1lc3NhZ2VcIik7XG5cblx0XHR0aGlzLmJpbmRBZ2dyZWdhdGlvbihcIml0ZW1zXCIsIHtcblx0XHRcdHBhdGg6IFwibWVzc2FnZT4vXCIsXG5cdFx0XHRsZW5ndGg6IDk5OTksXG5cdFx0XHR0ZW1wbGF0ZTogbmV3IE1lc3NhZ2VJdGVtKHtcblx0XHRcdFx0dHlwZTogXCJ7bWVzc2FnZT50eXBlfVwiLFxuXHRcdFx0XHR0aXRsZTogXCJ7bWVzc2FnZT5tZXNzYWdlfVwiLFxuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJ7bWVzc2FnZT5kZXNjcmlwdGlvbn1cIixcblx0XHRcdFx0bWFya3VwRGVzY3JpcHRpb246IHRydWUsXG5cdFx0XHRcdGxvbmd0ZXh0VXJsOiBcInttZXNzYWdlPmRlc2NyaXB0aW9uVXJsfVwiLFxuXHRcdFx0XHRzdWJ0aXRsZTogXCJ7bWVzc2FnZT5hZGRpdGlvbmFsVGV4dH1cIixcblx0XHRcdFx0YWN0aXZlVGl0bGU6IFwiez0gJHttZXNzYWdlPmNvbnRyb2xJZHN9Lmxlbmd0aCA+IDAgPyB0cnVlIDogZmFsc2V9XCIsXG5cdFx0XHRcdGxpbms6IHRoaXMuZ2V0TGlua0ZvckVycm9yRXhwbGFuYXRpb24odGhpcykgfHwgdW5kZWZpbmVkXG5cdFx0XHR9KVxuXHRcdH0pO1xuXHRcdHRoaXMuc2V0R3JvdXBJdGVtcyh0cnVlKTtcblx0fVxuXG5cdGdldExpbmtGb3JFcnJvckV4cGxhbmF0aW9uKG1lc3NhZ2VQb3BvdmVySW5zdGFuY2U6IE1lc3NhZ2VQb3BvdmVyKTogTGluayB8IG51bGwge1xuXHRcdGNvbnN0IGFwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudChtZXNzYWdlUG9wb3Zlckluc3RhbmNlKTtcblx0XHRjb25zdCBlbnZpcm9ubWVudFNlcnZpY2UgPSBhcHBDb21wb25lbnQuZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKTtcblx0XHRpZiAoZW52aXJvbm1lbnRTZXJ2aWNlLmVudmlyb25tZW50Q2FwYWJpbGl0aWVzLkVycm9yRXhwbGFuYXRpb24pIHtcblx0XHRcdGNvbnN0IGxpbmsgPSBuZXcgTGluayh7XG5cdFx0XHRcdHRleHQ6IExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUubWFjcm9zXCIpIS5nZXRUZXh0KFwiQ19HRU5FUkFURV9FWFBMQU5BVElPTlwiKSxcblx0XHRcdFx0aWNvbjogXCJzYXAtaWNvbjovL2FpXCIsXG5cdFx0XHRcdGN1c3RvbURhdGE6IFtcblx0XHRcdFx0XHRuZXcgQ3VzdG9tRGF0YSh7XG5cdFx0XHRcdFx0XHRrZXk6IFwibWVzc2FnZVwiLFxuXHRcdFx0XHRcdFx0dmFsdWU6IFwie21lc3NhZ2U+bWVzc2FnZX1cIlxuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdG5ldyBDdXN0b21EYXRhKHtcblx0XHRcdFx0XHRcdGtleTogXCJkZXNjcmlwdGlvblwiLFxuXHRcdFx0XHRcdFx0dmFsdWU6IFwie21lc3NhZ2U+ZGVzY3JpcHRpb259XCJcblx0XHRcdFx0XHR9KSxcblx0XHRcdFx0XHRuZXcgQ3VzdG9tRGF0YSh7XG5cdFx0XHRcdFx0XHRrZXk6IFwiZGVzY3JpcHRpb25VcmxcIixcblx0XHRcdFx0XHRcdHZhbHVlOiBcInttZXNzYWdlPmRlc2NyaXB0aW9uVXJsfVwiXG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0bmV3IEN1c3RvbURhdGEoe1xuXHRcdFx0XHRcdFx0a2V5OiBcImNvZGVcIixcblx0XHRcdFx0XHRcdHZhbHVlOiBcInttZXNzYWdlPmNvZGV9XCJcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRdLFxuXHRcdFx0XHRwcmVzczogYXN5bmMgZnVuY3Rpb24gKHRoaXM6IExpbmspOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0YXdhaXQgZW52aXJvbm1lbnRTZXJ2aWNlLnByZXBhcmVGZWF0dXJlKFwiRXJyb3JFeHBsYW5hdGlvblwiKTtcblx0XHRcdFx0XHRcdGNvbnN0IHsgZXhwbGFpbiB9ID0gYXdhaXQgaW1wb3J0KFwidXgvZW5nL2Zpb3JpYWkvcmV1c2UvZXJyb3JFeHBsYW5hdGlvbi9FcnJvckV4cGxhbmF0aW9uXCIpO1xuXG5cdFx0XHRcdFx0XHRjb25zdCByZWdpc3RyYXRpb25JZHMgPSBhcHBDb21wb25lbnQuZ2V0TWFuaWZlc3RFbnRyeShcInNhcC5maW9yaVwiKT8ucmVnaXN0cmF0aW9uSWRzO1xuXHRcdFx0XHRcdFx0Y29uc3QgcmVnaXN0cmF0aW9uSWRzU3RyaW5nID0gcmVnaXN0cmF0aW9uSWRzICYmIHJlZ2lzdHJhdGlvbklkcy5sZW5ndGggPiAwID8gcmVnaXN0cmF0aW9uSWRzLmpvaW4oXCIsXCIpIDogXCJcIjtcblx0XHRcdFx0XHRcdGNvbnN0IGVycm9yRXhwbGFuYXRpb25NZXRhZGF0YTogdHlwZW9mIEVycm9yRXhwbGFuYXRpb25NZXRhZGF0YSA9IHtcblx0XHRcdFx0XHRcdFx0dmVyc2lvbjogMSxcblx0XHRcdFx0XHRcdFx0ZmlvcmlJZDogcmVnaXN0cmF0aW9uSWRzU3RyaW5nLFxuXHRcdFx0XHRcdFx0XHRhcHBOYW1lOiBhcHBDb21wb25lbnQuZ2V0TWFuaWZlc3RFbnRyeShcInNhcC5hcHBcIik/LnRpdGxlIHx8IHVuZGVmaW5lZCxcblx0XHRcdFx0XHRcdFx0Y29tcG9uZW50TmFtZTogYXBwQ29tcG9uZW50LmdldE1hbmlmZXN0RW50cnkoXCJzYXAuYXBwXCIpPy5pZCB8fCB1bmRlZmluZWRcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRjb25zdCBlcnJvckV4cGxhbmF0aW9uRGF0YTogdHlwZW9mIEVycm9yRXhwbGFuYXRpb25EYXRhID0ge1xuXHRcdFx0XHRcdFx0XHR2ZXJzaW9uOiAxLFxuXHRcdFx0XHRcdFx0XHRtZXNzYWdlOiB0aGlzLmRhdGEoXCJtZXNzYWdlXCIpLFxuXHRcdFx0XHRcdFx0XHRjb2RlOiB0aGlzLmRhdGEoXCJjb2RlXCIpLFxuXHRcdFx0XHRcdFx0XHRkZXNjcmlwdGlvbjogdGhpcy5kYXRhKFwiZGVzY3JpcHRpb25cIiksXG5cdFx0XHRcdFx0XHRcdGRlc2NyaXB0aW9uVXJsOiB0aGlzLmRhdGEoXCJkZXNjcmlwdGlvblVybFwiKVxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdGF3YWl0IGV4cGxhaW4oZXJyb3JFeHBsYW5hdGlvbk1ldGFkYXRhLCBlcnJvckV4cGxhbmF0aW9uRGF0YSk7XG5cdFx0XHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIGV4cGxhbmF0aW9uIGZhaWxlZFwiLCBlcnJvciBhcyBFcnJvcik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdEZFU1JIZWxwZXIuc2V0U2VtYW50aWNTdGVwbmFtZShsaW5rLCBcInByZXNzXCIsIFwiZmU0OmVlOmV4cGxhaW5cIik7XG5cdFx0XHRyZXR1cm4gbGluaztcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZlTWVzc2FnZVBvcG92ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFhTUEsZ0JBQWdCLElBQUFDLElBQUEsR0FEckJDLGNBQWMsQ0FBQyx1Q0FBdUMsQ0FBQyxFQUFBRCxJQUFBLENBQUFFLE1BQUEsMEJBQUFDLGVBQUE7SUFBQSxTQUFBSixpQkFBQTtNQUFBLE9BQUFJLGVBQUEsQ0FBQUMsS0FBQSxPQUFBQyxTQUFBO0lBQUE7SUFBQUMsY0FBQSxDQUFBUCxnQkFBQSxFQUFBSSxlQUFBO0lBQUEsSUFBQUksTUFBQSxHQUFBUixnQkFBQSxDQUFBUyxTQUFBO0lBQUFELE1BQUEsQ0FFdkRFLElBQUksR0FBSixTQUFBQSxJQUFJQSxDQUFBLEVBQVM7TUFDWkMsY0FBYyxD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
|
|
111
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGZU1lc3NhZ2VQb3BvdmVyIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2NsYXNzIiwiX01lc3NhZ2VQb3BvdmVyIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsImluaXQiLCJNZXNzYWdlUG9wb3ZlciIsInNldE1vZGVsIiwiTWVzc2FnaW5nIiwiZ2V0TWVzc2FnZU1vZGVsIiwiYmluZEFnZ3JlZ2F0aW9uIiwicGF0aCIsImxlbmd0aCIsInRlbXBsYXRlIiwiTWVzc2FnZUl0ZW0iLCJ0eXBlIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsIm1hcmt1cERlc2NyaXB0aW9uIiwibG9uZ3RleHRVcmwiLCJzdWJ0aXRsZSIsImFjdGl2ZVRpdGxlIiwibGluayIsImdldExpbmtGb3JFcnJvckV4cGxhbmF0aW9uIiwidW5kZWZpbmVkIiwic2V0R3JvdXBJdGVtcyIsIm1lc3NhZ2VQb3BvdmVySW5zdGFuY2UiLCJhcHBDb21wb25lbnQiLCJDb21tb25VdGlscyIsImdldEFwcENvbXBvbmVudCIsImVudmlyb25tZW50U2VydmljZSIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwiZW52aXJvbm1lbnRDYXBhYmlsaXRpZXMiLCJFcnJvckV4cGxhbmF0aW9uIiwiTGluayIsInRleHQiLCJMaWJyYXJ5IiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJnZXRUZXh0IiwiaWNvbiIsImN1c3RvbURhdGEiLCJDdXN0b21EYXRhIiwia2V5IiwidmFsdWUiLCJwcmVzcyIsInByZXBhcmVGZWF0dXJlIiwiZXhwbGFpbiIsIl9fdWk1X3JlcXVpcmVfYXN5bmMiLCJyZWdpc3RyYXRpb25JZHMiLCJnZXRNYW5pZmVzdEVudHJ5IiwicmVnaXN0cmF0aW9uSWRzU3RyaW5nIiwiam9pbiIsImVycm9yRXhwbGFuYXRpb25NZXRhZGF0YSIsInZlcnNpb24iLCJmaW9yaUlkIiwiYXBwTmFtZSIsImNvbXBvbmVudE5hbWUiLCJpZCIsImVycm9yRXhwbGFuYXRpb25EYXRhIiwibWVzc2FnZSIsImRhdGEiLCJjb2RlIiwiZGVzY3JpcHRpb25VcmwiLCJlcnJvciIsIkxvZyIsIkZFU1JIZWxwZXIiLCJzZXRTZW1hbnRpY1N0ZXBuYW1lIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJNZXNzYWdlUG9wb3Zlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IExpbmsgZnJvbSBcInNhcC9tL0xpbmtcIjtcbmltcG9ydCBNZXNzYWdlSXRlbSBmcm9tIFwic2FwL20vTWVzc2FnZUl0ZW1cIjtcbmltcG9ydCBNZXNzYWdlUG9wb3ZlciBmcm9tIFwic2FwL20vTWVzc2FnZVBvcG92ZXJcIjtcbmltcG9ydCBDdXN0b21EYXRhIGZyb20gXCJzYXAvdWkvY29yZS9DdXN0b21EYXRhXCI7XG5pbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgTWVzc2FnaW5nIGZyb20gXCJzYXAvdWkvY29yZS9NZXNzYWdpbmdcIjtcbmltcG9ydCBGRVNSSGVscGVyIGZyb20gXCJzYXAvdWkvcGVyZm9ybWFuY2UvdHJhY2UvRkVTUkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBFcnJvckV4cGxhbmF0aW9uRGF0YSwgRXJyb3JFeHBsYW5hdGlvbk1ldGFkYXRhIH0gZnJvbSBcInV4L2VuZy9maW9yaWFpL3JldXNlL2Vycm9yZXhwbGFuYXRpb24vRXJyb3JFeHBsYW5hdGlvblwiO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLm1lc3NhZ2VzLk1lc3NhZ2VQb3BvdmVyXCIpXG5jbGFzcyBGZU1lc3NhZ2VQb3BvdmVyIGV4dGVuZHMgTWVzc2FnZVBvcG92ZXIge1xuXHRpbml0KCk6IHZvaWQge1xuXHRcdE1lc3NhZ2VQb3BvdmVyLnByb3RvdHlwZS5pbml0LmFwcGx5KHRoaXMpO1xuXHRcdHRoaXMuc2V0TW9kZWwoTWVzc2FnaW5nLmdldE1lc3NhZ2VNb2RlbCgpLCBcIm1lc3NhZ2VcIik7XG5cblx0XHR0aGlzLmJpbmRBZ2dyZWdhdGlvbihcIml0ZW1zXCIsIHtcblx0XHRcdHBhdGg6IFwibWVzc2FnZT4vXCIsXG5cdFx0XHRsZW5ndGg6IDk5OTksXG5cdFx0XHR0ZW1wbGF0ZTogbmV3IE1lc3NhZ2VJdGVtKHtcblx0XHRcdFx0dHlwZTogXCJ7bWVzc2FnZT50eXBlfVwiLFxuXHRcdFx0XHR0aXRsZTogXCJ7bWVzc2FnZT5tZXNzYWdlfVwiLFxuXHRcdFx0XHRkZXNjcmlwdGlvbjogXCJ7bWVzc2FnZT5kZXNjcmlwdGlvbn1cIixcblx0XHRcdFx0bWFya3VwRGVzY3JpcHRpb246IHRydWUsXG5cdFx0XHRcdGxvbmd0ZXh0VXJsOiBcInttZXNzYWdlPmRlc2NyaXB0aW9uVXJsfVwiLFxuXHRcdFx0XHRzdWJ0aXRsZTogXCJ7bWVzc2FnZT5hZGRpdGlvbmFsVGV4dH1cIixcblx0XHRcdFx0YWN0aXZlVGl0bGU6IFwiez0gJHttZXNzYWdlPmNvbnRyb2xJZHN9Lmxlbmd0aCA+IDAgPyB0cnVlIDogZmFsc2V9XCIsXG5cdFx0XHRcdGxpbms6IHRoaXMuZ2V0TGlua0ZvckVycm9yRXhwbGFuYXRpb24odGhpcykgfHwgdW5kZWZpbmVkXG5cdFx0XHR9KVxuXHRcdH0pO1xuXHRcdHRoaXMuc2V0R3JvdXBJdGVtcyh0cnVlKTtcblx0fVxuXG5cdGdldExpbmtGb3JFcnJvckV4cGxhbmF0aW9uKG1lc3NhZ2VQb3BvdmVySW5zdGFuY2U6IE1lc3NhZ2VQb3BvdmVyKTogTGluayB8IG51bGwge1xuXHRcdGNvbnN0IGFwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudChtZXNzYWdlUG9wb3Zlckluc3RhbmNlKTtcblx0XHRjb25zdCBlbnZpcm9ubWVudFNlcnZpY2UgPSBhcHBDb21wb25lbnQuZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKTtcblx0XHRpZiAoZW52aXJvbm1lbnRTZXJ2aWNlLmVudmlyb25tZW50Q2FwYWJpbGl0aWVzLkVycm9yRXhwbGFuYXRpb24pIHtcblx0XHRcdGNvbnN0IGxpbmsgPSBuZXcgTGluayh7XG5cdFx0XHRcdHRleHQ6IExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUubWFjcm9zXCIpIS5nZXRUZXh0KFwiQ19HRU5FUkFURV9FWFBMQU5BVElPTlwiKSxcblx0XHRcdFx0aWNvbjogXCJzYXAtaWNvbjovL2FpXCIsXG5cdFx0XHRcdGN1c3RvbURhdGE6IFtcblx0XHRcdFx0XHRuZXcgQ3VzdG9tRGF0YSh7XG5cdFx0XHRcdFx0XHRrZXk6IFwibWVzc2FnZVwiLFxuXHRcdFx0XHRcdFx0dmFsdWU6IFwie21lc3NhZ2U+bWVzc2FnZX1cIlxuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdG5ldyBDdXN0b21EYXRhKHtcblx0XHRcdFx0XHRcdGtleTogXCJkZXNjcmlwdGlvblwiLFxuXHRcdFx0XHRcdFx0dmFsdWU6IFwie21lc3NhZ2U+ZGVzY3JpcHRpb259XCJcblx0XHRcdFx0XHR9KSxcblx0XHRcdFx0XHRuZXcgQ3VzdG9tRGF0YSh7XG5cdFx0XHRcdFx0XHRrZXk6IFwiZGVzY3JpcHRpb25VcmxcIixcblx0XHRcdFx0XHRcdHZhbHVlOiBcInttZXNzYWdlPmRlc2NyaXB0aW9uVXJsfVwiXG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0bmV3IEN1c3RvbURhdGEoe1xuXHRcdFx0XHRcdFx0a2V5OiBcImNvZGVcIixcblx0XHRcdFx0XHRcdHZhbHVlOiBcInttZXNzYWdlPmNvZGV9XCJcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRdLFxuXHRcdFx0XHRwcmVzczogYXN5bmMgZnVuY3Rpb24gKHRoaXM6IExpbmspOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0YXdhaXQgZW52aXJvbm1lbnRTZXJ2aWNlLnByZXBhcmVGZWF0dXJlKFwiRXJyb3JFeHBsYW5hdGlvblwiKTtcblx0XHRcdFx0XHRcdGNvbnN0IHsgZXhwbGFpbiB9ID0gYXdhaXQgaW1wb3J0KFwidXgvZW5nL2Zpb3JpYWkvcmV1c2UvZXJyb3JleHBsYW5hdGlvbi9FcnJvckV4cGxhbmF0aW9uXCIpO1xuXG5cdFx0XHRcdFx0XHRjb25zdCByZWdpc3RyYXRpb25JZHMgPSBhcHBDb21wb25lbnQuZ2V0TWFuaWZlc3RFbnRyeShcInNhcC5maW9yaVwiKT8ucmVnaXN0cmF0aW9uSWRzO1xuXHRcdFx0XHRcdFx0Y29uc3QgcmVnaXN0cmF0aW9uSWRzU3RyaW5nID0gcmVnaXN0cmF0aW9uSWRzICYmIHJlZ2lzdHJhdGlvbklkcy5sZW5ndGggPiAwID8gcmVnaXN0cmF0aW9uSWRzLmpvaW4oXCIsXCIpIDogXCJcIjtcblx0XHRcdFx0XHRcdGNvbnN0IGVycm9yRXhwbGFuYXRpb25NZXRhZGF0YTogRXJyb3JFeHBsYW5hdGlvbk1ldGFkYXRhID0ge1xuXHRcdFx0XHRcdFx0XHR2ZXJzaW9uOiAxLFxuXHRcdFx0XHRcdFx0XHRmaW9yaUlkOiByZWdpc3RyYXRpb25JZHNTdHJpbmcsXG5cdFx0XHRcdFx0XHRcdGFwcE5hbWU6IGFwcENvbXBvbmVudC5nZXRNYW5pZmVzdEVudHJ5KFwic2FwLmFwcFwiKT8udGl0bGUgfHwgdW5kZWZpbmVkLFxuXHRcdFx0XHRcdFx0XHRjb21wb25lbnROYW1lOiBhcHBDb21wb25lbnQuZ2V0TWFuaWZlc3RFbnRyeShcInNhcC5hcHBcIik/LmlkIHx8IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdGNvbnN0IGVycm9yRXhwbGFuYXRpb25EYXRhOiBFcnJvckV4cGxhbmF0aW9uRGF0YSA9IHtcblx0XHRcdFx0XHRcdFx0dmVyc2lvbjogMSxcblx0XHRcdFx0XHRcdFx0bWVzc2FnZTogdGhpcy5kYXRhKFwibWVzc2FnZVwiKSxcblx0XHRcdFx0XHRcdFx0Y29kZTogdGhpcy5kYXRhKFwiY29kZVwiKSxcblx0XHRcdFx0XHRcdFx0ZGVzY3JpcHRpb246IHRoaXMuZGF0YShcImRlc2NyaXB0aW9uXCIpLFxuXHRcdFx0XHRcdFx0XHRkZXNjcmlwdGlvblVybDogdGhpcy5kYXRhKFwiZGVzY3JpcHRpb25VcmxcIilcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRhd2FpdCBleHBsYWluKGVycm9yRXhwbGFuYXRpb25NZXRhZGF0YSwgZXJyb3JFeHBsYW5hdGlvbkRhdGEpO1xuXHRcdFx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRcdFx0XHRMb2cuZXJyb3IoXCJFcnJvciBleHBsYW5hdGlvbiBmYWlsZWRcIiwgZXJyb3IgYXMgRXJyb3IpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRGRVNSSGVscGVyLnNldFNlbWFudGljU3RlcG5hbWUobGluaywgXCJwcmVzc1wiLCBcImZlNDplZTpleHBsYWluXCIpO1xuXHRcdFx0cmV0dXJuIGxpbms7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBGZU1lc3NhZ2VQb3BvdmVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BYU1BLGdCQUFnQixJQUFBQyxJQUFBLEdBRHJCQyxjQUFjLENBQUMsdUNBQXVDLENBQUMsRUFBQUQsSUFBQSxDQUFBRSxNQUFBLDBCQUFBQyxlQUFBO0lBQUEsU0FBQUosaUJBQUE7TUFBQSxPQUFBSSxlQUFBLENBQUFDLEtBQUEsT0FBQUMsU0FBQTtJQUFBO0lBQUFDLGNBQUEsQ0FBQVAsZ0JBQUEsRUFBQUksZUFBQTtJQUFBLElBQUFJLE1BQUEsR0FBQVIsZ0JBQUEsQ0FBQVMsU0FBQTtJQUFBRCxNQUFBLENBRXZERSxJQUFJLEdBQUosU0FBQUEsSUFBSUEsQ0FBQSxFQUFTO01BQ1pDLGNBQWMsQ0FBQ0YsU0FBUyxDQUFD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
|
|
@@ -8,7 +8,7 @@ import CustomData from "sap/ui/core/CustomData";
|
|
|
8
8
|
import Library from "sap/ui/core/Lib";
|
|
9
9
|
import Messaging from "sap/ui/core/Messaging";
|
|
10
10
|
import FESRHelper from "sap/ui/performance/trace/FESRHelper";
|
|
11
|
-
import type { ErrorExplanationData, ErrorExplanationMetadata } from "ux/eng/fioriai/reuse/
|
|
11
|
+
import type { ErrorExplanationData, ErrorExplanationMetadata } from "ux/eng/fioriai/reuse/errorexplanation/ErrorExplanation";
|
|
12
12
|
|
|
13
13
|
@defineUI5Class("sap.fe.macros.messages.MessagePopover")
|
|
14
14
|
class FeMessagePopover extends MessagePopover {
|
|
@@ -61,17 +61,17 @@ class FeMessagePopover extends MessagePopover {
|
|
|
61
61
|
press: async function (this: Link): Promise<void> {
|
|
62
62
|
try {
|
|
63
63
|
await environmentService.prepareFeature("ErrorExplanation");
|
|
64
|
-
const { explain } = await import("ux/eng/fioriai/reuse/
|
|
64
|
+
const { explain } = await import("ux/eng/fioriai/reuse/errorexplanation/ErrorExplanation");
|
|
65
65
|
|
|
66
66
|
const registrationIds = appComponent.getManifestEntry("sap.fiori")?.registrationIds;
|
|
67
67
|
const registrationIdsString = registrationIds && registrationIds.length > 0 ? registrationIds.join(",") : "";
|
|
68
|
-
const errorExplanationMetadata:
|
|
68
|
+
const errorExplanationMetadata: ErrorExplanationMetadata = {
|
|
69
69
|
version: 1,
|
|
70
70
|
fioriId: registrationIdsString,
|
|
71
71
|
appName: appComponent.getManifestEntry("sap.app")?.title || undefined,
|
|
72
72
|
componentName: appComponent.getManifestEntry("sap.app")?.id || undefined
|
|
73
73
|
};
|
|
74
|
-
const errorExplanationData:
|
|
74
|
+
const errorExplanationData: ErrorExplanationData = {
|
|
75
75
|
version: 1,
|
|
76
76
|
message: this.data("message"),
|
|
77
77
|
code: this.data("code"),
|
|
@@ -23,7 +23,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/m/FlexBox", "sap
|
|
|
23
23
|
/**
|
|
24
24
|
* Container Control for Micro Chart and UoM.
|
|
25
25
|
* @private
|
|
26
|
-
* @experimental This module is only for internal/experimental use!
|
|
27
26
|
*/
|
|
28
27
|
let MicroChartContainer = (_dec = defineUI5Class("sap.fe.macros.microchart.MicroChartContainer"), _dec2 = property({
|
|
29
28
|
type: "boolean",
|
|
@@ -525,4 +524,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/m/FlexBox", "sap
|
|
|
525
524
|
}), _class2)) || _class);
|
|
526
525
|
return MicroChartContainer;
|
|
527
526
|
}, false);
|
|
528
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWYWx1ZUNvbG9yIiwibW9iaWxlbGlicmFyeSIsIk1pY3JvQ2hhcnRDb250YWluZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsIl9kZWMzIiwidW5kZWZpbmVkIiwiX2RlYzQiLCJfZGVjNSIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiX2RlYzEwIiwiX2RlYzExIiwiX2RlYzEyIiwiX2RlYzEzIiwiZXZlbnQiLCJfZGVjMTQiLCJhZ2dyZWdhdGlvbiIsIm11bHRpcGxlIiwiaXNEZWZhdWx0IiwiX2RlYzE1IiwiX2RlYzE2IiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9Db250cm9sIiwiaWQiLCJzZXR0aW5ncyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZGVzY3JpcHRvcjkiLCJfZGVzY3JpcHRvcjEwIiwiX2Rlc2NyaXB0b3IxMSIsIl9kZXNjcmlwdG9yMTIiLCJfZGVzY3JpcHRvcjEzIiwiX2Rlc2NyaXB0b3IxNCIsIl9kZXNjcmlwdG9yMTUiLCJfaW5oZXJpdHNMb29zZSIsInJlbmRlciIsInJlbmRlck1hbmFnZXIiLCJjb250cm9sIiwib3BlblN0YXJ0Iiwib3BlbkVuZCIsInNob3dPbmx5Q2hhcnQiLCJjaGFydFRpdGxlIiwibWljcm9DaGFydFRpdGxlIiwiZm9yRWFjaCIsInN1YkNoYXJ0VGl0bGUiLCJyZW5kZXJDb250cm9sIiwiY2xvc2UiLCJjaGFydERlc2NyaXB0aW9uIiwiTGFiZWwiLCJ0ZXh0IiwibWljcm9DaGFydCIsImFkZFN0eWxlQ2xhc3MiLCJ1b21QYXRoIiwiX2NoZWNrSWZDaGFydFJlcXVpcmVzUnVudGltZUxhYmVscyIsInBhdGgiLCJsYWJlbCIsImZsZXhCb3giLCJGbGV4Qm94IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiaXRlbXMiLCJzZXRBZ2dyZWdhdGlvbiIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uQmVmb3JlUmVuZGVyaW5nIiwiYmluZGluZyIsIl9nZXRMaXN0QmluZGluZ0ZvclJ1bnRpbWVMYWJlbHMiLCJkZXRhY2hFdmVudCIsIl9zZXRSdW50aW1lQ2hhcnRMYWJlbHNBbmRVbml0T2ZNZWFzdXJlIiwiX29saXN0QmluZGluZyIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJhdHRhY2hFdmVudCIsInNldFNob3dPbmx5Q2hhcnQiLCJ2YWx1ZSIsIl9zZXRDaGFydExhYmVscyIsInNldFByb3BlcnR5IiwiQm9vbGVhbiIsImlzQSIsIl9jaGVja0ZvckNoYXJ0TGFiZWxBZ2dyZWdhdGlvbnMiLCJnZXRBZ2dyZWdhdGlvbiIsImNoYXJ0IiwiZ2V0Q2hhcnQiLCJnZXRCaW5kaW5nIiwibGluZXMiLCJnZXRMaW5lcyIsImxlbmd0aCIsIk9EYXRhVjRMaXN0QmluZGluZyIsImxpc3RCaW5kaW5nIiwiY29udGV4dHMiLCJnZXRDb250ZXh0cyIsIm1lYXN1cmVzIiwiZGltZW5zaW9uIiwidW5pdE9mTWVhc3VyZVBhdGgiLCJ1bml0T2ZNZWFzdXJlTGFiZWwiLCJfdW9tTGFiZWwiLCJ1b21MYWJlbCIsInJlcXVlc3RQcm9wZXJ0eSIsInNldFRleHQiLCJmaXJzdENvbnRleHQiLCJsYXN0Q29udGV4dCIsImxpbmVzUG9taXNlcyIsImxpbmVDaGFydCIsImN1cnJlbnRNaW5YIiwiY3VycmVudE1heFgiLCJjdXJyZW50TWluWSIsImN1cnJlbnRNYXhZIiwibWluWCIsIkluZmluaXR5IiwibWF4WCIsIm1pblkiLCJtYXhZIiwiY29udGV4dCIsImkiLCJtZWFzdXJlIiwiaW5kZXgiLCJwdXNoIiwiX2dldENyaXRpY2FsaXR5RnJvbVBvaW50IiwiY29sb3JzIiwiUHJvbWlzZSIsImFsbCIsImxpbmUiLCJzZXRDb2xvciIsIl9zZXRDaGFydExhYmVsc0NvbG9ycyIsImNyaXRpY2FsaXR5IiwibGVmdFRvcCIsInJpZ2h0VG9wIiwibGVmdEJvdHRvbSIsInJpZ2h0Qm90dG9tIiwiX2Zvcm1hdERhdGVBbmROdW1iZXJWYWx1ZSIsIm1lYXN1cmVQcmVjaXNpb24iLCJtZWFzdXJlU2NhbGUiLCJkaW1lbnNpb25QcmVjaXNpb24iLCJjYWxlbmRhclBhdHRlcm4iLCJwb2ludCIsIm1ldGFNb2RlbCIsImdldE1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwiZGF0YVBvaW50UXVhbGlmaWVycyIsIm1ldGFQYXRoIiwiT0RhdGFNZXRhTW9kZWwiLCJnZXRQYXRoIiwiZ2V0TWV0YVBhdGgiLCJkYXRhUG9pbnQiLCJyZXF1ZXN0T2JqZWN0IiwiTmV1dHJhbCIsIkNyaXRpY2FsaXR5IiwiX2NyaXRpY2FsaXR5IiwiQ3JpdGljYWxpdHlDYWxjdWxhdGlvbiIsImNyaXRpY2FsaXR5Q2FsY3VsYXRpb24iLCJnZXRWYWx1ZSIsInZhbHVlUHJvcGVydHkiLCJ2YWx1ZVJlc3BvbnNlIiwiJFBhdGgiLCJnZXRPYmplY3QiLCJoYXNPd25Qcm9wZXJ0eSIsIiREZWNpbWFsIiwiX2NyaXRpY2FsaXR5Q2FsY3VsYXRpb24iLCJJbXByb3ZlbWVudERpcmVjdGlvbiIsIiRFbnVtTWVtYmVyIiwiRGV2aWF0aW9uUmFuZ2VMb3dWYWx1ZSIsIlRvbGVyYW5jZVJhbmdlTG93VmFsdWUiLCJBY2NlcHRhbmNlUmFuZ2VMb3dWYWx1ZSIsIkFjY2VwdGFuY2VSYW5nZUhpZ2hWYWx1ZSIsIlRvbGVyYW5jZVJhbmdlSGlnaFZhbHVlIiwiRGV2aWF0aW9uUmFuZ2VIaWdoVmFsdWUiLCJyZXNvbHZlIiwiY3JpdGljYWxpdHlWYWx1ZSIsInJlc3VsdCIsInRvU3RyaW5nIiwiRXJyb3IiLCJDcml0aWNhbCIsIkdvb2QiLCJpbmNsdWRlcyIsIkxvZyIsIndhcm5pbmciLCJpbXByb3ZlbWVudERpcmVjdGlvbiIsImRldmlhdGlvbkxvdyIsInRvbGVyYW5jZUxvdyIsImFjY2VwdGFuY2VMb3ciLCJhY2NlcHRhbmNlSGlnaCIsInRvbGVyYW5jZUhpZ2giLCJkZXZpYXRpb25IaWdoIiwicHJlY2lzaW9uIiwic2NhbGUiLCJwYXR0ZXJuIiwiX2dldFNlbWFudGljc1ZhbHVlRm9ybWF0dGVyIiwiZm9ybWF0VmFsdWUiLCJpc05hTiIsIl9nZXRMYWJlbE51bWJlckZvcm1hdHRlciIsImZvcm1hdCIsIl9vRGF0ZVR5cGUiLCJEYXRlVHlwZSIsInN0eWxlIiwic291cmNlIiwiTnVtYmVyRm9ybWF0IiwiZ2V0RmxvYXRJbnN0YW5jZSIsInNob3dTY2FsZSIsImRlY2ltYWxzIiwiZ2V0QWNjZXNzaWJpbGl0eUluZm8iLCJDb250cm9sIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJNaWNyb0NoYXJ0Q29udGFpbmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVJQW5ub3RhdGlvblRlcm1zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnRpZXNPZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IGFnZ3JlZ2F0aW9uLGRlZmluZVVJNUNsYXNzLGV2ZW50LHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEZsZXhCb3ggZnJvbSBcInNhcC9tL0ZsZXhCb3hcIjtcbmltcG9ydCBMYWJlbCBmcm9tIFwic2FwL20vTGFiZWxcIjtcbmltcG9ydCBtb2JpbGVsaWJyYXJ5IGZyb20gXCJzYXAvbS9saWJyYXJ5XCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlc3RyaWN0ZWQtaW1wb3J0c1xuaW1wb3J0IHR5cGUgQXJlYU1pY3JvQ2hhcnQgZnJvbSBcInNhcC9zdWl0ZS91aS9taWNyb2NoYXJ0L0FyZWFNaWNyb0NoYXJ0XCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlc3RyaWN0ZWQtaW1wb3J0c1xuaW1wb3J0IHR5cGUgQ29sdW1uTWljcm9DaGFydCBmcm9tIFwic2FwL3N1aXRlL3VpL21pY3JvY2hhcnQvQ29sdW1uTWljcm9DaGFydFwiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXN0cmljdGVkLWltcG9ydHNcbmltcG9ydCB0eXBlIENvbXBhcmlzb25NaWNyb0NoYXJ0IGZyb20gXCJzYXAvc3VpdGUvdWkvbWljcm9jaGFydC9Db21wYXJpc29uTWljcm9DaGFydFwiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXN0cmljdGVkLWltcG9ydHNcbmltcG9ydCB0eXBlIExpbmVNaWNyb0NoYXJ0IGZyb20gXCJzYXAvc3VpdGUvdWkvbWljcm9jaGFydC9MaW5lTWljcm9DaGFydFwiO1xuaW1wb3J0IHR5cGUgTGluZU1pY3JvQ2hhcnRMaW5lIGZyb20gXCJzYXAvc3VpdGUvdWkvbWljcm9jaGFydC9MaW5lTWljcm9DaGFydExpbmVcIjtcbmltcG9ydCB0eXBlIE1hbmFnZWRPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCB0eXBlIHsgJENvbnRyb2xTZXR0aW5ncyB9IGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IE51bWJlckZvcm1hdCBmcm9tIFwic2FwL3VpL2NvcmUvZm9ybWF0L051bWJlckZvcm1hdFwiO1xuaW1wb3J0IHR5cGUgeyBBY2Nlc3NpYmlsaXR5SW5mbyB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBSZW5kZXJNYW5hZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9SZW5kZXJNYW5hZ2VyXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuaW1wb3J0IE9EYXRhVjRMaXN0QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcbmltcG9ydCBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuaW1wb3J0IERhdGVUeXBlIGZyb20gXCJzYXAvdWkvbW9kZWwvdHlwZS9EYXRlXCI7XG5cbmNvbnN0IFZhbHVlQ29sb3IgPSBtb2JpbGVsaWJyYXJ5LlZhbHVlQ29sb3I7XG50eXBlIERhdGFQb2ludFZhbHVlVHlwZSA9IHtcblx0dmFsdWU6IG51bWJlcjtcblx0Y29udGV4dD86IENvbnRleHQ7XG5cdGluZGV4PzogbnVtYmVyO1xufTtcbi8qKlxuICogIENvbnRhaW5lciBDb250cm9sIGZvciBNaWNybyBDaGFydCBhbmQgVW9NLlxuICogQHByaXZhdGVcbiAqIEBleHBlcmltZW50YWwgVGhpcyBtb2R1bGUgaXMgb25seSBmb3IgaW50ZXJuYWwvZXhwZXJpbWVudGFsIHVzZSFcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5taWNyb2NoYXJ0Lk1pY3JvQ2hhcnRDb250YWluZXJcIilcbmNsYXNzIE1pY3JvQ2hhcnRDb250YWluZXIgZXh0ZW5kcyBDb250cm9sIHtcblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIixcblx0XHRkZWZhdWx0VmFsdWU6IGZhbHNlXG5cdH0pXG5cdHNob3dPbmx5Q2hhcnQhOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZFxuXHR9KVxuXHR1b21QYXRoITogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdbXVwiLFxuXHRcdGRlZmF1bHRWYWx1ZTogW11cblx0fSlcblx0bWVhc3VyZXMhOiBzdHJpbmdbXTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0ZGVmYXVsdFZhbHVlOiB1bmRlZmluZWRcblx0fSlcblx0ZGltZW5zaW9uPzogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdbXVwiLFxuXHRcdGRlZmF1bHRWYWx1ZTogW11cblx0fSlcblx0ZGF0YVBvaW50UXVhbGlmaWVycyE6IHN0cmluZ1tdO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJpbnRcIixcblx0XHRkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZFxuXHR9KVxuXHRtZWFzdXJlUHJlY2lzaW9uITogbnVtYmVyO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJpbnRcIixcblx0XHRkZWZhdWx0VmFsdWU6IDFcblx0fSlcblx0bWVhc3VyZVNjYWxlITogbnVtYmVyO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJpbnRcIixcblx0XHRkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZFxuXHR9KVxuXHRkaW1lbnNpb25QcmVjaXNpb24/OiBudW1iZXI7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdGRlZmF1bHRWYWx1ZTogXCJcIlxuXHR9KVxuXHRjaGFydFRpdGxlITogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRkZWZhdWx0VmFsdWU6IFwiXCJcblx0fSlcblx0Y2hhcnREZXNjcmlwdGlvbiE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0ZGVmYXVsdFZhbHVlOiBcIlwiXG5cdH0pXG5cdGNhbGVuZGFyUGF0dGVybiE6IHN0cmluZztcblxuXHRAZXZlbnQoKVxuXHRvblRpdGxlUHJlc3NlZCE6IEZ1bmN0aW9uO1xuXG5cdEBhZ2dyZWdhdGlvbih7XG5cdFx0dHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsXG5cdFx0bXVsdGlwbGU6IGZhbHNlLFxuXHRcdGlzRGVmYXVsdDogdHJ1ZVxuXHR9KVxuXHRtaWNyb0NoYXJ0ITogQ29udHJvbDtcblxuXHRAYWdncmVnYXRpb24oe1xuXHRcdHR5cGU6IFwic2FwLm0uTGFiZWxcIixcblx0XHRtdWx0aXBsZTogZmFsc2Vcblx0fSlcblx0X3VvbUxhYmVsITogTGFiZWw7XG5cblx0QGFnZ3JlZ2F0aW9uKHtcblx0XHR0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIixcblx0XHRtdWx0aXBsZTogdHJ1ZVxuXHR9KVxuXHRtaWNyb0NoYXJ0VGl0bGUhOiBDb250cm9sW107XG5cblx0cHJpdmF0ZSBfb2xpc3RCaW5kaW5nPzogT0RhdGFWNExpc3RCaW5kaW5nO1xuXG5cdHByaXZhdGUgX29EYXRlVHlwZT86IERhdGVUeXBlO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdGlkPzogc3RyaW5nIHwgdW5kZWZpbmVkIHwgKFByb3BlcnRpZXNPZjxNaWNyb0NoYXJ0Q29udGFpbmVyPiAmICRDb250cm9sU2V0dGluZ3MpLFxuXHRcdHNldHRpbmdzPzogJENvbnRyb2xTZXR0aW5ncyAmIFByb3BlcnRpZXNPZjxNaWNyb0NoYXJ0Q29udGFpbmVyPlxuXHQpIHtcblx0XHRzdXBlcihpZCBhcyBzdHJpbmcsIHNldHRpbmdzKTtcblx0fVxuXG5cdHN0YXRpYyByZW5kZXIocmVuZGVyTWFuYWdlcjogUmVuZGVyTWFuYWdlciwgY29udHJvbDogTWljcm9DaGFydENvbnRhaW5lcik6IHZvaWQge1xuXHRcdHJlbmRlck1hbmFnZXIub3BlblN0YXJ0KFwiZGl2XCIsIGNvbnRyb2wpO1xuXHRcdHJlbmRlck1hbmFnZXIub3BlbkVuZCgpO1xuXHRcdGlmICghY29udHJvbC5zaG93T25seUNoYXJ0KSB7XG5cdFx0XHRjb25zdCBjaGFydFRpdGxlID0gY29udHJvbC5taWNyb0NoYXJ0VGl0bGU7XG5cdFx0XHRpZiAoY2hhcnRUaXRsZSkge1xuXHRcdFx0XHRjaGFydFRpdGxlLmZvckVhY2goZnVuY3Rpb24gKHN1YkNoYXJ0VGl0bGUpIHtcblx0XHRcdFx0XHRyZW5kZXJNYW5hZ2VyLm9wZW5TdGFydChcImRpdlwiKTtcblx0XHRcdFx0XHRyZW5kZXJNYW5hZ2VyLm9wZW5FbmQoKTtcblx0XHRcdFx0XHRyZW5kZXJNYW5hZ2VyLnJlbmRlckNvbnRyb2woc3ViQ2hhcnRUaXRsZSk7XG5cdFx0XHRcdFx0cmVuZGVyTWFuYWdlci5jbG9zZShcImRpdlwiKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRyZW5kZXJNYW5hZ2VyLm9wZW5TdGFydChcImRpdlwiKTtcblx0XHRcdHJlbmRlck1hbmFnZXIub3BlbkVuZCgpO1xuXHRcdFx0Y29uc3QgY2hhcnREZXNjcmlwdGlvbiA9IG5ldyBMYWJlbCh7IHRleHQ6IGNvbnRyb2wuY2hhcnREZXNjcmlwdGlvbiB9KTtcblx0XHRcdHJlbmRlck1hbmFnZXIucmVuZGVyQ29udHJvbChjaGFydERlc2NyaXB0aW9uKTtcblx0XHRcdHJlbmRlck1hbmFnZXIuY2xvc2UoXCJkaXZcIik7XG5cdFx0fVxuXHRcdGNvbnN0IG1pY3JvQ2hhcnQgPSBjb250cm9sLm1pY3JvQ2hhcnQ7XG5cdFx0aWYgKG1pY3JvQ2hhcnQpIHtcblx0XHRcdG1pY3JvQ2hhcnQuYWRkU3R5bGVDbGFzcyhcInNhcFVpVGlueU1hcmdpblRvcEJvdHRvbVwiKTtcblx0XHRcdHJlbmRlck1hbmFnZXIucmVuZGVyQ29udHJvbChtaWNyb0NoYXJ0KTtcblx0XHRcdGlmICghY29udHJvbC5zaG93T25seUNoYXJ0ICYmIGNvbnRyb2wudW9tUGF0aCkge1xuXHRcdFx0XHRjb25zdCBzZXR0aW5ncyA9IGNvbnRyb2wuX2NoZWNrSWZDaGFydFJlcXVpcmVzUnVudGltZUxhYmVscygpID8gdW5kZWZpbmVkIDogeyB0ZXh0OiB7IHBhdGg6IGNvbnRyb2wudW9tUGF0aCB9IH0sXG5cdFx0XHRcdFx0bGFiZWwgPSBuZXcgTGFiZWwoc2V0dGluZ3MpLFxuXHRcdFx0XHRcdGZsZXhCb3ggPSBuZXcgRmxleEJveCh7XG5cdFx0XHRcdFx0XHRhbGlnbkl0ZW1zOiBcIlN0YXJ0XCIsXG5cdFx0XHRcdFx0XHRqdXN0aWZ5Q29udGVudDogXCJFbmRcIixcblx0XHRcdFx0XHRcdGl0ZW1zOiBbbGFiZWxdXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdHJlbmRlck1hbmFnZXIucmVuZGVyQ29udHJvbChmbGV4Qm94KTtcblx0XHRcdFx0Y29udHJvbC5zZXRBZ2dyZWdhdGlvbihcIl91b21MYWJlbFwiLCBsYWJlbCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJlbmRlck1hbmFnZXIuY2xvc2UoXCJkaXZcIik7XG5cdH1cblxuXHRvbkJlZm9yZVJlbmRlcmluZygpOiB2b2lkIHtcblx0XHRjb25zdCBiaW5kaW5nID0gdGhpcy5fZ2V0TGlzdEJpbmRpbmdGb3JSdW50aW1lTGFiZWxzKCk7XG5cblx0XHRpZiAoYmluZGluZykge1xuXHRcdFx0YmluZGluZy5kZXRhY2hFdmVudChcImNoYW5nZVwiLCB0aGlzLl9zZXRSdW50aW1lQ2hhcnRMYWJlbHNBbmRVbml0T2ZNZWFzdXJlLCB0aGlzKTtcblx0XHRcdHRoaXMuX29saXN0QmluZGluZyA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRvbkFmdGVyUmVuZGVyaW5nKCk6IHZvaWQge1xuXHRcdGNvbnN0IGJpbmRpbmcgPSB0aGlzLl9nZXRMaXN0QmluZGluZ0ZvclJ1bnRpbWVMYWJlbHMoKTtcblxuXHRcdGlmICghdGhpcy5fY2hlY2tJZkNoYXJ0UmVxdWlyZXNSdW50aW1lTGFiZWxzKCkpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoYmluZGluZykge1xuXHRcdFx0YmluZGluZy5hdHRhY2hFdmVudChcImNoYW5nZVwiLCB1bmRlZmluZWQsIHRoaXMuX3NldFJ1bnRpbWVDaGFydExhYmVsc0FuZFVuaXRPZk1lYXN1cmUsIHRoaXMpO1xuXHRcdFx0dGhpcy5fb2xpc3RCaW5kaW5nID0gYmluZGluZztcblx0XHR9XG5cdH1cblxuXHRzZXRTaG93T25seUNoYXJ0KHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG5cdFx0aWYgKCF2YWx1ZSAmJiB0aGlzLl9vbGlzdEJpbmRpbmcpIHtcblx0XHRcdHRoaXMuX3NldENoYXJ0TGFiZWxzKCk7XG5cdFx0fVxuXHRcdHRoaXMuc2V0UHJvcGVydHkoXCJzaG93T25seUNoYXJ0XCIsIHZhbHVlLCBmYWxzZSAvKnJlLXJlbmRlcmluZyovKTtcblx0fVxuXG5cdF9jaGVja0lmQ2hhcnRSZXF1aXJlc1J1bnRpbWVMYWJlbHMoKTogYm9vbGVhbiB7XG5cdFx0Y29uc3QgbWljcm9DaGFydCA9IHRoaXMubWljcm9DaGFydDtcblx0XHRpZiAobWljcm9DaGFydCkge1xuXHRcdFx0cmV0dXJuIEJvb2xlYW4oXG5cdFx0XHRcdG1pY3JvQ2hhcnQuaXNBPEFyZWFNaWNyb0NoYXJ0PihcInNhcC5zdWl0ZS51aS5taWNyb2NoYXJ0LkFyZWFNaWNyb0NoYXJ0XCIpIHx8XG5cdFx0XHRcdFx0bWljcm9DaGFydC5pc0E8Q29sdW1uTWljcm9DaGFydD4oXCJzYXAuc3VpdGUudWkubWljcm9jaGFydC5Db2x1bW5NaWNyb0NoYXJ0XCIpIHx8XG5cdFx0XHRcdFx0bWljcm9DaGFydC5pc0E8TGluZU1pY3JvQ2hhcnQ+KFwic2FwLnN1aXRlLnVpLm1pY3JvY2hhcnQuTGluZU1pY3JvQ2hhcnRcIikgfHxcblx0XHRcdFx0XHRtaWNyb0NoYXJ0LmlzQTxDb21wYXJpc29uTWljcm9DaGFydD4oXCJzYXAuc3VpdGUudWkubWljcm9jaGFydC5Db21wYXJpc29uTWljcm9DaGFydFwiKVxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0X2NoZWNrRm9yQ2hhcnRMYWJlbEFnZ3JlZ2F0aW9ucygpOiBib29sZWFuIHtcblx0XHRjb25zdCBtaWNyb0NoYXJ0ID0gdGhpcy5taWNyb0NoYXJ0O1xuXHRcdGlmIChtaWNyb0NoYXJ0KSB7XG5cdFx0XHRyZXR1cm4gQm9vbGVhbihcblx0XHRcdFx0KG1pY3JvQ2hhcnQuaXNBPEFyZWFNaWNyb0NoYXJ0PihcInNhcC5zdWl0ZS51aS5taWNyb2NoYXJ0LkFyZWFNaWNyb0NoYXJ0XCIpICYmXG5cdFx0XHRcdFx0bWljcm9DaGFydC5nZXRBZ2dyZWdhdGlvbihcImZpcnN0WUxhYmVsXCIpICYmXG5cdFx0XHRcdFx0bWljcm9DaGFydC5nZXRBZ2dyZWdhdGlvbihcImxhc3RZTGFiZWxcIikgJiZcblx0XHRcdFx0XHRtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwiZmlyc3RYTGFiZWxcIikgJiZcblx0XHRcdFx0XHRtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwibGFzdFhMYWJlbFwiKSkgfHxcblx0XHRcdFx0XHQobWljcm9DaGFydC5pc0E8Q29sdW1uTWljcm9DaGFydD4oXCJzYXAuc3VpdGUudWkubWljcm9jaGFydC5Db2x1bW5NaWNyb0NoYXJ0XCIpICYmXG5cdFx0XHRcdFx0XHRtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwibGVmdFRvcExhYmVsXCIpICYmXG5cdFx0XHRcdFx0XHRtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwicmlnaHRUb3BMYWJlbFwiKSAmJlxuXHRcdFx0XHRcdFx0bWljcm9DaGFydC5nZXRBZ2dyZWdhdGlvbihcImxlZnRCb3R0b21MYWJlbFwiKSAmJlxuXHRcdFx0XHRcdFx0bWljcm9DaGFydC5nZXRBZ2dyZWdhdGlvbihcInJpZ2h0Qm90dG9tTGFiZWxcIikpIHx8XG5cdFx0XHRcdFx0bWljcm9DaGFydC5pc0E8TGluZU1pY3JvQ2hhcnQ+KFwic2FwLnN1aXRlLnVpLm1pY3JvY2hhcnQuTGluZU1pY3JvQ2hhcnRcIilcblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdF9nZXRMaXN0QmluZGluZ0ZvclJ1bnRpbWVMYWJlbHMoKTogT0RhdGFWNExpc3RCaW5kaW5nIHwgZmFsc2Uge1xuXHRcdGNvbnN0IG1pY3JvQ2hhcnQgPSB0aGlzLm1pY3JvQ2hhcnQ7XG5cdFx0bGV0IGJpbmRpbmc7XG5cdFx0aWYgKG1pY3JvQ2hhcnQpIHtcblx0XHRcdGlmIChtaWNyb0NoYXJ0LmlzQTxBcmVhTWljcm9DaGFydD4oXCJzYXAuc3VpdGUudWkubWljcm9jaGFydC5BcmVhTWljcm9DaGFydFwiKSkge1xuXHRcdFx0XHRjb25zdCBjaGFydCA9IG1pY3JvQ2hhcnQuZ2V0Q2hhcnQoKTtcblx0XHRcdFx0YmluZGluZyA9IGNoYXJ0ICYmIGNoYXJ0LmdldEJpbmRpbmcoXCJwb2ludHNcIik7XG5cdFx0XHR9IGVsc2UgaWYgKG1pY3JvQ2hhcnQuaXNBPENvbHVtbk1pY3JvQ2hhcnQ+KFwic2FwLnN1aXRlLnVpLm1pY3JvY2hhcnQuQ29sdW1uTWljcm9DaGFydFwiKSkge1xuXHRcdFx0XHRiaW5kaW5nID0gbWljcm9DaGFydC5nZXRCaW5kaW5nKFwiY29sdW1uc1wiKTtcblx0XHRcdH0gZWxzZSBpZiAobWljcm9DaGFydC5pc0E8TGluZU1pY3JvQ2hhcnQ+KFwic2FwLnN1aXRlLnVpLm1pY3JvY2hhcnQuTGluZU1pY3JvQ2hhcnRcIikpIHtcblx0XHRcdFx0Y29uc3QgbGluZXMgPSBtaWNyb0NoYXJ0LmdldExpbmVzKCk7XG5cdFx0XHRcdGJpbmRpbmcgPSBsaW5lcyAmJiBsaW5lcy5sZW5ndGggJiYgbGluZXNbMF0uZ2V0QmluZGluZyhcInBvaW50c1wiKTtcblx0XHRcdH0gZWxzZSBpZiAobWljcm9DaGFydC5pc0E8Q29tcGFyaXNvbk1pY3JvQ2hhcnQ+KFwic2FwLnN1aXRlLnVpLm1pY3JvY2hhcnQuQ29tcGFyaXNvbk1pY3JvQ2hhcnRcIikpIHtcblx0XHRcdFx0YmluZGluZyA9IG1pY3JvQ2hhcnQuZ2V0QmluZGluZyhcImRhdGFcIik7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGJpbmRpbmcgaW5zdGFuY2VvZiBPRGF0YVY0TGlzdEJpbmRpbmcgPyBiaW5kaW5nIDogZmFsc2U7XG5cdH1cblxuXHRhc3luYyBfc2V0UnVudGltZUNoYXJ0TGFiZWxzQW5kVW5pdE9mTWVhc3VyZSgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCBsaXN0QmluZGluZyA9IHRoaXMuX29saXN0QmluZGluZyxcblx0XHRcdGNvbnRleHRzID0gbGlzdEJpbmRpbmc/LmdldENvbnRleHRzKCksXG5cdFx0XHRtZWFzdXJlcyA9IHRoaXMubWVhc3VyZXMsXG5cdFx0XHRkaW1lbnNpb24gPSB0aGlzLmRpbWVuc2lvbixcblx0XHRcdHVuaXRPZk1lYXN1cmVQYXRoID0gdGhpcy51b21QYXRoLFxuXHRcdFx0bWljcm9DaGFydCA9IHRoaXMubWljcm9DaGFydCxcblx0XHRcdHVuaXRPZk1lYXN1cmVMYWJlbCA9IHRoaXMuX3VvbUxhYmVsO1xuXG5cdFx0aWYgKHVuaXRPZk1lYXN1cmVMYWJlbCAmJiB1bml0T2ZNZWFzdXJlUGF0aCAmJiBjb250ZXh0cyAmJiBjb250ZXh0cy5sZW5ndGggJiYgIXRoaXMuc2hvd09ubHlDaGFydCkge1xuXHRcdFx0Y29uc3QgdW9tTGFiZWwgPSBhd2FpdCBjb250ZXh0c1swXS5yZXF1ZXN0UHJvcGVydHkodW5pdE9mTWVhc3VyZVBhdGgpO1xuXHRcdFx0dW5pdE9mTWVhc3VyZUxhYmVsLnNldFRleHQodW9tTGFiZWwpO1xuXHRcdH0gZWxzZSBpZiAodW5pdE9mTWVhc3VyZUxhYmVsKSB7XG5cdFx0XHR1bml0T2ZNZWFzdXJlTGFiZWwuc2V0VGV4dChcIlwiKTtcblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuX2NoZWNrRm9yQ2hhcnRMYWJlbEFnZ3JlZ2F0aW9ucygpKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKCFjb250ZXh0cyB8fCAhY29udGV4dHMubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLl9zZXRDaGFydExhYmVscygpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IGZpcnN0Q29udGV4dCA9IGNvbnRleHRzWzBdLFxuXHRcdFx0bGFzdENvbnRleHQgPSBjb250ZXh0c1tjb250ZXh0cy5sZW5ndGggLSAxXSxcblx0XHRcdGxpbmVzUG9taXNlczogUHJvbWlzZTxtb2JpbGVsaWJyYXJ5LlZhbHVlQ29sb3I+W10gPSBbXSxcblx0XHRcdGxpbmVDaGFydCA9IG1pY3JvQ2hhcnQ/LmlzQTxMaW5lTWljcm9DaGFydD4oXCJzYXAuc3VpdGUudWkubWljcm9jaGFydC5MaW5lTWljcm9DaGFydFwiKSxcblx0XHRcdGN1cnJlbnRNaW5YID0gYXdhaXQgZmlyc3RDb250ZXh0LnJlcXVlc3RQcm9wZXJ0eShkaW1lbnNpb24pLFxuXHRcdFx0Y3VycmVudE1heFggPSBhd2FpdCBsYXN0Q29udGV4dC5yZXF1ZXN0UHJvcGVydHkoZGltZW5zaW9uKTtcblx0XHRsZXQgY3VycmVudE1pblksXG5cdFx0XHRjdXJyZW50TWF4WSxcblx0XHRcdG1pblg6IERhdGFQb2ludFZhbHVlVHlwZSA9IHsgdmFsdWU6IEluZmluaXR5IH0sXG5cdFx0XHRtYXhYOiBEYXRhUG9pbnRWYWx1ZVR5cGUgPSB7IHZhbHVlOiAtSW5maW5pdHkgfSxcblx0XHRcdG1pblk6IERhdGFQb2ludFZhbHVlVHlwZSA9IHsgdmFsdWU6IEluZmluaXR5IH0sXG5cdFx0XHRtYXhZOiBEYXRhUG9pbnRWYWx1ZVR5cGUgPSB7IHZhbHVlOiAtSW5maW5pdHkgfTtcblxuXHRcdG1pblggPSBjdXJyZW50TWluWCA9PSB1bmRlZmluZWQgPyBtaW5YIDogeyBjb250ZXh0OiBmaXJzdENvbnRleHQsIHZhbHVlOiBjdXJyZW50TWluWCB9O1xuXHRcdG1heFggPSBjdXJyZW50TWF4WCA9PSB1bmRlZmluZWQgPyBtYXhYIDogeyBjb250ZXh0OiBsYXN0Q29udGV4dCwgdmFsdWU6IGN1cnJlbnRNYXhYIH07XG5cblx0XHRpZiAobWVhc3VyZXM/Lmxlbmd0aCkge1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBtZWFzdXJlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRjb25zdCBtZWFzdXJlID0gbWVhc3VyZXNbaV07XG5cdFx0XHRcdGN1cnJlbnRNaW5ZID0gYXdhaXQgZmlyc3RDb250ZXh0LnJlcXVlc3RQcm9wZXJ0eShtZWFzdXJlKTtcblx0XHRcdFx0Y3VycmVudE1heFkgPSBhd2FpdCBsYXN0Q29udGV4dC5yZXF1ZXN0UHJvcGVydHkobWVhc3VyZSk7XG5cdFx0XHRcdG1heFkgPSBjdXJyZW50TWF4WSA+IG1heFkudmFsdWUgPyB7IGNvbnRleHQ6IGxhc3RDb250ZXh0LCB2YWx1ZTogY3VycmVudE1heFksIGluZGV4OiBsaW5lQ2hhcnQgPyBpIDogMCB9IDogbWF4WTtcblx0XHRcdFx0bWluWSA9IGN1cnJlbnRNaW5ZIDwgbWluWS52YWx1ZSA/IHsgY29udGV4dDogZmlyc3RDb250ZXh0LCB2YWx1ZTogY3VycmVudE1pblksIGluZGV4OiBsaW5lQ2hhcnQgPyBpIDogMCB9IDogbWluWTtcblx0XHRcdFx0aWYgKGxpbmVDaGFydCkge1xuXHRcdFx0XHRcdGxpbmVzUG9taXNlcy5wdXNoKHRoaXMuX2dldENyaXRpY2FsaXR5RnJvbVBvaW50KHsgY29udGV4dDogbGFzdENvbnRleHQsIHZhbHVlOiBjdXJyZW50TWF4WSwgaW5kZXg6IGkgfSkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHRoaXMuX3NldENoYXJ0TGFiZWxzKG1pblkudmFsdWUsIG1heFkudmFsdWUsIG1pblgudmFsdWUsIG1heFgudmFsdWUpO1xuXHRcdGlmIChsaW5lQ2hhcnQpIHtcblx0XHRcdGNvbnN0IGNvbG9ycyA9IGF3YWl0IFByb21pc2UuYWxsKGxpbmVzUG9taXNlcyk7XG5cdFx0XHRpZiAoY29sb3JzPy5sZW5ndGgpIHtcblx0XHRcdFx0Y29uc3QgbGluZXMgPSBtaWNyb0NoYXJ0LmdldExpbmVzKCk7XG5cdFx0XHRcdGxpbmVzLmZvckVhY2goZnVuY3Rpb24gKGxpbmU6IExpbmVNaWNyb0NoYXJ0TGluZSwgaTogbnVtYmVyKSB7XG5cdFx0XHRcdFx0bGluZS5zZXRDb2xvcihjb2xvcnNbaV0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0YXdhaXQgdGhpcy5fc2V0Q2hhcnRMYWJlbHNDb2xvcnMobWF4WSwgbWluWSk7XG5cdFx0fVxuXHR9XG5cblx0YXN5bmMgX3NldENoYXJ0TGFiZWxzQ29sb3JzKG1heFk6IERhdGFQb2ludFZhbHVlVHlwZSwgbWluWTogRGF0YVBvaW50VmFsdWVUeXBlKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgbWljcm9DaGFydCA9IHRoaXMubWljcm9DaGFydDtcblxuXHRcdGNvbnN0IGNyaXRpY2FsaXR5ID0gYXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuX2dldENyaXRpY2FsaXR5RnJvbVBvaW50KG1pblkpLCB0aGlzLl9nZXRDcml0aWNhbGl0eUZyb21Qb2ludChtYXhZKV0pO1xuXG5cdFx0aWYgKG1pY3JvQ2hhcnQ/LmlzQTxBcmVhTWljcm9DaGFydD4oXCJzYXAuc3VpdGUudWkubWljcm9jaGFydC5BcmVhTWljcm9DaGFydFwiKSkge1xuXHRcdFx0KG1pY3JvQ2hhcnQuZ2V0QWdncmVnYXRpb24oXCJmaXJzdFlMYWJlbFwiKSBhcyBNYW5hZ2VkT2JqZWN0KS5zZXRQcm9wZXJ0eShcImNvbG9yXCIsIGNyaXRpY2FsaXR5WzBdLCB0cnVlKTtcblx0XHRcdChtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwibGFzdFlMYWJlbFwiKSBhcyBNYW5hZ2VkT2JqZWN0KS5zZXRQcm9wZXJ0eShcImNvbG9yXCIsIGNyaXRpY2FsaXR5WzFdLCB0cnVlKTtcblx0XHR9IGVsc2UgaWYgKG1pY3JvQ2hhcnQ/LmlzQTxDb2x1bW5NaWNyb0NoYXJ0PihcInNhcC5zdWl0ZS51aS5taWNyb2NoYXJ0LkNvbHVtbk1pY3JvQ2hhcnRcIikpIHtcblx0XHRcdChtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwibGVmdFRvcExhYmVsXCIpIGFzIE1hbmFnZWRPYmplY3QpLnNldFByb3BlcnR5KFwiY29sb3JcIiwgY3JpdGljYWxpdHlbMF0sIHRydWUpO1xuXHRcdFx0KG1pY3JvQ2hhcnQuZ2V0QWdncmVnYXRpb24oXCJyaWdodFRvcExhYmVsXCIpIGFzIE1hbmFnZWRPYmplY3QpLnNldFByb3BlcnR5KFwiY29sb3JcIiwgY3JpdGljYWxpdHlbMV0sIHRydWUpO1xuXHRcdH1cblx0fVxuXG5cdF9zZXRDaGFydExhYmVscyhsZWZ0VG9wPzogbnVtYmVyLCByaWdodFRvcD86IG51bWJlciwgbGVmdEJvdHRvbT86IG51bWJlciwgcmlnaHRCb3R0b20/OiBudW1iZXIpOiB2b2lkIHtcblx0XHRjb25zdCBtaWNyb0NoYXJ0ID0gdGhpcy5taWNyb0NoYXJ0O1xuXG5cdFx0bGVmdFRvcCA9IHRoaXMuX2Zvcm1hdERhdGVBbmROdW1iZXJWYWx1ZShsZWZ0VG9wLCB0aGlzLm1lYXN1cmVQcmVjaXNpb24sIHRoaXMubWVhc3VyZVNjYWxlKSBhcyBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdFx0cmlnaHRUb3AgPSB0aGlzLl9mb3JtYXREYXRlQW5kTnVtYmVyVmFsdWUocmlnaHRUb3AsIHRoaXMubWVhc3VyZVByZWNpc2lvbiwgdGhpcy5tZWFzdXJlU2NhbGUpIGFzIG51bWJlciB8IHVuZGVmaW5lZDtcblx0XHRsZWZ0Qm90dG9tID0gdGhpcy5fZm9ybWF0RGF0ZUFuZE51bWJlclZhbHVlKGxlZnRCb3R0b20sIHRoaXMuZGltZW5zaW9uUHJlY2lzaW9uLCB1bmRlZmluZWQsIHRoaXMuY2FsZW5kYXJQYXR0ZXJuKSBhc1xuXHRcdFx0fCBudW1iZXJcblx0XHRcdHwgdW5kZWZpbmVkO1xuXHRcdHJpZ2h0Qm90dG9tID0gdGhpcy5fZm9ybWF0RGF0ZUFuZE51bWJlclZhbHVlKHJpZ2h0Qm90dG9tLCB0aGlzLmRpbWVuc2lvblByZWNpc2lvbiwgdW5kZWZpbmVkLCB0aGlzLmNhbGVuZGFyUGF0dGVybikgYXNcblx0XHRcdHwgbnVtYmVyXG5cdFx0XHR8IHVuZGVmaW5lZDtcblxuXHRcdGlmIChtaWNyb0NoYXJ0Py5pc0E8QXJlYU1pY3JvQ2hhcnQ+KFwic2FwLnN1aXRlLnVpLm1pY3JvY2hhcnQuQXJlYU1pY3JvQ2hhcnRcIikpIHtcblx0XHRcdChtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwiZmlyc3RZTGFiZWxcIikgYXMgTWFuYWdlZE9iamVjdCkuc2V0UHJvcGVydHkoXCJsYWJlbFwiLCBsZWZ0VG9wLCBmYWxzZSk7XG5cdFx0XHQobWljcm9DaGFydC5nZXRBZ2dyZWdhdGlvbihcImxhc3RZTGFiZWxcIikgYXMgTWFuYWdlZE9iamVjdCkuc2V0UHJvcGVydHkoXCJsYWJlbFwiLCByaWdodFRvcCwgZmFsc2UpO1xuXHRcdFx0KG1pY3JvQ2hhcnQuZ2V0QWdncmVnYXRpb24oXCJmaXJzdFhMYWJlbFwiKSBhcyBNYW5hZ2VkT2JqZWN0KS5zZXRQcm9wZXJ0eShcImxhYmVsXCIsIGxlZnRCb3R0b20sIGZhbHNlKTtcblx0XHRcdChtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwibGFzdFhMYWJlbFwiKSBhcyBNYW5hZ2VkT2JqZWN0KS5zZXRQcm9wZXJ0eShcImxhYmVsXCIsIHJpZ2h0Qm90dG9tLCBmYWxzZSk7XG5cdFx0fSBlbHNlIGlmIChtaWNyb0NoYXJ0Py5pc0E8Q29sdW1uTWljcm9DaGFydD4oXCJzYXAuc3VpdGUudWkubWljcm9jaGFydC5Db2x1bW5NaWNyb0NoYXJ0XCIpKSB7XG5cdFx0XHQobWljcm9DaGFydC5nZXRBZ2dyZWdhdGlvbihcImxlZnRUb3BMYWJlbFwiKSBhcyBNYW5hZ2VkT2JqZWN0KS5zZXRQcm9wZXJ0eShcImxhYmVsXCIsIGxlZnRUb3AsIGZhbHNlKTtcblx0XHRcdChtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwicmlnaHRUb3BMYWJlbFwiKSBhcyBNYW5hZ2VkT2JqZWN0KS5zZXRQcm9wZXJ0eShcImxhYmVsXCIsIHJpZ2h0VG9wLCBmYWxzZSk7XG5cdFx0XHQobWljcm9DaGFydC5nZXRBZ2dyZWdhdGlvbihcImxlZnRCb3R0b21MYWJlbFwiKSBhcyBNYW5hZ2VkT2JqZWN0KS5zZXRQcm9wZXJ0eShcImxhYmVsXCIsIGxlZnRCb3R0b20sIGZhbHNlKTtcblx0XHRcdChtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwicmlnaHRCb3R0b21MYWJlbFwiKSBhcyBNYW5hZ2VkT2JqZWN0KS5zZXRQcm9wZXJ0eShcImxhYmVsXCIsIHJpZ2h0Qm90dG9tLCBmYWxzZSk7XG5cdFx0fSBlbHNlIGlmIChtaWNyb0NoYXJ0Py5pc0E8TGluZU1pY3JvQ2hhcnQ+KFwic2FwLnN1aXRlLnVpLm1pY3JvY2hhcnQuTGluZU1pY3JvQ2hhcnRcIikpIHtcblx0XHRcdG1pY3JvQ2hhcnQuc2V0UHJvcGVydHkoXCJsZWZ0VG9wTGFiZWxcIiwgbGVmdFRvcCwgZmFsc2UpO1xuXHRcdFx0bWljcm9DaGFydC5zZXRQcm9wZXJ0eShcInJpZ2h0VG9wTGFiZWxcIiwgcmlnaHRUb3AsIGZhbHNlKTtcblx0XHRcdG1pY3JvQ2hhcnQuc2V0UHJvcGVydHkoXCJsZWZ0Qm90dG9tTGFiZWxcIiwgbGVmdEJvdHRvbSwgZmFsc2UpO1xuXHRcdFx0bWljcm9DaGFydC5zZXRQcm9wZXJ0eShcInJpZ2h0Qm90dG9tTGFiZWxcIiwgcmlnaHRCb3R0b20sIGZhbHNlKTtcblx0XHR9XG5cdH1cblxuXHRhc3luYyBfZ2V0Q3JpdGljYWxpdHlGcm9tUG9pbnQocG9pbnQ6IERhdGFQb2ludFZhbHVlVHlwZSk6IFByb21pc2U8bW9iaWxlbGlicmFyeS5WYWx1ZUNvbG9yPiB7XG5cdFx0aWYgKHBvaW50Py5jb250ZXh0KSB7XG5cdFx0XHRjb25zdCBtZXRhTW9kZWwgPSB0aGlzLmdldE1vZGVsKCkgJiYgKHRoaXMuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsKS5nZXRNZXRhTW9kZWwoKSxcblx0XHRcdFx0ZGF0YVBvaW50UXVhbGlmaWVycyA9IHRoaXMuZGF0YVBvaW50UXVhbGlmaWVycyxcblx0XHRcdFx0bWV0YVBhdGggPSBtZXRhTW9kZWwgaW5zdGFuY2VvZiBPRGF0YU1ldGFNb2RlbCAmJiBwb2ludC5jb250ZXh0LmdldFBhdGgoKSAmJiBtZXRhTW9kZWwuZ2V0TWV0YVBhdGgocG9pbnQuY29udGV4dC5nZXRQYXRoKCkpO1xuXHRcdFx0aWYgKG1ldGFNb2RlbCAmJiB0eXBlb2YgbWV0YVBhdGggPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdFx0Y29uc3QgZGF0YVBvaW50ID0gYXdhaXQgbWV0YU1vZGVsLnJlcXVlc3RPYmplY3QoXG5cdFx0XHRcdFx0YCR7bWV0YVBhdGh9L0Ake1VJQW5ub3RhdGlvblRlcm1zLkRhdGFQb2ludH0ke1xuXHRcdFx0XHRcdFx0cG9pbnQuaW5kZXggIT09IHVuZGVmaW5lZCAmJiBkYXRhUG9pbnRRdWFsaWZpZXJzW3BvaW50LmluZGV4XSA/IGAjJHtkYXRhUG9pbnRRdWFsaWZpZXJzW3BvaW50LmluZGV4XX1gIDogXCJcIlxuXHRcdFx0XHRcdH1gXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGlmIChkYXRhUG9pbnQpIHtcblx0XHRcdFx0XHRsZXQgY3JpdGljYWxpdHkgPSBWYWx1ZUNvbG9yLk5ldXRyYWw7XG5cdFx0XHRcdFx0Y29uc3QgY29udGV4dCA9IHBvaW50LmNvbnRleHQ7XG5cblx0XHRcdFx0XHRpZiAoZGF0YVBvaW50LkNyaXRpY2FsaXR5KSB7XG5cdFx0XHRcdFx0XHRjcml0aWNhbGl0eSA9IHRoaXMuX2NyaXRpY2FsaXR5KGRhdGFQb2ludC5Dcml0aWNhbGl0eSwgY29udGV4dCk7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChkYXRhUG9pbnQuQ3JpdGljYWxpdHlDYWxjdWxhdGlvbikge1xuXHRcdFx0XHRcdFx0Y29uc3QgY3JpdGljYWxpdHlDYWxjdWxhdGlvbiA9IGRhdGFQb2ludC5Dcml0aWNhbGl0eUNhbGN1bGF0aW9uO1xuXHRcdFx0XHRcdFx0Y29uc3QgZ2V0VmFsdWUgPSBmdW5jdGlvbiAodmFsdWVQcm9wZXJ0eTogeyAkUGF0aD86IHN0cmluZzsgJERlY2ltYWw/OiBudW1iZXIgfSk6IG51bWJlciB7XG5cdFx0XHRcdFx0XHRcdGxldCB2YWx1ZVJlc3BvbnNlO1xuXHRcdFx0XHRcdFx0XHRpZiAodmFsdWVQcm9wZXJ0eT8uJFBhdGgpIHtcblx0XHRcdFx0XHRcdFx0XHR2YWx1ZVJlc3BvbnNlID0gY29udGV4dC5nZXRPYmplY3QodmFsdWVQcm9wZXJ0eS4kUGF0aCk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAodmFsdWVQcm9wZXJ0eT8uaGFzT3duUHJvcGVydHkoXCIkRGVjaW1hbFwiKSkge1xuXHRcdFx0XHRcdFx0XHRcdHZhbHVlUmVzcG9uc2UgPSB2YWx1ZVByb3BlcnR5LiREZWNpbWFsO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHJldHVybiB2YWx1ZVJlc3BvbnNlO1xuXHRcdFx0XHRcdFx0fTtcblxuXHRcdFx0XHRcdFx0Y3JpdGljYWxpdHkgPSB0aGlzLl9jcml0aWNhbGl0eUNhbGN1bGF0aW9uKFxuXHRcdFx0XHRcdFx0XHRjcml0aWNhbGl0eUNhbGN1bGF0aW9uLkltcHJvdmVtZW50RGlyZWN0aW9uLiRFbnVtTWVtYmVyLFxuXHRcdFx0XHRcdFx0XHRwb2ludC52YWx1ZSxcblx0XHRcdFx0XHRcdFx0Z2V0VmFsdWUoY3JpdGljYWxpdHlDYWxjdWxhdGlvbi5EZXZpYXRpb25SYW5nZUxvd1ZhbHVlKSxcblx0XHRcdFx0XHRcdFx0Z2V0VmFsdWUoY3JpdGljYWxpdHlDYWxjdWxhdGlvbi5Ub2xlcmFuY2VSYW5nZUxvd1ZhbHVlKSxcblx0XHRcdFx0XHRcdFx0Z2V0VmFsdWUoY3JpdGljYWxpdHlDYWxjdWxhdGlvbi5BY2NlcHRhbmNlUmFuZ2VMb3dWYWx1ZSksXG5cdFx0XHRcdFx0XHRcdGdldFZhbHVlKGNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uQWNjZXB0YW5jZVJhbmdlSGlnaFZhbHVlKSxcblx0XHRcdFx0XHRcdFx0Z2V0VmFsdWUoY3JpdGljYWxpdHlDYWxjdWxhdGlvbi5Ub2xlcmFuY2VSYW5nZUhpZ2hWYWx1ZSksXG5cdFx0XHRcdFx0XHRcdGdldFZhbHVlKGNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uRGV2aWF0aW9uUmFuZ2VIaWdoVmFsdWUpXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHJldHVybiBjcml0aWNhbGl0eTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoVmFsdWVDb2xvci5OZXV0cmFsKTtcblx0fVxuXG5cdF9jcml0aWNhbGl0eShjcml0aWNhbGl0eTogeyAkUGF0aD86IHN0cmluZzsgJEVudW1NZW1iZXI/OiBzdHJpbmcgfSwgY29udGV4dDogQ29udGV4dCk6IG1vYmlsZWxpYnJhcnkuVmFsdWVDb2xvciB7XG5cdFx0bGV0IGNyaXRpY2FsaXR5VmFsdWUsIHJlc3VsdDtcblx0XHRpZiAoY3JpdGljYWxpdHkuJFBhdGgpIHtcblx0XHRcdGNyaXRpY2FsaXR5VmFsdWUgPSBjb250ZXh0LmdldE9iamVjdChjcml0aWNhbGl0eS4kUGF0aCk7XG5cdFx0XHRpZiAoY3JpdGljYWxpdHlWYWx1ZSA9PT0gXCJOZWdhdGl2ZVwiIHx8IGNyaXRpY2FsaXR5VmFsdWUudG9TdHJpbmcoKSA9PT0gXCIxXCIpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5FcnJvcjtcblx0XHRcdH0gZWxzZSBpZiAoY3JpdGljYWxpdHlWYWx1ZSA9PT0gXCJDcml0aWNhbFwiIHx8IGNyaXRpY2FsaXR5VmFsdWUudG9TdHJpbmcoKSA9PT0gXCIyXCIpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5Dcml0aWNhbDtcblx0XHRcdH0gZWxzZSBpZiAoY3JpdGljYWxpdHlWYWx1ZSA9PT0gXCJQb3NpdGl2ZVwiIHx8IGNyaXRpY2FsaXR5VmFsdWUudG9TdHJpbmcoKSA9PT0gXCIzXCIpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5Hb29kO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoY3JpdGljYWxpdHkuJEVudW1NZW1iZXIpIHtcblx0XHRcdGNyaXRpY2FsaXR5VmFsdWUgPSBjcml0aWNhbGl0eS4kRW51bU1lbWJlcjtcblx0XHRcdGlmIChjcml0aWNhbGl0eVZhbHVlLmluY2x1ZGVzKFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ3JpdGljYWxpdHlUeXBlL05lZ2F0aXZlXCIpKSB7XG5cdFx0XHRcdHJlc3VsdCA9IFZhbHVlQ29sb3IuRXJyb3I7XG5cdFx0XHR9IGVsc2UgaWYgKGNyaXRpY2FsaXR5VmFsdWUuaW5jbHVkZXMoXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5Dcml0aWNhbGl0eVR5cGUvUG9zaXRpdmVcIikpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5Hb29kO1xuXHRcdFx0fSBlbHNlIGlmIChjcml0aWNhbGl0eVZhbHVlLmluY2x1ZGVzKFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ3JpdGljYWxpdHlUeXBlL0NyaXRpY2FsXCIpKSB7XG5cdFx0XHRcdHJlc3VsdCA9IFZhbHVlQ29sb3IuQ3JpdGljYWw7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0TG9nLndhcm5pbmcoXCJDYXNlIG5vdCBzdXBwb3J0ZWQsIHJldHVybmluZyB0aGUgZGVmYXVsdCBWYWx1ZSBOZXV0cmFsXCIpO1xuXHRcdFx0cmV0dXJuIFZhbHVlQ29sb3IuTmV1dHJhbDtcblx0XHR9XG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fVxuXG5cdF9jcml0aWNhbGl0eUNhbGN1bGF0aW9uKFxuXHRcdGltcHJvdmVtZW50RGlyZWN0aW9uOiBzdHJpbmcsXG5cdFx0dmFsdWU6IG51bWJlcixcblx0XHRkZXZpYXRpb25Mb3c/OiBudW1iZXIsXG5cdFx0dG9sZXJhbmNlTG93PzogbnVtYmVyLFxuXHRcdGFjY2VwdGFuY2VMb3c/OiBudW1iZXIsXG5cdFx0YWNjZXB0YW5jZUhpZ2g/OiBudW1iZXIsXG5cdFx0dG9sZXJhbmNlSGlnaD86IG51bWJlcixcblx0XHRkZXZpYXRpb25IaWdoPzogbnVtYmVyXG5cdCk6IG1vYmlsZWxpYnJhcnkuVmFsdWVDb2xvciB7XG5cdFx0bGV0IHJlc3VsdDtcblxuXHRcdC8vIERlYWxpbmcgd2l0aCBEZWNpbWFsIGFuZCBQYXRoIGJhc2VkIGJpbmdkaW5nc1xuXHRcdGRldmlhdGlvbkxvdyA9IGRldmlhdGlvbkxvdyA9PSB1bmRlZmluZWQgPyAtSW5maW5pdHkgOiBkZXZpYXRpb25Mb3c7XG5cdFx0dG9sZXJhbmNlTG93ID0gdG9sZXJhbmNlTG93ID09IHVuZGVmaW5lZCA/IGRldmlhdGlvbkxvdyA6IHRvbGVyYW5jZUxvdztcblx0XHRhY2NlcHRhbmNlTG93ID0gYWNjZXB0YW5jZUxvdyA9PSB1bmRlZmluZWQgPyB0b2xlcmFuY2VMb3cgOiBhY2NlcHRhbmNlTG93O1xuXHRcdGRldmlhdGlvbkhpZ2ggPSBkZXZpYXRpb25IaWdoID09IHVuZGVmaW5lZCA/IEluZmluaXR5IDogZGV2aWF0aW9uSGlnaDtcblx0XHR0b2xlcmFuY2VIaWdoID0gdG9sZXJhbmNlSGlnaCA9PSB1bmRlZmluZWQgPyBkZXZpYXRpb25IaWdoIDogdG9sZXJhbmNlSGlnaDtcblx0XHRhY2NlcHRhbmNlSGlnaCA9IGFjY2VwdGFuY2VIaWdoID09IHVuZGVmaW5lZCA/IHRvbGVyYW5jZUhpZ2ggOiBhY2NlcHRhbmNlSGlnaDtcblxuXHRcdC8vIENyZWF0aW5nIHJ1bnRpbWUgZXhwcmVzc2lvbiBiaW5kaW5nIGZyb20gY3JpdGljYWxpdHkgY2FsY3VsYXRpb24gZm9yIENyaXRpY2FsaXR5IFN0YXRlXG5cdFx0aWYgKGltcHJvdmVtZW50RGlyZWN0aW9uLmluY2x1ZGVzKFwiTWluaW1pemVcIikpIHtcblx0XHRcdGlmICh2YWx1ZSA8PSBhY2NlcHRhbmNlSGlnaCkge1xuXHRcdFx0XHRyZXN1bHQgPSBWYWx1ZUNvbG9yLkdvb2Q7XG5cdFx0XHR9IGVsc2UgaWYgKHZhbHVlIDw9IHRvbGVyYW5jZUhpZ2gpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5OZXV0cmFsO1xuXHRcdFx0fSBlbHNlIGlmICh2YWx1ZSA8PSBkZXZpYXRpb25IaWdoKSB7XG5cdFx0XHRcdHJlc3VsdCA9IFZhbHVlQ29sb3IuQ3JpdGljYWw7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXN1bHQgPSBWYWx1ZUNvbG9yLkVycm9yO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoaW1wcm92ZW1lbnREaXJlY3Rpb24uaW5jbHVkZXMoXCJNYXhpbWl6ZVwiKSkge1xuXHRcdFx0aWYgKHZhbHVlID49IGFjY2VwdGFuY2VMb3cpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5Hb29kO1xuXHRcdFx0fSBlbHNlIGlmICh2YWx1ZSA+PSB0b2xlcmFuY2VMb3cpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5OZXV0cmFsO1xuXHRcdFx0fSBlbHNlIGlmICh2YWx1ZSA+PSBkZXZpYXRpb25Mb3cpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5Dcml0aWNhbDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJlc3VsdCA9IFZhbHVlQ29sb3IuRXJyb3I7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChpbXByb3ZlbWVudERpcmVjdGlvbi5pbmNsdWRlcyhcIlRhcmdldFwiKSkge1xuXHRcdFx0aWYgKHZhbHVlIDw9IGFjY2VwdGFuY2VIaWdoICYmIHZhbHVlID49IGFjY2VwdGFuY2VMb3cpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5Hb29kO1xuXHRcdFx0fSBlbHNlIGlmICgodmFsdWUgPj0gdG9sZXJhbmNlTG93ICYmIHZhbHVlIDwgYWNjZXB0YW5jZUxvdykgfHwgKHZhbHVlID4gYWNjZXB0YW5jZUhpZ2ggJiYgdmFsdWUgPD0gdG9sZXJhbmNlSGlnaCkpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5OZXV0cmFsO1xuXHRcdFx0fSBlbHNlIGlmICgodmFsdWUgPj0gZGV2aWF0aW9uTG93ICYmIHZhbHVlIDwgdG9sZXJhbmNlTG93KSB8fCAodmFsdWUgPiB0b2xlcmFuY2VIaWdoICYmIHZhbHVlIDw9IGRldmlhdGlvbkhpZ2gpKSB7XG5cdFx0XHRcdHJlc3VsdCA9IFZhbHVlQ29sb3IuQ3JpdGljYWw7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXN1bHQgPSBWYWx1ZUNvbG9yLkVycm9yO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0TG9nLndhcm5pbmcoXCJDYXNlIG5vdCBzdXBwb3J0ZWQsIHJldHVybmluZyB0aGUgZGVmYXVsdCBWYWx1ZSBOZXV0cmFsXCIpO1xuXHRcdFx0cmV0dXJuIFZhbHVlQ29sb3IuTmV1dHJhbDtcblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cblx0X2Zvcm1hdERhdGVBbmROdW1iZXJWYWx1ZSh2YWx1ZT86IG51bWJlciB8IHN0cmluZywgcHJlY2lzaW9uPzogbnVtYmVyLCBzY2FsZT86IG51bWJlciwgcGF0dGVybj86IHN0cmluZyk6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKHBhdHRlcm4pIHtcblx0XHRcdHJldHVybiB0aGlzLl9nZXRTZW1hbnRpY3NWYWx1ZUZvcm1hdHRlcihwYXR0ZXJuKS5mb3JtYXRWYWx1ZSh2YWx1ZSwgXCJzdHJpbmdcIik7XG5cdFx0fSBlbHNlIGlmICghaXNOYU4odmFsdWUgYXMgbnVtYmVyKSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuX2dldExhYmVsTnVtYmVyRm9ybWF0dGVyKHByZWNpc2lvbiwgc2NhbGUpLmZvcm1hdCh2YWx1ZSBhcyBudW1iZXIpO1xuXHRcdH1cblxuXHRcdHJldHVybiB2YWx1ZTtcblx0fVxuXG5cdF9nZXRTZW1hbnRpY3NWYWx1ZUZvcm1hdHRlcihwYXR0ZXJuOiBzdHJpbmcpOiBEYXRlVHlwZSB7XG5cdFx0aWYgKCF0aGlzLl9vRGF0ZVR5cGUpIHtcblx0XHRcdHRoaXMuX29EYXRlVHlwZSA9IG5ldyBEYXRlVHlwZSh7XG5cdFx0XHRcdHN0eWxlOiBcInNob3J0XCIsXG5cdFx0XHRcdHNvdXJjZToge1xuXHRcdFx0XHRcdHBhdHRlcm5cblx0XHRcdFx0fVxuXHRcdFx0fSBhcyB1bmtub3duIGFzIHsgc291cmNlOiBvYmplY3QgfSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuX29EYXRlVHlwZTtcblx0fVxuXG5cdF9nZXRMYWJlbE51bWJlckZvcm1hdHRlcihwcmVjaXNpb24/OiBudW1iZXIsIHNjYWxlPzogbnVtYmVyKTogTnVtYmVyRm9ybWF0IHtcblx0XHRyZXR1cm4gTnVtYmVyRm9ybWF0LmdldEZsb2F0SW5zdGFuY2Uoe1xuXHRcdFx0c3R5bGU6IFwic2hvcnRcIixcblx0XHRcdHNob3dTY2FsZTogdHJ1ZSxcblx0XHRcdHByZWNpc2lvbjogKHR5cGVvZiBwcmVjaXNpb24gPT09IFwibnVtYmVyXCIgJiYgcHJlY2lzaW9uKSB8fCAwLFxuXHRcdFx0ZGVjaW1hbHM6ICh0eXBlb2Ygc2NhbGUgPT09IFwibnVtYmVyXCIgJiYgc2NhbGUpIHx8IDBcblx0XHR9KTtcblx0fVxuXG5cdGdldEFjY2Vzc2liaWxpdHlJbmZvKCk6IEFjY2Vzc2liaWxpdHlJbmZvIHtcblx0XHRyZXR1cm4gdGhpcy5taWNyb0NoYXJ0Py5nZXRBY2Nlc3NpYmlsaXR5SW5mbygpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1pY3JvQ2hhcnRDb250YWluZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBT0E7RUFFQTtFQUVBO0VBRUE7RUFlQSxNQUFNQSxVQUFVLEdBQUdDLGFBQWEsQ0FBQ0QsVUFBVTtFQU0zQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBSkEsSUFNTUUsbUJBQW1CLElBQUFDLElBQUEsR0FEeEJDLGNBQWMsQ0FBQyw4Q0FBOEMsQ0FBQyxFQUFBQyxLQUFBLEdBRTdEQyxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFLFNBQVM7SUFDZkMsWUFBWSxFQUFFO0VBQ2YsQ0FBQyxDQUFDLEVBQUFDLEtBQUEs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
|
|
527
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWYWx1ZUNvbG9yIiwibW9iaWxlbGlicmFyeSIsIk1pY3JvQ2hhcnRDb250YWluZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsIl9kZWMzIiwidW5kZWZpbmVkIiwiX2RlYzQiLCJfZGVjNSIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiX2RlYzEwIiwiX2RlYzExIiwiX2RlYzEyIiwiX2RlYzEzIiwiZXZlbnQiLCJfZGVjMTQiLCJhZ2dyZWdhdGlvbiIsIm11bHRpcGxlIiwiaXNEZWZhdWx0IiwiX2RlYzE1IiwiX2RlYzE2IiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9Db250cm9sIiwiaWQiLCJzZXR0aW5ncyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZGVzY3JpcHRvcjkiLCJfZGVzY3JpcHRvcjEwIiwiX2Rlc2NyaXB0b3IxMSIsIl9kZXNjcmlwdG9yMTIiLCJfZGVzY3JpcHRvcjEzIiwiX2Rlc2NyaXB0b3IxNCIsIl9kZXNjcmlwdG9yMTUiLCJfaW5oZXJpdHNMb29zZSIsInJlbmRlciIsInJlbmRlck1hbmFnZXIiLCJjb250cm9sIiwib3BlblN0YXJ0Iiwib3BlbkVuZCIsInNob3dPbmx5Q2hhcnQiLCJjaGFydFRpdGxlIiwibWljcm9DaGFydFRpdGxlIiwiZm9yRWFjaCIsInN1YkNoYXJ0VGl0bGUiLCJyZW5kZXJDb250cm9sIiwiY2xvc2UiLCJjaGFydERlc2NyaXB0aW9uIiwiTGFiZWwiLCJ0ZXh0IiwibWljcm9DaGFydCIsImFkZFN0eWxlQ2xhc3MiLCJ1b21QYXRoIiwiX2NoZWNrSWZDaGFydFJlcXVpcmVzUnVudGltZUxhYmVscyIsInBhdGgiLCJsYWJlbCIsImZsZXhCb3giLCJGbGV4Qm94IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiaXRlbXMiLCJzZXRBZ2dyZWdhdGlvbiIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uQmVmb3JlUmVuZGVyaW5nIiwiYmluZGluZyIsIl9nZXRMaXN0QmluZGluZ0ZvclJ1bnRpbWVMYWJlbHMiLCJkZXRhY2hFdmVudCIsIl9zZXRSdW50aW1lQ2hhcnRMYWJlbHNBbmRVbml0T2ZNZWFzdXJlIiwiX29saXN0QmluZGluZyIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJhdHRhY2hFdmVudCIsInNldFNob3dPbmx5Q2hhcnQiLCJ2YWx1ZSIsIl9zZXRDaGFydExhYmVscyIsInNldFByb3BlcnR5IiwiQm9vbGVhbiIsImlzQSIsIl9jaGVja0ZvckNoYXJ0TGFiZWxBZ2dyZWdhdGlvbnMiLCJnZXRBZ2dyZWdhdGlvbiIsImNoYXJ0IiwiZ2V0Q2hhcnQiLCJnZXRCaW5kaW5nIiwibGluZXMiLCJnZXRMaW5lcyIsImxlbmd0aCIsIk9EYXRhVjRMaXN0QmluZGluZyIsImxpc3RCaW5kaW5nIiwiY29udGV4dHMiLCJnZXRDb250ZXh0cyIsIm1lYXN1cmVzIiwiZGltZW5zaW9uIiwidW5pdE9mTWVhc3VyZVBhdGgiLCJ1bml0T2ZNZWFzdXJlTGFiZWwiLCJfdW9tTGFiZWwiLCJ1b21MYWJlbCIsInJlcXVlc3RQcm9wZXJ0eSIsInNldFRleHQiLCJmaXJzdENvbnRleHQiLCJsYXN0Q29udGV4dCIsImxpbmVzUG9taXNlcyIsImxpbmVDaGFydCIsImN1cnJlbnRNaW5YIiwiY3VycmVudE1heFgiLCJjdXJyZW50TWluWSIsImN1cnJlbnRNYXhZIiwibWluWCIsIkluZmluaXR5IiwibWF4WCIsIm1pblkiLCJtYXhZIiwiY29udGV4dCIsImkiLCJtZWFzdXJlIiwiaW5kZXgiLCJwdXNoIiwiX2dldENyaXRpY2FsaXR5RnJvbVBvaW50IiwiY29sb3JzIiwiUHJvbWlzZSIsImFsbCIsImxpbmUiLCJzZXRDb2xvciIsIl9zZXRDaGFydExhYmVsc0NvbG9ycyIsImNyaXRpY2FsaXR5IiwibGVmdFRvcCIsInJpZ2h0VG9wIiwibGVmdEJvdHRvbSIsInJpZ2h0Qm90dG9tIiwiX2Zvcm1hdERhdGVBbmROdW1iZXJWYWx1ZSIsIm1lYXN1cmVQcmVjaXNpb24iLCJtZWFzdXJlU2NhbGUiLCJkaW1lbnNpb25QcmVjaXNpb24iLCJjYWxlbmRhclBhdHRlcm4iLCJwb2ludCIsIm1ldGFNb2RlbCIsImdldE1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwiZGF0YVBvaW50UXVhbGlmaWVycyIsIm1ldGFQYXRoIiwiT0RhdGFNZXRhTW9kZWwiLCJnZXRQYXRoIiwiZ2V0TWV0YVBhdGgiLCJkYXRhUG9pbnQiLCJyZXF1ZXN0T2JqZWN0IiwiTmV1dHJhbCIsIkNyaXRpY2FsaXR5IiwiX2NyaXRpY2FsaXR5IiwiQ3JpdGljYWxpdHlDYWxjdWxhdGlvbiIsImNyaXRpY2FsaXR5Q2FsY3VsYXRpb24iLCJnZXRWYWx1ZSIsInZhbHVlUHJvcGVydHkiLCJ2YWx1ZVJlc3BvbnNlIiwiJFBhdGgiLCJnZXRPYmplY3QiLCJoYXNPd25Qcm9wZXJ0eSIsIiREZWNpbWFsIiwiX2NyaXRpY2FsaXR5Q2FsY3VsYXRpb24iLCJJbXByb3ZlbWVudERpcmVjdGlvbiIsIiRFbnVtTWVtYmVyIiwiRGV2aWF0aW9uUmFuZ2VMb3dWYWx1ZSIsIlRvbGVyYW5jZVJhbmdlTG93VmFsdWUiLCJBY2NlcHRhbmNlUmFuZ2VMb3dWYWx1ZSIsIkFjY2VwdGFuY2VSYW5nZUhpZ2hWYWx1ZSIsIlRvbGVyYW5jZVJhbmdlSGlnaFZhbHVlIiwiRGV2aWF0aW9uUmFuZ2VIaWdoVmFsdWUiLCJyZXNvbHZlIiwiY3JpdGljYWxpdHlWYWx1ZSIsInJlc3VsdCIsInRvU3RyaW5nIiwiRXJyb3IiLCJDcml0aWNhbCIsIkdvb2QiLCJpbmNsdWRlcyIsIkxvZyIsIndhcm5pbmciLCJpbXByb3ZlbWVudERpcmVjdGlvbiIsImRldmlhdGlvbkxvdyIsInRvbGVyYW5jZUxvdyIsImFjY2VwdGFuY2VMb3ciLCJhY2NlcHRhbmNlSGlnaCIsInRvbGVyYW5jZUhpZ2giLCJkZXZpYXRpb25IaWdoIiwicHJlY2lzaW9uIiwic2NhbGUiLCJwYXR0ZXJuIiwiX2dldFNlbWFudGljc1ZhbHVlRm9ybWF0dGVyIiwiZm9ybWF0VmFsdWUiLCJpc05hTiIsIl9nZXRMYWJlbE51bWJlckZvcm1hdHRlciIsImZvcm1hdCIsIl9vRGF0ZVR5cGUiLCJEYXRlVHlwZSIsInN0eWxlIiwic291cmNlIiwiTnVtYmVyRm9ybWF0IiwiZ2V0RmxvYXRJbnN0YW5jZSIsInNob3dTY2FsZSIsImRlY2ltYWxzIiwiZ2V0QWNjZXNzaWJpbGl0eUluZm8iLCJDb250cm9sIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJNaWNyb0NoYXJ0Q29udGFpbmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVJQW5ub3RhdGlvblRlcm1zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnRpZXNPZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IGFnZ3JlZ2F0aW9uLCBkZWZpbmVVSTVDbGFzcywgZXZlbnQsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEZsZXhCb3ggZnJvbSBcInNhcC9tL0ZsZXhCb3hcIjtcbmltcG9ydCBMYWJlbCBmcm9tIFwic2FwL20vTGFiZWxcIjtcbmltcG9ydCBtb2JpbGVsaWJyYXJ5IGZyb20gXCJzYXAvbS9saWJyYXJ5XCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlc3RyaWN0ZWQtaW1wb3J0c1xuaW1wb3J0IHR5cGUgQXJlYU1pY3JvQ2hhcnQgZnJvbSBcInNhcC9zdWl0ZS91aS9taWNyb2NoYXJ0L0FyZWFNaWNyb0NoYXJ0XCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlc3RyaWN0ZWQtaW1wb3J0c1xuaW1wb3J0IHR5cGUgQ29sdW1uTWljcm9DaGFydCBmcm9tIFwic2FwL3N1aXRlL3VpL21pY3JvY2hhcnQvQ29sdW1uTWljcm9DaGFydFwiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXN0cmljdGVkLWltcG9ydHNcbmltcG9ydCB0eXBlIENvbXBhcmlzb25NaWNyb0NoYXJ0IGZyb20gXCJzYXAvc3VpdGUvdWkvbWljcm9jaGFydC9Db21wYXJpc29uTWljcm9DaGFydFwiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXN0cmljdGVkLWltcG9ydHNcbmltcG9ydCB0eXBlIExpbmVNaWNyb0NoYXJ0IGZyb20gXCJzYXAvc3VpdGUvdWkvbWljcm9jaGFydC9MaW5lTWljcm9DaGFydFwiO1xuaW1wb3J0IHR5cGUgTGluZU1pY3JvQ2hhcnRMaW5lIGZyb20gXCJzYXAvc3VpdGUvdWkvbWljcm9jaGFydC9MaW5lTWljcm9DaGFydExpbmVcIjtcbmltcG9ydCB0eXBlIE1hbmFnZWRPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCB0eXBlIHsgJENvbnRyb2xTZXR0aW5ncyB9IGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IE51bWJlckZvcm1hdCBmcm9tIFwic2FwL3VpL2NvcmUvZm9ybWF0L051bWJlckZvcm1hdFwiO1xuaW1wb3J0IHR5cGUgeyBBY2Nlc3NpYmlsaXR5SW5mbyB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBSZW5kZXJNYW5hZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9SZW5kZXJNYW5hZ2VyXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuaW1wb3J0IE9EYXRhVjRMaXN0QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcbmltcG9ydCBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuaW1wb3J0IERhdGVUeXBlIGZyb20gXCJzYXAvdWkvbW9kZWwvdHlwZS9EYXRlXCI7XG5cbmNvbnN0IFZhbHVlQ29sb3IgPSBtb2JpbGVsaWJyYXJ5LlZhbHVlQ29sb3I7XG50eXBlIERhdGFQb2ludFZhbHVlVHlwZSA9IHtcblx0dmFsdWU6IG51bWJlcjtcblx0Y29udGV4dD86IENvbnRleHQ7XG5cdGluZGV4PzogbnVtYmVyO1xufTtcbi8qKlxuICogIENvbnRhaW5lciBDb250cm9sIGZvciBNaWNybyBDaGFydCBhbmQgVW9NLlxuICogQHByaXZhdGVcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5taWNyb2NoYXJ0Lk1pY3JvQ2hhcnRDb250YWluZXJcIilcbmNsYXNzIE1pY3JvQ2hhcnRDb250YWluZXIgZXh0ZW5kcyBDb250cm9sIHtcblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIixcblx0XHRkZWZhdWx0VmFsdWU6IGZhbHNlXG5cdH0pXG5cdHNob3dPbmx5Q2hhcnQhOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZFxuXHR9KVxuXHR1b21QYXRoITogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdbXVwiLFxuXHRcdGRlZmF1bHRWYWx1ZTogW11cblx0fSlcblx0bWVhc3VyZXMhOiBzdHJpbmdbXTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0ZGVmYXVsdFZhbHVlOiB1bmRlZmluZWRcblx0fSlcblx0ZGltZW5zaW9uPzogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdbXVwiLFxuXHRcdGRlZmF1bHRWYWx1ZTogW11cblx0fSlcblx0ZGF0YVBvaW50UXVhbGlmaWVycyE6IHN0cmluZ1tdO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJpbnRcIixcblx0XHRkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZFxuXHR9KVxuXHRtZWFzdXJlUHJlY2lzaW9uITogbnVtYmVyO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJpbnRcIixcblx0XHRkZWZhdWx0VmFsdWU6IDFcblx0fSlcblx0bWVhc3VyZVNjYWxlITogbnVtYmVyO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJpbnRcIixcblx0XHRkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZFxuXHR9KVxuXHRkaW1lbnNpb25QcmVjaXNpb24/OiBudW1iZXI7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdGRlZmF1bHRWYWx1ZTogXCJcIlxuXHR9KVxuXHRjaGFydFRpdGxlITogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRkZWZhdWx0VmFsdWU6IFwiXCJcblx0fSlcblx0Y2hhcnREZXNjcmlwdGlvbiE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0ZGVmYXVsdFZhbHVlOiBcIlwiXG5cdH0pXG5cdGNhbGVuZGFyUGF0dGVybiE6IHN0cmluZztcblxuXHRAZXZlbnQoKVxuXHRvblRpdGxlUHJlc3NlZCE6IEZ1bmN0aW9uO1xuXG5cdEBhZ2dyZWdhdGlvbih7XG5cdFx0dHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsXG5cdFx0bXVsdGlwbGU6IGZhbHNlLFxuXHRcdGlzRGVmYXVsdDogdHJ1ZVxuXHR9KVxuXHRtaWNyb0NoYXJ0ITogQ29udHJvbDtcblxuXHRAYWdncmVnYXRpb24oe1xuXHRcdHR5cGU6IFwic2FwLm0uTGFiZWxcIixcblx0XHRtdWx0aXBsZTogZmFsc2Vcblx0fSlcblx0X3VvbUxhYmVsITogTGFiZWw7XG5cblx0QGFnZ3JlZ2F0aW9uKHtcblx0XHR0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIixcblx0XHRtdWx0aXBsZTogdHJ1ZVxuXHR9KVxuXHRtaWNyb0NoYXJ0VGl0bGUhOiBDb250cm9sW107XG5cblx0cHJpdmF0ZSBfb2xpc3RCaW5kaW5nPzogT0RhdGFWNExpc3RCaW5kaW5nO1xuXG5cdHByaXZhdGUgX29EYXRlVHlwZT86IERhdGVUeXBlO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdGlkPzogc3RyaW5nIHwgdW5kZWZpbmVkIHwgKFByb3BlcnRpZXNPZjxNaWNyb0NoYXJ0Q29udGFpbmVyPiAmICRDb250cm9sU2V0dGluZ3MpLFxuXHRcdHNldHRpbmdzPzogJENvbnRyb2xTZXR0aW5ncyAmIFByb3BlcnRpZXNPZjxNaWNyb0NoYXJ0Q29udGFpbmVyPlxuXHQpIHtcblx0XHRzdXBlcihpZCBhcyBzdHJpbmcsIHNldHRpbmdzKTtcblx0fVxuXG5cdHN0YXRpYyByZW5kZXIocmVuZGVyTWFuYWdlcjogUmVuZGVyTWFuYWdlciwgY29udHJvbDogTWljcm9DaGFydENvbnRhaW5lcik6IHZvaWQge1xuXHRcdHJlbmRlck1hbmFnZXIub3BlblN0YXJ0KFwiZGl2XCIsIGNvbnRyb2wpO1xuXHRcdHJlbmRlck1hbmFnZXIub3BlbkVuZCgpO1xuXHRcdGlmICghY29udHJvbC5zaG93T25seUNoYXJ0KSB7XG5cdFx0XHRjb25zdCBjaGFydFRpdGxlID0gY29udHJvbC5taWNyb0NoYXJ0VGl0bGU7XG5cdFx0XHRpZiAoY2hhcnRUaXRsZSkge1xuXHRcdFx0XHRjaGFydFRpdGxlLmZvckVhY2goZnVuY3Rpb24gKHN1YkNoYXJ0VGl0bGUpIHtcblx0XHRcdFx0XHRyZW5kZXJNYW5hZ2VyLm9wZW5TdGFydChcImRpdlwiKTtcblx0XHRcdFx0XHRyZW5kZXJNYW5hZ2VyLm9wZW5FbmQoKTtcblx0XHRcdFx0XHRyZW5kZXJNYW5hZ2VyLnJlbmRlckNvbnRyb2woc3ViQ2hhcnRUaXRsZSk7XG5cdFx0XHRcdFx0cmVuZGVyTWFuYWdlci5jbG9zZShcImRpdlwiKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRyZW5kZXJNYW5hZ2VyLm9wZW5TdGFydChcImRpdlwiKTtcblx0XHRcdHJlbmRlck1hbmFnZXIub3BlbkVuZCgpO1xuXHRcdFx0Y29uc3QgY2hhcnREZXNjcmlwdGlvbiA9IG5ldyBMYWJlbCh7IHRleHQ6IGNvbnRyb2wuY2hhcnREZXNjcmlwdGlvbiB9KTtcblx0XHRcdHJlbmRlck1hbmFnZXIucmVuZGVyQ29udHJvbChjaGFydERlc2NyaXB0aW9uKTtcblx0XHRcdHJlbmRlck1hbmFnZXIuY2xvc2UoXCJkaXZcIik7XG5cdFx0fVxuXHRcdGNvbnN0IG1pY3JvQ2hhcnQgPSBjb250cm9sLm1pY3JvQ2hhcnQ7XG5cdFx0aWYgKG1pY3JvQ2hhcnQpIHtcblx0XHRcdG1pY3JvQ2hhcnQuYWRkU3R5bGVDbGFzcyhcInNhcFVpVGlueU1hcmdpblRvcEJvdHRvbVwiKTtcblx0XHRcdHJlbmRlck1hbmFnZXIucmVuZGVyQ29udHJvbChtaWNyb0NoYXJ0KTtcblx0XHRcdGlmICghY29udHJvbC5zaG93T25seUNoYXJ0ICYmIGNvbnRyb2wudW9tUGF0aCkge1xuXHRcdFx0XHRjb25zdCBzZXR0aW5ncyA9IGNvbnRyb2wuX2NoZWNrSWZDaGFydFJlcXVpcmVzUnVudGltZUxhYmVscygpID8gdW5kZWZpbmVkIDogeyB0ZXh0OiB7IHBhdGg6IGNvbnRyb2wudW9tUGF0aCB9IH0sXG5cdFx0XHRcdFx0bGFiZWwgPSBuZXcgTGFiZWwoc2V0dGluZ3MpLFxuXHRcdFx0XHRcdGZsZXhCb3ggPSBuZXcgRmxleEJveCh7XG5cdFx0XHRcdFx0XHRhbGlnbkl0ZW1zOiBcIlN0YXJ0XCIsXG5cdFx0XHRcdFx0XHRqdXN0aWZ5Q29udGVudDogXCJFbmRcIixcblx0XHRcdFx0XHRcdGl0ZW1zOiBbbGFiZWxdXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdHJlbmRlck1hbmFnZXIucmVuZGVyQ29udHJvbChmbGV4Qm94KTtcblx0XHRcdFx0Y29udHJvbC5zZXRBZ2dyZWdhdGlvbihcIl91b21MYWJlbFwiLCBsYWJlbCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJlbmRlck1hbmFnZXIuY2xvc2UoXCJkaXZcIik7XG5cdH1cblxuXHRvbkJlZm9yZVJlbmRlcmluZygpOiB2b2lkIHtcblx0XHRjb25zdCBiaW5kaW5nID0gdGhpcy5fZ2V0TGlzdEJpbmRpbmdGb3JSdW50aW1lTGFiZWxzKCk7XG5cblx0XHRpZiAoYmluZGluZykge1xuXHRcdFx0YmluZGluZy5kZXRhY2hFdmVudChcImNoYW5nZVwiLCB0aGlzLl9zZXRSdW50aW1lQ2hhcnRMYWJlbHNBbmRVbml0T2ZNZWFzdXJlLCB0aGlzKTtcblx0XHRcdHRoaXMuX29saXN0QmluZGluZyA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRvbkFmdGVyUmVuZGVyaW5nKCk6IHZvaWQge1xuXHRcdGNvbnN0IGJpbmRpbmcgPSB0aGlzLl9nZXRMaXN0QmluZGluZ0ZvclJ1bnRpbWVMYWJlbHMoKTtcblxuXHRcdGlmICghdGhpcy5fY2hlY2tJZkNoYXJ0UmVxdWlyZXNSdW50aW1lTGFiZWxzKCkpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoYmluZGluZykge1xuXHRcdFx0YmluZGluZy5hdHRhY2hFdmVudChcImNoYW5nZVwiLCB1bmRlZmluZWQsIHRoaXMuX3NldFJ1bnRpbWVDaGFydExhYmVsc0FuZFVuaXRPZk1lYXN1cmUsIHRoaXMpO1xuXHRcdFx0dGhpcy5fb2xpc3RCaW5kaW5nID0gYmluZGluZztcblx0XHR9XG5cdH1cblxuXHRzZXRTaG93T25seUNoYXJ0KHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG5cdFx0aWYgKCF2YWx1ZSAmJiB0aGlzLl9vbGlzdEJpbmRpbmcpIHtcblx0XHRcdHRoaXMuX3NldENoYXJ0TGFiZWxzKCk7XG5cdFx0fVxuXHRcdHRoaXMuc2V0UHJvcGVydHkoXCJzaG93T25seUNoYXJ0XCIsIHZhbHVlLCBmYWxzZSAvKnJlLXJlbmRlcmluZyovKTtcblx0fVxuXG5cdF9jaGVja0lmQ2hhcnRSZXF1aXJlc1J1bnRpbWVMYWJlbHMoKTogYm9vbGVhbiB7XG5cdFx0Y29uc3QgbWljcm9DaGFydCA9IHRoaXMubWljcm9DaGFydDtcblx0XHRpZiAobWljcm9DaGFydCkge1xuXHRcdFx0cmV0dXJuIEJvb2xlYW4oXG5cdFx0XHRcdG1pY3JvQ2hhcnQuaXNBPEFyZWFNaWNyb0NoYXJ0PihcInNhcC5zdWl0ZS51aS5taWNyb2NoYXJ0LkFyZWFNaWNyb0NoYXJ0XCIpIHx8XG5cdFx0XHRcdFx0bWljcm9DaGFydC5pc0E8Q29sdW1uTWljcm9DaGFydD4oXCJzYXAuc3VpdGUudWkubWljcm9jaGFydC5Db2x1bW5NaWNyb0NoYXJ0XCIpIHx8XG5cdFx0XHRcdFx0bWljcm9DaGFydC5pc0E8TGluZU1pY3JvQ2hhcnQ+KFwic2FwLnN1aXRlLnVpLm1pY3JvY2hhcnQuTGluZU1pY3JvQ2hhcnRcIikgfHxcblx0XHRcdFx0XHRtaWNyb0NoYXJ0LmlzQTxDb21wYXJpc29uTWljcm9DaGFydD4oXCJzYXAuc3VpdGUudWkubWljcm9jaGFydC5Db21wYXJpc29uTWljcm9DaGFydFwiKVxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0X2NoZWNrRm9yQ2hhcnRMYWJlbEFnZ3JlZ2F0aW9ucygpOiBib29sZWFuIHtcblx0XHRjb25zdCBtaWNyb0NoYXJ0ID0gdGhpcy5taWNyb0NoYXJ0O1xuXHRcdGlmIChtaWNyb0NoYXJ0KSB7XG5cdFx0XHRyZXR1cm4gQm9vbGVhbihcblx0XHRcdFx0KG1pY3JvQ2hhcnQuaXNBPEFyZWFNaWNyb0NoYXJ0PihcInNhcC5zdWl0ZS51aS5taWNyb2NoYXJ0LkFyZWFNaWNyb0NoYXJ0XCIpICYmXG5cdFx0XHRcdFx0bWljcm9DaGFydC5nZXRBZ2dyZWdhdGlvbihcImZpcnN0WUxhYmVsXCIpICYmXG5cdFx0XHRcdFx0bWljcm9DaGFydC5nZXRBZ2dyZWdhdGlvbihcImxhc3RZTGFiZWxcIikgJiZcblx0XHRcdFx0XHRtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwiZmlyc3RYTGFiZWxcIikgJiZcblx0XHRcdFx0XHRtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwibGFzdFhMYWJlbFwiKSkgfHxcblx0XHRcdFx0XHQobWljcm9DaGFydC5pc0E8Q29sdW1uTWljcm9DaGFydD4oXCJzYXAuc3VpdGUudWkubWljcm9jaGFydC5Db2x1bW5NaWNyb0NoYXJ0XCIpICYmXG5cdFx0XHRcdFx0XHRtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwibGVmdFRvcExhYmVsXCIpICYmXG5cdFx0XHRcdFx0XHRtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwicmlnaHRUb3BMYWJlbFwiKSAmJlxuXHRcdFx0XHRcdFx0bWljcm9DaGFydC5nZXRBZ2dyZWdhdGlvbihcImxlZnRCb3R0b21MYWJlbFwiKSAmJlxuXHRcdFx0XHRcdFx0bWljcm9DaGFydC5nZXRBZ2dyZWdhdGlvbihcInJpZ2h0Qm90dG9tTGFiZWxcIikpIHx8XG5cdFx0XHRcdFx0bWljcm9DaGFydC5pc0E8TGluZU1pY3JvQ2hhcnQ+KFwic2FwLnN1aXRlLnVpLm1pY3JvY2hhcnQuTGluZU1pY3JvQ2hhcnRcIilcblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdF9nZXRMaXN0QmluZGluZ0ZvclJ1bnRpbWVMYWJlbHMoKTogT0RhdGFWNExpc3RCaW5kaW5nIHwgZmFsc2Uge1xuXHRcdGNvbnN0IG1pY3JvQ2hhcnQgPSB0aGlzLm1pY3JvQ2hhcnQ7XG5cdFx0bGV0IGJpbmRpbmc7XG5cdFx0aWYgKG1pY3JvQ2hhcnQpIHtcblx0XHRcdGlmIChtaWNyb0NoYXJ0LmlzQTxBcmVhTWljcm9DaGFydD4oXCJzYXAuc3VpdGUudWkubWljcm9jaGFydC5BcmVhTWljcm9DaGFydFwiKSkge1xuXHRcdFx0XHRjb25zdCBjaGFydCA9IG1pY3JvQ2hhcnQuZ2V0Q2hhcnQoKTtcblx0XHRcdFx0YmluZGluZyA9IGNoYXJ0ICYmIGNoYXJ0LmdldEJpbmRpbmcoXCJwb2ludHNcIik7XG5cdFx0XHR9IGVsc2UgaWYgKG1pY3JvQ2hhcnQuaXNBPENvbHVtbk1pY3JvQ2hhcnQ+KFwic2FwLnN1aXRlLnVpLm1pY3JvY2hhcnQuQ29sdW1uTWljcm9DaGFydFwiKSkge1xuXHRcdFx0XHRiaW5kaW5nID0gbWljcm9DaGFydC5nZXRCaW5kaW5nKFwiY29sdW1uc1wiKTtcblx0XHRcdH0gZWxzZSBpZiAobWljcm9DaGFydC5pc0E8TGluZU1pY3JvQ2hhcnQ+KFwic2FwLnN1aXRlLnVpLm1pY3JvY2hhcnQuTGluZU1pY3JvQ2hhcnRcIikpIHtcblx0XHRcdFx0Y29uc3QgbGluZXMgPSBtaWNyb0NoYXJ0LmdldExpbmVzKCk7XG5cdFx0XHRcdGJpbmRpbmcgPSBsaW5lcyAmJiBsaW5lcy5sZW5ndGggJiYgbGluZXNbMF0uZ2V0QmluZGluZyhcInBvaW50c1wiKTtcblx0XHRcdH0gZWxzZSBpZiAobWljcm9DaGFydC5pc0E8Q29tcGFyaXNvbk1pY3JvQ2hhcnQ+KFwic2FwLnN1aXRlLnVpLm1pY3JvY2hhcnQuQ29tcGFyaXNvbk1pY3JvQ2hhcnRcIikpIHtcblx0XHRcdFx0YmluZGluZyA9IG1pY3JvQ2hhcnQuZ2V0QmluZGluZyhcImRhdGFcIik7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGJpbmRpbmcgaW5zdGFuY2VvZiBPRGF0YVY0TGlzdEJpbmRpbmcgPyBiaW5kaW5nIDogZmFsc2U7XG5cdH1cblxuXHRhc3luYyBfc2V0UnVudGltZUNoYXJ0TGFiZWxzQW5kVW5pdE9mTWVhc3VyZSgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCBsaXN0QmluZGluZyA9IHRoaXMuX29saXN0QmluZGluZyxcblx0XHRcdGNvbnRleHRzID0gbGlzdEJpbmRpbmc/LmdldENvbnRleHRzKCksXG5cdFx0XHRtZWFzdXJlcyA9IHRoaXMubWVhc3VyZXMsXG5cdFx0XHRkaW1lbnNpb24gPSB0aGlzLmRpbWVuc2lvbixcblx0XHRcdHVuaXRPZk1lYXN1cmVQYXRoID0gdGhpcy51b21QYXRoLFxuXHRcdFx0bWljcm9DaGFydCA9IHRoaXMubWljcm9DaGFydCxcblx0XHRcdHVuaXRPZk1lYXN1cmVMYWJlbCA9IHRoaXMuX3VvbUxhYmVsO1xuXG5cdFx0aWYgKHVuaXRPZk1lYXN1cmVMYWJlbCAmJiB1bml0T2ZNZWFzdXJlUGF0aCAmJiBjb250ZXh0cyAmJiBjb250ZXh0cy5sZW5ndGggJiYgIXRoaXMuc2hvd09ubHlDaGFydCkge1xuXHRcdFx0Y29uc3QgdW9tTGFiZWwgPSBhd2FpdCBjb250ZXh0c1swXS5yZXF1ZXN0UHJvcGVydHkodW5pdE9mTWVhc3VyZVBhdGgpO1xuXHRcdFx0dW5pdE9mTWVhc3VyZUxhYmVsLnNldFRleHQodW9tTGFiZWwpO1xuXHRcdH0gZWxzZSBpZiAodW5pdE9mTWVhc3VyZUxhYmVsKSB7XG5cdFx0XHR1bml0T2ZNZWFzdXJlTGFiZWwuc2V0VGV4dChcIlwiKTtcblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuX2NoZWNrRm9yQ2hhcnRMYWJlbEFnZ3JlZ2F0aW9ucygpKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKCFjb250ZXh0cyB8fCAhY29udGV4dHMubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLl9zZXRDaGFydExhYmVscygpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IGZpcnN0Q29udGV4dCA9IGNvbnRleHRzWzBdLFxuXHRcdFx0bGFzdENvbnRleHQgPSBjb250ZXh0c1tjb250ZXh0cy5sZW5ndGggLSAxXSxcblx0XHRcdGxpbmVzUG9taXNlczogUHJvbWlzZTxtb2JpbGVsaWJyYXJ5LlZhbHVlQ29sb3I+W10gPSBbXSxcblx0XHRcdGxpbmVDaGFydCA9IG1pY3JvQ2hhcnQ/LmlzQTxMaW5lTWljcm9DaGFydD4oXCJzYXAuc3VpdGUudWkubWljcm9jaGFydC5MaW5lTWljcm9DaGFydFwiKSxcblx0XHRcdGN1cnJlbnRNaW5YID0gYXdhaXQgZmlyc3RDb250ZXh0LnJlcXVlc3RQcm9wZXJ0eShkaW1lbnNpb24pLFxuXHRcdFx0Y3VycmVudE1heFggPSBhd2FpdCBsYXN0Q29udGV4dC5yZXF1ZXN0UHJvcGVydHkoZGltZW5zaW9uKTtcblx0XHRsZXQgY3VycmVudE1pblksXG5cdFx0XHRjdXJyZW50TWF4WSxcblx0XHRcdG1pblg6IERhdGFQb2ludFZhbHVlVHlwZSA9IHsgdmFsdWU6IEluZmluaXR5IH0sXG5cdFx0XHRtYXhYOiBEYXRhUG9pbnRWYWx1ZVR5cGUgPSB7IHZhbHVlOiAtSW5maW5pdHkgfSxcblx0XHRcdG1pblk6IERhdGFQb2ludFZhbHVlVHlwZSA9IHsgdmFsdWU6IEluZmluaXR5IH0sXG5cdFx0XHRtYXhZOiBEYXRhUG9pbnRWYWx1ZVR5cGUgPSB7IHZhbHVlOiAtSW5maW5pdHkgfTtcblxuXHRcdG1pblggPSBjdXJyZW50TWluWCA9PSB1bmRlZmluZWQgPyBtaW5YIDogeyBjb250ZXh0OiBmaXJzdENvbnRleHQsIHZhbHVlOiBjdXJyZW50TWluWCB9O1xuXHRcdG1heFggPSBjdXJyZW50TWF4WCA9PSB1bmRlZmluZWQgPyBtYXhYIDogeyBjb250ZXh0OiBsYXN0Q29udGV4dCwgdmFsdWU6IGN1cnJlbnRNYXhYIH07XG5cblx0XHRpZiAobWVhc3VyZXM/Lmxlbmd0aCkge1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBtZWFzdXJlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRjb25zdCBtZWFzdXJlID0gbWVhc3VyZXNbaV07XG5cdFx0XHRcdGN1cnJlbnRNaW5ZID0gYXdhaXQgZmlyc3RDb250ZXh0LnJlcXVlc3RQcm9wZXJ0eShtZWFzdXJlKTtcblx0XHRcdFx0Y3VycmVudE1heFkgPSBhd2FpdCBsYXN0Q29udGV4dC5yZXF1ZXN0UHJvcGVydHkobWVhc3VyZSk7XG5cdFx0XHRcdG1heFkgPSBjdXJyZW50TWF4WSA+IG1heFkudmFsdWUgPyB7IGNvbnRleHQ6IGxhc3RDb250ZXh0LCB2YWx1ZTogY3VycmVudE1heFksIGluZGV4OiBsaW5lQ2hhcnQgPyBpIDogMCB9IDogbWF4WTtcblx0XHRcdFx0bWluWSA9IGN1cnJlbnRNaW5ZIDwgbWluWS52YWx1ZSA/IHsgY29udGV4dDogZmlyc3RDb250ZXh0LCB2YWx1ZTogY3VycmVudE1pblksIGluZGV4OiBsaW5lQ2hhcnQgPyBpIDogMCB9IDogbWluWTtcblx0XHRcdFx0aWYgKGxpbmVDaGFydCkge1xuXHRcdFx0XHRcdGxpbmVzUG9taXNlcy5wdXNoKHRoaXMuX2dldENyaXRpY2FsaXR5RnJvbVBvaW50KHsgY29udGV4dDogbGFzdENvbnRleHQsIHZhbHVlOiBjdXJyZW50TWF4WSwgaW5kZXg6IGkgfSkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHRoaXMuX3NldENoYXJ0TGFiZWxzKG1pblkudmFsdWUsIG1heFkudmFsdWUsIG1pblgudmFsdWUsIG1heFgudmFsdWUpO1xuXHRcdGlmIChsaW5lQ2hhcnQpIHtcblx0XHRcdGNvbnN0IGNvbG9ycyA9IGF3YWl0IFByb21pc2UuYWxsKGxpbmVzUG9taXNlcyk7XG5cdFx0XHRpZiAoY29sb3JzPy5sZW5ndGgpIHtcblx0XHRcdFx0Y29uc3QgbGluZXMgPSBtaWNyb0NoYXJ0LmdldExpbmVzKCk7XG5cdFx0XHRcdGxpbmVzLmZvckVhY2goZnVuY3Rpb24gKGxpbmU6IExpbmVNaWNyb0NoYXJ0TGluZSwgaTogbnVtYmVyKSB7XG5cdFx0XHRcdFx0bGluZS5zZXRDb2xvcihjb2xvcnNbaV0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0YXdhaXQgdGhpcy5fc2V0Q2hhcnRMYWJlbHNDb2xvcnMobWF4WSwgbWluWSk7XG5cdFx0fVxuXHR9XG5cblx0YXN5bmMgX3NldENoYXJ0TGFiZWxzQ29sb3JzKG1heFk6IERhdGFQb2ludFZhbHVlVHlwZSwgbWluWTogRGF0YVBvaW50VmFsdWVUeXBlKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgbWljcm9DaGFydCA9IHRoaXMubWljcm9DaGFydDtcblxuXHRcdGNvbnN0IGNyaXRpY2FsaXR5ID0gYXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuX2dldENyaXRpY2FsaXR5RnJvbVBvaW50KG1pblkpLCB0aGlzLl9nZXRDcml0aWNhbGl0eUZyb21Qb2ludChtYXhZKV0pO1xuXG5cdFx0aWYgKG1pY3JvQ2hhcnQ/LmlzQTxBcmVhTWljcm9DaGFydD4oXCJzYXAuc3VpdGUudWkubWljcm9jaGFydC5BcmVhTWljcm9DaGFydFwiKSkge1xuXHRcdFx0KG1pY3JvQ2hhcnQuZ2V0QWdncmVnYXRpb24oXCJmaXJzdFlMYWJlbFwiKSBhcyBNYW5hZ2VkT2JqZWN0KS5zZXRQcm9wZXJ0eShcImNvbG9yXCIsIGNyaXRpY2FsaXR5WzBdLCB0cnVlKTtcblx0XHRcdChtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwibGFzdFlMYWJlbFwiKSBhcyBNYW5hZ2VkT2JqZWN0KS5zZXRQcm9wZXJ0eShcImNvbG9yXCIsIGNyaXRpY2FsaXR5WzFdLCB0cnVlKTtcblx0XHR9IGVsc2UgaWYgKG1pY3JvQ2hhcnQ/LmlzQTxDb2x1bW5NaWNyb0NoYXJ0PihcInNhcC5zdWl0ZS51aS5taWNyb2NoYXJ0LkNvbHVtbk1pY3JvQ2hhcnRcIikpIHtcblx0XHRcdChtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwibGVmdFRvcExhYmVsXCIpIGFzIE1hbmFnZWRPYmplY3QpLnNldFByb3BlcnR5KFwiY29sb3JcIiwgY3JpdGljYWxpdHlbMF0sIHRydWUpO1xuXHRcdFx0KG1pY3JvQ2hhcnQuZ2V0QWdncmVnYXRpb24oXCJyaWdodFRvcExhYmVsXCIpIGFzIE1hbmFnZWRPYmplY3QpLnNldFByb3BlcnR5KFwiY29sb3JcIiwgY3JpdGljYWxpdHlbMV0sIHRydWUpO1xuXHRcdH1cblx0fVxuXG5cdF9zZXRDaGFydExhYmVscyhsZWZ0VG9wPzogbnVtYmVyLCByaWdodFRvcD86IG51bWJlciwgbGVmdEJvdHRvbT86IG51bWJlciwgcmlnaHRCb3R0b20/OiBudW1iZXIpOiB2b2lkIHtcblx0XHRjb25zdCBtaWNyb0NoYXJ0ID0gdGhpcy5taWNyb0NoYXJ0O1xuXG5cdFx0bGVmdFRvcCA9IHRoaXMuX2Zvcm1hdERhdGVBbmROdW1iZXJWYWx1ZShsZWZ0VG9wLCB0aGlzLm1lYXN1cmVQcmVjaXNpb24sIHRoaXMubWVhc3VyZVNjYWxlKSBhcyBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdFx0cmlnaHRUb3AgPSB0aGlzLl9mb3JtYXREYXRlQW5kTnVtYmVyVmFsdWUocmlnaHRUb3AsIHRoaXMubWVhc3VyZVByZWNpc2lvbiwgdGhpcy5tZWFzdXJlU2NhbGUpIGFzIG51bWJlciB8IHVuZGVmaW5lZDtcblx0XHRsZWZ0Qm90dG9tID0gdGhpcy5fZm9ybWF0RGF0ZUFuZE51bWJlclZhbHVlKGxlZnRCb3R0b20sIHRoaXMuZGltZW5zaW9uUHJlY2lzaW9uLCB1bmRlZmluZWQsIHRoaXMuY2FsZW5kYXJQYXR0ZXJuKSBhc1xuXHRcdFx0fCBudW1iZXJcblx0XHRcdHwgdW5kZWZpbmVkO1xuXHRcdHJpZ2h0Qm90dG9tID0gdGhpcy5fZm9ybWF0RGF0ZUFuZE51bWJlclZhbHVlKHJpZ2h0Qm90dG9tLCB0aGlzLmRpbWVuc2lvblByZWNpc2lvbiwgdW5kZWZpbmVkLCB0aGlzLmNhbGVuZGFyUGF0dGVybikgYXNcblx0XHRcdHwgbnVtYmVyXG5cdFx0XHR8IHVuZGVmaW5lZDtcblxuXHRcdGlmIChtaWNyb0NoYXJ0Py5pc0E8QXJlYU1pY3JvQ2hhcnQ+KFwic2FwLnN1aXRlLnVpLm1pY3JvY2hhcnQuQXJlYU1pY3JvQ2hhcnRcIikpIHtcblx0XHRcdChtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwiZmlyc3RZTGFiZWxcIikgYXMgTWFuYWdlZE9iamVjdCkuc2V0UHJvcGVydHkoXCJsYWJlbFwiLCBsZWZ0VG9wLCBmYWxzZSk7XG5cdFx0XHQobWljcm9DaGFydC5nZXRBZ2dyZWdhdGlvbihcImxhc3RZTGFiZWxcIikgYXMgTWFuYWdlZE9iamVjdCkuc2V0UHJvcGVydHkoXCJsYWJlbFwiLCByaWdodFRvcCwgZmFsc2UpO1xuXHRcdFx0KG1pY3JvQ2hhcnQuZ2V0QWdncmVnYXRpb24oXCJmaXJzdFhMYWJlbFwiKSBhcyBNYW5hZ2VkT2JqZWN0KS5zZXRQcm9wZXJ0eShcImxhYmVsXCIsIGxlZnRCb3R0b20sIGZhbHNlKTtcblx0XHRcdChtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwibGFzdFhMYWJlbFwiKSBhcyBNYW5hZ2VkT2JqZWN0KS5zZXRQcm9wZXJ0eShcImxhYmVsXCIsIHJpZ2h0Qm90dG9tLCBmYWxzZSk7XG5cdFx0fSBlbHNlIGlmIChtaWNyb0NoYXJ0Py5pc0E8Q29sdW1uTWljcm9DaGFydD4oXCJzYXAuc3VpdGUudWkubWljcm9jaGFydC5Db2x1bW5NaWNyb0NoYXJ0XCIpKSB7XG5cdFx0XHQobWljcm9DaGFydC5nZXRBZ2dyZWdhdGlvbihcImxlZnRUb3BMYWJlbFwiKSBhcyBNYW5hZ2VkT2JqZWN0KS5zZXRQcm9wZXJ0eShcImxhYmVsXCIsIGxlZnRUb3AsIGZhbHNlKTtcblx0XHRcdChtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwicmlnaHRUb3BMYWJlbFwiKSBhcyBNYW5hZ2VkT2JqZWN0KS5zZXRQcm9wZXJ0eShcImxhYmVsXCIsIHJpZ2h0VG9wLCBmYWxzZSk7XG5cdFx0XHQobWljcm9DaGFydC5nZXRBZ2dyZWdhdGlvbihcImxlZnRCb3R0b21MYWJlbFwiKSBhcyBNYW5hZ2VkT2JqZWN0KS5zZXRQcm9wZXJ0eShcImxhYmVsXCIsIGxlZnRCb3R0b20sIGZhbHNlKTtcblx0XHRcdChtaWNyb0NoYXJ0LmdldEFnZ3JlZ2F0aW9uKFwicmlnaHRCb3R0b21MYWJlbFwiKSBhcyBNYW5hZ2VkT2JqZWN0KS5zZXRQcm9wZXJ0eShcImxhYmVsXCIsIHJpZ2h0Qm90dG9tLCBmYWxzZSk7XG5cdFx0fSBlbHNlIGlmIChtaWNyb0NoYXJ0Py5pc0E8TGluZU1pY3JvQ2hhcnQ+KFwic2FwLnN1aXRlLnVpLm1pY3JvY2hhcnQuTGluZU1pY3JvQ2hhcnRcIikpIHtcblx0XHRcdG1pY3JvQ2hhcnQuc2V0UHJvcGVydHkoXCJsZWZ0VG9wTGFiZWxcIiwgbGVmdFRvcCwgZmFsc2UpO1xuXHRcdFx0bWljcm9DaGFydC5zZXRQcm9wZXJ0eShcInJpZ2h0VG9wTGFiZWxcIiwgcmlnaHRUb3AsIGZhbHNlKTtcblx0XHRcdG1pY3JvQ2hhcnQuc2V0UHJvcGVydHkoXCJsZWZ0Qm90dG9tTGFiZWxcIiwgbGVmdEJvdHRvbSwgZmFsc2UpO1xuXHRcdFx0bWljcm9DaGFydC5zZXRQcm9wZXJ0eShcInJpZ2h0Qm90dG9tTGFiZWxcIiwgcmlnaHRCb3R0b20sIGZhbHNlKTtcblx0XHR9XG5cdH1cblxuXHRhc3luYyBfZ2V0Q3JpdGljYWxpdHlGcm9tUG9pbnQocG9pbnQ6IERhdGFQb2ludFZhbHVlVHlwZSk6IFByb21pc2U8bW9iaWxlbGlicmFyeS5WYWx1ZUNvbG9yPiB7XG5cdFx0aWYgKHBvaW50Py5jb250ZXh0KSB7XG5cdFx0XHRjb25zdCBtZXRhTW9kZWwgPSB0aGlzLmdldE1vZGVsKCkgJiYgKHRoaXMuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsKS5nZXRNZXRhTW9kZWwoKSxcblx0XHRcdFx0ZGF0YVBvaW50UXVhbGlmaWVycyA9IHRoaXMuZGF0YVBvaW50UXVhbGlmaWVycyxcblx0XHRcdFx0bWV0YVBhdGggPSBtZXRhTW9kZWwgaW5zdGFuY2VvZiBPRGF0YU1ldGFNb2RlbCAmJiBwb2ludC5jb250ZXh0LmdldFBhdGgoKSAmJiBtZXRhTW9kZWwuZ2V0TWV0YVBhdGgocG9pbnQuY29udGV4dC5nZXRQYXRoKCkpO1xuXHRcdFx0aWYgKG1ldGFNb2RlbCAmJiB0eXBlb2YgbWV0YVBhdGggPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdFx0Y29uc3QgZGF0YVBvaW50ID0gYXdhaXQgbWV0YU1vZGVsLnJlcXVlc3RPYmplY3QoXG5cdFx0XHRcdFx0YCR7bWV0YVBhdGh9L0Ake1VJQW5ub3RhdGlvblRlcm1zLkRhdGFQb2ludH0ke1xuXHRcdFx0XHRcdFx0cG9pbnQuaW5kZXggIT09IHVuZGVmaW5lZCAmJiBkYXRhUG9pbnRRdWFsaWZpZXJzW3BvaW50LmluZGV4XSA/IGAjJHtkYXRhUG9pbnRRdWFsaWZpZXJzW3BvaW50LmluZGV4XX1gIDogXCJcIlxuXHRcdFx0XHRcdH1gXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGlmIChkYXRhUG9pbnQpIHtcblx0XHRcdFx0XHRsZXQgY3JpdGljYWxpdHkgPSBWYWx1ZUNvbG9yLk5ldXRyYWw7XG5cdFx0XHRcdFx0Y29uc3QgY29udGV4dCA9IHBvaW50LmNvbnRleHQ7XG5cblx0XHRcdFx0XHRpZiAoZGF0YVBvaW50LkNyaXRpY2FsaXR5KSB7XG5cdFx0XHRcdFx0XHRjcml0aWNhbGl0eSA9IHRoaXMuX2NyaXRpY2FsaXR5KGRhdGFQb2ludC5Dcml0aWNhbGl0eSwgY29udGV4dCk7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChkYXRhUG9pbnQuQ3JpdGljYWxpdHlDYWxjdWxhdGlvbikge1xuXHRcdFx0XHRcdFx0Y29uc3QgY3JpdGljYWxpdHlDYWxjdWxhdGlvbiA9IGRhdGFQb2ludC5Dcml0aWNhbGl0eUNhbGN1bGF0aW9uO1xuXHRcdFx0XHRcdFx0Y29uc3QgZ2V0VmFsdWUgPSBmdW5jdGlvbiAodmFsdWVQcm9wZXJ0eTogeyAkUGF0aD86IHN0cmluZzsgJERlY2ltYWw/OiBudW1iZXIgfSk6IG51bWJlciB7XG5cdFx0XHRcdFx0XHRcdGxldCB2YWx1ZVJlc3BvbnNlO1xuXHRcdFx0XHRcdFx0XHRpZiAodmFsdWVQcm9wZXJ0eT8uJFBhdGgpIHtcblx0XHRcdFx0XHRcdFx0XHR2YWx1ZVJlc3BvbnNlID0gY29udGV4dC5nZXRPYmplY3QodmFsdWVQcm9wZXJ0eS4kUGF0aCk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAodmFsdWVQcm9wZXJ0eT8uaGFzT3duUHJvcGVydHkoXCIkRGVjaW1hbFwiKSkge1xuXHRcdFx0XHRcdFx0XHRcdHZhbHVlUmVzcG9uc2UgPSB2YWx1ZVByb3BlcnR5LiREZWNpbWFsO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHJldHVybiB2YWx1ZVJlc3BvbnNlO1xuXHRcdFx0XHRcdFx0fTtcblxuXHRcdFx0XHRcdFx0Y3JpdGljYWxpdHkgPSB0aGlzLl9jcml0aWNhbGl0eUNhbGN1bGF0aW9uKFxuXHRcdFx0XHRcdFx0XHRjcml0aWNhbGl0eUNhbGN1bGF0aW9uLkltcHJvdmVtZW50RGlyZWN0aW9uLiRFbnVtTWVtYmVyLFxuXHRcdFx0XHRcdFx0XHRwb2ludC52YWx1ZSxcblx0XHRcdFx0XHRcdFx0Z2V0VmFsdWUoY3JpdGljYWxpdHlDYWxjdWxhdGlvbi5EZXZpYXRpb25SYW5nZUxvd1ZhbHVlKSxcblx0XHRcdFx0XHRcdFx0Z2V0VmFsdWUoY3JpdGljYWxpdHlDYWxjdWxhdGlvbi5Ub2xlcmFuY2VSYW5nZUxvd1ZhbHVlKSxcblx0XHRcdFx0XHRcdFx0Z2V0VmFsdWUoY3JpdGljYWxpdHlDYWxjdWxhdGlvbi5BY2NlcHRhbmNlUmFuZ2VMb3dWYWx1ZSksXG5cdFx0XHRcdFx0XHRcdGdldFZhbHVlKGNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uQWNjZXB0YW5jZVJhbmdlSGlnaFZhbHVlKSxcblx0XHRcdFx0XHRcdFx0Z2V0VmFsdWUoY3JpdGljYWxpdHlDYWxjdWxhdGlvbi5Ub2xlcmFuY2VSYW5nZUhpZ2hWYWx1ZSksXG5cdFx0XHRcdFx0XHRcdGdldFZhbHVlKGNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uRGV2aWF0aW9uUmFuZ2VIaWdoVmFsdWUpXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHJldHVybiBjcml0aWNhbGl0eTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoVmFsdWVDb2xvci5OZXV0cmFsKTtcblx0fVxuXG5cdF9jcml0aWNhbGl0eShjcml0aWNhbGl0eTogeyAkUGF0aD86IHN0cmluZzsgJEVudW1NZW1iZXI/OiBzdHJpbmcgfSwgY29udGV4dDogQ29udGV4dCk6IG1vYmlsZWxpYnJhcnkuVmFsdWVDb2xvciB7XG5cdFx0bGV0IGNyaXRpY2FsaXR5VmFsdWUsIHJlc3VsdDtcblx0XHRpZiAoY3JpdGljYWxpdHkuJFBhdGgpIHtcblx0XHRcdGNyaXRpY2FsaXR5VmFsdWUgPSBjb250ZXh0LmdldE9iamVjdChjcml0aWNhbGl0eS4kUGF0aCk7XG5cdFx0XHRpZiAoY3JpdGljYWxpdHlWYWx1ZSA9PT0gXCJOZWdhdGl2ZVwiIHx8IGNyaXRpY2FsaXR5VmFsdWUudG9TdHJpbmcoKSA9PT0gXCIxXCIpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5FcnJvcjtcblx0XHRcdH0gZWxzZSBpZiAoY3JpdGljYWxpdHlWYWx1ZSA9PT0gXCJDcml0aWNhbFwiIHx8IGNyaXRpY2FsaXR5VmFsdWUudG9TdHJpbmcoKSA9PT0gXCIyXCIpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5Dcml0aWNhbDtcblx0XHRcdH0gZWxzZSBpZiAoY3JpdGljYWxpdHlWYWx1ZSA9PT0gXCJQb3NpdGl2ZVwiIHx8IGNyaXRpY2FsaXR5VmFsdWUudG9TdHJpbmcoKSA9PT0gXCIzXCIpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5Hb29kO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoY3JpdGljYWxpdHkuJEVudW1NZW1iZXIpIHtcblx0XHRcdGNyaXRpY2FsaXR5VmFsdWUgPSBjcml0aWNhbGl0eS4kRW51bU1lbWJlcjtcblx0XHRcdGlmIChjcml0aWNhbGl0eVZhbHVlLmluY2x1ZGVzKFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ3JpdGljYWxpdHlUeXBlL05lZ2F0aXZlXCIpKSB7XG5cdFx0XHRcdHJlc3VsdCA9IFZhbHVlQ29sb3IuRXJyb3I7XG5cdFx0XHR9IGVsc2UgaWYgKGNyaXRpY2FsaXR5VmFsdWUuaW5jbHVkZXMoXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5Dcml0aWNhbGl0eVR5cGUvUG9zaXRpdmVcIikpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5Hb29kO1xuXHRcdFx0fSBlbHNlIGlmIChjcml0aWNhbGl0eVZhbHVlLmluY2x1ZGVzKFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ3JpdGljYWxpdHlUeXBlL0NyaXRpY2FsXCIpKSB7XG5cdFx0XHRcdHJlc3VsdCA9IFZhbHVlQ29sb3IuQ3JpdGljYWw7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0TG9nLndhcm5pbmcoXCJDYXNlIG5vdCBzdXBwb3J0ZWQsIHJldHVybmluZyB0aGUgZGVmYXVsdCBWYWx1ZSBOZXV0cmFsXCIpO1xuXHRcdFx0cmV0dXJuIFZhbHVlQ29sb3IuTmV1dHJhbDtcblx0XHR9XG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fVxuXG5cdF9jcml0aWNhbGl0eUNhbGN1bGF0aW9uKFxuXHRcdGltcHJvdmVtZW50RGlyZWN0aW9uOiBzdHJpbmcsXG5cdFx0dmFsdWU6IG51bWJlcixcblx0XHRkZXZpYXRpb25Mb3c/OiBudW1iZXIsXG5cdFx0dG9sZXJhbmNlTG93PzogbnVtYmVyLFxuXHRcdGFjY2VwdGFuY2VMb3c/OiBudW1iZXIsXG5cdFx0YWNjZXB0YW5jZUhpZ2g/OiBudW1iZXIsXG5cdFx0dG9sZXJhbmNlSGlnaD86IG51bWJlcixcblx0XHRkZXZpYXRpb25IaWdoPzogbnVtYmVyXG5cdCk6IG1vYmlsZWxpYnJhcnkuVmFsdWVDb2xvciB7XG5cdFx0bGV0IHJlc3VsdDtcblxuXHRcdC8vIERlYWxpbmcgd2l0aCBEZWNpbWFsIGFuZCBQYXRoIGJhc2VkIGJpbmdkaW5nc1xuXHRcdGRldmlhdGlvbkxvdyA9IGRldmlhdGlvbkxvdyA9PSB1bmRlZmluZWQgPyAtSW5maW5pdHkgOiBkZXZpYXRpb25Mb3c7XG5cdFx0dG9sZXJhbmNlTG93ID0gdG9sZXJhbmNlTG93ID09IHVuZGVmaW5lZCA/IGRldmlhdGlvbkxvdyA6IHRvbGVyYW5jZUxvdztcblx0XHRhY2NlcHRhbmNlTG93ID0gYWNjZXB0YW5jZUxvdyA9PSB1bmRlZmluZWQgPyB0b2xlcmFuY2VMb3cgOiBhY2NlcHRhbmNlTG93O1xuXHRcdGRldmlhdGlvbkhpZ2ggPSBkZXZpYXRpb25IaWdoID09IHVuZGVmaW5lZCA/IEluZmluaXR5IDogZGV2aWF0aW9uSGlnaDtcblx0XHR0b2xlcmFuY2VIaWdoID0gdG9sZXJhbmNlSGlnaCA9PSB1bmRlZmluZWQgPyBkZXZpYXRpb25IaWdoIDogdG9sZXJhbmNlSGlnaDtcblx0XHRhY2NlcHRhbmNlSGlnaCA9IGFjY2VwdGFuY2VIaWdoID09IHVuZGVmaW5lZCA/IHRvbGVyYW5jZUhpZ2ggOiBhY2NlcHRhbmNlSGlnaDtcblxuXHRcdC8vIENyZWF0aW5nIHJ1bnRpbWUgZXhwcmVzc2lvbiBiaW5kaW5nIGZyb20gY3JpdGljYWxpdHkgY2FsY3VsYXRpb24gZm9yIENyaXRpY2FsaXR5IFN0YXRlXG5cdFx0aWYgKGltcHJvdmVtZW50RGlyZWN0aW9uLmluY2x1ZGVzKFwiTWluaW1pemVcIikpIHtcblx0XHRcdGlmICh2YWx1ZSA8PSBhY2NlcHRhbmNlSGlnaCkge1xuXHRcdFx0XHRyZXN1bHQgPSBWYWx1ZUNvbG9yLkdvb2Q7XG5cdFx0XHR9IGVsc2UgaWYgKHZhbHVlIDw9IHRvbGVyYW5jZUhpZ2gpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5OZXV0cmFsO1xuXHRcdFx0fSBlbHNlIGlmICh2YWx1ZSA8PSBkZXZpYXRpb25IaWdoKSB7XG5cdFx0XHRcdHJlc3VsdCA9IFZhbHVlQ29sb3IuQ3JpdGljYWw7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXN1bHQgPSBWYWx1ZUNvbG9yLkVycm9yO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoaW1wcm92ZW1lbnREaXJlY3Rpb24uaW5jbHVkZXMoXCJNYXhpbWl6ZVwiKSkge1xuXHRcdFx0aWYgKHZhbHVlID49IGFjY2VwdGFuY2VMb3cpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5Hb29kO1xuXHRcdFx0fSBlbHNlIGlmICh2YWx1ZSA+PSB0b2xlcmFuY2VMb3cpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5OZXV0cmFsO1xuXHRcdFx0fSBlbHNlIGlmICh2YWx1ZSA+PSBkZXZpYXRpb25Mb3cpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5Dcml0aWNhbDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJlc3VsdCA9IFZhbHVlQ29sb3IuRXJyb3I7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChpbXByb3ZlbWVudERpcmVjdGlvbi5pbmNsdWRlcyhcIlRhcmdldFwiKSkge1xuXHRcdFx0aWYgKHZhbHVlIDw9IGFjY2VwdGFuY2VIaWdoICYmIHZhbHVlID49IGFjY2VwdGFuY2VMb3cpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5Hb29kO1xuXHRcdFx0fSBlbHNlIGlmICgodmFsdWUgPj0gdG9sZXJhbmNlTG93ICYmIHZhbHVlIDwgYWNjZXB0YW5jZUxvdykgfHwgKHZhbHVlID4gYWNjZXB0YW5jZUhpZ2ggJiYgdmFsdWUgPD0gdG9sZXJhbmNlSGlnaCkpIHtcblx0XHRcdFx0cmVzdWx0ID0gVmFsdWVDb2xvci5OZXV0cmFsO1xuXHRcdFx0fSBlbHNlIGlmICgodmFsdWUgPj0gZGV2aWF0aW9uTG93ICYmIHZhbHVlIDwgdG9sZXJhbmNlTG93KSB8fCAodmFsdWUgPiB0b2xlcmFuY2VIaWdoICYmIHZhbHVlIDw9IGRldmlhdGlvbkhpZ2gpKSB7XG5cdFx0XHRcdHJlc3VsdCA9IFZhbHVlQ29sb3IuQ3JpdGljYWw7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXN1bHQgPSBWYWx1ZUNvbG9yLkVycm9yO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0TG9nLndhcm5pbmcoXCJDYXNlIG5vdCBzdXBwb3J0ZWQsIHJldHVybmluZyB0aGUgZGVmYXVsdCBWYWx1ZSBOZXV0cmFsXCIpO1xuXHRcdFx0cmV0dXJuIFZhbHVlQ29sb3IuTmV1dHJhbDtcblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cblx0X2Zvcm1hdERhdGVBbmROdW1iZXJWYWx1ZSh2YWx1ZT86IG51bWJlciB8IHN0cmluZywgcHJlY2lzaW9uPzogbnVtYmVyLCBzY2FsZT86IG51bWJlciwgcGF0dGVybj86IHN0cmluZyk6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKHBhdHRlcm4pIHtcblx0XHRcdHJldHVybiB0aGlzLl9nZXRTZW1hbnRpY3NWYWx1ZUZvcm1hdHRlcihwYXR0ZXJuKS5mb3JtYXRWYWx1ZSh2YWx1ZSwgXCJzdHJpbmdcIik7XG5cdFx0fSBlbHNlIGlmICghaXNOYU4odmFsdWUgYXMgbnVtYmVyKSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuX2dldExhYmVsTnVtYmVyRm9ybWF0dGVyKHByZWNpc2lvbiwgc2NhbGUpLmZvcm1hdCh2YWx1ZSBhcyBudW1iZXIpO1xuXHRcdH1cblxuXHRcdHJldHVybiB2YWx1ZTtcblx0fVxuXG5cdF9nZXRTZW1hbnRpY3NWYWx1ZUZvcm1hdHRlcihwYXR0ZXJuOiBzdHJpbmcpOiBEYXRlVHlwZSB7XG5cdFx0aWYgKCF0aGlzLl9vRGF0ZVR5cGUpIHtcblx0XHRcdHRoaXMuX29EYXRlVHlwZSA9IG5ldyBEYXRlVHlwZSh7XG5cdFx0XHRcdHN0eWxlOiBcInNob3J0XCIsXG5cdFx0XHRcdHNvdXJjZToge1xuXHRcdFx0XHRcdHBhdHRlcm5cblx0XHRcdFx0fVxuXHRcdFx0fSBhcyB1bmtub3duIGFzIHsgc291cmNlOiBvYmplY3QgfSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuX29EYXRlVHlwZTtcblx0fVxuXG5cdF9nZXRMYWJlbE51bWJlckZvcm1hdHRlcihwcmVjaXNpb24/OiBudW1iZXIsIHNjYWxlPzogbnVtYmVyKTogTnVtYmVyRm9ybWF0IHtcblx0XHRyZXR1cm4gTnVtYmVyRm9ybWF0LmdldEZsb2F0SW5zdGFuY2Uoe1xuXHRcdFx0c3R5bGU6IFwic2hvcnRcIixcblx0XHRcdHNob3dTY2FsZTogdHJ1ZSxcblx0XHRcdHByZWNpc2lvbjogKHR5cGVvZiBwcmVjaXNpb24gPT09IFwibnVtYmVyXCIgJiYgcHJlY2lzaW9uKSB8fCAwLFxuXHRcdFx0ZGVjaW1hbHM6ICh0eXBlb2Ygc2NhbGUgPT09IFwibnVtYmVyXCIgJiYgc2NhbGUpIHx8IDBcblx0XHR9KTtcblx0fVxuXG5cdGdldEFjY2Vzc2liaWxpdHlJbmZvKCk6IEFjY2Vzc2liaWxpdHlJbmZvIHtcblx0XHRyZXR1cm4gdGhpcy5taWNyb0NoYXJ0Py5nZXRBY2Nlc3NpYmlsaXR5SW5mbygpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1pY3JvQ2hhcnRDb250YWluZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBT0E7RUFFQTtFQUVBO0VBRUE7RUFlQSxNQUFNQSxVQUFVLEdBQUdDLGFBQWEsQ0FBQ0QsVUFBVTtFQU0zQztBQUNBO0FBQ0E7QUFDQTtFQUhBLElBS01FLG1CQUFtQixJQUFBQyxJQUFBLEdBRHhCQyxjQUFjLENBQUMsOENBQThDLENBQUMsRUFBQUMsS0FBQSxHQUU3REMsUUFBUSxDQUFDO0lBQ1RDLElBQUksRUFBRSxTQUFTO0lBQ2ZDLFlBQVksRUFBRTtFQUNmLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBR0RILFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUUsUUFBUTtJQUNkQyxZQUFZLEVBQUVFO0VBQ2YsQ0FBQyxDQUFDLEVB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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { UIAnnotationTerms } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
2
2
|
import Log from "sap/base/Log";
|
|
3
3
|
import type { PropertiesOf } from "sap/fe/base/ClassSupport";
|
|
4
|
-
import { aggregation,defineUI5Class,event,property } from "sap/fe/base/ClassSupport";
|
|
4
|
+
import { aggregation, defineUI5Class, event, property } from "sap/fe/base/ClassSupport";
|
|
5
5
|
import FlexBox from "sap/m/FlexBox";
|
|
6
6
|
import Label from "sap/m/Label";
|
|
7
7
|
import mobilelibrary from "sap/m/library";
|
|
@@ -35,7 +35,6 @@ type DataPointValueType = {
|
|
|
35
35
|
/**
|
|
36
36
|
* Container Control for Micro Chart and UoM.
|
|
37
37
|
* @private
|
|
38
|
-
* @experimental This module is only for internal/experimental use!
|
|
39
38
|
*/
|
|
40
39
|
@defineUI5Class("sap.fe.macros.microchart.MicroChartContainer")
|
|
41
40
|
class MicroChartContainer extends Control {
|