@handsontable/angular 14.2.0 → 14.3.0-next-3fa6b18-20240410

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.
@@ -0,0 +1,1124 @@
1
+ import { Component, Input, ViewChild, ViewEncapsulation, } from '@angular/core';
2
+ import Handsontable from 'handsontable/base';
3
+ import { HotTableRegisterer, HOT_DESTROYED_WARNING } from './hot-table-registerer.service';
4
+ import { HotSettingsResolver } from './hot-settings-resolver.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./hot-table-registerer.service";
7
+ import * as i2 from "./hot-settings-resolver.service";
8
+ export class HotTableComponent {
9
+ _hotTableRegisterer;
10
+ _hotSettingsResolver;
11
+ ngZone;
12
+ container;
13
+ __hotInstance = null;
14
+ columnsComponents = [];
15
+ // component inputs
16
+ settings;
17
+ hotId = '';
18
+ // handsontable options
19
+ activeHeaderClassName;
20
+ allowEmpty;
21
+ allowHtml;
22
+ allowInsertColumn;
23
+ allowInsertRow;
24
+ allowInvalid;
25
+ allowRemoveColumn;
26
+ allowRemoveRow;
27
+ ariaTags;
28
+ autoColumnSize;
29
+ autoRowSize;
30
+ autoWrapCol;
31
+ autoWrapRow;
32
+ bindRowsWithHeaders;
33
+ cell;
34
+ cells;
35
+ checkedTemplate;
36
+ className;
37
+ colHeaders;
38
+ collapsibleColumns;
39
+ columnHeaderHeight;
40
+ columns;
41
+ columnSorting;
42
+ columnSummary;
43
+ colWidths;
44
+ commentedCellClassName;
45
+ comments;
46
+ contextMenu;
47
+ copyable;
48
+ copyPaste;
49
+ correctFormat;
50
+ currentColClassName;
51
+ currentHeaderClassName;
52
+ currentRowClassName;
53
+ customBorders;
54
+ data;
55
+ dataSchema;
56
+ dateFormat;
57
+ datePickerConfig;
58
+ defaultDate;
59
+ tabNavigation;
60
+ disableVisualSelection;
61
+ dragToScroll;
62
+ dropdownMenu;
63
+ editor;
64
+ enterBeginsEditing;
65
+ enterMoves;
66
+ fillHandle;
67
+ filter;
68
+ filteringCaseSensitive;
69
+ filters;
70
+ fixedColumnsLeft;
71
+ fixedColumnsStart;
72
+ fixedRowsBottom;
73
+ fixedRowsTop;
74
+ formulas;
75
+ fragmentSelection;
76
+ height;
77
+ hiddenColumns;
78
+ hiddenRows;
79
+ invalidCellClassName;
80
+ imeFastEdit;
81
+ label;
82
+ language;
83
+ layoutDirection;
84
+ licenseKey;
85
+ locale;
86
+ manualColumnFreeze;
87
+ manualColumnMove;
88
+ manualColumnResize;
89
+ manualRowMove;
90
+ manualRowResize;
91
+ maxCols;
92
+ maxRows;
93
+ mergeCells;
94
+ minCols;
95
+ minRows;
96
+ minSpareCols;
97
+ minSpareRows;
98
+ multiColumnSorting;
99
+ navigableHeaders;
100
+ nestedHeaders;
101
+ nestedRows;
102
+ noWordWrapClassName;
103
+ numericFormat;
104
+ observeDOMVisibility;
105
+ outsideClickDeselects;
106
+ persistentState;
107
+ placeholder;
108
+ placeholderCellClassName;
109
+ preventOverflow;
110
+ preventWheel;
111
+ readOnly;
112
+ readOnlyCellClassName;
113
+ renderAllColumns;
114
+ renderAllRows;
115
+ renderer;
116
+ rowHeaders;
117
+ rowHeaderWidth;
118
+ rowHeights;
119
+ search;
120
+ selectionMode;
121
+ selectOptions;
122
+ skipColumnOnPaste;
123
+ skipRowOnPaste;
124
+ sortByRelevance;
125
+ source;
126
+ startCols;
127
+ startRows;
128
+ stretchH;
129
+ strict;
130
+ tableClassName;
131
+ tabMoves;
132
+ title;
133
+ trimDropdown;
134
+ trimRows;
135
+ trimWhitespace;
136
+ type;
137
+ uncheckedTemplate;
138
+ undo;
139
+ validator;
140
+ viewportColumnRenderingOffset;
141
+ viewportRowRenderingOffset;
142
+ visibleRows;
143
+ width;
144
+ wordWrap;
145
+ // handsontable hooks
146
+ afterAddChild;
147
+ afterAutofill;
148
+ afterBeginEditing;
149
+ afterCellMetaReset;
150
+ afterChange;
151
+ afterChangesObserved;
152
+ afterColumnCollapse;
153
+ afterColumnExpand;
154
+ afterColumnFreeze;
155
+ afterColumnMove;
156
+ afterColumnResize;
157
+ afterColumnSequenceChange;
158
+ afterColumnSort;
159
+ afterColumnUnfreeze;
160
+ afterContextMenuDefaultOptions;
161
+ afterContextMenuHide;
162
+ afterContextMenuShow;
163
+ afterCopy;
164
+ afterCopyLimit;
165
+ afterCreateCol;
166
+ afterCreateRow;
167
+ afterCut;
168
+ afterDeselect;
169
+ afterDestroy;
170
+ afterDetachChild;
171
+ afterDocumentKeyDown;
172
+ afterDrawSelection;
173
+ afterDropdownMenuDefaultOptions;
174
+ afterDropdownMenuHide;
175
+ afterDropdownMenuShow;
176
+ afterFilter;
177
+ afterFormulasValuesUpdate;
178
+ afterGetCellMeta;
179
+ afterGetColHeader;
180
+ afterGetColumnHeaderRenderers;
181
+ afterGetRowHeader;
182
+ afterGetRowHeaderRenderers;
183
+ afterHideColumns;
184
+ afterHideRows;
185
+ afterInit;
186
+ afterLanguageChange;
187
+ afterListen;
188
+ afterLoadData;
189
+ afterMergeCells;
190
+ afterModifyTransformEnd;
191
+ afterModifyTransformFocus;
192
+ afterModifyTransformStart;
193
+ afterMomentumScroll;
194
+ afterNamedExpressionAdded;
195
+ afterNamedExpressionRemoved;
196
+ afterOnCellContextMenu;
197
+ afterOnCellCornerDblClick;
198
+ afterOnCellCornerMouseDown;
199
+ afterOnCellMouseDown;
200
+ afterOnCellMouseOut;
201
+ afterOnCellMouseOver;
202
+ afterOnCellMouseUp;
203
+ afterPaste;
204
+ afterPluginsInitialized;
205
+ afterRedo;
206
+ afterRedoStackChange;
207
+ afterRefreshDimensions;
208
+ afterRemoveCellMeta;
209
+ afterRemoveCol;
210
+ afterRemoveRow;
211
+ afterRender;
212
+ afterRenderer;
213
+ afterRowMove;
214
+ afterRowResize;
215
+ afterRowSequenceChange;
216
+ afterScrollHorizontally;
217
+ afterScrollVertically;
218
+ afterScroll;
219
+ afterSelectColumns;
220
+ afterSelection;
221
+ afterSelectionByProp;
222
+ afterSelectionEnd;
223
+ afterSelectionEndByProp;
224
+ afterSelectionFocusSet;
225
+ afterSelectRows;
226
+ afterSetCellMeta;
227
+ afterSetDataAtCell;
228
+ afterSetDataAtRowProp;
229
+ afterSetSourceDataAtCell;
230
+ afterSheetAdded;
231
+ afterSheetRenamed;
232
+ afterSheetRemoved;
233
+ afterTrimRow;
234
+ afterUndo;
235
+ afterUndoStackChange;
236
+ afterUnhideColumns;
237
+ afterUnhideRows;
238
+ afterUnlisten;
239
+ afterUnmergeCells;
240
+ afterUntrimRow;
241
+ afterUpdateData;
242
+ afterUpdateSettings;
243
+ afterValidate;
244
+ afterViewportColumnCalculatorOverride;
245
+ afterViewportRowCalculatorOverride;
246
+ afterViewRender;
247
+ beforeAddChild;
248
+ beforeAutofill;
249
+ beforeBeginEditing;
250
+ beforeCellAlignment;
251
+ beforeChange;
252
+ beforeChangeRender;
253
+ beforeColumnCollapse;
254
+ beforeColumnExpand;
255
+ beforeColumnFreeze;
256
+ beforeColumnMove;
257
+ beforeColumnResize;
258
+ beforeColumnSort;
259
+ beforeColumnWrap;
260
+ beforeColumnUnfreeze;
261
+ beforeContextMenuSetItems;
262
+ beforeContextMenuShow;
263
+ beforeCopy;
264
+ beforeCreateCol;
265
+ beforeCreateRow;
266
+ beforeCut;
267
+ beforeDetachChild;
268
+ beforeDrawBorders;
269
+ beforeDropdownMenuSetItems;
270
+ beforeDropdownMenuShow;
271
+ beforeFilter;
272
+ beforeGetCellMeta;
273
+ beforeHideColumns;
274
+ beforeHideRows;
275
+ beforeHighlightingColumnHeader;
276
+ beforeHighlightingRowHeader;
277
+ beforeInit;
278
+ beforeInitWalkontable;
279
+ beforeKeyDown;
280
+ beforeLanguageChange;
281
+ beforeLoadData;
282
+ beforeMergeCells;
283
+ beforeOnCellContextMenu;
284
+ beforeOnCellMouseDown;
285
+ beforeOnCellMouseOut;
286
+ beforeOnCellMouseOver;
287
+ beforeOnCellMouseUp;
288
+ beforePaste;
289
+ beforeRedo;
290
+ beforeRedoStackChange;
291
+ beforeRefreshDimensions;
292
+ beforeRemoveCellClassNames;
293
+ beforeRemoveCellMeta;
294
+ beforeRemoveCol;
295
+ beforeRemoveRow;
296
+ beforeRender;
297
+ beforeRenderer;
298
+ beforeRowMove;
299
+ beforeRowResize;
300
+ beforeRowWrap;
301
+ beforeSelectColumns;
302
+ beforeSelectionFocusSet;
303
+ beforeSelectionHighlightSet;
304
+ beforeSelectRows;
305
+ beforeSetCellMeta;
306
+ beforeSetRangeEnd;
307
+ beforeSetRangeStart;
308
+ beforeSetRangeStartOnly;
309
+ beforeStretchingColumnWidth;
310
+ beforeTouchScroll;
311
+ beforeTrimRow;
312
+ beforeUndo;
313
+ beforeUndoStackChange;
314
+ beforeUnhideColumns;
315
+ beforeUnhideRows;
316
+ beforeUnmergeCells;
317
+ beforeUntrimRow;
318
+ beforeUpdateData;
319
+ beforeValidate;
320
+ beforeValueRender;
321
+ beforeViewportScroll;
322
+ beforeViewportScrollHorizontally;
323
+ beforeViewportScrollVertically;
324
+ beforeViewRender;
325
+ construct;
326
+ init;
327
+ modifyAutoColumnSizeSeed;
328
+ modifyAutofillRange;
329
+ modifyColHeader;
330
+ modifyColumnHeaderHeight;
331
+ modifyColumnHeaderValue;
332
+ modifyColWidth;
333
+ modifyCopyableRange;
334
+ modifyFiltersMultiSelectValue;
335
+ modifyFocusedElement;
336
+ modifyData;
337
+ modifyFocusOnTabNavigation;
338
+ modifyGetCellCoords;
339
+ modifyRowData;
340
+ modifyRowHeader;
341
+ modifyRowHeaderWidth;
342
+ modifyRowHeight;
343
+ modifySourceData;
344
+ modifyTransformEnd;
345
+ modifyTransformFocus;
346
+ modifyTransformStart;
347
+ persistentStateLoad;
348
+ persistentStateReset;
349
+ persistentStateSave;
350
+ constructor(_hotTableRegisterer, _hotSettingsResolver, ngZone) {
351
+ this._hotTableRegisterer = _hotTableRegisterer;
352
+ this._hotSettingsResolver = _hotSettingsResolver;
353
+ this.ngZone = ngZone;
354
+ }
355
+ get hotInstance() {
356
+ if (!this.__hotInstance || (this.__hotInstance && !this.__hotInstance.isDestroyed)) {
357
+ // Will return the Handsontable instance or `null` if it's not yet been created.
358
+ return this.__hotInstance;
359
+ }
360
+ else {
361
+ this._hotTableRegisterer.removeInstance(this.hotId);
362
+ console.warn(HOT_DESTROYED_WARNING);
363
+ return null;
364
+ }
365
+ }
366
+ set hotInstance(hotInstance) {
367
+ this.__hotInstance = hotInstance;
368
+ }
369
+ ngAfterViewInit() {
370
+ const options = this._hotSettingsResolver.mergeSettings(this);
371
+ if (this.columnsComponents.length > 0) {
372
+ const columns = [];
373
+ this.columnsComponents.forEach((column) => {
374
+ columns.push(this._hotSettingsResolver.mergeSettings(column));
375
+ });
376
+ options['columns'] = columns;
377
+ }
378
+ this.ngZone.runOutsideAngular(() => {
379
+ this.hotInstance = new Handsontable.Core(this.container.nativeElement, options);
380
+ if (this.hotId) {
381
+ this._hotTableRegisterer.registerInstance(this.hotId, this.hotInstance);
382
+ }
383
+ // @ts-ignore
384
+ this.hotInstance.init();
385
+ });
386
+ }
387
+ ngOnChanges(changes) {
388
+ if (this.hotInstance === null) {
389
+ return;
390
+ }
391
+ const newOptions = this._hotSettingsResolver.prepareChanges(changes);
392
+ this.updateHotTable(newOptions);
393
+ }
394
+ ngOnDestroy() {
395
+ this.ngZone.runOutsideAngular(() => {
396
+ if (this.hotInstance) {
397
+ this.hotInstance.destroy();
398
+ }
399
+ });
400
+ if (this.hotId) {
401
+ this._hotTableRegisterer.removeInstance(this.hotId);
402
+ }
403
+ }
404
+ updateHotTable(newSettings) {
405
+ if (!this.hotInstance) {
406
+ return;
407
+ }
408
+ this.ngZone.runOutsideAngular(() => {
409
+ this.hotInstance.updateSettings(newSettings, false);
410
+ });
411
+ }
412
+ onAfterColumnsChange() {
413
+ if (this.columnsComponents === void 0) {
414
+ return;
415
+ }
416
+ if (this.columnsComponents.length > 0) {
417
+ const columns = [];
418
+ this.columnsComponents.forEach((column) => {
419
+ columns.push(this._hotSettingsResolver.mergeSettings(column));
420
+ });
421
+ const newOptions = {
422
+ columns: columns
423
+ };
424
+ this.updateHotTable(newOptions);
425
+ }
426
+ }
427
+ onAfterColumnsNumberChange() {
428
+ const columns = [];
429
+ if (this.columnsComponents.length > 0) {
430
+ this.columnsComponents.forEach((column) => {
431
+ columns.push(this._hotSettingsResolver.mergeSettings(column));
432
+ });
433
+ }
434
+ this.updateHotTable({ columns });
435
+ }
436
+ addColumn(column) {
437
+ this.columnsComponents.push(column);
438
+ this.onAfterColumnsNumberChange();
439
+ }
440
+ removeColumn(column) {
441
+ const index = this.columnsComponents.indexOf(column);
442
+ this.columnsComponents.splice(index, 1);
443
+ this.onAfterColumnsNumberChange();
444
+ }
445
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: HotTableComponent, deps: [{ token: i1.HotTableRegisterer }, { token: i2.HotSettingsResolver }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
446
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: HotTableComponent, selector: "hot-table", inputs: { settings: "settings", hotId: "hotId", activeHeaderClassName: "activeHeaderClassName", allowEmpty: "allowEmpty", allowHtml: "allowHtml", allowInsertColumn: "allowInsertColumn", allowInsertRow: "allowInsertRow", allowInvalid: "allowInvalid", allowRemoveColumn: "allowRemoveColumn", allowRemoveRow: "allowRemoveRow", ariaTags: "ariaTags", autoColumnSize: "autoColumnSize", autoRowSize: "autoRowSize", autoWrapCol: "autoWrapCol", autoWrapRow: "autoWrapRow", bindRowsWithHeaders: "bindRowsWithHeaders", cell: "cell", cells: "cells", checkedTemplate: "checkedTemplate", className: "className", colHeaders: "colHeaders", collapsibleColumns: "collapsibleColumns", columnHeaderHeight: "columnHeaderHeight", columns: "columns", columnSorting: "columnSorting", columnSummary: "columnSummary", colWidths: "colWidths", commentedCellClassName: "commentedCellClassName", comments: "comments", contextMenu: "contextMenu", copyable: "copyable", copyPaste: "copyPaste", correctFormat: "correctFormat", currentColClassName: "currentColClassName", currentHeaderClassName: "currentHeaderClassName", currentRowClassName: "currentRowClassName", customBorders: "customBorders", data: "data", dataSchema: "dataSchema", dateFormat: "dateFormat", datePickerConfig: "datePickerConfig", defaultDate: "defaultDate", tabNavigation: "tabNavigation", disableVisualSelection: "disableVisualSelection", dragToScroll: "dragToScroll", dropdownMenu: "dropdownMenu", editor: "editor", enterBeginsEditing: "enterBeginsEditing", enterMoves: "enterMoves", fillHandle: "fillHandle", filter: "filter", filteringCaseSensitive: "filteringCaseSensitive", filters: "filters", fixedColumnsLeft: "fixedColumnsLeft", fixedColumnsStart: "fixedColumnsStart", fixedRowsBottom: "fixedRowsBottom", fixedRowsTop: "fixedRowsTop", formulas: "formulas", fragmentSelection: "fragmentSelection", height: "height", hiddenColumns: "hiddenColumns", hiddenRows: "hiddenRows", invalidCellClassName: "invalidCellClassName", imeFastEdit: "imeFastEdit", label: "label", language: "language", layoutDirection: "layoutDirection", licenseKey: "licenseKey", locale: "locale", manualColumnFreeze: "manualColumnFreeze", manualColumnMove: "manualColumnMove", manualColumnResize: "manualColumnResize", manualRowMove: "manualRowMove", manualRowResize: "manualRowResize", maxCols: "maxCols", maxRows: "maxRows", mergeCells: "mergeCells", minCols: "minCols", minRows: "minRows", minSpareCols: "minSpareCols", minSpareRows: "minSpareRows", multiColumnSorting: "multiColumnSorting", navigableHeaders: "navigableHeaders", nestedHeaders: "nestedHeaders", nestedRows: "nestedRows", noWordWrapClassName: "noWordWrapClassName", numericFormat: "numericFormat", observeDOMVisibility: "observeDOMVisibility", outsideClickDeselects: "outsideClickDeselects", persistentState: "persistentState", placeholder: "placeholder", placeholderCellClassName: "placeholderCellClassName", preventOverflow: "preventOverflow", preventWheel: "preventWheel", readOnly: "readOnly", readOnlyCellClassName: "readOnlyCellClassName", renderAllColumns: "renderAllColumns", renderAllRows: "renderAllRows", renderer: "renderer", rowHeaders: "rowHeaders", rowHeaderWidth: "rowHeaderWidth", rowHeights: "rowHeights", search: "search", selectionMode: "selectionMode", selectOptions: "selectOptions", skipColumnOnPaste: "skipColumnOnPaste", skipRowOnPaste: "skipRowOnPaste", sortByRelevance: "sortByRelevance", source: "source", startCols: "startCols", startRows: "startRows", stretchH: "stretchH", strict: "strict", tableClassName: "tableClassName", tabMoves: "tabMoves", title: "title", trimDropdown: "trimDropdown", trimRows: "trimRows", trimWhitespace: "trimWhitespace", type: "type", uncheckedTemplate: "uncheckedTemplate", undo: "undo", validator: "validator", viewportColumnRenderingOffset: "viewportColumnRenderingOffset", viewportRowRenderingOffset: "viewportRowRenderingOffset", visibleRows: "visibleRows", width: "width", wordWrap: "wordWrap", afterAddChild: "afterAddChild", afterAutofill: "afterAutofill", afterBeginEditing: "afterBeginEditing", afterCellMetaReset: "afterCellMetaReset", afterChange: "afterChange", afterChangesObserved: "afterChangesObserved", afterColumnCollapse: "afterColumnCollapse", afterColumnExpand: "afterColumnExpand", afterColumnFreeze: "afterColumnFreeze", afterColumnMove: "afterColumnMove", afterColumnResize: "afterColumnResize", afterColumnSequenceChange: "afterColumnSequenceChange", afterColumnSort: "afterColumnSort", afterColumnUnfreeze: "afterColumnUnfreeze", afterContextMenuDefaultOptions: "afterContextMenuDefaultOptions", afterContextMenuHide: "afterContextMenuHide", afterContextMenuShow: "afterContextMenuShow", afterCopy: "afterCopy", afterCopyLimit: "afterCopyLimit", afterCreateCol: "afterCreateCol", afterCreateRow: "afterCreateRow", afterCut: "afterCut", afterDeselect: "afterDeselect", afterDestroy: "afterDestroy", afterDetachChild: "afterDetachChild", afterDocumentKeyDown: "afterDocumentKeyDown", afterDrawSelection: "afterDrawSelection", afterDropdownMenuDefaultOptions: "afterDropdownMenuDefaultOptions", afterDropdownMenuHide: "afterDropdownMenuHide", afterDropdownMenuShow: "afterDropdownMenuShow", afterFilter: "afterFilter", afterFormulasValuesUpdate: "afterFormulasValuesUpdate", afterGetCellMeta: "afterGetCellMeta", afterGetColHeader: "afterGetColHeader", afterGetColumnHeaderRenderers: "afterGetColumnHeaderRenderers", afterGetRowHeader: "afterGetRowHeader", afterGetRowHeaderRenderers: "afterGetRowHeaderRenderers", afterHideColumns: "afterHideColumns", afterHideRows: "afterHideRows", afterInit: "afterInit", afterLanguageChange: "afterLanguageChange", afterListen: "afterListen", afterLoadData: "afterLoadData", afterMergeCells: "afterMergeCells", afterModifyTransformEnd: "afterModifyTransformEnd", afterModifyTransformFocus: "afterModifyTransformFocus", afterModifyTransformStart: "afterModifyTransformStart", afterMomentumScroll: "afterMomentumScroll", afterNamedExpressionAdded: "afterNamedExpressionAdded", afterNamedExpressionRemoved: "afterNamedExpressionRemoved", afterOnCellContextMenu: "afterOnCellContextMenu", afterOnCellCornerDblClick: "afterOnCellCornerDblClick", afterOnCellCornerMouseDown: "afterOnCellCornerMouseDown", afterOnCellMouseDown: "afterOnCellMouseDown", afterOnCellMouseOut: "afterOnCellMouseOut", afterOnCellMouseOver: "afterOnCellMouseOver", afterOnCellMouseUp: "afterOnCellMouseUp", afterPaste: "afterPaste", afterPluginsInitialized: "afterPluginsInitialized", afterRedo: "afterRedo", afterRedoStackChange: "afterRedoStackChange", afterRefreshDimensions: "afterRefreshDimensions", afterRemoveCellMeta: "afterRemoveCellMeta", afterRemoveCol: "afterRemoveCol", afterRemoveRow: "afterRemoveRow", afterRender: "afterRender", afterRenderer: "afterRenderer", afterRowMove: "afterRowMove", afterRowResize: "afterRowResize", afterRowSequenceChange: "afterRowSequenceChange", afterScrollHorizontally: "afterScrollHorizontally", afterScrollVertically: "afterScrollVertically", afterScroll: "afterScroll", afterSelectColumns: "afterSelectColumns", afterSelection: "afterSelection", afterSelectionByProp: "afterSelectionByProp", afterSelectionEnd: "afterSelectionEnd", afterSelectionEndByProp: "afterSelectionEndByProp", afterSelectionFocusSet: "afterSelectionFocusSet", afterSelectRows: "afterSelectRows", afterSetCellMeta: "afterSetCellMeta", afterSetDataAtCell: "afterSetDataAtCell", afterSetDataAtRowProp: "afterSetDataAtRowProp", afterSetSourceDataAtCell: "afterSetSourceDataAtCell", afterSheetAdded: "afterSheetAdded", afterSheetRenamed: "afterSheetRenamed", afterSheetRemoved: "afterSheetRemoved", afterTrimRow: "afterTrimRow", afterUndo: "afterUndo", afterUndoStackChange: "afterUndoStackChange", afterUnhideColumns: "afterUnhideColumns", afterUnhideRows: "afterUnhideRows", afterUnlisten: "afterUnlisten", afterUnmergeCells: "afterUnmergeCells", afterUntrimRow: "afterUntrimRow", afterUpdateData: "afterUpdateData", afterUpdateSettings: "afterUpdateSettings", afterValidate: "afterValidate", afterViewportColumnCalculatorOverride: "afterViewportColumnCalculatorOverride", afterViewportRowCalculatorOverride: "afterViewportRowCalculatorOverride", afterViewRender: "afterViewRender", beforeAddChild: "beforeAddChild", beforeAutofill: "beforeAutofill", beforeBeginEditing: "beforeBeginEditing", beforeCellAlignment: "beforeCellAlignment", beforeChange: "beforeChange", beforeChangeRender: "beforeChangeRender", beforeColumnCollapse: "beforeColumnCollapse", beforeColumnExpand: "beforeColumnExpand", beforeColumnFreeze: "beforeColumnFreeze", beforeColumnMove: "beforeColumnMove", beforeColumnResize: "beforeColumnResize", beforeColumnSort: "beforeColumnSort", beforeColumnWrap: "beforeColumnWrap", beforeColumnUnfreeze: "beforeColumnUnfreeze", beforeContextMenuSetItems: "beforeContextMenuSetItems", beforeContextMenuShow: "beforeContextMenuShow", beforeCopy: "beforeCopy", beforeCreateCol: "beforeCreateCol", beforeCreateRow: "beforeCreateRow", beforeCut: "beforeCut", beforeDetachChild: "beforeDetachChild", beforeDrawBorders: "beforeDrawBorders", beforeDropdownMenuSetItems: "beforeDropdownMenuSetItems", beforeDropdownMenuShow: "beforeDropdownMenuShow", beforeFilter: "beforeFilter", beforeGetCellMeta: "beforeGetCellMeta", beforeHideColumns: "beforeHideColumns", beforeHideRows: "beforeHideRows", beforeHighlightingColumnHeader: "beforeHighlightingColumnHeader", beforeHighlightingRowHeader: "beforeHighlightingRowHeader", beforeInit: "beforeInit", beforeInitWalkontable: "beforeInitWalkontable", beforeKeyDown: "beforeKeyDown", beforeLanguageChange: "beforeLanguageChange", beforeLoadData: "beforeLoadData", beforeMergeCells: "beforeMergeCells", beforeOnCellContextMenu: "beforeOnCellContextMenu", beforeOnCellMouseDown: "beforeOnCellMouseDown", beforeOnCellMouseOut: "beforeOnCellMouseOut", beforeOnCellMouseOver: "beforeOnCellMouseOver", beforeOnCellMouseUp: "beforeOnCellMouseUp", beforePaste: "beforePaste", beforeRedo: "beforeRedo", beforeRedoStackChange: "beforeRedoStackChange", beforeRefreshDimensions: "beforeRefreshDimensions", beforeRemoveCellClassNames: "beforeRemoveCellClassNames", beforeRemoveCellMeta: "beforeRemoveCellMeta", beforeRemoveCol: "beforeRemoveCol", beforeRemoveRow: "beforeRemoveRow", beforeRender: "beforeRender", beforeRenderer: "beforeRenderer", beforeRowMove: "beforeRowMove", beforeRowResize: "beforeRowResize", beforeRowWrap: "beforeRowWrap", beforeSelectColumns: "beforeSelectColumns", beforeSelectionFocusSet: "beforeSelectionFocusSet", beforeSelectionHighlightSet: "beforeSelectionHighlightSet", beforeSelectRows: "beforeSelectRows", beforeSetCellMeta: "beforeSetCellMeta", beforeSetRangeEnd: "beforeSetRangeEnd", beforeSetRangeStart: "beforeSetRangeStart", beforeSetRangeStartOnly: "beforeSetRangeStartOnly", beforeStretchingColumnWidth: "beforeStretchingColumnWidth", beforeTouchScroll: "beforeTouchScroll", beforeTrimRow: "beforeTrimRow", beforeUndo: "beforeUndo", beforeUndoStackChange: "beforeUndoStackChange", beforeUnhideColumns: "beforeUnhideColumns", beforeUnhideRows: "beforeUnhideRows", beforeUnmergeCells: "beforeUnmergeCells", beforeUntrimRow: "beforeUntrimRow", beforeUpdateData: "beforeUpdateData", beforeValidate: "beforeValidate", beforeValueRender: "beforeValueRender", beforeViewportScroll: "beforeViewportScroll", beforeViewportScrollHorizontally: "beforeViewportScrollHorizontally", beforeViewportScrollVertically: "beforeViewportScrollVertically", beforeViewRender: "beforeViewRender", construct: "construct", init: "init", modifyAutoColumnSizeSeed: "modifyAutoColumnSizeSeed", modifyAutofillRange: "modifyAutofillRange", modifyColHeader: "modifyColHeader", modifyColumnHeaderHeight: "modifyColumnHeaderHeight", modifyColumnHeaderValue: "modifyColumnHeaderValue", modifyColWidth: "modifyColWidth", modifyCopyableRange: "modifyCopyableRange", modifyFiltersMultiSelectValue: "modifyFiltersMultiSelectValue", modifyFocusedElement: "modifyFocusedElement", modifyData: "modifyData", modifyFocusOnTabNavigation: "modifyFocusOnTabNavigation", modifyGetCellCoords: "modifyGetCellCoords", modifyRowData: "modifyRowData", modifyRowHeader: "modifyRowHeader", modifyRowHeaderWidth: "modifyRowHeaderWidth", modifyRowHeight: "modifyRowHeight", modifySourceData: "modifySourceData", modifyTransformEnd: "modifyTransformEnd", modifyTransformFocus: "modifyTransformFocus", modifyTransformStart: "modifyTransformStart", persistentStateLoad: "persistentStateLoad", persistentStateReset: "persistentStateReset", persistentStateSave: "persistentStateSave" }, providers: [HotTableRegisterer, HotSettingsResolver], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: '<div #container [id]="hotId"></div>', isInline: true, encapsulation: i0.ViewEncapsulation.None });
447
+ }
448
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: HotTableComponent, decorators: [{
449
+ type: Component,
450
+ args: [{
451
+ selector: 'hot-table',
452
+ template: '<div #container [id]="hotId"></div>',
453
+ encapsulation: ViewEncapsulation.None,
454
+ providers: [HotTableRegisterer, HotSettingsResolver],
455
+ }]
456
+ }], ctorParameters: () => [{ type: i1.HotTableRegisterer }, { type: i2.HotSettingsResolver }, { type: i0.NgZone }], propDecorators: { container: [{
457
+ type: ViewChild,
458
+ args: ['container', { static: false }]
459
+ }], settings: [{
460
+ type: Input
461
+ }], hotId: [{
462
+ type: Input
463
+ }], activeHeaderClassName: [{
464
+ type: Input
465
+ }], allowEmpty: [{
466
+ type: Input
467
+ }], allowHtml: [{
468
+ type: Input
469
+ }], allowInsertColumn: [{
470
+ type: Input
471
+ }], allowInsertRow: [{
472
+ type: Input
473
+ }], allowInvalid: [{
474
+ type: Input
475
+ }], allowRemoveColumn: [{
476
+ type: Input
477
+ }], allowRemoveRow: [{
478
+ type: Input
479
+ }], ariaTags: [{
480
+ type: Input
481
+ }], autoColumnSize: [{
482
+ type: Input
483
+ }], autoRowSize: [{
484
+ type: Input
485
+ }], autoWrapCol: [{
486
+ type: Input
487
+ }], autoWrapRow: [{
488
+ type: Input
489
+ }], bindRowsWithHeaders: [{
490
+ type: Input
491
+ }], cell: [{
492
+ type: Input
493
+ }], cells: [{
494
+ type: Input
495
+ }], checkedTemplate: [{
496
+ type: Input
497
+ }], className: [{
498
+ type: Input
499
+ }], colHeaders: [{
500
+ type: Input
501
+ }], collapsibleColumns: [{
502
+ type: Input
503
+ }], columnHeaderHeight: [{
504
+ type: Input
505
+ }], columns: [{
506
+ type: Input
507
+ }], columnSorting: [{
508
+ type: Input
509
+ }], columnSummary: [{
510
+ type: Input
511
+ }], colWidths: [{
512
+ type: Input
513
+ }], commentedCellClassName: [{
514
+ type: Input
515
+ }], comments: [{
516
+ type: Input
517
+ }], contextMenu: [{
518
+ type: Input
519
+ }], copyable: [{
520
+ type: Input
521
+ }], copyPaste: [{
522
+ type: Input
523
+ }], correctFormat: [{
524
+ type: Input
525
+ }], currentColClassName: [{
526
+ type: Input
527
+ }], currentHeaderClassName: [{
528
+ type: Input
529
+ }], currentRowClassName: [{
530
+ type: Input
531
+ }], customBorders: [{
532
+ type: Input
533
+ }], data: [{
534
+ type: Input
535
+ }], dataSchema: [{
536
+ type: Input
537
+ }], dateFormat: [{
538
+ type: Input
539
+ }], datePickerConfig: [{
540
+ type: Input
541
+ }], defaultDate: [{
542
+ type: Input
543
+ }], tabNavigation: [{
544
+ type: Input
545
+ }], disableVisualSelection: [{
546
+ type: Input
547
+ }], dragToScroll: [{
548
+ type: Input
549
+ }], dropdownMenu: [{
550
+ type: Input
551
+ }], editor: [{
552
+ type: Input
553
+ }], enterBeginsEditing: [{
554
+ type: Input
555
+ }], enterMoves: [{
556
+ type: Input
557
+ }], fillHandle: [{
558
+ type: Input
559
+ }], filter: [{
560
+ type: Input
561
+ }], filteringCaseSensitive: [{
562
+ type: Input
563
+ }], filters: [{
564
+ type: Input
565
+ }], fixedColumnsLeft: [{
566
+ type: Input
567
+ }], fixedColumnsStart: [{
568
+ type: Input
569
+ }], fixedRowsBottom: [{
570
+ type: Input
571
+ }], fixedRowsTop: [{
572
+ type: Input
573
+ }], formulas: [{
574
+ type: Input
575
+ }], fragmentSelection: [{
576
+ type: Input
577
+ }], height: [{
578
+ type: Input
579
+ }], hiddenColumns: [{
580
+ type: Input
581
+ }], hiddenRows: [{
582
+ type: Input
583
+ }], invalidCellClassName: [{
584
+ type: Input
585
+ }], imeFastEdit: [{
586
+ type: Input
587
+ }], label: [{
588
+ type: Input
589
+ }], language: [{
590
+ type: Input
591
+ }], layoutDirection: [{
592
+ type: Input
593
+ }], licenseKey: [{
594
+ type: Input
595
+ }], locale: [{
596
+ type: Input
597
+ }], manualColumnFreeze: [{
598
+ type: Input
599
+ }], manualColumnMove: [{
600
+ type: Input
601
+ }], manualColumnResize: [{
602
+ type: Input
603
+ }], manualRowMove: [{
604
+ type: Input
605
+ }], manualRowResize: [{
606
+ type: Input
607
+ }], maxCols: [{
608
+ type: Input
609
+ }], maxRows: [{
610
+ type: Input
611
+ }], mergeCells: [{
612
+ type: Input
613
+ }], minCols: [{
614
+ type: Input
615
+ }], minRows: [{
616
+ type: Input
617
+ }], minSpareCols: [{
618
+ type: Input
619
+ }], minSpareRows: [{
620
+ type: Input
621
+ }], multiColumnSorting: [{
622
+ type: Input
623
+ }], navigableHeaders: [{
624
+ type: Input
625
+ }], nestedHeaders: [{
626
+ type: Input
627
+ }], nestedRows: [{
628
+ type: Input
629
+ }], noWordWrapClassName: [{
630
+ type: Input
631
+ }], numericFormat: [{
632
+ type: Input
633
+ }], observeDOMVisibility: [{
634
+ type: Input
635
+ }], outsideClickDeselects: [{
636
+ type: Input
637
+ }], persistentState: [{
638
+ type: Input
639
+ }], placeholder: [{
640
+ type: Input
641
+ }], placeholderCellClassName: [{
642
+ type: Input
643
+ }], preventOverflow: [{
644
+ type: Input
645
+ }], preventWheel: [{
646
+ type: Input
647
+ }], readOnly: [{
648
+ type: Input
649
+ }], readOnlyCellClassName: [{
650
+ type: Input
651
+ }], renderAllColumns: [{
652
+ type: Input
653
+ }], renderAllRows: [{
654
+ type: Input
655
+ }], renderer: [{
656
+ type: Input
657
+ }], rowHeaders: [{
658
+ type: Input
659
+ }], rowHeaderWidth: [{
660
+ type: Input
661
+ }], rowHeights: [{
662
+ type: Input
663
+ }], search: [{
664
+ type: Input
665
+ }], selectionMode: [{
666
+ type: Input
667
+ }], selectOptions: [{
668
+ type: Input
669
+ }], skipColumnOnPaste: [{
670
+ type: Input
671
+ }], skipRowOnPaste: [{
672
+ type: Input
673
+ }], sortByRelevance: [{
674
+ type: Input
675
+ }], source: [{
676
+ type: Input
677
+ }], startCols: [{
678
+ type: Input
679
+ }], startRows: [{
680
+ type: Input
681
+ }], stretchH: [{
682
+ type: Input
683
+ }], strict: [{
684
+ type: Input
685
+ }], tableClassName: [{
686
+ type: Input
687
+ }], tabMoves: [{
688
+ type: Input
689
+ }], title: [{
690
+ type: Input
691
+ }], trimDropdown: [{
692
+ type: Input
693
+ }], trimRows: [{
694
+ type: Input
695
+ }], trimWhitespace: [{
696
+ type: Input
697
+ }], type: [{
698
+ type: Input
699
+ }], uncheckedTemplate: [{
700
+ type: Input
701
+ }], undo: [{
702
+ type: Input
703
+ }], validator: [{
704
+ type: Input
705
+ }], viewportColumnRenderingOffset: [{
706
+ type: Input
707
+ }], viewportRowRenderingOffset: [{
708
+ type: Input
709
+ }], visibleRows: [{
710
+ type: Input
711
+ }], width: [{
712
+ type: Input
713
+ }], wordWrap: [{
714
+ type: Input
715
+ }], afterAddChild: [{
716
+ type: Input
717
+ }], afterAutofill: [{
718
+ type: Input
719
+ }], afterBeginEditing: [{
720
+ type: Input
721
+ }], afterCellMetaReset: [{
722
+ type: Input
723
+ }], afterChange: [{
724
+ type: Input
725
+ }], afterChangesObserved: [{
726
+ type: Input
727
+ }], afterColumnCollapse: [{
728
+ type: Input
729
+ }], afterColumnExpand: [{
730
+ type: Input
731
+ }], afterColumnFreeze: [{
732
+ type: Input
733
+ }], afterColumnMove: [{
734
+ type: Input
735
+ }], afterColumnResize: [{
736
+ type: Input
737
+ }], afterColumnSequenceChange: [{
738
+ type: Input
739
+ }], afterColumnSort: [{
740
+ type: Input
741
+ }], afterColumnUnfreeze: [{
742
+ type: Input
743
+ }], afterContextMenuDefaultOptions: [{
744
+ type: Input
745
+ }], afterContextMenuHide: [{
746
+ type: Input
747
+ }], afterContextMenuShow: [{
748
+ type: Input
749
+ }], afterCopy: [{
750
+ type: Input
751
+ }], afterCopyLimit: [{
752
+ type: Input
753
+ }], afterCreateCol: [{
754
+ type: Input
755
+ }], afterCreateRow: [{
756
+ type: Input
757
+ }], afterCut: [{
758
+ type: Input
759
+ }], afterDeselect: [{
760
+ type: Input
761
+ }], afterDestroy: [{
762
+ type: Input
763
+ }], afterDetachChild: [{
764
+ type: Input
765
+ }], afterDocumentKeyDown: [{
766
+ type: Input
767
+ }], afterDrawSelection: [{
768
+ type: Input
769
+ }], afterDropdownMenuDefaultOptions: [{
770
+ type: Input
771
+ }], afterDropdownMenuHide: [{
772
+ type: Input
773
+ }], afterDropdownMenuShow: [{
774
+ type: Input
775
+ }], afterFilter: [{
776
+ type: Input
777
+ }], afterFormulasValuesUpdate: [{
778
+ type: Input
779
+ }], afterGetCellMeta: [{
780
+ type: Input
781
+ }], afterGetColHeader: [{
782
+ type: Input
783
+ }], afterGetColumnHeaderRenderers: [{
784
+ type: Input
785
+ }], afterGetRowHeader: [{
786
+ type: Input
787
+ }], afterGetRowHeaderRenderers: [{
788
+ type: Input
789
+ }], afterHideColumns: [{
790
+ type: Input
791
+ }], afterHideRows: [{
792
+ type: Input
793
+ }], afterInit: [{
794
+ type: Input
795
+ }], afterLanguageChange: [{
796
+ type: Input
797
+ }], afterListen: [{
798
+ type: Input
799
+ }], afterLoadData: [{
800
+ type: Input
801
+ }], afterMergeCells: [{
802
+ type: Input
803
+ }], afterModifyTransformEnd: [{
804
+ type: Input
805
+ }], afterModifyTransformFocus: [{
806
+ type: Input
807
+ }], afterModifyTransformStart: [{
808
+ type: Input
809
+ }], afterMomentumScroll: [{
810
+ type: Input
811
+ }], afterNamedExpressionAdded: [{
812
+ type: Input
813
+ }], afterNamedExpressionRemoved: [{
814
+ type: Input
815
+ }], afterOnCellContextMenu: [{
816
+ type: Input
817
+ }], afterOnCellCornerDblClick: [{
818
+ type: Input
819
+ }], afterOnCellCornerMouseDown: [{
820
+ type: Input
821
+ }], afterOnCellMouseDown: [{
822
+ type: Input
823
+ }], afterOnCellMouseOut: [{
824
+ type: Input
825
+ }], afterOnCellMouseOver: [{
826
+ type: Input
827
+ }], afterOnCellMouseUp: [{
828
+ type: Input
829
+ }], afterPaste: [{
830
+ type: Input
831
+ }], afterPluginsInitialized: [{
832
+ type: Input
833
+ }], afterRedo: [{
834
+ type: Input
835
+ }], afterRedoStackChange: [{
836
+ type: Input
837
+ }], afterRefreshDimensions: [{
838
+ type: Input
839
+ }], afterRemoveCellMeta: [{
840
+ type: Input
841
+ }], afterRemoveCol: [{
842
+ type: Input
843
+ }], afterRemoveRow: [{
844
+ type: Input
845
+ }], afterRender: [{
846
+ type: Input
847
+ }], afterRenderer: [{
848
+ type: Input
849
+ }], afterRowMove: [{
850
+ type: Input
851
+ }], afterRowResize: [{
852
+ type: Input
853
+ }], afterRowSequenceChange: [{
854
+ type: Input
855
+ }], afterScrollHorizontally: [{
856
+ type: Input
857
+ }], afterScrollVertically: [{
858
+ type: Input
859
+ }], afterScroll: [{
860
+ type: Input
861
+ }], afterSelectColumns: [{
862
+ type: Input
863
+ }], afterSelection: [{
864
+ type: Input
865
+ }], afterSelectionByProp: [{
866
+ type: Input
867
+ }], afterSelectionEnd: [{
868
+ type: Input
869
+ }], afterSelectionEndByProp: [{
870
+ type: Input
871
+ }], afterSelectionFocusSet: [{
872
+ type: Input
873
+ }], afterSelectRows: [{
874
+ type: Input
875
+ }], afterSetCellMeta: [{
876
+ type: Input
877
+ }], afterSetDataAtCell: [{
878
+ type: Input
879
+ }], afterSetDataAtRowProp: [{
880
+ type: Input
881
+ }], afterSetSourceDataAtCell: [{
882
+ type: Input
883
+ }], afterSheetAdded: [{
884
+ type: Input
885
+ }], afterSheetRenamed: [{
886
+ type: Input
887
+ }], afterSheetRemoved: [{
888
+ type: Input
889
+ }], afterTrimRow: [{
890
+ type: Input
891
+ }], afterUndo: [{
892
+ type: Input
893
+ }], afterUndoStackChange: [{
894
+ type: Input
895
+ }], afterUnhideColumns: [{
896
+ type: Input
897
+ }], afterUnhideRows: [{
898
+ type: Input
899
+ }], afterUnlisten: [{
900
+ type: Input
901
+ }], afterUnmergeCells: [{
902
+ type: Input
903
+ }], afterUntrimRow: [{
904
+ type: Input
905
+ }], afterUpdateData: [{
906
+ type: Input
907
+ }], afterUpdateSettings: [{
908
+ type: Input
909
+ }], afterValidate: [{
910
+ type: Input
911
+ }], afterViewportColumnCalculatorOverride: [{
912
+ type: Input
913
+ }], afterViewportRowCalculatorOverride: [{
914
+ type: Input
915
+ }], afterViewRender: [{
916
+ type: Input
917
+ }], beforeAddChild: [{
918
+ type: Input
919
+ }], beforeAutofill: [{
920
+ type: Input
921
+ }], beforeBeginEditing: [{
922
+ type: Input
923
+ }], beforeCellAlignment: [{
924
+ type: Input
925
+ }], beforeChange: [{
926
+ type: Input
927
+ }], beforeChangeRender: [{
928
+ type: Input
929
+ }], beforeColumnCollapse: [{
930
+ type: Input
931
+ }], beforeColumnExpand: [{
932
+ type: Input
933
+ }], beforeColumnFreeze: [{
934
+ type: Input
935
+ }], beforeColumnMove: [{
936
+ type: Input
937
+ }], beforeColumnResize: [{
938
+ type: Input
939
+ }], beforeColumnSort: [{
940
+ type: Input
941
+ }], beforeColumnWrap: [{
942
+ type: Input
943
+ }], beforeColumnUnfreeze: [{
944
+ type: Input
945
+ }], beforeContextMenuSetItems: [{
946
+ type: Input
947
+ }], beforeContextMenuShow: [{
948
+ type: Input
949
+ }], beforeCopy: [{
950
+ type: Input
951
+ }], beforeCreateCol: [{
952
+ type: Input
953
+ }], beforeCreateRow: [{
954
+ type: Input
955
+ }], beforeCut: [{
956
+ type: Input
957
+ }], beforeDetachChild: [{
958
+ type: Input
959
+ }], beforeDrawBorders: [{
960
+ type: Input
961
+ }], beforeDropdownMenuSetItems: [{
962
+ type: Input
963
+ }], beforeDropdownMenuShow: [{
964
+ type: Input
965
+ }], beforeFilter: [{
966
+ type: Input
967
+ }], beforeGetCellMeta: [{
968
+ type: Input
969
+ }], beforeHideColumns: [{
970
+ type: Input
971
+ }], beforeHideRows: [{
972
+ type: Input
973
+ }], beforeHighlightingColumnHeader: [{
974
+ type: Input
975
+ }], beforeHighlightingRowHeader: [{
976
+ type: Input
977
+ }], beforeInit: [{
978
+ type: Input
979
+ }], beforeInitWalkontable: [{
980
+ type: Input
981
+ }], beforeKeyDown: [{
982
+ type: Input
983
+ }], beforeLanguageChange: [{
984
+ type: Input
985
+ }], beforeLoadData: [{
986
+ type: Input
987
+ }], beforeMergeCells: [{
988
+ type: Input
989
+ }], beforeOnCellContextMenu: [{
990
+ type: Input
991
+ }], beforeOnCellMouseDown: [{
992
+ type: Input
993
+ }], beforeOnCellMouseOut: [{
994
+ type: Input
995
+ }], beforeOnCellMouseOver: [{
996
+ type: Input
997
+ }], beforeOnCellMouseUp: [{
998
+ type: Input
999
+ }], beforePaste: [{
1000
+ type: Input
1001
+ }], beforeRedo: [{
1002
+ type: Input
1003
+ }], beforeRedoStackChange: [{
1004
+ type: Input
1005
+ }], beforeRefreshDimensions: [{
1006
+ type: Input
1007
+ }], beforeRemoveCellClassNames: [{
1008
+ type: Input
1009
+ }], beforeRemoveCellMeta: [{
1010
+ type: Input
1011
+ }], beforeRemoveCol: [{
1012
+ type: Input
1013
+ }], beforeRemoveRow: [{
1014
+ type: Input
1015
+ }], beforeRender: [{
1016
+ type: Input
1017
+ }], beforeRenderer: [{
1018
+ type: Input
1019
+ }], beforeRowMove: [{
1020
+ type: Input
1021
+ }], beforeRowResize: [{
1022
+ type: Input
1023
+ }], beforeRowWrap: [{
1024
+ type: Input
1025
+ }], beforeSelectColumns: [{
1026
+ type: Input
1027
+ }], beforeSelectionFocusSet: [{
1028
+ type: Input
1029
+ }], beforeSelectionHighlightSet: [{
1030
+ type: Input
1031
+ }], beforeSelectRows: [{
1032
+ type: Input
1033
+ }], beforeSetCellMeta: [{
1034
+ type: Input
1035
+ }], beforeSetRangeEnd: [{
1036
+ type: Input
1037
+ }], beforeSetRangeStart: [{
1038
+ type: Input
1039
+ }], beforeSetRangeStartOnly: [{
1040
+ type: Input
1041
+ }], beforeStretchingColumnWidth: [{
1042
+ type: Input
1043
+ }], beforeTouchScroll: [{
1044
+ type: Input
1045
+ }], beforeTrimRow: [{
1046
+ type: Input
1047
+ }], beforeUndo: [{
1048
+ type: Input
1049
+ }], beforeUndoStackChange: [{
1050
+ type: Input
1051
+ }], beforeUnhideColumns: [{
1052
+ type: Input
1053
+ }], beforeUnhideRows: [{
1054
+ type: Input
1055
+ }], beforeUnmergeCells: [{
1056
+ type: Input
1057
+ }], beforeUntrimRow: [{
1058
+ type: Input
1059
+ }], beforeUpdateData: [{
1060
+ type: Input
1061
+ }], beforeValidate: [{
1062
+ type: Input
1063
+ }], beforeValueRender: [{
1064
+ type: Input
1065
+ }], beforeViewportScroll: [{
1066
+ type: Input
1067
+ }], beforeViewportScrollHorizontally: [{
1068
+ type: Input
1069
+ }], beforeViewportScrollVertically: [{
1070
+ type: Input
1071
+ }], beforeViewRender: [{
1072
+ type: Input
1073
+ }], construct: [{
1074
+ type: Input
1075
+ }], init: [{
1076
+ type: Input
1077
+ }], modifyAutoColumnSizeSeed: [{
1078
+ type: Input
1079
+ }], modifyAutofillRange: [{
1080
+ type: Input
1081
+ }], modifyColHeader: [{
1082
+ type: Input
1083
+ }], modifyColumnHeaderHeight: [{
1084
+ type: Input
1085
+ }], modifyColumnHeaderValue: [{
1086
+ type: Input
1087
+ }], modifyColWidth: [{
1088
+ type: Input
1089
+ }], modifyCopyableRange: [{
1090
+ type: Input
1091
+ }], modifyFiltersMultiSelectValue: [{
1092
+ type: Input
1093
+ }], modifyFocusedElement: [{
1094
+ type: Input
1095
+ }], modifyData: [{
1096
+ type: Input
1097
+ }], modifyFocusOnTabNavigation: [{
1098
+ type: Input
1099
+ }], modifyGetCellCoords: [{
1100
+ type: Input
1101
+ }], modifyRowData: [{
1102
+ type: Input
1103
+ }], modifyRowHeader: [{
1104
+ type: Input
1105
+ }], modifyRowHeaderWidth: [{
1106
+ type: Input
1107
+ }], modifyRowHeight: [{
1108
+ type: Input
1109
+ }], modifySourceData: [{
1110
+ type: Input
1111
+ }], modifyTransformEnd: [{
1112
+ type: Input
1113
+ }], modifyTransformFocus: [{
1114
+ type: Input
1115
+ }], modifyTransformStart: [{
1116
+ type: Input
1117
+ }], persistentStateLoad: [{
1118
+ type: Input
1119
+ }], persistentStateReset: [{
1120
+ type: Input
1121
+ }], persistentStateSave: [{
1122
+ type: Input
1123
+ }] } });
1124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2hvdC10YWJsZS9zcmMvbGliL2hvdC10YWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBS0wsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUN0QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7O0FBU3RFLE1BQU0sT0FBTyxpQkFBaUI7SUF1VmxCO0lBQ0E7SUFDRDtJQXhWeUMsU0FBUyxDQUFDO0lBRXBELGFBQWEsR0FBd0IsSUFBSSxDQUFDO0lBQzFDLGlCQUFpQixHQUF5QixFQUFFLENBQUM7SUFDckQsbUJBQW1CO0lBQ1YsUUFBUSxDQUE0QjtJQUNwQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLHVCQUF1QjtJQUNkLHFCQUFxQixDQUFxRDtJQUMxRSxVQUFVLENBQTBDO0lBQ3BELFNBQVMsQ0FBeUM7SUFDbEQsaUJBQWlCLENBQWlEO0lBQ2xFLGNBQWMsQ0FBOEM7SUFDNUQsWUFBWSxDQUE0QztJQUN4RCxpQkFBaUIsQ0FBaUQ7SUFDbEUsY0FBYyxDQUE4QztJQUM1RCxRQUFRLENBQXdDO0lBQ2hELGNBQWMsQ0FBOEM7SUFDNUQsV0FBVyxDQUEyQztJQUN0RCxXQUFXLENBQTJDO0lBQ3RELFdBQVcsQ0FBMkM7SUFDdEQsbUJBQW1CLENBQW1EO0lBQ3RFLElBQUksQ0FBb0M7SUFDeEMsS0FBSyxDQUFxQztJQUMxQyxlQUFlLENBQStDO0lBQzlELFNBQVMsQ0FBeUM7SUFDbEQsVUFBVSxDQUEwQztJQUNwRCxrQkFBa0IsQ0FBa0Q7SUFDcEUsa0JBQWtCLENBQWtEO0lBQ3BFLE9BQU8sQ0FBdUM7SUFDOUMsYUFBYSxDQUE2QztJQUMxRCxhQUFhLENBQTZDO0lBQzFELFNBQVMsQ0FBeUM7SUFDbEQsc0JBQXNCLENBQXNEO0lBQzVFLFFBQVEsQ0FBd0M7SUFDaEQsV0FBVyxDQUEyQztJQUN0RCxRQUFRLENBQXdDO0lBQ2hELFNBQVMsQ0FBeUM7SUFDbEQsYUFBYSxDQUE2QztJQUMxRCxtQkFBbUIsQ0FBbUQ7SUFDdEUsc0JBQXNCLENBQXNEO0lBQzVFLG1CQUFtQixDQUFtRDtJQUN0RSxhQUFhLENBQTZDO0lBQzFELElBQUksQ0FBb0M7SUFDeEMsVUFBVSxDQUEwQztJQUNwRCxVQUFVLENBQTBDO0lBQ3BELGdCQUFnQixDQUFnRDtJQUNoRSxXQUFXLENBQTJDO0lBQ3RELGFBQWEsQ0FBNkM7SUFDMUQsc0JBQXNCLENBQXNEO0lBQzVFLFlBQVksQ0FBNEM7SUFDeEQsWUFBWSxDQUE0QztJQUN4RCxNQUFNLENBQXNDO0lBQzVDLGtCQUFrQixDQUFrRDtJQUNwRSxVQUFVLENBQTBDO0lBQ3BELFVBQVUsQ0FBMEM7SUFDcEQsTUFBTSxDQUFzQztJQUM1QyxzQkFBc0IsQ0FBc0Q7SUFDNUUsT0FBTyxDQUF1QztJQUM5QyxnQkFBZ0IsQ0FBZ0Q7SUFDaEUsaUJBQWlCLENBQWlEO0lBQ2xFLGVBQWUsQ0FBK0M7SUFDOUQsWUFBWSxDQUE0QztJQUN4RCxRQUFRLENBQXdDO0lBQ2hELGlCQUFpQixDQUFpRDtJQUNsRSxNQUFNLENBQXNDO0lBQzVDLGFBQWEsQ0FBNkM7SUFDMUQsVUFBVSxDQUEwQztJQUNwRCxvQkFBb0IsQ0FBb0Q7SUFDeEUsV0FBVyxDQUEyQztJQUN0RCxLQUFLLENBQXFDO0lBQzFDLFFBQVEsQ0FBd0M7SUFDaEQsZUFBZSxDQUErQztJQUM5RCxVQUFVLENBQTBDO0lBQ3BELE1BQU0sQ0FBc0M7SUFDNUMsa0JBQWtCLENBQWtEO0lBQ3BFLGdCQUFnQixDQUFnRDtJQUNoRSxrQkFBa0IsQ0FBa0Q7SUFDcEUsYUFBYSxDQUE2QztJQUMxRCxlQUFlLENBQStDO0lBQzlELE9BQU8sQ0FBdUM7SUFDOUMsT0FBTyxDQUF1QztJQUM5QyxVQUFVLENBQTBDO0lBQ3BELE9BQU8sQ0FBdUM7SUFDOUMsT0FBTyxDQUF1QztJQUM5QyxZQUFZLENBQTRDO0lBQ3hELFlBQVksQ0FBNEM7SUFDeEQsa0JBQWtCLENBQWtEO0lBQ3BFLGdCQUFnQixDQUFnRDtJQUNoRSxhQUFhLENBQTZDO0lBQzFELFVBQVUsQ0FBMEM7SUFDcEQsbUJBQW1CLENBQW1EO0lBQ3RFLGFBQWEsQ0FBNkM7SUFDMUQsb0JBQW9CLENBQW9EO0lBQ3hFLHFCQUFxQixDQUFxRDtJQUMxRSxlQUFlLENBQStDO0lBQzlELFdBQVcsQ0FBMkM7SUFDdEQsd0JBQXdCLENBQXdEO0lBQ2hGLGVBQWUsQ0FBK0M7SUFDOUQsWUFBWSxDQUE0QztJQUN4RCxRQUFRLENBQXdDO0lBQ2hELHFCQUFxQixDQUFxRDtJQUMxRSxnQkFBZ0IsQ0FBZ0Q7SUFDaEUsYUFBYSxDQUE2QztJQUMxRCxRQUFRLENBQXdDO0lBQ2hELFVBQVUsQ0FBMEM7SUFDcEQsY0FBYyxDQUE4QztJQUM1RCxVQUFVLENBQTBDO0lBQ3BELE1BQU0sQ0FBc0M7SUFDNUMsYUFBYSxDQUE2QztJQUMxRCxhQUFhLENBQTZDO0lBQzFELGlCQUFpQixDQUFpRDtJQUNsRSxjQUFjLENBQU07SUFDcEIsZUFBZSxDQUErQztJQUM5RCxNQUFNLENBQXNDO0lBQzVDLFNBQVMsQ0FBeUM7SUFDbEQsU0FBUyxDQUF5QztJQUNsRCxRQUFRLENBQXdDO0lBQ2hELE1BQU0sQ0FBc0M7SUFDNUMsY0FBYyxDQUE4QztJQUM1RCxRQUFRLENBQXdDO0lBQ2hELEtBQUssQ0FBcUM7SUFDMUMsWUFBWSxDQUE0QztJQUN4RCxRQUFRLENBQTBDO0lBQ2xELGNBQWMsQ0FBOEM7SUFDNUQsSUFBSSxDQUFvQztJQUN4QyxpQkFBaUIsQ0FBaUQ7SUFDbEUsSUFBSSxDQUFvQztJQUN4QyxTQUFTLENBQXlDO0lBQ2xELDZCQUE2QixDQUE2RDtJQUMxRiwwQkFBMEIsQ0FBMEQ7SUFDcEYsV0FBVyxDQUEyQztJQUN0RCxLQUFLLENBQXFDO0lBQzFDLFFBQVEsQ0FBd0M7SUFFekQscUJBQXFCO0lBQ1osYUFBYSxDQUE2QztJQUMxRCxhQUFhLENBQTZDO0lBQzFELGlCQUFpQixDQUFpRDtJQUNsRSxrQkFBa0IsQ0FBa0Q7SUFDcEUsV0FBVyxDQUEyQztJQUN0RCxvQkFBb0IsQ0FBb0Q7SUFDeEUsbUJBQW1CLENBQW1EO0lBQ3RFLGlCQUFpQixDQUFpRDtJQUNsRSxpQkFBaUIsQ0FBaUQ7SUFDbEUsZUFBZSxDQUErQztJQUM5RCxpQkFBaUIsQ0FBaUQ7SUFDbEUseUJBQXlCLENBQXlEO0lBQ2xGLGVBQWUsQ0FBK0M7SUFDOUQsbUJBQW1CLENBQW1EO0lBQ3RFLDhCQUE4QixDQUE4RDtJQUM1RixvQkFBb0IsQ0FBb0Q7SUFDeEUsb0JBQW9CLENBQW9EO0lBQ3hFLFNBQVMsQ0FBeUM7SUFDbEQsY0FBYyxDQUE4QztJQUM1RCxjQUFjLENBQThDO0lBQzVELGNBQWMsQ0FBOEM7SUFDNUQsUUFBUSxDQUF3QztJQUNoRCxhQUFhLENBQTZDO0lBQzFELFlBQVksQ0FBNEM7SUFDeEQsZ0JBQWdCLENBQWdEO0lBQ2hFLG9CQUFvQixDQUFvRDtJQUN4RSxrQkFBa0IsQ0FBa0Q7SUFDcEUsK0JBQStCLENBQStEO0lBQzlGLHFCQUFxQixDQUFxRDtJQUMxRSxxQkFBcUIsQ0FBcUQ7SUFDMUUsV0FBVyxDQUEyQztJQUN0RCx5QkFBeUIsQ0FBeUQ7SUFDbEYsZ0JBQWdCLENBQWdEO0lBQ2hFLGlCQUFpQixDQUFpRDtJQUNsRSw2QkFBNkIsQ0FBNkQ7SUFDMUYsaUJBQWlCLENBQWlEO0lBQ2xFLDBCQUEwQixDQUEwRDtJQUNwRixnQkFBZ0IsQ0FBZ0Q7SUFDaEUsYUFBYSxDQUE2QztJQUMxRCxTQUFTLENBQXlDO0lBQ2xELG1CQUFtQixDQUFtRDtJQUN0RSxXQUFXLENBQTJDO0lBQ3RELGFBQWEsQ0FBNkM7SUFDMUQsZUFBZSxDQUErQztJQUM5RCx1QkFBdUIsQ0FBdUQ7SUFDOUUseUJBQXlCLENBQXlEO0lBQ2xGLHlCQUF5QixDQUF5RDtJQUNsRixtQkFBbUIsQ0FBbUQ7SUFDdEUseUJBQXlCLENBQXlEO0lBQ2xGLDJCQUEyQixDQUEyRDtJQUN0RixzQkFBc0IsQ0FBc0Q7SUFDNUUseUJBQXlCLENBQXlEO0lBQ2xGLDBCQUEwQixDQUEwRDtJQUNwRixvQkFBb0IsQ0FBb0Q7SUFDeEUsbUJBQW1CLENBQW1EO0lBQ3RFLG9CQUFvQixDQUFvRDtJQUN4RSxrQkFBa0IsQ0FBa0Q7SUFDcEUsVUFBVSxDQUEwQztJQUNwRCx1QkFBdUIsQ0FBdUQ7SUFDOUUsU0FBUyxDQUF5QztJQUNsRCxvQkFBb0IsQ0FBb0Q7SUFDeEUsc0JBQXNCLENBQXNEO0lBQzVFLG1CQUFtQixDQUFtRDtJQUN0RSxjQUFjLENBQThDO0lBQzVELGNBQWMsQ0FBOEM7SUFDNUQsV0FBVyxDQUEyQztJQUN0RCxhQUFhLENBQTZDO0lBQzFELFlBQVksQ0FBNEM7SUFDeEQsY0FBYyxDQUE4QztJQUM1RCxzQkFBc0IsQ0FBc0Q7SUFDNUUsdUJBQXVCLENBQXVEO0lBQzlFLHFCQUFxQixDQUFxRDtJQUMxRSxXQUFXLENBQTJDO0lBQ3RELGtCQUFrQixDQUFrRDtJQUNwRSxjQUFjLENBQThDO0lBQzVELG9CQUFvQixDQUFvRDtJQUN4RSxpQkFBaUIsQ0FBaUQ7SUFDbEUsdUJBQXVCLENBQXVEO0lBQzlFLHNCQUFzQixDQUFzRDtJQUM1RSxlQUFlLENBQStDO0lBQzlELGdCQUFnQixDQUFnRDtJQUNoRSxrQkFBa0IsQ0FBa0Q7SUFDcEUscUJBQXFCLENBQXFEO0lBQzFFLHdCQUF3QixDQUF3RDtJQUNoRixlQUFlLENBQStDO0lBQzlELGlCQUFpQixDQUFpRDtJQUNsRSxpQkFBaUIsQ0FBaUQ7SUFDbEUsWUFBWSxDQUE0QztJQUN4RCxTQUFTLENBQXlDO0lBQ2xELG9CQUFvQixDQUFvRDtJQUN4RSxrQkFBa0IsQ0FBa0Q7SUFDcEUsZUFBZSxDQUErQztJQUM5RCxhQUFhLENBQTZDO0lBQzFELGlCQUFpQixDQUFpRDtJQUNsRSxjQUFjLENBQThDO0lBQzVELGVBQWUsQ0FBK0M7SUFDOUQsbUJBQW1CLENBQW1EO0lBQ3RFLGFBQWEsQ0FBNkM7SUFDMUQscUNBQXFDLENBQXFFO0lBQzFHLGtDQUFrQyxDQUFrRTtJQUNwRyxlQUFlLENBQStDO0lBQzlELGNBQWMsQ0FBOEM7SUFDNUQsY0FBYyxDQUE4QztJQUM1RCxrQkFBa0IsQ0FBa0Q7SUFDcEUsbUJBQW1CLENBQW1EO0lBQ3RFLFlBQVksQ0FBNEM7SUFDeEQsa0JBQWtCLENBQWtEO0lBQ3BFLG9CQUFvQixDQUFvRDtJQUN4RSxrQkFBa0IsQ0FBa0Q7SUFDcEUsa0JBQWtCLENBQWtEO0lBQ3BFLGdCQUFnQixDQUFnRDtJQUNoRSxrQkFBa0IsQ0FBa0Q7SUFDcEUsZ0JBQWdCLENBQWdEO0lBQ2hFLGdCQUFnQixDQUFnRDtJQUNoRSxvQkFBb0IsQ0FBb0Q7SUFDeEUseUJBQXlCLENBQXlEO0lBQ2xGLHFCQUFxQixDQUFxRDtJQUMxRSxVQUFVLENBQTBDO0lBQ3BELGVBQWUsQ0FBK0M7SUFDOUQsZUFBZSxDQUErQztJQUM5RCxTQUFTLENBQXlDO0lBQ2xELGlCQUFpQixDQUFpRDtJQUNsRSxpQkFBaUIsQ0FBaUQ7SUFDbEUsMEJBQTBCLENBQTBEO0lBQ3BGLHNCQUFzQixDQUFzRDtJQUM1RSxZQUFZLENBQTRDO0lBQ3hELGlCQUFpQixDQUFpRDtJQUNsRSxpQkFBaUIsQ0FBaUQ7SUFDbEUsY0FBYyxDQUE4QztJQUM1RCw4QkFBOEIsQ0FBOEQ7SUFDNUYsMkJBQTJCLENBQTJEO0lBQ3RGLFVBQVUsQ0FBMEM7SUFDcEQscUJBQXFCLENBQXFEO0lBQzFFLGFBQWEsQ0FBNkM7SUFDMUQsb0JBQW9CLENBQW9EO0lBQ3hFLGNBQWMsQ0FBOEM7SUFDNUQsZ0JBQWdCLENBQWdEO0lBQ2hFLHVCQUF1QixDQUF1RDtJQUM5RSxxQkFBcUIsQ0FBcUQ7SUFDMUUsb0JBQW9CLENBQW9EO0lBQ3hFLHFCQUFxQixDQUFxRDtJQUMxRSxtQkFBbUIsQ0FBbUQ7SUFDdEUsV0FBVyxDQUEyQztJQUN0RCxVQUFVLENBQTBDO0lBQ3BELHFCQUFxQixDQUFxRDtJQUMxRSx1QkFBdUIsQ0FBdUQ7SUFDOUUsMEJBQTBCLENBQTBEO0lBQ3BGLG9CQUFvQixDQUFvRDtJQUN4RSxlQUFlLENBQStDO0lBQzlELGVBQWUsQ0FBK0M7SUFDOUQsWUFBWSxDQUE0QztJQUN4RCxjQUFjLENBQThDO0lBQzVELGFBQWEsQ0FBNkM7SUFDMUQsZUFBZSxDQUErQztJQUM5RCxhQUFhLENBQTZDO0lBQzFELG1CQUFtQixDQUFtRDtJQUN0RSx1QkFBdUIsQ0FBdUQ7SUFDOUUsMkJBQTJCLENBQTJEO0lBQ3RGLGdCQUFnQixDQUFnRDtJQUNoRSxpQkFBaUIsQ0FBaUQ7SUFDbEUsaUJBQWlCLENBQWlEO0lBQ2xFLG1CQUFtQixDQUFtRDtJQUN0RSx1QkFBdUIsQ0FBdUQ7SUFDOUUsMkJBQTJCLENBQTJEO0lBQ3RGLGlCQUFpQixDQUFpRDtJQUNsRSxhQUFhLENBQTZDO0lBQzFELFVBQVUsQ0FBMEM7SUFDcEQscUJBQXFCLENBQXFEO0lBQzFFLG1CQUFtQixDQUFtRDtJQUN0RSxnQkFBZ0IsQ0FBZ0Q7SUFDaEUsa0JBQWtCLENBQWtEO0lBQ3BFLGVBQWUsQ0FBK0M7SUFDOUQsZ0JBQWdCLENBQWdEO0lBQ2hFLGNBQWMsQ0FBOEM7SUFDNUQsaUJBQWlCLENBQWlEO0lBQ2xFLG9CQUFvQixDQUFvRDtJQUN4RSxnQ0FBZ0MsQ0FBZ0U7SUFDaEcsOEJBQThCLENBQThEO0lBQzVGLGdCQUFnQixDQUFnRDtJQUNoRSxTQUFTLENBQXlDO0lBQ2xELElBQUksQ0FBb0M7SUFDeEMsd0JBQXdCLENBQXdEO0lBQ2hGLG1CQUFtQixDQUFtRDtJQUN0RSxlQUFlLENBQStDO0lBQzlELHdCQUF3QixDQUF3RDtJQUNoRix1QkFBdUIsQ0FBdUQ7SUFDOUUsY0FBYyxDQUE4QztJQUM1RCxtQkFBbUIsQ0FBbUQ7SUFDdEUsNkJBQTZCLENBQTZEO0lBQzFGLG9CQUFvQixDQUFvRDtJQUN4RSxVQUFVLENBQTBDO0lBQ3BELDBCQUEwQixDQUEwRDtJQUNwRixtQkFBbUIsQ0FBbUQ7SUFDdEUsYUFBYSxDQUE2QztJQUMxRCxlQUFlLENBQStDO0lBQzlELG9CQUFvQixDQUFvRDtJQUN4RSxlQUFlLENBQStDO0lBQzlELGdCQUFnQixDQUFnRDtJQUNoRSxrQkFBa0IsQ0FBa0Q7SUFDcEUsb0JBQW9CLENBQW9EO0lBQ3hFLG9CQUFvQixDQUFvRDtJQUN4RSxtQkFBbUIsQ0FBbUQ7SUFDdEUsb0JBQW9CLENBQW9EO0lBQ3hFLG1CQUFtQixDQUFtRDtJQUUvRSxZQUNVLG1CQUF1QyxFQUN2QyxvQkFBeUMsRUFDMUMsTUFBYztRQUZiLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUMxQyxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3BCLENBQUM7SUFFSixJQUFZLFdBQVc7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUVsRixnRkFBZ0Y7WUFDaEYsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBRTNCO2FBQU07WUFDTCxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVwRCxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFFcEMsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFRCxJQUFZLFdBQVcsQ0FBQyxXQUFXO1FBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDO0lBQ25DLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxPQUFPLEdBQStCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUErQixDQUFDO1FBRXhILElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckMsTUFBTSxPQUFPLEdBQWtDLEVBQUUsQ0FBQztZQUVsRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQWlDLENBQUMsQ0FBQztZQUNqRyxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxPQUFPLENBQUM7U0FDOUI7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUVoRixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3pFO1lBQ0QsYUFBYTtZQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLEVBQUU7WUFDN0IsT0FBTztTQUNSO1FBRUQsTUFBTSxVQUFVLEdBQThCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFaEcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDckQ7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLFdBQXNDO1FBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDckMsT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyQyxNQUFNLE9BQU8sR0FBa0MsRUFBRSxDQUFDO1lBRWxELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDeEMsT0FBTyxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBaUMsQ0FBQyxDQUFDO1lBQ2pHLENBQUMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxVQUFVLEdBQThCO2dCQUM1QyxPQUFPLEVBQUUsT0FBTzthQUNqQixDQUFDO1lBRUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFRCwwQkFBMEI7UUFDeEIsTUFBTSxPQUFPLEdBQWtDLEVBQUUsQ0FBQztRQUVsRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDeEMsT0FBTyxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBaUMsQ0FBQyxDQUFDO1lBQ2pHLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQTBCO1FBQ2xDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUEwQjtRQUNyQyxNQUFNLEtBQUssR0FBVyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7dUdBamRVLGlCQUFpQjsyRkFBakIsaUJBQWlCLG92WUFGakIsQ0FBRSxrQkFBa0IsRUFBRSxtQkFBbUIsQ0FBRSx1SkFGNUMscUNBQXFDOzsyRkFJcEMsaUJBQWlCO2tCQU43QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUUscUNBQXFDO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsU0FBUyxFQUFFLENBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUU7aUJBQ3ZEOzhJQUVtRCxTQUFTO3NCQUExRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBS2hDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csNkJBQTZCO3NCQUFyQyxLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLCtCQUErQjtzQkFBdkMsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csNkJBQTZCO3NCQUFyQyxLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLHFDQUFxQztzQkFBN0MsS0FBSztnQkFDRyxrQ0FBa0M7c0JBQTFDLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csOEJBQThCO3NCQUF0QyxLQUFLO2dCQUNHLDJCQUEyQjtzQkFBbkMsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLDJCQUEyQjtzQkFBbkMsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLDJCQUEyQjtzQkFBbkMsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csZ0NBQWdDO3NCQUF4QyxLQUFLO2dCQUNHLDhCQUE4QjtzQkFBdEMsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csNkJBQTZCO3NCQUFyQyxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IEhhbmRzb250YWJsZSBmcm9tICdoYW5kc29udGFibGUvYmFzZSc7XG5pbXBvcnQge1xuICBIb3RUYWJsZVJlZ2lzdGVyZXIsXG4gIEhPVF9ERVNUUk9ZRURfV0FSTklOR1xufSBmcm9tICcuL2hvdC10YWJsZS1yZWdpc3RlcmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSG90U2V0dGluZ3NSZXNvbHZlciB9IGZyb20gJy4vaG90LXNldHRpbmdzLXJlc29sdmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSG90Q29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9ob3QtY29sdW1uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hvdC10YWJsZScsXG4gIHRlbXBsYXRlOiAnPGRpdiAjY29udGFpbmVyIFtpZF09XCJob3RJZFwiPjwvZGl2PicsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogWyBIb3RUYWJsZVJlZ2lzdGVyZXIsIEhvdFNldHRpbmdzUmVzb2x2ZXIgXSxcbn0pXG5leHBvcnQgY2xhc3MgSG90VGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBwdWJsaWMgY29udGFpbmVyO1xuXG4gIHByaXZhdGUgX19ob3RJbnN0YW5jZTogSGFuZHNvbnRhYmxlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY29sdW1uc0NvbXBvbmVudHM6IEhvdENvbHVtbkNvbXBvbmVudFtdID0gW107XG4gIC8vIGNvbXBvbmVudCBpbnB1dHNcbiAgQElucHV0KCkgc2V0dGluZ3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3M7XG4gIEBJbnB1dCgpIGhvdElkID0gJyc7XG4gIC8vIGhhbmRzb250YWJsZSBvcHRpb25zXG4gIEBJbnB1dCgpIGFjdGl2ZUhlYWRlckNsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWN0aXZlSGVhZGVyQ2xhc3NOYW1lJ107XG4gIEBJbnB1dCgpIGFsbG93RW1wdHk6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FsbG93RW1wdHknXTtcbiAgQElucHV0KCkgYWxsb3dIdG1sOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhbGxvd0h0bWwnXTtcbiAgQElucHV0KCkgYWxsb3dJbnNlcnRDb2x1bW46IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FsbG93SW5zZXJ0Q29sdW1uJ107XG4gIEBJbnB1dCgpIGFsbG93SW5zZXJ0Um93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhbGxvd0luc2VydFJvdyddO1xuICBASW5wdXQoKSBhbGxvd0ludmFsaWQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FsbG93SW52YWxpZCddO1xuICBASW5wdXQoKSBhbGxvd1JlbW92ZUNvbHVtbjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWxsb3dSZW1vdmVDb2x1bW4nXTtcbiAgQElucHV0KCkgYWxsb3dSZW1vdmVSb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FsbG93UmVtb3ZlUm93J107XG4gIEBJbnB1dCgpIGFyaWFUYWdzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhcmlhVGFncyddO1xuICBASW5wdXQoKSBhdXRvQ29sdW1uU2l6ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYXV0b0NvbHVtblNpemUnXTtcbiAgQElucHV0KCkgYXV0b1Jvd1NpemU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2F1dG9Sb3dTaXplJ107XG4gIEBJbnB1dCgpIGF1dG9XcmFwQ29sOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhdXRvV3JhcENvbCddO1xuICBASW5wdXQoKSBhdXRvV3JhcFJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYXV0b1dyYXBSb3cnXTtcbiAgQElucHV0KCkgYmluZFJvd3NXaXRoSGVhZGVyczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmluZFJvd3NXaXRoSGVhZGVycyddO1xuICBASW5wdXQoKSBjZWxsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjZWxsJ107XG4gIEBJbnB1dCgpIGNlbGxzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjZWxscyddO1xuICBASW5wdXQoKSBjaGVja2VkVGVtcGxhdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NoZWNrZWRUZW1wbGF0ZSddO1xuICBASW5wdXQoKSBjbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NsYXNzTmFtZSddO1xuICBASW5wdXQoKSBjb2xIZWFkZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb2xIZWFkZXJzJ107XG4gIEBJbnB1dCgpIGNvbGxhcHNpYmxlQ29sdW1uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29sbGFwc2libGVDb2x1bW5zJ107XG4gIEBJbnB1dCgpIGNvbHVtbkhlYWRlckhlaWdodDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29sdW1uSGVhZGVySGVpZ2h0J107XG4gIEBJbnB1dCgpIGNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NvbHVtbnMnXTtcbiAgQElucHV0KCkgY29sdW1uU29ydGluZzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29sdW1uU29ydGluZyddO1xuICBASW5wdXQoKSBjb2x1bW5TdW1tYXJ5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb2x1bW5TdW1tYXJ5J107XG4gIEBJbnB1dCgpIGNvbFdpZHRoczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29sV2lkdGhzJ107XG4gIEBJbnB1dCgpIGNvbW1lbnRlZENlbGxDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NvbW1lbnRlZENlbGxDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgY29tbWVudHM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NvbW1lbnRzJ107XG4gIEBJbnB1dCgpIGNvbnRleHRNZW51OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb250ZXh0TWVudSddO1xuICBASW5wdXQoKSBjb3B5YWJsZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29weWFibGUnXTtcbiAgQElucHV0KCkgY29weVBhc3RlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb3B5UGFzdGUnXTtcbiAgQElucHV0KCkgY29ycmVjdEZvcm1hdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29ycmVjdEZvcm1hdCddO1xuICBASW5wdXQoKSBjdXJyZW50Q29sQ2xhc3NOYW1lOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjdXJyZW50Q29sQ2xhc3NOYW1lJ107XG4gIEBJbnB1dCgpIGN1cnJlbnRIZWFkZXJDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2N1cnJlbnRIZWFkZXJDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgY3VycmVudFJvd0NsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY3VycmVudFJvd0NsYXNzTmFtZSddO1xuICBASW5wdXQoKSBjdXN0b21Cb3JkZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjdXN0b21Cb3JkZXJzJ107XG4gIEBJbnB1dCgpIGRhdGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2RhdGEnXTtcbiAgQElucHV0KCkgZGF0YVNjaGVtYTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZGF0YVNjaGVtYSddO1xuICBASW5wdXQoKSBkYXRlRm9ybWF0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydkYXRlRm9ybWF0J107XG4gIEBJbnB1dCgpIGRhdGVQaWNrZXJDb25maWc6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2RhdGVQaWNrZXJDb25maWcnXTtcbiAgQElucHV0KCkgZGVmYXVsdERhdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2RlZmF1bHREYXRlJ107XG4gIEBJbnB1dCgpIHRhYk5hdmlnYXRpb246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3RhYk5hdmlnYXRpb24nXTtcbiAgQElucHV0KCkgZGlzYWJsZVZpc3VhbFNlbGVjdGlvbjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZGlzYWJsZVZpc3VhbFNlbGVjdGlvbiddO1xuICBASW5wdXQoKSBkcmFnVG9TY3JvbGw6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2RyYWdUb1Njcm9sbCddO1xuICBASW5wdXQoKSBkcm9wZG93bk1lbnU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2Ryb3Bkb3duTWVudSddO1xuICBASW5wdXQoKSBlZGl0b3I6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2VkaXRvciddO1xuICBASW5wdXQoKSBlbnRlckJlZ2luc0VkaXRpbmc6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2VudGVyQmVnaW5zRWRpdGluZyddO1xuICBASW5wdXQoKSBlbnRlck1vdmVzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydlbnRlck1vdmVzJ107XG4gIEBJbnB1dCgpIGZpbGxIYW5kbGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpbGxIYW5kbGUnXTtcbiAgQElucHV0KCkgZmlsdGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydmaWx0ZXInXTtcbiAgQElucHV0KCkgZmlsdGVyaW5nQ2FzZVNlbnNpdGl2ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZmlsdGVyaW5nQ2FzZVNlbnNpdGl2ZSddO1xuICBASW5wdXQoKSBmaWx0ZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydmaWx0ZXJzJ107XG4gIEBJbnB1dCgpIGZpeGVkQ29sdW1uc0xlZnQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpeGVkQ29sdW1uc0xlZnQnXTtcbiAgQElucHV0KCkgZml4ZWRDb2x1bW5zU3RhcnQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpeGVkQ29sdW1uc1N0YXJ0J107XG4gIEBJbnB1dCgpIGZpeGVkUm93c0JvdHRvbTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZml4ZWRSb3dzQm90dG9tJ107XG4gIEBJbnB1dCgpIGZpeGVkUm93c1RvcDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZml4ZWRSb3dzVG9wJ107XG4gIEBJbnB1dCgpIGZvcm11bGFzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydmb3JtdWxhcyddO1xuICBASW5wdXQoKSBmcmFnbWVudFNlbGVjdGlvbjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZnJhZ21lbnRTZWxlY3Rpb24nXTtcbiAgQElucHV0KCkgaGVpZ2h0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydoZWlnaHQnXTtcbiAgQElucHV0KCkgaGlkZGVuQ29sdW1uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snaGlkZGVuQ29sdW1ucyddO1xuICBASW5wdXQoKSBoaWRkZW5Sb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydoaWRkZW5Sb3dzJ107XG4gIEBJbnB1dCgpIGludmFsaWRDZWxsQ2xhc3NOYW1lOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydpbnZhbGlkQ2VsbENsYXNzTmFtZSddO1xuICBASW5wdXQoKSBpbWVGYXN0RWRpdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snaW1lRmFzdEVkaXQnXTtcbiAgQElucHV0KCkgbGFiZWw6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2xhYmVsJ107XG4gIEBJbnB1dCgpIGxhbmd1YWdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydsYW5ndWFnZSddO1xuICBASW5wdXQoKSBsYXlvdXREaXJlY3Rpb246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2xheW91dERpcmVjdGlvbiddO1xuICBASW5wdXQoKSBsaWNlbnNlS2V5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydsaWNlbnNlS2V5J107XG4gIEBJbnB1dCgpIGxvY2FsZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbG9jYWxlJ107XG4gIEBJbnB1dCgpIG1hbnVhbENvbHVtbkZyZWV6ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbWFudWFsQ29sdW1uRnJlZXplJ107XG4gIEBJbnB1dCgpIG1hbnVhbENvbHVtbk1vdmU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21hbnVhbENvbHVtbk1vdmUnXTtcbiAgQElucHV0KCkgbWFudWFsQ29sdW1uUmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtYW51YWxDb2x1bW5SZXNpemUnXTtcbiAgQElucHV0KCkgbWFudWFsUm93TW92ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbWFudWFsUm93TW92ZSddO1xuICBASW5wdXQoKSBtYW51YWxSb3dSZXNpemU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21hbnVhbFJvd1Jlc2l6ZSddO1xuICBASW5wdXQoKSBtYXhDb2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtYXhDb2xzJ107XG4gIEBJbnB1dCgpIG1heFJvd3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21heFJvd3MnXTtcbiAgQElucHV0KCkgbWVyZ2VDZWxsczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbWVyZ2VDZWxscyddO1xuICBASW5wdXQoKSBtaW5Db2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtaW5Db2xzJ107XG4gIEBJbnB1dCgpIG1pblJvd3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21pblJvd3MnXTtcbiAgQElucHV0KCkgbWluU3BhcmVDb2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtaW5TcGFyZUNvbHMnXTtcbiAgQElucHV0KCkgbWluU3BhcmVSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtaW5TcGFyZVJvd3MnXTtcbiAgQElucHV0KCkgbXVsdGlDb2x1bW5Tb3J0aW5nOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtdWx0aUNvbHVtblNvcnRpbmcnXTtcbiAgQElucHV0KCkgbmF2aWdhYmxlSGVhZGVyczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbmF2aWdhYmxlSGVhZGVycyddO1xuICBASW5wdXQoKSBuZXN0ZWRIZWFkZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyduZXN0ZWRIZWFkZXJzJ107XG4gIEBJbnB1dCgpIG5lc3RlZFJvd3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ25lc3RlZFJvd3MnXTtcbiAgQElucHV0KCkgbm9Xb3JkV3JhcENsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbm9Xb3JkV3JhcENsYXNzTmFtZSddO1xuICBASW5wdXQoKSBudW1lcmljRm9ybWF0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydudW1lcmljRm9ybWF0J107XG4gIEBJbnB1dCgpIG9ic2VydmVET01WaXNpYmlsaXR5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydvYnNlcnZlRE9NVmlzaWJpbGl0eSddO1xuICBASW5wdXQoKSBvdXRzaWRlQ2xpY2tEZXNlbGVjdHM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ291dHNpZGVDbGlja0Rlc2VsZWN0cyddO1xuICBASW5wdXQoKSBwZXJzaXN0ZW50U3RhdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3BlcnNpc3RlbnRTdGF0ZSddO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncGxhY2Vob2xkZXInXTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXJDZWxsQ2xhc3NOYW1lOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwbGFjZWhvbGRlckNlbGxDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgcHJldmVudE92ZXJmbG93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwcmV2ZW50T3ZlcmZsb3cnXTtcbiAgQElucHV0KCkgcHJldmVudFdoZWVsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwcmV2ZW50V2hlZWwnXTtcbiAgQElucHV0KCkgcmVhZE9ubHk6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3JlYWRPbmx5J107XG4gIEBJbnB1dCgpIHJlYWRPbmx5Q2VsbENsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncmVhZE9ubHlDZWxsQ2xhc3NOYW1lJ107XG4gIEBJbnB1dCgpIHJlbmRlckFsbENvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3JlbmRlckFsbENvbHVtbnMnXTtcbiAgQElucHV0KCkgcmVuZGVyQWxsUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncmVuZGVyQWxsUm93cyddO1xuICBASW5wdXQoKSByZW5kZXJlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncmVuZGVyZXInXTtcbiAgQElucHV0KCkgcm93SGVhZGVyczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncm93SGVhZGVycyddO1xuICBASW5wdXQoKSByb3dIZWFkZXJXaWR0aDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncm93SGVhZGVyV2lkdGgnXTtcbiAgQElucHV0KCkgcm93SGVpZ2h0czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncm93SGVpZ2h0cyddO1xuICBASW5wdXQoKSBzZWFyY2g6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3NlYXJjaCddO1xuICBASW5wdXQoKSBzZWxlY3Rpb25Nb2RlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzZWxlY3Rpb25Nb2RlJ107XG4gIEBJbnB1dCgpIHNlbGVjdE9wdGlvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3NlbGVjdE9wdGlvbnMnXTtcbiAgQElucHV0KCkgc2tpcENvbHVtbk9uUGFzdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3NraXBDb2x1bW5PblBhc3RlJ107XG4gIEBJbnB1dCgpIHNraXBSb3dPblBhc3RlOiBhbnk7XG4gIEBJbnB1dCgpIHNvcnRCeVJlbGV2YW5jZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc29ydEJ5UmVsZXZhbmNlJ107XG4gIEBJbnB1dCgpIHNvdXJjZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc291cmNlJ107XG4gIEBJbnB1dCgpIHN0YXJ0Q29sczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc3RhcnRDb2xzJ107XG4gIEBJbnB1dCgpIHN0YXJ0Um93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc3RhcnRSb3dzJ107XG4gIEBJbnB1dCgpIHN0cmV0Y2hIOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzdHJldGNoSCddO1xuICBASW5wdXQoKSBzdHJpY3Q6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3N0cmljdCddO1xuICBASW5wdXQoKSB0YWJsZUNsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndGFibGVDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgdGFiTW92ZXM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3RhYk1vdmVzJ107XG4gIEBJbnB1dCgpIHRpdGxlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd0aXRsZSddO1xuICBASW5wdXQoKSB0cmltRHJvcGRvd246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3RyaW1Ecm9wZG93biddO1xuICBASW5wdXQoKSB0cmltUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbmVzdGVkUm93cyddO1xuICBASW5wdXQoKSB0cmltV2hpdGVzcGFjZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndHJpbVdoaXRlc3BhY2UnXTtcbiAgQElucHV0KCkgdHlwZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndHlwZSddO1xuICBASW5wdXQoKSB1bmNoZWNrZWRUZW1wbGF0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndW5jaGVja2VkVGVtcGxhdGUnXTtcbiAgQElucHV0KCkgdW5kbzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndW5kbyddO1xuICBASW5wdXQoKSB2YWxpZGF0b3I6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3ZhbGlkYXRvciddO1xuICBASW5wdXQoKSB2aWV3cG9ydENvbHVtblJlbmRlcmluZ09mZnNldDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndmlld3BvcnRDb2x1bW5SZW5kZXJpbmdPZmZzZXQnXTtcbiAgQElucHV0KCkgdmlld3BvcnRSb3dSZW5kZXJpbmdPZmZzZXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3ZpZXdwb3J0Um93UmVuZGVyaW5nT2Zmc2V0J107XG4gIEBJbnB1dCgpIHZpc2libGVSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd2aXNpYmxlUm93cyddO1xuICBASW5wdXQoKSB3aWR0aDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snd2lkdGgnXTtcbiAgQElucHV0KCkgd29yZFdyYXA6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3dvcmRXcmFwJ107XG5cbiAgLy8gaGFuZHNvbnRhYmxlIGhvb2tzXG4gIEBJbnB1dCgpIGFmdGVyQWRkQ2hpbGQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQWRkQ2hpbGQnXTtcbiAgQElucHV0KCkgYWZ0ZXJBdXRvZmlsbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJBdXRvZmlsbCddO1xuICBASW5wdXQoKSBhZnRlckJlZ2luRWRpdGluZzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJCZWdpbkVkaXRpbmcnXTtcbiAgQElucHV0KCkgYWZ0ZXJDZWxsTWV0YVJlc2V0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckNlbGxNZXRhUmVzZXQnXTtcbiAgQElucHV0KCkgYWZ0ZXJDaGFuZ2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGFmdGVyQ2hhbmdlc09ic2VydmVkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckNoYW5nZXNPYnNlcnZlZCddO1xuICBASW5wdXQoKSBhZnRlckNvbHVtbkNvbGxhcHNlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckNvbHVtbkNvbGxhcHNlJ107XG4gIEBJbnB1dCgpIGFmdGVyQ29sdW1uRXhwYW5kOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckNvbHVtbkV4cGFuZCddO1xuICBASW5wdXQoKSBhZnRlckNvbHVtbkZyZWV6ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDb2x1bW5GcmVlemUnXTtcbiAgQElucHV0KCkgYWZ0ZXJDb2x1bW5Nb3ZlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckNvbHVtbk1vdmUnXTtcbiAgQElucHV0KCkgYWZ0ZXJDb2x1bW5SZXNpemU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29sdW1uUmVzaXplJ107XG4gIEBJbnB1dCgpIGFmdGVyQ29sdW1uU2VxdWVuY2VDaGFuZ2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29sdW1uU2VxdWVuY2VDaGFuZ2UnXTtcbiAgQElucHV0KCkgYWZ0ZXJDb2x1bW5Tb3J0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckNvbHVtblNvcnQnXTtcbiAgQElucHV0KCkgYWZ0ZXJDb2x1bW5VbmZyZWV6ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDb2x1bW5VbmZyZWV6ZSddO1xuICBASW5wdXQoKSBhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyddO1xuICBASW5wdXQoKSBhZnRlckNvbnRleHRNZW51SGlkZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDb250ZXh0TWVudUhpZGUnXTtcbiAgQElucHV0KCkgYWZ0ZXJDb250ZXh0TWVudVNob3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29udGV4dE1lbnVTaG93J107XG4gIEBJbnB1dCgpIGFmdGVyQ29weTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDb3B5J107XG4gIEBJbnB1dCgpIGFmdGVyQ29weUxpbWl0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckNvcHlMaW1pdCddO1xuICBASW5wdXQoKSBhZnRlckNyZWF0ZUNvbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDcmVhdGVDb2wnXTtcbiAgQElucHV0KCkgYWZ0ZXJDcmVhdGVSb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ3JlYXRlUm93J107XG4gIEBJbnB1dCgpIGFmdGVyQ3V0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckN1dCddO1xuICBASW5wdXQoKSBhZnRlckRlc2VsZWN0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckRlc2VsZWN0J107XG4gIEBJbnB1dCgpIGFmdGVyRGVzdHJveTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJEZXN0cm95J107XG4gIEBJbnB1dCgpIGFmdGVyRGV0YWNoQ2hpbGQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRGV0YWNoQ2hpbGQnXTtcbiAgQElucHV0KCkgYWZ0ZXJEb2N1bWVudEtleURvd246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRG9jdW1lbnRLZXlEb3duJ107XG4gIEBJbnB1dCgpIGFmdGVyRHJhd1NlbGVjdGlvbjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJEcmF3U2VsZWN0aW9uJ107XG4gIEBJbnB1dCgpIGFmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnMnXTtcbiAgQElucHV0KCkgYWZ0ZXJEcm9wZG93bk1lbnVIaWRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckRyb3Bkb3duTWVudUhpZGUnXTtcbiAgQElucHV0KCkgYWZ0ZXJEcm9wZG93bk1lbnVTaG93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckRyb3Bkb3duTWVudVNob3cnXTtcbiAgQElucHV0KCkgYWZ0ZXJGaWx0ZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRmlsdGVyJ107XG4gIEBJbnB1dCgpIGFmdGVyRm9ybXVsYXNWYWx1ZXNVcGRhdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRm9ybXVsYXNWYWx1ZXNVcGRhdGUnXTtcbiAgQElucHV0KCkgYWZ0ZXJHZXRDZWxsTWV0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJHZXRDZWxsTWV0YSddO1xuICBASW5wdXQoKSBhZnRlckdldENvbEhlYWRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJHZXRDb2xIZWFkZXInXTtcbiAgQElucHV0KCkgYWZ0ZXJHZXRDb2x1bW5IZWFkZXJSZW5kZXJlcnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyR2V0Q29sdW1uSGVhZGVyUmVuZGVyZXJzJ107XG4gIEBJbnB1dCgpIGFmdGVyR2V0Um93SGVhZGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckdldFJvd0hlYWRlciddO1xuICBASW5wdXQoKSBhZnRlckdldFJvd0hlYWRlclJlbmRlcmVyczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJHZXRSb3dIZWFkZXJSZW5kZXJlcnMnXTtcbiAgQElucHV0KCkgYWZ0ZXJIaWRlQ29sdW1uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJIaWRlQ29sdW1ucyddO1xuICBASW5wdXQoKSBhZnRlckhpZGVSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckhpZGVSb3dzJ107XG4gIEBJbnB1dCgpIGFmdGVySW5pdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJJbml0J107XG4gIEBJbnB1dCgpIGFmdGVyTGFuZ3VhZ2VDaGFuZ2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyTGFuZ3VhZ2VDaGFuZ2UnXTtcbiAgQElucHV0KCkgYWZ0ZXJMaXN0ZW46IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyTGlzdGVuJ107XG4gIEBJbnB1dCgpIGFmdGVyTG9hZERhdGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyTG9hZERhdGEnXTtcbiAgQElucHV0KCkgYWZ0ZXJNZXJnZUNlbGxzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck1lcmdlQ2VsbHMnXTtcbiAgQElucHV0KCkgYWZ0ZXJNb2RpZnlUcmFuc2Zvcm1FbmQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyTW9kaWZ5VHJhbnNmb3JtRW5kJ107XG4gIEBJbnB1dCgpIGFmdGVyTW9kaWZ5VHJhbnNmb3JtRm9jdXM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyTW9kaWZ5VHJhbnNmb3JtRm9jdXMnXTtcbiAgQElucHV0KCkgYWZ0ZXJNb2RpZnlUcmFuc2Zvcm1TdGFydDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJNb2RpZnlUcmFuc2Zvcm1TdGFydCddO1xuICBASW5wdXQoKSBhZnRlck1vbWVudHVtU2Nyb2xsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck1vbWVudHVtU2Nyb2xsJ107XG4gIEBJbnB1dCgpIGFmdGVyTmFtZWRFeHByZXNzaW9uQWRkZWQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyTmFtZWRFeHByZXNzaW9uQWRkZWQnXTtcbiAgQElucHV0KCkgYWZ0ZXJOYW1lZEV4cHJlc3Npb25SZW1vdmVkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck5hbWVkRXhwcmVzc2lvblJlbW92ZWQnXTtcbiAgQElucHV0KCkgYWZ0ZXJPbkNlbGxDb250ZXh0TWVudTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxDb250ZXh0TWVudSddO1xuICBASW5wdXQoKSBhZnRlck9uQ2VsbENvcm5lckRibENsaWNrOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck9uQ2VsbENvcm5lckRibENsaWNrJ107XG4gIEBJbnB1dCgpIGFmdGVyT25DZWxsQ29ybmVyTW91c2VEb3duOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck9uQ2VsbENvcm5lck1vdXNlRG93biddO1xuICBASW5wdXQoKSBhZnRlck9uQ2VsbE1vdXNlRG93bjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxNb3VzZURvd24nXTtcbiAgQElucHV0KCkgYWZ0ZXJPbkNlbGxNb3VzZU91dDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxNb3VzZU91dCddO1xuICBASW5wdXQoKSBhZnRlck9uQ2VsbE1vdXNlT3ZlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxNb3VzZU92ZXInXTtcbiAgQElucHV0KCkgYWZ0ZXJPbkNlbGxNb3VzZVVwOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck9uQ2VsbE1vdXNlVXAnXTtcbiAgQElucHV0KCkgYWZ0ZXJQYXN0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJQYXN0ZSddO1xuICBASW5wdXQoKSBhZnRlclBsdWdpbnNJbml0aWFsaXplZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJQbHVnaW5zSW5pdGlhbGl6ZWQnXTtcbiAgQElucHV0KCkgYWZ0ZXJSZWRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJlZG8nXTtcbiAgQElucHV0KCkgYWZ0ZXJSZWRvU3RhY2tDaGFuZ2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyUmVkb1N0YWNrQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGFmdGVyUmVmcmVzaERpbWVuc2lvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyUmVmcmVzaERpbWVuc2lvbnMnXTtcbiAgQElucHV0KCkgYWZ0ZXJSZW1vdmVDZWxsTWV0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJSZW1vdmVDZWxsTWV0YSddO1xuICBASW5wdXQoKSBhZnRlclJlbW92ZUNvbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJSZW1vdmVDb2wnXTtcbiAgQElucHV0KCkgYWZ0ZXJSZW1vdmVSb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyUmVtb3ZlUm93J107XG4gIEBJbnB1dCgpIGFmdGVyUmVuZGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJlbmRlciddO1xuICBASW5wdXQoKSBhZnRlclJlbmRlcmVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJlbmRlcmVyJ107XG4gIEBJbnB1dCgpIGFmdGVyUm93TW92ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJSb3dNb3ZlJ107XG4gIEBJbnB1dCgpIGFmdGVyUm93UmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJvd1Jlc2l6ZSddO1xuICBASW5wdXQoKSBhZnRlclJvd1NlcXVlbmNlQ2hhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJvd1NlcXVlbmNlQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNjcm9sbEhvcml6b250YWxseSddO1xuICBASW5wdXQoKSBhZnRlclNjcm9sbFZlcnRpY2FsbHk6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2Nyb2xsVmVydGljYWxseSddO1xuICBASW5wdXQoKSBhZnRlclNjcm9sbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJTY3JvbGwnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZWxlY3RDb2x1bW5zOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNlbGVjdENvbHVtbnMnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZWxlY3Rpb246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2VsZWN0aW9uJ107XG4gIEBJbnB1dCgpIGFmdGVyU2VsZWN0aW9uQnlQcm9wOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNlbGVjdGlvbkJ5UHJvcCddO1xuICBASW5wdXQoKSBhZnRlclNlbGVjdGlvbkVuZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJTZWxlY3Rpb25FbmQnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZWxlY3Rpb25FbmRCeVByb3A6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2VsZWN0aW9uRW5kQnlQcm9wJ107XG4gIEBJbnB1dCgpIGFmdGVyU2VsZWN0aW9uRm9jdXNTZXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2VsZWN0aW9uRm9jdXNTZXQnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZWxlY3RSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNlbGVjdFJvd3MnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZXRDZWxsTWV0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJTZXRDZWxsTWV0YSddO1xuICBASW5wdXQoKSBhZnRlclNldERhdGFBdENlbGw6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2V0RGF0YUF0Q2VsbCddO1xuICBASW5wdXQoKSBhZnRlclNldERhdGFBdFJvd1Byb3A6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2V0RGF0YUF0Um93UHJvcCddO1xuICBASW5wdXQoKSBhZnRlclNldFNvdXJjZURhdGFBdENlbGw6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2V0U291cmNlRGF0YUF0Q2VsbCddO1xuICBASW5wdXQoKSBhZnRlclNoZWV0QWRkZWQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2hlZXRBZGRlZCddO1xuICBASW5wdXQoKSBhZnRlclNoZWV0UmVuYW1lZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJTaGVldFJlbmFtZWQnXTtcbiAgQElucHV0KCkgYWZ0ZXJTaGVldFJlbW92ZWQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2hlZXRSZW1vdmVkJ107XG4gIEBJbnB1dCgpIGFmdGVyVHJpbVJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJUcmltUm93J107XG4gIEBJbnB1dCgpIGFmdGVyVW5kbzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJVbmRvJ107XG4gIEBJbnB1dCgpIGFmdGVyVW5kb1N0YWNrQ2hhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclVuZG9TdGFja0NoYW5nZSddO1xuICBASW5wdXQoKSBhZnRlclVuaGlkZUNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVW5oaWRlQ29sdW1ucyddO1xuICBASW5wdXQoKSBhZnRlclVuaGlkZVJvd3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVW5oaWRlUm93cyddO1xuICBASW5wdXQoKSBhZnRlclVubGlzdGVuOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclVubGlzdGVuJ107XG4gIEBJbnB1dCgpIGFmdGVyVW5tZXJnZUNlbGxzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclVubWVyZ2VDZWxscyddO1xuICBASW5wdXQoKSBhZnRlclVudHJpbVJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJVbnRyaW1Sb3cnXTtcbiAgQElucHV0KCkgYWZ0ZXJVcGRhdGVEYXRhOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclVwZGF0ZURhdGEnXTtcbiAgQElucHV0KCkgYWZ0ZXJVcGRhdGVTZXR0aW5nczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJVcGRhdGVTZXR0aW5ncyddO1xuICBASW5wdXQoKSBhZnRlclZhbGlkYXRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclZhbGlkYXRlJ107XG4gIEBJbnB1dCgpIGFmdGVyVmlld3BvcnRDb2x1bW5DYWxjdWxhdG9yT3ZlcnJpZGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVmlld3BvcnRDb2x1bW5DYWxjdWxhdG9yT3ZlcnJpZGUnXTtcbiAgQElucHV0KCkgYWZ0ZXJWaWV3cG9ydFJvd0NhbGN1bGF0b3JPdmVycmlkZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJWaWV3cG9ydFJvd0NhbGN1bGF0b3JPdmVycmlkZSddO1xuICBASW5wdXQoKSBhZnRlclZpZXdSZW5kZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVmlld1JlbmRlciddO1xuICBASW5wdXQoKSBiZWZvcmVBZGRDaGlsZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQWRkQ2hpbGQnXTtcbiAgQElucHV0KCkgYmVmb3JlQXV0b2ZpbGw6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUF1dG9maWxsJ107XG4gIEBJbnB1dCgpIGJlZm9yZUJlZ2luRWRpdGluZzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQmVnaW5FZGl0aW5nJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNlbGxBbGlnbm1lbnQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUNlbGxBbGlnbm1lbnQnXTtcbiAgQElucHV0KCkgYmVmb3JlQ2hhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDaGFuZ2UnXTtcbiAgQElucHV0KCkgYmVmb3JlQ2hhbmdlUmVuZGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDaGFuZ2VSZW5kZXInXTtcbiAgQElucHV0KCkgYmVmb3JlQ29sdW1uQ29sbGFwc2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUNvbHVtbkNvbGxhcHNlJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNvbHVtbkV4cGFuZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ29sdW1uRXhwYW5kJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNvbHVtbkZyZWV6ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ29sdW1uRnJlZXplJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNvbHVtbk1vdmU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUNvbHVtbk1vdmUnXTtcbiAgQElucHV0KCkgYmVmb3JlQ29sdW1uUmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDb2x1bW5SZXNpemUnXTtcbiAgQElucHV0KCkgYmVmb3JlQ29sdW1uU29ydDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ29sdW1uU29ydCddO1xuICBASW5wdXQoKSBiZWZvcmVDb2x1bW5XcmFwOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDb2x1bW5XcmFwJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNvbHVtblVuZnJlZXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDb2x1bW5VbmZyZWV6ZSddO1xuICBASW5wdXQoKSBiZWZvcmVDb250ZXh0TWVudVNldEl0ZW1zOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDb250ZXh0TWVudVNldEl0ZW1zJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNvbnRleHRNZW51U2hvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ29udGV4dE1lbnVTaG93J107XG4gIEBJbnB1dCgpIGJlZm9yZUNvcHk6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUNvcHknXTtcbiAgQElucHV0KCkgYmVmb3JlQ3JlYXRlQ29sOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDcmVhdGVDb2wnXTtcbiAgQElucHV0KCkgYmVmb3JlQ3JlYXRlUm93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDcmVhdGVSb3cnXTtcbiAgQElucHV0KCkgYmVmb3JlQ3V0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDdXQnXTtcbiAgQElucHV0KCkgYmVmb3JlRGV0YWNoQ2hpbGQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZURldGFjaENoaWxkJ107XG4gIEBJbnB1dCgpIGJlZm9yZURyYXdCb3JkZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVEcmF3Qm9yZGVycyddO1xuICBASW5wdXQoKSBiZWZvcmVEcm9wZG93bk1lbnVTZXRJdGVtczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXMnXTtcbiAgQElucHV0KCkgYmVmb3JlRHJvcGRvd25NZW51U2hvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlRHJvcGRvd25NZW51U2hvdyddO1xuICBASW5wdXQoKSBiZWZvcmVGaWx0ZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUZpbHRlciddO1xuICBASW5wdXQoKSBiZWZvcmVHZXRDZWxsTWV0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlR2V0Q2VsbE1ldGEnXTtcbiAgQElucHV0KCkgYmVmb3JlSGlkZUNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUhpZGVDb2x1bW5zJ107XG4gIEBJbnB1dCgpIGJlZm9yZUhpZGVSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVIaWRlUm93cyddO1xuICBASW5wdXQoKSBiZWZvcmVIaWdobGlnaHRpbmdDb2x1bW5IZWFkZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUhpZ2hsaWdodGluZ0NvbHVtbkhlYWRlciddO1xuICBASW5wdXQoKSBiZWZvcmVIaWdobGlnaHRpbmdSb3dIZWFkZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUhpZ2hsaWdodGluZ1Jvd0hlYWRlciddO1xuICBASW5wdXQoKSBiZWZvcmVJbml0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVJbml0J107XG4gIEBJbnB1dCgpIGJlZm9yZUluaXRXYWxrb250YWJsZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlSW5pdFdhbGtvbnRhYmxlJ107XG4gIEBJbnB1dCgpIGJlZm9yZUtleURvd246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUtleURvd24nXTtcbiAgQElucHV0KCkgYmVmb3JlTGFuZ3VhZ2VDaGFuZ2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUxhbmd1YWdlQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGJlZm9yZUxvYWREYXRhOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVMb2FkRGF0YSddO1xuICBASW5wdXQoKSBiZWZvcmVNZXJnZUNlbGxzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVNZXJnZUNlbGxzJ107XG4gIEBJbnB1dCgpIGJlZm9yZU9uQ2VsbENvbnRleHRNZW51OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVPbkNlbGxDb250ZXh0TWVudSddO1xuICBASW5wdXQoKSBiZWZvcmVPbkNlbGxNb3VzZURvd246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZU9uQ2VsbE1vdXNlRG93biddO1xuICBASW5wdXQoKSBiZWZvcmVPbkNlbGxNb3VzZU91dDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlT25DZWxsTW91c2VPdXQnXTtcbiAgQElucHV0KCkgYmVmb3JlT25DZWxsTW91c2VPdmVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVPbkNlbGxNb3VzZU92ZXInXTtcbiAgQElucHV0KCkgYmVmb3JlT25DZWxsTW91c2VVcDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlT25DZWxsTW91c2VVcCddO1xuICBASW5wdXQoKSBiZWZvcmVQYXN0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlUGFzdGUnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVkbzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlUmVkbyddO1xuICBASW5wdXQoKSBiZWZvcmVSZWRvU3RhY2tDaGFuZ2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJlZG9TdGFja0NoYW5nZSddO1xuICBASW5wdXQoKSBiZWZvcmVSZWZyZXNoRGltZW5zaW9uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlUmVmcmVzaERpbWVuc2lvbnMnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVtb3ZlQ2VsbENsYXNzTmFtZXM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJlbW92ZUNlbGxDbGFzc05hbWVzJ107XG4gIEBJbnB1dCgpIGJlZm9yZVJlbW92ZUNlbGxNZXRhOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZW1vdmVDZWxsTWV0YSddO1xuICBASW5wdXQoKSBiZWZvcmVSZW1vdmVDb2w6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJlbW92ZUNvbCddO1xuICBASW5wdXQoKSBiZWZvcmVSZW1vdmVSb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJlbW92ZVJvdyddO1xuICBASW5wdXQoKSBiZWZvcmVSZW5kZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJlbmRlciddO1xuICBASW5wdXQoKSBiZWZvcmVSZW5kZXJlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlUmVuZGVyZXInXTtcbiAgQElucHV0KCkgYmVmb3JlUm93TW92ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlUm93TW92ZSddO1xuICBASW5wdXQoKSBiZWZvcmVSb3dSZXNpemU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJvd1Jlc2l6ZSddO1xuICBASW5wdXQoKSBiZWZvcmVSb3dXcmFwOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSb3dXcmFwJ107XG4gIEBJbnB1dCgpIGJlZm9yZVNlbGVjdENvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVNlbGVjdENvbHVtbnMnXTtcbiAgQElucHV0KCkgYmVmb3JlU2VsZWN0aW9uRm9jdXNTZXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVNlbGVjdGlvbkZvY3VzU2V0J107XG4gIEBJbnB1dCgpIGJlZm9yZVNlbGVjdGlvbkhpZ2hsaWdodFNldDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlU2VsZWN0aW9uSGlnaGxpZ2h0U2V0J107XG4gIEBJbnB1dCgpIGJlZm9yZVNlbGVjdFJvd3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVNlbGVjdFJvd3MnXTtcbiAgQElucHV0KCkgYmVmb3JlU2V0Q2VsbE1ldGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVNldENlbGxNZXRhJ107XG4gIEBJbnB1dCgpIGJlZm9yZVNldFJhbmdlRW5kOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVTZXRSYW5nZUVuZCddO1xuICBASW5wdXQoKSBiZWZvcmVTZXRSYW5nZVN0YXJ0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVTZXRSYW5nZVN0YXJ0J107XG4gIEBJbnB1dCgpIGJlZm9yZVNldFJhbmdlU3RhcnRPbmx5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVTZXRSYW5nZVN0YXJ0T25seSddO1xuICBASW5wdXQoKSBiZWZvcmVTdHJldGNoaW5nQ29sdW1uV2lkdGg6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0aCddO1xuICBASW5wdXQoKSBiZWZvcmVUb3VjaFNjcm9sbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVG91Y2hTY3JvbGwnXTtcbiAgQElucHV0KCkgYmVmb3JlVHJpbVJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVHJpbVJvdyddO1xuICBASW5wdXQoKSBiZWZvcmVVbmRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVVbmRvJ107XG4gIEBJbnB1dCgpIGJlZm9yZVVuZG9TdGFja0NoYW5nZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVW5kb1N0YWNrQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGJlZm9yZVVuaGlkZUNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVVuaGlkZUNvbHVtbnMnXTtcbiAgQElucHV0KCkgYmVmb3JlVW5oaWRlUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVW5oaWRlUm93cyddO1xuICBASW5wdXQoKSBiZWZvcmVVbm1lcmdlQ2VsbHM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVVubWVyZ2VDZWxscyddO1xuICBASW5wdXQoKSBiZWZvcmVVbnRyaW1Sb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVVudHJpbVJvdyddO1xuICBASW5wdXQoKSBiZWZvcmVVcGRhdGVEYXRhOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVVcGRhdGVEYXRhJ107XG4gIEBJbnB1dCgpIGJlZm9yZVZhbGlkYXRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVWYWxpZGF0ZSddO1xuICBASW5wdXQoKSBiZWZvcmVWYWx1ZVJlbmRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVmFsdWVSZW5kZXInXTtcbiAgQElucHV0KCkgYmVmb3JlVmlld3BvcnRTY3JvbGw6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVZpZXdwb3J0U2Nyb2xsJ107XG4gIEBJbnB1dCgpIGJlZm9yZVZpZXdwb3J0U2Nyb2xsSG9yaXpvbnRhbGx5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVWaWV3cG9ydFNjcm9sbEhvcml6b250YWxseSddO1xuICBASW5wdXQoKSBiZWZvcmVWaWV3cG9ydFNjcm9sbFZlcnRpY2FsbHk6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVZpZXdwb3J0U2Nyb2xsVmVydGljYWxseSddO1xuICBASW5wdXQoKSBiZWZvcmVWaWV3UmVuZGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVWaWV3UmVuZGVyJ107XG4gIEBJbnB1dCgpIGNvbnN0cnVjdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29uc3RydWN0J107XG4gIEBJbnB1dCgpIGluaXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2luaXQnXTtcbiAgQElucHV0KCkgbW9kaWZ5QXV0b0NvbHVtblNpemVTZWVkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlBdXRvQ29sdW1uU2l6ZVNlZWQnXTtcbiAgQElucHV0KCkgbW9kaWZ5QXV0b2ZpbGxSYW5nZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5QXV0b2ZpbGxSYW5nZSddO1xuICBASW5wdXQoKSBtb2RpZnlDb2xIZWFkZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeUNvbEhlYWRlciddO1xuICBASW5wdXQoKSBtb2RpZnlDb2x1bW5IZWFkZXJIZWlnaHQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeUNvbHVtbkhlYWRlckhlaWdodCddO1xuICBASW5wdXQoKSBtb2RpZnlDb2x1bW5IZWFkZXJWYWx1ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5Q29sdW1uSGVhZGVyVmFsdWUnXTtcbiAgQElucHV0KCkgbW9kaWZ5Q29sV2lkdGg6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeUNvbFdpZHRoJ107XG4gIEBJbnB1dCgpIG1vZGlmeUNvcHlhYmxlUmFuZ2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeUNvcHlhYmxlUmFuZ2UnXTtcbiAgQElucHV0KCkgbW9kaWZ5RmlsdGVyc011bHRpU2VsZWN0VmFsdWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeUZpbHRlcnNNdWx0aVNlbGVjdFZhbHVlJ107XG4gIEBJbnB1dCgpIG1vZGlmeUZvY3VzZWRFbGVtZW50OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlGb2N1c2VkRWxlbWVudCddO1xuICBASW5wdXQoKSBtb2RpZnlEYXRhOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlEYXRhJ107XG4gIEBJbnB1dCgpIG1vZGlmeUZvY3VzT25UYWJOYXZpZ2F0aW9uOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlGb2N1c09uVGFiTmF2aWdhdGlvbiddO1xuICBASW5wdXQoKSBtb2RpZnlHZXRDZWxsQ29vcmRzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlHZXRDZWxsQ29vcmRzJ107XG4gIEBJbnB1dCgpIG1vZGlmeVJvd0RhdGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeVJvd0RhdGEnXTtcbiAgQElucHV0KCkgbW9kaWZ5Um93SGVhZGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlSb3dIZWFkZXInXTtcbiAgQElucHV0KCkgbW9kaWZ5Um93SGVhZGVyV2lkdGg6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeVJvd0hlYWRlcldpZHRoJ107XG4gIEBJbnB1dCgpIG1vZGlmeVJvd0hlaWdodDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5Um93SGVpZ2h0J107XG4gIEBJbnB1dCgpIG1vZGlmeVNvdXJjZURhdGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeVNvdXJjZURhdGEnXTtcbiAgQElucHV0KCkgbW9kaWZ5VHJhbnNmb3JtRW5kOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlUcmFuc2Zvcm1FbmQnXTtcbiAgQElucHV0KCkgbW9kaWZ5VHJhbnNmb3JtRm9jdXM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeVRyYW5zZm9ybUZvY3VzJ107XG4gIEBJbnB1dCgpIG1vZGlmeVRyYW5zZm9ybVN0YXJ0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlUcmFuc2Zvcm1TdGFydCddO1xuICBASW5wdXQoKSBwZXJzaXN0ZW50U3RhdGVMb2FkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwZXJzaXN0ZW50U3RhdGVMb2FkJ107XG4gIEBJbnB1dCgpIHBlcnNpc3RlbnRTdGF0ZVJlc2V0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwZXJzaXN0ZW50U3RhdGVSZXNldCddO1xuICBASW5wdXQoKSBwZXJzaXN0ZW50U3RhdGVTYXZlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwZXJzaXN0ZW50U3RhdGVTYXZlJ107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaG90VGFibGVSZWdpc3RlcmVyOiBIb3RUYWJsZVJlZ2lzdGVyZXIsXG4gICAgcHJpdmF0ZSBfaG90U2V0dGluZ3NSZXNvbHZlcjogSG90U2V0dGluZ3NSZXNvbHZlcixcbiAgICBwdWJsaWMgbmdab25lOiBOZ1pvbmUsXG4gICkge31cblxuICBwcml2YXRlIGdldCBob3RJbnN0YW5jZSgpOiBIYW5kc29udGFibGUgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuX19ob3RJbnN0YW5jZSB8fCAodGhpcy5fX2hvdEluc3RhbmNlICYmICF0aGlzLl9faG90SW5zdGFuY2UuaXNEZXN0cm95ZWQpKSB7XG5cbiAgICAgIC8vIFdpbGwgcmV0dXJuIHRoZSBIYW5kc29udGFibGUgaW5zdGFuY2Ugb3IgYG51bGxgIGlmIGl0J3Mgbm90IHlldCBiZWVuIGNyZWF0ZWQuXG4gICAgICByZXR1cm4gdGhpcy5fX2hvdEluc3RhbmNlO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2hvdFRhYmxlUmVnaXN0ZXJlci5yZW1vdmVJbnN0YW5jZSh0aGlzLmhvdElkKTtcblxuICAgICAgY29uc29sZS53YXJuKEhPVF9ERVNUUk9ZRURfV0FSTklORyk7XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0IGhvdEluc3RhbmNlKGhvdEluc3RhbmNlKSB7XG4gICAgdGhpcy5fX2hvdEluc3RhbmNlID0gaG90SW5zdGFuY2U7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5ncyA9ICh0aGlzLl9ob3RTZXR0aW5nc1Jlc29sdmVyLm1lcmdlU2V0dGluZ3ModGhpcykgYXMgSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5ncyk7XG5cbiAgICBpZiAodGhpcy5jb2x1bW5zQ29tcG9uZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBjb2x1bW5zOiBIYW5kc29udGFibGUuQ29sdW1uU2V0dGluZ3NbXSA9IFtdO1xuXG4gICAgICB0aGlzLmNvbHVtbnNDb21wb25lbnRzLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICBjb2x1bW5zLnB1c2goKHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyhjb2x1bW4pIGFzIEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5ncykpO1xuICAgICAgfSk7XG5cbiAgICAgIG9wdGlvbnNbJ2NvbHVtbnMnXSA9IGNvbHVtbnM7XG4gICAgfVxuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5ob3RJbnN0YW5jZSA9IG5ldyBIYW5kc29udGFibGUuQ29yZSh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCBvcHRpb25zKTtcblxuICAgICAgaWYgKHRoaXMuaG90SWQpIHtcbiAgICAgICAgdGhpcy5faG90VGFibGVSZWdpc3RlcmVyLnJlZ2lzdGVySW5zdGFuY2UodGhpcy5ob3RJZCwgdGhpcy5ob3RJbnN0YW5jZSk7XG4gICAgICB9XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLmhvdEluc3RhbmNlLmluaXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ob3RJbnN0YW5jZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld09wdGlvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3MgPSB0aGlzLl9ob3RTZXR0aW5nc1Jlc29sdmVyLnByZXBhcmVDaGFuZ2VzKGNoYW5nZXMpO1xuXG4gICAgdGhpcy51cGRhdGVIb3RUYWJsZShuZXdPcHRpb25zKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmhvdEluc3RhbmNlKSB7XG4gICAgICAgIHRoaXMuaG90SW5zdGFuY2UuZGVzdHJveSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuaG90SWQpIHtcbiAgICAgIHRoaXMuX2hvdFRhYmxlUmVnaXN0ZXJlci5yZW1vdmVJbnN0YW5jZSh0aGlzLmhvdElkKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVIb3RUYWJsZShuZXdTZXR0aW5nczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5ncyApOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaG90SW5zdGFuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLmhvdEluc3RhbmNlLnVwZGF0ZVNldHRpbmdzKG5ld1NldHRpbmdzLCBmYWxzZSk7XG4gICAgfSk7XG4gIH1cblxuICBvbkFmdGVyQ29sdW1uc0NoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb2x1bW5zQ29tcG9uZW50cyA9PT0gdm9pZCAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29sdW1uc0NvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgY29sdW1uczogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzW10gPSBbXTtcblxuICAgICAgdGhpcy5jb2x1bW5zQ29tcG9uZW50cy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgY29sdW1ucy5wdXNoKCh0aGlzLl9ob3RTZXR0aW5nc1Jlc29sdmVyLm1lcmdlU2V0dGluZ3MoY29sdW1uKSBhcyBIYW5kc29udGFibGUuQ29sdW1uU2V0dGluZ3MpKTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBuZXdPcHRpb25zOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzID0ge1xuICAgICAgICBjb2x1bW5zOiBjb2x1bW5zXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnVwZGF0ZUhvdFRhYmxlKG5ld09wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIG9uQWZ0ZXJDb2x1bW5zTnVtYmVyQ2hhbmdlKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbHVtbnM6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1tdID0gW107XG5cbiAgICBpZiAodGhpcy5jb2x1bW5zQ29tcG9uZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmNvbHVtbnNDb21wb25lbnRzLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICBjb2x1bW5zLnB1c2goKHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyhjb2x1bW4pIGFzIEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5ncykpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVIb3RUYWJsZSh7IGNvbHVtbnMgfSk7XG4gIH1cblxuICBhZGRDb2x1bW4oY29sdW1uOiBIb3RDb2x1bW5Db21wb25lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbnNDb21wb25lbnRzLnB1c2goY29sdW1uKTtcbiAgICB0aGlzLm9uQWZ0ZXJDb2x1bW5zTnVtYmVyQ2hhbmdlKCk7XG4gIH1cblxuICByZW1vdmVDb2x1bW4oY29sdW1uOiBIb3RDb2x1bW5Db21wb25lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy5jb2x1bW5zQ29tcG9uZW50cy5pbmRleE9mKGNvbHVtbik7XG5cbiAgICB0aGlzLmNvbHVtbnNDb21wb25lbnRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5vbkFmdGVyQ29sdW1uc051bWJlckNoYW5nZSgpO1xuICB9XG5cbn1cbiJdfQ==