@magic-xpa/gui 4.800.0-dev480.18 → 4.800.0-dev480.180
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/bundles/magic-xpa-gui.umd.js +1038 -7529
- package/bundles/magic-xpa-gui.umd.js.map +1 -1
- package/bundles/magic-xpa-gui.umd.min.js +1 -1
- package/bundles/magic-xpa-gui.umd.min.js.map +1 -1
- package/esm2015/index.js +1 -1
- package/esm2015/magic-xpa-gui.js +1 -4
- package/esm2015/src/Commands.js +7 -114
- package/esm2015/src/Events.js +1 -517
- package/esm2015/src/EventsProcessor.js +1 -51
- package/esm2015/src/FocusManager.js +1 -13
- package/esm2015/src/GuiConstants.js +2 -11
- package/esm2015/src/GuiEnums.js +126 -130
- package/esm2015/src/GuiEnvironment.js +1 -1
- package/esm2015/src/IFlowMonitorQueue.js +1 -1
- package/esm2015/src/Manager.js +10 -148
- package/esm2015/src/UIBridge.js +1 -6
- package/esm2015/src/env/IEnvironment.js +1 -1
- package/esm2015/src/gui/ControlBase.js +1 -1
- package/esm2015/src/gui/GuiMgControl.js +1 -94
- package/esm2015/src/gui/GuiMgForm.js +1 -1
- package/esm2015/src/gui/KeyboardItem.js +5 -46
- package/esm2015/src/gui/LastFocusedVal.js +1 -5
- package/esm2015/src/gui/MgValue.js +1 -1
- package/esm2015/src/gui/PropParentInterface.js +1 -1
- package/esm2015/src/gui/low/DialogHandler.js +1 -10
- package/esm2015/src/gui/low/GuiCommand.js +1 -12
- package/esm2015/src/gui/low/GuiCommandQueue.js +1 -66
- package/esm2015/src/gui/low/GuiInteractive.js +2 -465
- package/esm2015/src/gui/low/Style.js +1 -9
- package/esm2015/src/management/RuntimeContextBase.js +11 -14
- package/esm2015/src/management/data/BlobType.js +0 -0
- package/esm2015/src/management/data/DcValues.js +8 -67
- package/esm2015/src/management/data/DcValuesBuilderBase.js +2 -37
- package/esm2015/src/management/data/FieldDef.js +1 -95
- package/esm2015/src/management/data/FieldsTable.js +2 -28
- package/esm2015/src/management/data/GuiDataViewBase.js +33 -72
- package/esm2015/src/management/data/GuiFieldBase.js +4 -39
- package/esm2015/src/management/data/IRecord.js +1 -1
- package/esm2015/src/management/data/IReferencedObject.js +1 -8
- package/esm2015/src/management/data/NUM_TYPE.js +14 -485
- package/esm2015/src/management/data/ObjectReferenceBase.js +1 -3
- package/esm2015/src/management/data/ObjectReferencesCollection.js +1 -2
- package/esm2015/src/management/data/RecordUtils.js +6 -112
- package/esm2015/src/management/data/VectorType.js +17 -252
- package/esm2015/src/management/data/VectorTypeBase.js +1 -35
- package/esm2015/src/management/events/IActionManager.js +1 -1
- package/esm2015/src/management/events/IGuiEventsManager.js +1 -1
- package/esm2015/src/management/exp/ExpressionInterface.js +4 -3
- package/esm2015/src/management/exp/GuiExpressionEvaluator.js +38 -155
- package/esm2015/src/management/gui/ControlTable.js +18 -72
- package/esm2015/src/management/gui/DisplayConvertor.js +43 -493
- package/esm2015/src/management/gui/FieldValidator.js +58 -339
- package/esm2015/src/management/gui/GuiControlPropertyAdapter.js +1 -1
- package/esm2015/src/management/gui/GuiFormPropertyAdapter.js +1 -8
- package/esm2015/src/management/gui/HebrewDate.js +3 -140
- package/esm2015/src/management/gui/Helps.js +2 -48
- package/esm2015/src/management/gui/MgControlBase.js +143 -876
- package/esm2015/src/management/gui/MgFormBase.js +68 -407
- package/esm2015/src/management/gui/PIC.js +56 -285
- package/esm2015/src/management/gui/PropDefaults.js +13 -48
- package/esm2015/src/management/gui/PropInterface.js +2 -4
- package/esm2015/src/management/gui/PropTable.js +72 -183
- package/esm2015/src/management/gui/Property.js +35 -372
- package/esm2015/src/management/gui/ValidationDetails.js +10 -52
- package/esm2015/src/management/gui/ValidationDetailsBase.js +12 -45
- package/esm2015/src/management/gui/WrongFormatException.js +1 -15
- package/esm2015/src/management/tasks/GuiDataCollection.js +1 -1
- package/esm2015/src/management/tasks/GuiTaskBase.js +38 -383
- package/esm2015/src/management/tasks/IMGDataTable.js +1 -1
- package/esm2015/src/management/tasks/ITask.js +1 -1
- package/esm2015/src/management/tasks/MgTimer.js +1 -16
- package/esm2015/src/management/tasks/TaskDefinitionId.js +8 -18
- package/esm2015/src/management/tasks/TaskDefinitionIdTableSaxHandler.js +1 -13
- package/esm2015/src/util/AuthenticationDialogHandler.js +1 -4
- package/esm2015/src/util/MemoryUtil.js +1 -41
- package/esm2015/src/util/ObjectReference.js +1 -8
- package/esm2015/src/util/ProcessLauncher.js +3 -21
- package/esm2015/src/util/UsernamePasswordCredentials.js +1 -9
- package/fesm2015/magic-xpa-gui.js +844 -7052
- package/fesm2015/magic-xpa-gui.js.map +1 -1
- package/magic-xpa-gui.d.ts +0 -3
- package/package.json +2 -2
- package/src/Commands.d.ts +1 -0
- package/src/Events.d.ts +0 -2
- package/src/GuiEnums.d.ts +125 -128
- package/src/env/IEnvironment.d.ts +3 -0
- package/src/gui/PropParentInterface.d.ts +1 -1
- package/src/gui/low/Style.d.ts +0 -3
- package/src/management/RuntimeContextBase.d.ts +2 -0
- package/src/management/data/GuiDataViewBase.d.ts +4 -4
- package/src/management/data/IRecord.d.ts +1 -1
- package/src/management/exp/ExpressionInterface.d.ts +3 -0
- package/src/management/exp/GuiExpressionEvaluator.d.ts +4 -6
- package/src/management/gui/ControlTable.d.ts +1 -1
- package/src/management/gui/DisplayConvertor.d.ts +1 -1
- package/src/management/gui/GuiControlPropertyAdapter.d.ts +1 -1
- package/src/management/gui/MgControlBase.d.ts +7 -7
- package/src/management/gui/MgFormBase.d.ts +6 -6
- package/src/management/gui/PIC.d.ts +1 -0
- package/src/management/gui/PropInterface.d.ts +2 -4
- package/src/management/gui/PropTable.d.ts +4 -5
- package/src/management/gui/Property.d.ts +1 -1
- package/src/management/tasks/GuiTaskBase.d.ts +8 -14
- package/src/management/tasks/TaskDefinitionId.d.ts +1 -0
package/esm2015/src/Manager.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
-
/// <summary>
|
|
3
|
-
/// MgGui.dll's manager - assembly level properties and methods.
|
|
4
|
-
/// </summary>
|
|
5
2
|
import { NString, StackFrame } from "@magic-xpa/mscorelib";
|
|
6
3
|
import { UtilImeJpn, UtilStrByteMode } from "@magic-xpa/utils";
|
|
7
4
|
import { GuiMgControl } from "./gui/GuiMgControl";
|
|
@@ -12,46 +9,23 @@ import { GuiMgForm } from "./gui/GuiMgForm";
|
|
|
12
9
|
import { PropInterface } from "./management/gui/PropInterface";
|
|
13
10
|
import { GuiEnvironment } from "./GuiEnvironment";
|
|
14
11
|
export class Manager {
|
|
15
|
-
/// <summary>(public)
|
|
16
|
-
/// Set the context ID for a current thread
|
|
17
|
-
/// </summary>
|
|
18
|
-
/// <param name="contextID"></param>
|
|
19
12
|
static SetCurrentContextID(contextID) {
|
|
20
13
|
Manager._currentContextID = contextID;
|
|
21
14
|
}
|
|
22
|
-
/// <summary>
|
|
23
|
-
/// Get the context ID for a current thread
|
|
24
|
-
/// </summary>
|
|
25
|
-
/// <returns>current thread's contextID</returns>
|
|
26
15
|
static GetCurrentContextID() {
|
|
27
16
|
return Manager._currentContextID;
|
|
28
17
|
}
|
|
29
|
-
/// <summary>
|
|
30
|
-
/// get object that is used for execution and interrupting delay command.
|
|
31
|
-
/// </summary>
|
|
32
|
-
/// <returns></returns>
|
|
33
18
|
static GetDelayWait() {
|
|
34
19
|
return Manager._delayWait;
|
|
35
20
|
}
|
|
36
|
-
/// <summary>
|
|
37
|
-
/// check if dot net control can be focused
|
|
38
|
-
/// </summary>
|
|
39
|
-
/// <param name = "guiMgControl"></param>
|
|
40
|
-
/// <returns></returns>
|
|
41
21
|
static CanFocus(guiMgControl) {
|
|
42
22
|
return false;
|
|
43
23
|
}
|
|
44
24
|
static Init(startupImageFileName) {
|
|
45
25
|
return;
|
|
46
26
|
}
|
|
47
|
-
/// <summary>
|
|
48
|
-
/// close the task
|
|
49
|
-
/// </summary>
|
|
50
|
-
/// <param name = "form"> </param>
|
|
51
|
-
/// <param name="mainPrgTask"></param>
|
|
52
27
|
static Abort(form, mainPrgTask) {
|
|
53
28
|
if (form.getSubFormCtrl() === null && form.Opened) {
|
|
54
|
-
// if the closing form is 'opened as a modal' then decrement the modal count on its frame window.
|
|
55
29
|
if (form.isDialog()) {
|
|
56
30
|
this.IsOverlayOpen = false;
|
|
57
31
|
let topMostFrameForm = form.getTopMostFrameForm();
|
|
@@ -62,26 +36,12 @@ export class Manager {
|
|
|
62
36
|
Commands.beginInvoke();
|
|
63
37
|
}
|
|
64
38
|
}
|
|
65
|
-
/// <summary>
|
|
66
|
-
/// returns the current value of the control
|
|
67
|
-
/// </summary>
|
|
68
|
-
/// <param name = "ctrl">control to get value </param>
|
|
69
|
-
/// <returns> value of the control </returns>
|
|
70
39
|
static GetCtrlVal(ctrl) {
|
|
71
|
-
// QCR #745117: Make sure that if the contents of a control were changed
|
|
72
|
-
// then the changes are applied before examining its value.
|
|
73
40
|
return Commands.getValue(ctrl, ctrl.getDisplayLine(true));
|
|
74
41
|
}
|
|
75
|
-
/// <summary>
|
|
76
|
-
/// Set read only for controls
|
|
77
|
-
/// </summary>
|
|
78
|
-
/// <param name = "ctrl">the control to change its property </param>
|
|
79
|
-
/// <param name = "isReadOnly">boolean </param>
|
|
80
42
|
static SetReadOnlyControl(ctrl, isReadOnly) {
|
|
81
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
-
if (ctrl.isTextControl() || ctrl.IsRepeatable)
|
|
83
|
-
{
|
|
84
|
-
// JPN: IME support (enable IME in query mode)
|
|
44
|
+
if (ctrl.isTextControl() || ctrl.IsRepeatable) {
|
|
85
45
|
if (UtilStrByteMode.isLocaleDefLangDBCS()) {
|
|
86
46
|
if (yield ctrl.getForm().getTask().checkProp(PropInterface.PROP_TYPE_ALLOW_LOCATE_IN_QUERY, false))
|
|
87
47
|
return;
|
|
@@ -91,13 +51,9 @@ export class Manager {
|
|
|
91
51
|
}
|
|
92
52
|
});
|
|
93
53
|
}
|
|
94
|
-
/// <summary> Open the form. </summary>
|
|
95
|
-
/// <param name="mgForm">form to be opened.</param>
|
|
96
54
|
static OpenForm(mgForm) {
|
|
97
|
-
// non interactive can choose not to open the window.
|
|
98
55
|
if (!mgForm.Opened && (mgForm.getTask().IsInteractive || mgForm.getTask().isOpenWin())) {
|
|
99
56
|
if (!mgForm.isSubForm()) {
|
|
100
|
-
// if the form is to be opened as a modal, then increment the modal count on its frame window.
|
|
101
57
|
if (mgForm.isDialog()) {
|
|
102
58
|
this.IsOverlayOpen = true;
|
|
103
59
|
let topMostFrameForm = mgForm.getTopMostFrameForm();
|
|
@@ -105,21 +61,10 @@ export class Manager {
|
|
|
105
61
|
topMostFrameForm.UpdateModalFormsCount(mgForm, true);
|
|
106
62
|
}
|
|
107
63
|
}
|
|
108
|
-
// if (!mgForm.isSubForm()) {
|
|
109
|
-
// let formName: string = mgForm.UniqueName;
|
|
110
|
-
// UIBridge.getInstance().OpenForm(formName);
|
|
111
|
-
// }
|
|
112
|
-
// else {
|
|
113
|
-
// let inputControls = mgForm.GetListOfInputControls();
|
|
114
|
-
// //
|
|
115
|
-
// // JSBridge.Instance.OpenSubForm(this.getSubFormCtrl().getName(), ParentForm.getTask().getTaskTag(), getProp(PropInterface.PROP_TYPE_FORM_NAME).getValue(), _task.getTaskTag(), inputControls);
|
|
116
|
-
// // }
|
|
117
|
-
// }
|
|
118
64
|
mgForm.Opened = true;
|
|
119
65
|
Commands.beginInvoke();
|
|
120
66
|
}
|
|
121
67
|
}
|
|
122
|
-
/// <summary> Performs first refresh for the table control </summary>
|
|
123
68
|
static DoFirstRefreshTable(mgForm) {
|
|
124
69
|
return __awaiter(this, void 0, void 0, function* () {
|
|
125
70
|
if (mgForm !== null && !mgForm.ignoreFirstRefreshTable) {
|
|
@@ -128,20 +73,12 @@ export class Manager {
|
|
|
128
73
|
}
|
|
129
74
|
});
|
|
130
75
|
}
|
|
131
|
-
/// <summary>
|
|
132
|
-
/// retrieve the location of the caret, within the currently selected text
|
|
133
|
-
/// </summary>
|
|
134
|
-
/// <param name = "ctrl">the control which is assumed to contain the selected text </param>
|
|
135
76
|
static CaretPosGet(ctrl) {
|
|
136
77
|
let caretPos = 0;
|
|
137
78
|
if (ctrl.isTextControl())
|
|
138
79
|
caretPos = Commands.caretPosGet(ctrl, ctrl.getDisplayLine(true));
|
|
139
80
|
return caretPos;
|
|
140
81
|
}
|
|
141
|
-
/// <summary>
|
|
142
|
-
/// Clear the status bar depending on the control specific status message or form specific status message
|
|
143
|
-
/// </summary>
|
|
144
|
-
/// <param name="task">task</param>
|
|
145
82
|
static ClearStatusBar(task) {
|
|
146
83
|
let currentParkedControl = task.getLastParkedCtrl();
|
|
147
84
|
if (currentParkedControl !== null && !NString.IsNullOrEmpty(currentParkedControl.PromptHelp))
|
|
@@ -149,18 +86,9 @@ export class Manager {
|
|
|
149
86
|
else
|
|
150
87
|
Manager.CleanMessagePane(task);
|
|
151
88
|
}
|
|
152
|
-
/// <summary>
|
|
153
|
-
/// clean the status bar
|
|
154
|
-
/// </summary>
|
|
155
|
-
/// <param name = "task"></param>
|
|
156
89
|
static CleanMessagePane(task) {
|
|
157
90
|
task.WriteToMessagePane(Manager.GetCurrentRuntimeContext().DefaultStatusMsg, false);
|
|
158
91
|
}
|
|
159
|
-
/// <summary>
|
|
160
|
-
/// Message string to be displayed on status bar or in Message box
|
|
161
|
-
/// </summary>
|
|
162
|
-
/// <param name = "msg"> input message string </param>
|
|
163
|
-
/// <returns> output message string </returns>
|
|
164
92
|
static GetMessage(msg) {
|
|
165
93
|
if (msg === null)
|
|
166
94
|
msg = "";
|
|
@@ -174,80 +102,43 @@ export class Manager {
|
|
|
174
102
|
}
|
|
175
103
|
return msg;
|
|
176
104
|
}
|
|
177
|
-
/// <summary>
|
|
178
|
-
/// Used to put the text on a text control
|
|
179
|
-
/// </summary>
|
|
180
|
-
/// <param name = "ctrl"> </param>
|
|
181
|
-
/// <param name = "text"> </param>
|
|
182
105
|
static SetEditText(ctrl, text) {
|
|
183
106
|
Commands.setEditText(ctrl, ctrl.getDisplayLine(true), text);
|
|
184
107
|
}
|
|
185
|
-
/// <summary>
|
|
186
|
-
/// Insert text to a text control at a given position
|
|
187
|
-
/// </summary>
|
|
188
|
-
/// <param name="ctrl"></param>
|
|
189
|
-
/// <param name="startPosition"></param>
|
|
190
|
-
/// <param name="textToInsert"></param>
|
|
191
108
|
static InsertEditText(ctrl, startPosition, textToInsert) {
|
|
192
109
|
Commands.insertEditText(ctrl, ctrl.getDisplayLine(true), startPosition, textToInsert);
|
|
193
110
|
}
|
|
194
|
-
/// <summary>
|
|
195
|
-
/// return TooltipTimeout
|
|
196
|
-
/// </summary>
|
|
197
|
-
/// <returns> returns TooltipTimeout</returns>
|
|
198
111
|
static GetTooltipTimeout() {
|
|
199
112
|
return GuiEnvironment.Environment.GetTooltipTimeout();
|
|
200
113
|
}
|
|
201
|
-
/// <summary>
|
|
202
|
-
/// return SpecialEditLeftAlign
|
|
203
|
-
/// </summary>
|
|
204
|
-
/// <returns></returns>
|
|
205
114
|
static GetSpecialEditLeftAlign() {
|
|
206
115
|
return GuiEnvironment.Environment.GetSpecialEditLeftAlign();
|
|
207
116
|
}
|
|
208
|
-
/// <summary>
|
|
209
|
-
/// Returns default date format depending on date mode and date separator.
|
|
210
|
-
/// </summary>
|
|
211
|
-
/// <returns> String default date format</returns>
|
|
212
117
|
static GetDefaultDateFormat() {
|
|
213
118
|
let dateFormat = "";
|
|
214
119
|
let dateSeperator = GuiEnvironment.Environment.GetDate();
|
|
215
|
-
// Arrange date format according to the date mode.
|
|
216
120
|
switch (GuiEnvironment.Environment.GetDateMode(0)) {
|
|
217
|
-
case 'S':
|
|
121
|
+
case 'S':
|
|
218
122
|
dateFormat = "YYYY" + dateSeperator + "MM" + dateSeperator + "DD";
|
|
219
123
|
break;
|
|
220
|
-
case 'B':
|
|
221
|
-
case 'E':
|
|
124
|
+
case 'B':
|
|
125
|
+
case 'E':
|
|
222
126
|
dateFormat = "DD" + dateSeperator + "MM" + dateSeperator + "YYYY";
|
|
223
127
|
break;
|
|
224
|
-
case 'A':
|
|
128
|
+
case 'A':
|
|
225
129
|
dateFormat = "MM" + dateSeperator + "DD" + dateSeperator + "YYYY";
|
|
226
130
|
break;
|
|
227
131
|
}
|
|
228
132
|
return dateFormat;
|
|
229
133
|
}
|
|
230
|
-
/// <summary>
|
|
231
|
-
/// Return default time format using time separator.
|
|
232
|
-
/// </summary>
|
|
233
|
-
/// <returns></returns>
|
|
234
134
|
static GetDefaultTimeFormat() {
|
|
235
135
|
let timeSeperator = GuiEnvironment.Environment.GetTime();
|
|
236
136
|
let timeFormat = "HH" + timeSeperator + "MM" + timeSeperator + "SS";
|
|
237
137
|
return timeFormat;
|
|
238
138
|
}
|
|
239
|
-
/// <summary>
|
|
240
|
-
/// Gets the runtime context belongs to the current thread.
|
|
241
|
-
/// </summary>
|
|
242
|
-
/// <returns>RuntimeContextBase</returns>
|
|
243
139
|
static GetCurrentRuntimeContext() {
|
|
244
140
|
return Events.GetRuntimeContext(Manager.GetCurrentContextID());
|
|
245
141
|
}
|
|
246
|
-
/// <summary>
|
|
247
|
-
/// Gets the contextID using the GuiMgForm.
|
|
248
|
-
/// </summary>
|
|
249
|
-
/// <param name="mgObject">Magic Object - GuiMgForm/GuiMgControl/Logical control</param>
|
|
250
|
-
/// <returns>contextID</returns>
|
|
251
142
|
static GetContextID(mgObject) {
|
|
252
143
|
let guiMgForm = null;
|
|
253
144
|
if (mgObject instanceof GuiMgControl)
|
|
@@ -256,45 +147,23 @@ export class Manager {
|
|
|
256
147
|
guiMgForm = mgObject;
|
|
257
148
|
return Events.GetContextID(guiMgForm);
|
|
258
149
|
}
|
|
259
|
-
/// <summary>
|
|
260
|
-
/// Shows windows help.
|
|
261
|
-
/// </summary>
|
|
262
|
-
/// <param name="filePath">path of the help file.</param>
|
|
263
|
-
/// <param name="helpCmd">help command.</param>
|
|
264
|
-
/// <param name="helpKey">search key word.</param>
|
|
265
150
|
static ShowWindowHelp(filePath, helpCmd, helpKey) {
|
|
266
151
|
}
|
|
267
|
-
/// <summary>
|
|
268
|
-
/// return SpecialValNewPolicy
|
|
269
|
-
/// </summary>
|
|
270
|
-
/// <returns></returns>
|
|
271
152
|
static GetSpecialValNewPolicy() {
|
|
272
153
|
return GuiEnvironment.Environment.GetSpecialValNewPolicy();
|
|
273
154
|
}
|
|
274
155
|
}
|
|
275
156
|
Manager.IsOverlayOpen = false;
|
|
276
|
-
Manager._delayWait = new Object();
|
|
277
|
-
Manager._clipboardData = "";
|
|
278
|
-
// This will hold the contextID for a current thread.
|
|
279
|
-
// Thread static is a separate for each thread (i.e.: value of a static field is unique for each thread).
|
|
280
|
-
// http://msdn.microsoft.com/en-us/library/system.threadstaticattribute.aspx
|
|
157
|
+
Manager._delayWait = new Object();
|
|
158
|
+
Manager._clipboardData = "";
|
|
281
159
|
Manager._currentContextID = '\0';
|
|
282
|
-
Manager.DefaultProtocol = null;
|
|
160
|
+
Manager.DefaultProtocol = null;
|
|
283
161
|
Manager.DefaultServerName = null;
|
|
284
|
-
Manager.UtilImeJpn = (UtilStrByteMode.isLocaleDefLangJPN() ? new UtilImeJpn() : null);
|
|
162
|
+
Manager.UtilImeJpn = (UtilStrByteMode.isLocaleDefLangJPN() ? new UtilImeJpn() : null);
|
|
285
163
|
Manager.EventsManager = null;
|
|
286
|
-
/// <summary>
|
|
287
|
-
/// helper class for setting/resetting the current context ID.
|
|
288
|
-
/// We require this class specifically for Modal windows. When we open a modal window then
|
|
289
|
-
/// it waits in GuiThread. Mean while GuiThread can receive the events of other context and
|
|
290
|
-
/// after processing these events, we should reset the contextID of the Modal windows because
|
|
291
|
-
/// it will be used for logging the events when we close the modal window.
|
|
292
|
-
/// </summary>
|
|
293
164
|
export class ContextIDGuard {
|
|
294
165
|
constructor(contextID) {
|
|
295
166
|
this._prevContextID = '\0';
|
|
296
|
-
// For debugging purpose only.
|
|
297
|
-
// It will hold the file name from which the object of ContextIDGuard is created.
|
|
298
167
|
this._fileName = null;
|
|
299
168
|
if (arguments.length === 0) {
|
|
300
169
|
this.constructor_0();
|
|
@@ -310,19 +179,12 @@ export class ContextIDGuard {
|
|
|
310
179
|
this.SetCurrent(contextID);
|
|
311
180
|
this.SaveFilename();
|
|
312
181
|
}
|
|
313
|
-
/// <summary>
|
|
314
|
-
/// sets the context ID to 'guard'.
|
|
315
|
-
/// </summary>
|
|
316
|
-
/// <param name="contextID">new context ID to 'guard'.</param>
|
|
317
182
|
SetCurrent(contextID) {
|
|
318
183
|
if (contextID !== this._prevContextID) {
|
|
319
184
|
this._prevContextID = contextID;
|
|
320
185
|
Manager.SetCurrentContextID(contextID);
|
|
321
186
|
}
|
|
322
187
|
}
|
|
323
|
-
/// <summary>
|
|
324
|
-
/// Get the file name from which the ContextIDGuard is being created.
|
|
325
|
-
/// </summary>
|
|
326
188
|
SaveFilename() {
|
|
327
189
|
let stackFrame = new StackFrame(1, true);
|
|
328
190
|
this._fileName = stackFrame.GetFileName();
|
|
@@ -332,4 +194,4 @@ export class ContextIDGuard {
|
|
|
332
194
|
Manager.SetCurrentContextID(this._prevContextID);
|
|
333
195
|
}
|
|
334
196
|
}
|
|
335
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9zcmMvTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsYUFBYTtBQUNiLGdFQUFnRTtBQUNoRSxjQUFjO0FBQ2QsT0FBTyxFQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQWMsVUFBVSxFQUFFLGVBQWUsRUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBRXRGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUdoRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE9BQU8sRUFBQyxXQUFXLEVBQUUsY0FBYyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFaEMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFHaEQsTUFBTSxPQUFPLE9BQU87SUFlbEIscUJBQXFCO0lBQ3JCLDJDQUEyQztJQUMzQyxjQUFjO0lBQ2Qsb0NBQW9DO0lBQ3BDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxTQUFpQjtRQUMxQyxPQUFPLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxhQUFhO0lBQ2IsMkNBQTJDO0lBQzNDLGNBQWM7SUFDZCxpREFBaUQ7SUFDakQsTUFBTSxDQUFDLG1CQUFtQjtRQUN4QixPQUFPLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztJQUNuQyxDQUFDO0lBRUQsYUFBYTtJQUNiLDJFQUEyRTtJQUMzRSxjQUFjO0lBQ2QsdUJBQXVCO0lBQ3ZCLE1BQU0sQ0FBQyxZQUFZ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bUIsRUFBRTtZQUN2RCxPQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8c3VtbWFyeT5cclxuLy8vIE1nR3VpLmRsbCdzIG1hbmFnZXIgLSBhc3NlbWJseSBsZXZlbCBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLlxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5pbXBvcnQge05TdHJpbmcsIFN0YWNrRnJhbWV9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge0hlbHBDb21tYW5kLCBVdGlsSW1lSnBuLCBVdGlsU3RyQnl0ZU1vZGUsIFdpbmRvd1R5cGV9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7SUd1aUV2ZW50c01hbmFnZXJ9IGZyb20gXCIuL21hbmFnZW1lbnQvZXZlbnRzL0lHdWlFdmVudHNNYW5hZ2VyXCI7XHJcbmltcG9ydCB7R3VpTWdDb250cm9sfSBmcm9tIFwiLi9ndWkvR3VpTWdDb250cm9sXCI7XHJcbmltcG9ydCB7R3VpVGFza0Jhc2V9IGZyb20gXCIuL21hbmFnZW1lbnQvdGFza3MvR3VpVGFza0Jhc2VcIjtcclxuaW1wb3J0IHtNZ0NvbnRyb2xCYXNlfSBmcm9tIFwiLi9tYW5hZ2VtZW50L2d1aS9NZ0NvbnRyb2xCYXNlXCI7XHJcbmltcG9ydCB7Q29tbWFuZHN9IGZyb20gXCIuL0NvbW1hbmRzXCI7XHJcbmltcG9ydCB7TWdGb3JtQmFzZX0gZnJvbSBcIi4vbWFuYWdlbWVudC9ndWkvTWdGb3JtQmFzZVwiO1xyXG5pbXBvcnQge0NvbW1hbmRUeXBlLCBIdG1sUHJvcGVydGllc30gZnJvbSBcIi4vR3VpRW51bXNcIjtcclxuaW1wb3J0IHtFdmVudHN9IGZyb20gXCIuL0V2ZW50c1wiO1xyXG5pbXBvcnQge1J1bnRpbWVDb250ZXh0QmFzZX0gZnJvbSBcIi4vbWFuYWdlbWVudC9SdW50aW1lQ29udGV4dEJhc2VcIjtcclxuaW1wb3J0IHtHdWlNZ0Zvcm19IGZyb20gXCIuL2d1aS9HdWlNZ0Zvcm1cIjtcclxuaW1wb3J0IHtQcm9wSW50ZXJmYWNlfSBmcm9tIFwiLi9tYW5hZ2VtZW50L2d1aS9Qcm9wSW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7R3VpRW52aXJvbm1lbnR9IGZyb20gXCIuL0d1aUVudmlyb25tZW50XCI7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIE1hbmFnZXIge1xyXG4gIHN0YXRpYyBJc092ZXJsYXlPcGVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgX2RlbGF5V2FpdDogT2JqZWN0ID0gbmV3IE9iamVjdCgpOyAvLyB0aGlzIG9iamVjdCBpcyB1c2VkIGZvciBleGVjdXRpb24gYW5kIGludGVycnVwdGluZyBkZWxheSBjb21tYW5kXHJcbiAgcHJpdmF0ZSBzdGF0aWMgX2NsaXBib2FyZERhdGE6IHN0cmluZyA9IFwiXCI7IC8vIERhdGEgdG8gYmUgd3JpdHRlbiB0byB0aGUgY2xpcGJvYXJkLlxyXG5cclxuICAvLyBUaGlzIHdpbGwgaG9sZCB0aGUgY29udGV4dElEIGZvciBhIGN1cnJlbnQgdGhyZWFkLlxyXG4gIC8vIFRocmVhZCBzdGF0aWMgaXMgYSBzZXBhcmF0ZSBmb3IgZWFjaCB0aHJlYWQgKGkuZS46IHZhbHVlIG9mIGEgc3RhdGljIGZpZWxkIGlzIHVuaXF1ZSBmb3IgZWFjaCB0aHJlYWQpLlxyXG4gIC8vIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9zeXN0ZW0udGhyZWFkc3RhdGljYXR0cmlidXRlLmFzcHhcclxuICBwcml2YXRlIHN0YXRpYyBfY3VycmVudENvbnRleHRJRDogc3RyaW5nID0gJ1xcMCc7XHJcblxyXG4gIHN0YXRpYyBEZWZhdWx0UHJvdG9jb2w6IHN0cmluZyA9IG51bGw7IC8vIGRlZmF1bHQgcHJvdG9jb2wgKGh0dHAvaHR0cHMpIGFuZCBzZXJ2ZXIgbmFtZSB0byBiZSB1c2VkIGZvciBhbnkgcmVsYXRpdmUgdXJsXHJcbiAgc3RhdGljIERlZmF1bHRTZXJ2ZXJOYW1lOiBzdHJpbmcgPSBudWxsO1xyXG4gIHN0YXRpYyBVdGlsSW1lSnBuOiBVdGlsSW1lSnBuID0gKFV0aWxTdHJCeXRlTW9kZS5pc0xvY2FsZURlZkxhbmdKUE4oKSA/IG5ldyBVdGlsSW1lSnBuKCkgOiBudWxsKTsgLy8gSlBOOiBJTUUgc3VwcG9ydFxyXG4gIHN0YXRpYyBFdmVudHNNYW5hZ2VyOiBJR3VpRXZlbnRzTWFuYWdlciA9IG51bGw7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4ocHVibGljKVxyXG4gIC8vLyBTZXQgdGhlIGNvbnRleHQgSUQgZm9yIGEgY3VycmVudCB0aHJlYWRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImNvbnRleHRJRFwiPjwvcGFyYW0+XHJcbiAgc3RhdGljIFNldEN1cnJlbnRDb250ZXh0SUQoY29udGV4dElEOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIE1hbmFnZXIuX2N1cnJlbnRDb250ZXh0SUQgPSBjb250ZXh0SUQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIEdldCB0aGUgY29udGV4dCBJRCBmb3IgYSBjdXJyZW50IHRocmVhZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPmN1cnJlbnQgdGhyZWFkJ3MgY29udGV4dElEPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBHZXRDdXJyZW50Q29udGV4dElEKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gTWFuYWdlci5fY3VycmVudENvbnRleHRJRDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgb2JqZWN0IHRoYXQgaXMgdXNlZCBmb3IgZXhlY3V0aW9uIGFuZCBpbnRlcnJ1cHRpbmcgZGVsYXkgY29tbWFuZC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc3RhdGljIEdldERlbGF5V2FpdCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIE1hbmFnZXIuX2RlbGF5V2FpdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBjaGVjayBpZiBkb3QgbmV0IGNvbnRyb2wgY2FuIGJlIGZvY3VzZWRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZ3VpTWdDb250cm9sXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDYW5Gb2N1cyhndWlNZ0NvbnRyb2w6IEd1aU1nQ29udHJvbCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIHN0YXRpYyBJbml0KHN0YXJ0dXBJbWFnZUZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICBjbG9zZSB0aGUgdGFza1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJmb3JtXCI+IDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwibWFpblByZ1Rhc2tcIj48L3BhcmFtPlxyXG4gIHN0YXRpYyBBYm9ydChmb3JtOiBNZ0Zvcm1CYXNlLCBtYWluUHJnVGFzazogR3VpVGFza0Jhc2UpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoZm9ybS5nZXRTdWJGb3JtQ3RybCgpID09PSBudWxsICYmIGZvcm0uT3BlbmVkKSB7XHJcbiAgICAgIC8vIGlmIHRoZSBjbG9zaW5nIGZvcm0gaXMgJ29wZW5lZCBhcyBhIG1vZGFsJyB0aGVuIGRlY3JlbWVudCB0aGUgbW9kYWwgY291bnQgb24gaXRzIGZyYW1lIHdpbmRvdy5cclxuICAgICAgaWYgKGZvcm0uaXNEaWFsb2coKSkge1xyXG4gICAgICAgIHRoaXMuSXNPdmVybGF5T3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBsZXQgdG9wTW9zdEZyYW1lRm9ybTogTWdGb3JtQmFzZSA9IGZvcm0uZ2V0VG9wTW9zdEZyYW1lRm9ybSgpO1xyXG4gICAgICAgIGlmICh0b3BNb3N0RnJhbWVGb3JtICE9PSBudWxsKVxyXG4gICAgICAgICAgdG9wTW9zdEZyYW1lRm9ybS5VcGRhdGVNb2RhbEZvcm1zQ291bnQoZm9ybSwgZmFsc2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBDb21tYW5kcy5hZGRDbG9zZUZvcm0oZm9ybSwgXCIwXCIsIGZvcm0uZ2V0VGFzaygpLmdldFRhc2tUYWcoKSk7XHJcblxyXG4gICAgICBDb21tYW5kcy5iZWdpbkludm9rZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGNvbnRyb2xcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY3RybFwiPmNvbnRyb2wgdG8gZ2V0IHZhbHVlIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB2YWx1ZSBvZiB0aGUgY29udHJvbCA8L3JldHVybnM+XHJcbiAgc3RhdGljIEdldEN0cmxWYWwoY3RybDogTWdDb250cm9sQmFzZSk6IHN0cmluZyB7XHJcbiAgICAvLyBRQ1IgIzc0NTExNzogTWFrZSBzdXJlIHRoYXQgaWYgdGhlIGNvbnRlbnRzIG9mIGEgY29udHJvbCB3ZXJlIGNoYW5nZWRcclxuICAgIC8vIHRoZW4gdGhlIGNoYW5nZXMgYXJlIGFwcGxpZWQgYmVmb3JlIGV4YW1pbmluZyBpdHMgdmFsdWUuXHJcbiAgICByZXR1cm4gQ29tbWFuZHMuZ2V0VmFsdWUoY3RybCwgY3RybC5nZXREaXNwbGF5TGluZSh0cnVlKSk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgU2V0IHJlYWQgb25seSBmb3IgY29udHJvbHNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY3RybFwiPnRoZSBjb250cm9sIHRvIGNoYW5nZSBpdHMgcHJvcGVydHkgPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImlzUmVhZE9ubHlcIj5ib29sZWFuIDwvcGFyYW0+XHJcbiAgc3RhdGljIGFzeW5jIFNldFJlYWRPbmx5Q29udHJvbChjdHJsOiBNZ0NvbnRyb2xCYXNlLCBpc1JlYWRPbmx5OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoY3RybC5pc1RleHRDb250cm9sKCkgfHwgY3RybC5Jc1JlcGVhdGFibGUpIC8vIERlZmVjdCAxMzE4MDI6IFNldCBSZWFkT25seSBmb3IgUmljaCBUZXh0IGNvbnRyb2wgaW4gVGFibGUgSGVhZGVyIGFuZCBkZWZlY3QgMTMxNzA0OiBpbiBnZW5lcmFsIGZvciBSaWNoIFRleHQuXHJcbiAgICB7XHJcbiAgICAgIC8vIEpQTjogSU1FIHN1cHBvcnQgKGVuYWJsZSBJTUUgaW4gcXVlcnkgbW9kZSlcclxuICAgICAgaWYgKFV0aWxTdHJCeXRlTW9kZS5pc0xvY2FsZURlZkxhbmdEQkNTKCkpIHtcclxuICAgICAgICBpZiAoYXdhaXQgY3RybC5nZXRGb3JtKCkuZ2V0VGFzaygpLmNoZWNrUHJvcChQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9BTExPV19MT0NBVEVfSU5fUVVFUlksIGZhbHNlKSlcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBDb21tYW5kcy5hZGRPcGVyYXRpb25XaXRoTGluZShDb21tYW5kVHlwZS5TRVRfUFJPUEVSVFksIGN0cmwsIGN0cmwuZ2V0RGlzcGxheUxpbmUoZmFsc2UpLCBIdG1sUHJvcGVydGllcy5SZWFkT25seSwgaXNSZWFkT25seSk7XHJcblxyXG4gICAgICBDb21tYW5kcy5iZWdpbkludm9rZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gT3BlbiB0aGUgZm9ybS4gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIm1nRm9ybVwiPmZvcm0gdG8gYmUgb3BlbmVkLjwvcGFyYW0+XHJcbiAgc3RhdGljIE9wZW5Gb3JtKG1nRm9ybTogTWdGb3JtQmFzZSk6IHZvaWQge1xyXG4gICAgLy8gbm9uIGludGVyYWN0aXZlIGNhbiBjaG9vc2Ugbm90IHRvIG9wZW4gdGhlIHdpbmRvdy5cclxuICAgIGlmICghbWdGb3JtLk9wZW5lZCAmJiAobWdGb3JtLmdldFRhc2soKS5Jc0ludGVyYWN0aXZlIHx8IG1nRm9ybS5nZXRUYXNrKCkuaXNPcGVuV2luKCkpKSB7XHJcbiAgICAgIGlmICghbWdGb3JtLmlzU3ViRm9ybSgpKSB7XHJcbiAgICAgICAgLy8gaWYgdGhlIGZvcm0gaXMgdG8gYmUgb3BlbmVkIGFzIGEgbW9kYWwsIHRoZW4gaW5jcmVtZW50IHRoZSBtb2RhbCBjb3VudCBvbiBpdHMgZnJhbWUgd2luZG93LlxyXG4gICAgICAgIGlmIChtZ0Zvcm0uaXNEaWFsb2coKSkge1xyXG4gICAgICAgICAgdGhpcy5Jc092ZXJsYXlPcGVuID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICBsZXQgdG9wTW9zdEZyYW1lRm9ybTogTWdGb3JtQmFzZSA9IG1nRm9ybS5nZXRUb3BNb3N0RnJhbWVGb3JtKCk7XHJcbiAgICAgICAgICBpZiAodG9wTW9zdEZyYW1lRm9ybSAhPT0gbnVsbClcclxuICAgICAgICAgICAgdG9wTW9zdEZyYW1lRm9ybS5VcGRhdGVNb2RhbEZvcm1zQ291bnQobWdGb3JtLCB0cnVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcbiAgICAgIC8vIGlmICghbWdGb3JtLmlzU3ViRm9ybSgpKSB7XHJcbiAgICAgIC8vICAgbGV0IGZvcm1OYW1lOiBzdHJpbmcgPSBtZ0Zvcm0uVW5pcXVlTmFtZTtcclxuICAgICAgLy8gICBVSUJyaWRnZS5nZXRJbnN0YW5jZSgpLk9wZW5Gb3JtKGZvcm1OYW1lKTtcclxuXHJcbiAgICAgIC8vIH1cclxuICAgICAgLy8gZWxzZSB7XHJcbiAgICAgIC8vICAgbGV0IGlucHV0Q29udHJvbHMgPSBtZ0Zvcm0uR2V0TGlzdE9mSW5wdXRDb250cm9scygpO1xyXG4gICAgICAvLyAvL1xyXG4gICAgICAvLyAvLyAgIEpTQnJpZGdlLkluc3RhbmNlLk9wZW5TdWJGb3JtKHRoaXMuZ2V0U3ViRm9ybUN0cmwoKS5nZXROYW1lKCksIFBhcmVudEZvcm0uZ2V0VGFzaygpLmdldFRhc2tUYWcoKSwgZ2V0UHJvcChQcm9wSW50ZXJmYWNlLlBST1BfVFlQRV9GT1JNX05BTUUpLmdldFZhbHVlKCksIF90YXNrLmdldFRhc2tUYWcoKSwgaW5wdXRDb250cm9scyk7XHJcbiAgICAgIC8vIC8vIH1cclxuICAgICAgLy8gfVxyXG5cclxuICAgICAgbWdGb3JtLk9wZW5lZCA9IHRydWU7XHJcblxyXG4gICAgICBDb21tYW5kcy5iZWdpbkludm9rZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBQZXJmb3JtcyBmaXJzdCByZWZyZXNoIGZvciB0aGUgdGFibGUgY29udHJvbCA8L3N1bW1hcnk+XHJcbiAgc3RhdGljIGFzeW5jIERvRmlyc3RSZWZyZXNoVGFibGUobWdGb3JtOiBNZ0Zvcm1CYXNlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAobWdGb3JtICE9PSBudWxsICYmICFtZ0Zvcm0uaWdub3JlRmlyc3RSZWZyZXNoVGFibGUpIHtcclxuICAgICAgbWdGb3JtLmlnbm9yZUZpcnN0UmVmcmVzaFRhYmxlID0gdHJ1ZTtcclxuICAgICAgYXdhaXQgbWdGb3JtLmZpcnN0VGFibGVSZWZyZXNoKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0cmlldmUgdGhlIGxvY2F0aW9uIG9mIHRoZSBjYXJldCwgd2l0aGluIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGV4dFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjdHJsXCI+dGhlIGNvbnRyb2wgd2hpY2ggaXMgYXNzdW1lZCB0byBjb250YWluIHRoZSBzZWxlY3RlZCB0ZXh0IDwvcGFyYW0+XHJcbiAgc3RhdGljIENhcmV0UG9zR2V0KGN0cmw6IE1nQ29udHJvbEJhc2UpOiBudW1iZXIge1xyXG4gICAgbGV0IGNhcmV0UG9zOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIGlmIChjdHJsLmlzVGV4dENvbnRyb2woKSlcclxuICAgICAgY2FyZXRQb3MgPSBDb21tYW5kcy5jYXJldFBvc0dldChjdHJsLCBjdHJsLmdldERpc3BsYXlMaW5lKHRydWUpKTtcclxuXHJcbiAgICByZXR1cm4gY2FyZXRQb3M7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIENsZWFyIHRoZSBzdGF0dXMgYmFyIGRlcGVuZGluZyBvbiB0aGUgY29udHJvbCBzcGVjaWZpYyBzdGF0dXMgbWVzc2FnZSBvciBmb3JtIHNwZWNpZmljIHN0YXR1cyBtZXNzYWdlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0YXNrXCI+dGFzazwvcGFyYW0+XHJcbiAgc3RhdGljIENsZWFyU3RhdHVzQmFyKHRhc2s6IEd1aVRhc2tCYXNlKTogdm9pZCB7XHJcbiAgICBsZXQgY3VycmVudFBhcmtlZENvbnRyb2w6IE1nQ29udHJvbEJhc2UgPSB0YXNrLmdldExhc3RQYXJrZWRDdHJsKCk7XHJcblxyXG4gICAgaWYgKGN1cnJlbnRQYXJrZWRDb250cm9sICE9PSBudWxsICYmICFOU3RyaW5nLklzTnVsbE9yRW1wdHkoY3VycmVudFBhcmtlZENvbnRyb2wuUHJvbXB0SGVscCkpXHJcbiAgICAgIHRhc2suV3JpdGVUb01lc3NhZ2VQYW5lKGN1cnJlbnRQYXJrZWRDb250cm9sLlByb21wdEhlbHAsIGZhbHNlKTtcclxuICAgIGVsc2VcclxuICAgICAgTWFuYWdlci5DbGVhbk1lc3NhZ2VQYW5lKHRhc2spO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGNsZWFuIHRoZSBzdGF0dXMgYmFyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRhc2tcIj48L3BhcmFtPlxyXG4gIHN0YXRpYyBDbGVhbk1lc3NhZ2VQYW5lKHRhc2s6IEd1aVRhc2tCYXNlKTogdm9pZCB7XHJcbiAgICB0YXNrLldyaXRlVG9NZXNzYWdlUGFuZShNYW5hZ2VyLkdldEN1cnJlbnRSdW50aW1lQ29udGV4dCgpLkRlZmF1bHRTdGF0dXNNc2csIGZhbHNlKTtcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgTWVzc2FnZSBzdHJpbmcgdG8gYmUgZGlzcGxheWVkIG9uIHN0YXR1cyBiYXIgb3IgaW4gTWVzc2FnZSBib3hcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibXNnXCI+IGlucHV0IG1lc3NhZ2Ugc3RyaW5nIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiBvdXRwdXQgbWVzc2FnZSBzdHJpbmcgPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBHZXRNZXNzYWdlKG1zZzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmIChtc2cgPT09IG51bGwpXHJcbiAgICAgIG1zZyA9IFwiXCI7XHJcbiAgICBlbHNlIGlmIChtc2cubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgaWR4T2ZDYXJyaWFnZTogbnVtYmVyID0gbXNnLmluZGV4T2YoXCJcXHJcIik7XHJcbiAgICAgIGlmIChpZHhPZkNhcnJpYWdlICE9PSAtMSlcclxuICAgICAgICBtc2cgPSBtc2cuc3Vic3RyKDAsIGlkeE9mQ2FycmlhZ2UpO1xyXG5cclxuICAgICAgbGV0IGlkeE9mTmV3TGluZTogbnVtYmVyID0gbXNnLmluZGV4T2YoXCJcXG5cIik7XHJcbiAgICAgIGlmIChpZHhPZk5ld0xpbmUgIT09IC0xKVxyXG4gICAgICAgIG1zZyA9IG1zZy5zdWJzdHIoMCwgaWR4T2ZOZXdMaW5lKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbXNnO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFVzZWQgdG8gcHV0IHRoZSB0ZXh0IG9uIGEgdGV4dCBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImN0cmxcIj4gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRleHRcIj4gPC9wYXJhbT5cclxuICBzdGF0aWMgU2V0RWRpdFRleHQoY3RybDogTWdDb250cm9sQmFzZSwgdGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBDb21tYW5kcy5zZXRFZGl0VGV4dChjdHJsLCBjdHJsLmdldERpc3BsYXlMaW5lKHRydWUpLCB0ZXh0KTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gSW5zZXJ0IHRleHQgdG8gYSB0ZXh0IGNvbnRyb2wgYXQgYSBnaXZlbiBwb3NpdGlvblxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiY3RybFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic3RhcnRQb3NpdGlvblwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidGV4dFRvSW5zZXJ0XCI+PC9wYXJhbT5cclxuICBzdGF0aWMgSW5zZXJ0RWRpdFRleHQoY3RybDogTWdDb250cm9sQmFzZSwgc3RhcnRQb3NpdGlvbjogbnVtYmVyLCB0ZXh0VG9JbnNlcnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgQ29tbWFuZHMuaW5zZXJ0RWRpdFRleHQoY3RybCwgY3RybC5nZXREaXNwbGF5TGluZSh0cnVlKSwgc3RhcnRQb3NpdGlvbiwgdGV4dFRvSW5zZXJ0KTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gVG9vbHRpcFRpbWVvdXRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gcmV0dXJucyBUb29sdGlwVGltZW91dDwvcmV0dXJucz5cclxuICBzdGF0aWMgR2V0VG9vbHRpcFRpbWVvdXQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBHdWlFbnZpcm9ubWVudC5FbnZpcm9ubWVudC5HZXRUb29sdGlwVGltZW91dCgpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyByZXR1cm4gU3BlY2lhbEVkaXRMZWZ0QWxpZ25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc3RhdGljIEdldFNwZWNpYWxFZGl0TGVmdEFsaWduKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIEd1aUVudmlyb25tZW50LkVudmlyb25tZW50LkdldFNwZWNpYWxFZGl0TGVmdEFsaWduKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgUmV0dXJucyBkZWZhdWx0IGRhdGUgZm9ybWF0IGRlcGVuZGluZyBvbiBkYXRlIG1vZGUgYW5kIGRhdGUgc2VwYXJhdG9yLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiBTdHJpbmcgZGVmYXVsdCBkYXRlIGZvcm1hdDwvcmV0dXJucz5cclxuICBzdGF0aWMgR2V0RGVmYXVsdERhdGVGb3JtYXQoKTogc3RyaW5nIHtcclxuICAgIGxldCBkYXRlRm9ybWF0OiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgbGV0IGRhdGVTZXBlcmF0b3I6IHN0cmluZyA9IEd1aUVudmlyb25tZW50LkVudmlyb25tZW50LkdldERhdGUoKTtcclxuXHJcbiAgICAvLyBBcnJhbmdlIGRhdGUgZm9ybWF0IGFjY29yZGluZyB0byB0aGUgZGF0ZSBtb2RlLlxyXG4gICAgc3dpdGNoIChHdWlFbnZpcm9ubWVudC5FbnZpcm9ubWVudC5HZXREYXRlTW9kZSgwKSkge1xyXG4gICAgICBjYXNlICdTJzogLy8gU2NhbmRpbmF2aWFuXHJcbiAgICAgICAgZGF0ZUZvcm1hdCA9IFwiWVlZWVwiICsgZGF0ZVNlcGVyYXRvciArIFwiTU1cIiArIGRhdGVTZXBlcmF0b3IgKyBcIkREXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdCJzogLy8gQnVkZGhpc3RcclxuXHJcbiAgICAgIGNhc2UgJ0UnOiAvLyBFdXJvcGVhblxyXG4gICAgICAgIGRhdGVGb3JtYXQgPSBcIkREXCIgKyBkYXRlU2VwZXJhdG9yICsgXCJNTVwiICsgZGF0ZVNlcGVyYXRvciArIFwiWVlZWVwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnQSc6IC8vIEFtZXJpY2FuXHJcbiAgICAgICAgZGF0ZUZvcm1hdCA9IFwiTU1cIiArIGRhdGVTZXBlcmF0b3IgKyBcIkREXCIgKyBkYXRlU2VwZXJhdG9yICsgXCJZWVlZXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0ZUZvcm1hdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBSZXR1cm4gZGVmYXVsdCB0aW1lIGZvcm1hdCB1c2luZyB0aW1lIHNlcGFyYXRvci5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc3RhdGljIEdldERlZmF1bHRUaW1lRm9ybWF0KCk6IHN0cmluZyB7XHJcbiAgICBsZXQgdGltZVNlcGVyYXRvcjogc3RyaW5nID0gR3VpRW52aXJvbm1lbnQuRW52aXJvbm1lbnQuR2V0VGltZSgpO1xyXG4gICAgbGV0IHRpbWVGb3JtYXQ6IHN0cmluZyA9IFwiSEhcIiArIHRpbWVTZXBlcmF0b3IgKyBcIk1NXCIgKyB0aW1lU2VwZXJhdG9yICsgXCJTU1wiO1xyXG4gICAgcmV0dXJuIHRpbWVGb3JtYXQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIEdldHMgdGhlIHJ1bnRpbWUgY29udGV4dCBiZWxvbmdzIHRvIHRoZSBjdXJyZW50IHRocmVhZC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz5SdW50aW1lQ29udGV4dEJhc2U8L3JldHVybnM+XHJcbiAgc3RhdGljIEdldEN1cnJlbnRSdW50aW1lQ29udGV4dCgpOiBSdW50aW1lQ29udGV4dEJhc2Uge1xyXG4gICAgcmV0dXJuIEV2ZW50cy5HZXRSdW50aW1lQ29udGV4dChNYW5hZ2VyLkdldEN1cnJlbnRDb250ZXh0SUQoKSk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIEdldHMgdGhlIGNvbnRleHRJRCB1c2luZyB0aGUgR3VpTWdGb3JtLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwibWdPYmplY3RcIj5NYWdpYyBPYmplY3QgLSBHdWlNZ0Zvcm0vR3VpTWdDb250cm9sL0xvZ2ljYWwgY29udHJvbDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPmNvbnRleHRJRDwvcmV0dXJucz5cclxuICBzdGF0aWMgR2V0Q29udGV4dElEKG1nT2JqZWN0OiBhbnkpOiBudW1iZXIge1xyXG4gICAgbGV0IGd1aU1nRm9ybTogR3VpTWdGb3JtID0gbnVsbDtcclxuXHJcbiAgICBpZiAobWdPYmplY3QgaW5zdGFuY2VvZiBHdWlNZ0NvbnRyb2wpXHJcbiAgICAgIGd1aU1nRm9ybSA9ICg8R3VpTWdDb250cm9sPm1nT2JqZWN0KS5HdWlNZ0Zvcm07XHJcbiAgICBlbHNlIGlmIChtZ09iamVjdCBpbnN0YW5jZW9mIEd1aU1nRm9ybSlcclxuICAgICAgZ3VpTWdGb3JtID0gPEd1aU1nRm9ybT5tZ09iamVjdDtcclxuXHJcbiAgICByZXR1cm4gRXZlbnRzLkdldENvbnRleHRJRChndWlNZ0Zvcm0pO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBTaG93cyB3aW5kb3dzIGhlbHAuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJmaWxlUGF0aFwiPnBhdGggb2YgdGhlIGhlbHAgZmlsZS48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImhlbHBDbWRcIj5oZWxwIGNvbW1hbmQuPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJoZWxwS2V5XCI+c2VhcmNoIGtleSB3b3JkLjwvcGFyYW0+XHJcbiAgc3RhdGljIFNob3dXaW5kb3dIZWxwKGZpbGVQYXRoOiBzdHJpbmcsIGhlbHBDbWQ6IEhlbHBDb21tYW5kLCBoZWxwS2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gcmV0dXJuIFNwZWNpYWxWYWxOZXdQb2xpY3lcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgcHVibGljIHN0YXRpYyBHZXRTcGVjaWFsVmFsTmV3UG9saWN5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIEd1aUVudmlyb25tZW50LkVudmlyb25tZW50LkdldFNwZWNpYWxWYWxOZXdQb2xpY3koKTtcclxuICB9XHJcbn1cclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vIGhlbHBlciBjbGFzcyBmb3Igc2V0dGluZy9yZXNldHRpbmcgdGhlIGN1cnJlbnQgY29udGV4dCBJRC5cclxuLy8vIFdlIHJlcXVpcmUgdGhpcyBjbGFzcyBzcGVjaWZpY2FsbHkgZm9yIE1vZGFsIHdpbmRvd3MuIFdoZW4gd2Ugb3BlbiBhIG1vZGFsIHdpbmRvdyB0aGVuXHJcbi8vLyBpdCB3YWl0cyBpbiBHdWlUaHJlYWQuIE1lYW4gd2hpbGUgR3VpVGhyZWFkIGNhbiByZWNlaXZlIHRoZSBldmVudHMgb2Ygb3RoZXIgY29udGV4dCBhbmRcclxuLy8vIGFmdGVyIHByb2Nlc3NpbmcgdGhlc2UgZXZlbnRzLCB3ZSBzaG91bGQgcmVzZXQgdGhlIGNvbnRleHRJRCBvZiB0aGUgTW9kYWwgd2luZG93cyBiZWNhdXNlXHJcbi8vLyBpdCB3aWxsIGJlIHVzZWQgZm9yIGxvZ2dpbmcgdGhlIGV2ZW50cyB3aGVuIHdlIGNsb3NlIHRoZSBtb2RhbCB3aW5kb3cuXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBDb250ZXh0SURHdWFyZCB7XHJcbiAgcHJpdmF0ZSBfcHJldkNvbnRleHRJRDogc3RyaW5nID0gJ1xcMCc7XHJcblxyXG4gIC8vIEZvciBkZWJ1Z2dpbmcgcHVycG9zZSBvbmx5LlxyXG4gIC8vIEl0IHdpbGwgaG9sZCB0aGUgZmlsZSBuYW1lIGZyb20gd2hpY2ggdGhlIG9iamVjdCBvZiBDb250ZXh0SURHdWFyZCBpcyBjcmVhdGVkLlxyXG4gIHByaXZhdGUgX2ZpbGVOYW1lOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpO1xyXG4gIGNvbnN0cnVjdG9yKGNvbnRleHRJRDogc3RyaW5nKTtcclxuICBjb25zdHJ1Y3Rvcihjb250ZXh0SUQ/OiBzdHJpbmcpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfMCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnN0cnVjdG9yXzEoY29udGV4dElEKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3ByZXZDb250ZXh0SUQgPSBNYW5hZ2VyLkdldEN1cnJlbnRDb250ZXh0SUQoKTtcclxuICAgIHRoaXMuU2F2ZUZpbGVuYW1lKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzEoY29udGV4dElEOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuU2V0Q3VycmVudChjb250ZXh0SUQpO1xyXG4gICAgdGhpcy5TYXZlRmlsZW5hbWUoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gc2V0cyB0aGUgY29udGV4dCBJRCB0byAnZ3VhcmQnLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiY29udGV4dElEXCI+bmV3IGNvbnRleHQgSUQgdG8gJ2d1YXJkJy48L3BhcmFtPlxyXG4gIFNldEN1cnJlbnQoY29udGV4dElEOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChjb250ZXh0SUQgIT09IHRoaXMuX3ByZXZDb250ZXh0SUQpIHtcclxuICAgICAgdGhpcy5fcHJldkNvbnRleHRJRCA9IGNvbnRleHRJRDtcclxuICAgICAgTWFuYWdlci5TZXRDdXJyZW50Q29udGV4dElEKGNvbnRleHRJRCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIEdldCB0aGUgZmlsZSBuYW1lIGZyb20gd2hpY2ggdGhlIENvbnRleHRJREd1YXJkIGlzIGJlaW5nIGNyZWF0ZWQuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIFNhdmVGaWxlbmFtZSgpOiB2b2lkIHtcclxuICAgIGxldCBzdGFja0ZyYW1lOiBTdGFja0ZyYW1lID0gbmV3IFN0YWNrRnJhbWUoMSwgdHJ1ZSk7XHJcbiAgICB0aGlzLl9maWxlTmFtZSA9IHN0YWNrRnJhbWUuR2V0RmlsZU5hbWUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBEaXNwb3NlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3ByZXZDb250ZXh0SUQgIT09IE1hbmFnZXIuR2V0Q3VycmVudENvbnRleHRJRCgpKVxyXG4gICAgICBNYW5hZ2VyLlNldEN1cnJlbnRDb250ZXh0SUQodGhpcy5fcHJldkNvbnRleHRJRCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9zcmMvTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBR0EsT0FBTyxFQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQWMsVUFBVSxFQUFFLGVBQWUsRUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBRXRGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUdoRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE9BQU8sRUFBQyxXQUFXLEVBQUUsY0FBYyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFaEMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFHaEQsTUFBTSxPQUFPLE9BQU87SUFtQmxCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxTQUFpQjtRQUMxQyxPQUFPLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDO0lBQ3hDLENBQUM7SUFNRCxNQUFNLENBQUMsbUJBQW1CO1FBQ3hCLE9BQU8sT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQ25DLENBQUM7SUFNRCxNQUFNLENBQUMsWUFBWTtRQUNqQixPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDNUIsQ0FBQztJQU9ELE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBMEI7UUFDeEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBR0QsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBNEI7UUFDdEMsT0FBTztJQUNULENBQUM7SUFRRCxNQUFNLENB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QUFXLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxPQUFPLENBQUMsbUJBQW1CLEVBQUU7WUFDdkQsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHN1bW1hcnk+XHJcbi8vLyBNZ0d1aS5kbGwncyBtYW5hZ2VyIC0gYXNzZW1ibHkgbGV2ZWwgcHJvcGVydGllcyBhbmQgbWV0aG9kcy5cclxuLy8vIDwvc3VtbWFyeT5cclxuaW1wb3J0IHtOU3RyaW5nLCBTdGFja0ZyYW1lfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuaW1wb3J0IHtIZWxwQ29tbWFuZCwgVXRpbEltZUpwbiwgVXRpbFN0ckJ5dGVNb2RlLCBXaW5kb3dUeXBlfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge0lHdWlFdmVudHNNYW5hZ2VyfSBmcm9tIFwiLi9tYW5hZ2VtZW50L2V2ZW50cy9JR3VpRXZlbnRzTWFuYWdlclwiO1xyXG5pbXBvcnQge0d1aU1nQ29udHJvbH0gZnJvbSBcIi4vZ3VpL0d1aU1nQ29udHJvbFwiO1xyXG5pbXBvcnQge0d1aVRhc2tCYXNlfSBmcm9tIFwiLi9tYW5hZ2VtZW50L3Rhc2tzL0d1aVRhc2tCYXNlXCI7XHJcbmltcG9ydCB7TWdDb250cm9sQmFzZX0gZnJvbSBcIi4vbWFuYWdlbWVudC9ndWkvTWdDb250cm9sQmFzZVwiO1xyXG5pbXBvcnQge0NvbW1hbmRzfSBmcm9tIFwiLi9Db21tYW5kc1wiO1xyXG5pbXBvcnQge01nRm9ybUJhc2V9IGZyb20gXCIuL21hbmFnZW1lbnQvZ3VpL01nRm9ybUJhc2VcIjtcclxuaW1wb3J0IHtDb21tYW5kVHlwZSwgSHRtbFByb3BlcnRpZXN9IGZyb20gXCIuL0d1aUVudW1zXCI7XHJcbmltcG9ydCB7RXZlbnRzfSBmcm9tIFwiLi9FdmVudHNcIjtcclxuaW1wb3J0IHtSdW50aW1lQ29udGV4dEJhc2V9IGZyb20gXCIuL21hbmFnZW1lbnQvUnVudGltZUNvbnRleHRCYXNlXCI7XHJcbmltcG9ydCB7R3VpTWdGb3JtfSBmcm9tIFwiLi9ndWkvR3VpTWdGb3JtXCI7XHJcbmltcG9ydCB7UHJvcEludGVyZmFjZX0gZnJvbSBcIi4vbWFuYWdlbWVudC9ndWkvUHJvcEludGVyZmFjZVwiO1xyXG5pbXBvcnQge0d1aUVudmlyb25tZW50fSBmcm9tIFwiLi9HdWlFbnZpcm9ubWVudFwiO1xyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBNYW5hZ2VyIHtcclxuICBzdGF0aWMgSXNPdmVybGF5T3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgc3RhdGljIF9kZWxheVdhaXQ6IE9iamVjdCA9IG5ldyBPYmplY3QoKTsgLy8gdGhpcyBvYmplY3QgaXMgdXNlZCBmb3IgZXhlY3V0aW9uIGFuZCBpbnRlcnJ1cHRpbmcgZGVsYXkgY29tbWFuZFxyXG4gIHByaXZhdGUgc3RhdGljIF9jbGlwYm9hcmREYXRhOiBzdHJpbmcgPSBcIlwiOyAvLyBEYXRhIHRvIGJlIHdyaXR0ZW4gdG8gdGhlIGNsaXBib2FyZC5cclxuXHJcbiAgLy8gVGhpcyB3aWxsIGhvbGQgdGhlIGNvbnRleHRJRCBmb3IgYSBjdXJyZW50IHRocmVhZC5cclxuICAvLyBUaHJlYWQgc3RhdGljIGlzIGEgc2VwYXJhdGUgZm9yIGVhY2ggdGhyZWFkIChpLmUuOiB2YWx1ZSBvZiBhIHN0YXRpYyBmaWVsZCBpcyB1bmlxdWUgZm9yIGVhY2ggdGhyZWFkKS5cclxuICAvLyBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvc3lzdGVtLnRocmVhZHN0YXRpY2F0dHJpYnV0ZS5hc3B4XHJcbiAgcHJpdmF0ZSBzdGF0aWMgX2N1cnJlbnRDb250ZXh0SUQ6IHN0cmluZyA9ICdcXDAnO1xyXG5cclxuICBzdGF0aWMgRGVmYXVsdFByb3RvY29sOiBzdHJpbmcgPSBudWxsOyAvLyBkZWZhdWx0IHByb3RvY29sIChodHRwL2h0dHBzKSBhbmQgc2VydmVyIG5hbWUgdG8gYmUgdXNlZCBmb3IgYW55IHJlbGF0aXZlIHVybFxyXG4gIHN0YXRpYyBEZWZhdWx0U2VydmVyTmFtZTogc3RyaW5nID0gbnVsbDtcclxuICBzdGF0aWMgVXRpbEltZUpwbjogVXRpbEltZUpwbiA9IChVdGlsU3RyQnl0ZU1vZGUuaXNMb2NhbGVEZWZMYW5nSlBOKCkgPyBuZXcgVXRpbEltZUpwbigpIDogbnVsbCk7IC8vIEpQTjogSU1FIHN1cHBvcnRcclxuICBzdGF0aWMgRXZlbnRzTWFuYWdlcjogSUd1aUV2ZW50c01hbmFnZXIgPSBudWxsO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+KHB1YmxpYylcclxuICAvLy8gU2V0IHRoZSBjb250ZXh0IElEIGZvciBhIGN1cnJlbnQgdGhyZWFkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjb250ZXh0SURcIj48L3BhcmFtPlxyXG4gIHN0YXRpYyBTZXRDdXJyZW50Q29udGV4dElEKGNvbnRleHRJRDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBNYW5hZ2VyLl9jdXJyZW50Q29udGV4dElEID0gY29udGV4dElEO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBHZXQgdGhlIGNvbnRleHQgSUQgZm9yIGEgY3VycmVudCB0aHJlYWRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz5jdXJyZW50IHRocmVhZCdzIGNvbnRleHRJRDwvcmV0dXJucz5cclxuICBzdGF0aWMgR2V0Q3VycmVudENvbnRleHRJRCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIE1hbmFnZXIuX2N1cnJlbnRDb250ZXh0SUQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IG9iamVjdCB0aGF0IGlzIHVzZWQgZm9yIGV4ZWN1dGlvbiBhbmQgaW50ZXJydXB0aW5nIGRlbGF5IGNvbW1hbmQuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBHZXREZWxheVdhaXQoKTogYW55IHtcclxuICAgIHJldHVybiBNYW5hZ2VyLl9kZWxheVdhaXQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgY2hlY2sgaWYgZG90IG5ldCBjb250cm9sIGNhbiBiZSBmb2N1c2VkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImd1aU1nQ29udHJvbFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ2FuRm9jdXMoZ3VpTWdDb250cm9sOiBHdWlNZ0NvbnRyb2wpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBzdGF0aWMgSW5pdChzdGFydHVwSW1hZ2VGaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgY2xvc2UgdGhlIHRhc2tcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZm9ybVwiPiA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIm1haW5QcmdUYXNrXCI+PC9wYXJhbT5cclxuICBzdGF0aWMgQWJvcnQoZm9ybTogTWdGb3JtQmFzZSwgbWFpblByZ1Rhc2s6IEd1aVRhc2tCYXNlKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKGZvcm0uZ2V0U3ViRm9ybUN0cmwoKSA9PT0gbnVsbCAmJiBmb3JtLk9wZW5lZCkge1xyXG4gICAgICAvLyBpZiB0aGUgY2xvc2luZyBmb3JtIGlzICdvcGVuZWQgYXMgYSBtb2RhbCcgdGhlbiBkZWNyZW1lbnQgdGhlIG1vZGFsIGNvdW50IG9uIGl0cyBmcmFtZSB3aW5kb3cuXHJcbiAgICAgIGlmIChmb3JtLmlzRGlhbG9nKCkpIHtcclxuICAgICAgICB0aGlzLklzT3ZlcmxheU9wZW4gPSBmYWxzZTtcclxuXHJcbiAgICAgICAgbGV0IHRvcE1vc3RGcmFtZUZvcm06IE1nRm9ybUJhc2UgPSBmb3JtLmdldFRvcE1vc3RGcmFtZUZvcm0oKTtcclxuICAgICAgICBpZiAodG9wTW9zdEZyYW1lRm9ybSAhPT0gbnVsbClcclxuICAgICAgICAgIHRvcE1vc3RGcmFtZUZvcm0uVXBkYXRlTW9kYWxGb3Jtc0NvdW50KGZvcm0sIGZhbHNlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQ29tbWFuZHMuYWRkQ2xvc2VGb3JtKGZvcm0sIFwiMFwiLCBmb3JtLmdldFRhc2soKS5nZXRUYXNrVGFnKCkpO1xyXG5cclxuICAgICAgQ29tbWFuZHMuYmVnaW5JbnZva2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImN0cmxcIj5jb250cm9sIHRvIGdldCB2YWx1ZSA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gdmFsdWUgb2YgdGhlIGNvbnRyb2wgPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBHZXRDdHJsVmFsKGN0cmw6IE1nQ29udHJvbEJhc2UpOiBzdHJpbmcge1xyXG4gICAgLy8gUUNSICM3NDUxMTc6IE1ha2Ugc3VyZSB0aGF0IGlmIHRoZSBjb250ZW50cyBvZiBhIGNvbnRyb2wgd2VyZSBjaGFuZ2VkXHJcbiAgICAvLyB0aGVuIHRoZSBjaGFuZ2VzIGFyZSBhcHBsaWVkIGJlZm9yZSBleGFtaW5pbmcgaXRzIHZhbHVlLlxyXG4gICAgcmV0dXJuIENvbW1hbmRzLmdldFZhbHVlKGN0cmwsIGN0cmwuZ2V0RGlzcGxheUxpbmUodHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFNldCByZWFkIG9ubHkgZm9yIGNvbnRyb2xzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImN0cmxcIj50aGUgY29udHJvbCB0byBjaGFuZ2UgaXRzIHByb3BlcnR5IDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpc1JlYWRPbmx5XCI+Ym9vbGVhbiA8L3BhcmFtPlxyXG4gIHN0YXRpYyBhc3luYyBTZXRSZWFkT25seUNvbnRyb2woY3RybDogTWdDb250cm9sQmFzZSwgaXNSZWFkT25seTogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKGN0cmwuaXNUZXh0Q29udHJvbCgpIHx8IGN0cmwuSXNSZXBlYXRhYmxlKSAvLyBEZWZlY3QgMTMxODAyOiBTZXQgUmVhZE9ubHkgZm9yIFJpY2ggVGV4dCBjb250cm9sIGluIFRhYmxlIEhlYWRlciBhbmQgZGVmZWN0IDEzMTcwNDogaW4gZ2VuZXJhbCBmb3IgUmljaCBUZXh0LlxyXG4gICAge1xyXG4gICAgICAvLyBKUE46IElNRSBzdXBwb3J0IChlbmFibGUgSU1FIGluIHF1ZXJ5IG1vZGUpXHJcbiAgICAgIGlmIChVdGlsU3RyQnl0ZU1vZGUuaXNMb2NhbGVEZWZMYW5nREJDUygpKSB7XHJcbiAgICAgICAgaWYgKGF3YWl0IGN0cmwuZ2V0Rm9ybSgpLmdldFRhc2soKS5jaGVja1Byb3AoUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfQUxMT1dfTE9DQVRFX0lOX1FVRVJZLCBmYWxzZSkpXHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgQ29tbWFuZHMuYWRkT3BlcmF0aW9uV2l0aExpbmUoQ29tbWFuZFR5cGUuU0VUX1BST1BFUlRZLCBjdHJsLCBjdHJsLmdldERpc3BsYXlMaW5lKGZhbHNlKSwgSHRtbFByb3BlcnRpZXMuUmVhZE9ubHksIGlzUmVhZE9ubHkpO1xyXG5cclxuICAgICAgQ29tbWFuZHMuYmVnaW5JbnZva2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+IE9wZW4gdGhlIGZvcm0uIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJtZ0Zvcm1cIj5mb3JtIHRvIGJlIG9wZW5lZC48L3BhcmFtPlxyXG4gIHN0YXRpYyBPcGVuRm9ybShtZ0Zvcm06IE1nRm9ybUJhc2UpOiB2b2lkIHtcclxuICAgIC8vIG5vbiBpbnRlcmFjdGl2ZSBjYW4gY2hvb3NlIG5vdCB0byBvcGVuIHRoZSB3aW5kb3cuXHJcbiAgICBpZiAoIW1nRm9ybS5PcGVuZWQgJiYgKG1nRm9ybS5nZXRUYXNrKCkuSXNJbnRlcmFjdGl2ZSB8fCBtZ0Zvcm0uZ2V0VGFzaygpLmlzT3BlbldpbigpKSkge1xyXG4gICAgICBpZiAoIW1nRm9ybS5pc1N1YkZvcm0oKSkge1xyXG4gICAgICAgIC8vIGlmIHRoZSBmb3JtIGlzIHRvIGJlIG9wZW5lZCBhcyBhIG1vZGFsLCB0aGVuIGluY3JlbWVudCB0aGUgbW9kYWwgY291bnQgb24gaXRzIGZyYW1lIHdpbmRvdy5cclxuICAgICAgICBpZiAobWdGb3JtLmlzRGlhbG9nKCkpIHtcclxuICAgICAgICAgIHRoaXMuSXNPdmVybGF5T3BlbiA9IHRydWU7XHJcblxyXG4gICAgICAgICAgbGV0IHRvcE1vc3RGcmFtZUZvcm06IE1nRm9ybUJhc2UgPSBtZ0Zvcm0uZ2V0VG9wTW9zdEZyYW1lRm9ybSgpO1xyXG4gICAgICAgICAgaWYgKHRvcE1vc3RGcmFtZUZvcm0gIT09IG51bGwpXHJcbiAgICAgICAgICAgIHRvcE1vc3RGcmFtZUZvcm0uVXBkYXRlTW9kYWxGb3Jtc0NvdW50KG1nRm9ybSwgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG4gICAgICAvLyBpZiAoIW1nRm9ybS5pc1N1YkZvcm0oKSkge1xyXG4gICAgICAvLyAgIGxldCBmb3JtTmFtZTogc3RyaW5nID0gbWdGb3JtLlVuaXF1ZU5hbWU7XHJcbiAgICAgIC8vICAgVUlCcmlkZ2UuZ2V0SW5zdGFuY2UoKS5PcGVuRm9ybShmb3JtTmFtZSk7XHJcblxyXG4gICAgICAvLyB9XHJcbiAgICAgIC8vIGVsc2Uge1xyXG4gICAgICAvLyAgIGxldCBpbnB1dENvbnRyb2xzID0gbWdGb3JtLkdldExpc3RPZklucHV0Q29udHJvbHMoKTtcclxuICAgICAgLy8gLy9cclxuICAgICAgLy8gLy8gICBKU0JyaWRnZS5JbnN0YW5jZS5PcGVuU3ViRm9ybSh0aGlzLmdldFN1YkZvcm1DdHJsKCkuZ2V0TmFtZSgpLCBQYXJlbnRGb3JtLmdldFRhc2soKS5nZXRUYXNrVGFnKCksIGdldFByb3AoUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfRk9STV9OQU1FKS5nZXRWYWx1ZSgpLCBfdGFzay5nZXRUYXNrVGFnKCksIGlucHV0Q29udHJvbHMpO1xyXG4gICAgICAvLyAvLyB9XHJcbiAgICAgIC8vIH1cclxuXHJcbiAgICAgIG1nRm9ybS5PcGVuZWQgPSB0cnVlO1xyXG5cclxuICAgICAgQ29tbWFuZHMuYmVnaW5JbnZva2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gUGVyZm9ybXMgZmlyc3QgcmVmcmVzaCBmb3IgdGhlIHRhYmxlIGNvbnRyb2wgPC9zdW1tYXJ5PlxyXG4gIHN0YXRpYyBhc3luYyBEb0ZpcnN0UmVmcmVzaFRhYmxlKG1nRm9ybTogTWdGb3JtQmFzZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKG1nRm9ybSAhPT0gbnVsbCAmJiAhbWdGb3JtLmlnbm9yZUZpcnN0UmVmcmVzaFRhYmxlKSB7XHJcbiAgICAgIG1nRm9ybS5pZ25vcmVGaXJzdFJlZnJlc2hUYWJsZSA9IHRydWU7XHJcbiAgICAgIGF3YWl0IG1nRm9ybS5maXJzdFRhYmxlUmVmcmVzaCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHJpZXZlIHRoZSBsb2NhdGlvbiBvZiB0aGUgY2FyZXQsIHdpdGhpbiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHRleHRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY3RybFwiPnRoZSBjb250cm9sIHdoaWNoIGlzIGFzc3VtZWQgdG8gY29udGFpbiB0aGUgc2VsZWN0ZWQgdGV4dCA8L3BhcmFtPlxyXG4gIHN0YXRpYyBDYXJldFBvc0dldChjdHJsOiBNZ0NvbnRyb2xCYXNlKTogbnVtYmVyIHtcclxuICAgIGxldCBjYXJldFBvczogbnVtYmVyID0gMDtcclxuXHJcbiAgICBpZiAoY3RybC5pc1RleHRDb250cm9sKCkpXHJcbiAgICAgIGNhcmV0UG9zID0gQ29tbWFuZHMuY2FyZXRQb3NHZXQoY3RybCwgY3RybC5nZXREaXNwbGF5TGluZSh0cnVlKSk7XHJcblxyXG4gICAgcmV0dXJuIGNhcmV0UG9zO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBDbGVhciB0aGUgc3RhdHVzIGJhciBkZXBlbmRpbmcgb24gdGhlIGNvbnRyb2wgc3BlY2lmaWMgc3RhdHVzIG1lc3NhZ2Ugb3IgZm9ybSBzcGVjaWZpYyBzdGF0dXMgbWVzc2FnZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidGFza1wiPnRhc2s8L3BhcmFtPlxyXG4gIHN0YXRpYyBDbGVhclN0YXR1c0Jhcih0YXNrOiBHdWlUYXNrQmFzZSk6IHZvaWQge1xyXG4gICAgbGV0IGN1cnJlbnRQYXJrZWRDb250cm9sOiBNZ0NvbnRyb2xCYXNlID0gdGFzay5nZXRMYXN0UGFya2VkQ3RybCgpO1xyXG5cclxuICAgIGlmIChjdXJyZW50UGFya2VkQ29udHJvbCAhPT0gbnVsbCAmJiAhTlN0cmluZy5Jc051bGxPckVtcHR5KGN1cnJlbnRQYXJrZWRDb250cm9sLlByb21wdEhlbHApKVxyXG4gICAgICB0YXNrLldyaXRlVG9NZXNzYWdlUGFuZShjdXJyZW50UGFya2VkQ29udHJvbC5Qcm9tcHRIZWxwLCBmYWxzZSk7XHJcbiAgICBlbHNlXHJcbiAgICAgIE1hbmFnZXIuQ2xlYW5NZXNzYWdlUGFuZSh0YXNrKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBjbGVhbiB0aGUgc3RhdHVzIGJhclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0YXNrXCI+PC9wYXJhbT5cclxuICBzdGF0aWMgQ2xlYW5NZXNzYWdlUGFuZSh0YXNrOiBHdWlUYXNrQmFzZSk6IHZvaWQge1xyXG4gICAgdGFzay5Xcml0ZVRvTWVzc2FnZVBhbmUoTWFuYWdlci5HZXRDdXJyZW50UnVudGltZUNvbnRleHQoKS5EZWZhdWx0U3RhdHVzTXNnLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIE1lc3NhZ2Ugc3RyaW5nIHRvIGJlIGRpc3BsYXllZCBvbiBzdGF0dXMgYmFyIG9yIGluIE1lc3NhZ2UgYm94XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm1zZ1wiPiBpbnB1dCBtZXNzYWdlIHN0cmluZyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gb3V0cHV0IG1lc3NhZ2Ugc3RyaW5nIDwvcmV0dXJucz5cclxuICBzdGF0aWMgR2V0TWVzc2FnZShtc2c6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAobXNnID09PSBudWxsKVxyXG4gICAgICBtc2cgPSBcIlwiO1xyXG4gICAgZWxzZSBpZiAobXNnLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGlkeE9mQ2FycmlhZ2U6IG51bWJlciA9IG1zZy5pbmRleE9mKFwiXFxyXCIpO1xyXG4gICAgICBpZiAoaWR4T2ZDYXJyaWFnZSAhPT0gLTEpXHJcbiAgICAgICAgbXNnID0gbXNnLnN1YnN0cigwLCBpZHhPZkNhcnJpYWdlKTtcclxuXHJcbiAgICAgIGxldCBpZHhPZk5ld0xpbmU6IG51bWJlciA9IG1zZy5pbmRleE9mKFwiXFxuXCIpO1xyXG4gICAgICBpZiAoaWR4T2ZOZXdMaW5lICE9PSAtMSlcclxuICAgICAgICBtc2cgPSBtc2cuc3Vic3RyKDAsIGlkeE9mTmV3TGluZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1zZztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBVc2VkIHRvIHB1dCB0aGUgdGV4dCBvbiBhIHRleHQgY29udHJvbFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjdHJsXCI+IDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0ZXh0XCI+IDwvcGFyYW0+XHJcbiAgc3RhdGljIFNldEVkaXRUZXh0KGN0cmw6IE1nQ29udHJvbEJhc2UsIHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgQ29tbWFuZHMuc2V0RWRpdFRleHQoY3RybCwgY3RybC5nZXREaXNwbGF5TGluZSh0cnVlKSwgdGV4dCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIEluc2VydCB0ZXh0IHRvIGEgdGV4dCBjb250cm9sIGF0IGEgZ2l2ZW4gcG9zaXRpb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImN0cmxcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInN0YXJ0UG9zaXRpb25cIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInRleHRUb0luc2VydFwiPjwvcGFyYW0+XHJcbiAgc3RhdGljIEluc2VydEVkaXRUZXh0KGN0cmw6IE1nQ29udHJvbEJhc2UsIHN0YXJ0UG9zaXRpb246IG51bWJlciwgdGV4dFRvSW5zZXJ0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIENvbW1hbmRzLmluc2VydEVkaXRUZXh0KGN0cmwsIGN0cmwuZ2V0RGlzcGxheUxpbmUodHJ1ZSksIHN0YXJ0UG9zaXRpb24sIHRleHRUb0luc2VydCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIFRvb2x0aXBUaW1lb3V0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IHJldHVybnMgVG9vbHRpcFRpbWVvdXQ8L3JldHVybnM+XHJcbiAgc3RhdGljIEdldFRvb2x0aXBUaW1lb3V0KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gR3VpRW52aXJvbm1lbnQuRW52aXJvbm1lbnQuR2V0VG9vbHRpcFRpbWVvdXQoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gcmV0dXJuIFNwZWNpYWxFZGl0TGVmdEFsaWduXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBHZXRTcGVjaWFsRWRpdExlZnRBbGlnbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBHdWlFbnZpcm9ubWVudC5FbnZpcm9ubWVudC5HZXRTcGVjaWFsRWRpdExlZnRBbGlnbigpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFJldHVybnMgZGVmYXVsdCBkYXRlIGZvcm1hdCBkZXBlbmRpbmcgb24gZGF0ZSBtb2RlIGFuZCBkYXRlIHNlcGFyYXRvci5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gU3RyaW5nIGRlZmF1bHQgZGF0ZSBmb3JtYXQ8L3JldHVybnM+XHJcbiAgc3RhdGljIEdldERlZmF1bHREYXRlRm9ybWF0KCk6IHN0cmluZyB7XHJcbiAgICBsZXQgZGF0ZUZvcm1hdDogc3RyaW5nID0gXCJcIjtcclxuICAgIGxldCBkYXRlU2VwZXJhdG9yOiBzdHJpbmcgPSBHdWlFbnZpcm9ubWVudC5FbnZpcm9ubWVudC5HZXREYXRlKCk7XHJcblxyXG4gICAgLy8gQXJyYW5nZSBkYXRlIGZvcm1hdCBhY2NvcmRpbmcgdG8gdGhlIGRhdGUgbW9kZS5cclxuICAgIHN3aXRjaCAoR3VpRW52aXJvbm1lbnQuRW52aXJvbm1lbnQuR2V0RGF0ZU1vZGUoMCkpIHtcclxuICAgICAgY2FzZSAnUyc6IC8vIFNjYW5kaW5hdmlhblxyXG4gICAgICAgIGRhdGVGb3JtYXQgPSBcIllZWVlcIiArIGRhdGVTZXBlcmF0b3IgKyBcIk1NXCIgKyBkYXRlU2VwZXJhdG9yICsgXCJERFwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnQic6IC8vIEJ1ZGRoaXN0XHJcblxyXG4gICAgICBjYXNlICdFJzogLy8gRXVyb3BlYW5cclxuICAgICAgICBkYXRlRm9ybWF0ID0gXCJERFwiICsgZGF0ZVNlcGVyYXRvciArIFwiTU1cIiArIGRhdGVTZXBlcmF0b3IgKyBcIllZWVlcIjtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ0EnOiAvLyBBbWVyaWNhblxyXG4gICAgICAgIGRhdGVGb3JtYXQgPSBcIk1NXCIgKyBkYXRlU2VwZXJhdG9yICsgXCJERFwiICsgZGF0ZVNlcGVyYXRvciArIFwiWVlZWVwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRhdGVGb3JtYXQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgUmV0dXJuIGRlZmF1bHQgdGltZSBmb3JtYXQgdXNpbmcgdGltZSBzZXBhcmF0b3IuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBHZXREZWZhdWx0VGltZUZvcm1hdCgpOiBzdHJpbmcge1xyXG4gICAgbGV0IHRpbWVTZXBlcmF0b3I6IHN0cmluZyA9IEd1aUVudmlyb25tZW50LkVudmlyb25tZW50LkdldFRpbWUoKTtcclxuICAgIGxldCB0aW1lRm9ybWF0OiBzdHJpbmcgPSBcIkhIXCIgKyB0aW1lU2VwZXJhdG9yICsgXCJNTVwiICsgdGltZVNlcGVyYXRvciArIFwiU1NcIjtcclxuICAgIHJldHVybiB0aW1lRm9ybWF0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBHZXRzIHRoZSBydW50aW1lIGNvbnRleHQgYmVsb25ncyB0byB0aGUgY3VycmVudCB0aHJlYWQuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+UnVudGltZUNvbnRleHRCYXNlPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBHZXRDdXJyZW50UnVudGltZUNvbnRleHQoKTogUnVudGltZUNvbnRleHRCYXNlIHtcclxuICAgIHJldHVybiBFdmVudHMuR2V0UnVudGltZUNvbnRleHQoTWFuYWdlci5HZXRDdXJyZW50Q29udGV4dElEKCkpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBHZXRzIHRoZSBjb250ZXh0SUQgdXNpbmcgdGhlIEd1aU1nRm9ybS5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIm1nT2JqZWN0XCI+TWFnaWMgT2JqZWN0IC0gR3VpTWdGb3JtL0d1aU1nQ29udHJvbC9Mb2dpY2FsIGNvbnRyb2w8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz5jb250ZXh0SUQ8L3JldHVybnM+XHJcbiAgc3RhdGljIEdldENvbnRleHRJRChtZ09iamVjdDogYW55KTogbnVtYmVyIHtcclxuICAgIGxldCBndWlNZ0Zvcm06IEd1aU1nRm9ybSA9IG51bGw7XHJcblxyXG4gICAgaWYgKG1nT2JqZWN0IGluc3RhbmNlb2YgR3VpTWdDb250cm9sKVxyXG4gICAgICBndWlNZ0Zvcm0gPSAoPEd1aU1nQ29udHJvbD5tZ09iamVjdCkuR3VpTWdGb3JtO1xyXG4gICAgZWxzZSBpZiAobWdPYmplY3QgaW5zdGFuY2VvZiBHdWlNZ0Zvcm0pXHJcbiAgICAgIGd1aU1nRm9ybSA9IDxHdWlNZ0Zvcm0+bWdPYmplY3Q7XHJcblxyXG4gICAgcmV0dXJuIEV2ZW50cy5HZXRDb250ZXh0SUQoZ3VpTWdGb3JtKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gU2hvd3Mgd2luZG93cyBoZWxwLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiZmlsZVBhdGhcIj5wYXRoIG9mIHRoZSBoZWxwIGZpbGUuPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJoZWxwQ21kXCI+aGVscCBjb21tYW5kLjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiaGVscEtleVwiPnNlYXJjaCBrZXkgd29yZC48L3BhcmFtPlxyXG4gIHN0YXRpYyBTaG93V2luZG93SGVscChmaWxlUGF0aDogc3RyaW5nLCBoZWxwQ21kOiBIZWxwQ29tbWFuZCwgaGVscEtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHJldHVybiBTcGVjaWFsVmFsTmV3UG9saWN5XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHB1YmxpYyBzdGF0aWMgR2V0U3BlY2lhbFZhbE5ld1BvbGljeSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBHdWlFbnZpcm9ubWVudC5FbnZpcm9ubWVudC5HZXRTcGVjaWFsVmFsTmV3UG9saWN5KCk7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyBoZWxwZXIgY2xhc3MgZm9yIHNldHRpbmcvcmVzZXR0aW5nIHRoZSBjdXJyZW50IGNvbnRleHQgSUQuXHJcbi8vLyBXZSByZXF1aXJlIHRoaXMgY2xhc3Mgc3BlY2lmaWNhbGx5IGZvciBNb2RhbCB3aW5kb3dzLiBXaGVuIHdlIG9wZW4gYSBtb2RhbCB3aW5kb3cgdGhlblxyXG4vLy8gaXQgd2FpdHMgaW4gR3VpVGhyZWFkLiBNZWFuIHdoaWxlIEd1aVRocmVhZCBjYW4gcmVjZWl2ZSB0aGUgZXZlbnRzIG9mIG90aGVyIGNvbnRleHQgYW5kXHJcbi8vLyBhZnRlciBwcm9jZXNzaW5nIHRoZXNlIGV2ZW50cywgd2Ugc2hvdWxkIHJlc2V0IHRoZSBjb250ZXh0SUQgb2YgdGhlIE1vZGFsIHdpbmRvd3MgYmVjYXVzZVxyXG4vLy8gaXQgd2lsbCBiZSB1c2VkIGZvciBsb2dnaW5nIHRoZSBldmVudHMgd2hlbiB3ZSBjbG9zZSB0aGUgbW9kYWwgd2luZG93LlxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgQ29udGV4dElER3VhcmQge1xyXG4gIHByaXZhdGUgX3ByZXZDb250ZXh0SUQ6IHN0cmluZyA9ICdcXDAnO1xyXG5cclxuICAvLyBGb3IgZGVidWdnaW5nIHB1cnBvc2Ugb25seS5cclxuICAvLyBJdCB3aWxsIGhvbGQgdGhlIGZpbGUgbmFtZSBmcm9tIHdoaWNoIHRoZSBvYmplY3Qgb2YgQ29udGV4dElER3VhcmQgaXMgY3JlYXRlZC5cclxuICBwcml2YXRlIF9maWxlTmFtZTogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoKTtcclxuICBjb25zdHJ1Y3Rvcihjb250ZXh0SUQ6IHN0cmluZyk7XHJcbiAgY29uc3RydWN0b3IoY29udGV4dElEPzogc3RyaW5nKSB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzAoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25zdHJ1Y3Rvcl8xKGNvbnRleHRJRCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzAoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wcmV2Q29udGV4dElEID0gTWFuYWdlci5HZXRDdXJyZW50Q29udGV4dElEKCk7XHJcbiAgICB0aGlzLlNhdmVGaWxlbmFtZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8xKGNvbnRleHRJRDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLlNldEN1cnJlbnQoY29udGV4dElEKTtcclxuICAgIHRoaXMuU2F2ZUZpbGVuYW1lKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHNldHMgdGhlIGNvbnRleHQgSUQgdG8gJ2d1YXJkJy5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImNvbnRleHRJRFwiPm5ldyBjb250ZXh0IElEIHRvICdndWFyZCcuPC9wYXJhbT5cclxuICBTZXRDdXJyZW50KGNvbnRleHRJRDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoY29udGV4dElEICE9PSB0aGlzLl9wcmV2Q29udGV4dElEKSB7XHJcbiAgICAgIHRoaXMuX3ByZXZDb250ZXh0SUQgPSBjb250ZXh0SUQ7XHJcbiAgICAgIE1hbmFnZXIuU2V0Q3VycmVudENvbnRleHRJRChjb250ZXh0SUQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBHZXQgdGhlIGZpbGUgbmFtZSBmcm9tIHdoaWNoIHRoZSBDb250ZXh0SURHdWFyZCBpcyBiZWluZyBjcmVhdGVkLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBTYXZlRmlsZW5hbWUoKTogdm9pZCB7XHJcbiAgICBsZXQgc3RhY2tGcmFtZTogU3RhY2tGcmFtZSA9IG5ldyBTdGFja0ZyYW1lKDEsIHRydWUpO1xyXG4gICAgdGhpcy5fZmlsZU5hbWUgPSBzdGFja0ZyYW1lLkdldEZpbGVOYW1lKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgRGlzcG9zZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9wcmV2Q29udGV4dElEICE9PSBNYW5hZ2VyLkdldEN1cnJlbnRDb250ZXh0SUQoKSlcclxuICAgICAgTWFuYWdlci5TZXRDdXJyZW50Q29udGV4dElEKHRoaXMuX3ByZXZDb250ZXh0SUQpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
package/esm2015/src/UIBridge.js
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
// @dynamic
|
|
2
1
|
export class UIBridge {
|
|
3
2
|
constructor() {
|
|
4
|
-
// define callbacks
|
|
5
3
|
this.getInteractiveCallback = null;
|
|
6
4
|
this.executeCommandsCallback = null;
|
|
7
|
-
// do something construct...
|
|
8
5
|
}
|
|
9
6
|
static getInstance() {
|
|
10
7
|
if (!UIBridge.instance) {
|
|
11
8
|
UIBridge.instance = new UIBridge();
|
|
12
|
-
// ... any one time initialization goes here ...
|
|
13
9
|
}
|
|
14
10
|
return UIBridge.instance;
|
|
15
11
|
}
|
|
@@ -29,9 +25,8 @@ export class UIBridge {
|
|
|
29
25
|
registerExecuteCommandsCallback(executeCommandsCallback) {
|
|
30
26
|
this.executeCommandsCallback = executeCommandsCallback;
|
|
31
27
|
}
|
|
32
|
-
// used to save stub data
|
|
33
28
|
saveData(data) {
|
|
34
29
|
console.log(data);
|
|
35
30
|
}
|
|
36
31
|
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVUlCcmlkZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL1VJQnJpZGdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFFLE1BQU0sT0FBTyxRQUFRO0lBUW5CO1FBTEEsMkJBQXNCLEdBQTJCLElBQUksQ0FBQztRQUN0RCw0QkFBdUIsR0FBNEIsSUFBSSxDQUFDO0lBTXhELENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVztRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRTtZQUN0QixRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7U0FFcEM7UUFDRCxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUdNLHlCQUF5QixDQUFDLE9BQXNCO1FBQ3JELElBQUksSUFBSSxDQUFDLHNCQUFzQixJQUFJLElBQUk7WUFDckMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUUsT0FBTyxDQUFDLENBQUM7UUFDL0MsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRU0sZUFBZSxDQUFDLFFBQXNCO1FBQzNDLElBQUksSUFBSSxDQUFDLHVCQUF1QixJQUFJLElBQUksSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFO1lBQzVELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUV4QztJQUNILENBQUM7SUFHTSwyQkFBMkIsQ0FBQyxxQkFBNEM7UUFDN0UsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHFCQUFxQixDQUFDO0lBQ3RELENBQUM7SUFFTSwrQkFBK0IsQ0FBQyx1QkFBZ0Q7UUFDckYsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO0lBQ3pELENBQUM7SUFHTSxRQUFRLENBQUMsSUFBWTtRQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7R3VpQ29tbWFuZH0gZnJvbSBcIi4vZ3VpL2xvdy9HdWlDb21tYW5kXCI7XHJcbmltcG9ydCB7R3VpSW50ZXJhY3RpdmV9IGZyb20gXCIuL2d1aS9sb3cvR3VpSW50ZXJhY3RpdmVcIjtcclxuXHJcblxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIEV4ZWN1dGVDb21tYW5kc0NhbGxiYWNrID0gKGNvbW1hbmRzOiBHdWlDb21tYW5kW10pID0+IHZvaWQ7XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgR2V0SW50cmFjdGl2ZUNhbGxiYWNrID0gKGNvbW1hbmQ6IEd1aUludGVyYWN0aXZlKSA9PiBzdHJpbmc7XHJcblxyXG4vLyBAZHluYW1pY1xyXG4gIGV4cG9ydCBjbGFzcyBVSUJyaWRnZSB7XHJcblxyXG4gICAgLy8gZGVmaW5lIGNhbGxiYWNrc1xyXG4gICAgZ2V0SW50ZXJhY3RpdmVDYWxsYmFjayA6IEdldEludHJhY3RpdmVDYWxsYmFjayA9IG51bGw7XHJcbiAgICBleGVjdXRlQ29tbWFuZHNDYWxsYmFjazogRXhlY3V0ZUNvbW1hbmRzQ2FsbGJhY2sgPSBudWxsO1xyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGluc3RhbmNlOiBVSUJyaWRnZTtcclxuXHJcbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAvLyBkbyBzb21ldGhpbmcgY29uc3RydWN0Li4uXHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldEluc3RhbmNlKCkge1xyXG4gICAgICBpZiAoIVVJQnJpZGdlLmluc3RhbmNlKSB7XHJcbiAgICAgICAgVUlCcmlkZ2UuaW5zdGFuY2UgPSBuZXcgVUlCcmlkZ2UoKTtcclxuICAgICAgICAvLyAuLi4gYW55IG9uZSB0aW1lIGluaXRpYWxpemF0aW9uIGdvZXMgaGVyZSAuLi5cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gVUlCcmlkZ2UuaW5zdGFuY2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBFeGVjdXRlSW50ZXJhY3RpdmVDb21tYW5kKGNvbW1hbmQ6R3VpSW50ZXJhY3RpdmUpOiBzdHJpbmcge1xyXG4gICAgICBpZiAodGhpcy5nZXRJbnRlcmFjdGl2ZUNhbGxiYWNrICE9IG51bGwpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SW50ZXJhY3RpdmVDYWxsYmFjayggY29tbWFuZCk7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBleGVjdXRlQ29tbWFuZHMoY29tbWFuZHM6IEd1aUNvbW1hbmRbXSk6IHZvaWQge1xyXG4gICAgICBpZiAodGhpcy5leGVjdXRlQ29tbWFuZHNDYWxsYmFjayAhPSBudWxsICYmIGNvbW1hbmRzICE9IG51bGwpIHtcclxuICAgICAgICB0aGlzLmV4ZWN1dGVDb21tYW5kc0NhbGxiYWNrKGNvbW1hbmRzKTtcclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgcHVibGljIHJlZ2lzdGVySW50ZXJhY3RpdmVDYWxsYmFjayhnZXRJbnRyYWN0aXZlQ2FsbGJhY2s6IEdldEludHJhY3RpdmVDYWxsYmFjayk6IHZvaWQge1xyXG4gICAgICB0aGlzLmdldEludGVyYWN0aXZlQ2FsbGJhY2sgPSBnZXRJbnRyYWN0aXZlQ2FsbGJhY2s7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZ2lzdGVyRXhlY3V0ZUNvbW1hbmRzQ2FsbGJhY2soZXhlY3V0ZUNvbW1hbmRzQ2FsbGJhY2s6IEV4ZWN1dGVDb21tYW5kc0NhbGxiYWNrKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuZXhlY3V0ZUNvbW1hbmRzQ2FsbGJhY2sgPSBleGVjdXRlQ29tbWFuZHNDYWxsYmFjaztcclxuICAgIH1cclxuXHJcbiAgICAvLyB1c2VkIHRvIHNhdmUgc3R1YiBkYXRhXHJcbiAgICBwdWJsaWMgc2F2ZURhdGEoZGF0YTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUVudmlyb25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VpL3NyYy9lbnYvSUVudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmNvZGluZyB9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gZnVuY3Rpb25hbGl0eSByZXF1aXJlZCBieSB0aGUgR1VJIG5hbWVzcGFjZSBmcm9tIHRoZSBFbnZpcm9ubWVudCBjbGFzcy5cclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGludGVyZmFjZSBJRW52aXJvbm1lbnQge1xyXG5cclxuICBMYW5ndWFnZTogc3RyaW5nO1xyXG5cclxuICBTcGVjaWFsTnVtcGFkUGx1c0NoYXI6IGJvb2xlYW47XHJcblxyXG4gIFNwZWNpYWxPbGRab3JkZXI6IGJvb2xlYW47XHJcblxyXG4gIFNwZWNpYWxSZXN0b3JlTWF4aW1pemVkRm9ybTogYm9vbGVhbjtcclxuXHJcbiAgU3BlY2lhbElnbm9yZUJHaW5Nb2RpZnk6IGJvb2xlYW47XHJcblxyXG4gIElnbm9yZVJlcGxhY2VEZWNpbWFsU2VwYXJhdG9yOiBib29sZWFuO1xyXG5cclxuICAvLyBpbnN0cnVjdCBob3cgdG8gcmVmZXIgYSBmb3J3YXJkIHNsYXNoIC0gZWl0aGVyIGFzIGEgcmVsYXRpdmUgd2ViIHVybCwgb3IgYXMgYSBmaWxlIGluIHRoZSBmaWxlIHN5c3RlbS5cclxuICBGb3J3YXJkU2xhc2hVc2FnZTogc3RyaW5nO1xyXG5cclxuICBHZXREYXRlTW9kZShjb21wSWR4OiBudW1iZXIpOiBzdHJpbmc7XHJcblxyXG4gIEdldENlbnR1cnkoY29tcElkeDogbnVtYmVyKTogbnVtYmVyO1xyXG5cclxuICBHZXREYXRlKCk6IHN0cmluZztcclxuXHJcbiAgR2V0VGltZSgpOiBzdHJpbmc7XHJcblxyXG4gIEdldERlY2ltYWwoKTogc3RyaW5nO1xyXG5cclxuICBDYW5SZXBsYWNlRGVjaW1hbFNlcGFyYXRvcigpOiBib29sZWFuO1xyXG5cclxuICBHZXRUaG91c2FuZHMoKTogc3RyaW5nO1xyXG5cclxuICBHZXREZWZhdWx0Q29sb3IoKTogbnVtYmVyO1xyXG5cclxuICBHZXREZWZhdWx0Rm9jdXNDb2xvcigpOiBudW1iZXI7XHJcblxyXG4gIEdldFRvb2x0aXBUaW1lb3V0KCk6IG51bWJlcjtcclxuXHJcbiAgR2V0U3BlY2lhbEVkaXRMZWZ0QWxpZ24oKTogYm9vbGVhbjtcclxuXHJcbiAgR2V0R1VJRCgpOiBzdHJpbmc7XHJcblxyXG4gIEdldENvbnRyb2xzUGVyc2lzdGVuY3lQYXRoKCk6IHN0cmluZztcclxuXHJcbiAgR2V0SW1lQXV0b09mZigpOiBib29sZWFuO1xyXG5cclxuICBHZXRMb2NhbEFzNDAwU2V0KCk6IGJvb2xlYW47XHJcblxyXG4gIHNldERlY2ltYWxTZXBhcmF0b3IodmFsdWU6IHN0cmluZykgOiB2b2lkO1xyXG5cclxuICBzZXRUaG91c2FuZHNTZXBhcmF0b3IodmFsdWU6IHN0cmluZykgOiB2b2lkO1xyXG5cclxuICBHZXRMb2NhbEZsYWcoZjogc3RyaW5nKTogYm9vbGVhbjtcclxuXHJcbiAgR2V0U2lnbmlmaWNhbnROdW1TaXplKCk6IG51bWJlcjtcclxuXHJcbiAgR2V0RGVidWdMZXZlbCgpOiBudW1iZXI7XHJcblxyXG4gIEdldEVuY29kaW5nKCk6IEVuY29kaW5nO1xyXG5cclxuICBHZXREcm9wVXNlckZvcm1hdHMoKTogc3RyaW5nO1xyXG5cclxuICBHZXRTcGVjaWFsRW5nTG9nb24oKTogYm9vbGVhbjtcclxuXHJcbiAgR2V0U3BlY2lhbElnbm9yZUJ1dHRvbkZvcm1hdCgpOiBib29sZWFuO1xyXG5cclxuICBHZXRTcGVjaWFsU3dmQ29udHJvbE5hbWVQcm9wZXJ0eSgpOiBib29sZWFuO1xyXG5cclxuICBHZXRTcGVjaWFsTG9nSW50ZXJuYWxFeGNlcHRpb25zKCk6IGJvb2xlYW47XHJcblxyXG4gIEdldFNwZWNpYWxUZXh0U2l6ZUZhY3RvcmluZygpOiBib29sZWFuO1xyXG5cclxuICBHZXRTcGVjaWFsRmxhdEVkaXRPbkNsYXNzaWNUaGVtZSgpOiBib29sZWFuO1xyXG5cclxuICBHZXRTcGVjaWFsRGlzYWJsZU1vdXNlV2hlZWwoKTogYm9vbGVhbjtcclxuXHJcbiAgZ2V0Q29udGV4dEluYWN0aXZpdHlUaW1lb3V0KCk6IG51bWJlcjtcclxuXHJcbiAgZ2V0Q2xpZW50Q29udGV4dEluYWN0aXZpdHlUaW1lb3V0KCk6IG51bWJlcjtcclxuXHJcbiAgZ2V0Q29udGV4dEluYWN0aXZpdHlXYXJuaW5nVGltZSgpOiBudW1iZXI7XHJcblxyXG4gIGdldElkbGVUaW1lKGNvbXBJZHg6IG51bWJlcik6IG51bWJlcjtcclxuXHJcbiAgR2V0U3BlY2lhbFZhbE5ld1BvbGljeSgpOiBib29sZWFuO1xyXG4gIEdldFNwZWNpYWxDYW5jZWxPbkNyZWF0ZSgpOiBib29sZWFuO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export class ControlBase {
|
|
2
2
|
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbEJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL2d1aS9Db250cm9sQmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQWlCLFdBQVc7Q0FLakMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgYWJzdHJhY3QgY2xhc3MgIENvbnRyb2xCYXNlIHtcclxuXHJcbiAgYWJzdHJhY3QgZ2V0IFVuaXF1ZU5hbWUoKTogc3RyaW5nO1xyXG5cclxuICBhYnN0cmFjdCBnZXQgVGFza1RhZygpOiBzdHJpbmc7XHJcbn1cclxuIl19
|