@magic-xpa/gui 4.1100.0-dev4110.19 → 4.1100.0-dev4110.191
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/{esm2020 → esm2022}/index.mjs +71 -71
- package/{esm2020 → esm2022}/magic-xpa-gui.mjs +1 -1
- package/esm2022/src/Commands.mjs +184 -0
- package/{esm2020 → esm2022}/src/Events.mjs +420 -420
- package/esm2022/src/EventsProcessor.mjs +67 -0
- package/esm2022/src/FocusManager.mjs +34 -0
- package/esm2022/src/GuiConstants.mjs +68 -0
- package/{esm2020 → esm2022}/src/GuiEnums.mjs +299 -299
- package/esm2022/src/GuiEnvironment.mjs +4 -0
- package/{esm2020 → esm2022}/src/IFlowMonitorQueue.mjs +1 -1
- package/{esm2020 → esm2022}/src/Manager.mjs +91 -91
- package/esm2022/src/UIBridge.mjs +33 -0
- package/{esm2020 → esm2022}/src/env/IEnvironment.mjs +1 -1
- package/{esm2020 → esm2022}/src/gui/ControlBase.mjs +2 -2
- package/esm2022/src/gui/GuiMgControl.mjs +123 -0
- package/{esm2020 → esm2022}/src/gui/GuiMgForm.mjs +3 -3
- package/esm2022/src/gui/KeyboardItem.mjs +135 -0
- package/esm2022/src/gui/LastFocusedVal.mjs +11 -0
- package/esm2022/src/gui/MgValue.mjs +16 -0
- package/{esm2020 → esm2022}/src/gui/PropParentInterface.mjs +1 -1
- package/{esm2020 → esm2022}/src/gui/low/DialogHandler.mjs +6 -6
- package/esm2022/src/gui/low/GuiCommand.mjs +68 -0
- package/esm2022/src/gui/low/GuiCommandQueue.mjs +35 -0
- package/esm2022/src/gui/low/GuiInteractive.mjs +177 -0
- package/esm2022/src/gui/low/Style.mjs +20 -0
- package/esm2022/src/management/RuntimeContextBase.mjs +42 -0
- package/esm2022/src/management/data/BlobType.mjs +281 -0
- package/{esm2020 → esm2022}/src/management/data/DcValues.mjs +214 -214
- package/esm2022/src/management/data/DcValuesBuilderBase.mjs +96 -0
- package/esm2022/src/management/data/FieldDef.mjs +331 -0
- package/esm2022/src/management/data/FieldsTable.mjs +54 -0
- package/esm2022/src/management/data/GuiDataViewBase.mjs +88 -0
- package/esm2022/src/management/data/GuiFieldBase.mjs +82 -0
- package/{esm2020 → esm2022}/src/management/data/IRecord.mjs +1 -1
- package/{esm2020 → esm2022}/src/management/data/IReferencedObject.mjs +1 -1
- package/esm2022/src/management/data/NUM_TYPE.mjs +1739 -0
- package/esm2022/src/management/data/ObjectReferenceBase.mjs +48 -0
- package/esm2022/src/management/data/ObjectReferencesCollection.mjs +27 -0
- package/esm2022/src/management/data/RecordUtils.mjs +361 -0
- package/esm2022/src/management/data/VectorType.mjs +612 -0
- package/esm2022/src/management/data/VectorTypeBase.mjs +88 -0
- package/{esm2020 → esm2022}/src/management/events/IActionManager.mjs +1 -1
- package/{esm2020 → esm2022}/src/management/events/IGuiEventsManager.mjs +1 -1
- package/esm2022/src/management/exp/ExpressionInterface.mjs +244 -0
- package/{esm2020 → esm2022}/src/management/exp/GuiExpressionEvaluator.mjs +305 -307
- package/esm2022/src/management/gui/ControlTable.mjs +118 -0
- package/esm2022/src/management/gui/DisplayConvertor.mjs +1649 -0
- package/esm2022/src/management/gui/FieldValidator.mjs +711 -0
- package/esm2022/src/management/gui/GuiControlPropertyAdapter.mjs +24 -0
- package/{esm2020 → esm2022}/src/management/gui/GuiFormPropertyAdapter.mjs +10 -10
- package/esm2022/src/management/gui/HebrewDate.mjs +278 -0
- package/esm2022/src/management/gui/Helps.mjs +237 -0
- package/esm2022/src/management/gui/MgControlBase.mjs +1859 -0
- package/esm2022/src/management/gui/MgFormBase.mjs +741 -0
- package/esm2022/src/management/gui/PIC.mjs +1185 -0
- package/esm2022/src/management/gui/PropDefaults.mjs +230 -0
- package/{esm2020 → esm2022}/src/management/gui/PropInterface.mjs +244 -244
- package/esm2022/src/management/gui/PropTable.mjs +221 -0
- package/esm2022/src/management/gui/Property.mjs +1361 -0
- package/esm2022/src/management/gui/ValidationDetails.mjs +248 -0
- package/esm2022/src/management/gui/ValidationDetailsBase.mjs +93 -0
- package/esm2022/src/management/gui/WrongFormatException.mjs +29 -0
- package/esm2022/src/management/tasks/GuiDataCollection.mjs +4 -0
- package/esm2022/src/management/tasks/GuiTaskBase.mjs +511 -0
- package/{esm2020 → esm2022}/src/management/tasks/IMGDataTable.mjs +1 -1
- package/{esm2020 → esm2022}/src/management/tasks/ITask.mjs +1 -1
- package/esm2022/src/management/tasks/MgTimer.mjs +21 -0
- package/esm2022/src/management/tasks/TaskDefinitionId.mjs +54 -0
- package/esm2022/src/management/tasks/TaskDefinitionIdTableSaxHandler.mjs +41 -0
- package/esm2022/src/util/MemoryUtil.mjs +35 -0
- package/{esm2020 → esm2022}/src/util/ObjectReference.mjs +36 -36
- package/esm2022/src/util/UsernamePasswordCredentials.mjs +52 -0
- package/{fesm2020 → fesm2022}/magic-xpa-gui.mjs +16067 -16074
- package/fesm2022/magic-xpa-gui.mjs.map +1 -0
- package/index.d.ts +70 -70
- package/package.json +6 -12
- package/src/Commands.d.ts +40 -39
- package/src/Events.d.ts +155 -155
- package/src/EventsProcessor.d.ts +13 -13
- package/src/FocusManager.d.ts +8 -8
- package/src/GuiConstants.d.ts +65 -65
- package/src/GuiEnums.d.ts +282 -282
- package/src/GuiEnvironment.d.ts +4 -4
- package/src/IFlowMonitorQueue.d.ts +3 -3
- package/src/Manager.d.ts +26 -26
- package/src/UIBridge.d.ts +16 -16
- package/src/env/IEnvironment.d.ts +31 -31
- package/src/gui/ControlBase.d.ts +4 -4
- package/src/gui/GuiMgControl.d.ts +38 -38
- package/src/gui/GuiMgForm.d.ts +3 -3
- package/src/gui/KeyboardItem.d.ts +18 -18
- package/src/gui/LastFocusedVal.d.ts +7 -7
- package/src/gui/MgValue.d.ts +15 -15
- package/src/gui/PropParentInterface.d.ts +13 -13
- package/src/gui/low/DialogHandler.d.ts +4 -4
- package/src/gui/low/GuiCommand.d.ts +37 -37
- package/src/gui/low/GuiCommandQueue.d.ts +13 -13
- package/src/gui/low/GuiInteractive.d.ts +55 -53
- package/src/gui/low/Style.d.ts +19 -19
- package/src/management/RuntimeContextBase.d.ts +23 -23
- package/src/management/data/BlobType.d.ts +29 -29
- package/src/management/data/DcValues.d.ts +33 -33
- package/src/management/data/DcValuesBuilderBase.d.ts +17 -17
- package/src/management/data/FieldDef.d.ts +53 -53
- package/src/management/data/FieldsTable.d.ts +16 -16
- package/src/management/data/GuiDataViewBase.d.ts +27 -27
- package/src/management/data/GuiFieldBase.d.ts +17 -17
- package/src/management/data/IRecord.d.ts +12 -12
- package/src/management/data/IReferencedObject.d.ts +5 -5
- package/src/management/data/NUM_TYPE.d.ts +103 -103
- package/src/management/data/ObjectReferenceBase.d.ts +16 -16
- package/src/management/data/ObjectReferencesCollection.d.ts +10 -10
- package/src/management/data/RecordUtils.d.ts +21 -21
- package/src/management/data/VectorType.d.ts +52 -52
- package/src/management/data/VectorTypeBase.d.ts +8 -8
- package/src/management/events/IActionManager.d.ts +7 -7
- package/src/management/events/IGuiEventsManager.d.ts +20 -20
- package/src/management/exp/ExpressionInterface.d.ts +242 -242
- package/src/management/exp/GuiExpressionEvaluator.d.ts +47 -47
- package/src/management/gui/ControlTable.d.ts +28 -28
- package/src/management/gui/DisplayConvertor.d.ts +103 -103
- package/src/management/gui/FieldValidator.d.ts +35 -35
- package/src/management/gui/GuiControlPropertyAdapter.d.ts +40 -40
- package/src/management/gui/GuiFormPropertyAdapter.d.ts +17 -17
- package/src/management/gui/HebrewDate.d.ts +46 -46
- package/src/management/gui/Helps.d.ts +51 -51
- package/src/management/gui/MgControlBase.d.ts +223 -223
- package/src/management/gui/MgFormBase.d.ts +160 -160
- package/src/management/gui/PIC.d.ts +108 -108
- package/src/management/gui/PropDefaults.d.ts +7 -7
- package/src/management/gui/PropInterface.d.ts +243 -243
- package/src/management/gui/PropTable.d.ts +33 -33
- package/src/management/gui/Property.d.ts +121 -121
- package/src/management/gui/ValidationDetails.d.ts +52 -52
- package/src/management/gui/ValidationDetailsBase.d.ts +14 -14
- package/src/management/gui/WrongFormatException.d.ts +9 -9
- package/src/management/tasks/GuiDataCollection.d.ts +4 -4
- package/src/management/tasks/GuiTaskBase.d.ts +150 -150
- package/src/management/tasks/IMGDataTable.d.ts +10 -10
- package/src/management/tasks/ITask.d.ts +6 -6
- package/src/management/tasks/MgTimer.d.ts +8 -8
- package/src/management/tasks/TaskDefinitionId.d.ts +16 -16
- package/src/management/tasks/TaskDefinitionIdTableSaxHandler.d.ts +7 -7
- package/src/util/MemoryUtil.d.ts +6 -6
- package/src/util/ObjectReference.d.ts +9 -9
- package/src/util/UsernamePasswordCredentials.d.ts +18 -18
- package/esm2020/src/Commands.mjs +0 -177
- package/esm2020/src/EventsProcessor.mjs +0 -67
- package/esm2020/src/FocusManager.mjs +0 -34
- package/esm2020/src/GuiConstants.mjs +0 -68
- package/esm2020/src/GuiEnvironment.mjs +0 -4
- package/esm2020/src/UIBridge.mjs +0 -32
- package/esm2020/src/gui/GuiMgControl.mjs +0 -125
- package/esm2020/src/gui/KeyboardItem.mjs +0 -135
- package/esm2020/src/gui/LastFocusedVal.mjs +0 -11
- package/esm2020/src/gui/MgValue.mjs +0 -16
- package/esm2020/src/gui/low/GuiCommand.mjs +0 -66
- package/esm2020/src/gui/low/GuiCommandQueue.mjs +0 -35
- package/esm2020/src/gui/low/GuiInteractive.mjs +0 -165
- package/esm2020/src/gui/low/Style.mjs +0 -20
- package/esm2020/src/management/RuntimeContextBase.mjs +0 -43
- package/esm2020/src/management/data/BlobType.mjs +0 -281
- package/esm2020/src/management/data/DcValuesBuilderBase.mjs +0 -96
- package/esm2020/src/management/data/FieldDef.mjs +0 -331
- package/esm2020/src/management/data/FieldsTable.mjs +0 -54
- package/esm2020/src/management/data/GuiDataViewBase.mjs +0 -90
- package/esm2020/src/management/data/GuiFieldBase.mjs +0 -82
- package/esm2020/src/management/data/NUM_TYPE.mjs +0 -1741
- package/esm2020/src/management/data/ObjectReferenceBase.mjs +0 -48
- package/esm2020/src/management/data/ObjectReferencesCollection.mjs +0 -29
- package/esm2020/src/management/data/RecordUtils.mjs +0 -361
- package/esm2020/src/management/data/VectorType.mjs +0 -612
- package/esm2020/src/management/data/VectorTypeBase.mjs +0 -88
- package/esm2020/src/management/exp/ExpressionInterface.mjs +0 -244
- package/esm2020/src/management/gui/ControlTable.mjs +0 -118
- package/esm2020/src/management/gui/DisplayConvertor.mjs +0 -1679
- package/esm2020/src/management/gui/FieldValidator.mjs +0 -711
- package/esm2020/src/management/gui/GuiControlPropertyAdapter.mjs +0 -22
- package/esm2020/src/management/gui/HebrewDate.mjs +0 -278
- package/esm2020/src/management/gui/Helps.mjs +0 -237
- package/esm2020/src/management/gui/MgControlBase.mjs +0 -1858
- package/esm2020/src/management/gui/MgFormBase.mjs +0 -738
- package/esm2020/src/management/gui/PIC.mjs +0 -1185
- package/esm2020/src/management/gui/PropDefaults.mjs +0 -230
- package/esm2020/src/management/gui/PropTable.mjs +0 -221
- package/esm2020/src/management/gui/Property.mjs +0 -1356
- package/esm2020/src/management/gui/ValidationDetails.mjs +0 -248
- package/esm2020/src/management/gui/ValidationDetailsBase.mjs +0 -93
- package/esm2020/src/management/gui/WrongFormatException.mjs +0 -29
- package/esm2020/src/management/tasks/GuiDataCollection.mjs +0 -4
- package/esm2020/src/management/tasks/GuiTaskBase.mjs +0 -510
- package/esm2020/src/management/tasks/MgTimer.mjs +0 -21
- package/esm2020/src/management/tasks/TaskDefinitionId.mjs +0 -54
- package/esm2020/src/management/tasks/TaskDefinitionIdTableSaxHandler.mjs +0 -41
- package/esm2020/src/util/MemoryUtil.mjs +0 -35
- package/esm2020/src/util/UsernamePasswordCredentials.mjs +0 -52
- package/fesm2015/magic-xpa-gui.mjs +0 -16364
- package/fesm2015/magic-xpa-gui.mjs.map +0 -1
- package/fesm2020/magic-xpa-gui.mjs.map +0 -1
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { MgValue } from '../MgValue';
|
|
2
|
-
import { GuiMgForm } from '../GuiMgForm';
|
|
3
|
-
import { Events } from '../../Events';
|
|
4
|
-
import { UIBridge } from '../../UIBridge';
|
|
5
|
-
import { ControlBase } from '../ControlBase';
|
|
6
|
-
import { GuiCommandQueue } from './GuiCommandQueue';
|
|
7
|
-
export var InteractiveCommandType;
|
|
8
|
-
(function (InteractiveCommandType) {
|
|
9
|
-
InteractiveCommandType[InteractiveCommandType["GET_VALUE"] = 0] = "GET_VALUE";
|
|
10
|
-
InteractiveCommandType[InteractiveCommandType["GET_TOP_INDEX"] = 1] = "GET_TOP_INDEX";
|
|
11
|
-
InteractiveCommandType[InteractiveCommandType["MESSAGE_BOX"] = 2] = "MESSAGE_BOX";
|
|
12
|
-
InteractiveCommandType[InteractiveCommandType["SET_TITLE"] = 3] = "SET_TITLE";
|
|
13
|
-
InteractiveCommandType[InteractiveCommandType["SET_EDIT_TEXT"] = 4] = "SET_EDIT_TEXT";
|
|
14
|
-
InteractiveCommandType[InteractiveCommandType["INSERT_EDIT_TEXT"] = 5] = "INSERT_EDIT_TEXT";
|
|
15
|
-
InteractiveCommandType[InteractiveCommandType["GET_CARET_POS"] = 6] = "GET_CARET_POS";
|
|
16
|
-
InteractiveCommandType[InteractiveCommandType["REFRESH_PAGE"] = 7] = "REFRESH_PAGE";
|
|
17
|
-
InteractiveCommandType[InteractiveCommandType["GET_ROWS_IN_PAGE"] = 8] = "GET_ROWS_IN_PAGE";
|
|
18
|
-
InteractiveCommandType[InteractiveCommandType["SET_GET_SUGGESTED_VALUE_FOR_CHOICE_CONTROL_ON_TAGDATA"] = 9] = "SET_GET_SUGGESTED_VALUE_FOR_CHOICE_CONTROL_ON_TAGDATA";
|
|
19
|
-
InteractiveCommandType[InteractiveCommandType["GET_IS_ROW_EDITING"] = 10] = "GET_IS_ROW_EDITING";
|
|
20
|
-
InteractiveCommandType[InteractiveCommandType["GET_MAX_ROWS_IN_PAGINATED_TABLE"] = 11] = "GET_MAX_ROWS_IN_PAGINATED_TABLE";
|
|
21
|
-
InteractiveCommandType[InteractiveCommandType["CALL_JS"] = 12] = "CALL_JS";
|
|
22
|
-
InteractiveCommandType[InteractiveCommandType["GET_LAST_ROUTE"] = 13] = "GET_LAST_ROUTE";
|
|
23
|
-
})(InteractiveCommandType || (InteractiveCommandType = {}));
|
|
24
|
-
export class GuiInteractiveBase {
|
|
25
|
-
constructor() {
|
|
26
|
-
this._commandType = 0;
|
|
27
|
-
this.TaskTag = null;
|
|
28
|
-
this.controlName = null;
|
|
29
|
-
this._str = String.fromCharCode(0);
|
|
30
|
-
this._intVal1 = 0;
|
|
31
|
-
this._line = 0;
|
|
32
|
-
this._obj1 = null;
|
|
33
|
-
this._parameters = null;
|
|
34
|
-
this._boolVal = false;
|
|
35
|
-
this._obj2 = null;
|
|
36
|
-
this._mgValue = null;
|
|
37
|
-
this.resultString = String.fromCharCode(0);
|
|
38
|
-
}
|
|
39
|
-
setGetSuggestedValueOfChoiceControlOnTagData(ctrl, line, retSuggestedValue) {
|
|
40
|
-
this._commandType = InteractiveCommandType.SET_GET_SUGGESTED_VALUE_FOR_CHOICE_CONTROL_ON_TAGDATA;
|
|
41
|
-
this._obj2 = ctrl;
|
|
42
|
-
this._line = line;
|
|
43
|
-
this._boolVal = retSuggestedValue;
|
|
44
|
-
this.Invoke();
|
|
45
|
-
}
|
|
46
|
-
getValue(obj, line) {
|
|
47
|
-
this._commandType = InteractiveCommandType.GET_VALUE;
|
|
48
|
-
this._obj2 = obj;
|
|
49
|
-
this._line = line;
|
|
50
|
-
this._mgValue = new MgValue();
|
|
51
|
-
this.Invoke();
|
|
52
|
-
return this._mgValue.obj;
|
|
53
|
-
}
|
|
54
|
-
getTopIndex(tablecontrol) {
|
|
55
|
-
this._commandType = InteractiveCommandType.GET_TOP_INDEX;
|
|
56
|
-
this._obj2 = tablecontrol;
|
|
57
|
-
this.Invoke();
|
|
58
|
-
return this._intVal1;
|
|
59
|
-
}
|
|
60
|
-
getIsRowEditing(tablecontrol, line, isLineMode) {
|
|
61
|
-
this._commandType = InteractiveCommandType.GET_IS_ROW_EDITING;
|
|
62
|
-
this._obj2 = tablecontrol;
|
|
63
|
-
this._intVal1 = line;
|
|
64
|
-
this._boolVal = isLineMode;
|
|
65
|
-
this.Invoke();
|
|
66
|
-
return this._boolVal;
|
|
67
|
-
}
|
|
68
|
-
messageBox(title, msg, style) {
|
|
69
|
-
this._commandType = InteractiveCommandType.MESSAGE_BOX;
|
|
70
|
-
this._mgValue = new MgValue();
|
|
71
|
-
this._mgValue.title = title;
|
|
72
|
-
this._mgValue.str = ((msg === null) ? '' : msg);
|
|
73
|
-
this._mgValue.style = style;
|
|
74
|
-
Events.RefreshTables();
|
|
75
|
-
this.Invoke();
|
|
76
|
-
return this._mgValue.number;
|
|
77
|
-
}
|
|
78
|
-
setTitle(topMostForm, title) {
|
|
79
|
-
this._commandType = InteractiveCommandType.SET_TITLE;
|
|
80
|
-
this._mgValue = new MgValue();
|
|
81
|
-
this._obj2 = topMostForm;
|
|
82
|
-
this._mgValue.title = ((title === null) ? '' : title);
|
|
83
|
-
this.Invoke();
|
|
84
|
-
}
|
|
85
|
-
setEditText(control, line, text) {
|
|
86
|
-
this._commandType = InteractiveCommandType.SET_EDIT_TEXT;
|
|
87
|
-
this._obj2 = control;
|
|
88
|
-
this._line = line;
|
|
89
|
-
this._mgValue = new MgValue();
|
|
90
|
-
this._mgValue.str = text;
|
|
91
|
-
this.Invoke();
|
|
92
|
-
return this._mgValue.boolVal;
|
|
93
|
-
}
|
|
94
|
-
insertEditText(control, line, startPosition, textToInsert) {
|
|
95
|
-
this._commandType = InteractiveCommandType.INSERT_EDIT_TEXT;
|
|
96
|
-
this._obj2 = control;
|
|
97
|
-
this._line = line;
|
|
98
|
-
this._mgValue = new MgValue();
|
|
99
|
-
this._mgValue.str = textToInsert;
|
|
100
|
-
this._intVal1 = startPosition;
|
|
101
|
-
this.Invoke();
|
|
102
|
-
return this._mgValue.boolVal;
|
|
103
|
-
}
|
|
104
|
-
caretPosGet(control, line) {
|
|
105
|
-
this._commandType = InteractiveCommandType.GET_CARET_POS;
|
|
106
|
-
this._obj2 = control;
|
|
107
|
-
this._line = line;
|
|
108
|
-
this._mgValue = new MgValue();
|
|
109
|
-
this.Invoke();
|
|
110
|
-
return this._mgValue.number;
|
|
111
|
-
}
|
|
112
|
-
RefreshPage(navigateToRootRoute, initialUrl) {
|
|
113
|
-
this._commandType = InteractiveCommandType.REFRESH_PAGE;
|
|
114
|
-
this._boolVal = navigateToRootRoute;
|
|
115
|
-
this._obj1 = initialUrl;
|
|
116
|
-
this.Invoke();
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
getRowsInPage(control) {
|
|
120
|
-
this._commandType = InteractiveCommandType.GET_ROWS_IN_PAGE;
|
|
121
|
-
this._obj2 = control;
|
|
122
|
-
this.Invoke();
|
|
123
|
-
return this._intVal1;
|
|
124
|
-
}
|
|
125
|
-
getMaxRowsInPaginatedTable(control) {
|
|
126
|
-
this._commandType = InteractiveCommandType.GET_MAX_ROWS_IN_PAGINATED_TABLE;
|
|
127
|
-
this._obj2 = control;
|
|
128
|
-
this.Invoke();
|
|
129
|
-
return this._intVal1;
|
|
130
|
-
}
|
|
131
|
-
getLastRoute() {
|
|
132
|
-
this._commandType = InteractiveCommandType.GET_LAST_ROUTE;
|
|
133
|
-
this.Invoke();
|
|
134
|
-
return this.resultString;
|
|
135
|
-
}
|
|
136
|
-
ExecuteCallJS(form, formName, functionName, args) {
|
|
137
|
-
this._commandType = InteractiveCommandType.CALL_JS;
|
|
138
|
-
this._obj2 = form;
|
|
139
|
-
this.controlName = formName;
|
|
140
|
-
this._str = functionName;
|
|
141
|
-
this.arguments = args;
|
|
142
|
-
this.Invoke();
|
|
143
|
-
return this.resultString;
|
|
144
|
-
}
|
|
145
|
-
Invoke() {
|
|
146
|
-
GuiCommandQueue.getInstance().invoke();
|
|
147
|
-
if (this._obj2 instanceof ControlBase) {
|
|
148
|
-
let controlBase = this._obj2;
|
|
149
|
-
this.TaskTag = controlBase.TaskTag;
|
|
150
|
-
this.controlName = controlBase.UniqueName;
|
|
151
|
-
}
|
|
152
|
-
else if (this._obj2 instanceof GuiMgForm) {
|
|
153
|
-
let guiMgForm = this._obj2;
|
|
154
|
-
this.TaskTag = guiMgForm.TaskTag;
|
|
155
|
-
}
|
|
156
|
-
else
|
|
157
|
-
this.TaskTag = '0';
|
|
158
|
-
UIBridge.getInstance().ExecuteInteractiveCommand(this);
|
|
159
|
-
}
|
|
160
|
-
onGetRowsInPage() {
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
export class GuiInteractive extends GuiInteractiveBase {
|
|
164
|
-
}
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3VpSW50ZXJhY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL2d1aS9sb3cvR3VpSW50ZXJhY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsTUFBTSxDQUFOLElBQVksc0JBZVg7QUFmRCxXQUFZLHNCQUFzQjtJQUNoQyw2RUFBUyxDQUFBO0lBQ1QscUZBQWEsQ0FBQTtJQUNiLGlGQUFXLENBQUE7SUFDWCw2RUFBUyxDQUFBO0lBQ1QscUZBQWEsQ0FBQTtJQUNiLDJGQUFnQixDQUFBO0lBQ2hCLHFGQUFhLENBQUE7SUFDYixtRkFBWSxDQUFBO0lBQ1osMkZBQWdCLENBQUE7SUFDaEIscUtBQXFELENBQUE7SUFDckQsZ0dBQWtCLENBQUE7SUFDbEIsMEhBQStCLENBQUE7SUFDL0IsMEVBQU8sQ0FBQTtJQUNQLHdGQUFjLENBQUE7QUFDaEIsQ0FBQyxFQWZXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFlakM7QUFHRCxNQUFNLE9BQWdCLGtCQUFrQjtJQW1CdEM7UUFsQkEsaUJBQVksR0FBMkIsQ0FBQyxDQUFDO1FBQ3pDLFlBQU8sR0FBVyxJQUFJLENBQUM7UUFDdkIsZ0JBQVcsR0FBVyxJQUFJLENBQUM7UUFFM0IsU0FBSSxHQUFXLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsYUFB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RCxNQUFNLE9BQU8sY0FBZSxTQUFRLGtCQUFrQjtDQUVyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7R3VpTWdDb250cm9sfSBmcm9tICcuLi9HdWlNZ0NvbnRyb2wnO1xyXG5pbXBvcnQge01nVmFsdWV9IGZyb20gJy4uL01nVmFsdWUnO1xyXG5pbXBvcnQge0d1aU1nRm9ybX0gZnJvbSAnLi4vR3VpTWdGb3JtJztcclxuaW1wb3J0IHtFdmVudHN9IGZyb20gJy4uLy4uL0V2ZW50cyc7XHJcbmltcG9ydCB7VUlCcmlkZ2V9IGZyb20gJy4uLy4uL1VJQnJpZGdlJztcclxuaW1wb3J0IHtDb250cm9sQmFzZX0gZnJvbSAnLi4vQ29udHJvbEJhc2UnO1xyXG5pbXBvcnQge0d1aUNvbW1hbmRRdWV1ZX0gZnJvbSAnLi9HdWlDb21tYW5kUXVldWUnO1xyXG5cclxuZXhwb3J0IGVudW0gSW50ZXJhY3RpdmVDb21tYW5kVHlwZSB7XHJcbiAgR0VUX1ZBTFVFLFxyXG4gIEdFVF9UT1BfSU5ERVgsXHJcbiAgTUVTU0FHRV9CT1gsXHJcbiAgU0VUX1RJVExFLFxyXG4gIFNFVF9FRElUX1RFWFQsXHJcbiAgSU5TRVJUX0VESVRfVEVYVCxcclxuICBHRVRfQ0FSRVRfUE9TLFxyXG4gIFJFRlJFU0hfUEFHRSxcclxuICBHRVRfUk9XU19JTl9QQUdFLFxyXG4gIFNFVF9HRVRfU1VHR0VTVEVEX1ZBTFVFX0ZPUl9DSE9JQ0VfQ09OVFJPTF9PTl9UQUdEQVRBLFxyXG4gIEdFVF9JU19ST1dfRURJVElORyxcclxuICBHRVRfTUFYX1JPV1NfSU5fUEFHSU5BVEVEX1RBQkxFLFxyXG4gIENBTExfSlMsXHJcbiAgR0VUX0xBU1RfUk9VVEVcclxufVxyXG5cclxuLy8vIDxzdW1tYXJ5PiBHdWlVdGlscyBjbGFzcyBwcm92aWRlcyBtZXRob2RzIGZvciByZXRyaWV2aW5nIGluZm9ybWF0aW9uIGZyb20gdGhlIEdVSSBsYXllcjwvc3VtbWFyeT5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEd1aUludGVyYWN0aXZlQmFzZSB7XHJcbiAgX2NvbW1hbmRUeXBlOiBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlID0gMDtcclxuICBUYXNrVGFnOiBzdHJpbmcgPSBudWxsO1xyXG4gIGNvbnRyb2xOYW1lOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICBfc3RyOiBzdHJpbmcgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDApO1xyXG4gIF9pbnRWYWwxOiBudW1iZXIgPSAwO1xyXG4gIF9saW5lOiBudW1iZXIgPSAwO1xyXG4gIF9vYmoxOiBhbnkgPSBudWxsO1xyXG4gIF9wYXJhbWV0ZXJzOiBhbnlbXSA9IG51bGw7XHJcbiAgX2Jvb2xWYWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBfb2JqMjogYW55ID0gbnVsbDtcclxuICBfbWdWYWx1ZTogTWdWYWx1ZSA9IG51bGw7XHJcbiAgYXJndW1lbnRzIDogQXJyYXk8YW55PiA7XHJcbiAgcmVzdWx0U3RyaW5nIDogc3RyaW5nID0gU3RyaW5nLmZyb21DaGFyQ29kZSgwKTtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBDb25zdHJ1Y3RvciA6IHNldHMgdGhlIGNvbnRleHRJRCBmb3IgdGhlIGN1cnJlbnQgY29tbWFuZC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBUaGlzIG1ldGhvZGUgaXMgc2V0IFRSVUVcXEZBTFNFIHRoYXQgR3VpVXRpbGVzXFxHZXRWYWx1ZSgpIG1ldGhvZCB3aWxsIGJlIHVzZVxyXG4gIC8vLyB0aGlzIGZhbGcgc2F5IGlmIHRvIHJldHVybiB0aGUgOiAodHJ1ZSkgc3VnZ2VzdGVkIHZhbHVlIG9yIChmYWxzZSl0aGUgcmVhbCB2YWx1ZVxyXG4gIC8vLyB0aGlzIG1ldGhvZCBpcyB1c2UgZm9yIE1HX0FDVF9DVFJMX01PRElGWVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiY3RybFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwicmV0U3VnZ2VzdGVkVmFsdWVcIj48L3BhcmFtPlxyXG4gIHNldEdldFN1Z2dlc3RlZFZhbHVlT2ZDaG9pY2VDb250cm9sT25UYWdEYXRhKGN0cmw6IEd1aU1nQ29udHJvbCwgbGluZTogbnVtYmVyLCByZXRTdWdnZXN0ZWRWYWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5fY29tbWFuZFR5cGUgPSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLlNFVF9HRVRfU1VHR0VTVEVEX1ZBTFVFX0ZPUl9DSE9JQ0VfQ09OVFJPTF9PTl9UQUdEQVRBO1xyXG4gICAgdGhpcy5fb2JqMiA9IGN0cmw7XHJcbiAgICB0aGlzLl9saW5lID0gbGluZTtcclxuICAgIHRoaXMuX2Jvb2xWYWwgPSByZXRTdWdnZXN0ZWRWYWx1ZTtcclxuICAgIHRoaXMuSW52b2tlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBHZXQgdmFsdWUgb2YgdGhlIGNvbnRyb2w8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwib2JqZWN0XCI+YSByZWZlcmVuY2UgdG8gdGhlIHJlbGV2YW50IG9iamVjdDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwicmVjdFwiPmEgcmVmZXJlbmNlIHRvIHRoZSBvYmplY3QgdGhhdCBvbiByZXR1cm4gd2lsbCBjb250YWluIHRoZSByZXF1ZXN0ZWQgdmFsdWVzIG9uIHN0cmluZzwvcGFyYW0+XHJcbiAgZ2V0VmFsdWUob2JqOiBhbnksIGxpbmU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICB0aGlzLl9jb21tYW5kVHlwZSA9IEludGVyYWN0aXZlQ29tbWFuZFR5cGUuR0VUX1ZBTFVFO1xyXG4gICAgdGhpcy5fb2JqMiA9IG9iajtcclxuXHJcbiAgICB0aGlzLl9saW5lID0gbGluZTtcclxuICAgIHRoaXMuX21nVmFsdWUgPSBuZXcgTWdWYWx1ZSgpO1xyXG4gICAgdGhpcy5JbnZva2UoKTtcclxuICAgIHJldHVybiB0aGlzLl9tZ1ZhbHVlLm9iajtcclxuICB9XHJcblxyXG5cclxuICBnZXRUb3BJbmRleCh0YWJsZWNvbnRyb2w6IEd1aU1nQ29udHJvbCk6IG51bWJlciB7XHJcbiAgICB0aGlzLl9jb21tYW5kVHlwZSA9IEludGVyYWN0aXZlQ29tbWFuZFR5cGUuR0VUX1RPUF9JTkRFWDtcclxuICAgIHRoaXMuX29iajIgPSB0YWJsZWNvbnRyb2w7XHJcbiAgICB0aGlzLkludm9rZSgpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2ludFZhbDE7XHJcbiAgfVxyXG5cclxuICBnZXRJc1Jvd0VkaXRpbmcodGFibGVjb250cm9sOiBHdWlNZ0NvbnRyb2wsIGxpbmU6IG51bWJlciwgaXNMaW5lTW9kZTogYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgdGhpcy5fY29tbWFuZFR5cGUgPSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkdFVF9JU19ST1dfRURJVElORztcclxuICAgIHRoaXMuX29iajIgPSB0YWJsZWNvbnRyb2w7XHJcbiAgICB0aGlzLl9pbnRWYWwxID0gbGluZTtcclxuICAgIHRoaXMuX2Jvb2xWYWwgPSBpc0xpbmVNb2RlO1xyXG5cclxuICAgIHRoaXMuSW52b2tlKCk7XHJcbiAgICByZXR1cm4gdGhpcy5fYm9vbFZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5PcGVuIG1lc3NhZ2UgYm94IHdpdGggcGFyZW50IGZvcm08L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidGl0bGVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIm1zZ1wiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic3R5bGVcIj50aGUgc3R5bGUgb2YgdGhlIG1lc3NhZ2UgYm94IGNhbiBiZSBmbGFncyBvZiBTdHlsZXMuTVNHQk9YX3h4eCA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gbWVzc2FnZSBib3ggc3R5bGUgZnJvbSBTdHlsZXMuTVNHQk9YX1hYWDwvcmV0dXJucz5cclxuICBtZXNzYWdlQm94KHRpdGxlOiBzdHJpbmcsIG1zZzogc3RyaW5nLCBzdHlsZTogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIHRoaXMuX2NvbW1hbmRUeXBlID0gSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5NRVNTQUdFX0JPWDtcclxuICAgIHRoaXMuX21nVmFsdWUgPSBuZXcgTWdWYWx1ZSgpO1xyXG4gICAgdGhpcy5fbWdWYWx1ZS50aXRsZSA9IHRpdGxlO1xyXG4gICAgdGhpcy5fbWdWYWx1ZS5zdHIgPSAoKG1zZyA9PT0gbnVsbCkgPyAnJyA6IG1zZyk7XHJcbiAgICB0aGlzLl9tZ1ZhbHVlLnN0eWxlID0gc3R5bGU7XHJcbiAgICBFdmVudHMuUmVmcmVzaFRhYmxlcygpO1xyXG4gICAgdGhpcy5JbnZva2UoKTtcclxuICAgIHJldHVybiB0aGlzLl9tZ1ZhbHVlLm51bWJlcjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5zZXQgdGl0bGUgdG8gYnJvd3Nlcjwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0b3BNb3N0Rm9ybVwiPnRoZSBwYXJlbnQgZm9ybSBvZiB0aGUgbWVzc2FnZSBib3g8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInRpdGxlXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IG1lc3NhZ2UgYm94IHN0eWxlIGZyb20gU3R5bGVzLk1TR0JPWF9YWFg8L3JldHVybnM+XHJcbiAgc2V0VGl0bGUodG9wTW9zdEZvcm06IEd1aU1nRm9ybSwgdGl0bGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fY29tbWFuZFR5cGUgPSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLlNFVF9USVRMRTtcclxuICAgIHRoaXMuX21nVmFsdWUgPSBuZXcgTWdWYWx1ZSgpO1xyXG4gICAgdGhpcy5fb2JqMiA9IHRvcE1vc3RGb3JtO1xyXG4gICAgdGhpcy5fbWdWYWx1ZS50aXRsZSA9ICgodGl0bGUgPT09IG51bGwpID8gJycgOiB0aXRsZSk7XHJcbiAgICB0aGlzLkludm9rZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBzZXQgdGhlIHRleHQgdG8gdGhlIHRoZSBjb250cm9sXHJcbiAgLy8vXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjb250cm9sXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJsaW5lXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0ZXh0XCI+PC9wYXJhbT5cclxuICBzZXRFZGl0VGV4dChjb250cm9sOiBHdWlNZ0NvbnRyb2wsIGxpbmU6IG51bWJlciwgdGV4dDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICB0aGlzLl9jb21tYW5kVHlwZSA9IEludGVyYWN0aXZlQ29tbWFuZFR5cGUuU0VUX0VESVRfVEVYVDtcclxuICAgIHRoaXMuX29iajIgPSBjb250cm9sO1xyXG4gICAgdGhpcy5fbGluZSA9IGxpbmU7XHJcbiAgICB0aGlzLl9tZ1ZhbHVlID0gbmV3IE1nVmFsdWUoKTtcclxuICAgIHRoaXMuX21nVmFsdWUuc3RyID0gdGV4dDtcclxuXHJcbiAgICB0aGlzLkludm9rZSgpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9tZ1ZhbHVlLmJvb2xWYWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IGluc2VydCB0aGUgdGV4dCB0byB0aGUgdGhlIGNvbnRyb2wgYXQgdGhlIGdpdmVuIHBvc2l0aW9uXHJcbiAgLy8vXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjb250cm9sXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJsaW5lXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0ZXh0XCI+PC9wYXJhbT5cclxuICBpbnNlcnRFZGl0VGV4dChjb250cm9sOiBHdWlNZ0NvbnRyb2wsIGxpbmU6IG51bWJlciwgc3RhcnRQb3NpdGlvbjogbnVtYmVyLCB0ZXh0VG9JbnNlcnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgdGhpcy5fY29tbWFuZFR5cGUgPSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLklOU0VSVF9FRElUX1RFWFQ7XHJcbiAgICB0aGlzLl9vYmoyID0gY29udHJvbDtcclxuICAgIHRoaXMuX2xpbmUgPSBsaW5lO1xyXG4gICAgdGhpcy5fbWdWYWx1ZSA9IG5ldyBNZ1ZhbHVlKCk7XHJcbiAgICB0aGlzLl9tZ1ZhbHVlLnN0ciA9IHRleHRUb0luc2VydDtcclxuICAgIHRoaXMuX2ludFZhbDEgPSBzdGFydFBvc2l0aW9uO1xyXG5cclxuICAgIHRoaXMuSW52b2tlKCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX21nVmFsdWUuYm9vbFZhbDtcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGdldCB0aGUgcG9zaXRpb24gb2YgdGhlIGNhcmV0IG9uIHRoZSBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjb250cm9sXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJsaW5lXCI+PC9wYXJhbT5cclxuICBjYXJldFBvc0dldChjb250cm9sOiBHdWlNZ0NvbnRyb2wsIGxpbmU6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICB0aGlzLl9jb21tYW5kVHlwZSA9IEludGVyYWN0aXZlQ29tbWFuZFR5cGUuR0VUX0NBUkVUX1BPUztcclxuICAgIHRoaXMuX29iajIgPSBjb250cm9sO1xyXG4gICAgdGhpcy5fbGluZSA9IGxpbmU7XHJcblxyXG4gICAgdGhpcy5fbWdWYWx1ZSA9IG5ldyBNZ1ZhbHVlKCk7XHJcbiAgICB0aGlzLkludm9rZSgpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9tZ1ZhbHVlLm51bWJlcjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gcmVmcmVzaCBwYWdlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBSZWZyZXNoUGFnZShuYXZpZ2F0ZVRvUm9vdFJvdXRlOiBib29sZWFuLCBpbml0aWFsVXJsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2NvbW1hbmRUeXBlID0gSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5SRUZSRVNIX1BBR0U7XHJcbiAgICB0aGlzLl9ib29sVmFsID0gbmF2aWdhdGVUb1Jvb3RSb3V0ZTtcclxuICAgIHRoaXMuX29iajEgPSBpbml0aWFsVXJsO1xyXG4gICAgdGhpcy5JbnZva2UoKTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiByZXR1cm4gbnVtYmVyIG9mIHJvd3MgaW4gdGhlIHRhYmxlPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImNvbnRyb2xcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgZ2V0Um93c0luUGFnZShjb250cm9sOiBHdWlNZ0NvbnRyb2wpOiBudW1iZXIge1xyXG4gICAgdGhpcy5fY29tbWFuZFR5cGUgPSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkdFVF9ST1dTX0lOX1BBR0U7XHJcbiAgICB0aGlzLl9vYmoyID0gY29udHJvbDtcclxuICAgIHRoaXMuSW52b2tlKCk7XHJcbiAgICByZXR1cm4gdGhpcy5faW50VmFsMTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gcmV0dXJuIG51bWJlciBvZiByb3dzIGluIHRoZSB0YWJsZTwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjb250cm9sXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIGdldE1heFJvd3NJblBhZ2luYXRlZFRhYmxlKGNvbnRyb2w6IEd1aU1nQ29udHJvbCk6IG51bWJlciB7XHJcbiAgICB0aGlzLl9jb21tYW5kVHlwZSA9IEludGVyYWN0aXZlQ29tbWFuZFR5cGUuR0VUX01BWF9ST1dTX0lOX1BBR0lOQVRFRF9UQUJMRTtcclxuICAgIHRoaXMuX29iajIgPSBjb250cm9sO1xyXG4gICAgdGhpcy5JbnZva2UoKTtcclxuICAgIHJldHVybiB0aGlzLl9pbnRWYWwxO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBHZXQgdGhlIGxhc3Qgcm91dGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldExhc3RSb3V0ZSgpOiBzdHJpbmcge1xyXG4gICAgdGhpcy5fY29tbWFuZFR5cGUgPSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkdFVF9MQVNUX1JPVVRFO1xyXG4gICAgdGhpcy5JbnZva2UoKTtcclxuICAgIHJldHVybiB0aGlzLnJlc3VsdFN0cmluZztcclxuICB9XHJcblxyXG5cclxuXHJcbiAgRXhlY3V0ZUNhbGxKUyhmb3JtICwgZm9ybU5hbWU6IHN0cmluZywgIGZ1bmN0aW9uTmFtZTogc3RyaW5nLCBhcmdzOiBBcnJheTxhbnk+KTogc3RyaW5nIHtcclxuICAgIHRoaXMuX2NvbW1hbmRUeXBlID0gSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5DQUxMX0pTO1xyXG4gICAgdGhpcy5fb2JqMiA9IGZvcm07XHJcbiAgICB0aGlzLmNvbnRyb2xOYW1lID0gZm9ybU5hbWU7XHJcbiAgICB0aGlzLl9zdHIgPSBmdW5jdGlvbk5hbWU7XHJcbiAgICB0aGlzLmFyZ3VtZW50cyA9IGFyZ3M7XHJcbiAgICB0aGlzLkludm9rZSgpO1xyXG4gICAgcmV0dXJuIHRoaXMucmVzdWx0U3RyaW5nO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBDYWxscyBSdW4oKSBzeW5jaHJvbm91c2x5IHRvIGV4ZWN1dGUgdGhlIGNvbW1hbmQuXHJcbiAgLy8vIEJ1dCBiZWZvcmUgdGhhdCwgaXQgZXhlY3V0ZXMgdGhlIEd1aUNvbW1hbmRRdWV1ZS5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByaXZhdGUgSW52b2tlKCk6IHZvaWQge1xyXG4gICAgR3VpQ29tbWFuZFF1ZXVlLmdldEluc3RhbmNlKCkuaW52b2tlKCk7XHJcbiAgICBpZiAodGhpcy5fb2JqMiBpbnN0YW5jZW9mIENvbnRyb2xCYXNlKSB7XHJcbiAgICAgIGxldCBjb250cm9sQmFzZTogQ29udHJvbEJhc2UgPSA8Q29udHJvbEJhc2U+dGhpcy5fb2JqMjtcclxuICAgICAgdGhpcy5UYXNrVGFnID0gY29udHJvbEJhc2UuVGFza1RhZztcclxuICAgICAgdGhpcy5jb250cm9sTmFtZSA9IGNvbnRyb2xCYXNlLlVuaXF1ZU5hbWU7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuX29iajIgaW5zdGFuY2VvZiBHdWlNZ0Zvcm0pIHtcclxuICAgICAgbGV0IGd1aU1nRm9ybTogR3VpTWdGb3JtID0gPEd1aU1nRm9ybT50aGlzLl9vYmoyO1xyXG4gICAgICB0aGlzLlRhc2tUYWcgPSBndWlNZ0Zvcm0uVGFza1RhZztcclxuICAgIH0gZWxzZVxyXG4gICAgICB0aGlzLlRhc2tUYWcgPSAnMCc7IC8vIGdlbmVyYWwgY29tbWFuZFxyXG5cclxuICAgIFVJQnJpZGdlLmdldEluc3RhbmNlKCkuRXhlY3V0ZUludGVyYWN0aXZlQ29tbWFuZCh0aGlzKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gaW1wbGVtZW50cyB0aGUgUnVubmFibGUgcnVuIG1ldGhvZCBmb3IgY2FsbGluZyBEaXNwbGF5LnN5bmNFeGVjKCk8L3N1bW1hcnk+XHJcbiAgLy8gUnVuKCk6IHZvaWQge1xyXG4gIC8vICAgLy8gU2V0cyB0aGUgY3VycmVudENvbnRleHRJRFxyXG4gIC8vICAgbGV0IGNvbnRleHRJREd1YXJkID0gbmV3IENvbnRleHRJREd1YXJkKHRoaXMuX2NvbnRleHRJRCk7XHJcbiAgLy8gICB0cnkge1xyXG4gIC8vICAgICBzd2l0Y2ggKHRoaXMuX2NvbW1hbmRUeXBlKSB7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkdFVF9GT05UX01FVFJJQ1M6XHJcbiAgLy8gICAgICAgICB0aGlzLm9uR2V0Rm9udE1ldHJpY3MoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5HRVRfUkVTT0xVVElPTjpcclxuICAvLyAgICAgICAgIHRoaXMub25HZXRSZXNvbHV0aW9uKCk7XHJcbiAgLy8gICAgICAgICBicmVhaztcclxuICAvLyAgICAgICBjYXNlIEludGVyYWN0aXZlQ29tbWFuZFR5cGUuR0VUX0JPVU5EUzpcclxuICAvLyAgICAgICAgIHRoaXMub25Cb3VuZHMoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5HRVRfVkFMVUU6XHJcbiAgLy8gICAgICAgICB0aGlzLm9uVmFsdWUoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5TRVRfQlJPV1NFUl9URVhUOlxyXG4gIC8vICAgICAgICAgdGhpcy5vblNldEJyb3dzZXJUZXh0KCk7XHJcbiAgLy8gICAgICAgICBicmVhaztcclxuICAvLyAgICAgICBjYXNlIEludGVyYWN0aXZlQ29tbWFuZFR5cGUuR0VUX0JST1dTRVJfVEVYVDpcclxuICAvLyAgICAgICAgIHRoaXMub25HZXRCcm93c2VyVGV4dCgpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkJST1dTRVJfRVhFQ1VURTpcclxuICAvLyAgICAgICAgIHRoaXMub25Ccm93c2VyRXhlY3V0ZSgpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkdFVF9UT1BfSU5ERVg6XHJcbiAgLy8gICAgICAgICB0aGlzLm9uR2V0VG9wSW5kZXgoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5NRVNTQUdFX0JPWDpcclxuICAvLyAgICAgICAgIHRoaXMub25NZXNzYWdlQm94KCk7XHJcbiAgLy8gICAgICAgICBicmVhaztcclxuICAvLyAgICAgICBjYXNlIEludGVyYWN0aXZlQ29tbWFuZFR5cGUuRElSRUNUT1JZX0RJQUxPR19CT1g6XHJcbiAgLy8gICAgICAgICB0aGlzLm9uRGlyZWN0b3J5RGlhbG9nQm94KCk7XHJcbiAgLy8gICAgICAgICBicmVhaztcclxuICAvLyAgICAgICBjYXNlIEludGVyYWN0aXZlQ29tbWFuZFR5cGUuR0VUX0NMSUVOVF9CT1VORFM6XHJcbiAgLy8gICAgICAgICB0aGlzLmdldENsaWVudEJvdW5kcygpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLlNFVF9FRElUX1RFWFQ6XHJcbiAgLy8gICAgICAgICB0aGlzLm9uU2V0RWRpdFRleHQoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5JTlNFUlRfRURJVF9URVhUOlxyXG4gIC8vICAgICAgICAgdGhpcy5vbkluc2VydEVkaXRUZXh0KCk7XHJcbiAgLy8gICAgICAgICBicmVhaztcclxuICAvLyAgICAgICBjYXNlIEludGVyYWN0aXZlQ29tbWFuZFR5cGUuU0VUX1NFTEVDVElPTjpcclxuICAvLyAgICAgICAgIHRoaXMub25TZXRTZWxlY3Rpb24oKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5HRVRfU0VMRUNUSU9OOlxyXG4gIC8vICAgICAgICAgdGhpcy5vblNlbGVjdGlvbkdldCgpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkdFVF9DQVJFVF9QT1M6XHJcbiAgLy8gICAgICAgICB0aGlzLm9uQ2FyZXRQb3NHZXQoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5HRVRfSVNfVE9QX09GX1RFWFRCT1g6XHJcbiAgLy8gICAgICAgICB0aGlzLm9uR2V0SXNUb3BPZlRleHRCb3goKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5HRVRfSVNfRU5EX09GX1RFWFRCT1g6XHJcbiAgLy8gICAgICAgICB0aGlzLm9uR2V0SXNFbmRPZlRleHRCb3goKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5DTElQQk9BUkRfR0VUX0NPTlRFTlQ6XHJcbiAgLy8gICAgICAgICB0aGlzLm9uQ2xpcGJvYXJkUmVhZCgpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkNMSVBCT0FSRF9TRVRfQ09OVEVOVDpcclxuICAvLyAgICAgICAgIHRoaXMub25DbGlwYm9hcmRXcml0ZSgpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkNMSVBCT0FSRF9QQVNURTpcclxuICAvLyAgICAgICAgIHRoaXMub25DbGlwYm9hcmRQYXN0ZSgpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLlBPU1RfS0VZX0VWRU5UOlxyXG4gIC8vICAgICAgICAgdGhpcy5vblBvc3RLZXlFdmVudCgpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLlBPU1RfQ0hBUl9FVkVOVDpcclxuICAvLyAgICAgICAgIHRoaXMub25Qb3N0Q2hhckV2ZW50KCk7XHJcbiAgLy8gICAgICAgICBicmVhaztcclxuICAvLyAgICAgICBjYXNlIEludGVyYWN0aXZlQ29tbWFuZFR5cGUuU0VUX0NVUlNPUjpcclxuICAvLyAgICAgICAgIHRoaXMub25TZXRDdXJzb3IoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5ESVNQT1NFX0FMTF9GT1JNUzpcclxuICAvLyAgICAgICAgIHRoaXMub25EaXNwb3NlQWxsRm9ybXMoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5HRVRfUk9XU19JTl9QQUdFOlxyXG4gIC8vICAgICAgICAgdGhpcy5vbkdldFJvd3NJblBhZ2UoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5HRVRfSElEREVOX1JPV1NfQ09VTlRfSU5fVEFCTEU6XHJcbiAgLy8gICAgICAgICB0aGlzLm9uR2V0SGlkZGVuUm93c0NvdW50SW5UYWJsZSgpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkZJTEVfT1BFTl9ESUFMT0dfQk9YOlxyXG4gIC8vICAgICAgICAgdGhpcy5vbkZpbGVPcGVuRGlhbG9nQm94KCk7XHJcbiAgLy8gICAgICAgICBicmVhaztcclxuICAvLyAgICAgICBjYXNlIEludGVyYWN0aXZlQ29tbWFuZFR5cGUuRklMRV9TQVZFX0RJQUxPR19CT1g6XHJcbiAgLy8gICAgICAgICB0aGlzLm9uRmlsZVNhdmVEaWFsb2dCb3goKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5DUkVBVEVfRElBTE9HOlxyXG4gIC8vICAgICAgICAgdGhpcy5vbkNyZWF0ZURpYWxvZygpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLk9QRU5fRElBTE9HOlxyXG4gIC8vICAgICAgICAgdGhpcy5vbk9wZW5EaWFsb2coKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5DTE9TRV9ESUFMT0c6XHJcbiAgLy8gICAgICAgICB0aGlzLm9uQ2xvc2VEaWFsb2coKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5TRVRfR0VUX1NVR0dFU1RFRF9WQUxVRV9GT1JfQ0hPSUNFX0NPTlRST0xfT05fVEFHREFUQTpcclxuICAvLyAgICAgICAgIHRoaXMuT25TZXRHZXRTdWdnZXN0ZWRWYWx1ZU9mQ2hvaWNlQ29udHJvbE9uVGFnRGF0YSgpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkdFVF9MQVNUX1dJTkRPV19TVEFURTpcclxuICAvLyAgICAgICAgIHRoaXMub25HZXRMYXN0V2luZG93U3RhdGUoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5HRVRfRlJBTUVTX0JPVU5EUzpcclxuICAvLyAgICAgICAgIHRoaXMub25HZXRGcmFtZXNCb3VuZHMoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5HRVRfTElOS0VEX1BBUkVOVF9JRFg6XHJcbiAgLy8gICAgICAgICB0aGlzLm9uR2V0TGlua2VkUGFyZW50SWR4KCk7XHJcbiAgLy8gICAgICAgICBicmVhaztcclxuICAvLyAgICAgICBjYXNlIEludGVyYWN0aXZlQ29tbWFuZFR5cGUuR0VUX0ZPUk1fQk9VTkRTOlxyXG4gIC8vICAgICAgICAgdGhpcy5vbkdldEZvcm1Cb3VuZHMoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5HRVRfQ09MVU1OU19TVEFURTpcclxuICAvLyAgICAgICAgIHRoaXMub25HZXRDb2x1bW5zU3RhdGUoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5HRVRfRk9STV9IQU5ETEU6XHJcbiAgLy8gICAgICAgICB0aGlzLm9uR2V0Rm9ybUhhbmRsZSgpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkdFVF9DVFJMX0hBTkRMRTpcclxuICAvLyAgICAgICAgIHRoaXMub25HZXRDdHJsSGFuZGxlKCk7XHJcbiAgLy8gICAgICAgICBicmVhaztcclxuICAvLyAgICAgICBjYXNlIEludGVyYWN0aXZlQ29tbWFuZFR5cGUuSVNfRk9STV9BQ1RJVkU6XHJcbiAgLy8gICAgICAgICB0aGlzLmlzRm9ybUFjdGl2ZSgpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkdFVF9EUk9QUEVEX0RBVEE6XHJcbiAgLy8gICAgICAgICB0aGlzLm9uR2V0RHJvcHBlZERhdGEoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5HRVRfRFJPUFBFRF9QT0lOVDpcclxuICAvLyAgICAgICAgIHRoaXMub25HZXREcm9wcGVkUG9pbnQoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5HRVRfRFJPUFBFRF9TRUxFQ1RJT046XHJcbiAgLy8gICAgICAgICB0aGlzLm9uR2V0RHJvcHBlZFNlbGVjdGlvbigpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkRST1BfRk9STUFUX1NVUFBPUlRFRDpcclxuICAvLyAgICAgICAgIHRoaXMub25DaGVja0Ryb3BGb3JtYXRQcmVzZW50KCk7XHJcbiAgLy8gICAgICAgICBicmVhaztcclxuICAvLyAgICAgICBjYXNlIEludGVyYWN0aXZlQ29tbWFuZFR5cGUuR0VUX0lTX0JFR0lOX0RSQUc6XHJcbiAgLy8gICAgICAgICB0aGlzLm9uR2V0SXNCZWdpbkRyYWcoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5BQ1RJVkFURV9ORVhUX09SX1BSRVZJT1VTX01ESV9DSElMRDpcclxuICAvLyAgICAgICAgIHRoaXMuT25BY3RpdmF0ZU5leHRPclByZXZpb3VzTURJQ2hpbGQoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5TRU5EX0lNRV9NU0c6XHJcbiAgLy8gICAgICAgICB0aGlzLm9uU2VuZEltZU1zZygpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkNBTl9GT0NVUzpcclxuICAvLyAgICAgICAgIHRoaXMub25DYW5Gb2N1cygpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkdFVF9TRUxFQ1RFRF9JTkRJQ0U6XHJcbiAgLy8gICAgICAgICB0aGlzLk9uR2V0U2VsZWN0ZWRJbmRpY2UoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5TRVRfU1VHR0VTVEVEX1ZBTFVFOlxyXG4gIC8vICAgICAgICAgdGhpcy5vblNldFN1Z2dlc3RlZFZhbHVlKCk7XHJcbiAgLy8gICAgICAgICBicmVhaztcclxuICAvLyAgICAgICBjYXNlIEludGVyYWN0aXZlQ29tbWFuZFR5cGUuTUFQX1dJREdFVF9UT19HVUlfT0JKRUNUOlxyXG4gIC8vICAgICAgICAgdGhpcy5NYXBXaWRnZXQoKTtcclxuICAvLyAgICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICAgIGNhc2UgSW50ZXJhY3RpdmVDb21tYW5kVHlwZS5SRU1PVkVfRE5fQ09OVFJPTF9WQUxVRV9DSEFOR0VEX0hBTkRMRVI6XHJcbiAgLy8gICAgICAgICB0aGlzLk9uUmVtb3ZlRE5Db250cm9sVmFsdWVDaGFuZ2VkSGFuZGxlcigpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkFERF9ETl9DT05UUk9MX1ZBTFVFX0NIQU5HRURfSEFORExFUjpcclxuICAvLyAgICAgICAgIHRoaXMuT25BZGRETkNvbnRyb2xWYWx1ZUNoYW5nZWRIYW5kbGVyKCk7XHJcbiAgLy8gICAgICAgICBicmVhaztcclxuICAvLyAgICAgICBjYXNlIEludGVyYWN0aXZlQ29tbWFuZFR5cGUuR0VUX1JURl9WQUxVRV9CRUZPUkVfRU5URVJJTkdfQ09OVFJPTDpcclxuICAvLyAgICAgICAgIHRoaXMuT25HZXRSdGZWYWx1ZUJlZm9yZUVudGVyaW5nQ29udHJvbCgpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkdFVF9NRElfQ0hJTERfQ09VTlQ6XHJcbiAgLy8gICAgICAgICB0aGlzLk9uR2V0TURJQ2hpbGRDb3VudCgpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkFDVElWQVRFX0ZPUk06XHJcbiAgLy8gICAgICAgICB0aGlzLk9uQWN0aXZhdGVGb3JtKCk7XHJcbiAgLy8gICAgICAgICBicmVhaztcclxuICAvLyAgICAgICBjYXNlIEludGVyYWN0aXZlQ29tbWFuZFR5cGUuRU5BQkxFX01FTlVfRU5UUlk6XHJcbiAgLy8gICAgICAgICB0aGlzLk9uRW5hYmxlTWVudUVudHJ5KCk7XHJcbiAgLy8gICAgICAgICBicmVhaztcclxuICAvLyAgICAgICBjYXNlIEludGVyYWN0aXZlQ29tbWFuZFR5cGUuU0hPV19DT05URVhUX01FTlU6XHJcbiAgLy8gICAgICAgICB0aGlzLk9uU2hvd0NvbnRleHRNZW51KCk7XHJcbiAgLy8gICAgICAgICBicmVhaztcclxuICAvLyAgICAgICBjYXNlIEludGVyYWN0aXZlQ29tbWFuZFR5cGUuSVNfQ09NQk9fRFJPUFBFRF9ET1dOOlxyXG4gIC8vICAgICAgICAgdGhpcy5PbklzQ29tYm9Ecm9wcGVkRG93bmRTdGF0ZSgpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLklOVk9LRV9VRFBDT01NQU5EOlxyXG4gIC8vICAgICAgICAgdGhpcy5vbkludm9rZVVEUCgpO1xyXG4gIC8vICAgICAgICAgYnJlYWs7XHJcbiAgLy8gICAgICAgY2FzZSBJbnRlcmFjdGl2ZUNvbW1hbmRUeXBlLkdFVF9IQVNJTkRFTlQ6XHJcbiAgLy8gICAgICAgICB0aGlzLk9uR2V0SGFzSW5kZW50KCk7XHJcbiAgLy8gICAgICAgICBicmVhaztcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfVxyXG4gIC8vICAgY2F0Y2ggKGV4KSB7XHJcbiAgLy8gICAgIGlmIChleCBpbnN0YW5jZW9mIEV4Y2VwdGlvbikge1xyXG4gIC8vICAgICAgIEV2ZW50cy5Xcml0ZUV4Y2VwdGlvblRvTG9nKGV4KTtcclxuICAvLyAgICAgICB0aHJvdyBleDtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgICBlbHNlXHJcbiAgLy8gICAgICAgdGhyb3cgZXg7IC8vIFJlc2V0IHRoZSBjdXJyZW50IGNvbnRleHRJRC5cclxuICAvLyAgIH1cclxuICAvLyAgIGZpbmFsbHkge1xyXG4gIC8vICAgICBjb250ZXh0SURHdWFyZC5EaXNwb3NlKCk7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG5cclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gZ2V0IG51bWJlciBvZiByb3dzIGluIHRoZSB0YWJsZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgb25HZXRSb3dzSW5QYWdlKCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBHdWlJbnRlcmFjdGl2ZSBleHRlbmRzIEd1aUludGVyYWN0aXZlQmFzZSB7XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export class Styles {
|
|
2
|
-
}
|
|
3
|
-
Styles.MSGBOX_BUTTON_OK = 0x00000000;
|
|
4
|
-
Styles.MSGBOX_BUTTON_OK_CANCEL = 0x00000001;
|
|
5
|
-
Styles.MSGBOX_BUTTON_ABORT_RETRY_IGNORE = 0x00000002;
|
|
6
|
-
Styles.MSGBOX_BUTTON_YES_NO_CANCEL = 0x00000003;
|
|
7
|
-
Styles.MSGBOX_BUTTON_YES_NO = 0x00000004;
|
|
8
|
-
Styles.MSGBOX_BUTTON_RETRY_CANCEL = 0x00000005;
|
|
9
|
-
Styles.MSGBOX_ICON_ERROR = 0x00000010;
|
|
10
|
-
Styles.MSGBOX_ICON_QUESTION = 0x00000020;
|
|
11
|
-
Styles.MSGBOX_ICON_EXCLAMATION = 0x00000030;
|
|
12
|
-
Styles.MSGBOX_ICON_INFORMATION = 0x00000040;
|
|
13
|
-
Styles.MSGBOX_ICON_WARNING = Styles.MSGBOX_ICON_EXCLAMATION;
|
|
14
|
-
Styles.MSGBOX_RESULT_OK = 1;
|
|
15
|
-
Styles.MSGBOX_RESULT_CANCEL = 2;
|
|
16
|
-
Styles.MSGBOX_RESULT_ABORT = 3;
|
|
17
|
-
Styles.MSGBOX_RESULT_RETRY = 4;
|
|
18
|
-
Styles.MSGBOX_RESULT_YES = 6;
|
|
19
|
-
Styles.MSGBOX_RESULT_NO = 7;
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL2d1aS9sb3cvU3R5bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFRLE1BQU07O0FBTVYsdUJBQWdCLEdBQVcsVUFBVSxDQUFDO0FBQ3RDLDhCQUF1QixHQUFXLFVBQVUsQ0FBQztBQUM3Qyx1Q0FBZ0MsR0FBVyxVQUFVLENBQUM7QUFDdEQsa0NBQTJCLEdBQVcsVUFBVSxDQUFDO0FBQ2pELDJCQUFvQixHQUFXLFVBQVUsQ0FBQztBQUMxQyxpQ0FBMEIsR0FBVyxVQUFVLENBQUM7QUFFaEQsd0JBQWlCLEdBQVcsVUFBVSxDQUFDO0FBQ3ZDLDJCQUFvQixHQUFXLFVBQVUsQ0FBQztBQUMxQyw4QkFBdUIsR0FBVyxVQUFVLENBQUM7QUFDN0MsOEJBQXVCLEdBQVcsVUFBVSxDQUFDO0FBQzlDLDBCQUFtQixHQUFXLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQztBQUk3RCx1QkFBZ0IsR0FBRyxDQUFDLENBQUM7QUFDckIsMkJBQW9CLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLDBCQUFtQixHQUFHLENBQUMsQ0FBQztBQUN4QiwwQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFFeEIsd0JBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBQ3RCLHVCQUFnQixHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyAgU3R5bGVzXHJcbntcclxuXHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAvLyBjb25maXJtYXRpb24gYm94XHJcbiAgc3RhdGljICBNU0dCT1hfQlVUVE9OX09LOiBudW1iZXIgPSAweDAwMDAwMDAwO1xyXG4gIHN0YXRpYyAgTVNHQk9YX0JVVFRPTl9PS19DQU5DRUw6IG51bWJlciA9IDB4MDAwMDAwMDE7XHJcbiAgc3RhdGljICBNU0dCT1hfQlVUVE9OX0FCT1JUX1JFVFJZX0lHTk9SRTogbnVtYmVyID0gMHgwMDAwMDAwMjtcclxuICBzdGF0aWMgIE1TR0JPWF9CVVRUT05fWUVTX05PX0NBTkNFTDogbnVtYmVyID0gMHgwMDAwMDAwMztcclxuICBzdGF0aWMgIE1TR0JPWF9CVVRUT05fWUVTX05POiBudW1iZXIgPSAweDAwMDAwMDA0O1xyXG4gIHN0YXRpYyAgTVNHQk9YX0JVVFRPTl9SRVRSWV9DQU5DRUw6IG51bWJlciA9IDB4MDAwMDAwMDU7XHJcblxyXG4gIHN0YXRpYyAgTVNHQk9YX0lDT05fRVJST1I6IG51bWJlciA9IDB4MDAwMDAwMTA7XHJcbiAgc3RhdGljICBNU0dCT1hfSUNPTl9RVUVTVElPTjogbnVtYmVyID0gMHgwMDAwMDAyMDtcclxuICBzdGF0aWMgIE1TR0JPWF9JQ09OX0VYQ0xBTUFUSU9OOiBudW1iZXIgPSAweDAwMDAwMDMwO1xyXG4gIHN0YXRpYyAgTVNHQk9YX0lDT05fSU5GT1JNQVRJT046IG51bWJlciA9IDB4MDAwMDAwNDA7XHJcbiAgc3RhdGljIE1TR0JPWF9JQ09OX1dBUk5JTkc6IG51bWJlciA9IFN0eWxlcy5NU0dCT1hfSUNPTl9FWENMQU1BVElPTjtcclxuXHJcblxyXG4gIC8vIG1lc3NhZ2UgYm94IHJlc3VsdFxyXG4gIHN0YXRpYyBNU0dCT1hfUkVTVUxUX09LID0gMTtcclxuICBzdGF0aWMgTVNHQk9YX1JFU1VMVF9DQU5DRUwgPSAyO1xyXG4gIHN0YXRpYyBNU0dCT1hfUkVTVUxUX0FCT1JUID0gMztcclxuICBzdGF0aWMgTVNHQk9YX1JFU1VMVF9SRVRSWSA9IDQ7XHJcblxyXG4gIHN0YXRpYyBNU0dCT1hfUkVTVUxUX1lFUyA9IDY7XHJcbiAgc3RhdGljIE1TR0JPWF9SRVNVTFRfTk8gPSA3O1xyXG5cclxuXHJcbn1cclxuIl19
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { XmlParser } from "@magic-xpa/utils";
|
|
2
|
-
import { Manager } from "../Manager";
|
|
3
|
-
import { NString } from "@magic-xpa/mscorelib";
|
|
4
|
-
export class RuntimeContextBase {
|
|
5
|
-
constructor() {
|
|
6
|
-
this._insertMode = false;
|
|
7
|
-
this._lastCoordinates = new Array(4);
|
|
8
|
-
this.ContextID = '\0';
|
|
9
|
-
this.Parser = null;
|
|
10
|
-
this.FrameForm = null;
|
|
11
|
-
this.LastClickedCtrlName = null;
|
|
12
|
-
this.RemovedContextFromServer = false;
|
|
13
|
-
this.RemovingContextFromServer = false;
|
|
14
|
-
this.CurrentClickedCtrl = null;
|
|
15
|
-
this.CurrentClickedRadio = null;
|
|
16
|
-
this.DefaultStatusMsg = null;
|
|
17
|
-
this.LastClickCoordinatesAreInPixels = false;
|
|
18
|
-
}
|
|
19
|
-
Init(contextID) {
|
|
20
|
-
this.ContextID = contextID;
|
|
21
|
-
this.LastClickedCtrlName = "";
|
|
22
|
-
this._insertMode = true;
|
|
23
|
-
Manager.SetCurrentContextID(contextID);
|
|
24
|
-
this.Parser = new XmlParser();
|
|
25
|
-
}
|
|
26
|
-
SaveLastClickInfo(controlName, clientX, clientY, offsetX, offsetY, isInPixels) {
|
|
27
|
-
this._lastCoordinates[0] = offsetX;
|
|
28
|
-
this._lastCoordinates[1] = offsetY;
|
|
29
|
-
this._lastCoordinates[2] = clientX;
|
|
30
|
-
this._lastCoordinates[3] = clientY;
|
|
31
|
-
this.LastClickCoordinatesAreInPixels = isInPixels;
|
|
32
|
-
this.LastClickedCtrlName = "";
|
|
33
|
-
if (!NString.IsNullOrEmpty(controlName)) {
|
|
34
|
-
this.LastClickedCtrlName = controlName;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
ToggleInsertMode() {
|
|
38
|
-
this._insertMode = !this._insertMode;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
RuntimeContextBase.noContextId = null;
|
|
42
|
-
RuntimeContextBase.Instance = new RuntimeContextBase();
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnVudGltZUNvbnRleHRCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VpL3NyYy9tYW5hZ2VtZW50L1J1bnRpbWVDb250ZXh0QmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFHM0MsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFN0MsTUFBTSxPQUFPLGtCQUFrQjtJQXNCN0I7UUFyQlEsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IscUJBQWdCLEdBQWEsSUFBSSxLQUFLLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsY0FBUyxHQUFXLElBQUksQ0FBQztRQUN6QixXQUFNLEdBQWMsSUFBSSxDQUFDO1FBQ3pCLGNBQVMsR0FBZSxJQUFJLENBQUM7UUFDN0Isd0JBQW1CLEdBQVcsSUFBSSxDQUFDO1FBR25DLDZCQUF3QixHQUFZLEtBQUssQ0FBQztRQUMxQyw4QkFBeUIsR0FBWSxLQUFLLENBQUM7UUFJM0MsdUJBQWtCLEdBQWtCLElBQUksQ0FBQztRQUV6Qyx3QkFBbUIsR0FBa0IsSUFBSSxDQUFDO1FBQzFDLHFCQUFnQixHQUFXLElBQUksQ0FBQztRQUNoQyxvQ0FBK0IsR0FBWSxLQUFLLENBQUM7SUFJekIsQ0FBQztJQUN6QixJQUFJLENBQUMsU0FBaUI7UUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixPQUFPLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxXQUFtQixFQUFFLE9BQWUsRUFBRSxPQUFlLEVBQUUsT0FBZSxFQUFFLE9BQWUsRUFBRSxVQUFtQjtRQUM1SCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQ25DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBRW5DLElBQUksQ0FBQywrQkFBK0IsR0FBRyxVQUFVLENBQUM7UUFFbEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN2QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsV0FBVyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUdELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3ZDLENBQUM7O0FBeENNLDhCQUFXLEdBQVcsSUFBSSxDQUFDO0FBWTNCLDJCQUFRLEdBQXVCLElBQUksa0JBQWtCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7WG1sUGFyc2VyfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge01nRm9ybUJhc2V9IGZyb20gXCIuL2d1aS9NZ0Zvcm1CYXNlXCI7XHJcbmltcG9ydCB7TWdDb250cm9sQmFzZX0gZnJvbSBcIi4vZ3VpL01nQ29udHJvbEJhc2VcIjtcclxuaW1wb3J0IHtNYW5hZ2VyfSBmcm9tIFwiLi4vTWFuYWdlclwiO1xyXG5pbXBvcnQge05TdHJpbmd9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFJ1bnRpbWVDb250ZXh0QmFzZSB7XHJcbiAgcHJpdmF0ZSBfaW5zZXJ0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2xhc3RDb29yZGluYXRlczogbnVtYmVyW10gPSBuZXcgQXJyYXk8bnVtYmVyPig0KTtcclxuICBDb250ZXh0SUQ6IHN0cmluZyA9ICdcXDAnO1xyXG4gIFBhcnNlcjogWG1sUGFyc2VyID0gbnVsbDsgLy8geG1sIHBhcnNlclxyXG4gIEZyYW1lRm9ybTogTWdGb3JtQmFzZSA9IG51bGw7IC8vIGZvcm0gb2YgdGhlIE1ESS9TREkgZnJhbWVcclxuICBMYXN0Q2xpY2tlZEN0cmxOYW1lOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICBzdGF0aWMgbm9Db250ZXh0SWQ6IHN0cmluZyA9IG51bGw7XHJcbiAgUmVtb3ZlZENvbnRleHRGcm9tU2VydmVyOiBib29sZWFuID0gZmFsc2U7IC8vc2V0IHdoZW4gcmVxLiAnQ29udGV4dCBSZW1vdmUnIHNlbnQgdG8gc2VydmVyLlxyXG4gIFJlbW92aW5nQ29udGV4dEZyb21TZXJ2ZXI6IGJvb2xlYW4gPSBmYWxzZTsgLy9zZXQgd2hlbiBldmVudCAnQ29udGV4dCBSZW1vdmUncmFpc2VkXHJcbiAgLy8gQ3VycmVudENsaWNrZWRDdHJsIC0gYWx3YXlzIHBvaW50cyB0byB0aGUgY3VycmVudCBjbGlja2VkQ3RybC4gSW5pdGlhbGx5IG51bGwsIGJ1dCBvbmNlIGNsaWNrZWQgb24gYW55XHJcbiAgLy8gY29udHJvbCwgaXQgYWx3YXlzIHBvaW50cyB0byB0aGlzIGNsaWNrZWQgY3RybC4gQW5kLCBpcyByZXNldCBiYWNrIHRvIG51bGwgb25jZSB3ZSBoYXZlIHN1Y2Nlc3NmdWxseVxyXG4gIC8vIHBhcmtlZCBvbiB0aGUgcGFya2FibGUgY29udHJvbC5cclxuICBDdXJyZW50Q2xpY2tlZEN0cmw6IE1nQ29udHJvbEJhc2UgPSBudWxsO1xyXG5cclxuICBDdXJyZW50Q2xpY2tlZFJhZGlvOiBNZ0NvbnRyb2xCYXNlID0gbnVsbDtcclxuICBEZWZhdWx0U3RhdHVzTXNnOiBzdHJpbmcgPSBudWxsO1xyXG4gIExhc3RDbGlja0Nvb3JkaW5hdGVzQXJlSW5QaXhlbHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgc3RhdGljIEluc3RhbmNlOiBSdW50aW1lQ29udGV4dEJhc2UgPSBuZXcgUnVudGltZUNvbnRleHRCYXNlKCk7XHJcblxyXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7IH1cclxuICBJbml0KGNvbnRleHRJRDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLkNvbnRleHRJRCA9IGNvbnRleHRJRDtcclxuICAgIHRoaXMuTGFzdENsaWNrZWRDdHJsTmFtZSA9IFwiXCI7XHJcbiAgICB0aGlzLl9pbnNlcnRNb2RlID0gdHJ1ZTtcclxuICAgIE1hbmFnZXIuU2V0Q3VycmVudENvbnRleHRJRChjb250ZXh0SUQpO1xyXG4gICAgdGhpcy5QYXJzZXIgPSBuZXcgWG1sUGFyc2VyKCk7XHJcbiAgfVxyXG5cclxuICBTYXZlTGFzdENsaWNrSW5mbyhjb250cm9sTmFtZTogc3RyaW5nLCBjbGllbnRYOiBudW1iZXIsIGNsaWVudFk6IG51bWJlciwgb2Zmc2V0WDogbnVtYmVyLCBvZmZzZXRZOiBudW1iZXIsIGlzSW5QaXhlbHM6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX2xhc3RDb29yZGluYXRlc1swXSA9IG9mZnNldFg7IC8vIEdpdmVzIHRoZSBYIGxvY2F0aW9uIG9mIHRoZSBsYXN0IGNsaWNrLCByZWxhdGl2ZSB0byB0aGUgd2luZG93XHJcbiAgICB0aGlzLl9sYXN0Q29vcmRpbmF0ZXNbMV0gPSBvZmZzZXRZOyAvLyBHaXZlcyB0aGUgWSBsb2NhdGlvbiBvZiB0aGUgbGFzdCBjbGljaywgcmVsYXRpdmUgdG8gdGhlIHdpbmRvd1xyXG4gICAgdGhpcy5fbGFzdENvb3JkaW5hdGVzWzJdID0gY2xpZW50WDsgLy8gR2l2ZXMgdGhlIFggbG9jYXRpb24gb2YgdGhlIGxhc3QgY2xpY2ssIHJlbGF0aXZlIHRvIHRoZSBjb250cm9sIHdpdGhpbiB3aGljaCB0aGUgY2xpY2sgb2NjdXJyZWRcclxuICAgIHRoaXMuX2xhc3RDb29yZGluYXRlc1szXSA9IGNsaWVudFk7IC8vIEdpdmVzIHRoZSBZIGxvY2F0aW9uIG9mIHRoZSBsYXN0IGNsaWNrLCByZWxhdGl2ZSB0byB0aGUgY29udHJvbCB3aXRoaW4gd2hpY2ggdGhlIGNsaWNrIG9jY3VycmVkXHJcblxyXG4gICAgdGhpcy5MYXN0Q2xpY2tDb29yZGluYXRlc0FyZUluUGl4ZWxzID0gaXNJblBpeGVscztcclxuXHJcbiAgICB0aGlzLkxhc3RDbGlja2VkQ3RybE5hbWUgPSBcIlwiOyAvLyBpcyBlbXB0eSBzdHJpbmdcclxuICAgIGlmICghTlN0cmluZy5Jc051bGxPckVtcHR5KGNvbnRyb2xOYW1lKSkge1xyXG4gICAgICB0aGlzLkxhc3RDbGlja2VkQ3RybE5hbWUgPSBjb250cm9sTmFtZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gdG9nZ2xlIHRoZSBfaW5zZXJ0TW9kZSAoYmV0d2VlbiBpbnNlcnQgYW5kIG92ZXJ3cml0ZSkuIDwvc3VtbWFyeT5cclxuICBUb2dnbGVJbnNlcnRNb2RlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5faW5zZXJ0TW9kZSA9ICF0aGlzLl9pbnNlcnRNb2RlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
import { Logger, StrUtil } from '@magic-xpa/utils';
|
|
2
|
-
import { ApplicationException, Debug, Encoding, ISO_8859_1_Encoding, NNumber, NString } from '@magic-xpa/mscorelib';
|
|
3
|
-
import { GuiConstants } from '../../GuiConstants';
|
|
4
|
-
import { GuiEnvironment } from '../../GuiEnvironment';
|
|
5
|
-
export class BlobType {
|
|
6
|
-
static getContentType(blob) {
|
|
7
|
-
try {
|
|
8
|
-
let tokens = StrUtil.tokenize(blob, /,|;/);
|
|
9
|
-
return tokens[4].charAt(0);
|
|
10
|
-
}
|
|
11
|
-
catch (Exception) {
|
|
12
|
-
throw new ApplicationException(" in BlobType.getContentType blob is in invalid format");
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
static getEmptyBlobPrefix(vecCellAttr) {
|
|
16
|
-
return NString.Format("0,0,{0},{1},0", '\0', vecCellAttr);
|
|
17
|
-
}
|
|
18
|
-
static getBlobPrefixForContentType(contentType) {
|
|
19
|
-
return NString.Format("0,0,{0},{0},{1};", '\0', contentType);
|
|
20
|
-
}
|
|
21
|
-
static getPrefix(str) {
|
|
22
|
-
let idx = str.indexOf(';');
|
|
23
|
-
return str.substr(0, idx + 1);
|
|
24
|
-
}
|
|
25
|
-
static getEncodingFromContentType(ContentType) {
|
|
26
|
-
let encoding;
|
|
27
|
-
if (ContentType === BlobType.CONTENT_TYPE_UNICODE)
|
|
28
|
-
encoding = Encoding.Unicode;
|
|
29
|
-
else if (ContentType === BlobType.CONTENT_TYPE_ANSI)
|
|
30
|
-
encoding = GuiEnvironment.Environment.GetEncoding();
|
|
31
|
-
else
|
|
32
|
-
encoding = ISO_8859_1_Encoding.ISO_8859_1;
|
|
33
|
-
return encoding;
|
|
34
|
-
}
|
|
35
|
-
static MbToUnicode(BytesInMb) {
|
|
36
|
-
let result = null;
|
|
37
|
-
try {
|
|
38
|
-
let UnicodeString = GuiEnvironment.Environment.GetEncoding().GetString(BytesInMb, 0, BytesInMb.length);
|
|
39
|
-
result = Encoding.Unicode.GetBytes(UnicodeString);
|
|
40
|
-
}
|
|
41
|
-
catch (Exception) {
|
|
42
|
-
result = null;
|
|
43
|
-
}
|
|
44
|
-
return result;
|
|
45
|
-
}
|
|
46
|
-
static UnicodeToMb(BytesInUnicode) {
|
|
47
|
-
let result = null;
|
|
48
|
-
try {
|
|
49
|
-
let UnicodeString = Encoding.Unicode.GetString(BytesInUnicode, 0, BytesInUnicode.length);
|
|
50
|
-
result = GuiEnvironment.Environment.GetEncoding().GetBytes(UnicodeString);
|
|
51
|
-
}
|
|
52
|
-
catch (Exception) {
|
|
53
|
-
result = null;
|
|
54
|
-
}
|
|
55
|
-
return result;
|
|
56
|
-
}
|
|
57
|
-
static getString(blob) {
|
|
58
|
-
let result = null;
|
|
59
|
-
let bytes = null;
|
|
60
|
-
if (BlobType.isValidBlob(blob)) {
|
|
61
|
-
let contentType = BlobType.getContentType(blob);
|
|
62
|
-
if (contentType !== BlobType.CONTENT_TYPE_UNICODE)
|
|
63
|
-
contentType = BlobType.CONTENT_TYPE_ANSI;
|
|
64
|
-
try {
|
|
65
|
-
bytes = BlobType.getBytes(blob);
|
|
66
|
-
let encoding = BlobType.getEncodingFromContentType(contentType);
|
|
67
|
-
result = encoding.GetString(bytes, 0, bytes.length);
|
|
68
|
-
let index = result.indexOf('\0');
|
|
69
|
-
if (index !== -1)
|
|
70
|
-
result = result.substr(0, index);
|
|
71
|
-
}
|
|
72
|
-
catch (Exception) {
|
|
73
|
-
result = null;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
else
|
|
77
|
-
Debug.Assert(false);
|
|
78
|
-
return result;
|
|
79
|
-
}
|
|
80
|
-
static createFromString(blobStr, contentType) {
|
|
81
|
-
let blob = null;
|
|
82
|
-
let srcContentType = contentType;
|
|
83
|
-
let bytes = null;
|
|
84
|
-
if (contentType !== BlobType.CONTENT_TYPE_UNICODE)
|
|
85
|
-
srcContentType = BlobType.CONTENT_TYPE_ANSI;
|
|
86
|
-
try {
|
|
87
|
-
if (blobStr.constructor === ArrayBuffer) {
|
|
88
|
-
bytes = new Uint8Array(blobStr);
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
let encoding = BlobType.getEncodingFromContentType(srcContentType);
|
|
92
|
-
bytes = encoding.GetBytes(blobStr);
|
|
93
|
-
}
|
|
94
|
-
blob = BlobType.createFromBytes(bytes, contentType);
|
|
95
|
-
}
|
|
96
|
-
catch (Exception) {
|
|
97
|
-
blob = null;
|
|
98
|
-
}
|
|
99
|
-
return blob;
|
|
100
|
-
}
|
|
101
|
-
static getBytes(str) {
|
|
102
|
-
let bytes = null;
|
|
103
|
-
let data = BlobType.removeBlobPrefix(str);
|
|
104
|
-
try {
|
|
105
|
-
let encoding = ISO_8859_1_Encoding.ISO_8859_1;
|
|
106
|
-
bytes = encoding.GetBytes(data);
|
|
107
|
-
}
|
|
108
|
-
catch (Exception) {
|
|
109
|
-
bytes = null;
|
|
110
|
-
}
|
|
111
|
-
return bytes;
|
|
112
|
-
}
|
|
113
|
-
static createFromBytes(bytes, contentType) {
|
|
114
|
-
let blobStr = '';
|
|
115
|
-
let blobPrefix;
|
|
116
|
-
let blobData;
|
|
117
|
-
blobPrefix = BlobType.getBlobPrefixForContentType(contentType);
|
|
118
|
-
try {
|
|
119
|
-
let encoding = ISO_8859_1_Encoding.ISO_8859_1;
|
|
120
|
-
blobData = encoding.GetString(bytes, 0, bytes.length);
|
|
121
|
-
}
|
|
122
|
-
catch (Exception) {
|
|
123
|
-
blobData = null;
|
|
124
|
-
}
|
|
125
|
-
blobStr = blobPrefix + blobData;
|
|
126
|
-
return blobStr;
|
|
127
|
-
}
|
|
128
|
-
static copyBlob(dest, src) {
|
|
129
|
-
let srcBytes;
|
|
130
|
-
let destBytes;
|
|
131
|
-
if (src === null)
|
|
132
|
-
return null;
|
|
133
|
-
else if (dest === null)
|
|
134
|
-
return src;
|
|
135
|
-
srcBytes = BlobType.getBytes(src);
|
|
136
|
-
let destContentType = BlobType.getContentType(dest);
|
|
137
|
-
let srcContentType = BlobType.getContentType(src);
|
|
138
|
-
if (srcContentType === BlobType.CONTENT_TYPE_ANSI && destContentType === BlobType.CONTENT_TYPE_UNICODE)
|
|
139
|
-
destBytes = BlobType.MbToUnicode(srcBytes);
|
|
140
|
-
else if (srcContentType === BlobType.CONTENT_TYPE_UNICODE && destContentType === BlobType.CONTENT_TYPE_ANSI)
|
|
141
|
-
destBytes = BlobType.UnicodeToMb(srcBytes);
|
|
142
|
-
else
|
|
143
|
-
destBytes = srcBytes;
|
|
144
|
-
dest = BlobType.createFromBytes(destBytes, destContentType);
|
|
145
|
-
return dest;
|
|
146
|
-
}
|
|
147
|
-
static removeBlobPrefix(source) {
|
|
148
|
-
let idx;
|
|
149
|
-
if (source !== null) {
|
|
150
|
-
idx = source.indexOf(';');
|
|
151
|
-
if (idx < 0)
|
|
152
|
-
Logger.Instance.WriteToLog("Error: invalid blob prefix", true);
|
|
153
|
-
return source.substr(idx + 1);
|
|
154
|
-
}
|
|
155
|
-
else
|
|
156
|
-
return null;
|
|
157
|
-
}
|
|
158
|
-
static isValidBlob(blob) {
|
|
159
|
-
let isValid = true;
|
|
160
|
-
if (blob === null || blob.indexOf(';') < 0)
|
|
161
|
-
isValid = false;
|
|
162
|
-
if (isValid) {
|
|
163
|
-
let contentType = BlobType.getContentType(blob);
|
|
164
|
-
if (contentType !== BlobType.CONTENT_TYPE_ANSI && contentType !== BlobType.CONTENT_TYPE_BINARY && contentType !== BlobType.CONTENT_TYPE_UNICODE && contentType !== BlobType.CONTENT_TYPE_UNKNOWN)
|
|
165
|
-
isValid = false;
|
|
166
|
-
}
|
|
167
|
-
return isValid;
|
|
168
|
-
}
|
|
169
|
-
static setContentType(str, contentType) {
|
|
170
|
-
let result = "";
|
|
171
|
-
try {
|
|
172
|
-
let prefixLastIndex = str.indexOf(";");
|
|
173
|
-
let prefix = str.substr(0, prefixLastIndex);
|
|
174
|
-
let dataLength = str.length - (prefix.length + 1);
|
|
175
|
-
let data = str.substr(prefixLastIndex + 1, dataLength);
|
|
176
|
-
let prefixTokens = StrUtil.tokenize(prefix, /,|;/);
|
|
177
|
-
for (let i = 0; i < GuiConstants.BLOB_PREFIX_ELEMENTS_COUNT; i = i + 1) {
|
|
178
|
-
if (i === 4)
|
|
179
|
-
result = result + contentType + ",";
|
|
180
|
-
else
|
|
181
|
-
result = result + prefixTokens[i] + ",";
|
|
182
|
-
}
|
|
183
|
-
return result.substr(0, result.length - 1) + ";" + data;
|
|
184
|
-
}
|
|
185
|
-
catch (Exception) {
|
|
186
|
-
throw new ApplicationException(" in BlobType.setContentType : invalid format");
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
static SetVecCellAttr(str, vecCellAttr) {
|
|
190
|
-
let result = "";
|
|
191
|
-
try {
|
|
192
|
-
let prefixLastIndex = str.indexOf(";");
|
|
193
|
-
let prefix = str.substr(0, prefixLastIndex);
|
|
194
|
-
let data = str.substr(prefixLastIndex + 1);
|
|
195
|
-
let tokens = StrUtil.tokenize(prefix, /,|;/);
|
|
196
|
-
for (let i = 0; i < GuiConstants.BLOB_PREFIX_ELEMENTS_COUNT; i = i + 1) {
|
|
197
|
-
if (i === 3)
|
|
198
|
-
result = result + vecCellAttr + ",";
|
|
199
|
-
else
|
|
200
|
-
result = result + tokens[i] + ",";
|
|
201
|
-
}
|
|
202
|
-
return result.substr(0, result.length - 1) + ";" + data;
|
|
203
|
-
}
|
|
204
|
-
catch (Exception) {
|
|
205
|
-
throw new ApplicationException(" in XMLparser.blobPrefixLength invalid format");
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
static GetVecCellAttr(blobStr) {
|
|
209
|
-
try {
|
|
210
|
-
let tokens = StrUtil.tokenize(blobStr, /,|;/);
|
|
211
|
-
return tokens[3].charAt(0);
|
|
212
|
-
}
|
|
213
|
-
catch (Exception) {
|
|
214
|
-
throw new ApplicationException(" in BlobType.GetVecCellAttr(): blob is in invalid format");
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
static blobPrefixLength(blob) {
|
|
218
|
-
try {
|
|
219
|
-
let prefixLength = blob.indexOf(';') + 1;
|
|
220
|
-
let prefix = blob.substr(0, prefixLength);
|
|
221
|
-
if (prefixLength > 0) {
|
|
222
|
-
let tokens = StrUtil.tokenize(prefix, ",");
|
|
223
|
-
if (tokens.length === GuiConstants.BLOB_PREFIX_ELEMENTS_COUNT)
|
|
224
|
-
return prefixLength;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
catch (Exception) {
|
|
228
|
-
}
|
|
229
|
-
throw new ApplicationException(" in XMLparser.blobPrefixLength invalid format");
|
|
230
|
-
}
|
|
231
|
-
static getKey(blobStr) {
|
|
232
|
-
let tokens = StrUtil.tokenize(blobStr, /,|;/);
|
|
233
|
-
let key = 0;
|
|
234
|
-
if (tokens.length > 5) {
|
|
235
|
-
try {
|
|
236
|
-
key = NNumber.Parse(tokens[0]);
|
|
237
|
-
}
|
|
238
|
-
catch (Exception) {
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
return key;
|
|
242
|
-
}
|
|
243
|
-
static getBlobSize(blob) {
|
|
244
|
-
let size = 0;
|
|
245
|
-
try {
|
|
246
|
-
let tokens = StrUtil.tokenize(blob, /,|;/);
|
|
247
|
-
if (tokens.length > 5) {
|
|
248
|
-
size = blob.length;
|
|
249
|
-
for (let i = 0; i < 5; i = i + 1) {
|
|
250
|
-
size = size - tokens[i].length;
|
|
251
|
-
size = size - 1;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
catch (Exception) {
|
|
256
|
-
}
|
|
257
|
-
return size;
|
|
258
|
-
}
|
|
259
|
-
static ParseContentType(contentType) {
|
|
260
|
-
let newContentType = ' ';
|
|
261
|
-
switch (contentType) {
|
|
262
|
-
case 0:
|
|
263
|
-
newContentType = BlobType.CONTENT_TYPE_UNKNOWN;
|
|
264
|
-
break;
|
|
265
|
-
case 1:
|
|
266
|
-
newContentType = BlobType.CONTENT_TYPE_ANSI;
|
|
267
|
-
break;
|
|
268
|
-
case 2:
|
|
269
|
-
newContentType = BlobType.CONTENT_TYPE_UNICODE;
|
|
270
|
-
break;
|
|
271
|
-
case 3:
|
|
272
|
-
newContentType = BlobType.CONTENT_TYPE_BINARY;
|
|
273
|
-
}
|
|
274
|
-
return newContentType;
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
BlobType.CONTENT_TYPE_UNKNOWN = '0';
|
|
278
|
-
BlobType.CONTENT_TYPE_ANSI = '1';
|
|
279
|
-
BlobType.CONTENT_TYPE_UNICODE = '2';
|
|
280
|
-
BlobType.CONTENT_TYPE_BINARY = '3';
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmxvYlR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL21hbmFnZW1lbnQvZGF0YS9CbG9iVHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFvQixPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxNQUFNLE9BQU8sUUFBUTtJQVduQixNQUFNLENBQUMsY0FBYyxDQUFDLElBQVk7UUFDaEMsSUFBSTtZQUNGLElBQUksTUFBTSxHQUFhLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1QjtRQUNELE9BQU8sU0FBUyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1NBQ3pGO0lBQ0gsQ0FBQztJQU9ELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxXQUFtQjtRQUMzQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBTUQsTUFBTSxDQUFDLDJCQUEyQixDQUFDLFdBQW1CO1FBQ3BELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQU9ELE1BQU0sQ0FB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QUFvQixHQUFXLEdBQUcsQ0FBQztBQUNuQywwQkFBaUIsR0FBVyxHQUFHLENBQUM7QUFDaEMsNkJBQW9CLEdBQVcsR0FBRyxDQUFDO0FBQ25DLDRCQUFtQixHQUFXLEdBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ2dlciwgU3RvcmFnZUF0dHJpYnV0ZSwgU3RyVXRpbCB9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvbkV4Y2VwdGlvbiwgRGVidWcsIEVuY29kaW5nLCBJU09fODg1OV8xX0VuY29kaW5nLCBOTnVtYmVyLCBOU3RyaW5nIH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQgeyBHdWlDb25zdGFudHMgfSBmcm9tICcuLi8uLi9HdWlDb25zdGFudHMnO1xyXG5pbXBvcnQgeyBHdWlFbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL0d1aUVudmlyb25tZW50JztcclxuXHJcbmV4cG9ydCBjbGFzcyBCbG9iVHlwZSB7XHJcbiAgc3RhdGljIENPTlRFTlRfVFlQRV9VTktOT1dOOiBzdHJpbmcgPSAnMCc7XHJcbiAgc3RhdGljIENPTlRFTlRfVFlQRV9BTlNJOiBzdHJpbmcgPSAnMSc7XHJcbiAgc3RhdGljIENPTlRFTlRfVFlQRV9VTklDT0RFOiBzdHJpbmcgPSAnMic7XHJcbiAgc3RhdGljIENPTlRFTlRfVFlQRV9CSU5BUlk6IHN0cmluZyA9ICczJztcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiByZXR1cm5zIHRoZSBjb250ZW50IHR5cGUgb2YgdGhlIGJsb2I8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiYmxvYlwiPlxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz5cclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBnZXRDb250ZW50VHlwZShibG9iOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IHRva2Vuczogc3RyaW5nW10gPSBTdHJVdGlsLnRva2VuaXplKGJsb2IsIC8sfDsvKTtcclxuICAgICAgcmV0dXJuIHRva2Vuc1s0XS5jaGFyQXQoMCk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoRXhjZXB0aW9uKSB7XHJcbiAgICAgIHRocm93IG5ldyBBcHBsaWNhdGlvbkV4Y2VwdGlvbihcIiBpbiBCbG9iVHlwZS5nZXRDb250ZW50VHlwZSBibG9iIGlzIGluIGludmFsaWQgZm9ybWF0XCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBDcmVhdGVzIGFuIGVtcHR5IGJsb2IgcHJlZml4IHdpdGggYSBnaXZlbiBjZWxsIGF0dHJpYnV0ZTwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ2ZWNDZWxsQXR0clwiPmluIGNhc2UgdGhpcyBibG9iIGlzIHZlY3RvciB0aGUgY2VsbHMgdHlwZSBlbHNlIDBcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IGFuIGVtcHR5IGJsb2IgcHJlZml4IHdpdGhvdXQgdGhlICc7XCIgYXQgdGhlIGVuZFxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgc3RhdGljIGdldEVtcHR5QmxvYlByZWZpeCh2ZWNDZWxsQXR0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBOU3RyaW5nLkZvcm1hdChcIjAsMCx7MH0sezF9LDBcIiwgJ1xcMCcsIHZlY0NlbGxBdHRyKTtcclxuICB9XHJcblxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImNvbnRlbnRUeXBlXCI+XHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPlxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgc3RhdGljIGdldEJsb2JQcmVmaXhGb3JDb250ZW50VHlwZShjb250ZW50VHlwZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBOU3RyaW5nLkZvcm1hdChcIjAsMCx7MH0sezB9LHsxfTtcIiwgJ1xcMCcsIGNvbnRlbnRUeXBlKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gcmV0dXJucyB0aGUgaGVhZGVyIG9ubHk8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic3RyXCI+XHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPlxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgc3RhdGljIGdldFByZWZpeChzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgaWR4OiBudW1iZXIgPSBzdHIuaW5kZXhPZignOycpLyonOycqLztcclxuICAgIHJldHVybiBzdHIuc3Vic3RyKDAsIGlkeCArIDEpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiQ29udGVudFR5cGVcIj5cclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+XHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBzdGF0aWMgZ2V0RW5jb2RpbmdGcm9tQ29udGVudFR5cGUoQ29udGVudFR5cGU6IHN0cmluZyk6IEVuY29kaW5nIHtcclxuICAgIGxldCBlbmNvZGluZzogRW5jb2Rpbmc7XHJcblxyXG4gICAgaWYgKENvbnRlbnRUeXBlID09PSBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5JQ09ERSlcclxuICAgICAgZW5jb2RpbmcgPSBFbmNvZGluZy5Vbmljb2RlO1xyXG4gICAgZWxzZSBpZiAoQ29udGVudFR5cGUgPT09IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9BTlNJKVxyXG4gICAgICBlbmNvZGluZyA9IEd1aUVudmlyb25tZW50LkVudmlyb25tZW50LkdldEVuY29kaW5nKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIGVuY29kaW5nID0gSVNPXzg4NTlfMV9FbmNvZGluZy5JU09fODg1OV8xO1xyXG5cclxuICAgIHJldHVybiBlbmNvZGluZztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gVGhpcyBmdW5jdGlvbiBjb252ZXJ0cyBhbnNpIGJ5dGVzIHRvIHVuaWNvZGUgYnl0ZXMuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJCeXRlc0luTWJcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBzdGF0aWMgTWJUb1VuaWNvZGUoQnl0ZXNJbk1iOiBVaW50OEFycmF5KTogVWludDhBcnJheSB7XHJcbiAgICBsZXQgcmVzdWx0OiBVaW50OEFycmF5ID0gbnVsbDtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBsZXQgVW5pY29kZVN0cmluZzogc3RyaW5nID0gR3VpRW52aXJvbm1lbnQuRW52aXJvbm1lbnQuR2V0RW5jb2RpbmcoKS5HZXRTdHJpbmcoQnl0ZXNJbk1iLCAwLCBCeXRlc0luTWIubGVuZ3RoKTtcclxuICAgICAgcmVzdWx0ID0gRW5jb2RpbmcuVW5pY29kZS5HZXRCeXRlcyhVbmljb2RlU3RyaW5nKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChFeGNlcHRpb24pIHtcclxuICAgICAgcmVzdWx0ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBUaGlzIGZ1bmN0aW9uIGNvbnZlcnRzIHVuaWNvZGUgYnl0ZXMgdG8gYW5zaSBieXRlcy5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIkJ5dGVzSW5Vbmljb2RlXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHByaXZhdGUgc3RhdGljIFVuaWNvZGVUb01iKEJ5dGVzSW5Vbmljb2RlOiBVaW50OEFycmF5KTogVWludDhBcnJheSB7XHJcbiAgICBsZXQgcmVzdWx0OiBVaW50OEFycmF5ID0gbnVsbDtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBsZXQgVW5pY29kZVN0cmluZzogc3RyaW5nID0gRW5jb2RpbmcuVW5pY29kZS5HZXRTdHJpbmcoQnl0ZXNJblVuaWNvZGUsIDAsIEJ5dGVzSW5Vbmljb2RlLmxlbmd0aCk7XHJcblxyXG4gICAgICByZXN1bHQgPSBHdWlFbnZpcm9ubWVudC5FbnZpcm9ubWVudC5HZXRFbmNvZGluZygpLkdldEJ5dGVzKFVuaWNvZGVTdHJpbmcpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKEV4Y2VwdGlvbikge1xyXG4gICAgICByZXN1bHQgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gQXNzdW1lcyB0aGUgZ2l2ZW4gYmxvYiBjb250YWlucyBhIHN0cmluZyBhbmQgcmV0dXJucyBpdC4gSWYgdGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgYmxvYiBpcyBub3QgVW5pY29kZVxyXG4gIC8vLyB0aGVuIGFzc3VtZSBpdCBpcyBBTlNJLlxyXG4gIC8vL1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiYmxvYlwiPmEgdmFsaWQgcmVwcmVzZW50YXRpb24gb2YgYSBibG9iXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB0aGUgc3RyaW5nIGNvbnRhaW5lZCBieSB0aGUgYmxvYlxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgc3RhdGljIGdldFN0cmluZyhibG9iOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdDogc3RyaW5nID0gbnVsbDtcclxuICAgIGxldCBieXRlczogVWludDhBcnJheSA9IG51bGw7XHJcblxyXG4gICAgaWYgKEJsb2JUeXBlLmlzVmFsaWRCbG9iKGJsb2IpKSB7XHJcbiAgICAgIGxldCBjb250ZW50VHlwZTogc3RyaW5nID0gQmxvYlR5cGUuZ2V0Q29udGVudFR5cGUoYmxvYik7XHJcbiAgICAgIGlmIChjb250ZW50VHlwZSAhPT0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX1VOSUNPREUpXHJcbiAgICAgICAgY29udGVudFR5cGUgPSBCbG9iVHlwZS5DT05URU5UX1RZUEVfQU5TSTtcclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgYnl0ZXMgPSBCbG9iVHlwZS5nZXRCeXRlcyhibG9iKTtcclxuXHJcbiAgICAgICAgbGV0IGVuY29kaW5nOiBFbmNvZGluZyA9IEJsb2JUeXBlLmdldEVuY29kaW5nRnJvbUNvbnRlbnRUeXBlKGNvbnRlbnRUeXBlKTtcclxuICAgICAgICByZXN1bHQgPSBlbmNvZGluZy5HZXRTdHJpbmcoYnl0ZXMsIDAsIGJ5dGVzLmxlbmd0aCk7XHJcblxyXG4gICAgICAgIGxldCBpbmRleDogbnVtYmVyID0gcmVzdWx0LmluZGV4T2YoJ1xcMCcpLyonXHUwMDAwJyovO1xyXG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpXHJcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQuc3Vic3RyKDAsIGluZGV4KTtcclxuICAgICAgfVxyXG4gICAgICBjYXRjaCAoRXhjZXB0aW9uKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICBEZWJ1Zy5Bc3NlcnQoZmFsc2UpO1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IENyZWF0ZSBhIGJsb2Igb2YgdGhlIHNwZWNpZmllZCBjb250ZW50IHR5cGUgZnJvbSB0aGUgZGlzcGxheSBzdHJpbmdcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImJsb2JTdHJcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImNvbnRlbnRUeXBlXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBjcmVhdGVGcm9tU3RyaW5nKGJsb2JTdHI6IHN0cmluZywgY29udGVudFR5cGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgYmxvYjogc3RyaW5nID0gbnVsbDtcclxuICAgIGxldCBzcmNDb250ZW50VHlwZTogc3RyaW5nID0gY29udGVudFR5cGU7XHJcbiAgICBsZXQgYnl0ZXM6IFVpbnQ4QXJyYXkgPSBudWxsO1xyXG5cclxuICAgIGlmIChjb250ZW50VHlwZSAhPT0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX1VOSUNPREUpXHJcbiAgICAgIHNyY0NvbnRlbnRUeXBlID0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX0FOU0k7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgaWYoYmxvYlN0ci5jb25zdHJ1Y3RvciA9PT0gQXJyYXlCdWZmZXIpIHtcclxuICAgICAgICBieXRlcyA9IG5ldyBVaW50OEFycmF5KDxBcnJheUJ1ZmZlcj48YW55PmJsb2JTdHIpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGxldCBlbmNvZGluZzogRW5jb2RpbmcgPSBCbG9iVHlwZS5nZXRFbmNvZGluZ0Zyb21Db250ZW50VHlwZShzcmNDb250ZW50VHlwZSk7XHJcblxyXG4gICAgICAgIGJ5dGVzID0gZW5jb2RpbmcuR2V0Qnl0ZXMoYmxvYlN0cik7XHJcbiAgICAgIH1cclxuICAgICAgYmxvYiA9IEJsb2JUeXBlLmNyZWF0ZUZyb21CeXRlcyhieXRlcywgY29udGVudFR5cGUpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKEV4Y2VwdGlvbikge1xyXG4gICAgICBibG9iID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYmxvYjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gR2V0IGJsb2IgY29udGVudHMgYXMgYnl0ZSBhcnJheVxyXG4gIC8vL1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiYmxvYlwiPmNvbnRlbnRzIGluY2x1ZGluZyBibG9iIHByZWZpeFxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gYnl0ZSBhcnJheSBhY2NvcmRpbmcgdG8gY29udGVudCB0eXBlIGluIGJsb2IgcHJlZml4XHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBzdGF0aWMgZ2V0Qnl0ZXMoc3RyOiBzdHJpbmcpOiBVaW50OEFycmF5IHtcclxuICAgIGxldCBieXRlczogVWludDhBcnJheSA9IG51bGw7XHJcbiAgICBsZXQgZGF0YTogc3RyaW5nID0gQmxvYlR5cGUucmVtb3ZlQmxvYlByZWZpeChzdHIpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCBlbmNvZGluZzogRW5jb2RpbmcgPSBJU09fODg1OV8xX0VuY29kaW5nLklTT184ODU5XzE7XHJcbiAgICAgIGJ5dGVzID0gZW5jb2RpbmcuR2V0Qnl0ZXMoZGF0YSk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoRXhjZXB0aW9uKSB7XHJcbiAgICAgIGJ5dGVzID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYnl0ZXM7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IENyZWF0ZSBhIGJsb2Igb2YgdGhlIHNwZWNpZmllZCBjb250ZW50IHR5cGUgZnJvbSB0aGUgYnl0ZSBhcnJheVxyXG4gIC8vL1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiQnl0ZXNcIj5cclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjb250ZW50VHlwZVwiPlxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gc3RyaW5nXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBzdGF0aWMgY3JlYXRlRnJvbUJ5dGVzKGJ5dGVzOiBVaW50OEFycmF5LCBjb250ZW50VHlwZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCBibG9iU3RyID0gJyc7XHJcbiAgICBsZXQgYmxvYlByZWZpeDogc3RyaW5nO1xyXG4gICAgbGV0IGJsb2JEYXRhOiBzdHJpbmc7XHJcblxyXG4gICAgYmxvYlByZWZpeCA9IEJsb2JUeXBlLmdldEJsb2JQcmVmaXhGb3JDb250ZW50VHlwZShjb250ZW50VHlwZSk7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IGVuY29kaW5nOiBJU09fODg1OV8xX0VuY29kaW5nID0gSVNPXzg4NTlfMV9FbmNvZGluZy5JU09fODg1OV8xO1xyXG4gICAgICBibG9iRGF0YSA9IGVuY29kaW5nLkdldFN0cmluZyhieXRlcywgMCwgYnl0ZXMubGVuZ3RoKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChFeGNlcHRpb24pIHtcclxuICAgICAgYmxvYkRhdGEgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGJsb2JTdHIgPSBibG9iUHJlZml4ICsgYmxvYkRhdGE7XHJcblxyXG4gICAgcmV0dXJuIGJsb2JTdHI7XHJcbiAgfVxyXG5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJkZXN0XCI+XHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic3JjXCI+XHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPlxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgc3RhdGljIGNvcHlCbG9iKGRlc3Q6IHN0cmluZywgc3JjOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHNyY0J5dGVzOiBVaW50OEFycmF5O1xyXG4gICAgbGV0IGRlc3RCeXRlczogVWludDhBcnJheTtcclxuXHJcbiAgICBpZiAoc3JjID09PSBudWxsKVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIGVsc2UgaWYgKGRlc3QgPT09IG51bGwpXHJcbiAgICAgIHJldHVybiBzcmM7XHJcblxyXG4gICAgc3JjQnl0ZXMgPSBCbG9iVHlwZS5nZXRCeXRlcyhzcmMpO1xyXG5cclxuICAgIGxldCBkZXN0Q29udGVudFR5cGU6IHN0cmluZyA9IEJsb2JUeXBlLmdldENvbnRlbnRUeXBlKGRlc3QpO1xyXG4gICAgbGV0IHNyY0NvbnRlbnRUeXBlOiBzdHJpbmcgPSBCbG9iVHlwZS5nZXRDb250ZW50VHlwZShzcmMpO1xyXG5cclxuICAgIGlmIChzcmNDb250ZW50VHlwZSA9PT0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX0FOU0kgJiYgZGVzdENvbnRlbnRUeXBlID09PSBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5JQ09ERSlcclxuICAgICAgZGVzdEJ5dGVzID0gQmxvYlR5cGUuTWJUb1VuaWNvZGUoc3JjQnl0ZXMpO1xyXG4gICAgZWxzZSBpZiAoc3JjQ29udGVudFR5cGUgPT09IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9VTklDT0RFICYmIGRlc3RDb250ZW50VHlwZSA9PT0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX0FOU0kpXHJcbiAgICAgIGRlc3RCeXRlcyA9IEJsb2JUeXBlLlVuaWNvZGVUb01iKHNyY0J5dGVzKTtcclxuICAgIGVsc2VcclxuICAgICAgZGVzdEJ5dGVzID0gc3JjQnl0ZXM7XHJcblxyXG4gICAgZGVzdCA9IEJsb2JUeXBlLmNyZWF0ZUZyb21CeXRlcyhkZXN0Qnl0ZXMsIGRlc3RDb250ZW50VHlwZSk7XHJcblxyXG4gICAgcmV0dXJuIGRlc3Q7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IHJlbW92ZXMgYmxvYiBwcmVmaXggZnJvbSBzb3VyY2U8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic291cmNlXCI+LSBibG9iIHZhbHVlXHJcbiAgLy8vXHJcbiAgLy8vXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgc3RhdGljIHJlbW92ZUJsb2JQcmVmaXgoc291cmNlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IGlkeDogbnVtYmVyO1xyXG4gICAgaWYgKHNvdXJjZSAhPT0gbnVsbCkge1xyXG4gICAgICBpZHggPSBzb3VyY2UuaW5kZXhPZignOycpO1xyXG4gICAgICBpZiAoaWR4IDwgMClcclxuICAgICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVRvTG9nKFwiRXJyb3I6IGludmFsaWQgYmxvYiBwcmVmaXhcIiwgdHJ1ZSk7XHJcbiAgICAgIHJldHVybiBzb3VyY2Uuc3Vic3RyKGlkeCArIDEpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gY2hlY2tzIGlmIHRoZSBnaXZlbiBzdHJpbmcgaXMgYSB2YWxpZCBibG9iPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImJsb2JcIj5cclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IHRydWUgaWYgdGhlIGJsb2IgaXMgdmFsaWRcclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBpc1ZhbGlkQmxvYihibG9iOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGxldCBpc1ZhbGlkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBpZiAoYmxvYiA9PT0gbnVsbCB8fCBibG9iLmluZGV4T2YoJzsnKSA8IDApXHJcbiAgICAgIGlzVmFsaWQgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoaXNWYWxpZCkge1xyXG4gICAgICBsZXQgY29udGVudFR5cGU6IHN0cmluZyA9IEJsb2JUeXBlLmdldENvbnRlbnRUeXBlKGJsb2IpO1xyXG4gICAgICBpZiAoY29udGVudFR5cGUgIT09IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9BTlNJICYmIGNvbnRlbnRUeXBlICE9PSBCbG9iVHlwZS5DT05URU5UX1RZUEVfQklOQVJZICYmIGNvbnRlbnRUeXBlICE9PSBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5JQ09ERSAmJiBjb250ZW50VHlwZSAhPT0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX1VOS05PV04pXHJcbiAgICAgICAgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzVmFsaWQ7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgc2V0Q29udGVudFR5cGUoc3RyOiBzdHJpbmcsIGNvbnRlbnRUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBsZXQgcHJlZml4TGFzdEluZGV4OiBudW1iZXIgPSBzdHIuaW5kZXhPZihcIjtcIik7XHJcbiAgICAgIGxldCBwcmVmaXg6IHN0cmluZyA9IHN0ci5zdWJzdHIoMCwgcHJlZml4TGFzdEluZGV4KTtcclxuXHJcbiAgICAgIGxldCBkYXRhTGVuZ3RoOiBudW1iZXIgPSBzdHIubGVuZ3RoIC0gKHByZWZpeC5sZW5ndGggKyAxKTtcclxuICAgICAgbGV0IGRhdGE6IHN0cmluZyA9IHN0ci5zdWJzdHIocHJlZml4TGFzdEluZGV4ICsgMSwgZGF0YUxlbmd0aCk7XHJcblxyXG4gICAgICBsZXQgcHJlZml4VG9rZW5zOiBzdHJpbmdbXSA9IFN0clV0aWwudG9rZW5pemUocHJlZml4LCAvLHw7Lyk7XHJcblxyXG4gICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgR3VpQ29uc3RhbnRzLkJMT0JfUFJFRklYX0VMRU1FTlRTX0NPVU5UOyBpID0gaSArIDEpIHtcclxuICAgICAgICBpZiAoaSA9PT0gNClcclxuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIGNvbnRlbnRUeXBlICsgXCIsXCI7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgcHJlZml4VG9rZW5zW2ldICsgXCIsXCI7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHJlc3VsdC5zdWJzdHIoMCwgcmVzdWx0Lmxlbmd0aCAtIDEpICsgXCI7XCIgKyBkYXRhO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKEV4Y2VwdGlvbikge1xyXG4gICAgICB0aHJvdyBuZXcgQXBwbGljYXRpb25FeGNlcHRpb24oXCIgaW4gQmxvYlR5cGUuc2V0Q29udGVudFR5cGUgOiBpbnZhbGlkIGZvcm1hdFwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gUmVwbGFjZSB0aGUgdmVjdG9yJ3MgY2VsbCBhdHRyaWJ1dGUgaW4gdGhlIGJsb2IgcHJlZml4IGJ5IHRoZSBzcGVjaWZpZWQgb25lPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInN0clwiPmEgdmFsaWQgYmxvYiBzdHJpbmcgKGkuZS4gcHJlZml4O2RhdGEpIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidmVjQ2VsbEF0dHJcIj5hdHRyaWJ1dGUgdG8gaW5zZXJ0IGludG8gdGhlIHByZWZpeCA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gbW9kaWZpZWQgYmxvYiBzdHJpbmcgPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBTZXRWZWNDZWxsQXR0cihzdHI6IHN0cmluZywgdmVjQ2VsbEF0dHI6IFN0b3JhZ2VBdHRyaWJ1dGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdDogc3RyaW5nID0gXCJcIjtcclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCBwcmVmaXhMYXN0SW5kZXg6IG51bWJlciA9IHN0ci5pbmRleE9mKFwiO1wiKTtcclxuICAgICAgbGV0IHByZWZpeDogc3RyaW5nID0gc3RyLnN1YnN0cigwLCBwcmVmaXhMYXN0SW5kZXgpO1xyXG5cclxuICAgICAgbGV0IGRhdGE6IHN0cmluZyA9IHN0ci5zdWJzdHIocHJlZml4TGFzdEluZGV4ICsgMSk7XHJcblxyXG4gICAgICBsZXQgdG9rZW5zOiBzdHJpbmdbXSA9IFN0clV0aWwudG9rZW5pemUocHJlZml4LCAvLHw7Lyk7XHJcblxyXG4gICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgR3VpQ29uc3RhbnRzLkJMT0JfUFJFRklYX0VMRU1FTlRTX0NPVU5UOyBpID0gaSArIDEpIHtcclxuICAgICAgICBpZiAoaSA9PT0gMylcclxuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIDxzdHJpbmc+dmVjQ2VsbEF0dHIgKyBcIixcIjtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyB0b2tlbnNbaV0gKyBcIixcIjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gcmVzdWx0LnN1YnN0cigwLCByZXN1bHQubGVuZ3RoIC0gMSkgKyBcIjtcIiArIGRhdGE7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoRXhjZXB0aW9uKSB7XHJcbiAgICAgIHRocm93IG5ldyBBcHBsaWNhdGlvbkV4Y2VwdGlvbihcIiBpbiBYTUxwYXJzZXIuYmxvYlByZWZpeExlbmd0aCBpbnZhbGlkIGZvcm1hdFwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gUmV0dXJucyB0aGUgVmVjdG9yJyBjZWxsIGF0dHJpYnV0ZSBmcm9tIHRoZSBwcmVmaXguIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJibG9iU3RyXCI+QSB2YWxpZCBibG9iIHN0cmluZyAgKGkuZS4gcHJlZml4O2RhdGEpIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgR2V0VmVjQ2VsbEF0dHIoYmxvYlN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCB0b2tlbnM6IHN0cmluZ1tdID0gU3RyVXRpbC50b2tlbml6ZShibG9iU3RyLCAvLHw7Lyk7XHJcblxyXG4gICAgICByZXR1cm4gdG9rZW5zWzNdLmNoYXJBdCgwKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChFeGNlcHRpb24pIHtcclxuICAgICAgdGhyb3cgbmV3IEFwcGxpY2F0aW9uRXhjZXB0aW9uKFwiIGluIEJsb2JUeXBlLkdldFZlY0NlbGxBdHRyKCk6IGJsb2IgaXMgaW4gaW52YWxpZCBmb3JtYXRcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IENhbGN1bGF0ZSB0aGUgbGVuZ3RoIG9mIHRoZSBibG9iIHByZWZpeC4gVGhlIHByZWZpeCBpcyBpbiB0aGUgZm9ybWF0OlxyXG4gIC8vLyA8dHQ+XCJPYmpIYW5kbGUsVmFyaWFudElkeCxDb250ZW50VHlwZSxWZWNDZWxsQXR0cjtcIjwvdHQ+LiBUaGUgbGVuZ3RoIGluY2x1ZGVzIHRoZSBjb21tYXMgYW5kIHRoZVxyXG4gIC8vLyBzZW1pY29sb24uXHJcbiAgLy8vXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJibG9iXCI+YSB2YWxpZCBibG9iXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB0aGUgYmxvYiBwcmVmaXggbGVuZ3RoXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBzdGF0aWMgYmxvYlByZWZpeExlbmd0aChibG9iOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IHByZWZpeExlbmd0aDogbnVtYmVyID0gYmxvYi5pbmRleE9mKCc7JykgKyAxO1xyXG4gICAgICBsZXQgcHJlZml4OiBzdHJpbmcgPSBibG9iLnN1YnN0cigwLCBwcmVmaXhMZW5ndGgpO1xyXG5cclxuICAgICAgLy8gY2hlY2sgaWYgdGhlIHByZWZpeCBpcyB2YWxpZFxyXG4gICAgICBpZiAocHJlZml4TGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGxldCB0b2tlbnM6IHN0cmluZ1tdID0gU3RyVXRpbC50b2tlbml6ZShwcmVmaXgsIFwiLFwiKTtcclxuICAgICAgICBpZiAodG9rZW5zLmxlbmd0aCA9PT0gR3VpQ29uc3RhbnRzLkJMT0JfUFJFRklYX0VMRU1FTlRTX0NPVU5UKVxyXG4gICAgICAgICAgcmV0dXJuIHByZWZpeExlbmd0aDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY2F0Y2ggKEV4Y2VwdGlvbikge1xyXG4gICAgICAvLyBpbnZhbGlkIHByZWZpeFxyXG4gICAgfVxyXG5cclxuICAgIHRocm93IG5ldyBBcHBsaWNhdGlvbkV4Y2VwdGlvbihcIiBpbiBYTUxwYXJzZXIuYmxvYlByZWZpeExlbmd0aCBpbnZhbGlkIGZvcm1hdFwiKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gZ2V0cyB0aGUga2V5IGZyb20gYSBibG9iIHN0cmluZ1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiYmxvYlN0clwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgZ2V0S2V5KGJsb2JTdHI6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICBsZXQgdG9rZW5zOiBzdHJpbmdbXSA9IFN0clV0aWwudG9rZW5pemUoYmxvYlN0ciwgLyx8Oy8pO1xyXG4gICAgbGV0IGtleTogbnVtYmVyID0gMDtcclxuXHJcbiAgICBpZiAodG9rZW5zLmxlbmd0aCA+IDUpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBrZXkgPSBOTnVtYmVyLlBhcnNlKHRva2Vuc1swXSk7XHJcbiAgICAgIH1cclxuICAgICAgY2F0Y2ggKEV4Y2VwdGlvbikge1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGtleTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gY2FsY3VsYXRlcyB0aGUgYmxvYiBzaXplIGhlbGQgaW4gdGhlIHN0cmluZ1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiYmxvYlwiPiBUaGUgc3RyaW5nIGhvbGRpbmcgdGhlIGJsb2IgPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBnZXRCbG9iU2l6ZShibG9iOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgbGV0IHNpemU6IG51bWJlciA9IDA7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IHRva2Vuczogc3RyaW5nW10gPSBTdHJVdGlsLnRva2VuaXplKGJsb2IsIC8sfDsvKTtcclxuICAgICAgaWYgKHRva2Vucy5sZW5ndGggPiA1KSB7XHJcbiAgICAgICAgc2l6ZSA9IGJsb2IubGVuZ3RoO1xyXG4gICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCA1OyBpID0gaSArIDEpIHtcclxuICAgICAgICAgIHNpemUgPSBzaXplIC0gdG9rZW5zW2ldLmxlbmd0aDtcclxuICAgICAgICAgIHNpemUgPSBzaXplIC0gMTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoIChFeGNlcHRpb24pIHtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc2l6ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gUGFyc2UgY29udGVudCB0eXBlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjb250ZW50VHlwZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgUGFyc2VDb250ZW50VHlwZShjb250ZW50VHlwZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGxldCBuZXdDb250ZW50VHlwZTogc3RyaW5nID0gJyAnO1xyXG4gICAgc3dpdGNoIChjb250ZW50VHlwZSkge1xyXG4gICAgICBjYXNlIDA6XHJcbiAgICAgICAgbmV3Q29udGVudFR5cGUgPSBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5LTk9XTjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAxOlxyXG4gICAgICAgIG5ld0NvbnRlbnRUeXBlID0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX0FOU0k7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMjpcclxuICAgICAgICBuZXdDb250ZW50VHlwZSA9IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9VTklDT0RFO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDM6XHJcbiAgICAgICAgbmV3Q29udGVudFR5cGUgPSBCbG9iVHlwZS5DT05URU5UX1RZUEVfQklOQVJZO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ld0NvbnRlbnRUeXBlO1xyXG4gIH1cclxufVxyXG4iXX0=
|