@sapui5/sap.fe.macros 1.140.0 → 1.141.1
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.js +53 -2
- package/src/sap/fe/macros/Chart.tsx +55 -0
- package/src/sap/fe/macros/CollaborativeDraftHandler.js +230 -0
- package/src/sap/fe/macros/CollaborativeDraftHandler.tsx +218 -0
- package/src/sap/fe/macros/CommonHelper.js +59 -15
- package/src/sap/fe/macros/CommonHelper.ts +65 -14
- package/src/sap/fe/macros/ConditionalSwitch.js +174 -0
- package/src/sap/fe/macros/ConditionalSwitch.tsx +141 -0
- package/src/sap/fe/macros/ConditionalSwitchProperty.js +78 -0
- package/src/sap/fe/macros/ConditionalSwitchProperty.tsx +62 -0
- package/src/sap/fe/macros/Field.js +14 -10
- package/src/sap/fe/macros/Field.ts +15 -12
- package/src/sap/fe/macros/MacroAPI.js +9 -4
- package/src/sap/fe/macros/MacroAPI.ts +9 -4
- package/src/sap/fe/macros/MultiValueField.js +10 -5
- package/src/sap/fe/macros/MultiValueField.tsx +7 -1
- package/src/sap/fe/macros/Page.js +5 -7
- package/src/sap/fe/macros/Page.tsx +4 -6
- package/src/sap/fe/macros/Paginator.js +9 -4
- package/src/sap/fe/macros/Paginator.tsx +12 -3
- package/src/sap/fe/macros/RichTextEditor.js +3 -2
- package/src/sap/fe/macros/RichTextEditor.tsx +2 -1
- package/src/sap/fe/macros/Status.js +38 -13
- package/src/sap/fe/macros/Status.tsx +26 -6
- package/src/sap/fe/macros/ai/EasyFillDialog.js +11 -17
- package/src/sap/fe/macros/ai/EasyFillDialog.tsx +11 -16
- package/src/sap/fe/macros/ai/EasyFilterBar.js +195 -55
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +234 -57
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +76 -33
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +89 -40
- package/src/sap/fe/macros/chart/Chart.js +2 -2
- package/src/sap/fe/macros/chart/Chart.tsx +1 -1
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +4 -2
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +4 -1
- package/src/sap/fe/macros/contentSwitcher/ContentSwitcher.js +9 -2
- package/src/sap/fe/macros/contentSwitcher/ContentSwitcher.tsx +8 -0
- package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.js +5 -1
- package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.ts +4 -0
- package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.js +2 -2
- package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.ts +1 -1
- package/src/sap/fe/macros/controls/FilterBar.js +14 -5
- package/src/sap/fe/macros/controls/FilterBar.ts +3 -0
- package/src/sap/fe/macros/controls/RadioButtons.js +61 -38
- package/src/sap/fe/macros/controls/RadioButtons.tsx +39 -18
- package/src/sap/fe/macros/controls/Section.js +4 -3
- package/src/sap/fe/macros/controls/Section.ts +3 -2
- package/src/sap/fe/macros/controls/section/SubSection.js +63 -8
- package/src/sap/fe/macros/controls/section/SubSection.ts +67 -1
- package/src/sap/fe/macros/field/Field.js +2 -2
- package/src/sap/fe/macros/field/Field.tsx +1 -1
- package/src/sap/fe/macros/field/FieldFormatOptions.js +25 -2
- package/src/sap/fe/macros/field/FieldFormatOptions.ts +13 -0
- package/src/sap/fe/macros/field/FieldHelper.js +2 -2
- package/src/sap/fe/macros/field/FieldHelper.ts +1 -4
- package/src/sap/fe/macros/field/FieldTemplating.js +3 -3
- package/src/sap/fe/macros/field/FieldTemplating.ts +4 -2
- package/src/sap/fe/macros/filter/FilterUtils.js +232 -2
- package/src/sap/fe/macros/filter/FilterUtils.ts +290 -4
- package/src/sap/fe/macros/filterBar/FilterBar.block.js +5 -3
- package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +4 -2
- package/src/sap/fe/macros/filterBar/FilterBar.js +2 -2
- package/src/sap/fe/macros/filterBar/FilterBar.tsx +1 -1
- package/src/sap/fe/macros/filterBar/FilterBarAPI.js +63 -27
- package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +49 -3
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.js +5 -3
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.ts +5 -2
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +7 -2
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +6 -1
- package/src/sap/fe/macros/form/Form.block.js +7 -8
- package/src/sap/fe/macros/form/Form.block.ts +4 -6
- package/src/sap/fe/macros/form/FormContainer.block.js +555 -4
- package/src/sap/fe/macros/form/FormContainer.block.ts +665 -6
- package/src/sap/fe/macros/form/FormContainer.fragment.xml +1 -0
- package/src/sap/fe/macros/form/FormDelegate.js +6 -9
- package/src/sap/fe/macros/form/FormDelegate.ts +5 -8
- package/src/sap/fe/macros/internal/DataPoint.js +3 -2
- package/src/sap/fe/macros/internal/DataPoint.tsx +10 -1
- package/src/sap/fe/macros/internal/FilterField.block.js +16 -8
- package/src/sap/fe/macros/internal/FilterField.block.ts +11 -7
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +7 -1
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +8 -0
- package/src/sap/fe/macros/internal/field/EditStyle.js +21 -4
- package/src/sap/fe/macros/internal/field/EditStyle.tsx +18 -4
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +3 -2
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +4 -1
- package/src/sap/fe/macros/internal/filterField/FilterFieldTemplate.fragment.xml +1 -0
- package/src/sap/fe/macros/internal/helpers/ActionHelper.js +36 -5
- package/src/sap/fe/macros/internal/helpers/ActionHelper.ts +34 -4
- package/src/sap/fe/macros/library.js +1 -1
- package/src/sap/fe/macros/mdc/adapter/StateFilterToSelectionVariant.js +2 -1
- package/src/sap/fe/macros/mdc/adapter/StateFilterToSelectionVariant.ts +1 -0
- package/src/sap/fe/macros/messagebundle.properties +20 -2
- package/src/sap/fe/macros/messagebundle_ar.properties +1 -1
- package/src/sap/fe/macros/messagebundle_bg.properties +1 -1
- package/src/sap/fe/macros/messagebundle_ca.properties +1 -1
- package/src/sap/fe/macros/messagebundle_cnr.properties +1 -1
- package/src/sap/fe/macros/messagebundle_cs.properties +1 -1
- package/src/sap/fe/macros/messagebundle_cy.properties +1 -1
- package/src/sap/fe/macros/messagebundle_da.properties +1 -1
- package/src/sap/fe/macros/messagebundle_de.properties +4 -4
- package/src/sap/fe/macros/messagebundle_el.properties +1 -1
- package/src/sap/fe/macros/messagebundle_en.properties +1 -1
- package/src/sap/fe/macros/messagebundle_en_GB.properties +1 -1
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +1 -1
- package/src/sap/fe/macros/messagebundle_es.properties +2 -2
- package/src/sap/fe/macros/messagebundle_es_MX.properties +1 -1
- package/src/sap/fe/macros/messagebundle_et.properties +1 -1
- package/src/sap/fe/macros/messagebundle_fi.properties +1 -1
- package/src/sap/fe/macros/messagebundle_fr.properties +1 -1
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +1 -1
- package/src/sap/fe/macros/messagebundle_hi.properties +1 -1
- package/src/sap/fe/macros/messagebundle_hr.properties +1 -1
- package/src/sap/fe/macros/messagebundle_hu.properties +1 -1
- package/src/sap/fe/macros/messagebundle_id.properties +5 -5
- package/src/sap/fe/macros/messagebundle_it.properties +1 -1
- package/src/sap/fe/macros/messagebundle_iw.properties +1 -1
- package/src/sap/fe/macros/messagebundle_ja.properties +5 -5
- package/src/sap/fe/macros/messagebundle_kk.properties +1 -1
- package/src/sap/fe/macros/messagebundle_ko.properties +2 -2
- package/src/sap/fe/macros/messagebundle_lt.properties +2 -2
- package/src/sap/fe/macros/messagebundle_lv.properties +1 -1
- package/src/sap/fe/macros/messagebundle_mk.properties +2 -2
- package/src/sap/fe/macros/messagebundle_ms.properties +1 -1
- package/src/sap/fe/macros/messagebundle_nl.properties +1 -1
- package/src/sap/fe/macros/messagebundle_no.properties +1 -1
- package/src/sap/fe/macros/messagebundle_pl.properties +1 -1
- package/src/sap/fe/macros/messagebundle_pt.properties +1 -1
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +1 -1
- package/src/sap/fe/macros/messagebundle_ro.properties +1 -1
- package/src/sap/fe/macros/messagebundle_ru.properties +1 -1
- package/src/sap/fe/macros/messagebundle_sh.properties +1 -1
- package/src/sap/fe/macros/messagebundle_sk.properties +1 -1
- package/src/sap/fe/macros/messagebundle_sl.properties +1 -1
- package/src/sap/fe/macros/messagebundle_sr.properties +1 -1
- package/src/sap/fe/macros/messagebundle_sv.properties +1 -1
- package/src/sap/fe/macros/messagebundle_th.properties +1 -1
- package/src/sap/fe/macros/messagebundle_tr.properties +1 -1
- package/src/sap/fe/macros/messagebundle_uk.properties +1 -1
- package/src/sap/fe/macros/messagebundle_vi.properties +2 -2
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +1 -1
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +1 -1
- package/src/sap/fe/macros/messages/MessageButton.js +1 -1
- package/src/sap/fe/macros/messages/MessageButton.ts +2 -2
- package/src/sap/fe/macros/messages/MessagePopover.js +3 -1
- package/src/sap/fe/macros/messages/MessagePopover.ts +2 -0
- package/src/sap/fe/macros/microchart/MicroChart.js +2 -2
- package/src/sap/fe/macros/microchart/MicroChart.tsx +1 -1
- package/src/sap/fe/macros/microchart/MicroChartHelper.js +2 -2
- package/src/sap/fe/macros/microchart/MicroChartHelper.tsx +1 -1
- package/src/sap/fe/macros/table/ActionsTemplating.js +4 -8
- package/src/sap/fe/macros/table/ActionsTemplating.tsx +5 -8
- package/src/sap/fe/macros/table/BasicSearch.js +1 -1
- package/src/sap/fe/macros/table/BasicSearch.ts +2 -1
- package/src/sap/fe/macros/table/Column.js +14 -2
- package/src/sap/fe/macros/table/Column.ts +7 -0
- package/src/sap/fe/macros/table/ColumnExportSettings.js +83 -15
- package/src/sap/fe/macros/table/ColumnExportSettings.ts +44 -0
- package/src/sap/fe/macros/table/ColumnOverride.js +14 -2
- package/src/sap/fe/macros/table/ColumnOverride.ts +7 -0
- package/src/sap/fe/macros/table/MdcTableTemplate.js +5 -5
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +15 -9
- package/src/sap/fe/macros/table/QuickFilterSelector.js +12 -3
- package/src/sap/fe/macros/table/QuickFilterSelector.tsx +15 -2
- package/src/sap/fe/macros/table/Table.block.js +188 -147
- package/src/sap/fe/macros/table/Table.block.tsx +41 -11
- package/src/sap/fe/macros/table/Table.js +16 -10
- package/src/sap/fe/macros/table/Table.tsx +16 -10
- package/src/sap/fe/macros/table/TableAPI.js +224 -184
- package/src/sap/fe/macros/table/TableAPI.ts +63 -19
- package/src/sap/fe/macros/table/TableEventHandlerProvider.js +6 -6
- package/src/sap/fe/macros/table/TableEventHandlerProvider.ts +5 -4
- package/src/sap/fe/macros/table/TableHelper.js +2 -2
- package/src/sap/fe/macros/table/TableHelper.ts +1 -1
- package/src/sap/fe/macros/table/TreeTable.js +16 -10
- package/src/sap/fe/macros/table/TreeTable.tsx +16 -10
- package/src/sap/fe/macros/table/Utils.js +3 -2
- package/src/sap/fe/macros/table/Utils.ts +7 -2
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +69 -33
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +75 -32
- package/src/sap/fe/macros/table/massEdit/MassEditDialog.js +10 -10
- package/src/sap/fe/macros/table/massEdit/MassEditDialog.tsx +11 -9
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.js +14 -12
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.tsx +11 -10
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +34 -4
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +45 -2
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.js +55 -12
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.ts +71 -9
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.js +53 -2
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.ts +55 -0
- package/src/sap/fe/macros/table/mixin/TableExport.js +22 -3
- package/src/sap/fe/macros/table/mixin/TableExport.ts +25 -4
- package/src/sap/fe/macros/table/mixin/TableSharing.js +3 -2
- package/src/sap/fe/macros/table/mixin/TableSharing.ts +4 -3
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +27 -10
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +31 -13
- package/src/sap/fe/macros/visualfilters/VisualFilter.js +5 -3
- package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +3 -1
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/core/buildingBlocks/BuildingBlock", "sap/m/RadioButton", "sap/m/RadioButtonGroup", "sap/ui/core/CustomData", "sap/fe/base/jsx-runtime/jsx"], function (ClassSupport, CommonUtils, BuildingBlock, RadioButton, RadioButtonGroup, CustomData, _jsx) {
|
|
5
|
+
sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/core/buildingBlocks/BuildingBlock", "sap/m/RadioButton", "sap/m/RadioButtonGroup", "sap/ui/core/CustomData", "sap/fe/base/jsx-runtime/jsx"], function (BindingToolkit, ClassSupport, CommonUtils, BuildingBlock, RadioButton, RadioButtonGroup, CustomData, _jsx) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10;
|
|
8
|
+
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11;
|
|
9
9
|
var _exports = {};
|
|
10
10
|
var property = ClassSupport.property;
|
|
11
11
|
var defineUI5Class = ClassSupport.defineUI5Class;
|
|
12
|
+
var pathInModel = BindingToolkit.pathInModel;
|
|
12
13
|
function _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }
|
|
13
14
|
function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
|
|
14
15
|
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
@@ -21,21 +22,25 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
|
|
|
21
22
|
}), _dec4 = property({
|
|
22
23
|
type: "string"
|
|
23
24
|
}), _dec5 = property({
|
|
24
|
-
type: "any"
|
|
25
|
+
type: "any",
|
|
26
|
+
defaultValue: null
|
|
25
27
|
}), _dec6 = property({
|
|
26
28
|
type: "string"
|
|
27
29
|
}), _dec7 = property({
|
|
28
|
-
type: "
|
|
29
|
-
|
|
30
|
+
type: "object",
|
|
31
|
+
bindToState: true
|
|
30
32
|
}), _dec8 = property({
|
|
31
33
|
type: "any",
|
|
32
34
|
isBindingInfo: true
|
|
33
35
|
}), _dec9 = property({
|
|
34
|
-
type: "
|
|
36
|
+
type: "any",
|
|
37
|
+
isBindingInfo: true
|
|
35
38
|
}), _dec10 = property({
|
|
36
|
-
type: "
|
|
39
|
+
type: "boolean"
|
|
37
40
|
}), _dec11 = property({
|
|
38
41
|
type: "string"
|
|
42
|
+
}), _dec12 = property({
|
|
43
|
+
type: "string"
|
|
39
44
|
}), _dec(_class = (_class2 = /*#__PURE__*/function (_BuildingBlock) {
|
|
40
45
|
function RadioButtons(properties, others) {
|
|
41
46
|
var _this;
|
|
@@ -45,13 +50,19 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
|
|
|
45
50
|
_initializerDefineProperty(_this, "requiredExpression", _descriptor3, _this);
|
|
46
51
|
// We use type 'raw' here because otherwise the binding will refuse to update the value, as it doesn't know how to convert from any to string
|
|
47
52
|
// Setting it to raw make sure that no conversion is attempted which then works
|
|
53
|
+
// Default value is set to null to allow having a radio button pointing to a `null` value
|
|
48
54
|
_initializerDefineProperty(_this, "value", _descriptor4, _this);
|
|
49
55
|
_initializerDefineProperty(_this, "fixedValuesPath", _descriptor5, _this);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
_initializerDefineProperty(_this, "
|
|
56
|
+
/**
|
|
57
|
+
* An array of possible, fixed value list object
|
|
58
|
+
* If this property is used, the fixedValuesPath property is ignored.
|
|
59
|
+
*/
|
|
60
|
+
_initializerDefineProperty(_this, "possibleValues", _descriptor6, _this);
|
|
61
|
+
_initializerDefineProperty(_this, "radioButtonTextProperty", _descriptor7, _this);
|
|
62
|
+
_initializerDefineProperty(_this, "radioButtonKeyProperty", _descriptor8, _this);
|
|
63
|
+
_initializerDefineProperty(_this, "horizontalLayout", _descriptor9, _this);
|
|
64
|
+
_initializerDefineProperty(_this, "enabledExpression", _descriptor10, _this);
|
|
65
|
+
_initializerDefineProperty(_this, "width", _descriptor11, _this);
|
|
55
66
|
_this.content = _this.createContent();
|
|
56
67
|
return _this;
|
|
57
68
|
}
|
|
@@ -124,25 +135,32 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
|
|
|
124
135
|
// Setting up the binding so that we can access $count for getting the number
|
|
125
136
|
// of entries in the fixed value list and set this as number of radio button columns
|
|
126
137
|
// in case horizontal layout is configured
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
138
|
+
let buttonsBindingContext;
|
|
139
|
+
if (this.possibleValues) {
|
|
140
|
+
buttonsBindingContext = this.bindState("possibleValues");
|
|
141
|
+
this.radioButtonTextProperty = pathInModel("text", "$componentState");
|
|
142
|
+
this.radioButtonKeyProperty = pathInModel("key", "$componentState");
|
|
143
|
+
} else {
|
|
144
|
+
buttonsBindingContext = {
|
|
145
|
+
path: `${this.fixedValuesPath}`,
|
|
146
|
+
parameters: {
|
|
147
|
+
$count: true
|
|
148
|
+
},
|
|
149
|
+
events: {
|
|
150
|
+
dataReceived: ev => {
|
|
151
|
+
const count = ev.getSource()?.getCount();
|
|
152
|
+
if (count !== undefined && this.horizontalLayout) {
|
|
153
|
+
radioButtonGroup.setColumns(count);
|
|
154
|
+
}
|
|
155
|
+
// Check if there is a value stored from the initialization but the radio
|
|
156
|
+
// button selection has not yet been done and do this now
|
|
157
|
+
if (this.value !== undefined && radioButtonGroup.getSelectedIndex() === -1) {
|
|
158
|
+
this.setValue(this.value);
|
|
159
|
+
}
|
|
142
160
|
}
|
|
143
161
|
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
162
|
+
};
|
|
163
|
+
}
|
|
146
164
|
this.onRadioButtonSelect.bind(this);
|
|
147
165
|
const radioButtonGroup = _jsx(RadioButtonGroup, {
|
|
148
166
|
buttons: buttonsBindingContext,
|
|
@@ -151,12 +169,12 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
|
|
|
151
169
|
fieldGroupIds: this.fieldGroupIds,
|
|
152
170
|
ariaLabelledBy: this.ariaLabelledBy,
|
|
153
171
|
width: this.width,
|
|
172
|
+
columns: this.possibleValues?.length ?? 1,
|
|
154
173
|
children: _jsx(RadioButton, {
|
|
155
174
|
text: this.radioButtonTextProperty,
|
|
156
|
-
customData:
|
|
157
|
-
key: "key",
|
|
175
|
+
customData: _jsx(CustomData, {
|
|
158
176
|
value: this.radioButtonKeyProperty
|
|
159
|
-
})
|
|
177
|
+
}, "key"),
|
|
160
178
|
class: "sapUiSmallMarginEnd",
|
|
161
179
|
tooltip: this.radioButtonTextProperty
|
|
162
180
|
})
|
|
@@ -189,31 +207,36 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
|
|
|
189
207
|
enumerable: true,
|
|
190
208
|
writable: true,
|
|
191
209
|
initializer: null
|
|
192
|
-
}), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "
|
|
210
|
+
}), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "possibleValues", [_dec7], {
|
|
211
|
+
configurable: true,
|
|
212
|
+
enumerable: true,
|
|
213
|
+
writable: true,
|
|
214
|
+
initializer: null
|
|
215
|
+
}), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "radioButtonTextProperty", [_dec8], {
|
|
193
216
|
configurable: true,
|
|
194
217
|
enumerable: true,
|
|
195
218
|
writable: true,
|
|
196
219
|
initializer: null
|
|
197
|
-
}),
|
|
220
|
+
}), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "radioButtonKeyProperty", [_dec9], {
|
|
198
221
|
configurable: true,
|
|
199
222
|
enumerable: true,
|
|
200
223
|
writable: true,
|
|
201
224
|
initializer: null
|
|
202
|
-
}),
|
|
225
|
+
}), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "horizontalLayout", [_dec10], {
|
|
203
226
|
configurable: true,
|
|
204
227
|
enumerable: true,
|
|
205
228
|
writable: true,
|
|
206
229
|
initializer: function () {
|
|
207
230
|
return false;
|
|
208
231
|
}
|
|
209
|
-
}),
|
|
232
|
+
}), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "enabledExpression", [_dec11], {
|
|
210
233
|
configurable: true,
|
|
211
234
|
enumerable: true,
|
|
212
235
|
writable: true,
|
|
213
236
|
initializer: function () {
|
|
214
237
|
return "";
|
|
215
238
|
}
|
|
216
|
-
}),
|
|
239
|
+
}), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "width", [_dec12], {
|
|
217
240
|
configurable: true,
|
|
218
241
|
enumerable: true,
|
|
219
242
|
writable: true,
|
|
@@ -224,4 +247,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
|
|
|
224
247
|
_exports = RadioButtons;
|
|
225
248
|
return _exports;
|
|
226
249
|
}, false);
|
|
227
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSYWRpb0J1dHRvbnMiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiX2RlYzQiLCJfZGVjNSIsIl9kZWM2IiwiX2RlYzciLCJpc0JpbmRpbmdJbmZvIiwiX2RlYzgiLCJfZGVjOSIsIl9kZWMxMCIsIl9kZWMxMSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9jayIsInByb3BlcnRpZXMiLCJvdGhlcnMiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwiX2Rlc2NyaXB0b3I5IiwiX2Rlc2NyaXB0b3IxMCIsImNvbnRlbnQiLCJjcmVhdGVDb250ZW50IiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uUmFkaW9CdXR0b25TZWxlY3QiLCJldmVudCIsInJhZGlvQnV0dG9uR3JvdXAiLCJnZXRTb3VyY2UiLCJzZWxlY3RlZEluZGV4IiwiZ2V0UGFyYW1ldGVyIiwidW5kZWZpbmVkIiwic2VsZWN0ZWRSYWRpb0J1dHRvbktleSIsImdldEJ1dHRvbnMiLCJnZXRDdXN0b21EYXRhIiwiZ2V0VmFsdWUiLCJzZXRQcm9wZXJ0eSIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsImdldENvbnRyb2xsZXIiLCJfc2lkZUVmZmVjdHMiLCJoYW5kbGVGaWVsZENoYW5nZSIsImJpbmRQcm9wZXJ0eSIsIm5hbWUiLCJiaW5kaW5nSW5mbyIsImZvcm1hdHRlciIsInRhcmdldFR5cGUiLCJzZXRWYWx1ZSIsIm5ld1ZhbHVlIiwidmFsdWUiLCJyYWRpb0J1dHRvbnMiLCJsZW5ndGgiLCJyYWRpb0J1dHRvbkluZGV4IiwicmFkaW9CdXR0b24iLCJrZXlDdXN0b21EYXRhIiwiZ2V0QmluZGluZyIsInNldFNlbGVjdGVkSW5kZXgiLCJidXR0b25zQmluZGluZ0NvbnRleHQiLCJwYXRoIiwiZml4ZWRWYWx1ZXNQYXRoIiwicGFyYW1ldGVycyIsIiRjb3VudCIsImV2ZW50cyIsImRhdGFSZWNlaXZlZCIsImV2IiwiY291bnQiLCJnZXRDb3VudCIsImhvcml6b250YWxMYXlvdXQiLCJzZXRDb2x1bW5zIiwiZ2V0U2VsZWN0ZWRJbmRleCIsImJpbmQiLCJfanN4IiwiUmFkaW9CdXR0b25Hcm91cCIsImJ1dHRvbnMiLCJzZWxlY3QiLCJlbmFibGVkIiwiZW5hYmxlZEV4cHJlc3Npb24iLCJmaWVsZEdyb3VwSWRzIiwiYXJpYUxhYmVsbGVkQnkiLCJ3aWR0aCIsImNoaWxkcmVuIiwiUmFkaW9CdXR0b24iLCJ0ZXh0IiwicmFkaW9CdXR0b25UZXh0UHJvcGVydHkiLCJjdXN0b21EYXRhIiwiQ3VzdG9tRGF0YSIsImtleSIsInJhZGlvQnV0dG9uS2V5UHJvcGVydHkiLCJjbGFzcyIsInRvb2x0aXAiLCJCdWlsZGluZ0Jsb2NrIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJSYWRpb0J1dHRvbnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2sgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL0J1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCBSYWRpb0J1dHRvbiBmcm9tIFwic2FwL20vUmFkaW9CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUmFkaW9CdXR0b25Hcm91cCRTZWxlY3RFdmVudCB9IGZyb20gXCJzYXAvbS9SYWRpb0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgUmFkaW9CdXR0b25Hcm91cCBmcm9tIFwic2FwL20vUmFkaW9CdXR0b25Hcm91cFwiO1xuaW1wb3J0IHR5cGUgRXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgdHlwZSB7IEFnZ3JlZ2F0aW9uQmluZGluZ0luZm8sIFByb3BlcnR5QmluZGluZ0luZm8gfSBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgeyAkQ29udHJvbFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBDdXN0b21EYXRhIGZyb20gXCJzYXAvdWkvY29yZS9DdXN0b21EYXRhXCI7XG5pbXBvcnQgdHlwZSBQcm9wZXJ0eUJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9Qcm9wZXJ0eUJpbmRpbmdcIjtcbmltcG9ydCB0eXBlIE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuUmFkaW9CdXR0b25zXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSYWRpb0J1dHRvbnMgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrPFJhZGlvQnV0dG9uR3JvdXA+IHtcblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdHB1YmxpYyBpZCE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nW11cIlxuXHR9KVxuXHRwdWJsaWMgZmllbGRHcm91cElkcz86IHN0cmluZ1tdO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgcmVxdWlyZWRFeHByZXNzaW9uPzogc3RyaW5nO1xuXG5cdC8vIFdlIHVzZSB0eXBlICdyYXcnIGhlcmUgYmVjYXVzZSBvdGhlcndpc2UgdGhlIGJpbmRpbmcgd2lsbCByZWZ1c2UgdG8gdXBkYXRlIHRoZSB2YWx1ZSwgYXMgaXQgZG9lc24ndCBrbm93IGhvdyB0byBjb252ZXJ0IGZyb20gYW55IHRvIHN0cmluZ1xuXHQvLyBTZXR0aW5nIGl0IHRvIHJhdyBtYWtlIHN1cmUgdGhhdCBubyBjb252ZXJzaW9uIGlzIGF0dGVtcHRlZCB3aGljaCB0aGVuIHdvcmtzXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYW55XCIgfSlcblx0cHVibGljIHZhbHVlITogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIGZpeGVkVmFsdWVzUGF0aCE6IGB7JHtzdHJpbmd9fWA7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImFueVwiLFxuXHRcdGlzQmluZGluZ0luZm86IHRydWVcblx0fSlcblx0cHVibGljIHJhZGlvQnV0dG9uVGV4dFByb3BlcnR5OiBQcm9wZXJ0eUJpbmRpbmdJbmZvO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJhbnlcIixcblx0XHRpc0JpbmRpbmdJbmZvOiB0cnVlXG5cdH0pXG5cdHB1YmxpYyByYWRpb0J1dHRvbktleVByb3BlcnR5OiBQcm9wZXJ0eUJpbmRpbmdJbmZvO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCJcblx0fSlcblx0cHVibGljIGhvcml6b250YWxMYXlvdXQgPSBmYWxzZTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIGVuYWJsZWRFeHByZXNzaW9uID0gXCJcIjtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIHdpZHRoID0gXCIxMDAlXCI7XG5cblx0Y29uc3RydWN0b3IocHJvcGVydGllczogJENvbnRyb2xTZXR0aW5ncyAmIFByb3BlcnRpZXNPZjxSYWRpb0J1dHRvbnM+LCBvdGhlcnM/OiAkQ29udHJvbFNldHRpbmdzKSB7XG5cdFx0c3VwZXIocHJvcGVydGllcywgb3RoZXJzKTtcblx0XHR0aGlzLmNvbnRlbnQgPSB0aGlzLmNyZWF0ZUNvbnRlbnQoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIGZvciB0aGUgUmFkaW9CdXR0b25Hcm91cCdzIHNlbGVjdCBldmVudC5cblx0ICogV2UgbmVlZCB0byBwYXJzZSBmcm9tIHRoZSByYWRpbyBidXR0b24gZ3JvdXAgaW5kZXggdG8gdGhlIG1vZGVsIHZhbHVlLlxuXHQgKiBAcGFyYW0gZXZlbnRcblx0ICovXG5cdG9uUmFkaW9CdXR0b25TZWxlY3QoZXZlbnQ6IFJhZGlvQnV0dG9uR3JvdXAkU2VsZWN0RXZlbnQpOiB2b2lkIHtcblx0XHRjb25zdCByYWRpb0J1dHRvbkdyb3VwOiBSYWRpb0J1dHRvbkdyb3VwID0gZXZlbnQuZ2V0U291cmNlKCk7XG5cdFx0Y29uc3Qgc2VsZWN0ZWRJbmRleCA9IGV2ZW50LmdldFBhcmFtZXRlcihcInNlbGVjdGVkSW5kZXhcIik7XG5cdFx0aWYgKHNlbGVjdGVkSW5kZXggIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Y29uc3Qgc2VsZWN0ZWRSYWRpb0J1dHRvbktleTogc3RyaW5nID0gcmFkaW9CdXR0b25Hcm91cD8uZ2V0QnV0dG9ucygpW3NlbGVjdGVkSW5kZXhdLmdldEN1c3RvbURhdGEoKVswXS5nZXRWYWx1ZSgpO1xuXHRcdFx0Ly8gTm93IHdlIGhhdmUgdGhlIHZhbHVlID0+IHdyaXRlIGl0IHRvIHRoZSBtb2RlbCFcblx0XHRcdHRoaXMuc2V0UHJvcGVydHkoXCJ2YWx1ZVwiLCBzZWxlY3RlZFJhZGlvQnV0dG9uS2V5KTtcblx0XHRcdENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcocmFkaW9CdXR0b25Hcm91cCk/LmdldENvbnRyb2xsZXIoKT8uX3NpZGVFZmZlY3RzPy5oYW5kbGVGaWVsZENoYW5nZShldmVudCwgdHJ1ZSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSB2YWx1ZSBwcm9wZXJ0eSB0eXBlIG5lZWRzIHRvIGJlIGluaXRpYWxseSAnYW55JyBidXQgaGFzIHRvIGJlIGNoYW5nZWQgdG8gJ3JhdycgdG8gYXZvaWQgcGFyc2luZyBlcnJvcnMuXG5cdCAqIEBwYXJhbSBuYW1lXG5cdCAqIEBwYXJhbSBiaW5kaW5nSW5mb1xuXHQgKiBAcmV0dXJucyBUaGlzXG5cdCAqL1xuXHRiaW5kUHJvcGVydHkobmFtZTogc3RyaW5nLCBiaW5kaW5nSW5mbzogUHJvcGVydHlCaW5kaW5nSW5mbyk6IHRoaXMge1xuXHRcdGlmIChuYW1lID09PSBcInZhbHVlXCIgJiYgIWJpbmRpbmdJbmZvLmZvcm1hdHRlcikge1xuXHRcdFx0Ly8gbm90IGlmIGEgZm9ybWF0dGVyIGlzIHVzZWQsIGFzIHRoaXMgbmVlZHMgdG8gYmUgZXhlY3V0ZWRcblx0XHRcdGJpbmRpbmdJbmZvLnRhcmdldFR5cGUgPSBcInJhd1wiO1xuXHRcdH1cblxuXHRcdHJldHVybiBzdXBlci5iaW5kUHJvcGVydHkobmFtZSwgYmluZGluZ0luZm8pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoaXMgaXMgYmVpbmcgY2FsbGVkIHdoZW4gdGhlIG1vZGVsIGZldGNoZXMgdGhlIGRhdGEgZnJvbSB0aGUgYmFja2VuZCBvciB3aGVuIHdlIGNhbGwgaXQgZGlyZWN0bHkuXG5cdCAqIFdlIG5lZWQgdG8gcGFyc2UgZnJvbSB0aGUgbW9kZWwgdmFsdWUgdG8gdGhlIHJhZGlvIGJ1dHRvbiBncm91cCBpbmRleC5cblx0ICogQHBhcmFtIG5ld1ZhbHVlXG5cdCAqL1xuXHRzZXRWYWx1ZShuZXdWYWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbik6IHZvaWQge1xuXHRcdHRoaXMudmFsdWUgPSBuZXdWYWx1ZTtcblx0XHRpZiAodGhpcy5jb250ZW50KSB7XG5cdFx0XHQvLyBDb21wdXRlIHRoZSBuZXcgcmFkaW8gYnV0dG9uIGluZGV4XG5cdFx0XHRjb25zdCByYWRpb0J1dHRvbnMgPSB0aGlzLmNvbnRlbnQuZ2V0QnV0dG9ucygpO1xuXHRcdFx0aWYgKHJhZGlvQnV0dG9ucy5sZW5ndGggIT0gMCkge1xuXHRcdFx0XHRsZXQgcmFkaW9CdXR0b25JbmRleCA9IDA7XG5cdFx0XHRcdGZvciAoY29uc3QgcmFkaW9CdXR0b24gb2YgcmFkaW9CdXR0b25zKSB7XG5cdFx0XHRcdFx0Y29uc3Qga2V5Q3VzdG9tRGF0YSA9IChyYWRpb0J1dHRvbi5nZXRDdXN0b21EYXRhKClbMF0uZ2V0QmluZGluZyhcInZhbHVlXCIpIGFzIFByb3BlcnR5QmluZGluZyB8IHVuZGVmaW5lZCk/LmdldFZhbHVlKCk7XG5cdFx0XHRcdFx0aWYgKGtleUN1c3RvbURhdGEgPT09IG5ld1ZhbHVlKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmNvbnRlbnQuc2V0U2VsZWN0ZWRJbmRleChyYWRpb0J1dHRvbkluZGV4KTtcblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmFkaW9CdXR0b25JbmRleCsrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQvLyBJZiBubyB2YWx1ZSBjb3VsZCBiZSBmb3VuZCBvciBpZiB0aGUgcmFkaW8gYnV0dG9uIGFnZ3JlZ2F0aW9uIHdhcyBlbXB0eSwgd2hpY2ggY2FuIGhhcHBlbiBkdWUgdG9cblx0XHRcdC8vIGEgdmVyeSBlYXJseSBjYWxsIG9mIHNldFZhbHVlLCBzZXQgdGhlIHNlbGVjdGVkIHRvIGluZGV4IHRvIC0xIHdoaWNoIHJlc3VsdHMgaW4gTk8gcmFkaW8gYnV0dG9uIHRvIGJlIHNlbGVjdGVkLlxuXHRcdFx0dGhpcy5jb250ZW50LnNldFNlbGVjdGVkSW5kZXgoLTEpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgYnVpbGRpbmcgYmxvY2sgcmVuZGVyIGZ1bmN0aW9uLlxuXHQgKiBAcmV0dXJucyBUaGUgcmFkaW8gYnV0dG9uIGdyb3VwXG5cdCAqL1xuXHRjcmVhdGVDb250ZW50KCk6IFJhZGlvQnV0dG9uR3JvdXAge1xuXHRcdC8vIFNldHRpbmcgdXAgdGhlIGJpbmRpbmcgc28gdGhhdCB3ZSBjYW4gYWNjZXNzICRjb3VudCBmb3IgZ2V0dGluZyB0aGUgbnVtYmVyXG5cdFx0Ly8gb2YgZW50cmllcyBpbiB0aGUgZml4ZWQgdmFsdWUgbGlzdCBhbmQgc2V0IHRoaXMgYXMgbnVtYmVyIG9mIHJhZGlvIGJ1dHRvbiBjb2x1bW5zXG5cdFx0Ly8gaW4gY2FzZSBob3Jpem9udGFsIGxheW91dCBpcyBjb25maWd1cmVkXG5cdFx0Y29uc3QgYnV0dG9uc0JpbmRpbmdDb250ZXh0OiBBZ2dyZWdhdGlvbkJpbmRpbmdJbmZvID0ge1xuXHRcdFx0cGF0aDogYCR7dGhpcy5maXhlZFZhbHVlc1BhdGh9YCxcblx0XHRcdHBhcmFtZXRlcnM6IHsgJGNvdW50OiB0cnVlIH0sXG5cdFx0XHRldmVudHM6IHtcblx0XHRcdFx0ZGF0YVJlY2VpdmVkOiAoZXY6IEV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgY291bnQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IChldi5nZXRTb3VyY2UoKSBhcyB1bmtub3duIGFzIE9EYXRhTGlzdEJpbmRpbmcpPy5nZXRDb3VudCgpO1xuXHRcdFx0XHRcdGlmIChjb3VudCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuaG9yaXpvbnRhbExheW91dCkge1xuXHRcdFx0XHRcdFx0cmFkaW9CdXR0b25Hcm91cC5zZXRDb2x1bW5zKGNvdW50KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly8gQ2hlY2sgaWYgdGhlcmUgaXMgYSB2YWx1ZSBzdG9yZWQgZnJvbSB0aGUgaW5pdGlhbGl6YXRpb24gYnV0IHRoZSByYWRpb1xuXHRcdFx0XHRcdC8vIGJ1dHRvbiBzZWxlY3Rpb24gaGFzIG5vdCB5ZXQgYmVlbiBkb25lIGFuZCBkbyB0aGlzIG5vd1xuXHRcdFx0XHRcdGlmICh0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgcmFkaW9CdXR0b25Hcm91cC5nZXRTZWxlY3RlZEluZGV4KCkgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnNldFZhbHVlKHRoaXMudmFsdWUgYXMgc3RyaW5nKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0dGhpcy5vblJhZGlvQnV0dG9uU2VsZWN0LmJpbmQodGhpcyk7XG5cdFx0Y29uc3QgcmFkaW9CdXR0b25Hcm91cCA9IChcblx0XHRcdDxSYWRpb0J1dHRvbkdyb3VwXG5cdFx0XHRcdGJ1dHRvbnM9e2J1dHRvbnNCaW5kaW5nQ29udGV4dH1cblx0XHRcdFx0c2VsZWN0PXt0aGlzLm9uUmFkaW9CdXR0b25TZWxlY3QuYmluZCh0aGlzKX1cblx0XHRcdFx0ZW5hYmxlZD17dGhpcy5lbmFibGVkRXhwcmVzc2lvbn1cblx0XHRcdFx0ZmllbGRHcm91cElkcz17dGhpcy5maWVsZEdyb3VwSWRzfVxuXHRcdFx0XHRhcmlhTGFiZWxsZWRCeT17dGhpcy5hcmlhTGFiZWxsZWRCeX1cblx0XHRcdFx0d2lkdGg9e3RoaXMud2lkdGh9XG5cdFx0XHQ+XG5cdFx0XHRcdDxSYWRpb0J1dHRvblxuXHRcdFx0XHRcdHRleHQ9e3RoaXMucmFkaW9CdXR0b25UZXh0UHJvcGVydHl9XG5cdFx0XHRcdFx0Y3VzdG9tRGF0YT17W25ldyBDdXN0b21EYXRhKHsga2V5OiBcImtleVwiLCB2YWx1ZTogdGhpcy5yYWRpb0J1dHRvbktleVByb3BlcnR5IH0pXX1cblx0XHRcdFx0XHRjbGFzcz1cInNhcFVpU21hbGxNYXJnaW5FbmRcIlxuXHRcdFx0XHRcdHRvb2x0aXA9e3RoaXMucmFkaW9CdXR0b25UZXh0UHJvcGVydHl9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1JhZGlvQnV0dG9uR3JvdXA+XG5cdFx0KSBhcyBSYWRpb0J1dHRvbkdyb3VwO1xuXG5cdFx0cmV0dXJuIHJh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QUEsR0FBQWdGLHlCQUFBLENBQUF6RixPQUFBLENBQUFzQixTQUFBLHlCQUFBaEMsS0FBQTtJQUFBb0csWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUFuRixZQUFBLEdBQUErRSx5QkFBQSxDQUFBekYsT0FBQSxDQUFBc0IsU0FBQSxZQUFBL0IsS0FBQTtJQUFBbUcsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUFsRixZQUFBLEdBQUE4RSx5QkFBQSxDQUFBekYsT0FBQSxDQUFBc0IsU0FBQSxzQkFBQTlCLEtBQUE7SUFBQWtHLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBakYsWUFBQSxHQUFBNkUseUJBQUEsQ0FBQXpGLE9BQUEsQ0FBQXNCLFNBQUEsOEJBQUE3QixLQUFBO0lBQUFpRyxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQWhGLFlBQUEsR0FBQTRFLHlCQUFBLENBQUF6RixPQUFBLENBQUFzQixTQUFBLDZCQUFBM0IsS0FBQTtJQUFBK0YsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUEvRSxZQUFBLEdBQUEyRSx5QkFBQSxDQUFBekYsT0FBQSxDQUFBc0IsU0FBQSx1QkFBQTFCLEtBQUE7SUFBQThGLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BeUM1QixLQUFLO0lBQUE7RUFBQSxJQUFBOUUsWUFBQSxHQUFBMEUseUJBQUEsQ0FBQXpGLE9BQUEsQ0FBQXNCLFNBQUEsd0JBQUF6QixNQUFBO0lBQUE2RixZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBLFdBQUFBLENBQUE7TUFBQSxPQUtKLEVBQUU7SUFBQTtFQUFBLElBQUE3RSxhQUFBLEdBQUF5RSx5QkFBQSxDQUFBekYsT0FBQSxDQUFBc0IsU0FBQSxZQUFBeEIsTUFBQTtJQUFBNEYsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQSxXQUFBQSxDQUFBO01BQUEsT0FLZCxNQUFNO0lBQUE7RUFBQSxJQUFBN0YsT0FBQSxNQUFBRCxNQUFBO0VBQUFvQixRQUFBLEdBQUFwQyxZQUFBO0VBQUEsT0FBQW9DLFFBQUE7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
250
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSYWRpb0J1dHRvbnMiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiX2RlYzQiLCJfZGVjNSIsImRlZmF1bHRWYWx1ZSIsIl9kZWM2IiwiX2RlYzciLCJiaW5kVG9TdGF0ZSIsIl9kZWM4IiwiaXNCaW5kaW5nSW5mbyIsIl9kZWM5IiwiX2RlYzEwIiwiX2RlYzExIiwiX2RlYzEyIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrIiwicHJvcGVydGllcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZGVzY3JpcHRvcjkiLCJfZGVzY3JpcHRvcjEwIiwiX2Rlc2NyaXB0b3IxMSIsImNvbnRlbnQiLCJjcmVhdGVDb250ZW50IiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uUmFkaW9CdXR0b25TZWxlY3QiLCJldmVudCIsInJhZGlvQnV0dG9uR3JvdXAiLCJnZXRTb3VyY2UiLCJzZWxlY3RlZEluZGV4IiwiZ2V0UGFyYW1ldGVyIiwidW5kZWZpbmVkIiwic2VsZWN0ZWRSYWRpb0J1dHRvbktleSIsImdldEJ1dHRvbnMiLCJnZXRDdXN0b21EYXRhIiwiZ2V0VmFsdWUiLCJzZXRQcm9wZXJ0eSIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsImdldENvbnRyb2xsZXIiLCJfc2lkZUVmZmVjdHMiLCJoYW5kbGVGaWVsZENoYW5nZSIsImJpbmRQcm9wZXJ0eSIsIm5hbWUiLCJiaW5kaW5nSW5mbyIsImZvcm1hdHRlciIsInRhcmdldFR5cGUiLCJzZXRWYWx1ZSIsIm5ld1ZhbHVlIiwidmFsdWUiLCJyYWRpb0J1dHRvbnMiLCJsZW5ndGgiLCJyYWRpb0J1dHRvbkluZGV4IiwicmFkaW9CdXR0b24iLCJrZXlDdXN0b21EYXRhIiwiZ2V0QmluZGluZyIsInNldFNlbGVjdGVkSW5kZXgiLCJidXR0b25zQmluZGluZ0NvbnRleHQiLCJwb3NzaWJsZVZhbHVlcyIsImJpbmRTdGF0ZSIsInJhZGlvQnV0dG9uVGV4dFByb3BlcnR5IiwicGF0aEluTW9kZWwiLCJyYWRpb0J1dHRvbktleVByb3BlcnR5IiwicGF0aCIsImZpeGVkVmFsdWVzUGF0aCIsInBhcmFtZXRlcnMiLCIkY291bnQiLCJldmVudHMiLCJkYXRhUmVjZWl2ZWQiLCJldiIsImNvdW50IiwiZ2V0Q291bnQiLCJob3Jpem9udGFsTGF5b3V0Iiwic2V0Q29sdW1ucyIsImdldFNlbGVjdGVkSW5kZXgiLCJiaW5kIiwiX2pzeCIsIlJhZGlvQnV0dG9uR3JvdXAiLCJidXR0b25zIiwic2VsZWN0IiwiZW5hYmxlZCIsImVuYWJsZWRFeHByZXNzaW9uIiwiZmllbGRHcm91cElkcyIsImFyaWFMYWJlbGxlZEJ5Iiwid2lkdGgiLCJjb2x1bW5zIiwiY2hpbGRyZW4iLCJSYWRpb0J1dHRvbiIsInRleHQiLCJjdXN0b21EYXRhIiwiQ3VzdG9tRGF0YSIsImNsYXNzIiwidG9vbHRpcCIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlJhZGlvQnV0dG9ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcmltaXRpdmVUeXBlIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBwYXRoSW5Nb2RlbCB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IFJhZGlvQnV0dG9uIGZyb20gXCJzYXAvbS9SYWRpb0J1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBSYWRpb0J1dHRvbkdyb3VwJFNlbGVjdEV2ZW50IH0gZnJvbSBcInNhcC9tL1JhZGlvQnV0dG9uR3JvdXBcIjtcbmltcG9ydCBSYWRpb0J1dHRvbkdyb3VwIGZyb20gXCJzYXAvbS9SYWRpb0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgdHlwZSBFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIHsgQWdncmVnYXRpb25CaW5kaW5nSW5mbywgUHJvcGVydHlCaW5kaW5nSW5mbyB9IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEN1c3RvbURhdGEgZnJvbSBcInNhcC91aS9jb3JlL0N1c3RvbURhdGFcIjtcbmltcG9ydCB0eXBlIFByb3BlcnR5QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL1Byb3BlcnR5QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgT0RhdGFMaXN0QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5SYWRpb0J1dHRvbnNcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJhZGlvQnV0dG9ucyBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8UmFkaW9CdXR0b25Hcm91cCwgeyBwb3NzaWJsZVZhbHVlczogeyB0ZXh0OiBzdHJpbmc7IGtleTogbnVtYmVyIH1bXSB9PiB7XG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgaWQhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1tdXCJcblx0fSlcblx0cHVibGljIGZpZWxkR3JvdXBJZHM/OiBzdHJpbmdbXTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIHJlcXVpcmVkRXhwcmVzc2lvbj86IHN0cmluZztcblxuXHQvLyBXZSB1c2UgdHlwZSAncmF3JyBoZXJlIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBiaW5kaW5nIHdpbGwgcmVmdXNlIHRvIHVwZGF0ZSB0aGUgdmFsdWUsIGFzIGl0IGRvZXNuJ3Qga25vdyBob3cgdG8gY29udmVydCBmcm9tIGFueSB0byBzdHJpbmdcblx0Ly8gU2V0dGluZyBpdCB0byByYXcgbWFrZSBzdXJlIHRoYXQgbm8gY29udmVyc2lvbiBpcyBhdHRlbXB0ZWQgd2hpY2ggdGhlbiB3b3Jrc1xuXHQvLyBEZWZhdWx0IHZhbHVlIGlzIHNldCB0byBudWxsIHRvIGFsbG93IGhhdmluZyBhIHJhZGlvIGJ1dHRvbiBwb2ludGluZyB0byBhIGBudWxsYCB2YWx1ZVxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImFueVwiLCBkZWZhdWx0VmFsdWU6IG51bGwgfSlcblx0cHVibGljIHZhbHVlITogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIGZpeGVkVmFsdWVzUGF0aCE6IGB7JHtzdHJpbmd9fWA7XG5cblx0LyoqXG5cdCAqIEFuIGFycmF5IG9mIHBvc3NpYmxlLCBmaXhlZCB2YWx1ZSBsaXN0IG9iamVjdFxuXHQgKiBJZiB0aGlzIHByb3BlcnR5IGlzIHVzZWQsIHRoZSBmaXhlZFZhbHVlc1BhdGggcHJvcGVydHkgaXMgaWdub3JlZC5cblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJvYmplY3RcIixcblx0XHRiaW5kVG9TdGF0ZTogdHJ1ZVxuXHR9KVxuXHRwdWJsaWMgcG9zc2libGVWYWx1ZXM/OiB7IGtleTogUHJpbWl0aXZlVHlwZTsgdGV4dDogc3RyaW5nIH1bXTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwiYW55XCIsXG5cdFx0aXNCaW5kaW5nSW5mbzogdHJ1ZVxuXHR9KVxuXHRwdWJsaWMgcmFkaW9CdXR0b25UZXh0UHJvcGVydHk6IFByb3BlcnR5QmluZGluZ0luZm87XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImFueVwiLFxuXHRcdGlzQmluZGluZ0luZm86IHRydWVcblx0fSlcblx0cHVibGljIHJhZGlvQnV0dG9uS2V5UHJvcGVydHk6IFByb3BlcnR5QmluZGluZ0luZm87XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHR9KVxuXHRwdWJsaWMgaG9yaXpvbnRhbExheW91dCA9IGZhbHNlO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgZW5hYmxlZEV4cHJlc3Npb24gPSBcIlwiO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgd2lkdGggPSBcIjEwMCVcIjtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiAkQ29udHJvbFNldHRpbmdzICYgUHJvcGVydGllc09mPFJhZGlvQnV0dG9ucz4sIG90aGVycz86ICRDb250cm9sU2V0dGluZ3MpIHtcblx0XHRzdXBlcihwcm9wZXJ0aWVzLCBvdGhlcnMpO1xuXHRcdHRoaXMuY29udGVudCA9IHRoaXMuY3JlYXRlQ29udGVudCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEV2ZW50IGhhbmRsZXIgZm9yIHRoZSBSYWRpb0J1dHRvbkdyb3VwJ3Mgc2VsZWN0IGV2ZW50LlxuXHQgKiBXZSBuZWVkIHRvIHBhcnNlIGZyb20gdGhlIHJhZGlvIGJ1dHRvbiBncm91cCBpbmRleCB0byB0aGUgbW9kZWwgdmFsdWUuXG5cdCAqIEBwYXJhbSBldmVudFxuXHQgKi9cblx0b25SYWRpb0J1dHRvblNlbGVjdChldmVudDogUmFkaW9CdXR0b25Hcm91cCRTZWxlY3RFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IHJhZGlvQnV0dG9uR3JvdXA6IFJhZGlvQnV0dG9uR3JvdXAgPSBldmVudC5nZXRTb3VyY2UoKTtcblx0XHRjb25zdCBzZWxlY3RlZEluZGV4ID0gZXZlbnQuZ2V0UGFyYW1ldGVyKFwic2VsZWN0ZWRJbmRleFwiKTtcblx0XHRpZiAoc2VsZWN0ZWRJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRjb25zdCBzZWxlY3RlZFJhZGlvQnV0dG9uS2V5OiBzdHJpbmcgPSByYWRpb0J1dHRvbkdyb3VwPy5nZXRCdXR0b25zKClbc2VsZWN0ZWRJbmRleF0uZ2V0Q3VzdG9tRGF0YSgpWzBdLmdldFZhbHVlKCk7XG5cdFx0XHQvLyBOb3cgd2UgaGF2ZSB0aGUgdmFsdWUgPT4gd3JpdGUgaXQgdG8gdGhlIG1vZGVsIVxuXHRcdFx0dGhpcy5zZXRQcm9wZXJ0eShcInZhbHVlXCIsIHNlbGVjdGVkUmFkaW9CdXR0b25LZXkpO1xuXHRcdFx0Q29tbW9uVXRpbHMuZ2V0VGFyZ2V0VmlldyhyYWRpb0J1dHRvbkdyb3VwKT8uZ2V0Q29udHJvbGxlcigpPy5fc2lkZUVmZmVjdHM/LmhhbmRsZUZpZWxkQ2hhbmdlKGV2ZW50LCB0cnVlKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogVGhlIHZhbHVlIHByb3BlcnR5IHR5cGUgbmVlZHMgdG8gYmUgaW5pdGlhbGx5ICdhbnknIGJ1dCBoYXMgdG8gYmUgY2hhbmdlZCB0byAncmF3JyB0byBhdm9pZCBwYXJzaW5nIGVycm9ycy5cblx0ICogQHBhcmFtIG5hbWVcblx0ICogQHBhcmFtIGJpbmRpbmdJbmZvXG5cdCAqIEByZXR1cm5zIFRoaXNcblx0ICovXG5cdGJpbmRQcm9wZXJ0eShuYW1lOiBzdHJpbmcsIGJpbmRpbmdJbmZvOiBQcm9wZXJ0eUJpbmRpbmdJbmZvKTogdGhpcyB7XG5cdFx0aWYgKG5hbWUgPT09IFwidmFsdWVcIiAmJiAhYmluZGluZ0luZm8uZm9ybWF0dGVyKSB7XG5cdFx0XHQvLyBub3QgaWYgYSBmb3JtYXR0ZXIgaXMgdXNlZCwgYXMgdGhpcyBuZWVkcyB0byBiZSBleGVjdXRlZFxuXHRcdFx0YmluZGluZ0luZm8udGFyZ2V0VHlwZSA9IFwicmF3XCI7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHN1cGVyLmJpbmRQcm9wZXJ0eShuYW1lLCBiaW5kaW5nSW5mbyk7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBpcyBiZWluZyBjYWxsZWQgd2hlbiB0aGUgbW9kZWwgZmV0Y2hlcyB0aGUgZGF0YSBmcm9tIHRoZSBiYWNrZW5kIG9yIHdoZW4gd2UgY2FsbCBpdCBkaXJlY3RseS5cblx0ICogV2UgbmVlZCB0byBwYXJzZSBmcm9tIHRoZSBtb2RlbCB2YWx1ZSB0byB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwIGluZGV4LlxuXHQgKiBAcGFyYW0gbmV3VmFsdWVcblx0ICovXG5cdHNldFZhbHVlKG5ld1ZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTogdm9pZCB7XG5cdFx0dGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuXHRcdGlmICh0aGlzLmNvbnRlbnQpIHtcblx0XHRcdC8vIENvbXB1dGUgdGhlIG5ldyByYWRpbyBidXR0b24gaW5kZXhcblx0XHRcdGNvbnN0IHJhZGlvQnV0dG9ucyA9IHRoaXMuY29udGVudC5nZXRCdXR0b25zKCk7XG5cdFx0XHRpZiAocmFkaW9CdXR0b25zLmxlbmd0aCAhPSAwKSB7XG5cdFx0XHRcdGxldCByYWRpb0J1dHRvbkluZGV4ID0gMDtcblx0XHRcdFx0Zm9yIChjb25zdCByYWRpb0J1dHRvbiBvZiByYWRpb0J1dHRvbnMpIHtcblx0XHRcdFx0XHRjb25zdCBrZXlDdXN0b21EYXRhID0gKHJhZGlvQnV0dG9uLmdldEN1c3RvbURhdGEoKVswXS5nZXRCaW5kaW5nKFwidmFsdWVcIikgYXMgUHJvcGVydHlCaW5kaW5nIHwgdW5kZWZpbmVkKT8uZ2V0VmFsdWUoKTtcblx0XHRcdFx0XHRpZiAoa2V5Q3VzdG9tRGF0YSA9PT0gbmV3VmFsdWUpIHtcblx0XHRcdFx0XHRcdHRoaXMuY29udGVudC5zZXRTZWxlY3RlZEluZGV4KHJhZGlvQnV0dG9uSW5kZXgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyYWRpb0J1dHRvbkluZGV4Kys7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC8vIElmIG5vIHZhbHVlIGNvdWxkIGJlIGZvdW5kIG9yIGlmIHRoZSByYWRpbyBidXR0b24gYWdncmVnYXRpb24gd2FzIGVtcHR5LCB3aGljaCBjYW4gaGFwcGVuIGR1ZSB0b1xuXHRcdFx0Ly8gYSB2ZXJ5IGVhcmx5IGNhbGwgb2Ygc2V0VmFsdWUsIHNldCB0aGUgc2VsZWN0ZWQgdG8gaW5kZXggdG8gLTEgd2hpY2ggcmVzdWx0cyBpbiBOTyByYWRpbyBidXR0b24gdG8gYmUgc2VsZWN0ZWQuXG5cdFx0XHR0aGlzLmNvbnRlbnQuc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBidWlsZGluZyBibG9jayByZW5kZXIgZnVuY3Rpb24uXG5cdCAqIEByZXR1cm5zIFRoZSByYWRpbyBidXR0b24gZ3JvdXBcblx0ICovXG5cdGNyZWF0ZUNvbnRlbnQoKTogUmFkaW9CdXR0b25Hcm91cCB7XG5cdFx0Ly8gU2V0dGluZyB1cCB0aGUgYmluZGluZyBzbyB0aGF0IHdlIGNhbiBhY2Nlc3MgJGNvdW50IGZvciBnZXR0aW5nIHRoZSBudW1iZXJcblx0XHQvLyBvZiBlbnRyaWVzIGluIHRoZSBmaXhlZCB2YWx1ZSBsaXN0IGFuZCBzZXQgdGhpcyBhcyBudW1iZXIgb2YgcmFkaW8gYnV0dG9uIGNvbHVtbnNcblx0XHQvLyBpbiBjYXNlIGhvcml6b250YWwgbGF5b3V0IGlzIGNvbmZpZ3VyZWRcblx0XHRsZXQgYnV0dG9uc0JpbmRpbmdDb250ZXh0OiBBZ2dyZWdhdGlvbkJpbmRpbmdJbmZvIHwgdW5kZWZpbmVkO1xuXHRcdGlmICh0aGlzLnBvc3NpYmxlVmFsdWVzKSB7XG5cdFx0XHRidXR0b25zQmluZGluZ0NvbnRleHQgPSB0aGlzLmJpbmRTdGF0ZShcInBvc3NpYmxlVmFsdWVzXCIpO1xuXHRcdFx0dGhpcy5yYWRpb0J1dHRvblRleHRQcm9wZXJ0eSA9IHBhdGhJbk1vZGVsKFwidGV4dFwiLCBcIiRjb21wb25lbnRTdGF0ZVwiKTtcblx0XHRcdHRoaXMucmFkaW9CdXR0b25LZXlQcm9wZXJ0eSA9IHBhdGhJbk1vZGVsKFwia2V5XCIsIFwiJGNvbXBvbmVudFN0YXRlXCIpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRidXR0b25zQmluZGluZ0NvbnRleHQgPSB7XG5cdFx0XHRcdHBhdGg6IGAke3RoaXMuZml4ZWRWYWx1ZXNQYXRofWAsXG5cdFx0XHRcdHBhcmFtZXRlcnM6IHsgJGNvdW50OiB0cnVlIH0sXG5cdFx0XHRcdGV2ZW50czoge1xuXHRcdFx0XHRcdGRhdGFSZWNlaXZlZDogKGV2OiBFdmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgY291bnQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IChldi5nZXRTb3VyY2UoKSBhcyB1bmtub3duIGFzIE9EYXRhTGlzdEJpbmRpbmcpPy5nZXRDb3VudCgpO1xuXHRcdFx0XHRcdFx0aWYgKGNvdW50ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5ob3Jpem9udGFsTGF5b3V0KSB7XG5cdFx0XHRcdFx0XHRcdHJhZGlvQnV0dG9uR3JvdXAuc2V0Q29sdW1ucyhjb3VudCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQvLyBDaGVjayBpZiB0aGVyZSBpcyBhIHZhbHVlIHN0b3JlZCBmcm9tIHRoZSBpbml0aWFsaXphdGlvbiBidXQgdGhlIHJhZGlvXG5cdFx0XHRcdFx0XHQvLyBidXR0b24gc2VsZWN0aW9uIGhhcyBub3QgeWV0IGJlZW4gZG9uZSBhbmQgZG8gdGhpcyBub3dcblx0XHRcdFx0XHRcdGlmICh0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgcmFkaW9CdXR0b25Hcm91cC5nZXRTZWxlY3RlZEluZGV4KCkgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuc2V0VmFsdWUodGhpcy52YWx1ZSBhcyBzdHJpbmcpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9XG5cblx0XHR0aGlzLm9uUmFkaW9CdXR0b25TZWxlY3QuYmluZCh0aGlzKTtcblx0XHRjb25zdCByYWRpb0J1dHRvbkdyb3VwID0gKFxuXHRcdFx0PFJhZGlvQnV0dG9uR3JvdXBcblx0XHRcdFx0YnV0dG9ucz17YnV0dG9uc0JpbmRpbmdDb250ZXh0fVxuXHRcdFx0XHRzZWxlY3Q9e3RoaXMub25SYWRpb0J1dHRvblNlbGVjdC5iaW5kKHRoaXMpfVxuXHRcdFx0XHRlbmFibGVkPXt0aGlzLmVuYWJsZWRFeHByZXNzaW9ufVxuXHRcdFx0XHRmaWVsZEdyb3VwSWRzPXt0aGlzLmZpZWxkR3JvdXBJZHN9XG5cdFx0XHRcdGFyaWFMYWJlbGxlZEJ5PXt0aGlzLmFyaWFMYWJlbGxlZEJ5fVxuXHRcdFx0XHR3aWR0aD17dGhpcy53aWR0aH1cblx0XHRcdFx0Y29sdW1ucz17dGhpcy5wb3NzaWJsZVZhbHVlcz8ubGVuZ3RoID8/IDF9XG5cdFx0XHQ+XG5cdFx0XHRcdDxSYWRpb0J1dHRvblxuXHRcdFx0XHRcdHRleHQ9e3RoaXMucmFkaW9CdXR0b25UZXh0UHJvcGVydHl9XG5cdFx0XHRcdFx0Y3VzdG9tRGF0YT17PEN1c3RvbURhdGEga2V5PXtcImtleVwifSB2YWx1ZT17dGhpcy5yYWRpb0J1dHRvbktleVByb3BlcnR5fSAvPn1cblx0XHRcdFx0XHRjbGFzcz1cInNhcFVpU21hbGxNYXJnaW5FbmRcIlxuXHRcdFx0XHRcdHRvb2x0aXA9e3RoaXMucmFkaW9CdXR0b25UZXh0UHJvcGVydHl9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1JhZGlvQnV0dG9uR3JvdXA+XG5cdFx0KSBhcyBSYWRpb0J1dHRvbkdyb3VwO1xuXG5cdFx0cmV0dXJuIHJhZGlvQnV0dG9uR3JvdXA7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFpQnFCQSxZQUFZLElBQUFDLElBQUEsR0FEaENDLGNBQWMsQ0FBQyxxQ0FBcUMsQ0FBQyxFQUFBQyxLQUFBLEdBRXBEQyxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFO0VBQ1AsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHREYsUUFBUSxDQUFDO0lBQ1RDLElBQUksRUFBRTtFQUNQLENBQUMsQ0FBQyxFQUFBRSxLQUFBLEdBR0RILFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFBQUcsS0FBQSxHQU1ESixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLEtBQUs7SUFBRUksWUFBWSxFQUFFO0VBQUssQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHN0NOLFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFBQU0sS0FBQSxHQU9EUCxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFLFFBQVE7SUFDZE8sV0FBVyxFQUFFO0VBQ2QsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHRFQsUUFBUSxDQUFDO0lBQ1RDLElBQUksRUFBRSxLQUFLO0lBQ1hTLGFBQWEsRUFBRTtFQUNoQixDQUFDLENBQUMsRUFBQUMsS0FBQSxHQUdEWCxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFLEtBQUs7SUFDWFMsYUFBYSxFQUFFO0VBQ2hCLENBQUMsQ0FBQyxFQUFBRSxNQUFBLEdBR0RaLFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFB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
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { PrimitiveType } from "sap/fe/base/BindingToolkit";
|
|
2
|
+
import { pathInModel } from "sap/fe/base/BindingToolkit";
|
|
1
3
|
import type { PropertiesOf } from "sap/fe/base/ClassSupport";
|
|
2
4
|
import { defineUI5Class, property } from "sap/fe/base/ClassSupport";
|
|
3
5
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
@@ -13,7 +15,7 @@ import type PropertyBinding from "sap/ui/model/PropertyBinding";
|
|
|
13
15
|
import type ODataListBinding from "sap/ui/model/odata/v4/ODataListBinding";
|
|
14
16
|
|
|
15
17
|
@defineUI5Class("sap.fe.macros.controls.RadioButtons")
|
|
16
|
-
export default class RadioButtons extends BuildingBlock<RadioButtonGroup> {
|
|
18
|
+
export default class RadioButtons extends BuildingBlock<RadioButtonGroup, { possibleValues: { text: string; key: number }[] }> {
|
|
17
19
|
@property({
|
|
18
20
|
type: "string"
|
|
19
21
|
})
|
|
@@ -31,7 +33,8 @@ export default class RadioButtons extends BuildingBlock<RadioButtonGroup> {
|
|
|
31
33
|
|
|
32
34
|
// We use type 'raw' here because otherwise the binding will refuse to update the value, as it doesn't know how to convert from any to string
|
|
33
35
|
// Setting it to raw make sure that no conversion is attempted which then works
|
|
34
|
-
|
|
36
|
+
// Default value is set to null to allow having a radio button pointing to a `null` value
|
|
37
|
+
@property({ type: "any", defaultValue: null })
|
|
35
38
|
public value!: string | number | boolean;
|
|
36
39
|
|
|
37
40
|
@property({
|
|
@@ -39,6 +42,16 @@ export default class RadioButtons extends BuildingBlock<RadioButtonGroup> {
|
|
|
39
42
|
})
|
|
40
43
|
public fixedValuesPath!: `{${string}}`;
|
|
41
44
|
|
|
45
|
+
/**
|
|
46
|
+
* An array of possible, fixed value list object
|
|
47
|
+
* If this property is used, the fixedValuesPath property is ignored.
|
|
48
|
+
*/
|
|
49
|
+
@property({
|
|
50
|
+
type: "object",
|
|
51
|
+
bindToState: true
|
|
52
|
+
})
|
|
53
|
+
public possibleValues?: { key: PrimitiveType; text: string }[];
|
|
54
|
+
|
|
42
55
|
@property({
|
|
43
56
|
type: "any",
|
|
44
57
|
isBindingInfo: true
|
|
@@ -137,23 +150,30 @@ export default class RadioButtons extends BuildingBlock<RadioButtonGroup> {
|
|
|
137
150
|
// Setting up the binding so that we can access $count for getting the number
|
|
138
151
|
// of entries in the fixed value list and set this as number of radio button columns
|
|
139
152
|
// in case horizontal layout is configured
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
+
let buttonsBindingContext: AggregationBindingInfo | undefined;
|
|
154
|
+
if (this.possibleValues) {
|
|
155
|
+
buttonsBindingContext = this.bindState("possibleValues");
|
|
156
|
+
this.radioButtonTextProperty = pathInModel("text", "$componentState");
|
|
157
|
+
this.radioButtonKeyProperty = pathInModel("key", "$componentState");
|
|
158
|
+
} else {
|
|
159
|
+
buttonsBindingContext = {
|
|
160
|
+
path: `${this.fixedValuesPath}`,
|
|
161
|
+
parameters: { $count: true },
|
|
162
|
+
events: {
|
|
163
|
+
dataReceived: (ev: Event): void => {
|
|
164
|
+
const count: number | undefined = (ev.getSource() as unknown as ODataListBinding)?.getCount();
|
|
165
|
+
if (count !== undefined && this.horizontalLayout) {
|
|
166
|
+
radioButtonGroup.setColumns(count);
|
|
167
|
+
}
|
|
168
|
+
// Check if there is a value stored from the initialization but the radio
|
|
169
|
+
// button selection has not yet been done and do this now
|
|
170
|
+
if (this.value !== undefined && radioButtonGroup.getSelectedIndex() === -1) {
|
|
171
|
+
this.setValue(this.value as string);
|
|
172
|
+
}
|
|
153
173
|
}
|
|
154
174
|
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
175
|
+
};
|
|
176
|
+
}
|
|
157
177
|
|
|
158
178
|
this.onRadioButtonSelect.bind(this);
|
|
159
179
|
const radioButtonGroup = (
|
|
@@ -164,10 +184,11 @@ export default class RadioButtons extends BuildingBlock<RadioButtonGroup> {
|
|
|
164
184
|
fieldGroupIds={this.fieldGroupIds}
|
|
165
185
|
ariaLabelledBy={this.ariaLabelledBy}
|
|
166
186
|
width={this.width}
|
|
187
|
+
columns={this.possibleValues?.length ?? 1}
|
|
167
188
|
>
|
|
168
189
|
<RadioButton
|
|
169
190
|
text={this.radioButtonTextProperty}
|
|
170
|
-
customData={
|
|
191
|
+
customData={<CustomData key={"key"} value={this.radioButtonKeyProperty} />}
|
|
171
192
|
class="sapUiSmallMarginEnd"
|
|
172
193
|
tooltip={this.radioButtonTextProperty}
|
|
173
194
|
/>
|
|
@@ -48,7 +48,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/base/HookSupp
|
|
|
48
48
|
_proto.registerDelegate = function registerDelegate() {
|
|
49
49
|
const eventDelegates = {
|
|
50
50
|
onAfterRendering: () => {
|
|
51
|
-
|
|
51
|
+
const subSections = this.getSubSections();
|
|
52
52
|
if (subSections.length) {
|
|
53
53
|
subSections.forEach(subSection => {
|
|
54
54
|
/* we check individual subsection for blocks. If not available we wait for them to be added(onBeforeRendering) before triggering title merge logics */
|
|
@@ -234,6 +234,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/base/HookSupp
|
|
|
234
234
|
/**
|
|
235
235
|
* This function checks for the for the collection facet label,If present then we merge the title.
|
|
236
236
|
* @param subsection ObjectPage SubSection
|
|
237
|
+
* @returns Adjustment results containing the subsection and table adjustment status.
|
|
237
238
|
*/;
|
|
238
239
|
_proto.adjustSectionContentWithTitle = function adjustSectionContentWithTitle(subsection) {
|
|
239
240
|
let adjustmentProps = {};
|
|
@@ -310,7 +311,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/base/HookSupp
|
|
|
310
311
|
if (contentRole === "provider") {
|
|
311
312
|
const infoFromProvider = sectionOnlyContent.getDataFromProvider && sectionOnlyContent.getDataFromProvider(this.useSingleTextAreaFieldAsNotes);
|
|
312
313
|
if (infoFromProvider && this.getTitle() === infoFromProvider.title) {
|
|
313
|
-
this.setTitle(infoFromProvider.title);
|
|
314
|
+
//this.setTitle(infoFromProvider.title);
|
|
314
315
|
this.setShowTitle(true);
|
|
315
316
|
// TODO: Check if this is really needed?
|
|
316
317
|
classesToAdd.add("sapUiTableOnObjectPageAdjustmentsForSection");
|
|
@@ -432,4 +433,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/base/HookSupp
|
|
|
432
433
|
}), _class2)) || _class) || _class);
|
|
433
434
|
return Section;
|
|
434
435
|
}, false);
|
|
435
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZWN0aW9uIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiZGVzaWdudGltZSIsIl9kZWMyIiwibWl4aW4iLCJTZWN0aW9uU3RhdGVIYW5kbGVyIiwiX2RlYzMiLCJwcm9wZXJ0eSIsInR5cGUiLCJfZGVjNCIsIl9kZWM1IiwiX2RlYzYiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX09iamVjdFBhZ2VTZWN0aW9uIiwicHJvcGVydGllcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJyZWdpc3RlckRlbGVnYXRlIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJldmVudERlbGVnYXRlcyIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJzdWJTZWN0aW9ucyIsImdldFN1YlNlY3Rpb25zIiwibGVuZ3RoIiwiZm9yRWFjaCIsInN1YlNlY3Rpb24iLCJnZXRCbG9ja3MiLCJzdWJTZWN0aW9uRXZlbnREZWxlZ2F0ZSIsIm9uQmVmb3JlUmVuZGVyaW5nIiwiY2hlY2tBbmRBZGp1c3RTZWN0aW9uQ29udGVudCIsInJlbW92ZUV2ZW50RGVsZWdhdGUiLCJhZGRFdmVudERlbGVnYXRlIiwidmlldyIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsInVzZVNpbmdsZVRleHRBcmVhRmllbGRBc05vdGVzIiwiY2hlY2tBbmRBZGp1c3RTZWN0aW9uQ29udGVudEZvclRleHRBcmVhIiwiY2hlY2tBbmRBZGp1c3RGb3JTaW5nbGVDb250ZW50Iiwic2V0T25TZWN0aW9uTG9hZGVkIiwib25TZWN0aW9uTG9hZGVkIiwibG9hZFNwbGl0Iiwic3BsaXQiLCJfc2VjdGlvbkxvYWRNZXRob2ROYW1lIiwicG9wIiwiX3NlY3Rpb25Mb2FkTW9kdWxlTmFtZSIsImpvaW4iLCJzZXRQcm9wZXJ0eSIsImFwcGx5U2V0dGluZ3MiLCJtU2V0dGluZ3MiLCJvU2NvcGUiLCJ0ZW1wbGF0ZUNvbXBvbmVudCIsIkNvbXBvbmVudCIsImdldE93bmVyQ29tcG9uZW50Rm9yIiwicGFnZUNvbnRyb2xsZXIiLCJnZXRSb290Q29udHJvbGxlciIsIkhvb2tTdXBwb3J0IiwiaW5pdENvbnRyb2xsZXJFeHRlbnNpb25Ib29rSGFuZGxlcnMiLCJ1cGRhdGVOb25UYWJsZVN1YlNlY3Rpb25CYWNrZ3JvdW5kIiwiYWRqdXN0bWVudFJlc3VsdHMiLCJoYXNTdHlsZUNsYXNzIiwiX3JlZiIsInRhYmxlc0FkanVzdGVkIiwicmVtb3ZlU3R5bGVDbGFzcyIsImFkZFN0eWxlQ2xhc3MiLCJ2aXNpYmxlU3ViU2VjdGlvbnMiLCJnZXRWaXNpYmxlU3ViU2VjdGlvbnMiLCJyZWR1Y2UiLCJyZXN1bHRzIiwiY29udGVudCIsImdldFNpbmdsZUNvbnRlbnQiLCJhZGp1c3RGb3JTaW5nbGVDb250ZW50IiwicHVzaCIsImdldFZpZXdEYXRhIiwic2VjdGlvbkxheW91dCIsInNpbmdsZUNvbnRlbnQiLCJpc0EiLCJjaGVja0lmTm90ZXNSZXVzZUNvbXBvbmVudCIsInNpbmdsZUNvbnRlbnRUYWJsZUFkanVzdGVkIiwiRlBNSGVscGVyIiwibG9hZE1vZHVsZUFuZENhbGxNZXRob2QiLCJjaGVja0FuZEFkanVzdFRpdGxlcyIsIkxvZyIsImRlYnVnIiwiZ2V0SWQiLCJpbmNsdWRlcyIsInNpbmdsZVN1YlNlY3Rpb25UYWJsZUFkanVzdGVkIiwiYWRqdXN0U2VjdGlvbkNvbnRlbnRXaXRoVGl0bGUiLCJzdWJzZWN0aW9uIiwiYmxvY2tzIiwiZ2V0QWdncmVnYXRpb24iLCJzZWN0aW9uRnJvbVJlZmVyZW5jZUZhY2V0IiwiU3ViU2VjdGlvbiIsInNob3dUaXRsZSIsImdldE1haW5Db250ZW50IiwiRnVuY3Rpb24iLCJhZGp1c3RtZW50UHJvcHMiLCJzZWN0aW9uZnJvbUNvbGxlY3Rpb25GYWNldCIsIlRpdGxlIiwiZ2V0VmlzaWJsZSIsImdldFNlY3Rpb25UaXRsZSIsInRpdGxlIiwiZ2V0VGl0bGUiLCJzZWN0aW9uRGV0YWlscyIsImNsYXNzZXNUb0FkZCIsIlNldCIsInNlY3Rpb25Pbmx5Q29udGVudCIsImNvbnRlbnRSb2xlIiwiZ2V0U2VjdGlvbkNvbnRlbnRSb2xlIiwiaW5mb0Zyb21Qcm92aWRlciIsImdldERhdGFGcm9tUHJvdmlkZXIiLCJzZXRUaXRsZSIsInNldFNob3dUaXRsZSIsImFkZCIsImdldFRleHQiLCJzZXRWaXNpYmxlIiwic2VuZERhdGFUb0NvbnN1bWVyIiwiaGFzTXVsdGlwbGVTdWJzZWN0aW9ucyIsInRpdGxlTGV2ZWwiLCJnZXRUaXRsZUxldmVsIiwiaGVhZGVyU3R5bGUiLCJtdWx0aXBsZVN1YlNlY3Rpb25zV2l0aFJldXNlQ29tcG9uZW50Iiwic2V0VGV4dCIsInNldFRpdGxlU3R5bGUiLCJzZXRMZXZlbCIsInZCb3hJdGVtcyIsImdldEl0ZW1zIiwidkJveEl0ZW0iLCJoZWFkZXJUb29sYmFyIiwiZ2V0Q29udGVudCIsImNvbnRyb2wiLCJub3Rlc1RpdGxlIiwiQXJyYXkiLCJmcm9tIiwiaGFzIiwiT2JqZWN0UGFnZVNlY3Rpb24iLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlNlY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnRpZXNPZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBtaXhpbiwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgKiBhcyBIb29rU3VwcG9ydCBmcm9tIFwic2FwL2ZlL2Jhc2UvSG9va1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgRkVWaWV3IH0gZnJvbSBcInNhcC9mZS9jb3JlL0Jhc2VDb250cm9sbGVyXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBUZW1wbGF0ZUNvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvVGVtcGxhdGVDb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgT2JqZWN0UGFnZU1hbmlmZXN0U2V0dGluZ3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgRlBNSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0ZQTUhlbHBlclwiO1xuaW1wb3J0IHR5cGUgSVNpbmdsZVNlY3Rpb25Db250cmlidXRvciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9zZWN0aW9uL0lTaW5nbGVTZWN0aW9uQ29udHJpYnV0b3JcIjtcbmltcG9ydCBTZWN0aW9uU3RhdGVIYW5kbGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL3NlY3Rpb24vbWl4aW4vU2VjdGlvblN0YXRlSGFuZGxlclwiO1xuaW1wb3J0IHR5cGUgU3ViU2VjdGlvbkJsb2NrIGZyb20gXCJzYXAvZmUvdGVtcGxhdGVzL09iamVjdFBhZ2UvY29udHJvbHMvU3ViU2VjdGlvbkJsb2NrXCI7XG5pbXBvcnQgdHlwZSBPdmVyZmxvd1Rvb2xiYXIgZnJvbSBcInNhcC9tL092ZXJmbG93VG9vbGJhclwiO1xuaW1wb3J0IHR5cGUgVGl0bGUgZnJvbSBcInNhcC9tL1RpdGxlXCI7XG5pbXBvcnQgdHlwZSBWQm94IGZyb20gXCJzYXAvbS9WQm94XCI7XG5pbXBvcnQgdHlwZSBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSB7ICRNYW5hZ2VkT2JqZWN0U2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IENvbXBvbmVudCBmcm9tIFwic2FwL3VpL2NvcmUvQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSBEeW5hbWljU2lkZUNvbnRlbnQgZnJvbSBcInNhcC91aS9sYXlvdXQvRHluYW1pY1NpZGVDb250ZW50XCI7XG5pbXBvcnQgdHlwZSB7ICRPYmplY3RQYWdlU2VjdGlvblNldHRpbmdzIH0gZnJvbSBcInNhcC91eGFwL09iamVjdFBhZ2VTZWN0aW9uXCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlc3RyaWN0ZWQtaW1wb3J0c1xuaW1wb3J0IE9iamVjdFBhZ2VTZWN0aW9uIGZyb20gXCJzYXAvdXhhcC9PYmplY3RQYWdlU2VjdGlvblwiO1xuaW1wb3J0IHR5cGUgT2JqZWN0UGFnZVN1YlNlY3Rpb24gZnJvbSBcInNhcC91eGFwL09iamVjdFBhZ2VTdWJTZWN0aW9uXCI7XG5pbXBvcnQgdHlwZSBTdWJTZWN0aW9uIGZyb20gXCIuL3NlY3Rpb24vU3ViU2VjdGlvblwiO1xuXG50eXBlIEFkanVzdG1lbnRQcm9wcyA9IHtcblx0dGFibGVzQWRqdXN0ZWQ/OiBib29sZWFuO1xufTtcblxudHlwZSBBZGp1c3RtZW50UmVzdWx0cyA9IHtcblx0c3ViU2VjdGlvbjogT2JqZWN0UGFnZVN1YlNlY3Rpb247XG59ICYgQWRqdXN0bWVudFByb3BzO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLlNlY3Rpb25cIiwgeyBkZXNpZ250aW1lOiBcInNhcC91eGFwL2Rlc2lnbnRpbWUvT2JqZWN0UGFnZVNlY3Rpb24uZGVzaWdudGltZVwiIH0pXG5AbWl4aW4oU2VjdGlvblN0YXRlSGFuZGxlcilcbmNsYXNzIFNlY3Rpb24gZXh0ZW5kcyBPYmplY3RQYWdlU2VjdGlvbiB7XG5cdC8vIFRPRE86IHRoaXMgcHJvYmFibHkgbWFrZXMgc2Vuc2UgdG8gYmUgYW4gZXZlbnQuIEJ1dCB3ZSBjYW4gYWRkcmVzcyB0aGlzIGxhdGVyLlxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdG9uU2VjdGlvbkxvYWRlZCE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHR1c2VTaW5nbGVUZXh0QXJlYUZpZWxkQXNOb3RlcyE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIFBhdGggdG8gdGhlIGFwcGx5IHN0YXRlIGhhbmRsZXIgdG8gYmUgY2FsbGVkIGR1cmluZyBzdGF0ZSBpbnRlcmFjdGlvbnMuXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGFwcGx5U3RhdGVIYW5kbGVyPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBQYXRoIHRvIHRoZSByZXRyaWV2ZSBzdGF0ZSBoYW5kbGVyIHRvIGJlIGNhbGxlZCBkdXJpbmcgc3RhdGUgaW50ZXJhY3Rpb25zLlxuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRyZXRyaWV2ZVN0YXRlSGFuZGxlcj86IHN0cmluZztcblxuXHRjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiAkT2JqZWN0UGFnZVNlY3Rpb25TZXR0aW5ncyAmIFByb3BlcnRpZXNPZjxTZWN0aW9uPiwgb3RoZXJzPzogJE9iamVjdFBhZ2VTZWN0aW9uU2V0dGluZ3MpIHtcblx0XHRzdXBlcihwcm9wZXJ0aWVzIGFzIHVua25vd24gYXMgc3RyaW5nLCBvdGhlcnMpO1xuXHRcdHRoaXMucmVnaXN0ZXJEZWxlZ2F0ZSgpO1xuXHR9XG5cblx0X3NlY3Rpb25Mb2FkTWV0aG9kTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdF9zZWN0aW9uTG9hZE1vZHVsZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHRwcml2YXRlIHJlZ2lzdGVyRGVsZWdhdGUoKTogdm9pZCB7XG5cdFx0Y29uc3QgZXZlbnREZWxlZ2F0ZXMgPSB7XG5cdFx0XHRvbkFmdGVyUmVuZGVyaW5nOiAoKTogdm9pZCA9PiB7XG5cdFx0XHRcdGxldCBzdWJTZWN0aW9ucyA9IHRoaXMuZ2V0U3ViU2VjdGlvbnMoKTtcblx0XHRcdFx0aWYgKHN1YlNlY3Rpb25zLmxlbmd0aCkge1xuXHRcdFx0XHRcdHN1YlNlY3Rpb25zLmZvckVhY2goKHN1YlNlY3Rpb246IFN1YlNlY3Rpb24pID0+IHtcblx0XHRcdFx0XHRcdC8qIHdlIGNoZWNrIGluZGl2aWR1YWwgc3Vic2VjdGlvbiBmb3IgYmxvY2tzLiBJZiBub3QgYXZhaWxhYmxlIHdlIHdhaXQgZm9yIHRoZW0gdG8gYmUgYWRkZWQob25CZWZvcmVSZW5kZXJpbmcpIGJlZm9yZSB0cmlnZ2VyaW5nIHRpdGxlIG1lcmdlIGxvZ2ljcyAqL1xuXHRcdFx0XHRcdFx0aWYgKHN1YlNlY3Rpb24uZ2V0QmxvY2tzKCk/Lmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBzdWJTZWN0aW9uRXZlbnREZWxlZ2F0ZSA9IHtcblx0XHRcdFx0XHRcdFx0XHRvbkJlZm9yZVJlbmRlcmluZzogKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5jaGVja0FuZEFkanVzdFNlY3Rpb25Db250ZW50KCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRzdWJTZWN0aW9uLnJlbW92ZUV2ZW50RGVsZWdhdGUoc3ViU2VjdGlvbkV2ZW50RGVsZWdhdGUpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0c3ViU2VjdGlvbi5hZGRFdmVudERlbGVnYXRlKHN1YlNlY3Rpb25FdmVudERlbGVnYXRlKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuY2hlY2tBbmRBZGp1c3RTZWN0aW9uQ29udGVudCgpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuY2hlY2tBbmRBZGp1c3RTZWN0aW9uQ29udGVudCgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fTtcblxuXHRcdHRoaXMuYWRkRXZlbnREZWxlZ2F0ZShldmVudERlbGVnYXRlcyk7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBmdW5jdGlvbiBjaGVja3MgZm9yIHRoZSBzZWN0aW9uIGNvbnRlbnQgYW5kIGFkanVzdHMgdGhlIHNlY3Rpb24gYmFzZWQgb24gdGhlIGF2YWlsYWJsZSBjb250ZW50LlxuXHQgKiBAcHJvdGVjdGVkXG5cdCAqL1xuXHRjaGVja0FuZEFkanVzdFNlY3Rpb25Db250ZW50KCk6IHZvaWQge1xuXHRcdGNvbnN0IHZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KHRoaXMpO1xuXHRcdGlmICh0aGlzLnVzZVNpbmdsZVRleHRBcmVhRmllbGRBc05vdGVzKSB7XG5cdFx0XHR0aGlzLmNoZWNrQW5kQWRqdXN0U2VjdGlvbkNvbnRlbnRGb3JUZXh0QXJlYSgpO1xuXHRcdH1cblx0XHR0aGlzLmNoZWNrQW5kQWRqdXN0Rm9yU2luZ2xlQ29udGVudCh2aWV3KTtcblx0fVxuXG5cdHNldE9uU2VjdGlvbkxvYWRlZChvblNlY3Rpb25Mb2FkZWQ6IHN0cmluZyk6IHZvaWQge1xuXHRcdGNvbnN0IGxvYWRTcGxpdCA9IG9uU2VjdGlvbkxvYWRlZC5zcGxpdChcIi5cIik7XG5cdFx0dGhpcy5fc2VjdGlvbkxvYWRNZXRob2ROYW1lID0gbG9hZFNwbGl0Py5wb3AoKTtcblx0XHR0aGlzLl9zZWN0aW9uTG9hZE1vZHVsZU5hbWUgPSBsb2FkU3BsaXQ/LmpvaW4oXCIvXCIpO1xuXHRcdHRoaXMuc2V0UHJvcGVydHkoXCJvblNlY3Rpb25Mb2FkZWRcIiwgb25TZWN0aW9uTG9hZGVkKTtcblx0fVxuXG5cdC8vIFRPRE86IENoZWNrIGlmIG9uQWZ0ZXJSZW5kZXJpbmcgY2FuIGJlIHVzZWQgaW5zdGVhZCBvZiBhcHBseVNldHRpbmdzLlxuXHRhcHBseVNldHRpbmdzKG1TZXR0aW5nczogJE1hbmFnZWRPYmplY3RTZXR0aW5ncywgb1Njb3BlPzogb2JqZWN0KTogdGhpcyB7XG5cdFx0c3VwZXIuYXBwbHlTZXR0aW5ncyhtU2V0dGluZ3MsIG9TY29wZSk7XG5cdFx0Y29uc3QgdGVtcGxhdGVDb21wb25lbnQgPSBDb21wb25lbnQuZ2V0T3duZXJDb21wb25lbnRGb3IodGhpcykgYXMgVGVtcGxhdGVDb21wb25lbnQ7XG5cdFx0Y29uc3QgcGFnZUNvbnRyb2xsZXIgPSB0ZW1wbGF0ZUNvbXBvbmVudC5nZXRSb290Q29udHJvbGxlcigpO1xuXHRcdGlmIChwYWdlQ29udHJvbGxlcikge1xuXHRcdFx0SG9va1N1cHBvcnQuaW5pdENvbnRyb2xsZXJFeHRlbnNpb25Ib29rSGFuZGxlcnModGhpcywgcGFnZUNvbnRyb2xsZXIpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBVcGRhdGUgc3Vic2VjdGlvbiBiYWNrZ3JvdW5kIGNsYXNzIGJhc2VkIG9uIHRhYmxlIGFkanVzdG1lbnRzIG1hZGUuXG5cdCAqIEBwYXJhbSBhZGp1c3RtZW50UmVzdWx0cyBBcnJheSBvZiBhZGp1c3RtZW50IHJlc3VsdHNcblx0ICovXG5cdHVwZGF0ZU5vblRhYmxlU3ViU2VjdGlvbkJhY2tncm91bmQoYWRqdXN0bWVudFJlc3VsdHM6IEFkanVzdG1lbnRSZXN1bHRzW10pOiB2b2lkIHtcblx0XHRpZiAodGhpcy5oYXNTdHlsZUNsYXNzKFwic2FwVWlUYWJsZU9uT2JqZWN0UGFnZUFkanVzdG1lbnRzRm9yU2VjdGlvblwiKSkge1xuXHRcdFx0YWRqdXN0bWVudFJlc3VsdHMuZm9yRWFjaCgoeyBzdWJTZWN0aW9uLCB0YWJsZXNBZGp1c3RlZCB9KSA9PiB7XG5cdFx0XHRcdGlmICh0YWJsZXNBZGp1c3RlZCkge1xuXHRcdFx0XHRcdHN1YlNlY3Rpb24ucmVtb3ZlU3R5bGVDbGFzcyhcInNhcFVpQWRqdXN0ZWRTZWN0aW9uU3Vic2VjdGlvbldpdGhvdXRUYWJsZVwiKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzdWJTZWN0aW9uLmFkZFN0eWxlQ2xhc3MoXCJzYXBVaUFkanVzdGVkU2VjdGlvblN1YnNlY3Rpb25XaXRob3V0VGFibGVcIik7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIG1ldGhvZCBsb29wcyB0aHJvdWdoIGFsbCB0aGUgdmlzaWJsZSBzdWJzZWN0aW9ucyBhbmQgdHJpZ2dlcnMgdGhlIHRleHQgYXJlYSBmbG93IGlmIHRoYXRzIHRoZSBvbmx5IHNpbmdsZSBjb250cm9sIHdpdGhpbiB0aGUgc2VjdGlvbi5cblx0ICovXG5cdGNoZWNrQW5kQWRqdXN0U2VjdGlvbkNvbnRlbnRGb3JUZXh0QXJlYSgpOiB2b2lkIHtcblx0XHRjb25zdCB2aXNpYmxlU3ViU2VjdGlvbnMgPSB0aGlzLmdldFZpc2libGVTdWJTZWN0aW9ucygpO1xuXHRcdGNvbnN0IGFkanVzdG1lbnRSZXN1bHRzID0gdmlzaWJsZVN1YlNlY3Rpb25zLnJlZHVjZSgocmVzdWx0czogQWRqdXN0bWVudFJlc3VsdHNbXSwgc3ViU2VjdGlvbjogT2JqZWN0UGFnZVN1YlNlY3Rpb24pID0+IHtcblx0XHRcdGxldCB0YWJsZXNBZGp1c3RlZDtcblx0XHRcdGNvbnN0IGNvbnRlbnQgPSB0aGlzLmdldFNpbmdsZUNvbnRlbnQoW3N1YlNlY3Rpb25dKTtcblx0XHRcdGlmIChjb250ZW50KSB7XG5cdFx0XHRcdHRhYmxlc0FkanVzdGVkID0gdGhpcy5hZGp1c3RGb3JTaW5nbGVDb250ZW50KGNvbnRlbnQpLnRhYmxlc0FkanVzdGVkO1xuXHRcdFx0fVxuXHRcdFx0cmVzdWx0cy5wdXNoKHsgc3ViU2VjdGlvbiwgdGFibGVzQWRqdXN0ZWQgfSk7XG5cdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHR9LCBbXSk7XG5cdFx0dGhpcy51cGRhdGVOb25UYWJsZVN1YlNlY3Rpb25CYWNrZ3JvdW5kKGFkanVzdG1lbnRSZXN1bHRzKTtcblx0fVxuXG5cdGNoZWNrQW5kQWRqdXN0Rm9yU2luZ2xlQ29udGVudCh2aWV3OiBGRVZpZXcpOiB2b2lkIHwgUHJvbWlzZTx1bmtub3duPiB7XG5cdFx0aWYgKCh2aWV3Py5nZXRWaWV3RGF0YSgpIGFzIE9iamVjdFBhZ2VNYW5pZmVzdFNldHRpbmdzKT8uc2VjdGlvbkxheW91dCA9PT0gXCJQYWdlXCIpIHtcblx0XHRcdGNvbnN0IHNpbmdsZUNvbnRlbnQgPSB0aGlzLmdldFNpbmdsZUNvbnRlbnQoKTtcblx0XHRcdGlmIChcblx0XHRcdFx0c2luZ2xlQ29udGVudCAmJlxuXHRcdFx0XHQoc2luZ2xlQ29udGVudC5pc0EoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLnNlY3Rpb24uSVNpbmdsZVNlY3Rpb25Db250cmlidXRvclwiKSB8fFxuXHRcdFx0XHRcdHRoaXMuY2hlY2tJZk5vdGVzUmV1c2VDb21wb25lbnQoc2luZ2xlQ29udGVudCkpXG5cdFx0XHQpIHtcblx0XHRcdFx0Y29uc3QgeyB0YWJsZXNBZGp1c3RlZDogc2luZ2xlQ29udGVudFRhYmxlQWRqdXN0ZWQgfSA9IHRoaXMuYWRqdXN0Rm9yU2luZ2xlQ29udGVudChzaW5nbGVDb250ZW50KTtcblx0XHRcdFx0Y29uc3Qgc3ViU2VjdGlvbnMgPSB0aGlzLmdldFZpc2libGVTdWJTZWN0aW9ucygpO1xuXHRcdFx0XHR0aGlzLnVwZGF0ZU5vblRhYmxlU3ViU2VjdGlvbkJhY2tncm91bmQoW3sgc3ViU2VjdGlvbjogc3ViU2VjdGlvbnNbMF0sIHRhYmxlc0FkanVzdGVkOiBzaW5nbGVDb250ZW50VGFibGVBZGp1c3RlZCB9XSk7XG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMuX3NlY3Rpb25Mb2FkTW9kdWxlTmFtZSAmJiB0aGlzLl9zZWN0aW9uTG9hZE1ldGhvZE5hbWUpIHtcblx0XHRcdFx0cmV0dXJuIEZQTUhlbHBlci5sb2FkTW9kdWxlQW5kQ2FsbE1ldGhvZCh0aGlzLl9zZWN0aW9uTG9hZE1vZHVsZU5hbWUsIHRoaXMuX3NlY3Rpb25Mb2FkTWV0aG9kTmFtZSwgdmlldywgdGhpcyk7XG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMuZ2V0U3ViU2VjdGlvbnMoKS5sZW5ndGggPiAxKSB7XG5cdFx0XHRcdC8vIGNhbGwgbWVyZ2UgdGl0bGUgbG9naWMgZm9yIHN1YnNlY3Rpb25zXG5cdFx0XHRcdHRoaXMuY2hlY2tBbmRBZGp1c3RUaXRsZXMoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdExvZy5kZWJ1ZyhcIlNlY3Rpb24gY2Fubm90IGJlIGFkanVzdGVkIGZvciBzaW5nbGUgY29udGVudCA6IEludGVyZmFjZSAnSVNpbmdsZVNlY3Rpb25Db250cmlidXRvcicgaXMgbm90IGltcGxlbWVudGVkXCIpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmNoZWNrQW5kQWRqdXN0VGl0bGVzKCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqXG5cdCAqIEBwYXJhbSBzaW5nbGVDb250ZW50IE9iamVjdCBvZiB0aGUgY29udGVudCBwcmVzZW50IHdpdGhpbiB0aGUgc2VjdGlvbi5cblx0ICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgY29udGVudCBwcmVzZW50IGlzIGEgbm90ZXMgcmV1c2UgY29tcG9uZW50XG5cdCAqL1xuXHRjaGVja0lmTm90ZXNSZXVzZUNvbXBvbmVudChzaW5nbGVDb250ZW50OiBNYW5hZ2VkT2JqZWN0KTogYm9vbGVhbiB7XG5cdFx0aWYgKHNpbmdsZUNvbnRlbnQuaXNBKFwic2FwLm0uVkJveFwiKSAmJiBzaW5nbGVDb250ZW50LmdldElkKCkuaW5jbHVkZXMoXCJOb3RlU2VjdGlvblwiKSkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBmb3IgdGhlIHZpc2libGUgc3Vic2VjdGlvbnMgYW5kIGNoZWNrcyBmb3IgdGhlIGNvbGxlY3Rpb24gZmFjZXQgbGFiZWwsIElmIHByZXNlbnQgdGhlbiB3ZSBtZXJnZSB0aGUgdGl0bGUgYW5kIHRoaXMgZnVuY3Rpb24gaGFuZGxlcyB0aGUgRHluYW1pY1NpZGVDb25lbnQgYXMgd2VsbC5cblx0ICovXG5cdGNoZWNrQW5kQWRqdXN0VGl0bGVzKCk6IHZvaWQge1xuXHRcdGNvbnN0IHZpc2libGVTdWJTZWN0aW9ucyA9IHRoaXMuZ2V0VmlzaWJsZVN1YlNlY3Rpb25zKCk7XG5cdFx0aWYgKHZpc2libGVTdWJTZWN0aW9ucy5sZW5ndGggPT09IDEpIHtcblx0XHRcdGNvbnN0IHsgdGFibGVzQWRqdXN0ZWQ6IHNpbmdsZVN1YlNlY3Rpb25UYWJsZUFkanVzdGVkIH0gPSB0aGlzLmFkanVzdFNlY3Rpb25Db250ZW50V2l0aFRpdGxlKHZpc2libGVTdWJTZWN0aW9uc1swXSk7XG5cdFx0XHR0aGlzLnVwZGF0ZU5vblRhYmxlU3ViU2VjdGlvbkJhY2tncm91bmQoW3sgc3ViU2VjdGlvbjogdmlzaWJsZVN1YlNlY3Rpb25zWzBdLCB0YWJsZXNBZGp1c3RlZDogc2luZ2xlU3ViU2VjdGlvblRhYmxlQWRqdXN0ZWQgfV0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBhZGp1c3RtZW50UmVzdWx0cyA9IHZpc2libGVTdWJTZWN0aW9ucy5yZWR1Y2UoKHJlc3VsdHM6IEFkanVzdG1lbnRSZXN1bHRzW10sIHN1YnNlY3Rpb246IE9iamVjdFBhZ2VTdWJTZWN0aW9uKSA9PiB7XG5cdFx0XHRcdGxldCB0YWJsZXNBZGp1c3RlZDtcblx0XHRcdFx0bGV0IGNvbnRlbnQ7XG5cdFx0XHRcdGNvbnN0IGJsb2NrcyA9IHN1YnNlY3Rpb24uZ2V0QmxvY2tzKCk7XG5cdFx0XHRcdC8vIEluIGNhc2Ugb2YgVGFiIGxheW91dCwgd2UgbmVlZCB0byBjaGVjayBpZiB0aGUgc2VjdGlvbiBoYXMgb25seSBvbmUgc3Vic2VjdGlvbiBhbmQgdGhhdCBzdWJzZWN0aW9uIGhhcyBvbmx5IG9uZSBjb250cm9sXG5cdFx0XHRcdC8vIEluIGNhc2Ugb2YgY29sbGVjdGlvbiBGYWNldCwgdGhlIGZpcnN0IGJsb2NrIHdpbGwgYmUgVGl0bGUgYW5kIHRoZSBzZWNvbmQgYmxvY2sgd2lsbCBiZSBTdWJTZWN0aW9uQmxvY2tcblx0XHRcdFx0aWYgKGJsb2Nrcy5sZW5ndGggPT09IDIgJiYgYmxvY2tzWzFdPy5pc0E8U3ViU2VjdGlvbkJsb2NrPihcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5jb250cm9scy5TdWJTZWN0aW9uQmxvY2tcIikpIHtcblx0XHRcdFx0XHR0YWJsZXNBZGp1c3RlZCA9IHRoaXMuYWRqdXN0U2VjdGlvbkNvbnRlbnRXaXRoVGl0bGUoc3Vic2VjdGlvbikudGFibGVzQWRqdXN0ZWQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gSW4gY2FzZSBvZiBSZWZlcmVuY2UgRmFjZXQsIHRoZSBmaXJzdCBibG9jayB3aWxsIGJlIFN1YlNlY3Rpb25CbG9ja1xuXHRcdFx0XHRlbHNlIGlmIChibG9ja3MubGVuZ3RoID09PSAxICYmIGJsb2Nrc1swXT8uaXNBPFN1YlNlY3Rpb25CbG9jaz4oXCJzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuY29udHJvbHMuU3ViU2VjdGlvbkJsb2NrXCIpKSB7XG5cdFx0XHRcdFx0Y29udGVudCA9IGJsb2Nrc1swXS5nZXRBZ2dyZWdhdGlvbihcImNvbnRlbnRcIikgYXMgTWFuYWdlZE9iamVjdDtcblx0XHRcdFx0XHRpZiAoY29udGVudC5pc0EoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLnNlY3Rpb24uSVNpbmdsZVNlY3Rpb25Db250cmlidXRvclwiKSkge1xuXHRcdFx0XHRcdFx0dGFibGVzQWRqdXN0ZWQgPSB0aGlzLmFkanVzdEZvclNpbmdsZUNvbnRlbnQoY29udGVudCwge1xuXHRcdFx0XHRcdFx0XHRzZWN0aW9uRnJvbVJlZmVyZW5jZUZhY2V0OiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRTdWJTZWN0aW9uOiBzdWJzZWN0aW9uLFxuXHRcdFx0XHRcdFx0XHRzaG93VGl0bGU6IHRoaXMuZ2V0VmlzaWJsZVN1YlNlY3Rpb25zKCkubGVuZ3RoID4gMVxuXHRcdFx0XHRcdFx0fSkudGFibGVzQWRqdXN0ZWQ7XG5cdFx0XHRcdFx0fSBlbHNlIGlmICgoY29udGVudCBhcyBEeW5hbWljU2lkZUNvbnRlbnQpPy5pc0EoXCJzYXAudWkubGF5b3V0LkR5bmFtaWNTaWRlQ29udGVudFwiKSkge1xuXHRcdFx0XHRcdFx0Y29udGVudCA9XG5cdFx0XHRcdFx0XHRcdChjb250ZW50IGFzIER5bmFtaWNTaWRlQ29udGVudCkuZ2V0TWFpbkNvbnRlbnQgaW5zdGFuY2VvZiBGdW5jdGlvbiAmJlxuXHRcdFx0XHRcdFx0XHQoY29udGVudCBhcyBEeW5hbWljU2lkZUNvbnRlbnQpPy5nZXRNYWluQ29udGVudCgpO1xuXHRcdFx0XHRcdFx0aWYgKGNvbnRlbnQgJiYgY29udGVudC5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0XHRcdFx0Y29udGVudCA9IGNvbnRlbnRbMF07XG5cdFx0XHRcdFx0XHRcdHRhYmxlc0FkanVzdGVkID0gdGhpcy5hZGp1c3RGb3JTaW5nbGVDb250ZW50KGNvbnRlbnQsIHtcblx0XHRcdFx0XHRcdFx0XHRzZWN0aW9uRnJvbVJlZmVyZW5jZUZhY2V0OiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdFN1YlNlY3Rpb246IHN1YnNlY3Rpb25cblx0XHRcdFx0XHRcdFx0fSkudGFibGVzQWRqdXN0ZWQ7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJlc3VsdHMucHVzaCh7IHN1YlNlY3Rpb246IHN1YnNlY3Rpb24sIHRhYmxlc0FkanVzdGVkIH0pO1xuXHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdH0sIFtdKTtcblx0XHRcdHRoaXMudXBkYXRlTm9uVGFibGVTdWJTZWN0aW9uQmFja2dyb3VuZChhZGp1c3RtZW50UmVzdWx0cyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGZvciB0aGUgZm9yIHRoZSBjb2xsZWN0aW9uIGZhY2V0IGxhYmVsLElmIHByZXNlbnQgdGhlbiB3ZSBtZXJnZSB0aGUgdGl0bGUuXG5cdCAqIEBwYXJhbSBzdWJzZWN0aW9uIE9iamVjdFBhZ2UgU3ViU2VjdGlvblxuXHQgKi9cblx0YWRqdXN0U2VjdGlvbkNvbnRlbnRXaXRoVGl0bGUoc3Vic2VjdGlvbjogT2JqZWN0UGFnZVN1YlNlY3Rpb24pOiBBZGp1c3RtZW50UmVzdWx0cyB7XG5cdFx0bGV0IGFkanVzdG1lbnRQcm9wczogQWRqdXN0bWVudFByb3BzID0ge307XG5cdFx0Y29uc3QgYmxvY2tzID0gc3Vic2VjdGlvbi5nZXRCbG9ja3MoKTtcblx0XHRsZXQgY29udGVudDtcblx0XHRpZiAoYmxvY2tzLmxlbmd0aCA9PT0gMiAmJiBibG9ja3NbMV0uaXNBPFN1YlNlY3Rpb25CbG9jaz4oXCJzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuY29udHJvbHMuU3ViU2VjdGlvbkJsb2NrXCIpKSB7XG5cdFx0XHRjb250ZW50ID0gYmxvY2tzWzFdLmdldEFnZ3JlZ2F0aW9uKFwiY29udGVudFwiKSBhcyBNYW5hZ2VkT2JqZWN0O1xuXHRcdFx0aWYgKGNvbnRlbnQgJiYgY29udGVudC5pc0EoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLnNlY3Rpb24uSVNpbmdsZVNlY3Rpb25Db250cmlidXRvclwiKSAmJiBibG9ja3NbMF0uaXNBPFRpdGxlPihcInNhcC5tLlRpdGxlXCIpKSB7XG5cdFx0XHRcdGFkanVzdG1lbnRQcm9wcyA9IHRoaXMuYWRqdXN0Rm9yU2luZ2xlQ29udGVudChjb250ZW50LCB7XG5cdFx0XHRcdFx0c2VjdGlvbmZyb21Db2xsZWN0aW9uRmFjZXQ6IHRydWUsXG5cdFx0XHRcdFx0VGl0bGU6IGJsb2Nrc1swXSxcblx0XHRcdFx0XHRTdWJTZWN0aW9uOiBzdWJzZWN0aW9uLFxuXHRcdFx0XHRcdHNob3dUaXRsZTogdGhpcy5nZXRWaXNpYmxlU3ViU2VjdGlvbnMoKS5sZW5ndGggPiAxXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSBlbHNlIGlmIChjb250ZW50ICYmIGNvbnRlbnQuaXNBPER5bmFtaWNTaWRlQ29udGVudD4oXCJzYXAudWkubGF5b3V0LkR5bmFtaWNTaWRlQ29udGVudFwiKSkge1xuXHRcdFx0XHRjb250ZW50ID0gY29udGVudC5nZXRNYWluQ29udGVudCBpbnN0YW5jZW9mIEZ1bmN0aW9uICYmIGNvbnRlbnQ/LmdldE1haW5Db250ZW50KCk7XG5cdFx0XHRcdGlmIChjb250ZW50ICYmIGNvbnRlbnQubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0Y29udGVudCA9IGNvbnRlbnRbMF07XG5cdFx0XHRcdFx0YWRqdXN0bWVudFByb3BzID0gdGhpcy5hZGp1c3RGb3JTaW5nbGVDb250ZW50KGNvbnRlbnQsIHtcblx0XHRcdFx0XHRcdHNlY3Rpb25mcm9tQ29sbGVjdGlvbkZhY2V0OiB0cnVlLFxuXHRcdFx0XHRcdFx0VGl0bGU6IGJsb2Nrc1swXSBhcyBUaXRsZSxcblx0XHRcdFx0XHRcdFN1YlNlY3Rpb246IHN1YnNlY3Rpb25cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4geyBzdWJTZWN0aW9uOiBzdWJzZWN0aW9uLCB0YWJsZXNBZGp1c3RlZDogYWRqdXN0bWVudFByb3BzLnRhYmxlc0FkanVzdGVkIH07XG5cdH1cblxuXHRnZXRTaW5nbGVDb250ZW50KHZpc2libGVTdWJTZWN0aW9ucz86IE9iamVjdFBhZ2VTdWJTZWN0aW9uW10pOiBNYW5hZ2VkT2JqZWN0IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBzdWJTZWN0aW9ucyA9IHZpc2libGVTdWJTZWN0aW9ucyA/PyB0aGlzLmdldFZpc2libGVTdWJTZWN0aW9ucygpO1xuXHRcdGlmIChzdWJTZWN0aW9ucy5sZW5ndGggPT09IDEpIHtcblx0XHRcdGNvbnN0IGJsb2NrcyA9IHN1YlNlY3Rpb25zWzBdLmdldEJsb2NrcygpO1xuXHRcdFx0aWYgKGJsb2Nrcy5sZW5ndGggPT09IDEgJiYgYmxvY2tzWzBdLmlzQTxTdWJTZWN0aW9uQmxvY2s+KFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLmNvbnRyb2xzLlN1YlNlY3Rpb25CbG9ja1wiKSkge1xuXHRcdFx0XHRyZXR1cm4gYmxvY2tzWzBdLmdldEFnZ3JlZ2F0aW9uKFwiY29udGVudFwiKSBhcyBNYW5hZ2VkT2JqZWN0O1xuXHRcdFx0fVxuXHRcdFx0Ly9JZiB0aGVyZSBpcyBhbiBpbnZpc2libGUgdGV4dCBiZWZvcmUgYSBzdGFuZGFyZCBidWlsZGluZyBibG9jaywgdGhlbiBhbHNvIHRoZSBtZXJnZSB0aXRsZSBsb2dpYyBzaG91bGQgYmUgYXBwbGllZCBhcyBpdHMgc3RpbGwgYSBzaW5nbGUgY29udGVudFxuXHRcdFx0ZWxzZSBpZiAoXG5cdFx0XHRcdGJsb2Nrcy5sZW5ndGggPT09IDIgJiZcblx0XHRcdFx0YmxvY2tzWzBdLmlzQShcInNhcC51aS5jb3JlLkludmlzaWJsZVRleHRcIikgJiZcblx0XHRcdFx0YmxvY2tzWzFdLmlzQTxTdWJTZWN0aW9uQmxvY2s+KFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLmNvbnRyb2xzLlN1YlNlY3Rpb25CbG9ja1wiKVxuXHRcdFx0KVxuXHRcdFx0XHRyZXR1cm4gYmxvY2tzWzFdLmdldEFnZ3JlZ2F0aW9uKFwiY29udGVudFwiKSBhcyBNYW5hZ2VkT2JqZWN0O1xuXHRcdH1cblx0fVxuXG5cdGdldFZpc2libGVTdWJTZWN0aW9ucygpOiBPYmplY3RQYWdlU3ViU2VjdGlvbltdIHtcblx0XHRjb25zdCBzdWJTZWN0aW9ucyA9IHRoaXMuZ2V0U3ViU2VjdGlvbnMoKTtcblx0XHRyZXR1cm4gc3ViU2VjdGlvbnMucmVkdWNlKCh2aXNpYmxlU3ViU2VjdGlvbnM6IE9iamVjdFBhZ2VTdWJTZWN0aW9uW10sIHN1YlNlY3Rpb24pID0+IHtcblx0XHRcdGlmIChzdWJTZWN0aW9uLmdldFZpc2libGUoKSkge1xuXHRcdFx0XHR2aXNpYmxlU3ViU2VjdGlvbnMucHVzaChzdWJTZWN0aW9uKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB2aXNpYmxlU3ViU2VjdGlvbnM7XG5cdFx0fSwgW10gYXMgT2JqZWN0UGFnZVN1YlNlY3Rpb25bXSk7XG5cdH1cblxuXHRnZXRTZWN0aW9uVGl0bGUoKTogc3RyaW5nIHtcblx0XHRsZXQgdGl0bGUgPSB0aGlzLmdldFRpdGxlKCk7XG5cdFx0aWYgKHRoaXMuZ2V0VmlzaWJsZVN1YlNlY3Rpb25zKCkubGVuZ3RoID09PSAxKSB7XG5cdFx0XHR0aXRsZSA9IHRoaXMuZ2V0VmlzaWJsZVN1YlNlY3Rpb25zKClbMF0uZ2V0VGl0bGUoKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRpdGxlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkanVzdCB0aGUgc2VjdGlvbiBhbmQgc3Vic2VjdGlvbiBiYXNlZCBvbiB0aGUgYXZhaWxhYmxlIGNvbnRlbnQuXG5cdCAqIEBwYXJhbSBzaW5nbGVDb250ZW50IENvbnRlbnRcblx0ICogQHBhcmFtIHNlY3Rpb25EZXRhaWxzIERldGFpbHNcblx0ICogQHJldHVybnMgSXMgdGhlIHNlY3Rpb24gYWRqdXN0ZWQuXG5cdCAqL1xuXHRhZGp1c3RGb3JTaW5nbGVDb250ZW50KFxuXHRcdHNpbmdsZUNvbnRlbnQ6IE1hbmFnZWRPYmplY3QsXG5cdFx0c2VjdGlvbkRldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCBPYmplY3RQYWdlU3ViU2VjdGlvbiB8IFRpdGxlIHwgYm9vbGVhbj5cblx0KTogQWRqdXN0bWVudFByb3BzIHtcblx0XHQvLyBzYXBVaVRhYmxlT25PYmplY3RQYWdlQWRqdXN0bWVudHNGb3JTZWN0aW9uIGNsYXNzIGF0IGxldmVsIG1ha2VzIGJhY2tncm91bmQgb2Ygc3Vic2VjdGlvbiB0aXRsZXMgdHJhbnNwYXJlbnQuXG5cdFx0Ly8gVGhpcyB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kIGlzIHByb3BhZ2F0ZWQgdG8gY29udGVudHMgdGhhdCBhcmUgZXhwZWN0ZWQgdG8gc2hvdyBvcGFxdWUgYmFja2dyb3VuZHMgYnkgZGVmYXVsdC5cblx0XHQvLyBXZSBuZWVkIHRvIGFkZCBleGNsdXNpb24gY2xhc3MgXCJzYXBVaUFkanVzdGVkU2VjdGlvblN1YnNlY3Rpb25XaXRob3V0VGFibGVcIiB0byB0aGUgc3Vic2VjdGlvbiB0aGF0IGRvZXNuJ3QgbmVlZFxuXHRcdGNvbnN0IGNsYXNzZXNUb0FkZDogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG5cdFx0Y29uc3Qgc2VjdGlvbk9ubHlDb250ZW50ID0gc2luZ2xlQ29udGVudCBhcyB1bmtub3duIGFzIElTaW5nbGVTZWN0aW9uQ29udHJpYnV0b3I7XG5cdFx0Ly8gVGhpcyBmdW5jdGlvbiB3aWxsIGFsc28gYmUgY2FsbGVkIGZyb20gdGhlIGV4dGVuc2lvbkFQSSBhbG9uZyB3aXRoIHNvbWUgY29udHJvbHMgYnkgdGhlIGFwcGxpY2F0aW9uIGRldmVsb3BlciwgdGhlIGJlbG93IGNoZWNrIGlzIGFkZGVkIHRvIGNvdmVyIHRoZSBjYXNlcyB3aGVyZSB0aGUgY29udHJvbHMgcGFzc2VkIGxpa2Ugc2FwLm0uVGl0bGUgYXJlIG5vdCBpbXBsZW1lbnRpbmcgdGhlIGludGVyZmFjZVxuXHRcdGNvbnN0IGNvbnRlbnRSb2xlID0gc2VjdGlvbk9ubHlDb250ZW50LmdldFNlY3Rpb25Db250ZW50Um9sZSAmJiBzZWN0aW9uT25seUNvbnRlbnQuZ2V0U2VjdGlvbkNvbnRlbnRSb2xlKCk7XG5cdFx0aWYgKGNvbnRlbnRSb2xlID09PSBcInByb3ZpZGVyXCIpIHtcblx0XHRcdGNvbnN0IGluZm9Gcm9tUHJvdmlkZXIgPVxuXHRcdFx0XHRzZWN0aW9uT25seUNvbnRlbnQuZ2V0RGF0YUZyb21Qcm92aWRlciAmJiBzZWN0aW9uT25seUNvbnRlbnQuZ2V0RGF0YUZyb21Qcm92aWRlcih0aGlzLnVzZVNpbmdsZVRleHRBcmVhRmllbGRBc05vdGVzKTtcblx0XHRcdGlmIChpbmZvRnJvbVByb3ZpZGVyICYmIHRoaXMuZ2V0VGl0bGUoKSA9PT0gaW5mb0Zyb21Qcm92aWRlci50aXRsZSkge1xuXHRcdFx0XHR0aGlzLnNldFRpdGxlKGluZm9Gcm9tUHJvdmlkZXIudGl0bGUpO1xuXHRcdFx0XHR0aGlzLnNldFNob3dUaXRsZSh0cnVlKTtcblx0XHRcdFx0Ly8gVE9ETzogQ2hlY2sgaWYgdGhpcyBpcyByZWFsbHkgbmVlZGVkP1xuXHRcdFx0XHRjbGFzc2VzVG9BZGQuYWRkKFwic2FwVWlUYWJsZU9uT2JqZWN0UGFnZUFkanVzdG1lbnRzRm9yU2VjdGlvblwiKTtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKGNvbnRlbnRSb2xlID09PSBcImNvbnN1bWVyXCIpIHtcblx0XHRcdGxldCB0aXRsZSA9IHRoaXMuZ2V0U2VjdGlvblRpdGxlKCk7XG5cdFx0XHRpZiAoc2VjdGlvbkRldGFpbHM/LnNlY3Rpb25mcm9tQ29sbGVjdGlvbkZhY2V0KSB7XG5cdFx0XHRcdHRpdGxlID0gKHNlY3Rpb25EZXRhaWxzPy5UaXRsZSBhcyBUaXRsZSk/LmdldFRleHQoKTtcblx0XHRcdFx0KHNlY3Rpb25EZXRhaWxzPy5UaXRsZSBhcyBUaXRsZSk/LnNldFZpc2libGUoZmFsc2UpO1xuXHRcdFx0XHQoc2VjdGlvbkRldGFpbHM/LlN1YlNlY3Rpb24gYXMgT2JqZWN0UGFnZVN1YlNlY3Rpb24pPy5zZXRTaG93VGl0bGUoZmFsc2UpO1xuXHRcdFx0fSBlbHNlIGlmIChzZWN0aW9uRGV0YWlscz8uc2VjdGlvbkZyb21SZWZlcmVuY2VGYWNldCkge1xuXHRcdFx0XHR0aXRsZSA9IChzZWN0aW9uRGV0YWlscz8uU3ViU2VjdGlvbiBhcyBPYmplY3RQYWdlU3ViU2VjdGlvbik/LmdldFRpdGxlKCk7XG5cdFx0XHRcdChzZWN0aW9uRGV0YWlscz8uU3ViU2VjdGlvbiBhcyBPYmplY3RQYWdlU3ViU2VjdGlvbik/LnNldFNob3dUaXRsZShmYWxzZSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAodGl0bGUgPT09IFwiXCIgJiYgc2VjdGlvbkRldGFpbHM/LlN1YlNlY3Rpb24pIHtcblx0XHRcdFx0dGl0bGUgPSAoc2VjdGlvbkRldGFpbHM/LlN1YlNlY3Rpb24gYXMgT2JqZWN0UGFnZVN1YlNlY3Rpb24pLmdldFRpdGxlKCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoc2VjdGlvbk9ubHlDb250ZW50LnNlbmREYXRhVG9Db25zdW1lcikge1xuXHRcdFx0XHRjb25zdCBzdWJTZWN0aW9ucyA9IHRoaXMuZ2V0U3ViU2VjdGlvbnMoKTtcblx0XHRcdFx0Y29uc3QgaGFzTXVsdGlwbGVTdWJzZWN0aW9ucyA9ICEhKHN1YlNlY3Rpb25zPy5sZW5ndGggPiAxKTtcblxuXHRcdFx0XHRzZWN0aW9uT25seUNvbnRlbnQuc2VuZERhdGFUb0NvbnN1bWVyKHtcblx0XHRcdFx0XHR0aXRsZUxldmVsOiB0aGlzLmdldFRpdGxlTGV2ZWwoKSxcblx0XHRcdFx0XHR0aXRsZTogdGl0bGUsXG5cdFx0XHRcdFx0aGVhZGVyU3R5bGU6IGhhc011bHRpcGxlU3Vic2VjdGlvbnMgPyBcIkg1XCIgOiBcIkg0XCJcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMuc2V0U2hvd1RpdGxlKCEhc2VjdGlvbkRldGFpbHM/LnNob3dUaXRsZSk7XG5cdFx0XHRcdGNsYXNzZXNUb0FkZC5hZGQoXCJzYXBVaVRhYmxlT25PYmplY3RQYWdlQWRqdXN0bWVudHNGb3JTZWN0aW9uXCIpO1xuXG5cdFx0XHRcdC8vIGlmIHRoZSBzZWN0aW9uIGhhcyBvbmx5IHN1YiBzZWN0aW9uLCB0aGVuIHRoZSBzdWIgc2VjdGlvbidzIHRpdGxlIHNob3VsZCBub3QgYmUgZGlzcGxheWVkXG5cdFx0XHRcdGlmICghaGFzTXVsdGlwbGVTdWJzZWN0aW9ucykgc3ViU2VjdGlvbnNbMF0uc2V0U2hvd1RpdGxlKGZhbHNlKTtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKHNpbmdsZUNvbnRlbnQ/LmlzQShcInNhcC5tLlRpdGxlXCIpKSB7XG5cdFx0XHRjb25zdCBzdWJTZWN0aW9ucyA9IHRoaXMuZ2V0VmlzaWJsZVN1YlNlY3Rpb25zKCkgfHwgW107XG5cdFx0XHRjb25zdCBoYXNNdWx0aXBsZVN1YnNlY3Rpb25zID0gc3ViU2VjdGlvbnMubGVuZ3RoID4gMTtcblxuXHRcdFx0Ly8gSGFuZGxlIHRpdGxlIHN0eWxpbmcgYW5kIHZpc2liaWxpdHkgaWYgcmV1c2UgY29tcG9uZW50IGlzIG5vdCBlbmFibGVkXG5cdFx0XHRpZiAoIXNlY3Rpb25EZXRhaWxzPy5tdWx0aXBsZVN1YlNlY3Rpb25zV2l0aFJldXNlQ29tcG9uZW50KSB7XG5cdFx0XHRcdGNvbnN0IHRpdGxlID0gc2luZ2xlQ29udGVudCBhcyBUaXRsZTtcblx0XHRcdFx0dGl0bGUuc2V0VGV4dCh0aGlzLmdldFRpdGxlKCkpO1xuXHRcdFx0XHR0aXRsZS5zZXRUaXRsZVN0eWxlKGhhc011bHRpcGxlU3Vic2VjdGlvbnMgPyBcIkg1XCIgOiBcIkg0XCIpO1xuXHRcdFx0XHR0aXRsZS5zZXRMZXZlbCh0aGlzLmdldFRpdGxlTGV2ZWwoKSk7XG5cdFx0XHRcdHRoaXMuc2V0U2hvd1RpdGxlKGZhbHNlKTtcblx0XHRcdFx0Y2xhc3Nlc1RvQWRkLmFkZChcInNhcFVpVGFibGVPbk9iamVjdFBhZ2VBZGp1c3RtZW50c0ZvclNlY3Rpb25cIik7XG5cdFx0XHR9XG5cdFx0XHQvLyBIaWRlIHN1YnNlY3Rpb24gdGl0bGUgaWYgdGhlcmUncyBvbmx5IG9uZSB2aXNpYmxlIHN1YnNlY3Rpb25cblx0XHRcdGlmIChzdWJTZWN0aW9ucy5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0c3ViU2VjdGlvbnNbMF0uc2V0U2hvd1RpdGxlKGZhbHNlKTtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKHRoaXMuY2hlY2tJZk5vdGVzUmV1c2VDb21wb25lbnQoc2luZ2xlQ29udGVudCkpIHtcblx0XHRcdC8qKlxuXHRcdFx0ICogTm90ZXMgUmV1c2UgY29tcG9uZW50IGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZSA6XG5cdFx0XHQgKiA8VkJveCBpZD1cIk5vdGVTZWN0aW9uXCI+XG5cdFx0XHQgKiA8TWVzc2FnZVN0cmlwIGlkPVwibm90ZXNEZWJ1Z1Byb3BlcnRpZXNcIj5cblx0XHRcdCAqIDxMaXN0IGlkPVwiTm90ZXNMaXN0XCI+XG5cdFx0XHQgKiA8aGVhZGVyVG9vbGJhcj5cblx0XHRcdCAqIDxPdmVyZmxvd1Rvb2xiYXIgaWQ9XCJub3RlSGVhZGVyT3ZlcmZsb3dUb29sYmFyXCIgc3R5bGU9XCJTdGFuZGFyZFwiPlxuXHRcdFx0ICogICAgICAgPFRpdGxlIGlkPVwibm90ZUhlYWRlck92ZXJmbG93VG9vbGJhclRpdGxlXCIvPlxuXHRcdFx0ICpcdFx0Li4uLi4uXG5cdFx0XHQgKlx0PC9PdmVyZmxvd1Rvb2xiYXI+XG5cdFx0XHQgKlx0PC9oZWFkZXJUb29sYmFyPlxuXHRcdFx0ICpcdC4uLi4uLlxuXHRcdFx0ICpcdDwvTGlzdD5cblx0XHRcdCAqXHQ8L1ZCb3g+XG5cdFx0XHQgKlx0Li4uLi5cblx0XHRcdCAqXG5cdFx0XHQgKiBXZSBhcmUgYXBwbHlpbmcgdGhlIHRpdGxlIG1lcmdlIGxvZ2ljIGZvciB0aGUgdGl0bGUgd2l0aGluIHRoZSBvdmVyZmxvdyB0b29sYmFyXG5cdFx0XHQgKiBpbiB0aGUgZm9sbG93aW5nIGNvZGVcblx0XHRcdCAqXG5cdFx0XHQgKi9cblx0XHRcdGNvbnN0IHZCb3hJdGVtcyA9IChzaW5nbGVDb250ZW50IGFzIFZCb3gpLmdldEl0ZW1zKCk7XG5cdFx0XHR2Qm94SXRlbXMuZm9yRWFjaCgodkJveEl0ZW0pID0+IHtcblx0XHRcdFx0Y29uc3QgaGVhZGVyVG9vbGJhciA9IHZCb3hJdGVtLmdldEFnZ3JlZ2F0aW9uKFwiaGVhZGVyVG9vbGJhclwiKTtcblx0XHRcdFx0aWYgKGhlYWRlclRvb2xiYXIpIHtcblx0XHRcdFx0XHQoaGVhZGVyVG9vbGJhciBhcyBPdmVyZmxvd1Rvb2xiYXIpPy5nZXRDb250ZW50KCkuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKGNvbnRyb2wuaXNBKFwic2FwLm0uVGl0bGVcIikpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgbm90ZXNUaXRsZSA9IGNvbnRyb2wgYXMgVGl0bGU7XG5cdFx0XHRcdFx0XHRcdG5vdGVzVGl0bGUuc2V0VGV4dCh0aGlzLmdldFRpdGxlKCkpO1xuXHRcdFx0XHRcdFx0XHRub3Rlc1RpdGxlLnNldFRpdGxlU3R5bGUoXCJINFwiKTtcblx0XHRcdFx0XHRcdFx0bm90ZXNUaXRsZS5zZXRMZXZlbCh0aGlzLmdldFRpdGxlTGV2ZWwoKSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0Ly8gU2luZ2xlIGNvbnRlbnQgd2l0aCBzaW5nbGUgc3Vic2VjdGlvbiBtZWFucyBzZWN0aW9uIHRpdGxlKDEpLCBzdWJzZWN0aW9uIHRpdGxlKDIpIGFuZCBOb3RlcyBSZXVzZSBjb21wb25lbnQgdGl0bGUoMykgYXJlIGF2YWlsYWJsZS5cblx0XHRcdC8vIFdlIHNoYWxsIHNob3cgb25seSAzLiBXZSBoaWRlIDEgYW5kIDIuXG5cdFx0XHRjb25zdCBzdWJTZWN0aW9ucyA9IHRoaXMuZ2V0VmlzaWJsZVN1YlNlY3Rpb25zKCk7XG5cdFx0XHRpZiAoc3ViU2VjdGlvbnMubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdHN1YlNlY3Rpb25zWzBdLnNldFNob3dUaXRsZShmYWxzZSk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnNldFNob3dUaXRsZShmYWxzZSk7XG5cdFx0XHRjbGFzc2VzVG9BZGQuYWRkKFwic2FwVWlUYWJsZU9uT2JqZWN0UGFnZUFkanVzdG1lbnRzRm9yU2VjdGlvblwiKTtcblx0XHR9XG5cdFx0dGhpcy5hZGRTdHlsZUNsYXNzKEFycmF5LmZyb20oY2xhc3Nlc1RvQWRkKS5qb2luKFwiIFwiKSk7XG5cdFx0cmV0dXJuIHsgdGFibGVzQWRqdXN0ZWQ6IGNsYXNzZXNUb0FkZC5oYXMoXCJzYXBVaVRhYmxlT25PYmplY3RQYWdlQWRqdXN0bWVudHNGb3JTZWN0aW9uXCIpIH07XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2VjdGlvbjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztFQW9CQTtFQUFBLElBZU1BLE9BQU8sSUFBQUMsSUFBQSxHQUZaQyxjQUFjLENBQUMsZ0NBQWdDLEVBQUU7SUFBRUMsVUFBVSxFQUFFO0VBQW1ELENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBQ3BIQyxLQUFLLENBQUNDLG1CQUFtQixDQUFDLEVBQUFDLEtB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
|
|
436
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZWN0aW9uIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiZGVzaWdudGltZSIsIl9kZWMyIiwibWl4aW4iLCJTZWN0aW9uU3RhdGVIYW5kbGVyIiwiX2RlYzMiLCJwcm9wZXJ0eSIsInR5cGUiLCJfZGVjNCIsIl9kZWM1IiwiX2RlYzYiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX09iamVjdFBhZ2VTZWN0aW9uIiwicHJvcGVydGllcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJyZWdpc3RlckRlbGVnYXRlIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJldmVudERlbGVnYXRlcyIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJzdWJTZWN0aW9ucyIsImdldFN1YlNlY3Rpb25zIiwibGVuZ3RoIiwiZm9yRWFjaCIsInN1YlNlY3Rpb24iLCJnZXRCbG9ja3MiLCJzdWJTZWN0aW9uRXZlbnREZWxlZ2F0ZSIsIm9uQmVmb3JlUmVuZGVyaW5nIiwiY2hlY2tBbmRBZGp1c3RTZWN0aW9uQ29udGVudCIsInJlbW92ZUV2ZW50RGVsZWdhdGUiLCJhZGRFdmVudERlbGVnYXRlIiwidmlldyIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsInVzZVNpbmdsZVRleHRBcmVhRmllbGRBc05vdGVzIiwiY2hlY2tBbmRBZGp1c3RTZWN0aW9uQ29udGVudEZvclRleHRBcmVhIiwiY2hlY2tBbmRBZGp1c3RGb3JTaW5nbGVDb250ZW50Iiwic2V0T25TZWN0aW9uTG9hZGVkIiwib25TZWN0aW9uTG9hZGVkIiwibG9hZFNwbGl0Iiwic3BsaXQiLCJfc2VjdGlvbkxvYWRNZXRob2ROYW1lIiwicG9wIiwiX3NlY3Rpb25Mb2FkTW9kdWxlTmFtZSIsImpvaW4iLCJzZXRQcm9wZXJ0eSIsImFwcGx5U2V0dGluZ3MiLCJtU2V0dGluZ3MiLCJvU2NvcGUiLCJ0ZW1wbGF0ZUNvbXBvbmVudCIsIkNvbXBvbmVudCIsImdldE93bmVyQ29tcG9uZW50Rm9yIiwicGFnZUNvbnRyb2xsZXIiLCJnZXRSb290Q29udHJvbGxlciIsIkhvb2tTdXBwb3J0IiwiaW5pdENvbnRyb2xsZXJFeHRlbnNpb25Ib29rSGFuZGxlcnMiLCJ1cGRhdGVOb25UYWJsZVN1YlNlY3Rpb25CYWNrZ3JvdW5kIiwiYWRqdXN0bWVudFJlc3VsdHMiLCJoYXNTdHlsZUNsYXNzIiwiX3JlZiIsInRhYmxlc0FkanVzdGVkIiwicmVtb3ZlU3R5bGVDbGFzcyIsImFkZFN0eWxlQ2xhc3MiLCJ2aXNpYmxlU3ViU2VjdGlvbnMiLCJnZXRWaXNpYmxlU3ViU2VjdGlvbnMiLCJyZWR1Y2UiLCJyZXN1bHRzIiwiY29udGVudCIsImdldFNpbmdsZUNvbnRlbnQiLCJhZGp1c3RGb3JTaW5nbGVDb250ZW50IiwicHVzaCIsImdldFZpZXdEYXRhIiwic2VjdGlvbkxheW91dCIsInNpbmdsZUNvbnRlbnQiLCJpc0EiLCJjaGVja0lmTm90ZXNSZXVzZUNvbXBvbmVudCIsInNpbmdsZUNvbnRlbnRUYWJsZUFkanVzdGVkIiwiRlBNSGVscGVyIiwibG9hZE1vZHVsZUFuZENhbGxNZXRob2QiLCJjaGVja0FuZEFkanVzdFRpdGxlcyIsIkxvZyIsImRlYnVnIiwiZ2V0SWQiLCJpbmNsdWRlcyIsInNpbmdsZVN1YlNlY3Rpb25UYWJsZUFkanVzdGVkIiwiYWRqdXN0U2VjdGlvbkNvbnRlbnRXaXRoVGl0bGUiLCJzdWJzZWN0aW9uIiwiYmxvY2tzIiwiZ2V0QWdncmVnYXRpb24iLCJzZWN0aW9uRnJvbVJlZmVyZW5jZUZhY2V0IiwiU3ViU2VjdGlvbiIsInNob3dUaXRsZSIsImdldE1haW5Db250ZW50IiwiRnVuY3Rpb24iLCJhZGp1c3RtZW50UHJvcHMiLCJzZWN0aW9uZnJvbUNvbGxlY3Rpb25GYWNldCIsIlRpdGxlIiwiZ2V0VmlzaWJsZSIsImdldFNlY3Rpb25UaXRsZSIsInRpdGxlIiwiZ2V0VGl0bGUiLCJzZWN0aW9uRGV0YWlscyIsImNsYXNzZXNUb0FkZCIsIlNldCIsInNlY3Rpb25Pbmx5Q29udGVudCIsImNvbnRlbnRSb2xlIiwiZ2V0U2VjdGlvbkNvbnRlbnRSb2xlIiwiaW5mb0Zyb21Qcm92aWRlciIsImdldERhdGFGcm9tUHJvdmlkZXIiLCJzZXRTaG93VGl0bGUiLCJhZGQiLCJnZXRUZXh0Iiwic2V0VmlzaWJsZSIsInNlbmREYXRhVG9Db25zdW1lciIsImhhc011bHRpcGxlU3Vic2VjdGlvbnMiLCJ0aXRsZUxldmVsIiwiZ2V0VGl0bGVMZXZlbCIsImhlYWRlclN0eWxlIiwibXVsdGlwbGVTdWJTZWN0aW9uc1dpdGhSZXVzZUNvbXBvbmVudCIsInNldFRleHQiLCJzZXRUaXRsZVN0eWxlIiwic2V0TGV2ZWwiLCJ2Qm94SXRlbXMiLCJnZXRJdGVtcyIsInZCb3hJdGVtIiwiaGVhZGVyVG9vbGJhciIsImdldENvbnRlbnQiLCJjb250cm9sIiwibm90ZXNUaXRsZSIsIkFycmF5IiwiZnJvbSIsImhhcyIsIk9iamVjdFBhZ2VTZWN0aW9uIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTZWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgbWl4aW4sIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0ICogYXMgSG9va1N1cHBvcnQgZnJvbSBcInNhcC9mZS9iYXNlL0hvb2tTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgVGVtcGxhdGVDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL1RlbXBsYXRlQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IE9iamVjdFBhZ2VNYW5pZmVzdFNldHRpbmdzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IEZQTUhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9GUE1IZWxwZXJcIjtcbmltcG9ydCB0eXBlIElTaW5nbGVTZWN0aW9uQ29udHJpYnV0b3IgZnJvbSBcInNhcC9mZS9tYWNyb3MvY29udHJvbHMvc2VjdGlvbi9JU2luZ2xlU2VjdGlvbkNvbnRyaWJ1dG9yXCI7XG5pbXBvcnQgU2VjdGlvblN0YXRlSGFuZGxlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9zZWN0aW9uL21peGluL1NlY3Rpb25TdGF0ZUhhbmRsZXJcIjtcbmltcG9ydCB0eXBlIFN1YlNlY3Rpb25CbG9jayBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL2NvbnRyb2xzL1N1YlNlY3Rpb25CbG9ja1wiO1xuaW1wb3J0IHR5cGUgT3ZlcmZsb3dUb29sYmFyIGZyb20gXCJzYXAvbS9PdmVyZmxvd1Rvb2xiYXJcIjtcbmltcG9ydCB0eXBlIFRpdGxlIGZyb20gXCJzYXAvbS9UaXRsZVwiO1xuaW1wb3J0IHR5cGUgVkJveCBmcm9tIFwic2FwL20vVkJveFwiO1xuaW1wb3J0IHR5cGUgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgeyAkTWFuYWdlZE9iamVjdFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCBDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL0NvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgRHluYW1pY1NpZGVDb250ZW50IGZyb20gXCJzYXAvdWkvbGF5b3V0L0R5bmFtaWNTaWRlQ29udGVudFwiO1xuaW1wb3J0IHR5cGUgeyAkT2JqZWN0UGFnZVNlY3Rpb25TZXR0aW5ncyB9IGZyb20gXCJzYXAvdXhhcC9PYmplY3RQYWdlU2VjdGlvblwiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXN0cmljdGVkLWltcG9ydHNcbmltcG9ydCBPYmplY3RQYWdlU2VjdGlvbiBmcm9tIFwic2FwL3V4YXAvT2JqZWN0UGFnZVNlY3Rpb25cIjtcbmltcG9ydCB0eXBlIE9iamVjdFBhZ2VTdWJTZWN0aW9uIGZyb20gXCJzYXAvdXhhcC9PYmplY3RQYWdlU3ViU2VjdGlvblwiO1xuaW1wb3J0IHR5cGUgU3ViU2VjdGlvbiBmcm9tIFwiLi9zZWN0aW9uL1N1YlNlY3Rpb25cIjtcblxudHlwZSBBZGp1c3RtZW50UHJvcHMgPSB7XG5cdHRhYmxlc0FkanVzdGVkPzogYm9vbGVhbjtcbn07XG5cbnR5cGUgQWRqdXN0bWVudFJlc3VsdHMgPSB7XG5cdHN1YlNlY3Rpb246IE9iamVjdFBhZ2VTdWJTZWN0aW9uO1xufSAmIEFkanVzdG1lbnRQcm9wcztcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5TZWN0aW9uXCIsIHsgZGVzaWdudGltZTogXCJzYXAvdXhhcC9kZXNpZ250aW1lL09iamVjdFBhZ2VTZWN0aW9uLmRlc2lnbnRpbWVcIiB9KVxuQG1peGluKFNlY3Rpb25TdGF0ZUhhbmRsZXIpXG5jbGFzcyBTZWN0aW9uIGV4dGVuZHMgT2JqZWN0UGFnZVNlY3Rpb24ge1xuXHQvLyBUT0RPOiB0aGlzIHByb2JhYmx5IG1ha2VzIHNlbnNlIHRvIGJlIGFuIGV2ZW50LiBCdXQgd2UgY2FuIGFkZHJlc3MgdGhpcyBsYXRlci5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRvblNlY3Rpb25Mb2FkZWQhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0dXNlU2luZ2xlVGV4dEFyZWFGaWVsZEFzTm90ZXMhOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBQYXRoIHRvIHRoZSBhcHBseSBzdGF0ZSBoYW5kbGVyIHRvIGJlIGNhbGxlZCBkdXJpbmcgc3RhdGUgaW50ZXJhY3Rpb25zLlxuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRhcHBseVN0YXRlSGFuZGxlcj86IHN0cmluZztcblxuXHQvKipcblx0ICogUGF0aCB0byB0aGUgcmV0cmlldmUgc3RhdGUgaGFuZGxlciB0byBiZSBjYWxsZWQgZHVyaW5nIHN0YXRlIGludGVyYWN0aW9ucy5cblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0cmV0cmlldmVTdGF0ZUhhbmRsZXI/OiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3IocHJvcGVydGllczogJE9iamVjdFBhZ2VTZWN0aW9uU2V0dGluZ3MgJiBQcm9wZXJ0aWVzT2Y8U2VjdGlvbj4sIG90aGVycz86ICRPYmplY3RQYWdlU2VjdGlvblNldHRpbmdzKSB7XG5cdFx0c3VwZXIocHJvcGVydGllcyBhcyB1bmtub3duIGFzIHN0cmluZywgb3RoZXJzKTtcblx0XHR0aGlzLnJlZ2lzdGVyRGVsZWdhdGUoKTtcblx0fVxuXG5cdF9zZWN0aW9uTG9hZE1ldGhvZE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHRfc2VjdGlvbkxvYWRNb2R1bGVOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0cHJpdmF0ZSByZWdpc3RlckRlbGVnYXRlKCk6IHZvaWQge1xuXHRcdGNvbnN0IGV2ZW50RGVsZWdhdGVzID0ge1xuXHRcdFx0b25BZnRlclJlbmRlcmluZzogKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRjb25zdCBzdWJTZWN0aW9ucyA9IHRoaXMuZ2V0U3ViU2VjdGlvbnMoKSBhcyBTdWJTZWN0aW9uW107XG5cdFx0XHRcdGlmIChzdWJTZWN0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0XHRzdWJTZWN0aW9ucy5mb3JFYWNoKChzdWJTZWN0aW9uOiBTdWJTZWN0aW9uKSA9PiB7XG5cdFx0XHRcdFx0XHQvKiB3ZSBjaGVjayBpbmRpdmlkdWFsIHN1YnNlY3Rpb24gZm9yIGJsb2Nrcy4gSWYgbm90IGF2YWlsYWJsZSB3ZSB3YWl0IGZvciB0aGVtIHRvIGJlIGFkZGVkKG9uQmVmb3JlUmVuZGVyaW5nKSBiZWZvcmUgdHJpZ2dlcmluZyB0aXRsZSBtZXJnZSBsb2dpY3MgKi9cblx0XHRcdFx0XHRcdGlmIChzdWJTZWN0aW9uLmdldEJsb2NrcygpPy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgc3ViU2VjdGlvbkV2ZW50RGVsZWdhdGUgPSB7XG5cdFx0XHRcdFx0XHRcdFx0b25CZWZvcmVSZW5kZXJpbmc6ICgpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuY2hlY2tBbmRBZGp1c3RTZWN0aW9uQ29udGVudCgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0c3ViU2VjdGlvbi5yZW1vdmVFdmVudERlbGVnYXRlKHN1YlNlY3Rpb25FdmVudERlbGVnYXRlKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdHN1YlNlY3Rpb24uYWRkRXZlbnREZWxlZ2F0ZShzdWJTZWN0aW9uRXZlbnREZWxlZ2F0ZSk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGlzLmNoZWNrQW5kQWRqdXN0U2VjdGlvbkNvbnRlbnQoKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmNoZWNrQW5kQWRqdXN0U2VjdGlvbkNvbnRlbnQoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cblx0XHR0aGlzLmFkZEV2ZW50RGVsZWdhdGUoZXZlbnREZWxlZ2F0ZXMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGZvciB0aGUgc2VjdGlvbiBjb250ZW50IGFuZCBhZGp1c3RzIHRoZSBzZWN0aW9uIGJhc2VkIG9uIHRoZSBhdmFpbGFibGUgY29udGVudC5cblx0ICogQHByb3RlY3RlZFxuXHQgKi9cblx0Y2hlY2tBbmRBZGp1c3RTZWN0aW9uQ29udGVudCgpOiB2b2lkIHtcblx0XHRjb25zdCB2aWV3ID0gQ29tbW9uVXRpbHMuZ2V0VGFyZ2V0Vmlldyh0aGlzKTtcblx0XHRpZiAodGhpcy51c2VTaW5nbGVUZXh0QXJlYUZpZWxkQXNOb3Rlcykge1xuXHRcdFx0dGhpcy5jaGVja0FuZEFkanVzdFNlY3Rpb25Db250ZW50Rm9yVGV4dEFyZWEoKTtcblx0XHR9XG5cdFx0dGhpcy5jaGVja0FuZEFkanVzdEZvclNpbmdsZUNvbnRlbnQodmlldyk7XG5cdH1cblxuXHRzZXRPblNlY3Rpb25Mb2FkZWQob25TZWN0aW9uTG9hZGVkOiBzdHJpbmcpOiB2b2lkIHtcblx0XHRjb25zdCBsb2FkU3BsaXQgPSBvblNlY3Rpb25Mb2FkZWQuc3BsaXQoXCIuXCIpO1xuXHRcdHRoaXMuX3NlY3Rpb25Mb2FkTWV0aG9kTmFtZSA9IGxvYWRTcGxpdD8ucG9wKCk7XG5cdFx0dGhpcy5fc2VjdGlvbkxvYWRNb2R1bGVOYW1lID0gbG9hZFNwbGl0Py5qb2luKFwiL1wiKTtcblx0XHR0aGlzLnNldFByb3BlcnR5KFwib25TZWN0aW9uTG9hZGVkXCIsIG9uU2VjdGlvbkxvYWRlZCk7XG5cdH1cblxuXHQvLyBUT0RPOiBDaGVjayBpZiBvbkFmdGVyUmVuZGVyaW5nIGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgYXBwbHlTZXR0aW5ncy5cblx0YXBwbHlTZXR0aW5ncyhtU2V0dGluZ3M6ICRNYW5hZ2VkT2JqZWN0U2V0dGluZ3MsIG9TY29wZT86IG9iamVjdCk6IHRoaXMge1xuXHRcdHN1cGVyLmFwcGx5U2V0dGluZ3MobVNldHRpbmdzLCBvU2NvcGUpO1xuXHRcdGNvbnN0IHRlbXBsYXRlQ29tcG9uZW50ID0gQ29tcG9uZW50LmdldE93bmVyQ29tcG9uZW50Rm9yKHRoaXMpIGFzIFRlbXBsYXRlQ29tcG9uZW50O1xuXHRcdGNvbnN0IHBhZ2VDb250cm9sbGVyID0gdGVtcGxhdGVDb21wb25lbnQuZ2V0Um9vdENvbnRyb2xsZXIoKTtcblx0XHRpZiAocGFnZUNvbnRyb2xsZXIpIHtcblx0XHRcdEhvb2tTdXBwb3J0LmluaXRDb250cm9sbGVyRXh0ZW5zaW9uSG9va0hhbmRsZXJzKHRoaXMsIHBhZ2VDb250cm9sbGVyKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogVXBkYXRlIHN1YnNlY3Rpb24gYmFja2dyb3VuZCBjbGFzcyBiYXNlZCBvbiB0YWJsZSBhZGp1c3RtZW50cyBtYWRlLlxuXHQgKiBAcGFyYW0gYWRqdXN0bWVudFJlc3VsdHMgQXJyYXkgb2YgYWRqdXN0bWVudCByZXN1bHRzXG5cdCAqL1xuXHR1cGRhdGVOb25UYWJsZVN1YlNlY3Rpb25CYWNrZ3JvdW5kKGFkanVzdG1lbnRSZXN1bHRzOiBBZGp1c3RtZW50UmVzdWx0c1tdKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuaGFzU3R5bGVDbGFzcyhcInNhcFVpVGFibGVPbk9iamVjdFBhZ2VBZGp1c3RtZW50c0ZvclNlY3Rpb25cIikpIHtcblx0XHRcdGFkanVzdG1lbnRSZXN1bHRzLmZvckVhY2goKHsgc3ViU2VjdGlvbiwgdGFibGVzQWRqdXN0ZWQgfSkgPT4ge1xuXHRcdFx0XHRpZiAodGFibGVzQWRqdXN0ZWQpIHtcblx0XHRcdFx0XHRzdWJTZWN0aW9uLnJlbW92ZVN0eWxlQ2xhc3MoXCJzYXBVaUFkanVzdGVkU2VjdGlvblN1YnNlY3Rpb25XaXRob3V0VGFibGVcIik7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c3ViU2VjdGlvbi5hZGRTdHlsZUNsYXNzKFwic2FwVWlBZGp1c3RlZFNlY3Rpb25TdWJzZWN0aW9uV2l0aG91dFRhYmxlXCIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBtZXRob2QgbG9vcHMgdGhyb3VnaCBhbGwgdGhlIHZpc2libGUgc3Vic2VjdGlvbnMgYW5kIHRyaWdnZXJzIHRoZSB0ZXh0IGFyZWEgZmxvdyBpZiB0aGF0cyB0aGUgb25seSBzaW5nbGUgY29udHJvbCB3aXRoaW4gdGhlIHNlY3Rpb24uXG5cdCAqL1xuXHRjaGVja0FuZEFkanVzdFNlY3Rpb25Db250ZW50Rm9yVGV4dEFyZWEoKTogdm9pZCB7XG5cdFx0Y29uc3QgdmlzaWJsZVN1YlNlY3Rpb25zID0gdGhpcy5nZXRWaXNpYmxlU3ViU2VjdGlvbnMoKTtcblx0XHRjb25zdCBhZGp1c3RtZW50UmVzdWx0cyA9IHZpc2libGVTdWJTZWN0aW9ucy5yZWR1Y2UoKHJlc3VsdHM6IEFkanVzdG1lbnRSZXN1bHRzW10sIHN1YlNlY3Rpb246IE9iamVjdFBhZ2VTdWJTZWN0aW9uKSA9PiB7XG5cdFx0XHRsZXQgdGFibGVzQWRqdXN0ZWQ7XG5cdFx0XHRjb25zdCBjb250ZW50ID0gdGhpcy5nZXRTaW5nbGVDb250ZW50KFtzdWJTZWN0aW9uXSk7XG5cdFx0XHRpZiAoY29udGVudCkge1xuXHRcdFx0XHR0YWJsZXNBZGp1c3RlZCA9IHRoaXMuYWRqdXN0Rm9yU2luZ2xlQ29udGVudChjb250ZW50KS50YWJsZXNBZGp1c3RlZDtcblx0XHRcdH1cblx0XHRcdHJlc3VsdHMucHVzaCh7IHN1YlNlY3Rpb24sIHRhYmxlc0FkanVzdGVkIH0pO1xuXHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0fSwgW10pO1xuXHRcdHRoaXMudXBkYXRlTm9uVGFibGVTdWJTZWN0aW9uQmFja2dyb3VuZChhZGp1c3RtZW50UmVzdWx0cyk7XG5cdH1cblxuXHRjaGVja0FuZEFkanVzdEZvclNpbmdsZUNvbnRlbnQodmlldzogRkVWaWV3KTogdm9pZCB8IFByb21pc2U8dW5rbm93bj4ge1xuXHRcdGlmICgodmlldz8uZ2V0Vmlld0RhdGEoKSBhcyBPYmplY3RQYWdlTWFuaWZlc3RTZXR0aW5ncyk/LnNlY3Rpb25MYXlvdXQgPT09IFwiUGFnZVwiKSB7XG5cdFx0XHRjb25zdCBzaW5nbGVDb250ZW50ID0gdGhpcy5nZXRTaW5nbGVDb250ZW50KCk7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdHNpbmdsZUNvbnRlbnQgJiZcblx0XHRcdFx0KHNpbmdsZUNvbnRlbnQuaXNBKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5zZWN0aW9uLklTaW5nbGVTZWN0aW9uQ29udHJpYnV0b3JcIikgfHxcblx0XHRcdFx0XHR0aGlzLmNoZWNrSWZOb3Rlc1JldXNlQ29tcG9uZW50KHNpbmdsZUNvbnRlbnQpKVxuXHRcdFx0KSB7XG5cdFx0XHRcdGNvbnN0IHsgdGFibGVzQWRqdXN0ZWQ6IHNpbmdsZUNvbnRlbnRUYWJsZUFkanVzdGVkIH0gPSB0aGlzLmFkanVzdEZvclNpbmdsZUNvbnRlbnQoc2luZ2xlQ29udGVudCk7XG5cdFx0XHRcdGNvbnN0IHN1YlNlY3Rpb25zID0gdGhpcy5nZXRWaXNpYmxlU3ViU2VjdGlvbnMoKTtcblx0XHRcdFx0dGhpcy51cGRhdGVOb25UYWJsZVN1YlNlY3Rpb25CYWNrZ3JvdW5kKFt7IHN1YlNlY3Rpb246IHN1YlNlY3Rpb25zWzBdLCB0YWJsZXNBZGp1c3RlZDogc2luZ2xlQ29udGVudFRhYmxlQWRqdXN0ZWQgfV0pO1xuXHRcdFx0fSBlbHNlIGlmICh0aGlzLl9zZWN0aW9uTG9hZE1vZHVsZU5hbWUgJiYgdGhpcy5fc2VjdGlvbkxvYWRNZXRob2ROYW1lKSB7XG5cdFx0XHRcdHJldHVybiBGUE1IZWxwZXIubG9hZE1vZHVsZUFuZENhbGxNZXRob2QodGhpcy5fc2VjdGlvbkxvYWRNb2R1bGVOYW1lLCB0aGlzLl9zZWN0aW9uTG9hZE1ldGhvZE5hbWUsIHZpZXcsIHRoaXMpO1xuXHRcdFx0fSBlbHNlIGlmICh0aGlzLmdldFN1YlNlY3Rpb25zKCkubGVuZ3RoID4gMSkge1xuXHRcdFx0XHQvLyBjYWxsIG1lcmdlIHRpdGxlIGxvZ2ljIGZvciBzdWJzZWN0aW9uc1xuXHRcdFx0XHR0aGlzLmNoZWNrQW5kQWRqdXN0VGl0bGVzKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRMb2cuZGVidWcoXCJTZWN0aW9uIGNhbm5vdCBiZSBhZGp1c3RlZCBmb3Igc2luZ2xlIGNvbnRlbnQgOiBJbnRlcmZhY2UgJ0lTaW5nbGVTZWN0aW9uQ29udHJpYnV0b3InIGlzIG5vdCBpbXBsZW1lbnRlZFwiKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5jaGVja0FuZEFkanVzdFRpdGxlcygpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKiBAcGFyYW0gc2luZ2xlQ29udGVudCBPYmplY3Qgb2YgdGhlIGNvbnRlbnQgcHJlc2VudCB3aXRoaW4gdGhlIHNlY3Rpb24uXG5cdCAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGNvbnRlbnQgcHJlc2VudCBpcyBhIG5vdGVzIHJldXNlIGNvbXBvbmVudFxuXHQgKi9cblx0Y2hlY2tJZk5vdGVzUmV1c2VDb21wb25lbnQoc2luZ2xlQ29udGVudDogTWFuYWdlZE9iamVjdCk6IGJvb2xlYW4ge1xuXHRcdGlmIChzaW5nbGVDb250ZW50LmlzQShcInNhcC5tLlZCb3hcIikgJiYgc2luZ2xlQ29udGVudC5nZXRJZCgpLmluY2x1ZGVzKFwiTm90ZVNlY3Rpb25cIikpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBmdW5jdGlvbiBjaGVja3MgZm9yIHRoZSB2aXNpYmxlIHN1YnNlY3Rpb25zIGFuZCBjaGVja3MgZm9yIHRoZSBjb2xsZWN0aW9uIGZhY2V0IGxhYmVsLCBJZiBwcmVzZW50IHRoZW4gd2UgbWVyZ2UgdGhlIHRpdGxlIGFuZCB0aGlzIGZ1bmN0aW9uIGhhbmRsZXMgdGhlIER5bmFtaWNTaWRlQ29uZW50IGFzIHdlbGwuXG5cdCAqL1xuXHRjaGVja0FuZEFkanVzdFRpdGxlcygpOiB2b2lkIHtcblx0XHRjb25zdCB2aXNpYmxlU3ViU2VjdGlvbnMgPSB0aGlzLmdldFZpc2libGVTdWJTZWN0aW9ucygpO1xuXHRcdGlmICh2aXNpYmxlU3ViU2VjdGlvbnMubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRjb25zdCB7IHRhYmxlc0FkanVzdGVkOiBzaW5nbGVTdWJTZWN0aW9uVGFibGVBZGp1c3RlZCB9ID0gdGhpcy5hZGp1c3RTZWN0aW9uQ29udGVudFdpdGhUaXRsZSh2aXNpYmxlU3ViU2VjdGlvbnNbMF0pO1xuXHRcdFx0dGhpcy51cGRhdGVOb25UYWJsZVN1YlNlY3Rpb25CYWNrZ3JvdW5kKFt7IHN1YlNlY3Rpb246IHZpc2libGVTdWJTZWN0aW9uc1swXSwgdGFibGVzQWRqdXN0ZWQ6IHNpbmdsZVN1YlNlY3Rpb25UYWJsZUFkanVzdGVkIH1dKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgYWRqdXN0bWVudFJlc3VsdHMgPSB2aXNpYmxlU3ViU2VjdGlvbnMucmVkdWNlKChyZXN1bHRzOiBBZGp1c3RtZW50UmVzdWx0c1tdLCBzdWJzZWN0aW9uOiBPYmplY3RQYWdlU3ViU2VjdGlvbikgPT4ge1xuXHRcdFx0XHRsZXQgdGFibGVzQWRqdXN0ZWQ7XG5cdFx0XHRcdGxldCBjb250ZW50O1xuXHRcdFx0XHRjb25zdCBibG9ja3MgPSBzdWJzZWN0aW9uLmdldEJsb2NrcygpO1xuXHRcdFx0XHQvLyBJbiBjYXNlIG9mIFRhYiBsYXlvdXQsIHdlIG5lZWQgdG8gY2hlY2sgaWYgdGhlIHNlY3Rpb24gaGFzIG9ubHkgb25lIHN1YnNlY3Rpb24gYW5kIHRoYXQgc3Vic2VjdGlvbiBoYXMgb25seSBvbmUgY29udHJvbFxuXHRcdFx0XHQvLyBJbiBjYXNlIG9mIGNvbGxlY3Rpb24gRmFjZXQsIHRoZSBmaXJzdCBibG9jayB3aWxsIGJlIFRpdGxlIGFuZCB0aGUgc2Vjb25kIGJsb2NrIHdpbGwgYmUgU3ViU2VjdGlvbkJsb2NrXG5cdFx0XHRcdGlmIChibG9ja3MubGVuZ3RoID09PSAyICYmIGJsb2Nrc1sxXT8uaXNBPFN1YlNlY3Rpb25CbG9jaz4oXCJzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuY29udHJvbHMuU3ViU2VjdGlvbkJsb2NrXCIpKSB7XG5cdFx0XHRcdFx0dGFibGVzQWRqdXN0ZWQgPSB0aGlzLmFkanVzdFNlY3Rpb25Db250ZW50V2l0aFRpdGxlKHN1YnNlY3Rpb24pLnRhYmxlc0FkanVzdGVkO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIEluIGNhc2Ugb2YgUmVmZXJlbmNlIEZhY2V0LCB0aGUgZmlyc3QgYmxvY2sgd2lsbCBiZSBTdWJTZWN0aW9uQmxvY2tcblx0XHRcdFx0ZWxzZSBpZiAoYmxvY2tzLmxlbmd0aCA9PT0gMSAmJiBibG9ja3NbMF0/LmlzQTxTdWJTZWN0aW9uQmxvY2s+KFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLmNvbnRyb2xzLlN1YlNlY3Rpb25CbG9ja1wiKSkge1xuXHRcdFx0XHRcdGNvbnRlbnQgPSBibG9ja3NbMF0uZ2V0QWdncmVnYXRpb24oXCJjb250ZW50XCIpIGFzIE1hbmFnZWRPYmplY3Q7XG5cdFx0XHRcdFx0aWYgKGNvbnRlbnQuaXNBKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5zZWN0aW9uLklTaW5nbGVTZWN0aW9uQ29udHJpYnV0b3JcIikpIHtcblx0XHRcdFx0XHRcdHRhYmxlc0FkanVzdGVkID0gdGhpcy5hZGp1c3RGb3JTaW5nbGVDb250ZW50KGNvbnRlbnQsIHtcblx0XHRcdFx0XHRcdFx0c2VjdGlvbkZyb21SZWZlcmVuY2VGYWNldDogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0U3ViU2VjdGlvbjogc3Vic2VjdGlvbixcblx0XHRcdFx0XHRcdFx0c2hvd1RpdGxlOiB0aGlzLmdldFZpc2libGVTdWJTZWN0aW9ucygpLmxlbmd0aCA+IDFcblx0XHRcdFx0XHRcdH0pLnRhYmxlc0FkanVzdGVkO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoKGNvbnRlbnQgYXMgRHluYW1pY1NpZGVDb250ZW50KT8uaXNBKFwic2FwLnVpLmxheW91dC5EeW5hbWljU2lkZUNvbnRlbnRcIikpIHtcblx0XHRcdFx0XHRcdGNvbnRlbnQgPVxuXHRcdFx0XHRcdFx0XHQoY29udGVudCBhcyBEeW5hbWljU2lkZUNvbnRlbnQpLmdldE1haW5Db250ZW50IGluc3RhbmNlb2YgRnVuY3Rpb24gJiZcblx0XHRcdFx0XHRcdFx0KGNvbnRlbnQgYXMgRHluYW1pY1NpZGVDb250ZW50KT8uZ2V0TWFpbkNvbnRlbnQoKTtcblx0XHRcdFx0XHRcdGlmIChjb250ZW50ICYmIGNvbnRlbnQubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQgPSBjb250ZW50WzBdO1xuXHRcdFx0XHRcdFx0XHR0YWJsZXNBZGp1c3RlZCA9IHRoaXMuYWRqdXN0Rm9yU2luZ2xlQ29udGVudChjb250ZW50LCB7XG5cdFx0XHRcdFx0XHRcdFx0c2VjdGlvbkZyb21SZWZlcmVuY2VGYWNldDogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHRTdWJTZWN0aW9uOiBzdWJzZWN0aW9uXG5cdFx0XHRcdFx0XHRcdH0pLnRhYmxlc0FkanVzdGVkO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXN1bHRzLnB1c2goeyBzdWJTZWN0aW9uOiBzdWJzZWN0aW9uLCB0YWJsZXNBZGp1c3RlZCB9KTtcblx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0XHR9LCBbXSk7XG5cdFx0XHR0aGlzLnVwZGF0ZU5vblRhYmxlU3ViU2VjdGlvbkJhY2tncm91bmQoYWRqdXN0bWVudFJlc3VsdHMpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBmb3IgdGhlIGZvciB0aGUgY29sbGVjdGlvbiBmYWNldCBsYWJlbCxJZiBwcmVzZW50IHRoZW4gd2UgbWVyZ2UgdGhlIHRpdGxlLlxuXHQgKiBAcGFyYW0gc3Vic2VjdGlvbiBPYmplY3RQYWdlIFN1YlNlY3Rpb25cblx0ICogQHJldHVybnMgQWRqdXN0bWVudCByZXN1bHRzIGNvbnRhaW5pbmcgdGhlIHN1YnNlY3Rpb24gYW5kIHRhYmxlIGFkanVzdG1lbnQgc3RhdHVzLlxuXHQgKi9cblx0YWRqdXN0U2VjdGlvbkNvbnRlbnRXaXRoVGl0bGUoc3Vic2VjdGlvbjogT2JqZWN0UGFnZVN1YlNlY3Rpb24pOiBBZGp1c3RtZW50UmVzdWx0cyB7XG5cdFx0bGV0IGFkanVzdG1lbnRQcm9wczogQWRqdXN0bWVudFByb3BzID0ge307XG5cdFx0Y29uc3QgYmxvY2tzID0gc3Vic2VjdGlvbi5nZXRCbG9ja3MoKTtcblx0XHRsZXQgY29udGVudDtcblx0XHRpZiAoYmxvY2tzLmxlbmd0aCA9PT0gMiAmJiBibG9ja3NbMV0uaXNBPFN1YlNlY3Rpb25CbG9jaz4oXCJzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuY29udHJvbHMuU3ViU2VjdGlvbkJsb2NrXCIpKSB7XG5cdFx0XHRjb250ZW50ID0gYmxvY2tzWzFdLmdldEFnZ3JlZ2F0aW9uKFwiY29udGVudFwiKSBhcyBNYW5hZ2VkT2JqZWN0O1xuXHRcdFx0aWYgKGNvbnRlbnQgJiYgY29udGVudC5pc0EoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLnNlY3Rpb24uSVNpbmdsZVNlY3Rpb25Db250cmlidXRvclwiKSAmJiBibG9ja3NbMF0uaXNBPFRpdGxlPihcInNhcC5tLlRpdGxlXCIpKSB7XG5cdFx0XHRcdGFkanVzdG1lbnRQcm9wcyA9IHRoaXMuYWRqdXN0Rm9yU2luZ2xlQ29udGVudChjb250ZW50LCB7XG5cdFx0XHRcdFx0c2VjdGlvbmZyb21Db2xsZWN0aW9uRmFjZXQ6IHRydWUsXG5cdFx0XHRcdFx0VGl0bGU6IGJsb2Nrc1swXSxcblx0XHRcdFx0XHRTdWJTZWN0aW9uOiBzdWJzZWN0aW9uLFxuXHRcdFx0XHRcdHNob3dUaXRsZTogdGhpcy5nZXRWaXNpYmxlU3ViU2VjdGlvbnMoKS5sZW5ndGggPiAxXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSBlbHNlIGlmIChjb250ZW50ICYmIGNvbnRlbnQuaXNBPER5bmFtaWNTaWRlQ29udGVudD4oXCJzYXAudWkubGF5b3V0LkR5bmFtaWNTaWRlQ29udGVudFwiKSkge1xuXHRcdFx0XHRjb250ZW50ID0gY29udGVudC5nZXRNYWluQ29udGVudCBpbnN0YW5jZW9mIEZ1bmN0aW9uICYmIGNvbnRlbnQ/LmdldE1haW5Db250ZW50KCk7XG5cdFx0XHRcdGlmIChjb250ZW50ICYmIGNvbnRlbnQubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0Y29udGVudCA9IGNvbnRlbnRbMF07XG5cdFx0XHRcdFx0YWRqdXN0bWVudFByb3BzID0gdGhpcy5hZGp1c3RGb3JTaW5nbGVDb250ZW50KGNvbnRlbnQsIHtcblx0XHRcdFx0XHRcdHNlY3Rpb25mcm9tQ29sbGVjdGlvbkZhY2V0OiB0cnVlLFxuXHRcdFx0XHRcdFx0VGl0bGU6IGJsb2Nrc1swXSBhcyBUaXRsZSxcblx0XHRcdFx0XHRcdFN1YlNlY3Rpb246IHN1YnNlY3Rpb25cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4geyBzdWJTZWN0aW9uOiBzdWJzZWN0aW9uLCB0YWJsZXNBZGp1c3RlZDogYWRqdXN0bWVudFByb3BzLnRhYmxlc0FkanVzdGVkIH07XG5cdH1cblxuXHRnZXRTaW5nbGVDb250ZW50KHZpc2libGVTdWJTZWN0aW9ucz86IE9iamVjdFBhZ2VTdWJTZWN0aW9uW10pOiBNYW5hZ2VkT2JqZWN0IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBzdWJTZWN0aW9ucyA9IHZpc2libGVTdWJTZWN0aW9ucyA/PyB0aGlzLmdldFZpc2libGVTdWJTZWN0aW9ucygpO1xuXHRcdGlmIChzdWJTZWN0aW9ucy5sZW5ndGggPT09IDEpIHtcblx0XHRcdGNvbnN0IGJsb2NrcyA9IHN1YlNlY3Rpb25zWzBdLmdldEJsb2NrcygpO1xuXHRcdFx0aWYgKGJsb2Nrcy5sZW5ndGggPT09IDEgJiYgYmxvY2tzWzBdLmlzQTxTdWJTZWN0aW9uQmxvY2s+KFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLmNvbnRyb2xzLlN1YlNlY3Rpb25CbG9ja1wiKSkge1xuXHRcdFx0XHRyZXR1cm4gYmxvY2tzWzBdLmdldEFnZ3JlZ2F0aW9uKFwiY29udGVudFwiKSBhcyBNYW5hZ2VkT2JqZWN0O1xuXHRcdFx0fVxuXHRcdFx0Ly9JZiB0aGVyZSBpcyBhbiBpbnZpc2libGUgdGV4dCBiZWZvcmUgYSBzdGFuZGFyZCBidWlsZGluZyBibG9jaywgdGhlbiBhbHNvIHRoZSBtZXJnZSB0aXRsZSBsb2dpYyBzaG91bGQgYmUgYXBwbGllZCBhcyBpdHMgc3RpbGwgYSBzaW5nbGUgY29udGVudFxuXHRcdFx0ZWxzZSBpZiAoXG5cdFx0XHRcdGJsb2Nrcy5sZW5ndGggPT09IDIgJiZcblx0XHRcdFx0YmxvY2tzWzBdLmlzQShcInNhcC51aS5jb3JlLkludmlzaWJsZVRleHRcIikgJiZcblx0XHRcdFx0YmxvY2tzWzFdLmlzQTxTdWJTZWN0aW9uQmxvY2s+KFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLmNvbnRyb2xzLlN1YlNlY3Rpb25CbG9ja1wiKVxuXHRcdFx0KVxuXHRcdFx0XHRyZXR1cm4gYmxvY2tzWzFdLmdldEFnZ3JlZ2F0aW9uKFwiY29udGVudFwiKSBhcyBNYW5hZ2VkT2JqZWN0O1xuXHRcdH1cblx0fVxuXG5cdGdldFZpc2libGVTdWJTZWN0aW9ucygpOiBPYmplY3RQYWdlU3ViU2VjdGlvbltdIHtcblx0XHRjb25zdCBzdWJTZWN0aW9ucyA9IHRoaXMuZ2V0U3ViU2VjdGlvbnMoKTtcblx0XHRyZXR1cm4gc3ViU2VjdGlvbnMucmVkdWNlKCh2aXNpYmxlU3ViU2VjdGlvbnM6IE9iamVjdFBhZ2VTdWJTZWN0aW9uW10sIHN1YlNlY3Rpb24pID0+IHtcblx0XHRcdGlmIChzdWJTZWN0aW9uLmdldFZpc2libGUoKSkge1xuXHRcdFx0XHR2aXNpYmxlU3ViU2VjdGlvbnMucHVzaChzdWJTZWN0aW9uKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB2aXNpYmxlU3ViU2VjdGlvbnM7XG5cdFx0fSwgW10gYXMgT2JqZWN0UGFnZVN1YlNlY3Rpb25bXSk7XG5cdH1cblxuXHRnZXRTZWN0aW9uVGl0bGUoKTogc3RyaW5nIHtcblx0XHRsZXQgdGl0bGUgPSB0aGlzLmdldFRpdGxlKCk7XG5cdFx0aWYgKHRoaXMuZ2V0VmlzaWJsZVN1YlNlY3Rpb25zKCkubGVuZ3RoID09PSAxKSB7XG5cdFx0XHR0aXRsZSA9IHRoaXMuZ2V0VmlzaWJsZVN1YlNlY3Rpb25zKClbMF0uZ2V0VGl0bGUoKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRpdGxlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkanVzdCB0aGUgc2VjdGlvbiBhbmQgc3Vic2VjdGlvbiBiYXNlZCBvbiB0aGUgYXZhaWxhYmxlIGNvbnRlbnQuXG5cdCAqIEBwYXJhbSBzaW5nbGVDb250ZW50IENvbnRlbnRcblx0ICogQHBhcmFtIHNlY3Rpb25EZXRhaWxzIERldGFpbHNcblx0ICogQHJldHVybnMgSXMgdGhlIHNlY3Rpb24gYWRqdXN0ZWQuXG5cdCAqL1xuXHRhZGp1c3RGb3JTaW5nbGVDb250ZW50KFxuXHRcdHNpbmdsZUNvbnRlbnQ6IE1hbmFnZWRPYmplY3QsXG5cdFx0c2VjdGlvbkRldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCBPYmplY3RQYWdlU3ViU2VjdGlvbiB8IFRpdGxlIHwgYm9vbGVhbj5cblx0KTogQWRqdXN0bWVudFByb3BzIHtcblx0XHQvLyBzYXBVaVRhYmxlT25PYmplY3RQYWdlQWRqdXN0bWVudHNGb3JTZWN0aW9uIGNsYXNzIGF0IGxldmVsIG1ha2VzIGJhY2tncm91bmQgb2Ygc3Vic2VjdGlvbiB0aXRsZXMgdHJhbnNwYXJlbnQuXG5cdFx0Ly8gVGhpcyB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kIGlzIHByb3BhZ2F0ZWQgdG8gY29udGVudHMgdGhhdCBhcmUgZXhwZWN0ZWQgdG8gc2hvdyBvcGFxdWUgYmFja2dyb3VuZHMgYnkgZGVmYXVsdC5cblx0XHQvLyBXZSBuZWVkIHRvIGFkZCBleGNsdXNpb24gY2xhc3MgXCJzYXBVaUFkanVzdGVkU2VjdGlvblN1YnNlY3Rpb25XaXRob3V0VGFibGVcIiB0byB0aGUgc3Vic2VjdGlvbiB0aGF0IGRvZXNuJ3QgbmVlZFxuXHRcdGNvbnN0IGNsYXNzZXNUb0FkZDogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG5cdFx0Y29uc3Qgc2VjdGlvbk9ubHlDb250ZW50ID0gc2luZ2xlQ29udGVudCBhcyB1bmtub3duIGFzIElTaW5nbGVTZWN0aW9uQ29udHJpYnV0b3I7XG5cdFx0Ly8gVGhpcyBmdW5jdGlvbiB3aWxsIGFsc28gYmUgY2FsbGVkIGZyb20gdGhlIGV4dGVuc2lvbkFQSSBhbG9uZyB3aXRoIHNvbWUgY29udHJvbHMgYnkgdGhlIGFwcGxpY2F0aW9uIGRldmVsb3BlciwgdGhlIGJlbG93IGNoZWNrIGlzIGFkZGVkIHRvIGNvdmVyIHRoZSBjYXNlcyB3aGVyZSB0aGUgY29udHJvbHMgcGFzc2VkIGxpa2Ugc2FwLm0uVGl0bGUgYXJlIG5vdCBpbXBsZW1lbnRpbmcgdGhlIGludGVyZmFjZVxuXHRcdGNvbnN0IGNvbnRlbnRSb2xlID0gc2VjdGlvbk9ubHlDb250ZW50LmdldFNlY3Rpb25Db250ZW50Um9sZSAmJiBzZWN0aW9uT25seUNvbnRlbnQuZ2V0U2VjdGlvbkNvbnRlbnRSb2xlKCk7XG5cdFx0aWYgKGNvbnRlbnRSb2xlID09PSBcInByb3ZpZGVyXCIpIHtcblx0XHRcdGNvbnN0IGluZm9Gcm9tUHJvdmlkZXIgPVxuXHRcdFx0XHRzZWN0aW9uT25seUNvbnRlbnQuZ2V0RGF0YUZyb21Qcm92aWRlciAmJiBzZWN0aW9uT25seUNvbnRlbnQuZ2V0RGF0YUZyb21Qcm92aWRlcih0aGlzLnVzZVNpbmdsZVRleHRBcmVhRmllbGRBc05vdGVzKTtcblx0XHRcdGlmIChpbmZvRnJvbVByb3ZpZGVyICYmIHRoaXMuZ2V0VGl0bGUoKSA9PT0gaW5mb0Zyb21Qcm92aWRlci50aXRsZSkge1xuXHRcdFx0XHQvL3RoaXMuc2V0VGl0bGUoaW5mb0Zyb21Qcm92aWRlci50aXRsZSk7XG5cdFx0XHRcdHRoaXMuc2V0U2hvd1RpdGxlKHRydWUpO1xuXHRcdFx0XHQvLyBUT0RPOiBDaGVjayBpZiB0aGlzIGlzIHJlYWxseSBuZWVkZWQ/XG5cdFx0XHRcdGNsYXNzZXNUb0FkZC5hZGQoXCJzYXBVaVRhYmxlT25PYmplY3RQYWdlQWRqdXN0bWVudHNGb3JTZWN0aW9uXCIpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoY29udGVudFJvbGUgPT09IFwiY29uc3VtZXJcIikge1xuXHRcdFx0bGV0IHRpdGxlID0gdGhpcy5nZXRTZWN0aW9uVGl0bGUoKTtcblx0XHRcdGlmIChzZWN0aW9uRGV0YWlscz8uc2VjdGlvbmZyb21Db2xsZWN0aW9uRmFjZXQpIHtcblx0XHRcdFx0dGl0bGUgPSAoc2VjdGlvbkRldGFpbHM/LlRpdGxlIGFzIFRpdGxlKT8uZ2V0VGV4dCgpO1xuXHRcdFx0XHQoc2VjdGlvbkRldGFpbHM/LlRpdGxlIGFzIFRpdGxlKT8uc2V0VmlzaWJsZShmYWxzZSk7XG5cdFx0XHRcdChzZWN0aW9uRGV0YWlscz8uU3ViU2VjdGlvbiBhcyBPYmplY3RQYWdlU3ViU2VjdGlvbik/LnNldFNob3dUaXRsZShmYWxzZSk7XG5cdFx0XHR9IGVsc2UgaWYgKHNlY3Rpb25EZXRhaWxzPy5zZWN0aW9uRnJvbVJlZmVyZW5jZUZhY2V0KSB7XG5cdFx0XHRcdHRpdGxlID0gKHNlY3Rpb25EZXRhaWxzPy5TdWJTZWN0aW9uIGFzIE9iamVjdFBhZ2VTdWJTZWN0aW9uKT8uZ2V0VGl0bGUoKTtcblx0XHRcdFx0KHNlY3Rpb25EZXRhaWxzPy5TdWJTZWN0aW9uIGFzIE9iamVjdFBhZ2VTdWJTZWN0aW9uKT8uc2V0U2hvd1RpdGxlKGZhbHNlKTtcblx0XHRcdH1cblx0XHRcdGlmICh0aXRsZSA9PT0gXCJcIiAmJiBzZWN0aW9uRGV0YWlscz8uU3ViU2VjdGlvbikge1xuXHRcdFx0XHR0aXRsZSA9IChzZWN0aW9uRGV0YWlscz8uU3ViU2VjdGlvbiBhcyBPYmplY3RQYWdlU3ViU2VjdGlvbikuZ2V0VGl0bGUoKTtcblx0XHRcdH1cblx0XHRcdGlmIChzZWN0aW9uT25seUNvbnRlbnQuc2VuZERhdGFUb0NvbnN1bWVyKSB7XG5cdFx0XHRcdGNvbnN0IHN1YlNlY3Rpb25zID0gdGhpcy5nZXRTdWJTZWN0aW9ucygpO1xuXHRcdFx0XHRjb25zdCBoYXNNdWx0aXBsZVN1YnNlY3Rpb25zID0gISEoc3ViU2VjdGlvbnM/Lmxlbmd0aCA+IDEpO1xuXG5cdFx0XHRcdHNlY3Rpb25Pbmx5Q29udGVudC5zZW5kRGF0YVRvQ29uc3VtZXIoe1xuXHRcdFx0XHRcdHRpdGxlTGV2ZWw6IHRoaXMuZ2V0VGl0bGVMZXZlbCgpLFxuXHRcdFx0XHRcdHRpdGxlOiB0aXRsZSxcblx0XHRcdFx0XHRoZWFkZXJTdHlsZTogaGFzTXVsdGlwbGVTdWJzZWN0aW9ucyA/IFwiSDVcIiA6IFwiSDRcIlxuXHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy5zZXRTaG93VGl0bGUoISFzZWN0aW9uRGV0YWlscz8uc2hvd1RpdGxlKTtcblx0XHRcdFx0Y2xhc3Nlc1RvQWRkLmFkZChcInNhcFVpVGFibGVPbk9iamVjdFBhZ2VBZGp1c3RtZW50c0ZvclNlY3Rpb25cIik7XG5cblx0XHRcdFx0Ly8gaWYgdGhlIHNlY3Rpb24gaGFzIG9ubHkgc3ViIHNlY3Rpb24sIHRoZW4gdGhlIHN1YiBzZWN0aW9uJ3MgdGl0bGUgc2hvdWxkIG5vdCBiZSBkaXNwbGF5ZWRcblx0XHRcdFx0aWYgKCFoYXNNdWx0aXBsZVN1YnNlY3Rpb25zKSBzdWJTZWN0aW9uc1swXS5zZXRTaG93VGl0bGUoZmFsc2UpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoc2luZ2xlQ29udGVudD8uaXNBKFwic2FwLm0uVGl0bGVcIikpIHtcblx0XHRcdGNvbnN0IHN1YlNlY3Rpb25zID0gdGhpcy5nZXRWaXNpYmxlU3ViU2VjdGlvbnMoKSB8fCBbXTtcblx0XHRcdGNvbnN0IGhhc011bHRpcGxlU3Vic2VjdGlvbnMgPSBzdWJTZWN0aW9ucy5sZW5ndGggPiAxO1xuXG5cdFx0XHQvLyBIYW5kbGUgdGl0bGUgc3R5bGluZyBhbmQgdmlzaWJpbGl0eSBpZiByZXVzZSBjb21wb25lbnQgaXMgbm90IGVuYWJsZWRcblx0XHRcdGlmICghc2VjdGlvbkRldGFpbHM/Lm11bHRpcGxlU3ViU2VjdGlvbnNXaXRoUmV1c2VDb21wb25lbnQpIHtcblx0XHRcdFx0Y29uc3QgdGl0bGUgPSBzaW5nbGVDb250ZW50IGFzIFRpdGxlO1xuXHRcdFx0XHR0aXRsZS5zZXRUZXh0KHRoaXMuZ2V0VGl0bGUoKSk7XG5cdFx0XHRcdHRpdGxlLnNldFRpdGxlU3R5bGUoaGFzTXVsdGlwbGVTdWJzZWN0aW9ucyA/IFwiSDVcIiA6IFwiSDRcIik7XG5cdFx0XHRcdHRpdGxlLnNldExldmVsKHRoaXMuZ2V0VGl0bGVMZXZlbCgpKTtcblx0XHRcdFx0dGhpcy5zZXRTaG93VGl0bGUoZmFsc2UpO1xuXHRcdFx0XHRjbGFzc2VzVG9BZGQuYWRkKFwic2FwVWlUYWJsZU9uT2JqZWN0UGFnZUFkanVzdG1lbnRzRm9yU2VjdGlvblwiKTtcblx0XHRcdH1cblx0XHRcdC8vIEhpZGUgc3Vic2VjdGlvbiB0aXRsZSBpZiB0aGVyZSdzIG9ubHkgb25lIHZpc2libGUgc3Vic2VjdGlvblxuXHRcdFx0aWYgKHN1YlNlY3Rpb25zLmxlbmd0aCA9PT0gMSkge1xuXHRcdFx0XHRzdWJTZWN0aW9uc1swXS5zZXRTaG93VGl0bGUoZmFsc2UpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAodGhpcy5jaGVja0lmTm90ZXNSZXVzZUNvbXBvbmVudChzaW5nbGVDb250ZW50KSkge1xuXHRcdFx0LyoqXG5cdFx0XHQgKiBOb3RlcyBSZXVzZSBjb21wb25lbnQgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlIDpcblx0XHRcdCAqIDxWQm94IGlkPVwiTm90ZVNlY3Rpb25cIj5cblx0XHRcdCAqIDxNZXNzYWdlU3RyaXAgaWQ9XCJub3Rlc0RlYnVnUHJvcGVydGllc1wiPlxuXHRcdFx0ICogPExpc3QgaWQ9XCJOb3Rlc0xpc3RcIj5cblx0XHRcdCAqIDxoZWFkZXJUb29sYmFyPlxuXHRcdFx0ICogPE92ZXJmbG93VG9vbGJhciBpZD1cIm5vdGVIZWFkZXJPdmVyZmxvd1Rvb2xiYXJcIiBzdHlsZT1cIlN0YW5kYXJkXCI+XG5cdFx0XHQgKiAgICAgICA8VGl0bGUgaWQ9XCJub3RlSGVhZGVyT3ZlcmZsb3dUb29sYmFyVGl0bGVcIi8+XG5cdFx0XHQgKlx0XHQuLi4uLi5cblx0XHRcdCAqXHQ8L092ZXJmbG93VG9vbGJhcj5cblx0XHRcdCAqXHQ8L2hlYWRlclRvb2xiYXI+XG5cdFx0XHQgKlx0Li4uLi4uXG5cdFx0XHQgKlx0PC9MaXN0PlxuXHRcdFx0ICpcdDwvVkJveD5cblx0XHRcdCAqXHQuLi4uLlxuXHRcdFx0ICpcblx0XHRcdCAqIFdlIGFyZSBhcHBseWluZyB0aGUgdGl0bGUgbWVyZ2UgbG9naWMgZm9yIHRoZSB0aXRsZSB3aXRoaW4gdGhlIG92ZXJmbG93IHRvb2xiYXJcblx0XHRcdCAqIGluIHRoZSBmb2xsb3dpbmcgY29kZVxuXHRcdFx0ICpcblx0XHRcdCAqL1xuXHRcdFx0Y29uc3QgdkJveEl0ZW1zID0gKHNpbmdsZUNvbnRlbnQgYXMgVkJveCkuZ2V0SXRlbXMoKTtcblx0XHRcdHZCb3hJdGVtcy5mb3JFYWNoKCh2Qm94SXRlbSkgPT4ge1xuXHRcdFx0XHRjb25zdCBoZWFkZXJUb29sYmFyID0gdkJveEl0ZW0uZ2V0QWdncmVnYXRpb24oXCJoZWFkZXJUb29sYmFyXCIpO1xuXHRcdFx0XHRpZiAoaGVhZGVyVG9vbGJhcikge1xuXHRcdFx0XHRcdChoZWFkZXJUb29sYmFyIGFzIE92ZXJmbG93VG9vbGJhcik/LmdldENvbnRlbnQoKS5mb3JFYWNoKChjb250cm9sKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoY29udHJvbC5pc0EoXCJzYXAubS5UaXRsZVwiKSkge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBub3Rlc1RpdGxlID0gY29udHJvbCBhcyBUaXRsZTtcblx0XHRcdFx0XHRcdFx0bm90ZXNUaXRsZS5zZXRUZXh0KHRoaXMuZ2V0VGl0bGUoKSk7XG5cdFx0XHRcdFx0XHRcdG5vdGVzVGl0bGUuc2V0VGl0bGVTdHlsZShcIkg0XCIpO1xuXHRcdFx0XHRcdFx0XHRub3Rlc1RpdGxlLnNldExldmVsKHRoaXMuZ2V0VGl0bGVMZXZlbCgpKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHQvLyBTaW5nbGUgY29udGVudCB3aXRoIHNpbmdsZSBzdWJzZWN0aW9uIG1lYW5zIHNlY3Rpb24gdGl0bGUoMSksIHN1YnNlY3Rpb24gdGl0bGUoMikgYW5kIE5vdGVzIFJldXNlIGNvbXBvbmVudCB0aXRsZSgzKSBhcmUgYXZhaWxhYmxlLlxuXHRcdFx0Ly8gV2Ugc2hhbGwgc2hvdyBvbmx5IDMuIFdlIGhpZGUgMSBhbmQgMi5cblx0XHRcdGNvbnN0IHN1YlNlY3Rpb25zID0gdGhpcy5nZXRWaXNpYmxlU3ViU2VjdGlvbnMoKTtcblx0XHRcdGlmIChzdWJTZWN0aW9ucy5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0c3ViU2VjdGlvbnNbMF0uc2V0U2hvd1RpdGxlKGZhbHNlKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuc2V0U2hvd1RpdGxlKGZhbHNlKTtcblx0XHRcdGNsYXNzZXNUb0FkZC5hZGQoXCJzYXBVaVRhYmxlT25PYmplY3RQYWdlQWRqdXN0bWVudHNGb3JTZWN0aW9uXCIpO1xuXHRcdH1cblx0XHR0aGlzLmFkZFN0eWxlQ2xhc3MoQXJyYXkuZnJvbShjbGFzc2VzVG9BZGQpLmpvaW4oXCIgXCIpKTtcblx0XHRyZXR1cm4geyB0YWJsZXNBZGp1c3RlZDogY2xhc3Nlc1RvQWRkLmhhcyhcInNhcFVpVGFibGVPbk9iamVjdFBhZ2VBZGp1c3RtZW50c0ZvclNlY3Rpb25cIikgfTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBTZWN0aW9uO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0VBb0JBO0VBQUEsSUFlTUEsT0FBTyxJQUFBQyxJQUFBLEdBRlpDLGNBQWMsQ0FBQyxnQ0FBZ0MsRUFBRTtJQUFFQyxVQUFVLEVBQUU7RUFBbUQsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FDcEhDLEtBQUssQ0FBQ0MsbUJBQW1CLENBQUMsRUFBQUMsS0FBQSxHQUd6QkMsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBRzVCRixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVUsQ0FBQyxDQUFDLEVBQUFFLEtBQUEsR0FNN0JILFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUyxDQUFDLENBQUMsRUFBQUcsS0FBQSxHQU01QkosUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxFQUFBUixJQUFBLENBQUFZLE1BQUEsR0FBQVQsS0FBQSxDQUFBUyxNQUFBLElBQUFDLE9BQUEsMEJBQUFDLGtCQUFBO0lBRzdCLFNBQUFmLFFBQVlnQixVQUE4RCxFQUFFQyxNQUFtQyxFQUFFO01BQUEsSUFBQUMsS0FBQTtNQUNoSEEsS0FBQSxHQUFBSCxrQkFBQSxDQUFBSSxJQUFBLE9BQU1ILFVBQVUsRUFBdUJDLE1BQU0sQ0FBQztNQXBCL0M7TUFBQUcsMEJBQUEsQ0FBQUYsS0FBQSxxQkFBQUcsV0FBQSxFQUFBSCxLQUFBO01BQUFFLDBCQUFBLENBQUFGLEtBQUEsbUNBQUFJLFlBQUEsRUFBQUosS0FBQTtNQU9BO0FBQ0Q7QUFDQTtNQUZDRSwwQkFBQSxDQUFBRixLQUFBLHVCQUFBSyxZQUFBLEVBQUFMLEtBQUE7TUFNQTtBQUNEO0FBQ0E7TUFGQ0UsMEJBQUEsQ0FBQUYsS0FBQSwwQkFBQU0sWUFBQSxFQUFBTixLQUFBO01BUUNBLEtBQUEsQ0FBS08sZ0JBQWdCLENBQUMsQ0FBQztNQUFDLE9BQUFQLEtBQUE7SUFDekI7SUFBQ1EsY0FBQSxDQUFBMUIsT0FBQSxFQUFBZSxrQkFBQTtJQUFBLElBQUFZLE1BQUEsR0FBQTNCLE9BQUEsQ0FBQTRCLFNBQUE7SUFBQUQsTUFBQSxDQU1PRixnQkFBZ0IsR0FBeEIsU0FBUUEsZ0JBQWdCQSxDQUFBLEVBQVM7TUFDaEMsTUFBTUksY0FBYyxHQUFHO1FBQ3RCQyxnQkFBZ0IsRUFBRUEsQ0FBQSxLQUFZO1VBQzdCLE1BQU1DLFdBQVcsR0FBRyxJQUFJLENBQUNDLGNBQWMsQ0FBQyxDQUFpQjtVQUN6RCxJQUFJRCxXQUFXLENBQUNFLE1BQU0sRUFBRTtZQUN2QkYsV0FBVyxDQUFDRyxPQUFPLENBQUVDLFVBQXNCLElBQUs7Y0FDL0M7Y0FDQSxJQUFJQSxVQUFVLENBQUNDLFNBQVMsQ0FBQyxDQUFDLEVBQUVILE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ3pDLE1BQU1JLHVCQUF1QixHQUFHO2tCQUMvQkMsaUJBQWlCLEVBQUVBLENBQUEsS0FBWTtvQkFDOUIsSUFBSSxDQUFDQyw0QkFBNEIsQ0FBQyxDQUFDO29CQUNuQ0osVUFBVSxDQUFDSyxtQkFBbUIsQ0FBQ0gsdUJBQXVCLENBQUM7a0JBQ3hEO2dCQUNELENBQUM7Z0JBQ0RGLFVBQVUsQ0FBQ00sZ0JBQWdCLENBQUNKLHVCQUF1QixDQUFDO2NBQ3JELENBQUMsTUFBTTtnQkFDTixJQUFJLENBQUNFLDRCQUE0QixDQUFDLENBQUM7Y0FDcEM7WUFDRCxDQUFDLENBQUM7VUFDSCxDQUFDLE1BQU07WUFDTixJQUFJLENBQUNBLDRCQUE0QixDQUFDLENBQUM7VUFDcEM7UUFDRDtNQUNELENBQUM7TUFFRCxJQUFJLENBQUNFLGdCQUFnQixDQUFDWixjQUFjLENBQUM7SUFDdEM7O0lBRUE7QUFDRDtBQUNBO0FBQ0EsT0FIQztJQUFBRixNQUFBLENBSUFZLDRCQUE0QixHQUE1QixTQUFBQSw0QkFBNEJBLENBQUEsRUFBUztNQUNwQyxNQUFNRyxJQUFJLEdBQUdDLFdBQVcsQ0FBQ0MsYUFBYSxDQUFDLElBQUksQ0FBQztNQUM1QyxJQUFJLElBQUksQ0FBQ0MsNkJBQTZCLEVBQUU7UUFDdkMsSUFBSSxDQUFDQyx1Q0FBdUMsQ0FBQyxDQUFDO01BQy9DO01BQ0EsSUFBSSxDQUFDQyw4QkFBOEIsQ0FBQ0wsSUFBSSxDQUFDO0lBQzFDLENBQUM7SUFBQWYsTUFBQSxDQUVEcUIsa0JBQWtCLEdBQWxCLFNBQUFBLGtCQUFrQkEsQ0FBQ0MsZUFBdUIsRUFBUTtNQUNqRCxNQUFNQyxTQUFTLEdBQUdELGVBQWUsQ0FBQ0UsS0FBSyxDQUFDLEdBQUcsQ0FBQztNQUM1QyxJQUFJLENBQUNDLHNCQUFzQixHQUFHRixTQUFTLEVBQUVHLEdBQUcsQ0FBQyxDQUFDO01BQzlDLElBQUksQ0FBQ0Msc0JBQXNCLEdBQUdKLFNBQVMsRUFBRUssSUFBSSxDQUFDLEdBQUcsQ0FBQztNQUNsRCxJQUFJLENBQUNDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRVAsZUFBZSxDQUFDO0lBQ3JEOztJQUVBO0lBQUE7SUFBQXRCLE1BQUEsQ0FDQThCLGFBQWEsR0FBYixTQUFBQSxhQUFhQSxDQUFDQyxTQUFpQyxFQUFFQyxNQUFlLEVBQVE7TUFDdkU1QyxrQkFBQSxDQUFBYSxTQUFBLENBQU02QixhQUFhLENBQUF0QyxJQUFBLE9BQUN1QyxTQUFTLEVBQUVDLE1BQU07TUFDckMsTUFBTUMsaUJBQWlCLEdBQUdDLFNBQVMsQ0FBQ0Msb0JBQW9CLENBQUMsSUFBSSxDQUFzQjtNQUNuRixNQUFNQyxjQUFjLEdBQUdILGlCQUFpQixDQUFDSSxpQkFBaUIsQ0FBQyxDQUFDO01BQzVELElBQUlELGNBQWMsRUFBRTtRQUNuQkUsV0FBVyxDQUFDQyxtQ0FBbUMsQ0FBQyxJQUFJLEVBQUVILGNBQWMsQ0FBQztNQUN0RTtNQUNBLE9BQU8sSUFBSTtJQUNaOztJQUVBO0FBQ0Q7QUFDQTtBQUNBLE9BSEM7SUFBQXBDLE1BQUEsQ0FJQXdDLGtDQUFrQyxHQUFsQyxTQUFBQSxrQ0FBa0NBLENBQUNDLGlCQUFzQyxFQUFRO01BQ2hGLElBQUksSUFBSSxDQUFDQyxhQUFhLENBQUMsNkNBQTZDLENBQUMsRUFBRTtRQUN0RUQsaUJBQWlCLENBQUNsQyxPQUFPLENBQUNvQyxJQUFBLElBQW9DO1VBQUEsSUFBbkM7WUFBRW5DLFVBQVU7WUFBRW9DO1VBQWUsQ0FBQyxHQUFBRCxJQUFBO1VBQ3hELElBQUlDLGNBQWMsRUFBRTtZQUNuQnBDLFVBQVUsQ0FBQ3FDLGdCQUFnQixDQUFDLDRDQUE0QyxDQUFDO1VBQzFFLENBQUMsTUFBTTtZQUNOckMsVUFBVSxDQUFDc0MsYUFBYSxDQUFDLDRDQUE0QyxDQUFDO1VBQ3ZFO1FBQ0QsQ0FBQyxDQUFDO01BQ0g7SUFDRDs7SUFFQTtBQUNEO0FBQ0EsT0FGQztJQUFBOUMsTUFBQSxDQUdBbUIsdUNBQXVDLEdBQXZDLFNBQUFBLHVDQUF1Q0EsQ0FBQSxFQUFTO01BQy9DLE1BQU00QixrQkFBa0IsR0FBRyxJQUFJLENBQUNDLHFCQUFxQixDQUFDLENBQUM7TUFDdkQsTUFBTVAsaUJBQWlCLEdBQUdNLGtCQUFrQixDQUFDRSxNQUFNLENBQUMsQ0FBQ0MsT0FBNEIsRUFBRTFDLFVBQWdDLEtBQUs7UUFDdkgsSUFBSW9DLGNBQWM7UUFDbEIsTUFBTU8sT0FBTyxHQUFHLElBQUksQ0FBQ0MsZ0JBQWdCLENBQUMsQ0FBQzVDLFVBQVUsQ0FBQyxDQUFDO1FBQ25ELElBQUkyQyxPQUFPLEVBQUU7VUFDWlAsY0FBYyxHQUFHLElBQUksQ0FBQ1Msc0JBQXNCLENBQUNGLE9BQU8sQ0FBQyxDQUFDUCxjQUFjO1FBQ3JFO1FBQ0FNLE9BQU8sQ0FBQ0ksSUFBSSxDQUFDO1VBQUU5QyxVQUFVO1VBQUVvQztRQUFlLENBQUMsQ0FBQztRQUM1QyxPQUFPTSxPQUFPO01BQ2YsQ0FBQyxFQUFFLEVBQUUsQ0FBQztNQUNOLElBQUksQ0FBQ1Ysa0NBQWtDLENBQUNDLGlCQUFpQixDQUFDO0lBQzNELENBQUM7SUFBQXpDLE1BQUEsQ0FFRG9CLDhCQUE4QixHQUE5QixTQUFBQSw4QkFBOEJBLENBQUNMLElBQVksRUFBMkI7TUFDckUsSUFBS0EsSUFBSSxFQUFFd0MsV0FBVyxDQUFDLENBQUMsRUFBaUNDLGFBQWEsS0FBSyxNQUFNLEVBQUU7UUFDbEYsTUFBTUMsYUFBYSxHQUFHLElBQUksQ0FBQ0wsZ0JBQWdCLENBQUMsQ0FBQztRQUM3QyxJQUNDSyxhQUFhLEtBQ1pBLGFBQWEsQ0FBQ0MsR0FBRyxDQUFDLDBEQUEwRCxDQUFDLElBQzdFLElBQUksQ0FBQ0MsMEJBQTBCLENBQUNGLGFBQWEsQ0FBQyxDQUFDLEVBQy9DO1VBQ0QsTUFBTTtZQUFFYixjQUFjLEVBQUVnQjtVQUEyQixDQUFDLEdBQUcsSUFBSSxDQUFDUCxzQkFBc0IsQ0FBQ0ksYUFBYSxDQUFDO1VBQ2pHLE1BQU1yRCxXQUFXLEdBQUcsSUFBSSxDQUFDNEMscUJBQXFCLENBQUMsQ0FBQztVQUNoRCxJQUFJLENBQUNSLGtDQUFrQyxDQUFDLENBQUM7WUFBRWhDLFVBQVUsRUFBRUosV0FBVyxDQUFDLENBQUMsQ0FBQztZQUFFd0MsY0FBYyxFQUFFZ0I7VUFBMkIsQ0FBQyxDQUFDLENBQUM7UUFDdEgsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDakMsc0JBQXNCLElBQUksSUFBSSxDQUFDRixzQkFBc0IsRUFBRTtVQUN0RSxPQUFPb0MsU0FBUyxDQUFDQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUNuQyxzQkFBc0IsRUFBRSxJQUFJLENBQUNGLHNCQUFzQixFQUFFVixJQUFJLEVBQUUsSUFBSSxDQUFDO1FBQy9HLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQ1YsY0FBYyxDQUFDLENBQUMsQ0FBQ0MsTUFBTSxHQUFHLENBQUMsRUFBRTtVQUM1QztVQUNBLElBQUksQ0FBQ3lELG9CQUFvQixDQUFDLENBQUM7UUFDNUIsQ0FBQyxNQUFNO1VBQ05DLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLDBHQUEwRyxDQUFDO1FBQ3RIO01BQ0QsQ0FBQyxNQUFNO1FBQ04sSUFBSSxDQUFDRixvQkFBb0IsQ0FBQyxDQUFDO01BQzVCO0lBQ0Q7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQSxPQUpDO0lBQUEvRCxNQUFBLENBS0EyRCwwQkFBMEIsR0FBMUIsU0FBQUEsMEJBQTBCQSxDQUFDRixhQUE0QixFQUFXO01BQ2pFLElBQUlBLGFBQWEsQ0FBQ0MsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJRCxhQUFhLENBQUNTLEtBQUssQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUNyRixPQUFPLElBQUk7TUFDWjtNQUNBLE9BQU8sS0FBSztJQUNiOztJQUVBO0FBQ0Q7QUFDQSxPQUZDO0lBQUFuRSxNQUFBLENBR0ErRCxvQkFBb0IsR0FBcEIsU0FBQUEsb0JBQW9CQSxDQUFBLEVBQVM7TUFDNUIsTUFBTWhCLGtCQUFrQixHQUFHLElBQUksQ0FBQ0MscUJBQXFCLENBQUMsQ0FBQztNQUN2RCxJQUFJRCxrQkFBa0IsQ0FBQ3pDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDcEMsTUFBTTtVQUFFc0MsY0FBYyxFQUFFd0I7UUFBOEIsQ0FBQyxHQUFHLElBQUksQ0FBQ0MsNkJBQTZCLENBQUN0QixrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuSCxJQUFJLENBQUNQLGtDQUFrQyxDQUFDLENBQUM7VUFBRWhDLFVBQVUsRUFBRXVDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztVQUFFSCxjQUFjLEVBQUV3QjtRQUE4QixDQUFDLENBQUMsQ0FBQztNQUNoSSxDQUFDLE1BQU07UUFDTixNQUFNM0IsaUJBQWlCLEdBQUdNLGtCQUFrQixDQUFDRSxNQUFNLENBQUMsQ0FBQ0MsT0FBNEIsRUFBRW9CLFVBQWdDLEtBQUs7VUFDdkgsSUFBSTFCLGNBQWM7VUFDbEIsSUFBSU8sT0FBTztVQUNYLE1BQU1vQixNQUFNLEdBQUdELFVBQVUsQ0FBQzdELFNBQVMsQ0FBQyxDQUFDO1VBQ3JDO1VBQ0E7VUFDQSxJQUFJOEQsTUFBTSxDQUFDakUsTUFBTSxLQUFLLENBQUMsSUFBSWlFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRWIsR0FBRyxDQUFrQixzREFBc0QsQ0FBQyxFQUFFO1lBQ25IZCxjQUFjLEdBQUcsSUFBSSxDQUFDeUIsNkJBQTZCLENBQUNDLFVBQVUsQ0FBQyxDQUFDMUIsY0FBYztVQUMvRTtVQUNBO1VBQUEsS0FDSyxJQUFJMkIsTUFBTSxDQUFDakUsTUFBTSxLQUFLLENBQUMsSUFBSWlFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRWIsR0FBRyxDQUFrQixzREFBc0QsQ0FBQyxFQUFFO1lBQ3hIUCxPQUFPLEdBQUdvQixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUNDLGNBQWMsQ0FBQyxTQUFTLENBQWtCO1lBQzlELElBQUlyQixPQUFPLENBQUNPLEdBQUcsQ0FBQywwREFBMEQsQ0FBQyxFQUFFO2NBQzVFZCxjQUFjLEdBQUcsSUFBSSxDQUFDUyxzQkFBc0IsQ0FBQ0YsT0FBTyxFQUFFO2dCQUNyRHNCLHlCQUF5QixFQUFFLElBQUk7Z0JBQy9CQyxVQUFVLEVBQUVKLFVBQVU7Z0JBQ3RCSyxTQUFTLEVBQUUsSUFBSSxDQUFDM0IscUJBQXFCLENBQUMsQ0FBQyxDQUFDMUMsTUFBTSxHQUFHO2NBQ2xELENBQUMsQ0FBQyxDQUFDc0MsY0FBYztZQUNsQixDQUFDLE1BQU0sSUFBS08sT0FBTyxFQUF5Qk8sR0FBRyxDQUFDLGtDQUFrQyxDQUFDLEVBQUU7Y0FDcEZQLE9BQU8sR0FDTEEsT0FBTyxDQUF3QnlCLGNBQWMsWUFBWUMsUUFBUSxJQUNqRTFCLE9BQU8sRUFBeUJ5QixjQUFjLENBQUMsQ0FBQztjQUNsRCxJQUFJekIsT0FBTyxJQUFJQSxPQUFPLENBQUM3QyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNwQzZDLE9BQU8sR0FBR0EsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDcEJQLGNBQWMsR0FBRyxJQUFJLENBQUNTLHNCQUFzQixDQUFDRixPQUFPLEVBQUU7a0JBQ3JEc0IseUJBQXlCLEVBQUUsSUFBSTtrQkFDL0JDLFVBQVUsRUFBRUo7Z0JBQ2IsQ0FBQyxDQUFDLENBQUMxQixjQUFjO2NBQ2xCO1lBQ0Q7VUFDRDtVQUNBTSxPQUFPLENBQUNJLElBQUksQ0FBQztZQUFFOUMsVUFBVSxFQUFFOEQsVUFBVTtZQUFFMUI7VUFBZSxDQUFDLENBQUM7VUFDeEQsT0FBT00sT0FBTztRQUNmLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDTixJQUFJLENBQUNWLGtDQUFrQyxDQUFDQyxpQkFBaUIsQ0FBQztNQUMzRDtJQUNEOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsT0FKQztJQUFBekMsTUFBQSxDQUtBcUUsNkJBQTZCLEdBQTdCLFNBQUFBLDZCQUE2QkEsQ0FBQ0MsVUFBZ0MsRUFBcUI7TUFDbEYsSUFBSVEsZUFBZ0MsR0FBRyxDQUFDLENBQUM7TUFDekMsTUFBTVAsTUFBTSxHQUFHRCxVQUFVLENBQUM3RCxTQUFTLENBQUMsQ0FBQztNQUNyQyxJQUFJMEMsT0FBTztNQUNYLElBQUlvQixNQUFNLENBQUNqRSxNQUFNLEtBQUssQ0FBQyxJQUFJaUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDYixHQUFHLENBQWtCLHNEQUFzRCxDQUFDLEVBQUU7UUFDbEhQLE9BQU8sR0FBR29CLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsY0FBYyxDQUFDLFNBQVMsQ0FBa0I7UUFDOUQsSUFBSXJCLE9BQU8sSUFBSUEsT0FBTyxDQUFDTyxHQUFHLENBQUMsMERBQTBELENBQUMsSUFBSWEsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDYixHQUFHLENBQVEsYUFBYSxDQUFDLEVBQUU7VUFDOUhvQixlQUFlLEdBQUcsSUFBSSxDQUFDekIsc0JBQXNCLENBQUNGLE9BQU8sRUFBRTtZQUN0RDRCLDBCQUEwQixFQUFFLElBQUk7WUFDaENDLEtBQUssRUFBRVQsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNoQkcsVUFBVSxFQUFFSixVQUFVO1lBQ3RCSyxTQUFTLEVBQUUsSUFBSSxDQUFDM0IscUJBQXFCLENBQUMsQ0FBQyxDQUFDMUMsTUFBTSxHQUFHO1VBQ2xELENBQUMsQ0FBQztRQUNILENBQUMsTUFBTSxJQUFJNkMsT0FBTyxJQUFJQSxPQUFPLENBQUNPLEdBQUcsQ0FBcUIsa0NBQWtDLENBQUMsRUFBRTtVQUMxRlAsT0FBTyxHQUFHQSxPQUFPLENBQUN5QixjQUFjLFlBQVlDLFFBQVEsSUFBSTFCLE9BQU8sRUFBRXlCLGNBQWMsQ0FBQyxDQUFDO1VBQ2pGLElBQUl6QixPQUFPLElBQUlBLE9BQU8sQ0FBQzdDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDcEM2QyxPQUFPLEdBQUdBLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDcEIyQixlQUFlLEdBQUcsSUFBSSxDQUFDekIsc0JBQXNCLENBQUNGLE9BQU8sRUFBRTtjQUN0RDRCLDBCQUEwQixFQUFFLElBQUk7Y0FDaENDLEtBQUssRUFBRVQsTUFBTSxDQUFDLENBQUMsQ0FBVTtjQUN6QkcsVUFBVSxFQUFFSjtZQUNiLENBQUMsQ0FBQztVQUNIO1FBQ0Q7TUFDRDtNQUNBLE9BQU87UUFBRTlELFVBQVUsRUFBRThELFVBQVU7UUFBRTFCLGNBQWMsRUFBRWtDLGVBQWUsQ0FBQ2xDO01BQWUsQ0FBQztJQUNsRixDQUFDO0lBQUE1QyxNQUFBLENBRURvRCxnQkFBZ0IsR0FBaEIsU0FBQUEsZ0JBQWdCQSxDQUFDTCxrQkFBMkMsRUFBNkI7TUFDeEYsTUFBTTNDLFdBQVcsR0FBRzJDLGtCQUFrQixJQUFJLElBQUksQ0FBQ0MscUJBQXFCLENBQUMsQ0FBQztNQUN0RSxJQUFJNUMsV0FBVyxDQUFDRSxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzdCLE1BQU1pRSxNQUFNLEdBQUduRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUNLLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLElBQUk4RCxNQUFNLENBQUNqRSxNQUFNLEtBQUssQ0FBQyxJQUFJaUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDYixHQUFHLENBQWtCLHNEQUFzRCxDQUFDLEVBQUU7VUFDbEgsT0FBT2EsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDQyxjQUFjLENBQUMsU0FBUyxDQUFDO1FBQzNDO1FBQ0E7UUFBQSxLQUNLLElBQ0pELE1BQU0sQ0FBQ2pFLE1BQU0sS0FBSyxDQUFDLElBQ25CaUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDYixHQUFHLENBQUMsMkJBQTJCLENBQUMsSUFDMUNhLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQ2IsR0FBRyxDQUFrQixzREFBc0QsQ0FBQyxFQUV0RixPQUFPYSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUNDLGNBQWMsQ0FBQyxTQUFTLENBQUM7TUFDNUM7SUFDRCxDQUFDO0lBQUF4RSxNQUFBLENBRURnRCxxQkFBcUIsR0FBckIsU0FBQUEscUJBQXFCQSxDQUFBLEVBQTJCO01BQy9DLE1BQU01QyxXQUFXLEdBQUcsSUFBSSxDQUFDQyxjQUFjLENBQUMsQ0FBQztNQUN6QyxPQUFPRCxXQUFXLENBQUM2QyxNQUFNLENBQUMsQ0FBQ0Ysa0JBQTBDLEVBQUV2QyxVQUFVLEtBQUs7UUFDckYsSUFBSUEsVUFBVSxDQUFDeUUsVUFBVSxDQUFDLENBQUMsRUFBRTtVQUM1QmxDLGtCQUFrQixDQUFDTyxJQUFJLENBQUM5QyxVQUFVLENBQUM7UUFDcEM7UUFDQSxPQUFPdUMsa0JBQWtCO01BQzFCLENBQUMsRUFBRSxFQUE0QixDQUFDO0lBQ2pDLENBQUM7SUFBQS9DLE1BQUEsQ0FFRGtGLGVBQWUsR0FBZixTQUFBQSxlQUFlQSxDQUFBLEVBQVc7TUFDekIsSUFBSUMsS0FBSyxHQUFHLElBQUksQ0FBQ0MsUUFBUSxDQUFDLENBQUM7TUFDM0IsSUFBSSxJQUFJLENBQUNwQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMxQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzlDNkUsS0FBSyxHQUFHLElBQUksQ0FBQ25DLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ29DLFFBQVEsQ0FBQyxDQUFDO01BQ25EO01BQ0EsT0FBT0QsS0FBSztJQUNiOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUxDO0lBQUFuRixNQUFBLENBTUFxRCxzQkFBc0IsR0FBdEIsU0FBQUEsc0JBQXNCQSxDQUNyQkksYUFBNEIsRUFDNUI0QixjQUF1RSxFQUNyRDtNQUNsQjtNQUNBO01BQ0E7TUFDQSxNQUFNQyxZQUF5QixHQUFHLElBQUlDLEdBQUcsQ0FBQyxDQUFDO01BQzNDLE1BQU1DLGtCQUFrQixHQUFHL0IsYUFBcUQ7TUFDaEY7TUFDQSxNQUFNZ0MsV0FBVyxHQUFHRCxrQkFBa0IsQ0FBQ0UscUJBQXFCLElBQUlGLGtCQUFrQixDQUFDRSxxQkFBcUIsQ0FBQyxDQUFDO01BQzFHLElBQUlELFdBQVcsS0FBSyxVQUFVLEVBQUU7UUFDL0IsTUFBTUUsZ0JBQWdCLEdBQ3JCSCxrQkFBa0IsQ0FBQ0ksbUJBQW1CLElBQUlKLGtCQUFrQixDQUFDSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMxRSw2QkFBNkIsQ0FBQztRQUNySCxJQUFJeUUsZ0JBQWdCLElBQUksSUFBSSxDQUFDUCxRQUFRLENBQUMsQ0FBQyxLQUFLTyxnQkFBZ0IsQ0FBQ1IsS0FBSyxFQUFFO1VBQ25FO1VBQ0EsSUFBSSxDQUFDVSxZQUFZLENBQUMsSUFBSSxDQUFDO1VBQ3ZCO1VBQ0FQLFlBQVksQ0FBQ1EsR0FBRyxDQUFDLDZDQUE2QyxDQUFDO1FBQ2hFO01BQ0QsQ0FBQyxNQUFNLElBQUlMLFdBQVcsS0FBSyxVQUFVLEVBQUU7UUFDdEMsSUFBSU4sS0FBSyxHQUFHLElBQUksQ0FBQ0QsZUFBZSxDQUFDLENBQUM7UUFDbEMsSUFBSUcsY0FBYyxFQUFFTiwwQkFBMEIsRUFBRTtVQUMvQ0ksS0FBSyxHQUFJRSxjQUFjLEVBQUVMLEtBQUssRUFBWWUsT0FBTyxDQUFDLENBQUM7VUFDbERWLGNBQWMsRUFBRUwsS0FBSyxFQUFZZ0IsVUFBVSxDQUFDLEtBQUssQ0FBQztVQUNsRFgsY0FBYyxFQUFFWCxVQUFVLEVBQTJCbUIsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUMxRSxDQUFDLE1BQU0sSUFBSVIsY0FBYyxFQUFFWix5QkFBeUIsRUFBRTtVQUNyRFUsS0FBSyxHQUFJRSxjQUFjLEVBQUVYLFVBQVUsRUFBMkJVLFFBQVEsQ0FBQyxDQUFDO1VBQ3ZFQyxjQUFjLEVBQUVYLFVBQVUsRUFBMkJtQixZQUFZLENBQUMsS0FBSyxDQUFDO1FBQzFFO1FBQ0EsSUFBSVYsS0FBSyxLQUFLLEVBQUUsSUFBSUUsY0FBYyxFQUFFWCxVQUFVLEVBQUU7VUFDL0NTLEtBQUssR0FBRyxDQUFDRSxjQUFjLEVBQUVYLFVBQVUsRUFBMEJVLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFO1FBQ0EsSUFBSUksa0JBQWtCLENBQUNTLGtCQUFrQixFQUFFO1VBQzFDLE1BQU03RixXQUFXLEdBQUcsSUFBSSxDQUFDQyxjQUFjLENBQUMsQ0FBQztVQUN6QyxNQUFNNkYsc0JBQXNCLEdBQUcsQ0FBQyxFQUFFOUYsV0FBVyxFQUFFRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1VBRTFEa0Ysa0JBQWtCLENBQUNTLGtCQUFrQixDQUFDO1lBQ3JDRSxVQUFVLEVBQUUsSUFBSSxDQUFDQyxhQUFhLENBQUMsQ0FBQztZQUNoQ2pCLEtBQUssRUFBRUEsS0FBSztZQUNaa0IsV0FBVyxFQUFFSCxzQkFBc0IsR0FBRyxJQUFJLEdBQUc7VUFDOUMsQ0FBQyxDQUFDO1VBQ0YsSUFBSSxDQUFDTCxZQUFZLENBQUMsQ0FBQyxDQUFDUixjQUFjLEVBQUVWLFNBQVMsQ0FBQztVQUM5Q1csWUFBWSxDQUFDUSxHQUFHLENBQUMsNkNBQTZDLENBQUM7O1VBRS9EO1VBQ0EsSUFBSSxDQUFDSSxzQkFBc0IsRUFBRTlGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQ3lGLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDaEU7TUFDRCxDQUFDLE1BQU0sSUFBSXBDLGFBQWEsRUFBRUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1FBQzdDLE1BQU10RCxXQUFXLEdBQUcsSUFBSSxDQUFDNEMscUJBQXFCLENBQUMsQ0FBQyxJQUFJLEVBQUU7UUFDdEQsTUFBTWtELHNCQUFzQixHQUFHOUYsV0FBVyxDQUFDRSxNQUFNLEdBQUcsQ0FBQzs7UUFFckQ7UUFDQSxJQUFJLENBQUMrRSxjQUFjLEVBQUVpQixxQ0FBcUMsRUFBRTtVQUMzRCxNQUFNbkIsS0FBSyxHQUFHMUIsYUFBc0I7VUFDcEMwQixLQUFLLENBQUNvQixPQUFPLENBQUMsSUFBSSxDQUFDbkIsUUFBUSxDQUFDLENBQUMsQ0FBQztVQUM5QkQsS0FBSyxDQUFDcUIsYUFBYSxDQUFDTixzQkFBc0IsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO1VBQ3pEZixLQUFLLENBQUNzQixRQUFRLENBQUMsSUFBSSxDQUFDTCxhQUFhLENBQUMsQ0FBQyxDQUFDO1VBQ3BDLElBQUksQ0FBQ1AsWUFBWSxDQUFDLEtBQUssQ0FBQztVQUN4QlAsWUFBWSxDQUFDUSxHQUFHLENBQUMsNkNBQTZDLENBQUM7UUFDaEU7UUFDQTtRQUNBLElBQUkxRixXQUFXLENBQUNFLE1BQU0sS0FBSyxDQUFDLEVBQUU7VUFDN0JGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQ3lGLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDbkM7TUFDRCxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUNsQywwQkFBMEIsQ0FBQ0YsYUFBYSxDQUFDLEVBQUU7UUFDMUQ7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtRQUNHLE1BQU1pRCxTQUFTLEdBQUlqRCxhQUFhLENBQVVrRCxRQUFRLENBQUMsQ0FBQztRQUNwREQsU0FBUyxDQUFDbkcsT0FBTyxDQUFFcUcsUUFBUSxJQUFLO1VBQy9CLE1BQU1DLGFBQWEsR0FBR0QsUUFBUSxDQUFDcEMsY0FBYyxDQUFDLGVBQWUsQ0FBQztVQUM5RCxJQUFJcUMsYUFBYSxFQUFFO1lBQ2pCQSxhQUFhLEVBQXNCQyxVQUFVLENBQUMsQ0FBQyxDQUFDdkcsT0FBTyxDQUFFd0csT0FBTyxJQUFLO2NBQ3JFLElBQUlBLE9BQU8sQ0FBQ3JELEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDL0IsTUFBTXNELFVBQVUsR0FBR0QsT0FBZ0I7Z0JBQ25DQyxVQUFVLENBQUNULE9BQU8sQ0FBQyxJQUFJLENBQUNuQixRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNuQzRCLFVBQVUsQ0FBQ1IsYUFBYSxDQUFDLElBQUksQ0FBQztnQkFDOUJRLFVBQVUsQ0FBQ1AsUUFBUSxDQUFDLElBQUksQ0FBQ0wsYUFBYSxDQUFDLENBQUMsQ0FBQztjQUMxQztZQUNELENBQUMsQ0FBQztVQUNIO1FBQ0QsQ0FBQyxDQUFDO1FBQ0Y7UUFDQTtRQUNBLE1BQU1oRyxXQUFXLEdBQUcsSUFBSSxDQUFDNEMscUJBQXFCLENBQUMsQ0FBQztRQUNoRCxJQUFJNUMsV0FBVyxDQUFDRSxNQUFNLEtBQUssQ0FBQyxFQUFFO1VBQzdCRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUN5RixZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ25DO1FBQ0EsSUFBSSxDQUFDQSxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ3hCUCxZQUFZLENBQUNRLEdBQUcsQ0FBQyw2Q0FBNkMsQ0FBQztNQUNoRTtNQUNBLElBQUksQ0FBQ2hELGFBQWEsQ0FBQ21FLEtBQUssQ0FBQ0MsSUFBSSxDQUFDNUIsWUFBWSxDQUFDLENBQUMxRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7TUFDdEQsT0FBTztRQUFFZ0IsY0FBYyxFQUFFMEMsWUFBWSxDQUFDNkIsR0FBRyxDQUFDLDZDQUE2QztNQUFFLENBQUM7SUFDM0YsQ0FBQztJQUFBLE9BQUE5SSxPQUFBO0VBQUEsRUFwWW9CK0ksaUJBQWlCLEdBQUExSCxXQUFBLEdBQUEySCx5QkFBQSxDQUFBbEksT0FBQSxDQUFBYyxTQUFBLHNCQUFBckIsS0FBQTtJQUFBMEksWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUE5SCxZQUFBLEdBQUEwSCx5QkFBQSxDQUFBbEksT0FBQSxDQUFBYyxTQUFBLG9DQUFBbEIsS0FBQTtJQUFBdUksWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUE3SCxZQUFBLEdBQUF5SCx5QkFBQSxDQUFBbEksT0FBQSxDQUFBYyxTQUFBLHdCQUFBakIsS0FBQTtJQUFBc0ksWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUE1SCxZQUFBLEdBQUF3SCx5QkFBQSxDQUFBbEksT0FBQSxDQUFBYyxTQUFBLDJCQUFBaEIsS0FBQTtJQUFBcUksWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUF0SSxPQUFBLE1BQUFELE1BQUEsS0FBQUEsTUFBQTtFQUFBLE9BdVl4QmIsT0FBTztBQUFBIiwiaWdub3JlTGlzdCI6W119
|