@magic-xpa/gui 4.800.0-dev480.16 → 4.800.0-dev480.163

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.
Files changed (104) hide show
  1. package/bundles/magic-xpa-gui.umd.js +1038 -7529
  2. package/bundles/magic-xpa-gui.umd.js.map +1 -1
  3. package/bundles/magic-xpa-gui.umd.min.js +1 -1
  4. package/bundles/magic-xpa-gui.umd.min.js.map +1 -1
  5. package/esm2015/index.js +1 -1
  6. package/esm2015/magic-xpa-gui.js +1 -4
  7. package/esm2015/src/Commands.js +7 -114
  8. package/esm2015/src/Events.js +1 -517
  9. package/esm2015/src/EventsProcessor.js +1 -51
  10. package/esm2015/src/FocusManager.js +1 -13
  11. package/esm2015/src/GuiConstants.js +2 -11
  12. package/esm2015/src/GuiEnums.js +126 -130
  13. package/esm2015/src/GuiEnvironment.js +1 -1
  14. package/esm2015/src/IFlowMonitorQueue.js +1 -1
  15. package/esm2015/src/Manager.js +10 -148
  16. package/esm2015/src/UIBridge.js +1 -6
  17. package/esm2015/src/env/IEnvironment.js +1 -1
  18. package/esm2015/src/gui/ControlBase.js +1 -1
  19. package/esm2015/src/gui/GuiMgControl.js +1 -94
  20. package/esm2015/src/gui/GuiMgForm.js +1 -1
  21. package/esm2015/src/gui/KeyboardItem.js +5 -46
  22. package/esm2015/src/gui/LastFocusedVal.js +1 -5
  23. package/esm2015/src/gui/MgValue.js +1 -1
  24. package/esm2015/src/gui/PropParentInterface.js +1 -1
  25. package/esm2015/src/gui/low/DialogHandler.js +1 -10
  26. package/esm2015/src/gui/low/GuiCommand.js +1 -12
  27. package/esm2015/src/gui/low/GuiCommandQueue.js +1 -66
  28. package/esm2015/src/gui/low/GuiInteractive.js +2 -465
  29. package/esm2015/src/gui/low/Style.js +1 -9
  30. package/esm2015/src/management/RuntimeContextBase.js +11 -14
  31. package/esm2015/src/management/data/BlobType.js +0 -0
  32. package/esm2015/src/management/data/DcValues.js +8 -67
  33. package/esm2015/src/management/data/DcValuesBuilderBase.js +2 -37
  34. package/esm2015/src/management/data/FieldDef.js +1 -95
  35. package/esm2015/src/management/data/FieldsTable.js +2 -28
  36. package/esm2015/src/management/data/GuiDataViewBase.js +33 -72
  37. package/esm2015/src/management/data/GuiFieldBase.js +4 -39
  38. package/esm2015/src/management/data/IRecord.js +1 -1
  39. package/esm2015/src/management/data/IReferencedObject.js +1 -8
  40. package/esm2015/src/management/data/NUM_TYPE.js +14 -485
  41. package/esm2015/src/management/data/ObjectReferenceBase.js +1 -3
  42. package/esm2015/src/management/data/ObjectReferencesCollection.js +1 -2
  43. package/esm2015/src/management/data/RecordUtils.js +6 -112
  44. package/esm2015/src/management/data/VectorType.js +17 -252
  45. package/esm2015/src/management/data/VectorTypeBase.js +1 -35
  46. package/esm2015/src/management/events/IActionManager.js +1 -1
  47. package/esm2015/src/management/events/IGuiEventsManager.js +1 -1
  48. package/esm2015/src/management/exp/ExpressionInterface.js +4 -3
  49. package/esm2015/src/management/exp/GuiExpressionEvaluator.js +38 -155
  50. package/esm2015/src/management/gui/ControlTable.js +18 -72
  51. package/esm2015/src/management/gui/DisplayConvertor.js +43 -493
  52. package/esm2015/src/management/gui/FieldValidator.js +58 -339
  53. package/esm2015/src/management/gui/GuiControlPropertyAdapter.js +1 -1
  54. package/esm2015/src/management/gui/GuiFormPropertyAdapter.js +1 -8
  55. package/esm2015/src/management/gui/HebrewDate.js +3 -140
  56. package/esm2015/src/management/gui/Helps.js +2 -48
  57. package/esm2015/src/management/gui/MgControlBase.js +143 -876
  58. package/esm2015/src/management/gui/MgFormBase.js +68 -407
  59. package/esm2015/src/management/gui/PIC.js +56 -285
  60. package/esm2015/src/management/gui/PropDefaults.js +13 -48
  61. package/esm2015/src/management/gui/PropInterface.js +2 -4
  62. package/esm2015/src/management/gui/PropTable.js +72 -183
  63. package/esm2015/src/management/gui/Property.js +35 -372
  64. package/esm2015/src/management/gui/ValidationDetails.js +10 -52
  65. package/esm2015/src/management/gui/ValidationDetailsBase.js +12 -45
  66. package/esm2015/src/management/gui/WrongFormatException.js +1 -15
  67. package/esm2015/src/management/tasks/GuiDataCollection.js +1 -1
  68. package/esm2015/src/management/tasks/GuiTaskBase.js +38 -383
  69. package/esm2015/src/management/tasks/IMGDataTable.js +1 -1
  70. package/esm2015/src/management/tasks/ITask.js +1 -1
  71. package/esm2015/src/management/tasks/MgTimer.js +1 -16
  72. package/esm2015/src/management/tasks/TaskDefinitionId.js +8 -18
  73. package/esm2015/src/management/tasks/TaskDefinitionIdTableSaxHandler.js +1 -13
  74. package/esm2015/src/util/AuthenticationDialogHandler.js +1 -4
  75. package/esm2015/src/util/MemoryUtil.js +1 -41
  76. package/esm2015/src/util/ObjectReference.js +1 -8
  77. package/esm2015/src/util/ProcessLauncher.js +3 -21
  78. package/esm2015/src/util/UsernamePasswordCredentials.js +1 -9
  79. package/fesm2015/magic-xpa-gui.js +844 -7052
  80. package/fesm2015/magic-xpa-gui.js.map +1 -1
  81. package/magic-xpa-gui.d.ts +0 -3
  82. package/package.json +2 -2
  83. package/src/Commands.d.ts +1 -0
  84. package/src/Events.d.ts +0 -2
  85. package/src/GuiEnums.d.ts +125 -128
  86. package/src/env/IEnvironment.d.ts +3 -0
  87. package/src/gui/PropParentInterface.d.ts +1 -1
  88. package/src/gui/low/Style.d.ts +0 -3
  89. package/src/management/RuntimeContextBase.d.ts +2 -0
  90. package/src/management/data/GuiDataViewBase.d.ts +4 -4
  91. package/src/management/data/IRecord.d.ts +1 -1
  92. package/src/management/exp/ExpressionInterface.d.ts +3 -0
  93. package/src/management/exp/GuiExpressionEvaluator.d.ts +4 -6
  94. package/src/management/gui/ControlTable.d.ts +1 -1
  95. package/src/management/gui/DisplayConvertor.d.ts +1 -1
  96. package/src/management/gui/GuiControlPropertyAdapter.d.ts +1 -1
  97. package/src/management/gui/MgControlBase.d.ts +7 -7
  98. package/src/management/gui/MgFormBase.d.ts +6 -6
  99. package/src/management/gui/PIC.d.ts +1 -0
  100. package/src/management/gui/PropInterface.d.ts +2 -4
  101. package/src/management/gui/PropTable.d.ts +4 -5
  102. package/src/management/gui/Property.d.ts +1 -1
  103. package/src/management/tasks/GuiTaskBase.d.ts +8 -14
  104. package/src/management/tasks/TaskDefinitionId.d.ts +1 -0
