@sapui5/sap.fe.macros 1.141.1 → 1.142.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 +4 -10
- package/src/sap/fe/macros/Breadcrumbs.tsx +2 -8
- package/src/sap/fe/macros/Chart.js +34 -23
- package/src/sap/fe/macros/Chart.tsx +25 -11
- package/src/sap/fe/macros/CollaborativeDraftHandler.js +48 -31
- package/src/sap/fe/macros/CollaborativeDraftHandler.tsx +51 -26
- package/src/sap/fe/macros/CollectionBindingInfo.js +8 -2
- package/src/sap/fe/macros/CollectionBindingInfo.ts +11 -6
- package/src/sap/fe/macros/CommonHelper.js +14 -24
- package/src/sap/fe/macros/CommonHelper.ts +18 -25
- package/src/sap/fe/macros/Field.js +30 -13
- package/src/sap/fe/macros/Field.ts +60 -30
- package/src/sap/fe/macros/FooterContent.js +5 -2
- package/src/sap/fe/macros/FooterContent.tsx +6 -3
- package/src/sap/fe/macros/KPITag.js +1 -1
- package/src/sap/fe/macros/KPITag.tsx +3 -1
- package/src/sap/fe/macros/MacroAPI.js +3 -2
- package/src/sap/fe/macros/MacroAPI.ts +2 -2
- package/src/sap/fe/macros/MessageButton.js +3 -2
- package/src/sap/fe/macros/MessageButton.tsx +5 -2
- package/src/sap/fe/macros/MicroChart.js +10 -6
- package/src/sap/fe/macros/MicroChart.tsx +8 -2
- package/src/sap/fe/macros/MultiValueField.js +22 -36
- package/src/sap/fe/macros/MultiValueField.tsx +34 -66
- package/src/sap/fe/macros/RichTextEditor.js +3 -4
- package/src/sap/fe/macros/RichTextEditor.tsx +2 -3
- package/src/sap/fe/macros/Status.js +35 -8
- package/src/sap/fe/macros/Status.tsx +23 -2
- package/src/sap/fe/macros/ValueHelp.js +5 -2
- package/src/sap/fe/macros/ValueHelp.tsx +5 -0
- package/src/sap/fe/macros/ai/EasyFilterBar.js +7 -34
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +6 -35
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +31 -7
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +33 -6
- package/src/sap/fe/macros/chart/Action.js +25 -2
- package/src/sap/fe/macros/chart/Action.ts +13 -0
- package/src/sap/fe/macros/chart/ActionGroup.js +25 -2
- package/src/sap/fe/macros/chart/ActionGroup.ts +13 -0
- package/src/sap/fe/macros/chart/ChartDelegate.js +8 -8
- package/src/sap/fe/macros/chart/ChartDelegate.ts +17 -12
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +54 -11
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +70 -11
- package/src/sap/fe/macros/chart/OverflowGroup.js +62 -0
- package/src/sap/fe/macros/chart/OverflowGroup.ts +22 -0
- package/src/sap/fe/macros/controls/FilterBar.js +39 -3
- package/src/sap/fe/macros/controls/FilterBar.ts +42 -1
- package/src/sap/fe/macros/controls/RadioButtons.js +18 -5
- package/src/sap/fe/macros/controls/RadioButtons.tsx +10 -1
- 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 +37 -9
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +45 -6
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.js +4 -2
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.tsx +3 -1
- package/src/sap/fe/macros/field/FieldFormatOptions.js +3 -3
- package/src/sap/fe/macros/field/FieldFormatOptions.ts +1 -1
- package/src/sap/fe/macros/field/FieldHelper.js +4 -3
- package/src/sap/fe/macros/field/FieldHelper.ts +7 -1
- package/src/sap/fe/macros/field/FieldRuntime.js +38 -8
- package/src/sap/fe/macros/field/FieldRuntime.ts +65 -7
- package/src/sap/fe/macros/field/FieldRuntimeHelper.js +3 -34
- package/src/sap/fe/macros/field/FieldRuntimeHelper.ts +28 -53
- package/src/sap/fe/macros/field/FieldTemplating.js +5 -4
- package/src/sap/fe/macros/field/FieldTemplating.ts +6 -4
- package/src/sap/fe/macros/filter/FilterFieldHelper.js +6 -4
- package/src/sap/fe/macros/filter/FilterFieldHelper.ts +7 -2
- package/src/sap/fe/macros/filter/FilterUtils.js +100 -36
- package/src/sap/fe/macros/filter/FilterUtils.ts +127 -39
- package/src/sap/fe/macros/filterBar/ExtendedSemanticDateOperators.js +2 -2
- package/src/sap/fe/macros/filterBar/ExtendedSemanticDateOperators.ts +1 -1
- package/src/sap/fe/macros/filterBar/FilterBar.block.js +4 -3
- package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +19 -8
- package/src/sap/fe/macros/filterBar/FilterBarAPI.js +10 -7
- package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +31 -16
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.js +4 -3
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.ts +5 -2
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +4 -3
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +3 -2
- package/src/sap/fe/macros/form/Form.block.js +27 -2
- package/src/sap/fe/macros/form/Form.block.ts +31 -11
- package/src/sap/fe/macros/form/FormActionButtons.fragment.xml +13 -3
- package/src/sap/fe/macros/form/FormContainer.block.js +96 -65
- package/src/sap/fe/macros/form/FormContainer.block.ts +104 -65
- package/src/sap/fe/macros/formatters/TableFormatter.js +13 -10
- package/src/sap/fe/macros/formatters/TableFormatter.ts +11 -9
- package/src/sap/fe/macros/formatters/VisualFilterFormatter.js +6 -4
- package/src/sap/fe/macros/formatters/VisualFilterFormatter.ts +5 -5
- package/src/sap/fe/macros/inlineEdit/InlineEdit.js +5 -5
- package/src/sap/fe/macros/inlineEdit/InlineEdit.ts +4 -4
- package/src/sap/fe/macros/insights/InsightsService.js +3 -2
- package/src/sap/fe/macros/insights/InsightsService.ts +2 -1
- package/src/sap/fe/macros/internal/DataPoint.js +7 -8
- package/src/sap/fe/macros/internal/DataPoint.tsx +6 -9
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +8 -6
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +7 -8
- package/src/sap/fe/macros/internal/field/EditStyle.js +9 -20
- package/src/sap/fe/macros/internal/field/EditStyle.tsx +17 -41
- package/src/sap/fe/macros/internal/field/FieldBlockStructure.js +2 -2
- package/src/sap/fe/macros/internal/field/FieldBlockStructure.tsx +1 -1
- package/src/sap/fe/macros/internal/field/FieldStructure.js +1 -2
- package/src/sap/fe/macros/internal/field/FieldStructure.tsx +0 -2
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +7 -7
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +17 -11
- package/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +6 -2
- package/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +5 -1
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.js +9 -6
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.ts +7 -5
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +4 -4
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +6 -6
- package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +5 -2
- package/src/sap/fe/macros/library.js +3 -3
- package/src/sap/fe/macros/library.ts +2 -0
- package/src/sap/fe/macros/mdc/adapter/StateHelper.js +15 -5
- package/src/sap/fe/macros/mdc/adapter/StateHelper.ts +21 -5
- package/src/sap/fe/macros/messagebundle.properties +7 -5
- package/src/sap/fe/macros/messagebundle_ar.properties +12 -3
- package/src/sap/fe/macros/messagebundle_bg.properties +13 -4
- package/src/sap/fe/macros/messagebundle_ca.properties +12 -3
- package/src/sap/fe/macros/messagebundle_cnr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_cs.properties +11 -2
- package/src/sap/fe/macros/messagebundle_cy.properties +12 -3
- package/src/sap/fe/macros/messagebundle_da.properties +12 -3
- package/src/sap/fe/macros/messagebundle_de.properties +16 -7
- package/src/sap/fe/macros/messagebundle_el.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en_GB.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +12 -3
- package/src/sap/fe/macros/messagebundle_es.properties +12 -3
- package/src/sap/fe/macros/messagebundle_es_MX.properties +12 -3
- package/src/sap/fe/macros/messagebundle_et.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fi.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +12 -3
- package/src/sap/fe/macros/messagebundle_hi.properties +12 -3
- package/src/sap/fe/macros/messagebundle_hr.properties +13 -4
- package/src/sap/fe/macros/messagebundle_hu.properties +12 -3
- package/src/sap/fe/macros/messagebundle_id.properties +18 -9
- package/src/sap/fe/macros/messagebundle_it.properties +12 -3
- package/src/sap/fe/macros/messagebundle_iw.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ja.properties +12 -3
- package/src/sap/fe/macros/messagebundle_kk.properties +11 -2
- package/src/sap/fe/macros/messagebundle_ko.properties +13 -4
- package/src/sap/fe/macros/messagebundle_lt.properties +12 -3
- package/src/sap/fe/macros/messagebundle_lv.properties +12 -3
- package/src/sap/fe/macros/messagebundle_mk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ms.properties +12 -3
- package/src/sap/fe/macros/messagebundle_nl.properties +12 -3
- package/src/sap/fe/macros/messagebundle_no.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pl.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pt.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ro.properties +13 -4
- package/src/sap/fe/macros/messagebundle_ru.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sh.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sl.properties +13 -4
- package/src/sap/fe/macros/messagebundle_sr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sv.properties +12 -3
- package/src/sap/fe/macros/messagebundle_th.properties +11 -2
- package/src/sap/fe/macros/messagebundle_tr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_uk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_vi.properties +13 -4
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +12 -3
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +12 -3
- package/src/sap/fe/macros/richtexteditor/ButtonGroup.js +2 -2
- package/src/sap/fe/macros/richtexteditor/ButtonGroup.ts +2 -2
- package/src/sap/fe/macros/table/Action.js +15 -2
- package/src/sap/fe/macros/table/Action.ts +11 -1
- package/src/sap/fe/macros/table/ActionGroup.js +15 -2
- package/src/sap/fe/macros/table/ActionGroup.ts +8 -0
- package/src/sap/fe/macros/table/ActionGroupOverride.js +14 -2
- package/src/sap/fe/macros/table/ActionGroupOverride.ts +7 -0
- package/src/sap/fe/macros/table/ActionOverride.js +14 -2
- package/src/sap/fe/macros/table/ActionOverride.ts +7 -0
- package/src/sap/fe/macros/table/ActionsTemplating.js +16 -2
- package/src/sap/fe/macros/table/ActionsTemplating.tsx +15 -0
- package/src/sap/fe/macros/table/MdcTableTemplate.js +91 -10
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +131 -10
- package/src/sap/fe/macros/table/OverflowGroups.js +59 -0
- package/src/sap/fe/macros/table/OverflowGroups.ts +27 -0
- package/src/sap/fe/macros/table/Table.block.js +70 -29
- package/src/sap/fe/macros/table/Table.block.tsx +65 -12
- package/src/sap/fe/macros/table/TableAPI.js +169 -131
- package/src/sap/fe/macros/table/TableAPI.ts +58 -28
- package/src/sap/fe/macros/table/TableDefinition.js +19 -2
- package/src/sap/fe/macros/table/TableDefinition.ts +17 -1
- package/src/sap/fe/macros/table/TableEventHandlerProvider.js +4 -3
- package/src/sap/fe/macros/table/TableEventHandlerProvider.ts +8 -9
- package/src/sap/fe/macros/table/TableHelper.js +5 -2
- package/src/sap/fe/macros/table/TableHelper.ts +5 -2
- package/src/sap/fe/macros/table/TableRuntime.js +2 -2
- package/src/sap/fe/macros/table/TableRuntime.ts +4 -6
- package/src/sap/fe/macros/table/TableSizeHelper.js +4 -4
- package/src/sap/fe/macros/table/TableSizeHelper.ts +6 -11
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +67 -26
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +108 -118
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.js +2 -2
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.tsx +1 -1
- package/src/sap/fe/macros/table/massEdit/MassEditField.js +1 -1
- package/src/sap/fe/macros/table/massEdit/MassEditField.tsx +3 -6
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.js +6 -5
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.ts +10 -4
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.js +7 -9
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.ts +7 -8
- package/src/sap/fe/macros/table/mixin/TableExport.js +1 -1
- package/src/sap/fe/macros/table/mixin/TableExport.ts +3 -3
- package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.js +4 -4
- package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.ts +3 -3
- package/src/sap/fe/macros/visualfilters/VisualFilter.js +20 -2
- package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +28 -6
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +6 -3
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +4 -3
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveCharts.js +3 -3
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveCharts.tsx +10 -4
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveDonutChart.fragment.xml +1 -1
|
@@ -46,6 +46,39 @@ sap.ui.define(["sap/base/Log", "sap/base/util/ObjectPath", "sap/fe/core/CommonUt
|
|
|
46
46
|
}
|
|
47
47
|
return sCurrentHash;
|
|
48
48
|
},
|
|
49
|
+
/**
|
|
50
|
+
* Creates filters for ValueList requests based on ValueListParameterIn and ValueListParameterInOut annotations.
|
|
51
|
+
* @param valueListInfo The ValueList annotation information
|
|
52
|
+
* @param propertyId The ID property of the IdAndDesciption of the text arrangement annotation
|
|
53
|
+
* @param propertyValue The value for the propertyId property
|
|
54
|
+
* @param bindingContext The binding context to get values from
|
|
55
|
+
* @returns Array of filters for the ValueList request
|
|
56
|
+
*/
|
|
57
|
+
createValueListFilters: function (valueListInfo, propertyId, propertyValue, bindingContext) {
|
|
58
|
+
// Start with the key filter
|
|
59
|
+
const filters = [new Filter({
|
|
60
|
+
path: propertyId,
|
|
61
|
+
operator: "EQ",
|
|
62
|
+
value1: propertyValue
|
|
63
|
+
})];
|
|
64
|
+
if (bindingContext && valueListInfo.Parameters) {
|
|
65
|
+
const relevantParameters = valueListInfo.Parameters.filter(parameter => {
|
|
66
|
+
const isInOrInOut = parameter.$Type === "com.sap.vocabularies.Common.v1.ValueListParameterIn" || parameter.$Type === "com.sap.vocabularies.Common.v1.ValueListParameterInOut";
|
|
67
|
+
return isInOrInOut && parameter.LocalDataProperty?.$PropertyPath && parameter.ValueListProperty && parameter.ValueListProperty !== propertyId;
|
|
68
|
+
});
|
|
69
|
+
relevantParameters.forEach(parameter => {
|
|
70
|
+
const localValue = bindingContext.getProperty(parameter.LocalDataProperty.$PropertyPath);
|
|
71
|
+
if (localValue !== undefined && localValue !== null && localValue !== "") {
|
|
72
|
+
filters.push(new Filter({
|
|
73
|
+
path: parameter.ValueListProperty,
|
|
74
|
+
operator: "EQ",
|
|
75
|
+
value1: localValue
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return filters;
|
|
81
|
+
},
|
|
49
82
|
/**
|
|
50
83
|
* Method to retrieve text from the value list for DataField.
|
|
51
84
|
* This is a formatter in disguise.
|
|
@@ -61,6 +94,7 @@ sap.ui.define(["sap/base/Log", "sap/base/util/ObjectPath", "sap/fe/core/CommonUt
|
|
|
61
94
|
if (sPropertyValue) {
|
|
62
95
|
oMetaModel = this.getModel()?.getMetaModel() || CommonHelper.getMetaModel();
|
|
63
96
|
sPropertyName = oMetaModel.getObject(`${sPropertyFullPath}@sapui.name`);
|
|
97
|
+
const bindingContext = this.getBindingContext();
|
|
64
98
|
return oMetaModel.requestValueListInfo(sPropertyFullPath, true).then(function (mValueListInfo) {
|
|
65
99
|
// take the "" one if exists, otherwise take the first one in the object TODO: to be discussed
|
|
66
100
|
const oValueListInfo = mValueListInfo[mValueListInfo[""] ? "" : Object.keys(mValueListInfo)[0]];
|
|
@@ -75,15 +109,11 @@ sap.ui.define(["sap/base/Log", "sap/base/util/ObjectPath", "sap/fe/core/CommonUt
|
|
|
75
109
|
const oTextAnnotation = oMetaModelValueList.getObject(`/${oValueListInfo.CollectionPath}/${oParamWithKey.ValueListProperty}@com.sap.vocabularies.Common.v1.Text`);
|
|
76
110
|
if (oTextAnnotation && oTextAnnotation.$Path) {
|
|
77
111
|
sTextProperty = oTextAnnotation.$Path;
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
operator: "EQ",
|
|
81
|
-
value1: sPropertyValue
|
|
82
|
-
});
|
|
83
|
-
const oListBinding = oValueListModel.bindList(`/${oValueListInfo.CollectionPath}`, undefined, undefined, oFilter, {
|
|
112
|
+
const filters = FieldRuntime.createValueListFilters(oValueListInfo, oParamWithKey.ValueListProperty, sPropertyValue, bindingContext);
|
|
113
|
+
const listBinding = oValueListModel.bindList(`/${oValueListInfo.CollectionPath}`, undefined, undefined, filters, {
|
|
84
114
|
$select: sTextProperty
|
|
85
115
|
});
|
|
86
|
-
return
|
|
116
|
+
return listBinding.requestContexts(0, 2);
|
|
87
117
|
} else {
|
|
88
118
|
sDisplayFormat = "Value";
|
|
89
119
|
return sPropertyValue;
|
|
@@ -185,4 +215,4 @@ sap.ui.define(["sap/base/Log", "sap/base/util/ObjectPath", "sap/fe/core/CommonUt
|
|
|
185
215
|
ObjectPath.set("sap.fe.macros.field.FieldRuntime", FieldRuntime);
|
|
186
216
|
return FieldRuntime;
|
|
187
217
|
}, false);
|
|
188
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaWVsZFJ1bnRpbWUiLCJ1cGxvYWRQcm9taXNlcyIsImNyZWF0aW5nSW5hY3RpdmVSb3ciLCJpc0RyYWZ0SW5kaWNhdG9yVmlzaWJsZSIsInNQcm9wZXJ0eVBhdGgiLCJzU2VtYW50aWNLZXlIYXNEcmFmdEluZGljYXRvciIsIkhhc0RyYWZ0RW50aXR5IiwiSXNBY3RpdmVFbnRpdHkiLCJoaWRlRHJhZnRJbmZvIiwidW5kZWZpbmVkIiwib25WYWxpZGF0ZUZpZWxkR3JvdXAiLCJvRXZlbnQiLCJvU291cmNlRmllbGQiLCJnZXRTb3VyY2UiLCJ2aWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3IiwiY29udHJvbGxlciIsImdldENvbnRyb2xsZXIiLCJvRkVDb250cm9sbGVyIiwiRmllbGRSdW50aW1lSGVscGVyIiwiZ2V0RXh0ZW5zaW9uQ29udHJvbGxlciIsIl9zaWRlRWZmZWN0cyIsImhhbmRsZUZpZWxkR3JvdXBDaGFuZ2UiLCJfZm5GaXhIYXNoUXVlcnlTdHJpbmciLCJzQ3VycmVudEhhc2giLCJpbmNsdWRlcyIsInNwbGl0IiwicmV0cmlldmVUZXh0RnJvbVZhbHVlTGlzdCIsInNQcm9wZXJ0eVZhbHVlIiwic1Byb3BlcnR5RnVsbFBhdGgiLCJzRGlzcGxheUZvcm1hdCIsInNUZXh0UHJvcGVydHkiLCJvTWV0YU1vZGVsIiwic1Byb3BlcnR5TmFtZSIsImdldE1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwiQ29tbW9uSGVscGVyIiwiZ2V0T2JqZWN0IiwicmVxdWVzdFZhbHVlTGlzdEluZm8iLCJ0aGVuIiwibVZhbHVlTGlzdEluZm8iLCJvVmFsdWVMaXN0SW5mbyIsIk9iamVjdCIsImtleXMiLCJvVmFsdWVMaXN0TW9kZWwiLCIkbW9kZWwiLCJvTWV0YU1vZGVsVmFsdWVMaXN0Iiwib1BhcmFtV2l0aEtleSIsIlBhcmFtZXRlcnMiLCJmaW5kIiwib1BhcmFtZXRlciIsIkxvY2FsRGF0YVByb3BlcnR5IiwiJFByb3BlcnR5UGF0aCIsIlZhbHVlTGlzdFByb3BlcnR5IiwiRXJyb3IiLCJvVGV4dEFubm90YXRpb24iLCJDb2xsZWN0aW9uUGF0aCIsIiRQYXRoIiwib0ZpbHRlciIsIkZpbHRlciIsInBhdGgiLCJvcGVyYXRvciIsInZhbHVlMSIsIm9MaXN0QmluZGluZyIsImJpbmRMaXN0IiwiJHNlbGVjdCIsInJlcXVlc3RDb250ZXh0cyIsImFDb250ZXh0cyIsInNEZXNjcmlwdGlvbiIsIkxpYnJhcnkiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsImdldFRleHQiLCJjYXRjaCIsIm9FcnJvciIsImVycm9yT2JqIiwic01zZyIsInN0YXR1cyIsIm1lc3NhZ2UiLCJMb2ciLCJlcnJvciIsImRpc3BsYXlBZ2dyZWdhdGVEZXRhaWxzIiwiZXZlbnQiLCJhZ2dyZWdhdGVkUHJvcGVydHlQYXRoIiwibGluayIsImFuYWx5dGljYWxUYWJsZSIsIkZQTUhlbHBlciIsImdldE1kY1RhYmxlIiwicm93Q29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0IiwidGFibGVSb3dCaW5kaW5nIiwiZ2V0QmluZGluZyIsInJvd0NvbnRleHREYXRhIiwicm93U3BlY2lmaWNGaWx0ZXIiLCJyb3dGaWx0ZXIiLCJnZXRGaWx0ZXIiLCJwdXNoIiwiYWxsRmlsdGVycyIsImNvbmNhdCIsImdldEZpbHRlcnMiLCJhZ2dyZWdhdGlvbiIsImdldEFnZ3JlZ2F0aW9uIiwidW5pdE9yQ3VycmVuY3lOYW1lIiwiYWdncmVnYXRlIiwidW5pdCIsImdyb3VwIiwiZ3JhbmRUb3RhbCIsInN1YnRvdGFscyIsInRhYmxlSXRlbSIsImdldERlcGVuZGVudHMiLCJjbG9uZSIsImN1cnJlbmN5T3JRdWFudGl0eUVuYWJsZWRMYXlvdXQiLCJIQm94IiwicmVuZGVyVHlwZSIsImp1c3RpZnlDb250ZW50IiwiaXRlbXMiLCJhZ2dyZWdhdGlvblBhcmFtZXRlcnMiLCJzZWFyY2giLCJvSXRlbXNCaW5kaW5nSW5mbyIsImdldFJlc29sdmVkUGF0aCIsImZpbHRlcnMiLCJwYXJhbWV0ZXJzIiwiJCRhZ2dyZWdhdGlvbiIsInNvcnRlciIsIlNvcnRlciIsImlzUG9wb3ZlckZvckdyYW5kVG90YWwiLCJwb3BvdmVyIiwiVXRpbCIsImNyZWF0ZU9yVXBkYXRlTXVsdGlVbml0UG9wb3ZlciIsImdldElkIiwiY29udHJvbCIsIml0ZW1zQmluZGluZ0luZm8iLCJsaXN0SXRlbUNvbnRlbnRUZW1wbGF0ZSIsImFkZERlcGVuZGVudCIsImZuT25DbG9zZSIsInJlbW92ZURlcGVuZGVudCIsImRldGFjaEV2ZW50IiwiZGVzdHJveSIsImF0dGFjaEV2ZW50Iiwib3BlbkJ5IiwiT2JqZWN0UGF0aCIsInNldCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRmllbGRSdW50aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IE9iamVjdFBhdGggZnJvbSBcInNhcC9iYXNlL3V0aWwvT2JqZWN0UGF0aFwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IEZQTUhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9GUE1IZWxwZXJcIjtcbmltcG9ydCBDb21tb25IZWxwZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvQ29tbW9uSGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7ICRIQm94U2V0dGluZ3MgfSBmcm9tIFwic2FwL20vSEJveFwiO1xuaW1wb3J0IEhCb3ggZnJvbSBcInNhcC9tL0hCb3hcIjtcbmltcG9ydCB0eXBlIExpbmsgZnJvbSBcInNhcC9tL0xpbmtcIjtcbmltcG9ydCB0eXBlIFJlc3BvbnNpdmVQb3BvdmVyIGZyb20gXCJzYXAvbS9SZXNwb25zaXZlUG9wb3ZlclwiO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBVdGlsIH0gZnJvbSBcInNhcC9tL3RhYmxlL1V0aWxcIjtcbmltcG9ydCB0eXBlIEV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IHR5cGUgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgeyBDb250cm9sJFZhbGlkYXRlRmllbGRHcm91cEV2ZW50IH0gZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBMaWJyYXJ5IGZyb20gXCJzYXAvdWkvY29yZS9MaWJcIjtcbmltcG9ydCBGaWx0ZXIgZnJvbSBcInNhcC91aS9tb2RlbC9GaWx0ZXJcIjtcbmltcG9ydCBTb3J0ZXIgZnJvbSBcInNhcC91aS9tb2RlbC9Tb3J0ZXJcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YUxpc3RCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFMaXN0QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuaW1wb3J0IEZpZWxkUnVudGltZUhlbHBlciBmcm9tIFwiLi9GaWVsZFJ1bnRpbWVIZWxwZXJcIjtcblxuLyoqXG4gKiBTdGF0aWMgY2xhc3MgdXNlZCBieSBcInNhcC51aS5tZGMuRmllbGRcIiBkdXJpbmcgcnVudGltZVxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgRmllbGRSdW50aW1lID0ge1xuXHR1cGxvYWRQcm9taXNlczoge30gYXMgUmVjb3JkPHN0cmluZywgeyByZXNvbHZlOiBGdW5jdGlvbjsgcmVqZWN0OiBGdW5jdGlvbiB9Pixcblx0Y3JlYXRpbmdJbmFjdGl2ZVJvdzogZmFsc2UsXG5cblx0LyoqXG5cdCAqIFRoaXMgaXMgYSBmb3JtYXR0ZXIgaW4gZGlzZ3Vpc2UuXG5cdCAqIEBwYXJhbSBzUHJvcGVydHlQYXRoXG5cdCAqIEBwYXJhbSBzU2VtYW50aWNLZXlIYXNEcmFmdEluZGljYXRvclxuXHQgKiBAcGFyYW0gSGFzRHJhZnRFbnRpdHlcblx0ICogQHBhcmFtIElzQWN0aXZlRW50aXR5XG5cdCAqIEBwYXJhbSBoaWRlRHJhZnRJbmZvXG5cdCAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGRyYWZ0IGluZGljYXRvciBzaG91bGQgYmUgZGlzcGxheWVkLlxuXHQgKi9cblx0aXNEcmFmdEluZGljYXRvclZpc2libGU6IGZ1bmN0aW9uIChcblx0XHRzUHJvcGVydHlQYXRoOiBzdHJpbmcsXG5cdFx0c1NlbWFudGljS2V5SGFzRHJhZnRJbmRpY2F0b3I6IHN0cmluZyxcblx0XHRIYXNEcmFmdEVudGl0eT86IGJvb2xlYW4sXG5cdFx0SXNBY3RpdmVFbnRpdHk/OiBib29sZWFuLFxuXHRcdGhpZGVEcmFmdEluZm8/OiBib29sZWFuXG5cdCk6IGJvb2xlYW4ge1xuXHRcdGlmIChJc0FjdGl2ZUVudGl0eSAhPT0gdW5kZWZpbmVkICYmIEhhc0RyYWZ0RW50aXR5ICE9PSB1bmRlZmluZWQgJiYgKCFJc0FjdGl2ZUVudGl0eSB8fCBIYXNEcmFmdEVudGl0eSkgJiYgIWhpZGVEcmFmdEluZm8pIHtcblx0XHRcdHJldHVybiBzUHJvcGVydHlQYXRoID09PSBzU2VtYW50aWNLZXlIYXNEcmFmdEluZGljYXRvcjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogSGFuZGxlciBmb3IgdGhlIHZhbGlkYXRlRmllbGRHcm91cCBldmVudC5cblx0ICogQHBhcmFtIG9FdmVudCBUaGUgZXZlbnQgb2JqZWN0IHBhc3NlZCBieSB0aGUgdmFsaWRhdGVGaWVsZEdyb3VwIGV2ZW50XG5cdCAqL1xuXHRvblZhbGlkYXRlRmllbGRHcm91cDogZnVuY3Rpb24gKG9FdmVudDogQ29udHJvbCRWYWxpZGF0ZUZpZWxkR3JvdXBFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IG9Tb3VyY2VGaWVsZCA9IG9FdmVudC5nZXRTb3VyY2UoKSBhcyBNYW5hZ2VkT2JqZWN0O1xuXHRcdGNvbnN0IHZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KG9Tb3VyY2VGaWVsZCksXG5cdFx0XHRjb250cm9sbGVyID0gdmlldy5nZXRDb250cm9sbGVyKCk7XG5cblx0XHRjb25zdCBvRkVDb250cm9sbGVyID0gRmllbGRSdW50aW1lSGVscGVyLmdldEV4dGVuc2lvbkNvbnRyb2xsZXIoY29udHJvbGxlcik7XG5cdFx0b0ZFQ29udHJvbGxlci5fc2lkZUVmZmVjdHMuaGFuZGxlRmllbGRHcm91cENoYW5nZShvRXZlbnQpO1xuXHR9LFxuXG5cdF9mbkZpeEhhc2hRdWVyeVN0cmluZzogZnVuY3Rpb24gKHNDdXJyZW50SGFzaDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRpZiAoc0N1cnJlbnRIYXNoPy5pbmNsdWRlcyhcIj9cIikpIHtcblx0XHRcdC8vIHNDdXJyZW50SGFzaCBjYW4gY29udGFpbiBxdWVyeSBzdHJpbmcsIGN1dCBpdCBvZmYhXG5cdFx0XHRzQ3VycmVudEhhc2ggPSBzQ3VycmVudEhhc2guc3BsaXQoXCI/XCIpWzBdO1xuXHRcdH1cblx0XHRyZXR1cm4gc0N1cnJlbnRIYXNoO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBNZXRob2QgdG8gcmV0cmlldmUgdGV4dCBmcm9tIHRoZSB2YWx1ZSBsaXN0IGZvciBEYXRhRmllbGQuXG5cdCAqIFRoaXMgaXMgYSBmb3JtYXR0ZXIgaW4gZGlzZ3Vpc2UuXG5cdCAqIEBwYXJhbSBzUHJvcGVydHlWYWx1ZSBUaGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGRhdGEgZmllbGQuXG5cdCAqIEBwYXJhbSBzUHJvcGVydHlGdWxsUGF0aCBUaGUgZnVsbCBwYXRoIHRvIHRoZSBwcm9wZXJ0eSBpbiB0aGUgbWV0YWRhdGEuXG5cdCAqIEBwYXJhbSBzRGlzcGxheUZvcm1hdCBUaGUgZGlzcGxheSBmb3JtYXQgZm9yIHRoZSBkYXRhIGZpZWxkLlxuXHQgKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIHZhbHVlIGJhc2VkIG9uIHRoZSBkaXNwbGF5IGZvcm1hdC5cblx0ICovXG5cdHJldHJpZXZlVGV4dEZyb21WYWx1ZUxpc3Q6IGFzeW5jIGZ1bmN0aW9uIChcblx0XHR0aGlzOiBDb250cm9sLFxuXHRcdHNQcm9wZXJ0eVZhbHVlOiBzdHJpbmcsXG5cdFx0c1Byb3BlcnR5RnVsbFBhdGg6IHN0cmluZyxcblx0XHRzRGlzcGxheUZvcm1hdDogc3RyaW5nXG5cdCk6IFByb21pc2U8c3RyaW5nPiB7XG5cdFx0bGV0IHNUZXh0UHJvcGVydHk6IHN0cmluZztcblx0XHRsZXQgb01ldGFNb2RlbDtcblx0XHRsZXQgc1Byb3BlcnR5TmFtZTogc3RyaW5nO1xuXHRcdGlmIChzUHJvcGVydHlWYWx1ZSkge1xuXHRcdFx0b01ldGFNb2RlbCA9ICh0aGlzLmdldE1vZGVsKCk/LmdldE1ldGFNb2RlbCgpIGFzIE9EYXRhTWV0YU1vZGVsKSB8fCBDb21tb25IZWxwZXIuZ2V0TWV0YU1vZGVsKCk7XG5cdFx0XHRzUHJvcGVydHlOYW1lID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYCR7c1Byb3BlcnR5RnVsbFBhdGh9QHNhcHVpLm5hbWVgKTtcblx0XHRcdHJldHVybiBvTWV0YU1vZGVsXG5cdFx0XHRcdC5yZXF1ZXN0VmFsdWVMaXN0SW5mbyhzUHJvcGVydHlGdWxsUGF0aCwgdHJ1ZSlcblx0XHRcdFx0LnRoZW4oZnVuY3Rpb24gKG1WYWx1ZUxpc3RJbmZvKSB7XG5cdFx0XHRcdFx0Ly8gdGFrZSB0aGUgXCJcIiBvbmUgaWYgZXhpc3RzLCBvdGhlcndpc2UgdGFrZSB0aGUgZmlyc3Qgb25lIGluIHRoZSBvYmplY3QgVE9ETzogdG8gYmUgZGlzY3Vzc2VkXG5cdFx0XHRcdFx0Y29uc3Qgb1ZhbHVlTGlzdEluZm8gPSBtVmFsdWVMaXN0SW5mb1ttVmFsdWVMaXN0SW5mb1tcIlwiXSA/IFwiXCIgOiBPYmplY3Qua2V5cyhtVmFsdWVMaXN0SW5mbylbMF1dO1xuXHRcdFx0XHRcdGNvbnN0IG9WYWx1ZUxpc3RNb2RlbCA9IG9WYWx1ZUxpc3RJbmZvLiRtb2RlbDtcblx0XHRcdFx0XHRjb25zdCBvTWV0YU1vZGVsVmFsdWVMaXN0ID0gb1ZhbHVlTGlzdE1vZGVsLmdldE1ldGFNb2RlbCgpO1xuXHRcdFx0XHRcdGNvbnN0IG9QYXJhbVdpdGhLZXkgPSBvVmFsdWVMaXN0SW5mby5QYXJhbWV0ZXJzLmZpbmQoZnVuY3Rpb24gKG9QYXJhbWV0ZXI6IHtcblx0XHRcdFx0XHRcdExvY2FsRGF0YVByb3BlcnR5PzogeyAkUHJvcGVydHlQYXRoOiBzdHJpbmcgfTtcblx0XHRcdFx0XHR9KSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gb1BhcmFtZXRlci5Mb2NhbERhdGFQcm9wZXJ0eSAmJiBvUGFyYW1ldGVyLkxvY2FsRGF0YVByb3BlcnR5LiRQcm9wZXJ0eVBhdGggPT09IHNQcm9wZXJ0eU5hbWU7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0aWYgKG9QYXJhbVdpdGhLZXkgJiYgIW9QYXJhbVdpdGhLZXkuVmFsdWVMaXN0UHJvcGVydHkpIHtcblx0XHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihgSW5jb25zaXN0ZW50IHZhbHVlIGhlbHAgYW5ub3RhdGlvbiBmb3IgJHtzUHJvcGVydHlOYW1lfWApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjb25zdCBvVGV4dEFubm90YXRpb24gPSBvTWV0YU1vZGVsVmFsdWVMaXN0LmdldE9iamVjdChcblx0XHRcdFx0XHRcdGAvJHtvVmFsdWVMaXN0SW5mby5Db2xsZWN0aW9uUGF0aH0vJHtvUGFyYW1XaXRoS2V5LlZhbHVlTGlzdFByb3BlcnR5fUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVGV4dGBcblx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0aWYgKG9UZXh0QW5ub3RhdGlvbiAmJiBvVGV4dEFubm90YXRpb24uJFBhdGgpIHtcblx0XHRcdFx0XHRcdHNUZXh0UHJvcGVydHkgPSBvVGV4dEFubm90YXRpb24uJFBhdGg7XG5cdFx0XHRcdFx0XHRjb25zdCBvRmlsdGVyID0gbmV3IEZpbHRlcih7XG5cdFx0XHRcdFx0XHRcdHBhdGg6IG9QYXJhbVdpdGhLZXkuVmFsdWVMaXN0UHJvcGVydHksXG5cdFx0XHRcdFx0XHRcdG9wZXJhdG9yOiBcIkVRXCIsXG5cdFx0XHRcdFx0XHRcdHZhbHVlMTogc1Byb3BlcnR5VmFsdWVcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0Y29uc3Qgb0xpc3RCaW5kaW5nID0gb1ZhbHVlTGlzdE1vZGVsLmJpbmRMaXN0KGAvJHtvVmFsdWVMaXN0SW5mby5Db2xsZWN0aW9uUGF0aH1gLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgb0ZpbHRlciwge1xuXHRcdFx0XHRcdFx0XHQkc2VsZWN0OiBzVGV4dFByb3BlcnR5XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdHJldHVybiBvTGlzdEJpbmRpbmcucmVxdWVzdENvbnRleHRzKDAsIDIpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRzRGlzcGxheUZvcm1hdCA9IFwiVmFsdWVcIjtcblx0XHRcdFx0XHRcdHJldHVybiBzUHJvcGVydHlWYWx1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC50aGVuKGZ1bmN0aW9uIChhQ29udGV4dHM6IENvbnRleHRbXSkge1xuXHRcdFx0XHRcdGNvbnN0IHNEZXNjcmlwdGlvbiA9IHNUZXh0UHJvcGVydHkgPyBhQ29udGV4dHNbMF0/LmdldE9iamVjdCgpW3NUZXh0UHJvcGVydHldIDogXCJcIjtcblx0XHRcdFx0XHRpZiAoIXNEZXNjcmlwdGlvbikge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHNQcm9wZXJ0eVZhbHVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRzd2l0Y2ggKHNEaXNwbGF5Rm9ybWF0KSB7XG5cdFx0XHRcdFx0XHRjYXNlIFwiRGVzY3JpcHRpb25cIjpcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHNEZXNjcmlwdGlvbiB8fCBzUHJvcGVydHlWYWx1ZTtcblx0XHRcdFx0XHRcdGNhc2UgXCJEZXNjcmlwdGlvblZhbHVlXCI6XG5cdFx0XHRcdFx0XHRcdHJldHVybiBMaWJyYXJ5LmdldFJlc291cmNlQnVuZGxlRm9yKFwic2FwLmZlLmNvcmVcIikhLmdldFRleHQoXCJDX0ZPUk1BVF9GT1JfVEVYVF9BUlJBTkdFTUVOVFwiLCBbXG5cdFx0XHRcdFx0XHRcdFx0c0Rlc2NyaXB0aW9uLFxuXHRcdFx0XHRcdFx0XHRcdHNQcm9wZXJ0eVZhbHVlXG5cdFx0XHRcdFx0XHRcdF0pO1xuXHRcdFx0XHRcdFx0Y2FzZSBcIlZhbHVlRGVzY3JpcHRpb25cIjpcblx0XHRcdFx0XHRcdFx0cmV0dXJuIExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29yZVwiKSEuZ2V0VGV4dChcIkNfRk9STUFUX0ZPUl9URVhUX0FSUkFOR0VNRU5UXCIsIFtcblx0XHRcdFx0XHRcdFx0XHRzUHJvcGVydHlWYWx1ZSxcblx0XHRcdFx0XHRcdFx0XHRzRGVzY3JpcHRpb25cblx0XHRcdFx0XHRcdFx0XSk7XG5cdFx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gc1Byb3BlcnR5VmFsdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogdW5rbm93bikge1xuXHRcdFx0XHRcdGNvbnN0IGVycm9yT2JqID0gb0Vycm9yIGFzIHsgc3RhdHVzOiBudW1iZXI7IG1lc3NhZ2U6IHN0cmluZyB9O1xuXHRcdFx0XHRcdGNvbnN0IHNNc2cgPVxuXHRcdFx0XHRcdFx0ZXJyb3JPYmouc3RhdHVzICYmIGVycm9yT2JqLnN0YXR1cyA9PT0gNDA0XG5cdFx0XHRcdFx0XHRcdD8gYE1ldGFkYXRhIG5vdCBmb3VuZCAoJHtlcnJvck9iai5zdGF0dXN9KSBmb3IgdmFsdWUgaGVscCBvZiBwcm9wZXJ0eSAke3NQcm9wZXJ0eUZ1bGxQYXRofWBcblx0XHRcdFx0XHRcdFx0OiBlcnJvck9iai5tZXNzYWdlO1xuXHRcdFx0XHRcdExvZy5lcnJvcihzTXNnKTtcblx0XHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiBzUHJvcGVydHlWYWx1ZTtcblx0fSxcblxuXHRkaXNwbGF5QWdncmVnYXRlRGV0YWlsczogYXN5bmMgZnVuY3Rpb24gKGV2ZW50OiBFdmVudCwgYWdncmVnYXRlZFByb3BlcnR5UGF0aD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGlmICghYWdncmVnYXRlZFByb3BlcnR5UGF0aCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBsaW5rID0gZXZlbnQuZ2V0U291cmNlPExpbms+KCk7XG5cdFx0Y29uc3QgYW5hbHl0aWNhbFRhYmxlID0gRlBNSGVscGVyLmdldE1kY1RhYmxlKGxpbmspITtcblxuXHRcdGNvbnN0IHJvd0NvbnRleHQgPSBsaW5rLmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dDtcblx0XHRjb25zdCB0YWJsZVJvd0JpbmRpbmcgPSByb3dDb250ZXh0LmdldEJpbmRpbmcoKSBhcyBPRGF0YUxpc3RCaW5kaW5nO1xuXG5cdFx0Ly8gR2V0IHRoZSBmaWx0ZXJzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHRvdGFsIHJvd1xuXHRcdGNvbnN0IHJvd0NvbnRleHREYXRhID0gcm93Q29udGV4dC5nZXRPYmplY3QoKTtcblx0XHRjb25zdCByb3dTcGVjaWZpY0ZpbHRlcjogRmlsdGVyW10gPSBbXTtcblx0XHRjb25zdCByb3dGaWx0ZXIgPSByb3dDb250ZXh0LmdldEZpbHRlcigpO1xuXHRcdGlmIChyb3dGaWx0ZXIpIHtcblx0XHRcdHJvd1NwZWNpZmljRmlsdGVyLnB1c2gocm93RmlsdGVyKTtcblx0XHR9XG5cblx0XHQvLyBBZGQgdGhlIGZpbHRlcnMgYXBwbGllZCB0byB0aGUgb3JpZ2luYWwgdGFibGVcblx0XHRjb25zdCBhbGxGaWx0ZXJzID0gcm93U3BlY2lmaWNGaWx0ZXIuY29uY2F0KHRhYmxlUm93QmluZGluZy5nZXRGaWx0ZXJzKFwiQXBwbGljYXRpb25cIiksIHRhYmxlUm93QmluZGluZy5nZXRGaWx0ZXJzKFwiQ29udHJvbFwiKSk7XG5cblx0XHQvLyBDYWxjdWxhdGUgJCRhZ2dyZWdhdGlvbiBwYXJhbWV0ZXJzIGZvciB0aGUgdGFibGUgaW4gdGhlIHBvcG92ZXIgKGFnZ3JlZ2F0ZSBhbW91bnQsIGdyb3VwIGJ5IGN1cnJlbmN5L3VuaXQpXG5cdFx0Y29uc3QgYWdncmVnYXRpb24gPSB0YWJsZVJvd0JpbmRpbmcuZ2V0QWdncmVnYXRpb24oKSBhcyB7XG5cdFx0XHRncm91cDogUmVjb3JkPHN0cmluZywgb2JqZWN0Pjtcblx0XHRcdGFnZ3JlZ2F0ZTogUmVjb3JkPHN0cmluZywgeyB1bml0OiBzdHJpbmcgfT47XG5cdFx0XHRzZWFyY2g/OiBzdHJpbmc7XG5cdFx0fTtcblx0XHRjb25zdCB1bml0T3JDdXJyZW5jeU5hbWUgPSBhZ2dyZWdhdGlvbi5hZ2dyZWdhdGVbYWdncmVnYXRlZFByb3BlcnR5UGF0aF0udW5pdDtcblx0XHRjb25zdCBncm91cDogUmVjb3JkPHN0cmluZywgb2JqZWN0PiA9IHt9O1xuXHRcdGdyb3VwW3VuaXRPckN1cnJlbmN5TmFtZV0gPSB7fTtcblx0XHRjb25zdCBhZ2dyZWdhdGU6IFJlY29yZDxzdHJpbmcsIG9iamVjdD4gPSB7fTtcblx0XHRhZ2dyZWdhdGVbYWdncmVnYXRlZFByb3BlcnR5UGF0aF0gPSB7IGdyYW5kVG90YWw6IGZhbHNlLCBzdWJ0b3RhbHM6IGZhbHNlLCB1bml0OiB1bml0T3JDdXJyZW5jeU5hbWUgfTtcblxuXHRcdC8vIFRoZSBpdGVtIGRpc3BsYXllZCBpbiB0aGUgdGFibGUgaW4gdGhlIHBvcG92ZXIgaXMgYSBjb3B5IG9mIHRoZSBpdGVtIGRpc3BsYXllZCBpbiB0aGUgdGFibGVcblx0XHRjb25zdCB0YWJsZUl0ZW0gPSBsaW5rLmdldERlcGVuZGVudHMoKVswXS5jbG9uZSgpO1xuXHRcdGNvbnN0IGN1cnJlbmN5T3JRdWFudGl0eUVuYWJsZWRMYXlvdXQgPSBuZXcgSEJveCh7XG5cdFx0XHRyZW5kZXJUeXBlOiBcIkJhcmVcIixcblx0XHRcdGp1c3RpZnlDb250ZW50OiBcIkVuZFwiLFxuXHRcdFx0aXRlbXM6IFt0YWJsZUl0ZW1dXG5cdFx0fSBhcyAkSEJveFNldHRpbmdzKTtcblxuXHRcdGNvbnN0IGFnZ3JlZ2F0aW9uUGFyYW1ldGVyczoge1xuXHRcdFx0Z3JvdXA6IFJlY29yZDxzdHJpbmcsIG9iamVjdD47XG5cdFx0XHRhZ2dyZWdhdGU6IFJlY29yZDxzdHJpbmcsIG9iamVjdD47XG5cdFx0XHRzZWFyY2g/OiBzdHJpbmc7XG5cdFx0fSA9IHsgZ3JvdXAsIGFnZ3JlZ2F0ZSB9O1xuXHRcdGlmIChhZ2dyZWdhdGlvbi5zZWFyY2gpIHtcblx0XHRcdGFnZ3JlZ2F0aW9uUGFyYW1ldGVycy5zZWFyY2ggPSBhZ2dyZWdhdGlvbi5zZWFyY2g7XG5cdFx0fVxuXG5cdFx0Y29uc3Qgb0l0ZW1zQmluZGluZ0luZm8gPSB7XG5cdFx0XHRwYXRoOiB0YWJsZVJvd0JpbmRpbmcuZ2V0UmVzb2x2ZWRQYXRoKCksXG5cdFx0XHRmaWx0ZXJzOiBhbGxGaWx0ZXJzLFxuXHRcdFx0cGFyYW1ldGVyczoge1xuXHRcdFx0XHQkJGFnZ3JlZ2F0aW9uOiBhZ2dyZWdhdGlvblBhcmFtZXRlcnNcblx0XHRcdH0sXG5cdFx0XHRzb3J0ZXI6IG5ldyBTb3J0ZXIodW5pdE9yQ3VycmVuY3lOYW1lLCBmYWxzZSkgLy8gT3JkZXIgYnkgY3VycmVuY3lcblx0XHR9O1xuXG5cdFx0Y29uc3QgaXNQb3BvdmVyRm9yR3JhbmRUb3RhbCA9IHJvd0NvbnRleHREYXRhW1wiQCR1aTUubm9kZS5sZXZlbFwiXSA9PT0gMDtcblx0XHRjb25zdCBwb3BvdmVyOiBSZXNwb25zaXZlUG9wb3ZlciA9IGF3YWl0IFV0aWwuY3JlYXRlT3JVcGRhdGVNdWx0aVVuaXRQb3BvdmVyKGAke2FuYWx5dGljYWxUYWJsZS5nZXRJZCgpfS1tdWx0aVVuaXRQb3BvdmVyYCwge1xuXHRcdFx0Y29udHJvbDogYW5hbHl0aWNhbFRhYmxlLFxuXHRcdFx0Z3JhbmRUb3RhbDogaXNQb3BvdmVyRm9yR3JhbmRUb3RhbCxcblx0XHRcdGl0ZW1zQmluZGluZ0luZm86IG9JdGVtc0JpbmRpbmdJbmZvLFxuXHRcdFx0bGlzdEl0ZW1Db250ZW50VGVtcGxhdGU6IGN1cnJlbmN5T3JRdWFudGl0eUVuYWJsZWRMYXlvdXRcblx0XHR9KTtcblx0XHRhbmFseXRpY2FsVGFibGUuYWRkRGVwZW5kZW50KHBvcG92ZXIpO1xuXG5cdFx0Y29uc3QgZm5PbkNsb3NlID0gKCk6IHZvaWQgPT4ge1xuXHRcdFx0YW5hbHl0aWNhbFRhYmxlLnJlbW92ZURlcGVuZGVudChwb3BvdmVyKTtcblx0XHRcdHBvcG92ZXIuZGV0YWNoRXZlbnQoXCJhZnRlckNsb3NlXCIsIGZuT25DbG9zZSk7XG5cdFx0XHRwb3BvdmVyLmRlc3Ryb3koKTtcblx0XHR9O1xuXHRcdHBvcG92ZXIuYXR0YWNoRXZlbnQoXCJhZnRlckNsb3NlXCIsIGZuT25DbG9zZSk7XG5cdFx0cG9wb3Zlci5vcGVuQnkobGluayk7XG5cdH1cbn07XG5cbk9iamVjdFBhdGguc2V0KFwic2FwLmZlLm1hY3Jvcy5maWVsZC5GaWVsZFJ1bnRpbWVcIiwgRmllbGRSdW50aW1lKTtcblxuZXhwb3J0IGRlZmF1bHQgRmllbGRSdW50aW1lO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0VBc0JBO0FBQ0E7QUFDQTtBQUNBO0VBQ0EsTUFBTUEsWUFBWSxHQUFHO0lBQ3BCQyxjQUFjLEVBQUUsQ0FBQyxDQUE0RDtJQUM3RUMsbUJBQW1CLEVBQUUsS0FBSztJQUUxQjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQ0MsdUJBQXVCLEVBQUUsU0FBQUEsQ0FDeEJDLGFBQXFCLEVBQ3JCQyw2QkFBcUMsRUFDckNDLGNBQXdCLEVBQ3hCQyxjQUF3QixFQUN4QkMsYUFBdUIsRUFDYjtNQUNWLElBQUlELGNBQWMsS0FBS0UsU0FBUyxJQUFJSCxjQUFjLEtBQUtHLFNBQVMsS0FBSyxDQUFDRixjQUFjLElBQUlELGNBQWMsQ0FBQyxJQUFJLENBQUNFLGFBQWEsRUFBRTtRQUMxSCxPQUFPSixhQUFhLEtBQUtDLDZCQUE2QjtNQUN2RCxDQUFDLE1BQU07UUFDTixPQUFPLEtBQUs7TUFDYjtJQUNELENBQUM7SUFFRDtBQUNEO0FBQ0E7QUFDQTtJQUNDSyxvQkFBb0IsRUFBRSxTQUFBQSxDQUFVQyxNQUF1QyxFQUFRO01BQzlFLE1BQU1DLFlBQVksR0FBR0QsTUFBTSxDQUFDRSxTQUFTLENBQUMsQ0FBa0I7TUFDeEQsTUFBTUMsSUFBSSxHQUFHQyxXQUFXLENBQUNDLGFBQWEsQ0FBQ0osWUFBWSxDQUFDO1FBQ25ESyxVQUFVLEdBQUdILElBQUksQ0FBQ0ksYUFBYSxDQUFDLENBQUM7TUFFbEMsTUFBTUMsYUFBYSxHQUFHQyxrQkFBa0IsQ0FBQ0Msc0JBQXNCLENBQUNKLFVBQVUsQ0FBQztNQUMzRUUsYUFBYSxDQUFDRyxZQUFZLENBQUNDLHNCQUFzQixDQUFDWixNQUFNLENBQUM7SUFDMUQsQ0FBQztJQUVEYSxxQkFBcUIsRUFBRSxTQUFBQSxDQUFVQyxZQUFvQixFQUFVO01BQzlELElBQUlBLFlBQVksRUFBRUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2hDO1FBQ0FELFlBQVksR0FBR0EsWUFBWSxDQUFDRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO01BQzFDO01BQ0EsT0FBT0YsWUFBWTtJQUNwQixDQUFDO0lBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNDRyx5QkFBeUIsRUFBRSxlQUFBQSxDQUUxQkMsY0FBc0IsRUFDdEJDLGlCQUF5QixFQUN6QkMsY0FBc0IsRUFDSjtNQUNsQixJQUFJQyxhQUFxQjtNQUN6QixJQUFJQyxVQUFVO01BQ2QsSUFBSUMsYUFBcUI7TUFDekIsSUFBSUwsY0FBYyxFQUFFO1FBQ25CSSxVQUFVLEdBQUksSUFBSSxDQUFDRSxRQUFRLENBQUMsQ0FBQyxFQUFFQyxZQUFZLENBQUMsQ0FBQyxJQUF1QkMsWUFBWSxDQUFDRCxZQUFZLENBQUMsQ0FBQztRQUMvRkYsYUFBYSxHQUFHRCxVQUFVLENBQUNLLFNBQVMsQ0FBQyxHQUFHUixpQkFBaUIsYUFBYSxDQUFDO1FBQ3ZFLE9BQU9HLFVBQVUsQ0FDZk0sb0JBQW9CLENBQUNULGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUM3Q1UsSUFBSSxDQUFDLFVBQVVDLGNBQWMsRUFBRTtVQUMvQjtVQUNBLE1BQU1DLGNBQWMsR0FBR0QsY0FBYyxDQUFDQSxjQUFjLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHRSxNQUFNLENBQUNDLElBQUksQ0FBQ0gsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7VUFDL0YsTUFBTUksZUFBZSxHQUFHSCxjQUFjLENBQUNJLE1BQU07VUFDN0MsTUFBTUMsbUJBQW1CLEdBQUdGLGVBQWUsQ0FBQ1QsWUFBWSxDQUFDLENBQUM7VUFDMUQsTUFBTVksYUFBYSxHQUFHTixjQUFjLENBQUNPLFVBQVUsQ0FBQ0MsSUFBSSxDQUFDLFVBQVVDLFVBRTlELEVBQUU7WUFDRixPQUFPQSxVQUFVLENBQUNDLGlCQUFpQixJQUFJRCxVQUFVLENBQUNDLGlCQUFpQixDQUFDQyxhQUFhLEtBQUtuQixhQUFhO1VBQ3BHLENBQUMsQ0FBQztVQUNGLElBQUljLGFBQWEsSUFBSSxDQUFDQSxhQUFhLENBQUNNLGlCQUFpQixFQUFFO1lBQ3RELE1BQU0sSUFBSUMsS0FBSyxDQUFDLDBDQUEwQ3JCLGFBQWEsRUFBRSxDQUFDO1VBQzNFO1VBQ0EsTUFBTXNCLGVBQWUsR0FBR1QsbUJBQW1CLENBQUNULFNBQVMsQ0FDcEQsSUFBSUksY0FBYyxDQUFDZSxjQUFjLElBQUlULGFBQWEsQ0FBQ00saUJBQWlCLHNDQUNyRSxDQUFDO1VBRUQsSUFBSUUsZUFBZSxJQUFJQSxlQUFlLENBQUNFLEtBQUssRUFBRTtZQUM3QzFCLGFBQWEsR0FBR3dCLGVBQWUsQ0FBQ0UsS0FBSztZQUNyQyxNQUFNQyxPQUFPLEdBQUcsSUFBSUMsTUFBTSxDQUFDO2NBQzFCQyxJQUFJLEVBQUViLGFBQWEsQ0FBQ00saUJBQWlCO2NBQ3JDUSxRQUFRLEVBQUUsSUFBSTtjQUNkQyxNQUFNLEVBQUVsQztZQUNULENBQUMsQ0FBQztZQUNGLE1BQU1tQyxZQUFZLEdBQUduQixlQUFlLENBQUNvQixRQUFRLENBQUMsSUFBSXZCLGNBQWMsQ0FBQ2UsY0FBYyxFQUFFLEVBQUVoRCxTQUFTLEVBQUVBLFNBQVMsRUFBRWtELE9BQU8sRUFBRTtjQUNqSE8sT0FBTyxFQUFFbEM7WUFDVixDQUFDLENBQUM7WUFDRixPQUFPZ0MsWUFBWSxDQUFDRyxlQUFlLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztVQUMxQyxDQUFDLE1BQU07WUFDTnBDLGNBQWMsR0FBRyxPQUFPO1lBQ3hCLE9BQU9GLGNBQWM7VUFDdEI7UUFDRCxDQUFDLENBQUMsQ0FDRFcsSUFBSSxDQUFDLFVBQVU0QixTQUFvQixFQUFFO1VBQ3JDLE1BQU1DLFlBQVksR0FBR3JDLGFBQWEsR0FBR29DLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTlCLFNBQVMsQ0FBQyxDQUFDLENBQUNOLGFBQWEsQ0FBQyxHQUFHLEVBQUU7VUFDbEYsSUFBSSxDQUFDcUMsWUFBWSxFQUFFO1lBQ2xCLE9BQU94QyxjQUFjO1VBQ3RCO1VBQ0EsUUFBUUUsY0FBYztZQUNyQixLQUFLLGFBQWE7Y0FDakIsT0FBT3NDLFlBQVksSUFBSXhDLGNBQWM7WUFDdEMsS0FBSyxrQkFBa0I7Y0FDdEIsT0FBT3lDLE9BQU8sQ0FBQ0Msb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUVDLE9BQU8sQ0FBQywrQkFBK0IsRUFBRSxDQUM1RkgsWUFBWSxFQUNaeEMsY0FBYyxDQUNkLENBQUM7WUFDSCxLQUFLLGtCQUFrQjtjQUN0QixPQUFPeUMsT0FBTyxDQUFDQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsQ0FBRUMsT0FBTyxDQUFDLCtCQUErQixFQUFFLENBQzVGM0MsY0FBYyxFQUNkd0MsWUFBWSxDQUNaLENBQUM7WUFDSDtjQUNDLE9BQU94QyxjQUFjO1VBQ3ZCO1FBQ0QsQ0FBQyxDQUFDLENBQ0Q0QyxLQUFLLENBQUMsVUFBVUMsTUFBZSxFQUFFO1VBQ2pDLE1BQU1DLFFBQVEsR0FBR0QsTUFBNkM7VUFDOUQsTUFBTUUsSUFBSSxHQUNURCxRQUFRLENBQUNFLE1BQU0sSUFBSUYsUUFBUSxDQUFDRSxNQUFNLEtBQUssR0FBRyxHQUN2Qyx1QkFBdUJGLFFBQVEsQ0FBQ0UsTUFBTSxnQ0FBZ0MvQyxpQkFBaUIsRUFBRSxHQUN6RjZDLFFBQVEsQ0FBQ0csT0FBTztVQUNwQkMsR0FBRyxDQUFDQyxLQUFLLENBQUNKLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUM7TUFDSjtNQUNBLE9BQU8vQyxjQUFjO0lBQ3RCLENBQUM7SUFFRG9ELHVCQUF1QixFQUFFLGVBQUFBLENBQWdCQyxLQUFZLEVBQUVDLHNCQUErQixFQUFpQjtNQUN0RyxJQUFJLENBQUNBLHNCQUFzQixFQUFFO1FBQzVCO01BQ0Q7TUFDQSxNQUFNQyxJQUFJLEdBQUdGLEtBQUssQ0FBQ3JFLFNBQVMsQ0FBTyxDQUFDO01BQ3BDLE1BQU13RSxlQUFlLEdBQUdDLFNBQVMsQ0FBQ0MsV0FBVyxDQUFDSCxJQUFJLENBQUU7TUFFcEQsTUFBTUksVUFBVSxHQUFHSixJQUFJLENBQUNLLGlCQUFpQixDQUFDLENBQVk7TUFDdEQsTUFBTUMsZUFBZSxHQUFHRixVQUFVLENBQUNHLFVBQVUsQ0FBQyxDQUFxQjs7TUFFbkU7TUFDQSxNQUFNQyxjQUFjLEdBQUdKLFVBQVUsQ0FBQ2xELFNBQVMsQ0FBQyxDQUFDO01BQzdDLE1BQU11RCxpQkFBMkIsR0FBRyxFQUFFO01BQ3RDLE1BQU1DLFNBQVMsR0FBR04sVUFBVSxDQUFDTyxTQUFTLENBQUMsQ0FBQztNQUN4QyxJQUFJRCxTQUFTLEVBQUU7UUFDZEQsaUJBQWlCLENBQUNHLElBQUksQ0FBQ0YsU0FBUyxDQUFDO01BQ2xDOztNQUVBO01BQ0EsTUFBTUcsVUFBVSxHQUFHSixpQkFBaUIsQ0FBQ0ssTUFBTSxDQUFDUixlQUFlLENBQUNTLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRVQsZUFBZSxDQUFDUyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7O01BRTdIO01BQ0EsTUFBTUMsV0FBVyxHQUFHVixlQUFlLENBQUNXLGNBQWMsQ0FBQyxDQUlsRDtNQUNELE1BQU1DLGtCQUFrQixHQUFHRixXQUFXLENBQUNHLFNBQVMsQ0FBQ3BCLHNCQUFzQixDQUFDLENBQUNxQixJQUFJO01BQzdFLE1BQU1DLEtBQTZCLEdBQUcsQ0FBQyxDQUFDO01BQ3hDQSxLQUFLLENBQUNILGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO01BQzlCLE1BQU1DLFNBQWlDLEdBQUcsQ0FBQyxDQUFDO01BQzVDQSxTQUFTLENBQUNwQixzQkFBc0IsQ0FBQyxHQUFHO1FBQUV1QixVQUFVLEVBQUUsS0FBSztRQUFFQyxTQUFTLEVBQUUsS0FBSztRQUFFSCxJQUFJLEVBQUVGO01BQW1CLENBQUM7O01BRXJHO01BQ0EsTUFBTU0sU0FBUyxHQUFHeEIsSUFBSSxDQUFDeUIsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsS0FBSyxDQUFDLENBQUM7TUFDakQsTUFBTUMsK0JBQStCLEdBQUcsSUFBSUMsSUFBSSxDQUFDO1FBQ2hEQyxVQUFVLEVBQUUsTUFBTTtRQUNsQkMsY0FBYyxFQUFFLEtBQUs7UUFDckJDLEtBQUssRUFBRSxDQUFDUCxTQUFTO01BQ2xCLENBQWtCLENBQUM7TUFFbkIsTUFBTVEscUJBSUwsR0FBRztRQUFFWCxLQUFLO1FBQUVGO01BQVUsQ0FBQztNQUN4QixJQUFJSCxXQUFXLENBQUNpQixNQUFNLEVBQUU7UUFDdkJELHFCQUFxQixDQUFDQyxNQUFNLEdBQUdqQixXQUFXLENBQUNpQixNQUFNO01BQ2xEO01BRUEsTUFBTUMsaUJBQWlCLEdBQUc7UUFDekJ6RCxJQUFJLEVBQUU2QixlQUFlLENBQUM2QixlQUFlLENBQUMsQ0FBQztRQUN2Q0MsT0FBTyxFQUFFdkIsVUFBVTtRQUNuQndCLFVBQVUsRUFBRTtVQUNYQyxhQUFhLEVBQUVOO1FBQ2hCLENBQUM7UUFDRE8sTUFBTSxFQUFFLElBQUlDLE1BQU0sQ0FBQ3RCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO01BQy9DLENBQUM7TUFFRCxNQUFNdUIsc0JBQXNCLEdBQUdqQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDO01BQ3ZFLE1BQU1rQyxPQUEwQixHQUFHLE1BQU1DLElBQUksQ0FBQ0MsOEJBQThCLENBQUMsR0FBRzNDLGVBQWUsQ0FBQzRDLEtBQUssQ0FBQyxDQUFDLG1CQUFtQixFQUFFO1FBQzNIQyxPQUFPLEVBQUU3QyxlQUFlO1FBQ3hCcUIsVUFBVSxFQUFFbUIsc0JBQXNCO1FBQ2xDTSxnQkFBZ0IsRUFBRWIsaUJBQWlCO1FBQ25DYyx1QkFBdUIsRUFBRXJCO01BQzFCLENBQUMsQ0FBQztNQUNGMUIsZUFBZSxDQUFDZ0QsWUFBWSxDQUFDUCxPQUFPLENBQUM7TUFFckMsTUFBTVEsU0FBUyxHQUFHQSxDQUFBLEtBQVk7UUFDN0JqRCxlQUFlLENBQUNrRCxlQUFlLENBQUNULE9BQU8sQ0FBQztRQUN4Q0EsT0FBTyxDQUFDVSxXQUFXLENBQUMsWUFBWSxFQUFFRixTQUFTLENBQUM7UUFDNUNSLE9BQU8sQ0FBQ1csT0FBTyxDQUFDLENBQUM7TUFDbEIsQ0FBQztNQUNEWCxPQUFPLENBQUNZLFdBQVcsQ0FBQyxZQUFZLEVBQUVKLFNBQVMsQ0FBQztNQUM1Q1IsT0FBTyxDQUFDYSxNQUFNLENBQUN2RCxJQUFJLENBQUM7SUFDckI7RUFDRCxDQUFDO0VBRUR3RCxVQUFVLENBQUNDLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRTdJLFlBQVksQ0FBQztFQUFDLE9BRWxEQSxZQUFZO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
218
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaWVsZFJ1bnRpbWUiLCJ1cGxvYWRQcm9taXNlcyIsImNyZWF0aW5nSW5hY3RpdmVSb3ciLCJpc0RyYWZ0SW5kaWNhdG9yVmlzaWJsZSIsInNQcm9wZXJ0eVBhdGgiLCJzU2VtYW50aWNLZXlIYXNEcmFmdEluZGljYXRvciIsIkhhc0RyYWZ0RW50aXR5IiwiSXNBY3RpdmVFbnRpdHkiLCJoaWRlRHJhZnRJbmZvIiwidW5kZWZpbmVkIiwib25WYWxpZGF0ZUZpZWxkR3JvdXAiLCJvRXZlbnQiLCJvU291cmNlRmllbGQiLCJnZXRTb3VyY2UiLCJ2aWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3IiwiY29udHJvbGxlciIsImdldENvbnRyb2xsZXIiLCJvRkVDb250cm9sbGVyIiwiRmllbGRSdW50aW1lSGVscGVyIiwiZ2V0RXh0ZW5zaW9uQ29udHJvbGxlciIsIl9zaWRlRWZmZWN0cyIsImhhbmRsZUZpZWxkR3JvdXBDaGFuZ2UiLCJfZm5GaXhIYXNoUXVlcnlTdHJpbmciLCJzQ3VycmVudEhhc2giLCJpbmNsdWRlcyIsInNwbGl0IiwiY3JlYXRlVmFsdWVMaXN0RmlsdGVycyIsInZhbHVlTGlzdEluZm8iLCJwcm9wZXJ0eUlkIiwicHJvcGVydHlWYWx1ZSIsImJpbmRpbmdDb250ZXh0IiwiZmlsdGVycyIsIkZpbHRlciIsInBhdGgiLCJvcGVyYXRvciIsInZhbHVlMSIsIlBhcmFtZXRlcnMiLCJyZWxldmFudFBhcmFtZXRlcnMiLCJmaWx0ZXIiLCJwYXJhbWV0ZXIiLCJpc0luT3JJbk91dCIsIiRUeXBlIiwiTG9jYWxEYXRhUHJvcGVydHkiLCIkUHJvcGVydHlQYXRoIiwiVmFsdWVMaXN0UHJvcGVydHkiLCJmb3JFYWNoIiwibG9jYWxWYWx1ZSIsImdldFByb3BlcnR5IiwicHVzaCIsInJldHJpZXZlVGV4dEZyb21WYWx1ZUxpc3QiLCJzUHJvcGVydHlWYWx1ZSIsInNQcm9wZXJ0eUZ1bGxQYXRoIiwic0Rpc3BsYXlGb3JtYXQiLCJzVGV4dFByb3BlcnR5Iiwib01ldGFNb2RlbCIsInNQcm9wZXJ0eU5hbWUiLCJnZXRNb2RlbCIsImdldE1ldGFNb2RlbCIsIkNvbW1vbkhlbHBlciIsImdldE9iamVjdCIsImdldEJpbmRpbmdDb250ZXh0IiwicmVxdWVzdFZhbHVlTGlzdEluZm8iLCJ0aGVuIiwibVZhbHVlTGlzdEluZm8iLCJvVmFsdWVMaXN0SW5mbyIsIk9iamVjdCIsImtleXMiLCJvVmFsdWVMaXN0TW9kZWwiLCIkbW9kZWwiLCJvTWV0YU1vZGVsVmFsdWVMaXN0Iiwib1BhcmFtV2l0aEtleSIsImZpbmQiLCJvUGFyYW1ldGVyIiwiRXJyb3IiLCJvVGV4dEFubm90YXRpb24iLCJDb2xsZWN0aW9uUGF0aCIsIiRQYXRoIiwibGlzdEJpbmRpbmciLCJiaW5kTGlzdCIsIiRzZWxlY3QiLCJyZXF1ZXN0Q29udGV4dHMiLCJhQ29udGV4dHMiLCJzRGVzY3JpcHRpb24iLCJMaWJyYXJ5IiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJnZXRUZXh0IiwiY2F0Y2giLCJvRXJyb3IiLCJlcnJvck9iaiIsInNNc2ciLCJzdGF0dXMiLCJtZXNzYWdlIiwiTG9nIiwiZXJyb3IiLCJkaXNwbGF5QWdncmVnYXRlRGV0YWlscyIsImV2ZW50IiwiYWdncmVnYXRlZFByb3BlcnR5UGF0aCIsImxpbmsiLCJhbmFseXRpY2FsVGFibGUiLCJGUE1IZWxwZXIiLCJnZXRNZGNUYWJsZSIsInJvd0NvbnRleHQiLCJ0YWJsZVJvd0JpbmRpbmciLCJnZXRCaW5kaW5nIiwicm93Q29udGV4dERhdGEiLCJyb3dTcGVjaWZpY0ZpbHRlciIsInJvd0ZpbHRlciIsImdldEZpbHRlciIsImFsbEZpbHRlcnMiLCJjb25jYXQiLCJnZXRGaWx0ZXJzIiwiYWdncmVnYXRpb24iLCJnZXRBZ2dyZWdhdGlvbiIsInVuaXRPckN1cnJlbmN5TmFtZSIsImFnZ3JlZ2F0ZSIsInVuaXQiLCJncm91cCIsImdyYW5kVG90YWwiLCJzdWJ0b3RhbHMiLCJ0YWJsZUl0ZW0iLCJnZXREZXBlbmRlbnRzIiwiY2xvbmUiLCJjdXJyZW5jeU9yUXVhbnRpdHlFbmFibGVkTGF5b3V0IiwiSEJveCIsInJlbmRlclR5cGUiLCJqdXN0aWZ5Q29udGVudCIsIml0ZW1zIiwiYWdncmVnYXRpb25QYXJhbWV0ZXJzIiwic2VhcmNoIiwib0l0ZW1zQmluZGluZ0luZm8iLCJnZXRSZXNvbHZlZFBhdGgiLCJwYXJhbWV0ZXJzIiwiJCRhZ2dyZWdhdGlvbiIsInNvcnRlciIsIlNvcnRlciIsImlzUG9wb3ZlckZvckdyYW5kVG90YWwiLCJwb3BvdmVyIiwiVXRpbCIsImNyZWF0ZU9yVXBkYXRlTXVsdGlVbml0UG9wb3ZlciIsImdldElkIiwiY29udHJvbCIsIml0ZW1zQmluZGluZ0luZm8iLCJsaXN0SXRlbUNvbnRlbnRUZW1wbGF0ZSIsImFkZERlcGVuZGVudCIsImZuT25DbG9zZSIsInJlbW92ZURlcGVuZGVudCIsImRldGFjaEV2ZW50IiwiZGVzdHJveSIsImF0dGFjaEV2ZW50Iiwib3BlbkJ5IiwiT2JqZWN0UGF0aCIsInNldCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRmllbGRSdW50aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IE9iamVjdFBhdGggZnJvbSBcInNhcC9iYXNlL3V0aWwvT2JqZWN0UGF0aFwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IEZQTUhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9GUE1IZWxwZXJcIjtcbmltcG9ydCBDb21tb25IZWxwZXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvQ29tbW9uSGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IEFubm90YXRpb25WYWx1ZUxpc3RUeXBlIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvdmFsdWVoZWxwL1ZhbHVlTGlzdEhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyAkSEJveFNldHRpbmdzIH0gZnJvbSBcInNhcC9tL0hCb3hcIjtcbmltcG9ydCBIQm94IGZyb20gXCJzYXAvbS9IQm94XCI7XG5pbXBvcnQgdHlwZSBMaW5rIGZyb20gXCJzYXAvbS9MaW5rXCI7XG5pbXBvcnQgdHlwZSBSZXNwb25zaXZlUG9wb3ZlciBmcm9tIFwic2FwL20vUmVzcG9uc2l2ZVBvcG92ZXJcIjtcbmltcG9ydCB7IGRlZmF1bHQgYXMgVXRpbCB9IGZyb20gXCJzYXAvbS90YWJsZS9VdGlsXCI7XG5pbXBvcnQgdHlwZSBFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIE1hbmFnZWRPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIHsgQ29udHJvbCRWYWxpZGF0ZUZpZWxkR3JvdXBFdmVudCB9IGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgdHlwZSBCYXNlQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbmltcG9ydCBGaWx0ZXIgZnJvbSBcInNhcC91aS9tb2RlbC9GaWx0ZXJcIjtcbmltcG9ydCBTb3J0ZXIgZnJvbSBcInNhcC91aS9tb2RlbC9Tb3J0ZXJcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YUxpc3RCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFMaXN0QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuaW1wb3J0IEZpZWxkUnVudGltZUhlbHBlciBmcm9tIFwiLi9GaWVsZFJ1bnRpbWVIZWxwZXJcIjtcblxuLyoqXG4gKiBTdGF0aWMgY2xhc3MgdXNlZCBieSBcInNhcC51aS5tZGMuRmllbGRcIiBkdXJpbmcgcnVudGltZVxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgRmllbGRSdW50aW1lID0ge1xuXHR1cGxvYWRQcm9taXNlczoge30gYXMgUmVjb3JkPHN0cmluZywgeyByZXNvbHZlOiBGdW5jdGlvbjsgcmVqZWN0OiBGdW5jdGlvbiB9Pixcblx0Y3JlYXRpbmdJbmFjdGl2ZVJvdzogZmFsc2UsXG5cblx0LyoqXG5cdCAqIFRoaXMgaXMgYSBmb3JtYXR0ZXIgaW4gZGlzZ3Vpc2UuXG5cdCAqIEBwYXJhbSBzUHJvcGVydHlQYXRoXG5cdCAqIEBwYXJhbSBzU2VtYW50aWNLZXlIYXNEcmFmdEluZGljYXRvclxuXHQgKiBAcGFyYW0gSGFzRHJhZnRFbnRpdHlcblx0ICogQHBhcmFtIElzQWN0aXZlRW50aXR5XG5cdCAqIEBwYXJhbSBoaWRlRHJhZnRJbmZvXG5cdCAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGRyYWZ0IGluZGljYXRvciBzaG91bGQgYmUgZGlzcGxheWVkLlxuXHQgKi9cblx0aXNEcmFmdEluZGljYXRvclZpc2libGU6IGZ1bmN0aW9uIChcblx0XHRzUHJvcGVydHlQYXRoOiBzdHJpbmcsXG5cdFx0c1NlbWFudGljS2V5SGFzRHJhZnRJbmRpY2F0b3I6IHN0cmluZyxcblx0XHRIYXNEcmFmdEVudGl0eT86IGJvb2xlYW4sXG5cdFx0SXNBY3RpdmVFbnRpdHk/OiBib29sZWFuLFxuXHRcdGhpZGVEcmFmdEluZm8/OiBib29sZWFuXG5cdCk6IGJvb2xlYW4ge1xuXHRcdGlmIChJc0FjdGl2ZUVudGl0eSAhPT0gdW5kZWZpbmVkICYmIEhhc0RyYWZ0RW50aXR5ICE9PSB1bmRlZmluZWQgJiYgKCFJc0FjdGl2ZUVudGl0eSB8fCBIYXNEcmFmdEVudGl0eSkgJiYgIWhpZGVEcmFmdEluZm8pIHtcblx0XHRcdHJldHVybiBzUHJvcGVydHlQYXRoID09PSBzU2VtYW50aWNLZXlIYXNEcmFmdEluZGljYXRvcjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogSGFuZGxlciBmb3IgdGhlIHZhbGlkYXRlRmllbGRHcm91cCBldmVudC5cblx0ICogQHBhcmFtIG9FdmVudCBUaGUgZXZlbnQgb2JqZWN0IHBhc3NlZCBieSB0aGUgdmFsaWRhdGVGaWVsZEdyb3VwIGV2ZW50XG5cdCAqL1xuXHRvblZhbGlkYXRlRmllbGRHcm91cDogZnVuY3Rpb24gKG9FdmVudDogQ29udHJvbCRWYWxpZGF0ZUZpZWxkR3JvdXBFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IG9Tb3VyY2VGaWVsZCA9IG9FdmVudC5nZXRTb3VyY2UoKSBhcyBNYW5hZ2VkT2JqZWN0O1xuXHRcdGNvbnN0IHZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KG9Tb3VyY2VGaWVsZCksXG5cdFx0XHRjb250cm9sbGVyID0gdmlldy5nZXRDb250cm9sbGVyKCk7XG5cblx0XHRjb25zdCBvRkVDb250cm9sbGVyID0gRmllbGRSdW50aW1lSGVscGVyLmdldEV4dGVuc2lvbkNvbnRyb2xsZXIoY29udHJvbGxlcik7XG5cdFx0b0ZFQ29udHJvbGxlci5fc2lkZUVmZmVjdHMuaGFuZGxlRmllbGRHcm91cENoYW5nZShvRXZlbnQpO1xuXHR9LFxuXG5cdF9mbkZpeEhhc2hRdWVyeVN0cmluZzogZnVuY3Rpb24gKHNDdXJyZW50SGFzaDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRpZiAoc0N1cnJlbnRIYXNoPy5pbmNsdWRlcyhcIj9cIikpIHtcblx0XHRcdC8vIHNDdXJyZW50SGFzaCBjYW4gY29udGFpbiBxdWVyeSBzdHJpbmcsIGN1dCBpdCBvZmYhXG5cdFx0XHRzQ3VycmVudEhhc2ggPSBzQ3VycmVudEhhc2guc3BsaXQoXCI/XCIpWzBdO1xuXHRcdH1cblx0XHRyZXR1cm4gc0N1cnJlbnRIYXNoO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGZpbHRlcnMgZm9yIFZhbHVlTGlzdCByZXF1ZXN0cyBiYXNlZCBvbiBWYWx1ZUxpc3RQYXJhbWV0ZXJJbiBhbmQgVmFsdWVMaXN0UGFyYW1ldGVySW5PdXQgYW5ub3RhdGlvbnMuXG5cdCAqIEBwYXJhbSB2YWx1ZUxpc3RJbmZvIFRoZSBWYWx1ZUxpc3QgYW5ub3RhdGlvbiBpbmZvcm1hdGlvblxuXHQgKiBAcGFyYW0gcHJvcGVydHlJZCBUaGUgSUQgcHJvcGVydHkgb2YgdGhlIElkQW5kRGVzY2lwdGlvbiBvZiB0aGUgdGV4dCBhcnJhbmdlbWVudCBhbm5vdGF0aW9uXG5cdCAqIEBwYXJhbSBwcm9wZXJ0eVZhbHVlIFRoZSB2YWx1ZSBmb3IgdGhlIHByb3BlcnR5SWQgcHJvcGVydHlcblx0ICogQHBhcmFtIGJpbmRpbmdDb250ZXh0IFRoZSBiaW5kaW5nIGNvbnRleHQgdG8gZ2V0IHZhbHVlcyBmcm9tXG5cdCAqIEByZXR1cm5zIEFycmF5IG9mIGZpbHRlcnMgZm9yIHRoZSBWYWx1ZUxpc3QgcmVxdWVzdFxuXHQgKi9cblx0Y3JlYXRlVmFsdWVMaXN0RmlsdGVyczogZnVuY3Rpb24gKFxuXHRcdHZhbHVlTGlzdEluZm86IEFubm90YXRpb25WYWx1ZUxpc3RUeXBlLFxuXHRcdHByb3BlcnR5SWQ6IHN0cmluZyxcblx0XHRwcm9wZXJ0eVZhbHVlOiBzdHJpbmcsXG5cdFx0YmluZGluZ0NvbnRleHQ6IEJhc2VDb250ZXh0IHwgbnVsbCB8IHVuZGVmaW5lZFxuXHQpOiBGaWx0ZXJbXSB7XG5cdFx0Ly8gU3RhcnQgd2l0aCB0aGUga2V5IGZpbHRlclxuXHRcdGNvbnN0IGZpbHRlcnM6IEZpbHRlcltdID0gW1xuXHRcdFx0bmV3IEZpbHRlcih7XG5cdFx0XHRcdHBhdGg6IHByb3BlcnR5SWQsXG5cdFx0XHRcdG9wZXJhdG9yOiBcIkVRXCIsXG5cdFx0XHRcdHZhbHVlMTogcHJvcGVydHlWYWx1ZVxuXHRcdFx0fSlcblx0XHRdO1xuXG5cdFx0aWYgKGJpbmRpbmdDb250ZXh0ICYmIHZhbHVlTGlzdEluZm8uUGFyYW1ldGVycykge1xuXHRcdFx0Y29uc3QgcmVsZXZhbnRQYXJhbWV0ZXJzID0gdmFsdWVMaXN0SW5mby5QYXJhbWV0ZXJzLmZpbHRlcigocGFyYW1ldGVyKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGlzSW5PckluT3V0ID1cblx0XHRcdFx0XHRwYXJhbWV0ZXIuJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlZhbHVlTGlzdFBhcmFtZXRlckluXCIgfHxcblx0XHRcdFx0XHRwYXJhbWV0ZXIuJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlZhbHVlTGlzdFBhcmFtZXRlckluT3V0XCI7XG5cdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0aXNJbk9ySW5PdXQgJiZcblx0XHRcdFx0XHRwYXJhbWV0ZXIuTG9jYWxEYXRhUHJvcGVydHk/LiRQcm9wZXJ0eVBhdGggJiZcblx0XHRcdFx0XHRwYXJhbWV0ZXIuVmFsdWVMaXN0UHJvcGVydHkgJiZcblx0XHRcdFx0XHRwYXJhbWV0ZXIuVmFsdWVMaXN0UHJvcGVydHkgIT09IHByb3BlcnR5SWRcblx0XHRcdFx0KTtcblx0XHRcdH0pO1xuXG5cdFx0XHRyZWxldmFudFBhcmFtZXRlcnMuZm9yRWFjaCgocGFyYW1ldGVyKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGxvY2FsVmFsdWUgPSBiaW5kaW5nQ29udGV4dC5nZXRQcm9wZXJ0eShwYXJhbWV0ZXIuTG9jYWxEYXRhUHJvcGVydHkhLiRQcm9wZXJ0eVBhdGgpO1xuXHRcdFx0XHRpZiAobG9jYWxWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIGxvY2FsVmFsdWUgIT09IG51bGwgJiYgbG9jYWxWYWx1ZSAhPT0gXCJcIikge1xuXHRcdFx0XHRcdGZpbHRlcnMucHVzaChcblx0XHRcdFx0XHRcdG5ldyBGaWx0ZXIoe1xuXHRcdFx0XHRcdFx0XHRwYXRoOiBwYXJhbWV0ZXIuVmFsdWVMaXN0UHJvcGVydHksXG5cdFx0XHRcdFx0XHRcdG9wZXJhdG9yOiBcIkVRXCIsXG5cdFx0XHRcdFx0XHRcdHZhbHVlMTogbG9jYWxWYWx1ZVxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gZmlsdGVycztcblx0fSxcblxuXHQvKipcblx0ICogTWV0aG9kIHRvIHJldHJpZXZlIHRleHQgZnJvbSB0aGUgdmFsdWUgbGlzdCBmb3IgRGF0YUZpZWxkLlxuXHQgKiBUaGlzIGlzIGEgZm9ybWF0dGVyIGluIGRpc2d1aXNlLlxuXHQgKiBAcGFyYW0gc1Byb3BlcnR5VmFsdWUgVGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBkYXRhIGZpZWxkLlxuXHQgKiBAcGFyYW0gc1Byb3BlcnR5RnVsbFBhdGggVGhlIGZ1bGwgcGF0aCB0byB0aGUgcHJvcGVydHkgaW4gdGhlIG1ldGFkYXRhLlxuXHQgKiBAcGFyYW0gc0Rpc3BsYXlGb3JtYXQgVGhlIGRpc3BsYXkgZm9ybWF0IGZvciB0aGUgZGF0YSBmaWVsZC5cblx0ICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCB2YWx1ZSBiYXNlZCBvbiB0aGUgZGlzcGxheSBmb3JtYXQuXG5cdCAqL1xuXHRyZXRyaWV2ZVRleHRGcm9tVmFsdWVMaXN0OiBhc3luYyBmdW5jdGlvbiAoXG5cdFx0dGhpczogQ29udHJvbCxcblx0XHRzUHJvcGVydHlWYWx1ZTogc3RyaW5nLFxuXHRcdHNQcm9wZXJ0eUZ1bGxQYXRoOiBzdHJpbmcsXG5cdFx0c0Rpc3BsYXlGb3JtYXQ6IHN0cmluZ1xuXHQpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdGxldCBzVGV4dFByb3BlcnR5OiBzdHJpbmc7XG5cdFx0bGV0IG9NZXRhTW9kZWw7XG5cdFx0bGV0IHNQcm9wZXJ0eU5hbWU6IHN0cmluZztcblx0XHRpZiAoc1Byb3BlcnR5VmFsdWUpIHtcblx0XHRcdG9NZXRhTW9kZWwgPSAodGhpcy5nZXRNb2RlbCgpPy5nZXRNZXRhTW9kZWwoKSBhcyBPRGF0YU1ldGFNb2RlbCkgfHwgQ29tbW9uSGVscGVyLmdldE1ldGFNb2RlbCgpO1xuXHRcdFx0c1Byb3BlcnR5TmFtZSA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAke3NQcm9wZXJ0eUZ1bGxQYXRofUBzYXB1aS5uYW1lYCk7XG5cdFx0XHRjb25zdCBiaW5kaW5nQ29udGV4dCA9IHRoaXMuZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0XHRcdHJldHVybiBvTWV0YU1vZGVsXG5cdFx0XHRcdC5yZXF1ZXN0VmFsdWVMaXN0SW5mbyhzUHJvcGVydHlGdWxsUGF0aCwgdHJ1ZSlcblx0XHRcdFx0LnRoZW4oZnVuY3Rpb24gKG1WYWx1ZUxpc3RJbmZvKSB7XG5cdFx0XHRcdFx0Ly8gdGFrZSB0aGUgXCJcIiBvbmUgaWYgZXhpc3RzLCBvdGhlcndpc2UgdGFrZSB0aGUgZmlyc3Qgb25lIGluIHRoZSBvYmplY3QgVE9ETzogdG8gYmUgZGlzY3Vzc2VkXG5cdFx0XHRcdFx0Y29uc3Qgb1ZhbHVlTGlzdEluZm8gPSBtVmFsdWVMaXN0SW5mb1ttVmFsdWVMaXN0SW5mb1tcIlwiXSA/IFwiXCIgOiBPYmplY3Qua2V5cyhtVmFsdWVMaXN0SW5mbylbMF1dO1xuXHRcdFx0XHRcdGNvbnN0IG9WYWx1ZUxpc3RNb2RlbCA9IG9WYWx1ZUxpc3RJbmZvLiRtb2RlbDtcblx0XHRcdFx0XHRjb25zdCBvTWV0YU1vZGVsVmFsdWVMaXN0ID0gb1ZhbHVlTGlzdE1vZGVsLmdldE1ldGFNb2RlbCgpO1xuXHRcdFx0XHRcdGNvbnN0IG9QYXJhbVdpdGhLZXkgPSBvVmFsdWVMaXN0SW5mby5QYXJhbWV0ZXJzLmZpbmQoZnVuY3Rpb24gKG9QYXJhbWV0ZXI6IHtcblx0XHRcdFx0XHRcdExvY2FsRGF0YVByb3BlcnR5PzogeyAkUHJvcGVydHlQYXRoOiBzdHJpbmcgfTtcblx0XHRcdFx0XHR9KSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gb1BhcmFtZXRlci5Mb2NhbERhdGFQcm9wZXJ0eSAmJiBvUGFyYW1ldGVyLkxvY2FsRGF0YVByb3BlcnR5LiRQcm9wZXJ0eVBhdGggPT09IHNQcm9wZXJ0eU5hbWU7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0aWYgKG9QYXJhbVdpdGhLZXkgJiYgIW9QYXJhbVdpdGhLZXkuVmFsdWVMaXN0UHJvcGVydHkpIHtcblx0XHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihgSW5jb25zaXN0ZW50IHZhbHVlIGhlbHAgYW5ub3RhdGlvbiBmb3IgJHtzUHJvcGVydHlOYW1lfWApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRjb25zdCBvVGV4dEFubm90YXRpb24gPSBvTWV0YU1vZGVsVmFsdWVMaXN0LmdldE9iamVjdChcblx0XHRcdFx0XHRcdGAvJHtvVmFsdWVMaXN0SW5mby5Db2xsZWN0aW9uUGF0aH0vJHtvUGFyYW1XaXRoS2V5LlZhbHVlTGlzdFByb3BlcnR5fUBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVGV4dGBcblx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0aWYgKG9UZXh0QW5ub3RhdGlvbiAmJiBvVGV4dEFubm90YXRpb24uJFBhdGgpIHtcblx0XHRcdFx0XHRcdHNUZXh0UHJvcGVydHkgPSBvVGV4dEFubm90YXRpb24uJFBhdGg7XG5cblx0XHRcdFx0XHRcdGNvbnN0IGZpbHRlcnMgPSBGaWVsZFJ1bnRpbWUuY3JlYXRlVmFsdWVMaXN0RmlsdGVycyhcblx0XHRcdFx0XHRcdFx0b1ZhbHVlTGlzdEluZm8sXG5cdFx0XHRcdFx0XHRcdG9QYXJhbVdpdGhLZXkuVmFsdWVMaXN0UHJvcGVydHksXG5cdFx0XHRcdFx0XHRcdHNQcm9wZXJ0eVZhbHVlLFxuXHRcdFx0XHRcdFx0XHRiaW5kaW5nQ29udGV4dFxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdGNvbnN0IGxpc3RCaW5kaW5nID0gb1ZhbHVlTGlzdE1vZGVsLmJpbmRMaXN0KGAvJHtvVmFsdWVMaXN0SW5mby5Db2xsZWN0aW9uUGF0aH1gLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZmlsdGVycywge1xuXHRcdFx0XHRcdFx0XHQkc2VsZWN0OiBzVGV4dFByb3BlcnR5XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdHJldHVybiBsaXN0QmluZGluZy5yZXF1ZXN0Q29udGV4dHMoMCwgMik7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHNEaXNwbGF5Rm9ybWF0ID0gXCJWYWx1ZVwiO1xuXHRcdFx0XHRcdFx0cmV0dXJuIHNQcm9wZXJ0eVZhbHVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdFx0LnRoZW4oZnVuY3Rpb24gKGFDb250ZXh0czogQ29udGV4dFtdKSB7XG5cdFx0XHRcdFx0Y29uc3Qgc0Rlc2NyaXB0aW9uID0gc1RleHRQcm9wZXJ0eSA/IGFDb250ZXh0c1swXT8uZ2V0T2JqZWN0KClbc1RleHRQcm9wZXJ0eV0gOiBcIlwiO1xuXHRcdFx0XHRcdGlmICghc0Rlc2NyaXB0aW9uKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gc1Byb3BlcnR5VmFsdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHN3aXRjaCAoc0Rpc3BsYXlGb3JtYXQpIHtcblx0XHRcdFx0XHRcdGNhc2UgXCJEZXNjcmlwdGlvblwiOlxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gc0Rlc2NyaXB0aW9uIHx8IHNQcm9wZXJ0eVZhbHVlO1xuXHRcdFx0XHRcdFx0Y2FzZSBcIkRlc2NyaXB0aW9uVmFsdWVcIjpcblx0XHRcdFx0XHRcdFx0cmV0dXJuIExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29yZVwiKSEuZ2V0VGV4dChcIkNfRk9STUFUX0ZPUl9URVhUX0FSUkFOR0VNRU5UXCIsIFtcblx0XHRcdFx0XHRcdFx0XHRzRGVzY3JpcHRpb24sXG5cdFx0XHRcdFx0XHRcdFx0c1Byb3BlcnR5VmFsdWVcblx0XHRcdFx0XHRcdFx0XSk7XG5cdFx0XHRcdFx0XHRjYXNlIFwiVmFsdWVEZXNjcmlwdGlvblwiOlxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gTGlicmFyeS5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5jb3JlXCIpIS5nZXRUZXh0KFwiQ19GT1JNQVRfRk9SX1RFWFRfQVJSQU5HRU1FTlRcIiwgW1xuXHRcdFx0XHRcdFx0XHRcdHNQcm9wZXJ0eVZhbHVlLFxuXHRcdFx0XHRcdFx0XHRcdHNEZXNjcmlwdGlvblxuXHRcdFx0XHRcdFx0XHRdKTtcblx0XHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRcdHJldHVybiBzUHJvcGVydHlWYWx1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaChmdW5jdGlvbiAob0Vycm9yOiB1bmtub3duKSB7XG5cdFx0XHRcdFx0Y29uc3QgZXJyb3JPYmogPSBvRXJyb3IgYXMgeyBzdGF0dXM6IG51bWJlcjsgbWVzc2FnZTogc3RyaW5nIH07XG5cdFx0XHRcdFx0Y29uc3Qgc01zZyA9XG5cdFx0XHRcdFx0XHRlcnJvck9iai5zdGF0dXMgJiYgZXJyb3JPYmouc3RhdHVzID09PSA0MDRcblx0XHRcdFx0XHRcdFx0PyBgTWV0YWRhdGEgbm90IGZvdW5kICgke2Vycm9yT2JqLnN0YXR1c30pIGZvciB2YWx1ZSBoZWxwIG9mIHByb3BlcnR5ICR7c1Byb3BlcnR5RnVsbFBhdGh9YFxuXHRcdFx0XHRcdFx0XHQ6IGVycm9yT2JqLm1lc3NhZ2U7XG5cdFx0XHRcdFx0TG9nLmVycm9yKHNNc2cpO1xuXHRcdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIHNQcm9wZXJ0eVZhbHVlO1xuXHR9LFxuXG5cdGRpc3BsYXlBZ2dyZWdhdGVEZXRhaWxzOiBhc3luYyBmdW5jdGlvbiAoZXZlbnQ6IEV2ZW50LCBhZ2dyZWdhdGVkUHJvcGVydHlQYXRoPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0aWYgKCFhZ2dyZWdhdGVkUHJvcGVydHlQYXRoKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IGxpbmsgPSBldmVudC5nZXRTb3VyY2U8TGluaz4oKTtcblx0XHRjb25zdCBhbmFseXRpY2FsVGFibGUgPSBGUE1IZWxwZXIuZ2V0TWRjVGFibGUobGluaykhO1xuXG5cdFx0Y29uc3Qgcm93Q29udGV4dCA9IGxpbmsuZ2V0QmluZGluZ0NvbnRleHQoKSBhcyBDb250ZXh0O1xuXHRcdGNvbnN0IHRhYmxlUm93QmluZGluZyA9IHJvd0NvbnRleHQuZ2V0QmluZGluZygpIGFzIE9EYXRhTGlzdEJpbmRpbmc7XG5cblx0XHQvLyBHZXQgdGhlIGZpbHRlcnMgY29ycmVzcG9uZGluZyB0byB0aGUgdG90YWwgcm93XG5cdFx0Y29uc3Qgcm93Q29udGV4dERhdGEgPSByb3dDb250ZXh0LmdldE9iamVjdCgpO1xuXHRcdGNvbnN0IHJvd1NwZWNpZmljRmlsdGVyOiBGaWx0ZXJbXSA9IFtdO1xuXHRcdGNvbnN0IHJvd0ZpbHRlciA9IHJvd0NvbnRleHQuZ2V0RmlsdGVyKCk7XG5cdFx0aWYgKHJvd0ZpbHRlcikge1xuXHRcdFx0cm93U3BlY2lmaWNGaWx0ZXIucHVzaChyb3dGaWx0ZXIpO1xuXHRcdH1cblxuXHRcdC8vIEFkZCB0aGUgZmlsdGVycyBhcHBsaWVkIHRvIHRoZSBvcmlnaW5hbCB0YWJsZVxuXHRcdGNvbnN0IGFsbEZpbHRlcnMgPSByb3dTcGVjaWZpY0ZpbHRlci5jb25jYXQodGFibGVSb3dCaW5kaW5nLmdldEZpbHRlcnMoXCJBcHBsaWNhdGlvblwiKSwgdGFibGVSb3dCaW5kaW5nLmdldEZpbHRlcnMoXCJDb250cm9sXCIpKTtcblxuXHRcdC8vIENhbGN1bGF0ZSAkJGFnZ3JlZ2F0aW9uIHBhcmFtZXRlcnMgZm9yIHRoZSB0YWJsZSBpbiB0aGUgcG9wb3ZlciAoYWdncmVnYXRlIGFtb3VudCwgZ3JvdXAgYnkgY3VycmVuY3kvdW5pdClcblx0XHRjb25zdCBhZ2dyZWdhdGlvbiA9IHRhYmxlUm93QmluZGluZy5nZXRBZ2dyZWdhdGlvbigpIGFzIHtcblx0XHRcdGdyb3VwOiBSZWNvcmQ8c3RyaW5nLCBvYmplY3Q+O1xuXHRcdFx0YWdncmVnYXRlOiBSZWNvcmQ8c3RyaW5nLCB7IHVuaXQ6IHN0cmluZyB9Pjtcblx0XHRcdHNlYXJjaD86IHN0cmluZztcblx0XHR9O1xuXHRcdGNvbnN0IHVuaXRPckN1cnJlbmN5TmFtZSA9IGFnZ3JlZ2F0aW9uLmFnZ3JlZ2F0ZVthZ2dyZWdhdGVkUHJvcGVydHlQYXRoXS51bml0O1xuXHRcdGNvbnN0IGdyb3VwOiBSZWNvcmQ8c3RyaW5nLCBvYmplY3Q+ID0ge307XG5cdFx0Z3JvdXBbdW5pdE9yQ3VycmVuY3lOYW1lXSA9IHt9O1xuXHRcdGNvbnN0IGFnZ3JlZ2F0ZTogUmVjb3JkPHN0cmluZywgb2JqZWN0PiA9IHt9O1xuXHRcdGFnZ3JlZ2F0ZVthZ2dyZWdhdGVkUHJvcGVydHlQYXRoXSA9IHsgZ3JhbmRUb3RhbDogZmFsc2UsIHN1YnRvdGFsczogZmFsc2UsIHVuaXQ6IHVuaXRPckN1cnJlbmN5TmFtZSB9O1xuXG5cdFx0Ly8gVGhlIGl0ZW0gZGlzcGxheWVkIGluIHRoZSB0YWJsZSBpbiB0aGUgcG9wb3ZlciBpcyBhIGNvcHkgb2YgdGhlIGl0ZW0gZGlzcGxheWVkIGluIHRoZSB0YWJsZVxuXHRcdGNvbnN0IHRhYmxlSXRlbSA9IGxpbmsuZ2V0RGVwZW5kZW50cygpWzBdLmNsb25lKCk7XG5cdFx0Y29uc3QgY3VycmVuY3lPclF1YW50aXR5RW5hYmxlZExheW91dCA9IG5ldyBIQm94KHtcblx0XHRcdHJlbmRlclR5cGU6IFwiQmFyZVwiLFxuXHRcdFx0anVzdGlmeUNvbnRlbnQ6IFwiRW5kXCIsXG5cdFx0XHRpdGVtczogW3RhYmxlSXRlbV1cblx0XHR9IGFzICRIQm94U2V0dGluZ3MpO1xuXG5cdFx0Y29uc3QgYWdncmVnYXRpb25QYXJhbWV0ZXJzOiB7XG5cdFx0XHRncm91cDogUmVjb3JkPHN0cmluZywgb2JqZWN0Pjtcblx0XHRcdGFnZ3JlZ2F0ZTogUmVjb3JkPHN0cmluZywgb2JqZWN0Pjtcblx0XHRcdHNlYXJjaD86IHN0cmluZztcblx0XHR9ID0geyBncm91cCwgYWdncmVnYXRlIH07XG5cdFx0aWYgKGFnZ3JlZ2F0aW9uLnNlYXJjaCkge1xuXHRcdFx0YWdncmVnYXRpb25QYXJhbWV0ZXJzLnNlYXJjaCA9IGFnZ3JlZ2F0aW9uLnNlYXJjaDtcblx0XHR9XG5cblx0XHRjb25zdCBvSXRlbXNCaW5kaW5nSW5mbyA9IHtcblx0XHRcdHBhdGg6IHRhYmxlUm93QmluZGluZy5nZXRSZXNvbHZlZFBhdGgoKSxcblx0XHRcdGZpbHRlcnM6IGFsbEZpbHRlcnMsXG5cdFx0XHRwYXJhbWV0ZXJzOiB7XG5cdFx0XHRcdCQkYWdncmVnYXRpb246IGFnZ3JlZ2F0aW9uUGFyYW1ldGVyc1xuXHRcdFx0fSxcblx0XHRcdHNvcnRlcjogbmV3IFNvcnRlcih1bml0T3JDdXJyZW5jeU5hbWUsIGZhbHNlKSAvLyBPcmRlciBieSBjdXJyZW5jeVxuXHRcdH07XG5cblx0XHRjb25zdCBpc1BvcG92ZXJGb3JHcmFuZFRvdGFsID0gcm93Q29udGV4dERhdGFbXCJAJHVpNS5ub2RlLmxldmVsXCJdID09PSAwO1xuXHRcdGNvbnN0IHBvcG92ZXI6IFJlc3BvbnNpdmVQb3BvdmVyID0gYXdhaXQgVXRpbC5jcmVhdGVPclVwZGF0ZU11bHRpVW5pdFBvcG92ZXIoYCR7YW5hbHl0aWNhbFRhYmxlLmdldElkKCl9LW11bHRpVW5pdFBvcG92ZXJgLCB7XG5cdFx0XHRjb250cm9sOiBhbmFseXRpY2FsVGFibGUsXG5cdFx0XHRncmFuZFRvdGFsOiBpc1BvcG92ZXJGb3JHcmFuZFRvdGFsLFxuXHRcdFx0aXRlbXNCaW5kaW5nSW5mbzogb0l0ZW1zQmluZGluZ0luZm8sXG5cdFx0XHRsaXN0SXRlbUNvbnRlbnRUZW1wbGF0ZTogY3VycmVuY3lPclF1YW50aXR5RW5hYmxlZExheW91dFxuXHRcdH0pO1xuXHRcdGFuYWx5dGljYWxUYWJsZS5hZGREZXBlbmRlbnQocG9wb3Zlcik7XG5cblx0XHRjb25zdCBmbk9uQ2xvc2UgPSAoKTogdm9pZCA9PiB7XG5cdFx0XHRhbmFseXRpY2FsVGFibGUucmVtb3ZlRGVwZW5kZW50KHBvcG92ZXIpO1xuXHRcdFx0cG9wb3Zlci5kZXRhY2hFdmVudChcImFmdGVyQ2xvc2VcIiwgZm5PbkNsb3NlKTtcblx0XHRcdHBvcG92ZXIuZGVzdHJveSgpO1xuXHRcdH07XG5cdFx0cG9wb3Zlci5hdHRhY2hFdmVudChcImFmdGVyQ2xvc2VcIiwgZm5PbkNsb3NlKTtcblx0XHRwb3BvdmVyLm9wZW5CeShsaW5rKTtcblx0fVxufTtcblxuT2JqZWN0UGF0aC5zZXQoXCJzYXAuZmUubWFjcm9zLmZpZWxkLkZpZWxkUnVudGltZVwiLCBGaWVsZFJ1bnRpbWUpO1xuXG5leHBvcnQgZGVmYXVsdCBGaWVsZFJ1bnRpbWU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7RUF3QkE7QUFDQTtBQUNBO0FBQ0E7RUFDQSxNQUFNQSxZQUFZLEdBQUc7SUFDcEJDLGNBQWMsRUFBRSxDQUFDLENBQTREO0lBQzdFQyxtQkFBbUIsRUFBRSxLQUFLO0lBRTFCO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNDQyx1QkFBdUIsRUFBRSxTQUFBQSxDQUN4QkMsYUFBcUIsRUFDckJDLDZCQUFxQyxFQUNyQ0MsY0FBd0IsRUFDeEJDLGNBQXdCLEVBQ3hCQyxhQUF1QixFQUNiO01BQ1YsSUFBSUQsY0FBYyxLQUFLRSxTQUFTLElBQUlILGNBQWMsS0FBS0csU0FBUyxLQUFLLENBQUNGLGNBQWMsSUFBSUQsY0FBYyxDQUFDLElBQUksQ0FBQ0UsYUFBYSxFQUFFO1FBQzFILE9BQU9KLGFBQWEsS0FBS0MsNkJBQTZCO01BQ3ZELENBQUMsTUFBTTtRQUNOLE9BQU8sS0FBSztNQUNiO0lBQ0QsQ0FBQztJQUVEO0FBQ0Q7QUFDQTtBQUNBO0lBQ0NLLG9CQUFvQixFQUFFLFNBQUFBLENBQVVDLE1BQXVDLEVBQVE7TUFDOUUsTUFBTUMsWUFBWSxHQUFHRCxNQUFNLENBQUNFLFNBQVMsQ0FBQyxDQUFrQjtNQUN4RCxNQUFNQyxJQUFJLEdBQUdDLFdBQVcsQ0FBQ0MsYUFBYSxDQUFDSixZQUFZLENBQUM7UUFDbkRLLFVBQVUsR0FBR0gsSUFBSSxDQUFDSSxhQUFhLENBQUMsQ0FBQztNQUVsQyxNQUFNQyxhQUFhLEdBQUdDLGtCQUFrQixDQUFDQyxzQkFBc0IsQ0FBQ0os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
|
|
@@ -3,6 +3,7 @@ import ObjectPath from "sap/base/util/ObjectPath";
|
|
|
3
3
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
4
4
|
import FPMHelper from "sap/fe/core/helpers/FPMHelper";
|
|
5
5
|
import CommonHelper from "sap/fe/macros/CommonHelper";
|
|
6
|
+
import type { AnnotationValueListType } from "sap/fe/macros/internal/valuehelp/ValueListHelper";
|
|
6
7
|
import type { $HBoxSettings } from "sap/m/HBox";
|
|
7
8
|
import HBox from "sap/m/HBox";
|
|
8
9
|
import type Link from "sap/m/Link";
|
|
@@ -13,6 +14,7 @@ import type ManagedObject from "sap/ui/base/ManagedObject";
|
|
|
13
14
|
import type Control from "sap/ui/core/Control";
|
|
14
15
|
import type { Control$ValidateFieldGroupEvent } from "sap/ui/core/Control";
|
|
15
16
|
import Library from "sap/ui/core/Lib";
|
|
17
|
+
import type BaseContext from "sap/ui/model/Context";
|
|
16
18
|
import Filter from "sap/ui/model/Filter";
|
|
17
19
|
import Sorter from "sap/ui/model/Sorter";
|
|
18
20
|
import type Context from "sap/ui/model/odata/v4/Context";
|
|
@@ -72,6 +74,59 @@ const FieldRuntime = {
|
|
|
72
74
|
return sCurrentHash;
|
|
73
75
|
},
|
|
74
76
|
|
|
77
|
+
/**
|
|
78
|
+
* Creates filters for ValueList requests based on ValueListParameterIn and ValueListParameterInOut annotations.
|
|
79
|
+
* @param valueListInfo The ValueList annotation information
|
|
80
|
+
* @param propertyId The ID property of the IdAndDesciption of the text arrangement annotation
|
|
81
|
+
* @param propertyValue The value for the propertyId property
|
|
82
|
+
* @param bindingContext The binding context to get values from
|
|
83
|
+
* @returns Array of filters for the ValueList request
|
|
84
|
+
*/
|
|
85
|
+
createValueListFilters: function (
|
|
86
|
+
valueListInfo: AnnotationValueListType,
|
|
87
|
+
propertyId: string,
|
|
88
|
+
propertyValue: string,
|
|
89
|
+
bindingContext: BaseContext | null | undefined
|
|
90
|
+
): Filter[] {
|
|
91
|
+
// Start with the key filter
|
|
92
|
+
const filters: Filter[] = [
|
|
93
|
+
new Filter({
|
|
94
|
+
path: propertyId,
|
|
95
|
+
operator: "EQ",
|
|
96
|
+
value1: propertyValue
|
|
97
|
+
})
|
|
98
|
+
];
|
|
99
|
+
|
|
100
|
+
if (bindingContext && valueListInfo.Parameters) {
|
|
101
|
+
const relevantParameters = valueListInfo.Parameters.filter((parameter) => {
|
|
102
|
+
const isInOrInOut =
|
|
103
|
+
parameter.$Type === "com.sap.vocabularies.Common.v1.ValueListParameterIn" ||
|
|
104
|
+
parameter.$Type === "com.sap.vocabularies.Common.v1.ValueListParameterInOut";
|
|
105
|
+
return (
|
|
106
|
+
isInOrInOut &&
|
|
107
|
+
parameter.LocalDataProperty?.$PropertyPath &&
|
|
108
|
+
parameter.ValueListProperty &&
|
|
109
|
+
parameter.ValueListProperty !== propertyId
|
|
110
|
+
);
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
relevantParameters.forEach((parameter) => {
|
|
114
|
+
const localValue = bindingContext.getProperty(parameter.LocalDataProperty!.$PropertyPath);
|
|
115
|
+
if (localValue !== undefined && localValue !== null && localValue !== "") {
|
|
116
|
+
filters.push(
|
|
117
|
+
new Filter({
|
|
118
|
+
path: parameter.ValueListProperty,
|
|
119
|
+
operator: "EQ",
|
|
120
|
+
value1: localValue
|
|
121
|
+
})
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return filters;
|
|
128
|
+
},
|
|
129
|
+
|
|
75
130
|
/**
|
|
76
131
|
* Method to retrieve text from the value list for DataField.
|
|
77
132
|
* This is a formatter in disguise.
|
|
@@ -92,6 +147,7 @@ const FieldRuntime = {
|
|
|
92
147
|
if (sPropertyValue) {
|
|
93
148
|
oMetaModel = (this.getModel()?.getMetaModel() as ODataMetaModel) || CommonHelper.getMetaModel();
|
|
94
149
|
sPropertyName = oMetaModel.getObject(`${sPropertyFullPath}@sapui.name`);
|
|
150
|
+
const bindingContext = this.getBindingContext();
|
|
95
151
|
return oMetaModel
|
|
96
152
|
.requestValueListInfo(sPropertyFullPath, true)
|
|
97
153
|
.then(function (mValueListInfo) {
|
|
@@ -113,15 +169,17 @@ const FieldRuntime = {
|
|
|
113
169
|
|
|
114
170
|
if (oTextAnnotation && oTextAnnotation.$Path) {
|
|
115
171
|
sTextProperty = oTextAnnotation.$Path;
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
172
|
+
|
|
173
|
+
const filters = FieldRuntime.createValueListFilters(
|
|
174
|
+
oValueListInfo,
|
|
175
|
+
oParamWithKey.ValueListProperty,
|
|
176
|
+
sPropertyValue,
|
|
177
|
+
bindingContext
|
|
178
|
+
);
|
|
179
|
+
const listBinding = oValueListModel.bindList(`/${oValueListInfo.CollectionPath}`, undefined, undefined, filters, {
|
|
122
180
|
$select: sTextProperty
|
|
123
181
|
});
|
|
124
|
-
return
|
|
182
|
+
return listBinding.requestContexts(0, 2);
|
|
125
183
|
} else {
|
|
126
184
|
sDisplayFormat = "Value";
|
|
127
185
|
return sPropertyValue;
|