@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
|
@@ -223,7 +223,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/jsx-runtime/jsx", "sap/fe/core/Commo
|
|
|
223
223
|
_this.showDraftEditState = false;
|
|
224
224
|
/**
|
|
225
225
|
* This mode must be used when it is certain that a control must not persist it´s personalization state upon initialization.
|
|
226
|
-
* @experimental
|
|
226
|
+
* @ui5-experimental-since 1.136.0
|
|
227
227
|
* @since 1.136.0
|
|
228
228
|
*/
|
|
229
229
|
_initializerDefineProperty(_this, "ignorePersonalizationChanges", _descriptor31, _this);
|
|
@@ -354,7 +354,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/jsx-runtime/jsx", "sap/fe/core/Commo
|
|
|
354
354
|
customData: [_jsx(CustomData, {
|
|
355
355
|
value: selectionField.type === "Slot"
|
|
356
356
|
}, "isSlot"), _jsx(FieldHelpCustomData, {
|
|
357
|
-
value: `{parts: [{value: 'asArray'}, {value: '${selectionField.documentRefText}'}], formatter: '
|
|
357
|
+
value: `{parts: [{value: 'asArray'}, {value: '${selectionField.documentRefText}'}], formatter: '._formatters.StandardFormatter'}`
|
|
358
358
|
}, "sap-ui-DocumentationRef")]
|
|
359
359
|
}
|
|
360
360
|
}));
|
|
@@ -374,6 +374,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/jsx-runtime/jsx", "sap/fe/core/Commo
|
|
|
374
374
|
property: selectionField.annotationPath,
|
|
375
375
|
contextPath: _this._getContextPathForFilterField(selectionField, _this._internalContextPath),
|
|
376
376
|
useSemanticDateRange: _this.useSemanticDateRange,
|
|
377
|
+
label: selectionField.label,
|
|
377
378
|
settings: CommonHelper.stringifyCustomData(selectionField.settings),
|
|
378
379
|
visualFilter: selectionField.visualFilter !== undefined ? storeObjectValue(vf) : undefined,
|
|
379
380
|
editMode: `{internal>/${_this.id}/filterFields/${selectionField.conditionPath}/editMode}`
|
|
@@ -553,6 +554,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/jsx-runtime/jsx", "sap/fe/core/Commo
|
|
|
553
554
|
toggleControl: this.toggleControlId,
|
|
554
555
|
initialLayout: this.initialLayout,
|
|
555
556
|
visible: this.visible,
|
|
557
|
+
disableDraftEditStateFilter: this.disableDraftEditStateFilter,
|
|
556
558
|
"dt:designtime": this.designtime,
|
|
557
559
|
"customData:entityType": internalContextPath,
|
|
558
560
|
children: {
|
|
@@ -765,4 +767,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/jsx-runtime/jsx", "sap/fe/core/Commo
|
|
|
765
767
|
_exports = FilterBarBlock;
|
|
766
768
|
return _exports;
|
|
767
769
|
}, false);
|
|
768
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzZXRDdXN0b21GaWx0ZXJGaWVsZFByb3BlcnRpZXMiLCJjaGlsZEZpbHRlckZpZWxkIiwiYWdncmVnYXRpb25PYmplY3QiLCJzbG90TmFtZSIsImtleSIsInJlcGxhY2UiLCJwcm9wZXJ0eSIsImdldEF0dHJpYnV0ZSIsImxhYmVsIiwicmVxdWlyZWQiLCJ0ZW1wbGF0ZSIsIkZpbHRlckJhckJsb2NrIiwiX2RlYyIsImRlZmluZUJ1aWxkaW5nQmxvY2siLCJuYW1lIiwibmFtZXNwYWNlIiwicHVibGljTmFtZXNwYWNlIiwicmV0dXJuVHlwZXMiLCJfZGVjMiIsImJsb2NrQXR0cmlidXRlIiwidHlwZSIsImlzUHVibGljIiwiX2RlYzMiLCJfZGVjNCIsIl9kZWM1IiwiX2RlYzYiLCJfZGVjNyIsIl9kZWM4IiwiX2RlYzkiLCJfZGVjMTAiLCJfZGVjMTEiLCJfZGVjMTIiLCJfZGVjMTMiLCJfZGVjMTQiLCJfZGVjMTUiLCJfZGVjMTYiLCJfZGVjMTciLCJfZGVjMTgiLCJfZGVjMTkiLCJfZGVjMjAiLCJfZGVjMjEiLCJfZGVjMjIiLCJfZGVjMjMiLCJfZGVjMjQiLCJfZGVjMjUiLCJfZGVjMjYiLCJibG9ja0V2ZW50IiwiX2RlYzI3IiwiX2RlYzI4IiwiX2RlYzI5IiwiX2RlYzMwIiwiX2RlYzMxIiwiYmxvY2tBZ2dyZWdhdGlvbiIsImhhc1ZpcnR1YWxOb2RlIiwicHJvY2Vzc0FnZ3JlZ2F0aW9ucyIsIl9kZWMzMiIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9ja1RlbXBsYXQiLCJwcm9wcyIsImNvbmZpZ3VyYXRpb24iLCJtU2V0dGluZ3MiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwiX2Rlc2NyaXB0b3I5IiwiX2Rlc2NyaXB0b3IxMCIsIl9kZXNjcmlwdG9yMTEiLCJfZGVzY3JpcHRvcjEyIiwiX2Rlc2NyaXB0b3IxMyIsIl9kZXNjcmlwdG9yMTQiLCJfZGVzY3JpcHRvcjE1IiwiX2Rlc2NyaXB0b3IxNiIsIl9kZXNjcmlwdG9yMTciLCJfZGVzY3JpcHRvcjE4IiwiX2Rlc2NyaXB0b3IxOSIsIl9kZXNjcmlwdG9yMjAiLCJfZGVzY3JpcHRvcjIxIiwiX2Rlc2NyaXB0b3IyMiIsIl9kZXNjcmlwdG9yMjMiLCJfZGVzY3JpcHRvcjI0IiwiX2Rlc2NyaXB0b3IyNSIsIl9kZXNjcmlwdG9yMjYiLCJfZGVzY3JpcHRvcjI3IiwiX2Rlc2NyaXB0b3IyOCIsIl9kZXNjcmlwdG9yMjkiLCJfZGVzY3JpcHRvcjMwIiwic2hvd0RyYWZ0RWRpdFN0YXRlIiwiX2Rlc2NyaXB0b3IzMSIsImNoZWNrSWZFZGl0aW5nRmlsdGVySXNEaXNhYmxlZCIsInRhcmdldEVudGl0eVNldCIsImFubm90YXRpb25zIiwiQ2FwYWJpbGl0aWVzIiwiTmF2aWdhdGlvblJlc3RyaWN0aW9ucyIsIlJlc3RyaWN0ZWRQcm9wZXJ0aWVzIiwic29tZSIsInIiLCJOYXZpZ2F0aW9uUHJvcGVydHkiLCJ2YWx1ZSIsIkZpbHRlclJlc3RyaWN0aW9ucyIsIkZpbHRlcmFibGUiLCJjaGVja0lmQ29sbGFib3JhdGlvbkRyYWZ0U3VwcG9ydGVkIiwib01ldGFNb2RlbCIsIk1vZGVsSGVscGVyIiwiaXNDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQiLCJpc0RyYWZ0Q29sbGFib3JhdGl2ZSIsImdldEVudGl0eVR5cGVQYXRoIiwibWV0YVBhdGhQYXJ0cyIsImVuZHNXaXRoIiwiZ2V0U2VhcmNoIiwiaGlkZUJhc2ljU2VhcmNoIiwiX2pzeCIsIk1EQ0ZpbHRlckZpZWxkIiwiaWQiLCJnZW5lcmF0ZSIsInBsYWNlaG9sZGVyIiwicHJvcGVydHlLZXkiLCJjb25kaXRpb25zIiwiZGF0YVR5cGUiLCJtYXhDb25kaXRpb25zIiwiZGF0YVR5cGVDb25zdHJhaW50cyIsInByb2Nlc3NTZWxlY3Rpb25GaWVsZHMiLCJkcmFmdEVkaXRTdGF0ZSIsImRyYWZ0U3RhdGVzIiwiRHJhZnRFZGl0U3RhdGUiLCJnZXRFZGl0U3RhdGVzIiwiZ2V0VHJhbnNsYXRlZFRleHQiLCJvcGVyYXRvcnMiLCJkaXNwbGF5IiwiY2hpbGRyZW4iLCJjb250ZW50RWRpdCIsIlNlbGVjdCIsIndpZHRoIiwiZm9yY2VTZWxlY3Rpb24iLCJzZWxlY3RlZEtleSIsIml0ZW1zIiwibWFwIiwic3RhdGUiLCJMaXN0SXRlbSIsInRleHQiLCJfdmFsdWVIZWxwcyIsIl9maWx0ZXJGaWVsZHMiLCJwdXNoIiwiQXJyYXkiLCJpc0FycmF5Iiwic2VsZWN0aW9uRmllbGRzIiwiZ2V0T2JqZWN0IiwiZm9yRWFjaCIsInNlbGVjdGlvbkZpZWxkIiwiYXZhaWxhYmlsaXR5Iiwic2V0RmlsdGVyRmllbGRzQW5kVmFsdWVIZWxwcyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInB1c2hGaWx0ZXJGaWVsZHNBbmRWYWx1ZUhlbHBzIiwiYW5ub3RhdGlvblBhdGgiLCJwcm9wZXJ0eUNvbnRleHQiLCJtZXRhUGF0aCIsImdldE1vZGVsIiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJwcm9wZXJ0eU9iamVjdCIsImZpbHRlckNvbnRlbnQiLCJTbG90Q29sdW1uIiwidGVtcGxhdGVJZCIsIkN1c3RvbUZyYWdtZW50QmxvY2siLCJmcmFnbWVudE5hbWUiLCJjb250ZXh0UGF0aCIsIm1heENvbmRpdGlvblZhbHVlIiwiY29udGV4dCIsImRlbGVnYXRlIiwiY29uZGl0aW9uUGF0aCIsIkZpZWxkSGVscGVyIiwidXNlU2VtYW50aWNEYXRlUmFuZ2UiLCJzZXR0aW5ncyIsImdldFBhdGgiLCJjb25zdHJhaW50cyIsImRhdGFUeXBlRm9ybWF0T3B0aW9ucyIsImZvcm1hdE9wdGlvbnMiLCJ2YWx1ZUhlbHAiLCJjb250ZW50IiwiQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlciIsImJpbmRpbmciLCJGaWx0ZXJVdGlscyIsImNvbmRpdGlvblRvTW9kZWxQYXRoIiwiY3VzdG9tRGF0YSIsIkN1c3RvbURhdGEiLCJGaWVsZEhlbHBDdXN0b21EYXRhIiwiZG9jdW1lbnRSZWZUZXh0IiwidmYiLCJ2aXN1YWxGaWx0ZXIiLCJpbml0aWFsQ2hhcnRCaW5kaW5nRW5hYmxlZCIsInN1c3BlbmRTZWxlY3Rpb24iLCJJbnRlcm5hbEZpbHRlckZpZWxkIiwiaWRQcmVmaXgiLCJDb21tb25IZWxwZXIiLCJnZXROYXZpZ2F0aW9uUGF0aCIsInZoSWRQcmVmaXgiLCJfZ2V0Q29udGV4dFBhdGhGb3JGaWx0ZXJGaWVsZCIsIl9pbnRlcm5hbENvbnRleHRQYXRoIiwic3RyaW5naWZ5Q3VzdG9tRGF0YSIsInN0b3JlT2JqZWN0VmFsdWUiLCJlZGl0TW9kZSIsIlZhbHVlSGVscCIsImNvbmRpdGlvbk1vZGVsIiwiZmlsdGVyRmllbGRWYWx1ZUhlbHAiLCJMb2ciLCJlcnJvciIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJzTWV0YVBhdGgiLCJlbnRpdHlUeXBlUGF0aCIsInNwbGl0Iiwic0VudGl0eVNldFBhdGgiLCJnZXRFbnRpdHlTZXRQYXRoIiwicGFyZW50Q29udGV4dFBhdGgiLCJmdWxsQ29udGV4dFBhdGgiLCJzT2JqZWN0UGF0aCIsInN0YXJ0c1dpdGgiLCJfYW5ub3RhdGlvblBhdGgiLCJvRXh0cmFQYXJhbXMiLCJmaWx0ZXJGaWVsZHMiLCJvVmlzdWFsaXphdGlvbk9iamVjdFBhdGgiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMiLCJvQ29udmVydGVyQ29udGV4dCIsImdldENvbnZlcnRlckNvbnRleHQiLCJwcm9wZXJ0eUluZm8iLCJnZXRTZWxlY3Rpb25GaWVsZHMiLCJzUHJvcGVydHlJbmZvIiwiQ29tbW9uIiwiRHJhZnRSb290IiwiZGlzYWJsZURyYWZ0RWRpdFN0YXRlRmlsdGVyIiwib1NlbGVjdGlvbkZpZWxkcyIsIlRlbXBsYXRlTW9kZWwiLCJ2aWV3RGF0YSIsIm1vZGVscyIsImdldERhdGEiLCJvRW50aXR5VHlwZSIsImdldEVudGl0eVR5cGUiLCJvU2VsZWN0aW9uVmFyaWFudCIsImdldFNlbGVjdGlvblZhcmlhbnQiLCJvRW50aXR5U2V0Q29udGV4dCIsImdldENvbnRleHQiLCJvRmlsdGVyQ29uZGl0aW9ucyIsImdldEZpbHRlckNvbmRpdGlvbnMiLCJzZWxlY3Rpb25WYXJpYW50IiwiZmlsdGVyQ29uZGl0aW9ucyIsIl9wcm9jZXNzUHJvcGVydHlJbmZvcyIsIl9hcHBseUlkVG9Db250ZW50IiwiX2FwaUlkIiwiX2NvbnRlbnRJZCIsImdldENvbnRlbnRJZCIsIm9TZWFyY2hSZXN0cmljdGlvbkFubm90YXRpb24iLCJnZXRTZWFyY2hSZXN0cmljdGlvbnMiLCJCb29sZWFuIiwiU2VhcmNoYWJsZSIsImpzeCIsInJlbmRlckFzWE1MIiwiZGVzaWdudGltZSIsImdldERlc2lnbnRpbWUiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwibW9kZWwiLCJhUGFyYW1ldGVyRmllbGRzIiwic0ZldGNoZWRQcm9wZXJ0aWVzIiwiYUZldGNoZWRQcm9wZXJ0aWVzIiwiSlNPTiIsInBhcnNlIiwiZWRpdFN0YXRlTGFiZWwiLCJwcm9wSW5mbyIsImlzUGFyYW1ldGVyIiwicGF0aCIsImluY2x1ZGVzIiwicHJvcGVydHlMb2NhdGlvblBhdGgiLCJnZXRMb2NhdGlvbkZvclByb3BlcnR5UGF0aCIsInByb3BlcnR5UGF0aCIsIkNvbW1vblV0aWxzIiwiZ2V0RmlsdGVyUmVzdHJpY3Rpb25zQnlQYXRoIiwiUmVxdWlyZWRQcm9wZXJ0aWVzIiwic3RyaW5naWZ5IiwiX3BhcmFtZXRlcnMiLCJnZXRQZXJzaXN0ZW5jZVByb3ZpZGVyIiwiZmlsdGVyQmFySWQiLCJpZ25vcmVQZXJzb25hbGl6YXRpb25DaGFuZ2VzIiwiUGVyc2lzdGVuY2VQcm92aWRlciIsImZvciIsIm1vZGUiLCJmaWx0ZXJCYXJDb250ZXh0UGF0aCIsImFubm9QYXRoIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJnZXRUZW1wbGF0ZSIsImludGVybmFsQ29udGV4dFBhdGgiLCJmaWx0ZXJEZWxlZ2F0ZSIsImZpbHRlckJhckRlbGVnYXRlIiwiX3Byb3BlcnR5SW5mb0NvbnRyb2wiLCJmb3JtYXRQcm9wZXJ0eUluZm8iLCJGaWx0ZXJCYXJBUEkiLCJzZWFyY2giLCJmaWx0ZXJDaGFuZ2VkIiwiYWZ0ZXJDbGVhciIsImludGVybmFsU2VhcmNoIiwiaW50ZXJuYWxGaWx0ZXJDaGFuZ2VkIiwiRkVGaWx0ZXJCYXIiLCJsaXZlTW9kZSIsInZhcmlhbnRCYWNrcmVmZXJlbmNlIiwic2hvd0FkYXB0RmlsdGVyc0J1dHRvbiIsInNob3dDbGVhckJ1dHRvbiIsInAxM25Nb2RlIiwiZmlsdGVyc0NoYW5nZWQiLCJzaG93TWVzc2FnZXMiLCJ0b2dnbGVDb250cm9sIiwidG9nZ2xlQ29udHJvbElkIiwiaW5pdGlhbExheW91dCIsInZpc2libGUiLCJkZXBlbmRlbnRzIiwiYmFzaWNTZWFyY2hGaWVsZCIsImZpbHRlckl0ZW1zIiwiQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJGaWx0ZXJCYXIuYmxvY2sudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5U2V0IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IGpzeCBmcm9tIFwic2FwL2ZlL2Jhc2UvanN4LXJ1bnRpbWUvanN4XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgVGVtcGxhdGVNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvVGVtcGxhdGVNb2RlbFwiO1xuaW1wb3J0IHtcblx0YmxvY2tBZ2dyZWdhdGlvbixcblx0YmxvY2tBdHRyaWJ1dGUsXG5cdGJsb2NrRXZlbnQsXG5cdGRlZmluZUJ1aWxkaW5nQmxvY2tcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgVGVtcGxhdGVQcm9jZXNzb3JTZXR0aW5ncyB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0ZVByb2Nlc3NvclwiO1xuaW1wb3J0IHsgc3RvcmVPYmplY3RWYWx1ZSB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0ZVByb2Nlc3NvclwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2tUZW1wbGF0aW5nQmFzZSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2VcIjtcbmltcG9ydCB7IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHsgZ2V0U2VsZWN0aW9uVmFyaWFudCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9EYXRhVmlzdWFsaXphdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBGaWx0ZXJGaWVsZCBhcyBDb252ZXJ0ZWRGaWx0ZXJGaWVsZCwgTWFuaWZlc3RGaWx0ZXJGaWVsZCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0xpc3RSZXBvcnQvRmlsdGVyQmFyXCI7XG5pbXBvcnQgeyBnZXRTZWxlY3Rpb25GaWVsZHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9MaXN0UmVwb3J0L0ZpbHRlckJhclwiO1xuaW1wb3J0IHsgZ2V0U2VhcmNoUmVzdHJpY3Rpb25zIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTWV0YU1vZGVsRnVuY3Rpb25cIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IENvbW1vbkhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9Db21tb25IZWxwZXJcIjtcbmltcG9ydCBGaWVsZEhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWVsZC9GaWVsZEhlbHBlclwiO1xuaW1wb3J0IHsgbWF4Q29uZGl0aW9ucyB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJGaWVsZEhlbHBlclwiO1xuaW1wb3J0IEZpbHRlclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IERyYWZ0RWRpdFN0YXRlIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlckJhci9EcmFmdEVkaXRTdGF0ZVwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyRmllbGQgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL0ZpbHRlckZpZWxkXCI7XG5pbXBvcnQgeyBnZXRGaWx0ZXJDb25kaXRpb25zIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL0ZpbHRlckhlbHBlclwiO1xuaW1wb3J0IEN1c3RvbUZyYWdtZW50QmxvY2sgZnJvbSBcInNhcC9mZS9tYWNyb3MvZnBtL0N1c3RvbUZyYWdtZW50LmJsb2NrXCI7XG5pbXBvcnQgSW50ZXJuYWxGaWx0ZXJGaWVsZCBmcm9tIFwic2FwL2ZlL21hY3Jvcy9pbnRlcm5hbC9GaWx0ZXJGaWVsZC5ibG9ja1wiO1xuaW1wb3J0IFNlbGVjdCBmcm9tIFwic2FwL20vU2VsZWN0XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgQ3VzdG9tRGF0YSBmcm9tIFwic2FwL3VpL2NvcmUvQ3VzdG9tRGF0YVwiO1xuaW1wb3J0IExpc3RJdGVtIGZyb20gXCJzYXAvdWkvY29yZS9MaXN0SXRlbVwiO1xuaW1wb3J0IEZpZWxkSGVscEN1c3RvbURhdGEgZnJvbSBcInNhcC91aS9jb3JlL2ZpZWxkaGVscC9GaWVsZEhlbHBDdXN0b21EYXRhXCI7XG5pbXBvcnQgdHlwZSB7IElDb250ZXh0IH0gZnJvbSBcInNhcC91aS9jb3JlL3V0aWwvWE1MUHJlcHJvY2Vzc29yXCI7XG5pbXBvcnQgTURDRmlsdGVyRmllbGQgZnJvbSBcInNhcC91aS9tZGMvRmlsdGVyRmllbGRcIjtcbmltcG9ydCB0eXBlIHsgQ29uZGl0aW9uT2JqZWN0IH0gZnJvbSBcInNhcC91aS9tZGMvY29uZGl0aW9uL0NvbmRpdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBGaWx0ZXJCYXJCYXNlJEZpbHRlcnNDaGFuZ2VkRXZlbnQsIEZpbHRlckJhckJhc2UkU2VhcmNoRXZlbnQgfSBmcm9tIFwic2FwL3VpL21kYy9maWx0ZXJiYXIvRmlsdGVyQmFyQmFzZVwiO1xuaW1wb3J0IFBlcnNpc3RlbmNlUHJvdmlkZXIgZnJvbSBcInNhcC91aS9tZGMvcDEzbi9QZXJzaXN0ZW5jZVByb3ZpZGVyXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFWNENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5SW5mbyB9IGZyb20gXCIuLi9EZWxlZ2F0ZVV0aWxcIjtcbmltcG9ydCBWYWx1ZUhlbHAgZnJvbSBcIi4uL1ZhbHVlSGVscFwiO1xuaW1wb3J0IEN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXIgZnJvbSBcIi4uL2NvbnRyb2xzL0N1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXJcIjtcbmltcG9ydCBGRUZpbHRlckJhciBmcm9tIFwiLi4vY29udHJvbHMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgU2xvdENvbHVtbiBmcm9tIFwiLi4vdGFibGUvU2xvdENvbHVtblwiO1xuaW1wb3J0IEZpbHRlckJhckFQSSBmcm9tIFwiLi9GaWx0ZXJCYXJBUElcIjtcblxuY29uc3Qgc2V0Q3VzdG9tRmlsdGVyRmllbGRQcm9wZXJ0aWVzID0gZnVuY3Rpb24gKGNoaWxkRmlsdGVyRmllbGQ6IEVsZW1lbnQsIGFnZ3JlZ2F0aW9uT2JqZWN0OiBGaWx0ZXJGaWVsZCk6IEZpbHRlckZpZWxkIHtcblx0YWdncmVnYXRpb25PYmplY3Quc2xvdE5hbWUgPSBhZ2dyZWdhdGlvbk9iamVjdC5rZXk7XG5cdGFnZ3JlZ2F0aW9uT2JqZWN0LmtleSA9IGFnZ3JlZ2F0aW9uT2JqZWN0LmtleS5yZXBsYWNlKFwiSW5saW5lWE1MX1wiLCBcIlwiKTtcblx0YWdncmVnYXRpb25PYmplY3QucHJvcGVydHkgPSBjaGlsZEZpbHRlckZpZWxkLmdldEF0dHJpYnV0ZShcInByb3BlcnR5XCIpITtcblx0YWdncmVnYXRpb25PYmplY3QubGFiZWwgPSBjaGlsZEZpbHRlckZpZWxkLmdldEF0dHJpYnV0ZShcImxhYmVsXCIpITtcblx0YWdncmVnYXRpb25PYmplY3QucmVxdWlyZWQgPSBjaGlsZEZpbHRlckZpZWxkLmdldEF0dHJpYnV0ZShcInJlcXVpcmVkXCIpID09PSBcInRydWVcIjtcblx0YWdncmVnYXRpb25PYmplY3QudGVtcGxhdGUgPSBjaGlsZEZpbHRlckZpZWxkLmdldEF0dHJpYnV0ZShcInRlbXBsYXRlXCIpIGFzIHVua25vd24gYXMgQ29udHJvbDsgLy8gQnV0IGl0J3MgYSBzdHJpbmc7XG5cdHJldHVybiBhZ2dyZWdhdGlvbk9iamVjdDtcbn07XG5cbi8qKlxuICogQnVpbGRpbmcgYmxvY2sgZm9yIGNyZWF0aW5nIGEgRmlsdGVyQmFyIGJhc2VkIG9uIHRoZSBtZXRhZGF0YSBwcm92aWRlZCBieSBPRGF0YSBWNC5cbiAqXG4gKlxuICogVXNhZ2UgZXhhbXBsZTpcbiAqIDxwcmU+XG4gKiAmbHQ7bWFjcm9zOkZpbHRlckJhclxuICogaWQ9XCJTb21lSURcIlxuICogc2hvd0FkYXB0RmlsdGVyc0J1dHRvbj1cInRydWVcIlxuICogcDEzbk1vZGU9W1wiSXRlbVwiLFwiVmFsdWVcIl1cbiAqIGxpc3RCaW5kaW5nTmFtZXMgPSBcInNhcC5mZS50YWJsZUJpbmRpbmdcIlxuICogbGl2ZU1vZGU9XCJ0cnVlXCJcbiAqIHNlYXJjaD1cIi5oYW5kbGVycy5vblNlYXJjaFwiXG4gKiBmaWx0ZXJDaGFuZ2VkPVwiLmhhbmRsZXJzLm9uRmlsdGVyc0NoYW5nZWRcIlxuICogLyZndDtcbiAqIDwvcHJlPlxuICpcbiAqIEJ1aWxkaW5nIGJsb2NrIGZvciBjcmVhdGluZyBhIEZpbHRlckJhciBiYXNlZCBvbiB0aGUgbWV0YWRhdGEgcHJvdmlkZWQgYnkgT0RhdGEgVjQuXG4gKiBAc2luY2UgMS45NC4wXG4gKi9cbkBkZWZpbmVCdWlsZGluZ0Jsb2NrKHtcblx0bmFtZTogXCJGaWx0ZXJCYXJcIixcblx0bmFtZXNwYWNlOiBcInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIixcblx0cHVibGljTmFtZXNwYWNlOiBcInNhcC5mZS5tYWNyb3NcIixcblx0cmV0dXJuVHlwZXM6IFtcInNhcC5mZS5tYWNyb3MuZmlsdGVyQmFyLkZpbHRlckJhckFQSVwiXVxufSlcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbHRlckJhckJsb2NrIGV4dGVuZHMgQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlIHtcblx0LyoqXG5cdCAqIElEIG9mIHRoZSBGaWx0ZXJCYXJcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHRpZD86IHN0cmluZztcblxuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdHZpc2libGU/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIHNlbGVjdGlvbkZpZWxkcyB0byBiZSBkaXNwbGF5ZWRcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzYXAudWkubW9kZWwuQ29udGV4dFwiXG5cdH0pXG5cdHNlbGVjdGlvbkZpZWxkcz86IENvbnZlcnRlZEZpbHRlckZpZWxkW10gfCBDb250ZXh0O1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0ZmlsdGVyQmFyRGVsZWdhdGU/OiBzdHJpbmc7XG5cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInNhcC51aS5tb2RlbC5Db250ZXh0XCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0bWV0YVBhdGg/OiBDb250ZXh0O1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzYXAudWkubW9kZWwuQ29udGV4dFwiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdGNvbnRleHRQYXRoPzogQ29udGV4dDtcblxuXHQvKipcblx0ICogRGlzcGxheXMgcG9zc2libGUgZXJyb3JzIGR1cmluZyB0aGUgc2VhcmNoIGluIGEgbWVzc2FnZSBib3hcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0c2hvd01lc3NhZ2VzID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIElEIG9mIHRoZSBhc3NpZ25lZCB2YXJpYW50IG1hbmFnZW1lbnRcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHR2YXJpYW50QmFja3JlZmVyZW5jZT86IHN0cmluZztcblxuXHQvKipcblx0ICogRG9uJ3Qgc2hvdyB0aGUgYmFzaWMgc2VhcmNoIGZpZWxkXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiXG5cdH0pXG5cdGhpZGVCYXNpY1NlYXJjaD86IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIEVuYWJsZXMgdGhlIGZhbGxiYWNrIHRvIHNob3cgYWxsIGZpZWxkcyBvZiB0aGUgRW50aXR5VHlwZSBhcyBmaWx0ZXIgZmllbGRzIGlmIGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlNlbGVjdGlvbkZpZWxkcyBhcmUgbm90IHByZXNlbnRcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCJcblx0fSlcblx0ZW5hYmxlRmFsbGJhY2sgPSBmYWxzZTtcblxuXHQvKipcblx0ICogSGFuZGxlcyB2aXNpYmlsaXR5IG9mIHRoZSAnQWRhcHQgRmlsdGVycycgYnV0dG9uIG9uIHRoZSBGaWx0ZXJCYXJcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCJcblx0fSlcblx0c2hvd0FkYXB0RmlsdGVyc0J1dHRvbiA9IHRydWU7XG5cblx0LyoqXG5cdCAqIFNwZWNpZmllcyB0aGUgcGVyc29uYWxpemF0aW9uIG9wdGlvbnMgZm9yIHRoZSBmaWx0ZXIgYmFyLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1tdXCJcblx0fSlcblx0cDEzbk1vZGUgPSBcIkl0ZW0sVmFsdWVcIjtcblxuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHJvcGVydHlJbmZvPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBTcGVjaWZpZXMgdGhlIFNlbWF0aWMgRGF0ZSBSYW5nZSBvcHRpb24gZm9yIHRoZSBmaWx0ZXIgYmFyLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHR9KVxuXHR1c2VTZW1hbnRpY0RhdGVSYW5nZSA9IHRydWU7XG5cblx0LyoqXG5cdCAqIFNwZWNpZmllcyB0aGUgbmF2aWdhdGlvbiBwcm9wZXJ0aWVzIG9wdGlvbiBmb3IgdGhlIGZpbHRlciBiYXIuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic3RyaW5nW11cIlxuXHR9KVxuXHRuYXZpZ2F0aW9uUHJvcGVydGllcz86IHN0cmluZ1tdO1xuXG5cdC8qKlxuXHQgKiBJZiBzZXQsIHRoZSBzZWFyY2ggaXMgYXV0b21hdGljYWxseSB0cmlnZ2VyZWQgd2hlbiBhIGZpbHRlciB2YWx1ZSBpcyBjaGFuZ2VkLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIixcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHRsaXZlTW9kZSA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBGaWx0ZXIgY29uZGl0aW9ucyB0byBiZSBhcHBsaWVkIHRvIHRoZSBmaWx0ZXIgYmFyXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0cmVxdWlyZWQ6IGZhbHNlXG5cdH0pXG5cdGZpbHRlckNvbmRpdGlvbnM/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIElmIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiwgYWxsIHNlYXJjaCByZXF1ZXN0cyBhcmUgaWdub3JlZC4gT25jZSBpdCBoYXMgYmVlbiBzZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LFxuXHQgKiBhIHNlYXJjaCBpcyB0cmlnZ2VyZWQgaW1tZWRpYXRlbHkgaWYgb25lIG9yIG1vcmUgc2VhcmNoIHJlcXVlc3RzIGhhdmUgYmVlbiB0cmlnZ2VyZWQgaW4gdGhlIG1lYW50aW1lXG5cdCAqIGJ1dCB3ZXJlIGlnbm9yZWQgYmFzZWQgb24gdGhlIHNldHRpbmcuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiXG5cdH0pXG5cdHN1c3BlbmRTZWxlY3Rpb24gPSBmYWxzZTtcblxuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiXG5cdH0pXG5cdGlzRHJhZnRDb2xsYWJvcmF0aXZlID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIElkIG9mIGNvbnRyb2wgdGhhdCB3aWxsIGFsbG93IGZvciBzd2l0Y2hpbmcgYmV0d2VlbiBub3JtYWwgYW5kIHZpc3VhbCBmaWx0ZXJcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHR0b2dnbGVDb250cm9sSWQ/OiBzdHJpbmc7XG5cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdGluaXRpYWxMYXlvdXQgPSBcImNvbXBhY3RcIjtcblxuXHQvKipcblx0ICogSGFuZGxlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgJ0NsZWFyJyBidXR0b24gb24gdGhlIEZpbHRlckJhci5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0c2hvd0NsZWFyQnV0dG9uID0gZmFsc2U7XG5cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHR9KVxuXHRfYXBwbHlJZFRvQ29udGVudCA9IGZhbHNlO1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCJcblx0fSlcblx0ZGlzYWJsZURyYWZ0RWRpdFN0YXRlRmlsdGVyID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIFRlbXBvcmFyeSB3b3JrYXJvdW5kIG9ubHlcblx0ICogcGF0aCB0byBjb250ZXh0UGF0aCB0byBiZSB1c2VkIGJ5IGNoaWxkIGZpbHRlcmZpZWxkc1xuXHQgKi9cblx0X2ludGVybmFsQ29udGV4dFBhdGghOiBDb250ZXh0O1xuXG5cdF9wYXJhbWV0ZXJzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0X2Fubm90YXRpb25QYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIEV2ZW50IGhhbmRsZXIgdG8gcmVhY3QgdG8gdGhlIHNlYXJjaCBldmVudCBvZiB0aGUgRmlsdGVyQmFyXG5cdCAqL1xuXHRAYmxvY2tFdmVudCgpXG5cdHNlYXJjaD86IHN0cmluZztcblxuXHQvKipcblx0ICogRXZlbnQgaGFuZGxlciB0byByZWFjdCB0byB0aGUgZmlsdGVyQ2hhbmdlIGV2ZW50IG9mIHRoZSBGaWx0ZXJCYXJcblx0ICovXG5cdEBibG9ja0V2ZW50KClcblx0ZmlsdGVyQ2hhbmdlZD86IHN0cmluZztcblxuXHQvKipcblx0ICogRXZlbnQgaGFuZGxlciB0byByZWFjdCB0byB0aGUgZmlsdGVyQ2hhbmdlZCBldmVudCBvZiB0aGUgRmlsdGVyQmFyLiBFeHBvc2VzIHBhcmFtZXRlcnMgZnJvbSB0aGUgTURDIGZpbHRlciBiYXJcblx0ICovXG5cdEBibG9ja0V2ZW50KClcblx0aW50ZXJuYWxGaWx0ZXJDaGFuZ2VkPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIHRvIHJlYWN0IHRvIHRoZSBzZWFyY2ggZXZlbnQgb2YgdGhlIEZpbHRlckJhci4gRXhwb3NlcyBwYXJhbWV0ZXJlcyBmcm9tIHRoZSBNREMgZmlsdGVyIGJhclxuXHQgKi9cblx0QGJsb2NrRXZlbnQoKVxuXHRpbnRlcm5hbFNlYXJjaD86IHN0cmluZztcblxuXHQvKipcblx0ICogRXZlbnQgaGFuZGxlciB0byByZWFjdCB0byB0aGUgYWZ0ZXJDbGVhciBldmVudCBvZiB0aGUgRmlsdGVyQmFyXG5cdCAqL1xuXHRAYmxvY2tFdmVudCgpXG5cdGFmdGVyQ2xlYXI/OiBzdHJpbmc7XG5cblx0QGJsb2NrQWdncmVnYXRpb24oe1xuXHRcdHR5cGU6IFwic2FwLmZlLm1hY3Jvcy5maWx0ZXJCYXIuRmlsdGVyRmllbGRcIixcblx0XHRpc1B1YmxpYzogdHJ1ZSxcblx0XHRoYXNWaXJ0dWFsTm9kZTogdHJ1ZSxcblx0XHRwcm9jZXNzQWdncmVnYXRpb25zOiBzZXRDdXN0b21GaWx0ZXJGaWVsZFByb3BlcnRpZXNcblx0fSlcblx0ZmlsdGVyRmllbGRzPzogRmlsdGVyRmllbGQ7XG5cblx0X2FwaUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0X2NvbnRlbnRJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdF92YWx1ZUhlbHBzOiBBcnJheTxzdHJpbmc+IHwgXCJcIiB8IHVuZGVmaW5lZDtcblxuXHRfZmlsdGVyRmllbGRzOiBBcnJheTxzdHJpbmc+IHwgXCJcIiB8IHVuZGVmaW5lZDtcblxuXHRzaG93RHJhZnRFZGl0U3RhdGUgPSBmYWxzZTtcblxuXHRkZXNpZ250aW1lPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBUaGlzIG1vZGUgbXVzdCBiZSB1c2VkIHdoZW4gaXQgaXMgY2VydGFpbiB0aGF0IGEgY29udHJvbCBtdXN0IG5vdCBwZXJzaXN0IGl0wrRzIHBlcnNvbmFsaXphdGlvbiBzdGF0ZSB1cG9uIGluaXRpYWxpemF0aW9uLlxuXHQgKiBAZXhwZXJpbWVudGFsXG5cdCAqIEBzaW5jZSAxLjEzNi4wXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdGlnbm9yZVBlcnNvbmFsaXphdGlvbkNoYW5nZXMgPSBmYWxzZTtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wczogUHJvcGVydGllc09mPEZpbHRlckJhckJsb2NrPiwgY29uZmlndXJhdGlvbjogdW5rbm93biwgbVNldHRpbmdzOiBUZW1wbGF0ZVByb2Nlc3NvclNldHRpbmdzKSB7XG5cdFx0c3VwZXIocHJvcHMsIGNvbmZpZ3VyYXRpb24sIG1TZXR0aW5ncyk7XG5cdFx0aWYgKCF0aGlzLm1ldGFQYXRoKSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJDb250ZXh0IFBhdGggbm90IGF2YWlsYWJsZSBmb3IgRmlsdGVyQmFyIE1hY3JvLlwiKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3Qgc01ldGFQYXRoID0gdGhpcy5tZXRhUGF0aC5nZXRQYXRoKCk7XG5cdFx0bGV0IGVudGl0eVR5cGVQYXRoID0gXCJcIjtcblx0XHRjb25zdCBtZXRhUGF0aFBhcnRzID0gc01ldGFQYXRoPy5zcGxpdChcIi9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuU2VsZWN0aW9uRmllbGRzXCIpIHx8IFtdOyAvLyBbMF06IGVudGl0eVR5cGVQYXRoLCBbMV06IFNGIFF1YWxpZmllci5cblx0XHRpZiAobWV0YVBhdGhQYXJ0cy5sZW5ndGggPiAwKSB7XG5cdFx0XHRlbnRpdHlUeXBlUGF0aCA9IHRoaXMuZ2V0RW50aXR5VHlwZVBhdGgobWV0YVBhdGhQYXJ0cyk7XG5cdFx0fVxuXHRcdGNvbnN0IHNFbnRpdHlTZXRQYXRoID0gTW9kZWxIZWxwZXIuZ2V0RW50aXR5U2V0UGF0aChlbnRpdHlUeXBlUGF0aCk7XG5cdFx0Y29uc3Qgb01ldGFNb2RlbCA9IHRoaXMuY29udGV4dFBhdGg/LmdldE1vZGVsKCk7XG5cdFx0dGhpcy5faW50ZXJuYWxDb250ZXh0UGF0aCA9IG9NZXRhTW9kZWw/LmNyZWF0ZUJpbmRpbmdDb250ZXh0KGVudGl0eVR5cGVQYXRoKSBhcyBDb250ZXh0O1xuXHRcdGNvbnN0IGFubm90YXRpb25QYXRoOiBzdHJpbmcgPSBcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5TZWxlY3Rpb25GaWVsZHNcIiArICgobWV0YVBhdGhQYXJ0cy5sZW5ndGggJiYgbWV0YVBhdGhQYXJ0c1sxXSkgfHwgXCJcIik7XG5cdFx0Y29uc3QgcGFyZW50Q29udGV4dFBhdGggPSBtU2V0dGluZ3M/LmZ1bGxDb250ZXh0UGF0aCBhcyBzdHJpbmc7XG5cdFx0bGV0IHNPYmplY3RQYXRoID0gYW5ub3RhdGlvblBhdGg7XG5cdFx0aWYgKHBhcmVudENvbnRleHRQYXRoICE9PSBcIlwiICYmIHRoaXMuX2ludGVybmFsQ29udGV4dFBhdGguZ2V0UGF0aCgpPy5zdGFydHNXaXRoKHBhcmVudENvbnRleHRQYXRoKSkge1xuXHRcdFx0c09iamVjdFBhdGggPSBzTWV0YVBhdGgucmVwbGFjZShwYXJlbnRDb250ZXh0UGF0aCwgXCJcIik7XG5cdFx0fVxuXHRcdHRoaXMuX2Fubm90YXRpb25QYXRoID0gYW5ub3RhdGlvblBhdGg7XG5cdFx0Y29uc3Qgb0V4dHJhUGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCB7IGZpbHRlckZpZWxkcz86IEZpbHRlckZpZWxkIH0+ID0ge307XG5cdFx0aWYgKHRoaXMuZmlsdGVyRmllbGRzKSB7XG5cdFx0XHRvRXh0cmFQYXJhbXNbc09iamVjdFBhdGhdID0ge1xuXHRcdFx0XHRmaWx0ZXJGaWVsZHM6IHRoaXMuZmlsdGVyRmllbGRzXG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdGNvbnN0IG9WaXN1YWxpemF0aW9uT2JqZWN0UGF0aCA9IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyh0aGlzLl9pbnRlcm5hbENvbnRleHRQYXRoKTtcblx0XHRjb25zdCBvQ29udmVydGVyQ29udGV4dCA9IHRoaXMuZ2V0Q29udmVydGVyQ29udGV4dChvVmlzdWFsaXphdGlvbk9iamVjdFBhdGgsIHVuZGVmaW5lZCwgbVNldHRpbmdzLCBvRXh0cmFQYXJhbXMpO1xuXHRcdGlmICghdGhpcy5wcm9wZXJ0eUluZm8pIHtcblx0XHRcdHRoaXMucHJvcGVydHlJbmZvID0gZ2V0U2VsZWN0aW9uRmllbGRzKG9Db252ZXJ0ZXJDb250ZXh0LCBbXSwgYW5ub3RhdGlvblBhdGgpLnNQcm9wZXJ0eUluZm87XG5cdFx0fVxuXG5cdFx0Y29uc3QgdGFyZ2V0RW50aXR5U2V0ID0gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKHRoaXMubWV0YVBhdGgsIHRoaXMuY29udGV4dFBhdGgpLnRhcmdldEVudGl0eVNldCBhcyBFbnRpdHlTZXQ7XG5cdFx0aWYgKHRhcmdldEVudGl0eVNldD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uRHJhZnRSb290ICYmICF0aGlzLmRpc2FibGVEcmFmdEVkaXRTdGF0ZUZpbHRlcikge1xuXHRcdFx0dGhpcy5zaG93RHJhZnRFZGl0U3RhdGUgPSB0cnVlO1xuXHRcdFx0dGhpcy5jaGVja0lmRWRpdGluZ0ZpbHRlcklzRGlzYWJsZWQodGFyZ2V0RW50aXR5U2V0KTtcblx0XHRcdHRoaXMuY2hlY2tJZkNvbGxhYm9yYXRpb25EcmFmdFN1cHBvcnRlZChvTWV0YU1vZGVsIGFzIE9EYXRhTWV0YU1vZGVsKTtcblx0XHR9XG5cblx0XHQvL0ZpbHRlciBGaWVsZHMgYW5kIHZhbHVlcyB0byB0aGUgZmllbGQgYXJlIGZpbGxlZCBiYXNlZCBvbiB0aGUgc2VsZWN0aW9uRmllbGRzIGFuZCB0aGlzIHdvdWxkIGJlIGVtcHR5IGluIGNhc2Ugb2YgbWFjcm8gb3V0c2lkZSB0aGUgRkUgdGVtcGxhdGVcblx0XHRpZiAoIXRoaXMuc2VsZWN0aW9uRmllbGRzKSB7XG5cdFx0XHRjb25zdCBvU2VsZWN0aW9uRmllbGRzID0gZ2V0U2VsZWN0aW9uRmllbGRzKG9Db252ZXJ0ZXJDb250ZXh0LCBbXSwgYW5ub3RhdGlvblBhdGgpLnNlbGVjdGlvbkZpZWxkcztcblx0XHRcdHRoaXMuc2VsZWN0aW9uRmllbGRzID0gbmV3IFRlbXBsYXRlTW9kZWwob1NlbGVjdGlvbkZpZWxkcywgb01ldGFNb2RlbCBhcyBPRGF0YU1ldGFNb2RlbCkuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvXCIpO1xuXHRcdFx0Y29uc3Qgdmlld0RhdGEgPSBtU2V0dGluZ3M/Lm1vZGVscz8udmlld0RhdGE/LmdldERhdGEoKTtcblx0XHRcdGNvbnN0IG9FbnRpdHlUeXBlID0gb0NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLFxuXHRcdFx0XHRvU2VsZWN0aW9uVmFyaWFudCA9IGdldFNlbGVjdGlvblZhcmlhbnQob0VudGl0eVR5cGUsIG9Db252ZXJ0ZXJDb250ZXh0KSxcblx0XHRcdFx0b0VudGl0eVNldENvbnRleHQgPSAob01ldGFNb2RlbCBhcyBPRGF0YU1ldGFNb2RlbCkuZ2V0Q29udGV4dChzRW50aXR5U2V0UGF0aCkgYXMgT0RhdGFWNENvbnRleHQsXG5cdFx0XHRcdG9GaWx0ZXJDb25kaXRpb25zID0gZ2V0RmlsdGVyQ29uZGl0aW9ucyhcblx0XHRcdFx0XHRvRW50aXR5U2V0Q29udGV4dCBhcyB1bmtub3duIGFzIElDb250ZXh0LCAvLyBXcm9uZyBidXQgc29tZWhvdyB3b3JrcyA/LFxuXHRcdFx0XHRcdHsgc2VsZWN0aW9uVmFyaWFudDogb1NlbGVjdGlvblZhcmlhbnQgfSxcblx0XHRcdFx0XHRvRW50aXR5U2V0Q29udGV4dC5nZXRPYmplY3QoKSxcblx0XHRcdFx0XHR2aWV3RGF0YSxcblx0XHRcdFx0XHR0aGlzLnNob3dEcmFmdEVkaXRTdGF0ZVxuXHRcdFx0XHQpO1xuXHRcdFx0dGhpcy5maWx0ZXJDb25kaXRpb25zID0gb0ZpbHRlckNvbmRpdGlvbnM7XG5cdFx0fVxuXHRcdHRoaXMuX3Byb2Nlc3NQcm9wZXJ0eUluZm9zKHRoaXMucHJvcGVydHlJbmZvLCBvTWV0YU1vZGVsKTtcblxuXHRcdGlmICh0aGlzLl9hcHBseUlkVG9Db250ZW50KSB7XG5cdFx0XHR0aGlzLl9hcGlJZCA9IHRoaXMuaWQgKyBcIjo6RmlsdGVyQmFyXCI7XG5cdFx0XHR0aGlzLl9jb250ZW50SWQgPSB0aGlzLmlkO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9hcGlJZCA9IHRoaXMuaWQ7XG5cdFx0XHR0aGlzLl9jb250ZW50SWQgPSB0aGlzLmdldENvbnRlbnRJZCh0aGlzLmlkICsgXCJcIik7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuaGlkZUJhc2ljU2VhcmNoICE9PSB0cnVlKSB7XG5cdFx0XHRjb25zdCBvU2VhcmNoUmVzdHJpY3Rpb25Bbm5vdGF0aW9uID0gZ2V0U2VhcmNoUmVzdHJpY3Rpb25zKHNFbnRpdHlTZXRQYXRoLCBvTWV0YU1vZGVsIGFzIE9EYXRhTWV0YU1vZGVsKTtcblx0XHRcdHRoaXMuaGlkZUJhc2ljU2VhcmNoID0gQm9vbGVhbihvU2VhcmNoUmVzdHJpY3Rpb25Bbm5vdGF0aW9uICYmICFvU2VhcmNoUmVzdHJpY3Rpb25Bbm5vdGF0aW9uLlNlYXJjaGFibGUpO1xuXHRcdH1cblx0XHRqc3gucmVuZGVyQXNYTUwoKCkgPT4gdGhpcy5wcm9jZXNzU2VsZWN0aW9uRmllbGRzKCkpO1xuXG5cdFx0dGhpcy5kZXNpZ250aW1lID0gdGhpcy5nZXREZXNpZ250aW1lKCk7XG5cdH1cblxuXHRfcHJvY2Vzc1Byb3BlcnR5SW5mb3MocHJvcGVydHlJbmZvOiBzdHJpbmcsIG1vZGVsOiBPRGF0YU1ldGFNb2RlbCk6IHZvaWQge1xuXHRcdGNvbnN0IGFQYXJhbWV0ZXJGaWVsZHM6IHN0cmluZ1tdID0gW107XG5cdFx0aWYgKHByb3BlcnR5SW5mbykge1xuXHRcdFx0Y29uc3Qgc0ZldGNoZWRQcm9wZXJ0aWVzID0gcHJvcGVydHlJbmZvLnJlcGxhY2UoL1xcXFx7L2csIFwie1wiKS5yZXBsYWNlKC9cXFxcfS9nLCBcIn1cIik7XG5cdFx0XHRjb25zdCBhRmV0Y2hlZFByb3BlcnRpZXMgPSBKU09OLnBhcnNlKHNGZXRjaGVkUHJvcGVydGllcyk7XG5cdFx0XHRjb25zdCBlZGl0U3RhdGVMYWJlbCA9IHRoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJGSUxURVJCQVJfRURJVElOR19TVEFUVVNcIik7XG5cdFx0XHRhRmV0Y2hlZFByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbiAocHJvcEluZm86IFByb3BlcnR5SW5mbykge1xuXHRcdFx0XHRwcm9wSW5mby5rZXkgPSBwcm9wSW5mby5uYW1lO1xuXHRcdFx0XHRpZiAocHJvcEluZm8uaXNQYXJhbWV0ZXIpIHtcblx0XHRcdFx0XHRhUGFyYW1ldGVyRmllbGRzLnB1c2gocHJvcEluZm8ubmFtZSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHByb3BJbmZvLnBhdGggPT09IFwiJGVkaXRTdGF0ZVwiKSB7XG5cdFx0XHRcdFx0cHJvcEluZm8ubGFiZWwgPSBlZGl0U3RhdGVMYWJlbDtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAocHJvcEluZm8ua2V5Py5pbmNsdWRlcyhcIi9cIikpIHtcblx0XHRcdFx0XHQvL1RPIERPOiBOZWVkIHRvIHBsYWNlIHRoaXMgbG9naWMgaW4gY29tbW9uIHBsYWNlIHdoZW4gd2UgY292ZXIgZmlsdGVyUmV0cmljdGlvbnMgd2l0aCB0aGlzIEJMSSBGSU9SSVRFQ0hQMS0yNTA4MFxuXHRcdFx0XHRcdGNvbnN0IGFubm90YXRpb25QYXRoID0gKHByb3BJbmZvIGFzIENvbnZlcnRlZEZpbHRlckZpZWxkKS5hbm5vdGF0aW9uUGF0aDtcblx0XHRcdFx0XHRjb25zdCBwcm9wZXJ0eUxvY2F0aW9uUGF0aCA9IENvbW1vbkhlbHBlci5nZXRMb2NhdGlvbkZvclByb3BlcnR5UGF0aChtb2RlbCwgYW5ub3RhdGlvblBhdGgpO1xuXHRcdFx0XHRcdGNvbnN0IHByb3BlcnR5UGF0aCA9IGFubm90YXRpb25QYXRoLnJlcGxhY2UoYCR7cHJvcGVydHlMb2NhdGlvblBhdGh9L2AsIFwiXCIpO1xuXHRcdFx0XHRcdHByb3BJbmZvLnJlcXVpcmVkID0gQ29tbW9uVXRpbHMuZ2V0RmlsdGVyUmVzdHJpY3Rpb25zQnlQYXRoKHByb3BlcnR5TG9jYXRpb25QYXRoLCBtb2RlbCk/LlJlcXVpcmVkUHJvcGVydGllcz8uaW5jbHVkZXMoXG5cdFx0XHRcdFx0XHRwcm9wZXJ0eVBhdGhcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5wcm9wZXJ0eUluZm8gPSBKU09OLnN0cmluZ2lmeShhRmV0Y2hlZFByb3BlcnRpZXMpLnJlcGxhY2UoL1xcey9nLCBcIlxcXFx7XCIpLnJlcGxhY2UoL1xcfS9nLCBcIlxcXFx9XCIpO1xuXHRcdH1cblx0XHR0aGlzLl9wYXJhbWV0ZXJzID0gSlNPTi5zdHJpbmdpZnkoYVBhcmFtZXRlckZpZWxkcyk7XG5cdH1cblxuXHRjaGVja0lmRWRpdGluZ0ZpbHRlcklzRGlzYWJsZWQgPSAodGFyZ2V0RW50aXR5U2V0OiBFbnRpdHlTZXQpOiB2b2lkID0+IHtcblx0XHRpZiAoXG5cdFx0XHR0YXJnZXRFbnRpdHlTZXQuYW5ub3RhdGlvbnM/LkNhcGFiaWxpdGllcz8uTmF2aWdhdGlvblJlc3RyaWN0aW9ucz8uUmVzdHJpY3RlZFByb3BlcnRpZXM/LnNvbWUoXG5cdFx0XHRcdChyKSA9PiByLk5hdmlnYXRpb25Qcm9wZXJ0eT8udmFsdWUgPT09IFwiRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGFcIiAmJiByLkZpbHRlclJlc3RyaWN0aW9ucz8uRmlsdGVyYWJsZSA9PT0gZmFsc2Vcblx0XHRcdCkgPT09IHRydWVcblx0XHQpIHtcblx0XHRcdHRoaXMuc2hvd0RyYWZ0RWRpdFN0YXRlID0gZmFsc2U7XG5cdFx0fVxuXHR9O1xuXG5cdGNoZWNrSWZDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQgPSAob01ldGFNb2RlbDogT0RhdGFNZXRhTW9kZWwgfCB1bmRlZmluZWQpOiB2b2lkID0+IHtcblx0XHRpZiAoTW9kZWxIZWxwZXIuaXNDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQob01ldGFNb2RlbCkpIHtcblx0XHRcdHRoaXMuaXNEcmFmdENvbGxhYm9yYXRpdmUgPSB0cnVlO1xuXHRcdH1cblx0fTtcblxuXHRnZXRFbnRpdHlUeXBlUGF0aCA9IChtZXRhUGF0aFBhcnRzOiBzdHJpbmdbXSk6IHN0cmluZyA9PiB7XG5cdFx0cmV0dXJuIG1ldGFQYXRoUGFydHNbMF0uZW5kc1dpdGgoXCIvXCIpID8gbWV0YVBhdGhQYXJ0c1swXSA6IG1ldGFQYXRoUGFydHNbMF0gKyBcIi9cIjtcblx0fTtcblxuXHRnZXRTZWFyY2ggPSAoKTogc3RyaW5nID0+IHtcblx0XHRpZiAoIXRoaXMuaGlkZUJhc2ljU2VhcmNoKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQ8TURDRmlsdGVyRmllbGRcblx0XHRcdFx0XHRpZD17Z2VuZXJhdGUoW3RoaXMuaWQsIFwiQmFzaWNTZWFyY2hGaWVsZFwiXSl9XG5cdFx0XHRcdFx0bGFiZWw9e1wiXCJ9XG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCJ7c2FwLmZlLmkxOG4+TV9GSUxURVJCQVJfU0VBUkNIfVwiXG5cdFx0XHRcdFx0cHJvcGVydHlLZXk9XCIkc2VhcmNoXCJcblx0XHRcdFx0XHRjb25kaXRpb25zPVwieyRmaWx0ZXJzPi9jb25kaXRpb25zLyRzZWFyY2h9XCJcblx0XHRcdFx0XHRkYXRhVHlwZT1cInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlN0cmluZ1wiXG5cdFx0XHRcdFx0bWF4Q29uZGl0aW9ucz1cIjFcIlxuXHRcdFx0XHRcdGRhdGFUeXBlQ29uc3RyYWludHM9XCJ7J21heExlbmd0aCc6MTAwMH1cIlxuXHRcdFx0XHQvPlxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH07XG5cblx0cHJvY2Vzc1NlbGVjdGlvbkZpZWxkcyA9ICgpOiB2b2lkID0+IHtcblx0XHRsZXQgZHJhZnRFZGl0U3RhdGUgPSBcIlwiO1xuXHRcdGlmICh0aGlzLnNob3dEcmFmdEVkaXRTdGF0ZSkge1xuXHRcdFx0Y29uc3QgZHJhZnRTdGF0ZXMgPSBEcmFmdEVkaXRTdGF0ZS5nZXRFZGl0U3RhdGVzKHRoaXMuaXNEcmFmdENvbGxhYm9yYXRpdmUpO1xuXHRcdFx0Y29uc3QgbGFiZWwgPSB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiRklMVEVSQkFSX0VESVRJTkdfU1RBVFVTXCIpO1xuXHRcdFx0ZHJhZnRFZGl0U3RhdGUgPSAoXG5cdFx0XHRcdDxNRENGaWx0ZXJGaWVsZFxuXHRcdFx0XHRcdGxhYmVsPXtsYWJlbH1cblx0XHRcdFx0XHRjb25kaXRpb25zPVwieyRmaWx0ZXJzPi9jb25kaXRpb25zLyRlZGl0U3RhdGV9XCJcblx0XHRcdFx0XHRtYXhDb25kaXRpb25zPVwiMVwiXG5cdFx0XHRcdFx0aWQ9e2dlbmVyYXRlKFt0aGlzLmlkLCBcIkZpbHRlckZpZWxkXCIsIFwiRHJhZnRFZGl0aW5nU3RhdHVzXCJdKX1cblx0XHRcdFx0XHRvcGVyYXRvcnM9XCJFUVwiXG5cdFx0XHRcdFx0ZGF0YVR5cGU9XCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5TdHJpbmdcIlxuXHRcdFx0XHRcdHByb3BlcnR5S2V5PVwiJGVkaXRTdGF0ZVwiXG5cdFx0XHRcdFx0ZGlzcGxheT1cIkRlc2NyaXB0aW9uXCJcblx0XHRcdFx0PlxuXHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRjb250ZW50RWRpdDogKFxuXHRcdFx0XHRcdFx0XHQ8U2VsZWN0XG5cdFx0XHRcdFx0XHRcdFx0aWQ9e2dlbmVyYXRlKFt0aGlzLmlkLCBcIkZpbHRlckZpZWxkXCIsIFwiRHJhZnRFZGl0aW5nU3RhdHVzU2VsZWN0XCJdKX1cblx0XHRcdFx0XHRcdFx0XHR3aWR0aD1cIjEwMCVcIlxuXHRcdFx0XHRcdFx0XHRcdGZvcmNlU2VsZWN0aW9uPVwidHJ1ZVwiXG5cdFx0XHRcdFx0XHRcdFx0c2VsZWN0ZWRLZXk9XCJ7cGF0aDogJyRmaWVsZD4vY29uZGl0aW9ucycsIHR5cGU6ICdzYXAudWkubWRjLmZpZWxkLkNvbmRpdGlvbnNUeXBlJ31cIlxuXHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0e3sgaXRlbXM6IGRyYWZ0U3RhdGVzLm1hcCgoc3RhdGUpID0+IDxMaXN0SXRlbSBrZXk9e3N0YXRlLmlkfSB0ZXh0PXtzdGF0ZS5kaXNwbGF5fSAvPikgfX1cblx0XHRcdFx0XHRcdFx0PC9TZWxlY3Q+XG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0fX1cblx0XHRcdFx0PC9NRENGaWx0ZXJGaWVsZD5cblx0XHRcdCk7XG5cdFx0fVxuXHRcdHRoaXMuX3ZhbHVlSGVscHMgPSBbXTtcblx0XHR0aGlzLl9maWx0ZXJGaWVsZHMgPSBbXTtcblx0XHR0aGlzLl9maWx0ZXJGaWVsZHM/LnB1c2goZHJhZnRFZGl0U3RhdGUpO1xuXHRcdGlmICghQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGlvbkZpZWxkcykpIHtcblx0XHRcdHRoaXMuc2VsZWN0aW9uRmllbGRzID0gdGhpcy5zZWxlY3Rpb25GaWVsZHMhLmdldE9iamVjdCgpIGFzIENvbnZlcnRlZEZpbHRlckZpZWxkW107XG5cdFx0fVxuXHRcdHRoaXMuc2VsZWN0aW9uRmllbGRzPy5mb3JFYWNoKChzZWxlY3Rpb25GaWVsZDogQ29udmVydGVkRmlsdGVyRmllbGQpID0+IHtcblx0XHRcdGlmIChzZWxlY3Rpb25GaWVsZC5hdmFpbGFiaWxpdHkgPT09IFwiRGVmYXVsdFwiKSB7XG5cdFx0XHRcdHRoaXMuc2V0RmlsdGVyRmllbGRzQW5kVmFsdWVIZWxwcyhzZWxlY3Rpb25GaWVsZCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0dGhpcy5fZmlsdGVyRmllbGRzID0gdGhpcy5fZmlsdGVyRmllbGRzPy5sZW5ndGggPiAwID8gdGhpcy5fZmlsdGVyRmllbGRzIDogXCJcIjtcblx0XHR0aGlzLl92YWx1ZUhlbHBzID0gdGhpcy5fdmFsdWVIZWxwcz8ubGVuZ3RoID4gMCA/IHRoaXMuX3ZhbHVlSGVscHMgOiBcIlwiO1xuXHR9O1xuXG5cdGdldFBlcnNpc3RlbmNlUHJvdmlkZXIoZmlsdGVyQmFySWQ6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKHRoaXMuaWdub3JlUGVyc29uYWxpemF0aW9uQ2hhbmdlcykge1xuXHRcdFx0cmV0dXJuIDxQZXJzaXN0ZW5jZVByb3ZpZGVyIGlkPXtnZW5lcmF0ZShbZmlsdGVyQmFySWQsIFwiUGVyc2lzdGVuY2VQcm92aWRlclwiXSl9IGZvcj17ZmlsdGVyQmFySWR9IG1vZGU9e1wiVHJhbnNpZW50XCJ9IC8+O1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0c2V0RmlsdGVyRmllbGRzQW5kVmFsdWVIZWxwcyA9IChzZWxlY3Rpb25GaWVsZDogQ29udmVydGVkRmlsdGVyRmllbGQpOiB2b2lkID0+IHtcblx0XHRpZiAoc2VsZWN0aW9uRmllbGQudGVtcGxhdGUgPT09IHVuZGVmaW5lZCAmJiBzZWxlY3Rpb25GaWVsZC50eXBlICE9PSBcIlNsb3RcIikge1xuXHRcdFx0dGhpcy5wdXNoRmlsdGVyRmllbGRzQW5kVmFsdWVIZWxwcyhzZWxlY3Rpb25GaWVsZCk7XG5cdFx0fSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRoaXMuX2ZpbHRlckZpZWxkcykpIHtcblx0XHRcdGNvbnN0IHByb3BlcnR5ID0gc2VsZWN0aW9uRmllbGQuYW5ub3RhdGlvblBhdGg7XG5cdFx0XHRjb25zdCBwcm9wZXJ0eUNvbnRleHQgPSB0aGlzLm1ldGFQYXRoIS5nZXRNb2RlbCgpLmNyZWF0ZUJpbmRpbmdDb250ZXh0KHByb3BlcnR5KTtcblx0XHRcdGNvbnN0IHByb3BlcnR5T2JqZWN0ID0gcHJvcGVydHlDb250ZXh0Py5nZXRPYmplY3QoKTtcblx0XHRcdGxldCBmaWx0ZXJDb250ZW50O1xuXHRcdFx0aWYgKHNlbGVjdGlvbkZpZWxkLnR5cGUgPT09IFwiU2xvdFwiKSB7XG5cdFx0XHRcdGZpbHRlckNvbnRlbnQgPSAoXG5cdFx0XHRcdFx0PFNsb3RDb2x1bW4gdGVtcGxhdGVJZD17c2VsZWN0aW9uRmllbGQudGVtcGxhdGV9PlxuXHRcdFx0XHRcdFx0PHNsb3QgbmFtZT17KHNlbGVjdGlvbkZpZWxkIGFzIE1hbmlmZXN0RmlsdGVyRmllbGQpLnNsb3ROYW1lIX0gLz5cblx0XHRcdFx0XHQ8L1Nsb3RDb2x1bW4+XG5cdFx0XHRcdCk7XG5cdFx0XHR9IGVsc2UgaWYgKHNlbGVjdGlvbkZpZWxkLnRlbXBsYXRlKSB7XG5cdFx0XHRcdGZpbHRlckNvbnRlbnQgPSAoXG5cdFx0XHRcdFx0PEN1c3RvbUZyYWdtZW50QmxvY2tcblx0XHRcdFx0XHRcdGZyYWdtZW50TmFtZT17c2VsZWN0aW9uRmllbGQudGVtcGxhdGV9XG5cdFx0XHRcdFx0XHRpZD17Z2VuZXJhdGUoW3RoaXMuaWQsIFwiQ3VzdG9tRmlsdGVyRmllbGRcIiwgc2VsZWN0aW9uRmllbGQua2V5XSl9XG5cdFx0XHRcdFx0XHRjb250ZXh0UGF0aD17XCJ7Y29udGV4dFBhdGg+fVwiIGFzIHVua25vd24gYXMgQ29udGV4dH1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0bGV0IG1heENvbmRpdGlvblZhbHVlID0gLTE7XG5cdFx0XHRpZiAocHJvcGVydHlDb250ZXh0KSB7XG5cdFx0XHRcdG1heENvbmRpdGlvblZhbHVlID0gbWF4Q29uZGl0aW9ucyhzZWxlY3Rpb25GaWVsZC5hbm5vdGF0aW9uUGF0aCwgeyBjb250ZXh0OiBwcm9wZXJ0eUNvbnRleHQgfSkgPz8gLTE7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9maWx0ZXJGaWVsZHM/LnB1c2goXG5cdFx0XHRcdDxNRENGaWx0ZXJGaWVsZFxuXHRcdFx0XHRcdGlkPXtnZW5lcmF0ZShbdGhpcy5pZCwgXCJDdXN0b21GaWx0ZXJGaWVsZFwiLCBzZWxlY3Rpb25GaWVsZC5rZXldKX1cblx0XHRcdFx0XHRkZWxlZ2F0ZT17eyBuYW1lOiBcInNhcC9mZS9tYWNyb3MvZmllbGQvRmllbGRCYXNlRGVsZWdhdGVcIiB9fVxuXHRcdFx0XHRcdHByb3BlcnR5S2V5PXtzZWxlY3Rpb25GaWVsZC5jb25kaXRpb25QYXRofVxuXHRcdFx0XHRcdGxhYmVsPXtzZWxlY3Rpb25GaWVsZC5sYWJlbH1cblx0XHRcdFx0XHRkYXRhVHlwZT17c2VsZWN0aW9uRmllbGQuZGF0YVR5cGV9XG5cdFx0XHRcdFx0bWF4Q29uZGl0aW9ucz17bWF4Q29uZGl0aW9uVmFsdWV9XG5cdFx0XHRcdFx0Y29uZGl0aW9ucz17YHskZmlsdGVycz4vY29uZGl0aW9ucy8ke3NlbGVjdGlvbkZpZWxkLmNvbmRpdGlvblBhdGh9fWB9XG5cdFx0XHRcdFx0b3BlcmF0b3JzPXtGaWVsZEhlbHBlci5vcGVyYXRvcnMoXG5cdFx0XHRcdFx0XHRwcm9wZXJ0eUNvbnRleHQsXG5cdFx0XHRcdFx0XHRwcm9wZXJ0eU9iamVjdCxcblx0XHRcdFx0XHRcdHRoaXMudXNlU2VtYW50aWNEYXRlUmFuZ2UsXG5cdFx0XHRcdFx0XHRzZWxlY3Rpb25GaWVsZC5zZXR0aW5ncyBhcyB1bmtub3duIGFzIHN0cmluZyxcblx0XHRcdFx0XHRcdHRoaXMuY29udGV4dFBhdGghLmdldFBhdGgoKVxuXHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0ZGF0YVR5cGVDb25zdHJhaW50cz17KHNlbGVjdGlvbkZpZWxkIGFzIHVua25vd24gYXMgeyBjb25zdHJhaW50czogdW5rbm93biB9KS5jb25zdHJhaW50c31cblx0XHRcdFx0XHRkYXRhVHlwZUZvcm1hdE9wdGlvbnM9eyhzZWxlY3Rpb25GaWVsZCBhcyB1bmtub3duIGFzIHsgZm9ybWF0T3B0aW9uczogdW5rbm93biB9KS5mb3JtYXRPcHRpb25zfVxuXHRcdFx0XHRcdHZhbHVlSGVscD17XCJ1bmRlZmluZWRcIn1cblx0XHRcdFx0XHRyZXF1aXJlZD17c2VsZWN0aW9uRmllbGQucmVxdWlyZWR9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0XHQ8Q3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlclxuXHRcdFx0XHRcdFx0XHRcdGNvcmU6cmVxdWlyZT1cIntoYW5kbGVyOiAnc2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHMnfVwiXG5cdFx0XHRcdFx0XHRcdFx0aWQ9e2dlbmVyYXRlKFt0aGlzLmlkLCBcIkZpbHRlckZpZWxkQ29udGVudFdyYXBwZXJcIiwgc2VsZWN0aW9uRmllbGQua2V5XSl9XG5cdFx0XHRcdFx0XHRcdFx0YmluZGluZz17YHtmaWx0ZXJWYWx1ZXM+LyR7RmlsdGVyVXRpbHMuY29uZGl0aW9uVG9Nb2RlbFBhdGgoc2VsZWN0aW9uRmllbGQuY29uZGl0aW9uUGF0aCl9fWB9XG5cdFx0XHRcdFx0XHRcdFx0Y29uZGl0aW9ucz17XCJ7cGF0aDogJyRmaWVsZD4vY29uZGl0aW9ucyd9XCIgYXMgdW5rbm93biBhcyBDb25kaXRpb25PYmplY3RbXX1cblx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdHt7IGNvbnRlbnQ6IGZpbHRlckNvbnRlbnQgfX1cblx0XHRcdFx0XHRcdFx0PC9DdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyPlxuXHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdGN1c3RvbURhdGE6IFtcblx0XHRcdFx0XHRcdFx0PEN1c3RvbURhdGEga2V5PXtcImlzU2xvdFwifSB2YWx1ZT17c2VsZWN0aW9uRmllbGQudHlwZSA9PT0gXCJTbG90XCJ9IC8+LFxuXHRcdFx0XHRcdFx0XHQ8RmllbGRIZWxwQ3VzdG9tRGF0YVxuXHRcdFx0XHRcdFx0XHRcdGtleT17XCJzYXAtdWktRG9jdW1lbnRhdGlvblJlZlwifVxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlPXtge3BhcnRzOiBbe3ZhbHVlOiAnYXNBcnJheSd9LCB7dmFsdWU6ICcke3NlbGVjdGlvbkZpZWxkLmRvY3VtZW50UmVmVGV4dH0nfV0sIGZvcm1hdHRlcjogJ3NhcC5mZS5jb3JlLmZvcm1hdHRlcnMuU3RhbmRhcmRGb3JtYXR0ZXInfWB9XG5cdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRdXG5cdFx0XHRcdFx0fX1cblx0XHRcdFx0PC9NRENGaWx0ZXJGaWVsZD5cblx0XHRcdCk7XG5cdFx0fVxuXHR9O1xuXG5cdF9nZXRDb250ZXh0UGF0aEZvckZpbHRlckZpZWxkKHNlbGVjdGlvbkZpZWxkOiBDb252ZXJ0ZWRGaWx0ZXJGaWVsZCwgZmlsdGVyQmFyQ29udGV4dFBhdGg6IENvbnRleHQpOiBzdHJpbmcge1xuXHRcdGxldCBjb250ZXh0UGF0aDogc3RyaW5nID0gZmlsdGVyQmFyQ29udGV4dFBhdGg/LmdldFBhdGgoKTtcblx0XHRpZiAoc2VsZWN0aW9uRmllbGQuaXNQYXJhbWV0ZXIpIHtcblx0XHRcdC8vIEV4YW1wbGU6XG5cdFx0XHQvLyBGaWx0ZXJCYXJDb250ZXh0UGF0aDogL0N1c3RvbWVyL1NldFxuXHRcdFx0Ly8gUGFyYW1ldGVyUHJvcGVydHlQYXRoOiAvQ3VzdG9tZXIvUF9DQ1xuXHRcdFx0Ly8gQ29udGV4dFBhdGhGb3JGaWx0ZXJGaWVsZDogL0N1c3RvbWVyXG5cdFx0XHRjb25zdCBhbm5vUGF0aCA9IHNlbGVjdGlvbkZpZWxkLmFubm90YXRpb25QYXRoO1xuXHRcdFx0Y29udGV4dFBhdGggPSBhbm5vUGF0aC5zdWJzdHJpbmcoMCwgYW5ub1BhdGgubGFzdEluZGV4T2YoXCIvXCIpICsgMSk7XG5cdFx0fVxuXHRcdHJldHVybiBjb250ZXh0UGF0aDtcblx0fVxuXG5cdHB1c2hGaWx0ZXJGaWVsZHNBbmRWYWx1ZUhlbHBzID0gKHNlbGVjdGlvbkZpZWxkOiBDb252ZXJ0ZWRGaWx0ZXJGaWVsZCk6IHZvaWQgPT4ge1xuXHRcdGlmIChBcnJheS5pc0FycmF5KHRoaXMuX2ZpbHRlckZpZWxkcykpIHtcblx0XHRcdGNvbnN0IHZmID0geyAuLi5zZWxlY3Rpb25GaWVsZC52aXN1YWxGaWx0ZXIsIC4uLnsgaW5pdGlhbENoYXJ0QmluZGluZ0VuYWJsZWQ6ICF0aGlzLnN1c3BlbmRTZWxlY3Rpb24gfSB9O1xuXHRcdFx0dGhpcy5fZmlsdGVyRmllbGRzPy5wdXNoKFxuXHRcdFx0XHQ8SW50ZXJuYWxGaWx0ZXJGaWVsZFxuXHRcdFx0XHRcdGlkUHJlZml4PXtnZW5lcmF0ZShbdGhpcy5pZCwgXCJGaWx0ZXJGaWVsZFwiLCBDb21tb25IZWxwZXIuZ2V0TmF2aWdhdGlvblBhdGgoc2VsZWN0aW9uRmllbGQuYW5ub3RhdGlvblBhdGgpXSl9XG5cdFx0XHRcdFx0dmhJZFByZWZpeD17Z2VuZXJhdGUoW3RoaXMuaWQsIFwiRmlsdGVyRmllbGRWYWx1ZUhlbHBcIl0pfVxuXHRcdFx0XHRcdHByb3BlcnR5PXtzZWxlY3Rpb25GaWVsZC5hbm5vdGF0aW9uUGF0aCBhcyB1bmtub3duIGFzIENvbnRleHR9XG5cdFx0XHRcdFx0Y29udGV4dFBhdGg9e3RoaXMuX2dldENvbnRleHRQYXRoRm9yRmlsdGVyRmllbGQoc2VsZWN0aW9uRmllbGQsIHRoaXMuX2ludGVybmFsQ29udGV4dFBhdGgpIGFzIHVua25vd24gYXMgQ29udGV4dH1cblx0XHRcdFx0XHR1c2VTZW1hbnRpY0RhdGVSYW5nZT17dGhpcy51c2VTZW1hbnRpY0RhdGVSYW5nZX1cblx0XHRcdFx0XHRzZXR0aW5ncz17Q29tbW9uSGVscGVyLnN0cmluZ2lmeUN1c3RvbURhdGEoc2VsZWN0aW9uRmllbGQuc2V0dGluZ3MpfVxuXHRcdFx0XHRcdHZpc3VhbEZpbHRlcj17c2VsZWN0aW9uRmllbGQudmlzdWFsRmlsdGVyICE9PSB1bmRlZmluZWQgPyAoc3RvcmVPYmplY3RWYWx1ZSh2ZikgYXMgdW5rbm93biBhcyBDb250ZXh0KSA6IHVuZGVmaW5lZH1cblx0XHRcdFx0XHRlZGl0TW9kZT17YHtpbnRlcm5hbD4vJHt0aGlzLmlkfS9maWx0ZXJGaWVsZHMvJHtzZWxlY3Rpb25GaWVsZC5jb25kaXRpb25QYXRofS9lZGl0TW9kZX1gfVxuXHRcdFx0XHQvPlxuXHRcdFx0KTtcblx0XHR9XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodGhpcy5fdmFsdWVIZWxwcykpIHtcblx0XHRcdHRoaXMuX3ZhbHVlSGVscHM/LnB1c2goXG5cdFx0XHRcdDxWYWx1ZUhlbHBcblx0XHRcdFx0XHRpZFByZWZpeD17Z2VuZXJhdGUoW3RoaXMuaWQsIFwiRmlsdGVyRmllbGRWYWx1ZUhlbHBcIl0pfVxuXHRcdFx0XHRcdGNvbmRpdGlvbk1vZGVsPVwiJGZpbHRlcnNcIlxuXHRcdFx0XHRcdG1ldGFQYXRoPXtzZWxlY3Rpb25GaWVsZC5hbm5vdGF0aW9uUGF0aH1cblx0XHRcdFx0XHRjb250ZXh0UGF0aD17dGhpcy5fZ2V0Q29udGV4dFBhdGhGb3JGaWx0ZXJGaWVsZChzZWxlY3Rpb25GaWVsZCwgdGhpcy5faW50ZXJuYWxDb250ZXh0UGF0aCl9XG5cdFx0XHRcdFx0ZmlsdGVyRmllbGRWYWx1ZUhlbHA9e3RydWV9XG5cdFx0XHRcdFx0dXNlU2VtYW50aWNEYXRlUmFuZ2U9e3RoaXMudXNlU2VtYW50aWNEYXRlUmFuZ2V9XG5cdFx0XHRcdC8+XG5cdFx0XHQpO1xuXHRcdH1cblx0fTtcblxuXHQvKipcblx0ICogRGV0ZXJtaW5lcyB0aGUgZGVzaWduIHRpbWUgZm9yIHRoZSBNREMgRmlsdGVyQmFyLlxuXHQgKiBAcmV0dXJucyBUaGUgdmFsdWUgdG8gYmUgYXNzaWduZWQgdG8gZHQ6ZGVzaWdudGltZVxuXHQgKi9cblx0Z2V0RGVzaWdudGltZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL2Rlc2lnbnRpbWUvRmlsdGVyQmFyLmRlc2lnbnRpbWVcIjtcblx0fVxuXG5cdGdldFRlbXBsYXRlKCk6IHN0cmluZyB7XG5cdFx0Y29uc3QgaW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuX2ludGVybmFsQ29udGV4dFBhdGg/LmdldFBhdGgoKTtcblx0XHRsZXQgZmlsdGVyRGVsZWdhdGUgPSBcIlwiO1xuXHRcdGlmICh0aGlzLmZpbHRlckJhckRlbGVnYXRlKSB7XG5cdFx0XHRmaWx0ZXJEZWxlZ2F0ZSA9IHRoaXMuZmlsdGVyQmFyRGVsZWdhdGU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGZpbHRlckRlbGVnYXRlID0gXCJ7bmFtZTonc2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvRmlsdGVyQmFyRGVsZWdhdGUnLCBwYXlsb2FkOiB7ZW50aXR5VHlwZVBhdGg6ICdcIiArIGludGVybmFsQ29udGV4dFBhdGggKyBcIid9fVwiO1xuXHRcdH1cblx0XHQvLyBhZnRlciByZW1vdmluZyB0aGUgdW53YW50ZWQgcHJvcGVydGllcyBQcm9wZXJ0eUluZm8gaXMgYWRkZWQgdG8gdGhlIGNvbnRyb2wsIGFuZCB3ZSBhbHNvIHNhdmUgdGhlIGZ1bGwgdmVyc2lvbiBhcyBjdXN0b20gZGF0YSBmb3IgRkUgaW50ZXJuYWwgdXNlXG5cdFx0Y29uc3QgX3Byb3BlcnR5SW5mb0NvbnRyb2wgPSBGaWx0ZXJVdGlscy5mb3JtYXRQcm9wZXJ0eUluZm8odGhpcy5wcm9wZXJ0eUluZm8gYXMgc3RyaW5nKTtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PEZpbHRlckJhckFQSVxuXHRcdFx0XHRpZD17dGhpcy5fYXBpSWR9XG5cdFx0XHRcdG1ldGFQYXRoPXt0aGlzLm1ldGFQYXRoIS5nZXRQYXRoKCl9XG5cdFx0XHRcdHNlYXJjaD17dGhpcy5zZWFyY2h9XG5cdFx0XHRcdGZpbHRlckNoYW5nZWQ9e3RoaXMuZmlsdGVyQ2hhbmdlZH1cblx0XHRcdFx0YWZ0ZXJDbGVhcj17dGhpcy5hZnRlckNsZWFyfVxuXHRcdFx0XHRpbnRlcm5hbFNlYXJjaD17dGhpcy5pbnRlcm5hbFNlYXJjaH1cblx0XHRcdFx0aW50ZXJuYWxGaWx0ZXJDaGFuZ2VkPXt0aGlzLmludGVybmFsRmlsdGVyQ2hhbmdlZH1cblx0XHRcdD5cblx0XHRcdFx0e3tcblx0XHRcdFx0XHRjb250ZW50OiAoXG5cdFx0XHRcdFx0XHQ8RkVGaWx0ZXJCYXJcblx0XHRcdFx0XHRcdFx0Y29yZTpyZXF1aXJlPVwie0FQSTogJ3NhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL0ZpbHRlckJhckFQSSd9XCJcblx0XHRcdFx0XHRcdFx0aWQ9e3RoaXMuX2NvbnRlbnRJZH1cblx0XHRcdFx0XHRcdFx0bGl2ZU1vZGU9e3RoaXMubGl2ZU1vZGV9XG5cdFx0XHRcdFx0XHRcdGRlbGVnYXRlPXtmaWx0ZXJEZWxlZ2F0ZX1cblx0XHRcdFx0XHRcdFx0dmFyaWFudEJhY2tyZWZlcmVuY2U9e3RoaXMubGl2ZU1vZGUgPyB1bmRlZmluZWQgOiB0aGlzLnZhcmlhbnRCYWNrcmVmZXJlbmNlfVxuXHRcdFx0XHRcdFx0XHRzaG93QWRhcHRGaWx0ZXJzQnV0dG9uPXt0aGlzLnNob3dBZGFwdEZpbHRlcnNCdXR0b259XG5cdFx0XHRcdFx0XHRcdHNob3dDbGVhckJ1dHRvbj17dGhpcy5zaG93Q2xlYXJCdXR0b259XG5cdFx0XHRcdFx0XHRcdHAxM25Nb2RlPXt0aGlzLnAxM25Nb2RlfVxuXHRcdFx0XHRcdFx0XHRzZWFyY2g9e1wiQVBJLmhhbmRsZVNlYXJjaCgkZXZlbnQpXCIgYXMgdW5rbm93biBhcyAoZTogRmlsdGVyQmFyQmFzZSRTZWFyY2hFdmVudCkgPT4gdm9pZH1cblx0XHRcdFx0XHRcdFx0ZmlsdGVyc0NoYW5nZWQ9e1wiQVBJLmhhbmRsZUZpbHRlckNoYW5nZWQoJGV2ZW50KVwiIGFzIHVua25vd24gYXMgKGU6IEZpbHRlckJhckJhc2UkRmlsdGVyc0NoYW5nZWRFdmVudCkgPT4gdm9pZH1cblx0XHRcdFx0XHRcdFx0ZmlsdGVyQ29uZGl0aW9ucz17dGhpcy5maWx0ZXJDb25kaXRpb25zfVxuXHRcdFx0XHRcdFx0XHRzdXNwZW5kU2VsZWN0aW9uPXt0aGlzLnN1c3BlbmRTZWxlY3Rpb259XG5cdFx0XHRcdFx0XHRcdHNob3dNZXNzYWdlcz17dGhpcy5zaG93TWVzc2FnZXN9XG5cdFx0XHRcdFx0XHRcdHRvZ2dsZUNvbnRyb2w9e3RoaXMudG9nZ2xlQ29udHJvbElkfVxuXHRcdFx0XHRcdFx0XHRpbml0aWFsTGF5b3V0PXt0aGlzLmluaXRpYWxMYXlvdXR9XG5cdFx0XHRcdFx0XHRcdHZpc2libGU9e3RoaXMudmlzaWJsZX1cblx0XHRcdFx0XHRcdFx0ZHQ6ZGVzaWdudGltZT17dGhpcy5kZXNpZ250aW1lfVxuXHRcdFx0XHRcdFx0XHRjdXN0b21EYXRhOmVudGl0eVR5cGU9e2ludGVybmFsQ29udGV4dFBhdGh9XG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRcdFx0Y3VzdG9tRGF0YTogW1xuXHRcdFx0XHRcdFx0XHRcdFx0PEN1c3RvbURhdGEga2V5PXtcImxvY2FsSWRcIn0gdmFsdWU9e3RoaXMuaWR9IC8+LFxuXHRcdFx0XHRcdFx0XHRcdFx0PEN1c3RvbURhdGEga2V5PXtcImhpZGVCYXNpY1NlYXJjaFwifSB2YWx1ZT17dGhpcy5oaWRlQmFzaWNTZWFyY2h9IC8+LFxuXHRcdFx0XHRcdFx0XHRcdFx0PEN1c3RvbURhdGEga2V5PXtcInNob3dEcmFmdEVkaXRTdGF0ZVwifSB2YWx1ZT17dGhpcy5zaG93RHJhZnRFZGl0U3RhdGV9IC8+LFxuXHRcdFx0XHRcdFx0XHRcdFx0PEN1c3RvbURhdGEga2V5PXtcInVzZVNlbWFudGljRGF0ZVJhbmdlXCJ9IHZhbHVlPXt0aGlzLnVzZVNlbWFudGljRGF0ZVJhbmdlfSAvPixcblx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT17XCJwYXJhbWV0ZXJzXCJ9IHZhbHVlPXt0aGlzLl9wYXJhbWV0ZXJzfSAvPixcblx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT17XCJmZUZpbHRlckluZm9cIn0gdmFsdWU9e3RoaXMucHJvcGVydHlJbmZvfSAvPixcblx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT17XCJhbm5vdGF0aW9uUGF0aFwifSB2YWx1ZT17dGhpcy5fYW5ub3RhdGlvblBhdGh9IC8+XG5cdFx0XHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdFx0XHRkZXBlbmRlbnRzOiBbdGhpcy5fdmFsdWVIZWxwcywgdGhpcy5nZXRQZXJzaXN0ZW5jZVByb3ZpZGVyKHRoaXMuX2NvbnRlbnRJZCBhcyBzdHJpbmcpXSxcblx0XHRcdFx0XHRcdFx0XHRiYXNpY1NlYXJjaEZpZWxkOiB0aGlzLmdldFNlYXJjaCgpLFxuXHRcdFx0XHRcdFx0XHRcdGZpbHRlckl0ZW1zOiB0aGlzLl9maWx0ZXJGaWVsZHNcblx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdDwvRkVGaWx0ZXJCYXI+XG5cdFx0XHRcdFx0KVxuXHRcdFx0XHR9fVxuXHRcdFx0PC9GaWx0ZXJCYXJBUEk+XG5cdFx0KTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtREEsTUFBTUEsOEJBQThCLEdBQUcsU0FBQUEsQ0FBVUMsZ0JBQXlCLEVBQUVDLGlCQUE4QixFQUFlO0lBQ3hIQSxpQkFBaUIsQ0FBQ0MsUUFBUSxHQUFHRCxpQkFBaUIsQ0FBQ0UsR0FBRztJQUNsREYsaUJBQWlCLENBQUNFLEdBQUcsR0FBR0YsaUJBQWlCLENBQUNFLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFF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
|
|
770
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzZXRDdXN0b21GaWx0ZXJGaWVsZFByb3BlcnRpZXMiLCJjaGlsZEZpbHRlckZpZWxkIiwiYWdncmVnYXRpb25PYmplY3QiLCJzbG90TmFtZSIsImtleSIsInJlcGxhY2UiLCJwcm9wZXJ0eSIsImdldEF0dHJpYnV0ZSIsImxhYmVsIiwicmVxdWlyZWQiLCJ0ZW1wbGF0ZSIsIkZpbHRlckJhckJsb2NrIiwiX2RlYyIsImRlZmluZUJ1aWxkaW5nQmxvY2siLCJuYW1lIiwibmFtZXNwYWNlIiwicHVibGljTmFtZXNwYWNlIiwicmV0dXJuVHlwZXMiLCJfZGVjMiIsImJsb2NrQXR0cmlidXRlIiwidHlwZSIsImlzUHVibGljIiwiX2RlYzMiLCJfZGVjNCIsIl9kZWM1IiwiX2RlYzYiLCJfZGVjNyIsIl9kZWM4IiwiX2RlYzkiLCJfZGVjMTAiLCJfZGVjMTEiLCJfZGVjMTIiLCJfZGVjMTMiLCJfZGVjMTQiLCJfZGVjMTUiLCJfZGVjMTYiLCJfZGVjMTciLCJfZGVjMTgiLCJfZGVjMTkiLCJfZGVjMjAiLCJfZGVjMjEiLCJfZGVjMjIiLCJfZGVjMjMiLCJfZGVjMjQiLCJfZGVjMjUiLCJfZGVjMjYiLCJibG9ja0V2ZW50IiwiX2RlYzI3IiwiX2RlYzI4IiwiX2RlYzI5IiwiX2RlYzMwIiwiX2RlYzMxIiwiYmxvY2tBZ2dyZWdhdGlvbiIsImhhc1ZpcnR1YWxOb2RlIiwicHJvY2Vzc0FnZ3JlZ2F0aW9ucyIsIl9kZWMzMiIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9ja1RlbXBsYXQiLCJwcm9wcyIsImNvbmZpZ3VyYXRpb24iLCJtU2V0dGluZ3MiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwiX2Rlc2NyaXB0b3I5IiwiX2Rlc2NyaXB0b3IxMCIsIl9kZXNjcmlwdG9yMTEiLCJfZGVzY3JpcHRvcjEyIiwiX2Rlc2NyaXB0b3IxMyIsIl9kZXNjcmlwdG9yMTQiLCJfZGVzY3JpcHRvcjE1IiwiX2Rlc2NyaXB0b3IxNiIsIl9kZXNjcmlwdG9yMTciLCJfZGVzY3JpcHRvcjE4IiwiX2Rlc2NyaXB0b3IxOSIsIl9kZXNjcmlwdG9yMjAiLCJfZGVzY3JpcHRvcjIxIiwiX2Rlc2NyaXB0b3IyMiIsIl9kZXNjcmlwdG9yMjMiLCJfZGVzY3JpcHRvcjI0IiwiX2Rlc2NyaXB0b3IyNSIsIl9kZXNjcmlwdG9yMjYiLCJfZGVzY3JpcHRvcjI3IiwiX2Rlc2NyaXB0b3IyOCIsIl9kZXNjcmlwdG9yMjkiLCJfZGVzY3JpcHRvcjMwIiwic2hvd0RyYWZ0RWRpdFN0YXRlIiwiX2Rlc2NyaXB0b3IzMSIsImNoZWNrSWZFZGl0aW5nRmlsdGVySXNEaXNhYmxlZCIsInRhcmdldEVudGl0eVNldCIsImFubm90YXRpb25zIiwiQ2FwYWJpbGl0aWVzIiwiTmF2aWdhdGlvblJlc3RyaWN0aW9ucyIsIlJlc3RyaWN0ZWRQcm9wZXJ0aWVzIiwic29tZSIsInIiLCJOYXZpZ2F0aW9uUHJvcGVydHkiLCJ2YWx1ZSIsIkZpbHRlclJlc3RyaWN0aW9ucyIsIkZpbHRlcmFibGUiLCJjaGVja0lmQ29sbGFib3JhdGlvbkRyYWZ0U3VwcG9ydGVkIiwib01ldGFNb2RlbCIsIk1vZGVsSGVscGVyIiwiaXNDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQiLCJpc0RyYWZ0Q29sbGFib3JhdGl2ZSIsImdldEVudGl0eVR5cGVQYXRoIiwibWV0YVBhdGhQYXJ0cyIsImVuZHNXaXRoIiwiZ2V0U2VhcmNoIiwiaGlkZUJhc2ljU2VhcmNoIiwiX2pzeCIsIk1EQ0ZpbHRlckZpZWxkIiwiaWQiLCJnZW5lcmF0ZSIsInBsYWNlaG9sZGVyIiwicHJvcGVydHlLZXkiLCJjb25kaXRpb25zIiwiZGF0YVR5cGUiLCJtYXhDb25kaXRpb25zIiwiZGF0YVR5cGVDb25zdHJhaW50cyIsInByb2Nlc3NTZWxlY3Rpb25GaWVsZHMiLCJkcmFmdEVkaXRTdGF0ZSIsImRyYWZ0U3RhdGVzIiwiRHJhZnRFZGl0U3RhdGUiLCJnZXRFZGl0U3RhdGVzIiwiZ2V0VHJhbnNsYXRlZFRleHQiLCJvcGVyYXRvcnMiLCJkaXNwbGF5IiwiY2hpbGRyZW4iLCJjb250ZW50RWRpdCIsIlNlbGVjdCIsIndpZHRoIiwiZm9yY2VTZWxlY3Rpb24iLCJzZWxlY3RlZEtleSIsIml0ZW1zIiwibWFwIiwic3RhdGUiLCJMaXN0SXRlbSIsInRleHQiLCJfdmFsdWVIZWxwcyIsIl9maWx0ZXJGaWVsZHMiLCJwdXNoIiwiQXJyYXkiLCJpc0FycmF5Iiwic2VsZWN0aW9uRmllbGRzIiwiZ2V0T2JqZWN0IiwiZm9yRWFjaCIsInNlbGVjdGlvbkZpZWxkIiwiYXZhaWxhYmlsaXR5Iiwic2V0RmlsdGVyRmllbGRzQW5kVmFsdWVIZWxwcyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInB1c2hGaWx0ZXJGaWVsZHNBbmRWYWx1ZUhlbHBzIiwiYW5ub3RhdGlvblBhdGgiLCJwcm9wZXJ0eUNvbnRleHQiLCJtZXRhUGF0aCIsImdldE1vZGVsIiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJwcm9wZXJ0eU9iamVjdCIsImZpbHRlckNvbnRlbnQiLCJTbG90Q29sdW1uIiwidGVtcGxhdGVJZCIsIkN1c3RvbUZyYWdtZW50QmxvY2siLCJmcmFnbWVudE5hbWUiLCJjb250ZXh0UGF0aCIsIm1heENvbmRpdGlvblZhbHVlIiwiY29udGV4dCIsImRlbGVnYXRlIiwiY29uZGl0aW9uUGF0aCIsIkZpZWxkSGVscGVyIiwidXNlU2VtYW50aWNEYXRlUmFuZ2UiLCJzZXR0aW5ncyIsImdldFBhdGgiLCJjb25zdHJhaW50cyIsImRhdGFUeXBlRm9ybWF0T3B0aW9ucyIsImZvcm1hdE9wdGlvbnMiLCJ2YWx1ZUhlbHAiLCJjb250ZW50IiwiQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlciIsImJpbmRpbmciLCJGaWx0ZXJVdGlscyIsImNvbmRpdGlvblRvTW9kZWxQYXRoIiwiY3VzdG9tRGF0YSIsIkN1c3RvbURhdGEiLCJGaWVsZEhlbHBDdXN0b21EYXRhIiwiZG9jdW1lbnRSZWZUZXh0IiwidmYiLCJ2aXN1YWxGaWx0ZXIiLCJpbml0aWFsQ2hhcnRCaW5kaW5nRW5hYmxlZCIsInN1c3BlbmRTZWxlY3Rpb24iLCJJbnRlcm5hbEZpbHRlckZpZWxkIiwiaWRQcmVmaXgiLCJDb21tb25IZWxwZXIiLCJnZXROYXZpZ2F0aW9uUGF0aCIsInZoSWRQcmVmaXgiLCJfZ2V0Q29udGV4dFBhdGhGb3JGaWx0ZXJGaWVsZCIsIl9pbnRlcm5hbENvbnRleHRQYXRoIiwic3RyaW5naWZ5Q3VzdG9tRGF0YSIsInN0b3JlT2JqZWN0VmFsdWUiLCJlZGl0TW9kZSIsIlZhbHVlSGVscCIsImNvbmRpdGlvbk1vZGVsIiwiZmlsdGVyRmllbGRWYWx1ZUhlbHAiLCJMb2ciLCJlcnJvciIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJzTWV0YVBhdGgiLCJlbnRpdHlUeXBlUGF0aCIsInNwbGl0Iiwic0VudGl0eVNldFBhdGgiLCJnZXRFbnRpdHlTZXRQYXRoIiwicGFyZW50Q29udGV4dFBhdGgiLCJmdWxsQ29udGV4dFBhdGgiLCJzT2JqZWN0UGF0aCIsInN0YXJ0c1dpdGgiLCJfYW5ub3RhdGlvblBhdGgiLCJvRXh0cmFQYXJhbXMiLCJmaWx0ZXJGaWVsZHMiLCJvVmlzdWFsaXphdGlvbk9iamVjdFBhdGgiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMiLCJvQ29udmVydGVyQ29udGV4dCIsImdldENvbnZlcnRlckNvbnRleHQiLCJwcm9wZXJ0eUluZm8iLCJnZXRTZWxlY3Rpb25GaWVsZHMiLCJzUHJvcGVydHlJbmZvIiwiQ29tbW9uIiwiRHJhZnRSb290IiwiZGlzYWJsZURyYWZ0RWRpdFN0YXRlRmlsdGVyIiwib1NlbGVjdGlvbkZpZWxkcyIsIlRlbXBsYXRlTW9kZWwiLCJ2aWV3RGF0YSIsIm1vZGVscyIsImdldERhdGEiLCJvRW50aXR5VHlwZSIsImdldEVudGl0eVR5cGUiLCJvU2VsZWN0aW9uVmFyaWFudCIsImdldFNlbGVjdGlvblZhcmlhbnQiLCJvRW50aXR5U2V0Q29udGV4dCIsImdldENvbnRleHQiLCJvRmlsdGVyQ29uZGl0aW9ucyIsImdldEZpbHRlckNvbmRpdGlvbnMiLCJzZWxlY3Rpb25WYXJpYW50IiwiZmlsdGVyQ29uZGl0aW9ucyIsIl9wcm9jZXNzUHJvcGVydHlJbmZvcyIsIl9hcHBseUlkVG9Db250ZW50IiwiX2FwaUlkIiwiX2NvbnRlbnRJZCIsImdldENvbnRlbnRJZCIsIm9TZWFyY2hSZXN0cmljdGlvbkFubm90YXRpb24iLCJnZXRTZWFyY2hSZXN0cmljdGlvbnMiLCJCb29sZWFuIiwiU2VhcmNoYWJsZSIsImpzeCIsInJlbmRlckFzWE1MIiwiZGVzaWdudGltZSIsImdldERlc2lnbnRpbWUiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwibW9kZWwiLCJhUGFyYW1ldGVyRmllbGRzIiwic0ZldGNoZWRQcm9wZXJ0aWVzIiwiYUZldGNoZWRQcm9wZXJ0aWVzIiwiSlNPTiIsInBhcnNlIiwiZWRpdFN0YXRlTGFiZWwiLCJwcm9wSW5mbyIsImlzUGFyYW1ldGVyIiwicGF0aCIsImluY2x1ZGVzIiwicHJvcGVydHlMb2NhdGlvblBhdGgiLCJnZXRMb2NhdGlvbkZvclByb3BlcnR5UGF0aCIsInByb3BlcnR5UGF0aCIsIkNvbW1vblV0aWxzIiwiZ2V0RmlsdGVyUmVzdHJpY3Rpb25zQnlQYXRoIiwiUmVxdWlyZWRQcm9wZXJ0aWVzIiwic3RyaW5naWZ5IiwiX3BhcmFtZXRlcnMiLCJnZXRQZXJzaXN0ZW5jZVByb3ZpZGVyIiwiZmlsdGVyQmFySWQiLCJpZ25vcmVQZXJzb25hbGl6YXRpb25DaGFuZ2VzIiwiUGVyc2lzdGVuY2VQcm92aWRlciIsImZvciIsIm1vZGUiLCJmaWx0ZXJCYXJDb250ZXh0UGF0aCIsImFubm9QYXRoIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJnZXRUZW1wbGF0ZSIsImludGVybmFsQ29udGV4dFBhdGgiLCJmaWx0ZXJEZWxlZ2F0ZSIsImZpbHRlckJhckRlbGVnYXRlIiwiX3Byb3BlcnR5SW5mb0NvbnRyb2wiLCJmb3JtYXRQcm9wZXJ0eUluZm8iLCJGaWx0ZXJCYXJBUEkiLCJzZWFyY2giLCJmaWx0ZXJDaGFuZ2VkIiwiYWZ0ZXJDbGVhciIsImludGVybmFsU2VhcmNoIiwiaW50ZXJuYWxGaWx0ZXJDaGFuZ2VkIiwiRkVGaWx0ZXJCYXIiLCJsaXZlTW9kZSIsInZhcmlhbnRCYWNrcmVmZXJlbmNlIiwic2hvd0FkYXB0RmlsdGVyc0J1dHRvbiIsInNob3dDbGVhckJ1dHRvbiIsInAxM25Nb2RlIiwiZmlsdGVyc0NoYW5nZWQiLCJzaG93TWVzc2FnZXMiLCJ0b2dnbGVDb250cm9sIiwidG9nZ2xlQ29udHJvbElkIiwiaW5pdGlhbExheW91dCIsInZpc2libGUiLCJkZXBlbmRlbnRzIiwiYmFzaWNTZWFyY2hGaWVsZCIsImZpbHRlckl0ZW1zIiwiQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJGaWx0ZXJCYXIuYmxvY2sudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5U2V0IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IGpzeCBmcm9tIFwic2FwL2ZlL2Jhc2UvanN4LXJ1bnRpbWUvanN4XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgVGVtcGxhdGVNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvVGVtcGxhdGVNb2RlbFwiO1xuaW1wb3J0IHtcblx0YmxvY2tBZ2dyZWdhdGlvbixcblx0YmxvY2tBdHRyaWJ1dGUsXG5cdGJsb2NrRXZlbnQsXG5cdGRlZmluZUJ1aWxkaW5nQmxvY2tcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgVGVtcGxhdGVQcm9jZXNzb3JTZXR0aW5ncyB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0ZVByb2Nlc3NvclwiO1xuaW1wb3J0IHsgc3RvcmVPYmplY3RWYWx1ZSB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0ZVByb2Nlc3NvclwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2tUZW1wbGF0aW5nQmFzZSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2VcIjtcbmltcG9ydCB7IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHsgZ2V0U2VsZWN0aW9uVmFyaWFudCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9EYXRhVmlzdWFsaXphdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBGaWx0ZXJGaWVsZCBhcyBDb252ZXJ0ZWRGaWx0ZXJGaWVsZCwgTWFuaWZlc3RGaWx0ZXJGaWVsZCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0xpc3RSZXBvcnQvRmlsdGVyQmFyXCI7XG5pbXBvcnQgeyBnZXRTZWxlY3Rpb25GaWVsZHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9MaXN0UmVwb3J0L0ZpbHRlckJhclwiO1xuaW1wb3J0IHsgZ2V0U2VhcmNoUmVzdHJpY3Rpb25zIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTWV0YU1vZGVsRnVuY3Rpb25cIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IENvbW1vbkhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9Db21tb25IZWxwZXJcIjtcbmltcG9ydCBGaWVsZEhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWVsZC9GaWVsZEhlbHBlclwiO1xuaW1wb3J0IHsgbWF4Q29uZGl0aW9ucyB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJGaWVsZEhlbHBlclwiO1xuaW1wb3J0IEZpbHRlclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IERyYWZ0RWRpdFN0YXRlIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlckJhci9EcmFmdEVkaXRTdGF0ZVwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyRmllbGQgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL0ZpbHRlckZpZWxkXCI7XG5pbXBvcnQgeyBnZXRGaWx0ZXJDb25kaXRpb25zIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL0ZpbHRlckhlbHBlclwiO1xuaW1wb3J0IEN1c3RvbUZyYWdtZW50QmxvY2sgZnJvbSBcInNhcC9mZS9tYWNyb3MvZnBtL0N1c3RvbUZyYWdtZW50LmJsb2NrXCI7XG5pbXBvcnQgSW50ZXJuYWxGaWx0ZXJGaWVsZCBmcm9tIFwic2FwL2ZlL21hY3Jvcy9pbnRlcm5hbC9GaWx0ZXJGaWVsZC5ibG9ja1wiO1xuaW1wb3J0IFNlbGVjdCBmcm9tIFwic2FwL20vU2VsZWN0XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgQ3VzdG9tRGF0YSBmcm9tIFwic2FwL3VpL2NvcmUvQ3VzdG9tRGF0YVwiO1xuaW1wb3J0IExpc3RJdGVtIGZyb20gXCJzYXAvdWkvY29yZS9MaXN0SXRlbVwiO1xuaW1wb3J0IEZpZWxkSGVscEN1c3RvbURhdGEgZnJvbSBcInNhcC91aS9jb3JlL2ZpZWxkaGVscC9GaWVsZEhlbHBDdXN0b21EYXRhXCI7XG5pbXBvcnQgdHlwZSB7IElDb250ZXh0IH0gZnJvbSBcInNhcC91aS9jb3JlL3V0aWwvWE1MUHJlcHJvY2Vzc29yXCI7XG5pbXBvcnQgTURDRmlsdGVyRmllbGQgZnJvbSBcInNhcC91aS9tZGMvRmlsdGVyRmllbGRcIjtcbmltcG9ydCB0eXBlIHsgQ29uZGl0aW9uT2JqZWN0IH0gZnJvbSBcInNhcC91aS9tZGMvY29uZGl0aW9uL0NvbmRpdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBGaWx0ZXJCYXJCYXNlJEZpbHRlcnNDaGFuZ2VkRXZlbnQsIEZpbHRlckJhckJhc2UkU2VhcmNoRXZlbnQgfSBmcm9tIFwic2FwL3VpL21kYy9maWx0ZXJiYXIvRmlsdGVyQmFyQmFzZVwiO1xuaW1wb3J0IFBlcnNpc3RlbmNlUHJvdmlkZXIgZnJvbSBcInNhcC91aS9tZGMvcDEzbi9QZXJzaXN0ZW5jZVByb3ZpZGVyXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFWNENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5SW5mbyB9IGZyb20gXCIuLi9EZWxlZ2F0ZVV0aWxcIjtcbmltcG9ydCBWYWx1ZUhlbHAgZnJvbSBcIi4uL1ZhbHVlSGVscFwiO1xuaW1wb3J0IEN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXIgZnJvbSBcIi4uL2NvbnRyb2xzL0N1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXJcIjtcbmltcG9ydCBGRUZpbHRlckJhciBmcm9tIFwiLi4vY29udHJvbHMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgU2xvdENvbHVtbiBmcm9tIFwiLi4vdGFibGUvU2xvdENvbHVtblwiO1xuaW1wb3J0IEZpbHRlckJhckFQSSBmcm9tIFwiLi9GaWx0ZXJCYXJBUElcIjtcblxuY29uc3Qgc2V0Q3VzdG9tRmlsdGVyRmllbGRQcm9wZXJ0aWVzID0gZnVuY3Rpb24gKGNoaWxkRmlsdGVyRmllbGQ6IEVsZW1lbnQsIGFnZ3JlZ2F0aW9uT2JqZWN0OiBGaWx0ZXJGaWVsZCk6IEZpbHRlckZpZWxkIHtcblx0YWdncmVnYXRpb25PYmplY3Quc2xvdE5hbWUgPSBhZ2dyZWdhdGlvbk9iamVjdC5rZXk7XG5cdGFnZ3JlZ2F0aW9uT2JqZWN0LmtleSA9IGFnZ3JlZ2F0aW9uT2JqZWN0LmtleS5yZXBsYWNlKFwiSW5saW5lWE1MX1wiLCBcIlwiKTtcblx0YWdncmVnYXRpb25PYmplY3QucHJvcGVydHkgPSBjaGlsZEZpbHRlckZpZWxkLmdldEF0dHJpYnV0ZShcInByb3BlcnR5XCIpITtcblx0YWdncmVnYXRpb25PYmplY3QubGFiZWwgPSBjaGlsZEZpbHRlckZpZWxkLmdldEF0dHJpYnV0ZShcImxhYmVsXCIpITtcblx0YWdncmVnYXRpb25PYmplY3QucmVxdWlyZWQgPSBjaGlsZEZpbHRlckZpZWxkLmdldEF0dHJpYnV0ZShcInJlcXVpcmVkXCIpID09PSBcInRydWVcIjtcblx0YWdncmVnYXRpb25PYmplY3QudGVtcGxhdGUgPSBjaGlsZEZpbHRlckZpZWxkLmdldEF0dHJpYnV0ZShcInRlbXBsYXRlXCIpIGFzIHVua25vd24gYXMgQ29udHJvbDsgLy8gQnV0IGl0J3MgYSBzdHJpbmc7XG5cdHJldHVybiBhZ2dyZWdhdGlvbk9iamVjdDtcbn07XG5cbi8qKlxuICogQnVpbGRpbmcgYmxvY2sgZm9yIGNyZWF0aW5nIGEgRmlsdGVyQmFyIGJhc2VkIG9uIHRoZSBtZXRhZGF0YSBwcm92aWRlZCBieSBPRGF0YSBWNC5cbiAqXG4gKlxuICogVXNhZ2UgZXhhbXBsZTpcbiAqIDxwcmU+XG4gKiAmbHQ7bWFjcm9zOkZpbHRlckJhclxuICogaWQ9XCJTb21lSURcIlxuICogc2hvd0FkYXB0RmlsdGVyc0J1dHRvbj1cInRydWVcIlxuICogcDEzbk1vZGU9W1wiSXRlbVwiLFwiVmFsdWVcIl1cbiAqIGxpc3RCaW5kaW5nTmFtZXMgPSBcInNhcC5mZS50YWJsZUJpbmRpbmdcIlxuICogbGl2ZU1vZGU9XCJ0cnVlXCJcbiAqIHNlYXJjaD1cIi5oYW5kbGVycy5vblNlYXJjaFwiXG4gKiBmaWx0ZXJDaGFuZ2VkPVwiLmhhbmRsZXJzLm9uRmlsdGVyc0NoYW5nZWRcIlxuICogLyZndDtcbiAqIDwvcHJlPlxuICpcbiAqIEJ1aWxkaW5nIGJsb2NrIGZvciBjcmVhdGluZyBhIEZpbHRlckJhciBiYXNlZCBvbiB0aGUgbWV0YWRhdGEgcHJvdmlkZWQgYnkgT0RhdGEgVjQuXG4gKiBAc2luY2UgMS45NC4wXG4gKi9cbkBkZWZpbmVCdWlsZGluZ0Jsb2NrKHtcblx0bmFtZTogXCJGaWx0ZXJCYXJcIixcblx0bmFtZXNwYWNlOiBcInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIixcblx0cHVibGljTmFtZXNwYWNlOiBcInNhcC5mZS5tYWNyb3NcIixcblx0cmV0dXJuVHlwZXM6IFtcInNhcC5mZS5tYWNyb3MuZmlsdGVyQmFyLkZpbHRlckJhckFQSVwiXVxufSlcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbHRlckJhckJsb2NrIGV4dGVuZHMgQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlIHtcblx0LyoqXG5cdCAqIElEIG9mIHRoZSBGaWx0ZXJCYXJcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHRpZD86IHN0cmluZztcblxuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdHZpc2libGU/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIHNlbGVjdGlvbkZpZWxkcyB0byBiZSBkaXNwbGF5ZWRcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzYXAudWkubW9kZWwuQ29udGV4dFwiXG5cdH0pXG5cdHNlbGVjdGlvbkZpZWxkcz86IENvbnZlcnRlZEZpbHRlckZpZWxkW10gfCBDb250ZXh0O1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0ZmlsdGVyQmFyRGVsZWdhdGU/OiBzdHJpbmc7XG5cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInNhcC51aS5tb2RlbC5Db250ZXh0XCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0bWV0YVBhdGg/OiBDb250ZXh0O1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzYXAudWkubW9kZWwuQ29udGV4dFwiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdGNvbnRleHRQYXRoPzogQ29udGV4dDtcblxuXHQvKipcblx0ICogRGlzcGxheXMgcG9zc2libGUgZXJyb3JzIGR1cmluZyB0aGUgc2VhcmNoIGluIGEgbWVzc2FnZSBib3hcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0c2hvd01lc3NhZ2VzID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIElEIG9mIHRoZSBhc3NpZ25lZCB2YXJpYW50IG1hbmFnZW1lbnRcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHR2YXJpYW50QmFja3JlZmVyZW5jZT86IHN0cmluZztcblxuXHQvKipcblx0ICogRG9uJ3Qgc2hvdyB0aGUgYmFzaWMgc2VhcmNoIGZpZWxkXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiXG5cdH0pXG5cdGhpZGVCYXNpY1NlYXJjaD86IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIEVuYWJsZXMgdGhlIGZhbGxiYWNrIHRvIHNob3cgYWxsIGZpZWxkcyBvZiB0aGUgRW50aXR5VHlwZSBhcyBmaWx0ZXIgZmllbGRzIGlmIGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlNlbGVjdGlvbkZpZWxkcyBhcmUgbm90IHByZXNlbnRcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCJcblx0fSlcblx0ZW5hYmxlRmFsbGJhY2sgPSBmYWxzZTtcblxuXHQvKipcblx0ICogSGFuZGxlcyB2aXNpYmlsaXR5IG9mIHRoZSAnQWRhcHQgRmlsdGVycycgYnV0dG9uIG9uIHRoZSBGaWx0ZXJCYXJcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCJcblx0fSlcblx0c2hvd0FkYXB0RmlsdGVyc0J1dHRvbiA9IHRydWU7XG5cblx0LyoqXG5cdCAqIFNwZWNpZmllcyB0aGUgcGVyc29uYWxpemF0aW9uIG9wdGlvbnMgZm9yIHRoZSBmaWx0ZXIgYmFyLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1tdXCJcblx0fSlcblx0cDEzbk1vZGUgPSBcIkl0ZW0sVmFsdWVcIjtcblxuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHJvcGVydHlJbmZvPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBTcGVjaWZpZXMgdGhlIFNlbWF0aWMgRGF0ZSBSYW5nZSBvcHRpb24gZm9yIHRoZSBmaWx0ZXIgYmFyLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHR9KVxuXHR1c2VTZW1hbnRpY0RhdGVSYW5nZSA9IHRydWU7XG5cblx0LyoqXG5cdCAqIFNwZWNpZmllcyB0aGUgbmF2aWdhdGlvbiBwcm9wZXJ0aWVzIG9wdGlvbiBmb3IgdGhlIGZpbHRlciBiYXIuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic3RyaW5nW11cIlxuXHR9KVxuXHRuYXZpZ2F0aW9uUHJvcGVydGllcz86IHN0cmluZ1tdO1xuXG5cdC8qKlxuXHQgKiBJZiBzZXQsIHRoZSBzZWFyY2ggaXMgYXV0b21hdGljYWxseSB0cmlnZ2VyZWQgd2hlbiBhIGZpbHRlciB2YWx1ZSBpcyBjaGFuZ2VkLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIixcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHRsaXZlTW9kZSA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBGaWx0ZXIgY29uZGl0aW9ucyB0byBiZSBhcHBsaWVkIHRvIHRoZSBmaWx0ZXIgYmFyXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0cmVxdWlyZWQ6IGZhbHNlXG5cdH0pXG5cdGZpbHRlckNvbmRpdGlvbnM/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIElmIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiwgYWxsIHNlYXJjaCByZXF1ZXN0cyBhcmUgaWdub3JlZC4gT25jZSBpdCBoYXMgYmVlbiBzZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LFxuXHQgKiBhIHNlYXJjaCBpcyB0cmlnZ2VyZWQgaW1tZWRpYXRlbHkgaWYgb25lIG9yIG1vcmUgc2VhcmNoIHJlcXVlc3RzIGhhdmUgYmVlbiB0cmlnZ2VyZWQgaW4gdGhlIG1lYW50aW1lXG5cdCAqIGJ1dCB3ZXJlIGlnbm9yZWQgYmFzZWQgb24gdGhlIHNldHRpbmcuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiXG5cdH0pXG5cdHN1c3BlbmRTZWxlY3Rpb24gPSBmYWxzZTtcblxuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiXG5cdH0pXG5cdGlzRHJhZnRDb2xsYWJvcmF0aXZlID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIElkIG9mIGNvbnRyb2wgdGhhdCB3aWxsIGFsbG93IGZvciBzd2l0Y2hpbmcgYmV0d2VlbiBub3JtYWwgYW5kIHZpc3VhbCBmaWx0ZXJcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHR0b2dnbGVDb250cm9sSWQ/OiBzdHJpbmc7XG5cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdGluaXRpYWxMYXlvdXQgPSBcImNvbXBhY3RcIjtcblxuXHQvKipcblx0ICogSGFuZGxlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgJ0NsZWFyJyBidXR0b24gb24gdGhlIEZpbHRlckJhci5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0c2hvd0NsZWFyQnV0dG9uID0gZmFsc2U7XG5cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHR9KVxuXHRfYXBwbHlJZFRvQ29udGVudCA9IGZhbHNlO1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCJcblx0fSlcblx0ZGlzYWJsZURyYWZ0RWRpdFN0YXRlRmlsdGVyID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIFRlbXBvcmFyeSB3b3JrYXJvdW5kIG9ubHlcblx0ICogcGF0aCB0byBjb250ZXh0UGF0aCB0byBiZSB1c2VkIGJ5IGNoaWxkIGZpbHRlcmZpZWxkc1xuXHQgKi9cblx0X2ludGVybmFsQ29udGV4dFBhdGghOiBDb250ZXh0O1xuXG5cdF9wYXJhbWV0ZXJzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0X2Fubm90YXRpb25QYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIEV2ZW50IGhhbmRsZXIgdG8gcmVhY3QgdG8gdGhlIHNlYXJjaCBldmVudCBvZiB0aGUgRmlsdGVyQmFyXG5cdCAqL1xuXHRAYmxvY2tFdmVudCgpXG5cdHNlYXJjaD86IHN0cmluZztcblxuXHQvKipcblx0ICogRXZlbnQgaGFuZGxlciB0byByZWFjdCB0byB0aGUgZmlsdGVyQ2hhbmdlIGV2ZW50IG9mIHRoZSBGaWx0ZXJCYXJcblx0ICovXG5cdEBibG9ja0V2ZW50KClcblx0ZmlsdGVyQ2hhbmdlZD86IHN0cmluZztcblxuXHQvKipcblx0ICogRXZlbnQgaGFuZGxlciB0byByZWFjdCB0byB0aGUgZmlsdGVyQ2hhbmdlZCBldmVudCBvZiB0aGUgRmlsdGVyQmFyLiBFeHBvc2VzIHBhcmFtZXRlcnMgZnJvbSB0aGUgTURDIGZpbHRlciBiYXJcblx0ICovXG5cdEBibG9ja0V2ZW50KClcblx0aW50ZXJuYWxGaWx0ZXJDaGFuZ2VkPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIHRvIHJlYWN0IHRvIHRoZSBzZWFyY2ggZXZlbnQgb2YgdGhlIEZpbHRlckJhci4gRXhwb3NlcyBwYXJhbWV0ZXJlcyBmcm9tIHRoZSBNREMgZmlsdGVyIGJhclxuXHQgKi9cblx0QGJsb2NrRXZlbnQoKVxuXHRpbnRlcm5hbFNlYXJjaD86IHN0cmluZztcblxuXHQvKipcblx0ICogRXZlbnQgaGFuZGxlciB0byByZWFjdCB0byB0aGUgYWZ0ZXJDbGVhciBldmVudCBvZiB0aGUgRmlsdGVyQmFyXG5cdCAqL1xuXHRAYmxvY2tFdmVudCgpXG5cdGFmdGVyQ2xlYXI/OiBzdHJpbmc7XG5cblx0QGJsb2NrQWdncmVnYXRpb24oe1xuXHRcdHR5cGU6IFwic2FwLmZlLm1hY3Jvcy5maWx0ZXJCYXIuRmlsdGVyRmllbGRcIixcblx0XHRpc1B1YmxpYzogdHJ1ZSxcblx0XHRoYXNWaXJ0dWFsTm9kZTogdHJ1ZSxcblx0XHRwcm9jZXNzQWdncmVnYXRpb25zOiBzZXRDdXN0b21GaWx0ZXJGaWVsZFByb3BlcnRpZXNcblx0fSlcblx0ZmlsdGVyRmllbGRzPzogRmlsdGVyRmllbGQ7XG5cblx0X2FwaUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0X2NvbnRlbnRJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdF92YWx1ZUhlbHBzOiBBcnJheTxzdHJpbmc+IHwgXCJcIiB8IHVuZGVmaW5lZDtcblxuXHRfZmlsdGVyRmllbGRzOiBBcnJheTxzdHJpbmc+IHwgXCJcIiB8IHVuZGVmaW5lZDtcblxuXHRzaG93RHJhZnRFZGl0U3RhdGUgPSBmYWxzZTtcblxuXHRkZXNpZ250aW1lPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBUaGlzIG1vZGUgbXVzdCBiZSB1c2VkIHdoZW4gaXQgaXMgY2VydGFpbiB0aGF0IGEgY29udHJvbCBtdXN0IG5vdCBwZXJzaXN0IGl0wrRzIHBlcnNvbmFsaXphdGlvbiBzdGF0ZSB1cG9uIGluaXRpYWxpemF0aW9uLlxuXHQgKiBAdWk1LWV4cGVyaW1lbnRhbC1zaW5jZSAxLjEzNi4wXG5cdCAqIEBzaW5jZSAxLjEzNi4wXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdGlnbm9yZVBlcnNvbmFsaXphdGlvbkNoYW5nZXMgPSBmYWxzZTtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wczogUHJvcGVydGllc09mPEZpbHRlckJhckJsb2NrPiwgY29uZmlndXJhdGlvbjogdW5rbm93biwgbVNldHRpbmdzOiBUZW1wbGF0ZVByb2Nlc3NvclNldHRpbmdzKSB7XG5cdFx0c3VwZXIocHJvcHMsIGNvbmZpZ3VyYXRpb24sIG1TZXR0aW5ncyk7XG5cdFx0aWYgKCF0aGlzLm1ldGFQYXRoKSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJDb250ZXh0IFBhdGggbm90IGF2YWlsYWJsZSBmb3IgRmlsdGVyQmFyIE1hY3JvLlwiKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3Qgc01ldGFQYXRoID0gdGhpcy5tZXRhUGF0aC5nZXRQYXRoKCk7XG5cdFx0bGV0IGVudGl0eVR5cGVQYXRoID0gXCJcIjtcblx0XHRjb25zdCBtZXRhUGF0aFBhcnRzID0gc01ldGFQYXRoPy5zcGxpdChcIi9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuU2VsZWN0aW9uRmllbGRzXCIpIHx8IFtdOyAvLyBbMF06IGVudGl0eVR5cGVQYXRoLCBbMV06IFNGIFF1YWxpZmllci5cblx0XHRpZiAobWV0YVBhdGhQYXJ0cy5sZW5ndGggPiAwKSB7XG5cdFx0XHRlbnRpdHlUeXBlUGF0aCA9IHRoaXMuZ2V0RW50aXR5VHlwZVBhdGgobWV0YVBhdGhQYXJ0cyk7XG5cdFx0fVxuXHRcdGNvbnN0IHNFbnRpdHlTZXRQYXRoID0gTW9kZWxIZWxwZXIuZ2V0RW50aXR5U2V0UGF0aChlbnRpdHlUeXBlUGF0aCk7XG5cdFx0Y29uc3Qgb01ldGFNb2RlbCA9IHRoaXMuY29udGV4dFBhdGg/LmdldE1vZGVsKCk7XG5cdFx0dGhpcy5faW50ZXJuYWxDb250ZXh0UGF0aCA9IG9NZXRhTW9kZWw/LmNyZWF0ZUJpbmRpbmdDb250ZXh0KGVudGl0eVR5cGVQYXRoKSBhcyBDb250ZXh0O1xuXHRcdGNvbnN0IGFubm90YXRpb25QYXRoOiBzdHJpbmcgPSBcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5TZWxlY3Rpb25GaWVsZHNcIiArICgobWV0YVBhdGhQYXJ0cy5sZW5ndGggJiYgbWV0YVBhdGhQYXJ0c1sxXSkgfHwgXCJcIik7XG5cdFx0Y29uc3QgcGFyZW50Q29udGV4dFBhdGggPSBtU2V0dGluZ3M/LmZ1bGxDb250ZXh0UGF0aCBhcyBzdHJpbmc7XG5cdFx0bGV0IHNPYmplY3RQYXRoID0gYW5ub3RhdGlvblBhdGg7XG5cdFx0aWYgKHBhcmVudENvbnRleHRQYXRoICE9PSBcIlwiICYmIHRoaXMuX2ludGVybmFsQ29udGV4dFBhdGguZ2V0UGF0aCgpPy5zdGFydHNXaXRoKHBhcmVudENvbnRleHRQYXRoKSkge1xuXHRcdFx0c09iamVjdFBhdGggPSBzTWV0YVBhdGgucmVwbGFjZShwYXJlbnRDb250ZXh0UGF0aCwgXCJcIik7XG5cdFx0fVxuXHRcdHRoaXMuX2Fubm90YXRpb25QYXRoID0gYW5ub3RhdGlvblBhdGg7XG5cdFx0Y29uc3Qgb0V4dHJhUGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCB7IGZpbHRlckZpZWxkcz86IEZpbHRlckZpZWxkIH0+ID0ge307XG5cdFx0aWYgKHRoaXMuZmlsdGVyRmllbGRzKSB7XG5cdFx0XHRvRXh0cmFQYXJhbXNbc09iamVjdFBhdGhdID0ge1xuXHRcdFx0XHRmaWx0ZXJGaWVsZHM6IHRoaXMuZmlsdGVyRmllbGRzXG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdGNvbnN0IG9WaXN1YWxpemF0aW9uT2JqZWN0UGF0aCA9IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyh0aGlzLl9pbnRlcm5hbENvbnRleHRQYXRoKTtcblx0XHRjb25zdCBvQ29udmVydGVyQ29udGV4dCA9IHRoaXMuZ2V0Q29udmVydGVyQ29udGV4dChvVmlzdWFsaXphdGlvbk9iamVjdFBhdGgsIHVuZGVmaW5lZCwgbVNldHRpbmdzLCBvRXh0cmFQYXJhbXMpO1xuXHRcdGlmICghdGhpcy5wcm9wZXJ0eUluZm8pIHtcblx0XHRcdHRoaXMucHJvcGVydHlJbmZvID0gZ2V0U2VsZWN0aW9uRmllbGRzKG9Db252ZXJ0ZXJDb250ZXh0LCBbXSwgYW5ub3RhdGlvblBhdGgpLnNQcm9wZXJ0eUluZm87XG5cdFx0fVxuXG5cdFx0Y29uc3QgdGFyZ2V0RW50aXR5U2V0ID0gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKHRoaXMubWV0YVBhdGgsIHRoaXMuY29udGV4dFBhdGgpLnRhcmdldEVudGl0eVNldCBhcyBFbnRpdHlTZXQ7XG5cdFx0aWYgKHRhcmdldEVudGl0eVNldD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uRHJhZnRSb290ICYmICF0aGlzLmRpc2FibGVEcmFmdEVkaXRTdGF0ZUZpbHRlcikge1xuXHRcdFx0dGhpcy5zaG93RHJhZnRFZGl0U3RhdGUgPSB0cnVlO1xuXHRcdFx0dGhpcy5jaGVja0lmRWRpdGluZ0ZpbHRlcklzRGlzYWJsZWQodGFyZ2V0RW50aXR5U2V0KTtcblx0XHRcdHRoaXMuY2hlY2tJZkNvbGxhYm9yYXRpb25EcmFmdFN1cHBvcnRlZChvTWV0YU1vZGVsIGFzIE9EYXRhTWV0YU1vZGVsKTtcblx0XHR9XG5cblx0XHQvL0ZpbHRlciBGaWVsZHMgYW5kIHZhbHVlcyB0byB0aGUgZmllbGQgYXJlIGZpbGxlZCBiYXNlZCBvbiB0aGUgc2VsZWN0aW9uRmllbGRzIGFuZCB0aGlzIHdvdWxkIGJlIGVtcHR5IGluIGNhc2Ugb2YgbWFjcm8gb3V0c2lkZSB0aGUgRkUgdGVtcGxhdGVcblx0XHRpZiAoIXRoaXMuc2VsZWN0aW9uRmllbGRzKSB7XG5cdFx0XHRjb25zdCBvU2VsZWN0aW9uRmllbGRzID0gZ2V0U2VsZWN0aW9uRmllbGRzKG9Db252ZXJ0ZXJDb250ZXh0LCBbXSwgYW5ub3RhdGlvblBhdGgpLnNlbGVjdGlvbkZpZWxkcztcblx0XHRcdHRoaXMuc2VsZWN0aW9uRmllbGRzID0gbmV3IFRlbXBsYXRlTW9kZWwob1NlbGVjdGlvbkZpZWxkcywgb01ldGFNb2RlbCBhcyBPRGF0YU1ldGFNb2RlbCkuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvXCIpO1xuXHRcdFx0Y29uc3Qgdmlld0RhdGEgPSBtU2V0dGluZ3M/Lm1vZGVscz8udmlld0RhdGE/LmdldERhdGEoKTtcblx0XHRcdGNvbnN0IG9FbnRpdHlUeXBlID0gb0NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLFxuXHRcdFx0XHRvU2VsZWN0aW9uVmFyaWFudCA9IGdldFNlbGVjdGlvblZhcmlhbnQob0VudGl0eVR5cGUsIG9Db252ZXJ0ZXJDb250ZXh0KSxcblx0XHRcdFx0b0VudGl0eVNldENvbnRleHQgPSAob01ldGFNb2RlbCBhcyBPRGF0YU1ldGFNb2RlbCkuZ2V0Q29udGV4dChzRW50aXR5U2V0UGF0aCkgYXMgT0RhdGFWNENvbnRleHQsXG5cdFx0XHRcdG9GaWx0ZXJDb25kaXRpb25zID0gZ2V0RmlsdGVyQ29uZGl0aW9ucyhcblx0XHRcdFx0XHRvRW50aXR5U2V0Q29udGV4dCBhcyB1bmtub3duIGFzIElDb250ZXh0LCAvLyBXcm9uZyBidXQgc29tZWhvdyB3b3JrcyA/LFxuXHRcdFx0XHRcdHsgc2VsZWN0aW9uVmFyaWFudDogb1NlbGVjdGlvblZhcmlhbnQgfSxcblx0XHRcdFx0XHRvRW50aXR5U2V0Q29udGV4dC5nZXRPYmplY3QoKSxcblx0XHRcdFx0XHR2aWV3RGF0YSxcblx0XHRcdFx0XHR0aGlzLnNob3dEcmFmdEVkaXRTdGF0ZVxuXHRcdFx0XHQpO1xuXHRcdFx0dGhpcy5maWx0ZXJDb25kaXRpb25zID0gb0ZpbHRlckNvbmRpdGlvbnM7XG5cdFx0fVxuXHRcdHRoaXMuX3Byb2Nlc3NQcm9wZXJ0eUluZm9zKHRoaXMucHJvcGVydHlJbmZvLCBvTWV0YU1vZGVsKTtcblxuXHRcdGlmICh0aGlzLl9hcHBseUlkVG9Db250ZW50KSB7XG5cdFx0XHR0aGlzLl9hcGlJZCA9IHRoaXMuaWQgKyBcIjo6RmlsdGVyQmFyXCI7XG5cdFx0XHR0aGlzLl9jb250ZW50SWQgPSB0aGlzLmlkO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9hcGlJZCA9IHRoaXMuaWQ7XG5cdFx0XHR0aGlzLl9jb250ZW50SWQgPSB0aGlzLmdldENvbnRlbnRJZCh0aGlzLmlkICsgXCJcIik7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuaGlkZUJhc2ljU2VhcmNoICE9PSB0cnVlKSB7XG5cdFx0XHRjb25zdCBvU2VhcmNoUmVzdHJpY3Rpb25Bbm5vdGF0aW9uID0gZ2V0U2VhcmNoUmVzdHJpY3Rpb25zKHNFbnRpdHlTZXRQYXRoLCBvTWV0YU1vZGVsIGFzIE9EYXRhTWV0YU1vZGVsKTtcblx0XHRcdHRoaXMuaGlkZUJhc2ljU2VhcmNoID0gQm9vbGVhbihvU2VhcmNoUmVzdHJpY3Rpb25Bbm5vdGF0aW9uICYmICFvU2VhcmNoUmVzdHJpY3Rpb25Bbm5vdGF0aW9uLlNlYXJjaGFibGUpO1xuXHRcdH1cblx0XHRqc3gucmVuZGVyQXNYTUwoKCkgPT4gdGhpcy5wcm9jZXNzU2VsZWN0aW9uRmllbGRzKCkpO1xuXG5cdFx0dGhpcy5kZXNpZ250aW1lID0gdGhpcy5nZXREZXNpZ250aW1lKCk7XG5cdH1cblxuXHRfcHJvY2Vzc1Byb3BlcnR5SW5mb3MocHJvcGVydHlJbmZvOiBzdHJpbmcsIG1vZGVsOiBPRGF0YU1ldGFNb2RlbCk6IHZvaWQge1xuXHRcdGNvbnN0IGFQYXJhbWV0ZXJGaWVsZHM6IHN0cmluZ1tdID0gW107XG5cdFx0aWYgKHByb3BlcnR5SW5mbykge1xuXHRcdFx0Y29uc3Qgc0ZldGNoZWRQcm9wZXJ0aWVzID0gcHJvcGVydHlJbmZvLnJlcGxhY2UoL1xcXFx7L2csIFwie1wiKS5yZXBsYWNlKC9cXFxcfS9nLCBcIn1cIik7XG5cdFx0XHRjb25zdCBhRmV0Y2hlZFByb3BlcnRpZXMgPSBKU09OLnBhcnNlKHNGZXRjaGVkUHJvcGVydGllcyk7XG5cdFx0XHRjb25zdCBlZGl0U3RhdGVMYWJlbCA9IHRoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJGSUxURVJCQVJfRURJVElOR19TVEFUVVNcIik7XG5cdFx0XHRhRmV0Y2hlZFByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbiAocHJvcEluZm86IFByb3BlcnR5SW5mbykge1xuXHRcdFx0XHRwcm9wSW5mby5rZXkgPSBwcm9wSW5mby5uYW1lO1xuXHRcdFx0XHRpZiAocHJvcEluZm8uaXNQYXJhbWV0ZXIpIHtcblx0XHRcdFx0XHRhUGFyYW1ldGVyRmllbGRzLnB1c2gocHJvcEluZm8ubmFtZSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHByb3BJbmZvLnBhdGggPT09IFwiJGVkaXRTdGF0ZVwiKSB7XG5cdFx0XHRcdFx0cHJvcEluZm8ubGFiZWwgPSBlZGl0U3RhdGVMYWJlbDtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAocHJvcEluZm8ua2V5Py5pbmNsdWRlcyhcIi9cIikpIHtcblx0XHRcdFx0XHQvL1RPIERPOiBOZWVkIHRvIHBsYWNlIHRoaXMgbG9naWMgaW4gY29tbW9uIHBsYWNlIHdoZW4gd2UgY292ZXIgZmlsdGVyUmV0cmljdGlvbnMgd2l0aCB0aGlzIEJMSSBGSU9SSVRFQ0hQMS0yNTA4MFxuXHRcdFx0XHRcdGNvbnN0IGFubm90YXRpb25QYXRoID0gKHByb3BJbmZvIGFzIENvbnZlcnRlZEZpbHRlckZpZWxkKS5hbm5vdGF0aW9uUGF0aDtcblx0XHRcdFx0XHRjb25zdCBwcm9wZXJ0eUxvY2F0aW9uUGF0aCA9IENvbW1vbkhlbHBlci5nZXRMb2NhdGlvbkZvclByb3BlcnR5UGF0aChtb2RlbCwgYW5ub3RhdGlvblBhdGgpO1xuXHRcdFx0XHRcdGNvbnN0IHByb3BlcnR5UGF0aCA9IGFubm90YXRpb25QYXRoLnJlcGxhY2UoYCR7cHJvcGVydHlMb2NhdGlvblBhdGh9L2AsIFwiXCIpO1xuXHRcdFx0XHRcdHByb3BJbmZvLnJlcXVpcmVkID0gQ29tbW9uVXRpbHMuZ2V0RmlsdGVyUmVzdHJpY3Rpb25zQnlQYXRoKHByb3BlcnR5TG9jYXRpb25QYXRoLCBtb2RlbCk/LlJlcXVpcmVkUHJvcGVydGllcz8uaW5jbHVkZXMoXG5cdFx0XHRcdFx0XHRwcm9wZXJ0eVBhdGhcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5wcm9wZXJ0eUluZm8gPSBKU09OLnN0cmluZ2lmeShhRmV0Y2hlZFByb3BlcnRpZXMpLnJlcGxhY2UoL1xcey9nLCBcIlxcXFx7XCIpLnJlcGxhY2UoL1xcfS9nLCBcIlxcXFx9XCIpO1xuXHRcdH1cblx0XHR0aGlzLl9wYXJhbWV0ZXJzID0gSlNPTi5zdHJpbmdpZnkoYVBhcmFtZXRlckZpZWxkcyk7XG5cdH1cblxuXHRjaGVja0lmRWRpdGluZ0ZpbHRlcklzRGlzYWJsZWQgPSAodGFyZ2V0RW50aXR5U2V0OiBFbnRpdHlTZXQpOiB2b2lkID0+IHtcblx0XHRpZiAoXG5cdFx0XHR0YXJnZXRFbnRpdHlTZXQuYW5ub3RhdGlvbnM/LkNhcGFiaWxpdGllcz8uTmF2aWdhdGlvblJlc3RyaWN0aW9ucz8uUmVzdHJpY3RlZFByb3BlcnRpZXM/LnNvbWUoXG5cdFx0XHRcdChyKSA9PiByLk5hdmlnYXRpb25Qcm9wZXJ0eT8udmFsdWUgPT09IFwiRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGFcIiAmJiByLkZpbHRlclJlc3RyaWN0aW9ucz8uRmlsdGVyYWJsZSA9PT0gZmFsc2Vcblx0XHRcdCkgPT09IHRydWVcblx0XHQpIHtcblx0XHRcdHRoaXMuc2hvd0RyYWZ0RWRpdFN0YXRlID0gZmFsc2U7XG5cdFx0fVxuXHR9O1xuXG5cdGNoZWNrSWZDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQgPSAob01ldGFNb2RlbDogT0RhdGFNZXRhTW9kZWwgfCB1bmRlZmluZWQpOiB2b2lkID0+IHtcblx0XHRpZiAoTW9kZWxIZWxwZXIuaXNDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQob01ldGFNb2RlbCkpIHtcblx0XHRcdHRoaXMuaXNEcmFmdENvbGxhYm9yYXRpdmUgPSB0cnVlO1xuXHRcdH1cblx0fTtcblxuXHRnZXRFbnRpdHlUeXBlUGF0aCA9IChtZXRhUGF0aFBhcnRzOiBzdHJpbmdbXSk6IHN0cmluZyA9PiB7XG5cdFx0cmV0dXJuIG1ldGFQYXRoUGFydHNbMF0uZW5kc1dpdGgoXCIvXCIpID8gbWV0YVBhdGhQYXJ0c1swXSA6IG1ldGFQYXRoUGFydHNbMF0gKyBcIi9cIjtcblx0fTtcblxuXHRnZXRTZWFyY2ggPSAoKTogc3RyaW5nID0+IHtcblx0XHRpZiAoIXRoaXMuaGlkZUJhc2ljU2VhcmNoKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQ8TURDRmlsdGVyRmllbGRcblx0XHRcdFx0XHRpZD17Z2VuZXJhdGUoW3RoaXMuaWQsIFwiQmFzaWNTZWFyY2hGaWVsZFwiXSl9XG5cdFx0XHRcdFx0bGFiZWw9e1wiXCJ9XG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCJ7c2FwLmZlLmkxOG4+TV9GSUxURVJCQVJfU0VBUkNIfVwiXG5cdFx0XHRcdFx0cHJvcGVydHlLZXk9XCIkc2VhcmNoXCJcblx0XHRcdFx0XHRjb25kaXRpb25zPVwieyRmaWx0ZXJzPi9jb25kaXRpb25zLyRzZWFyY2h9XCJcblx0XHRcdFx0XHRkYXRhVHlwZT1cInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlN0cmluZ1wiXG5cdFx0XHRcdFx0bWF4Q29uZGl0aW9ucz1cIjFcIlxuXHRcdFx0XHRcdGRhdGFUeXBlQ29uc3RyYWludHM9XCJ7J21heExlbmd0aCc6MTAwMH1cIlxuXHRcdFx0XHQvPlxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH07XG5cblx0cHJvY2Vzc1NlbGVjdGlvbkZpZWxkcyA9ICgpOiB2b2lkID0+IHtcblx0XHRsZXQgZHJhZnRFZGl0U3RhdGUgPSBcIlwiO1xuXHRcdGlmICh0aGlzLnNob3dEcmFmdEVkaXRTdGF0ZSkge1xuXHRcdFx0Y29uc3QgZHJhZnRTdGF0ZXMgPSBEcmFmdEVkaXRTdGF0ZS5nZXRFZGl0U3RhdGVzKHRoaXMuaXNEcmFmdENvbGxhYm9yYXRpdmUpO1xuXHRcdFx0Y29uc3QgbGFiZWwgPSB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiRklMVEVSQkFSX0VESVRJTkdfU1RBVFVTXCIpO1xuXHRcdFx0ZHJhZnRFZGl0U3RhdGUgPSAoXG5cdFx0XHRcdDxNRENGaWx0ZXJGaWVsZFxuXHRcdFx0XHRcdGxhYmVsPXtsYWJlbH1cblx0XHRcdFx0XHRjb25kaXRpb25zPVwieyRmaWx0ZXJzPi9jb25kaXRpb25zLyRlZGl0U3RhdGV9XCJcblx0XHRcdFx0XHRtYXhDb25kaXRpb25zPVwiMVwiXG5cdFx0XHRcdFx0aWQ9e2dlbmVyYXRlKFt0aGlzLmlkLCBcIkZpbHRlckZpZWxkXCIsIFwiRHJhZnRFZGl0aW5nU3RhdHVzXCJdKX1cblx0XHRcdFx0XHRvcGVyYXRvcnM9XCJFUVwiXG5cdFx0XHRcdFx0ZGF0YVR5cGU9XCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5TdHJpbmdcIlxuXHRcdFx0XHRcdHByb3BlcnR5S2V5PVwiJGVkaXRTdGF0ZVwiXG5cdFx0XHRcdFx0ZGlzcGxheT1cIkRlc2NyaXB0aW9uXCJcblx0XHRcdFx0PlxuXHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRjb250ZW50RWRpdDogKFxuXHRcdFx0XHRcdFx0XHQ8U2VsZWN0XG5cdFx0XHRcdFx0XHRcdFx0aWQ9e2dlbmVyYXRlKFt0aGlzLmlkLCBcIkZpbHRlckZpZWxkXCIsIFwiRHJhZnRFZGl0aW5nU3RhdHVzU2VsZWN0XCJdKX1cblx0XHRcdFx0XHRcdFx0XHR3aWR0aD1cIjEwMCVcIlxuXHRcdFx0XHRcdFx0XHRcdGZvcmNlU2VsZWN0aW9uPVwidHJ1ZVwiXG5cdFx0XHRcdFx0XHRcdFx0c2VsZWN0ZWRLZXk9XCJ7cGF0aDogJyRmaWVsZD4vY29uZGl0aW9ucycsIHR5cGU6ICdzYXAudWkubWRjLmZpZWxkLkNvbmRpdGlvbnNUeXBlJ31cIlxuXHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0e3sgaXRlbXM6IGRyYWZ0U3RhdGVzLm1hcCgoc3RhdGUpID0+IDxMaXN0SXRlbSBrZXk9e3N0YXRlLmlkfSB0ZXh0PXtzdGF0ZS5kaXNwbGF5fSAvPikgfX1cblx0XHRcdFx0XHRcdFx0PC9TZWxlY3Q+XG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0fX1cblx0XHRcdFx0PC9NRENGaWx0ZXJGaWVsZD5cblx0XHRcdCk7XG5cdFx0fVxuXHRcdHRoaXMuX3ZhbHVlSGVscHMgPSBbXTtcblx0XHR0aGlzLl9maWx0ZXJGaWVsZHMgPSBbXTtcblx0XHR0aGlzLl9maWx0ZXJGaWVsZHM/LnB1c2goZHJhZnRFZGl0U3RhdGUpO1xuXHRcdGlmICghQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGlvbkZpZWxkcykpIHtcblx0XHRcdHRoaXMuc2VsZWN0aW9uRmllbGRzID0gdGhpcy5zZWxlY3Rpb25GaWVsZHMhLmdldE9iamVjdCgpIGFzIENvbnZlcnRlZEZpbHRlckZpZWxkW107XG5cdFx0fVxuXHRcdHRoaXMuc2VsZWN0aW9uRmllbGRzPy5mb3JFYWNoKChzZWxlY3Rpb25GaWVsZDogQ29udmVydGVkRmlsdGVyRmllbGQpID0+IHtcblx0XHRcdGlmIChzZWxlY3Rpb25GaWVsZC5hdmFpbGFiaWxpdHkgPT09IFwiRGVmYXVsdFwiKSB7XG5cdFx0XHRcdHRoaXMuc2V0RmlsdGVyRmllbGRzQW5kVmFsdWVIZWxwcyhzZWxlY3Rpb25GaWVsZCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0dGhpcy5fZmlsdGVyRmllbGRzID0gdGhpcy5fZmlsdGVyRmllbGRzPy5sZW5ndGggPiAwID8gdGhpcy5fZmlsdGVyRmllbGRzIDogXCJcIjtcblx0XHR0aGlzLl92YWx1ZUhlbHBzID0gdGhpcy5fdmFsdWVIZWxwcz8ubGVuZ3RoID4gMCA/IHRoaXMuX3ZhbHVlSGVscHMgOiBcIlwiO1xuXHR9O1xuXG5cdGdldFBlcnNpc3RlbmNlUHJvdmlkZXIoZmlsdGVyQmFySWQ6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKHRoaXMuaWdub3JlUGVyc29uYWxpemF0aW9uQ2hhbmdlcykge1xuXHRcdFx0cmV0dXJuIDxQZXJzaXN0ZW5jZVByb3ZpZGVyIGlkPXtnZW5lcmF0ZShbZmlsdGVyQmFySWQsIFwiUGVyc2lzdGVuY2VQcm92aWRlclwiXSl9IGZvcj17ZmlsdGVyQmFySWR9IG1vZGU9e1wiVHJhbnNpZW50XCJ9IC8+O1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0c2V0RmlsdGVyRmllbGRzQW5kVmFsdWVIZWxwcyA9IChzZWxlY3Rpb25GaWVsZDogQ29udmVydGVkRmlsdGVyRmllbGQpOiB2b2lkID0+IHtcblx0XHRpZiAoc2VsZWN0aW9uRmllbGQudGVtcGxhdGUgPT09IHVuZGVmaW5lZCAmJiBzZWxlY3Rpb25GaWVsZC50eXBlICE9PSBcIlNsb3RcIikge1xuXHRcdFx0dGhpcy5wdXNoRmlsdGVyRmllbGRzQW5kVmFsdWVIZWxwcyhzZWxlY3Rpb25GaWVsZCk7XG5cdFx0fSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRoaXMuX2ZpbHRlckZpZWxkcykpIHtcblx0XHRcdGNvbnN0IHByb3BlcnR5ID0gc2VsZWN0aW9uRmllbGQuYW5ub3RhdGlvblBhdGg7XG5cdFx0XHRjb25zdCBwcm9wZXJ0eUNvbnRleHQgPSB0aGlzLm1ldGFQYXRoIS5nZXRNb2RlbCgpLmNyZWF0ZUJpbmRpbmdDb250ZXh0KHByb3BlcnR5KTtcblx0XHRcdGNvbnN0IHByb3BlcnR5T2JqZWN0ID0gcHJvcGVydHlDb250ZXh0Py5nZXRPYmplY3QoKTtcblx0XHRcdGxldCBmaWx0ZXJDb250ZW50O1xuXHRcdFx0aWYgKHNlbGVjdGlvbkZpZWxkLnR5cGUgPT09IFwiU2xvdFwiKSB7XG5cdFx0XHRcdGZpbHRlckNvbnRlbnQgPSAoXG5cdFx0XHRcdFx0PFNsb3RDb2x1bW4gdGVtcGxhdGVJZD17c2VsZWN0aW9uRmllbGQudGVtcGxhdGV9PlxuXHRcdFx0XHRcdFx0PHNsb3QgbmFtZT17KHNlbGVjdGlvbkZpZWxkIGFzIE1hbmlmZXN0RmlsdGVyRmllbGQpLnNsb3ROYW1lIX0gLz5cblx0XHRcdFx0XHQ8L1Nsb3RDb2x1bW4+XG5cdFx0XHRcdCk7XG5cdFx0XHR9IGVsc2UgaWYgKHNlbGVjdGlvbkZpZWxkLnRlbXBsYXRlKSB7XG5cdFx0XHRcdGZpbHRlckNvbnRlbnQgPSAoXG5cdFx0XHRcdFx0PEN1c3RvbUZyYWdtZW50QmxvY2tcblx0XHRcdFx0XHRcdGZyYWdtZW50TmFtZT17c2VsZWN0aW9uRmllbGQudGVtcGxhdGV9XG5cdFx0XHRcdFx0XHRpZD17Z2VuZXJhdGUoW3RoaXMuaWQsIFwiQ3VzdG9tRmlsdGVyRmllbGRcIiwgc2VsZWN0aW9uRmllbGQua2V5XSl9XG5cdFx0XHRcdFx0XHRjb250ZXh0UGF0aD17XCJ7Y29udGV4dFBhdGg+fVwiIGFzIHVua25vd24gYXMgQ29udGV4dH1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0bGV0IG1heENvbmRpdGlvblZhbHVlID0gLTE7XG5cdFx0XHRpZiAocHJvcGVydHlDb250ZXh0KSB7XG5cdFx0XHRcdG1heENvbmRpdGlvblZhbHVlID0gbWF4Q29uZGl0aW9ucyhzZWxlY3Rpb25GaWVsZC5hbm5vdGF0aW9uUGF0aCwgeyBjb250ZXh0OiBwcm9wZXJ0eUNvbnRleHQgfSkgPz8gLTE7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9maWx0ZXJGaWVsZHM/LnB1c2goXG5cdFx0XHRcdDxNRENGaWx0ZXJGaWVsZFxuXHRcdFx0XHRcdGlkPXtnZW5lcmF0ZShbdGhpcy5pZCwgXCJDdXN0b21GaWx0ZXJGaWVsZFwiLCBzZWxlY3Rpb25GaWVsZC5rZXldKX1cblx0XHRcdFx0XHRkZWxlZ2F0ZT17eyBuYW1lOiBcInNhcC9mZS9tYWNyb3MvZmllbGQvRmllbGRCYXNlRGVsZWdhdGVcIiB9fVxuXHRcdFx0XHRcdHByb3BlcnR5S2V5PXtzZWxlY3Rpb25GaWVsZC5jb25kaXRpb25QYXRofVxuXHRcdFx0XHRcdGxhYmVsPXtzZWxlY3Rpb25GaWVsZC5sYWJlbH1cblx0XHRcdFx0XHRkYXRhVHlwZT17c2VsZWN0aW9uRmllbGQuZGF0YVR5cGV9XG5cdFx0XHRcdFx0bWF4Q29uZGl0aW9ucz17bWF4Q29uZGl0aW9uVmFsdWV9XG5cdFx0XHRcdFx0Y29uZGl0aW9ucz17YHskZmlsdGVycz4vY29uZGl0aW9ucy8ke3NlbGVjdGlvbkZpZWxkLmNvbmRpdGlvblBhdGh9fWB9XG5cdFx0XHRcdFx0b3BlcmF0b3JzPXtGaWVsZEhlbHBlci5vcGVyYXRvcnMoXG5cdFx0XHRcdFx0XHRwcm9wZXJ0eUNvbnRleHQsXG5cdFx0XHRcdFx0XHRwcm9wZXJ0eU9iamVjdCxcblx0XHRcdFx0XHRcdHRoaXMudXNlU2VtYW50aWNEYXRlUmFuZ2UsXG5cdFx0XHRcdFx0XHRzZWxlY3Rpb25GaWVsZC5zZXR0aW5ncyBhcyB1bmtub3duIGFzIHN0cmluZyxcblx0XHRcdFx0XHRcdHRoaXMuY29udGV4dFBhdGghLmdldFBhdGgoKVxuXHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0ZGF0YVR5cGVDb25zdHJhaW50cz17KHNlbGVjdGlvbkZpZWxkIGFzIHVua25vd24gYXMgeyBjb25zdHJhaW50czogdW5rbm93biB9KS5jb25zdHJhaW50c31cblx0XHRcdFx0XHRkYXRhVHlwZUZvcm1hdE9wdGlvbnM9eyhzZWxlY3Rpb25GaWVsZCBhcyB1bmtub3duIGFzIHsgZm9ybWF0T3B0aW9uczogdW5rbm93biB9KS5mb3JtYXRPcHRpb25zfVxuXHRcdFx0XHRcdHZhbHVlSGVscD17XCJ1bmRlZmluZWRcIn1cblx0XHRcdFx0XHRyZXF1aXJlZD17c2VsZWN0aW9uRmllbGQucmVxdWlyZWR9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0XHQ8Q3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlclxuXHRcdFx0XHRcdFx0XHRcdGNvcmU6cmVxdWlyZT1cIntoYW5kbGVyOiAnc2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHMnfVwiXG5cdFx0XHRcdFx0XHRcdFx0aWQ9e2dlbmVyYXRlKFt0aGlzLmlkLCBcIkZpbHRlckZpZWxkQ29udGVudFdyYXBwZXJcIiwgc2VsZWN0aW9uRmllbGQua2V5XSl9XG5cdFx0XHRcdFx0XHRcdFx0YmluZGluZz17YHtmaWx0ZXJWYWx1ZXM+LyR7RmlsdGVyVXRpbHMuY29uZGl0aW9uVG9Nb2RlbFBhdGgoc2VsZWN0aW9uRmllbGQuY29uZGl0aW9uUGF0aCl9fWB9XG5cdFx0XHRcdFx0XHRcdFx0Y29uZGl0aW9ucz17XCJ7cGF0aDogJyRmaWVsZD4vY29uZGl0aW9ucyd9XCIgYXMgdW5rbm93biBhcyBDb25kaXRpb25PYmplY3RbXX1cblx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdHt7IGNvbnRlbnQ6IGZpbHRlckNvbnRlbnQgfX1cblx0XHRcdFx0XHRcdFx0PC9DdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyPlxuXHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdGN1c3RvbURhdGE6IFtcblx0XHRcdFx0XHRcdFx0PEN1c3RvbURhdGEga2V5PXtcImlzU2xvdFwifSB2YWx1ZT17c2VsZWN0aW9uRmllbGQudHlwZSA9PT0gXCJTbG90XCJ9IC8+LFxuXHRcdFx0XHRcdFx0XHQ8RmllbGRIZWxwQ3VzdG9tRGF0YVxuXHRcdFx0XHRcdFx0XHRcdGtleT17XCJzYXAtdWktRG9jdW1lbnRhdGlvblJlZlwifVxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlPXtge3BhcnRzOiBbe3ZhbHVlOiAnYXNBcnJheSd9LCB7dmFsdWU6ICcke3NlbGVjdGlvbkZpZWxkLmRvY3VtZW50UmVmVGV4dH0nfV0sIGZvcm1hdHRlcjogJy5fZm9ybWF0dGVycy5TdGFuZGFyZEZvcm1hdHRlcid9YH1cblx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHR9fVxuXHRcdFx0XHQ8L01EQ0ZpbHRlckZpZWxkPlxuXHRcdFx0KTtcblx0XHR9XG5cdH07XG5cblx0X2dldENvbnRleHRQYXRoRm9yRmlsdGVyRmllbGQoc2VsZWN0aW9uRmllbGQ6IENvbnZlcnRlZEZpbHRlckZpZWxkLCBmaWx0ZXJCYXJDb250ZXh0UGF0aDogQ29udGV4dCk6IHN0cmluZyB7XG5cdFx0bGV0IGNvbnRleHRQYXRoOiBzdHJpbmcgPSBmaWx0ZXJCYXJDb250ZXh0UGF0aD8uZ2V0UGF0aCgpO1xuXHRcdGlmIChzZWxlY3Rpb25GaWVsZC5pc1BhcmFtZXRlcikge1xuXHRcdFx0Ly8gRXhhbXBsZTpcblx0XHRcdC8vIEZpbHRlckJhckNvbnRleHRQYXRoOiAvQ3VzdG9tZXIvU2V0XG5cdFx0XHQvLyBQYXJhbWV0ZXJQcm9wZXJ0eVBhdGg6IC9DdXN0b21lci9QX0NDXG5cdFx0XHQvLyBDb250ZXh0UGF0aEZvckZpbHRlckZpZWxkOiAvQ3VzdG9tZXJcblx0XHRcdGNvbnN0IGFubm9QYXRoID0gc2VsZWN0aW9uRmllbGQuYW5ub3RhdGlvblBhdGg7XG5cdFx0XHRjb250ZXh0UGF0aCA9IGFubm9QYXRoLnN1YnN0cmluZygwLCBhbm5vUGF0aC5sYXN0SW5kZXhPZihcIi9cIikgKyAxKTtcblx0XHR9XG5cdFx0cmV0dXJuIGNvbnRleHRQYXRoO1xuXHR9XG5cblx0cHVzaEZpbHRlckZpZWxkc0FuZFZhbHVlSGVscHMgPSAoc2VsZWN0aW9uRmllbGQ6IENvbnZlcnRlZEZpbHRlckZpZWxkKTogdm9pZCA9PiB7XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodGhpcy5fZmlsdGVyRmllbGRzKSkge1xuXHRcdFx0Y29uc3QgdmYgPSB7IC4uLnNlbGVjdGlvbkZpZWxkLnZpc3VhbEZpbHRlciwgLi4ueyBpbml0aWFsQ2hhcnRCaW5kaW5nRW5hYmxlZDogIXRoaXMuc3VzcGVuZFNlbGVjdGlvbiB9IH07XG5cdFx0XHR0aGlzLl9maWx0ZXJGaWVsZHM/LnB1c2goXG5cdFx0XHRcdDxJbnRlcm5hbEZpbHRlckZpZWxkXG5cdFx0XHRcdFx0aWRQcmVmaXg9e2dlbmVyYXRlKFt0aGlzLmlkLCBcIkZpbHRlckZpZWxkXCIsIENvbW1vbkhlbHBlci5nZXROYXZpZ2F0aW9uUGF0aChzZWxlY3Rpb25GaWVsZC5hbm5vdGF0aW9uUGF0aCldKX1cblx0XHRcdFx0XHR2aElkUHJlZml4PXtnZW5lcmF0ZShbdGhpcy5pZCwgXCJGaWx0ZXJGaWVsZFZhbHVlSGVscFwiXSl9XG5cdFx0XHRcdFx0cHJvcGVydHk9e3NlbGVjdGlvbkZpZWxkLmFubm90YXRpb25QYXRoIGFzIHVua25vd24gYXMgQ29udGV4dH1cblx0XHRcdFx0XHRjb250ZXh0UGF0aD17dGhpcy5fZ2V0Q29udGV4dFBhdGhGb3JGaWx0ZXJGaWVsZChzZWxlY3Rpb25GaWVsZCwgdGhpcy5faW50ZXJuYWxDb250ZXh0UGF0aCkgYXMgdW5rbm93biBhcyBDb250ZXh0fVxuXHRcdFx0XHRcdHVzZVNlbWFudGljRGF0ZVJhbmdlPXt0aGlzLnVzZVNlbWFudGljRGF0ZVJhbmdlfVxuXHRcdFx0XHRcdGxhYmVsPXtzZWxlY3Rpb25GaWVsZC5sYWJlbH1cblx0XHRcdFx0XHRzZXR0aW5ncz17Q29tbW9uSGVscGVyLnN0cmluZ2lmeUN1c3RvbURhdGEoc2VsZWN0aW9uRmllbGQuc2V0dGluZ3MpfVxuXHRcdFx0XHRcdHZpc3VhbEZpbHRlcj17c2VsZWN0aW9uRmllbGQudmlzdWFsRmlsdGVyICE9PSB1bmRlZmluZWQgPyAoc3RvcmVPYmplY3RWYWx1ZSh2ZikgYXMgdW5rbm93biBhcyBDb250ZXh0KSA6IHVuZGVmaW5lZH1cblx0XHRcdFx0XHRlZGl0TW9kZT17YHtpbnRlcm5hbD4vJHt0aGlzLmlkfS9maWx0ZXJGaWVsZHMvJHtzZWxlY3Rpb25GaWVsZC5jb25kaXRpb25QYXRofS9lZGl0TW9kZX1gfVxuXHRcdFx0XHQvPlxuXHRcdFx0KTtcblx0XHR9XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodGhpcy5fdmFsdWVIZWxwcykpIHtcblx0XHRcdHRoaXMuX3ZhbHVlSGVscHM/LnB1c2goXG5cdFx0XHRcdDxWYWx1ZUhlbHBcblx0XHRcdFx0XHRpZFByZWZpeD17Z2VuZXJhdGUoW3RoaXMuaWQsIFwiRmlsdGVyRmllbGRWYWx1ZUhlbHBcIl0pfVxuXHRcdFx0XHRcdGNvbmRpdGlvbk1vZGVsPVwiJGZpbHRlcnNcIlxuXHRcdFx0XHRcdG1ldGFQYXRoPXtzZWxlY3Rpb25GaWVsZC5hbm5vdGF0aW9uUGF0aH1cblx0XHRcdFx0XHRjb250ZXh0UGF0aD17dGhpcy5fZ2V0Q29udGV4dFBhdGhGb3JGaWx0ZXJGaWVsZChzZWxlY3Rpb25GaWVsZCwgdGhpcy5faW50ZXJuYWxDb250ZXh0UGF0aCl9XG5cdFx0XHRcdFx0ZmlsdGVyRmllbGRWYWx1ZUhlbHA9e3RydWV9XG5cdFx0XHRcdFx0dXNlU2VtYW50aWNEYXRlUmFuZ2U9e3RoaXMudXNlU2VtYW50aWNEYXRlUmFuZ2V9XG5cdFx0XHRcdC8+XG5cdFx0XHQpO1xuXHRcdH1cblx0fTtcblxuXHQvKipcblx0ICogRGV0ZXJtaW5lcyB0aGUgZGVzaWduIHRpbWUgZm9yIHRoZSBNREMgRmlsdGVyQmFyLlxuXHQgKiBAcmV0dXJucyBUaGUgdmFsdWUgdG8gYmUgYXNzaWduZWQgdG8gZHQ6ZGVzaWdudGltZVxuXHQgKi9cblx0Z2V0RGVzaWdudGltZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL2Rlc2lnbnRpbWUvRmlsdGVyQmFyLmRlc2lnbnRpbWVcIjtcblx0fVxuXG5cdGdldFRlbXBsYXRlKCk6IHN0cmluZyB7XG5cdFx0Y29uc3QgaW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuX2ludGVybmFsQ29udGV4dFBhdGg/LmdldFBhdGgoKTtcblx0XHRsZXQgZmlsdGVyRGVsZWdhdGUgPSBcIlwiO1xuXHRcdGlmICh0aGlzLmZpbHRlckJhckRlbGVnYXRlKSB7XG5cdFx0XHRmaWx0ZXJEZWxlZ2F0ZSA9IHRoaXMuZmlsdGVyQmFyRGVsZWdhdGU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGZpbHRlckRlbGVnYXRlID0gXCJ7bmFtZTonc2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvRmlsdGVyQmFyRGVsZWdhdGUnLCBwYXlsb2FkOiB7ZW50aXR5VHlwZVBhdGg6ICdcIiArIGludGVybmFsQ29udGV4dFBhdGggKyBcIid9fVwiO1xuXHRcdH1cblx0XHQvLyBhZnRlciByZW1vdmluZyB0aGUgdW53YW50ZWQgcHJvcGVydGllcyBQcm9wZXJ0eUluZm8gaXMgYWRkZWQgdG8gdGhlIGNvbnRyb2wsIGFuZCB3ZSBhbHNvIHNhdmUgdGhlIGZ1bGwgdmVyc2lvbiBhcyBjdXN0b20gZGF0YSBmb3IgRkUgaW50ZXJuYWwgdXNlXG5cdFx0Y29uc3QgX3Byb3BlcnR5SW5mb0NvbnRyb2wgPSBGaWx0ZXJVdGlscy5mb3JtYXRQcm9wZXJ0eUluZm8odGhpcy5wcm9wZXJ0eUluZm8gYXMgc3RyaW5nKTtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PEZpbHRlckJhckFQSVxuXHRcdFx0XHRpZD17dGhpcy5fYXBpSWR9XG5cdFx0XHRcdG1ldGFQYXRoPXt0aGlzLm1ldGFQYXRoIS5nZXRQYXRoKCl9XG5cdFx0XHRcdHNlYXJjaD17dGhpcy5zZWFyY2h9XG5cdFx0XHRcdGZpbHRlckNoYW5nZWQ9e3RoaXMuZmlsdGVyQ2hhbmdlZH1cblx0XHRcdFx0YWZ0ZXJDbGVhcj17dGhpcy5hZnRlckNsZWFyfVxuXHRcdFx0XHRpbnRlcm5hbFNlYXJjaD17dGhpcy5pbnRlcm5hbFNlYXJjaH1cblx0XHRcdFx0aW50ZXJuYWxGaWx0ZXJDaGFuZ2VkPXt0aGlzLmludGVybmFsRmlsdGVyQ2hhbmdlZH1cblx0XHRcdD5cblx0XHRcdFx0e3tcblx0XHRcdFx0XHRjb250ZW50OiAoXG5cdFx0XHRcdFx0XHQ8RkVGaWx0ZXJCYXJcblx0XHRcdFx0XHRcdFx0Y29yZTpyZXF1aXJlPVwie0FQSTogJ3NhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL0ZpbHRlckJhckFQSSd9XCJcblx0XHRcdFx0XHRcdFx0aWQ9e3RoaXMuX2NvbnRlbnRJZH1cblx0XHRcdFx0XHRcdFx0bGl2ZU1vZGU9e3RoaXMubGl2ZU1vZGV9XG5cdFx0XHRcdFx0XHRcdGRlbGVnYXRlPXtmaWx0ZXJEZWxlZ2F0ZX1cblx0XHRcdFx0XHRcdFx0dmFyaWFudEJhY2tyZWZlcmVuY2U9e3RoaXMubGl2ZU1vZGUgPyB1bmRlZmluZWQgOiB0aGlzLnZhcmlhbnRCYWNrcmVmZXJlbmNlfVxuXHRcdFx0XHRcdFx0XHRzaG93QWRhcHRGaWx0ZXJzQnV0dG9uPXt0aGlzLnNob3dBZGFwdEZpbHRlcnNCdXR0b259XG5cdFx0XHRcdFx0XHRcdHNob3dDbGVhckJ1dHRvbj17dGhpcy5zaG93Q2xlYXJCdXR0b259XG5cdFx0XHRcdFx0XHRcdHAxM25Nb2RlPXt0aGlzLnAxM25Nb2RlfVxuXHRcdFx0XHRcdFx0XHRzZWFyY2g9e1wiQVBJLmhhbmRsZVNlYXJjaCgkZXZlbnQpXCIgYXMgdW5rbm93biBhcyAoZTogRmlsdGVyQmFyQmFzZSRTZWFyY2hFdmVudCkgPT4gdm9pZH1cblx0XHRcdFx0XHRcdFx0ZmlsdGVyc0NoYW5nZWQ9e1wiQVBJLmhhbmRsZUZpbHRlckNoYW5nZWQoJGV2ZW50KVwiIGFzIHVua25vd24gYXMgKGU6IEZpbHRlckJhckJhc2UkRmlsdGVyc0NoYW5nZWRFdmVudCkgPT4gdm9pZH1cblx0XHRcdFx0XHRcdFx0ZmlsdGVyQ29uZGl0aW9ucz17dGhpcy5maWx0ZXJDb25kaXRpb25zfVxuXHRcdFx0XHRcdFx0XHRzdXNwZW5kU2VsZWN0aW9uPXt0aGlzLnN1c3BlbmRTZWxlY3Rpb259XG5cdFx0XHRcdFx0XHRcdHNob3dNZXNzYWdlcz17dGhpcy5zaG93TWVzc2FnZXN9XG5cdFx0XHRcdFx0XHRcdHRvZ2dsZUNvbnRyb2w9e3RoaXMudG9nZ2xlQ29udHJvbElkfVxuXHRcdFx0XHRcdFx0XHRpbml0aWFsTGF5b3V0PXt0aGlzLmluaXRpYWxMYXlvdXR9XG5cdFx0XHRcdFx0XHRcdHZpc2libGU9e3RoaXMudmlzaWJsZX1cblx0XHRcdFx0XHRcdFx0ZGlzYWJsZURyYWZ0RWRpdFN0YXRlRmlsdGVyPXt0aGlzLmRpc2FibGVEcmFmdEVkaXRTdGF0ZUZpbHRlcn1cblx0XHRcdFx0XHRcdFx0ZHQ6ZGVzaWdudGltZT17dGhpcy5kZXNpZ250aW1lfVxuXHRcdFx0XHRcdFx0XHRjdXN0b21EYXRhOmVudGl0eVR5cGU9e2ludGVybmFsQ29udGV4dFBhdGh9XG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRcdFx0Y3VzdG9tRGF0YTogW1xuXHRcdFx0XHRcdFx0XHRcdFx0PEN1c3RvbURhdGEga2V5PXtcImxvY2FsSWRcIn0gdmFsdWU9e3RoaXMuaWR9IC8+LFxuXHRcdFx0XHRcdFx0XHRcdFx0PEN1c3RvbURhdGEga2V5PXtcImhpZGVCYXNpY1NlYXJjaFwifSB2YWx1ZT17dGhpcy5oaWRlQmFzaWNTZWFyY2h9IC8+LFxuXHRcdFx0XHRcdFx0XHRcdFx0PEN1c3RvbURhdGEga2V5PXtcInNob3dEcmFmdEVkaXRTdGF0ZVwifSB2YWx1ZT17dGhpcy5zaG93RHJhZnRFZGl0U3RhdGV9IC8+LFxuXHRcdFx0XHRcdFx0XHRcdFx0PEN1c3RvbURhdGEga2V5PXtcInVzZVNlbWFudGljRGF0ZVJhbmdlXCJ9IHZhbHVlPXt0aGlzLnVzZVNlbWFudGljRGF0ZVJhbmdlfSAvPixcblx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT17XCJwYXJhbWV0ZXJzXCJ9IHZhbHVlPXt0aGlzLl9wYXJhbWV0ZXJzfSAvPixcblx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT17XCJmZUZpbHRlckluZm9cIn0gdmFsdWU9e3RoaXMucHJvcGVydHlJbmZvfSAvPixcblx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT17XCJhbm5vdGF0aW9uUGF0aFwifSB2YWx1ZT17dGhpcy5fYW5ub3RhdGlvblBhdGh9IC8+XG5cdFx0XHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdFx0XHRkZXBlbmRlbnRzOiBbdGhpcy5fdmFsdWVIZWxwcywgdGhpcy5nZXRQZXJzaXN0ZW5jZVByb3ZpZGVyKHRoaXMuX2NvbnRlbnRJZCBhcyBzdHJpbmcpXSxcblx0XHRcdFx0XHRcdFx0XHRiYXNpY1NlYXJjaEZpZWxkOiB0aGlzLmdldFNlYXJjaCgpLFxuXHRcdFx0XHRcdFx0XHRcdGZpbHRlckl0ZW1zOiB0aGlzLl9maWx0ZXJGaWVsZHNcblx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdDwvRkVGaWx0ZXJCYXI+XG5cdFx0XHRcdFx0KVxuXHRcdFx0XHR9fVxuXHRcdFx0PC9GaWx0ZXJCYXJBUEk+XG5cdFx0KTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtREEsTUFBTUEsOEJBQThCLEdBQUcsU0FBQUEsQ0FBVUMsZ0JBQXlCLEVBQUVDLGlCQUE4QixFQUFlO0lB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
|
|
@@ -321,7 +321,7 @@ export default class FilterBarBlock extends BuildingBlockTemplatingBase {
|
|
|
321
321
|
|
|
322
322
|
/**
|
|
323
323
|
* This mode must be used when it is certain that a control must not persist it´s personalization state upon initialization.
|
|
324
|
-
* @experimental
|
|
324
|
+
* @ui5-experimental-since 1.136.0
|
|
325
325
|
* @since 1.136.0
|
|
326
326
|
*/
|
|
327
327
|
@blockAttribute({
|
|
@@ -592,7 +592,7 @@ export default class FilterBarBlock extends BuildingBlockTemplatingBase {
|
|
|
592
592
|
<CustomData key={"isSlot"} value={selectionField.type === "Slot"} />,
|
|
593
593
|
<FieldHelpCustomData
|
|
594
594
|
key={"sap-ui-DocumentationRef"}
|
|
595
|
-
value={`{parts: [{value: 'asArray'}, {value: '${selectionField.documentRefText}'}], formatter: '
|
|
595
|
+
value={`{parts: [{value: 'asArray'}, {value: '${selectionField.documentRefText}'}], formatter: '._formatters.StandardFormatter'}`}
|
|
596
596
|
/>
|
|
597
597
|
]
|
|
598
598
|
}}
|
|
@@ -624,6 +624,7 @@ export default class FilterBarBlock extends BuildingBlockTemplatingBase {
|
|
|
624
624
|
property={selectionField.annotationPath as unknown as Context}
|
|
625
625
|
contextPath={this._getContextPathForFilterField(selectionField, this._internalContextPath) as unknown as Context}
|
|
626
626
|
useSemanticDateRange={this.useSemanticDateRange}
|
|
627
|
+
label={selectionField.label}
|
|
627
628
|
settings={CommonHelper.stringifyCustomData(selectionField.settings)}
|
|
628
629
|
visualFilter={selectionField.visualFilter !== undefined ? (storeObjectValue(vf) as unknown as Context) : undefined}
|
|
629
630
|
editMode={`{internal>/${this.id}/filterFields/${selectionField.conditionPath}/editMode}`}
|
|
@@ -691,6 +692,7 @@ export default class FilterBarBlock extends BuildingBlockTemplatingBase {
|
|
|
691
692
|
toggleControl={this.toggleControlId}
|
|
692
693
|
initialLayout={this.initialLayout}
|
|
693
694
|
visible={this.visible}
|
|
695
|
+
disableDraftEditStateFilter={this.disableDraftEditStateFilter}
|
|
694
696
|
dt:designtime={this.designtime}
|
|
695
697
|
customData:entityType={internalContextPath}
|
|
696
698
|
>
|
|
@@ -25,7 +25,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/buildingBlocks/templatin
|
|
|
25
25
|
* This is currently an experimental API because the structure of the generated content will change to come closer to the FilterBar that you get out of templates.
|
|
26
26
|
* The public method and property will not change but the internal structure will so be careful on your usage.
|
|
27
27
|
* @public
|
|
28
|
-
* @experimental
|
|
28
|
+
* @ui5-experimental-since
|
|
29
29
|
* @mixes sap.fe.macros.FilterBar
|
|
30
30
|
*/
|
|
31
31
|
let FilterBar = (_dec = defineUI5Class("sap.fe.macros.filterBar.FilterBar", convertBuildingBlockMetadata(FilterBarBlock)), _dec2 = xmlEventHandler(), _dec(_class = (_class2 = /*#__PURE__*/function (_BuildingBlockWithTem) {
|
|
@@ -46,4 +46,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/buildingBlocks/templatin
|
|
|
46
46
|
_exports = FilterBar;
|
|
47
47
|
return _exports;
|
|
48
48
|
}, false);
|
|
49
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaWx0ZXJCYXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJjb252ZXJ0QnVpbGRpbmdCbG9ja01ldGFkYXRhIiwiRmlsdGVyQmFyQmxvY2siLCJfZGVjMiIsInhtbEV2ZW50SGFuZGxlciIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9ja1dpdGhUZW0iLCJwcm9wcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsImNyZWF0ZVByb3h5TWV0aG9kcyIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJfZmlyZUV2ZW50IiwidWk1RXZlbnQiLCJfY29udHJvbGxlciIsImV2ZW50SWQiLCJmaXJlRXZlbnQiLCJnZXRQYXJhbWV0ZXJzIiwiQnVpbGRpbmdCbG9ja1dpdGhUZW1wbGF0aW5nIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsIk9iamVjdCIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRmlsdGVyQmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgeG1sRXZlbnRIYW5kbGVyLCB0eXBlIFByb3BlcnRpZXNPZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcblxuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBjb252ZXJ0QnVpbGRpbmdCbG9ja01ldGFkYXRhIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1N1cHBvcnRcIjtcbmltcG9ydCBCdWlsZGluZ0Jsb2NrV2l0aFRlbXBsYXRpbmcgZnJvbSBcInNhcC9mZS9tYWNyb3MvY29udHJvbHMvQnVpbGRpbmdCbG9ja1dpdGhUZW1wbGF0aW5nXCI7XG5pbXBvcnQgRmlsdGVyQmFyQmxvY2sgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL0ZpbHRlckJhci5ibG9ja1wiO1xuaW1wb3J0IHR5cGUgVUk1RXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL21kYy9Db250cm9sXCI7XG5cbi8qKlxuICogVXNhZ2UgZXhhbXBsZTpcbiAqIDxwcmU+
|
|
49
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaWx0ZXJCYXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJjb252ZXJ0QnVpbGRpbmdCbG9ja01ldGFkYXRhIiwiRmlsdGVyQmFyQmxvY2siLCJfZGVjMiIsInhtbEV2ZW50SGFuZGxlciIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9ja1dpdGhUZW0iLCJwcm9wcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsImNyZWF0ZVByb3h5TWV0aG9kcyIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJfZmlyZUV2ZW50IiwidWk1RXZlbnQiLCJfY29udHJvbGxlciIsImV2ZW50SWQiLCJmaXJlRXZlbnQiLCJnZXRQYXJhbWV0ZXJzIiwiQnVpbGRpbmdCbG9ja1dpdGhUZW1wbGF0aW5nIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsIk9iamVjdCIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRmlsdGVyQmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgeG1sRXZlbnRIYW5kbGVyLCB0eXBlIFByb3BlcnRpZXNPZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcblxuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBjb252ZXJ0QnVpbGRpbmdCbG9ja01ldGFkYXRhIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1N1cHBvcnRcIjtcbmltcG9ydCBCdWlsZGluZ0Jsb2NrV2l0aFRlbXBsYXRpbmcgZnJvbSBcInNhcC9mZS9tYWNyb3MvY29udHJvbHMvQnVpbGRpbmdCbG9ja1dpdGhUZW1wbGF0aW5nXCI7XG5pbXBvcnQgRmlsdGVyQmFyQmxvY2sgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL0ZpbHRlckJhci5ibG9ja1wiO1xuaW1wb3J0IHR5cGUgVUk1RXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL21kYy9Db250cm9sXCI7XG5cbi8qKlxuICogVXNhZ2UgZXhhbXBsZTpcbiAqIDxwcmU+XG4gKiBzYXAudWkucmVxdWlyZShbXCJzYXAvZmUvbWFjcm9zL2ZpbHRlckJhci9GaWx0ZXJCYXJcIl0sIGZ1bmN0aW9uKEZpbHRlckJhcikge1xuICogXHQgLi4uXG4gKiBcdCBuZXcgRmlsdGVyQmFyKFwiTXlGaWx0ZXJCYXJcIiwge21ldGFQYXRoOlwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlNlbGVjdGlvbkZpZWxkc1wifSlcbiAqIH0pXG4gKiA8L3ByZT5cbiAqXG4gKiBUaGlzIGlzIGN1cnJlbnRseSBhbiBleHBlcmltZW50YWwgQVBJIGJlY2F1c2UgdGhlIHN0cnVjdHVyZSBvZiB0aGUgZ2VuZXJhdGVkIGNvbnRlbnQgd2lsbCBjaGFuZ2UgdG8gY29tZSBjbG9zZXIgdG8gdGhlIEZpbHRlckJhciB0aGF0IHlvdSBnZXQgb3V0IG9mIHRlbXBsYXRlcy5cbiAqIFRoZSBwdWJsaWMgbWV0aG9kIGFuZCBwcm9wZXJ0eSB3aWxsIG5vdCBjaGFuZ2UgYnV0IHRoZSBpbnRlcm5hbCBzdHJ1Y3R1cmUgd2lsbCBzbyBiZSBjYXJlZnVsIG9uIHlvdXIgdXNhZ2UuXG4gKiBAcHVibGljXG4gKiBAdWk1LWV4cGVyaW1lbnRhbC1zaW5jZVxuICogQG1peGVzIHNhcC5mZS5tYWNyb3MuRmlsdGVyQmFyXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuZmlsdGVyQmFyLkZpbHRlckJhclwiLCBjb252ZXJ0QnVpbGRpbmdCbG9ja01ldGFkYXRhKEZpbHRlckJhckJsb2NrKSlcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbHRlckJhciBleHRlbmRzIEJ1aWxkaW5nQmxvY2tXaXRoVGVtcGxhdGluZyB7XG5cdGNvbnN0cnVjdG9yKHByb3BzPzogUHJvcGVydGllc09mPEZpbHRlckJhckJsb2NrPiAmICRDb250cm9sU2V0dGluZ3MsIG90aGVycz86ICRDb250cm9sU2V0dGluZ3MpIHtcblx0XHRzdXBlcihwcm9wcywgb3RoZXJzKTtcblx0XHR0aGlzLmNyZWF0ZVByb3h5TWV0aG9kcyhbXG5cdFx0XHRcInNldEZpbHRlclZhbHVlc1wiLFxuXHRcdFx0XCJnZXRBY3RpdmVGaWx0ZXJzVGV4dFwiLFxuXHRcdFx0XCJnZXRGaWx0ZXJzXCIsXG5cdFx0XHRcInRyaWdnZXJTZWFyY2hcIixcblx0XHRcdFwiZ2V0U2VsZWN0aW9uVmFyaWFudFwiLFxuXHRcdFx0XCJzZXRGaWx0ZXJGaWVsZFZpc2libGVcIixcblx0XHRcdFwiZ2V0RmlsdGVyRmllbGRWaXNpYmxlXCIsXG5cdFx0XHRcImdldEN1cnJlbnRWYXJpYW50S2V5XCIsXG5cdFx0XHRcInNldEN1cnJlbnRWYXJpYW50S2V5XCIsXG5cdFx0XHRcInNldEZpbHRlckZpZWxkRW5hYmxlZFwiLFxuXHRcdFx0XCJnZXRGaWx0ZXJGaWVsZEVuYWJsZWRcIixcblx0XHRcdFwic2V0U2VsZWN0aW9uVmFyaWFudFwiXG5cdFx0XSk7XG5cdH1cblxuXHRAeG1sRXZlbnRIYW5kbGVyKClcblx0X2ZpcmVFdmVudCh1aTVFdmVudDogVUk1RXZlbnQsIF9jb250cm9sbGVyOiBQYWdlQ29udHJvbGxlciwgZXZlbnRJZDogc3RyaW5nKTogdm9pZCB7XG5cdFx0dGhpcy5maXJlRXZlbnQoZXZlbnRJZCwgdWk1RXZlbnQuZ2V0UGFyYW1ldGVycygpKTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7RUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFkQSxJQWdCcUJBLFNBQVMsSUFBQUMsSUFBQSxHQUQ3QkMsY0FBYyxDQUFDLG1DQUFtQyxFQUFFQyw0QkFBNEIsQ0FBQ0MsY0FBYyxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQW9CaEdDLGVBQWUsQ0FBQyxDQUFDLEVBQUFMLElBQUEsQ0FBQU0sTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxxQkFBQTtJQWxCbEIsU0FBQVQsVUFBWVUsS0FBdUQsRUFBRUMsTUFBeUIsRUFBRTtNQUFBLElBQUFDLEtBQUE7TUFDL0ZBLEtBQUEsR0FBQUgscUJBQUEsQ0FBQUksSUFBQSxPQUFNSCxLQUFLLEVBQUVDLE1BQU0sQ0FBQztNQUNwQkMsS0FBQSxDQUFLRSxrQkFBa0IsQ0FBQyxDQUN2QixpQkFBaUIsRUFDakIsc0JBQXNCLEVBQ3RCLFlBQVksRUFDWixlQUFlLEVBQ2YscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixDQUNyQixDQUFDO01BQUMsT0FBQUYsS0FBQTtJQUNKO0lBQUNHLFFBQUEsR0FBQWYsU0FBQTtJQUFBZ0IsY0FBQSxDQUFBaEIsU0FBQSxFQUFBUyxxQkFBQTtJQUFBLElBQUFRLE1BQUEsR0FBQWpCLFNBQUEsQ0FBQWtCLFNBQUE7SUFBQUQsTUFBQSxDQUdERSxVQUFVLEdBRFYsU0FDQUEsVUFBVUEsQ0FBQ0MsUUFBa0IsRUFBRUMsV0FBMkIsRUFBRUMsT0FBZSxFQUFRO01BQ2xGLElBQUksQ0FBQ0MsU0FBUyxDQUFDRCxPQUFPLEVBQUVGLFFBQVEsQ0FBQ0ksYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQUEsT0FBQXhCLFNBQUE7RUFBQSxFQXRCcUN5QiwyQkFBMkIsR0FBQUMseUJBQUEsQ0FBQWxCLE9BQUEsQ0FBQVUsU0FBQSxpQkFBQWIsS0FBQSxHQUFBc0IsTUFBQSxDQUFBQyx3QkFBQSxDQUFBcEIsT0FBQSxDQUFBVSxTQUFBLGlCQUFBVixPQUFBLENBQUFVLFNBQUEsR0FBQVYsT0FBQSxNQUFBRCxNQUFBO0VBQUFRLFFBQUEsR0FBQWYsU0FBQTtFQUFBLE9BQUFlLFFBQUE7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -19,7 +19,7 @@ import type { $ControlSettings } from "sap/ui/mdc/Control";
|
|
|
19
19
|
* This is currently an experimental API because the structure of the generated content will change to come closer to the FilterBar that you get out of templates.
|
|
20
20
|
* The public method and property will not change but the internal structure will so be careful on your usage.
|
|
21
21
|
* @public
|
|
22
|
-
* @experimental
|
|
22
|
+
* @ui5-experimental-since
|
|
23
23
|
* @mixes sap.fe.macros.FilterBar
|
|
24
24
|
*/
|
|
25
25
|
@defineUI5Class("sap.fe.macros.filterBar.FilterBar", convertBuildingBlockMetadata(FilterBarBlock))
|