@sapui5/sap.fe.macros 1.141.1 → 1.142.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/macros/.library +1 -1
- package/src/sap/fe/macros/Breadcrumbs.js +4 -10
- package/src/sap/fe/macros/Breadcrumbs.tsx +2 -8
- package/src/sap/fe/macros/Chart.js +34 -23
- package/src/sap/fe/macros/Chart.tsx +25 -11
- package/src/sap/fe/macros/CollaborativeDraftHandler.js +48 -31
- package/src/sap/fe/macros/CollaborativeDraftHandler.tsx +51 -26
- package/src/sap/fe/macros/CollectionBindingInfo.js +8 -2
- package/src/sap/fe/macros/CollectionBindingInfo.ts +11 -6
- package/src/sap/fe/macros/CommonHelper.js +14 -24
- package/src/sap/fe/macros/CommonHelper.ts +18 -25
- package/src/sap/fe/macros/Field.js +30 -13
- package/src/sap/fe/macros/Field.ts +60 -30
- package/src/sap/fe/macros/FooterContent.js +5 -2
- package/src/sap/fe/macros/FooterContent.tsx +6 -3
- package/src/sap/fe/macros/KPITag.js +1 -1
- package/src/sap/fe/macros/KPITag.tsx +3 -1
- package/src/sap/fe/macros/MacroAPI.js +3 -2
- package/src/sap/fe/macros/MacroAPI.ts +2 -2
- package/src/sap/fe/macros/MessageButton.js +3 -2
- package/src/sap/fe/macros/MessageButton.tsx +5 -2
- package/src/sap/fe/macros/MicroChart.js +10 -6
- package/src/sap/fe/macros/MicroChart.tsx +8 -2
- package/src/sap/fe/macros/MultiValueField.js +22 -36
- package/src/sap/fe/macros/MultiValueField.tsx +34 -66
- package/src/sap/fe/macros/RichTextEditor.js +3 -4
- package/src/sap/fe/macros/RichTextEditor.tsx +2 -3
- package/src/sap/fe/macros/Status.js +35 -8
- package/src/sap/fe/macros/Status.tsx +23 -2
- package/src/sap/fe/macros/ValueHelp.js +5 -2
- package/src/sap/fe/macros/ValueHelp.tsx +5 -0
- package/src/sap/fe/macros/ai/EasyFilterBar.js +7 -34
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +6 -35
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +31 -7
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +33 -6
- package/src/sap/fe/macros/chart/Action.js +25 -2
- package/src/sap/fe/macros/chart/Action.ts +13 -0
- package/src/sap/fe/macros/chart/ActionGroup.js +25 -2
- package/src/sap/fe/macros/chart/ActionGroup.ts +13 -0
- package/src/sap/fe/macros/chart/ChartDelegate.js +8 -8
- package/src/sap/fe/macros/chart/ChartDelegate.ts +17 -12
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +54 -11
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +70 -11
- package/src/sap/fe/macros/chart/OverflowGroup.js +62 -0
- package/src/sap/fe/macros/chart/OverflowGroup.ts +22 -0
- package/src/sap/fe/macros/controls/FilterBar.js +39 -3
- package/src/sap/fe/macros/controls/FilterBar.ts +42 -1
- package/src/sap/fe/macros/controls/RadioButtons.js +18 -5
- package/src/sap/fe/macros/controls/RadioButtons.tsx +10 -1
- package/src/sap/fe/macros/coreUI/CreateDialog.js +2 -2
- package/src/sap/fe/macros/coreUI/CreateDialog.tsx +1 -1
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +37 -9
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +45 -6
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.js +4 -2
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.tsx +3 -1
- package/src/sap/fe/macros/field/FieldFormatOptions.js +3 -3
- package/src/sap/fe/macros/field/FieldFormatOptions.ts +1 -1
- package/src/sap/fe/macros/field/FieldHelper.js +4 -3
- package/src/sap/fe/macros/field/FieldHelper.ts +7 -1
- package/src/sap/fe/macros/field/FieldRuntime.js +38 -8
- package/src/sap/fe/macros/field/FieldRuntime.ts +65 -7
- package/src/sap/fe/macros/field/FieldRuntimeHelper.js +3 -34
- package/src/sap/fe/macros/field/FieldRuntimeHelper.ts +28 -53
- package/src/sap/fe/macros/field/FieldTemplating.js +5 -4
- package/src/sap/fe/macros/field/FieldTemplating.ts +6 -4
- package/src/sap/fe/macros/filter/FilterFieldHelper.js +6 -4
- package/src/sap/fe/macros/filter/FilterFieldHelper.ts +7 -2
- package/src/sap/fe/macros/filter/FilterUtils.js +100 -36
- package/src/sap/fe/macros/filter/FilterUtils.ts +127 -39
- package/src/sap/fe/macros/filterBar/ExtendedSemanticDateOperators.js +2 -2
- package/src/sap/fe/macros/filterBar/ExtendedSemanticDateOperators.ts +1 -1
- package/src/sap/fe/macros/filterBar/FilterBar.block.js +4 -3
- package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +19 -8
- package/src/sap/fe/macros/filterBar/FilterBarAPI.js +10 -7
- package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +31 -16
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.js +4 -3
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.ts +5 -2
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +4 -3
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +3 -2
- package/src/sap/fe/macros/form/Form.block.js +27 -2
- package/src/sap/fe/macros/form/Form.block.ts +31 -11
- package/src/sap/fe/macros/form/FormActionButtons.fragment.xml +13 -3
- package/src/sap/fe/macros/form/FormContainer.block.js +96 -65
- package/src/sap/fe/macros/form/FormContainer.block.ts +104 -65
- package/src/sap/fe/macros/formatters/TableFormatter.js +13 -10
- package/src/sap/fe/macros/formatters/TableFormatter.ts +11 -9
- package/src/sap/fe/macros/formatters/VisualFilterFormatter.js +6 -4
- package/src/sap/fe/macros/formatters/VisualFilterFormatter.ts +5 -5
- package/src/sap/fe/macros/inlineEdit/InlineEdit.js +5 -5
- package/src/sap/fe/macros/inlineEdit/InlineEdit.ts +4 -4
- package/src/sap/fe/macros/insights/InsightsService.js +3 -2
- package/src/sap/fe/macros/insights/InsightsService.ts +2 -1
- package/src/sap/fe/macros/internal/DataPoint.js +7 -8
- package/src/sap/fe/macros/internal/DataPoint.tsx +6 -9
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +8 -6
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +7 -8
- package/src/sap/fe/macros/internal/field/EditStyle.js +9 -20
- package/src/sap/fe/macros/internal/field/EditStyle.tsx +17 -41
- package/src/sap/fe/macros/internal/field/FieldBlockStructure.js +2 -2
- package/src/sap/fe/macros/internal/field/FieldBlockStructure.tsx +1 -1
- package/src/sap/fe/macros/internal/field/FieldStructure.js +1 -2
- package/src/sap/fe/macros/internal/field/FieldStructure.tsx +0 -2
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +7 -7
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +17 -11
- package/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +6 -2
- package/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +5 -1
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.js +9 -6
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.ts +7 -5
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +4 -4
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +6 -6
- package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +5 -2
- package/src/sap/fe/macros/library.js +3 -3
- package/src/sap/fe/macros/library.ts +2 -0
- package/src/sap/fe/macros/mdc/adapter/StateHelper.js +15 -5
- package/src/sap/fe/macros/mdc/adapter/StateHelper.ts +21 -5
- package/src/sap/fe/macros/messagebundle.properties +7 -5
- package/src/sap/fe/macros/messagebundle_ar.properties +12 -3
- package/src/sap/fe/macros/messagebundle_bg.properties +13 -4
- package/src/sap/fe/macros/messagebundle_ca.properties +12 -3
- package/src/sap/fe/macros/messagebundle_cnr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_cs.properties +11 -2
- package/src/sap/fe/macros/messagebundle_cy.properties +12 -3
- package/src/sap/fe/macros/messagebundle_da.properties +12 -3
- package/src/sap/fe/macros/messagebundle_de.properties +16 -7
- package/src/sap/fe/macros/messagebundle_el.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en_GB.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +12 -3
- package/src/sap/fe/macros/messagebundle_es.properties +12 -3
- package/src/sap/fe/macros/messagebundle_es_MX.properties +12 -3
- package/src/sap/fe/macros/messagebundle_et.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fi.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +12 -3
- package/src/sap/fe/macros/messagebundle_hi.properties +12 -3
- package/src/sap/fe/macros/messagebundle_hr.properties +13 -4
- package/src/sap/fe/macros/messagebundle_hu.properties +12 -3
- package/src/sap/fe/macros/messagebundle_id.properties +18 -9
- package/src/sap/fe/macros/messagebundle_it.properties +12 -3
- package/src/sap/fe/macros/messagebundle_iw.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ja.properties +12 -3
- package/src/sap/fe/macros/messagebundle_kk.properties +11 -2
- package/src/sap/fe/macros/messagebundle_ko.properties +13 -4
- package/src/sap/fe/macros/messagebundle_lt.properties +12 -3
- package/src/sap/fe/macros/messagebundle_lv.properties +12 -3
- package/src/sap/fe/macros/messagebundle_mk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ms.properties +12 -3
- package/src/sap/fe/macros/messagebundle_nl.properties +12 -3
- package/src/sap/fe/macros/messagebundle_no.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pl.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pt.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ro.properties +13 -4
- package/src/sap/fe/macros/messagebundle_ru.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sh.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sl.properties +13 -4
- package/src/sap/fe/macros/messagebundle_sr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sv.properties +12 -3
- package/src/sap/fe/macros/messagebundle_th.properties +11 -2
- package/src/sap/fe/macros/messagebundle_tr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_uk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_vi.properties +13 -4
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +12 -3
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +12 -3
- package/src/sap/fe/macros/richtexteditor/ButtonGroup.js +2 -2
- package/src/sap/fe/macros/richtexteditor/ButtonGroup.ts +2 -2
- package/src/sap/fe/macros/table/Action.js +15 -2
- package/src/sap/fe/macros/table/Action.ts +11 -1
- package/src/sap/fe/macros/table/ActionGroup.js +15 -2
- package/src/sap/fe/macros/table/ActionGroup.ts +8 -0
- package/src/sap/fe/macros/table/ActionGroupOverride.js +14 -2
- package/src/sap/fe/macros/table/ActionGroupOverride.ts +7 -0
- package/src/sap/fe/macros/table/ActionOverride.js +14 -2
- package/src/sap/fe/macros/table/ActionOverride.ts +7 -0
- package/src/sap/fe/macros/table/ActionsTemplating.js +16 -2
- package/src/sap/fe/macros/table/ActionsTemplating.tsx +15 -0
- package/src/sap/fe/macros/table/MdcTableTemplate.js +91 -10
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +131 -10
- package/src/sap/fe/macros/table/OverflowGroups.js +59 -0
- package/src/sap/fe/macros/table/OverflowGroups.ts +27 -0
- package/src/sap/fe/macros/table/Table.block.js +70 -29
- package/src/sap/fe/macros/table/Table.block.tsx +65 -12
- package/src/sap/fe/macros/table/TableAPI.js +169 -131
- package/src/sap/fe/macros/table/TableAPI.ts +58 -28
- package/src/sap/fe/macros/table/TableDefinition.js +19 -2
- package/src/sap/fe/macros/table/TableDefinition.ts +17 -1
- package/src/sap/fe/macros/table/TableEventHandlerProvider.js +4 -3
- package/src/sap/fe/macros/table/TableEventHandlerProvider.ts +8 -9
- package/src/sap/fe/macros/table/TableHelper.js +5 -2
- package/src/sap/fe/macros/table/TableHelper.ts +5 -2
- package/src/sap/fe/macros/table/TableRuntime.js +2 -2
- package/src/sap/fe/macros/table/TableRuntime.ts +4 -6
- package/src/sap/fe/macros/table/TableSizeHelper.js +4 -4
- package/src/sap/fe/macros/table/TableSizeHelper.ts +6 -11
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +67 -26
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +108 -118
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.js +2 -2
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.tsx +1 -1
- package/src/sap/fe/macros/table/massEdit/MassEditField.js +1 -1
- package/src/sap/fe/macros/table/massEdit/MassEditField.tsx +3 -6
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.js +6 -5
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.ts +10 -4
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.js +7 -9
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.ts +7 -8
- package/src/sap/fe/macros/table/mixin/TableExport.js +1 -1
- package/src/sap/fe/macros/table/mixin/TableExport.ts +3 -3
- package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.js +4 -4
- package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.ts +3 -3
- package/src/sap/fe/macros/visualfilters/VisualFilter.js +20 -2
- package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +28 -6
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +6 -3
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +4 -3
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveCharts.js +3 -3
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveCharts.tsx +10 -4
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveDonutChart.fragment.xml +1 -1
|
@@ -29,24 +29,26 @@ import type DataPoint from "sap/fe/macros/internal/DataPoint";
|
|
|
29
29
|
import * as FieldStructure from "sap/fe/macros/internal/field/FieldStructure";
|
|
30
30
|
import type { FieldBlockProperties, InputFieldBlockProperties } from "sap/fe/macros/internal/field/FieldStructureHelper";
|
|
31
31
|
import { setUpField } from "sap/fe/macros/internal/field/FieldStructureHelper";
|
|
32
|
-
import type Avatar from "sap/m/Avatar";
|
|
33
32
|
import type Button from "sap/m/Button";
|
|
34
33
|
import type { Button$PressEvent } from "sap/m/Button";
|
|
35
34
|
import type CheckBox from "sap/m/CheckBox";
|
|
36
|
-
import type { CheckBox$SelectEvent } from "sap/m/CheckBox";
|
|
35
|
+
import type { CheckBox$SelectEvent, CheckBox$SelectEventParameters } from "sap/m/CheckBox";
|
|
37
36
|
import type ExpandableText from "sap/m/ExpandableText";
|
|
38
37
|
import type HBox from "sap/m/HBox";
|
|
39
38
|
import type InputBase from "sap/m/InputBase";
|
|
40
|
-
import type { InputBase$ChangeEvent } from "sap/m/InputBase";
|
|
39
|
+
import type { InputBase$ChangeEvent, InputBase$ChangeEventParameters } from "sap/m/InputBase";
|
|
41
40
|
import type Label from "sap/m/Label";
|
|
42
41
|
import type Link from "sap/m/Link";
|
|
43
42
|
import MessageToast from "sap/m/MessageToast";
|
|
44
43
|
import type ObjectIdentifier from "sap/m/ObjectIdentifier";
|
|
45
44
|
import type ObjectStatus from "sap/m/ObjectStatus";
|
|
46
|
-
|
|
45
|
+
|
|
47
46
|
import type Text from "sap/m/Text";
|
|
48
47
|
import type VBox from "sap/m/VBox";
|
|
49
48
|
import type UI5Event from "sap/ui/base/Event";
|
|
49
|
+
|
|
50
|
+
import type RatingIndicator from "sap/m/RatingIndicator";
|
|
51
|
+
import type { RatingIndicator$ChangeEventParameters } from "sap/m/RatingIndicator";
|
|
50
52
|
import type ManagedObject from "sap/ui/base/ManagedObject";
|
|
51
53
|
import type { PropertyBindingInfo } from "sap/ui/base/ManagedObject";
|
|
52
54
|
import type Control from "sap/ui/core/Control";
|
|
@@ -56,7 +58,7 @@ import Messaging from "sap/ui/core/Messaging";
|
|
|
56
58
|
import Message from "sap/ui/core/message/Message";
|
|
57
59
|
import type MessageType from "sap/ui/core/message/MessageType";
|
|
58
60
|
import type FormElement from "sap/ui/layout/form/FormElement";
|
|
59
|
-
import type { Field$ChangeEvent, default as mdcField } from "sap/ui/mdc/Field";
|
|
61
|
+
import type { Field$ChangeEvent, Field$ChangeEventParameters, default as mdcField } from "sap/ui/mdc/Field";
|
|
60
62
|
import FieldEditMode from "sap/ui/mdc/enums/FieldEditMode";
|
|
61
63
|
import type Binding from "sap/ui/model/Binding";
|
|
62
64
|
import type Context from "sap/ui/model/Context";
|
|
@@ -82,7 +84,6 @@ import FieldRuntimeHelper from "./field/FieldRuntimeHelper";
|
|
|
82
84
|
import InlineEdit from "./inlineEdit/InlineEdit";
|
|
83
85
|
|
|
84
86
|
type ControlWithAccessibility = Control & { addAriaLabelledBy?: (id: string) => void; getAriaLabelledBy: () => string[] };
|
|
85
|
-
|
|
86
87
|
/**
|
|
87
88
|
* Building block for creating a field based on the metadata provided by OData V4.
|
|
88
89
|
* <br>
|
|
@@ -166,10 +167,10 @@ class Field extends MacroAPI<{ readOnly: boolean; semanticObject: string }> {
|
|
|
166
167
|
* @public
|
|
167
168
|
*/
|
|
168
169
|
@event()
|
|
169
|
-
change!: EventHandler;
|
|
170
|
+
change!: EventHandler<UI5Event<{ value: string | number | boolean | undefined; isValid: boolean }, Field>>;
|
|
170
171
|
|
|
171
172
|
/**
|
|
172
|
-
* An event containing details is triggered when the field
|
|
173
|
+
* An event containing details is triggered when the field is focused.
|
|
173
174
|
*
|
|
174
175
|
*/
|
|
175
176
|
@event()
|
|
@@ -180,7 +181,7 @@ class Field extends MacroAPI<{ readOnly: boolean; semanticObject: string }> {
|
|
|
180
181
|
* @public
|
|
181
182
|
*/
|
|
182
183
|
@event()
|
|
183
|
-
liveChange!: EventHandler
|
|
184
|
+
liveChange!: EventHandler<UI5Event<{}, Field>>;
|
|
184
185
|
|
|
185
186
|
@association({
|
|
186
187
|
type: "string"
|
|
@@ -304,6 +305,13 @@ class Field extends MacroAPI<{ readOnly: boolean; semanticObject: string }> {
|
|
|
304
305
|
@property({ type: "boolean" })
|
|
305
306
|
_requiresValidation?: boolean = false;
|
|
306
307
|
|
|
308
|
+
/**
|
|
309
|
+
* Enables strict handling for actions. When true, warning responses from API calls during action execution
|
|
310
|
+
* should not be treated as errors and normal execution should continue.
|
|
311
|
+
*/
|
|
312
|
+
@property({ type: "boolean" })
|
|
313
|
+
public readonly disableStrictHandling?: boolean;
|
|
314
|
+
|
|
307
315
|
private preprocessorContext!: XMLPreprocessorContext | undefined;
|
|
308
316
|
|
|
309
317
|
/**
|
|
@@ -327,8 +335,16 @@ class Field extends MacroAPI<{ readOnly: boolean; semanticObject: string }> {
|
|
|
327
335
|
* @param changeEvent The change event object.
|
|
328
336
|
* @returns An object containing the extracted details
|
|
329
337
|
*/
|
|
330
|
-
private extractChangeEventDetails(
|
|
331
|
-
|
|
338
|
+
private extractChangeEventDetails(
|
|
339
|
+
changeEvent: UI5Event<
|
|
340
|
+
CheckBox$SelectEventParameters &
|
|
341
|
+
InputBase$ChangeEventParameters &
|
|
342
|
+
Field$ChangeEventParameters &
|
|
343
|
+
RatingIndicator$ChangeEventParameters,
|
|
344
|
+
CheckBox | InputBase | mdcField | RatingIndicator
|
|
345
|
+
>
|
|
346
|
+
): {
|
|
347
|
+
source: CheckBox | InputBase | mdcField | RatingIndicator;
|
|
332
348
|
controller: PageController;
|
|
333
349
|
isTransient: boolean;
|
|
334
350
|
valueResolved: Promise<void>;
|
|
@@ -351,7 +367,15 @@ class Field extends MacroAPI<{ readOnly: boolean; semanticObject: string }> {
|
|
|
351
367
|
}
|
|
352
368
|
|
|
353
369
|
@xmlEventHandler()
|
|
354
|
-
handleChange(
|
|
370
|
+
handleChange(
|
|
371
|
+
changeEvent: UI5Event<
|
|
372
|
+
CheckBox$SelectEventParameters &
|
|
373
|
+
InputBase$ChangeEventParameters &
|
|
374
|
+
Field$ChangeEventParameters &
|
|
375
|
+
RatingIndicator$ChangeEventParameters,
|
|
376
|
+
CheckBox | InputBase | mdcField | RatingIndicator
|
|
377
|
+
>
|
|
378
|
+
): void {
|
|
355
379
|
const { source, controller, isTransient, valueResolved, valid, fieldValidity, customValueBinding } =
|
|
356
380
|
this.extractChangeEventDetails(changeEvent);
|
|
357
381
|
|
|
@@ -375,7 +399,7 @@ class Field extends MacroAPI<{ readOnly: boolean; semanticObject: string }> {
|
|
|
375
399
|
valueResolved
|
|
376
400
|
.then(() => {
|
|
377
401
|
// The event is gone. For now we'll just recreate it again
|
|
378
|
-
(changeEvent as { oSource?:
|
|
402
|
+
(changeEvent as { oSource?: Control }).oSource = source;
|
|
379
403
|
(changeEvent as { mParameters?: { valid?: boolean } }).mParameters = {
|
|
380
404
|
valid: valid ?? true
|
|
381
405
|
};
|
|
@@ -393,7 +417,7 @@ class Field extends MacroAPI<{ readOnly: boolean; semanticObject: string }> {
|
|
|
393
417
|
})
|
|
394
418
|
.catch(() => {
|
|
395
419
|
// The event is gone. For now we'll just recreate it again
|
|
396
|
-
(changeEvent as { oSource?:
|
|
420
|
+
(changeEvent as { oSource?: Control }).oSource = source;
|
|
397
421
|
(changeEvent as { mParameters?: { valid?: boolean } }).mParameters = {
|
|
398
422
|
valid: false
|
|
399
423
|
};
|
|
@@ -499,7 +523,10 @@ class Field extends MacroAPI<{ readOnly: boolean; semanticObject: string }> {
|
|
|
499
523
|
feController._sideEffects.handleFieldGroupChange(_event);
|
|
500
524
|
}
|
|
501
525
|
|
|
502
|
-
constructor(
|
|
526
|
+
constructor(
|
|
527
|
+
props?: PropertiesOf<Field, "change" | "liveChange" | "focusin">,
|
|
528
|
+
others?: PropertiesOf<Field, "change" | "liveChange" | "focusin">
|
|
529
|
+
) {
|
|
503
530
|
let combinedProps;
|
|
504
531
|
|
|
505
532
|
if (props) {
|
|
@@ -533,6 +560,11 @@ class Field extends MacroAPI<{ readOnly: boolean; semanticObject: string }> {
|
|
|
533
560
|
super(combinedProps);
|
|
534
561
|
}
|
|
535
562
|
|
|
563
|
+
override applySettings(mSettings: PropertiesOf<Field, "change" | "liveChange" | "focusin">, oScope?: object): this {
|
|
564
|
+
this._doNotCreateOnNullContext = true; // We don't want to create the field if there is no context
|
|
565
|
+
return super.applySettings(mSettings, oScope);
|
|
566
|
+
}
|
|
567
|
+
|
|
536
568
|
_setAriaLabelledBy(content?: ControlWithAccessibility): void {
|
|
537
569
|
if (content && content.addAriaLabelledBy) {
|
|
538
570
|
const ariaLabelledBy = this.ariaLabelledBy;
|
|
@@ -1000,6 +1032,9 @@ class Field extends MacroAPI<{ readOnly: boolean; semanticObject: string }> {
|
|
|
1000
1032
|
if (preparedProperties.displayStyle === "File")
|
|
1001
1033
|
preparedProperties.fileUploaderVisible = !this.readOnly && preparedProperties.editableExpression;
|
|
1002
1034
|
preparedProperties.getTranslatedText = this.getTranslatedText.bind(this);
|
|
1035
|
+
if (preparedProperties.ariaLabelledBy === undefined) {
|
|
1036
|
+
preparedProperties.ariaLabelledBy = this.ariaLabelledBy;
|
|
1037
|
+
}
|
|
1003
1038
|
return preparedProperties;
|
|
1004
1039
|
}
|
|
1005
1040
|
|
|
@@ -1094,14 +1129,15 @@ class Field extends MacroAPI<{ readOnly: boolean; semanticObject: string }> {
|
|
|
1094
1129
|
|
|
1095
1130
|
const entities: Array<string> = oThis?.contextPath?.getPath().split("/");
|
|
1096
1131
|
const entitySetName: string = entities[entities.length - 1];
|
|
1097
|
-
|
|
1132
|
+
const disableStrictHandling = this.disableStrictHandling;
|
|
1098
1133
|
const oParams = {
|
|
1099
1134
|
contexts: ev.getSource().getBindingContext()! as ODataV4Context,
|
|
1100
1135
|
invocationGrouping: sInvocationGrouping,
|
|
1101
1136
|
model: ev.getSource().getModel() as ODataModel,
|
|
1102
1137
|
label: oDataField.Label,
|
|
1103
1138
|
isNavigable: bIsNavigable,
|
|
1104
|
-
entitySetName: entitySetName
|
|
1139
|
+
entitySetName: entitySetName,
|
|
1140
|
+
disableStrictHandling: disableStrictHandling
|
|
1105
1141
|
};
|
|
1106
1142
|
|
|
1107
1143
|
controller.editFlow.invokeAction(oDataField.Action!, oParams);
|
|
@@ -1118,12 +1154,13 @@ class Field extends MacroAPI<{ readOnly: boolean; semanticObject: string }> {
|
|
|
1118
1154
|
);
|
|
1119
1155
|
};
|
|
1120
1156
|
}
|
|
1121
|
-
preparedProperties.
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1157
|
+
if (preparedProperties.editMode !== "Display") {
|
|
1158
|
+
preparedProperties.valueHelpId = FieldStructure.getPossibleValueHelpTemplateId(
|
|
1159
|
+
preparedProperties,
|
|
1160
|
+
this.getPageController(),
|
|
1161
|
+
this.getMetaModel()!
|
|
1162
|
+
);
|
|
1163
|
+
}
|
|
1127
1164
|
this.content = FieldStructure.getFieldStructureTemplate(preparedProperties) as unknown as Control;
|
|
1128
1165
|
} catch (e) {
|
|
1129
1166
|
if (e instanceof Error) {
|
|
@@ -1168,12 +1205,6 @@ class Field extends MacroAPI<{ readOnly: boolean; semanticObject: string }> {
|
|
|
1168
1205
|
controller.collaborativeDraft.handleContentFocusOut(ev);
|
|
1169
1206
|
}
|
|
1170
1207
|
|
|
1171
|
-
onShowCollaborationEditUser(ev: UI5Event<{}, Avatar>): void {
|
|
1172
|
-
const source = ev.getSource();
|
|
1173
|
-
const view = this.getPageController().getView();
|
|
1174
|
-
FieldRuntimeHelper.showCollaborationEditUser(source, view);
|
|
1175
|
-
}
|
|
1176
|
-
|
|
1177
1208
|
getPropertyBag(): PropertiesOf<this> {
|
|
1178
1209
|
const settings: PropertiesOf<this> = {} as PropertiesOf<this>;
|
|
1179
1210
|
const properties = this.getMetadata().getAllProperties();
|
|
@@ -1228,5 +1259,4 @@ class Field extends MacroAPI<{ readOnly: boolean; semanticObject: string }> {
|
|
|
1228
1259
|
return this.getInlineEditProperty()?.fullyQualifiedName;
|
|
1229
1260
|
}
|
|
1230
1261
|
}
|
|
1231
|
-
|
|
1232
1262
|
export default Field;
|
|
@@ -274,7 +274,8 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/base/ClassS
|
|
|
274
274
|
invocationGrouping: dataFieldForAction.InvocationGrouping === "UI.OperationGroupingType/ChangeSet" ? library.InvocationGrouping.ChangeSet : library.InvocationGrouping.Isolated,
|
|
275
275
|
label: dataFieldForAction.Label?.toString(),
|
|
276
276
|
isNavigable: action.isNavigable,
|
|
277
|
-
defaultValuesExtensionFunction: action.defaultValuesExtensionFunction
|
|
277
|
+
defaultValuesExtensionFunction: action.defaultValuesExtensionFunction,
|
|
278
|
+
disableStrictHandling: action.disableStrictHandling
|
|
278
279
|
};
|
|
279
280
|
if (!action.command) {
|
|
280
281
|
pressEvent = {
|
|
@@ -310,6 +311,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/base/ClassS
|
|
|
310
311
|
enabled: action.enabled,
|
|
311
312
|
type: CriticalityFormatters.buildExpressionForCriticalityButtonType(dataFieldContextModelPath),
|
|
312
313
|
icon: action?.isAIOperation === true ? aiIcon : undefined,
|
|
314
|
+
ariaDescribedBy: action?.isAIOperation === true ? ["fe::AiAction::AriaText"] : undefined,
|
|
313
315
|
children: {
|
|
314
316
|
layoutData: _jsx(OverflowToolbarLayoutData, {
|
|
315
317
|
priority: action.priority,
|
|
@@ -343,6 +345,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/base/ClassS
|
|
|
343
345
|
visible: action.visible,
|
|
344
346
|
enabled: action.enabled,
|
|
345
347
|
icon: action?.isAIOperation === true ? aiIcon : undefined,
|
|
348
|
+
ariaDescribedBy: action?.isAIOperation === true ? ["fe::AiAction::AriaText"] : undefined,
|
|
346
349
|
children: [{
|
|
347
350
|
layoutData: _jsx(OverflowToolbarLayoutData, {
|
|
348
351
|
priority: action.priority,
|
|
@@ -449,4 +452,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/base/ClassS
|
|
|
449
452
|
_exports = FooterContent;
|
|
450
453
|
return _exports;
|
|
451
454
|
}, false);
|
|
452
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb290ZXJDb250ZW50IiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJpbXBsZW1lbnRJbnRlcmZhY2UiLCJfZGVjMyIsIl9kZWM0IiwicHJvcGVydHkiLCJ0eXBlIiwicmVxdWlyZWQiLCJfZGVjNSIsIl9kZWM2IiwiX2RlYzciLCJkZWZpbmVSZWZlcmVuY2UiLCJfZGVjOCIsImNvbnRyb2xsZXJFeHRlbnNpb25IYW5kbGVyIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrIiwicHJvcHMiLCJvdGhlcnMiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2hpZGVDcmVhdGVOZXh0IiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uQWZ0ZXJCaW5kaW5nIiwiX2hpZGRlbkRyYWZ0IiwiY29udHJvbGxlciIsIl9nZXRPd25lciIsImdldFJvb3RDb250cm9sbGVyIiwidmlld0NvbnRleHQiLCJnZXRWaWV3IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJpc05ld09iamVjdCIsImVkaXRGbG93IiwiaXNSb290Q29udGV4dE5ldyIsImdldE1vZGVsIiwic2V0UHJvcGVydHkiLCJpbml0aWFsaXplIiwib3duZXIiLCJzZXRNb2RlbCIsIkpTT05Nb2RlbCIsImFjdGlvbnMiLCJwcmVwcm9jZXNzb3JDb250ZXh0IiwiYmluZGluZ0NvbnRleHRzIiwiY29udmVydGVyQ29udGV4dCIsImdldE9iamVjdCIsImNvbnRleHRQYXRoVG9Vc2UiLCJmdWxsQ29udGV4dFBhdGgiLCJvRGF0YU1ldGFNb2RlbCIsIm1vZGVscyIsIm1ldGFNb2RlbCIsImRhdGFWaWV3TW9kZWxQYXRoIiwiZ2V0RGF0YU1vZGVsT2JqZWN0Rm9yTWV0YVBhdGgiLCJtZXRhUGF0aCIsImNvbnRleHRQYXRoIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJpc0RyYWZ0VmFsaWRhdGlvbiIsIk1vZGVsSGVscGVyIiwiZ2V0RHJhZnRSb290IiwiUHJlcGFyYXRpb25BY3Rpb24iLCJlbnRpdHlUeXBlIiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJNZXNzYWdlcyIsImNvbnRlbnQiLCJjcmVhdGVDb250ZW50Iiwib25NZXRhZGF0YUF2YWlsYWJsZSIsImdldEFwcENvbXBvbmVudCIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwiZ2V0Q2FwYWJpbGl0aWVzIiwiSGlkZGVuRHJhZnQiLCJlbmFibGVkIiwiaGlkZUNyZWF0ZU5leHQiLCJnZXRBY3Rpb25Nb2RlbFBhdGgiLCJhY3Rpb24iLCJhbm5vdGF0aW9uUGF0aCIsImFjdGlvbkNvbnRleHQiLCJnZXRDb250ZXh0IiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIiwidW5kZWZpbmVkIiwiZ2V0RHJhZnRJbmRpY2F0b3IiLCJlbnRpdHlTZXQiLCJ0YXJnZXRFbnRpdHlTZXQiLCJjb21tb25Bbm5vdGF0aW9uIiwiRHJhZnRSb290IiwiRHJhZnROb2RlIiwiX2pzeCIsIkRyYWZ0SW5kaWNhdG9yIiwic3RhdGUiLCJ2aXNpYmxlIiwiZ2V0QXBwbHlCdXR0b24iLCJlbXBoYXNpemVkRXhwcmVzc2lvbiIsInZpZXdEYXRhIiwiZ2V0Vmlld0RhdGEiLCJ2aWV3TGV2ZWwiLCJpc0Rlc2t0b3AiLCJmY2xFbmFibGVkIiwiTWVudUJ1dHRvbiIsInRleHQiLCJkZWZhdWx0QWN0aW9uIiwiX2FwcGx5RG9jdW1lbnQiLCJ1c2VEZWZhdWx0QWN0aW9uT25seSIsImJ1dHRvbk1vZGUiLCJjaGlsZHJlbiIsIk1lbnUiLCJNZW51SXRlbSIsInByZXNzIiwiX3ZhbGlkYXRlRG9jdW1lbnQiLCJCdXR0b24iLCJpZCIsImNyZWF0ZUlkIiwiZ2V0UHJpbWFyeSIsImhpZGRlbkRyYWZ0IiwiYWRkRGVwZW5kZW50IiwiQ29tbWFuZEV4ZWN1dGlvbiIsInJlZiIsImNtZEV4ZWN1dGlvbiIsImNvbW1hbmQiLCJleGVjdXRlIiwiX3NhdmVEb2N1bWVudCIsIm9yIiwiaWZFbHNlIiwiYW5kIiwiVUkiLCJJc0VkaXRhYmxlIiwiZXF1YWwiLCJwYXRoSW5Nb2RlbCIsImdldFRleHRTYXZlQnV0dG9uIiwiY29tcGlsZUV4cHJlc3Npb24iLCJsYXlvdXREYXRhIiwiT3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YSIsInByaW9yaXR5IiwiZ3JvdXAiLCJzYXZlQnV0dG9uVGV4dCIsImdldFRyYW5zbGF0ZWRUZXh0IiwiY3JlYXRlQnV0dG9uVGV4dCIsIlNlc3Npb24iLCJTdGlja3lTZXNzaW9uU3VwcG9ydGVkIiwiSXNDcmVhdGVNb2RlIiwiRHJhZnQiLCJJc05ld09iamVjdCIsImdldENhbmNlbEJ1dHRvbiIsIl9jYW5jZWxEb2N1bWVudCIsImNhbmNlbEJ1dHRvbiIsImlzRHJhZnRSb290IiwiYXJpYUhhc1BvcHVwIiwiY29uc3RhbnQiLCJjbG9zZU92ZXJmbG93T25JbnRlcmFjdGlvbiIsImdldENyZWF0ZU5leHRCdXR0b24iLCJjcmVhdGVOZXh0RG9jdW1lbnQiLCJnZXRUb29sYmFyU2VwYXJhdG9yIiwiVG9vbGJhclNlcGFyYXRvciIsImdldERhdGFGaWVsZEZvckFjdGlvbkJ1dHRvbiIsInByZXNzRXZlbnQiLCJ2aWV3IiwiYW5ub3RhdGlvblBhdGhDb250ZXh0IiwiZGF0YUZpZWxkQ29udGV4dE1vZGVsUGF0aCIsImRhdGFGaWVsZEZvckFjdGlvbiIsInRhcmdldE9iamVjdCIsImFjdGlvblBhcmFtZXRlcnMiLCJlbnRpdHlTZXROYW1lIiwibmFtZSIsImludm9jYXRpb25Hcm91cGluZyIsIkludm9jYXRpb25Hcm91cGluZyIsImxpYnJhcnkiLCJDaGFuZ2VTZXQiLCJJc29sYXRlZCIsImxhYmVsIiwiTGFiZWwiLCJ0b1N0cmluZyIsImlzTmF2aWdhYmxlIiwiZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9uIiwiaGFuZGxlcnMiLCJvbkNhbGxBY3Rpb24iLCJBY3Rpb24iLCJjb250ZXh0cyIsIm1vZGVsIiwic3RhcnRzV2l0aCIsImlzQWN0aW9uV2l0aERpYWxvZyIsIkNyaXRpY2FsaXR5Rm9ybWF0dGVycyIsImJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5QnV0dG9uVHlwZSIsImljb24iLCJpc0FJT3BlcmF0aW9uIiwiYWlJY29uIiwiZ2V0TWFuaWZlc3RCdXR0b24iLCJPYmplY3RQYWdlVGVtcGxhdGluZyIsImlzTWFuaWZlc3RBY3Rpb24iLCJldmVudCIsIkZQTUhlbHBlciIsImFjdGlvbldyYXBwZXIiLCJoYW5kbGVyTW9kdWxlIiwiaGFuZGxlck1ldGhvZCIsImNhdGNoIiwiZXJyb3IiLCJMb2ciLCJfanN4cyIsImdldEFjdGlvbkNvbnRyb2xzIiwiZW1waGFzaXplZEJ1dHRvbkV4cHJlc3Npb24iLCJidWlsZEVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uIiwibWFwIiwiQWN0aW9uVHlwZSIsIkRlZmF1bHRBcHBseSIsIkRhdGFGaWVsZEZvckFjdGlvbiIsIlByaW1hcnkiLCJlbXBoYXNpemVkQnV0dG9uVG9vbEtpdEV4cCIsInJlc29sdmVCaW5kaW5nU3RyaW5nIiwiU2Vjb25kYXJ5IiwiQ3JlYXRlTmV4dCIsIlNlcGFyYXRvciIsImZpbHRlciIsIm1lc3NhZ2VCdXR0b24iLCJNZXNzYWdlQnV0dG9uIiwibWVzc2FnZUNoYW5nZSIsIl9nZXRGb290ZXJWaXNpYmlsaXR5IiwiYXJpYUxhYmVsbGVkQnkiLCJmb290ZXJCYXIiLCJPdmVyZmxvd1Rvb2xiYXIiLCJhc3luY01vZGUiLCJJbnZpc2libGVUZXh0IiwiVG9vbGJhclNwYWNlciIsImZpcmVQcmVzcyIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkZvb3RlckNvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5U2V0IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IERhdGFGaWVsZEZvckFjdGlvbiB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGFuZCwgY29tcGlsZUV4cHJlc3Npb24sIGNvbnN0YW50LCBlcXVhbCwgaWZFbHNlLCBvciwgcGF0aEluTW9kZWwsIHJlc29sdmVCaW5kaW5nU3RyaW5nIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBkZWZpbmVSZWZlcmVuY2UsIGRlZmluZVVJNUNsYXNzLCBpbXBsZW1lbnRJbnRlcmZhY2UsIHByb3BlcnR5LCB0eXBlIFByb3BlcnRpZXNPZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgQ29tbWFuZFByb3BlcnRpZXMsIFJlZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9qc3gtcnVudGltZS9qc3hcIjtcbmltcG9ydCBCdWlsZGluZ0Jsb2NrIGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9CdWlsZGluZ0Jsb2NrXCI7XG5pbXBvcnQgQ29tbWFuZEV4ZWN1dGlvbiBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbHMvQ29tbWFuZEV4ZWN1dGlvblwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlTWFuaWZlc3RTZXR0aW5ncywgSGlkZGVuRHJhZnQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHsgZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgeyBpc0FjdGlvbldpdGhEaWFsb2cgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9hbm5vdGF0aW9ucy9EYXRhRmllbGRcIjtcbmltcG9ydCB7IGFpSWNvbiwgdHlwZSBCYXNlQWN0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0FjdGlvblwiO1xuaW1wb3J0IHsgRHJhZnQsIFVJIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0hlbHBlclwiO1xuaW1wb3J0IEZQTUhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9GUE1IZWxwZXJcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBDb3JlTGliIH0gZnJvbSBcInNhcC9mZS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCBsaWJyYXJ5IGZyb20gXCJzYXAvZmUvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgKiBhcyBDcml0aWNhbGl0eUZvcm1hdHRlcnMgZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvQ3JpdGljYWxpdHlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgdHlwZSB7IERhdGFNb2RlbE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgTWVzc2FnZUJ1dHRvbiBmcm9tIFwic2FwL2ZlL21hY3Jvcy9tZXNzYWdlcy9NZXNzYWdlQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSBPYmplY3RQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL09iamVjdFBhZ2VDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcbmltcG9ydCBCdXR0b24gZnJvbSBcInNhcC9tL0J1dHRvblwiO1xuaW1wb3J0IERyYWZ0SW5kaWNhdG9yIGZyb20gXCJzYXAvbS9EcmFmdEluZGljYXRvclwiO1xuaW1wb3J0IE1lbnUgZnJvbSBcInNhcC9tL01lbnVcIjtcbmltcG9ydCBNZW51QnV0dG9uIGZyb20gXCJzYXAvbS9NZW51QnV0dG9uXCI7XG5pbXBvcnQgTWVudUl0ZW0gZnJvbSBcInNhcC9tL01lbnVJdGVtXCI7XG5pbXBvcnQgT3ZlcmZsb3dUb29sYmFyIGZyb20gXCJzYXAvbS9PdmVyZmxvd1Rvb2xiYXJcIjtcbmltcG9ydCBUb29sYmFyU3BhY2VyIGZyb20gXCJzYXAvbS9Ub29sYmFyU3BhY2VyXCI7XG5pbXBvcnQgdHlwZSBFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlCaW5kaW5nSW5mbyB9IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgSW52aXNpYmxlVGV4dCBmcm9tIFwic2FwL3VpL2NvcmUvSW52aXNpYmxlVGV4dFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbGxlciBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL0NvbnRyb2xsZXJcIjtcbmltcG9ydCB0eXBlIHsgJENvbnRyb2xTZXR0aW5ncyB9IGZyb20gXCJzYXAvdWkvbWRjL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVzdHJpY3RlZC1pbXBvcnRzXG5pbXBvcnQgeyBjb250cm9sbGVyRXh0ZW5zaW9uSGFuZGxlciB9IGZyb20gXCJzYXAvZmUvYmFzZS9Ib29rU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlc3RyaWN0ZWQtaW1wb3J0c1xuaW1wb3J0ICogYXMgT2JqZWN0UGFnZVRlbXBsYXRpbmcgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvT2JqZWN0UGFnZS9PYmplY3RQYWdlVGVtcGxhdGluZ1wiO1xuaW1wb3J0IE92ZXJmbG93VG9vbGJhckxheW91dERhdGEgZnJvbSBcInNhcC9tL092ZXJmbG93VG9vbGJhckxheW91dERhdGFcIjtcbmltcG9ydCBUb29sYmFyU2VwYXJhdG9yIGZyb20gXCJzYXAvbS9Ub29sYmFyU2VwYXJhdG9yXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcblxudHlwZSBDb250cm9sbGVyV2l0aEFjdGlvbiA9IENvbnRyb2xsZXIgJiB7XG5cdGhhbmRsZXJzOiB7XG5cdFx0b25DYWxsQWN0aW9uOiBGdW5jdGlvbjtcblx0fTtcbn07XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuRm9vdGVyQ29udGVudFwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRm9vdGVyQ29udGVudCBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8T3ZlcmZsb3dUb29sYmFyPiB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5Ub29sYmFyXCIpXG5cdF9faW1wbGVtZW50c19fc2FwX3VpX2NvcmVfVG9vbGJhciA9IHRydWU7XG5cblx0QGltcGxlbWVudEludGVyZmFjZShcInNhcC5tLklCYXJcIilcblx0X19pbXBsZW1lbnRzX19zYXBfbV9JQmFyID0gdHJ1ZTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0cmVxdWlyZWQ6IHRydWVcblx0fSlcblx0aWQhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdHJlcXVpcmVkOiB0cnVlXG5cdH0pXG5cdHB1YmxpYyBtZXRhUGF0aCE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGNvbnRleHRQYXRoPzogc3RyaW5nO1xuXG5cdEBkZWZpbmVSZWZlcmVuY2UoKVxuXHRjbWRFeGVjdXRpb24hOiBSZWY8Q29tbWFuZEV4ZWN1dGlvbj47XG5cblx0YWN0aW9ucz86IEJhc2VBY3Rpb25bXTtcblxuXHRvRGF0YU1ldGFNb2RlbCE6IE9EYXRhTWV0YU1vZGVsO1xuXG5cdGRhdGFWaWV3TW9kZWxQYXRoITogRGF0YU1vZGVsT2JqZWN0UGF0aDxFbnRpdHlTZXQ+O1xuXG5cdGlzRHJhZnRWYWxpZGF0aW9uITogYm9vbGVhbjtcblxuXHRfaGlkZGVuRHJhZnQhOiBib29sZWFuO1xuXG5cdHByaXZhdGUgX2hpZGVDcmVhdGVOZXh0ID0gZmFsc2U7XG5cblx0Y29uc3RydWN0b3IocHJvcHM6ICRDb250cm9sU2V0dGluZ3MgJiBQcm9wZXJ0aWVzT2Y8Rm9vdGVyQ29udGVudD4sIG90aGVycz86ICRDb250cm9sU2V0dGluZ3MpIHtcblx0XHRzdXBlcihwcm9wcywgb3RoZXJzKTtcblx0fVxuXG5cdEBjb250cm9sbGVyRXh0ZW5zaW9uSGFuZGxlcihcInJvdXRpbmdcIiwgXCJvbkFmdGVyQmluZGluZ1wiKVxuXHRwdWJsaWMgYXN5bmMgb25BZnRlckJpbmRpbmcodGhpczogRm9vdGVyQ29udGVudCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGlmICh0aGlzLl9oaWRkZW5EcmFmdCkge1xuXHRcdFx0Y29uc3QgY29udHJvbGxlciA9IHRoaXMuX2dldE93bmVyKCk/LmdldFJvb3RDb250cm9sbGVyKCkgYXMgUGFnZUNvbnRyb2xsZXI7XG5cdFx0XHRjb25zdCB2aWV3Q29udGV4dCA9IGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KCk7XG5cdFx0XHRjb25zdCBpc05ld09iamVjdCA9IGF3YWl0IGNvbnRyb2xsZXIuZWRpdEZsb3cuaXNSb290Q29udGV4dE5ldyh2aWV3Q29udGV4dCk7XG5cdFx0XHQodGhpcy5nZXRNb2RlbChcImZvb3RlckludGVybmFsXCIpIGFzIEpTT05Nb2RlbCkuc2V0UHJvcGVydHkoXCIvcm9vdElzTmV3T2JqZWN0XCIsIGlzTmV3T2JqZWN0KTtcblx0XHR9XG5cdH1cblxuXHRpbml0aWFsaXplKCk6IHZvaWQge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKTtcblx0XHR0aGlzLnNldE1vZGVsKG5ldyBKU09OTW9kZWwoKSwgXCJmb290ZXJJbnRlcm5hbFwiKTtcblx0XHR0aGlzLmFjdGlvbnMgPSBvd25lcj8ucHJlcHJvY2Vzc29yQ29udGV4dD8uYmluZGluZ0NvbnRleHRzPy5jb252ZXJ0ZXJDb250ZXh0Py5nZXRPYmplY3QoXCJmb290ZXJBY3Rpb25zXCIpO1xuXHRcdGNvbnN0IGNvbnRleHRQYXRoVG9Vc2UgPSBvd25lcj8ucHJlcHJvY2Vzc29yQ29udGV4dD8uZnVsbENvbnRleHRQYXRoO1xuXHRcdHRoaXMub0RhdGFNZXRhTW9kZWwgPSBvd25lcj8ucHJlcHJvY2Vzc29yQ29udGV4dD8ubW9kZWxzLm1ldGFNb2RlbCBhcyBPRGF0YU1ldGFNb2RlbDtcblx0XHR0aGlzLmRhdGFWaWV3TW9kZWxQYXRoID0gdGhpcy5nZXREYXRhTW9kZWxPYmplY3RGb3JNZXRhUGF0aCh0aGlzLm1ldGFQYXRoLCBjb250ZXh0UGF0aFRvVXNlID8/IHRoaXMuY29udGV4dFBhdGgpITtcblx0XHRjb25zdCBzdGFydGluZ0VudGl0eVNldCA9IHRoaXMuZGF0YVZpZXdNb2RlbFBhdGguc3RhcnRpbmdFbnRpdHlTZXQ7XG5cdFx0dGhpcy5pc0RyYWZ0VmFsaWRhdGlvbiA9ICEhKFxuXHRcdFx0TW9kZWxIZWxwZXIuZ2V0RHJhZnRSb290KHN0YXJ0aW5nRW50aXR5U2V0KT8uUHJlcGFyYXRpb25BY3Rpb24gJiYgc3RhcnRpbmdFbnRpdHlTZXQ/LmVudGl0eVR5cGUuYW5ub3RhdGlvbnMuQ29tbW9uPy5NZXNzYWdlc1xuXHRcdCk7XG5cdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdH1cblxuXHQvKipcblx0ICogSGFuZGxlciBmb3IgdGhlIG9uTWV0YWRhdGFBdmFpbGFibGUgZXZlbnQuXG5cdCAqL1xuXHRvbk1ldGFkYXRhQXZhaWxhYmxlKCk6IHZvaWQge1xuXHRcdGNvbnN0IGNvbnRyb2xsZXIgPSB0aGlzLl9nZXRPd25lcigpPy5nZXRSb290Q29udHJvbGxlcigpIGFzIE9iamVjdFBhZ2VDb250cm9sbGVyO1xuXHRcdHRoaXMuX2hpZGRlbkRyYWZ0ID0gKGNvbnRyb2xsZXIuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKS5nZXRDYXBhYmlsaXRpZXMoKS5IaWRkZW5EcmFmdCBhcyBIaWRkZW5EcmFmdClcblx0XHRcdD8uZW5hYmxlZDtcblx0XHR0aGlzLl9oaWRlQ3JlYXRlTmV4dCA9XG5cdFx0XHQoY29udHJvbGxlci5nZXRBcHBDb21wb25lbnQoKS5nZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcygpLmdldENhcGFiaWxpdGllcygpLkhpZGRlbkRyYWZ0IGFzIEhpZGRlbkRyYWZ0KT8uaGlkZUNyZWF0ZU5leHQgPT09XG5cdFx0XHR0cnVlO1xuXHRcdGlmICghdGhpcy5jb250ZW50KSB7XG5cdFx0XHR0aGlzLmluaXRpYWxpemUoKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGdldEFjdGlvbk1vZGVsUGF0aChhY3Rpb246IEJhc2VBY3Rpb24pOiBEYXRhTW9kZWxPYmplY3RQYXRoPERhdGFGaWVsZEZvckFjdGlvbj4gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IGFubm90YXRpb25QYXRoID0gYWN0aW9uLmFubm90YXRpb25QYXRoO1xuXHRcdGlmIChhbm5vdGF0aW9uUGF0aCkge1xuXHRcdFx0Y29uc3QgYWN0aW9uQ29udGV4dCA9IHRoaXMub0RhdGFNZXRhTW9kZWwuZ2V0Q29udGV4dChhbm5vdGF0aW9uUGF0aCk7XG5cdFx0XHRyZXR1cm4gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzPERhdGFGaWVsZEZvckFjdGlvbj4oYWN0aW9uQ29udGV4dCk7XG5cdFx0fVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRnZXREcmFmdEluZGljYXRvcigpOiBEcmFmdEluZGljYXRvciB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgZW50aXR5U2V0ID0gKHRoaXMuZGF0YVZpZXdNb2RlbFBhdGgudGFyZ2V0RW50aXR5U2V0IHx8IHRoaXMuZGF0YVZpZXdNb2RlbFBhdGguc3RhcnRpbmdFbnRpdHlTZXQpIGFzIEVudGl0eVNldDsgLy8gc3RhcnRpbmdFbnRpdHlTZXQgaXMgdXNlZCBvbiBjb250YWlubWVudCBzY2VuYXJpb1xuXHRcdGNvbnN0IGNvbW1vbkFubm90YXRpb24gPSBlbnRpdHlTZXQuYW5ub3RhdGlvbnM/LkNvbW1vbjtcblx0XHRpZiAoKGNvbW1vbkFubm90YXRpb24/LkRyYWZ0Um9vdCB8fCBjb21tb25Bbm5vdGF0aW9uPy5EcmFmdE5vZGUpICYmICF0aGlzLl9oaWRkZW5EcmFmdCkge1xuXHRcdFx0cmV0dXJuIDxEcmFmdEluZGljYXRvciBzdGF0ZT1cInt1aT4vZHJhZnRTdGF0dXN9XCIgdmlzaWJsZT1cInt1aT4vaXNFZGl0YWJsZX1cIiAvPjtcblx0XHR9XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdHByaXZhdGUgZ2V0QXBwbHlCdXR0b24oZW1waGFzaXplZEV4cHJlc3Npb246IFByb3BlcnR5QmluZGluZ0luZm8pOiBCdXR0b24gfCBNZW51QnV0dG9uIHwgbnVsbCB7XG5cdFx0Y29uc3QgY29udHJvbGxlciA9IHRoaXMuX2dldE93bmVyKCk/LmdldFJvb3RDb250cm9sbGVyKCkgYXMgT2JqZWN0UGFnZUNvbnRyb2xsZXI7XG5cdFx0Y29uc3Qgdmlld0RhdGEgPSBjb250cm9sbGVyLmdldFZpZXcoKS5nZXRWaWV3RGF0YSgpIGFzIEJhc2VNYW5pZmVzdFNldHRpbmdzO1xuXHRcdGlmICgodmlld0RhdGE/LnZpZXdMZXZlbCAhPSBudWxsICYmIHZpZXdEYXRhPy52aWV3TGV2ZWwgPD0gMSkgfHwgdGhpcy5faGlkZGVuRHJhZnQpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRpZiAodGhpcy5pc0RyYWZ0VmFsaWRhdGlvbiAmJiAhdmlld0RhdGEuaXNEZXNrdG9wICYmICF2aWV3RGF0YS5mY2xFbmFibGVkKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQ8TWVudUJ1dHRvblxuXHRcdFx0XHRcdHRleHQ9XCJ7c2FwLmZlLmkxOG4+VF9DT01NT05fT0JKRUNUX1BBR0VfQVBQTFlfRFJBRlR9XCJcblx0XHRcdFx0XHRkZWZhdWx0QWN0aW9uPXthc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdFx0XHRcdFx0XHRhd2FpdCBjb250cm9sbGVyLl9hcHBseURvY3VtZW50KGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KCkpO1xuXHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0dXNlRGVmYXVsdEFjdGlvbk9ubHk9XCJ0cnVlXCJcblx0XHRcdFx0XHRidXR0b25Nb2RlPVwiU3BsaXRcIlxuXHRcdFx0XHRcdHR5cGU9e2VtcGhhc2l6ZWRFeHByZXNzaW9ufVxuXHRcdFx0XHRcdGR0OmRlc2lnbnRpbWU9XCJub3QtYWRhcHRhYmxlXCJcblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxNZW51PlxuXHRcdFx0XHRcdFx0PE1lbnVJdGVtXG5cdFx0XHRcdFx0XHRcdHRleHQ9XCJ7c2FwLmZlLmkxOG4+VF9DT01NT05fT0JKRUNUX1BBR0VfVkFMSURBVEVfRFJBRlR9XCJcblx0XHRcdFx0XHRcdFx0cHJlc3M9e2FzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRcdFx0XHRcdFx0XHRhd2FpdCBjb250cm9sbGVyLl92YWxpZGF0ZURvY3VtZW50KCk7XG5cdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdDwvTWVudT5cblx0XHRcdFx0PC9NZW51QnV0dG9uPlxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIChcblx0XHRcdDxCdXR0b25cblx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQoXCJTdGFuZGFyZEFjdGlvbjo6QXBwbHlcIil9XG5cdFx0XHRcdHRleHQ9XCJ7c2FwLmZlLmkxOG4+VF9DT01NT05fT0JKRUNUX1BBR0VfQVBQTFlfRFJBRlR9XCJcblx0XHRcdFx0dHlwZT17ZW1waGFzaXplZEV4cHJlc3Npb259XG5cdFx0XHRcdGVuYWJsZWQ9e3RydWV9XG5cdFx0XHRcdHByZXNzPXthc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdFx0XHRcdFx0YXdhaXQgY29udHJvbGxlci5fYXBwbHlEb2N1bWVudChjb250cm9sbGVyLmdldFZpZXcoKS5nZXRCaW5kaW5nQ29udGV4dCgpKTtcblx0XHRcdFx0fX1cblx0XHRcdFx0dmlzaWJsZT1cInt1aT4vaXNFZGl0YWJsZX1cIlxuXHRcdFx0XHRkdDpkZXNpZ250aW1lPVwibm90LWFkYXB0YWJsZVwiXG5cdFx0XHQvPlxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIGdldFByaW1hcnkoZW1waGFzaXplZEV4cHJlc3Npb24/OiBQcm9wZXJ0eUJpbmRpbmdJbmZvLCBhY3Rpb24/OiBCYXNlQWN0aW9uKTogQnV0dG9uIHwgTWVudUJ1dHRvbiB8IG51bGwge1xuXHRcdGNvbnN0IGNvbnRyb2xsZXIgPSB0aGlzLl9nZXRPd25lcigpPy5nZXRSb290Q29udHJvbGxlcigpIGFzIE9iamVjdFBhZ2VDb250cm9sbGVyO1xuXHRcdGNvbnN0IGhpZGRlbkRyYWZ0ID0gKGNvbnRyb2xsZXIuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKS5nZXRDYXBhYmlsaXRpZXMoKS5IaWRkZW5EcmFmdCBhcyBIaWRkZW5EcmFmdClcblx0XHRcdD8uZW5hYmxlZDtcblx0XHRjb25zdCB2aWV3RGF0YSA9IGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldFZpZXdEYXRhKCkgYXMgQmFzZU1hbmlmZXN0U2V0dGluZ3M7XG5cdFx0Y29udHJvbGxlclxuXHRcdFx0LmdldFZpZXcoKVxuXHRcdFx0LmFkZERlcGVuZGVudChcblx0XHRcdFx0PENvbW1hbmRFeGVjdXRpb25cblx0XHRcdFx0XHRyZWY9e3RoaXMuY21kRXhlY3V0aW9ufVxuXHRcdFx0XHRcdGNvbW1hbmQ9XCJTYXZlXCJcblx0XHRcdFx0XHRleGVjdXRlPXtjb250cm9sbGVyLl9zYXZlRG9jdW1lbnR9XG5cdFx0XHRcdFx0dmlzaWJsZT17b3IoXG5cdFx0XHRcdFx0XHRpZkVsc2UoXG5cdFx0XHRcdFx0XHRcdGhpZGRlbkRyYWZ0ID09PSB0cnVlLFxuXHRcdFx0XHRcdFx0XHRpZkVsc2UoXG5cdFx0XHRcdFx0XHRcdFx0dmlld0RhdGEuZmNsRW5hYmxlZCA9PT0gdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHRhbmQoVUkuSXNFZGl0YWJsZSwgZXF1YWwocGF0aEluTW9kZWwoXCIvc2hvd1NhdmVBbmRDYW5jZWxCdXR0b25cIiwgXCJmY2xoZWxwZXJcIiksIHRydWUpKSxcblx0XHRcdFx0XHRcdFx0XHRVSS5Jc0VkaXRhYmxlXG5cdFx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRcdFVJLklzRWRpdGFibGVcblx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRlcXVhbChwYXRoSW5Nb2RlbChcIi9pc0lubGluZUVkaXRBY3RpdmVcIiwgXCJ1aVwiKSwgdHJ1ZSlcblx0XHRcdFx0XHQpfVxuXHRcdFx0XHQvPlxuXHRcdFx0KTtcblx0XHRpZiAodGhpcy5pc0RyYWZ0VmFsaWRhdGlvbiAmJiAhdmlld0RhdGEuaXNEZXNrdG9wKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQ8TWVudUJ1dHRvblxuXHRcdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VGV4dFNhdmVCdXR0b24oKX1cblx0XHRcdFx0XHRqc3g6Y29tbWFuZD1cImNtZDpTYXZlfGRlZmF1bHRBY3Rpb25cIlxuXHRcdFx0XHRcdHVzZURlZmF1bHRBY3Rpb25Pbmx5PVwidHJ1ZVwiXG5cdFx0XHRcdFx0YnV0dG9uTW9kZT1cIlNwbGl0XCJcblx0XHRcdFx0XHR0eXBlPXtlbXBoYXNpemVkRXhwcmVzc2lvbn1cblx0XHRcdFx0XHR2aXNpYmxlPXtjb21waWxlRXhwcmVzc2lvbihcblx0XHRcdFx0XHRcdGlmRWxzZShcblx0XHRcdFx0XHRcdFx0aGlkZGVuRHJhZnQgPT09IHRydWUsXG5cdFx0XHRcdFx0XHRcdGlmRWxzZShcblx0XHRcdFx0XHRcdFx0XHR2aWV3RGF0YS5mY2xFbmFibGVkID09PSB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdGFuZChVSS5Jc0VkaXRhYmxlLCBlcXVhbChwYXRoSW5Nb2RlbChcIi9zaG93U2F2ZUFuZENhbmNlbEJ1dHRvblwiLCBcImZjbGhlbHBlclwiKSwgdHJ1ZSkpLFxuXHRcdFx0XHRcdFx0XHRcdFVJLklzRWRpdGFibGVcblx0XHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdFx0VUkuSXNFZGl0YWJsZVxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0ZHQ6ZGVzaWdudGltZT1cIm5vdC1hZGFwdGFibGVcIlxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0PE1lbnU+XG5cdFx0XHRcdFx0XHQ8TWVudUl0ZW1cblx0XHRcdFx0XHRcdFx0dGV4dD1cIntzYXAuZmUuaTE4bj5UX0NPTU1PTl9PQkpFQ1RfUEFHRV9WQUxJREFURV9EUkFGVH1cIlxuXHRcdFx0XHRcdFx0XHRwcmVzcz17YXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGF3YWl0IGNvbnRyb2xsZXIuX3ZhbGlkYXRlRG9jdW1lbnQoKTtcblx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0PC9NZW51PlxuXHRcdFx0XHQ8L01lbnVCdXR0b24+XG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdHJldHVybiAoXG5cdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdGlkPXt0aGlzLmNyZWF0ZUlkKFwiU3RhbmRhcmRBY3Rpb246OlNhdmVcIil9XG5cdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VGV4dFNhdmVCdXR0b24oKX1cblx0XHRcdFx0dHlwZT17ZW1waGFzaXplZEV4cHJlc3Npb259XG5cdFx0XHRcdHZpc2libGU9e2NvbXBpbGVFeHByZXNzaW9uKFxuXHRcdFx0XHRcdGlmRWxzZShcblx0XHRcdFx0XHRcdGhpZGRlbkRyYWZ0ID09PSB0cnVlLFxuXHRcdFx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdFx0XHR2aWV3RGF0YS5mY2xFbmFibGVkID09PSB0cnVlLFxuXHRcdFx0XHRcdFx0XHRhbmQoVUkuSXNFZGl0YWJsZSwgZXF1YWwocGF0aEluTW9kZWwoXCIvc2hvd1NhdmVBbmRDYW5jZWxCdXR0b25cIiwgXCJmY2xoZWxwZXJcIiksIHRydWUpKSxcblx0XHRcdFx0XHRcdFx0VUkuSXNFZGl0YWJsZVxuXHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdFVJLklzRWRpdGFibGVcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCl9XG5cdFx0XHRcdGVuYWJsZWQ9e3RydWV9XG5cdFx0XHRcdGpzeDpjb21tYW5kPVwiY21kOlNhdmV8cHJlc3NcIlxuXHRcdFx0XHRkdDpkZXNpZ250aW1lPVwibm90LWFkYXB0YWJsZVwiXG5cdFx0XHQ+XG5cdFx0XHRcdHt7XG5cdFx0XHRcdFx0bGF5b3V0RGF0YTogPE92ZXJmbG93VG9vbGJhckxheW91dERhdGEgcHJpb3JpdHk9e2FjdGlvbj8ucHJpb3JpdHl9IGdyb3VwPXthY3Rpb24/Lmdyb3VwfT48L092ZXJmbG93VG9vbGJhckxheW91dERhdGE+XG5cdFx0XHRcdH19XG5cdFx0XHQ8L0J1dHRvbj5cblx0XHQpO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRUZXh0U2F2ZUJ1dHRvbigpOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248c3RyaW5nPiB7XG5cdFx0Y29uc3Qgc2F2ZUJ1dHRvblRleHQgPSB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiVF9PUF9PQkpFQ1RfUEFHRV9TQVZFXCIpO1xuXHRcdGNvbnN0IGNyZWF0ZUJ1dHRvblRleHQgPSB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiVF9PUF9PQkpFQ1RfUEFHRV9DUkVBVEVcIik7XG5cdFx0Ly8gSWYgd2UncmUgaW4gc3RpY2t5IG1vZGUgIC0+IHRoZSB1aSBpcyBpbiBjcmVhdGUgbW9kZSwgc2hvdyBDcmVhdGUsIGVsc2Ugc2hvdyBTYXZlXG5cdFx0Ly8gSWYgbm90IC0+IHdlJ3JlIGluIGRyYWZ0IG9yIGhpZGRlbiBkcmFmdFxuXHRcdC8vIEluIGNhc2Ugb2YgZHJhZnQgaWYgaXQgaXMgYSBuZXcgb2JqZWN0ICghSXNBY3RpdmVFbnRpdHkgJiYgIUhhc0FjdGl2ZUVudGl0eSksIHNob3cgY3JlYXRlLCBlbHNlIHNob3cgc2F2ZVxuXHRcdC8vIEluIGNhc2Ugb2YgaGlkZGVuIGRyYWZ0IHRoZSBidXR0b24gc2hvd3MgdXAgaW4gYWxsIHBhZ2VzIGFuZCBmb2xsb3dzIHRoZSBiZWxvdyBjcml0ZXJpYVxuXHRcdC8vIFx0XHRJZiB0aGUgcm9vdCBvYmplY3QgaXMgYSBuZXcgb2JqZWN0ICghSXNBY3RpdmVFbnRpdHkgJiYgIUhhc0FjdGl2ZUVudGl0eSkgdGhlbiBhbGwgcGFnZXMgc2hvdWxkIHNob3cgQ3JlYXRlLlxuXHRcdC8vIFx0XHRJZiB0aGUgcm9vciBvYmplY3QgaXMgbm90IGEgbmV3IG9iamVjdCB0aGVuIGFsbCBwYWdlcyBzaG91bGQgc2hvdyBTYXZlLlxuXHRcdHJldHVybiBpZkVsc2UoXG5cdFx0XHRpZkVsc2UoXG5cdFx0XHRcdCh0aGlzLmRhdGFWaWV3TW9kZWxQYXRoLnN0YXJ0aW5nRW50aXR5U2V0IGFzIEVudGl0eVNldCkuYW5ub3RhdGlvbnMuU2Vzc2lvbj8uU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCAhPT0gdW5kZWZpbmVkLFxuXHRcdFx0XHRVSS5Jc0NyZWF0ZU1vZGUsXG5cdFx0XHRcdGlmRWxzZSh0aGlzLl9oaWRkZW5EcmFmdCwgYW5kKHBhdGhJbk1vZGVsKFwiL3Jvb3RJc05ld09iamVjdFwiLCBcImZvb3RlckludGVybmFsXCIpKSwgRHJhZnQuSXNOZXdPYmplY3QpXG5cdFx0XHQpLFxuXHRcdFx0Y3JlYXRlQnV0dG9uVGV4dCxcblx0XHRcdHNhdmVCdXR0b25UZXh0XG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0Q2FuY2VsQnV0dG9uKGFjdGlvbj86IEJhc2VBY3Rpb24pOiBCdXR0b24gfCBudWxsIHtcblx0XHRjb25zdCBjb250cm9sbGVyID0gdGhpcy5fZ2V0T3duZXIoKT8uZ2V0Um9vdENvbnRyb2xsZXIoKSBhcyBPYmplY3RQYWdlQ29udHJvbGxlcjtcblx0XHRjb25zdCBoaWRkZW5EcmFmdCA9IChjb250cm9sbGVyLmdldEFwcENvbXBvbmVudCgpLmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCkuZ2V0Q2FwYWJpbGl0aWVzKCkuSGlkZGVuRHJhZnQgYXMgSGlkZGVuRHJhZnQpXG5cdFx0XHQ/LmVuYWJsZWQ7XG5cdFx0Y29uc3Qgdmlld0RhdGEgPSBjb250cm9sbGVyLmdldFZpZXcoKS5nZXRWaWV3RGF0YSgpIGFzIEJhc2VNYW5pZmVzdFNldHRpbmdzO1xuXHRcdGNvbnRyb2xsZXIuZ2V0VmlldygpLmFkZERlcGVuZGVudChcblx0XHRcdDxDb21tYW5kRXhlY3V0aW9uXG5cdFx0XHRcdHJlZj17dGhpcy5jbWRFeGVjdXRpb259XG5cdFx0XHRcdGNvbW1hbmQ9XCJDYW5jZWxcIlxuXHRcdFx0XHRleGVjdXRlPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0Y29udHJvbGxlci5fY2FuY2VsRG9jdW1lbnQoeyBjYW5jZWxCdXR0b246IFwiZmU6OkZvb3RlckJhcjo6U3RhbmRhcmRBY3Rpb246OkNhbmNlbFwiIH0pO1xuXHRcdFx0XHR9fVxuXHRcdFx0XHR2aXNpYmxlPXtpZkVsc2UoXG5cdFx0XHRcdFx0aGlkZGVuRHJhZnQgPT09IHRydWUsXG5cdFx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdFx0dmlld0RhdGEuZmNsRW5hYmxlZCA9PT0gdHJ1ZSxcblx0XHRcdFx0XHRcdGFuZChVSS5Jc0VkaXRhYmxlLCBlcXVhbChwYXRoSW5Nb2RlbChcIi9zaG93U2F2ZUFuZENhbmNlbEJ1dHRvblwiLCBcImZjbGhlbHBlclwiKSwgdHJ1ZSkpLFxuXHRcdFx0XHRcdFx0VUkuSXNFZGl0YWJsZVxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0VUkuSXNFZGl0YWJsZVxuXHRcdFx0XHQpfVxuXHRcdFx0Lz5cblx0XHQpO1xuXHRcdC8vIE92ZXJmbG93VG9vbGJhckxheW91dERhdGEgc2V0dGluZyBpcyBuZWVkZWQgd2hlbiB0aGUgZGlzY2FyZCBidXR0b24gaXMgaW4gdGhlIG92ZXJmbG93XG5cdFx0cmV0dXJuIChcblx0XHRcdDxCdXR0b25cblx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQoXCJTdGFuZGFyZEFjdGlvbjo6Q2FuY2VsXCIpfVxuXHRcdFx0XHR0ZXh0PXtcblx0XHRcdFx0XHRNb2RlbEhlbHBlci5pc0RyYWZ0Um9vdCh0aGlzLmRhdGFWaWV3TW9kZWxQYXRoLnRhcmdldEVudGl0eVNldCkgJiYgIXRoaXMuX2hpZGRlbkRyYWZ0XG5cdFx0XHRcdFx0XHQ/IFwie3NhcC5mZS5pMThuPkNfQ09NTU9OX09CSkVDVF9QQUdFX0RJU0NBUkRfRFJBRlR9XCJcblx0XHRcdFx0XHRcdDogXCJ7c2FwLmZlLmkxOG4+Q19DT01NT05fT0JKRUNUX1BBR0VfQ0FOQ0VMfVwiXG5cdFx0XHRcdH1cblx0XHRcdFx0anN4OmNvbW1hbmQ9XCJjbWQ6Q2FuY2VsfHByZXNzXCJcblx0XHRcdFx0dmlzaWJsZT17Y29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdFx0aGlkZGVuRHJhZnQgPT09IHRydWUsXG5cdFx0XHRcdFx0XHRpZkVsc2UoXG5cdFx0XHRcdFx0XHRcdHZpZXdEYXRhLmZjbEVuYWJsZWQgPT09IHRydWUsXG5cdFx0XHRcdFx0XHRcdGFuZChVSS5Jc0VkaXRhYmxlLCBlcXVhbChwYXRoSW5Nb2RlbChcIi9zaG93U2F2ZUFuZENhbmNlbEJ1dHRvblwiLCBcImZjbGhlbHBlclwiKSwgdHJ1ZSkpLFxuXHRcdFx0XHRcdFx0XHRVSS5Jc0VkaXRhYmxlXG5cdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdFx0VUkuSXNFZGl0YWJsZVxuXHRcdFx0XHRcdClcblx0XHRcdFx0KX1cblx0XHRcdFx0YXJpYUhhc1BvcHVwPXtpZkVsc2UocGF0aEluTW9kZWwoXCIvaXNEb2N1bWVudE1vZGlmaWVkXCIsIFwidWlcIiksIGNvbnN0YW50KFwiRGlhbG9nXCIpLCBjb25zdGFudChcIk5vbmVcIikpfVxuXHRcdFx0XHRlbmFibGVkPXt0cnVlfVxuXHRcdFx0XHRkdDpkZXNpZ250aW1lPVwibm90LWFkYXB0YWJsZVwiXG5cdFx0XHQ+XG5cdFx0XHRcdHt7XG5cdFx0XHRcdFx0bGF5b3V0RGF0YTogKFxuXHRcdFx0XHRcdFx0PE92ZXJmbG93VG9vbGJhckxheW91dERhdGFcblx0XHRcdFx0XHRcdFx0cHJpb3JpdHk9e2FjdGlvbj8ucHJpb3JpdHl9XG5cdFx0XHRcdFx0XHRcdGNsb3NlT3ZlcmZsb3dPbkludGVyYWN0aW9uPXtmYWxzZX1cblx0XHRcdFx0XHRcdD48L092ZXJmbG93VG9vbGJhckxheW91dERhdGE+XG5cdFx0XHRcdFx0KVxuXHRcdFx0XHR9fVxuXHRcdFx0PC9CdXR0b24+XG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0Q3JlYXRlTmV4dEJ1dHRvbihlbXBoYXNpemVkRXhwcmVzc2lvbjogUHJvcGVydHlCaW5kaW5nSW5mbyk6IEJ1dHRvbiB8IG51bGwge1xuXHRcdGNvbnN0IGNvbnRyb2xsZXIgPSB0aGlzLl9nZXRPd25lcigpPy5nZXRSb290Q29udHJvbGxlcigpIGFzIE9iamVjdFBhZ2VDb250cm9sbGVyO1xuXHRcdGNvbnN0IHZpZXdEYXRhID0gY29udHJvbGxlci5nZXRWaWV3KCkuZ2V0Vmlld0RhdGEoKSBhcyBCYXNlTWFuaWZlc3RTZXR0aW5ncztcblx0XHRyZXR1cm4gKFxuXHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRpZD17dGhpcy5jcmVhdGVJZChcIlN0YW5kYXJkQWN0aW9uOjpDcmVhdGVOZXh0XCIpfVxuXHRcdFx0XHR0ZXh0PXtcIntzYXAuZmUuaTE4bj5DX0NPTU1PTl9PQkpFQ1RfUEFHRV9DUkVBVEVfTkVYVH1cIn1cblx0XHRcdFx0cHJlc3M9e2NvbnRyb2xsZXIuZWRpdEZsb3cuY3JlYXRlTmV4dERvY3VtZW50fVxuXHRcdFx0XHR0eXBlPXtlbXBoYXNpemVkRXhwcmVzc2lvbn1cblx0XHRcdFx0dmlzaWJsZT17aWZFbHNlKFxuXHRcdFx0XHRcdHRoaXMuX2hpZGRlbkRyYWZ0ID09PSB0cnVlLFxuXHRcdFx0XHRcdGlmRWxzZShcblx0XHRcdFx0XHRcdHZpZXdEYXRhLmZjbEVuYWJsZWQgPT09IHRydWUsXG5cdFx0XHRcdFx0XHRhbmQoRHJhZnQuSXNOZXdPYmplY3QsIGVxdWFsKHBhdGhJbk1vZGVsKFwiL3Nob3dTYXZlQW5kQ2FuY2VsQnV0dG9uXCIsIFwiZmNsaGVscGVyXCIpLCB0cnVlKSksXG5cdFx0XHRcdFx0XHREcmFmdC5Jc05ld09iamVjdFxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0RHJhZnQuSXNOZXdPYmplY3Rcblx0XHRcdFx0KX1cblx0XHRcdFx0ZW5hYmxlZD17dHJ1ZX1cblx0XHRcdFx0ZHQ6ZGVzaWdudGltZT1cIm5vdC1hZGFwdGFibGVcIlxuXHRcdFx0PlxuXHRcdFx0XHR7eyBsYXlvdXREYXRhOiA8T3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YSBjbG9zZU92ZXJmbG93T25JbnRlcmFjdGlvbj17ZmFsc2V9PjwvT3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YT4gfX1cblx0XHRcdDwvQnV0dG9uPlxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIGdldFRvb2xiYXJTZXBhcmF0b3IoYWN0aW9uOiBCYXNlQWN0aW9uKTogVG9vbGJhclNlcGFyYXRvciB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxUb29sYmFyU2VwYXJhdG9yPlxuXHRcdFx0XHR7e1xuXHRcdFx0XHRcdGxheW91dERhdGE6IDxPdmVyZmxvd1Rvb2xiYXJMYXlvdXREYXRhIGdyb3VwPXthY3Rpb24uZ3JvdXB9PjwvT3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YT5cblx0XHRcdFx0fX1cblx0XHRcdDwvVG9vbGJhclNlcGFyYXRvcj5cblx0XHQpO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXREYXRhRmllbGRGb3JBY3Rpb25CdXR0b24oYWN0aW9uOiBCYXNlQWN0aW9uKTogQnV0dG9uIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAoYWN0aW9uLmFubm90YXRpb25QYXRoKSB7XG5cdFx0XHRjb25zdCBjb250cm9sbGVyID0gdGhpcy5fZ2V0T3duZXIoKT8uZ2V0Um9vdENvbnRyb2xsZXIoKSBhcyBPYmplY3RQYWdlQ29udHJvbGxlcjtcblx0XHRcdGNvbnN0IGFubm90YXRpb25QYXRoID0gYWN0aW9uLmFubm90YXRpb25QYXRoO1xuXHRcdFx0bGV0IHByZXNzRXZlbnQ6IHsgcHJlc3M6IChldmVudDogRXZlbnQpID0+IHZvaWQgfSB8IHsgXCJqc3g6Y29tbWFuZFwiOiBDb21tYW5kUHJvcGVydGllcyB9O1xuXHRcdFx0Y29uc3QgdmlldyA9IGNvbnRyb2xsZXIuZ2V0VmlldygpO1xuXHRcdFx0Y29uc3QgYW5ub3RhdGlvblBhdGhDb250ZXh0ID0gdGhpcy5vRGF0YU1ldGFNb2RlbC5nZXRDb250ZXh0KGFubm90YXRpb25QYXRoKTtcblx0XHRcdGNvbnN0IGRhdGFGaWVsZENvbnRleHRNb2RlbFBhdGggPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHM8RGF0YUZpZWxkRm9yQWN0aW9uPihhbm5vdGF0aW9uUGF0aENvbnRleHQpO1xuXHRcdFx0Y29uc3QgZGF0YUZpZWxkRm9yQWN0aW9uID0gZGF0YUZpZWxkQ29udGV4dE1vZGVsUGF0aC50YXJnZXRPYmplY3Q7XG5cdFx0XHRpZiAoZGF0YUZpZWxkRm9yQWN0aW9uKSB7XG5cdFx0XHRcdGNvbnN0IGFjdGlvblBhcmFtZXRlcnMgPSB7XG5cdFx0XHRcdFx0ZW50aXR5U2V0TmFtZTogdGhpcy5kYXRhVmlld01vZGVsUGF0aC50YXJnZXRFbnRpdHlTZXQ/Lm5hbWUsXG5cdFx0XHRcdFx0aW52b2NhdGlvbkdyb3VwaW5nOlxuXHRcdFx0XHRcdFx0ZGF0YUZpZWxkRm9yQWN0aW9uLkludm9jYXRpb25Hcm91cGluZyA9PT0gXCJVSS5PcGVyYXRpb25Hcm91cGluZ1R5cGUvQ2hhbmdlU2V0XCJcblx0XHRcdFx0XHRcdFx0PyAobGlicmFyeSBhcyBDb3JlTGliKS5JbnZvY2F0aW9uR3JvdXBpbmcuQ2hhbmdlU2V0XG5cdFx0XHRcdFx0XHRcdDogKGxpYnJhcnkgYXMgQ29yZUxpYikuSW52b2NhdGlvbkdyb3VwaW5nLklzb2xhdGVkLFxuXHRcdFx0XHRcdGxhYmVsOiBkYXRhRmllbGRGb3JBY3Rpb24uTGFiZWw/LnRvU3RyaW5nKCksXG5cdFx0XHRcdFx0aXNOYXZpZ2FibGU6IGFjdGlvbi5pc05hdmlnYWJsZSxcblx0XHRcdFx0XHRkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb246IGFjdGlvbi5kZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb25cblx0XHRcdFx0fTtcblx0XHRcdFx0aWYgKCFhY3Rpb24uY29tbWFuZCkge1xuXHRcdFx0XHRcdHByZXNzRXZlbnQgPSB7XG5cdFx0XHRcdFx0XHRwcmVzczogKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHQoY29udHJvbGxlciBhcyBDb250cm9sbGVyV2l0aEFjdGlvbikuaGFuZGxlcnMub25DYWxsQWN0aW9uKHZpZXcsIGRhdGFGaWVsZEZvckFjdGlvbi5BY3Rpb24gYXMgc3RyaW5nLCB7XG5cdFx0XHRcdFx0XHRcdFx0Li4uYWN0aW9uUGFyYW1ldGVycyxcblx0XHRcdFx0XHRcdFx0XHQuLi57XG5cdFx0XHRcdFx0XHRcdFx0XHRjb250ZXh0czogdmlldy5nZXRCaW5kaW5nQ29udGV4dCgpLFxuXHRcdFx0XHRcdFx0XHRcdFx0bW9kZWw6IHZpZXcuZ2V0TW9kZWwoKVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQvLyBjb21tYW5kIGNvbWluZyBmcm9tIHRoZSBtYW5pZmVzdCBkb2Vzbid0IGdldCB0aGUgbWFuZGF0b3J5IHByZWZpeCBcImNtZDpcIiBzbyB3ZSBuZWVkIHRvIGFkZCBpdFxuXHRcdFx0XHRcdGlmICghYWN0aW9uLmNvbW1hbmQuc3RhcnRzV2l0aChcImNtZDpcIikpIHtcblx0XHRcdFx0XHRcdGFjdGlvbi5jb21tYW5kID0gYGNtZDoke2FjdGlvbi5jb21tYW5kfWA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHByZXNzRXZlbnQgPSB7IFwianN4OmNvbW1hbmRcIjogYCR7YWN0aW9uLmNvbW1hbmR9fHByZXNzYCBhcyBDb21tYW5kUHJvcGVydGllcyB9O1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQodGhpcy5nZXRBY3Rpb25Nb2RlbFBhdGgoYWN0aW9uKSl9XG5cdFx0XHRcdFx0XHQvLyBUaGlzIGV4cHJlc3Npb24gY29uc2lkZXJzIGFjdGlvbnMgd2l0aCBkeW5hbWljIHZpc2liaWxpdHkuXG5cdFx0XHRcdFx0XHQvLyBXaGVuIHdlIGhhdmUgb3RoZXIgdmFsdWVzIHRoYW4gdHJ1ZSBvciBmYWxzZSwgaS5lLiBhbiBleHByZXNzaW9uLCB3ZSBleGNsdWRlIHRoZSBhY3Rpb25zIGZyb20gYWRhcHRpbmcgdGhlIHZpc2liaWxpdHkuXG5cdFx0XHRcdFx0XHRkdDpkZXNpZ250aW1lPXthY3Rpb24udmlzaWJsZSA9PT0gXCJ0cnVlXCIgfHwgYWN0aW9uLnZpc2libGUgPT09IFwiZmFsc2VcIiA/IHVuZGVmaW5lZCA6IFwibm90LWFkYXB0YWJsZS12aXNpYmlsaXR5XCJ9XG5cdFx0XHRcdFx0XHR0ZXh0PXthY3Rpb25QYXJhbWV0ZXJzLmxhYmVsfVxuXHRcdFx0XHRcdFx0ey4uLnByZXNzRXZlbnR9XG5cdFx0XHRcdFx0XHRhcmlhSGFzUG9wdXA9e2lzQWN0aW9uV2l0aERpYWxvZyhkYXRhRmllbGRDb250ZXh0TW9kZWxQYXRoLnRhcmdldE9iamVjdCl9XG5cdFx0XHRcdFx0XHR2aXNpYmxlPXthY3Rpb24udmlzaWJsZX1cblx0XHRcdFx0XHRcdGVuYWJsZWQ9e2FjdGlvbi5lbmFibGVkfVxuXHRcdFx0XHRcdFx0dHlwZT17Q3JpdGljYWxpdHlGb3JtYXR0ZXJzLmJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5QnV0dG9uVHlwZShkYXRhRmllbGRDb250ZXh0TW9kZWxQYXRoKX1cblx0XHRcdFx0XHRcdGljb249e2FjdGlvbj8uaXNBSU9wZXJhdGlvbiA9PT0gdHJ1ZSA/IGFpSWNvbiA6IHVuZGVmaW5lZH1cblx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0XHRsYXlvdXREYXRhOiAoXG5cdFx0XHRcdFx0XHRcdFx0PE92ZXJmbG93VG9vbGJhckxheW91dERhdGEgcHJpb3JpdHk9e2FjdGlvbi5wcmlvcml0eX0gZ3JvdXA9e2FjdGlvbi5ncm91cH0+PC9PdmVyZmxvd1Rvb2xiYXJMYXlvdXREYXRhPlxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdDwvQnV0dG9uPlxuXHRcdFx0XHQpIGFzIEJ1dHRvbjtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGdldE1hbmlmZXN0QnV0dG9uKGFjdGlvbjogQmFzZUFjdGlvbik6IEJ1dHRvbiB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKE9iamVjdFBhZ2VUZW1wbGF0aW5nLmlzTWFuaWZlc3RBY3Rpb24oYWN0aW9uKSkge1xuXHRcdFx0bGV0IHByZXNzRXZlbnQ6IHsgcHJlc3M6IChldmVudDogRXZlbnQpID0+IHZvaWQgfSB8IHsgXCJqc3g6Y29tbWFuZFwiOiBDb21tYW5kUHJvcGVydGllcyB9O1xuXHRcdFx0aWYgKGFjdGlvbi5jb21tYW5kKSB7XG5cdFx0XHRcdHByZXNzRXZlbnQgPSB7IFwianN4OmNvbW1hbmRcIjogYGNtZDoke2FjdGlvbi5jb21tYW5kfXxwcmVzc2AgfTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHByZXNzRXZlbnQgPSB7XG5cdFx0XHRcdFx0cHJlc3M6IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdEZQTUhlbHBlci5hY3Rpb25XcmFwcGVyKGV2ZW50LCBhY3Rpb24uaGFuZGxlck1vZHVsZSwgYWN0aW9uLmhhbmRsZXJNZXRob2QsIHt9KS5jYXRjaCgoZXJyb3I6IHVua25vd24pID0+XG5cdFx0XHRcdFx0XHRcdExvZy5lcnJvcihlcnJvciBhcyBzdHJpbmcpXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRpZD17dGhpcy5jcmVhdGVJZChhY3Rpb24uaWQpfVxuXHRcdFx0XHRcdGR0OmRlc2lnbnRpbWU9e2FjdGlvbi52aXNpYmxlID09PSBcInRydWVcIiB8fCBhY3Rpb24udmlzaWJsZSA9PT0gXCJmYWxzZVwiID8gdW5kZWZpbmVkIDogXCJub3QtYWRhcHRhYmxlLXZpc2liaWxpdHlcIn1cblx0XHRcdFx0XHR0ZXh0PXthY3Rpb24udGV4dCA/PyBcIlwifVxuXHRcdFx0XHRcdHsuLi5wcmVzc0V2ZW50fVxuXHRcdFx0XHRcdHR5cGU9XCJUcmFuc3BhcmVudFwiXG5cdFx0XHRcdFx0dmlzaWJsZT17YWN0aW9uLnZpc2libGV9XG5cdFx0XHRcdFx0ZW5hYmxlZD17YWN0aW9uLmVuYWJsZWR9XG5cdFx0XHRcdFx0aWNvbj17YWN0aW9uPy5pc0FJT3BlcmF0aW9uID09PSB0cnVlID8gYWlJY29uIDogdW5kZWZpbmVkfVxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdGxheW91dERhdGE6IDxPdmVyZmxvd1Rvb2xiYXJMYXlvdXREYXRhIHByaW9yaXR5PXthY3Rpb24ucHJpb3JpdHl9IGdyb3VwPXthY3Rpb24uZ3JvdXB9PjwvT3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YT5cblx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdOKAmlxuXHRcdFx0XHQ8L0J1dHRvbj5cblx0XHRcdCkgYXMgQnV0dG9uO1xuXHRcdH1cblx0fVxuXG5cdGdldEFjdGlvbkNvbnRyb2xzKCk6IEJ1dHRvbltdIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBlbXBoYXNpemVkQnV0dG9uRXhwcmVzc2lvbiA9IE9iamVjdFBhZ2VUZW1wbGF0aW5nLmJ1aWxkRW1waGFzaXplZEJ1dHRvbkV4cHJlc3Npb24odGhpcy5kYXRhVmlld01vZGVsUGF0aCk7XG5cdFx0cmV0dXJuIHRoaXMuYWN0aW9uc1xuXHRcdFx0Py5tYXAoKGFjdGlvbjogQmFzZUFjdGlvbikgPT4ge1xuXHRcdFx0XHRzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG5cdFx0XHRcdFx0Y2FzZSBBY3Rpb25UeXBlLkRlZmF1bHRBcHBseTpcblx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmdldEFwcGx5QnV0dG9uKGVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uKTtcblx0XHRcdFx0XHRjYXNlIEFjdGlvblR5cGUuRGF0YUZpZWxkRm9yQWN0aW9uOlxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0RGF0YUZpZWxkRm9yQWN0aW9uQnV0dG9uKGFjdGlvbik7XG5cdFx0XHRcdFx0Y2FzZSBBY3Rpb25UeXBlLlByaW1hcnk6XG5cdFx0XHRcdFx0XHRjb25zdCBjb250cm9sbGVyID0gdGhpcy5fZ2V0T3duZXIoKT8uZ2V0Um9vdENvbnRyb2xsZXIoKSBhcyBPYmplY3RQYWdlQ29udHJvbGxlcjtcblx0XHRcdFx0XHRcdGNvbnN0IHZpZXdEYXRhID0gY29udHJvbGxlci5nZXRWaWV3KCkuZ2V0Vmlld0RhdGEoKSBhcyBCYXNlTWFuaWZlc3RTZXR0aW5ncztcblx0XHRcdFx0XHRcdGNvbnN0IHZpZXdMZXZlbCA9IHZpZXdEYXRhPy52aWV3TGV2ZWwgPz8gMDtcblx0XHRcdFx0XHRcdGlmICh0aGlzLl9oaWRkZW5EcmFmdCAmJiAhdGhpcy5faGlkZUNyZWF0ZU5leHQgJiYgdmlld0xldmVsID4gMSkge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBlbXBoYXNpemVkQnV0dG9uVG9vbEtpdEV4cCA9IGVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uXG5cdFx0XHRcdFx0XHRcdFx0PyByZXNvbHZlQmluZGluZ1N0cmluZyhlbXBoYXNpemVkQnV0dG9uRXhwcmVzc2lvbilcblx0XHRcdFx0XHRcdFx0XHQ6IHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0UHJpbWFyeShjb21waWxlRXhwcmVzc2lvbihpZkVsc2UoRHJhZnQuSXNOZXdPYmplY3QsIHVuZGVmaW5lZCwgZW1waGFzaXplZEJ1dHRvblRvb2xLaXRFeHApKSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRQcmltYXJ5KGVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uLCBhY3Rpb24pO1xuXHRcdFx0XHRcdGNhc2UgQWN0aW9uVHlwZS5TZWNvbmRhcnk6XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRDYW5jZWxCdXR0b24oYWN0aW9uKTtcblx0XHRcdFx0XHRjYXNlIEFjdGlvblR5cGUuQ3JlYXRlTmV4dDpcblx0XHRcdFx0XHRcdGlmICh0aGlzLl9oaWRkZW5EcmFmdCAmJiAhdGhpcy5faGlkZUNyZWF0ZU5leHQpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgZW1waGFzaXplZEJ1dHRvblRvb2xLaXRFeHAgPSBlbXBoYXNpemVkQnV0dG9uRXhwcmVzc2lvblxuXHRcdFx0XHRcdFx0XHRcdD8gcmVzb2x2ZUJpbmRpbmdTdHJpbmcoZW1waGFzaXplZEJ1dHRvbkV4cHJlc3Npb24pXG5cdFx0XHRcdFx0XHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmdldENyZWF0ZU5leHRCdXR0b24oXG5cdFx0XHRcdFx0XHRcdFx0Y29tcGlsZUV4cHJlc3Npb24oaWZFbHNlKERyYWZ0LklzTmV3T2JqZWN0LCBlbXBoYXNpemVkQnV0dG9uVG9vbEtpdEV4cCwgdW5kZWZpbmVkKSlcblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRjYXNlIEFjdGlvblR5cGUuU2VwYXJhdG9yOlxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0VG9vbGJhclNlcGFyYXRvcihhY3Rpb24pO1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRNYW5pZmVzdEJ1dHRvbihhY3Rpb24pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdFx0LmZpbHRlcigoYWN0aW9uKTogYWN0aW9uIGlzIEJ1dHRvbiA9PiAhIWFjdGlvbik7XG5cdH1cblxuXHRjcmVhdGVDb250ZW50KCk6IE92ZXJmbG93VG9vbGJhciB7XG5cdFx0Y29uc3QgY29udHJvbGxlciA9IHRoaXMuX2dldE93bmVyKCk/LmdldFJvb3RDb250cm9sbGVyKCkgYXMgT2JqZWN0UGFnZUNvbnRyb2xsZXI7XG5cdFx0Y29uc3Qgdmlld0RhdGEgPSBjb250cm9sbGVyLmdldFZpZXcoKS5nZXRWaWV3RGF0YSgpIGFzIEJhc2VNYW5pZmVzdFNldHRpbmdzO1xuXHRcdGNvbnN0IG1lc3NhZ2VCdXR0b246IE1lc3NhZ2VCdXR0b24gPSAoXG5cdFx0XHQ8TWVzc2FnZUJ1dHRvblxuXHRcdFx0XHRpZD17dGhpcy5jcmVhdGVJZChcIk1lc3NhZ2VCdXR0b25cIil9XG5cdFx0XHRcdHZpc2libGU9e2NvbXBpbGVFeHByZXNzaW9uKFxuXHRcdFx0XHRcdGlmRWxzZShcblx0XHRcdFx0XHRcdHRoaXMuX2hpZGRlbkRyYWZ0ID09PSB0cnVlLFxuXHRcdFx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdFx0XHR2aWV3RGF0YS5mY2xFbmFibGVkID09PSB0cnVlLFxuXHRcdFx0XHRcdFx0XHRhbmQoVUkuSXNFZGl0YWJsZSwgZXF1YWwocGF0aEluTW9kZWwoXCIvc2hvd1NhdmVBbmRDYW5jZWxCdXR0b25cIiwgXCJmY2xoZWxwZXJcIiksIHRydWUpKSxcblx0XHRcdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdHRydWVcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCl9XG5cdFx0XHRcdG1lc3NhZ2VDaGFuZ2U9eygpOiB2b2lkID0+IGNvbnRyb2xsZXIuX2dldEZvb3RlclZpc2liaWxpdHkoKX1cblx0XHRcdFx0YXJpYUxhYmVsbGVkQnk9e1t0aGlzLmNyZWF0ZUlkKFwiTWVzc2FnZUJ1dHRvbjo6QXJpYVRleHRcIikgYXMgc3RyaW5nXX1cblx0XHRcdFx0dHlwZT1cIkVtcGhhc2l6ZWRcIlxuXHRcdFx0XHRhcmlhSGFzUG9wdXA9XCJEaWFsb2dcIlxuXHRcdFx0Lz5cblx0XHQpO1xuXHRcdGNvbnN0IGZvb3RlckJhciA9IChcblx0XHRcdDxPdmVyZmxvd1Rvb2xiYXIgaWQ9e3RoaXMuY3JlYXRlSWQoXCJfZmNcIil9IGFzeW5jTW9kZT17dHJ1ZX0+XG5cdFx0XHRcdDxJbnZpc2libGVUZXh0XG5cdFx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQoXCJNZXNzYWdlQnV0dG9uOjpBcmlhVGV4dFwiKX1cblx0XHRcdFx0XHR0ZXh0PVwie3NhcC5mZS5pMThuPkNfQ09NTU9OX1NBUEZFX0VSUk9SX01FU1NBR0VTX1BBR0VfQlVUVE9OX0FSSUFfVEVYVH1cIlxuXHRcdFx0XHQvPlxuXHRcdFx0XHR7bWVzc2FnZUJ1dHRvbn1cblx0XHRcdFx0PFRvb2xiYXJTcGFjZXIgLz5cblx0XHRcdFx0e3RoaXMuZ2V0RHJhZnRJbmRpY2F0b3IoKX1cblx0XHRcdFx0e3RoaXMuZ2V0QWN0aW9uQ29udHJvbHMoKX1cblx0XHRcdDwvT3ZlcmZsb3dUb29sYmFyPlxuXHRcdCk7XG5cdFx0Y29udHJvbGxlclxuXHRcdFx0LmdldFZpZXcoKVxuXHRcdFx0LmFkZERlcGVuZGVudChcblx0XHRcdFx0PENvbW1hbmRFeGVjdXRpb25cblx0XHRcdFx0XHRyZWY9e3RoaXMuY21kRXhlY3V0aW9ufVxuXHRcdFx0XHRcdGNvbW1hbmQ9XCJPcGVuTWVzc2FnZUJ1dHRvbk1lbnVcIlxuXHRcdFx0XHRcdGV4ZWN1dGU9eygpOiBNZXNzYWdlQnV0dG9uID0+IG1lc3NhZ2VCdXR0b24uZmlyZVByZXNzKCl9XG5cdFx0XHRcdC8+XG5cdFx0XHQpO1xuXHRcdHJldHVybiBmb290ZXJCYXI7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBb0NBO0VBR0E7RUFBQSxJQWFxQkEsYUFBYSxJQUFBQyxJQUFBLEdBRGpDQyxjQUFjLENBQUMsNkJBQTZCLENBQUMsRUFBQUMsS0FBQSxHQUU1Q0Msa0JBQWtCLENBQUMscUJBQXFCLENBQUMsRUFBQUMsS0FBQSxHQUd6Q0Qsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEVBQUFFLEtBQUEsR0FHaENDLFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUUsUUFBUTtJQUNkQyxRQUFRLEVBQUU7RUFDWCxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQUdESCxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFLFFBQVE7SUFDZEMsUUFBUSxFQUFFO0VBQ1gsQ0FBQyxDQUFDLEVBQUFFLEtBQUEsR0FHREosUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxFQUFBSSxLQUFBLEdBRzVCQyxlQUFlLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBbUJqQkMsMEJBQTBCLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLEVBQUFkLElBQUEsQ0FBQWUsTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxjQUFBO0lBSnhELFNBQUFsQixjQUFZbUIsS0FBcUQsRUFBRUMsTUFBeUIsRUFBRTtNQUFBLElBQUFDLEtBQUE7TUFDN0ZBLEtBQUEsR0FBQUgsY0FBQSxDQUFBSSxJQUFBLE9BQU1ILEtBQUssRUFBRUMsTUFB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
|
|
455
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb290ZXJDb250ZW50IiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJpbXBsZW1lbnRJbnRlcmZhY2UiLCJfZGVjMyIsIl9kZWM0IiwicHJvcGVydHkiLCJ0eXBlIiwicmVxdWlyZWQiLCJfZGVjNSIsIl9kZWM2IiwiX2RlYzciLCJkZWZpbmVSZWZlcmVuY2UiLCJfZGVjOCIsImNvbnRyb2xsZXJFeHRlbnNpb25IYW5kbGVyIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrIiwicHJvcHMiLCJvdGhlcnMiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2hpZGVDcmVhdGVOZXh0IiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uQWZ0ZXJCaW5kaW5nIiwiX2hpZGRlbkRyYWZ0IiwiY29udHJvbGxlciIsIl9nZXRPd25lciIsImdldFJvb3RDb250cm9sbGVyIiwidmlld0NvbnRleHQiLCJnZXRWaWV3IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJpc05ld09iamVjdCIsImVkaXRGbG93IiwiaXNSb290Q29udGV4dE5ldyIsImdldE1vZGVsIiwic2V0UHJvcGVydHkiLCJpbml0aWFsaXplIiwib3duZXIiLCJzZXRNb2RlbCIsIkpTT05Nb2RlbCIsImFjdGlvbnMiLCJwcmVwcm9jZXNzb3JDb250ZXh0IiwiYmluZGluZ0NvbnRleHRzIiwiY29udmVydGVyQ29udGV4dCIsImdldE9iamVjdCIsImNvbnRleHRQYXRoVG9Vc2UiLCJmdWxsQ29udGV4dFBhdGgiLCJvRGF0YU1ldGFNb2RlbCIsIm1vZGVscyIsIm1ldGFNb2RlbCIsImRhdGFWaWV3TW9kZWxQYXRoIiwiZ2V0RGF0YU1vZGVsT2JqZWN0Rm9yTWV0YVBhdGgiLCJtZXRhUGF0aCIsImNvbnRleHRQYXRoIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJpc0RyYWZ0VmFsaWRhdGlvbiIsIk1vZGVsSGVscGVyIiwiZ2V0RHJhZnRSb290IiwiUHJlcGFyYXRpb25BY3Rpb24iLCJlbnRpdHlUeXBlIiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJNZXNzYWdlcyIsImNvbnRlbnQiLCJjcmVhdGVDb250ZW50Iiwib25NZXRhZGF0YUF2YWlsYWJsZSIsImdldEFwcENvbXBvbmVudCIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwiZ2V0Q2FwYWJpbGl0aWVzIiwiSGlkZGVuRHJhZnQiLCJlbmFibGVkIiwiaGlkZUNyZWF0ZU5leHQiLCJnZXRBY3Rpb25Nb2RlbFBhdGgiLCJhY3Rpb24iLCJhbm5vdGF0aW9uUGF0aCIsImFjdGlvbkNvbnRleHQiLCJnZXRDb250ZXh0IiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIiwidW5kZWZpbmVkIiwiZ2V0RHJhZnRJbmRpY2F0b3IiLCJlbnRpdHlTZXQiLCJ0YXJnZXRFbnRpdHlTZXQiLCJjb21tb25Bbm5vdGF0aW9uIiwiRHJhZnRSb290IiwiRHJhZnROb2RlIiwiX2pzeCIsIkRyYWZ0SW5kaWNhdG9yIiwic3RhdGUiLCJ2aXNpYmxlIiwiZ2V0QXBwbHlCdXR0b24iLCJlbXBoYXNpemVkRXhwcmVzc2lvbiIsInZpZXdEYXRhIiwiZ2V0Vmlld0RhdGEiLCJ2aWV3TGV2ZWwiLCJpc0Rlc2t0b3AiLCJmY2xFbmFibGVkIiwiTWVudUJ1dHRvbiIsInRleHQiLCJkZWZhdWx0QWN0aW9uIiwiX2FwcGx5RG9jdW1lbnQiLCJ1c2VEZWZhdWx0QWN0aW9uT25seSIsImJ1dHRvbk1vZGUiLCJjaGlsZHJlbiIsIk1lbnUiLCJNZW51SXRlbSIsInByZXNzIiwiX3ZhbGlkYXRlRG9jdW1lbnQiLCJCdXR0b24iLCJpZCIsImNyZWF0ZUlkIiwiZ2V0UHJpbWFyeSIsImhpZGRlbkRyYWZ0IiwiYWRkRGVwZW5kZW50IiwiQ29tbWFuZEV4ZWN1dGlvbiIsInJlZiIsImNtZEV4ZWN1dGlvbiIsImNvbW1hbmQiLCJleGVjdXRlIiwiX3NhdmVEb2N1bWVudCIsIm9yIiwiaWZFbHNlIiwiYW5kIiwiVUkiLCJJc0VkaXRhYmxlIiwiZXF1YWwiLCJwYXRoSW5Nb2RlbCIsImdldFRleHRTYXZlQnV0dG9uIiwiY29tcGlsZUV4cHJlc3Npb24iLCJsYXlvdXREYXRhIiwiT3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YSIsInByaW9yaXR5IiwiZ3JvdXAiLCJzYXZlQnV0dG9uVGV4dCIsImdldFRyYW5zbGF0ZWRUZXh0IiwiY3JlYXRlQnV0dG9uVGV4dCIsIlNlc3Npb24iLCJTdGlja3lTZXNzaW9uU3VwcG9ydGVkIiwiSXNDcmVhdGVNb2RlIiwiRHJhZnQiLCJJc05ld09iamVjdCIsImdldENhbmNlbEJ1dHRvbiIsIl9jYW5jZWxEb2N1bWVudCIsImNhbmNlbEJ1dHRvbiIsImlzRHJhZnRSb290IiwiYXJpYUhhc1BvcHVwIiwiY29uc3RhbnQiLCJjbG9zZU92ZXJmbG93T25JbnRlcmFjdGlvbiIsImdldENyZWF0ZU5leHRCdXR0b24iLCJjcmVhdGVOZXh0RG9jdW1lbnQiLCJnZXRUb29sYmFyU2VwYXJhdG9yIiwiVG9vbGJhclNlcGFyYXRvciIsImdldERhdGFGaWVsZEZvckFjdGlvbkJ1dHRvbiIsInByZXNzRXZlbnQiLCJ2aWV3IiwiYW5ub3RhdGlvblBhdGhDb250ZXh0IiwiZGF0YUZpZWxkQ29udGV4dE1vZGVsUGF0aCIsImRhdGFGaWVsZEZvckFjdGlvbiIsInRhcmdldE9iamVjdCIsImFjdGlvblBhcmFtZXRlcnMiLCJlbnRpdHlTZXROYW1lIiwibmFtZSIsImludm9jYXRpb25Hcm91cGluZyIsIkludm9jYXRpb25Hcm91cGluZyIsImxpYnJhcnkiLCJDaGFuZ2VTZXQiLCJJc29sYXRlZCIsImxhYmVsIiwiTGFiZWwiLCJ0b1N0cmluZyIsImlzTmF2aWdhYmxlIiwiZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9uIiwiZGlzYWJsZVN0cmljdEhhbmRsaW5nIiwiaGFuZGxlcnMiLCJvbkNhbGxBY3Rpb24iLCJBY3Rpb24iLCJjb250ZXh0cyIsIm1vZGVsIiwic3RhcnRzV2l0aCIsImlzQWN0aW9uV2l0aERpYWxvZyIsIkNyaXRpY2FsaXR5Rm9ybWF0dGVycyIsImJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5QnV0dG9uVHlwZSIsImljb24iLCJpc0FJT3BlcmF0aW9uIiwiYWlJY29uIiwiYXJpYURlc2NyaWJlZEJ5IiwiZ2V0TWFuaWZlc3RCdXR0b24iLCJPYmplY3RQYWdlVGVtcGxhdGluZyIsImlzTWFuaWZlc3RBY3Rpb24iLCJldmVudCIsIkZQTUhlbHBlciIsImFjdGlvbldyYXBwZXIiLCJoYW5kbGVyTW9kdWxlIiwiaGFuZGxlck1ldGhvZCIsImNhdGNoIiwiZXJyb3IiLCJMb2ciLCJfanN4cyIsImdldEFjdGlvbkNvbnRyb2xzIiwiZW1waGFzaXplZEJ1dHRvbkV4cHJlc3Npb24iLCJidWlsZEVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uIiwibWFwIiwiQWN0aW9uVHlwZSIsIkRlZmF1bHRBcHBseSIsIkRhdGFGaWVsZEZvckFjdGlvbiIsIlByaW1hcnkiLCJlbXBoYXNpemVkQnV0dG9uVG9vbEtpdEV4cCIsInJlc29sdmVCaW5kaW5nU3RyaW5nIiwiU2Vjb25kYXJ5IiwiQ3JlYXRlTmV4dCIsIlNlcGFyYXRvciIsImZpbHRlciIsIm1lc3NhZ2VCdXR0b24iLCJNZXNzYWdlQnV0dG9uIiwibWVzc2FnZUNoYW5nZSIsIl9nZXRGb290ZXJWaXNpYmlsaXR5IiwiYXJpYUxhYmVsbGVkQnkiLCJmb290ZXJCYXIiLCJPdmVyZmxvd1Rvb2xiYXIiLCJhc3luY01vZGUiLCJJbnZpc2libGVUZXh0IiwiVG9vbGJhclNwYWNlciIsImZpcmVQcmVzcyIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkZvb3RlckNvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5U2V0IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IERhdGFGaWVsZEZvckFjdGlvbiB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGFuZCwgY29tcGlsZUV4cHJlc3Npb24sIGNvbnN0YW50LCBlcXVhbCwgaWZFbHNlLCBvciwgcGF0aEluTW9kZWwsIHJlc29sdmVCaW5kaW5nU3RyaW5nIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBkZWZpbmVSZWZlcmVuY2UsIGRlZmluZVVJNUNsYXNzLCBpbXBsZW1lbnRJbnRlcmZhY2UsIHByb3BlcnR5LCB0eXBlIFByb3BlcnRpZXNPZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgQ29tbWFuZFByb3BlcnRpZXMsIFJlZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9qc3gtcnVudGltZS9qc3hcIjtcbmltcG9ydCBCdWlsZGluZ0Jsb2NrIGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9CdWlsZGluZ0Jsb2NrXCI7XG5pbXBvcnQgQ29tbWFuZEV4ZWN1dGlvbiBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbHMvQ29tbWFuZEV4ZWN1dGlvblwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlTWFuaWZlc3RTZXR0aW5ncywgSGlkZGVuRHJhZnQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHsgZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgeyBpc0FjdGlvbldpdGhEaWFsb2cgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9hbm5vdGF0aW9ucy9EYXRhRmllbGRcIjtcbmltcG9ydCB7IGFpSWNvbiwgdHlwZSBCYXNlQWN0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0FjdGlvblwiO1xuaW1wb3J0IHsgRHJhZnQsIFVJIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0hlbHBlclwiO1xuaW1wb3J0IEZQTUhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9GUE1IZWxwZXJcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBDb3JlTGliIH0gZnJvbSBcInNhcC9mZS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCBsaWJyYXJ5IGZyb20gXCJzYXAvZmUvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgKiBhcyBDcml0aWNhbGl0eUZvcm1hdHRlcnMgZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvQ3JpdGljYWxpdHlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgdHlwZSB7IERhdGFNb2RlbE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgTWVzc2FnZUJ1dHRvbiBmcm9tIFwic2FwL2ZlL21hY3Jvcy9tZXNzYWdlcy9NZXNzYWdlQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSBPYmplY3RQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL09iamVjdFBhZ2VDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcbmltcG9ydCBCdXR0b24gZnJvbSBcInNhcC9tL0J1dHRvblwiO1xuaW1wb3J0IERyYWZ0SW5kaWNhdG9yIGZyb20gXCJzYXAvbS9EcmFmdEluZGljYXRvclwiO1xuaW1wb3J0IE1lbnUgZnJvbSBcInNhcC9tL01lbnVcIjtcbmltcG9ydCBNZW51QnV0dG9uIGZyb20gXCJzYXAvbS9NZW51QnV0dG9uXCI7XG5pbXBvcnQgTWVudUl0ZW0gZnJvbSBcInNhcC9tL01lbnVJdGVtXCI7XG5pbXBvcnQgT3ZlcmZsb3dUb29sYmFyIGZyb20gXCJzYXAvbS9PdmVyZmxvd1Rvb2xiYXJcIjtcbmltcG9ydCBUb29sYmFyU3BhY2VyIGZyb20gXCJzYXAvbS9Ub29sYmFyU3BhY2VyXCI7XG5pbXBvcnQgdHlwZSBFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlCaW5kaW5nSW5mbyB9IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgSW52aXNpYmxlVGV4dCBmcm9tIFwic2FwL3VpL2NvcmUvSW52aXNpYmxlVGV4dFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbGxlciBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL0NvbnRyb2xsZXJcIjtcbmltcG9ydCB0eXBlIHsgJENvbnRyb2xTZXR0aW5ncyB9IGZyb20gXCJzYXAvdWkvbWRjL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVzdHJpY3RlZC1pbXBvcnRzXG5pbXBvcnQgeyBjb250cm9sbGVyRXh0ZW5zaW9uSGFuZGxlciB9IGZyb20gXCJzYXAvZmUvYmFzZS9Ib29rU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlc3RyaWN0ZWQtaW1wb3J0c1xuaW1wb3J0ICogYXMgT2JqZWN0UGFnZVRlbXBsYXRpbmcgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvT2JqZWN0UGFnZS9PYmplY3RQYWdlVGVtcGxhdGluZ1wiO1xuaW1wb3J0IE92ZXJmbG93VG9vbGJhckxheW91dERhdGEgZnJvbSBcInNhcC9tL092ZXJmbG93VG9vbGJhckxheW91dERhdGFcIjtcbmltcG9ydCBUb29sYmFyU2VwYXJhdG9yIGZyb20gXCJzYXAvbS9Ub29sYmFyU2VwYXJhdG9yXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcblxudHlwZSBDb250cm9sbGVyV2l0aEFjdGlvbiA9IENvbnRyb2xsZXIgJiB7XG5cdGhhbmRsZXJzOiB7XG5cdFx0b25DYWxsQWN0aW9uOiBGdW5jdGlvbjtcblx0fTtcbn07XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuRm9vdGVyQ29udGVudFwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRm9vdGVyQ29udGVudCBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8T3ZlcmZsb3dUb29sYmFyPiB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5Ub29sYmFyXCIpXG5cdF9faW1wbGVtZW50c19fc2FwX3VpX2NvcmVfVG9vbGJhciA9IHRydWU7XG5cblx0QGltcGxlbWVudEludGVyZmFjZShcInNhcC5tLklCYXJcIilcblx0X19pbXBsZW1lbnRzX19zYXBfbV9JQmFyID0gdHJ1ZTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0cmVxdWlyZWQ6IHRydWVcblx0fSlcblx0aWQhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdHJlcXVpcmVkOiB0cnVlXG5cdH0pXG5cdHB1YmxpYyBtZXRhUGF0aCE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGNvbnRleHRQYXRoPzogc3RyaW5nO1xuXG5cdEBkZWZpbmVSZWZlcmVuY2UoKVxuXHRjbWRFeGVjdXRpb24hOiBSZWY8Q29tbWFuZEV4ZWN1dGlvbj47XG5cblx0YWN0aW9ucz86IEJhc2VBY3Rpb25bXTtcblxuXHRvRGF0YU1ldGFNb2RlbCE6IE9EYXRhTWV0YU1vZGVsO1xuXG5cdGRhdGFWaWV3TW9kZWxQYXRoITogRGF0YU1vZGVsT2JqZWN0UGF0aDxFbnRpdHlTZXQ+O1xuXG5cdGlzRHJhZnRWYWxpZGF0aW9uITogYm9vbGVhbjtcblxuXHRfaGlkZGVuRHJhZnQhOiBib29sZWFuO1xuXG5cdHByaXZhdGUgX2hpZGVDcmVhdGVOZXh0ID0gZmFsc2U7XG5cblx0Y29uc3RydWN0b3IocHJvcHM6ICRDb250cm9sU2V0dGluZ3MgJiBQcm9wZXJ0aWVzT2Y8Rm9vdGVyQ29udGVudD4sIG90aGVycz86ICRDb250cm9sU2V0dGluZ3MpIHtcblx0XHRzdXBlcihwcm9wcywgb3RoZXJzKTtcblx0fVxuXG5cdEBjb250cm9sbGVyRXh0ZW5zaW9uSGFuZGxlcihcInJvdXRpbmdcIiwgXCJvbkFmdGVyQmluZGluZ1wiKVxuXHRwdWJsaWMgYXN5bmMgb25BZnRlckJpbmRpbmcodGhpczogRm9vdGVyQ29udGVudCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGlmICh0aGlzLl9oaWRkZW5EcmFmdCkge1xuXHRcdFx0Y29uc3QgY29udHJvbGxlciA9IHRoaXMuX2dldE93bmVyKCk/LmdldFJvb3RDb250cm9sbGVyKCkgYXMgUGFnZUNvbnRyb2xsZXI7XG5cdFx0XHRjb25zdCB2aWV3Q29udGV4dCA9IGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KCk7XG5cdFx0XHRjb25zdCBpc05ld09iamVjdCA9IGF3YWl0IGNvbnRyb2xsZXIuZWRpdEZsb3cuaXNSb290Q29udGV4dE5ldyh2aWV3Q29udGV4dCk7XG5cdFx0XHQodGhpcy5nZXRNb2RlbChcImZvb3RlckludGVybmFsXCIpIGFzIEpTT05Nb2RlbCkuc2V0UHJvcGVydHkoXCIvcm9vdElzTmV3T2JqZWN0XCIsIGlzTmV3T2JqZWN0KTtcblx0XHR9XG5cdH1cblxuXHRpbml0aWFsaXplKCk6IHZvaWQge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKTtcblx0XHR0aGlzLnNldE1vZGVsKG5ldyBKU09OTW9kZWwoKSwgXCJmb290ZXJJbnRlcm5hbFwiKTtcblx0XHR0aGlzLmFjdGlvbnMgPSBvd25lcj8ucHJlcHJvY2Vzc29yQ29udGV4dD8uYmluZGluZ0NvbnRleHRzPy5jb252ZXJ0ZXJDb250ZXh0Py5nZXRPYmplY3QoXCJmb290ZXJBY3Rpb25zXCIpO1xuXHRcdGNvbnN0IGNvbnRleHRQYXRoVG9Vc2UgPSBvd25lcj8ucHJlcHJvY2Vzc29yQ29udGV4dD8uZnVsbENvbnRleHRQYXRoO1xuXHRcdHRoaXMub0RhdGFNZXRhTW9kZWwgPSBvd25lcj8ucHJlcHJvY2Vzc29yQ29udGV4dD8ubW9kZWxzLm1ldGFNb2RlbCBhcyBPRGF0YU1ldGFNb2RlbDtcblx0XHR0aGlzLmRhdGFWaWV3TW9kZWxQYXRoID0gdGhpcy5nZXREYXRhTW9kZWxPYmplY3RGb3JNZXRhUGF0aCh0aGlzLm1ldGFQYXRoLCBjb250ZXh0UGF0aFRvVXNlID8/IHRoaXMuY29udGV4dFBhdGgpITtcblx0XHRjb25zdCBzdGFydGluZ0VudGl0eVNldCA9IHRoaXMuZGF0YVZpZXdNb2RlbFBhdGguc3RhcnRpbmdFbnRpdHlTZXQ7XG5cdFx0dGhpcy5pc0RyYWZ0VmFsaWRhdGlvbiA9ICEhKFxuXHRcdFx0TW9kZWxIZWxwZXIuZ2V0RHJhZnRSb290KHN0YXJ0aW5nRW50aXR5U2V0KT8uUHJlcGFyYXRpb25BY3Rpb24gJiYgc3RhcnRpbmdFbnRpdHlTZXQ/LmVudGl0eVR5cGUuYW5ub3RhdGlvbnMuQ29tbW9uPy5NZXNzYWdlc1xuXHRcdCk7XG5cdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdH1cblxuXHQvKipcblx0ICogSGFuZGxlciBmb3IgdGhlIG9uTWV0YWRhdGFBdmFpbGFibGUgZXZlbnQuXG5cdCAqL1xuXHRvbk1ldGFkYXRhQXZhaWxhYmxlKCk6IHZvaWQge1xuXHRcdGNvbnN0IGNvbnRyb2xsZXIgPSB0aGlzLl9nZXRPd25lcigpPy5nZXRSb290Q29udHJvbGxlcigpIGFzIE9iamVjdFBhZ2VDb250cm9sbGVyO1xuXHRcdHRoaXMuX2hpZGRlbkRyYWZ0ID0gKGNvbnRyb2xsZXIuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKS5nZXRDYXBhYmlsaXRpZXMoKS5IaWRkZW5EcmFmdCBhcyBIaWRkZW5EcmFmdClcblx0XHRcdD8uZW5hYmxlZDtcblx0XHR0aGlzLl9oaWRlQ3JlYXRlTmV4dCA9XG5cdFx0XHQoY29udHJvbGxlci5nZXRBcHBDb21wb25lbnQoKS5nZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcygpLmdldENhcGFiaWxpdGllcygpLkhpZGRlbkRyYWZ0IGFzIEhpZGRlbkRyYWZ0KT8uaGlkZUNyZWF0ZU5leHQgPT09XG5cdFx0XHR0cnVlO1xuXHRcdGlmICghdGhpcy5jb250ZW50KSB7XG5cdFx0XHR0aGlzLmluaXRpYWxpemUoKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGdldEFjdGlvbk1vZGVsUGF0aChhY3Rpb246IEJhc2VBY3Rpb24pOiBEYXRhTW9kZWxPYmplY3RQYXRoPERhdGFGaWVsZEZvckFjdGlvbj4gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IGFubm90YXRpb25QYXRoID0gYWN0aW9uLmFubm90YXRpb25QYXRoO1xuXHRcdGlmIChhbm5vdGF0aW9uUGF0aCkge1xuXHRcdFx0Y29uc3QgYWN0aW9uQ29udGV4dCA9IHRoaXMub0RhdGFNZXRhTW9kZWwuZ2V0Q29udGV4dChhbm5vdGF0aW9uUGF0aCk7XG5cdFx0XHRyZXR1cm4gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzPERhdGFGaWVsZEZvckFjdGlvbj4oYWN0aW9uQ29udGV4dCk7XG5cdFx0fVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRnZXREcmFmdEluZGljYXRvcigpOiBEcmFmdEluZGljYXRvciB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgZW50aXR5U2V0ID0gKHRoaXMuZGF0YVZpZXdNb2RlbFBhdGgudGFyZ2V0RW50aXR5U2V0IHx8IHRoaXMuZGF0YVZpZXdNb2RlbFBhdGguc3RhcnRpbmdFbnRpdHlTZXQpIGFzIEVudGl0eVNldDsgLy8gc3RhcnRpbmdFbnRpdHlTZXQgaXMgdXNlZCBvbiBjb250YWlubWVudCBzY2VuYXJpb1xuXHRcdGNvbnN0IGNvbW1vbkFubm90YXRpb24gPSBlbnRpdHlTZXQuYW5ub3RhdGlvbnM/LkNvbW1vbjtcblx0XHRpZiAoKGNvbW1vbkFubm90YXRpb24/LkRyYWZ0Um9vdCB8fCBjb21tb25Bbm5vdGF0aW9uPy5EcmFmdE5vZGUpICYmICF0aGlzLl9oaWRkZW5EcmFmdCkge1xuXHRcdFx0cmV0dXJuIDxEcmFmdEluZGljYXRvciBzdGF0ZT1cInt1aT4vZHJhZnRTdGF0dXN9XCIgdmlzaWJsZT1cInt1aT4vaXNFZGl0YWJsZX1cIiAvPjtcblx0XHR9XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdHByaXZhdGUgZ2V0QXBwbHlCdXR0b24oZW1waGFzaXplZEV4cHJlc3Npb246IFByb3BlcnR5QmluZGluZ0luZm8pOiBCdXR0b24gfCBNZW51QnV0dG9uIHwgbnVsbCB7XG5cdFx0Y29uc3QgY29udHJvbGxlciA9IHRoaXMuX2dldE93bmVyKCk/LmdldFJvb3RDb250cm9sbGVyKCkgYXMgT2JqZWN0UGFnZUNvbnRyb2xsZXI7XG5cdFx0Y29uc3Qgdmlld0RhdGEgPSBjb250cm9sbGVyLmdldFZpZXcoKS5nZXRWaWV3RGF0YSgpIGFzIEJhc2VNYW5pZmVzdFNldHRpbmdzO1xuXHRcdGlmICgodmlld0RhdGE/LnZpZXdMZXZlbCAhPSBudWxsICYmIHZpZXdEYXRhPy52aWV3TGV2ZWwgPD0gMSkgfHwgdGhpcy5faGlkZGVuRHJhZnQpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRpZiAodGhpcy5pc0RyYWZ0VmFsaWRhdGlvbiAmJiAhdmlld0RhdGEuaXNEZXNrdG9wICYmICF2aWV3RGF0YS5mY2xFbmFibGVkKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQ8TWVudUJ1dHRvblxuXHRcdFx0XHRcdHRleHQ9XCJ7c2FwLmZlLmkxOG4+VF9DT01NT05fT0JKRUNUX1BBR0VfQVBQTFlfRFJBRlR9XCJcblx0XHRcdFx0XHRkZWZhdWx0QWN0aW9uPXthc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdFx0XHRcdFx0XHRhd2FpdCBjb250cm9sbGVyLl9hcHBseURvY3VtZW50KGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KCkpO1xuXHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0dXNlRGVmYXVsdEFjdGlvbk9ubHk9XCJ0cnVlXCJcblx0XHRcdFx0XHRidXR0b25Nb2RlPVwiU3BsaXRcIlxuXHRcdFx0XHRcdHR5cGU9e2VtcGhhc2l6ZWRFeHByZXNzaW9ufVxuXHRcdFx0XHRcdGR0OmRlc2lnbnRpbWU9XCJub3QtYWRhcHRhYmxlXCJcblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxNZW51PlxuXHRcdFx0XHRcdFx0PE1lbnVJdGVtXG5cdFx0XHRcdFx0XHRcdHRleHQ9XCJ7c2FwLmZlLmkxOG4+VF9DT01NT05fT0JKRUNUX1BBR0VfVkFMSURBVEVfRFJBRlR9XCJcblx0XHRcdFx0XHRcdFx0cHJlc3M9e2FzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRcdFx0XHRcdFx0XHRhd2FpdCBjb250cm9sbGVyLl92YWxpZGF0ZURvY3VtZW50KCk7XG5cdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdDwvTWVudT5cblx0XHRcdFx0PC9NZW51QnV0dG9uPlxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIChcblx0XHRcdDxCdXR0b25cblx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQoXCJTdGFuZGFyZEFjdGlvbjo6QXBwbHlcIil9XG5cdFx0XHRcdHRleHQ9XCJ7c2FwLmZlLmkxOG4+VF9DT01NT05fT0JKRUNUX1BBR0VfQVBQTFlfRFJBRlR9XCJcblx0XHRcdFx0dHlwZT17ZW1waGFzaXplZEV4cHJlc3Npb259XG5cdFx0XHRcdGVuYWJsZWQ9e3RydWV9XG5cdFx0XHRcdHByZXNzPXthc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdFx0XHRcdFx0YXdhaXQgY29udHJvbGxlci5fYXBwbHlEb2N1bWVudChjb250cm9sbGVyLmdldFZpZXcoKS5nZXRCaW5kaW5nQ29udGV4dCgpKTtcblx0XHRcdFx0fX1cblx0XHRcdFx0dmlzaWJsZT1cInt1aT4vaXNFZGl0YWJsZX1cIlxuXHRcdFx0XHRkdDpkZXNpZ250aW1lPVwibm90LWFkYXB0YWJsZVwiXG5cdFx0XHQvPlxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIGdldFByaW1hcnkoZW1waGFzaXplZEV4cHJlc3Npb24/OiBQcm9wZXJ0eUJpbmRpbmdJbmZvLCBhY3Rpb24/OiBCYXNlQWN0aW9uKTogQnV0dG9uIHwgTWVudUJ1dHRvbiB8IG51bGwge1xuXHRcdGNvbnN0IGNvbnRyb2xsZXIgPSB0aGlzLl9nZXRPd25lcigpPy5nZXRSb290Q29udHJvbGxlcigpIGFzIE9iamVjdFBhZ2VDb250cm9sbGVyO1xuXHRcdGNvbnN0IGhpZGRlbkRyYWZ0ID0gKGNvbnRyb2xsZXIuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKS5nZXRDYXBhYmlsaXRpZXMoKS5IaWRkZW5EcmFmdCBhcyBIaWRkZW5EcmFmdClcblx0XHRcdD8uZW5hYmxlZDtcblx0XHRjb25zdCB2aWV3RGF0YSA9IGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldFZpZXdEYXRhKCkgYXMgQmFzZU1hbmlmZXN0U2V0dGluZ3M7XG5cdFx0Y29udHJvbGxlclxuXHRcdFx0LmdldFZpZXcoKVxuXHRcdFx0LmFkZERlcGVuZGVudChcblx0XHRcdFx0PENvbW1hbmRFeGVjdXRpb25cblx0XHRcdFx0XHRyZWY9e3RoaXMuY21kRXhlY3V0aW9ufVxuXHRcdFx0XHRcdGNvbW1hbmQ9XCJTYXZlXCJcblx0XHRcdFx0XHRleGVjdXRlPXtjb250cm9sbGVyLl9zYXZlRG9jdW1lbnR9XG5cdFx0XHRcdFx0dmlzaWJsZT17b3IoXG5cdFx0XHRcdFx0XHRpZkVsc2UoXG5cdFx0XHRcdFx0XHRcdGhpZGRlbkRyYWZ0ID09PSB0cnVlLFxuXHRcdFx0XHRcdFx0XHRpZkVsc2UoXG5cdFx0XHRcdFx0XHRcdFx0dmlld0RhdGEuZmNsRW5hYmxlZCA9PT0gdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHRhbmQoVUkuSXNFZGl0YWJsZSwgZXF1YWwocGF0aEluTW9kZWwoXCIvc2hvd1NhdmVBbmRDYW5jZWxCdXR0b25cIiwgXCJmY2xoZWxwZXJcIiksIHRydWUpKSxcblx0XHRcdFx0XHRcdFx0XHRVSS5Jc0VkaXRhYmxlXG5cdFx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRcdFVJLklzRWRpdGFibGVcblx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRlcXVhbChwYXRoSW5Nb2RlbChcIi9pc0lubGluZUVkaXRBY3RpdmVcIiwgXCJ1aVwiKSwgdHJ1ZSlcblx0XHRcdFx0XHQpfVxuXHRcdFx0XHQvPlxuXHRcdFx0KTtcblx0XHRpZiAodGhpcy5pc0RyYWZ0VmFsaWRhdGlvbiAmJiAhdmlld0RhdGEuaXNEZXNrdG9wKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQ8TWVudUJ1dHRvblxuXHRcdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VGV4dFNhdmVCdXR0b24oKX1cblx0XHRcdFx0XHRqc3g6Y29tbWFuZD1cImNtZDpTYXZlfGRlZmF1bHRBY3Rpb25cIlxuXHRcdFx0XHRcdHVzZURlZmF1bHRBY3Rpb25Pbmx5PVwidHJ1ZVwiXG5cdFx0XHRcdFx0YnV0dG9uTW9kZT1cIlNwbGl0XCJcblx0XHRcdFx0XHR0eXBlPXtlbXBoYXNpemVkRXhwcmVzc2lvbn1cblx0XHRcdFx0XHR2aXNpYmxlPXtjb21waWxlRXhwcmVzc2lvbihcblx0XHRcdFx0XHRcdGlmRWxzZShcblx0XHRcdFx0XHRcdFx0aGlkZGVuRHJhZnQgPT09IHRydWUsXG5cdFx0XHRcdFx0XHRcdGlmRWxzZShcblx0XHRcdFx0XHRcdFx0XHR2aWV3RGF0YS5mY2xFbmFibGVkID09PSB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdGFuZChVSS5Jc0VkaXRhYmxlLCBlcXVhbChwYXRoSW5Nb2RlbChcIi9zaG93U2F2ZUFuZENhbmNlbEJ1dHRvblwiLCBcImZjbGhlbHBlclwiKSwgdHJ1ZSkpLFxuXHRcdFx0XHRcdFx0XHRcdFVJLklzRWRpdGFibGVcblx0XHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdFx0VUkuSXNFZGl0YWJsZVxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0ZHQ6ZGVzaWdudGltZT1cIm5vdC1hZGFwdGFibGVcIlxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0PE1lbnU+XG5cdFx0XHRcdFx0XHQ8TWVudUl0ZW1cblx0XHRcdFx0XHRcdFx0dGV4dD1cIntzYXAuZmUuaTE4bj5UX0NPTU1PTl9PQkpFQ1RfUEFHRV9WQUxJREFURV9EUkFGVH1cIlxuXHRcdFx0XHRcdFx0XHRwcmVzcz17YXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGF3YWl0IGNvbnRyb2xsZXIuX3ZhbGlkYXRlRG9jdW1lbnQoKTtcblx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0PC9NZW51PlxuXHRcdFx0XHQ8L01lbnVCdXR0b24+XG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdHJldHVybiAoXG5cdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdGlkPXt0aGlzLmNyZWF0ZUlkKFwiU3RhbmRhcmRBY3Rpb246OlNhdmVcIil9XG5cdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VGV4dFNhdmVCdXR0b24oKX1cblx0XHRcdFx0dHlwZT17ZW1waGFzaXplZEV4cHJlc3Npb259XG5cdFx0XHRcdHZpc2libGU9e2NvbXBpbGVFeHByZXNzaW9uKFxuXHRcdFx0XHRcdGlmRWxzZShcblx0XHRcdFx0XHRcdGhpZGRlbkRyYWZ0ID09PSB0cnVlLFxuXHRcdFx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdFx0XHR2aWV3RGF0YS5mY2xFbmFibGVkID09PSB0cnVlLFxuXHRcdFx0XHRcdFx0XHRhbmQoVUkuSXNFZGl0YWJsZSwgZXF1YWwocGF0aEluTW9kZWwoXCIvc2hvd1NhdmVBbmRDYW5jZWxCdXR0b25cIiwgXCJmY2xoZWxwZXJcIiksIHRydWUpKSxcblx0XHRcdFx0XHRcdFx0VUkuSXNFZGl0YWJsZVxuXHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdFVJLklzRWRpdGFibGVcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCl9XG5cdFx0XHRcdGVuYWJsZWQ9e3RydWV9XG5cdFx0XHRcdGpzeDpjb21tYW5kPVwiY21kOlNhdmV8cHJlc3NcIlxuXHRcdFx0XHRkdDpkZXNpZ250aW1lPVwibm90LWFkYXB0YWJsZVwiXG5cdFx0XHQ+XG5cdFx0XHRcdHt7XG5cdFx0XHRcdFx0bGF5b3V0RGF0YTogPE92ZXJmbG93VG9vbGJhckxheW91dERhdGEgcHJpb3JpdHk9e2FjdGlvbj8ucHJpb3JpdHl9IGdyb3VwPXthY3Rpb24/Lmdyb3VwfT48L092ZXJmbG93VG9vbGJhckxheW91dERhdGE+XG5cdFx0XHRcdH19XG5cdFx0XHQ8L0J1dHRvbj5cblx0XHQpO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRUZXh0U2F2ZUJ1dHRvbigpOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248c3RyaW5nPiB7XG5cdFx0Y29uc3Qgc2F2ZUJ1dHRvblRleHQgPSB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiVF9PUF9PQkpFQ1RfUEFHRV9TQVZFXCIpO1xuXHRcdGNvbnN0IGNyZWF0ZUJ1dHRvblRleHQgPSB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiVF9PUF9PQkpFQ1RfUEFHRV9DUkVBVEVcIik7XG5cdFx0Ly8gSWYgd2UncmUgaW4gc3RpY2t5IG1vZGUgIC0+IHRoZSB1aSBpcyBpbiBjcmVhdGUgbW9kZSwgc2hvdyBDcmVhdGUsIGVsc2Ugc2hvdyBTYXZlXG5cdFx0Ly8gSWYgbm90IC0+IHdlJ3JlIGluIGRyYWZ0IG9yIGhpZGRlbiBkcmFmdFxuXHRcdC8vIEluIGNhc2Ugb2YgZHJhZnQgaWYgaXQgaXMgYSBuZXcgb2JqZWN0ICghSXNBY3RpdmVFbnRpdHkgJiYgIUhhc0FjdGl2ZUVudGl0eSksIHNob3cgY3JlYXRlLCBlbHNlIHNob3cgc2F2ZVxuXHRcdC8vIEluIGNhc2Ugb2YgaGlkZGVuIGRyYWZ0IHRoZSBidXR0b24gc2hvd3MgdXAgaW4gYWxsIHBhZ2VzIGFuZCBmb2xsb3dzIHRoZSBiZWxvdyBjcml0ZXJpYVxuXHRcdC8vIFx0XHRJZiB0aGUgcm9vdCBvYmplY3QgaXMgYSBuZXcgb2JqZWN0ICghSXNBY3RpdmVFbnRpdHkgJiYgIUhhc0FjdGl2ZUVudGl0eSkgdGhlbiBhbGwgcGFnZXMgc2hvdWxkIHNob3cgQ3JlYXRlLlxuXHRcdC8vIFx0XHRJZiB0aGUgcm9vciBvYmplY3QgaXMgbm90IGEgbmV3IG9iamVjdCB0aGVuIGFsbCBwYWdlcyBzaG91bGQgc2hvdyBTYXZlLlxuXHRcdHJldHVybiBpZkVsc2UoXG5cdFx0XHRpZkVsc2UoXG5cdFx0XHRcdCh0aGlzLmRhdGFWaWV3TW9kZWxQYXRoLnN0YXJ0aW5nRW50aXR5U2V0IGFzIEVudGl0eVNldCkuYW5ub3RhdGlvbnMuU2Vzc2lvbj8uU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCAhPT0gdW5kZWZpbmVkLFxuXHRcdFx0XHRVSS5Jc0NyZWF0ZU1vZGUsXG5cdFx0XHRcdGlmRWxzZSh0aGlzLl9oaWRkZW5EcmFmdCwgYW5kKHBhdGhJbk1vZGVsKFwiL3Jvb3RJc05ld09iamVjdFwiLCBcImZvb3RlckludGVybmFsXCIpKSwgRHJhZnQuSXNOZXdPYmplY3QpXG5cdFx0XHQpLFxuXHRcdFx0Y3JlYXRlQnV0dG9uVGV4dCxcblx0XHRcdHNhdmVCdXR0b25UZXh0XG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0Q2FuY2VsQnV0dG9uKGFjdGlvbj86IEJhc2VBY3Rpb24pOiBCdXR0b24gfCBudWxsIHtcblx0XHRjb25zdCBjb250cm9sbGVyID0gdGhpcy5fZ2V0T3duZXIoKT8uZ2V0Um9vdENvbnRyb2xsZXIoKSBhcyBPYmplY3RQYWdlQ29udHJvbGxlcjtcblx0XHRjb25zdCBoaWRkZW5EcmFmdCA9IChjb250cm9sbGVyLmdldEFwcENvbXBvbmVudCgpLmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCkuZ2V0Q2FwYWJpbGl0aWVzKCkuSGlkZGVuRHJhZnQgYXMgSGlkZGVuRHJhZnQpXG5cdFx0XHQ/LmVuYWJsZWQ7XG5cdFx0Y29uc3Qgdmlld0RhdGEgPSBjb250cm9sbGVyLmdldFZpZXcoKS5nZXRWaWV3RGF0YSgpIGFzIEJhc2VNYW5pZmVzdFNldHRpbmdzO1xuXHRcdGNvbnRyb2xsZXIuZ2V0VmlldygpLmFkZERlcGVuZGVudChcblx0XHRcdDxDb21tYW5kRXhlY3V0aW9uXG5cdFx0XHRcdHJlZj17dGhpcy5jbWRFeGVjdXRpb259XG5cdFx0XHRcdGNvbW1hbmQ9XCJDYW5jZWxcIlxuXHRcdFx0XHRleGVjdXRlPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0Y29udHJvbGxlci5fY2FuY2VsRG9jdW1lbnQoeyBjYW5jZWxCdXR0b246IFwiZmU6OkZvb3RlckJhcjo6U3RhbmRhcmRBY3Rpb246OkNhbmNlbFwiIH0pO1xuXHRcdFx0XHR9fVxuXHRcdFx0XHR2aXNpYmxlPXtpZkVsc2UoXG5cdFx0XHRcdFx0aGlkZGVuRHJhZnQgPT09IHRydWUsXG5cdFx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdFx0dmlld0RhdGEuZmNsRW5hYmxlZCA9PT0gdHJ1ZSxcblx0XHRcdFx0XHRcdGFuZChVSS5Jc0VkaXRhYmxlLCBlcXVhbChwYXRoSW5Nb2RlbChcIi9zaG93U2F2ZUFuZENhbmNlbEJ1dHRvblwiLCBcImZjbGhlbHBlclwiKSwgdHJ1ZSkpLFxuXHRcdFx0XHRcdFx0VUkuSXNFZGl0YWJsZVxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0VUkuSXNFZGl0YWJsZVxuXHRcdFx0XHQpfVxuXHRcdFx0Lz5cblx0XHQpO1xuXHRcdC8vIE92ZXJmbG93VG9vbGJhckxheW91dERhdGEgc2V0dGluZyBpcyBuZWVkZWQgd2hlbiB0aGUgZGlzY2FyZCBidXR0b24gaXMgaW4gdGhlIG92ZXJmbG93XG5cdFx0cmV0dXJuIChcblx0XHRcdDxCdXR0b25cblx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQoXCJTdGFuZGFyZEFjdGlvbjo6Q2FuY2VsXCIpfVxuXHRcdFx0XHR0ZXh0PXtcblx0XHRcdFx0XHRNb2RlbEhlbHBlci5pc0RyYWZ0Um9vdCh0aGlzLmRhdGFWaWV3TW9kZWxQYXRoLnRhcmdldEVudGl0eVNldCkgJiYgIXRoaXMuX2hpZGRlbkRyYWZ0XG5cdFx0XHRcdFx0XHQ/IFwie3NhcC5mZS5pMThuPkNfQ09NTU9OX09CSkVDVF9QQUdFX0RJU0NBUkRfRFJBRlR9XCJcblx0XHRcdFx0XHRcdDogXCJ7c2FwLmZlLmkxOG4+Q19DT01NT05fT0JKRUNUX1BBR0VfQ0FOQ0VMfVwiXG5cdFx0XHRcdH1cblx0XHRcdFx0anN4OmNvbW1hbmQ9XCJjbWQ6Q2FuY2VsfHByZXNzXCJcblx0XHRcdFx0dmlzaWJsZT17Y29tcGlsZUV4cHJlc3Npb24oXG5cdFx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdFx0aGlkZGVuRHJhZnQgPT09IHRydWUsXG5cdFx0XHRcdFx0XHRpZkVsc2UoXG5cdFx0XHRcdFx0XHRcdHZpZXdEYXRhLmZjbEVuYWJsZWQgPT09IHRydWUsXG5cdFx0XHRcdFx0XHRcdGFuZChVSS5Jc0VkaXRhYmxlLCBlcXVhbChwYXRoSW5Nb2RlbChcIi9zaG93U2F2ZUFuZENhbmNlbEJ1dHRvblwiLCBcImZjbGhlbHBlclwiKSwgdHJ1ZSkpLFxuXHRcdFx0XHRcdFx0XHRVSS5Jc0VkaXRhYmxlXG5cdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdFx0VUkuSXNFZGl0YWJsZVxuXHRcdFx0XHRcdClcblx0XHRcdFx0KX1cblx0XHRcdFx0YXJpYUhhc1BvcHVwPXtpZkVsc2UocGF0aEluTW9kZWwoXCIvaXNEb2N1bWVudE1vZGlmaWVkXCIsIFwidWlcIiksIGNvbnN0YW50KFwiRGlhbG9nXCIpLCBjb25zdGFudChcIk5vbmVcIikpfVxuXHRcdFx0XHRlbmFibGVkPXt0cnVlfVxuXHRcdFx0XHRkdDpkZXNpZ250aW1lPVwibm90LWFkYXB0YWJsZVwiXG5cdFx0XHQ+XG5cdFx0XHRcdHt7XG5cdFx0XHRcdFx0bGF5b3V0RGF0YTogKFxuXHRcdFx0XHRcdFx0PE92ZXJmbG93VG9vbGJhckxheW91dERhdGFcblx0XHRcdFx0XHRcdFx0cHJpb3JpdHk9e2FjdGlvbj8ucHJpb3JpdHl9XG5cdFx0XHRcdFx0XHRcdGNsb3NlT3ZlcmZsb3dPbkludGVyYWN0aW9uPXtmYWxzZX1cblx0XHRcdFx0XHRcdD48L092ZXJmbG93VG9vbGJhckxheW91dERhdGE+XG5cdFx0XHRcdFx0KVxuXHRcdFx0XHR9fVxuXHRcdFx0PC9CdXR0b24+XG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0Q3JlYXRlTmV4dEJ1dHRvbihlbXBoYXNpemVkRXhwcmVzc2lvbjogUHJvcGVydHlCaW5kaW5nSW5mbyk6IEJ1dHRvbiB8IG51bGwge1xuXHRcdGNvbnN0IGNvbnRyb2xsZXIgPSB0aGlzLl9nZXRPd25lcigpPy5nZXRSb290Q29udHJvbGxlcigpIGFzIE9iamVjdFBhZ2VDb250cm9sbGVyO1xuXHRcdGNvbnN0IHZpZXdEYXRhID0gY29udHJvbGxlci5nZXRWaWV3KCkuZ2V0Vmlld0RhdGEoKSBhcyBCYXNlTWFuaWZlc3RTZXR0aW5ncztcblx0XHRyZXR1cm4gKFxuXHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRpZD17dGhpcy5jcmVhdGVJZChcIlN0YW5kYXJkQWN0aW9uOjpDcmVhdGVOZXh0XCIpfVxuXHRcdFx0XHR0ZXh0PXtcIntzYXAuZmUuaTE4bj5DX0NPTU1PTl9PQkpFQ1RfUEFHRV9DUkVBVEVfTkVYVH1cIn1cblx0XHRcdFx0cHJlc3M9e2NvbnRyb2xsZXIuZWRpdEZsb3cuY3JlYXRlTmV4dERvY3VtZW50fVxuXHRcdFx0XHR0eXBlPXtlbXBoYXNpemVkRXhwcmVzc2lvbn1cblx0XHRcdFx0dmlzaWJsZT17aWZFbHNlKFxuXHRcdFx0XHRcdHRoaXMuX2hpZGRlbkRyYWZ0ID09PSB0cnVlLFxuXHRcdFx0XHRcdGlmRWxzZShcblx0XHRcdFx0XHRcdHZpZXdEYXRhLmZjbEVuYWJsZWQgPT09IHRydWUsXG5cdFx0XHRcdFx0XHRhbmQoRHJhZnQuSXNOZXdPYmplY3QsIGVxdWFsKHBhdGhJbk1vZGVsKFwiL3Nob3dTYXZlQW5kQ2FuY2VsQnV0dG9uXCIsIFwiZmNsaGVscGVyXCIpLCB0cnVlKSksXG5cdFx0XHRcdFx0XHREcmFmdC5Jc05ld09iamVjdFxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0RHJhZnQuSXNOZXdPYmplY3Rcblx0XHRcdFx0KX1cblx0XHRcdFx0ZW5hYmxlZD17dHJ1ZX1cblx0XHRcdFx0ZHQ6ZGVzaWdudGltZT1cIm5vdC1hZGFwdGFibGVcIlxuXHRcdFx0PlxuXHRcdFx0XHR7eyBsYXlvdXREYXRhOiA8T3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YSBjbG9zZU92ZXJmbG93T25JbnRlcmFjdGlvbj17ZmFsc2V9PjwvT3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YT4gfX1cblx0XHRcdDwvQnV0dG9uPlxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIGdldFRvb2xiYXJTZXBhcmF0b3IoYWN0aW9uOiBCYXNlQWN0aW9uKTogVG9vbGJhclNlcGFyYXRvciB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxUb29sYmFyU2VwYXJhdG9yPlxuXHRcdFx0XHR7e1xuXHRcdFx0XHRcdGxheW91dERhdGE6IDxPdmVyZmxvd1Rvb2xiYXJMYXlvdXREYXRhIGdyb3VwPXthY3Rpb24uZ3JvdXB9PjwvT3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YT5cblx0XHRcdFx0fX1cblx0XHRcdDwvVG9vbGJhclNlcGFyYXRvcj5cblx0XHQpO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXREYXRhRmllbGRGb3JBY3Rpb25CdXR0b24oYWN0aW9uOiBCYXNlQWN0aW9uKTogQnV0dG9uIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAoYWN0aW9uLmFubm90YXRpb25QYXRoKSB7XG5cdFx0XHRjb25zdCBjb250cm9sbGVyID0gdGhpcy5fZ2V0T3duZXIoKT8uZ2V0Um9vdENvbnRyb2xsZXIoKSBhcyBPYmplY3RQYWdlQ29udHJvbGxlcjtcblx0XHRcdGNvbnN0IGFubm90YXRpb25QYXRoID0gYWN0aW9uLmFubm90YXRpb25QYXRoO1xuXHRcdFx0bGV0IHByZXNzRXZlbnQ6IHsgcHJlc3M6IChldmVudDogRXZlbnQpID0+IHZvaWQgfSB8IHsgXCJqc3g6Y29tbWFuZFwiOiBDb21tYW5kUHJvcGVydGllcyB9O1xuXHRcdFx0Y29uc3QgdmlldyA9IGNvbnRyb2xsZXIuZ2V0VmlldygpO1xuXHRcdFx0Y29uc3QgYW5ub3RhdGlvblBhdGhDb250ZXh0ID0gdGhpcy5vRGF0YU1ldGFNb2RlbC5nZXRDb250ZXh0KGFubm90YXRpb25QYXRoKTtcblx0XHRcdGNvbnN0IGRhdGFGaWVsZENvbnRleHRNb2RlbFBhdGggPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHM8RGF0YUZpZWxkRm9yQWN0aW9uPihhbm5vdGF0aW9uUGF0aENvbnRleHQpO1xuXHRcdFx0Y29uc3QgZGF0YUZpZWxkRm9yQWN0aW9uID0gZGF0YUZpZWxkQ29udGV4dE1vZGVsUGF0aC50YXJnZXRPYmplY3Q7XG5cdFx0XHRpZiAoZGF0YUZpZWxkRm9yQWN0aW9uKSB7XG5cdFx0XHRcdGNvbnN0IGFjdGlvblBhcmFtZXRlcnMgPSB7XG5cdFx0XHRcdFx0ZW50aXR5U2V0TmFtZTogdGhpcy5kYXRhVmlld01vZGVsUGF0aC50YXJnZXRFbnRpdHlTZXQ/Lm5hbWUsXG5cdFx0XHRcdFx0aW52b2NhdGlvbkdyb3VwaW5nOlxuXHRcdFx0XHRcdFx0ZGF0YUZpZWxkRm9yQWN0aW9uLkludm9jYXRpb25Hcm91cGluZyA9PT0gXCJVSS5PcGVyYXRpb25Hcm91cGluZ1R5cGUvQ2hhbmdlU2V0XCJcblx0XHRcdFx0XHRcdFx0PyAobGlicmFyeSBhcyBDb3JlTGliKS5JbnZvY2F0aW9uR3JvdXBpbmcuQ2hhbmdlU2V0XG5cdFx0XHRcdFx0XHRcdDogKGxpYnJhcnkgYXMgQ29yZUxpYikuSW52b2NhdGlvbkdyb3VwaW5nLklzb2xhdGVkLFxuXHRcdFx0XHRcdGxhYmVsOiBkYXRhRmllbGRGb3JBY3Rpb24uTGFiZWw/LnRvU3RyaW5nKCksXG5cdFx0XHRcdFx0aXNOYXZpZ2FibGU6IGFjdGlvbi5pc05hdmlnYWJsZSxcblx0XHRcdFx0XHRkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb246IGFjdGlvbi5kZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb24sXG5cdFx0XHRcdFx0ZGlzYWJsZVN0cmljdEhhbmRsaW5nOiBhY3Rpb24uZGlzYWJsZVN0cmljdEhhbmRsaW5nXG5cdFx0XHRcdH07XG5cdFx0XHRcdGlmICghYWN0aW9uLmNvbW1hbmQpIHtcblx0XHRcdFx0XHRwcmVzc0V2ZW50ID0ge1xuXHRcdFx0XHRcdFx0cHJlc3M6ICgpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0KGNvbnRyb2xsZXIgYXMgQ29udHJvbGxlcldpdGhBY3Rpb24pLmhhbmRsZXJzLm9uQ2FsbEFjdGlvbih2aWV3LCBkYXRhRmllbGRGb3JBY3Rpb24uQWN0aW9uIGFzIHN0cmluZywge1xuXHRcdFx0XHRcdFx0XHRcdC4uLmFjdGlvblBhcmFtZXRlcnMsXG5cdFx0XHRcdFx0XHRcdFx0Li4ue1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29udGV4dHM6IHZpZXcuZ2V0QmluZGluZ0NvbnRleHQoKSxcblx0XHRcdFx0XHRcdFx0XHRcdG1vZGVsOiB2aWV3LmdldE1vZGVsKClcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gY29tbWFuZCBjb21pbmcgZnJvbSB0aGUgbWFuaWZlc3QgZG9lc24ndCBnZXQgdGhlIG1hbmRhdG9yeSBwcmVmaXggXCJjbWQ6XCIgc28gd2UgbmVlZCB0byBhZGQgaXRcblx0XHRcdFx0XHRpZiAoIWFjdGlvbi5jb21tYW5kLnN0YXJ0c1dpdGgoXCJjbWQ6XCIpKSB7XG5cdFx0XHRcdFx0XHRhY3Rpb24uY29tbWFuZCA9IGBjbWQ6JHthY3Rpb24uY29tbWFuZH1gO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRwcmVzc0V2ZW50ID0geyBcImpzeDpjb21tYW5kXCI6IGAke2FjdGlvbi5jb21tYW5kfXxwcmVzc2AgYXMgQ29tbWFuZFByb3BlcnRpZXMgfTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdGlkPXt0aGlzLmNyZWF0ZUlkKHRoaXMuZ2V0QWN0aW9uTW9kZWxQYXRoKGFjdGlvbikpfVxuXHRcdFx0XHRcdFx0Ly8gVGhpcyBleHByZXNzaW9uIGNvbnNpZGVycyBhY3Rpb25zIHdpdGggZHluYW1pYyB2aXNpYmlsaXR5LlxuXHRcdFx0XHRcdFx0Ly8gV2hlbiB3ZSBoYXZlIG90aGVyIHZhbHVlcyB0aGFuIHRydWUgb3IgZmFsc2UsIGkuZS4gYW4gZXhwcmVzc2lvbiwgd2UgZXhjbHVkZSB0aGUgYWN0aW9ucyBmcm9tIGFkYXB0aW5nIHRoZSB2aXNpYmlsaXR5LlxuXHRcdFx0XHRcdFx0ZHQ6ZGVzaWdudGltZT17YWN0aW9uLnZpc2libGUgPT09IFwidHJ1ZVwiIHx8IGFjdGlvbi52aXNpYmxlID09PSBcImZhbHNlXCIgPyB1bmRlZmluZWQgOiBcIm5vdC1hZGFwdGFibGUtdmlzaWJpbGl0eVwifVxuXHRcdFx0XHRcdFx0dGV4dD17YWN0aW9uUGFyYW1ldGVycy5sYWJlbH1cblx0XHRcdFx0XHRcdHsuLi5wcmVzc0V2ZW50fVxuXHRcdFx0XHRcdFx0YXJpYUhhc1BvcHVwPXtpc0FjdGlvbldpdGhEaWFsb2coZGF0YUZpZWxkQ29udGV4dE1vZGVsUGF0aC50YXJnZXRPYmplY3QpfVxuXHRcdFx0XHRcdFx0dmlzaWJsZT17YWN0aW9uLnZpc2libGV9XG5cdFx0XHRcdFx0XHRlbmFibGVkPXthY3Rpb24uZW5hYmxlZH1cblx0XHRcdFx0XHRcdHR5cGU9e0NyaXRpY2FsaXR5Rm9ybWF0dGVycy5idWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUJ1dHRvblR5cGUoZGF0YUZpZWxkQ29udGV4dE1vZGVsUGF0aCl9XG5cdFx0XHRcdFx0XHRpY29uPXthY3Rpb24/LmlzQUlPcGVyYXRpb24gPT09IHRydWUgPyBhaUljb24gOiB1bmRlZmluZWR9XG5cdFx0XHRcdFx0XHRhcmlhRGVzY3JpYmVkQnk9e2FjdGlvbj8uaXNBSU9wZXJhdGlvbiA9PT0gdHJ1ZSA/IFtcImZlOjpBaUFjdGlvbjo6QXJpYVRleHRcIl0gOiB1bmRlZmluZWR9XG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdFx0bGF5b3V0RGF0YTogKFxuXHRcdFx0XHRcdFx0XHRcdDxPdmVyZmxvd1Rvb2xiYXJMYXlvdXREYXRhIHByaW9yaXR5PXthY3Rpb24ucHJpb3JpdHl9IGdyb3VwPXthY3Rpb24uZ3JvdXB9PjwvT3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YT5cblx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHQ8L0J1dHRvbj5cblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGdldE1hbmlmZXN0QnV0dG9uKGFjdGlvbjogQmFzZUFjdGlvbik6IEJ1dHRvbiB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKE9iamVjdFBhZ2VUZW1wbGF0aW5nLmlzTWFuaWZlc3RBY3Rpb24oYWN0aW9uKSkge1xuXHRcdFx0bGV0IHByZXNzRXZlbnQ6IHsgcHJlc3M6IChldmVudDogRXZlbnQpID0+IHZvaWQgfSB8IHsgXCJqc3g6Y29tbWFuZFwiOiBDb21tYW5kUHJvcGVydGllcyB9O1xuXHRcdFx0aWYgKGFjdGlvbi5jb21tYW5kKSB7XG5cdFx0XHRcdHByZXNzRXZlbnQgPSB7IFwianN4OmNvbW1hbmRcIjogYGNtZDoke2FjdGlvbi5jb21tYW5kfXxwcmVzc2AgfTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHByZXNzRXZlbnQgPSB7XG5cdFx0XHRcdFx0cHJlc3M6IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdEZQTUhlbHBlci5hY3Rpb25XcmFwcGVyKGV2ZW50LCBhY3Rpb24uaGFuZGxlck1vZHVsZSwgYWN0aW9uLmhhbmRsZXJNZXRob2QsIHt9KS5jYXRjaCgoZXJyb3I6IHVua25vd24pID0+XG5cdFx0XHRcdFx0XHRcdExvZy5lcnJvcihlcnJvciBhcyBzdHJpbmcpXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRpZD17dGhpcy5jcmVhdGVJZChhY3Rpb24uaWQpfVxuXHRcdFx0XHRcdGR0OmRlc2lnbnRpbWU9e2FjdGlvbi52aXNpYmxlID09PSBcInRydWVcIiB8fCBhY3Rpb24udmlzaWJsZSA9PT0gXCJmYWxzZVwiID8gdW5kZWZpbmVkIDogXCJub3QtYWRhcHRhYmxlLXZpc2liaWxpdHlcIn1cblx0XHRcdFx0XHR0ZXh0PXthY3Rpb24udGV4dCA/PyBcIlwifVxuXHRcdFx0XHRcdHsuLi5wcmVzc0V2ZW50fVxuXHRcdFx0XHRcdHR5cGU9XCJUcmFuc3BhcmVudFwiXG5cdFx0XHRcdFx0dmlzaWJsZT17YWN0aW9uLnZpc2libGV9XG5cdFx0XHRcdFx0ZW5hYmxlZD17YWN0aW9uLmVuYWJsZWR9XG5cdFx0XHRcdFx0aWNvbj17YWN0aW9uPy5pc0FJT3BlcmF0aW9uID09PSB0cnVlID8gYWlJY29uIDogdW5kZWZpbmVkfVxuXHRcdFx0XHRcdGFyaWFEZXNjcmliZWRCeT17YWN0aW9uPy5pc0FJT3BlcmF0aW9uID09PSB0cnVlID8gW1wiZmU6OkFpQWN0aW9uOjpBcmlhVGV4dFwiXSA6IHVuZGVmaW5lZH1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRsYXlvdXREYXRhOiA8T3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YSBwcmlvcml0eT17YWN0aW9uLnByaW9yaXR5fSBncm91cD17YWN0aW9uLmdyb3VwfT48L092ZXJmbG93VG9vbGJhckxheW91dERhdGE+XG5cdFx0XHRcdFx0fX1cblx0XHRcdFx0XHTigJpcblx0XHRcdFx0PC9CdXR0b24+XG5cdFx0XHQpO1xuXHRcdH1cblx0fVxuXG5cdGdldEFjdGlvbkNvbnRyb2xzKCk6IEJ1dHRvbltdIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBlbXBoYXNpemVkQnV0dG9uRXhwcmVzc2lvbiA9IE9iamVjdFBhZ2VUZW1wbGF0aW5nLmJ1aWxkRW1waGFzaXplZEJ1dHRvbkV4cHJlc3Npb24odGhpcy5kYXRhVmlld01vZGVsUGF0aCk7XG5cdFx0cmV0dXJuIHRoaXMuYWN0aW9uc1xuXHRcdFx0Py5tYXAoKGFjdGlvbjogQmFzZUFjdGlvbikgPT4ge1xuXHRcdFx0XHRzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG5cdFx0XHRcdFx0Y2FzZSBBY3Rpb25UeXBlLkRlZmF1bHRBcHBseTpcblx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmdldEFwcGx5QnV0dG9uKGVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uKTtcblx0XHRcdFx0XHRjYXNlIEFjdGlvblR5cGUuRGF0YUZpZWxkRm9yQWN0aW9uOlxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0RGF0YUZpZWxkRm9yQWN0aW9uQnV0dG9uKGFjdGlvbik7XG5cdFx0XHRcdFx0Y2FzZSBBY3Rpb25UeXBlLlByaW1hcnk6XG5cdFx0XHRcdFx0XHRjb25zdCBjb250cm9sbGVyID0gdGhpcy5fZ2V0T3duZXIoKT8uZ2V0Um9vdENvbnRyb2xsZXIoKSBhcyBPYmplY3RQYWdlQ29udHJvbGxlcjtcblx0XHRcdFx0XHRcdGNvbnN0IHZpZXdEYXRhID0gY29udHJvbGxlci5nZXRWaWV3KCkuZ2V0Vmlld0RhdGEoKSBhcyBCYXNlTWFuaWZlc3RTZXR0aW5ncztcblx0XHRcdFx0XHRcdGNvbnN0IHZpZXdMZXZlbCA9IHZpZXdEYXRhPy52aWV3TGV2ZWwgPz8gMDtcblx0XHRcdFx0XHRcdGlmICh0aGlzLl9oaWRkZW5EcmFmdCAmJiAhdGhpcy5faGlkZUNyZWF0ZU5leHQgJiYgdmlld0xldmVsID4gMSkge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBlbXBoYXNpemVkQnV0dG9uVG9vbEtpdEV4cCA9IGVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uXG5cdFx0XHRcdFx0XHRcdFx0PyByZXNvbHZlQmluZGluZ1N0cmluZyhlbXBoYXNpemVkQnV0dG9uRXhwcmVzc2lvbilcblx0XHRcdFx0XHRcdFx0XHQ6IHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0UHJpbWFyeShjb21waWxlRXhwcmVzc2lvbihpZkVsc2UoRHJhZnQuSXNOZXdPYmplY3QsIHVuZGVmaW5lZCwgZW1waGFzaXplZEJ1dHRvblRvb2xLaXRFeHApKSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRQcmltYXJ5KGVtcGhhc2l6ZWRCdXR0b25FeHByZXNzaW9uLCBhY3Rpb24pO1xuXHRcdFx0XHRcdGNhc2UgQWN0aW9uVHlwZS5TZWNvbmRhcnk6XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRDYW5jZWxCdXR0b24oYWN0aW9uKTtcblx0XHRcdFx0XHRjYXNlIEFjdGlvblR5cGUuQ3JlYXRlTmV4dDpcblx0XHRcdFx0XHRcdGlmICh0aGlzLl9oaWRkZW5EcmFmdCAmJiAhdGhpcy5faGlkZUNyZWF0ZU5leHQpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgZW1waGFzaXplZEJ1dHRvblRvb2xLaXRFeHAgPSBlbXBoYXNpemVkQnV0dG9uRXhwcmVzc2lvblxuXHRcdFx0XHRcdFx0XHRcdD8gcmVzb2x2ZUJpbmRpbmdTdHJpbmcoZW1waGFzaXplZEJ1dHRvbkV4cHJlc3Npb24pXG5cdFx0XHRcdFx0XHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmdldENyZWF0ZU5leHRCdXR0b24oXG5cdFx0XHRcdFx0XHRcdFx0Y29tcGlsZUV4cHJlc3Npb24oaWZFbHNlKERyYWZ0LklzTmV3T2JqZWN0LCBlbXBoYXNpemVkQnV0dG9uVG9vbEtpdEV4cCwgdW5kZWZpbmVkKSlcblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRjYXNlIEFjdGlvblR5cGUuU2VwYXJhdG9yOlxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0VG9vbGJhclNlcGFyYXRvcihhY3Rpb24pO1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRNYW5pZmVzdEJ1dHRvbihhY3Rpb24pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdFx0LmZpbHRlcigoYWN0aW9uKTogYWN0aW9uIGlzIEJ1dHRvbiA9PiAhIWFjdGlvbik7XG5cdH1cblxuXHRjcmVhdGVDb250ZW50KCk6IE92ZXJmbG93VG9vbGJhciB7XG5cdFx0Y29uc3QgY29udHJvbGxlciA9IHRoaXMuX2dldE93bmVyKCk/LmdldFJvb3RDb250cm9sbGVyKCkgYXMgT2JqZWN0UGFnZUNvbnRyb2xsZXI7XG5cdFx0Y29uc3Qgdmlld0RhdGEgPSBjb250cm9sbGVyLmdldFZpZXcoKS5nZXRWaWV3RGF0YSgpIGFzIEJhc2VNYW5pZmVzdFNldHRpbmdzO1xuXHRcdGNvbnN0IG1lc3NhZ2VCdXR0b246IE1lc3NhZ2VCdXR0b24gPSAoXG5cdFx0XHQ8TWVzc2FnZUJ1dHRvblxuXHRcdFx0XHRpZD17dGhpcy5jcmVhdGVJZChcIk1lc3NhZ2VCdXR0b25cIil9XG5cdFx0XHRcdHZpc2libGU9e2NvbXBpbGVFeHByZXNzaW9uKFxuXHRcdFx0XHRcdGlmRWxzZShcblx0XHRcdFx0XHRcdHRoaXMuX2hpZGRlbkRyYWZ0ID09PSB0cnVlLFxuXHRcdFx0XHRcdFx0aWZFbHNlKFxuXHRcdFx0XHRcdFx0XHR2aWV3RGF0YS5mY2xFbmFibGVkID09PSB0cnVlLFxuXHRcdFx0XHRcdFx0XHRhbmQoVUkuSXNFZGl0YWJsZSwgZXF1YWwocGF0aEluTW9kZWwoXCIvc2hvd1NhdmVBbmRDYW5jZWxCdXR0b25cIiwgXCJmY2xoZWxwZXJcIiksIHRydWUpKSxcblx0XHRcdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdHRydWVcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCl9XG5cdFx0XHRcdG1lc3NhZ2VDaGFuZ2U9eygpOiB2b2lkID0+IGNvbnRyb2xsZXIuX2dldEZvb3RlclZpc2liaWxpdHkoKX1cblx0XHRcdFx0YXJpYUxhYmVsbGVkQnk9e1t0aGlzLmNyZWF0ZUlkKFwiTWVzc2FnZUJ1dHRvbjo6QXJpYVRleHRcIikgYXMgc3RyaW5nXX1cblx0XHRcdFx0dHlwZT1cIkVtcGhhc2l6ZWRcIlxuXHRcdFx0XHRhcmlhSGFzUG9wdXA9XCJEaWFsb2dcIlxuXHRcdFx0Lz5cblx0XHQpO1xuXHRcdGNvbnN0IGZvb3RlckJhciA9IChcblx0XHRcdDxPdmVyZmxvd1Rvb2xiYXIgaWQ9e3RoaXMuY3JlYXRlSWQoXCJfZmNcIil9IGFzeW5jTW9kZT17dHJ1ZX0+XG5cdFx0XHRcdDxJbnZpc2libGVUZXh0XG5cdFx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQoXCJNZXNzYWdlQnV0dG9uOjpBcmlhVGV4dFwiKX1cblx0XHRcdFx0XHR0ZXh0PVwie3NhcC5mZS5pMThuPkNfQ09NTU9OX1NBUEZFX0VSUk9SX01FU1NBR0VTX1BBR0VfQlVUVE9OX0FSSUFfVEVYVH1cIlxuXHRcdFx0XHQvPlxuXHRcdFx0XHR7bWVzc2FnZUJ1dHRvbn1cblx0XHRcdFx0PFRvb2xiYXJTcGFjZXIgLz5cblx0XHRcdFx0e3RoaXMuZ2V0RHJhZnRJbmRpY2F0b3IoKX1cblx0XHRcdFx0e3RoaXMuZ2V0QWN0aW9uQ29udHJvbHMoKX1cblx0XHRcdDwvT3ZlcmZsb3dUb29sYmFyPlxuXHRcdCk7XG5cdFx0Y29udHJvbGxlclxuXHRcdFx0LmdldFZpZXcoKVxuXHRcdFx0LmFkZERlcGVuZGVudChcblx0XHRcdFx0PENvbW1hbmRFeGVjdXRpb25cblx0XHRcdFx0XHRyZWY9e3RoaXMuY21kRXhlY3V0aW9ufVxuXHRcdFx0XHRcdGNvbW1hbmQ9XCJPcGVuTWVzc2FnZUJ1dHRvbk1lbnVcIlxuXHRcdFx0XHRcdGV4ZWN1dGU9eygpOiBNZXNzYWdlQnV0dG9uID0+IG1lc3NhZ2VCdXR0b24uZmlyZVByZXNzKCl9XG5cdFx0XHRcdC8+XG5cdFx0XHQpO1xuXHRcdHJldHVybiBmb290ZXJCYXI7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBb0NBO0VBR0E7RUFBQSxJQWFxQkEsYUFBYSxJQUFBQyxJQUFBLEdBRGpDQyxjQUFjLENBQUMsNkJBQTZCLENBQUMsRUFBQUMsS0FBQSxHQUU1Q0Msa0JBQWtCLENBQUMscUJBQXFCLENBQUMsRUFBQUMsS0FBQSxHQUd6Q0Qsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEVBQUFFLEtBQUEsR0FHaENDLFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUUsUUFBUTtJQUNkQyxRQUFRLEVBQUU7RUFDWCxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQUdESCxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFLFFBQVE7SUFDZEMsUUFBUSxFQUFFO0VBQ1gsQ0FBQyxDQUFDLEVBQUFFLEtB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
|
|
@@ -412,7 +412,8 @@ export default class FooterContent extends BuildingBlock<OverflowToolbar> {
|
|
|
412
412
|
: (library as CoreLib).InvocationGrouping.Isolated,
|
|
413
413
|
label: dataFieldForAction.Label?.toString(),
|
|
414
414
|
isNavigable: action.isNavigable,
|
|
415
|
-
defaultValuesExtensionFunction: action.defaultValuesExtensionFunction
|
|
415
|
+
defaultValuesExtensionFunction: action.defaultValuesExtensionFunction,
|
|
416
|
+
disableStrictHandling: action.disableStrictHandling
|
|
416
417
|
};
|
|
417
418
|
if (!action.command) {
|
|
418
419
|
pressEvent = {
|
|
@@ -446,6 +447,7 @@ export default class FooterContent extends BuildingBlock<OverflowToolbar> {
|
|
|
446
447
|
enabled={action.enabled}
|
|
447
448
|
type={CriticalityFormatters.buildExpressionForCriticalityButtonType(dataFieldContextModelPath)}
|
|
448
449
|
icon={action?.isAIOperation === true ? aiIcon : undefined}
|
|
450
|
+
ariaDescribedBy={action?.isAIOperation === true ? ["fe::AiAction::AriaText"] : undefined}
|
|
449
451
|
>
|
|
450
452
|
{{
|
|
451
453
|
layoutData: (
|
|
@@ -453,7 +455,7 @@ export default class FooterContent extends BuildingBlock<OverflowToolbar> {
|
|
|
453
455
|
)
|
|
454
456
|
}}
|
|
455
457
|
</Button>
|
|
456
|
-
)
|
|
458
|
+
);
|
|
457
459
|
}
|
|
458
460
|
}
|
|
459
461
|
}
|
|
@@ -482,13 +484,14 @@ export default class FooterContent extends BuildingBlock<OverflowToolbar> {
|
|
|
482
484
|
visible={action.visible}
|
|
483
485
|
enabled={action.enabled}
|
|
484
486
|
icon={action?.isAIOperation === true ? aiIcon : undefined}
|
|
487
|
+
ariaDescribedBy={action?.isAIOperation === true ? ["fe::AiAction::AriaText"] : undefined}
|
|
485
488
|
>
|
|
486
489
|
{{
|
|
487
490
|
layoutData: <OverflowToolbarLayoutData priority={action.priority} group={action.group}></OverflowToolbarLayoutData>
|
|
488
491
|
}}
|
|
489
492
|
‚
|
|
490
493
|
</Button>
|
|
491
|
-
)
|
|
494
|
+
);
|
|
492
495
|
}
|
|
493
496
|
}
|
|
494
497
|
|
|
@@ -165,4 +165,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/buildingBlocks/BuildingB
|
|
|
165
165
|
_exports = KPITag;
|
|
166
166
|
return _exports;
|
|
167
167
|
}, false);
|
|
168
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJLUElUYWciLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsInJlcXVpcmVkIiwiX2RlYzMiLCJpc0JpbmRpbmdJbmZvIiwiX2RlYzQiLCJkZWZhdWx0VmFsdWUiLCJhbGxvd2VkVmFsdWVzIiwiX2RlYzUiLCJfZGVjNiIsImV2ZW50IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrIiwicHJvcGVydGllcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25NZXRhZGF0YUF2YWlsYWJsZSIsImNvbnRlbnQiLCJfZ2V0T3duZXIiLCJydW5Bc093bmVyIiwiY3JlYXRlQ29udGVudCIsIl9qc3giLCJHZW5lcmljVGFnIiwiaWQiLCJjcmVhdGVJZCIsInRleHQiLCJkZXNpZ24iLCJzaG93SWNvbiIsInN0YXR1cyIsImNsYXNzIiwidG9vbHRpcCIsInByZXNzIiwiZSIsImtwaVRhZyIsImdldFNvdXJjZSIsImdldFBhcmVudCIsImZpcmVFdmVudCIsImNoaWxkcmVuIiwiT2JqZWN0TnVtYmVyIiwic3RhdGUiLCJlbXBoYXNpemVkIiwibnVtYmVyIiwidW5pdCIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIktQSVRhZy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXZlbnQsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2sgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL0J1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCBHZW5lcmljVGFnLCB7IHR5cGUgR2VuZXJpY1RhZyRQcmVzc0V2ZW50IH0gZnJvbSBcInNhcC9tL0dlbmVyaWNUYWdcIjtcbmltcG9ydCBPYmplY3ROdW1iZXIgZnJvbSBcInNhcC9tL09iamVjdE51bWJlclwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eUJpbmRpbmdJbmZvIH0gZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCB0eXBlIHsgJENvbnRyb2xTZXR0aW5ncyB9IGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG4vKipcbiAqIEJ1aWxkaW5nIGJsb2NrIHVzZWQgdG8gY3JlYXRlIGEgS1BJIHRhZy5cbiAqIEBwdWJsaWNcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5LUElUYWdcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEtQSVRhZyBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8R2VuZXJpY1RhZz4ge1xuXHQvKipcblx0ICogVGhlIElEIG9mIHRoZSBLUElcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIHJlcXVpcmVkOiB0cnVlIH0pXG5cdHB1YmxpYyBpZCE6IHN0cmluZztcblxuXHQvKipcblx0ICogVGhlIFRleHQgdG8gYmUgZGlzcGxheWVkLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcImFueVwiLCBpc0JpbmRpbmdJbmZvOiB0cnVlIH0pXG5cdHB1YmxpYyB0ZXh0Pzogc3RyaW5nIHwgUHJvcGVydHlCaW5kaW5nSW5mbztcblxuXHQvKipcblx0ICogVGhlIFN0YXR1cyB0byBiZSBkaXNwbGF5ZWQuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJhbnlcIixcblx0XHRkZWZhdWx0VmFsdWU6IFwiTm9uZVwiLFxuXHRcdGFsbG93ZWRWYWx1ZXM6IFtcIlN1Y2Nlc3NcIiwgXCJFcnJvclwiLCBcIldhcm5pbmdcIiwgXCJOb25lXCIsIFwiSW5mb3JtYXRpb25cIl0sXG5cdFx0aXNCaW5kaW5nSW5mbzogdHJ1ZVxuXHR9KVxuXHRwdWJsaWMgc3RhdHVzOiBzdHJpbmcgfCBQcm9wZXJ0eUJpbmRpbmdJbmZvO1xuXG5cdC8qKlxuXHQgKiBUaGUgVG9vbHRpcCB0byBiZSBkaXNwbGF5ZWQuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYW55XCIsIGlzQmluZGluZ0luZm86IHRydWUgfSlcblx0cHVibGljIHRvb2x0aXA/OiBzdHJpbmcgfCBQcm9wZXJ0eUJpbmRpbmdJbmZvO1xuXG5cdC8qKlxuXHQgKiBBbiBldmVudCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgS1BJIGlzIHByZXNzZWQuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBldmVudCgpXG5cdHB1YmxpYyBwcmVzcz86IEZ1bmN0aW9uO1xuXG5cdC8qKlxuXHQgKiBUaGUgTnVtYmVyIHRvIGJlIGRpc3BsYXllZC5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJhbnlcIiwgcmVxdWlyZWQ6IHRydWUsIGlzQmluZGluZ0luZm86IHRydWUgfSlcblx0cHVibGljIG51bWJlciE6IHN0cmluZyB8IFByb3BlcnR5QmluZGluZ0luZm87XG5cblx0LyoqXG5cdCAqIFRoZSBVbml0IG9mIE1lYXN1cmUgb2YgdGhlIG51bWJlciB0byBiZSBkaXNwbGF5ZWQuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYW55XCIsIGlzQmluZGluZ0luZm86IHRydWUgfSlcblx0cHVibGljIHVuaXQ/OiBzdHJpbmcgfCBQcm9wZXJ0eUJpbmRpbmdJbmZvO1xuXG5cdC8qKlxuXHQgKiBTZXQgaXQgdG8gYHRydWVgIGlmIHRoZSBLUEkgc2hvdWxkIGRpc3BsYXkgaXRzIHN0YXR1cyBpY29uLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgcmVxdWlyZWQ6IGZhbHNlIH0pXG5cdHB1YmxpYyBzaG93SWNvbiA9IGZhbHNlO1xuXG5cdGNvbnN0cnVjdG9yKHByb3BlcnRpZXM6ICRDb250cm9sU2V0dGluZ3MgJiBQcm9wZXJ0aWVzT2Y8S1BJVGFnPiwgb3RoZXJzPzogJENvbnRyb2xTZXR0aW5ncykge1xuXHRcdHN1cGVyKHByb3BlcnRpZXMsIG90aGVycyk7XG5cdH1cblxuXHRvbk1ldGFkYXRhQXZhaWxhYmxlKCk6IHZvaWQge1xuXHRcdGlmICghdGhpcy5jb250ZW50KSB7XG5cdFx0XHR0aGlzLl9nZXRPd25lcigpPy5ydW5Bc093bmVyKCgpID0+IHtcblx0XHRcdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRjcmVhdGVDb250ZW50KCk6IEdlbmVyaWNUYWcge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8R2VuZXJpY1RhZ1xuXHRcdFx0XHRpZD17dGhpcy5jcmVhdGVJZChcIl9rcGlcIil9XG5cdFx0XHRcdHRleHQ9e3RoaXMudGV4dH1cblx0XHRcdFx0ZGVzaWduPXt0aGlzLnNob3dJY29uID8gXCJGdWxsXCIgOiBcIlN0YXR1c0ljb25IaWRkZW5cIn1cblx0XHRcdFx0c3RhdHVzPXt0aGlzLnN0YXR1c31cblx0XHRcdFx0Y2xhc3M9XCJzYXBVaVRpbnlNYXJnaW5CZWdpblwiXG5cdFx0XHRcdHRvb2x0aXA9e3RoaXMudG9vbHRpcH1cblx0XHRcdFx0cHJlc3M9eyhlOiBHZW5lcmljVGFnJFByZXNzRXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRjb25zdCBrcGlUYWcgPSBlLmdldFNvdXJjZSgpLmdldFBhcmVudCgpIGFzIEtQSVRhZztcblx0XHRcdFx0XHRrcGlUYWcuZmlyZUV2ZW50KFwicHJlc3NcIik7XG5cdFx0XHRcdH19XG5cdFx0XHQ+XG5cdFx0XHRcdDxPYmplY3ROdW1iZXIgc3RhdGU9e3RoaXMuc3RhdHVzfSBlbXBoYXNpemVkPXtmYWxzZX0gbnVtYmVyPXt0aGlzLm51bWJlcn0gdW5pdD17dGhpcy51bml0fSAvPlxuXHRcdFx0PC9HZW5lcmljVGFnPlxuXHRcdCk7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFPQTtBQUNBO0FBQ0E7QUFDQTtFQUhBLElBS3FCQSxNQUFNLElBQUFDLElBQUEsR0FEMUJDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFBQyxLQUFBLEdBS3JDQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFFBQVE7SUFBRUMsUUFBUSxFQUFFO0VBQUssQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FPNUNILFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsS0FBSztJQUFFRyxhQUFhLEVBQUU7RUFBSyxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQU85Q0wsUUFBUSxDQUFDO0lBQ1RDLElBQUksRUFBRSxLQUFLO0lBQ1hLLFlBQVksRUFBRSxNQUFNO0lBQ3BCQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDO0lBQ3JFSCxhQUFhLEVBQUU7RUFDaEIsQ0FBQyxDQUFDLEVBQUFJLEtBQUEsR0FPRFIsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxLQUFLO0lBQUVHLGFBQWEsRUFBRTtFQUFLLENBQUMsQ0FBQyxFQUFBSyxLQUFBLEdBTzlDQyxLQUFLLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBT1BYLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVB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LEVBQUUsSUFBSSxDQUFDQSxNQUFPO1VBQUNDLElBQUksRUFBRSxJQUFJLENBQUNBO1FBQUssQ0FBRTtNQUFDLENBQ2xGLENBQUM7SUFFZixDQUFDO0lBQUEsT0FBQWhFLE1BQUE7RUFBQSxFQTFGa0NpRSxhQUFhLEdBQUF2QyxXQUFBLEdBQUF3Qyx5QkFBQSxDQUFBL0MsT0FBQSxDQUFBa0IsU0FBQSxTQUFBbEMsS0FBQTtJQUFBZ0UsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUEzQyxZQUFBLEdBQUF1Qyx5QkFBQSxDQUFBL0MsT0FBQSxDQUFBa0IsU0FBQSxXQUFBOUIsS0FBQTtJQUFBNEQsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUExQyxZQUFBLEdBQUFzQyx5QkFBQSxDQUFBL0MsT0FBQSxDQUFBa0IsU0FBQSxhQUFBNUIsS0FBQTtJQUFBMEQsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUF6QyxZQUFBLEdBQUFxQyx5QkFBQSxDQUFBL0MsT0FBQSxDQUFBa0IsU0FBQSxjQUFBekIsS0FBQTtJQUFBdUQsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUF4QyxZQUFBLEdBQUFvQyx5QkFBQSxDQUFBL0MsT0FBQSxDQUFBa0IsU0FBQSxZQUFBeEIsS0FBQTtJQUFBc0QsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUF2QyxZQUFBLEdBQUFtQyx5QkFBQSxDQUFBL0MsT0FBQSxDQUFBa0IsU0FBQSxhQUFBdEIsS0FBQTtJQUFBb0QsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUF0QyxZQUFBLEdBQUFrQyx5QkFBQSxDQUFBL0MsT0FBQSxDQUFBa0IsU0FBQSxXQUFBckIsS0FBQTtJQUFBbUQsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUFyQyxZQUFBLEdBQUFpQyx5QkFBQSxDQUFBL0MsT0FBQSxDQUFBa0IsU0FBQSxlQUFBcEIsS0FBQTtJQUFBa0QsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQSxXQUFBQSxDQUFBO01BQUEsT0EyRDlCLEtBQUs7SUFBQTtFQUFBLElBQUFuRCxPQUFBLE1BQUFELE1BQUE7RUFBQWdCLFFBQUEsR0FBQWxDLE1BQUE7RUFBQSxPQUFBa0MsUUFBQTtBQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
168
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJLUElUYWciLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsInJlcXVpcmVkIiwiX2RlYzMiLCJpc0JpbmRpbmdJbmZvIiwiX2RlYzQiLCJkZWZhdWx0VmFsdWUiLCJhbGxvd2VkVmFsdWVzIiwiX2RlYzUiLCJfZGVjNiIsImV2ZW50IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrIiwicHJvcGVydGllcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25NZXRhZGF0YUF2YWlsYWJsZSIsImNvbnRlbnQiLCJfZ2V0T3duZXIiLCJydW5Bc093bmVyIiwiY3JlYXRlQ29udGVudCIsIl9qc3giLCJHZW5lcmljVGFnIiwiaWQiLCJjcmVhdGVJZCIsInRleHQiLCJkZXNpZ24iLCJzaG93SWNvbiIsInN0YXR1cyIsImNsYXNzIiwidG9vbHRpcCIsInByZXNzIiwiZSIsImtwaVRhZyIsImdldFNvdXJjZSIsImdldFBhcmVudCIsImZpcmVFdmVudCIsImNoaWxkcmVuIiwiT2JqZWN0TnVtYmVyIiwic3RhdGUiLCJlbXBoYXNpemVkIiwibnVtYmVyIiwidW5pdCIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIktQSVRhZy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXZlbnQsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2sgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL0J1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCBHZW5lcmljVGFnLCB7IHR5cGUgR2VuZXJpY1RhZyRQcmVzc0V2ZW50IH0gZnJvbSBcInNhcC9tL0dlbmVyaWNUYWdcIjtcbmltcG9ydCBPYmplY3ROdW1iZXIgZnJvbSBcInNhcC9tL09iamVjdE51bWJlclwiO1xuaW1wb3J0IHR5cGUgVUk1RXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5QmluZGluZ0luZm8gfSBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgeyAkQ29udHJvbFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIHsgRXZlbnRIYW5kbGVyIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL3R5cGVzL2V4dGVuc2lvbl90eXBlc1wiO1xuLyoqXG4gKiBCdWlsZGluZyBibG9jayB1c2VkIHRvIGNyZWF0ZSBhIEtQSSB0YWcuXG4gKiBAcHVibGljXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuS1BJVGFnXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBLUElUYWcgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrPEdlbmVyaWNUYWc+IHtcblx0LyoqXG5cdCAqIFRoZSBJRCBvZiB0aGUgS1BJXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiLCByZXF1aXJlZDogdHJ1ZSB9KVxuXHRwdWJsaWMgaWQhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIFRoZSBUZXh0IHRvIGJlIGRpc3BsYXllZC5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJhbnlcIiwgaXNCaW5kaW5nSW5mbzogdHJ1ZSB9KVxuXHRwdWJsaWMgdGV4dD86IHN0cmluZyB8IFByb3BlcnR5QmluZGluZ0luZm87XG5cblx0LyoqXG5cdCAqIFRoZSBTdGF0dXMgdG8gYmUgZGlzcGxheWVkLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwiYW55XCIsXG5cdFx0ZGVmYXVsdFZhbHVlOiBcIk5vbmVcIixcblx0XHRhbGxvd2VkVmFsdWVzOiBbXCJTdWNjZXNzXCIsIFwiRXJyb3JcIiwgXCJXYXJuaW5nXCIsIFwiTm9uZVwiLCBcIkluZm9ybWF0aW9uXCJdLFxuXHRcdGlzQmluZGluZ0luZm86IHRydWVcblx0fSlcblx0cHVibGljIHN0YXR1czogc3RyaW5nIHwgUHJvcGVydHlCaW5kaW5nSW5mbztcblxuXHQvKipcblx0ICogVGhlIFRvb2x0aXAgdG8gYmUgZGlzcGxheWVkLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcImFueVwiLCBpc0JpbmRpbmdJbmZvOiB0cnVlIH0pXG5cdHB1YmxpYyB0b29sdGlwPzogc3RyaW5nIHwgUHJvcGVydHlCaW5kaW5nSW5mbztcblxuXHQvKipcblx0ICogQW4gZXZlbnQgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIEtQSSBpcyBwcmVzc2VkLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAZXZlbnQoKVxuXHRwdWJsaWMgcHJlc3M/OiBFdmVudEhhbmRsZXI8VUk1RXZlbnQ8e30sIEtQSVRhZz4+O1xuXG5cdC8qKlxuXHQgKiBUaGUgTnVtYmVyIHRvIGJlIGRpc3BsYXllZC5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJhbnlcIiwgcmVxdWlyZWQ6IHRydWUsIGlzQmluZGluZ0luZm86IHRydWUgfSlcblx0cHVibGljIG51bWJlciE6IHN0cmluZyB8IFByb3BlcnR5QmluZGluZ0luZm87XG5cblx0LyoqXG5cdCAqIFRoZSBVbml0IG9mIE1lYXN1cmUgb2YgdGhlIG51bWJlciB0byBiZSBkaXNwbGF5ZWQuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYW55XCIsIGlzQmluZGluZ0luZm86IHRydWUgfSlcblx0cHVibGljIHVuaXQ/OiBzdHJpbmcgfCBQcm9wZXJ0eUJpbmRpbmdJbmZvO1xuXG5cdC8qKlxuXHQgKiBTZXQgaXQgdG8gYHRydWVgIGlmIHRoZSBLUEkgc2hvdWxkIGRpc3BsYXkgaXRzIHN0YXR1cyBpY29uLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgcmVxdWlyZWQ6IGZhbHNlIH0pXG5cdHB1YmxpYyBzaG93SWNvbiA9IGZhbHNlO1xuXG5cdGNvbnN0cnVjdG9yKHByb3BlcnRpZXM6ICRDb250cm9sU2V0dGluZ3MgJiBQcm9wZXJ0aWVzT2Y8S1BJVGFnPiwgb3RoZXJzPzogJENvbnRyb2xTZXR0aW5ncykge1xuXHRcdHN1cGVyKHByb3BlcnRpZXMsIG90aGVycyk7XG5cdH1cblxuXHRvbk1ldGFkYXRhQXZhaWxhYmxlKCk6IHZvaWQge1xuXHRcdGlmICghdGhpcy5jb250ZW50KSB7XG5cdFx0XHR0aGlzLl9nZXRPd25lcigpPy5ydW5Bc093bmVyKCgpID0+IHtcblx0XHRcdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRjcmVhdGVDb250ZW50KCk6IEdlbmVyaWNUYWcge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8R2VuZXJpY1RhZ1xuXHRcdFx0XHRpZD17dGhpcy5jcmVhdGVJZChcIl9rcGlcIil9XG5cdFx0XHRcdHRleHQ9e3RoaXMudGV4dH1cblx0XHRcdFx0ZGVzaWduPXt0aGlzLnNob3dJY29uID8gXCJGdWxsXCIgOiBcIlN0YXR1c0ljb25IaWRkZW5cIn1cblx0XHRcdFx0c3RhdHVzPXt0aGlzLnN0YXR1c31cblx0XHRcdFx0Y2xhc3M9XCJzYXBVaVRpbnlNYXJnaW5CZWdpblwiXG5cdFx0XHRcdHRvb2x0aXA9e3RoaXMudG9vbHRpcH1cblx0XHRcdFx0cHJlc3M9eyhlOiBHZW5lcmljVGFnJFByZXNzRXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRjb25zdCBrcGlUYWcgPSBlLmdldFNvdXJjZSgpLmdldFBhcmVudCgpIGFzIEtQSVRhZztcblx0XHRcdFx0XHRrcGlUYWcuZmlyZUV2ZW50KFwicHJlc3NcIik7XG5cdFx0XHRcdH19XG5cdFx0XHQ+XG5cdFx0XHRcdDxPYmplY3ROdW1iZXIgc3RhdGU9e3RoaXMuc3RhdHVzfSBlbXBoYXNpemVkPXtmYWxzZX0gbnVtYmVyPXt0aGlzLm51bWJlcn0gdW5pdD17dGhpcy51bml0fSAvPlxuXHRcdFx0PC9HZW5lcmljVGFnPlxuXHRcdCk7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFTQTtBQUNBO0FBQ0E7QUFDQTtFQUhBLElBS3FCQSxNQUFNLElBQUFDLElBQUEsR0FEMUJDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFBQyxLQUFBLEdBS3JDQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFFBQVE7SUFBRUMsUUFBUSxFQUFFO0VBQUssQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FPNUNILFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsS0FBSztJQUFFRyxhQUFhLEVBQUU7RUFBSyxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQU85Q0wsUUFBUSxDQUFDO0lBQ1RDLElBQUksRUFBRSxLQUFLO0lBQ1hLLFlBQVksRUFBRSxNQUFNO0lBQ3BCQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDO0lBQ3JFSCxhQUFhLEVBQUU7RUFDaEIsQ0FBQyxD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
|