@sapui5/sap.fe.core 1.94.0 → 1.96.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AnnotationHelper.js +3 -3
- package/src/sap/fe/core/AppComponent.js +10 -41
- package/src/sap/fe/core/AppStateHandler.js +18 -4
- package/src/sap/fe/core/BaseController.js +1 -1
- package/src/sap/fe/core/BusyLocker.js +13 -1
- package/src/sap/fe/core/CommonUtils.js +372 -9
- package/src/sap/fe/core/ExtensionAPI.js +1 -1
- package/src/sap/fe/core/PageController.js +11 -3
- package/src/sap/fe/core/RouterProxy.js +59 -69
- package/src/sap/fe/core/Synchronization.js +1 -1
- package/src/sap/fe/core/TemplateComponent.js +9 -3
- package/src/sap/fe/core/TemplateModel.js +1 -1
- package/src/sap/fe/core/TransactionHelper.js +157 -111
- package/src/sap/fe/core/actions/draft.js +1 -1
- package/src/sap/fe/core/actions/messageHandling.js +1 -1
- package/src/sap/fe/core/actions/nonDraft.js +1 -1
- package/src/sap/fe/core/actions/operations.js +25 -3
- package/src/sap/fe/core/actions/sticky.js +1 -1
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js +89 -54
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +14 -7
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +128 -25
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +197 -210
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +844 -168
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +903 -189
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +1 -1
- package/src/sap/fe/core/controllerextensions/PageReady.js +31 -17
- package/src/sap/fe/core/controllerextensions/PageReady.ts +50 -15
- package/src/sap/fe/core/controllerextensions/Paginator.js +20 -4
- package/src/sap/fe/core/controllerextensions/Placeholder.js +134 -271
- package/src/sap/fe/core/controllerextensions/Routing.js +1 -1
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
- package/src/sap/fe/core/controllerextensions/Share.js +20 -7
- package/src/sap/fe/core/controllerextensions/SideEffects.js +2 -3
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +13 -12
- package/src/sap/fe/core/controllerextensions/ViewState.js +174 -7
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +39 -34
- package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +35 -0
- package/src/sap/fe/core/controls/CommandExecution.js +1 -1
- package/src/sap/fe/core/controls/ConditionalWrapper.js +1 -1
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +4 -1
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
- package/src/sap/fe/core/controls/FieldWrapper.js +1 -1
- package/src/sap/fe/core/controls/FilterBar.js +1 -1
- package/src/sap/fe/core/controls/FormElementWrapper.js +1 -1
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +45 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +5 -8
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +83 -23
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +2 -6
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +25 -18
- package/src/sap/fe/core/converters/ConverterContext.js +18 -4
- package/src/sap/fe/core/converters/ConverterContext.ts +13 -3
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +4 -1
- package/src/sap/fe/core/converters/MetaModelConverter.js +855 -868
- package/src/sap/fe/core/converters/MetaModelConverter.ts +763 -826
- package/src/sap/fe/core/converters/annotations/DataField.js +52 -2
- package/src/sap/fe/core/converters/annotations/DataField.ts +52 -2
- package/src/sap/fe/core/converters/controls/Common/Action.js +6 -1
- package/src/sap/fe/core/converters/controls/Common/Action.ts +3 -0
- package/src/sap/fe/core/converters/controls/Common/Chart.js +85 -6
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +80 -2
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +15 -16
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +16 -30
- package/src/sap/fe/core/converters/controls/Common/Form.js +17 -8
- package/src/sap/fe/core/converters/controls/Common/Form.ts +11 -3
- package/src/sap/fe/core/converters/controls/Common/KPI.js +287 -109
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +314 -139
- package/src/sap/fe/core/converters/controls/Common/Table.js +273 -105
- package/src/sap/fe/core/converters/controls/Common/Table.ts +319 -111
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +8 -20
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +11 -15
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +44 -15
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +41 -19
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +74 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +50 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +15 -7
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +27 -6
- package/src/sap/fe/core/converters/helpers/Aggregation.js +18 -30
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +17 -28
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +3 -2
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +2 -2
- package/src/sap/fe/core/converters/helpers/ID.js +1 -1
- package/src/sap/fe/core/converters/helpers/ID.ts +2 -2
- package/src/sap/fe/core/converters/helpers/IssueManager.js +3 -3
- package/src/sap/fe/core/converters/helpers/IssueManager.ts +2 -2
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +11 -6
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +9 -5
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +15 -2
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +14 -14
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +2 -2
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +1 -1
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +73 -8
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +70 -10
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +82 -16
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +100 -17
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.ts +8 -3
- package/src/sap/fe/core/fpm/Component.js +2 -2
- package/src/sap/fe/core/helpers/BindingExpression.js +17 -2
- package/src/sap/fe/core/helpers/BindingExpression.ts +14 -1
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -1
- package/src/sap/fe/core/helpers/EditState.js +1 -1
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -3
- package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
- package/src/sap/fe/core/helpers/ModelHelper.js +28 -1
- package/src/sap/fe/core/helpers/PasteHelper.js +7 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -3
- package/src/sap/fe/core/helpers/StableIdHelper.js +2 -2
- package/src/sap/fe/core/helpers/StableIdHelper.ts +1 -1
- package/src/sap/fe/core/library.js +2 -2
- package/src/sap/fe/core/library.support.js +1 -1
- package/src/sap/fe/core/messagebundle.properties +30 -1
- package/src/sap/fe/core/messagebundle_ar.properties +14 -0
- package/src/sap/fe/core/messagebundle_bg.properties +14 -0
- package/src/sap/fe/core/messagebundle_ca.properties +15 -1
- package/src/sap/fe/core/messagebundle_cs.properties +14 -0
- package/src/sap/fe/core/messagebundle_cy.properties +14 -0
- package/src/sap/fe/core/messagebundle_da.properties +14 -0
- package/src/sap/fe/core/messagebundle_de.properties +14 -0
- package/src/sap/fe/core/messagebundle_el.properties +14 -0
- package/src/sap/fe/core/messagebundle_en.properties +14 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +14 -0
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +14 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +20 -2
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +14 -0
- package/src/sap/fe/core/messagebundle_es.properties +21 -7
- package/src/sap/fe/core/messagebundle_es_MX.properties +15 -1
- package/src/sap/fe/core/messagebundle_et.properties +14 -0
- package/src/sap/fe/core/messagebundle_fi.properties +14 -0
- package/src/sap/fe/core/messagebundle_fr.properties +18 -4
- package/src/sap/fe/core/messagebundle_fr_CA.properties +14 -0
- package/src/sap/fe/core/messagebundle_hi.properties +14 -0
- package/src/sap/fe/core/messagebundle_hr.properties +14 -0
- package/src/sap/fe/core/messagebundle_hu.properties +14 -0
- package/src/sap/fe/core/messagebundle_id.properties +14 -0
- package/src/sap/fe/core/messagebundle_it.properties +14 -0
- package/src/sap/fe/core/messagebundle_iw.properties +15 -1
- package/src/sap/fe/core/messagebundle_ja.properties +14 -0
- package/src/sap/fe/core/messagebundle_kk.properties +14 -0
- package/src/sap/fe/core/messagebundle_ko.properties +14 -0
- package/src/sap/fe/core/messagebundle_lt.properties +14 -0
- package/src/sap/fe/core/messagebundle_lv.properties +14 -0
- package/src/sap/fe/core/messagebundle_ms.properties +14 -0
- package/src/sap/fe/core/messagebundle_nl.properties +18 -4
- package/src/sap/fe/core/messagebundle_no.properties +15 -1
- package/src/sap/fe/core/messagebundle_pl.properties +15 -1
- package/src/sap/fe/core/messagebundle_pt.properties +14 -0
- package/src/sap/fe/core/messagebundle_pt_PT.properties +14 -0
- package/src/sap/fe/core/messagebundle_ro.properties +14 -0
- package/src/sap/fe/core/messagebundle_ru.properties +14 -0
- package/src/sap/fe/core/messagebundle_sh.properties +14 -0
- package/src/sap/fe/core/messagebundle_sk.properties +14 -0
- package/src/sap/fe/core/messagebundle_sl.properties +14 -0
- package/src/sap/fe/core/messagebundle_sv.properties +14 -0
- package/src/sap/fe/core/messagebundle_th.properties +14 -0
- package/src/sap/fe/core/messagebundle_tr.properties +14 -0
- package/src/sap/fe/core/messagebundle_uk.properties +14 -0
- package/src/sap/fe/core/messagebundle_vi.properties +14 -0
- package/src/sap/fe/core/messagebundle_zh_CN.properties +14 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +14 -0
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +1 -1
- package/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
- package/src/sap/fe/core/services/RoutingServiceFactory.js +114 -44
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +2 -2
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +12 -2
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js +3 -14
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +3 -10
- package/src/sap/fe/core/templating/EntitySetHelper.js +13 -3
- package/src/sap/fe/core/templating/EntitySetHelper.ts +4 -0
- package/src/sap/fe/core/templating/FilterHelper.js +2 -2
- package/src/sap/fe/core/templating/FilterHelper.ts +1 -1
- package/src/sap/fe/core/templating/UIFormatters.js +41 -3
- package/src/sap/fe/core/templating/UIFormatters.ts +74 -2
|
@@ -44,11 +44,11 @@ sap.ui.define(["../../ManifestSettings", "sap/fe/core/converters/controls/Common
|
|
|
44
44
|
if (chartAnnotation) {
|
|
45
45
|
var aActions = chartAnnotation.Actions || [];
|
|
46
46
|
aActions.forEach(function (dataField) {
|
|
47
|
-
var _dataField$annotation, _dataField$annotation2, _dataField$annotation3;
|
|
47
|
+
var _dataField$annotation, _dataField$annotation2, _dataField$annotation3, _ActionTarget;
|
|
48
48
|
|
|
49
49
|
var chartAction;
|
|
50
50
|
|
|
51
|
-
if (isDataFieldForActionAbstract(dataField) && !(((_dataField$annotation = dataField.annotations) === null || _dataField$annotation === void 0 ? void 0 : (_dataField$annotation2 = _dataField$annotation.UI) === null || _dataField$annotation2 === void 0 ? void 0 : (_dataField$annotation3 = _dataField$annotation2.Hidden) === null || _dataField$annotation3 === void 0 ? void 0 : _dataField$annotation3.valueOf()) === true) && !dataField.Inline && !dataField.Determining) {
|
|
51
|
+
if (isDataFieldForActionAbstract(dataField) && !(((_dataField$annotation = dataField.annotations) === null || _dataField$annotation === void 0 ? void 0 : (_dataField$annotation2 = _dataField$annotation.UI) === null || _dataField$annotation2 === void 0 ? void 0 : (_dataField$annotation3 = _dataField$annotation2.Hidden) === null || _dataField$annotation3 === void 0 ? void 0 : _dataField$annotation3.valueOf()) === true) && !dataField.Inline && !dataField.Determining && !(dataField !== null && dataField !== void 0 && (_ActionTarget = dataField.ActionTarget) !== null && _ActionTarget !== void 0 && _ActionTarget.isBound)) {
|
|
52
52
|
var key = KeyHelper.generateKeyFromDataField(dataField);
|
|
53
53
|
|
|
54
54
|
switch (dataField.$Type) {
|
|
@@ -138,7 +138,7 @@ sap.ui.define(["../../ManifestSettings", "sap/fe/core/converters/controls/Common
|
|
|
138
138
|
_exports.getP13nMode = getP13nMode;
|
|
139
139
|
|
|
140
140
|
function createChartVisualization(chartAnnotation, visualizationPath, converterContext, doNotCheckApplySupported) {
|
|
141
|
-
var _converterContext$get, _converterContext$get2, _converterContext$get3;
|
|
141
|
+
var _converterContext$get, _converterContext$get2, _converterContext$get3, _converterContext$get4;
|
|
142
142
|
|
|
143
143
|
var aggregationHelper = new AggregationHelper(converterContext.getEntityType(), converterContext);
|
|
144
144
|
|
|
@@ -146,6 +146,82 @@ sap.ui.define(["../../ManifestSettings", "sap/fe/core/converters/controls/Common
|
|
|
146
146
|
throw new Error("ApplySupported is not added to the annotations");
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
+
var aTransAggAnnos = (_converterContext$get = converterContext.getEntityType().annotations.Analytics) === null || _converterContext$get === void 0 ? void 0 : _converterContext$get.AggregatedProperties;
|
|
150
|
+
var transAggLabels = {};
|
|
151
|
+
|
|
152
|
+
for (var i = 0; aTransAggAnnos && i < aTransAggAnnos.length; i++) {
|
|
153
|
+
var _aTransAggAnnos$i, _aTransAggAnnos$i$ann, _aTransAggAnnos$i$ann2;
|
|
154
|
+
|
|
155
|
+
transAggLabels[aTransAggAnnos[i].Name] = {
|
|
156
|
+
label: (_aTransAggAnnos$i = aTransAggAnnos[i]) === null || _aTransAggAnnos$i === void 0 ? void 0 : (_aTransAggAnnos$i$ann = _aTransAggAnnos$i.annotations) === null || _aTransAggAnnos$i$ann === void 0 ? void 0 : (_aTransAggAnnos$i$ann2 = _aTransAggAnnos$i$ann.Common) === null || _aTransAggAnnos$i$ann2 === void 0 ? void 0 : _aTransAggAnnos$i$ann2.Label
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
var aCustomAggregates = aggregationHelper.getCustomAggregateDefinitions();
|
|
161
|
+
var mCustomAggregates = {};
|
|
162
|
+
|
|
163
|
+
if (aCustomAggregates) {
|
|
164
|
+
for (var _i = 0; _i < aCustomAggregates.length; _i++) {
|
|
165
|
+
var _aCustomAggregates$_i, _aCustomAggregates$_i2;
|
|
166
|
+
|
|
167
|
+
var aContextDefiningProperties = (_aCustomAggregates$_i = aCustomAggregates[_i].annotations) === null || _aCustomAggregates$_i === void 0 ? void 0 : (_aCustomAggregates$_i2 = _aCustomAggregates$_i.Aggregation) === null || _aCustomAggregates$_i2 === void 0 ? void 0 : _aCustomAggregates$_i2.ContextDefiningProperties;
|
|
168
|
+
mCustomAggregates[aCustomAggregates[_i].qualifier] = {
|
|
169
|
+
name: aCustomAggregates[_i].qualifier,
|
|
170
|
+
label: "Custom Aggregate (" + aCustomAggregates[_i].qualifier + ")",
|
|
171
|
+
sortable: true,
|
|
172
|
+
sortOrder: "both",
|
|
173
|
+
contextDefiningProperty: aContextDefiningProperties ? aContextDefiningProperties.map(function (oCtxDefProperty) {
|
|
174
|
+
return oCtxDefProperty.value;
|
|
175
|
+
}) : []
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
var aTransAggregations = aggregationHelper.getTransAggregations()[0];
|
|
181
|
+
var mTransAggregations = {};
|
|
182
|
+
|
|
183
|
+
if (aTransAggregations) {
|
|
184
|
+
for (var _i2 = 0; _i2 < aTransAggregations.length; _i2++) {
|
|
185
|
+
mTransAggregations[aTransAggregations[_i2].Name] = {
|
|
186
|
+
name: aTransAggregations[_i2].Name,
|
|
187
|
+
propertyPath: aTransAggregations[_i2].AggregatableProperty.valueOf().value,
|
|
188
|
+
aggregationMethod: aTransAggregations[_i2].AggregationMethod,
|
|
189
|
+
label: aTransAggregations[_i2].Name in transAggLabels ? transAggLabels[aTransAggregations[_i2].Name].label : "Aggregatable property (" + aTransAggregations[_i2].Name + ")",
|
|
190
|
+
sortable: true,
|
|
191
|
+
sortOrder: "both",
|
|
192
|
+
custom: false
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
var aAggProps = aggregationHelper.getAggregatableProperties();
|
|
198
|
+
var aGrpProps = aggregationHelper.getGroupableProperties();
|
|
199
|
+
var mApplySupported = {};
|
|
200
|
+
mApplySupported.$Type = "Org.OData.Aggregation.V1.ApplySupportedType";
|
|
201
|
+
mApplySupported.AggregatableProperties = [];
|
|
202
|
+
mApplySupported.GroupableProperties = [];
|
|
203
|
+
|
|
204
|
+
for (var _i3 = 0; aAggProps && _i3 < aAggProps.length; _i3++) {
|
|
205
|
+
var _aAggProps$_i, _aAggProps$_i2, _aAggProps$_i2$Proper;
|
|
206
|
+
|
|
207
|
+
var obj = {
|
|
208
|
+
$Type: (_aAggProps$_i = aAggProps[_i3]) === null || _aAggProps$_i === void 0 ? void 0 : _aAggProps$_i.$Type,
|
|
209
|
+
Property: {
|
|
210
|
+
$PropertyPath: (_aAggProps$_i2 = aAggProps[_i3]) === null || _aAggProps$_i2 === void 0 ? void 0 : (_aAggProps$_i2$Proper = _aAggProps$_i2.Property) === null || _aAggProps$_i2$Proper === void 0 ? void 0 : _aAggProps$_i2$Proper.value
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
mApplySupported.AggregatableProperties.push(obj);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
for (var _i4 = 0; aGrpProps && _i4 < aGrpProps.length; _i4++) {
|
|
217
|
+
var _aGrpProps$_i;
|
|
218
|
+
|
|
219
|
+
var _obj = {
|
|
220
|
+
$PropertyPath: (_aGrpProps$_i = aGrpProps[_i4]) === null || _aGrpProps$_i === void 0 ? void 0 : _aGrpProps$_i.value
|
|
221
|
+
};
|
|
222
|
+
mApplySupported.GroupableProperties.push(_obj);
|
|
223
|
+
}
|
|
224
|
+
|
|
149
225
|
var chartActions = getChartActions(chartAnnotation, visualizationPath, converterContext);
|
|
150
226
|
|
|
151
227
|
var _visualizationPath$sp = visualizationPath.split("@"),
|
|
@@ -159,7 +235,7 @@ sap.ui.define(["../../ManifestSettings", "sap/fe/core/converters/controls/Common
|
|
|
159
235
|
navigationPropertyPath = navigationPropertyPath.substr(0, navigationPropertyPath.length - 1);
|
|
160
236
|
}
|
|
161
237
|
|
|
162
|
-
var title = (_converterContext$
|
|
238
|
+
var title = (_converterContext$get2 = converterContext.getDataModelObjectPath().targetEntityType.annotations) === null || _converterContext$get2 === void 0 ? void 0 : (_converterContext$get3 = _converterContext$get2.UI) === null || _converterContext$get3 === void 0 ? void 0 : (_converterContext$get4 = _converterContext$get3.HeaderInfo) === null || _converterContext$get4 === void 0 ? void 0 : _converterContext$get4.TypeNamePlural;
|
|
163
239
|
var dataModelPath = converterContext.getDataModelObjectPath();
|
|
164
240
|
var isEntitySet = navigationPropertyPath.length === 0;
|
|
165
241
|
var entityName = dataModelPath.targetEntitySet ? dataModelPath.targetEntitySet.name : dataModelPath.startingEntitySet.name;
|
|
@@ -196,11 +272,14 @@ sap.ui.define(["../../ManifestSettings", "sap/fe/core/converters/controls/Common
|
|
|
196
272
|
title: title,
|
|
197
273
|
autoBindOnInit: autoBindOnInit,
|
|
198
274
|
onSegmentedButtonPressed: onSegmentedButtonPressed,
|
|
199
|
-
visible: visible
|
|
275
|
+
visible: visible,
|
|
276
|
+
customAgg: mCustomAggregates,
|
|
277
|
+
transAgg: mTransAggregations,
|
|
278
|
+
applySupported: mApplySupported
|
|
200
279
|
};
|
|
201
280
|
}
|
|
202
281
|
|
|
203
282
|
_exports.createChartVisualization = createChartVisualization;
|
|
204
283
|
return _exports;
|
|
205
284
|
}, false);
|
|
206
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXJ0LnRzIl0sIm5hbWVzIjpbImdldENoYXJ0QWN0aW9uc0Zyb21Bbm5vdGF0aW9ucyIsImNoYXJ0QW5ub3RhdGlvbiIsInZpc3VhbGl6YXRpb25QYXRoIiwiY29udmVydGVyQ29udGV4dCIsImNoYXJ0QWN0aW9ucyIsImFBY3Rpb25zIiwiQWN0aW9ucyIsImZvckVhY2giLCJkYXRhRmllbGQiLCJjaGFydEFjdGlvbiIsImlzRGF0YUZpZWxkRm9yQWN0aW9uQWJzdHJhY3QiLCJhbm5vdGF0aW9ucyIsIlVJIiwiSGlkZGVuIiwidmFsdWVPZiIsIklubGluZSIsIkRldGVybWluaW5nIiwia2V5IiwiS2V5SGVscGVyIiwiZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkIiwiJFR5cGUiLCJ0eXBlIiwiQWN0aW9uVHlwZSIsIkRhdGFGaWVsZEZvckFjdGlvbiIsImFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsIkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiIsInB1c2giLCJnZXRDaGFydEFjdGlvbnMiLCJhQW5ub3RhdGlvbkFjdGlvbnMiLCJpbnNlcnRDdXN0b21FbGVtZW50cyIsImdldEFjdGlvbnNGcm9tTWFuaWZlc3QiLCJnZXRNYW5pZmVzdENvbnRyb2xDb25maWd1cmF0aW9uIiwiYWN0aW9ucyIsImVuYWJsZU9uU2VsZWN0IiwiZW5hYmxlZCIsImdldFAxM25Nb2RlIiwibWFuaWZlc3RXcmFwcGVyIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiY2hhcnRNYW5pZmVzdFNldHRpbmdzIiwiaGFzVmFyaWFudE1hbmFnZW1lbnQiLCJpbmRleE9mIiwiZ2V0VmFyaWFudE1hbmFnZW1lbnQiLCJwZXJzb25hbGl6YXRpb24iLCJhUGVyc29uYWxpemF0aW9uIiwiY2hhcnRTZXR0aW5ncyIsInVuZGVmaW5lZCIsIml0ZW0iLCJzb3J0Iiwiam9pbiIsImNyZWF0ZUNoYXJ0VmlzdWFsaXphdGlvbiIsImRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZCIsImFnZ3JlZ2F0aW9uSGVscGVyIiwiQWdncmVnYXRpb25IZWxwZXIiLCJnZXRFbnRpdHlUeXBlIiwiaXNBbmFseXRpY3NTdXBwb3J0ZWQiLCJFcnJvciIsInNwbGl0IiwibmF2aWdhdGlvblByb3BlcnR5UGF0aCIsImxhc3RJbmRleE9mIiwibGVuZ3RoIiwic3Vic3RyIiwidGl0bGUiLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwidGFyZ2V0RW50aXR5VHlwZSIsIkhlYWRlckluZm8iLCJUeXBlTmFtZVBsdXJhbCIsImRhdGFNb2RlbFBhdGgiLCJpc0VudGl0eVNldCIsImVudGl0eU5hbWUiLCJ0YXJnZXRFbnRpdHlTZXQiLCJuYW1lIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJzRmlsdGVyYmFySWQiLCJGaWx0ZXJCYXJJRCIsImdldENvbnRleHRQYXRoIiwib1ZpelByb3BlcnRpZXMiLCJhdXRvQmluZE9uSW5pdCIsImdldFRlbXBsYXRlVHlwZSIsIlRlbXBsYXRlVHlwZSIsIk9iamVjdFBhZ2UiLCJMaXN0UmVwb3J0IiwiQW5hbHl0aWNhbExpc3RQYWdlIiwiaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyIsIm9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZCIsInZpc2libGUiLCJWaXN1YWxpemF0aW9uVHlwZSIsIkNoYXJ0IiwiaWQiLCJDaGFydElEIiwiY29sbGVjdGlvbiIsImdldFRhcmdldE9iamVjdFBhdGgiLCJuYXZpZ2F0aW9uUGF0aCIsImdldEFic29sdXRlQW5ub3RhdGlvblBhdGgiLCJmaWx0ZXJJZCIsInZpelByb3BlcnRpZXMiLCJKU09OIiwic3RyaW5naWZ5Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBU0EsOEJBQVQsQ0FDQ0MsZUFERCxFQUVDQyxpQkFGRCxFQUdDQyxn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QUFBLE9BQU8sRUFBRTlCLFlBVkg7QUFXTjJELE1BQUFBLEtBQUssRUFBRUEsS0FYRDtBQVlOZSxNQUFBQSxjQUFjLEVBQUVBLGNBWlY7QUFhTk8sTUFBQUEsd0JBQXdCLEVBQUVBLHdCQWJwQjtBQWNOQyxNQUFBQSxPQUFPLEVBQUVBO0FBZEgsS0FBUDtBQWdCQSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhcnRNYW5pZmVzdENvbmZpZ3VyYXRpb24sXG5cdENoYXJ0UGVyc29uYWxpemF0aW9uTWFuaWZlc3RTZXR0aW5ncyxcblx0VmlzdWFsaXphdGlvblR5cGUsXG5cdEFjdGlvblR5cGUsXG5cdFRlbXBsYXRlVHlwZVxufSBmcm9tIFwiLi4vLi4vTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHsgQ2hhcnREZWZpbml0aW9uVHlwZVR5cGVzLCBEYXRhRmllbGRBYnN0cmFjdFR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBBbm5vdGF0aW9uQWN0aW9uLCBCYXNlQWN0aW9uLCBnZXRBY3Rpb25zRnJvbU1hbmlmZXN0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0FjdGlvblwiO1xuaW1wb3J0IHsgaXNEYXRhRmllbGRGb3JBY3Rpb25BYnN0cmFjdCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2Fubm90YXRpb25zL0RhdGFGaWVsZFwiO1xuaW1wb3J0IHsgQ2hhcnRJRCwgRmlsdGVyQmFySUQgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9JRFwiO1xuaW1wb3J0IHsgaW5zZXJ0Q3VzdG9tRWxlbWVudHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgS2V5SGVscGVyIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9LZXlcIjtcbmltcG9ydCB7IGdldFRhcmdldE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgeyBBZ2dyZWdhdGlvbkhlbHBlciB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL0FnZ3JlZ2F0aW9uXCI7XG5pbXBvcnQgTWFuaWZlc3RXcmFwcGVyIGZyb20gXCIuLi8uLi9NYW5pZmVzdFdyYXBwZXJcIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi8uLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5cbi8qKlxuICogQHR5cGVkZWYgQ2hhcnRWaXN1YWxpemF0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIENoYXJ0VmlzdWFsaXphdGlvbiA9IHtcblx0dHlwZTogVmlzdWFsaXphdGlvblR5cGUuQ2hhcnQ7XG5cdGlkOiBzdHJpbmc7XG5cdGNvbGxlY3Rpb246IHN0cmluZztcblx0ZW50aXR5TmFtZTogc3RyaW5nO1xuXHRwZXJzb25hbGl6YXRpb24/OiBzdHJpbmc7XG5cdG5hdmlnYXRpb25QYXRoOiBzdHJpbmc7XG5cdGFubm90YXRpb25QYXRoOiBzdHJpbmc7XG5cdGZpbHRlcklkPzogc3RyaW5nO1xuXHR2aXpQcm9wZXJ0aWVzOiBzdHJpbmc7XG5cdGFjdGlvbnM6IEJhc2VBY3Rpb25bXTtcblx0dGl0bGU6IHN0cmluZztcblx0YXV0b0JpbmRPbkluaXQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cdG9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZDogc3RyaW5nO1xuXHR2aXNpYmxlOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIE1ldGhvZCB0byByZXRyaWV2ZSBhbGwgY2hhcnQgYWN0aW9ucyBmcm9tIGFubm90YXRpb25zLlxuICpcbiAqIEBwYXJhbSBjaGFydEFubm90YXRpb25cbiAqIEBwYXJhbSB2aXN1YWxpemF0aW9uUGF0aFxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEByZXR1cm5zIHtCYXNlQWN0aW9uW119IFRoZSB0YWJsZSBhbm5vdGF0aW9uIGFjdGlvbnNcbiAqL1xuZnVuY3Rpb24gZ2V0Q2hhcnRBY3Rpb25zRnJvbUFubm90YXRpb25zKFxuXHRjaGFydEFubm90YXRpb246IENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcyxcblx0dmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3QgY2hhcnRBY3Rpb25zOiBCYXNlQWN0aW9uW10gPSBbXTtcblx0aWYgKGNoYXJ0QW5ub3RhdGlvbikge1xuXHRcdGNvbnN0IGFBY3Rpb25zID0gY2hhcnRBbm5vdGF0aW9uLkFjdGlvbnMgfHwgW107XG5cdFx0YUFjdGlvbnMuZm9yRWFjaCgoZGF0YUZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzKSA9PiB7XG5cdFx0XHRsZXQgY2hhcnRBY3Rpb246IEFubm90YXRpb25BY3Rpb24gfCB1bmRlZmluZWQ7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdGlzRGF0YUZpZWxkRm9yQWN0aW9uQWJzdHJhY3QoZGF0YUZpZWxkKSAmJlxuXHRcdFx0XHQhKGRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlKSAmJlxuXHRcdFx0XHQhZGF0YUZpZWxkLklubGluZSAmJlxuXHRcdFx0XHQhZGF0YUZpZWxkLkRldGVybWluaW5nXG5cdFx0XHQpIHtcblx0XHRcdFx0Y29uc3Qga2V5ID0gS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChkYXRhRmllbGQpO1xuXHRcdFx0XHRzd2l0Y2ggKGRhdGFGaWVsZC4kVHlwZSkge1xuXHRcdFx0XHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JBY3Rpb25cIjpcblx0XHRcdFx0XHRcdGNoYXJ0QWN0aW9uID0ge1xuXHRcdFx0XHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckFjdGlvbixcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdFx0XHRcdFx0a2V5OiBrZXlcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25cIjpcblx0XHRcdFx0XHRcdGNoYXJ0QWN0aW9uID0ge1xuXHRcdFx0XHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbixcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdFx0XHRcdFx0a2V5OiBrZXlcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKGNoYXJ0QWN0aW9uKSB7XG5cdFx0XHRcdGNoYXJ0QWN0aW9ucy5wdXNoKGNoYXJ0QWN0aW9uKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gY2hhcnRBY3Rpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhcnRBY3Rpb25zKFxuXHRjaGFydEFubm90YXRpb246IENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcyxcblx0dmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3QgYUFubm90YXRpb25BY3Rpb25zOiBCYXNlQWN0aW9uW10gPSBnZXRDaGFydEFjdGlvbnNGcm9tQW5ub3RhdGlvbnMoY2hhcnRBbm5vdGF0aW9uLCB2aXN1YWxpemF0aW9uUGF0aCwgY29udmVydGVyQ29udGV4dCk7XG5cblx0cmV0dXJuIGluc2VydEN1c3RvbUVsZW1lbnRzKFxuXHRcdGFBbm5vdGF0aW9uQWN0aW9ucyxcblx0XHRnZXRBY3Rpb25zRnJvbU1hbmlmZXN0KFxuXHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdENvbnRyb2xDb25maWd1cmF0aW9uKHZpc3VhbGl6YXRpb25QYXRoKS5hY3Rpb25zLFxuXHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdGFBbm5vdGF0aW9uQWN0aW9uc1xuXHRcdCksXG5cdFx0eyBlbmFibGVPblNlbGVjdDogXCJvdmVyd3JpdGVcIiwgZW5hYmxlZDogXCJvdmVyd3JpdGVcIiB9XG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQMTNuTW9kZSh2aXN1YWxpemF0aW9uUGF0aDogc3RyaW5nLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgbWFuaWZlc3RXcmFwcGVyOiBNYW5pZmVzdFdyYXBwZXIgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpO1xuXHRjb25zdCBjaGFydE1hbmlmZXN0U2V0dGluZ3M6IENoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdENvbnRyb2xDb25maWd1cmF0aW9uKHZpc3VhbGl6YXRpb25QYXRoKTtcblx0Y29uc3QgaGFzVmFyaWFudE1hbmFnZW1lbnQ6IGJvb2xlYW4gPSBbXCJQYWdlXCIsIFwiQ29udHJvbFwiXS5pbmRleE9mKG1hbmlmZXN0V3JhcHBlci5nZXRWYXJpYW50TWFuYWdlbWVudCgpKSA+IC0xO1xuXHRsZXQgcGVyc29uYWxpemF0aW9uOiBDaGFydFBlcnNvbmFsaXphdGlvbk1hbmlmZXN0U2V0dGluZ3MgPSB0cnVlO1xuXHRjb25zdCBhUGVyc29uYWxpemF0aW9uOiBzdHJpbmdbXSA9IFtdO1xuXHRpZiAoY2hhcnRNYW5pZmVzdFNldHRpbmdzPy5jaGFydFNldHRpbmdzPy5wZXJzb25hbGl6YXRpb24gIT09IHVuZGVmaW5lZCkge1xuXHRcdHBlcnNvbmFsaXphdGlvbiA9IGNoYXJ0TWFuaWZlc3RTZXR0aW5ncy5jaGFydFNldHRpbmdzLnBlcnNvbmFsaXphdGlvbjtcblx0fVxuXHRpZiAoaGFzVmFyaWFudE1hbmFnZW1lbnQgJiYgcGVyc29uYWxpemF0aW9uKSB7XG5cdFx0aWYgKHBlcnNvbmFsaXphdGlvbiA9PT0gdHJ1ZSkge1xuXHRcdFx0cmV0dXJuIFwiU29ydCxUeXBlLEl0ZW1cIjtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBwZXJzb25hbGl6YXRpb24gPT09IFwib2JqZWN0XCIpIHtcblx0XHRcdGlmIChwZXJzb25hbGl6YXRpb24udHlwZSkge1xuXHRcdFx0XHRhUGVyc29uYWxpemF0aW9uLnB1c2goXCJUeXBlXCIpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHBlcnNvbmFsaXphdGlvbi5pdGVtKSB7XG5cdFx0XHRcdGFQZXJzb25hbGl6YXRpb24ucHVzaChcIkl0ZW1cIik7XG5cdFx0XHR9XG5cdFx0XHRpZiAocGVyc29uYWxpemF0aW9uLnNvcnQpIHtcblx0XHRcdFx0YVBlcnNvbmFsaXphdGlvbi5wdXNoKFwiU29ydFwiKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBhUGVyc29uYWxpemF0aW9uLmpvaW4oXCIsXCIpO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgQ2hhcnRWaXN1YWxpemF0aW9uIGNvbmZpZ3VyYXRpb24gdGhhdCB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBhIGNoYXJ0IHZpYSBDaGFydCBNYWNyby5cbiAqXG4gKiBAcGFyYW0ge0NoYXJ0RGVmaW5pdGlvblR5cGVUeXBlc30gY2hhcnRBbm5vdGF0aW9uIFRoZSB0YXJnZXQgY2hhcnQgYW5ub3RhdGlvblxuICogQHBhcmFtIHtzdHJpbmd9IHZpc3VhbGl6YXRpb25QYXRoIFRoZSBjdXJyZW50IHZpc3VhbGl6YXRpb24gYW5ub3RhdGlvbiBwYXRoXG4gKiBAcGFyYW0ge0NvbnZlcnRlckNvbnRleHR9IGNvbnZlcnRlckNvbnRleHQgVGhlIGNvbnZlcnRlciBjb250ZXh0XG4gKiBAcGFyYW0ge2Jvb2xlYW59IGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZCBGbGFnIHRoYXQgdGVsbHMgd2hldGhlciBhcHBseXN1cHBvcnRlZCB0byBiZSBjaGVja2VkIG9yIG5vdFxuICogQHJldHVybnMge0NoYXJ0VmlzdWFsaXphdGlvbn0gVGhlIGNoYXJ0IHZpc3VhbGl6YXRpb24gYmFzZWQgb24gdGhlIGFubm90YXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNoYXJ0VmlzdWFsaXphdGlvbihcblx0Y2hhcnRBbm5vdGF0aW9uOiBDaGFydERlZmluaXRpb25UeXBlVHlwZXMsXG5cdHZpc3VhbGl6YXRpb25QYXRoOiBzdHJpbmcsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZD86IGJvb2xlYW5cbik6IENoYXJ0VmlzdWFsaXphdGlvbiB7XG5cdGNvbnN0IGFnZ3JlZ2F0aW9uSGVscGVyID0gbmV3IEFnZ3JlZ2F0aW9uSGVscGVyKGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0aWYgKCFkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQgJiYgIWFnZ3JlZ2F0aW9uSGVscGVyLmlzQW5hbHl0aWNzU3VwcG9ydGVkKCkpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJBcHBseVN1cHBvcnRlZCBpcyBub3QgYWRkZWQgdG8gdGhlIGFubm90YXRpb25zXCIpO1xuXHR9XG5cdGNvbnN0IGNoYXJ0QWN0aW9ucyA9IGdldENoYXJ0QWN0aW9ucyhjaGFydEFubm90YXRpb24sIHZpc3VhbGl6YXRpb25QYXRoLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0bGV0IFtuYXZpZ2F0aW9uUHJvcGVydHlQYXRoIC8qLCBhbm5vdGF0aW9uUGF0aCovXSA9IHZpc3VhbGl6YXRpb25QYXRoLnNwbGl0KFwiQFwiKTtcblx0aWYgKG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgubGFzdEluZGV4T2YoXCIvXCIpID09PSBuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLmxlbmd0aCAtIDEpIHtcblx0XHQvLyBEcm9wIHRyYWlsaW5nIHNsYXNoXG5cdFx0bmF2aWdhdGlvblByb3BlcnR5UGF0aCA9IG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGguc3Vic3RyKDAsIG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgubGVuZ3RoIC0gMSk7XG5cdH1cblx0Y29uc3QgdGl0bGU6IGFueSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLnRhcmdldEVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5IZWFkZXJJbmZvPy5UeXBlTmFtZVBsdXJhbDtcblx0Y29uc3QgZGF0YU1vZGVsUGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpO1xuXHRjb25zdCBpc0VudGl0eVNldDogYm9vbGVhbiA9IG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgubGVuZ3RoID09PSAwO1xuXHRjb25zdCBlbnRpdHlOYW1lOiBzdHJpbmcgPSBkYXRhTW9kZWxQYXRoLnRhcmdldEVudGl0eVNldCA/IGRhdGFNb2RlbFBhdGgudGFyZ2V0RW50aXR5U2V0Lm5hbWUgOiBkYXRhTW9kZWxQYXRoLnN0YXJ0aW5nRW50aXR5U2V0Lm5hbWU7XG5cdGNvbnN0IHNGaWx0ZXJiYXJJZCA9IGlzRW50aXR5U2V0ID8gRmlsdGVyQmFySUQoY29udmVydGVyQ29udGV4dC5nZXRDb250ZXh0UGF0aCgpKSA6IHVuZGVmaW5lZDtcblx0Y29uc3Qgb1ZpelByb3BlcnRpZXMgPSB7XG5cdFx0XCJsZWdlbmRHcm91cFwiOiB7XG5cdFx0XHRcImxheW91dFwiOiB7XG5cdFx0XHRcdFwicG9zaXRpb25cIjogXCJib3R0b21cIlxuXHRcdFx0fVxuXHRcdH1cblx0fTtcblx0bGV0IGF1dG9CaW5kT25Jbml0OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXHRpZiAoY29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLk9iamVjdFBhZ2UpIHtcblx0XHRhdXRvQmluZE9uSW5pdCA9IHRydWU7XG5cdH0gZWxzZSBpZiAoXG5cdFx0Y29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLkxpc3RSZXBvcnQgfHxcblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuQW5hbHl0aWNhbExpc3RQYWdlXG5cdCkge1xuXHRcdGF1dG9CaW5kT25Jbml0ID0gZmFsc2U7XG5cdH1cblx0Y29uc3QgaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyA9XG5cdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5oYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zKCkgfHwgY29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gXCJBbmFseXRpY2FsTGlzdFBhZ2VcIjtcblx0Y29uc3Qgb25TZWdtZW50ZWRCdXR0b25QcmVzc2VkID0gaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyA/IFwiLmhhbmRsZXJzLm9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZFwiIDogXCJcIjtcblx0Y29uc3QgdmlzaWJsZSA9IGhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMgPyBcIns9ICR7cGFnZUludGVybmFsPmFscENvbnRlbnRWaWV3fSAhPT0gJ1RhYmxlJ31cIiA6IFwidHJ1ZVwiO1xuXHRyZXR1cm4ge1xuXHRcdHR5cGU6IFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0LFxuXHRcdGlkOiBDaGFydElEKGlzRW50aXR5U2V0ID8gZW50aXR5TmFtZSA6IG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgsIFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0KSxcblx0XHRjb2xsZWN0aW9uOiBnZXRUYXJnZXRPYmplY3RQYXRoKGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpKSxcblx0XHRlbnRpdHlOYW1lOiBlbnRpdHlOYW1lLFxuXHRcdHBlcnNvbmFsaXphdGlvbjogZ2V0UDEzbk1vZGUodmlzdWFsaXphdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQpLFxuXHRcdG5hdmlnYXRpb25QYXRoOiBuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLFxuXHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEFic29sdXRlQW5ub3RhdGlvblBhdGgodmlzdWFsaXphdGlvblBhdGgpLFxuXHRcdGZpbHRlcklkOiBzRmlsdGVyYmFySWQsXG5cdFx0dml6UHJvcGVydGllczogSlNPTi5zdHJpbmdpZnkob1ZpelByb3BlcnRpZXMpLFxuXHRcdGFjdGlvbnM6IGNoYXJ0QWN0aW9ucyxcblx0XHR0aXRsZTogdGl0bGUsXG5cdFx0YXV0b0JpbmRPbkluaXQ6IGF1dG9CaW5kT25Jbml0LFxuXHRcdG9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZDogb25TZWdtZW50ZWRCdXR0b25QcmVzc2VkLFxuXHRcdHZpc2libGU6IHZpc2libGVcblx0fTtcbn1cbiJdfQ==
|
|
285
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXJ0LnRzIl0sIm5hbWVzIjpbImdldENoYXJ0QWN0aW9uc0Zyb21Bbm5vdGF0aW9ucyIsImNoYXJ0QW5ub3RhdGlvbiIsInZpc3VhbGl6YXRpb25QYXRoIiwiY29udmVydGVyQ29udGV4dCIsImNoYXJ0QWN0aW9ucyIsImFBY3Rpb25zIiwiQWN0aW9ucyIsImZvckVhY2giLCJkYXRhRmllbGQiLCJjaGFydEFjdGlvbiIsImlzRGF0YUZpZWxkRm9yQWN0aW9uQWJzdHJhY3QiLCJhbm5vdGF0aW9ucyIsIlVJIiwiSGlkZGVuIiwidmFsdWVPZiIsIklubGluZSIsIkRldGVybWluaW5nIiwiQWN0aW9uVGFyZ2V0IiwiaXNCb3VuZCIsImtleSIsIktleUhlbHBlciIsImdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZCIsIiRUeXBlIiwidHlwZSIsIkFjdGlvblR5cGUiLCJEYXRhRmllbGRGb3JBY3Rpb24iLCJhbm5vdGF0aW9uUGF0aCIsImdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJEYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJwdXNoIiwiZ2V0Q2hhcnRBY3Rpb25zIiwiYUFubm90YXRpb25BY3Rpb25zIiwiaW5zZXJ0Q3VzdG9tRWxlbWVudHMiLCJnZXRBY3Rpb25zRnJvbU1hbmlmZXN0IiwiZ2V0TWFuaWZlc3RDb250cm9sQ29uZmlndXJhdGlvbiIsImFjdGlvbnMiLCJlbmFibGVPblNlbGVjdCIsImVuYWJsZWQiLCJnZXRQMTNuTW9kZSIsIm1hbmlmZXN0V3JhcHBlciIsImdldE1hbmlmZXN0V3JhcHBlciIsImNoYXJ0TWFuaWZlc3RTZXR0aW5ncyIsImhhc1ZhcmlhbnRNYW5hZ2VtZW50IiwiaW5kZXhPZiIsImdldFZhcmlhbnRNYW5hZ2VtZW50IiwicGVyc29uYWxpemF0aW9uIiwiYVBlcnNvbmFsaXphdGlvbiIsImNoYXJ0U2V0dGluZ3MiLCJ1bmRlZmluZWQiLCJpdGVtIiwic29ydCIsImpvaW4iLCJjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24iLCJkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQiLCJhZ2dyZWdhdGlvbkhlbHBlciIsIkFnZ3JlZ2F0aW9uSGVscGVyIiwiZ2V0RW50aXR5VHlwZSIsImlzQW5hbHl0aWNzU3VwcG9ydGVkIiwiRXJyb3IiLCJhVHJhbnNBZ2dBbm5vcyIsIkFuYWx5dGljcyIsIkFnZ3JlZ2F0ZWRQcm9wZXJ0aWVzIiwidHJhbnNBZ2dMYWJlbHMiLCJpIiwibGVuZ3RoIiwiTmFtZSIsImxhYmVsIiwiQ29tbW9uIiwiTGFiZWwiLCJhQ3VzdG9tQWdncmVnYXRlcyIsImdldEN1c3RvbUFnZ3JlZ2F0ZURlZmluaXRpb25zIiwibUN1c3RvbUFnZ3JlZ2F0ZXMiLCJhQ29udGV4dERlZmluaW5nUHJvcGVydGllcyIsIkFnZ3JlZ2F0aW9uIiwiQ29udGV4dERlZmluaW5nUHJvcGVydGllcyIsInF1YWxpZmllciIsIm5hbWUiLCJzb3J0YWJsZSIsInNvcnRPcmRlciIsImNvbnRleHREZWZpbmluZ1Byb3BlcnR5IiwibWFwIiwib0N0eERlZlByb3BlcnR5IiwidmFsdWUiLCJhVHJhbnNBZ2dyZWdhdGlvbnMiLCJnZXRUcmFuc0FnZ3JlZ2F0aW9ucyIsIm1UcmFuc0FnZ3JlZ2F0aW9ucyIsInByb3BlcnR5UGF0aCIsIkFnZ3JlZ2F0YWJsZVByb3BlcnR5IiwiYWdncmVnYXRpb25NZXRob2QiLCJBZ2dyZWdhdGlvbk1ldGhvZCIsImN1c3RvbSIsImFBZ2dQcm9wcyIsImdldEFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMiLCJhR3JwUHJvcHMiLCJnZXRHcm91cGFibGVQcm9wZXJ0aWVzIiwibUFwcGx5U3VwcG9ydGVkIiwiQWdncmVnYXRhYmxlUHJvcGVydGllcyIsIkdyb3VwYWJsZVByb3BlcnRpZXMiLCJvYmoiLCJQcm9wZXJ0eSIsIiRQcm9wZXJ0eVBhdGgiLCJzcGxpdCIsIm5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgiLCJsYXN0SW5kZXhPZiIsInN1YnN0ciIsInRpdGxlIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsInRhcmdldEVudGl0eVR5cGUiLCJIZWFkZXJJbmZvIiwiVHlwZU5hbWVQbHVyYWwiLCJkYXRhTW9kZWxQYXRoIiwiaXNFbnRpdHlTZXQiLCJlbnRpdHlOYW1lIiwidGFyZ2V0RW50aXR5U2V0Iiwic3RhcnRpbmdFbnRpdHlTZXQiLCJzRmlsdGVyYmFySWQiLCJGaWx0ZXJCYXJJRCIsImdldENvbnRleHRQYXRoIiwib1ZpelByb3BlcnRpZXMiLCJhdXRvQmluZE9uSW5pdCIsImdldFRlbXBsYXRlVHlwZSIsIlRlbXBsYXRlVHlwZSIsIk9iamVjdFBhZ2UiLCJMaXN0UmVwb3J0IiwiQW5hbHl0aWNhbExpc3RQYWdlIiwiaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyIsIm9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZCIsInZpc2libGUiLCJWaXN1YWxpemF0aW9uVHlwZSIsIkNoYXJ0IiwiaWQiLCJDaGFydElEIiwiY29sbGVjdGlvbiIsImdldFRhcmdldE9iamVjdFBhdGgiLCJuYXZpZ2F0aW9uUGF0aCIsImdldEFic29sdXRlQW5ub3RhdGlvblBhdGgiLCJmaWx0ZXJJZCIsInZpelByb3BlcnRpZXMiLCJKU09OIiwic3RyaW5naWZ5IiwiY3VzdG9tQWdnIiwidHJhbnNBZ2ciLCJhcHBseVN1cHBvcnRlZCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVNBLDhCQUFULENBQ0NDLGVBREQsRUFFQ0MsaUJBRkQsRUFHQ0MsZ0JBSEQsRUFJZ0I7QUFDZixRQUFNQyxZQUEwQixHQUFHLEVBQW5DOztBQUNBLFFBQUlILGVBQUosRUFBcUI7QUFDcEIsVUFBTUksUUFBUSxHQUFHSixlQUFlLENBQUNLLE9BQWhCLElBQTJCLEVBQTVDO0FBQ0FELE1BQUFBLFFBQVEsQ0FBQ0UsT0FBVCxDQUFpQixVQUFDQyxTQUFELEVBQXVDO0FB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SSxpQkFBM0MsQ0FQVjtBQVFOdUksTUFBQUEsUUFBUSxFQUFFckIsWUFSSjtBQVNOc0IsTUFBQUEsYUFBYSxFQUFFQyxJQUFJLENBQUNDLFNBQUwsQ0FBZXJCLGNBQWYsQ0FUVDtBQVVObkYsTUFBQUEsT0FBTyxFQUFFaEMsWUFWSDtBQVdOc0csTUFBQUEsS0FBSyxFQUFFQSxLQVhEO0FBWU5jLE1BQUFBLGNBQWMsRUFBRUEsY0FaVjtBQWFOTyxNQUFBQSx3QkFBd0IsRUFBRUEsd0JBYnBCO0FBY05DLE1BQUFBLE9BQU8sRUFBRUEsT0FkSDtBQWVOYSxNQUFBQSxTQUFTLEVBQUVyRSxpQkFmTDtBQWdCTnNFLE1BQUFBLFFBQVEsRUFBRXhELGtCQWhCSjtBQWlCTnlELE1BQUFBLGNBQWMsRUFBRS9DO0FBakJWLEtBQVA7QUFtQkEiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uLFxuXHRDaGFydFBlcnNvbmFsaXphdGlvbk1hbmlmZXN0U2V0dGluZ3MsXG5cdFZpc3VhbGl6YXRpb25UeXBlLFxuXHRBY3Rpb25UeXBlLFxuXHRUZW1wbGF0ZVR5cGVcbn0gZnJvbSBcIi4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcywgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHsgQW5ub3RhdGlvbkFjdGlvbiwgQmFzZUFjdGlvbiwgZ2V0QWN0aW9uc0Zyb21NYW5pZmVzdCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9BY3Rpb25cIjtcbmltcG9ydCB7IGlzRGF0YUZpZWxkRm9yQWN0aW9uQWJzdHJhY3QgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9hbm5vdGF0aW9ucy9EYXRhRmllbGRcIjtcbmltcG9ydCB7IENoYXJ0SUQsIEZpbHRlckJhcklEIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvSURcIjtcbmltcG9ydCB7IGluc2VydEN1c3RvbUVsZW1lbnRzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IEtleUhlbHBlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvS2V5XCI7XG5pbXBvcnQgeyBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgQWdncmVnYXRpb25IZWxwZXIgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9BZ2dyZWdhdGlvblwiO1xuaW1wb3J0IE1hbmlmZXN0V3JhcHBlciBmcm9tIFwiLi4vLi4vTWFuaWZlc3RXcmFwcGVyXCI7XG5pbXBvcnQgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi4vLi4vQ29udmVydGVyQ29udGV4dFwiO1xuXG4vKipcbiAqIEB0eXBlZGVmIENoYXJ0VmlzdWFsaXphdGlvblxuICovXG5leHBvcnQgdHlwZSBDaGFydFZpc3VhbGl6YXRpb24gPSB7XG5cdHR5cGU6IFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0O1xuXHRpZDogc3RyaW5nO1xuXHRjb2xsZWN0aW9uOiBzdHJpbmc7XG5cdGVudGl0eU5hbWU6IHN0cmluZztcblx0cGVyc29uYWxpemF0aW9uPzogc3RyaW5nO1xuXHRuYXZpZ2F0aW9uUGF0aDogc3RyaW5nO1xuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xuXHRmaWx0ZXJJZD86IHN0cmluZztcblx0dml6UHJvcGVydGllczogc3RyaW5nO1xuXHRhY3Rpb25zOiBCYXNlQWN0aW9uW107XG5cdHRpdGxlOiBzdHJpbmc7XG5cdGF1dG9CaW5kT25Jbml0OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXHRvblNlZ21lbnRlZEJ1dHRvblByZXNzZWQ6IHN0cmluZztcblx0dmlzaWJsZTogc3RyaW5nO1xuXHRjdXN0b21BZ2c6IG9iamVjdDtcblx0dHJhbnNBZ2c6IG9iamVjdDtcblx0YXBwbHlTdXBwb3J0ZWQ6IG9iamVjdDtcbn07XG5cbi8qKlxuICogTWV0aG9kIHRvIHJldHJpZXZlIGFsbCBjaGFydCBhY3Rpb25zIGZyb20gYW5ub3RhdGlvbnMuXG4gKlxuICogQHBhcmFtIGNoYXJ0QW5ub3RhdGlvblxuICogQHBhcmFtIHZpc3VhbGl6YXRpb25QYXRoXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dFxuICogQHJldHVybnMge0Jhc2VBY3Rpb25bXX0gVGhlIHRhYmxlIGFubm90YXRpb24gYWN0aW9uc1xuICovXG5mdW5jdGlvbiBnZXRDaGFydEFjdGlvbnNGcm9tQW5ub3RhdGlvbnMoXG5cdGNoYXJ0QW5ub3RhdGlvbjogQ2hhcnREZWZpbml0aW9uVHlwZVR5cGVzLFxuXHR2aXN1YWxpemF0aW9uUGF0aDogc3RyaW5nLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBCYXNlQWN0aW9uW10ge1xuXHRjb25zdCBjaGFydEFjdGlvbnM6IEJhc2VBY3Rpb25bXSA9IFtdO1xuXHRpZiAoY2hhcnRBbm5vdGF0aW9uKSB7XG5cdFx0Y29uc3QgYUFjdGlvbnMgPSBjaGFydEFubm90YXRpb24uQWN0aW9ucyB8fCBbXTtcblx0XHRhQWN0aW9ucy5mb3JFYWNoKChkYXRhRmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMpID0+IHtcblx0XHRcdGxldCBjaGFydEFjdGlvbjogQW5ub3RhdGlvbkFjdGlvbiB8IHVuZGVmaW5lZDtcblx0XHRcdGlmIChcblx0XHRcdFx0aXNEYXRhRmllbGRGb3JBY3Rpb25BYnN0cmFjdChkYXRhRmllbGQpICYmXG5cdFx0XHRcdCEoZGF0YUZpZWxkLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpICYmXG5cdFx0XHRcdCFkYXRhRmllbGQuSW5saW5lICYmXG5cdFx0XHRcdCFkYXRhRmllbGQuRGV0ZXJtaW5pbmcgJiZcblx0XHRcdFx0IShkYXRhRmllbGQgYXMgYW55KT8uQWN0aW9uVGFyZ2V0Py5pc0JvdW5kXG5cdFx0XHQpIHtcblx0XHRcdFx0Y29uc3Qga2V5ID0gS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChkYXRhRmllbGQpO1xuXHRcdFx0XHRzd2l0Y2ggKGRhdGFGaWVsZC4kVHlwZSkge1xuXHRcdFx0XHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JBY3Rpb25cIjpcblx0XHRcdFx0XHRcdGNoYXJ0QWN0aW9uID0ge1xuXHRcdFx0XHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckFjdGlvbixcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdFx0XHRcdFx0a2V5OiBrZXlcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25cIjpcblx0XHRcdFx0XHRcdGNoYXJ0QWN0aW9uID0ge1xuXHRcdFx0XHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbixcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdFx0XHRcdFx0a2V5OiBrZXlcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKGNoYXJ0QWN0aW9uKSB7XG5cdFx0XHRcdGNoYXJ0QWN0aW9ucy5wdXNoKGNoYXJ0QWN0aW9uKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gY2hhcnRBY3Rpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhcnRBY3Rpb25zKFxuXHRjaGFydEFubm90YXRpb246IENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcyxcblx0dmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3QgYUFubm90YXRpb25BY3Rpb25zOiBCYXNlQWN0aW9uW10gPSBnZXRDaGFydEFjdGlvbnNGcm9tQW5ub3RhdGlvbnMoY2hhcnRBbm5vdGF0aW9uLCB2aXN1YWxpemF0aW9uUGF0aCwgY29udmVydGVyQ29udGV4dCk7XG5cblx0cmV0dXJuIGluc2VydEN1c3RvbUVsZW1lbnRzKFxuXHRcdGFBbm5vdGF0aW9uQWN0aW9ucyxcblx0XHRnZXRBY3Rpb25zRnJvbU1hbmlmZXN0KFxuXHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdENvbnRyb2xDb25maWd1cmF0aW9uKHZpc3VhbGl6YXRpb25QYXRoKS5hY3Rpb25zLFxuXHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdGFBbm5vdGF0aW9uQWN0aW9uc1xuXHRcdCksXG5cdFx0eyBlbmFibGVPblNlbGVjdDogXCJvdmVyd3JpdGVcIiwgZW5hYmxlZDogXCJvdmVyd3JpdGVcIiB9XG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQMTNuTW9kZSh2aXN1YWxpemF0aW9uUGF0aDogc3RyaW5nLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgbWFuaWZlc3RXcmFwcGVyOiBNYW5pZmVzdFdyYXBwZXIgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpO1xuXHRjb25zdCBjaGFydE1hbmlmZXN0U2V0dGluZ3M6IENoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdENvbnRyb2xDb25maWd1cmF0aW9uKHZpc3VhbGl6YXRpb25QYXRoKTtcblx0Y29uc3QgaGFzVmFyaWFudE1hbmFnZW1lbnQ6IGJvb2xlYW4gPSBbXCJQYWdlXCIsIFwiQ29udHJvbFwiXS5pbmRleE9mKG1hbmlmZXN0V3JhcHBlci5nZXRWYXJpYW50TWFuYWdlbWVudCgpKSA+IC0xO1xuXHRsZXQgcGVyc29uYWxpemF0aW9uOiBDaGFydFBlcnNvbmFsaXphdGlvbk1hbmlmZXN0U2V0dGluZ3MgPSB0cnVlO1xuXHRjb25zdCBhUGVyc29uYWxpemF0aW9uOiBzdHJpbmdbXSA9IFtdO1xuXHRpZiAoY2hhcnRNYW5pZmVzdFNldHRpbmdzPy5jaGFydFNldHRpbmdzPy5wZXJzb25hbGl6YXRpb24gIT09IHVuZGVmaW5lZCkge1xuXHRcdHBlcnNvbmFsaXphdGlvbiA9IGNoYXJ0TWFuaWZlc3RTZXR0aW5ncy5jaGFydFNldHRpbmdzLnBlcnNvbmFsaXphdGlvbjtcblx0fVxuXHRpZiAoaGFzVmFyaWFudE1hbmFnZW1lbnQgJiYgcGVyc29uYWxpemF0aW9uKSB7XG5cdFx0aWYgKHBlcnNvbmFsaXphdGlvbiA9PT0gdHJ1ZSkge1xuXHRcdFx0cmV0dXJuIFwiU29ydCxUeXBlLEl0ZW1cIjtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBwZXJzb25hbGl6YXRpb24gPT09IFwib2JqZWN0XCIpIHtcblx0XHRcdGlmIChwZXJzb25hbGl6YXRpb24udHlwZSkge1xuXHRcdFx0XHRhUGVyc29uYWxpemF0aW9uLnB1c2goXCJUeXBlXCIpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHBlcnNvbmFsaXphdGlvbi5pdGVtKSB7XG5cdFx0XHRcdGFQZXJzb25hbGl6YXRpb24ucHVzaChcIkl0ZW1cIik7XG5cdFx0XHR9XG5cdFx0XHRpZiAocGVyc29uYWxpemF0aW9uLnNvcnQpIHtcblx0XHRcdFx0YVBlcnNvbmFsaXphdGlvbi5wdXNoKFwiU29ydFwiKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBhUGVyc29uYWxpemF0aW9uLmpvaW4oXCIsXCIpO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgQ2hhcnRWaXN1YWxpemF0aW9uIGNvbmZpZ3VyYXRpb24gdGhhdCB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBhIGNoYXJ0IHZpYSBDaGFydCBNYWNyby5cbiAqXG4gKiBAcGFyYW0ge0NoYXJ0RGVmaW5pdGlvblR5cGVUeXBlc30gY2hhcnRBbm5vdGF0aW9uIFRoZSB0YXJnZXQgY2hhcnQgYW5ub3RhdGlvblxuICogQHBhcmFtIHtzdHJpbmd9IHZpc3VhbGl6YXRpb25QYXRoIFRoZSBjdXJyZW50IHZpc3VhbGl6YXRpb24gYW5ub3RhdGlvbiBwYXRoXG4gKiBAcGFyYW0ge0NvbnZlcnRlckNvbnRleHR9IGNvbnZlcnRlckNvbnRleHQgVGhlIGNvbnZlcnRlciBjb250ZXh0XG4gKiBAcGFyYW0ge2Jvb2xlYW59IGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZCBGbGFnIHRoYXQgdGVsbHMgd2hldGhlciBhcHBseXN1cHBvcnRlZCB0byBiZSBjaGVja2VkIG9yIG5vdFxuICogQHJldHVybnMge0NoYXJ0VmlzdWFsaXphdGlvbn0gVGhlIGNoYXJ0IHZpc3VhbGl6YXRpb24gYmFzZWQgb24gdGhlIGFubm90YXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNoYXJ0VmlzdWFsaXphdGlvbihcblx0Y2hhcnRBbm5vdGF0aW9uOiBDaGFydERlZmluaXRpb25UeXBlVHlwZXMsXG5cdHZpc3VhbGl6YXRpb25QYXRoOiBzdHJpbmcsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZD86IGJvb2xlYW5cbik6IENoYXJ0VmlzdWFsaXphdGlvbiB7XG5cdGNvbnN0IGFnZ3JlZ2F0aW9uSGVscGVyID0gbmV3IEFnZ3JlZ2F0aW9uSGVscGVyKGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0aWYgKCFkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQgJiYgIWFnZ3JlZ2F0aW9uSGVscGVyLmlzQW5hbHl0aWNzU3VwcG9ydGVkKCkpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJBcHBseVN1cHBvcnRlZCBpcyBub3QgYWRkZWQgdG8gdGhlIGFubm90YXRpb25zXCIpO1xuXHR9XG5cdGNvbnN0IGFUcmFuc0FnZ0Fubm9zID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCkuYW5ub3RhdGlvbnMuQW5hbHl0aWNzPy5BZ2dyZWdhdGVkUHJvcGVydGllcyBhcyBhbnk7XG5cdGNvbnN0IHRyYW5zQWdnTGFiZWxzID0ge30gYXMgYW55O1xuXG5cdGZvciAobGV0IGkgPSAwOyBhVHJhbnNBZ2dBbm5vcyAmJiBpIDwgYVRyYW5zQWdnQW5ub3MubGVuZ3RoOyBpKyspIHtcblx0XHR0cmFuc0FnZ0xhYmVsc1thVHJhbnNBZ2dBbm5vc1tpXS5OYW1lXSA9IHtcblx0XHRcdGxhYmVsOiBhVHJhbnNBZ2dBbm5vc1tpXT8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uTGFiZWxcblx0XHR9O1xuXHR9XG5cblx0Y29uc3QgYUN1c3RvbUFnZ3JlZ2F0ZXMgPSBhZ2dyZWdhdGlvbkhlbHBlci5nZXRDdXN0b21BZ2dyZWdhdGVEZWZpbml0aW9ucygpO1xuXHRjb25zdCBtQ3VzdG9tQWdncmVnYXRlcyA9IHt9IGFzIGFueTtcblx0aWYgKGFDdXN0b21BZ2dyZWdhdGVzKSB7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhQ3VzdG9tQWdncmVnYXRlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0Y29uc3QgYUNvbnRleHREZWZpbmluZ1Byb3BlcnRpZXMgPSBhQ3VzdG9tQWdncmVnYXRlc1tpXS5hbm5vdGF0aW9ucz8uQWdncmVnYXRpb24/LkNvbnRleHREZWZpbmluZ1Byb3BlcnRpZXM7XG5cdFx0XHRtQ3VzdG9tQWdncmVnYXRlc1thQ3VzdG9tQWdncmVnYXRlc1tpXS5xdWFsaWZpZXJdID0ge1xuXHRcdFx0XHRuYW1lOiBhQ3VzdG9tQWdncmVnYXRlc1tpXS5xdWFsaWZpZXIsXG5cdFx0XHRcdGxhYmVsOiBcIkN1c3RvbSBBZ2dyZWdhdGUgKFwiICsgYUN1c3RvbUFnZ3JlZ2F0ZXNbaV0ucXVhbGlmaWVyICsgXCIpXCIsXG5cdFx0XHRcdHNvcnRhYmxlOiB0cnVlLFxuXHRcdFx0XHRzb3J0T3JkZXI6IFwiYm90aFwiLFxuXHRcdFx0XHRjb250ZXh0RGVmaW5pbmdQcm9wZXJ0eTogYUNvbnRleHREZWZpbmluZ1Byb3BlcnRpZXNcblx0XHRcdFx0XHQ/IGFDb250ZXh0RGVmaW5pbmdQcm9wZXJ0aWVzLm1hcChvQ3R4RGVmUHJvcGVydHkgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gb0N0eERlZlByb3BlcnR5LnZhbHVlO1xuXHRcdFx0XHRcdCAgfSlcblx0XHRcdFx0XHQ6IFtdXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxuXG5cdGNvbnN0IGFUcmFuc0FnZ3JlZ2F0aW9ucyA9IGFnZ3JlZ2F0aW9uSGVscGVyLmdldFRyYW5zQWdncmVnYXRpb25zKClbMF07XG5cdGNvbnN0IG1UcmFuc0FnZ3JlZ2F0aW9ucyA9IHt9IGFzIGFueTtcblx0aWYgKGFUcmFuc0FnZ3JlZ2F0aW9ucykge1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYVRyYW5zQWdncmVnYXRpb25zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRtVHJhbnNBZ2dyZWdhdGlvbnNbYVRyYW5zQWdncmVnYXRpb25zW2ldLk5hbWVdID0ge1xuXHRcdFx0XHRuYW1lOiBhVHJhbnNBZ2dyZWdhdGlvbnNbaV0uTmFtZSxcblx0XHRcdFx0cHJvcGVydHlQYXRoOiBhVHJhbnNBZ2dyZWdhdGlvbnNbaV0uQWdncmVnYXRhYmxlUHJvcGVydHkudmFsdWVPZigpLnZhbHVlLFxuXHRcdFx0XHRhZ2dyZWdhdGlvbk1ldGhvZDogYVRyYW5zQWdncmVnYXRpb25zW2ldLkFnZ3JlZ2F0aW9uTWV0aG9kLFxuXHRcdFx0XHRsYWJlbDpcblx0XHRcdFx0XHRhVHJhbnNBZ2dyZWdhdGlvbnNbaV0uTmFtZSBpbiB0cmFuc0FnZ0xhYmVsc1xuXHRcdFx0XHRcdFx0PyB0cmFuc0FnZ0xhYmVsc1thVHJhbnNBZ2dyZWdhdGlvbnNbaV0uTmFtZV0ubGFiZWxcblx0XHRcdFx0XHRcdDogXCJBZ2dyZWdhdGFibGUgcHJvcGVydHkgKFwiICsgYVRyYW5zQWdncmVnYXRpb25zW2ldLk5hbWUgKyBcIilcIixcblx0XHRcdFx0c29ydGFibGU6IHRydWUsXG5cdFx0XHRcdHNvcnRPcmRlcjogXCJib3RoXCIsXG5cdFx0XHRcdGN1c3RvbTogZmFsc2Vcblx0XHRcdH07XG5cdFx0fVxuXHR9XG5cblx0Y29uc3QgYUFnZ1Byb3BzID0gYWdncmVnYXRpb25IZWxwZXIuZ2V0QWdncmVnYXRhYmxlUHJvcGVydGllcygpO1xuXHRjb25zdCBhR3JwUHJvcHMgPSBhZ2dyZWdhdGlvbkhlbHBlci5nZXRHcm91cGFibGVQcm9wZXJ0aWVzKCk7XG5cdGNvbnN0IG1BcHBseVN1cHBvcnRlZCA9IHt9IGFzIGFueTtcblx0bUFwcGx5U3VwcG9ydGVkLiRUeXBlID0gXCJPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQXBwbHlTdXBwb3J0ZWRUeXBlXCI7XG5cdG1BcHBseVN1cHBvcnRlZC5BZ2dyZWdhdGFibGVQcm9wZXJ0aWVzID0gW107XG5cdG1BcHBseVN1cHBvcnRlZC5Hcm91cGFibGVQcm9wZXJ0aWVzID0gW107XG5cblx0Zm9yIChsZXQgaSA9IDA7IGFBZ2dQcm9wcyAmJiBpIDwgYUFnZ1Byb3BzLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y29uc3Qgb2JqID0ge1xuXHRcdFx0JFR5cGU6IGFBZ2dQcm9wc1tpXT8uJFR5cGUsXG5cdFx0XHRQcm9wZXJ0eToge1xuXHRcdFx0XHQkUHJvcGVydHlQYXRoOiBhQWdnUHJvcHNbaV0/LlByb3BlcnR5Py52YWx1ZVxuXHRcdFx0fVxuXHRcdH07XG5cblx0XHRtQXBwbHlTdXBwb3J0ZWQuQWdncmVnYXRhYmxlUHJvcGVydGllcy5wdXNoKG9iaik7XG5cdH1cblxuXHRmb3IgKGxldCBpID0gMDsgYUdycFByb3BzICYmIGkgPCBhR3JwUHJvcHMubGVuZ3RoOyBpKyspIHtcblx0XHRjb25zdCBvYmogPSB7ICRQcm9wZXJ0eVBhdGg6IGFHcnBQcm9wc1tpXT8udmFsdWUgfTtcblxuXHRcdG1BcHBseVN1cHBvcnRlZC5Hcm91cGFibGVQcm9wZXJ0aWVzLnB1c2gob2JqKTtcblx0fVxuXG5cdGNvbnN0IGNoYXJ0QWN0aW9ucyA9IGdldENoYXJ0QWN0aW9ucyhjaGFydEFubm90YXRpb24sIHZpc3VhbGl6YXRpb25QYXRoLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0bGV0IFtuYXZpZ2F0aW9uUHJvcGVydHlQYXRoIC8qLCBhbm5vdGF0aW9uUGF0aCovXSA9IHZpc3VhbGl6YXRpb25QYXRoLnNwbGl0KFwiQFwiKTtcblx0aWYgKG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgubGFzdEluZGV4T2YoXCIvXCIpID09PSBuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLmxlbmd0aCAtIDEpIHtcblx0XHQvLyBEcm9wIHRyYWlsaW5nIHNsYXNoXG5cdFx0bmF2aWdhdGlvblByb3BlcnR5UGF0aCA9IG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGguc3Vic3RyKDAsIG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgubGVuZ3RoIC0gMSk7XG5cdH1cblx0Y29uc3QgdGl0bGU6IGFueSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLnRhcmdldEVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5IZWFkZXJJbmZvPy5UeXBlTmFtZVBsdXJhbDtcblx0Y29uc3QgZGF0YU1vZGVsUGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpO1xuXHRjb25zdCBpc0VudGl0eVNldDogYm9vbGVhbiA9IG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgubGVuZ3RoID09PSAwO1xuXHRjb25zdCBlbnRpdHlOYW1lOiBzdHJpbmcgPSBkYXRhTW9kZWxQYXRoLnRhcmdldEVudGl0eVNldCA/IGRhdGFNb2RlbFBhdGgudGFyZ2V0RW50aXR5U2V0Lm5hbWUgOiBkYXRhTW9kZWxQYXRoLnN0YXJ0aW5nRW50aXR5U2V0Lm5hbWU7XG5cdGNvbnN0IHNGaWx0ZXJiYXJJZCA9IGlzRW50aXR5U2V0ID8gRmlsdGVyQmFySUQoY29udmVydGVyQ29udGV4dC5nZXRDb250ZXh0UGF0aCgpKSA6IHVuZGVmaW5lZDtcblx0Y29uc3Qgb1ZpelByb3BlcnRpZXMgPSB7XG5cdFx0XCJsZWdlbmRHcm91cFwiOiB7XG5cdFx0XHRcImxheW91dFwiOiB7XG5cdFx0XHRcdFwicG9zaXRpb25cIjogXCJib3R0b21cIlxuXHRcdFx0fVxuXHRcdH1cblx0fTtcblx0bGV0IGF1dG9CaW5kT25Jbml0OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXHRpZiAoY29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLk9iamVjdFBhZ2UpIHtcblx0XHRhdXRvQmluZE9uSW5pdCA9IHRydWU7XG5cdH0gZWxzZSBpZiAoXG5cdFx0Y29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLkxpc3RSZXBvcnQgfHxcblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuQW5hbHl0aWNhbExpc3RQYWdlXG5cdCkge1xuXHRcdGF1dG9CaW5kT25Jbml0ID0gZmFsc2U7XG5cdH1cblx0Y29uc3QgaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyA9XG5cdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5oYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zKCkgfHwgY29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gXCJBbmFseXRpY2FsTGlzdFBhZ2VcIjtcblx0Y29uc3Qgb25TZWdtZW50ZWRCdXR0b25QcmVzc2VkID0gaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyA/IFwiLmhhbmRsZXJzLm9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZFwiIDogXCJcIjtcblx0Y29uc3QgdmlzaWJsZSA9IGhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMgPyBcIns9ICR7cGFnZUludGVybmFsPmFscENvbnRlbnRWaWV3fSAhPT0gJ1RhYmxlJ31cIiA6IFwidHJ1ZVwiO1xuXHRyZXR1cm4ge1xuXHRcdHR5cGU6IFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0LFxuXHRcdGlkOiBDaGFydElEKGlzRW50aXR5U2V0ID8gZW50aXR5TmFtZSA6IG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgsIFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0KSxcblx0XHRjb2xsZWN0aW9uOiBnZXRUYXJnZXRPYmplY3RQYXRoKGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpKSxcblx0XHRlbnRpdHlOYW1lOiBlbnRpdHlOYW1lLFxuXHRcdHBlcnNvbmFsaXphdGlvbjogZ2V0UDEzbk1vZGUodmlzdWFsaXphdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQpLFxuXHRcdG5hdmlnYXRpb25QYXRoOiBuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLFxuXHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEFic29sdXRlQW5ub3RhdGlvblBhdGgodmlzdWFsaXphdGlvblBhdGgpLFxuXHRcdGZpbHRlcklkOiBzRmlsdGVyYmFySWQsXG5cdFx0dml6UHJvcGVydGllczogSlNPTi5zdHJpbmdpZnkob1ZpelByb3BlcnRpZXMpLFxuXHRcdGFjdGlvbnM6IGNoYXJ0QWN0aW9ucyxcblx0XHR0aXRsZTogdGl0bGUsXG5cdFx0YXV0b0JpbmRPbkluaXQ6IGF1dG9CaW5kT25Jbml0LFxuXHRcdG9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZDogb25TZWdtZW50ZWRCdXR0b25QcmVzc2VkLFxuXHRcdHZpc2libGU6IHZpc2libGUsXG5cdFx0Y3VzdG9tQWdnOiBtQ3VzdG9tQWdncmVnYXRlcyxcblx0XHR0cmFuc0FnZzogbVRyYW5zQWdncmVnYXRpb25zLFxuXHRcdGFwcGx5U3VwcG9ydGVkOiBtQXBwbHlTdXBwb3J0ZWRcblx0fTtcbn1cbiJdfQ==
|
|
@@ -34,6 +34,9 @@ export type ChartVisualization = {
|
|
|
34
34
|
autoBindOnInit: boolean | undefined;
|
|
35
35
|
onSegmentedButtonPressed: string;
|
|
36
36
|
visible: string;
|
|
37
|
+
customAgg: object;
|
|
38
|
+
transAgg: object;
|
|
39
|
+
applySupported: object;
|
|
37
40
|
};
|
|
38
41
|
|
|
39
42
|
/**
|
|
@@ -58,7 +61,8 @@ function getChartActionsFromAnnotations(
|
|
|
58
61
|
isDataFieldForActionAbstract(dataField) &&
|
|
59
62
|
!(dataField.annotations?.UI?.Hidden?.valueOf() === true) &&
|
|
60
63
|
!dataField.Inline &&
|
|
61
|
-
!dataField.Determining
|
|
64
|
+
!dataField.Determining &&
|
|
65
|
+
!(dataField as any)?.ActionTarget?.isBound
|
|
62
66
|
) {
|
|
63
67
|
const key = KeyHelper.generateKeyFromDataField(dataField);
|
|
64
68
|
switch (dataField.$Type) {
|
|
@@ -152,6 +156,77 @@ export function createChartVisualization(
|
|
|
152
156
|
if (!doNotCheckApplySupported && !aggregationHelper.isAnalyticsSupported()) {
|
|
153
157
|
throw new Error("ApplySupported is not added to the annotations");
|
|
154
158
|
}
|
|
159
|
+
const aTransAggAnnos = converterContext.getEntityType().annotations.Analytics?.AggregatedProperties as any;
|
|
160
|
+
const transAggLabels = {} as any;
|
|
161
|
+
|
|
162
|
+
for (let i = 0; aTransAggAnnos && i < aTransAggAnnos.length; i++) {
|
|
163
|
+
transAggLabels[aTransAggAnnos[i].Name] = {
|
|
164
|
+
label: aTransAggAnnos[i]?.annotations?.Common?.Label
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
const aCustomAggregates = aggregationHelper.getCustomAggregateDefinitions();
|
|
169
|
+
const mCustomAggregates = {} as any;
|
|
170
|
+
if (aCustomAggregates) {
|
|
171
|
+
for (let i = 0; i < aCustomAggregates.length; i++) {
|
|
172
|
+
const aContextDefiningProperties = aCustomAggregates[i].annotations?.Aggregation?.ContextDefiningProperties;
|
|
173
|
+
mCustomAggregates[aCustomAggregates[i].qualifier] = {
|
|
174
|
+
name: aCustomAggregates[i].qualifier,
|
|
175
|
+
label: "Custom Aggregate (" + aCustomAggregates[i].qualifier + ")",
|
|
176
|
+
sortable: true,
|
|
177
|
+
sortOrder: "both",
|
|
178
|
+
contextDefiningProperty: aContextDefiningProperties
|
|
179
|
+
? aContextDefiningProperties.map(oCtxDefProperty => {
|
|
180
|
+
return oCtxDefProperty.value;
|
|
181
|
+
})
|
|
182
|
+
: []
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
const aTransAggregations = aggregationHelper.getTransAggregations()[0];
|
|
188
|
+
const mTransAggregations = {} as any;
|
|
189
|
+
if (aTransAggregations) {
|
|
190
|
+
for (let i = 0; i < aTransAggregations.length; i++) {
|
|
191
|
+
mTransAggregations[aTransAggregations[i].Name] = {
|
|
192
|
+
name: aTransAggregations[i].Name,
|
|
193
|
+
propertyPath: aTransAggregations[i].AggregatableProperty.valueOf().value,
|
|
194
|
+
aggregationMethod: aTransAggregations[i].AggregationMethod,
|
|
195
|
+
label:
|
|
196
|
+
aTransAggregations[i].Name in transAggLabels
|
|
197
|
+
? transAggLabels[aTransAggregations[i].Name].label
|
|
198
|
+
: "Aggregatable property (" + aTransAggregations[i].Name + ")",
|
|
199
|
+
sortable: true,
|
|
200
|
+
sortOrder: "both",
|
|
201
|
+
custom: false
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
const aAggProps = aggregationHelper.getAggregatableProperties();
|
|
207
|
+
const aGrpProps = aggregationHelper.getGroupableProperties();
|
|
208
|
+
const mApplySupported = {} as any;
|
|
209
|
+
mApplySupported.$Type = "Org.OData.Aggregation.V1.ApplySupportedType";
|
|
210
|
+
mApplySupported.AggregatableProperties = [];
|
|
211
|
+
mApplySupported.GroupableProperties = [];
|
|
212
|
+
|
|
213
|
+
for (let i = 0; aAggProps && i < aAggProps.length; i++) {
|
|
214
|
+
const obj = {
|
|
215
|
+
$Type: aAggProps[i]?.$Type,
|
|
216
|
+
Property: {
|
|
217
|
+
$PropertyPath: aAggProps[i]?.Property?.value
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
mApplySupported.AggregatableProperties.push(obj);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
for (let i = 0; aGrpProps && i < aGrpProps.length; i++) {
|
|
225
|
+
const obj = { $PropertyPath: aGrpProps[i]?.value };
|
|
226
|
+
|
|
227
|
+
mApplySupported.GroupableProperties.push(obj);
|
|
228
|
+
}
|
|
229
|
+
|
|
155
230
|
const chartActions = getChartActions(chartAnnotation, visualizationPath, converterContext);
|
|
156
231
|
let [navigationPropertyPath /*, annotationPath*/] = visualizationPath.split("@");
|
|
157
232
|
if (navigationPropertyPath.lastIndexOf("/") === navigationPropertyPath.length - 1) {
|
|
@@ -197,6 +272,9 @@ export function createChartVisualization(
|
|
|
197
272
|
title: title,
|
|
198
273
|
autoBindOnInit: autoBindOnInit,
|
|
199
274
|
onSegmentedButtonPressed: onSegmentedButtonPressed,
|
|
200
|
-
visible: visible
|
|
275
|
+
visible: visible,
|
|
276
|
+
customAgg: mCustomAggregates,
|
|
277
|
+
transAgg: mTransAggregations,
|
|
278
|
+
applySupported: mApplySupported
|
|
201
279
|
};
|
|
202
280
|
}
|
|
@@ -14,7 +14,7 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
|
|
|
14
14
|
var createTableVisualization = Table.createTableVisualization;
|
|
15
15
|
var createDefaultTableVisualization = Table.createDefaultTableVisualization;
|
|
16
16
|
|
|
17
|
-
var getVisualizationsFromPresentationVariant = function (presentationVariantAnnotation, visualizationPath, converterContext
|
|
17
|
+
var getVisualizationsFromPresentationVariant = function (presentationVariantAnnotation, visualizationPath, converterContext) {
|
|
18
18
|
var visualizationAnnotations = [];
|
|
19
19
|
var visualizations = presentationVariantAnnotation.Visualizations || [];
|
|
20
20
|
var baseVisualizationPath = visualizationPath.split("@")[0];
|
|
@@ -25,25 +25,24 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
|
|
|
25
25
|
var hasChart = false;
|
|
26
26
|
var hasVisualization = false; // used to allow only first visualization in OP
|
|
27
27
|
|
|
28
|
+
var bIsALP = converterContext.getManifestWrapper().hasMultipleVisualizations() || converterContext.getTemplateType() === TemplateType.AnalyticalListPage;
|
|
28
29
|
visualizations.forEach(function (visualization) {
|
|
29
30
|
switch (visualization.$target.term) {
|
|
30
31
|
case "com.sap.vocabularies.UI.v1.LineItem":
|
|
31
|
-
if (!hasLineItem) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
hasVisualization = true;
|
|
40
|
-
}
|
|
32
|
+
if (!hasLineItem && (bIsALP || !hasVisualization)) {
|
|
33
|
+
visualizationAnnotations.push({
|
|
34
|
+
visualization: visualization.$target,
|
|
35
|
+
annotationPath: "".concat(baseVisualizationPath).concat(visualization.value),
|
|
36
|
+
converterContext: converterContext
|
|
37
|
+
});
|
|
38
|
+
hasLineItem = true;
|
|
39
|
+
hasVisualization = true;
|
|
41
40
|
}
|
|
42
41
|
|
|
43
42
|
break;
|
|
44
43
|
|
|
45
44
|
case "com.sap.vocabularies.UI.v1.Chart":
|
|
46
|
-
if (!hasChart && (
|
|
45
|
+
if (!hasChart && (bIsALP || !hasVisualization)) {
|
|
47
46
|
visualizationAnnotations.push({
|
|
48
47
|
visualization: visualization.$target,
|
|
49
48
|
annotationPath: "".concat(baseVisualizationPath).concat(visualization.value),
|
|
@@ -118,7 +117,7 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
|
|
|
118
117
|
return bHasChart && bHasTable;
|
|
119
118
|
} else {
|
|
120
119
|
return presentationVariant && presentationVariant.Visualizations && !!presentationVariant.Visualizations.find(function (visualization) {
|
|
121
|
-
return visualization.$target.term === "com.sap.vocabularies.UI.v1.LineItem";
|
|
120
|
+
return visualization.$target.term === "com.sap.vocabularies.UI.v1.LineItem" || visualization.$target.term === "com.sap.vocabularies.UI.v1.Chart";
|
|
122
121
|
});
|
|
123
122
|
}
|
|
124
123
|
}
|
|
@@ -199,7 +198,7 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
|
|
|
199
198
|
|
|
200
199
|
case "com.sap.vocabularies.UI.v1.PresentationVariant":
|
|
201
200
|
presentationVariantAnnotation = visualization;
|
|
202
|
-
visualizationAnnotations = visualizationAnnotations.concat(getVisualizationsFromPresentationVariant(visualization, visualizationPath, converterContext
|
|
201
|
+
visualizationAnnotations = visualizationAnnotations.concat(getVisualizationsFromPresentationVariant(visualization, visualizationPath, converterContext));
|
|
203
202
|
break;
|
|
204
203
|
|
|
205
204
|
case "com.sap.vocabularies.UI.v1.SelectionPresentationVariant":
|
|
@@ -219,7 +218,7 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
|
|
|
219
218
|
});
|
|
220
219
|
}
|
|
221
220
|
} else {
|
|
222
|
-
visualizationAnnotations = visualizationAnnotations.concat(getVisualizationsFromPresentationVariant(presentationVariantAnnotation, visualizationPath, converterContext
|
|
221
|
+
visualizationAnnotations = visualizationAnnotations.concat(getVisualizationsFromPresentationVariant(presentationVariantAnnotation, visualizationPath, converterContext));
|
|
223
222
|
}
|
|
224
223
|
|
|
225
224
|
break;
|
|
@@ -273,4 +272,4 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
|
|
|
273
272
|
_exports.getDataVisualizationConfiguration = getDataVisualizationConfiguration;
|
|
274
273
|
return _exports;
|
|
275
274
|
}, false);
|
|
276
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRhdGFWaXN1YWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbImdldFZpc3VhbGl6YXRpb25zRnJvbVByZXNlbnRhdGlvblZhcmlhbnQiLCJwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiIsInZpc3VhbGl6YXRpb25QYXRoIiwiY29udmVydGVyQ29udGV4dCIsInZpZXdDb25maWd1cmF0aW9uIiwidmlzdWFsaXphdGlvbkFubm90YXRpb25zIiwidmlzdWFsaXphdGlvbnMiLCJWaXN1YWxpemF0aW9ucyIsImJhc2VWaXN1YWxpemF0aW9uUGF0aCIsInNwbGl0IiwiaGFzTGluZUl0ZW0iLCJoYXNDaGFydCIsImhhc1Zpc3VhbGl6YXRpb24iLCJmb3JFYWNoIiwidmlzdWFsaXphdGlvbiIsIiR0YXJnZXQiLCJ0ZXJtIiwiZ2V0VGVtcGxhdGVUeXBlIiwiVGVtcGxhdGVUeXBlIiwiT2JqZWN0UGFnZSIsInB1c2giLCJhbm5vdGF0aW9uUGF0aCIsInZhbHVlIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyIsIkxpc3RSZXBvcnQiLCJBbmFseXRpY2FsTGlzdFBhZ2UiLCJnZXRWaWV3Q29uZmlndXJhdGlvbiIsImdldFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJlbnRpdHlUeXBlIiwicmVzb2x2ZWRUYXJnZXQiLCJnZXRFbnRpdHlUeXBlQW5ub3RhdGlvbiIsInNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJhbm5vdGF0aW9uIiwiRXJyb3IiLCJhbm5vdGF0aW9ucyIsIlVJIiwiU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCIsImlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50IiwiYklzQUxQIiwicHJlc2VudGF0aW9uVmFyaWFudCIsIlByZXNlbnRhdGlvblZhcmlhbnQiLCJpc1ByZXNlbnRhdGlvbkNvbXBsaWFudCIsImJIYXNUYWJsZSIsImJIYXNDaGFydCIsImFWaXN1YWxpemF0aW9ucyIsIm1hcCIsIm9WaXN1YWxpemF0aW9uIiwiZmluZCIsImdldERlZmF1bHRMaW5lSXRlbSIsIkxpbmVJdGVtIiwiZ2V0RGVmYXVsdENoYXJ0IiwiQ2hhcnQiLCJnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudCIsImdldERlZmF1bHRTZWxlY3Rpb25WYXJpYW50IiwiU2VsZWN0aW9uVmFyaWFudCIsImdldFNlbGVjdGlvblZhcmlhbnQiLCJnZXREZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCIsInNlbGVjdGlvblZhcmlhbnQiLCJnZXREYXRhVmlzdWFsaXphdGlvbkNvbmZpZ3VyYXRpb24iLCJpc0NvbmRlbnNlZFRhYmxlTGF5b3V0Q29tcGxpYW50IiwiZG9Ob3RDaGVja0FwcGx5U3VwcG9ydGVkIiwicHJlc2VudGF0aW9uUGF0aCIsImNoYXJ0VmlzdWFsaXphdGlvbiIsInRhYmxlVmlzdWFsaXphdGlvbiIsInNUZXJtIiwiY29uY2F0IiwiZnVsbHlRdWFsaWZpZWROYW1lIiwiZ2V0RW50aXR5VHlwZSIsImRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24iLCJnZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoIiwidmlzdWFsaXphdGlvbkFubm90YXRpb24iLCJjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24iLCJjcmVhdGVUYWJsZVZpc3VhbGl6YXRpb24iLCJjcmVhdGVEZWZhdWx0VGFibGVWaXN1YWxpemF0aW9uIiwiZ2V0RGlhZ25vc3RpY3MiLCJhZGRJc3N1ZSIsIklzc3VlQ2F0ZWdvcnkiLCJBbm5vdGF0aW9uIiwiSXNzdWVTZXZlcml0eSIsIk1lZGl1bSIsIklzc3VlVHlwZSIsIk1JU1NJTkdfTElORUlURU0iLCJzUGF0aCIsInVuZGVmaW5lZCIsImdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7QUFxQ0EsTUFBTUEsd0NBQXdDLEdBQUcsVUFDaERDLDZCQURnRCxFQUVoREMsaUJBRmdELEVBR2hEQyxnQkFI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ZW50IjpbImltcG9ydCB7XG5cdENoYXJ0LFxuXHRDaGFydERlZmluaXRpb25UeXBlVHlwZXMsXG5cdEVudGl0eVR5cGUsXG5cdExpbmVJdGVtLFxuXHRQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRTZWxlY3Rpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRVSUFubm90YXRpb25UZXJtc1xufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcblxuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFRhYmxlVmlzdWFsaXphdGlvbiwgY3JlYXRlVGFibGVWaXN1YWxpemF0aW9uLCBUYWJsZVZpc3VhbGl6YXRpb24gfSBmcm9tIFwiLi9UYWJsZVwiO1xuaW1wb3J0IHsgQ2hhcnRWaXN1YWxpemF0aW9uLCBjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24gfSBmcm9tIFwiLi9DaGFydFwiO1xuaW1wb3J0IHsgSXNzdWVUeXBlLCBJc3N1ZVNldmVyaXR5LCBJc3N1ZUNhdGVnb3J5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Jc3N1ZU1hbmFnZXJcIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi8uLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVR5cGUsIFZpZXdQYXRoQ29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi8uLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5cbmV4cG9ydCB0eXBlIERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMgPVxuXHR8IExpbmVJdGVtXG5cdHwgQ2hhcnRcblx0fCBQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzXG5cdHwgU2VsZWN0aW9uVmFyaWFudFR5cGVUeXBlc1xuXHR8IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXM7XG4vLyB8IENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcztcblxuZXhwb3J0IHR5cGUgQWN0dWFsVmlzdWFsaXphdGlvbkFubm90YXRpb25zID0gTGluZUl0ZW0gfCBDaGFydERlZmluaXRpb25UeXBlVHlwZXM7XG5cbnR5cGUgVmlzdWFsaXphdGlvbkFuZFBhdGggPSB7XG5cdHZpc3VhbGl6YXRpb246IEFjdHVhbFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcblx0c2VsZWN0aW9uVmFyaWFudFBhdGg/OiBzdHJpbmc7XG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQ7XG59O1xuXG5leHBvcnQgdHlwZSBEYXRhVmlzdWFsaXphdGlvbkRlZmluaXRpb24gPSB7XG5cdHZpc3VhbGl6YXRpb25zOiAoVGFibGVWaXN1YWxpemF0aW9uIHwgQ2hhcnRWaXN1YWxpemF0aW9uKVtdO1xuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xufTtcblxuY29uc3QgZ2V0VmlzdWFsaXphdGlvbnNGcm9tUHJlc2VudGF0aW9uVmFyaWFudCA9IGZ1bmN0aW9uKFxuXHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbjogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0dmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0dmlld0NvbmZpZ3VyYXRpb24/OiBWaWV3UGF0aENvbmZpZ3VyYXRpb25cbik6IFZpc3VhbGl6YXRpb25BbmRQYXRoW10ge1xuXHRjb25zdCB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnM6IFZpc3VhbGl6YXRpb25BbmRQYXRoW10gPSBbXTtcblx0Y29uc3QgdmlzdWFsaXphdGlvbnMgPSBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbi5WaXN1YWxpemF0aW9ucyB8fCBbXTtcblx0Y29uc3QgYmFzZVZpc3VhbGl6YXRpb25QYXRoID0gdmlzdWFsaXphdGlvblBhdGguc3BsaXQoXCJAXCIpWzBdO1xuXHRpZiAodmlzdWFsaXphdGlvbnMpIHtcblx0XHQvLyBPbmx5IGFsbG93IG9uZSBsaW5lIGl0ZW0gLyBjaGFydFxuXHRcdGxldCBoYXNMaW5lSXRlbSA9IGZhbHNlO1xuXHRcdGxldCBoYXNDaGFydCA9IGZhbHNlO1xuXHRcdGxldCBoYXNWaXN1YWxpemF0aW9uID0gZmFsc2U7IC8vIHVzZWQgdG8gYWxsb3cgb25seSBmaXJzdCB2aXN1YWxpemF0aW9uIGluIE9QXG5cdFx0dmlzdWFsaXphdGlvbnMuZm9yRWFjaCh2aXN1YWxpemF0aW9uID0+IHtcblx0XHRcdHN3aXRjaCAodmlzdWFsaXphdGlvbi4kdGFyZ2V0LnRlcm0pIHtcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbTpcblx0XHRcdFx0XHRpZiAoIWhhc0xpbmVJdGVtKSB7XG5cdFx0XHRcdFx0XHRpZiAoIShjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuT2JqZWN0UGFnZSAmJiBoYXNWaXN1YWxpemF0aW9uKSkge1xuXHRcdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMucHVzaCh7XG5cdFx0XHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbjogdmlzdWFsaXphdGlvbi4kdGFyZ2V0IGFzIEFjdHVhbFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyxcblx0XHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogYCR7YmFzZVZpc3VhbGl6YXRpb25QYXRofSR7dmlzdWFsaXphdGlvbi52YWx1ZX1gLFxuXHRcdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdGhhc0xpbmVJdGVtID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0aGFzVmlzdWFsaXphdGlvbiA9IHRydWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkNoYXJ0OlxuXHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdCFoYXNDaGFydCAmJlxuXHRcdFx0XHRcdFx0KCh2aWV3Q29uZmlndXJhdGlvbiAmJlxuXHRcdFx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmhhc011bHRpcGxlVmlzdWFsaXphdGlvbnModmlld0NvbmZpZ3VyYXRpb24pICYmXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5MaXN0UmVwb3J0KSB8fFxuXHRcdFx0XHRcdFx0XHQoY29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLkFuYWx5dGljYWxMaXN0UGFnZSAmJlxuXHRcdFx0XHRcdFx0XHRcdCFjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmdldFZpZXdDb25maWd1cmF0aW9uKCkpIHx8XG5cdFx0XHRcdFx0XHRcdChjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuT2JqZWN0UGFnZSAmJiAhaGFzVmlzdWFsaXphdGlvbikpXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMucHVzaCh7XG5cdFx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb246IHZpc3VhbGl6YXRpb24uJHRhcmdldCBhcyBBY3R1YWxWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMsXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiBgJHtiYXNlVmlzdWFsaXphdGlvblBhdGh9JHt2aXN1YWxpemF0aW9uLnZhbHVlfWAsXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0aGFzQ2hhcnQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0aGFzVmlzdWFsaXphdGlvbiA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdHJldHVybiB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudChcblx0ZW50aXR5VHlwZTogRW50aXR5VHlwZSxcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogYW55IHtcblx0aWYgKGFubm90YXRpb25QYXRoKSB7XG5cdFx0Y29uc3QgcmVzb2x2ZWRUYXJnZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGVBbm5vdGF0aW9uKGFubm90YXRpb25QYXRoKTtcblx0XHRjb25zdCBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50ID0gcmVzb2x2ZWRUYXJnZXQuYW5ub3RhdGlvbiBhcyBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzO1xuXHRcdGlmIChzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0XHRpZiAoc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudC50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5TZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0XHRcdHJldHVybiBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50O1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJBbm5vdGF0aW9uIFBhdGggZm9yIHRoZSBTUFYgbWVudGlvbmVkIGluIHRoZSBtYW5pZmVzdCBpcyBub3QgZm91bmQsIFBsZWFzZSBhZGQgdGhlIFNQViBpbiB0aGUgYW5ub3RhdGlvblwiKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5TZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50O1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NlbGVjdGlvblByZXNlbnRhdGlvbkNvbXBsaWFudChcblx0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudDogU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0YklzQUxQOiBCb29sZWFuXG4pOiBCb29sZWFuIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgcHJlc2VudGF0aW9uVmFyaWFudCA9IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgJiYgU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudC5QcmVzZW50YXRpb25WYXJpYW50O1xuXHRpZiAocHJlc2VudGF0aW9uVmFyaWFudCkge1xuXHRcdHJldHVybiBpc1ByZXNlbnRhdGlvbkNvbXBsaWFudChwcmVzZW50YXRpb25WYXJpYW50LCBiSXNBTFApO1xuXHR9IGVsc2Uge1xuXHRcdHRocm93IG5ldyBFcnJvcihcIlByZXNlbnRhdGlvbiBWYXJpYW50IGlzIG5vdCBwcmVzZW50IGluIHRoZSBTUFYgYW5ub3RhdGlvblwiKTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcmVzZW50YXRpb25Db21wbGlhbnQocHJlc2VudGF0aW9uVmFyaWFudDogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcywgYklzQUxQPzogQm9vbGVhbik6IEJvb2xlYW4ge1xuXHRsZXQgYkhhc1RhYmxlID0gZmFsc2UsXG5cdFx0Ykhhc0NoYXJ0ID0gZmFsc2U7XG5cdGlmIChiSXNBTFApIHtcblx0XHRpZiAocHJlc2VudGF0aW9uVmFyaWFudCAmJiBwcmVzZW50YXRpb25WYXJpYW50LlZpc3VhbGl6YXRpb25zKSB7XG5cdFx0XHRjb25zdCBhVmlzdWFsaXphdGlvbnMgPSBwcmVzZW50YXRpb25WYXJpYW50LlZpc3VhbGl6YXRpb25zO1xuXHRcdFx0YVZpc3VhbGl6YXRpb25zLm1hcChvVmlzdWFsaXphdGlvbiA9PiB7XG5cdFx0XHRcdGlmIChvVmlzdWFsaXphdGlvbi4kdGFyZ2V0LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLkxpbmVJdGVtKSB7XG5cdFx0XHRcdFx0Ykhhc1RhYmxlID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAob1Zpc3VhbGl6YXRpb24uJHRhcmdldC50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5DaGFydCkge1xuXHRcdFx0XHRcdGJIYXNDaGFydCA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0XHRyZXR1cm4gYkhhc0NoYXJ0ICYmIGJIYXNUYWJsZTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0cHJlc2VudGF0aW9uVmFyaWFudCAmJlxuXHRcdFx0cHJlc2VudGF0aW9uVmFyaWFudC5WaXN1YWxpemF0aW9ucyAmJlxuXHRcdFx0ISFwcmVzZW50YXRpb25WYXJpYW50LlZpc3VhbGl6YXRpb25zLmZpbmQodmlzdWFsaXphdGlvbiA9PiB7XG5cdFx0XHRcdHJldHVybiB2aXN1YWxpemF0aW9uLiR0YXJnZXQudGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW07XG5cdFx0XHR9KVxuXHRcdCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRMaW5lSXRlbShlbnRpdHlUeXBlOiBFbnRpdHlUeXBlKTogTGluZUl0ZW0gfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gZW50aXR5VHlwZS5hbm5vdGF0aW9ucy5VST8uTGluZUl0ZW07XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdENoYXJ0KGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBDaGFydCB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBlbnRpdHlUeXBlLmFubm90YXRpb25zLlVJPy5DaGFydDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudChlbnRpdHlUeXBlOiBFbnRpdHlUeXBlKTogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBlbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uUHJlc2VudGF0aW9uVmFyaWFudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRTZWxlY3Rpb25WYXJpYW50KGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBTZWxlY3Rpb25WYXJpYW50VHlwZVR5cGVzIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5TZWxlY3Rpb25WYXJpYW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0aW9uVmFyaWFudChlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogU2VsZWN0aW9uVmFyaWFudFR5cGVUeXBlcyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IGFubm90YXRpb25QYXRoID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5nZXREZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCgpO1xuXHRjb25zdCBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50ID0gZ2V0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudChlbnRpdHlUeXBlLCBhbm5vdGF0aW9uUGF0aCwgY29udmVydGVyQ29udGV4dCk7XG5cdGxldCBzZWxlY3Rpb25WYXJpYW50O1xuXHRpZiAoc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCkge1xuXHRcdGNvbnN0IHNlbGVjdGlvblZhcmlhbnQgPSBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LlNlbGVjdGlvblZhcmlhbnQ7XG5cdFx0aWYgKHNlbGVjdGlvblZhcmlhbnQpIHtcblx0XHRcdHJldHVybiBzZWxlY3Rpb25WYXJpYW50O1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRzZWxlY3Rpb25WYXJpYW50ID0gZ2V0RGVmYXVsdFNlbGVjdGlvblZhcmlhbnQoZW50aXR5VHlwZSk7XG5cdFx0cmV0dXJuIHNlbGVjdGlvblZhcmlhbnQ7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFWaXN1YWxpemF0aW9uQ29uZmlndXJhdGlvbihcblx0dmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0aXNDb25kZW5zZWRUYWJsZUxheW91dENvbXBsaWFudDogYm9vbGVhbixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0dmlld0NvbmZpZ3VyYXRpb24/OiBWaWV3UGF0aENvbmZpZ3VyYXRpb24sXG5cdGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZD86IGJvb2xlYW5cbik6IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbiB7XG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbih2aXN1YWxpemF0aW9uUGF0aCk7XG5cdGNvbnN0IHZpc3VhbGl6YXRpb24gPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzIERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG5cdGNvbnZlcnRlckNvbnRleHQgPSByZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0O1xuXHRsZXQgdmlzdWFsaXphdGlvbkFubm90YXRpb25zOiBWaXN1YWxpemF0aW9uQW5kUGF0aFtdID0gW107XG5cdGxldCBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbjogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcztcblx0bGV0IHByZXNlbnRhdGlvblBhdGg6IHN0cmluZyA9IFwiXCI7XG5cdGxldCBjaGFydFZpc3VhbGl6YXRpb24sIHRhYmxlVmlzdWFsaXphdGlvbjtcblx0Y29uc3Qgc1Rlcm0gPSB2aXN1YWxpemF0aW9uPy50ZXJtO1xuXHRpZiAoc1Rlcm0pIHtcblx0XHRzd2l0Y2ggKHNUZXJtKSB7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkxpbmVJdGVtOlxuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5DaGFydDpcblx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zLnB1c2goe1xuXHRcdFx0XHRcdHZpc3VhbGl6YXRpb246IHZpc3VhbGl6YXRpb24gYXMgQWN0dWFsVmlzdWFsaXphdGlvbkFubm90YXRpb25zLFxuXHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiB2aXN1YWxpemF0aW9uUGF0aCxcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuUHJlc2VudGF0aW9uVmFyaWFudDpcblx0XHRcdFx0cHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24gPSB2aXN1YWxpemF0aW9uIGFzIFByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXM7XG5cdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyA9IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5jb25jYXQoXG5cdFx0XHRcdFx0Z2V0VmlzdWFsaXphdGlvbnNGcm9tUHJlc2VudGF0aW9uVmFyaWFudChcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb24gYXMgUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdHZpZXdDb25maWd1cmF0aW9uXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudDpcblx0XHRcdFx0cHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24gPSAodmlzdWFsaXphdGlvbiBhcyBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzKS5QcmVzZW50YXRpb25WYXJpYW50O1xuXHRcdFx0XHQvLyBQcmVzZW50YXRpb24gY2FuIGJlIGlubGluZSBvciBvdXRzaWRlIHRoZSBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50XG5cdFx0XHRcdHByZXNlbnRhdGlvblBhdGggPSBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWU7XG5cblx0XHRcdFx0aWYgKCFpc1ByZXNlbnRhdGlvbkNvbXBsaWFudChwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbikpIHtcblx0XHRcdFx0XHRjb25zdCBlbnRpdHlUeXBlID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cdFx0XHRcdFx0Y29uc3QgZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbiA9IGdldERlZmF1bHRMaW5lSXRlbShlbnRpdHlUeXBlKSBhcyBMaW5lSXRlbTtcblx0XHRcdFx0XHRpZiAoZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbikge1xuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zLnB1c2goe1xuXHRcdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uOiBkZWZhdWx0TGluZUl0ZW1Bbm5vdGF0aW9uLFxuXHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogY29udmVydGVyQ29udGV4dC5nZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoKFxuXHRcdFx0XHRcdFx0XHRcdGRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lLFxuXHRcdFx0XHRcdFx0XHRcdGVudGl0eVR5cGVcblx0XHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dDogY29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyA9IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5jb25jYXQoXG5cdFx0XHRcdFx0XHRnZXRWaXN1YWxpemF0aW9uc0Zyb21QcmVzZW50YXRpb25WYXJpYW50KFxuXHRcdFx0XHRcdFx0XHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbixcblx0XHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvblBhdGgsXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdFx0XHRcdHZpZXdDb25maWd1cmF0aW9uXG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMubWFwKHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uID0+IHtcblx0XHRcdGNvbnN0IHsgdmlzdWFsaXphdGlvbiwgYW5ub3RhdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQgfSA9IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uO1xuXHRcdFx0c3dpdGNoICh2aXN1YWxpemF0aW9uLnRlcm0pIHtcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5DaGFydDpcblx0XHRcdFx0XHRjaGFydFZpc3VhbGl6YXRpb24gPSBjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24oXG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uIGFzIENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcyxcblx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW06XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0dGFibGVWaXN1YWxpemF0aW9uID0gY3JlYXRlVGFibGVWaXN1YWxpemF0aW9uKFxuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbiBhcyBMaW5lSXRlbSxcblx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uLFxuXHRcdFx0XHRcdFx0aXNDb25kZW5zZWRUYWJsZUxheW91dENvbXBsaWFudCxcblx0XHRcdFx0XHRcdHZpZXdDb25maWd1cmF0aW9uXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHR0YWJsZVZpc3VhbGl6YXRpb24gPSBjcmVhdGVEZWZhdWx0VGFibGVWaXN1YWxpemF0aW9uKGNvbnZlcnRlckNvbnRleHQpO1xuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0RGlhZ25vc3RpY3MoKS5hZGRJc3N1ZShJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sIElzc3VlU2V2ZXJpdHkuTWVkaXVtLCBJc3N1ZVR5cGUuTUlTU0lOR19MSU5FSVRFTSk7XG5cdH1cblx0Y29uc3QgYVZpc3VhbGl6YXRpb25zOiBhbnkgPSBbXTtcblx0bGV0IHNQYXRoID1cblx0XHRzVGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCA/IHByZXNlbnRhdGlvblBhdGggOiB2aXN1YWxpemF0aW9uICYmIHZpc3VhbGl6YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lO1xuXHRpZiAoc1BhdGggPT09IHVuZGVmaW5lZCkge1xuXHRcdHNQYXRoID0gXCIvXCI7XG5cdH1cblx0aWYgKGNoYXJ0VmlzdWFsaXphdGlvbikge1xuXHRcdGFWaXN1YWxpemF0aW9ucy5wdXNoKGNoYXJ0VmlzdWFsaXphdGlvbik7XG5cdH1cblx0aWYgKHRhYmxlVmlzdWFsaXphdGlvbikge1xuXHRcdGFWaXN1YWxpemF0aW9ucy5wdXNoKHRhYmxlVmlzdWFsaXphdGlvbik7XG5cdH1cblx0cmV0dXJuIHtcblx0XHR2aXN1YWxpemF0aW9uczogYVZpc3VhbGl6YXRpb25zLFxuXHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoc1BhdGgpXG5cdH07XG59XG4iXX0=
|
|
275
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRhdGFWaXN1YWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbImdldFZpc3VhbGl6YXRpb25zRnJvbVByZXNlbnRhdGlvblZhcmlhbnQiLCJwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiIsInZpc3VhbGl6YXRpb25QYXRoIiwiY29udmVydGVyQ29udGV4dCIsInZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyIsInZpc3VhbGl6YXRpb25zIiwiVmlzdWFsaXphdGlvbnMiLCJiYXNlVmlzdWFsaXphdGlvblBhdGgiLCJzcGxpdCIsImhhc0xpbmVJdGVtIiwiaGFzQ2hhcnQiLCJoYXNWaXN1YWxpemF0aW9uIiwiYklzQUxQIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyIsImdldFRlbXBsYXRlVHlwZSIsIlRlbXBsYXRlVHlwZSIsIkFuYWx5dGljYWxMaXN0UGFnZSIsImZvckVhY2giLCJ2aXN1YWxpemF0aW9uIiwiJHRhcmdldCIsInRlcm0iLCJwdXNoIiwiYW5ub3RhdGlvblBhdGgiLCJ2YWx1ZSIsImdldFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJlbnRpdHlUeXBlIiwicmVzb2x2ZWRUYXJnZXQiLCJnZXRFbnRpdHlUeXBlQW5ub3RhdGlvbiIsInNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJhbm5vdGF0aW9uIiwiRXJyb3IiLCJhbm5vdGF0aW9ucyIsIlVJIiwiU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCIsImlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50IiwicHJlc2VudGF0aW9uVmFyaWFudCIsIlByZXNlbnRhdGlvblZhcmlhbnQiLCJpc1ByZXNlbnRhdGlvbkNvbXBsaWFudCIsImJIYXNUYWJsZSIsImJIYXNDaGFydCIsImFWaXN1YWxpemF0aW9ucyIsIm1hcCIsIm9WaXN1YWxpemF0aW9uIiwiZmluZCIsImdldERlZmF1bHRMaW5lSXRlbSIsIkxpbmVJdGVtIiwiZ2V0RGVmYXVsdENoYXJ0IiwiQ2hhcnQiLCJnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudCIsImdldERlZmF1bHRTZWxlY3Rpb25WYXJpYW50IiwiU2VsZWN0aW9uVmFyaWFudCIsImdldFNlbGVjdGlvblZhcmlhbnQiLCJnZXREZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCIsInNlbGVjdGlvblZhcmlhbnQiLCJnZXREYXRhVmlzdWFsaXphdGlvbkNvbmZpZ3VyYXRpb24iLCJpc0NvbmRlbnNlZFRhYmxlTGF5b3V0Q29tcGxpYW50Iiwidmlld0NvbmZpZ3VyYXRpb24iLCJkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQiLCJwcmVzZW50YXRpb25QYXRoIiwiY2hhcnRWaXN1YWxpemF0aW9uIiwidGFibGVWaXN1YWxpemF0aW9uIiwic1Rlcm0iLCJjb25jYXQiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJnZXRFbnRpdHlUeXBlIiwiZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbiIsImdldFJlbGF0aXZlQW5ub3RhdGlvblBhdGgiLCJ2aXN1YWxpemF0aW9uQW5ub3RhdGlvbiIsImNyZWF0ZUNoYXJ0VmlzdWFsaXphdGlvbiIsImNyZWF0ZVRhYmxlVmlzdWFsaXphdGlvbiIsImNyZWF0ZURlZmF1bHRUYWJsZVZpc3VhbGl6YXRpb24iLCJnZXREaWFnbm9zdGljcyIsImFkZElzc3VlIiwiSXNzdWVDYXRlZ29yeSIsIkFubm90YXRpb24iLCJJc3N1ZVNldmVyaXR5IiwiTWVkaXVtIiwiSXNzdWVUeXBlIiwiTUlTU0lOR19MSU5FSVRFTSIsInNQYXRoIiwidW5kZWZpbmVkIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OztBQXFDQSxNQUFNQSx3Q0FBd0MsR0FBRyxVQUNoREMsNkJBRGdELEVBRWhEQyxpQkFGZ0QsRUFHaERDLGdCQUhnRCxFQUl2QjtBQUN6QixRQUFNQyx3QkFBZ0QsR0FBRyxFQUF6RDtBQUNBLFFBQU1DLGNBQWMsR0FBR0osNkJBQTZCLENBQUNLLGNBQTlCLElBQWdELEVBQXZFO0FBQ0EsUUFBTUMscUJBQXFCLEdBQUdMLGlCQUFpQixDQUFDTSxLQUFsQixDQUF3QixHQUF4QixFQUE2QixDQUE3QixDQUE5Qjs7QUFDQSxRQUFJSCxjQUFKLEVBQW9CO0FBQ25CO0FBQ0EsVUFBSUksV0FBVyxHQUFHLEtBQWxCO0FBQ0EsVUFBSUMsUUFBUSxHQUFHLEtBQWY7QUFDQSxVQUFJQyxnQkFBZ0IsR0FBRyxLQUF2QixDQUptQixDQUlXOztBQUM5QixVQUFNQyxNQUFNLEdBQ1hULGdCQUFnQixDQUFDVSxrQkFBakIsR0FBc0NDLHlCQUF0QyxNQUNBWCxnQkFBZ0IsQ0FBQ1ksZUFBakIsT0FBdUNDLFlBQVksQ0FBQ0Msa0JBRnJEO0FBR0FaLE1BQUFBLGNBQWMsQ0FBQ2EsT0FBZixDQUF1QixVQUFBQyxhQUFhLEVBQUk7QUFDdkMsZ0JBQVFBLGFBQWEsQ0FBQ0MsT0FBZCxDQUFzQkMsSUFBOUI7QUFDQztBQUNDLGdCQUFJLENBQUNaLFdBQUQsS0FBaUJHLE1BQU0sSUFBSSxDQUFDRCxnQkFBNUIsQ0FBSixFQUFtRDtBQUNsRFAsY0FBQUEsd0JBQXdCLENBQUNrQixJQUF6QixDQUE4QjtBQUM3QkgsZ0JBQUFBLGFBQWEsRUFBRUEsYUFBYSxDQUFDQyxPQURBO0FBRTdCRyxnQkFBQUEsY0FBYyxZQUFLaEIscUJBQUwsU0FBNkJZLGFBQWEsQ0FBQ0ssS0FBM0MsQ0FGZTtBQUc3QnJCLGdCQUFBQSxnQkFBZ0IsRUFBRUE7QUFIVyxlQUE5QjtBQUtBTSxjQUFBQSxXQUFXLEdBQUcsSUFBZDtBQUNBRSxjQUFBQSxnQkFBZ0IsR0FBRyxJQUFuQjtBQUNBOztBQUNEOztBQUNEO0FBQ0MsZ0JBQUksQ0FBQ0QsUUFBRCxLQUFjRSxNQUFNLElBQUksQ0FBQ0QsZ0JBQXpCLENBQUosRUFBZ0Q7QUFDL0NQLGNBQUFBLHdCQUF3QixDQUFDa0IsSUFBekIsQ0FBOEI7QUFDN0JILGdCQUFBQSxhQUFhLEVBQUVBLGFBQWEsQ0FBQ0MsT0FEQTtBQUU3QkcsZ0JBQUFBLGNBQWMsWUFBS2hCLHFCQUFMLFNBQTZCWSxhQUFhLENBQUNLLEtBQTNDLENBRmU7QUFHN0JyQixnQkFBQUEsZ0JBQWdCLEVBQUVBO0FBSFcsZUFBOUI7QUFLQU8sY0FBQUEsUUFBUSxHQUFHLElBQVg7QUFDQUMsY0FBQUEsZ0JBQWdCLEdBQUcsSUFBbkI7QUFDQTs7QUFDRDs7QUFDRDtBQUNDO0FBeEJGO0FBMEJBLE9BM0JEO0FBNEJBOztBQUNELFdBQU9QLHdCQUFQO0FBQ0EsR0E5Q0Q7O0FBZ0RPLFdBQVNxQiwrQkFBVCxDQUNOQyxVQURNLEVBRU5ILGNBRk0sRUFHTnBCLGdCQUhNLEVBSUE7QUFDTixRQUFJb0IsY0FBSixFQUFvQjtBQUNuQixVQUFNSSxjQUFjLEdBQUd4QixnQkFBZ0IsQ0FBQ3lCLHVCQUFqQixDQUF5Q0wsY0FBekMsQ0FBdkI7QUFDQSxVQUFNTSw0QkFBNEIsR0FBR0YsY0FBYyxDQUFDRyxVQUFwRDs7QUFDQSxVQUFJRCw0QkFBSixFQUFrQztBQUNqQyxZQUFJQSw0QkFBNEIsQ0FBQ1IsSUFBN0IsOERBQUosRUFBMEY7QUFDekYsaUJBQU9RLDRCQUFQO0FBQ0E7QUFDRCxPQUpELE1BSU87QUFDTixjQUFNLElBQUlFLEtBQUosQ0FBVSwwR0FBVixDQUFOO0FBQ0E7QUFDRCxLQVZELE1BVU87QUFBQTs7QUFDTixzQ0FBT0wsVUFBVSxDQUFDTSxXQUFsQixvRkFBTyxzQkFBd0JDLEVBQS9CLDJEQUFPLHVCQUE0QkMsNEJBQW5DO0FBQ0E7QUFDRDs7OztBQUVNLFdBQVNDLGdDQUFULENBQ05ELDRCQURNLEVBRU50QixNQUZNLEVBR2dCO0FBQ3RCLFFBQU13QixtQkFBbUIsR0FBR0YsNEJBQTRCLElBQUlBLDRCQUE0QixDQUFDRyxtQkFBekY7O0FBQ0EsUUFBSUQsbUJBQUosRUFBeUI7QUFDeEIsYUFBT0UsdUJBQXVCLENBQUNGLG1CQUFELEVBQXNCeEIsTUFBdEIsQ0FBOUI7QUFDQSxLQUZELE1BRU87QUFDTixZQUFNLElBQUltQixLQUFKLENBQVUsMkRBQVYsQ0FBTjtBQUNBO0FBQ0Q7Ozs7QUFFTSxXQUFTTyx1QkFBVCxDQUFpQ0YsbUJBQWpDLEVBQW9GeEIsTUFBcEYsRUFBK0c7QUFDckgsUUFBSTJCLFNBQVMsR0FBRyxLQUFoQjtBQUFBLFFBQ0NDLFNBQVMsR0FBRyxLQURiOztBQUVBLFFBQUk1QixNQUFKLEVBQVk7QUFDWCxVQUFJd0IsbUJBQW1CLElBQUlBLG1CQUFtQixDQUFDOUIsY0FBL0MsRUFBK0Q7QUFDOUQsWUFBTW1DLGVBQWUsR0FBR0wsbUJBQW1CLENBQUM5QixjQUE1QztBQUNBbUMsUUFBQUEsZUFBZSxDQUFDQyxHQUFoQixDQUFvQixVQUFBQyxjQUFjLEVBQUk7QUFDckMsY0FBSUEsY0FBYyxDQUFDdkIsT0FBZixDQUF1QkMsSUFBdkIsMENBQUosRUFBZ0U7QUFDL0RrQixZQUFBQSxTQUFTLEdBQUcsSUFBWjtBQUNBOztBQUNELGNBQUlJLGNBQWMsQ0FBQ3ZCLE9BQWYsQ0FBdUJDLElBQXZCLHVDQUFKLEVBQTZEO0FBQzVEbUIsWUFBQUEsU0FBUyxHQUFHLElBQVo7QUFDQTtBQUNELFNBUEQ7QUFRQTs7QUFDRCxhQUFPQSxTQUFTLElBQUlELFNBQXBCO0FBQ0EsS0FiRCxNQWFPO0FBQ04sYUFDQ0gsbUJBQW1CLElBQ25CQSxtQkFBbUIsQ0FBQzlCLGNBRHBCLElBRUEsQ0FBQyxDQUFDOEIsbUJBQW1CLENBQUM5QixjQUFwQixDQUFtQ3NDLElBQW5DLENBQXdDLFVBQUF6QixhQUFhLEVBQUk7QUFDMUQsZUFBT0EsYUFBYSxDQUFDQyxPQUFkLENBQXNCQyxJQUF0Qiw4Q0FBNkRGLGFBQWEsQ0FBQ0MsT0FBZCxDQUFzQkMsSUFBdEIsdUNBQXBFO0FBQ0EsT0FGQyxDQUhIO0FBT0E7QUFDRDs7OztBQUVNLFdBQVN3QixrQkFBVCxDQUE0Qm5CLFVBQTVCLEVBQTBFO0FBQUE7O0FBQ2hGLHFDQUFPQSxVQUFVLENBQUNNLFdBQVgsQ0FBdUJDLEVBQTlCLDJEQUFPLHVCQUEyQmEsUUFBbEM7QUFDQTs7OztBQUNNLFdBQVNDLGVBQVQsQ0FBeUJyQixVQUF6QixFQUFvRTtBQUFBOztBQUMxRSxxQ0FBT0EsVUFBVSxDQUFDTSxXQUFYLENBQXVCQyxFQUE5QiwyREFBTyx1QkFBMkJlLEtBQWxDO0FBQ0E7Ozs7QUFDTSxXQUFTQyw2QkFBVCxDQUF1Q3ZCLFVBQXZDLEVBQXlHO0FBQUE7O0FBQy9HLHFDQUFPQSxVQUFVLENBQUNNLFdBQWxCLHFGQUFPLHVCQUF3QkMsRUFBL0IsMkRBQU8sdUJBQTRCSSxtQkFBbkM7QUFDQTs7OztBQUVNLFdBQVNhLDBCQUFULENBQW9DeEIsVUFBcEMsRUFBbUc7QUFBQTs7QUFDekcscUNBQU9BLFVBQVUsQ0FBQ00sV0FBbEIscUZBQU8sdUJBQXdCQyxFQUEvQiwyREFBTyx1QkFBNEJrQixnQkFBbkM7QUFDQTs7OztBQUVNLFdBQVNDLG1CQUFULENBQTZCMUIsVUFBN0IsRUFBcUR2QixnQkFBckQsRUFBZ0k7QUFDdEksUUFBTW9CLGNBQWMsR0FBR3BCLGdCQUFnQixDQUFDVSxrQkFBakIsR0FBc0N3QyxnQ0FBdEMsRUFBdkI7QUFDQSxRQUFNeEIsNEJBQTRCLEdBQUdKLCtCQUErQixDQUFDQyxVQUFELEVBQWFILGNBQWIsRUFBNkJwQixnQkFBN0IsQ0FBcEU7QUFDQSxRQUFJbUQsZ0JBQUo7O0FBQ0EsUUFBSXpCLDRCQUFKLEVBQWtDO0FBQ2pDLFVBQU15QixpQkFBZ0IsR0FBR3pCLDRCQUE0QixDQUFDc0IsZ0JBQXREOztBQUNBLFVBQUlHLGlCQUFKLEVBQXNCO0FBQ3JCLGVBQU9BLGlCQUFQO0FBQ0E7QUFDRCxLQUxELE1BS087QUFDTkEsTUFBQUEsZ0JBQWdCLEdBQUdKLDBCQUEwQixDQUFDeEIsVUFBRCxDQUE3QztBQUNBLGFBQU80QixnQkFBUDtBQUNBO0FBQ0Q7Ozs7QUFFTSxXQUFTQyxpQ0FBVCxDQUNOckQsaUJBRE0sRUFFTnNELCtCQUZNLEVBR05yRCxnQkFITSxFQUlOc0QsaUJBSk0sRUFLTkMsd0JBTE0sRUFNd0I7QUFDOUIsUUFBTS9CLGNBQWMsR0FBR3hCLGdCQUFnQixDQUFDeUIsdUJBQWpCLENBQXlDMUIsaUJBQXpDLENBQXZCO0FBQ0EsUUFBTWlCLGFBQWEsR0FBR1EsY0FBYyxDQUFDRyxVQUFyQztBQUNBM0IsSUFBQUEsZ0JBQWdCLEdBQUd3QixjQUFjLENBQUN4QixnQkFBbEM7QUFDQSxRQUFJQyx3QkFBZ0QsR0FBRyxFQUF2RDtBQUNBLFFBQUlILDZCQUFKO0FBQ0EsUUFBSTBELGdCQUF3QixHQUFHLEVBQS9CO0FBQ0EsUUFBSUMsa0JBQUosRUFBd0JDLGtCQUF4QjtBQUNBLFFBQU1DLEtBQUssR0FBRzNDLGFBQUgsYUFBR0EsYUFBSCx1QkFBR0EsYUFBYSxDQUFFRSxJQUE3Qjs7QUFDQSxRQUFJeUMsS0FBSixFQUFXO0FBQ1YsY0FBUUEsS0FBUjtBQUNDO0FBQ0E7QUFDQzFELFVBQUFBLHdCQUF3QixDQUFDa0IsSUFBekIsQ0FBOEI7QUFDN0JILFlBQUFBLGFBQWEsRUFBRUEsYUFEYztBQUU3QkksWUFBQUEsY0FBYyxFQUFFckIsaUJBRmE7QUFHN0JDLFlBQUFBLGdCQUFnQixFQUFFQTtBQUhXLFdBQTlCO0FBS0E7O0FBQ0Q7QUFDQ0YsVUFBQUEsNkJBQTZCLEdBQUdrQixhQUFoQztBQUNBZixVQUFBQSx3QkFBd0IsR0FBR0Esd0JBQXdCLENBQUMyRCxNQUF6QixDQUMxQi9ELHdDQUF3QyxDQUN2Q21CLGFBRHVDLEVBRXZDakIsaUJBRnVDLEVBR3ZDQyxnQkFIdUMsQ0FEZCxDQUEzQjtBQU9BOztBQUNEO0FBQ0NGLFVBQUFBLDZCQUE2QixHQUFJa0IsYUFBRCxDQUF5RGtCLG1CQUF6RixDQURELENBRUM7O0FBQ0FzQixVQUFBQSxnQkFBZ0IsR0FBRzFELDZCQUE2QixDQUFDK0Qsa0JBQWpEOztBQUVBLGNBQUksQ0FBQzFCLHVCQUF1QixDQUFDckMsNkJBQUQsQ0FBNUIsRUFBNkQ7QUFDNUQsZ0JBQU15QixVQUFVLEdBQUd2QixnQkFBZ0IsQ0FBQzhELGFBQWpCLEVBQW5CO0FBQ0EsZ0JBQU1DLHlCQUF5QixHQUFHckIsa0JBQWtCLENBQUNuQixVQUFELENBQXBEOztBQUNBLGdCQUFJd0MseUJBQUosRUFBK0I7QUFDOUI5RCxjQUFBQSx3QkFBd0IsQ0FBQ2tCLElBQXpCLENBQThCO0FBQzdCSCxnQkFBQUEsYUFBYSxFQUFFK0MseUJBRGM7QUFFN0IzQyxnQkFBQUEsY0FBYyxFQUFFcEIsZ0JBQWdCLENBQUNnRSx5QkFBakIsQ0FDZkQseUJBQXlCLENBQUNGLGtCQURYLEVBRWZ0QyxVQUZlLENBRmE7QUFNN0J2QixnQkFBQUEsZ0JBQWdCLEVBQUVBO0FBTlcsZUFBOUI7QUFRQTtBQUNELFdBYkQsTUFhTztBQUNOQyxZQUFBQSx3QkFBd0IsR0FBR0Esd0JBQXdCLENBQUMyRCxNQUF6QixDQUMxQi9ELHdDQUF3QyxDQUFDQyw2QkFBRCxFQUFnQ0MsaUJBQWhDLEVBQW1EQyxnQkFBbkQsQ0FEZCxDQUEzQjtBQUdBOztBQUNEOztBQUNEO0FBQ0M7QUE1Q0Y7O0FBOENBQyxNQUFBQSx3QkFBd0IsQ0FBQ3NDLEdBQXpCLENBQTZCLFVBQUEwQix1QkFBdUIsRUFBSTtBQUN2RCxZQUFRakQsYUFBUixHQUE0RGlELHVCQUE1RCxDQUFRakQsYUFBUjtBQUFBLFlBQXVCSSxjQUF2QixHQUE0RDZDLHVCQUE1RCxDQUF1QjdDLGNBQXZCO0FBQUEsWUFBdUNwQixnQkFBdkMsR0FBNERpRSx1QkFBNUQsQ0FBdUNqRSxnQkFBdkM7O0FBQ0EsZ0JBQVFnQixhQUFhLENBQUNFLElBQXRCO0FBQ0M7QUFDQ3VDLFlBQUFBLGtCQUFrQixHQUFHUyx3QkFBd0IsQ0FDNUNsRCxhQUQ0QyxFQUU1Q0ksY0FGNEMsRUFHNUNwQixnQkFINEMsRUFJNUN1RCx3QkFKNEMsQ0FBN0M7QUFNQTs7QUFDRDtBQUNBO0FBQ0NHLFlBQUFBLGtCQUFrQixHQUFHUyx3QkFBd0IsQ0FDNUNuRCxhQUQ0QyxFQUU1Q0ksY0FGNEMsRUFHNUNwQixnQkFINEMsRUFJNUNGLDZCQUo0QyxFQUs1Q3VELCtCQUw0QyxFQU01Q0MsaUJBTjRDLENBQTdDO0FBUUE7QUFuQkY7QUFxQkEsT0F2QkQ7QUF3QkEsS0F2RUQsTUF1RU87QUFDTkksTUFBQUEsa0JBQWtCLEdBQUdVLCtCQUErQixDQUFDcEUsZ0JBQUQsQ0FBcEQ7QUFDQUEsTUFBQUEsZ0JBQWdCLENBQUNxRSxjQUFqQixHQUFrQ0MsUUFBbEMsQ0FBMkNDLGFBQWEsQ0FBQ0MsVUFBekQsRUFBcUVDLGFBQWEsQ0FBQ0MsTUFBbkYsRUFBMkZDLFNBQVMsQ0FBQ0MsZ0JBQXJHO0FBQ0E7O0FBQ0QsUUFBTXRDLGVBQW9CLEdBQUcsRUFBN0I7QUFDQSxRQUFJdUMsS0FBSyxHQUNSbEIsS0FBSyw4REFBTCxHQUEyREgsZ0JBQTNELEdBQThFeEMsYUFBYSxJQUFJQSxhQUFhLENBQUM2QyxrQkFEOUc7O0FBRUEsUUFBSWdCLEtBQUssS0FBS0MsU0FBZCxFQUF5QjtBQUN4QkQsTUFBQUEsS0FBSyxHQUFHLEdBQVI7QUFDQTs7QUFDRCxRQUFJcEIsa0JBQUosRUFBd0I7QUFDdkJuQixNQUFBQSxlQUFlLENBQUNuQixJQUFoQixDQUFxQnNDLGtCQUFyQjtBQUNBOztBQUNELFFBQUlDLGtCQUFKLEVBQXdCO0FBQ3ZCcEIsTUFBQUEsZUFBZSxDQUFDbkIsSUFBaEIsQ0FBcUJ1QyxrQkFBckI7QUFDQTs7QUFDRCxXQUFPO0FBQ054RCxNQUFBQSxjQUFjLEVBQUVvQyxlQURWO0FBRU5sQixNQUFBQSxjQUFjLEVBQUVwQixnQkFBZ0IsQ0FBQytFLCtCQUFqQixDQUFpREYsS0FBakQ7QUFGVixLQUFQO0FBSUEiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYXJ0LFxuXHRDaGFydERlZmluaXRpb25UeXBlVHlwZXMsXG5cdEVudGl0eVR5cGUsXG5cdExpbmVJdGVtLFxuXHRQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRTZWxlY3Rpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRVSUFubm90YXRpb25UZXJtc1xufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcblxuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFRhYmxlVmlzdWFsaXphdGlvbiwgY3JlYXRlVGFibGVWaXN1YWxpemF0aW9uLCBUYWJsZVZpc3VhbGl6YXRpb24gfSBmcm9tIFwiLi9UYWJsZVwiO1xuaW1wb3J0IHsgQ2hhcnRWaXN1YWxpemF0aW9uLCBjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24gfSBmcm9tIFwiLi9DaGFydFwiO1xuaW1wb3J0IHsgSXNzdWVUeXBlLCBJc3N1ZVNldmVyaXR5LCBJc3N1ZUNhdGVnb3J5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Jc3N1ZU1hbmFnZXJcIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi8uLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVR5cGUsIFZpZXdQYXRoQ29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi8uLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5cbmV4cG9ydCB0eXBlIERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMgPVxuXHR8IExpbmVJdGVtXG5cdHwgQ2hhcnRcblx0fCBQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzXG5cdHwgU2VsZWN0aW9uVmFyaWFudFR5cGVUeXBlc1xuXHR8IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXM7XG4vLyB8IENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcztcblxuZXhwb3J0IHR5cGUgQWN0dWFsVmlzdWFsaXphdGlvbkFubm90YXRpb25zID0gTGluZUl0ZW0gfCBDaGFydERlZmluaXRpb25UeXBlVHlwZXM7XG5cbnR5cGUgVmlzdWFsaXphdGlvbkFuZFBhdGggPSB7XG5cdHZpc3VhbGl6YXRpb246IEFjdHVhbFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcblx0c2VsZWN0aW9uVmFyaWFudFBhdGg/OiBzdHJpbmc7XG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQ7XG59O1xuXG5leHBvcnQgdHlwZSBEYXRhVmlzdWFsaXphdGlvbkRlZmluaXRpb24gPSB7XG5cdHZpc3VhbGl6YXRpb25zOiAoVGFibGVWaXN1YWxpemF0aW9uIHwgQ2hhcnRWaXN1YWxpemF0aW9uKVtdO1xuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xufTtcblxuY29uc3QgZ2V0VmlzdWFsaXphdGlvbnNGcm9tUHJlc2VudGF0aW9uVmFyaWFudCA9IGZ1bmN0aW9uKFxuXHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbjogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0dmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogVmlzdWFsaXphdGlvbkFuZFBhdGhbXSB7XG5cdGNvbnN0IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uczogVmlzdWFsaXphdGlvbkFuZFBhdGhbXSA9IFtdO1xuXHRjb25zdCB2aXN1YWxpemF0aW9ucyA9IHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uLlZpc3VhbGl6YXRpb25zIHx8IFtdO1xuXHRjb25zdCBiYXNlVmlzdWFsaXphdGlvblBhdGggPSB2aXN1YWxpemF0aW9uUGF0aC5zcGxpdChcIkBcIilbMF07XG5cdGlmICh2aXN1YWxpemF0aW9ucykge1xuXHRcdC8vIE9ubHkgYWxsb3cgb25lIGxpbmUgaXRlbSAvIGNoYXJ0XG5cdFx0bGV0IGhhc0xpbmVJdGVtID0gZmFsc2U7XG5cdFx0bGV0IGhhc0NoYXJ0ID0gZmFsc2U7XG5cdFx0bGV0IGhhc1Zpc3VhbGl6YXRpb24gPSBmYWxzZTsgLy8gdXNlZCB0byBhbGxvdyBvbmx5IGZpcnN0IHZpc3VhbGl6YXRpb24gaW4gT1Bcblx0XHRjb25zdCBiSXNBTFAgPVxuXHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5oYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zKCkgfHxcblx0XHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5BbmFseXRpY2FsTGlzdFBhZ2U7XG5cdFx0dmlzdWFsaXphdGlvbnMuZm9yRWFjaCh2aXN1YWxpemF0aW9uID0+IHtcblx0XHRcdHN3aXRjaCAodmlzdWFsaXphdGlvbi4kdGFyZ2V0LnRlcm0pIHtcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbTpcblx0XHRcdFx0XHRpZiAoIWhhc0xpbmVJdGVtICYmIChiSXNBTFAgfHwgIWhhc1Zpc3VhbGl6YXRpb24pKSB7XG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMucHVzaCh7XG5cdFx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb246IHZpc3VhbGl6YXRpb24uJHRhcmdldCBhcyBBY3R1YWxWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMsXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiBgJHtiYXNlVmlzdWFsaXphdGlvblBhdGh9JHt2aXN1YWxpemF0aW9uLnZhbHVlfWAsXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0aGFzTGluZUl0ZW0gPSB0cnVlO1xuXHRcdFx0XHRcdFx0aGFzVmlzdWFsaXphdGlvbiA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkNoYXJ0OlxuXHRcdFx0XHRcdGlmICghaGFzQ2hhcnQgJiYgKGJJc0FMUCB8fCAhaGFzVmlzdWFsaXphdGlvbikpIHtcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbjogdmlzdWFsaXphdGlvbi4kdGFyZ2V0IGFzIEFjdHVhbFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyxcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGAke2Jhc2VWaXN1YWxpemF0aW9uUGF0aH0ke3Zpc3VhbGl6YXRpb24udmFsdWV9YCxcblx0XHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dDogY29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRoYXNDaGFydCA9IHRydWU7XG5cdFx0XHRcdFx0XHRoYXNWaXN1YWxpemF0aW9uID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KFxuXHRlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBhbnkge1xuXHRpZiAoYW5ub3RhdGlvblBhdGgpIHtcblx0XHRjb25zdCByZXNvbHZlZFRhcmdldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24oYW5ub3RhdGlvblBhdGgpO1xuXHRcdGNvbnN0IHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzIFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXM7XG5cdFx0aWYgKHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRcdGlmIChzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRcdFx0cmV0dXJuIHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIkFubm90YXRpb24gUGF0aCBmb3IgdGhlIFNQViBtZW50aW9uZWQgaW4gdGhlIG1hbmlmZXN0IGlzIG5vdCBmb3VuZCwgUGxlYXNlIGFkZCB0aGUgU1BWIGluIHRoZSBhbm5vdGF0aW9uXCIpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50KFxuXHRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50OiBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRiSXNBTFA6IEJvb2xlYW5cbik6IEJvb2xlYW4gfCB1bmRlZmluZWQge1xuXHRjb25zdCBwcmVzZW50YXRpb25WYXJpYW50ID0gU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCAmJiBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LlByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdGlmIChwcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0cmV0dXJuIGlzUHJlc2VudGF0aW9uQ29tcGxpYW50KHByZXNlbnRhdGlvblZhcmlhbnQsIGJJc0FMUCk7XG5cdH0gZWxzZSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwiUHJlc2VudGF0aW9uIFZhcmlhbnQgaXMgbm90IHByZXNlbnQgaW4gdGhlIFNQViBhbm5vdGF0aW9uXCIpO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZXNlbnRhdGlvbkNvbXBsaWFudChwcmVzZW50YXRpb25WYXJpYW50OiBQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLCBiSXNBTFA/OiBCb29sZWFuKTogQm9vbGVhbiB7XG5cdGxldCBiSGFzVGFibGUgPSBmYWxzZSxcblx0XHRiSGFzQ2hhcnQgPSBmYWxzZTtcblx0aWYgKGJJc0FMUCkge1xuXHRcdGlmIChwcmVzZW50YXRpb25WYXJpYW50ICYmIHByZXNlbnRhdGlvblZhcmlhbnQuVmlzdWFsaXphdGlvbnMpIHtcblx0XHRcdGNvbnN0IGFWaXN1YWxpemF0aW9ucyA9IHByZXNlbnRhdGlvblZhcmlhbnQuVmlzdWFsaXphdGlvbnM7XG5cdFx0XHRhVmlzdWFsaXphdGlvbnMubWFwKG9WaXN1YWxpemF0aW9uID0+IHtcblx0XHRcdFx0aWYgKG9WaXN1YWxpemF0aW9uLiR0YXJnZXQudGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW0pIHtcblx0XHRcdFx0XHRiSGFzVGFibGUgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChvVmlzdWFsaXphdGlvbi4kdGFyZ2V0LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLkNoYXJ0KSB7XG5cdFx0XHRcdFx0Ykhhc0NoYXJ0ID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiBiSGFzQ2hhcnQgJiYgYkhhc1RhYmxlO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiAoXG5cdFx0XHRwcmVzZW50YXRpb25WYXJpYW50ICYmXG5cdFx0XHRwcmVzZW50YXRpb25WYXJpYW50LlZpc3VhbGl6YXRpb25zICYmXG5cdFx0XHQhIXByZXNlbnRhdGlvblZhcmlhbnQuVmlzdWFsaXphdGlvbnMuZmluZCh2aXN1YWxpemF0aW9uID0+IHtcblx0XHRcdFx0cmV0dXJuIHZpc3VhbGl6YXRpb24uJHRhcmdldC50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbSB8fCB2aXN1YWxpemF0aW9uLiR0YXJnZXQudGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnQ7XG5cdFx0XHR9KVxuXHRcdCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRMaW5lSXRlbShlbnRpdHlUeXBlOiBFbnRpdHlUeXBlKTogTGluZUl0ZW0gfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gZW50aXR5VHlwZS5hbm5vdGF0aW9ucy5VST8uTGluZUl0ZW07XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdENoYXJ0KGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBDaGFydCB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBlbnRpdHlUeXBlLmFubm90YXRpb25zLlVJPy5DaGFydDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudChlbnRpdHlUeXBlOiBFbnRpdHlUeXBlKTogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBlbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uUHJlc2VudGF0aW9uVmFyaWFudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRTZWxlY3Rpb25WYXJpYW50KGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBTZWxlY3Rpb25WYXJpYW50VHlwZVR5cGVzIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5TZWxlY3Rpb25WYXJpYW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0aW9uVmFyaWFudChlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogU2VsZWN0aW9uVmFyaWFudFR5cGVUeXBlcyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IGFubm90YXRpb25QYXRoID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5nZXREZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCgpO1xuXHRjb25zdCBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50ID0gZ2V0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudChlbnRpdHlUeXBlLCBhbm5vdGF0aW9uUGF0aCwgY29udmVydGVyQ29udGV4dCk7XG5cdGxldCBzZWxlY3Rpb25WYXJpYW50O1xuXHRpZiAoc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCkge1xuXHRcdGNvbnN0IHNlbGVjdGlvblZhcmlhbnQgPSBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LlNlbGVjdGlvblZhcmlhbnQ7XG5cdFx0aWYgKHNlbGVjdGlvblZhcmlhbnQpIHtcblx0XHRcdHJldHVybiBzZWxlY3Rpb25WYXJpYW50O1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRzZWxlY3Rpb25WYXJpYW50ID0gZ2V0RGVmYXVsdFNlbGVjdGlvblZhcmlhbnQoZW50aXR5VHlwZSk7XG5cdFx0cmV0dXJuIHNlbGVjdGlvblZhcmlhbnQ7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFWaXN1YWxpemF0aW9uQ29uZmlndXJhdGlvbihcblx0dmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0aXNDb25kZW5zZWRUYWJsZUxheW91dENvbXBsaWFudDogYm9vbGVhbixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0dmlld0NvbmZpZ3VyYXRpb24/OiBWaWV3UGF0aENvbmZpZ3VyYXRpb24sXG5cdGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZD86IGJvb2xlYW5cbik6IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbiB7XG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbih2aXN1YWxpemF0aW9uUGF0aCk7XG5cdGNvbnN0IHZpc3VhbGl6YXRpb24gPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzIERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG5cdGNvbnZlcnRlckNvbnRleHQgPSByZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0O1xuXHRsZXQgdmlzdWFsaXphdGlvbkFubm90YXRpb25zOiBWaXN1YWxpemF0aW9uQW5kUGF0aFtdID0gW107XG5cdGxldCBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbjogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcztcblx0bGV0IHByZXNlbnRhdGlvblBhdGg6IHN0cmluZyA9IFwiXCI7XG5cdGxldCBjaGFydFZpc3VhbGl6YXRpb24sIHRhYmxlVmlzdWFsaXphdGlvbjtcblx0Y29uc3Qgc1Rlcm0gPSB2aXN1YWxpemF0aW9uPy50ZXJtO1xuXHRpZiAoc1Rlcm0pIHtcblx0XHRzd2l0Y2ggKHNUZXJtKSB7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkxpbmVJdGVtOlxuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5DaGFydDpcblx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zLnB1c2goe1xuXHRcdFx0XHRcdHZpc3VhbGl6YXRpb246IHZpc3VhbGl6YXRpb24gYXMgQWN0dWFsVmlzdWFsaXphdGlvbkFubm90YXRpb25zLFxuXHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiB2aXN1YWxpemF0aW9uUGF0aCxcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuUHJlc2VudGF0aW9uVmFyaWFudDpcblx0XHRcdFx0cHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24gPSB2aXN1YWxpemF0aW9uIGFzIFByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXM7XG5cdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyA9IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5jb25jYXQoXG5cdFx0XHRcdFx0Z2V0VmlzdWFsaXphdGlvbnNGcm9tUHJlc2VudGF0aW9uVmFyaWFudChcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb24gYXMgUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdClcblx0XHRcdFx0KTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ6XG5cdFx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gKHZpc3VhbGl6YXRpb24gYXMgU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcykuUHJlc2VudGF0aW9uVmFyaWFudDtcblx0XHRcdFx0Ly8gUHJlc2VudGF0aW9uIGNhbiBiZSBpbmxpbmUgb3Igb3V0c2lkZSB0aGUgU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFxuXHRcdFx0XHRwcmVzZW50YXRpb25QYXRoID0gcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lO1xuXG5cdFx0XHRcdGlmICghaXNQcmVzZW50YXRpb25Db21wbGlhbnQocHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24pKSB7XG5cdFx0XHRcdFx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRcdFx0XHRcdGNvbnN0IGRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24gPSBnZXREZWZhdWx0TGluZUl0ZW0oZW50aXR5VHlwZSkgYXMgTGluZUl0ZW07XG5cdFx0XHRcdFx0aWYgKGRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24pIHtcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbjogZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbixcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0UmVsYXRpdmVBbm5vdGF0aW9uUGF0aChcblx0XHRcdFx0XHRcdFx0XHRkZWZhdWx0TGluZUl0ZW1Bbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSxcblx0XHRcdFx0XHRcdFx0XHRlbnRpdHlUeXBlXG5cdFx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMgPSB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMuY29uY2F0KFxuXHRcdFx0XHRcdFx0Z2V0VmlzdWFsaXphdGlvbnNGcm9tUHJlc2VudGF0aW9uVmFyaWFudChwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiwgdmlzdWFsaXphdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQpXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMubWFwKHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uID0+IHtcblx0XHRcdGNvbnN0IHsgdmlzdWFsaXphdGlvbiwgYW5ub3RhdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQgfSA9IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uO1xuXHRcdFx0c3dpdGNoICh2aXN1YWxpemF0aW9uLnRlcm0pIHtcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5DaGFydDpcblx0XHRcdFx0XHRjaGFydFZpc3VhbGl6YXRpb24gPSBjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24oXG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uIGFzIENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcyxcblx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW06XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0dGFibGVWaXN1YWxpemF0aW9uID0gY3JlYXRlVGFibGVWaXN1YWxpemF0aW9uKFxuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbiBhcyBMaW5lSXRlbSxcblx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uLFxuXHRcdFx0XHRcdFx0aXNDb25kZW5zZWRUYWJsZUxheW91dENvbXBsaWFudCxcblx0XHRcdFx0XHRcdHZpZXdDb25maWd1cmF0aW9uXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHR0YWJsZVZpc3VhbGl6YXRpb24gPSBjcmVhdGVEZWZhdWx0VGFibGVWaXN1YWxpemF0aW9uKGNvbnZlcnRlckNvbnRleHQpO1xuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0RGlhZ25vc3RpY3MoKS5hZGRJc3N1ZShJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sIElzc3VlU2V2ZXJpdHkuTWVkaXVtLCBJc3N1ZVR5cGUuTUlTU0lOR19MSU5FSVRFTSk7XG5cdH1cblx0Y29uc3QgYVZpc3VhbGl6YXRpb25zOiBhbnkgPSBbXTtcblx0bGV0IHNQYXRoID1cblx0XHRzVGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCA/IHByZXNlbnRhdGlvblBhdGggOiB2aXN1YWxpemF0aW9uICYmIHZpc3VhbGl6YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lO1xuXHRpZiAoc1BhdGggPT09IHVuZGVmaW5lZCkge1xuXHRcdHNQYXRoID0gXCIvXCI7XG5cdH1cblx0aWYgKGNoYXJ0VmlzdWFsaXphdGlvbikge1xuXHRcdGFWaXN1YWxpemF0aW9ucy5wdXNoKGNoYXJ0VmlzdWFsaXphdGlvbik7XG5cdH1cblx0aWYgKHRhYmxlVmlzdWFsaXphdGlvbikge1xuXHRcdGFWaXN1YWxpemF0aW9ucy5wdXNoKHRhYmxlVmlzdWFsaXphdGlvbik7XG5cdH1cblx0cmV0dXJuIHtcblx0XHR2aXN1YWxpemF0aW9uczogYVZpc3VhbGl6YXRpb25zLFxuXHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoc1BhdGgpXG5cdH07XG59XG4iXX0=
|
|
@@ -40,8 +40,7 @@ export type DataVisualizationDefinition = {
|
|
|
40
40
|
const getVisualizationsFromPresentationVariant = function(
|
|
41
41
|
presentationVariantAnnotation: PresentationVariantTypeTypes,
|
|
42
42
|
visualizationPath: string,
|
|
43
|
-
converterContext: ConverterContext
|
|
44
|
-
viewConfiguration?: ViewPathConfiguration
|
|
43
|
+
converterContext: ConverterContext
|
|
45
44
|
): VisualizationAndPath[] {
|
|
46
45
|
const visualizationAnnotations: VisualizationAndPath[] = [];
|
|
47
46
|
const visualizations = presentationVariantAnnotation.Visualizations || [];
|
|
@@ -51,31 +50,24 @@ const getVisualizationsFromPresentationVariant = function(
|
|
|
51
50
|
let hasLineItem = false;
|
|
52
51
|
let hasChart = false;
|
|
53
52
|
let hasVisualization = false; // used to allow only first visualization in OP
|
|
53
|
+
const bIsALP =
|
|
54
|
+
converterContext.getManifestWrapper().hasMultipleVisualizations() ||
|
|
55
|
+
converterContext.getTemplateType() === TemplateType.AnalyticalListPage;
|
|
54
56
|
visualizations.forEach(visualization => {
|
|
55
57
|
switch (visualization.$target.term) {
|
|
56
58
|
case UIAnnotationTerms.LineItem:
|
|
57
|
-
if (!hasLineItem) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
hasVisualization = true;
|
|
66
|
-
}
|
|
59
|
+
if (!hasLineItem && (bIsALP || !hasVisualization)) {
|
|
60
|
+
visualizationAnnotations.push({
|
|
61
|
+
visualization: visualization.$target as ActualVisualizationAnnotations,
|
|
62
|
+
annotationPath: `${baseVisualizationPath}${visualization.value}`,
|
|
63
|
+
converterContext: converterContext
|
|
64
|
+
});
|
|
65
|
+
hasLineItem = true;
|
|
66
|
+
hasVisualization = true;
|
|
67
67
|
}
|
|
68
68
|
break;
|
|
69
69
|
case UIAnnotationTerms.Chart:
|
|
70
|
-
if (
|
|
71
|
-
!hasChart &&
|
|
72
|
-
((viewConfiguration &&
|
|
73
|
-
converterContext.getManifestWrapper().hasMultipleVisualizations(viewConfiguration) &&
|
|
74
|
-
converterContext.getTemplateType() === TemplateType.ListReport) ||
|
|
75
|
-
(converterContext.getTemplateType() === TemplateType.AnalyticalListPage &&
|
|
76
|
-
!converterContext.getManifestWrapper().getViewConfiguration()) ||
|
|
77
|
-
(converterContext.getTemplateType() === TemplateType.ObjectPage && !hasVisualization))
|
|
78
|
-
) {
|
|
70
|
+
if (!hasChart && (bIsALP || !hasVisualization)) {
|
|
79
71
|
visualizationAnnotations.push({
|
|
80
72
|
visualization: visualization.$target as ActualVisualizationAnnotations,
|
|
81
73
|
annotationPath: `${baseVisualizationPath}${visualization.value}`,
|
|
@@ -146,7 +138,7 @@ export function isPresentationCompliant(presentationVariant: PresentationVariant
|
|
|
146
138
|
presentationVariant &&
|
|
147
139
|
presentationVariant.Visualizations &&
|
|
148
140
|
!!presentationVariant.Visualizations.find(visualization => {
|
|
149
|
-
return visualization.$target.term === UIAnnotationTerms.LineItem;
|
|
141
|
+
return visualization.$target.term === UIAnnotationTerms.LineItem || visualization.$target.term === UIAnnotationTerms.Chart;
|
|
150
142
|
})
|
|
151
143
|
);
|
|
152
144
|
}
|
|
@@ -212,8 +204,7 @@ export function getDataVisualizationConfiguration(
|
|
|
212
204
|
getVisualizationsFromPresentationVariant(
|
|
213
205
|
visualization as PresentationVariantTypeTypes,
|
|
214
206
|
visualizationPath,
|
|
215
|
-
converterContext
|
|
216
|
-
viewConfiguration
|
|
207
|
+
converterContext
|
|
217
208
|
)
|
|
218
209
|
);
|
|
219
210
|
break;
|
|
@@ -237,12 +228,7 @@ export function getDataVisualizationConfiguration(
|
|
|
237
228
|
}
|
|
238
229
|
} else {
|
|
239
230
|
visualizationAnnotations = visualizationAnnotations.concat(
|
|
240
|
-
getVisualizationsFromPresentationVariant(
|
|
241
|
-
presentationVariantAnnotation,
|
|
242
|
-
visualizationPath,
|
|
243
|
-
converterContext,
|
|
244
|
-
viewConfiguration
|
|
245
|
-
)
|
|
231
|
+
getVisualizationsFromPresentationVariant(presentationVariantAnnotation, visualizationPath, converterContext)
|
|
246
232
|
);
|
|
247
233
|
}
|
|
248
234
|
break;
|