@@ -34,9 +34,6 @@ export class GuiMgControl extends ControlBase {
34
34
  get IsTableHeaderChild() {
35
35
  return !this.IsRepeatable && this.IsTableChild;
36
36
  }
37
- /// <summary>
38
- /// get the name of the Control with the line number for repeatable controls
39
- /// </summary>
40
37
  getName(line) {
41
38
  let result;
42
39
  if (this.IsRepeatable) {
@@ -44,7 +41,6 @@ export class GuiMgControl extends ControlBase {
44
41
  result = this.Name + "_" + line;
45
42
  }
46
43
  else {
47
- // else there is no current row, yet (parsing time for example). Try first row.
48
44
  result = this.Name + "_0";
49
45
  }
50
46
  }
@@ -56,107 +52,50 @@ export class GuiMgControl extends ControlBase {
56
52
  get UniqueName() {
57
53
  return this.Name;
58
54
  }
59
- /// <summary>
60
- /// returns true if this control is a static control
61
- /// </summary>
62
55
  isStatic() {
63
56
  return this._type === MgControlType.CTRL_TYPE_LABEL || this._type === MgControlType.CTRL_TYPE_GROUP || this._type === MgControlType.CTRL_TYPE_TABLE ||
64
57
  this._type === MgControlType.CTRL_TYPE_COLUMN || this._type === MgControlType.CTRL_TYPE_STATUS_BAR || this._type === MgControlType.CTRL_TYPE_SB_IMAGE ||
65
58
  this._type === MgControlType.CTRL_TYPE_SB_LABEL || this._type === MgControlType.CTRL_TYPE_LINE;
66
59
  }
67
- /// <summary>
68
- /// return true for table control
69
- /// </summary>
70
- /// <returns>
71
- /// </returns>
72
60
  isTableControl() {
73
61
  return this._type === MgControlType.CTRL_TYPE_TABLE;
74
62
  }
75
- /// <summary>
76
- /// return true for tab control
77
- /// </summary>
78
- /// <returns>
79
- /// </returns>
80
63
  isTabControl() {
81
64
  return this._type === MgControlType.CTRL_TYPE_TAB;
82
65
  }
83
- /// <summary>
84
- /// return true for line control
85
- /// </summary>
86
- /// <returns>
87
- /// </returns>
88
66
  isLineControl() {
89
67
  return this._type === MgControlType.CTRL_TYPE_LINE;
90
68
  }
91
- /// <summary>
92
- /// return text control
93
- /// </summary>
94
- /// <returns>
95
- /// </returns>
96
69
  isTextControl() {
97
70
  return this._type === MgControlType.CTRL_TYPE_TEXT;
98
71
  }
99
- /// <summary>
100
- /// return true for image control
101
- /// </summary>
102
- /// <returns></returns>
103
72
  isImageControl() {
104
73
  return this._type === MgControlType.CTRL_TYPE_IMAGE;
105
74
  }
106
- /// <summary>
107
- /// returns true if this control is a sub form control
108
- /// </summary>
109
75
  isSubform() {
110
76
  return this._type === MgControlType.CTRL_TYPE_SUBFORM;
111
77
  }
112
- /// <summary>
113
- /// returns true if this control is a sub form control
114
- /// </summary>
115
78
  isRadio() {
116
79
  return this._type === MgControlType.CTRL_TYPE_RADIO;
117
80
  }
118
- /// <summary>
119
- /// returns true if this control is a ComboBox control
120
- /// </summary>
121
81
  isComboBox() {
122
82
  return this._type === MgControlType.CTRL_TYPE_COMBO;
123
83
  }
124
- /// <summary>
125
- /// returns true if this control is a ListBox control
126
- /// </summary>
127
84
  isListBox() {
128
85
  return this._type === MgControlType.CTRL_TYPE_LIST;
129
86
  }
130
- /// <summary>
131
- /// returns true if this control is a isButton control
132
- /// </summary>
133
87
  isButton() {
134
88
  return this._type === MgControlType.CTRL_TYPE_BUTTON;
135
89
  }
136
- /// <summary>
137
- /// returns true if this control is a label control
138
- /// </summary>
139
90
  isLabel() {
140
91
  return this._type === MgControlType.CTRL_TYPE_LABEL;
141
92
  }
142
- /// <summary>
143
- /// returns true if this control is a Group control
144
- /// </summary>
145
93
  isGroup() {
146
94
  return this._type === MgControlType.CTRL_TYPE_GROUP;
147
95
  }
148
- /// <summary>
149
- /// returns true if the control is either combo or list
150
- /// </summary>
151
- /// <returns>
152
- /// </returns>
153
96
  isSelectionCtrl() {
154
97
  return this._type === MgControlType.CTRL_TYPE_COMBO || this._type === MgControlType.CTRL_TYPE_LIST;
155
98
  }
156
- /// <summary>
157
- /// return true for browser control
158
- /// </summary>
159
- /// <returns></returns>
160
99
  isBrowserControl() {
161
100
  return this._type === MgControlType.CTRL_TYPE_BROWSER;
162
101
  }
@@ -166,11 +105,6 @@ export class GuiMgControl extends ControlBase {
166
105
  isColumnControl() {
167
106
  return this._type === MgControlType.CTRL_TYPE_COLUMN;
168
107
  }
169
- /// <summary>
170
- /// Returns true if the control is a choice control: CTRL_TYPE_TAB, CTRL_TYPE_COMBO, CTRL_TYPE_LIST,
171
- /// CTRL_TYPE_RADIO
172
- /// </summary>
173
- /// <returns></returns>
174
108
  isChoiceControl() {
175
109
  let val = false;
176
110
  switch (this._type) {
@@ -194,16 +128,9 @@ export class GuiMgControl extends ControlBase {
194
128
  return false;
195
129
  }
196
130
  }
197
- /// <summary>
198
- /// returns true if this control is support gradient
199
- /// </summary>
200
131
  SupportGradient() {
201
132
  return this.isButton() || this.isLabel() || this.isTabControl() || this.isGroup() || this.IsCheckBoxMainStyleButton() || this.IsRadioAppearanceButton();
202
133
  }
203
- /// <summary>
204
- /// return TRUE if the control is button and his style is text on image
205
- /// </summary>
206
- /// <returns></returns>
207
134
  IsImageButton() {
208
135
  let result = false;
209
136
  if (this.isButton()) {
@@ -211,10 +138,6 @@ export class GuiMgControl extends ControlBase {
211
138
  }
212
139
  return result;
213
140
  }
214
- /// <summary>
215
- /// return TRUE if the control is button and his style is push button
216
- /// </summary>
217
- /// <returns></returns>
218
141
  IsButtonPushButton() {
219
142
  let result = false;
220
143
  if (this.isButton()) {
@@ -222,10 +145,6 @@ export class GuiMgControl extends ControlBase {
222
145
  }
223
146
  return result;
224
147
  }
225
- /// <summary>
226
- /// return TRUE if the control is button and his style is Hyper Text
227
- /// </summary>
228
- /// <returns></returns>
229
148
  IsHyperTextButton() {
230
149
  let result = false;
231
150
  if (this.isButton()) {
@@ -233,10 +152,6 @@ export class GuiMgControl extends ControlBase {
233
152
  }
234
153
  return result;
235
154
  }
236
- /// <summary>
237
- /// returns TRUE if the main style of a check box is Button
238
- /// </summary>
239
- /// <returns></returns>
240
155
  IsCheckBoxMainStyleButton() {
241
156
  let result = false;
242
157
  if (this.isCheckBox()) {
@@ -244,10 +159,6 @@ export class GuiMgControl extends ControlBase {
244
159
  }
245
160
  return result;
246
161
  }
247
- /// <summary>
248
- /// reurn TRUE if the Appearance of a radio button is Button
249
- /// </summary>
250
- /// <returns></returns>
251
162
  IsRadioAppearanceButton() {
252
163
  let result = false;
253
164
  if (this.isRadio()) {
@@ -255,10 +166,6 @@ export class GuiMgControl extends ControlBase {
255
166
  }
256
167
  return result;
257
168
  }
258
- /// <summary>
259
- /// Function returns the controltype name when control type character is passed to it.
260
- /// </summary>
261
- /// <returns> Control type name</returns>
262
169
  getControlTypeName() {
263
170
  let result = null;
264
171
  switch (this._type) {
@@ -329,4 +236,4 @@ export class GuiMgControl extends ControlBase {
329
236
  return result;
330
237
  }
331
238
  }
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3VpTWdDb250cm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VpL3NyYy9ndWkvR3VpTWdDb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDbkcsT0FBTyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzFDLE1BQU0sT0FBZ0IsWUFBYSxTQUFRLFdBQVc7SUFBdEQ7O1FBQ1UsVUFBSyxHQUFrQixhQUFhLENBQUMsY0FBYyxDQUFDO1FBQzVELDhCQUF5QixHQUFZLEtBQUssQ0FBQztRQUMzQyw4QkFBeUIsR0FBWSxLQUFLLENBQUM7UUFrQjNDLGdCQUFXLEdBQXNCLGlCQUFpQixDQUFDLElBQUksQ0FBQztRQUN4RCxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQWE5QixVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBQ2xCLHNCQUFpQixHQUFzQixpQkFBaUIsQ0FBQyxJQUFJLENBQUM7UUFDOUQsMEJBQXFCLEdBQWlCLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDeEQsU0FBSSxHQUFXLElBQUksQ0FBQztRQUNwQixjQUFTLEdBQWMsSUFBSSxDQUFDO0lBMFU5QixDQUFDO0lBMVdDLElBQUksSUFBSSxDQUFDLEtBQW9CO1FBQzNCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxhQUFhLENBQUMsY0FBYyxFQUFFO1lBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQ3BCO2FBQ0k7WUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUdELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtB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TUFBTTtZQUNSLEtBQUssYUFBYSxDQUFDLGNBQWM7Z0JBQy9CLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQ2hCLE1BQU07U0FDVDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQge0NoZWNrYm94TWFpblN0eWxlLCBDdHJsQnV0dG9uVHlwZUd1aSwgTWdDb250cm9sVHlwZSwgUmJBcHBlYXJhbmNlfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge0RlYnVnLCBJbnQzMn0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7R3VpTWdGb3JtfSBmcm9tIFwiLi9HdWlNZ0Zvcm1cIjtcclxuaW1wb3J0IHtDb250cm9sQmFzZX0gZnJvbSBcIi4vQ29udHJvbEJhc2VcIjtcclxuXHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR3VpTWdDb250cm9sIGV4dGVuZHMgQ29udHJvbEJhc2Uge1xyXG4gIHByaXZhdGUgX3R5cGU6IE1nQ29udHJvbFR5cGUgPSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9OT05FO1xyXG4gIEZvcmNlUmVmcmVzaFByb3BlcnR5V2lkdGg6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBGb3JjZVJlZnJlc2hQcm9wZXJ0eUhpZ2h0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBDb25uZWN0ZWRDb250cm9sOiBHdWlNZ0NvbnRyb2w7XHJcblxyXG4gIHNldCBUeXBlKHZhbHVlOiBNZ0NvbnRyb2xUeXBlKSB7XHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfTk9ORSkge1xyXG4gICAgICB0aGlzLl90eXBlID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgRGVidWcuQXNzZXJ0KGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBnZXQgVHlwZSgpOiBNZ0NvbnRyb2xUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl90eXBlO1xyXG4gIH1cclxuXHJcbiAgQnV0dG9uU3R5bGU6IEN0cmxCdXR0b25UeXBlR3VpID0gQ3RybEJ1dHRvblR5cGVHdWkuTm9uZTtcclxuICBJc1JlcGVhdGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgZ2V0IElzVGFibGVDaGlsZCgpOiBib29sZWFuIHtcclxuICAgIGxldCBwYXJlbnQ6IEd1aU1nQ29udHJvbCA9ICgodGhpcy5nZXRQYXJlbnQoKSBpbnN0YW5jZW9mIEd1aU1nQ29udHJvbCkgPyA8R3VpTWdDb250cm9sPnRoaXMuZ2V0UGFyZW50KCkgOiBudWxsKTtcclxuICAgIGxldCBwYXJlbnRJc1RhYmxlOiBib29sZWFuID0gcGFyZW50ICE9PSBudWxsICYmIHBhcmVudC5pc1RhYmxlQ29udHJvbCgpO1xyXG4gICAgcmV0dXJuIHBhcmVudElzVGFibGUgJiYgIXRoaXMuaXNDb2x1bW5Db250cm9sKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0IElzVGFibGVIZWFkZXJDaGlsZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5Jc1JlcGVhdGFibGUgJiYgdGhpcy5Jc1RhYmxlQ2hpbGQ7XHJcbiAgfVxyXG5cclxuICBMYXllcjogbnVtYmVyID0gMDtcclxuICBDaGVja0JveE1haW5TdHlsZTogQ2hlY2tib3hNYWluU3R5bGUgPSBDaGVja2JveE1haW5TdHlsZS5Ob25lO1xyXG4gIFJhZGlvQnV0dG9uQXBwZWFyYW5jZTogUmJBcHBlYXJhbmNlID0gUmJBcHBlYXJhbmNlLk5vbmU7XHJcbiAgTmFtZTogc3RyaW5nID0gbnVsbDtcclxuICBHdWlNZ0Zvcm06IEd1aU1nRm9ybSA9IG51bGw7XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IHRoZSBuYW1lIG9mIHRoZSBDb250cm9sIHdpdGggdGhlIGxpbmUgbnVtYmVyIGZvciByZXBlYXRhYmxlIGNvbnRyb2xzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXROYW1lKGxpbmU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmc7XHJcbiAgICBpZiAodGhpcy5Jc1JlcGVhdGFibGUpIHtcclxuICAgICAgaWYgKGxpbmUgPiBJbnQzMi5NaW5WYWx1ZSkge1xyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMuTmFtZSArIFwiX1wiICsgbGluZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICAvLyBlbHNlIHRoZXJlIGlzIG5vIGN1cnJlbnQgcm93LCB5ZXQgKHBhcnNpbmcgdGltZSBmb3IgZXhhbXBsZSkuIFRyeSBmaXJzdCByb3cuXHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5OYW1lICsgXCJfMFwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmVzdWx0ID0gdGhpcy5OYW1lO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIGFic3RyYWN0IGdldFBhcmVudCgpOiBhbnk7XHJcblxyXG4gIGFic3RyYWN0IGdldCBUYXNrVGFnKCk6IHN0cmluZztcclxuXHJcbiAgZ2V0IFVuaXF1ZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLk5hbWU7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiB0aGlzIGNvbnRyb2wgaXMgYSBzdGF0aWMgY29udHJvbFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgaXNTdGF0aWMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfTEFCRUwgfHwgdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfR1JPVVAgfHwgdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfVEFCTEUgfHxcclxuICAgICAgdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfQ09MVU1OIHx8IHRoaXMuX3R5cGUgPT09IE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX1NUQVRVU19CQVIgfHwgdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfU0JfSU1BR0UgfHxcclxuICAgICAgdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfU0JfTEFCRUwgfHwgdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfTElORTtcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRydWUgZm9yIHRhYmxlIGNvbnRyb2xcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz5cclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIGlzVGFibGVDb250cm9sKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGUgPT09IE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX1RBQkxFO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0cnVlIGZvciB0YWIgY29udHJvbFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPlxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgaXNUYWJDb250cm9sKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGUgPT09IE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX1RBQjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdHJ1ZSBmb3IgbGluZSBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+XHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBpc0xpbmVDb250cm9sKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGUgPT09IE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0xJTkU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRleHQgY29udHJvbFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPlxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgaXNUZXh0Q29udHJvbCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl90eXBlID09PSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9URVhUO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0cnVlIGZvciBpbWFnZSBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIGlzSW1hZ2VDb250cm9sKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGUgPT09IE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0lNQUdFO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiB0aGlzIGNvbnRyb2wgaXMgYSBzdWIgZm9ybSBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBpc1N1YmZvcm0oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfU1VCRk9STTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRydWUgaWYgdGhpcyBjb250cm9sIGlzIGEgc3ViIGZvcm0gY29udHJvbFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgaXNSYWRpbygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl90eXBlID09PSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9SQURJTztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRydWUgaWYgdGhpcyBjb250cm9sIGlzIGEgQ29tYm9Cb3ggY29udHJvbFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgaXNDb21ib0JveCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl90eXBlID09PSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9DT01CTztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRydWUgaWYgdGhpcyBjb250cm9sIGlzIGEgTGlzdEJveCBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBpc0xpc3RCb3goKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfTElTVDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRydWUgaWYgdGhpcyBjb250cm9sIGlzIGEgaXNCdXR0b24gY29udHJvbFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgaXNCdXR0b24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfQlVUVE9OO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiB0aGlzIGNvbnRyb2wgaXMgYSBsYWJlbCBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBpc0xhYmVsKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGUgPT09IE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0xBQkVMO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiB0aGlzIGNvbnRyb2wgaXMgYSBHcm91cCBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBpc0dyb3VwKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGUgPT09IE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0dST1VQO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiB0aGUgY29udHJvbCBpcyBlaXRoZXIgY29tYm8gb3IgbGlzdFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPlxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgaXNTZWxlY3Rpb25DdHJsKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGUgPT09IE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0NPTUJPIHx8IHRoaXMuX3R5cGUgPT09IE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0xJU1Q7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRydWUgZm9yIGJyb3dzZXIgY29udHJvbFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBpc0Jyb3dzZXJDb250cm9sKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGUgPT09IE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0JST1dTRVI7XHJcbiAgfVxyXG5cclxuICBpc0NoZWNrQm94KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGUgPT09IE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0NIRUNLQk9YO1xyXG4gIH1cclxuXHJcbiAgaXNDb2x1bW5Db250cm9sKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGUgPT09IE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0NPTFVNTjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbnRyb2wgaXMgYSBjaG9pY2UgY29udHJvbDogQ1RSTF9UWVBFX1RBQiwgQ1RSTF9UWVBFX0NPTUJPLCBDVFJMX1RZUEVfTElTVCxcclxuICAvLy8gICBDVFJMX1RZUEVfUkFESU9cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgaXNDaG9pY2VDb250cm9sKCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHZhbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgc3dpdGNoICh0aGlzLl90eXBlKSB7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfVEFCOlxyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0NPTUJPOlxyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0xJU1Q6XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfUkFESU86XHJcbiAgICAgICAgdmFsID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiB2YWw7XHJcbiAgfVxyXG5cclxuICBpc0NvbnRhaW5lcigpOiBib29sZWFuIHtcclxuICAgIHN3aXRjaCAodGhpcy5fdHlwZSkge1xyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX1RBQjpcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9UQUJMRTpcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9HUk9VUDpcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9DT05UQUlORVI6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiB0aGlzIGNvbnRyb2wgaXMgc3VwcG9ydCBncmFkaWVudFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgU3VwcG9ydEdyYWRpZW50KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNCdXR0b24oKSB8fCB0aGlzLmlzTGFiZWwoKSB8fCB0aGlzLmlzVGFiQ29udHJvbCgpIHx8IHRoaXMuaXNHcm91cCgpIHx8IHRoaXMuSXNDaGVja0JveE1haW5TdHlsZUJ1dHRvbigpIHx8IHRoaXMuSXNSYWRpb0FwcGVhcmFuY2VCdXR0b24oKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gVFJVRSBpZiB0aGUgY29udHJvbCBpcyBidXR0b24gYW5kIGhpcyBzdHlsZSBpcyB0ZXh0IG9uIGltYWdlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIElzSW1hZ2VCdXR0b24oKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5pc0J1dHRvbigpKSB7XHJcbiAgICAgIHJlc3VsdCA9ICh0aGlzLkJ1dHRvblN0eWxlID09PSBDdHJsQnV0dG9uVHlwZUd1aS5JbWFnZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiBUUlVFIGlmIHRoZSBjb250cm9sIGlzIGJ1dHRvbiBhbmQgaGlzIHN0eWxlIGlzICBwdXNoIGJ1dHRvblxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBJc0J1dHRvblB1c2hCdXR0b24oKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5pc0J1dHRvbigpKSB7XHJcbiAgICAgIHJlc3VsdCA9ICh0aGlzLkJ1dHRvblN0eWxlID09PSBDdHJsQnV0dG9uVHlwZUd1aS5QdXNoKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIFRSVUUgaWYgdGhlIGNvbnRyb2wgaXMgYnV0dG9uIGFuZCBoaXMgc3R5bGUgaXMgSHlwZXIgVGV4dFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBJc0h5cGVyVGV4dEJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmlzQnV0dG9uKCkpIHtcclxuICAgICAgcmVzdWx0ID0gKHRoaXMuQnV0dG9uU3R5bGUgPT09IEN0cmxCdXR0b25UeXBlR3VpLkh5cGVydGV4dCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgVFJVRSBpZiB0aGUgIG1haW4gc3R5bGUgb2YgYSBjaGVjayBib3ggaXMgQnV0dG9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIElzQ2hlY2tCb3hNYWluU3R5bGVCdXR0b24oKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5pc0NoZWNrQm94KCkpIHtcclxuICAgICAgcmVzdWx0ID0gKHRoaXMuQ2hlY2tCb3hNYWluU3R5bGUgPT09IENoZWNrYm94TWFpblN0eWxlLkJ1dHRvbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldXJuIFRSVUUgaWYgdGhlICBBcHBlYXJhbmNlIG9mIGEgcmFkaW8gYnV0dG9uIGlzIEJ1dHRvblxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBJc1JhZGlvQXBwZWFyYW5jZUJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmlzUmFkaW8oKSkge1xyXG4gICAgICByZXN1bHQgPSAodGhpcy5SYWRpb0J1dHRvbkFwcGVhcmFuY2UgPT09IFJiQXBwZWFyYW5jZS5CdXR0b24pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBGdW5jdGlvbiByZXR1cm5zIHRoZSBjb250cm9sdHlwZSBuYW1lIHdoZW4gY29udHJvbCB0eXBlIGNoYXJhY3RlciBpcyBwYXNzZWQgdG8gaXQuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IENvbnRyb2wgdHlwZSBuYW1lPC9yZXR1cm5zPlxyXG4gIGdldENvbnRyb2xUeXBlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdDogc3RyaW5nID0gbnVsbDtcclxuICAgIHN3aXRjaCAodGhpcy5fdHlwZSkge1xyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX1NUQVRVU19CQVI6XHJcbiAgICAgICAgcmVzdWx0ID0gXCJTdGF0dXMgYmFyXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfU0JfTEFCRUw6XHJcbiAgICAgICAgcmVzdWx0ID0gXCJTdGF0dXMgYmFyIGxhYmVsXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfU0JfSU1BR0U6XHJcbiAgICAgICAgcmVzdWx0ID0gXCJTdGF0dXMgYmFyIGltYWdlXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfVEFCTEU6XHJcbiAgICAgICAgcmVzdWx0ID0gXCJUYWJsZVwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0JVVFRPTjpcclxuICAgICAgICByZXN1bHQgPSBcIkJ1dHRvblwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0NIRUNLQk9YOlxyXG4gICAgICAgIHJlc3VsdCA9IFwiQ2hlY2tib3hcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9DT01CTzpcclxuICAgICAgICByZXN1bHQgPSBcIkNvbWJvXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfTElTVDpcclxuICAgICAgICByZXN1bHQgPSBcIkxpc3RcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9TVUJGT1JNOlxyXG4gICAgICAgIHJlc3VsdCA9IFwiU3ViZm9ybVwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0dST1VQOlxyXG4gICAgICAgIHJlc3VsdCA9IFwiR3JvdXBib3hcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9JTUFHRTpcclxuICAgICAgICByZXN1bHQgPSBcIkltYWdlXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfVEFCOlxyXG4gICAgICAgIHJlc3VsdCA9IFwiVGFiXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfQ09MVU1OOlxyXG4gICAgICAgIHJlc3VsdCA9IFwiQ29sdW1uXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfTEFCRUw6XHJcbiAgICAgICAgcmVzdWx0ID0gXCJMYWJlbFwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0ZSQU1FX1NFVDpcclxuICAgICAgICByZXN1bHQgPSBcIkZyYW1lIHNldFwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0NPTlRBSU5FUjpcclxuICAgICAgICByZXN1bHQgPSBcIkNvbnRhaW5lclwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX1JBRElPOlxyXG4gICAgICAgIHJlc3VsdCA9IFwiUmFkaW9cIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9URVhUOlxyXG4gICAgICAgIHJlc3VsdCA9IFwiVGV4dFwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0ZSQU1FX0ZPUk06XHJcbiAgICAgICAgcmVzdWx0ID0gXCJGcmFtZSBmb3JtXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfQlJPV1NFUjpcclxuICAgICAgICByZXN1bHQgPSBcIkJyb3dzZXJcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9MSU5FOlxyXG4gICAgICAgIHJlc3VsdCA9IFwiTGluZVwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3VpTWdDb250cm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VpL3NyYy9ndWkvR3VpTWdDb250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDbkcsT0FBTyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzFDLE1BQU0sT0FBZ0IsWUFBYSxTQUFRLFdBQVc7SUFBdEQ7O1FBQ1UsVUFBSyxHQUFrQixhQUFhLENBQUMsY0FBYyxDQUFDO1FBQzVELDhCQUF5QixHQUFZLEtBQUssQ0FBQztRQUMzQyw4QkFBeUIsR0FBWSxLQUFLLENBQUM7UUFrQjNDLGdCQUFXLEdBQXNCLGlCQUFpQixDQUFDLElBQUksQ0FBQztRQUN4RCxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQWE5QixVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBQ2xCLHNCQUFpQixHQUFzQixpQkFBaUIsQ0FBQyxJQUFJLENBQUM7UUFDOUQsMEJBQXFCLEdBQWlCLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDeEQsU0FBSSxHQUFXLElBQUksQ0FBQztRQUNwQixjQUFTLEdBQWMsSUFBSSxDQUFDO0lBMFU5QixDQUFDO0lBMVdDLElBQUksSUFBSSxDQUFDLEtBQW9CO1FBQzNCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxhQUFhLENBQUMsY0FBYyxFQUFFO1lBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQ3BCO2FBQ0k7WUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUdELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFD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bmltcG9ydCB7Q2hlY2tib3hNYWluU3R5bGUsIEN0cmxCdXR0b25UeXBlR3VpLCBNZ0NvbnRyb2xUeXBlLCBSYkFwcGVhcmFuY2V9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7RGVidWcsIEludDMyfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuaW1wb3J0IHtHdWlNZ0Zvcm19IGZyb20gXCIuL0d1aU1nRm9ybVwiO1xyXG5pbXBvcnQge0NvbnRyb2xCYXNlfSBmcm9tIFwiLi9Db250cm9sQmFzZVwiO1xyXG5cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHdWlNZ0NvbnRyb2wgZXh0ZW5kcyBDb250cm9sQmFzZSB7XHJcbiAgcHJpdmF0ZSBfdHlwZTogTWdDb250cm9sVHlwZSA9IE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX05PTkU7XHJcbiAgRm9yY2VSZWZyZXNoUHJvcGVydHlXaWR0aDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEZvcmNlUmVmcmVzaFByb3BlcnR5SGlnaHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIENvbm5lY3RlZENvbnRyb2w6IEd1aU1nQ29udHJvbDtcclxuXHJcbiAgc2V0IFR5cGUodmFsdWU6IE1nQ29udHJvbFR5cGUpIHtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9OT05FKSB7XHJcbiAgICAgIHRoaXMuX3R5cGUgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBEZWJ1Zy5Bc3NlcnQoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGdldCBUeXBlKCk6IE1nQ29udHJvbFR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XHJcbiAgfVxyXG5cclxuICBCdXR0b25TdHlsZTogQ3RybEJ1dHRvblR5cGVHdWkgPSBDdHJsQnV0dG9uVHlwZUd1aS5Ob25lO1xyXG4gIElzUmVwZWF0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBnZXQgSXNUYWJsZUNoaWxkKCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHBhcmVudDogR3VpTWdDb250cm9sID0gKCh0aGlzLmdldFBhcmVudCgpIGluc3RhbmNlb2YgR3VpTWdDb250cm9sKSA/IDxHdWlNZ0NvbnRyb2w+dGhpcy5nZXRQYXJlbnQoKSA6IG51bGwpO1xyXG4gICAgbGV0IHBhcmVudElzVGFibGU6IGJvb2xlYW4gPSBwYXJlbnQgIT09IG51bGwgJiYgcGFyZW50LmlzVGFibGVDb250cm9sKCk7XHJcbiAgICByZXR1cm4gcGFyZW50SXNUYWJsZSAmJiAhdGhpcy5pc0NvbHVtbkNvbnRyb2woKTtcclxuICB9XHJcblxyXG5cclxuICBnZXQgSXNUYWJsZUhlYWRlckNoaWxkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLklzUmVwZWF0YWJsZSAmJiB0aGlzLklzVGFibGVDaGlsZDtcclxuICB9XHJcblxyXG4gIExheWVyOiBudW1iZXIgPSAwO1xyXG4gIENoZWNrQm94TWFpblN0eWxlOiBDaGVja2JveE1haW5TdHlsZSA9IENoZWNrYm94TWFpblN0eWxlLk5vbmU7XHJcbiAgUmFkaW9CdXR0b25BcHBlYXJhbmNlOiBSYkFwcGVhcmFuY2UgPSBSYkFwcGVhcmFuY2UuTm9uZTtcclxuICBOYW1lOiBzdHJpbmcgPSBudWxsO1xyXG4gIEd1aU1nRm9ybTogR3VpTWdGb3JtID0gbnVsbDtcclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgdGhlIG5hbWUgb2YgdGhlIENvbnRyb2wgd2l0aCB0aGUgbGluZSBudW1iZXIgZm9yIHJlcGVhdGFibGUgY29udHJvbHNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldE5hbWUobGluZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGxldCByZXN1bHQ6IHN0cmluZztcclxuICAgIGlmICh0aGlzLklzUmVwZWF0YWJsZSkge1xyXG4gICAgICBpZiAobGluZSA+IEludDMyLk1pblZhbHVlKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5OYW1lICsgXCJfXCIgKyBsaW5lO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIC8vIGVsc2UgdGhlcmUgaXMgbm8gY3VycmVudCByb3csIHlldCAocGFyc2luZyB0aW1lIGZvciBleGFtcGxlKS4gVHJ5IGZpcnN0IHJvdy5cclxuICAgICAgICByZXN1bHQgPSB0aGlzLk5hbWUgKyBcIl8wXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXN1bHQgPSB0aGlzLk5hbWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgYWJzdHJhY3QgZ2V0UGFyZW50KCk6IGFueTtcclxuXHJcbiAgYWJzdHJhY3QgZ2V0IFRhc2tUYWcoKTogc3RyaW5nO1xyXG5cclxuICBnZXQgVW5pcXVlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuTmFtZTtcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0cnVlIGlmIHRoaXMgY29udHJvbCBpcyBhIHN0YXRpYyBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBpc1N0YXRpYygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl90eXBlID09PSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9MQUJFTCB8fCB0aGlzLl90eXBlID09PSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9HUk9VUCB8fCB0aGlzLl90eXBlID09PSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9UQUJMRSB8fFxyXG4gICAgICB0aGlzLl90eXBlID09PSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9DT0xVTU4gfHwgdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfU1RBVFVTX0JBUiB8fCB0aGlzLl90eXBlID09PSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9TQl9JTUFHRSB8fFxyXG4gICAgICB0aGlzLl90eXBlID09PSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9TQl9MQUJFTCB8fCB0aGlzLl90eXBlID09PSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9MSU5FO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdHJ1ZSBmb3IgdGFibGUgY29udHJvbFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPlxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgaXNUYWJsZUNvbnRyb2woKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfVEFCTEU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRydWUgZm9yIHRhYiBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+XHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBpc1RhYkNvbnRyb2woKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfVEFCO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0cnVlIGZvciBsaW5lIGNvbnRyb2xcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz5cclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIGlzTGluZUNvbnRyb2woKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfTElORTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdGV4dCBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+XHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBpc1RleHRDb250cm9sKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGUgPT09IE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX1RFWFQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRydWUgZm9yIGltYWdlIGNvbnRyb2xcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgaXNJbWFnZUNvbnRyb2woKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfSU1BR0U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0cnVlIGlmIHRoaXMgY29udHJvbCBpcyBhIHN1YiBmb3JtIGNvbnRyb2xcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGlzU3ViZm9ybSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl90eXBlID09PSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9TVUJGT1JNO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiB0aGlzIGNvbnRyb2wgaXMgYSBzdWIgZm9ybSBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBpc1JhZGlvKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGUgPT09IE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX1JBRElPO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiB0aGlzIGNvbnRyb2wgaXMgYSBDb21ib0JveCBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBpc0NvbWJvQm94KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGUgPT09IE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0NPTUJPO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiB0aGlzIGNvbnRyb2wgaXMgYSBMaXN0Qm94IGNvbnRyb2xcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGlzTGlzdEJveCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl90eXBlID09PSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9MSVNUO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiB0aGlzIGNvbnRyb2wgaXMgYSBpc0J1dHRvbiBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBpc0J1dHRvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl90eXBlID09PSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9CVVRUT047XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0cnVlIGlmIHRoaXMgY29udHJvbCBpcyBhIGxhYmVsIGNvbnRyb2xcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGlzTGFiZWwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfTEFCRUw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0cnVlIGlmIHRoaXMgY29udHJvbCBpcyBhIEdyb3VwIGNvbnRyb2xcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGlzR3JvdXAoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfR1JPVVA7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0cnVlIGlmIHRoZSBjb250cm9sIGlzIGVpdGhlciBjb21ibyBvciBsaXN0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+XHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBpc1NlbGVjdGlvbkN0cmwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfQ09NQk8gfHwgdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfTElTVDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdHJ1ZSBmb3IgYnJvd3NlciBjb250cm9sXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIGlzQnJvd3NlckNvbnRyb2woKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfQlJPV1NFUjtcclxuICB9XHJcblxyXG4gIGlzQ2hlY2tCb3goKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfQ0hFQ0tCT1g7XHJcbiAgfVxyXG5cclxuICBpc0NvbHVtbkNvbnRyb2woKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZSA9PT0gTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfQ09MVU1OO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29udHJvbCBpcyBhIGNob2ljZSBjb250cm9sOiBDVFJMX1RZUEVfVEFCLCBDVFJMX1RZUEVfQ09NQk8sIENUUkxfVFlQRV9MSVNULFxyXG4gIC8vLyAgIENUUkxfVFlQRV9SQURJT1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBpc0Nob2ljZUNvbnRyb2woKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgdmFsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBzd2l0Y2ggKHRoaXMuX3R5cGUpIHtcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9UQUI6XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfQ09NQk86XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfTElTVDpcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9SQURJTzpcclxuICAgICAgICB2YWwgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbDtcclxuICB9XHJcblxyXG4gIGlzQ29udGFpbmVyKCk6IGJvb2xlYW4ge1xyXG4gICAgc3dpdGNoICh0aGlzLl90eXBlKSB7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfVEFCOlxyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX1RBQkxFOlxyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0dST1VQOlxyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0NPTlRBSU5FUjpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0cnVlIGlmIHRoaXMgY29udHJvbCBpcyBzdXBwb3J0IGdyYWRpZW50XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBTdXBwb3J0R3JhZGllbnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0J1dHRvbigpIHx8IHRoaXMuaXNMYWJlbCgpIHx8IHRoaXMuaXNUYWJDb250cm9sKCkgfHwgdGhpcy5pc0dyb3VwKCkgfHwgdGhpcy5Jc0NoZWNrQm94TWFpblN0eWxlQnV0dG9uKCkgfHwgdGhpcy5Jc1JhZGlvQXBwZWFyYW5jZUJ1dHRvbigpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiBUUlVFIGlmIHRoZSBjb250cm9sIGlzIGJ1dHRvbiBhbmQgaGlzIHN0eWxlIGlzIHRleHQgb24gaW1hZ2VcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgSXNJbWFnZUJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmlzQnV0dG9uKCkpIHtcclxuICAgICAgcmVzdWx0ID0gKHRoaXMuQnV0dG9uU3R5bGUgPT09IEN0cmxCdXR0b25UeXBlR3VpLkltYWdlKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIFRSVUUgaWYgdGhlIGNvbnRyb2wgaXMgYnV0dG9uIGFuZCBoaXMgc3R5bGUgaXMgIHB1c2ggYnV0dG9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIElzQnV0dG9uUHVzaEJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmlzQnV0dG9uKCkpIHtcclxuICAgICAgcmVzdWx0ID0gKHRoaXMuQnV0dG9uU3R5bGUgPT09IEN0cmxCdXR0b25UeXBlR3VpLlB1c2gpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gVFJVRSBpZiB0aGUgY29udHJvbCBpcyBidXR0b24gYW5kIGhpcyBzdHlsZSBpcyBIeXBlciBUZXh0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIElzSHlwZXJUZXh0QnV0dG9uKCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuaXNCdXR0b24oKSkge1xyXG4gICAgICByZXN1bHQgPSAodGhpcy5CdXR0b25TdHlsZSA9PT0gQ3RybEJ1dHRvblR5cGVHdWkuSHlwZXJ0ZXh0KTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyBUUlVFIGlmIHRoZSAgbWFpbiBzdHlsZSBvZiBhIGNoZWNrIGJveCBpcyBCdXR0b25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgSXNDaGVja0JveE1haW5TdHlsZUJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmlzQ2hlY2tCb3goKSkge1xyXG4gICAgICByZXN1bHQgPSAodGhpcy5DaGVja0JveE1haW5TdHlsZSA9PT0gQ2hlY2tib3hNYWluU3R5bGUuQnV0dG9uKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV1cm4gVFJVRSBpZiB0aGUgIEFwcGVhcmFuY2Ugb2YgYSByYWRpbyBidXR0b24gaXMgQnV0dG9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIElzUmFkaW9BcHBlYXJhbmNlQnV0dG9uKCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuaXNSYWRpbygpKSB7XHJcbiAgICAgIHJlc3VsdCA9ICh0aGlzLlJhZGlvQnV0dG9uQXBwZWFyYW5jZSA9PT0gUmJBcHBlYXJhbmNlLkJ1dHRvbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEZ1bmN0aW9uIHJldHVybnMgdGhlIGNvbnRyb2x0eXBlIG5hbWUgd2hlbiBjb250cm9sIHR5cGUgY2hhcmFjdGVyIGlzIHBhc3NlZCB0byBpdC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gQ29udHJvbCB0eXBlIG5hbWU8L3JldHVybnM+XHJcbiAgZ2V0Q29udHJvbFR5cGVOYW1lKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmcgPSBudWxsO1xyXG4gICAgc3dpdGNoICh0aGlzLl90eXBlKSB7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfU1RBVFVTX0JBUjpcclxuICAgICAgICByZXN1bHQgPSBcIlN0YXR1cyBiYXJcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9TQl9MQUJFTDpcclxuICAgICAgICByZXN1bHQgPSBcIlN0YXR1cyBiYXIgbGFiZWxcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9TQl9JTUFHRTpcclxuICAgICAgICByZXN1bHQgPSBcIlN0YXR1cyBiYXIgaW1hZ2VcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9UQUJMRTpcclxuICAgICAgICByZXN1bHQgPSBcIlRhYmxlXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfQlVUVE9OOlxyXG4gICAgICAgIHJlc3VsdCA9IFwiQnV0dG9uXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfQ0hFQ0tCT1g6XHJcbiAgICAgICAgcmVzdWx0ID0gXCJDaGVja2JveFwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0NPTUJPOlxyXG4gICAgICAgIHJlc3VsdCA9IFwiQ29tYm9cIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9MSVNUOlxyXG4gICAgICAgIHJlc3VsdCA9IFwiTGlzdFwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX1NVQkZPUk06XHJcbiAgICAgICAgcmVzdWx0ID0gXCJTdWJmb3JtXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfR1JPVVA6XHJcbiAgICAgICAgcmVzdWx0ID0gXCJHcm91cGJveFwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0lNQUdFOlxyXG4gICAgICAgIHJlc3VsdCA9IFwiSW1hZ2VcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9UQUI6XHJcbiAgICAgICAgcmVzdWx0ID0gXCJUYWJcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9DT0xVTU46XHJcbiAgICAgICAgcmVzdWx0ID0gXCJDb2x1bW5cIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9MQUJFTDpcclxuICAgICAgICByZXN1bHQgPSBcIkxhYmVsXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfRlJBTUVfU0VUOlxyXG4gICAgICAgIHJlc3VsdCA9IFwiRnJhbWUgc2V0XCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfQ09OVEFJTkVSOlxyXG4gICAgICAgIHJlc3VsdCA9IFwiQ29udGFpbmVyXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfUkFESU86XHJcbiAgICAgICAgcmVzdWx0ID0gXCJSYWRpb1wiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX1RFWFQ6XHJcbiAgICAgICAgcmVzdWx0ID0gXCJUZXh0XCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWdDb250cm9sVHlwZS5DVFJMX1RZUEVfRlJBTUVfRk9STTpcclxuICAgICAgICByZXN1bHQgPSBcIkZyYW1lIGZvcm1cIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9CUk9XU0VSOlxyXG4gICAgICAgIHJlc3VsdCA9IFwiQnJvd3NlclwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1nQ29udHJvbFR5cGUuQ1RSTF9UWVBFX0xJTkU6XHJcbiAgICAgICAgcmVzdWx0ID0gXCJMaW5lXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG5cclxuIl19
@@ -1,4 +1,4 @@
1
1
  import { ControlBase } from "./ControlBase";
2
2
  export class GuiMgForm extends ControlBase {
3
3
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3VpTWdGb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VpL3NyYy9ndWkvR3VpTWdGb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFMUMsTUFBTSxPQUFnQixTQUFVLFNBQVEsV0FBVztDQUVsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29udHJvbEJhc2V9IGZyb20gXCIuL0NvbnRyb2xCYXNlXCI7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR3VpTWdGb3JtIGV4dGVuZHMgQ29udHJvbEJhc2Uge1xyXG5cclxufVxyXG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3VpTWdGb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VpL3NyYy9ndWkvR3VpTWdGb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFMUMsTUFBTSxPQUFnQixTQUFVLFNBQVEsV0FBVztDQUVsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29udHJvbEJhc2V9IGZyb20gXCIuL0NvbnRyb2xCYXNlXCI7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR3VpTWdGb3JtIGV4dGVuZHMgQ29udHJvbEJhc2Uge1xyXG5cclxufVxyXG4iXX0=
@@ -1,13 +1,10 @@
1
1
  import { Modifiers } from "../GuiEnums";
2
2
  import { StringBuilder } from "@magic-xpa/mscorelib";
3
3
  import { GuiConstants } from "../GuiConstants";
4
- /// <summary>
5
- /// data for <kbditm>
6
- /// </summary>
7
4
  export class KeyboardItem {
8
5
  constructor(cKeyCodeOrActionId_, cModifierOrKeyCode_, modifier_, states_) {
9
6
  this._keyCode = 0;
10
- this._modifier = Modifiers.MODIFIER_NONE; // Alt|Ctrl|Shift|None
7
+ this._modifier = Modifiers.MODIFIER_NONE;
11
8
  this._states = 0;
12
9
  this._actionId = 0;
13
10
  if (arguments.length === 2)
@@ -15,13 +12,6 @@ export class KeyboardItem {
15
12
  else
16
13
  this.constructor_2(cKeyCodeOrActionId_, cModifierOrKeyCode_, modifier_, states_);
17
14
  }
18
- /// <summary>
19
- /// CTOR
20
- /// </summary>
21
- /// <param name = "cKeyCode">key code
22
- /// </param>
23
- /// <param name = "cModifier">modifier key: Alt|Ctrl|Shift|None
24
- /// </param>
25
15
  constructor_1(cKeyCode, cModifier) {
26
16
  this._keyCode = cKeyCode;
27
17
  this._modifier = cModifier;
@@ -32,49 +22,24 @@ export class KeyboardItem {
32
22
  this._modifier = modifier_;
33
23
  this._states = states_;
34
24
  }
35
- /// <summary>
36
- /// returns the key code of the keyboard item
37
- /// </summary>
38
25
  getKeyCode() {
39
26
  return this._keyCode;
40
27
  }
41
- /// <summary>
42
- /// returns the modifier of the keyboard item
43
- /// </summary>
44
28
  getModifier() {
45
29
  return this._modifier;
46
30
  }
47
- /// <summary>
48
- /// returns states of the keyboard item
49
- /// </summary>
50
31
  getStates() {
51
32
  return this._states;
52
33
  }
53
- /// <summary>
54
- /// compares this keyboard item to a given keyboard item and returns true if and only if
55
- /// the keycode and the modifier are equal
56
- /// </summary>
57
- /// <param name = "kbdItm">the keyboard item to compare to
58
- /// </param>
59
34
  equals(kbdItm) {
60
35
  return this === kbdItm || (kbdItm !== null && this._keyCode === kbdItm._keyCode && this._modifier === kbdItm._modifier);
61
36
  }
62
- /// <summary>
63
- /// get the action id
64
- /// </summary>
65
37
  getAction() {
66
38
  return this._actionId;
67
39
  }
68
- /// <param name = "actionId">
69
- /// </param>
70
40
  setAction(actionId) {
71
41
  this._actionId = actionId;
72
42
  }
73
- /// <summary>
74
- /// translate the Keyboard Item to its String representation
75
- /// </summary>
76
- /// <returns> string representation of the KeyBoard Item
77
- /// </returns>
78
43
  ToString() {
79
44
  let buffer = new StringBuilder();
80
45
  let counter = 0;
@@ -148,21 +113,15 @@ export class KeyboardItem {
148
113
  buffer.Append("Back");
149
114
  break;
150
115
  default:
151
- if (this._keyCode >= GuiConstants.KEY_F1 && this._keyCode <= GuiConstants.KEY_F12)
152
- // KEY_F1 = 112; KEY_F12 = 123;
153
- {
116
+ if (this._keyCode >= GuiConstants.KEY_F1 && this._keyCode <= GuiConstants.KEY_F12) {
154
117
  counter = this._keyCode - GuiConstants.KEY_F1 + 1;
155
118
  buffer.Append("F" + counter);
156
119
  }
157
- else if (this._keyCode >= GuiConstants.KEY_0 && this._keyCode <= GuiConstants.KEY_9)
158
- // KEY_0 = 48;KEY_9 = 57;
159
- {
120
+ else if (this._keyCode >= GuiConstants.KEY_0 && this._keyCode <= GuiConstants.KEY_9) {
160
121
  counter = this._keyCode - GuiConstants.KEY_0;
161
122
  buffer.Append(counter);
162
123
  }
163
- else if (this._keyCode >= GuiConstants.KEY_A && this._keyCode <= GuiConstants.KEY_Z)
164
- // KEY_A = 65; KEY_Z = 90;
165
- {
124
+ else if (this._keyCode >= GuiConstants.KEY_A && this._keyCode <= GuiConstants.KEY_Z) {
166
125
  counter = this._keyCode - GuiConstants.KEY_A + ('A').charCodeAt(0);
167
126
  buffer.Append(String.fromCharCode(counter));
168
127
  }
@@ -173,4 +132,4 @@ export class KeyboardItem {
173
132
  return buffer.ToString();
174
133
  }
175
134
  }
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Ym9hcmRJdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VpL3NyYy9ndWkvS2V5Ym9hcmRJdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxhQUFhO0FBQ2IsdUJBQXVCO0FBQ3ZCLGNBQWM7QUFDZCxNQUFNLE9BQU8sWUFBWTtJQVF2QixZQUFZLG1CQUE0QixFQUFFLG1CQUF5QixFQUFFLFNBQXFCLEVBQUUsT0FBZ0I7UUFQcEcsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUNyQixjQUFTLEdBQWMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLHNCQUFzQjtRQUN0RSxZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQ3BCLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFLNUIsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDOztZQUU3RCxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsYUFBYTtJQUNiLFVBQVU7SUFDVixjQUFjO0lBQ2QscUNBQXFDO0lBQ3JDLFlBQVk7SUFDWiwrREFBK0Q7SUFDL0QsWUFBWTtJQUNKLGFBQWEsQ0FBQyxRQUFnQixFQUFFLFNBQW9CO1FBQzFELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFTyxhQUFhLENBQUMsU0FBaUIsRUFBRSxRQUFn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Q0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vZGlmaWVyc30gZnJvbSBcIi4uL0d1aUVudW1zXCI7XHJcbmltcG9ydCB7U3RyaW5nQnVpbGRlcn0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7R3VpQ29uc3RhbnRzfSBmcm9tIFwiLi4vR3VpQ29uc3RhbnRzXCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyAgIGRhdGEgZm9yIDxrYmRpdG0+XHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBLZXlib2FyZEl0ZW0ge1xyXG4gIHByaXZhdGUgX2tleUNvZGU6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBfbW9kaWZpZXI6IE1vZGlmaWVycyA9IE1vZGlmaWVycy5NT0RJRklFUl9OT05FOyAvLyBBbHR8Q3RybHxTaGlmdHxOb25lXHJcbiAgcHJpdmF0ZSBfc3RhdGVzOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX2FjdGlvbklkOiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihjS2V5Q29kZTogbnVtYmVyLCBjTW9kaWZpZXI6IE1vZGlmaWVycyk7XHJcbiAgY29uc3RydWN0b3IoYWN0aW9uSWRfOiBudW1iZXIsIGtleUNvZGVfOiBudW1iZXIsIG1vZGlmaWVyXzogTW9kaWZpZXJzLCBzdGF0ZXNfOiBudW1iZXIpO1xyXG4gIGNvbnN0cnVjdG9yKGNLZXlDb2RlT3JBY3Rpb25JZF8/OiBudW1iZXIsIGNNb2RpZmllck9yS2V5Q29kZV8/OiBhbnksIG1vZGlmaWVyXz86IE1vZGlmaWVycywgc3RhdGVzXz86IG51bWJlcikge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpXHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfMShjS2V5Q29kZU9yQWN0aW9uSWRfLCBjTW9kaWZpZXJPcktleUNvZGVfKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl8yKGNLZXlDb2RlT3JBY3Rpb25JZF8sIGNNb2RpZmllck9yS2V5Q29kZV8sIG1vZGlmaWVyXywgc3RhdGVzXyk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjS2V5Q29kZVwiPmtleSBjb2RlXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjTW9kaWZpZXJcIj5tb2RpZmllciBrZXk6IEFsdHxDdHJsfFNoaWZ0fE5vbmVcclxuICAvLy8gPC9wYXJhbT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzEoY0tleUNvZGU6IG51bWJlciwgY01vZGlmaWVyOiBNb2RpZmllcnMpOiB2b2lkIHtcclxuICAgIHRoaXMuX2tleUNvZGUgPSBjS2V5Q29kZTtcclxuICAgIHRoaXMuX21vZGlmaWVyID0gY01vZGlmaWVyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8yKGFjdGlvbklkXzogbnVtYmVyLCBrZXlDb2RlXzogbnVtYmVyLCBtb2RpZmllcl86IE1vZGlmaWVycywgc3RhdGVzXzogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9hY3Rpb25JZCA9IGFjdGlvbklkXztcclxuICAgIHRoaXMuX2tleUNvZGUgPSBrZXlDb2RlXztcclxuICAgIHRoaXMuX21vZGlmaWVyID0gbW9kaWZpZXJfO1xyXG4gICAgdGhpcy5fc3RhdGVzID0gc3RhdGVzXztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSBrZXkgY29kZSBvZiB0aGUga2V5Ym9hcmQgaXRlbVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0S2V5Q29kZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2tleUNvZGU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgbW9kaWZpZXIgb2YgdGhlIGtleWJvYXJkIGl0ZW1cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldE1vZGlmaWVyKCk6IE1vZGlmaWVycyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kaWZpZXI7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyBzdGF0ZXMgb2YgdGhlIGtleWJvYXJkIGl0ZW1cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldFN0YXRlcygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlcztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBjb21wYXJlcyB0aGlzIGtleWJvYXJkIGl0ZW0gdG8gYSBnaXZlbiBrZXlib2FyZCBpdGVtIGFuZCByZXR1cm5zIHRydWUgaWYgYW5kIG9ubHkgaWZcclxuICAvLy8gICB0aGUga2V5Y29kZSBhbmQgdGhlIG1vZGlmaWVyIGFyZSBlcXVhbFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJrYmRJdG1cIj50aGUga2V5Ym9hcmQgaXRlbSB0byBjb21wYXJlIHRvXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgZXF1YWxzKGtiZEl0bTogS2V5Ym9hcmRJdGVtKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcyA9PT0ga2JkSXRtIHx8IChrYmRJdG0gIT09IG51bGwgJiYgdGhpcy5fa2V5Q29kZSA9PT0ga2JkSXRtLl9rZXlDb2RlICYmIHRoaXMuX21vZGlmaWVyID09PSBrYmRJdG0uX21vZGlmaWVyKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgdGhlIGFjdGlvbiBpZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0QWN0aW9uKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uSWQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImFjdGlvbklkXCI+XHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgc2V0QWN0aW9uKGFjdGlvbklkOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX2FjdGlvbklkID0gYWN0aW9uSWQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgdHJhbnNsYXRlIHRoZSBLZXlib2FyZCBJdGVtIHRvIGl0cyBTdHJpbmcgcmVwcmVzZW50YXRpb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBLZXlCb2FyZCBJdGVtXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBUb1N0cmluZygpOiBzdHJpbmcge1xyXG4gICAgbGV0IGJ1ZmZlcjogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7XHJcbiAgICBsZXQgY291bnRlcjogbnVtYmVyID0gMDtcclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMuX21vZGlmaWVyKSB7XHJcbiAgICAgIGNhc2UgTW9kaWZpZXJzLk1PRElGSUVSX0FMVDpcclxuICAgICAgICBidWZmZXIuQXBwZW5kKFwiQWx0K1wiKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgTW9kaWZpZXJzLk1PRElGSUVSX0NUUkw6XHJcbiAgICAgICAgYnVmZmVyLkFwcGVuZChcIkN0cmwrXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBNb2RpZmllcnMuTU9ESUZJRVJfU0hJRlQ6XHJcbiAgICAgICAgYnVmZmVyLkFwcGVuZChcIlNoaWZ0K1wiKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgTW9kaWZpZXJzLk1PRElGSUVSX1NISUZUX0NUUkw6XHJcbiAgICAgICAgYnVmZmVyLkFwcGVuZChcIlNoaWZ0K0N0cmwrXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBNb2RpZmllcnMuTU9ESUZJRVJfQUxUX0NUUkw6XHJcbiAgICAgICAgYnVmZmVyLkFwcGVuZChcIkFsdCtDdHJsK1wiKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgTW9kaWZpZXJzLk1PRElGSUVSX0FMVF9TSElGVDpcclxuICAgICAgICBidWZmZXIuQXBwZW5kKFwiU2hpZnQrQWx0K1wiKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgTW9kaWZpZXJzLk1PRElGSUVSX05PTkU6XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLl9rZXlDb2RlKSB7XHJcbiAgICAgIGNhc2UgR3VpQ29uc3RhbnRzLktFWV9TUEFDRTpcclxuICAgICAgICBidWZmZXIuQXBwZW5kKFwiU3BhY2VcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEd1aUNvbnN0YW50cy5LRVlfUEdfVVA6XHJcbiAgICAgICAgYnVmZmVyLkFwcGVuZChcIlBnVXBcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEd1aUNvbnN0YW50cy5LRVlfUEdfRE9XTjpcclxuICAgICAgICBidWZmZXIuQXBwZW5kKFwiUGdEblwiKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgR3VpQ29uc3RhbnRzLktFWV9FTkQ6XHJcbiAgICAgICAgYnVmZmVyLkFwcGVuZChcIkVuZFwiKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgR3VpQ29uc3RhbnRzLktFWV9IT01FOlxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJIb21lXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBHdWlDb25zdGFudHMuS0VZX0xFRlQ6XHJcbiAgICAgICAgYnVmZmVyLkFwcGVuZChcIkxlZnRcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEd1aUNvbnN0YW50cy5LRVlfVVA6XHJcbiAgICAgICAgYnVmZmVyLkFwcGVuZChcIlVwXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBHdWlDb25zdGFudHMuS0VZX1JJR0hUOlxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJSZ2h0XCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBHdWlDb25zdGFudHMuS0VZX0RPV046XHJcbiAgICAgICAgYnVmZmVyLkFwcGVuZChcIkRvd25cIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEd1aUNvbnN0YW50cy5LRVlfVEFCOlxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJUYWJcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEd1aUNvbnN0YW50cy5LRVlfSU5TRVJUOlxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJJbnNcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEd1aUNvbnN0YW50cy5LRVlfREVMRVRFOlxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJEZWxcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEd1aUNvbnN0YW50cy5LRVlfUkVUVVJOOlxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJFbnRcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEd1aUNvbnN0YW50cy5LRVlfRVNDOlxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJFc2NcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEd1aUNvbnN0YW50cy5LRVlfQkFDS1NQQUNFOlxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJCYWNrXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBpZiAodGhpcy5fa2V5Q29kZSA+PSBHdWlDb25zdGFudHMuS0VZX0YxICYmIHRoaXMuX2tleUNvZGUgPD0gR3VpQ29uc3RhbnRzLktFWV9GMTIpXHJcbiAgICAgICAgLy8gS0VZX0YxID0gMTEyOyBLRVlfRjEyID0gMTIzO1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGNvdW50ZXIgPSB0aGlzLl9rZXlDb2RlIC0gR3VpQ29uc3RhbnRzLktFWV9GMSArIDE7XHJcbiAgICAgICAgICBidWZmZXIuQXBwZW5kKFwiRlwiICsgY291bnRlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX2tleUNvZGUgPj0gR3VpQ29uc3RhbnRzLktFWV8wICYmIHRoaXMuX2tleUNvZGUgPD0gR3VpQ29uc3RhbnRzLktFWV85KVxyXG4gICAgICAgIC8vIEtFWV8wID0gNDg7S0VZXzkgPSA1NztcclxuICAgICAgICB7XHJcbiAgICAgICAgICBjb3VudGVyID0gdGhpcy5fa2V5Q29kZSAtIEd1aUNvbnN0YW50cy5LRVlfMDtcclxuICAgICAgICAgIGJ1ZmZlci5BcHBlbmQoY291bnRlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX2tleUNvZGUgPj0gR3VpQ29uc3RhbnRzLktFWV9BICYmIHRoaXMuX2tleUNvZGUgPD0gR3VpQ29uc3RhbnRzLktFWV9aKVxyXG4gICAgICAgIC8vIEtFWV9BID0gNjU7IEtFWV9aID0gOTA7XHJcbiAgICAgICAge1xyXG4gICAgICAgICAgY291bnRlciA9IHRoaXMuX2tleUNvZGUgLSBHdWlDb25zdGFudHMuS0VZX0EgKyAoJ0EnKS5jaGFyQ29kZUF0KDApO1xyXG4gICAgICAgICAgYnVmZmVyLkFwcGVuZChTdHJpbmcuZnJvbUNoYXJDb2RlKGNvdW50ZXIpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgYnVmZmVyLkFwcGVuZChcIj8gKFwiICsgdGhpcy5fa2V5Q29kZSArIFwiKVwiKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICB9XHJcbiAgICByZXR1cm4gYnVmZmVyLlRvU3RyaW5nKCk7XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Ym9hcmRJdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VpL3NyYy9ndWkvS2V5Ym9hcmRJdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUs3QyxNQUFNLE9BQU8sWUFBWTtJQVF2QixZQUFZLG1CQUE0QixFQUFFLG1CQUF5QixFQUFFLFNBQXFCLEVBQUUsT0FBZ0I7UUFQcEcsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUNyQixjQUFTLEdBQWMsU0FBUyxDQUFDLGFBQWEsQ0FBQztRQUMvQyxZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQ3BCLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFLNUIsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDOztZQUU3RCxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBU08sYUFBYSxDQUFDLFFBQWdCLEVBQUUsU0FBb0I7UUFDMUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVPLGFBQWEsQ0FBQyxTQUFpQixFQUFFLFFBQWdCLEVBQUUsU0FBb0IsRUFBRSxPQUFlO1FBQzlGLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFLRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFLRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFLRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFRRCxNQUFNLENBQUMsTUFBb0I7UUFDekIsT0FBTyxJQUFJLEtBQUssTUFBTSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUgsQ0FBQztJQUtELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUlELFNBQVMsQ0FBQyxRQUFnQjtRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBT0QsUUFBUTtRQUNOLElBQUksTUFBTSxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2hELElBQUksT0FBTyxHQUFXLENBQUMsQ0FBQztRQUV4QixRQUFRLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDdEIsS0FBSyxTQUFTLENBQUMsWUFBWTtnQkFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdEIsTUFBTTtZQUVSLEtBQUssU0FBUyxDQUFDLGFBQWE7Z0JBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU07WUFFUixLQUFLLFNBQVMsQ0FBQyxjQUFjO2dCQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN4QixNQUFNO1lBRVIsS0FBSyxTQUFTLENBQUMsbUJBQW1CO2dCQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUM3QixNQUFNO1lBRVIsS0FBSyxTQUFTLENBQUMsaUJBQWlCO2dCQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMzQixNQUFNO1lBRVIsS0FBSyxTQUFTLENBQUMsa0JBQWtCO2dCQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUM1QixNQUFNO1lBRVIsS0FBSyxTQUFTLENBQUMsYUFBYSxDQUFDO1lBQzdCO2dCQUNFLE1BQU07U0FDVDtRQUVELFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNyQixLQUFLLFlBQVksQ0FBQyxTQUFTO2dCQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2QixNQUFNO1lBRVIsS0FBSyxZQUFZLENBQUMsU0FBUztnQkFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdEIsTUFBTTtZQUVSLEtBQUssWUFBWSxDQUFDLFdBQVc7Z0JBQzNCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3RCLE1BQU07WUFFUixLQUFLLFlBQVksQ0FBQyxPQUFPO2dCQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQixNQUFNO1lBRVIsS0FBSyxZQUFZLENBQUMsUUFBUTtnQkFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdEIsTUFBTTtZQUVSLEtBQUssWUFBWSxDQUFDLFFBQVE7Z0JBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3RCLE1BQU07WUFFUixLQUFLLFlBQVksQ0FBQyxNQUFNO2dCQUN0QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNwQixNQUFNO1lBRVIsS0FBSyxZQUFZLENBQUMsU0FBUztnQkFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdEIsTUFBTTtZQUVSLEtBQUssWUFBWSxDQUFDLFFBQVE7Z0JBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3RCLE1BQU07WUFFUixLQUFLLFlBQVksQ0FBQyxPQUFPO2dCQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQixNQUFNO1lBRVIsS0FBSyxZQUFZLENBQUMsVUFBVTtnQkFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckIsTUFBTTtZQUVSLEtBQUssWUFBWSxDQUFDLFVBQVU7Z0JBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JCLE1BQU07WUFFUixLQUFLLFlBQVksQ0FBQyxVQUFVO2dCQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQixNQUFNO1lBRVIsS0FBSyxZQUFZLENBQUMsT0FBTztnQkFDdkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckIsTUFBTTtZQUVSLEtBQUssWUFBWSxDQUFDLGFBQWE7Z0JBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3RCLE1BQU07WUFFUjtnQkFDRSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksWUFBWSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBRWpGO29CQUNFLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO29CQUNsRCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQztpQkFDOUI7cUJBQ0ksSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLFlBQVksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxZQUFZLENBQUMsS0FBSyxFQUVuRjtvQkFDRSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO29CQUM3QyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUN4QjtxQkFDSSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksWUFBWSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBRW5GO29CQUNFLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ25FLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUM3Qzs7b0JBRUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDN0MsTUFBTTtTQUVUO1FBQ0QsT0FBTyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2RpZmllcnN9IGZyb20gXCIuLi9HdWlFbnVtc1wiO1xyXG5pbXBvcnQge1N0cmluZ0J1aWxkZXJ9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge0d1aUNvbnN0YW50c30gZnJvbSBcIi4uL0d1aUNvbnN0YW50c1wiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gICBkYXRhIGZvciA8a2JkaXRtPlxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgS2V5Ym9hcmRJdGVtIHtcclxuICBwcml2YXRlIF9rZXlDb2RlOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX21vZGlmaWVyOiBNb2RpZmllcnMgPSBNb2RpZmllcnMuTU9ESUZJRVJfTk9ORTsgLy8gQWx0fEN0cmx8U2hpZnR8Tm9uZVxyXG4gIHByaXZhdGUgX3N0YXRlczogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF9hY3Rpb25JZDogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoY0tleUNvZGU6IG51bWJlciwgY01vZGlmaWVyOiBNb2RpZmllcnMpO1xyXG4gIGNvbnN0cnVjdG9yKGFjdGlvbklkXzogbnVtYmVyLCBrZXlDb2RlXzogbnVtYmVyLCBtb2RpZmllcl86IE1vZGlmaWVycywgc3RhdGVzXzogbnVtYmVyKTtcclxuICBjb25zdHJ1Y3RvcihjS2V5Q29kZU9yQWN0aW9uSWRfPzogbnVtYmVyLCBjTW9kaWZpZXJPcktleUNvZGVfPzogYW55LCBtb2RpZmllcl8/OiBNb2RpZmllcnMsIHN0YXRlc18/OiBudW1iZXIpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKVxyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzEoY0tleUNvZGVPckFjdGlvbklkXywgY01vZGlmaWVyT3JLZXlDb2RlXyk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfMihjS2V5Q29kZU9yQWN0aW9uSWRfLCBjTW9kaWZpZXJPcktleUNvZGVfLCBtb2RpZmllcl8sIHN0YXRlc18pO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY0tleUNvZGVcIj5rZXkgY29kZVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY01vZGlmaWVyXCI+bW9kaWZpZXIga2V5OiBBbHR8Q3RybHxTaGlmdHxOb25lXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8xKGNLZXlDb2RlOiBudW1iZXIsIGNNb2RpZmllcjogTW9kaWZpZXJzKTogdm9pZCB7XHJcbiAgICB0aGlzLl9rZXlDb2RlID0gY0tleUNvZGU7XHJcbiAgICB0aGlzLl9tb2RpZmllciA9IGNNb2RpZmllcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMihhY3Rpb25JZF86IG51bWJlciwga2V5Q29kZV86IG51bWJlciwgbW9kaWZpZXJfOiBNb2RpZmllcnMsIHN0YXRlc186IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fYWN0aW9uSWQgPSBhY3Rpb25JZF87XHJcbiAgICB0aGlzLl9rZXlDb2RlID0ga2V5Q29kZV87XHJcbiAgICB0aGlzLl9tb2RpZmllciA9IG1vZGlmaWVyXztcclxuICAgIHRoaXMuX3N0YXRlcyA9IHN0YXRlc187XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUga2V5IGNvZGUgb2YgdGhlIGtleWJvYXJkIGl0ZW1cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldEtleUNvZGUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9rZXlDb2RlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdGhlIG1vZGlmaWVyIG9mIHRoZSBrZXlib2FyZCBpdGVtXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRNb2RpZmllcigpOiBNb2RpZmllcnMge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGlmaWVyO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgc3RhdGVzIG9mIHRoZSBrZXlib2FyZCBpdGVtXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRTdGF0ZXMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9zdGF0ZXM7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgY29tcGFyZXMgdGhpcyBrZXlib2FyZCBpdGVtIHRvIGEgZ2l2ZW4ga2V5Ym9hcmQgaXRlbSBhbmQgcmV0dXJucyB0cnVlIGlmIGFuZCBvbmx5IGlmXHJcbiAgLy8vICAgdGhlIGtleWNvZGUgYW5kIHRoZSBtb2RpZmllciBhcmUgZXF1YWxcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwia2JkSXRtXCI+dGhlIGtleWJvYXJkIGl0ZW0gdG8gY29tcGFyZSB0b1xyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIGVxdWFscyhrYmRJdG06IEtleWJvYXJkSXRlbSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMgPT09IGtiZEl0bSB8fCAoa2JkSXRtICE9PSBudWxsICYmIHRoaXMuX2tleUNvZGUgPT09IGtiZEl0bS5fa2V5Q29kZSAmJiB0aGlzLl9tb2RpZmllciA9PT0ga2JkSXRtLl9tb2RpZmllcik7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IHRoZSBhY3Rpb24gaWRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldEFjdGlvbigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbklkO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJhY3Rpb25JZFwiPlxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIHNldEFjdGlvbihhY3Rpb25JZDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9hY3Rpb25JZCA9IGFjdGlvbklkO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHRyYW5zbGF0ZSB0aGUgS2V5Ym9hcmQgSXRlbSB0byBpdHMgU3RyaW5nIHJlcHJlc2VudGF0aW9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgS2V5Qm9hcmQgSXRlbVxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgVG9TdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIGxldCBidWZmZXI6IFN0cmluZ0J1aWxkZXIgPSBuZXcgU3RyaW5nQnVpbGRlcigpO1xyXG4gICAgbGV0IGNvdW50ZXI6IG51bWJlciA9IDA7XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLl9tb2RpZmllcikge1xyXG4gICAgICBjYXNlIE1vZGlmaWVycy5NT0RJRklFUl9BTFQ6XHJcbiAgICAgICAgYnVmZmVyLkFwcGVuZChcIkFsdCtcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIE1vZGlmaWVycy5NT0RJRklFUl9DVFJMOlxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJDdHJsK1wiKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgTW9kaWZpZXJzLk1PRElGSUVSX1NISUZUOlxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJTaGlmdCtcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIE1vZGlmaWVycy5NT0RJRklFUl9TSElGVF9DVFJMOlxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJTaGlmdCtDdHJsK1wiKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgTW9kaWZpZXJzLk1PRElGSUVSX0FMVF9DVFJMOlxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJBbHQrQ3RybCtcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIE1vZGlmaWVycy5NT0RJRklFUl9BTFRfU0hJRlQ6XHJcbiAgICAgICAgYnVmZmVyLkFwcGVuZChcIlNoaWZ0K0FsdCtcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIE1vZGlmaWVycy5NT0RJRklFUl9OT05FOlxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHN3aXRjaCAodGhpcy5fa2V5Q29kZSkge1xyXG4gICAgICBjYXNlIEd1aUNvbnN0YW50cy5LRVlfU1BBQ0U6XHJcbiAgICAgICAgYnVmZmVyLkFwcGVuZChcIlNwYWNlXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBHdWlDb25zdGFudHMuS0VZX1BHX1VQOlxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJQZ1VwXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBHdWlDb25zdGFudHMuS0VZX1BHX0RPV046XHJcbiAgICAgICAgYnVmZmVyLkFwcGVuZChcIlBnRG5cIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEd1aUNvbnN0YW50cy5LRVlfRU5EOlxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJFbmRcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEd1aUNvbnN0YW50cy5LRVlfSE9NRTpcclxuICAgICAgICBidWZmZXIuQXBwZW5kKFwiSG9tZVwiKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgR3VpQ29uc3RhbnRzLktFWV9MRUZUOlxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJMZWZ0XCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBHdWlDb25zdGFudHMuS0VZX1VQOlxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJVcFwiKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgR3VpQ29uc3RhbnRzLktFWV9SSUdIVDpcclxuICAgICAgICBidWZmZXIuQXBwZW5kKFwiUmdodFwiKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgR3VpQ29uc3RhbnRzLktFWV9ET1dOOlxyXG4gICAgICAgIGJ1ZmZlci5BcHBlbmQoXCJEb3duXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBHdWlDb25zdGFudHMuS0VZX1RBQjpcclxuICAgICAgICBidWZmZXIuQXBwZW5kKFwiVGFiXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBHdWlDb25zdGFudHMuS0VZX0lOU0VSVDpcclxuICAgICAgICBidWZmZXIuQXBwZW5kKFwiSW5zXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBHdWlDb25zdGFudHMuS0VZX0RFTEVURTpcclxuICAgICAgICBidWZmZXIuQXBwZW5kKFwiRGVsXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBHdWlDb25zdGFudHMuS0VZX1JFVFVSTjpcclxuICAgICAgICBidWZmZXIuQXBwZW5kKFwiRW50XCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBHdWlDb25zdGFudHMuS0VZX0VTQzpcclxuICAgICAgICBidWZmZXIuQXBwZW5kKFwiRXNjXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBHdWlDb25zdGFudHMuS0VZX0JBQ0tTUEFDRTpcclxuICAgICAgICBidWZmZXIuQXBwZW5kKFwiQmFja1wiKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgaWYgKHRoaXMuX2tleUNvZGUgPj0gR3VpQ29uc3RhbnRzLktFWV9GMSAmJiB0aGlzLl9rZXlDb2RlIDw9IEd1aUNvbnN0YW50cy5LRVlfRjEyKVxyXG4gICAgICAgIC8vIEtFWV9GMSA9IDExMjsgS0VZX0YxMiA9IDEyMztcclxuICAgICAgICB7XHJcbiAgICAgICAgICBjb3VudGVyID0gdGhpcy5fa2V5Q29kZSAtIEd1aUNvbnN0YW50cy5LRVlfRjEgKyAxO1xyXG4gICAgICAgICAgYnVmZmVyLkFwcGVuZChcIkZcIiArIGNvdW50ZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLl9rZXlDb2RlID49IEd1aUNvbnN0YW50cy5LRVlfMCAmJiB0aGlzLl9rZXlDb2RlIDw9IEd1aUNvbnN0YW50cy5LRVlfOSlcclxuICAgICAgICAvLyBLRVlfMCA9IDQ4O0tFWV85ID0gNTc7XHJcbiAgICAgICAge1xyXG4gICAgICAgICAgY291bnRlciA9IHRoaXMuX2tleUNvZGUgLSBHdWlDb25zdGFudHMuS0VZXzA7XHJcbiAgICAgICAgICBidWZmZXIuQXBwZW5kKGNvdW50ZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLl9rZXlDb2RlID49IEd1aUNvbnN0YW50cy5LRVlfQSAmJiB0aGlzLl9rZXlDb2RlIDw9IEd1aUNvbnN0YW50cy5LRVlfWilcclxuICAgICAgICAvLyBLRVlfQSA9IDY1OyBLRVlfWiA9IDkwO1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGNvdW50ZXIgPSB0aGlzLl9rZXlDb2RlIC0gR3VpQ29uc3RhbnRzLktFWV9BICsgKCdBJykuY2hhckNvZGVBdCgwKTtcclxuICAgICAgICAgIGJ1ZmZlci5BcHBlbmQoU3RyaW5nLmZyb21DaGFyQ29kZShjb3VudGVyKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIGJ1ZmZlci5BcHBlbmQoXCI/IChcIiArIHRoaXMuX2tleUNvZGUgKyBcIilcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGJ1ZmZlci5Ub1N0cmluZygpO1xyXG4gIH1cclxufVxyXG5cclxuIl19
@@ -1,7 +1,3 @@
1
- /// <summary>
2
- /// The class is used to store control's edited value,
3
- /// so it could be restored after current record is replaced by different chunk
4
- /// </summary>
5
1
  export class LastFocusedVal {
6
2
  constructor(guiMgControl, line, val) {
7
3
  this.guiMgControl = null;
@@ -12,4 +8,4 @@ export class LastFocusedVal {
12
8
  this.Val = val;
13
9
  }
14
10
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFzdEZvY3VzZWRWYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL2d1aS9MYXN0Rm9jdXNlZFZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxhQUFhO0FBQ2IsdURBQXVEO0FBQ3ZELCtFQUErRTtBQUMvRSxjQUFjO0FBQ2QsTUFBTSxPQUFPLGNBQWM7SUFLekIsWUFBWSxZQUEwQixFQUFFLElBQVksRUFBRSxHQUFXO1FBSmpFLGlCQUFZLEdBQWlCLElBQUksQ0FBQztRQUNsQyxTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBQ2pCLFFBQUcsR0FBVyxJQUFJLENBQUM7UUFHakIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtHdWlNZ0NvbnRyb2x9IGZyb20gXCIuL0d1aU1nQ29udHJvbFwiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gVGhlIGNsYXNzIGlzIHVzZWQgdG8gc3RvcmUgIGNvbnRyb2wncyBlZGl0ZWQgdmFsdWUsXHJcbi8vLyBzbyBpdCBjb3VsZCBiZSByZXN0b3JlZCBhZnRlciBjdXJyZW50IHJlY29yZCBpcyByZXBsYWNlZCBieSBkaWZmZXJlbnQgY2h1bmtcclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGNsYXNzIExhc3RGb2N1c2VkVmFsIHtcclxuICBndWlNZ0NvbnRyb2w6IEd1aU1nQ29udHJvbCA9IG51bGw7XHJcbiAgTGluZTogbnVtYmVyID0gMDtcclxuICBWYWw6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGd1aU1nQ29udHJvbDogR3VpTWdDb250cm9sLCBsaW5lOiBudW1iZXIsIHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmd1aU1nQ29udHJvbCA9IGd1aU1nQ29udHJvbDtcclxuICAgIHRoaXMuTGluZSA9IGxpbmU7XHJcbiAgICB0aGlzLlZhbCA9IHZhbDtcclxuICB9XHJcbn1cclxuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFzdEZvY3VzZWRWYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL2d1aS9MYXN0Rm9jdXNlZFZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLE9BQU8sY0FBYztJQUt6QixZQUFZLFlBQTBCLEVBQUUsSUFBWSxFQUFFLEdBQVc7UUFKakUsaUJBQVksR0FBaUIsSUFBSSxDQUFDO1FBQ2xDLFNBQUksR0FBVyxDQUFDLENBQUM7UUFDakIsUUFBRyxHQUFXLElBQUksQ0FBQztRQUdqQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNqQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0d1aU1nQ29udHJvbH0gZnJvbSBcIi4vR3VpTWdDb250cm9sXCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyBUaGUgY2xhc3MgaXMgdXNlZCB0byBzdG9yZSAgY29udHJvbCdzIGVkaXRlZCB2YWx1ZSxcclxuLy8vIHNvIGl0IGNvdWxkIGJlIHJlc3RvcmVkIGFmdGVyIGN1cnJlbnQgcmVjb3JkIGlzIHJlcGxhY2VkIGJ5IGRpZmZlcmVudCBjaHVua1xyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgTGFzdEZvY3VzZWRWYWwge1xyXG4gIGd1aU1nQ29udHJvbDogR3VpTWdDb250cm9sID0gbnVsbDtcclxuICBMaW5lOiBudW1iZXIgPSAwO1xyXG4gIFZhbDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoZ3VpTWdDb250cm9sOiBHdWlNZ0NvbnRyb2wsIGxpbmU6IG51bWJlciwgdmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZ3VpTWdDb250cm9sID0gZ3VpTWdDb250cm9sO1xyXG4gICAgdGhpcy5MaW5lID0gbGluZTtcclxuICAgIHRoaXMuVmFsID0gdmFsO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -13,4 +13,4 @@ export class MgValue {
13
13
  this.listOfIntArr = null;
14
14
  }
15
15
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWdWYWx1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9zcmMvZ3VpL01nVmFsdWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLE9BQU87SUFhbEI7UUFaQSxRQUFHLEdBQVcsSUFBSSxDQUFDO1FBQ25CLFlBQU8sR0FBVyxJQUFJLENBQUM7UUFDdkIsVUFBSyxHQUFXLElBQUksQ0FBQztRQUNyQixTQUFJLEdBQVcsSUFBSSxDQUFDO1FBQ3BCLFdBQU0sR0FBVyxJQUFJLENBQUM7UUFDdEIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUNuQixRQUFHLEdBQVEsSUFBSSxDQUFDO1FBQ2hCLGlCQUFZLEdBQW1CLElBQUksQ0FBQztJQUlwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xpc3R9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIE1nVmFsdWUge1xyXG4gIHN0cjogc3RyaW5nID0gbnVsbDtcclxuICBjYXB0aW9uOiBzdHJpbmcgPSBudWxsO1xyXG4gIHRpdGxlOiBzdHJpbmcgPSBudWxsO1xyXG4gIHBhdGg6IHN0cmluZyA9IG51bGw7XHJcbiAgZmlsdGVyOiBzdHJpbmcgPSBudWxsO1xyXG4gIGJvb2xWYWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBib29sMTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHN0eWxlOiBudW1iZXIgPSAwO1xyXG4gIG51bWJlcjogbnVtYmVyID0gMDtcclxuICBvYmo6IGFueSA9IG51bGw7XHJcbiAgbGlzdE9mSW50QXJyOiBMaXN0PG51bWJlcltdPiA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG5cclxuICB9XHJcbn1cclxuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWdWYWx1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9zcmMvZ3VpL01nVmFsdWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLE9BQU87SUFhbEI7UUFaQSxRQUFHLEdBQVcsSUFBSSxDQUFDO1FBQ25CLFlBQU8sR0FBVyxJQUFJLENBQUM7UUFDdkIsVUFBSyxHQUFXLElBQUksQ0FBQztRQUNyQixTQUFJLEdBQVcsSUFBSSxDQUFDO1FBQ3BCLFdBQU0sR0FBVyxJQUFJLENBQUM7UUFDdEIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUNuQixRQUFHLEdBQVEsSUFBSSxDQUFDO1FBQ2hCLGlCQUFZLEdBQW1CLElBQUksQ0FBQztJQUlwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xpc3R9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIE1nVmFsdWUge1xyXG4gIHN0cjogc3RyaW5nID0gbnVsbDtcclxuICBjYXB0aW9uOiBzdHJpbmcgPSBudWxsO1xyXG4gIHRpdGxlOiBzdHJpbmcgPSBudWxsO1xyXG4gIHBhdGg6IHN0cmluZyA9IG51bGw7XHJcbiAgZmlsdGVyOiBzdHJpbmcgPSBudWxsO1xyXG4gIGJvb2xWYWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBib29sMTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHN0eWxlOiBudW1iZXIgPSAwO1xyXG4gIG51bWJlcjogbnVtYmVyID0gMDtcclxuICBvYmo6IGFueSA9IG51bGw7XHJcbiAgbGlzdE9mSW50QXJyOiBMaXN0PG51bWJlcltdPiA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG5cclxuICB9XHJcbn1cclxuIl19
@@ -1 +1 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvcFBhcmVudEludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9zcmMvZ3VpL1Byb3BQYXJlbnRJbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UHJvcGVydHl9IGZyb20gXCIuLi9tYW5hZ2VtZW50L2d1aS9Qcm9wZXJ0eVwiO1xyXG5pbXBvcnQge01nRm9ybUJhc2V9IGZyb20gXCIuLi9tYW5hZ2VtZW50L2d1aS9NZ0Zvcm1CYXNlXCI7XHJcbmltcG9ydCB7U3RvcmFnZUF0dHJpYnV0ZX0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtSZWZQYXJhbX0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByb3BQYXJlbnRJbnRlcmZhY2Uge1xyXG4gIGdldENvbXBJZHgoKTogbnVtYmVyO1xyXG5cclxuICBnZXRQcm9wKHByb3BJZDogbnVtYmVyKTogUHJvbWlzZTxQcm9wZXJ0eT47XHJcblxyXG4gIGNoZWNrSWZFeGlzdFByb3AocHJvcElkOiBudW1iZXIpOiBib29sZWFuO1xyXG5cclxuICBnZXRGb3JtKCk6IE1nRm9ybUJhc2U7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdHJ1ZSBpZiB0aGlzIGlzIGZpcnN0IHJlZnJlc2hcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgSXNGaXJzdFJlZnJlc2hPZlByb3BzKCk6IGJvb2xlYW47XHJcblxyXG4gIEV2YWx1YXRlRXhwcmVzc2lvbihleHBJZDogbnVtYmVyLCByZXNUeXBlOiBTdG9yYWdlQXR0cmlidXRlLCBsZW5ndGg6IG51bWJlciwgY29udGVudFR5cGVVbmljb2RlOiBib29sZWFuLCByZXNDZWxsVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSwgYWx3YXlzRXZhbHVhdGU6IGJvb2xlYW4sIHdhc0V2YWx1YXRlZDogUmVmUGFyYW08Ym9vbGVhbj4pOiBQcm9taXNlPHN0cmluZz47XHJcblxyXG4gIEdldEV4cHJlc3Npb25TdG9yYWdlKGV4cElkOiBudW1iZXIpOiBTdG9yYWdlQXR0cmlidXRlO1xyXG59XHJcbiJdfQ==
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvcFBhcmVudEludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9zcmMvZ3VpL1Byb3BQYXJlbnRJbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UHJvcGVydHl9IGZyb20gXCIuLi9tYW5hZ2VtZW50L2d1aS9Qcm9wZXJ0eVwiO1xyXG5pbXBvcnQge01nRm9ybUJhc2V9IGZyb20gXCIuLi9tYW5hZ2VtZW50L2d1aS9NZ0Zvcm1CYXNlXCI7XHJcbmltcG9ydCB7U3RvcmFnZUF0dHJpYnV0ZX0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtSZWZQYXJhbX0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByb3BQYXJlbnRJbnRlcmZhY2Uge1xyXG4gIGdldENvbXBJZHgoKTogbnVtYmVyO1xyXG5cclxuICBnZXRQcm9wKHByb3BJZDogbnVtYmVyKTogUHJvcGVydHk7XHJcblxyXG4gIGNoZWNrSWZFeGlzdFByb3AocHJvcElkOiBudW1iZXIpOiBib29sZWFuO1xyXG5cclxuICBnZXRGb3JtKCk6IE1nRm9ybUJhc2U7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdHJ1ZSBpZiB0aGlzIGlzIGZpcnN0IHJlZnJlc2hcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgSXNGaXJzdFJlZnJlc2hPZlByb3BzKCk6IGJvb2xlYW47XHJcblxyXG4gIEV2YWx1YXRlRXhwcmVzc2lvbihleHBJZDogbnVtYmVyLCByZXNUeXBlOiBTdG9yYWdlQXR0cmlidXRlLCBsZW5ndGg6IG51bWJlciwgY29udGVudFR5cGVVbmljb2RlOiBib29sZWFuLCByZXNDZWxsVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSwgYWx3YXlzRXZhbHVhdGU6IGJvb2xlYW4sIHdhc0V2YWx1YXRlZDogUmVmUGFyYW08Ym9vbGVhbj4pOiBQcm9taXNlPHN0cmluZz47XHJcblxyXG4gIEdldEV4cHJlc3Npb25TdG9yYWdlKGV4cElkOiBudW1iZXIpOiBTdG9yYWdlQXR0cmlidXRlO1xyXG59XHJcbiJdfQ==
@@ -1,21 +1,12 @@
1
1
  import { GuiInteractive } from "./GuiInteractive";
2
- /// <summary>
3
- /// Creates dialog for passed type of object by calling objects constructor matching the parameters
4
- /// </summary>
5
- /// <param name = "objType">type of object whose constructor to be invoked</param>
6
- /// <param name = "parameters">parameters to be passed to objects constructor</param>
7
2
  export class DialogHandler {
8
3
  createDialog(parameters) {
9
- // always execute dialog creation code in GUI thread
10
4
  let guiInteractive = new GuiInteractive();
11
5
  guiInteractive.createDialog(this, parameters);
12
6
  }
13
- /// <summary>
14
- /// dispose(and close) the dialog
15
- /// </summary>
16
7
  closeDialog() {
17
8
  }
18
9
  constructor() {
19
10
  }
20
11
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlhbG9nSGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9zcmMvZ3VpL2xvdy9EaWFsb2dIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxhQUFhO0FBQ2IscUdBQXFHO0FBQ3JHLGNBQWM7QUFDZCxrRkFBa0Y7QUFDbEYscUZBQXFGO0FBQ3JGLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQVksQ0FBQyxVQUFpQjtRQUM1QixvREFBb0Q7UUFDcEQsSUFBSSxjQUFjLEdBQW1CLElBQUksY0FBYyxFQUFFLENBQUM7UUFDMUQsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELGFBQWE7SUFDYixtQ0FBbUM7SUFDbkMsY0FBYztJQUNkLFdBQVc7SUFDWCxDQUFDO0lBRUQ7SUFDQSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0d1aUludGVyYWN0aXZlfSBmcm9tIFwiLi9HdWlJbnRlcmFjdGl2ZVwiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gICBDcmVhdGVzIGRpYWxvZyBmb3IgcGFzc2VkIHR5cGUgb2Ygb2JqZWN0IGJ5IGNhbGxpbmcgb2JqZWN0cyBjb25zdHJ1Y3RvciBtYXRjaGluZyB0aGUgcGFyYW1ldGVyc1xyXG4vLy8gPC9zdW1tYXJ5PlxyXG4vLy8gPHBhcmFtIG5hbWUgPSBcIm9ialR5cGVcIj50eXBlIG9mIG9iamVjdCB3aG9zZSBjb25zdHJ1Y3RvciB0byBiZSBpbnZva2VkPC9wYXJhbT5cclxuLy8vIDxwYXJhbSBuYW1lID0gXCJwYXJhbWV0ZXJzXCI+cGFyYW1ldGVycyB0byBiZSBwYXNzZWQgdG8gb2JqZWN0cyBjb25zdHJ1Y3RvcjwvcGFyYW0+XHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dIYW5kbGVyIHtcclxuICBjcmVhdGVEaWFsb2cocGFyYW1ldGVyczogYW55W10pOiB2b2lkIHtcclxuICAgIC8vIGFsd2F5cyBleGVjdXRlIGRpYWxvZyBjcmVhdGlvbiBjb2RlIGluIEdVSSB0aHJlYWRcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuICAgIGd1aUludGVyYWN0aXZlLmNyZWF0ZURpYWxvZyh0aGlzLCBwYXJhbWV0ZXJzKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBkaXNwb3NlKGFuZCBjbG9zZSkgdGhlIGRpYWxvZ1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgY2xvc2VEaWFsb2coKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcbn1cclxuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlhbG9nSGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9zcmMvZ3VpL2xvdy9EaWFsb2dIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQU9oRCxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUFZLENBQUMsVUFBaUI7UUFFNUIsSUFBSSxjQUFjLEdBQW1CLElBQUksY0FBYyxFQUFFLENBQUM7UUFDMUQsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUtELFdBQVc7SUFDWCxDQUFDO0lBRUQ7SUFDQSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0d1aUludGVyYWN0aXZlfSBmcm9tIFwiLi9HdWlJbnRlcmFjdGl2ZVwiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gICBDcmVhdGVzIGRpYWxvZyBmb3IgcGFzc2VkIHR5cGUgb2Ygb2JqZWN0IGJ5IGNhbGxpbmcgb2JqZWN0cyBjb25zdHJ1Y3RvciBtYXRjaGluZyB0aGUgcGFyYW1ldGVyc1xyXG4vLy8gPC9zdW1tYXJ5PlxyXG4vLy8gPHBhcmFtIG5hbWUgPSBcIm9ialR5cGVcIj50eXBlIG9mIG9iamVjdCB3aG9zZSBjb25zdHJ1Y3RvciB0byBiZSBpbnZva2VkPC9wYXJhbT5cclxuLy8vIDxwYXJhbSBuYW1lID0gXCJwYXJhbWV0ZXJzXCI+cGFyYW1ldGVycyB0byBiZSBwYXNzZWQgdG8gb2JqZWN0cyBjb25zdHJ1Y3RvcjwvcGFyYW0+XHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dIYW5kbGVyIHtcclxuICBjcmVhdGVEaWFsb2cocGFyYW1ldGVyczogYW55W10pOiB2b2lkIHtcclxuICAgIC8vIGFsd2F5cyBleGVjdXRlIGRpYWxvZyBjcmVhdGlvbiBjb2RlIGluIEdVSSB0aHJlYWRcclxuICAgIGxldCBndWlJbnRlcmFjdGl2ZTogR3VpSW50ZXJhY3RpdmUgPSBuZXcgR3VpSW50ZXJhY3RpdmUoKTtcclxuICAgIGd1aUludGVyYWN0aXZlLmNyZWF0ZURpYWxvZyh0aGlzLCBwYXJhbWV0ZXJzKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBkaXNwb3NlKGFuZCBjbG9zZSkgdGhlIGRpYWxvZ1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgY2xvc2VEaWFsb2coKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcbn1cclxuIl19