@sapui5/sap.fe.macros 1.96.14 → 1.96.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/macros/.library +1 -1
- package/src/sap/fe/macros/Chart.metadata.js +1 -1
- package/src/sap/fe/macros/ChartDelegate.js +1 -1
- package/src/sap/fe/macros/CommonHelper.js +1 -1
- package/src/sap/fe/macros/Contact.designtime.js +1 -1
- package/src/sap/fe/macros/Contact.metadata.js +1 -1
- package/src/sap/fe/macros/ContactHelper.js +1 -1
- package/src/sap/fe/macros/DelegateUtil.js +1 -1
- package/src/sap/fe/macros/DraftIndicator.metadata.js +1 -1
- package/src/sap/fe/macros/DraftIndicatorRuntime.js +1 -1
- package/src/sap/fe/macros/FieldValueHelpDelegate.js +1 -1
- package/src/sap/fe/macros/FilterBar.designtime.js +1 -1
- package/src/sap/fe/macros/FilterBar.metadata.js +1 -1
- package/src/sap/fe/macros/FilterBarDelegate.js +1 -1
- package/src/sap/fe/macros/FilterBarHelper.js +1 -1
- package/src/sap/fe/macros/FilterField.designtime.js +1 -1
- package/src/sap/fe/macros/FilterField.metadata.js +1 -1
- package/src/sap/fe/macros/FlexibleColumnLayoutActions.metadata.js +1 -1
- package/src/sap/fe/macros/Form.designtime.js +1 -1
- package/src/sap/fe/macros/Form.metadata.js +1 -1
- package/src/sap/fe/macros/FormContainer.designtime.js +1 -1
- package/src/sap/fe/macros/FormContainer.metadata.js +1 -1
- package/src/sap/fe/macros/MacroMetadata.js +1 -1
- package/src/sap/fe/macros/MicroChart.designtime.js +1 -1
- package/src/sap/fe/macros/MicroChart.metadata.js +1 -1
- package/src/sap/fe/macros/ODataMetaModelUtil.js +1 -1
- package/src/sap/fe/macros/Paginator.metadata.js +1 -1
- package/src/sap/fe/macros/PhantomUtil.js +1 -1
- package/src/sap/fe/macros/QuickViewForm.designtime.js +1 -1
- package/src/sap/fe/macros/QuickViewForm.metadata.js +1 -1
- package/src/sap/fe/macros/ResourceModel.js +1 -1
- package/src/sap/fe/macros/Share.metadata.js +1 -1
- package/src/sap/fe/macros/SizeHelper.js +1 -1
- package/src/sap/fe/macros/Table.metadata.js +1 -1
- package/src/sap/fe/macros/TableAPI.js +11 -8
- package/src/sap/fe/macros/TableAPI.ts +9 -5
- package/src/sap/fe/macros/TraceInfo.js +1 -1
- package/src/sap/fe/macros/ValueHelp.metadata.js +1 -1
- package/src/sap/fe/macros/VisualFilter.metadata.js +1 -1
- package/src/sap/fe/macros/chart/ChartHelper.js +1 -1
- package/src/sap/fe/macros/chart/ChartRuntime.js +1 -1
- package/src/sap/fe/macros/chart/ChartUtils.js +1 -1
- package/src/sap/fe/macros/field/FieldHelper.js +1 -1
- package/src/sap/fe/macros/field/FieldRuntime.js +1 -1
- package/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
- package/src/sap/fe/macros/filter/DraftEditState.js +1 -1
- package/src/sap/fe/macros/filter/FilterFieldHelper.js +1 -1
- package/src/sap/fe/macros/filter/FilterUtils.js +1 -1
- package/src/sap/fe/macros/filter/type/MultiValue.js +1 -1
- package/src/sap/fe/macros/filter/type/Range.js +1 -1
- package/src/sap/fe/macros/filter/type/Value.js +1 -1
- package/src/sap/fe/macros/flexibility/FormDelegate.js +1 -1
- package/src/sap/fe/macros/form/FormHelper.js +1 -1
- package/src/sap/fe/macros/fpm/CustomFragment.metadata.js +1 -1
- package/src/sap/fe/macros/fpm/CustomSection.metadata.js +1 -1
- package/src/sap/fe/macros/fpm/fpm.js +1 -1
- package/src/sap/fe/macros/internal/DataPoint.metadata.js +1 -1
- package/src/sap/fe/macros/internal/Field.designtime.js +1 -1
- package/src/sap/fe/macros/internal/Field.metadata.js +1 -1
- package/src/sap/fe/macros/internal/collectionField/MultiValueFieldDelegate.js +1 -1
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +1 -1
- package/src/sap/fe/macros/internal/valuehelp/ValueHelp.designtime.js +1 -1
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
- package/src/sap/fe/macros/library.js +2 -2
- package/src/sap/fe/macros/macroLibrary.js +1 -1
- package/src/sap/fe/macros/massedit/MassEditHandler.js +1 -1
- package/src/sap/fe/macros/massedit/MassEditRuntime.js +1 -1
- package/src/sap/fe/macros/messagebundle_it.properties +1 -1
- package/src/sap/fe/macros/messagebundle_tr.properties +1 -1
- package/src/sap/fe/macros/microchart/MicroChartContainer.js +1 -1
- package/src/sap/fe/macros/microchart/MicroChartHelper.js +1 -1
- package/src/sap/fe/macros/table/BasicSearch.js +1 -1
- package/src/sap/fe/macros/table/QuickFilterContainer.js +1 -1
- package/src/sap/fe/macros/table/TableFullScreenUtil.js +1 -1
- package/src/sap/fe/macros/table/TableHelper.js +1 -1
- package/src/sap/fe/macros/table/TableRuntime.js +1 -1
- package/src/sap/fe/macros/table/Utils.js +1 -1
- package/src/sap/fe/macros/table/delegates/ALPTableDelegate.js +1 -1
- package/src/sap/fe/macros/table/delegates/ALPTableDelegateBaseMixin.js +1 -1
- package/src/sap/fe/macros/table/delegates/AnalyticalALPTableDelegate.js +1 -1
- package/src/sap/fe/macros/table/delegates/AnalyticalTableDelegate.js +1 -1
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
- package/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.designtime.js +1 -1
- package/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.metadata.js +1 -1
- package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.js +1 -1
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAPUI5
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2023 SAP SE. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
sap.ui.define(["sap/fe/core/converters/ConverterContext", "sap/base/util/merge", "sap/base/util/uid", "sap/base/util/deepClone"], function(
|
|
@@ -234,17 +234,15 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/PasteHel
|
|
|
234
234
|
}, {
|
|
235
235
|
key: "onBeforeExport",
|
|
236
236
|
value: function onBeforeExport(oEvent) {
|
|
237
|
-
var _oEvent$getParameters;
|
|
238
|
-
|
|
239
237
|
var isSplitMode = oEvent.getParameters().userExportSettings.splitCells,
|
|
240
238
|
isRLTLanguage = sap.ui.getCore().getConfiguration().getRTL(),
|
|
241
239
|
oTableController = oEvent.getSource(),
|
|
242
|
-
|
|
240
|
+
oExportSettings = oEvent.getParameters().exportSettings,
|
|
243
241
|
oTableColumns = this.tableDefinition.columns;
|
|
244
|
-
TableAPI.updateExportSettings(
|
|
242
|
+
TableAPI.updateExportSettings(oExportSettings, oTableColumns, oTableController, isSplitMode, isRLTLanguage);
|
|
245
243
|
}
|
|
246
244
|
/**
|
|
247
|
-
* Handles the
|
|
245
|
+
* Handles the DataStateIndicator plugin to display messageStrip on a table.
|
|
248
246
|
* @param oMessage
|
|
249
247
|
* @param oTable
|
|
250
248
|
* @name dataStateFilter
|
|
@@ -289,7 +287,12 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/PasteHel
|
|
|
289
287
|
}
|
|
290
288
|
}, {
|
|
291
289
|
key: "updateExportSettings",
|
|
292
|
-
value: function updateExportSettings(
|
|
290
|
+
value: function updateExportSettings(oExportSettings, oColumns, oTableController, isSplitMode, isRLTLanguage) {
|
|
291
|
+
var _oExportSettings$work;
|
|
292
|
+
|
|
293
|
+
//Set static sizeLimit during export
|
|
294
|
+
oExportSettings.dataSource.sizeLimit = 1000;
|
|
295
|
+
var oExportColumns = (_oExportSettings$work = oExportSettings.workbook) === null || _oExportSettings$work === void 0 ? void 0 : _oExportSettings$work.columns;
|
|
293
296
|
oExportColumns.forEach(function (oColumnExport) {
|
|
294
297
|
var aExportLabels = [];
|
|
295
298
|
oColumns === null || oColumns === void 0 ? void 0 : oColumns.forEach(function (column) {
|
|
@@ -364,7 +367,7 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/PasteHel
|
|
|
364
367
|
|
|
365
368
|
oColumnExport.label = aExportLabels.join(" - ");
|
|
366
369
|
});
|
|
367
|
-
return
|
|
370
|
+
return oExportSettings;
|
|
368
371
|
}
|
|
369
372
|
}, {
|
|
370
373
|
key: "_getFieldGroupExportLabel",
|
|
@@ -473,4 +476,4 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/PasteHel
|
|
|
473
476
|
}), _applyDecoratedDescriptor(_class2.prototype, "onTableRowPress", [EventHandler], Object.getOwnPropertyDescriptor(_class2.prototype, "onTableRowPress"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onInternalDataReceived", [EventHandler], Object.getOwnPropertyDescriptor(_class2.prototype, "onInternalDataReceived"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onPaste", [EventHandler], Object.getOwnPropertyDescriptor(_class2.prototype, "onPaste"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onPasteButtonPressed", [EventHandler], Object.getOwnPropertyDescriptor(_class2.prototype, "onPasteButtonPressed"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onBeforeExport", [EventHandler], Object.getOwnPropertyDescriptor(_class2.prototype, "onBeforeExport"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onDataStateChange", [EventHandler], Object.getOwnPropertyDescriptor(_class2.prototype, "onDataStateChange"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onMassEditButtonPressed", [EventHandler], Object.getOwnPropertyDescriptor(_class2.prototype, "onMassEditButtonPressed"), _class2.prototype)), _class2)) || _class);
|
|
474
477
|
return TableAPI;
|
|
475
478
|
}, false);
|
|
476
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYmxlQVBJLnRzIl0sIm5hbWVzIjpbIlRhYmxlQVBJIiwiQVBJQ2xhc3MiLCJNYWNyb0NvbnRleHQiLCJQcm9wZXJ0eSIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJvRXZlbnQiLCJvQ29udHJvbGxlciIsIm9Db250ZXh0IiwibVBhcmFtZXRlcnMiLCJpc0EiLCJnZXRQcm9wZXJ0eSIsIl9yb3V0aW5nIiwibmF2aWdhdGVGb3J3YXJkVG9Db250ZXh0IiwiZ2V0UGFyYW1ldGVyIiwiZ2V0Q29udHJvbGxlciIsIm1lc3NhZ2VIYW5kbGVyIiwic2hvd01lc3NhZ2VEaWFsb2ciLCJ0YWJsZURlZmluaXRpb24iLCJjb250cm9sIiwiZW5hYmxlUGFzdGUiLCJnZXRNb2RlbCIsImFSYXdQYXN0ZWREYXRhIiwib1RhYmxlIiwiZ2V0U291cmNlIiwiYlBhc3RlRW5hYmxlZCIsImRhdGEiLCJvUmVzb3VyY2VNb2RlbCIsIlBhc3RlSGVscGVyIiwicGFyc2VEYXRhRm9yVGFibGVQYXN0ZSIsInRoZW4iLCJhUGFyc2VkRGF0YSIsImxlbmd0aCIsIl9lZGl0RmxvdyIsImNyZWF0ZU11bHRpcGxlRG9jdW1lbnRzIiwiZ2V0Um93QmluZGluZyIsImNyZWF0ZUF0RW5kIiwiY2F0Y2giLCJvRXJyb3IiLCJMb2ciLCJlcnJvciIsInNhcCIsInVpIiwiZ2V0Q29yZSIsImdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZSIsIk1lc3NhZ2VCb3giLCJnZXRUZXh0IiwidGl0bGUiLCJzRGV2aWNlT3MiLCJEZXZpY2UiLCJvcyIsIm5hbWUiLCJzRGV2aWNlU3lzdGVtIiwic3lzdGVtIiwic01lc3NhZ2VPblBhc3RlQnV0dG9uIiwicGhvbmUiLCJ0YWJsZXQiLCJjb21iaSIsImRlc2t0b3AiLCJpbmZvcm1hdGlvbiIsIm9uQ2xvc2UiLCJjb250ZW50IiwiZ2V0QWdncmVnYXRpb24iLCJhcHBseUZvY3VzSW5mbyIsInByZXZlbnRTY3JvbGwiLCJpc1NwbGl0TW9kZSIsImdldFBhcmFtZXRlcnMiLCJ1c2VyRXhwb3J0U2V0dGluZ3MiLCJzcGxpdENlbGxzIiwiaXNSTFRMYW5ndWFnZSIsImdldENvbmZpZ3VyYXRpb24iLCJnZXRSVEwiLCJvVGFibGVDb250cm9sbGVyIiwib0V4cG9ydENvbHVtbnMiLCJleHBvcnRTZXR0aW5ncyIsIndvcmtib29rIiwiY29sdW1ucyIsIm9UYWJsZUNvbHVtbnMiLCJ1cGRhdGVFeHBvcnRTZXR0aW5ncyIsIm9EYXRhU3RhdGVJbmRpY2F0b3IiLCJhRmlsdGVyZWRNZXNzYWdlcyIsIm9JbnRlcm5hbE1vZGVsIiwic2V0UHJvcGVydHkiLCJnZXRCaW5kaW5nQ29udGV4dCIsIlBhZ2VDb250cm9sbGVyIiwiTWFzc0VkaXRIYW5kbGVyIiwib3Blbk1hc3NFZGl0RGlhbG9nIiwib01lc3NhZ2UiLCJvVGFibGVBUEkiLCJnZXRQYXJlbnQiLCJlbmFibGVEYXRhU3RhdGVGaWx0ZXIiLCJvQ29sdW1ucyIsImZvckVhY2giLCJvQ29sdW1uRXhwb3J0IiwiYUV4cG9ydExhYmVscyIsImNvbHVtbiIsIm9Db2x1bW4iLCJpc1VuaXQiLCJzb21lIiwidW5pdCIsInByb3BlcnR5IiwiRmllbGRHcm91cExhYmVsIiwiX2dldEZpZWxkR3JvdXBFeHBvcnRMYWJlbCIsInVuc2hpZnQiLCJkYXRhRmllbGREZXNjcmlwdGlvbkxhYmVsIiwiX2dldERhdGFGaWVsZERlc2NyaXB0aW9uTGFiZWwiLCJpc0RhdGFQb2ludEZha2VUYXJnZXRQcm9wZXJ0eSIsInJlbGF0aXZlUGF0aCIsImV4cG9ydENvbnRhY3RQcm9wZXJ0eSIsInByb3BlcnR5SW5mb3MiLCJ0b1N0cmluZyIsImxhYmVsIiwicHJvcCIsImluY2x1ZGVzIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwicHVzaCIsIkRlbGVnYXRlVXRpbCIsImdldExvY2FsaXplZFRleHQiLCJmaWx0ZXIiLCJpbmRleCIsImluZGV4T2YiLCJyZXZlcnNlIiwiam9pbiIsImNvbHVtbklkIiwiZmllbGRMYWJlbCIsIk1hY3JvQVBJIiwiRXZlbnQiLCJF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QkFDQUosT0FBTyxDQUFDYSxhQURSLG1EQUNBLHVCQUF1QkksUUFBdkIsQ0FBZ0MsZUFBZXBCLGFBQWEsQ0FBQ08sUUFBN0QsQ0FKRCxLQUtBLDBCQUFBSixPQUFPLENBQUNXLFlBQVIsZ0ZBQXNCZSxPQUF0QixDQUE4Qix3Q0FBOUIsT0FBNEUsQ0FBQyxDQU45RSxFQU9FO0FBQ0QsaUJBQU9KLFlBQVksQ0FBQ0MsZ0JBQWIsQ0FBOEJ2QixPQUFPLENBQUNlLEtBQXRDLEVBQXVEdkMsZ0JBQXZELENBQVA7QUFDQTtBQUNEOzs7O0lBNVhxQnVELFE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnRkF5R3JCQyxLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt1RUF1Q0FDLFksc0tBZUFBLFksOEpBTUFBLFksNEpBbUNBQSxZLG1LQWlDQUEsWSxnS0FvQ0FBLFkseUtBZ0hBQSxZO1NBT2FqSSxRIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUElDbGFzcywgRXZlbnRIYW5kbGVyLCBNYWNyb0NvbnRleHQsIFByb3BlcnR5LCBFdmVudCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgUGFzdGVIZWxwZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVyc1wiO1xuaW1wb3J0IHsgTWVzc2FnZUJveCB9IGZyb20gXCJzYXAvbVwiO1xuaW1wb3J0IHsgRGV2aWNlIH0gZnJvbSBcInNhcC91aVwiO1xuaW1wb3J0IHsgTG9nIH0gZnJvbSBcInNhcC9iYXNlXCI7XG5pbXBvcnQgeyBQYWdlQ29udHJvbGxlciB9IGZyb20gXCJzYXAvZmUvY29yZVwiO1xuaW1wb3J0IHsgQW5ub3RhdGlvblRhYmxlQ29sdW1uLCBUYWJsZUNvbHVtbiwgVGFibGVWaXN1YWxpemF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL1RhYmxlXCI7XG5pbXBvcnQgTWFjcm9BUEkgZnJvbSBcIi4vTWFjcm9BUElcIjtcbmltcG9ydCB7IE1hc3NFZGl0SGFuZGxlciB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL21hc3NlZGl0XCI7XG5pbXBvcnQgeyBEZWxlZ2F0ZVV0aWwgfSBmcm9tIFwic2FwL2ZlL21hY3Jvc1wiO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjRcIjtcblxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIGEgY3VzdG9tIGFjdGlvbiB0byBiZSB1c2VkIGluc2lkZSB0aGUgdGFibGUgdG9vbGJhclxuICpcbiAqIEBhbGlhcyBzYXAuZmUubWFjcm9zLnRhYmxlLkFjdGlvblxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBBY3Rpb24gPSB7XG5cdC8qKlxuXHQgKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYWN0aW9uXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGtleTogc3RyaW5nO1xuXHQvKipcblx0ICogVGhlIHRleHQgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBmb3IgdGhpcyBhY3Rpb25cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0dGV4dDogc3RyaW5nO1xuXHQvKipcblx0ICogUmVmZXJlbmNlIHRvIHRoZSBrZXkgb2YgYW5vdGhlciBhY3Rpb24gYWxyZWFkeSBkaXNwbGF5ZWQgaW4gdGhlIHRvb2xiYXIgdG8gcHJvcGVybHkgcGxhY2UgdGhpcyBvbmVcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0YW5jaG9yPzogc3RyaW5nO1xuXHQvKipcblx0ICogRGVmaW5lcyB3aGVyZSB0aGlzIGFjdGlvbiBzaG91bGQgYmUgcGxhY2VkIHJlbGF0aXZlIHRvIHRoZSBkZWZpbmVkIGFuY2hvclxuXHQgKlxuXHQgKiBBbGxvd2VkIHZhbHVlcyBhcmUgYEJlZm9yZWAgYW5kIGBBZnRlcmBcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0cGxhY2VtZW50Pzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGNob29zZXMgdGhlIGFjdGlvblxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRwcmVzczogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIGEgY3VzdG9tIGNvbHVtbiB0byBiZSB1c2VkIGluc2lkZSB0aGUgdGFibGUuXG4gKlxuICogVGhlIHRlbXBsYXRlIGZvciB0aGUgY29sdW1uIGhhcyB0byBiZSBwcm92aWRlZCBhcyB0aGUgZGVmYXVsdCBhZ2dyZWdhdGlvblxuICpcbiAqIEBhbGlhcyBzYXAuZmUubWFjcm9zLnRhYmxlLkNvbHVtblxuICogQHB1YmxpY1xuICogQGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgdHlwZSBDb2x1bW4gPSB7XG5cdC8qKlxuXHQgKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29sdW1uXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGtleTogc3RyaW5nO1xuXHQvKipcblx0ICogVGhlIHRleHQgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBmb3IgdGhpcyBjb2x1bW4gaGVhZGVyXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGhlYWRlcjogc3RyaW5nO1xuXHQvKipcblx0ICogUmVmZXJlbmNlIHRvIHRoZSBrZXkgb2YgYW5vdGhlciBjb2x1bW4gYWxyZWFkeSBkaXNwbGF5ZWQgaW4gdGhlIHRhYmxlIHRvIHByb3Blcmx5IHBsYWNlIHRoaXMgb25lXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGFuY2hvcj86IHN0cmluZztcblx0LyoqXG5cdCAqIERlZmluZXMgd2hlcmUgdGhpcyBjb2x1bW4gc2hvdWxkIGJlIHBsYWNlZCByZWxhdGl2ZSB0byB0aGUgZGVmaW5lZCBhbmNob3Jcblx0ICpcblx0ICogQWxsb3dlZCB2YWx1ZXMgYXJlIGBCZWZvcmVgIGFuZCBgQWZ0ZXJgXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdHBsYWNlbWVudD86IHN0cmluZztcbn07XG5cbi8qKlxuICogQnVpbGRpbmcgYmxvY2sgdXNlZCB0byBjcmVhdGUgYSB0YWJsZSBiYXNlZCBvbiB0aGUgbWV0YWRhdGEgcHJvdmlkZWQgYnkgT0RhdGEgVjQuXG4gKiA8YnI+XG4gKiBVc3VhbGx5LCBhIExpbmVJdGVtIG9yIFByZXNlbnRhdGlvblZhcmlhbnQgYW5ub3RhdGlvbiBpcyBleHBlY3RlZCwgYnV0IHRoZSBUYWJsZSBidWlsZGluZyBibG9jayBjYW4gYWxzbyBiZSB1c2VkIHRvIGRpc3BsYXkgYW4gRW50aXR5U2V0LlxuICpcbiAqXG4gKiBVc2FnZSBleGFtcGxlOlxuICogPHByZT5cbiAqICZsdDttYWNybzpUYWJsZSBpZD1cIk15VGFibGVcIiBtZXRhUGF0aD1cIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbVwiIC8mZ3Q7XG4gKiA8L3ByZT5cbiAqXG4gKiBAYWxpYXMgc2FwLmZlLm1hY3Jvcy5UYWJsZVxuICogQHB1YmxpY1xuICovXG5AQVBJQ2xhc3MoXCJzYXAuZmUubWFjcm9zLlRhYmxlQVBJXCIpXG5jbGFzcyBUYWJsZUFQSSBleHRlbmRzIE1hY3JvQVBJIHtcblx0QE1hY3JvQ29udGV4dCgpXG5cdHRhYmxlRGVmaW5pdGlvbiE6IFRhYmxlVmlzdWFsaXphdGlvbjtcblxuXHQvKipcblx0ICogQW4gZXhwcmVzc2lvbiB0aGF0IGFsbG93cyB5b3UgdG8gY29udHJvbCB0aGUgJ3JlYWQtb25seScgc3RhdGUgb2YgdGhlIHRhYmxlLlxuXHQgKlxuXHQgKiBJZiB5b3UgZG8gbm90IHNldCBhbnkgZXhwcmVzc2lvbiwgU0FQIEZpb3JpIGVsZW1lbnRzIGhvb2tzIGludG8gdGhlIHN0YW5kYXJkIGxpZmVjeWNsZSB0byBkZXRlcm1pbmUgdGhlIGN1cnJlbnQgc3RhdGUuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdHJlYWRPbmx5ITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIHRhYmxlIGNvbnRyb2wuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0aWQhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIEFuIGV4cHJlc3Npb24gdGhhdCBhbGxvd3MgeW91IHRvIGNvbnRyb2wgdGhlICdidXN5JyBzdGF0ZSBvZiB0aGUgdGFibGUuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGJ1c3khOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSB0eXBlIG9mIHRhYmxlIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IHRoZSBtYWNybyB0byByZW5kZXIgdGhlIGRhdGEuXG5cdCAqXG5cdCAqIEFsbG93ZWQgdmFsdWVzIGFyZSBgR3JpZFRhYmxlYCBhbmQgYFJlc3BvbnNpdmVUYWJsZWBcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QFByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiwgZGVmYXVsdFZhbHVlOiBcIlJlc3BvbnNpdmVUYWJsZVwiIH0pXG5cdHR5cGUhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIENvbnRyb2xzIGlmIHRoZSBleHBvcnQgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdGFibGUgaXMgZW5hYmxlZCBvciBub3QuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IHRydWUgfSlcblx0ZW5hYmxlRXhwb3J0ITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogQ29udHJvbHMgaWYgdGhlIHBhc3RlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHRhYmxlIGlzIGVuYWJsZWQgb3Igbm90LlxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAUHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRlbmFibGVQYXN0ZSE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIENvbnRyb2xzIHdoZXRoZXIgdGhlIHRhYmxlIGNhbiBiZSBvcGVuZWQgaW4gZnVsbHNjcmVlbiBtb2RlIG9yIG5vdC5cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QFByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0ZW5hYmxlRnVsbFNjcmVlbiE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIHNlbGVjdGlvbiBtb2RlIHRvIGJlIHVzZWQgYnkgdGhlIHRhYmxlLlxuXHQgKlxuXHQgKiBBbGxvd2VkIHZhbHVlcyBhcmUgYE5vbmVgLCBgU2luZ2xlYCwgYE11bHRpYCBvciBgQXV0b2Bcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QFByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRzZWxlY3Rpb25Nb2RlITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBTcGVjaWZpZXMgdGhlIGhlYWRlciB0ZXh0IHRoYXQgaXMgc2hvd24gaW4gdGhlIHRhYmxlLlxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAUHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGhlYWRlciE6IHN0cmluZztcblxuXHQvKipcblx0ICogU3BlY2lmaWVzIHRoZSBoZWFkZXIgdGV4dCB0aGF0IGlzIHNob3duIGluIHRoZSB0YWJsZS5cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QFByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0ZW5hYmxlQXV0b0NvbHVtbldpZHRoITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogQ29udHJvbHMgaWYgdGhlIGhlYWRlciB0ZXh0IHNob3VsZCBiZSBzaG93biBvciBub3QuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IHRydWUgfSlcblx0aGVhZGVyVmlzaWJsZSE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIEFuIGV2ZW50IHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGNob29zZXMgYSByb3c7IHRoZSBldmVudCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB3aGljaCByb3cgd2FzIGNob3Nlbi5cblx0ICpcblx0ICogWW91IGNhbiBzZXQgdGhpcyBpbiBvcmRlciB0byBoYW5kbGUgdGhlIG5hdmlnYXRpb24gbWFudWFsbHkuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBFdmVudFxuXHRyb3dQcmVzcyE6IEZ1bmN0aW9uO1xuXG5cdC8qKlxuXHQgKiBDb250cm9scyB3aGljaCBvcHRpb25zIHNob3VsZCBiZSBlbmFibGVkIGZvciB0aGUgdGFibGUgcGVyc29uYWxpemF0aW9uIGRpYWxvZy5cblx0ICpcblx0ICogSWYgaXQgaXMgc2V0IHRvIGB0cnVlYCwgYWxsIHBvc3NpYmxlIG9wdGlvbnMgZm9yIHRoaXMga2luZCBvZiB0YWJsZSBhcmUgZW5hYmxlZC48YnIvPlxuXHQgKiBJZiBpdCBpcyBzZXQgdG8gYGZhbHNlYCwgcGVyc29uYWxpemF0aW9uIGlzIGRpc2FibGVkLjxici8+XG5cdCAqPGJyLz5cblx0ICogWW91IGNhbiBhbHNvIHByb3ZpZGUgYSBtb3JlIGdyYW51bGFyIGNvbnRyb2wgZm9yIHRoZSBwZXJzb25hbGl6YXRpb24gYnkgcHJvdmlkaW5nIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgd2l0aCB0aGUgb3B0aW9ucyB5b3Ugd2FudCB0byBiZSBhdmFpbGFibGUuPGJyLz5cblx0ICogQXZhaWxhYmxlIG9wdGlvbnMgYXJlOjxici8+XG5cdCAqICAtIFNvcnQ8YnIvPlxuXHQgKiAgLSBDb2x1bW48YnIvPlxuXHQgKiAgLSBGaWx0ZXI8YnIvPlxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAUHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW58c3RyaW5nXCIsIGRlZmF1bHRWYWx1ZTogdHJ1ZSB9KVxuXHRwZXJzb25hbGl6YXRpb24hOiBib29sZWFuIHwgc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBDb250cm9scyB0aGUga2luZCBvZiB2YXJpYW50IG1hbmFnZW1lbnQgdGhhdCBzaG91bGQgYmUgZW5hYmxlZCBmb3IgdGhlIHRhYmxlLlxuXHQgKlxuXHQgKiBBbGxvd2VkIHZhbHVlcyBhcmUgYFBhZ2VgLCBgQ29udHJvbGAgYW5kIGBOb25lYC48YnIvPlxuXHQgKiBJZiB0aGUgdGFibGUgaXMgdXNlZCB3aXRoaW4gYSBTQVAgRmlvcmkgZWxlbWVudHMgdGVtcGxhdGUsIHRoZSBkZWZhdWx0IHZhbHVlIHdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgY3VycmVudCBwYWdlIHZhcmlhbnQgbWFuYWdlbWVudC48YnIvPlxuXHQgKiBPdGhlcndpc2UgaXQncyBgTm9uZWAuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0dmFyaWFudE1hbmFnZW1lbnQhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIENvbnRyb2xzIGlmIHRoZSBkYXRhU3RhdGVJbmRpY2F0b3IgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdGFibGUgaXMgZW5hYmxlZCBvciBub3QuXG5cdCAqXG5cdCAqL1xuXHRAUHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHRlbmFibGVEYXRhU3RhdGVGaWx0ZXIhOiBib29sZWFuO1xuXG5cdEBFdmVudEhhbmRsZXJcblx0b25UYWJsZVJvd1ByZXNzKG9FdmVudDogVUk1RXZlbnQsIG9Db250cm9sbGVyOiBQYWdlQ29udHJvbGxlciwgb0NvbnRleHQ6IENvbnRleHQsIG1QYXJhbWV0ZXJzOiBhbnkpIHtcblx0XHQvLyBJbiB0aGUgY2FzZSBvZiBhbiBhbmFseXRpY2FsIHRhYmxlLCBpZiB3ZSdyZSB0cnlpbmcgdG8gbmF2aWdhdGUgdG8gYSBjb250ZXh0IGNvcnJlc3BvbmRpbmcgdG8gYSB2aXN1YWwgZ3JvdXAgb3IgZ3JhbmQgdG90YWxcblx0XHQvLyAtLT4gQ2FuY2VsIG5hdmlnYXRpb25cblx0XHRpZiAoXG5cdFx0XHRvQ29udGV4dCAmJlxuXHRcdFx0b0NvbnRleHQuaXNBKFwic2FwLnVpLm1vZGVsLm9kYXRhLnY0LkNvbnRleHRcIikgJiZcblx0XHRcdHR5cGVvZiBvQ29udGV4dC5nZXRQcm9wZXJ0eShcIkAkdWk1Lm5vZGUuaXNFeHBhbmRlZFwiKSA9PT0gXCJib29sZWFuXCJcblx0XHQpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b0NvbnRyb2xsZXIuX3JvdXRpbmcubmF2aWdhdGVGb3J3YXJkVG9Db250ZXh0KG9Db250ZXh0LCBtUGFyYW1ldGVycyk7XG5cdFx0fVxuXHR9XG5cblx0QEV2ZW50SGFuZGxlclxuXHRvbkludGVybmFsRGF0YVJlY2VpdmVkKG9FdmVudDogVUk1RXZlbnQpIHtcblx0XHRpZiAob0V2ZW50LmdldFBhcmFtZXRlcihcImVycm9yXCIpKSB7XG5cdFx0XHR0aGlzLmdldENvbnRyb2xsZXIoKS5tZXNzYWdlSGFuZGxlci5zaG93TWVzc2FnZURpYWxvZygpO1xuXHRcdH1cblx0fVxuXHRARXZlbnRIYW5kbGVyXG5cdG9uUGFzdGUob0V2ZW50OiBVSTVFdmVudCwgb0NvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyKSB7XG5cdFx0Ly8gSWYgcGFzdGUgaXMgZGlzYWJsZSBvciBpZiB3ZSdyZSBub3QgaW4gZWRpdCBtb2RlLCB3ZSBjYW4ndCBwYXN0ZSBhbnl0aGluZ1xuXHRcdGlmICghdGhpcy50YWJsZURlZmluaXRpb24uY29udHJvbC5lbmFibGVQYXN0ZSB8fCAhdGhpcy5nZXRNb2RlbChcInVpXCIpLmdldFByb3BlcnR5KFwiL2lzRWRpdGFibGVcIikpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBhUmF3UGFzdGVkRGF0YSA9IG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJkYXRhXCIpLFxuXHRcdFx0b1RhYmxlID0gb0V2ZW50LmdldFNvdXJjZSgpLFxuXHRcdFx0YlBhc3RlRW5hYmxlZCA9IG9UYWJsZS5kYXRhKClbXCJlbmFibGVQYXN0ZVwiXTtcblx0XHRsZXQgb1Jlc291cmNlTW9kZWw7XG5cblx0XHRpZiAoYlBhc3RlRW5hYmxlZCA9PT0gdHJ1ZSB8fCBiUGFzdGVFbmFibGVkID09PSBcInRydWVcIikge1xuXHRcdFx0UGFzdGVIZWxwZXIucGFyc2VEYXRhRm9yVGFibGVQYXN0ZShhUmF3UGFzdGVkRGF0YSwgb1RhYmxlKVxuXHRcdFx0XHQudGhlbihhUGFyc2VkRGF0YSA9PiB7XG5cdFx0XHRcdFx0aWYgKGFQYXJzZWREYXRhICYmIGFQYXJzZWREYXRhLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdHJldHVybiBvQ29udHJvbGxlci5fZWRpdEZsb3cuY3JlYXRlTXVsdGlwbGVEb2N1bWVudHMoXG5cdFx0XHRcdFx0XHRcdG9UYWJsZS5nZXRSb3dCaW5kaW5nKCksXG5cdFx0XHRcdFx0XHRcdGFQYXJzZWREYXRhLFxuXHRcdFx0XHRcdFx0XHR0aGlzLnRhYmxlRGVmaW5pdGlvbi5jb250cm9sLmNyZWF0ZUF0RW5kLFxuXHRcdFx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdFx0LmNhdGNoKG9FcnJvciA9PiB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgcGFzdGluZyBkYXRhXCIsIG9FcnJvcik7XG5cdFx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvUmVzb3VyY2VNb2RlbCA9IHNhcC51aS5nZXRDb3JlKCkuZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlKFwic2FwLmZlLmNvcmVcIik7XG5cdFx0XHRNZXNzYWdlQm94LmVycm9yKG9SZXNvdXJjZU1vZGVsLmdldFRleHQoXCJUX09QX0NPTlRST0xMRVJfU0FQRkVfUEFTVEVfRElTQUJMRURfTUVTU0FHRVwiKSwge1xuXHRcdFx0XHR0aXRsZTogb1Jlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09NTU9OX1NBUEZFX0VSUk9SXCIpXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRARXZlbnRIYW5kbGVyXG5cdG9uUGFzdGVCdXR0b25QcmVzc2VkKCkge1xuXHRcdGNvbnN0IG9SZXNvdXJjZU1vZGVsID0gc2FwLnVpLmdldENvcmUoKS5nZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUoXCJzYXAuZmUudGVtcGxhdGVzXCIpLFxuXHRcdFx0c0RldmljZU9zID0gRGV2aWNlLm9zLm5hbWUsXG5cdFx0XHRzRGV2aWNlU3lzdGVtID0gRGV2aWNlLnN5c3RlbTtcblx0XHQvLyBXZSBuZWVkIGEgZGVmYXVsdCBpbiBjYXNlIHdlIGZhbGwgdGhyb3VnaCB0aGUgY3JhY2tcblx0XHRsZXQgc01lc3NhZ2VPblBhc3RlQnV0dG9uOiBzdHJpbmcgPSBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9PUF9DT05UUk9MTEVSX1RBQkxFX1BBU1RFX0JVVFRPTl9BQ1RJT05fTUVTU0FHRV9XSU5ET1dTX0RFU0tUT1BcIik7XG5cdFx0Ly8gT24gbW9iaWxlLCB0aGVyZSBpcyBubyBuYXRpdmUgcGFzdGUgdHJpZ2dlcjpcblx0XHRpZiAoc0RldmljZVN5c3RlbS5waG9uZSB8fCAoc0RldmljZVN5c3RlbS50YWJsZXQgJiYgIXNEZXZpY2VTeXN0ZW0uY29tYmkpKSB7XG5cdFx0XHRzTWVzc2FnZU9uUGFzdGVCdXR0b24gPSBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9PUF9DT05UUk9MTEVSX1RBQkxFX1BBU1RFX0JVVFRPTl9BQ1RJT05fTUVTU0FHRV9UT1VDSF9ERVZJQ0VcIik7XG5cdFx0fSBlbHNlIGlmIChzRGV2aWNlU3lzdGVtLmRlc2t0b3ApIHtcblx0XHRcdHN3aXRjaCAoc0RldmljZU9zKSB7XG5cdFx0XHRcdGNhc2UgXCJ3aW5cIjpcblx0XHRcdFx0XHRzTWVzc2FnZU9uUGFzdGVCdXR0b24gPSBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9PUF9DT05UUk9MTEVSX1RBQkxFX1BBU1RFX0JVVFRPTl9BQ1RJT05fTUVTU0FHRV9XSU5ET1dTX0RFU0tUT1BcIik7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgXCJtYWNcIjpcblx0XHRcdFx0XHRzTWVzc2FnZU9uUGFzdGVCdXR0b24gPSBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9PUF9DT05UUk9MTEVSX1RBQkxFX1BBU1RFX0JVVFRPTl9BQ1RJT05fTUVTU0FHRV9JT1NfREVTS1RPUFwiKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdFx0TWVzc2FnZUJveC5pbmZvcm1hdGlvbihzTWVzc2FnZU9uUGFzdGVCdXR0b24sIHtcblx0XHRcdG9uQ2xvc2U6ICgpID0+IHtcblx0XHRcdFx0aWYgKHRoaXMuY29udGVudCkge1xuXHRcdFx0XHRcdC8vIFNldCB0aGUgZm9jdXMgb24gdGhlIGlubmVyIHRhYmxlIHRvIGFsbG93IHBhc3RlXG5cdFx0XHRcdFx0KHRoaXMuY29udGVudC5nZXRBZ2dyZWdhdGlvbihcIl9jb250ZW50XCIpIGFzIGFueSk/LmFwcGx5Rm9jdXNJbmZvKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0Ly8gVGhpcyBldmVudCB3aWxsIGFsbG93IHVzIHRvIGludGVyY2VwdCB0aGUgZXhwb3J0IGJlZm9yZSBpcyB0cmlnZ2VyZWQgdG8gY292ZXIgc3BlY2lmaWMgY2FzZXNcblx0Ly8gdGhhdCBjb3VsZG4ndCBiZSBhZGRyZXNzZWQgb24gdGhlIHByb3BlcnR5SW5mb3MgZm9yIGVhY2ggY29sdW1uLlxuXHQvLyBlLmcuIEZpeGVkIFRhcmdldCBWYWx1ZSBmb3IgdGhlIGRhdGFwb2ludHNcblx0QEV2ZW50SGFuZGxlclxuXHRvbkJlZm9yZUV4cG9ydChvRXZlbnQ6IFVJNUV2ZW50KSB7XG5cdFx0Y29uc3QgaXNTcGxpdE1vZGUgPSBvRXZlbnQuZ2V0UGFyYW1ldGVycygpLnVzZXJFeHBvcnRTZXR0aW5ncy5zcGxpdENlbGxzLFxuXHRcdFx0aXNSTFRMYW5ndWFnZSA9IHNhcC51aVxuXHRcdFx0XHQuZ2V0Q29yZSgpXG5cdFx0XHRcdC5nZXRDb25maWd1cmF0aW9uKClcblx0XHRcdFx0LmdldFJUTCgpLFxuXHRcdFx0b1RhYmxlQ29udHJvbGxlciA9IG9FdmVudC5nZXRTb3VyY2UoKSxcblx0XHRcdG9FeHBvcnRDb2x1bW5zID0gb0V2ZW50LmdldFBhcmFtZXRlcnMoKS5leHBvcnRTZXR0aW5ncy53b3JrYm9vaz8uY29sdW1ucyxcblx0XHRcdG9UYWJsZUNvbHVtbnMgPSB0aGlzLnRhYmxlRGVmaW5pdGlvbi5jb2x1bW5zO1xuXG5cdFx0VGFibGVBUEkudXBkYXRlRXhwb3J0U2V0dGluZ3Mob0V4cG9ydENvbHVtbnMsIG9UYWJsZUNvbHVtbnMsIG9UYWJsZUNvbnRyb2xsZXIsIGlzU3BsaXRNb2RlLCBpc1JMVExhbmd1YWdlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBIYW5kbGVzIHRoZSBNREMgRGF0YVN0YXRlSW5kaWNhdG9yIHBsdWdpbiB0byBkaXNwbGF5IG1lc3NhZ2VTdHJpcCBvbiBhIHRhYmxlLlxuXHQgKiBAcGFyYW0gb01lc3NhZ2Vcblx0ICogQHBhcmFtIG9UYWJsZVxuXHQgKiBAbmFtZSBkYXRhU3RhdGVGaWx0ZXJcblx0ICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgdG8gcmVuZGVyIHZpc2libGUgdGhlIG1lc3NhZ2VTdHJpcFxuXHQgKi9cblx0c3RhdGljIHNob3VsZEZpbHRlckRhdGFTdGF0ZU1lc3NhZ2Uob01lc3NhZ2U6IGFueSwgb1RhYmxlOiBhbnkpOiBib29sZWFuIHtcblx0XHRsZXQgb1RhYmxlQVBJID0gb1RhYmxlLmdldFBhcmVudCgpO1xuXHRcdHdoaWxlICghb1RhYmxlQVBJLmlzQShcInNhcC5mZS5tYWNyb3MuVGFibGVBUElcIikpIHtcblx0XHRcdG9UYWJsZUFQSSA9IG9UYWJsZUFQSS5nZXRQYXJlbnQoKTtcblx0XHR9XG5cdFx0cmV0dXJuIG9UYWJsZUFQSS50YWJsZURlZmluaXRpb24uZW5hYmxlRGF0YVN0YXRlRmlsdGVyO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoaXMgZXZlbnQgaGFuZGxlcyB0aGUgRGF0YVN0YXRlIG9mIHRoZSBEYXRhU3RhdGVJbmRpY2F0b3IgcGx1Z2luIGZyb20gTURDIG9uIGEgdGFibGUuXG5cdCAqIEl0J3MgZmlyZWQgd2hlbiBuZXcgZXJyb3IgbWVzc2FnZXMgYXJlIHNlbnQgZnJvbSB0aGUgYmFja2VuZCB0byB1cGRhdGUgcm93IGhpZ2hsaWdodGluZy5cblx0ICpcblx0ICogQG5hbWUgb25EYXRhU3RhdGVDaGFuZ2Vcblx0ICogQHBhcmFtIHtvYmplY3R9IG9FdmVudCBFdmVudCBvYmplY3Rcblx0ICovXG5cdEBFdmVudEhhbmRsZXJcblx0b25EYXRhU3RhdGVDaGFuZ2Uob0V2ZW50OiBVSTVFdmVudCkge1xuXHRcdGNvbnN0IG9EYXRhU3RhdGVJbmRpY2F0b3IgPSBvRXZlbnQuZ2V0U291cmNlKCk7XG5cdFx0Y29uc3QgYUZpbHRlcmVkTWVzc2FnZXMgPSBvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZmlsdGVyZWRNZXNzYWdlc1wiKTtcblx0XHRpZiAoYUZpbHRlcmVkTWVzc2FnZXMpIHtcblx0XHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsID0gb0RhdGFTdGF0ZUluZGljYXRvci5nZXRNb2RlbChcImludGVybmFsXCIpO1xuXHRcdFx0b0ludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoXCJmaWx0ZXJlZE1lc3NhZ2VzXCIsIGFGaWx0ZXJlZE1lc3NhZ2VzLCBvRGF0YVN0YXRlSW5kaWNhdG9yLmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikpO1xuXHRcdH1cblx0fVxuXG5cdHN0YXRpYyB1cGRhdGVFeHBvcnRTZXR0aW5ncyhcblx0XHRvRXhwb3J0Q29sdW1uczogYW55LFxuXHRcdG9Db2x1bW5zOiBUYWJsZUNvbHVtbltdLFxuXHRcdG9UYWJsZUNvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyLFxuXHRcdGlzU3BsaXRNb2RlOiBib29sZWFuLFxuXHRcdGlzUkxUTGFuZ3VhZ2U6IGJvb2xlYW5cblx0KTogYW55IHtcblx0XHRvRXhwb3J0Q29sdW1ucy5mb3JFYWNoKChvQ29sdW1uRXhwb3J0OiBhbnkpID0+IHtcblx0XHRcdGxldCBhRXhwb3J0TGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xuXHRcdFx0b0NvbHVtbnM/LmZvckVhY2goY29sdW1uID0+IHtcblx0XHRcdFx0Y29uc3Qgb0NvbHVtbiA9IGNvbHVtbiBhcyBBbm5vdGF0aW9uVGFibGVDb2x1bW47XG5cdFx0XHRcdGlmIChpc1NwbGl0TW9kZSkge1xuXHRcdFx0XHRcdC8vIGFFeHBvcnRMYWJlbHMgd2lsbCBjb250YWluIGxhYmVscyBmcm9tIGEgRmllbGRHcm91cCwgYSB0ZXh0IGFubm90YXRpb24gYW5kIGEgRGF0YVBvaW50XG5cdFx0XHRcdFx0Ly8gVGhlc2UgbGFiZWxzIHdpbGwgYmUgdXNlZCBmb3IgY2hpbGQgcHJvcGVydGllcyAoc2ltcGxlIHByb3BlcnRpZXMpIGZyb20gY29tcGxleFByb3BlcnR5XG5cdFx0XHRcdFx0Ly8gVW5pdC9jdXJyZW5jeSBwcm9wZXJ0aWVzIHdpbGwgYmUgZGlzbWlzcyBhcyBpdCBjb3VsZCBiZSB1c2VkIGluIHNldmVyYWwgZGF0YWZpZWxkcy5cblx0XHRcdFx0XHRjb25zdCBpc1VuaXQgPSBvQ29sdW1ucy5zb21lKGNvbHVtbiA9PiAoY29sdW1uIGFzIEFubm90YXRpb25UYWJsZUNvbHVtbikudW5pdCA9PT0gb0NvbHVtbkV4cG9ydC5wcm9wZXJ0eSk7XG5cdFx0XHRcdFx0Ly8gQ3JlYXRlIEV4cG9ydGluZyBsYWJlbHMgYXJyYXlcblx0XHRcdFx0XHRjb25zdCBGaWVsZEdyb3VwTGFiZWwgPSBUYWJsZUFQSS5fZ2V0RmllbGRHcm91cEV4cG9ydExhYmVsKG9Db2x1bW5FeHBvcnQsIG9Db2x1bW4sIG9UYWJsZUNvbnRyb2xsZXIpO1xuXHRcdFx0XHRcdGlmIChGaWVsZEdyb3VwTGFiZWwpIHtcblx0XHRcdFx0XHRcdGFFeHBvcnRMYWJlbHMudW5zaGlmdChGaWVsZEdyb3VwTGFiZWwpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvLyBGb3IgYSB0ZXh0IGFubm90YXRpb24sIGV4cG9ydCBsYWJlbCB0ZW1wbGF0ZSB1c2VkIGlzIDx2YWx1ZT4gLSA8ZGVzY3JpcHRpb24+IGFuZCBmb3IgYSBEYXRhUG9pbnQgPGRhdGFwb2ludFZhbHVlPiAtIDxUYXJnZXRWYWx1ZT4uXG5cdFx0XHRcdFx0Ly8gSW4gYm90aCBjYXNlcyBpbnRlcm5hdGlvbmFsaXphdGlvbiBpcyBuZWVkZWRcblx0XHRcdFx0XHRjb25zdCBkYXRhRmllbGREZXNjcmlwdGlvbkxhYmVsID0gVGFibGVBUEkuX2dldERhdGFGaWVsZERlc2NyaXB0aW9uTGFiZWwoXG5cdFx0XHRcdFx0XHRvQ29sdW1uRXhwb3J0LFxuXHRcdFx0XHRcdFx0b0NvbHVtbixcblx0XHRcdFx0XHRcdG9UYWJsZUNvbnRyb2xsZXIsXG5cdFx0XHRcdFx0XHRpc1VuaXRcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGlmIChkYXRhRmllbGREZXNjcmlwdGlvbkxhYmVsKSB7XG5cdFx0XHRcdFx0XHRhRXhwb3J0TGFiZWxzLnVuc2hpZnQoZGF0YUZpZWxkRGVzY3JpcHRpb25MYWJlbCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly9BZGQgVGFyZ2V0VmFsdWUgb24gZHVtbXkgY3JlYXRlZCBwcm9wZXJ0eSB3aGVuICBleHBvcnRpbmcgb24gc3BsaXQgbW9kZVxuXHRcdFx0XHRcdGlmIChvQ29sdW1uLmlzRGF0YVBvaW50RmFrZVRhcmdldFByb3BlcnR5ICYmIG9Db2x1bW4ucmVsYXRpdmVQYXRoID09PSBvQ29sdW1uRXhwb3J0LnByb3BlcnR5KSB7XG5cdFx0XHRcdFx0XHRvQ29sdW1uRXhwb3J0LnByb3BlcnR5ID0gW29Db2x1bW5FeHBvcnQucHJvcGVydHldO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHQvL01vZGlmeSBleHBvcnRlZCB2YWx1ZSB3aGVuIHVzaW5nIENvbW11bmljYXRpb24uQ29udGFjdCBkYXRhRmllbGRGb3JBbm5vdGF0aW9uXG5cdFx0XHRcdC8vY29udGFjdD5mbiBwcm9wZXJ0eSBzaG91bGQgYmUgZXhwb3J0ZWRcblx0XHRcdFx0aWYgKG9Db2x1bW4uZXhwb3J0Q29udGFjdFByb3BlcnR5ICYmIGNvbHVtbi5wcm9wZXJ0eUluZm9zKSB7XG5cdFx0XHRcdFx0aWYgKGNvbHVtbi5wcm9wZXJ0eUluZm9zPy5sZW5ndGggPT09IDEgJiYgY29sdW1uLnByb3BlcnR5SW5mb3M/LnRvU3RyaW5nKCkgPT09IG9Db2x1bW5FeHBvcnQucHJvcGVydHkudG9TdHJpbmcoKSkge1xuXHRcdFx0XHRcdFx0b0NvbHVtbkV4cG9ydC5wcm9wZXJ0eSA9IG9Db2x1bW4uZXhwb3J0Q29udGFjdFByb3BlcnR5O1xuXHRcdFx0XHRcdFx0b0NvbHVtbkV4cG9ydC5sYWJlbCA9IG9Db2x1bW4ubGFiZWw7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0XHRcdGNvbHVtbi5wcm9wZXJ0eUluZm9zPy5sZW5ndGggPiAxICYmXG5cdFx0XHRcdFx0XHRvQ29sdW1uLnByb3BlcnR5SW5mb3M/LnNvbWUocHJvcCA9PiBvQ29sdW1uRXhwb3J0LnByb3BlcnR5LmluY2x1ZGVzKHByb3ApKSAmJlxuXHRcdFx0XHRcdFx0QXJyYXkuaXNBcnJheShvQ29sdW1uRXhwb3J0LnByb3BlcnR5KVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0b0NvbHVtbkV4cG9ydC5wcm9wZXJ0eSA9IG9Db2x1bW5FeHBvcnQucHJvcGVydHk/Lm1hcCgocHJvcGVydHk6IHN0cmluZykgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gb0NvbHVtbi5wcm9wZXJ0eUluZm9zPy5zb21lKHByb3AgPT4gcHJvcCA9PT0gcHJvcGVydHkpID8gb0NvbHVtbi5leHBvcnRDb250YWN0UHJvcGVydHkgOiBwcm9wZXJ0eTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRhRXhwb3J0TGFiZWxzLnB1c2goRGVsZWdhdGVVdGlsLmdldExvY2FsaXplZFRleHQob0NvbHVtbkV4cG9ydC5sYWJlbCwgb1RhYmxlQ29udHJvbGxlcikpO1xuXHRcdFx0aWYgKGFFeHBvcnRMYWJlbHMubGVuZ3RoID4gMSkge1xuXHRcdFx0XHQvLyBSZW1vdmUgZHVwbGljYXRlIGxhYmVscyAoZS5nLiBGaWVsZEdyb3VwIGxhYmVsIGlzIHRoZSBzYW1lIGFzIHRoZSBsYWJlbCBvZiBvbmUgb2YgdGhlIHByb3BlcnRpZXMpXG5cdFx0XHRcdGFFeHBvcnRMYWJlbHMgPSBhRXhwb3J0TGFiZWxzLmZpbHRlcihmdW5jdGlvbihsYWJlbCwgaW5kZXgpIHtcblx0XHRcdFx0XHRpZiAoYUV4cG9ydExhYmVscy5pbmRleE9mKGxhYmVsKSA9PSBpbmRleCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGxhYmVsO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHQvLyBDaGVjayBpZiBhIFJUTCBsYW5ndWFnZSBpZiB1c2VkIGFuZCBpZiBzbyB3ZSBuZWVkIHRvIHJldmVyc2UgbGFiZWxzXG5cdFx0XHRpZiAoaXNSTFRMYW5ndWFnZSkge1xuXHRcdFx0XHRhRXhwb3J0TGFiZWxzLnJldmVyc2UoKTtcblx0XHRcdH1cblx0XHRcdG9Db2x1bW5FeHBvcnQubGFiZWwgPSBhRXhwb3J0TGFiZWxzLmpvaW4oXCIgLSBcIik7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIG9FeHBvcnRDb2x1bW5zO1xuXHR9XG5cblx0c3RhdGljIF9nZXRGaWVsZEdyb3VwRXhwb3J0TGFiZWwob0NvbHVtbkV4cG9ydDogYW55LCBvQ29sdW1uOiBBbm5vdGF0aW9uVGFibGVDb2x1bW4sIG9UYWJsZUNvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyKSB7XG5cdFx0aWYgKFxuXHRcdFx0KG9Db2x1bW5FeHBvcnQuY29sdW1uSWQuaW5kZXhPZihcIjo6RmllbGRHcm91cDo6XCIpICE9PSAtMSB8fFxuXHRcdFx0XHQob0NvbHVtbi5leHBvcnRTZXR0aW5ncz8uZmllbGRMYWJlbCAmJiBvQ29sdW1uRXhwb3J0LmNvbHVtbklkLmluZGV4T2YoXCJfX2NvbHVtblwiKSAhPT0gLTEpKSAmJlxuXHRcdFx0KG9Db2x1bW4ucHJvcGVydHlJbmZvcz8uaW5jbHVkZXMob0NvbHVtbkV4cG9ydC5wcm9wZXJ0eSkgfHxcblx0XHRcdFx0b0NvbHVtbi5wcm9wZXJ0eUluZm9zPy5pbmNsdWRlcyhcIlByb3BlcnR5OjpcIiArIG9Db2x1bW5FeHBvcnQucHJvcGVydHkpKVxuXHRcdCkge1xuXHRcdFx0Y29uc3QgbGFiZWwgPSBvQ29sdW1uLmV4cG9ydFNldHRpbmdzPy5maWVsZExhYmVsIHx8IG9Db2x1bW4ubGFiZWw7XG5cdFx0XHRyZXR1cm4gRGVsZWdhdGVVdGlsLmdldExvY2FsaXplZFRleHQobGFiZWwgYXMgc3RyaW5nLCBvVGFibGVDb250cm9sbGVyKTtcblx0XHR9XG5cdH1cblxuXHRzdGF0aWMgX2dldERhdGFGaWVsZERlc2NyaXB0aW9uTGFiZWwoXG5cdFx0b0NvbHVtbkV4cG9ydDogYW55LFxuXHRcdG9Db2x1bW46IEFubm90YXRpb25UYWJsZUNvbHVtbixcblx0XHRvVGFibGVDb250cm9sbGVyOiBQYWdlQ29udHJvbGxlcixcblx0XHRpc1VuaXQ6IGJvb2xlYW5cblx0KSB7XG5cdFx0aWYgKFxuXHRcdFx0b0NvbHVtbi5wcm9wZXJ0eUluZm9zICYmXG5cdFx0XHRvQ29sdW1uLnByb3BlcnR5SW5mb3M/Lmxlbmd0aCA+IDEgJiZcblx0XHRcdCFpc1VuaXQgJiZcblx0XHRcdChvQ29sdW1uLnByb3BlcnR5SW5mb3M/LmluY2x1ZGVzKG9Db2x1bW5FeHBvcnQucHJvcGVydHkpIHx8XG5cdFx0XHRcdG9Db2x1bW4ucHJvcGVydHlJbmZvcz8uaW5jbHVkZXMoXCJQcm9wZXJ0eTo6XCIgKyBvQ29sdW1uRXhwb3J0LnByb3BlcnR5KSkgJiZcblx0XHRcdG9Db2x1bW4ucmVsYXRpdmVQYXRoPy5pbmRleE9mKFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkZpZWxkR3JvdXBcIikgPT09IC0xXG5cdFx0KSB7XG5cdFx0XHRyZXR1cm4gRGVsZWdhdGVVdGlsLmdldExvY2FsaXplZFRleHQob0NvbHVtbi5sYWJlbCBhcyBzdHJpbmcsIG9UYWJsZUNvbnRyb2xsZXIpO1xuXHRcdH1cblx0fVxuXHRARXZlbnRIYW5kbGVyXG5cdG9uTWFzc0VkaXRCdXR0b25QcmVzc2VkKG9FdmVudDogVUk1RXZlbnQsIFBhZ2VDb250cm9sbGVyOiBQYWdlQ29udHJvbGxlcikge1xuXHRcdGNvbnN0IG9UYWJsZSA9IHRoaXMuY29udGVudDtcblx0XHRNYXNzRWRpdEhhbmRsZXIub3Blbk1hc3NFZGl0RGlhbG9nKG9UYWJsZSwgUGFnZUNvbnRyb2xsZXIpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlQVBJO1xuIl19
|
|
479
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYmxlQVBJLnRzIl0sIm5hbWVzIjpbIlRhYmxlQVBJIiwiQVBJQ2xhc3MiLCJNYWNyb0NvbnRleHQiLCJQcm9wZXJ0eSIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJvRXZlbnQiLCJvQ29udHJvbGxlciIsIm9Db250ZXh0IiwibVBhcmFtZXRlcnMiLCJpc0EiLCJnZXRQcm9wZXJ0eSIsIl9yb3V0aW5nIiwibmF2aWdhdGVGb3J3YXJkVG9Db250ZXh0IiwiZ2V0UGFyYW1ldGVyIiwiZ2V0Q29udHJvbGxlciIsIm1lc3NhZ2VIYW5kbGVyIiwic2hvd01lc3NhZ2VEaWFsb2ciLCJ0YWJsZURlZmluaXRpb24iLCJjb250cm9sIiwiZW5hYmxlUGFzdGUiLCJnZXRNb2RlbCIsImFSYXdQYXN0ZWREYXRhIiwib1RhYmxlIiwiZ2V0U291cmNlIiwiYlBhc3RlRW5hYmxlZCIsImRhdGEiLCJvUmVzb3VyY2VNb2RlbCIsIlBhc3RlSGVscGVyIiwicGFyc2VEYXRhRm9yVGFibGVQYXN0ZSIsInRoZW4iLCJhUGFyc2VkRGF0YSIsImxlbmd0aCIsIl9lZGl0RmxvdyIsImNyZWF0ZU11bHRpcGxlRG9jdW1lbnRzIiwiZ2V0Um93QmluZGluZyIsImNyZWF0ZUF0RW5kIiwiY2F0Y2giLCJvRXJyb3IiLCJMb2ciLCJlcnJvciIsInNhcCIsInVpIiwiZ2V0Q29yZSIsImdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZSIsIk1lc3NhZ2VCb3giLCJnZXRUZXh0IiwidGl0bGUiLCJzRGV2aWNlT3MiLCJEZXZpY2UiLCJvcyIsIm5hbWUiLCJzRGV2aWNlU3lzdGVtIiwic3lzdGVtIiwic01lc3NhZ2VPblBhc3RlQnV0dG9uIiwicGhvbmUiLCJ0YWJsZXQiLCJjb21iaSIsImRlc2t0b3AiLCJpbmZvcm1hdGlvbiIsIm9uQ2xvc2UiLCJjb250ZW50IiwiZ2V0QWdncmVnYXRpb24iLCJhcHBseUZvY3VzSW5mbyIsInByZXZlbnRTY3JvbGwiLCJpc1NwbGl0TW9kZSIsImdldFBhcmFtZXRlcnMiLCJ1c2VyRXhwb3J0U2V0dGluZ3MiLCJzcGxpdENlbGxzIiwiaXNSTFRMYW5ndWFnZSIsImdldENvbmZpZ3VyYXRpb24iLCJnZXRSVEwiLCJvVGFibGVDb250cm9sbGVyIiwib0V4cG9ydFNldHRpbmdzIiwiZXhwb3J0U2V0dGluZ3MiLCJvVGFibGVDb2x1bW5zIiwiY29sdW1ucyIsInVwZGF0ZUV4cG9ydFNldHRpbmdzIiwib0RhdGFTdGF0ZUluZGljYXRvciIsImFGaWx0ZXJlZE1lc3NhZ2VzIiwib0ludGVybmFsTW9kZWwiLCJzZXRQcm9wZXJ0eSIsImdldEJpbmRpbmdDb250ZXh0IiwiUGFnZUNvbnRyb2xsZXIiLCJNYXNzRWRpdEhhbmRsZXIiLCJvcGVuTWFzc0VkaXREaWFsb2ciLCJvTWVzc2FnZSIsIm9UYWJsZUFQSSIsImdldFBhcmVudCIsImVuYWJsZURhdGFTdGF0ZUZpbHRlciIsIm9Db2x1bW5zIiwiZGF0YVNvdXJjZSIsInNpemVMaW1pdCIsIm9FeHBvcnRDb2x1bW5zIiwid29ya2Jvb2siLCJmb3JFYWNoIiwib0NvbHVtbkV4cG9ydCIsImFFeHBvcnRMYWJlbHMiLCJjb2x1bW4iLCJvQ29sdW1uIiwiaXNVbml0Iiwic29tZSIsInVuaXQiLCJwcm9wZXJ0eSIsIkZpZWxkR3JvdXBMYWJlbCIsIl9nZXRGaWVsZEdyb3VwRXhwb3J0TGFiZWwiLCJ1bnNoaWZ0IiwiZGF0YUZpZWxkRGVzY3JpcHRpb25MYWJlbCIsIl9nZXREYXRhRmllbGREZXNjcmlwdGlvbkxhYmVsIiwiaXNEYXRhUG9pbnRGYWtlVGFyZ2V0UHJvcGVydHkiLCJyZWxhdGl2ZVBhdGgiLCJleHBvcnRDb250YWN0UHJvcGVydHkiLCJwcm9wZXJ0eUluZm9zIiwidG9TdHJpbmciLCJsYWJlbCIsInByb3AiLCJpbmNsdWRlcyIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsInB1c2giLCJEZWxlZ2F0ZVV0aWwiLCJnZXRMb2NhbGl6ZWRUZXh0IiwiZmlsdGVyIiwiaW5kZXgiLCJpbmRleE9mIiwicmV2ZXJzZSIsImpvaW4iLCJj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QUFiLE9BQU8sQ0FBQ2EsYUFBUixrRkFBdUJoRixNQUF2QixJQUFnQyxDQURoQyxJQUVBLENBQUNvRSxNQUZELEtBR0MsMEJBQUFELE9BQU8sQ0FBQ2EsYUFBUiwwRUFBdUJJLFFBQXZCLENBQWdDcEIsYUFBYSxDQUFDTyxRQUE5QywrQkFDQUosT0FBTyxDQUFDYSxhQURSLG1EQUNBLHVCQUF1QkksUUFBdkIsQ0FBZ0MsZUFBZXBCLGFBQWEsQ0FBQ08sUUFBN0QsQ0FKRCxLQUtBLDBCQUFBSixPQUFPLENBQUNXLFlBQVIsZ0ZBQXNCZSxPQUF0QixDQUE4Qix3Q0FBOUIsT0FBNEUsQ0FBQyxDQU45RSxFQU9FO0FBQ0QsaUJBQU9KLFlBQVksQ0FBQ0MsZ0JBQWIsQ0FBOEJ2QixPQUFPLENBQUNlLEtBQXRDLEVBQXVEMUMsZ0JBQXZELENBQVA7QUFDQTtBQUNEOzs7O0lBaFlxQjBELFE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnRkF5R3JCQyxLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt1RUF1Q0FDLFksc0tBZUFBLFksOEpBTUFBLFksNEpBbUNBQSxZLG1LQWlDQUEsWSxnS0FvQ0FBLFkseUtBb0hBQSxZO1NBT2FwSSxRIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUElDbGFzcywgRXZlbnRIYW5kbGVyLCBNYWNyb0NvbnRleHQsIFByb3BlcnR5LCBFdmVudCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgUGFzdGVIZWxwZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVyc1wiO1xuaW1wb3J0IHsgTWVzc2FnZUJveCB9IGZyb20gXCJzYXAvbVwiO1xuaW1wb3J0IHsgRGV2aWNlIH0gZnJvbSBcInNhcC91aVwiO1xuaW1wb3J0IHsgTG9nIH0gZnJvbSBcInNhcC9iYXNlXCI7XG5pbXBvcnQgeyBQYWdlQ29udHJvbGxlciB9IGZyb20gXCJzYXAvZmUvY29yZVwiO1xuaW1wb3J0IHsgQW5ub3RhdGlvblRhYmxlQ29sdW1uLCBUYWJsZUNvbHVtbiwgVGFibGVWaXN1YWxpemF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL1RhYmxlXCI7XG5pbXBvcnQgTWFjcm9BUEkgZnJvbSBcIi4vTWFjcm9BUElcIjtcbmltcG9ydCB7IE1hc3NFZGl0SGFuZGxlciB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL21hc3NlZGl0XCI7XG5pbXBvcnQgeyBEZWxlZ2F0ZVV0aWwgfSBmcm9tIFwic2FwL2ZlL21hY3Jvc1wiO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjRcIjtcblxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIGEgY3VzdG9tIGFjdGlvbiB0byBiZSB1c2VkIGluc2lkZSB0aGUgdGFibGUgdG9vbGJhclxuICpcbiAqIEBhbGlhcyBzYXAuZmUubWFjcm9zLnRhYmxlLkFjdGlvblxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBBY3Rpb24gPSB7XG5cdC8qKlxuXHQgKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYWN0aW9uXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGtleTogc3RyaW5nO1xuXHQvKipcblx0ICogVGhlIHRleHQgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBmb3IgdGhpcyBhY3Rpb25cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0dGV4dDogc3RyaW5nO1xuXHQvKipcblx0ICogUmVmZXJlbmNlIHRvIHRoZSBrZXkgb2YgYW5vdGhlciBhY3Rpb24gYWxyZWFkeSBkaXNwbGF5ZWQgaW4gdGhlIHRvb2xiYXIgdG8gcHJvcGVybHkgcGxhY2UgdGhpcyBvbmVcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0YW5jaG9yPzogc3RyaW5nO1xuXHQvKipcblx0ICogRGVmaW5lcyB3aGVyZSB0aGlzIGFjdGlvbiBzaG91bGQgYmUgcGxhY2VkIHJlbGF0aXZlIHRvIHRoZSBkZWZpbmVkIGFuY2hvclxuXHQgKlxuXHQgKiBBbGxvd2VkIHZhbHVlcyBhcmUgYEJlZm9yZWAgYW5kIGBBZnRlcmBcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0cGxhY2VtZW50Pzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGNob29zZXMgdGhlIGFjdGlvblxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRwcmVzczogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIGEgY3VzdG9tIGNvbHVtbiB0byBiZSB1c2VkIGluc2lkZSB0aGUgdGFibGUuXG4gKlxuICogVGhlIHRlbXBsYXRlIGZvciB0aGUgY29sdW1uIGhhcyB0byBiZSBwcm92aWRlZCBhcyB0aGUgZGVmYXVsdCBhZ2dyZWdhdGlvblxuICpcbiAqIEBhbGlhcyBzYXAuZmUubWFjcm9zLnRhYmxlLkNvbHVtblxuICogQHB1YmxpY1xuICogQGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgdHlwZSBDb2x1bW4gPSB7XG5cdC8qKlxuXHQgKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29sdW1uXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGtleTogc3RyaW5nO1xuXHQvKipcblx0ICogVGhlIHRleHQgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBmb3IgdGhpcyBjb2x1bW4gaGVhZGVyXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGhlYWRlcjogc3RyaW5nO1xuXHQvKipcblx0ICogUmVmZXJlbmNlIHRvIHRoZSBrZXkgb2YgYW5vdGhlciBjb2x1bW4gYWxyZWFkeSBkaXNwbGF5ZWQgaW4gdGhlIHRhYmxlIHRvIHByb3Blcmx5IHBsYWNlIHRoaXMgb25lXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGFuY2hvcj86IHN0cmluZztcblx0LyoqXG5cdCAqIERlZmluZXMgd2hlcmUgdGhpcyBjb2x1bW4gc2hvdWxkIGJlIHBsYWNlZCByZWxhdGl2ZSB0byB0aGUgZGVmaW5lZCBhbmNob3Jcblx0ICpcblx0ICogQWxsb3dlZCB2YWx1ZXMgYXJlIGBCZWZvcmVgIGFuZCBgQWZ0ZXJgXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdHBsYWNlbWVudD86IHN0cmluZztcbn07XG5cbi8qKlxuICogQnVpbGRpbmcgYmxvY2sgdXNlZCB0byBjcmVhdGUgYSB0YWJsZSBiYXNlZCBvbiB0aGUgbWV0YWRhdGEgcHJvdmlkZWQgYnkgT0RhdGEgVjQuXG4gKiA8YnI+XG4gKiBVc3VhbGx5LCBhIExpbmVJdGVtIG9yIFByZXNlbnRhdGlvblZhcmlhbnQgYW5ub3RhdGlvbiBpcyBleHBlY3RlZCwgYnV0IHRoZSBUYWJsZSBidWlsZGluZyBibG9jayBjYW4gYWxzbyBiZSB1c2VkIHRvIGRpc3BsYXkgYW4gRW50aXR5U2V0LlxuICpcbiAqXG4gKiBVc2FnZSBleGFtcGxlOlxuICogPHByZT5cbiAqICZsdDttYWNybzpUYWJsZSBpZD1cIk15VGFibGVcIiBtZXRhUGF0aD1cIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbVwiIC8mZ3Q7XG4gKiA8L3ByZT5cbiAqXG4gKiBAYWxpYXMgc2FwLmZlLm1hY3Jvcy5UYWJsZVxuICogQHB1YmxpY1xuICovXG5AQVBJQ2xhc3MoXCJzYXAuZmUubWFjcm9zLlRhYmxlQVBJXCIpXG5jbGFzcyBUYWJsZUFQSSBleHRlbmRzIE1hY3JvQVBJIHtcblx0QE1hY3JvQ29udGV4dCgpXG5cdHRhYmxlRGVmaW5pdGlvbiE6IFRhYmxlVmlzdWFsaXphdGlvbjtcblxuXHQvKipcblx0ICogQW4gZXhwcmVzc2lvbiB0aGF0IGFsbG93cyB5b3UgdG8gY29udHJvbCB0aGUgJ3JlYWQtb25seScgc3RhdGUgb2YgdGhlIHRhYmxlLlxuXHQgKlxuXHQgKiBJZiB5b3UgZG8gbm90IHNldCBhbnkgZXhwcmVzc2lvbiwgU0FQIEZpb3JpIGVsZW1lbnRzIGhvb2tzIGludG8gdGhlIHN0YW5kYXJkIGxpZmVjeWNsZSB0byBkZXRlcm1pbmUgdGhlIGN1cnJlbnQgc3RhdGUuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdHJlYWRPbmx5ITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIHRhYmxlIGNvbnRyb2wuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0aWQhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIEFuIGV4cHJlc3Npb24gdGhhdCBhbGxvd3MgeW91IHRvIGNvbnRyb2wgdGhlICdidXN5JyBzdGF0ZSBvZiB0aGUgdGFibGUuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGJ1c3khOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSB0eXBlIG9mIHRhYmxlIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IHRoZSBtYWNybyB0byByZW5kZXIgdGhlIGRhdGEuXG5cdCAqXG5cdCAqIEFsbG93ZWQgdmFsdWVzIGFyZSBgR3JpZFRhYmxlYCBhbmQgYFJlc3BvbnNpdmVUYWJsZWBcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QFByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiwgZGVmYXVsdFZhbHVlOiBcIlJlc3BvbnNpdmVUYWJsZVwiIH0pXG5cdHR5cGUhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIENvbnRyb2xzIGlmIHRoZSBleHBvcnQgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdGFibGUgaXMgZW5hYmxlZCBvciBub3QuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IHRydWUgfSlcblx0ZW5hYmxlRXhwb3J0ITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogQ29udHJvbHMgaWYgdGhlIHBhc3RlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHRhYmxlIGlzIGVuYWJsZWQgb3Igbm90LlxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAUHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRlbmFibGVQYXN0ZSE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIENvbnRyb2xzIHdoZXRoZXIgdGhlIHRhYmxlIGNhbiBiZSBvcGVuZWQgaW4gZnVsbHNjcmVlbiBtb2RlIG9yIG5vdC5cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QFByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0ZW5hYmxlRnVsbFNjcmVlbiE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIHNlbGVjdGlvbiBtb2RlIHRvIGJlIHVzZWQgYnkgdGhlIHRhYmxlLlxuXHQgKlxuXHQgKiBBbGxvd2VkIHZhbHVlcyBhcmUgYE5vbmVgLCBgU2luZ2xlYCwgYE11bHRpYCBvciBgQXV0b2Bcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QFByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRzZWxlY3Rpb25Nb2RlITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBTcGVjaWZpZXMgdGhlIGhlYWRlciB0ZXh0IHRoYXQgaXMgc2hvd24gaW4gdGhlIHRhYmxlLlxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAUHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGhlYWRlciE6IHN0cmluZztcblxuXHQvKipcblx0ICogU3BlY2lmaWVzIHRoZSBoZWFkZXIgdGV4dCB0aGF0IGlzIHNob3duIGluIHRoZSB0YWJsZS5cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QFByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0ZW5hYmxlQXV0b0NvbHVtbldpZHRoITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogQ29udHJvbHMgaWYgdGhlIGhlYWRlciB0ZXh0IHNob3VsZCBiZSBzaG93biBvciBub3QuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IHRydWUgfSlcblx0aGVhZGVyVmlzaWJsZSE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIEFuIGV2ZW50IHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGNob29zZXMgYSByb3c7IHRoZSBldmVudCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB3aGljaCByb3cgd2FzIGNob3Nlbi5cblx0ICpcblx0ICogWW91IGNhbiBzZXQgdGhpcyBpbiBvcmRlciB0byBoYW5kbGUgdGhlIG5hdmlnYXRpb24gbWFudWFsbHkuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBFdmVudFxuXHRyb3dQcmVzcyE6IEZ1bmN0aW9uO1xuXG5cdC8qKlxuXHQgKiBDb250cm9scyB3aGljaCBvcHRpb25zIHNob3VsZCBiZSBlbmFibGVkIGZvciB0aGUgdGFibGUgcGVyc29uYWxpemF0aW9uIGRpYWxvZy5cblx0ICpcblx0ICogSWYgaXQgaXMgc2V0IHRvIGB0cnVlYCwgYWxsIHBvc3NpYmxlIG9wdGlvbnMgZm9yIHRoaXMga2luZCBvZiB0YWJsZSBhcmUgZW5hYmxlZC48YnIvPlxuXHQgKiBJZiBpdCBpcyBzZXQgdG8gYGZhbHNlYCwgcGVyc29uYWxpemF0aW9uIGlzIGRpc2FibGVkLjxici8+XG5cdCAqPGJyLz5cblx0ICogWW91IGNhbiBhbHNvIHByb3ZpZGUgYSBtb3JlIGdyYW51bGFyIGNvbnRyb2wgZm9yIHRoZSBwZXJzb25hbGl6YXRpb24gYnkgcHJvdmlkaW5nIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgd2l0aCB0aGUgb3B0aW9ucyB5b3Ugd2FudCB0byBiZSBhdmFpbGFibGUuPGJyLz5cblx0ICogQXZhaWxhYmxlIG9wdGlvbnMgYXJlOjxici8+XG5cdCAqICAtIFNvcnQ8YnIvPlxuXHQgKiAgLSBDb2x1bW48YnIvPlxuXHQgKiAgLSBGaWx0ZXI8YnIvPlxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAUHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW58c3RyaW5nXCIsIGRlZmF1bHRWYWx1ZTogdHJ1ZSB9KVxuXHRwZXJzb25hbGl6YXRpb24hOiBib29sZWFuIHwgc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBDb250cm9scyB0aGUga2luZCBvZiB2YXJpYW50IG1hbmFnZW1lbnQgdGhhdCBzaG91bGQgYmUgZW5hYmxlZCBmb3IgdGhlIHRhYmxlLlxuXHQgKlxuXHQgKiBBbGxvd2VkIHZhbHVlcyBhcmUgYFBhZ2VgLCBgQ29udHJvbGAgYW5kIGBOb25lYC48YnIvPlxuXHQgKiBJZiB0aGUgdGFibGUgaXMgdXNlZCB3aXRoaW4gYSBTQVAgRmlvcmkgZWxlbWVudHMgdGVtcGxhdGUsIHRoZSBkZWZhdWx0IHZhbHVlIHdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgY3VycmVudCBwYWdlIHZhcmlhbnQgbWFuYWdlbWVudC48YnIvPlxuXHQgKiBPdGhlcndpc2UgaXQncyBgTm9uZWAuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0dmFyaWFudE1hbmFnZW1lbnQhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIENvbnRyb2xzIGlmIHRoZSBkYXRhU3RhdGVJbmRpY2F0b3IgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdGFibGUgaXMgZW5hYmxlZCBvciBub3QuXG5cdCAqXG5cdCAqL1xuXHRAUHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHRlbmFibGVEYXRhU3RhdGVGaWx0ZXIhOiBib29sZWFuO1xuXG5cdEBFdmVudEhhbmRsZXJcblx0b25UYWJsZVJvd1ByZXNzKG9FdmVudDogVUk1RXZlbnQsIG9Db250cm9sbGVyOiBQYWdlQ29udHJvbGxlciwgb0NvbnRleHQ6IENvbnRleHQsIG1QYXJhbWV0ZXJzOiBhbnkpIHtcblx0XHQvLyBJbiB0aGUgY2FzZSBvZiBhbiBhbmFseXRpY2FsIHRhYmxlLCBpZiB3ZSdyZSB0cnlpbmcgdG8gbmF2aWdhdGUgdG8gYSBjb250ZXh0IGNvcnJlc3BvbmRpbmcgdG8gYSB2aXN1YWwgZ3JvdXAgb3IgZ3JhbmQgdG90YWxcblx0XHQvLyAtLT4gQ2FuY2VsIG5hdmlnYXRpb25cblx0XHRpZiAoXG5cdFx0XHRvQ29udGV4dCAmJlxuXHRcdFx0b0NvbnRleHQuaXNBKFwic2FwLnVpLm1vZGVsLm9kYXRhLnY0LkNvbnRleHRcIikgJiZcblx0XHRcdHR5cGVvZiBvQ29udGV4dC5nZXRQcm9wZXJ0eShcIkAkdWk1Lm5vZGUuaXNFeHBhbmRlZFwiKSA9PT0gXCJib29sZWFuXCJcblx0XHQpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b0NvbnRyb2xsZXIuX3JvdXRpbmcubmF2aWdhdGVGb3J3YXJkVG9Db250ZXh0KG9Db250ZXh0LCBtUGFyYW1ldGVycyk7XG5cdFx0fVxuXHR9XG5cblx0QEV2ZW50SGFuZGxlclxuXHRvbkludGVybmFsRGF0YVJlY2VpdmVkKG9FdmVudDogVUk1RXZlbnQpIHtcblx0XHRpZiAob0V2ZW50LmdldFBhcmFtZXRlcihcImVycm9yXCIpKSB7XG5cdFx0XHR0aGlzLmdldENvbnRyb2xsZXIoKS5tZXNzYWdlSGFuZGxlci5zaG93TWVzc2FnZURpYWxvZygpO1xuXHRcdH1cblx0fVxuXHRARXZlbnRIYW5kbGVyXG5cdG9uUGFzdGUob0V2ZW50OiBVSTVFdmVudCwgb0NvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyKSB7XG5cdFx0Ly8gSWYgcGFzdGUgaXMgZGlzYWJsZSBvciBpZiB3ZSdyZSBub3QgaW4gZWRpdCBtb2RlLCB3ZSBjYW4ndCBwYXN0ZSBhbnl0aGluZ1xuXHRcdGlmICghdGhpcy50YWJsZURlZmluaXRpb24uY29udHJvbC5lbmFibGVQYXN0ZSB8fCAhdGhpcy5nZXRNb2RlbChcInVpXCIpLmdldFByb3BlcnR5KFwiL2lzRWRpdGFibGVcIikpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBhUmF3UGFzdGVkRGF0YSA9IG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJkYXRhXCIpLFxuXHRcdFx0b1RhYmxlID0gb0V2ZW50LmdldFNvdXJjZSgpLFxuXHRcdFx0YlBhc3RlRW5hYmxlZCA9IG9UYWJsZS5kYXRhKClbXCJlbmFibGVQYXN0ZVwiXTtcblx0XHRsZXQgb1Jlc291cmNlTW9kZWw7XG5cblx0XHRpZiAoYlBhc3RlRW5hYmxlZCA9PT0gdHJ1ZSB8fCBiUGFzdGVFbmFibGVkID09PSBcInRydWVcIikge1xuXHRcdFx0UGFzdGVIZWxwZXIucGFyc2VEYXRhRm9yVGFibGVQYXN0ZShhUmF3UGFzdGVkRGF0YSwgb1RhYmxlKVxuXHRcdFx0XHQudGhlbihhUGFyc2VkRGF0YSA9PiB7XG5cdFx0XHRcdFx0aWYgKGFQYXJzZWREYXRhICYmIGFQYXJzZWREYXRhLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdHJldHVybiBvQ29udHJvbGxlci5fZWRpdEZsb3cuY3JlYXRlTXVsdGlwbGVEb2N1bWVudHMoXG5cdFx0XHRcdFx0XHRcdG9UYWJsZS5nZXRSb3dCaW5kaW5nKCksXG5cdFx0XHRcdFx0XHRcdGFQYXJzZWREYXRhLFxuXHRcdFx0XHRcdFx0XHR0aGlzLnRhYmxlRGVmaW5pdGlvbi5jb250cm9sLmNyZWF0ZUF0RW5kLFxuXHRcdFx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdFx0LmNhdGNoKG9FcnJvciA9PiB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgcGFzdGluZyBkYXRhXCIsIG9FcnJvcik7XG5cdFx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvUmVzb3VyY2VNb2RlbCA9IHNhcC51aS5nZXRDb3JlKCkuZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlKFwic2FwLmZlLmNvcmVcIik7XG5cdFx0XHRNZXNzYWdlQm94LmVycm9yKG9SZXNvdXJjZU1vZGVsLmdldFRleHQoXCJUX09QX0NPTlRST0xMRVJfU0FQRkVfUEFTVEVfRElTQUJMRURfTUVTU0FHRVwiKSwge1xuXHRcdFx0XHR0aXRsZTogb1Jlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09NTU9OX1NBUEZFX0VSUk9SXCIpXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRARXZlbnRIYW5kbGVyXG5cdG9uUGFzdGVCdXR0b25QcmVzc2VkKCkge1xuXHRcdGNvbnN0IG9SZXNvdXJjZU1vZGVsID0gc2FwLnVpLmdldENvcmUoKS5nZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUoXCJzYXAuZmUudGVtcGxhdGVzXCIpLFxuXHRcdFx0c0RldmljZU9zID0gRGV2aWNlLm9zLm5hbWUsXG5cdFx0XHRzRGV2aWNlU3lzdGVtID0gRGV2aWNlLnN5c3RlbTtcblx0XHQvLyBXZSBuZWVkIGEgZGVmYXVsdCBpbiBjYXNlIHdlIGZhbGwgdGhyb3VnaCB0aGUgY3JhY2tcblx0XHRsZXQgc01lc3NhZ2VPblBhc3RlQnV0dG9uOiBzdHJpbmcgPSBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9PUF9DT05UUk9MTEVSX1RBQkxFX1BBU1RFX0JVVFRPTl9BQ1RJT05fTUVTU0FHRV9XSU5ET1dTX0RFU0tUT1BcIik7XG5cdFx0Ly8gT24gbW9iaWxlLCB0aGVyZSBpcyBubyBuYXRpdmUgcGFzdGUgdHJpZ2dlcjpcblx0XHRpZiAoc0RldmljZVN5c3RlbS5waG9uZSB8fCAoc0RldmljZVN5c3RlbS50YWJsZXQgJiYgIXNEZXZpY2VTeXN0ZW0uY29tYmkpKSB7XG5cdFx0XHRzTWVzc2FnZU9uUGFzdGVCdXR0b24gPSBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9PUF9DT05UUk9MTEVSX1RBQkxFX1BBU1RFX0JVVFRPTl9BQ1RJT05fTUVTU0FHRV9UT1VDSF9ERVZJQ0VcIik7XG5cdFx0fSBlbHNlIGlmIChzRGV2aWNlU3lzdGVtLmRlc2t0b3ApIHtcblx0XHRcdHN3aXRjaCAoc0RldmljZU9zKSB7XG5cdFx0XHRcdGNhc2UgXCJ3aW5cIjpcblx0XHRcdFx0XHRzTWVzc2FnZU9uUGFzdGVCdXR0b24gPSBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9PUF9DT05UUk9MTEVSX1RBQkxFX1BBU1RFX0JVVFRPTl9BQ1RJT05fTUVTU0FHRV9XSU5ET1dTX0RFU0tUT1BcIik7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgXCJtYWNcIjpcblx0XHRcdFx0XHRzTWVzc2FnZU9uUGFzdGVCdXR0b24gPSBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9PUF9DT05UUk9MTEVSX1RBQkxFX1BBU1RFX0JVVFRPTl9BQ1RJT05fTUVTU0FHRV9JT1NfREVTS1RPUFwiKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdFx0TWVzc2FnZUJveC5pbmZvcm1hdGlvbihzTWVzc2FnZU9uUGFzdGVCdXR0b24sIHtcblx0XHRcdG9uQ2xvc2U6ICgpID0+IHtcblx0XHRcdFx0aWYgKHRoaXMuY29udGVudCkge1xuXHRcdFx0XHRcdC8vIFNldCB0aGUgZm9jdXMgb24gdGhlIGlubmVyIHRhYmxlIHRvIGFsbG93IHBhc3RlXG5cdFx0XHRcdFx0KHRoaXMuY29udGVudC5nZXRBZ2dyZWdhdGlvbihcIl9jb250ZW50XCIpIGFzIGFueSk/LmFwcGx5Rm9jdXNJbmZvKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0Ly8gVGhpcyBldmVudCB3aWxsIGFsbG93IHVzIHRvIGludGVyY2VwdCB0aGUgZXhwb3J0IGJlZm9yZSBpcyB0cmlnZ2VyZWQgdG8gY292ZXIgc3BlY2lmaWMgY2FzZXNcblx0Ly8gdGhhdCBjb3VsZG4ndCBiZSBhZGRyZXNzZWQgb24gdGhlIHByb3BlcnR5SW5mb3MgZm9yIGVhY2ggY29sdW1uLlxuXHQvLyBlLmcuIEZpeGVkIFRhcmdldCBWYWx1ZSBmb3IgdGhlIGRhdGFwb2ludHNcblx0QEV2ZW50SGFuZGxlclxuXHRvbkJlZm9yZUV4cG9ydChvRXZlbnQ6IFVJNUV2ZW50KSB7XG5cdFx0Y29uc3QgaXNTcGxpdE1vZGUgPSBvRXZlbnQuZ2V0UGFyYW1ldGVycygpLnVzZXJFeHBvcnRTZXR0aW5ncy5zcGxpdENlbGxzLFxuXHRcdFx0aXNSTFRMYW5ndWFnZSA9IHNhcC51aVxuXHRcdFx0XHQuZ2V0Q29yZSgpXG5cdFx0XHRcdC5nZXRDb25maWd1cmF0aW9uKClcblx0XHRcdFx0LmdldFJUTCgpLFxuXHRcdFx0b1RhYmxlQ29udHJvbGxlciA9IG9FdmVudC5nZXRTb3VyY2UoKSxcblx0XHRcdG9FeHBvcnRTZXR0aW5ncyA9IG9FdmVudC5nZXRQYXJhbWV0ZXJzKCkuZXhwb3J0U2V0dGluZ3MsXG5cdFx0XHRvVGFibGVDb2x1bW5zID0gdGhpcy50YWJsZURlZmluaXRpb24uY29sdW1ucztcblxuXHRcdFRhYmxlQVBJLnVwZGF0ZUV4cG9ydFNldHRpbmdzKG9FeHBvcnRTZXR0aW5ncywgb1RhYmxlQ29sdW1ucywgb1RhYmxlQ29udHJvbGxlciwgaXNTcGxpdE1vZGUsIGlzUkxUTGFuZ3VhZ2UpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEhhbmRsZXMgdGhlIERhdGFTdGF0ZUluZGljYXRvciBwbHVnaW4gdG8gZGlzcGxheSBtZXNzYWdlU3RyaXAgb24gYSB0YWJsZS5cblx0ICogQHBhcmFtIG9NZXNzYWdlXG5cdCAqIEBwYXJhbSBvVGFibGVcblx0ICogQG5hbWUgZGF0YVN0YXRlRmlsdGVyXG5cdCAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIHRvIHJlbmRlciB2aXNpYmxlIHRoZSBtZXNzYWdlU3RyaXBcblx0ICovXG5cdHN0YXRpYyBzaG91bGRGaWx0ZXJEYXRhU3RhdGVNZXNzYWdlKG9NZXNzYWdlOiBhbnksIG9UYWJsZTogYW55KTogYm9vbGVhbiB7XG5cdFx0bGV0IG9UYWJsZUFQSSA9IG9UYWJsZS5nZXRQYXJlbnQoKTtcblx0XHR3aGlsZSAoIW9UYWJsZUFQSS5pc0EoXCJzYXAuZmUubWFjcm9zLlRhYmxlQVBJXCIpKSB7XG5cdFx0XHRvVGFibGVBUEkgPSBvVGFibGVBUEkuZ2V0UGFyZW50KCk7XG5cdFx0fVxuXHRcdHJldHVybiBvVGFibGVBUEkudGFibGVEZWZpbml0aW9uLmVuYWJsZURhdGFTdGF0ZUZpbHRlcjtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIGV2ZW50IGhhbmRsZXMgdGhlIERhdGFTdGF0ZSBvZiB0aGUgRGF0YVN0YXRlSW5kaWNhdG9yIHBsdWdpbiBmcm9tIE1EQyBvbiBhIHRhYmxlLlxuXHQgKiBJdCdzIGZpcmVkIHdoZW4gbmV3IGVycm9yIG1lc3NhZ2VzIGFyZSBzZW50IGZyb20gdGhlIGJhY2tlbmQgdG8gdXBkYXRlIHJvdyBoaWdobGlnaHRpbmcuXG5cdCAqXG5cdCAqIEBuYW1lIG9uRGF0YVN0YXRlQ2hhbmdlXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBvRXZlbnQgRXZlbnQgb2JqZWN0XG5cdCAqL1xuXHRARXZlbnRIYW5kbGVyXG5cdG9uRGF0YVN0YXRlQ2hhbmdlKG9FdmVudDogVUk1RXZlbnQpIHtcblx0XHRjb25zdCBvRGF0YVN0YXRlSW5kaWNhdG9yID0gb0V2ZW50LmdldFNvdXJjZSgpO1xuXHRcdGNvbnN0IGFGaWx0ZXJlZE1lc3NhZ2VzID0gb0V2ZW50LmdldFBhcmFtZXRlcihcImZpbHRlcmVkTWVzc2FnZXNcIik7XG5cdFx0aWYgKGFGaWx0ZXJlZE1lc3NhZ2VzKSB7XG5cdFx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbCA9IG9EYXRhU3RhdGVJbmRpY2F0b3IuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKTtcblx0XHRcdG9JbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KFwiZmlsdGVyZWRNZXNzYWdlc1wiLCBhRmlsdGVyZWRNZXNzYWdlcywgb0RhdGFTdGF0ZUluZGljYXRvci5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpKTtcblx0XHR9XG5cdH1cblxuXHRzdGF0aWMgdXBkYXRlRXhwb3J0U2V0dGluZ3MoXG5cdFx0b0V4cG9ydFNldHRpbmdzOiBhbnksXG5cdFx0b0NvbHVtbnM6IFRhYmxlQ29sdW1uW10sXG5cdFx0b1RhYmxlQ29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIsXG5cdFx0aXNTcGxpdE1vZGU6IGJvb2xlYW4sXG5cdFx0aXNSTFRMYW5ndWFnZTogYm9vbGVhblxuXHQpOiBhbnkge1xuXHRcdC8vU2V0IHN0YXRpYyBzaXplTGltaXQgZHVyaW5nIGV4cG9ydFxuXHRcdG9FeHBvcnRTZXR0aW5ncy5kYXRhU291cmNlLnNpemVMaW1pdCA9IDEwMDA7XG5cblx0XHRjb25zdCBvRXhwb3J0Q29sdW1ucyA9IG9FeHBvcnRTZXR0aW5ncy53b3JrYm9vaz8uY29sdW1ucztcblx0XHRvRXhwb3J0Q29sdW1ucy5mb3JFYWNoKChvQ29sdW1uRXhwb3J0OiBhbnkpID0+IHtcblx0XHRcdGxldCBhRXhwb3J0TGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xuXHRcdFx0b0NvbHVtbnM/LmZvckVhY2goY29sdW1uID0+IHtcblx0XHRcdFx0Y29uc3Qgb0NvbHVtbiA9IGNvbHVtbiBhcyBBbm5vdGF0aW9uVGFibGVDb2x1bW47XG5cdFx0XHRcdGlmIChpc1NwbGl0TW9kZSkge1xuXHRcdFx0XHRcdC8vIGFFeHBvcnRMYWJlbHMgd2lsbCBjb250YWluIGxhYmVscyBmcm9tIGEgRmllbGRHcm91cCwgYSB0ZXh0IGFubm90YXRpb24gYW5kIGEgRGF0YVBvaW50XG5cdFx0XHRcdFx0Ly8gVGhlc2UgbGFiZWxzIHdpbGwgYmUgdXNlZCBmb3IgY2hpbGQgcHJvcGVydGllcyAoc2ltcGxlIHByb3BlcnRpZXMpIGZyb20gY29tcGxleFByb3BlcnR5XG5cdFx0XHRcdFx0Ly8gVW5pdC9jdXJyZW5jeSBwcm9wZXJ0aWVzIHdpbGwgYmUgZGlzbWlzcyBhcyBpdCBjb3VsZCBiZSB1c2VkIGluIHNldmVyYWwgZGF0YWZpZWxkcy5cblx0XHRcdFx0XHRjb25zdCBpc1VuaXQgPSBvQ29sdW1ucy5zb21lKGNvbHVtbiA9PiAoY29sdW1uIGFzIEFubm90YXRpb25UYWJsZUNvbHVtbikudW5pdCA9PT0gb0NvbHVtbkV4cG9ydC5wcm9wZXJ0eSk7XG5cdFx0XHRcdFx0Ly8gQ3JlYXRlIEV4cG9ydGluZyBsYWJlbHMgYXJyYXlcblx0XHRcdFx0XHRjb25zdCBGaWVsZEdyb3VwTGFiZWwgPSBUYWJsZUFQSS5fZ2V0RmllbGRHcm91cEV4cG9ydExhYmVsKG9Db2x1bW5FeHBvcnQsIG9Db2x1bW4sIG9UYWJsZUNvbnRyb2xsZXIpO1xuXHRcdFx0XHRcdGlmIChGaWVsZEdyb3VwTGFiZWwpIHtcblx0XHRcdFx0XHRcdGFFeHBvcnRMYWJlbHMudW5zaGlmdChGaWVsZEdyb3VwTGFiZWwpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvLyBGb3IgYSB0ZXh0IGFubm90YXRpb24sIGV4cG9ydCBsYWJlbCB0ZW1wbGF0ZSB1c2VkIGlzIDx2YWx1ZT4gLSA8ZGVzY3JpcHRpb24+IGFuZCBmb3IgYSBEYXRhUG9pbnQgPGRhdGFwb2ludFZhbHVlPiAtIDxUYXJnZXRWYWx1ZT4uXG5cdFx0XHRcdFx0Ly8gSW4gYm90aCBjYXNlcyBpbnRlcm5hdGlvbmFsaXphdGlvbiBpcyBuZWVkZWRcblx0XHRcdFx0XHRjb25zdCBkYXRhRmllbGREZXNjcmlwdGlvbkxhYmVsID0gVGFibGVBUEkuX2dldERhdGFGaWVsZERlc2NyaXB0aW9uTGFiZWwoXG5cdFx0XHRcdFx0XHRvQ29sdW1uRXhwb3J0LFxuXHRcdFx0XHRcdFx0b0NvbHVtbixcblx0XHRcdFx0XHRcdG9UYWJsZUNvbnRyb2xsZXIsXG5cdFx0XHRcdFx0XHRpc1VuaXRcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGlmIChkYXRhRmllbGREZXNjcmlwdGlvbkxhYmVsKSB7XG5cdFx0XHRcdFx0XHRhRXhwb3J0TGFiZWxzLnVuc2hpZnQoZGF0YUZpZWxkRGVzY3JpcHRpb25MYWJlbCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly9BZGQgVGFyZ2V0VmFsdWUgb24gZHVtbXkgY3JlYXRlZCBwcm9wZXJ0eSB3aGVuICBleHBvcnRpbmcgb24gc3BsaXQgbW9kZVxuXHRcdFx0XHRcdGlmIChvQ29sdW1uLmlzRGF0YVBvaW50RmFrZVRhcmdldFByb3BlcnR5ICYmIG9Db2x1bW4ucmVsYXRpdmVQYXRoID09PSBvQ29sdW1uRXhwb3J0LnByb3BlcnR5KSB7XG5cdFx0XHRcdFx0XHRvQ29sdW1uRXhwb3J0LnByb3BlcnR5ID0gW29Db2x1bW5FeHBvcnQucHJvcGVydHldO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHQvL01vZGlmeSBleHBvcnRlZCB2YWx1ZSB3aGVuIHVzaW5nIENvbW11bmljYXRpb24uQ29udGFjdCBkYXRhRmllbGRGb3JBbm5vdGF0aW9uXG5cdFx0XHRcdC8vY29udGFjdD5mbiBwcm9wZXJ0eSBzaG91bGQgYmUgZXhwb3J0ZWRcblx0XHRcdFx0aWYgKG9Db2x1bW4uZXhwb3J0Q29udGFjdFByb3BlcnR5ICYmIGNvbHVtbi5wcm9wZXJ0eUluZm9zKSB7XG5cdFx0XHRcdFx0aWYgKGNvbHVtbi5wcm9wZXJ0eUluZm9zPy5sZW5ndGggPT09IDEgJiYgY29sdW1uLnByb3BlcnR5SW5mb3M/LnRvU3RyaW5nKCkgPT09IG9Db2x1bW5FeHBvcnQucHJvcGVydHkudG9TdHJpbmcoKSkge1xuXHRcdFx0XHRcdFx0b0NvbHVtbkV4cG9ydC5wcm9wZXJ0eSA9IG9Db2x1bW4uZXhwb3J0Q29udGFjdFByb3BlcnR5O1xuXHRcdFx0XHRcdFx0b0NvbHVtbkV4cG9ydC5sYWJlbCA9IG9Db2x1bW4ubGFiZWw7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0XHRcdGNvbHVtbi5wcm9wZXJ0eUluZm9zPy5sZW5ndGggPiAxICYmXG5cdFx0XHRcdFx0XHRvQ29sdW1uLnByb3BlcnR5SW5mb3M/LnNvbWUocHJvcCA9PiBvQ29sdW1uRXhwb3J0LnByb3BlcnR5LmluY2x1ZGVzKHByb3ApKSAmJlxuXHRcdFx0XHRcdFx0QXJyYXkuaXNBcnJheShvQ29sdW1uRXhwb3J0LnByb3BlcnR5KVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0b0NvbHVtbkV4cG9ydC5wcm9wZXJ0eSA9IG9Db2x1bW5FeHBvcnQucHJvcGVydHk/Lm1hcCgocHJvcGVydHk6IHN0cmluZykgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gb0NvbHVtbi5wcm9wZXJ0eUluZm9zPy5zb21lKHByb3AgPT4gcHJvcCA9PT0gcHJvcGVydHkpID8gb0NvbHVtbi5leHBvcnRDb250YWN0UHJvcGVydHkgOiBwcm9wZXJ0eTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRhRXhwb3J0TGFiZWxzLnB1c2goRGVsZWdhdGVVdGlsLmdldExvY2FsaXplZFRleHQob0NvbHVtbkV4cG9ydC5sYWJlbCwgb1RhYmxlQ29udHJvbGxlcikpO1xuXHRcdFx0aWYgKGFFeHBvcnRMYWJlbHMubGVuZ3RoID4gMSkge1xuXHRcdFx0XHQvLyBSZW1vdmUgZHVwbGljYXRlIGxhYmVscyAoZS5nLiBGaWVsZEdyb3VwIGxhYmVsIGlzIHRoZSBzYW1lIGFzIHRoZSBsYWJlbCBvZiBvbmUgb2YgdGhlIHByb3BlcnRpZXMpXG5cdFx0XHRcdGFFeHBvcnRMYWJlbHMgPSBhRXhwb3J0TGFiZWxzLmZpbHRlcihmdW5jdGlvbihsYWJlbCwgaW5kZXgpIHtcblx0XHRcdFx0XHRpZiAoYUV4cG9ydExhYmVscy5pbmRleE9mKGxhYmVsKSA9PSBpbmRleCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGxhYmVsO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHQvLyBDaGVjayBpZiBhIFJUTCBsYW5ndWFnZSBpZiB1c2VkIGFuZCBpZiBzbyB3ZSBuZWVkIHRvIHJldmVyc2UgbGFiZWxzXG5cdFx0XHRpZiAoaXNSTFRMYW5ndWFnZSkge1xuXHRcdFx0XHRhRXhwb3J0TGFiZWxzLnJldmVyc2UoKTtcblx0XHRcdH1cblx0XHRcdG9Db2x1bW5FeHBvcnQubGFiZWwgPSBhRXhwb3J0TGFiZWxzLmpvaW4oXCIgLSBcIik7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIG9FeHBvcnRTZXR0aW5ncztcblx0fVxuXG5cdHN0YXRpYyBfZ2V0RmllbGRHcm91cEV4cG9ydExhYmVsKG9Db2x1bW5FeHBvcnQ6IGFueSwgb0NvbHVtbjogQW5ub3RhdGlvblRhYmxlQ29sdW1uLCBvVGFibGVDb250cm9sbGVyOiBQYWdlQ29udHJvbGxlcikge1xuXHRcdGlmIChcblx0XHRcdChvQ29sdW1uRXhwb3J0LmNvbHVtbklkLmluZGV4T2YoXCI6OkZpZWxkR3JvdXA6OlwiKSAhPT0gLTEgfHxcblx0XHRcdFx0KG9Db2x1bW4uZXhwb3J0U2V0dGluZ3M/LmZpZWxkTGFiZWwgJiYgb0NvbHVtbkV4cG9ydC5jb2x1bW5JZC5pbmRleE9mKFwiX19jb2x1bW5cIikgIT09IC0xKSkgJiZcblx0XHRcdChvQ29sdW1uLnByb3BlcnR5SW5mb3M/LmluY2x1ZGVzKG9Db2x1bW5FeHBvcnQucHJvcGVydHkpIHx8XG5cdFx0XHRcdG9Db2x1bW4ucHJvcGVydHlJbmZvcz8uaW5jbHVkZXMoXCJQcm9wZXJ0eTo6XCIgKyBvQ29sdW1uRXhwb3J0LnByb3BlcnR5KSlcblx0XHQpIHtcblx0XHRcdGNvbnN0IGxhYmVsID0gb0NvbHVtbi5leHBvcnRTZXR0aW5ncz8uZmllbGRMYWJlbCB8fCBvQ29sdW1uLmxhYmVsO1xuXHRcdFx0cmV0dXJuIERlbGVnYXRlVXRpbC5nZXRMb2NhbGl6ZWRUZXh0KGxhYmVsIGFzIHN0cmluZywgb1RhYmxlQ29udHJvbGxlcik7XG5cdFx0fVxuXHR9XG5cblx0c3RhdGljIF9nZXREYXRhRmllbGREZXNjcmlwdGlvbkxhYmVsKFxuXHRcdG9Db2x1bW5FeHBvcnQ6IGFueSxcblx0XHRvQ29sdW1uOiBBbm5vdGF0aW9uVGFibGVDb2x1bW4sXG5cdFx0b1RhYmxlQ29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIsXG5cdFx0aXNVbml0OiBib29sZWFuXG5cdCkge1xuXHRcdGlmIChcblx0XHRcdG9Db2x1bW4ucHJvcGVydHlJbmZvcyAmJlxuXHRcdFx0b0NvbHVtbi5wcm9wZXJ0eUluZm9zPy5sZW5ndGggPiAxICYmXG5cdFx0XHQhaXNVbml0ICYmXG5cdFx0XHQob0NvbHVtbi5wcm9wZXJ0eUluZm9zPy5pbmNsdWRlcyhvQ29sdW1uRXhwb3J0LnByb3BlcnR5KSB8fFxuXHRcdFx0XHRvQ29sdW1uLnByb3BlcnR5SW5mb3M/LmluY2x1ZGVzKFwiUHJvcGVydHk6OlwiICsgb0NvbHVtbkV4cG9ydC5wcm9wZXJ0eSkpICYmXG5cdFx0XHRvQ29sdW1uLnJlbGF0aXZlUGF0aD8uaW5kZXhPZihcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5GaWVsZEdyb3VwXCIpID09PSAtMVxuXHRcdCkge1xuXHRcdFx0cmV0dXJuIERlbGVnYXRlVXRpbC5nZXRMb2NhbGl6ZWRUZXh0KG9Db2x1bW4ubGFiZWwgYXMgc3RyaW5nLCBvVGFibGVDb250cm9sbGVyKTtcblx0XHR9XG5cdH1cblx0QEV2ZW50SGFuZGxlclxuXHRvbk1hc3NFZGl0QnV0dG9uUHJlc3NlZChvRXZlbnQ6IFVJNUV2ZW50LCBQYWdlQ29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIpIHtcblx0XHRjb25zdCBvVGFibGUgPSB0aGlzLmNvbnRlbnQ7XG5cdFx0TWFzc0VkaXRIYW5kbGVyLm9wZW5NYXNzRWRpdERpYWxvZyhvVGFibGUsIFBhZ2VDb250cm9sbGVyKTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBUYWJsZUFQSTtcbiJdfQ==
|
|
@@ -346,14 +346,14 @@ class TableAPI extends MacroAPI {
|
|
|
346
346
|
.getConfiguration()
|
|
347
347
|
.getRTL(),
|
|
348
348
|
oTableController = oEvent.getSource(),
|
|
349
|
-
|
|
349
|
+
oExportSettings = oEvent.getParameters().exportSettings,
|
|
350
350
|
oTableColumns = this.tableDefinition.columns;
|
|
351
351
|
|
|
352
|
-
TableAPI.updateExportSettings(
|
|
352
|
+
TableAPI.updateExportSettings(oExportSettings, oTableColumns, oTableController, isSplitMode, isRLTLanguage);
|
|
353
353
|
}
|
|
354
354
|
|
|
355
355
|
/**
|
|
356
|
-
* Handles the
|
|
356
|
+
* Handles the DataStateIndicator plugin to display messageStrip on a table.
|
|
357
357
|
* @param oMessage
|
|
358
358
|
* @param oTable
|
|
359
359
|
* @name dataStateFilter
|
|
@@ -385,12 +385,16 @@ class TableAPI extends MacroAPI {
|
|
|
385
385
|
}
|
|
386
386
|
|
|
387
387
|
static updateExportSettings(
|
|
388
|
-
|
|
388
|
+
oExportSettings: any,
|
|
389
389
|
oColumns: TableColumn[],
|
|
390
390
|
oTableController: PageController,
|
|
391
391
|
isSplitMode: boolean,
|
|
392
392
|
isRLTLanguage: boolean
|
|
393
393
|
): any {
|
|
394
|
+
//Set static sizeLimit during export
|
|
395
|
+
oExportSettings.dataSource.sizeLimit = 1000;
|
|
396
|
+
|
|
397
|
+
const oExportColumns = oExportSettings.workbook?.columns;
|
|
394
398
|
oExportColumns.forEach((oColumnExport: any) => {
|
|
395
399
|
let aExportLabels: string[] = [];
|
|
396
400
|
oColumns?.forEach(column => {
|
|
@@ -454,7 +458,7 @@ class TableAPI extends MacroAPI {
|
|
|
454
458
|
}
|
|
455
459
|
oColumnExport.label = aExportLabels.join(" - ");
|
|
456
460
|
});
|
|
457
|
-
return
|
|
461
|
+
return oExportSettings;
|
|
458
462
|
}
|
|
459
463
|
|
|
460
464
|
static _getFieldGroupExportLabel(oColumnExport: any, oColumn: AnnotationTableColumn, oTableController: PageController) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAPUI5
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2023 SAP SE. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
sap.ui.define(
|
|
6
6
|
["sap/ui/model/json/JSONModel", "sap/fe/macros/CommonHelper", "sap/fe/macros/chart/ChartUtils", "sap/fe/macros/DelegateUtil"],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAPUI5
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2023 SAP SE. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
sap.ui.define(["sap/ui/model/Filter", "sap/fe/macros/filter/FilterUtils", "sap/ui/model/FilterOperator", "sap/base/Log"], function(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAPUI5
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2023 SAP SE. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
sap.ui.define(["sap/fe/macros/CommonHelper", "sap/fe/core/CommonUtils", "sap/ui/model/odata/v4/AnnotationHelper"], function(
|
|
6
6
|
CommonHelper,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAPUI5
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2023 SAP SE. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
sap.ui.define(["sap/fe/macros/DelegateUtil", "sap/ui/model/json/JSONModel", "sap/fe/macros/CommonHelper"], function(
|
|
6
6
|
DelegateUtil,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAPUI5
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2023 SAP SE. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
sap.ui.define(["sap/ui/mdc/field/MultiValueFieldDelegate", "sap/fe/core/CommonUtils"], function(MdcMultiValueFieldDelegate, CommonUtils) {
|
|
6
6
|
"use strict";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAPUI5
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2023 SAP SE. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -59,7 +59,7 @@ sap.ui.define(
|
|
|
59
59
|
interfaces: [],
|
|
60
60
|
controls: [],
|
|
61
61
|
elements: [],
|
|
62
|
-
version: "1.96.
|
|
62
|
+
version: "1.96.16",
|
|
63
63
|
noLibraryCSS: true
|
|
64
64
|
});
|
|
65
65
|
|
|
@@ -19,7 +19,7 @@ M_DRAFT_POPOVER_ADMIN_GENERIC_LOCKED_OBJECT_POPOVER_TEXT=Questo oggetto \u00E8 i
|
|
|
19
19
|
|
|
20
20
|
M_FIELD_RUNTIME_DRAFT_POPOVER_LOCKED_BY_KNOWN=Questo oggetto viene elaborato da {0}.
|
|
21
21
|
|
|
22
|
-
C_DRAFT_EDIT_STATE_DRAFT_ALL_FILTER=
|
|
22
|
+
C_DRAFT_EDIT_STATE_DRAFT_ALL_FILTER=Tutti
|
|
23
23
|
|
|
24
24
|
C_DRAFT_EDIT_STATE_DRAFT_UNCHANGED_FILTER=Senza modifiche
|
|
25
25
|
|