ng-virtual-list 18.7.0 → 18.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +18 -16
  2. package/esm2022/lib/components/ng-virtual-list-item.component.mjs +18 -5
  3. package/esm2022/lib/const/index.mjs +2 -1
  4. package/esm2022/lib/models/index.mjs +1 -1
  5. package/esm2022/lib/models/item-config-map.model.mjs +2 -0
  6. package/esm2022/lib/models/render-item-config.model.mjs +1 -1
  7. package/esm2022/lib/ng-virtual-list.component.mjs +45 -19
  8. package/esm2022/lib/ng-virtual-list.service.mjs +46 -8
  9. package/esm2022/lib/utils/trackBox.mjs +22 -19
  10. package/fesm2022/ng-virtual-list.mjs +126 -46
  11. package/fesm2022/ng-virtual-list.mjs.map +1 -1
  12. package/lib/components/ng-virtual-list-item.component.d.ts +22 -4
  13. package/lib/const/index.d.ts +1 -0
  14. package/lib/models/index.d.ts +2 -2
  15. package/lib/models/item-config-map.model.d.ts +23 -0
  16. package/lib/models/render-item-config.model.d.ts +5 -1
  17. package/lib/ng-virtual-list.component.d.ts +20 -6
  18. package/lib/ng-virtual-list.service.d.ts +7 -0
  19. package/lib/utils/trackBox.d.ts +4 -4
  20. package/package.json +1 -1
  21. package/esm2020/lib/components/ng-virtual-list-item.component.mjs +0 -198
  22. package/esm2020/lib/const/index.mjs +0 -51
  23. package/esm2020/lib/enums/direction.mjs +0 -2
  24. package/esm2020/lib/enums/directions.mjs +0 -18
  25. package/esm2020/lib/enums/index.mjs +0 -5
  26. package/esm2020/lib/enums/method-for-selecting-types.mjs +0 -22
  27. package/esm2020/lib/enums/method-for-selecting.mjs +0 -2
  28. package/esm2020/lib/enums/methods-for-selecting.mjs +0 -22
  29. package/esm2020/lib/enums/snapping-method.mjs +0 -2
  30. package/esm2020/lib/enums/snapping-methods.mjs +0 -18
  31. package/esm2020/lib/models/base-virtual-list-item-component.mjs +0 -9
  32. package/esm2020/lib/models/collection.model.mjs +0 -3
  33. package/esm2020/lib/models/component.model.mjs +0 -2
  34. package/esm2020/lib/models/index.mjs +0 -2
  35. package/esm2020/lib/models/item.model.mjs +0 -2
  36. package/esm2020/lib/models/render-collection.model.mjs +0 -3
  37. package/esm2020/lib/models/render-item-config.model.mjs +0 -2
  38. package/esm2020/lib/models/render-item.model.mjs +0 -3
  39. package/esm2020/lib/models/scroll-direction.model.mjs +0 -2
  40. package/esm2020/lib/models/scroll-event.model.mjs +0 -2
  41. package/esm2020/lib/models/sticky-map.model.mjs +0 -2
  42. package/esm2020/lib/ng-virtual-list.component.mjs +0 -800
  43. package/esm2020/lib/ng-virtual-list.module.mjs +0 -20
  44. package/esm2020/lib/ng-virtual-list.service.mjs +0 -94
  45. package/esm2020/lib/types/id.mjs +0 -2
  46. package/esm2020/lib/types/index.mjs +0 -2
  47. package/esm2020/lib/types/rect.mjs +0 -2
  48. package/esm2020/lib/types/size.mjs +0 -2
  49. package/esm2020/lib/utils/browser.mjs +0 -3
  50. package/esm2020/lib/utils/buffer-interpolation.mjs +0 -27
  51. package/esm2020/lib/utils/cacheMap.mjs +0 -167
  52. package/esm2020/lib/utils/debounce.mjs +0 -31
  53. package/esm2020/lib/utils/disposableComponent.mjs +0 -29
  54. package/esm2020/lib/utils/eventEmitter.mjs +0 -106
  55. package/esm2020/lib/utils/index.mjs +0 -5
  56. package/esm2020/lib/utils/isDirection.mjs +0 -15
  57. package/esm2020/lib/utils/isMethodForSelecting.mjs +0 -18
  58. package/esm2020/lib/utils/scrollEvent.mjs +0 -42
  59. package/esm2020/lib/utils/snapping-method.mjs +0 -9
  60. package/esm2020/lib/utils/toggleClassName.mjs +0 -15
  61. package/esm2020/lib/utils/trackBox.mjs +0 -762
  62. package/esm2020/lib/utils/tracker.mjs +0 -143
  63. package/esm2020/ng-virtual-list.mjs +0 -5
  64. package/esm2020/public-api.mjs +0 -10
  65. package/esm2022/lib/models/sticky-map.model.mjs +0 -2
  66. package/fesm2015/ng-virtual-list.mjs +0 -2582
  67. package/fesm2015/ng-virtual-list.mjs.map +0 -1
  68. package/fesm2020/ng-virtual-list.mjs +0 -2586
  69. package/fesm2020/ng-virtual-list.mjs.map +0 -1
  70. package/lib/models/sticky-map.model.d.ts +0 -14
  71. package/lib/utils/disposableComponent.d.ts +0 -15
package/README.md CHANGED
@@ -109,7 +109,7 @@ export class AppComponent {
109
109
  Template:
110
110
  ```html
111
111
  <ng-virtual-list class="list" direction="horizontal" [items]="horizontalGroupItems" [itemRenderer]="horizontalGroupItemRenderer"
112
- [bufferSize]="50" [stickyMap]="horizontalGroupItemsStickyMap" [itemSize]="54" [snap]="true" (onItemClick)="onItemClick($event)"></ng-virtual-list>
112
+ [bufferSize]="50" [itemConfigMap]="horizontalGroupItemConfigMap" [itemSize]="54" [snap]="true" (onItemClick)="onItemClick($event)"></ng-virtual-list>
113
113
 
114
114
  <ng-template #horizontalGroupItemRenderer let-data="data">
115
115
  @if (data) {
@@ -131,7 +131,7 @@ Template:
131
131
 
132
132
  Component:
133
133
  ```ts
134
- import { NgVirtualListComponent, IVirtualListCollection, IVirtualListStickyMap, IRenderVirtualListItem } from 'ng-virtual-list';
134
+ import { NgVirtualListComponent, IVirtualListCollection, IVirtualListItemConfigMap, IRenderVirtualListItem } from 'ng-virtual-list';
135
135
 
136
136
  const GROUP_NAMES = ['A', 'B', 'C', 'D', 'E'];
137
137
 
@@ -145,12 +145,12 @@ interface ICollectionItem {
145
145
  }
146
146
 
147
147
  const HORIZONTAL_GROUP_ITEMS: IVirtualListCollection<ICollectionItem> = [],
148
- HORIZONTAL_GROUP_ITEMS_STICKY_MAP: IVirtualListStickyMap = {};
148
+ HORIZONTAL_GROUP_ITEM_CONFIG_MAP: IVirtualListItemConfigMap = {};
149
149
 
150
150
  for (let i = 0, l = 1000000; i < l; i++) {
151
151
  const id = i + 1, type = Math.random() > .895 ? 'group-header' : 'item';
152
152
  HORIZONTAL_GROUP_ITEMS.push({ id, type, name: type === 'group-header' ? getGroupName() : `${i}` });
153
- HORIZONTAL_GROUP_ITEMS_STICKY_MAP[id] = type === 'group-header' ? 1 : 0;
153
+ HORIZONTAL_GROUP_ITEM_CONFIG_MAP[id] = type === 'group-header' ? 1 : 0;
154
154
  }
155
155
 
156
156
  @Component({
@@ -161,7 +161,7 @@ for (let i = 0, l = 1000000; i < l; i++) {
161
161
  })
162
162
  export class AppComponent {
163
163
  horizontalGroupItems = HORIZONTAL_GROUP_ITEMS;
164
- horizontalGroupItemsStickyMap = HORIZONTAL_GROUP_ITEMS_STICKY_MAP;
164
+ horizontalGroupItemConfigMap = HORIZONTAL_GROUP_ITEM_CONFIG_MAP;
165
165
 
166
166
  onItemClick(item: IRenderVirtualListItem<ICollectionItem> | undefined) {
167
167
  if (item) {
@@ -219,7 +219,7 @@ export class AppComponent {
219
219
  Template:
220
220
  ```html
221
221
  <ng-virtual-list class="list simple" [items]="groupItems" [bufferSize]="50" [itemRenderer]="groupItemRenderer"
222
- [stickyMap]="groupItemsStickyMap" [itemSize]="40" [snap]="false"></ng-virtual-list>
222
+ [itemConfigMap]="groupItemConfigMap" [itemSize]="40" [snap]="false"></ng-virtual-list>
223
223
 
224
224
  <ng-template #groupItemRenderer let-data="data">
225
225
  @if (data) {
@@ -246,7 +246,7 @@ Template:
246
246
  Template (with snapping):
247
247
  ```html
248
248
  <ng-virtual-list class="list simple" [items]="groupItems" [bufferSize]="50" [itemRenderer]="groupItemRenderer"
249
- [stickyMap]="groupItemsStickyMap" [itemSize]="40" [snap]="true"></ng-virtual-list>
249
+ [itemConfigMap]="groupItemConfigMap" [itemSize]="40" [snap]="true"></ng-virtual-list>
250
250
 
251
251
  <ng-template #groupItemRenderer let-data="data">
252
252
  @if (data) {
@@ -268,10 +268,10 @@ Template (with snapping):
268
268
 
269
269
  Component:
270
270
  ```ts
271
- import { NgVirtualListComponent, IVirtualListCollection, IVirtualListStickyMap } from 'ng-virtual-list';
271
+ import { NgVirtualListComponent, IVirtualListCollection, IVirtualListItemConfigMap } from 'ng-virtual-list';
272
272
 
273
273
  const GROUP_ITEMS: IVirtualListCollection = [],
274
- GROUP_ITEMS_STICKY_MAP: IVirtualListStickyMap = {};
274
+ GROUP_ITEM_CONFIG_MAP: IVirtualListItemConfigMap = {};
275
275
 
276
276
  let groupIndex = 0;
277
277
  for (let i = 0, l = 10000000; i < l; i++) {
@@ -280,7 +280,7 @@ for (let i = 0, l = 10000000; i < l; i++) {
280
280
  groupIndex++;
281
281
  }
282
282
  GROUP_ITEMS.push({ id, type, name: type === 'group-header' ? `Group ${groupIndex}` : `Item: ${i}` });
283
- GROUP_ITEMS_STICKY_MAP[id] = type === 'group-header' ? 1 : 0;
283
+ GROUP_ITEM_CONFIG_MAP[id] = type === 'group-header' ? 1 : 0;
284
284
  }
285
285
 
286
286
  @Component({
@@ -291,7 +291,7 @@ for (let i = 0, l = 10000000; i < l; i++) {
291
291
  })
292
292
  export class AppComponent {
293
293
  groupItems = GROUP_ITEMS;
294
- groupItemsStickyMap = GROUP_ITEMS_STICKY_MAP;
294
+ groupItemConfigMap = GROUP_ITEM_CONFIG_MAP;
295
295
  }
296
296
 
297
297
  ```
@@ -365,7 +365,7 @@ Virtual list with height-adjustable elements.
365
365
  Template
366
366
  ```html
367
367
  <ng-virtual-list #dynamicList class="list" [items]="groupDynamicItems" [itemRenderer]="groupItemRenderer" [bufferSize]="10"
368
- [stickyMap]="groupDynamicItemsStickyMap" [dynamicSize]="true" [snap]="true"></ng-virtual-list>
368
+ [itemConfigMap]="groupDynamicItemConfigMap" [dynamicSize]="true" [snap]="true"></ng-virtual-list>
369
369
 
370
370
  <ng-template #groupItemRenderer let-data="data">
371
371
  @if (data) {
@@ -413,7 +413,7 @@ const generateText = () => {
413
413
  };
414
414
 
415
415
  const GROUP_DYNAMIC_ITEMS: IVirtualListCollection = [],
416
- GROUP_DYNAMIC_ITEMS_STICKY_MAP: IVirtualListStickyMap = {};
416
+ GROUP_DYNAMIC_ITEM_CONFIG_MAP: IVirtualListItemConfigMap = {};
417
417
 
418
418
  let groupDynamicIndex = 0;
419
419
  for (let i = 0, l = 100000; i < l; i++) {
@@ -422,7 +422,7 @@ for (let i = 0, l = 100000; i < l; i++) {
422
422
  groupDynamicIndex++;
423
423
  }
424
424
  GROUP_DYNAMIC_ITEMS.push({ id, type, name: type === 'group-header' ? `Group ${groupDynamicIndex}` : `${id}. ${generateText()}` });
425
- GROUP_DYNAMIC_ITEMS_STICKY_MAP[id] = type === 'group-header' ? 1 : 0;
425
+ GROUP_DYNAMIC_ITEM_CONFIG_MAP[id] = type === 'group-header' ? 1 : 0;
426
426
  }
427
427
 
428
428
  @Component({
@@ -433,7 +433,7 @@ for (let i = 0, l = 100000; i < l; i++) {
433
433
  })
434
434
  export class AppComponent {
435
435
  groupDynamicItems = GROUP_DYNAMIC_ITEMS;
436
- groupDynamicItemsStickyMap = GROUP_DYNAMIC_ITEMS_STICKY_MAP;
436
+ groupDynamicItemConfigMap = GROUP_DYNAMIC_ITEM_CONFIG_MAP;
437
437
  }
438
438
  ```
439
439
 
@@ -535,7 +535,9 @@ Inputs
535
535
  | bufferSize | number? = 2 | Number of elements outside the scope of visibility. Default value is 2. |
536
536
  | maxBufferSize | number? = 100 | Maximum number of elements outside the scope of visibility. Default value is 100. If maxBufferSize is set to be greater than bufferSize, then adaptive buffer mode is enabled. The greater the scroll size, the more elements are allocated for rendering. |
537
537
  | itemRenderer | TemplateRef | Rendering element template. |
538
- | stickyMap | [IVirtualListStickyMap?](https://github.com/DjonnyX/ng-virtual-list/blob/18.x/projects/ng-virtual-list/src/lib/models/sticky-map.model.ts) | Dictionary zIndex by id of the list element. If the value is not set or equal to 0, then a simple element is displayed, if the value is greater than 0, then the sticky position mode is enabled for the element. 1 - position start, 2 - position end. |
538
+ | methodForSelecting | [MethodForSelecting](https://github.com/DjonnyX/ng-virtual-list/blob/18.x/projects/ng-virtual-list/src/lib/enums/method-for-selecting.ts) | Method for selecting list items. Default value is 'none'. 'select' - List items are selected one by one. 'multi-select' - Multiple selection of list items. 'none' - List items are not selectable. |
539
+ | itemConfigMap | [IVirtualListItemConfigMap?](https://github.com/DjonnyX/ng-virtual-list/blob/18.x/projects/ng-virtual-list/src/lib/models/item-config-map.model.ts) | Sets sticky position and selectable for the list item element. If sticky position is greater than 0, then sticky position is applied. If the sticky value is greater than `0`, then the sticky position mode is enabled for the element. `1` - position start, `2` - position end. Default value is `0`. Selectable determines whether an element can be selected or not. Default value is `true`. |
540
+ | selectByClick | boolean? = true | If `false`, the element is selected using the config.select method passed to the template; if `true`, the element is selected by clicking on it. The default value is `true`. |
539
541
  | snap | boolean? = false | Determines whether elements will snap. Default value is "false". |
540
542
  | snappingMethod | [SnappingMethod? = 'normal'](https://github.com/DjonnyX/ng-virtual-list/blob/18.x/projects/ng-virtual-list/src/lib/enums/snapping-method.ts) | Snapping method. 'normal' - Normal group rendering. 'advanced' - The group is rendered on a transparent background. List items below the group are not rendered. |
541
543
  | direction | [Direction? = 'vertical'](https://github.com/DjonnyX/ng-virtual-list/blob/18.x/projects/ng-virtual-list/src/lib/enums/direction.ts) | Determines the direction in which elements are placed. Default value is "vertical". |
@@ -23,6 +23,7 @@ export class NgVirtualListItemComponent extends BaseVirtualListItemComponent {
23
23
  _service = inject(NgVirtualListService);
24
24
  _isSelected = false;
25
25
  config = signal({});
26
+ measures = signal(undefined);
26
27
  _part = PART_DEFAULT_ITEM;
27
28
  get part() { return this._part; }
28
29
  regular = false;
@@ -35,6 +36,7 @@ export class NgVirtualListItemComponent extends BaseVirtualListItemComponent {
35
36
  this._data = v;
36
37
  this.updatePartStr(v, this._isSelected);
37
38
  this.updateConfig(v);
39
+ this.updateMeasures(v);
38
40
  this.update();
39
41
  this.data.set(v);
40
42
  this._cdr.detectChanges();
@@ -62,6 +64,14 @@ export class NgVirtualListItemComponent extends BaseVirtualListItemComponent {
62
64
  get element() {
63
65
  return this._elementRef.nativeElement;
64
66
  }
67
+ _selectHandler = (data) =>
68
+ /**
69
+ * Selects a list item
70
+ * @param selected - If the value is undefined, then the toggle method is executed, if false or true, then the selection/deselection is performed.
71
+ */
72
+ (selected = undefined) => {
73
+ this._service.select(data, selected);
74
+ };
65
75
  constructor() {
66
76
  super();
67
77
  this._id = this._service.generateComponentId();
@@ -89,11 +99,14 @@ export class NgVirtualListItemComponent extends BaseVirtualListItemComponent {
89
99
  }
90
100
  this.updatePartStr(this._data, this._isSelected);
91
101
  this.updateConfig(this._data);
102
+ this.updateMeasures(this._data);
92
103
  })).subscribe();
93
104
  }
105
+ updateMeasures(v) {
106
+ this.measures.set(v?.measures ? { ...v.measures } : undefined);
107
+ }
94
108
  updateConfig(v) {
95
- this.config.set({ ...v?.config || {}, selected: this._isSelected });
96
- this._cdr.markForCheck();
109
+ this.config.set({ ...v?.config || {}, selected: this._isSelected, select: this._selectHandler(v) });
97
110
  }
98
111
  update() {
99
112
  const data = this._data, regular = this.regular, length = this._regularLength;
@@ -178,13 +191,13 @@ export class NgVirtualListItemComponent extends BaseVirtualListItemComponent {
178
191
  this._service.itemClick(this._data);
179
192
  }
180
193
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgVirtualListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
181
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NgVirtualListItemComponent, selector: "ng-virtual-list-item", host: { attributes: { "role": "listitem" }, classAttribute: "ngvl__item" }, usesInheritance: true, ngImport: i0, template: "@if (data(); as item) {\r\n <div #listItem [part]=\"part\" class=\"ngvl-item__container\" [ngClass]=\"{'snapped': item.config.snapped,\r\n 'snapped-out': item.config.snappedOut}\" (click)=\"onClickHandler()\">\r\n @if (itemRenderer(); as renderer) {\r\n <ng-container [ngTemplateOutlet]=\"renderer\"\r\n [ngTemplateOutletContext]=\"{data: item.data || {}, config: config()}\" />\r\n }\r\n </div>\r\n}\r\n", styles: [":host{display:block;position:absolute;left:0;top:0;box-sizing:border-box;overflow:hidden}.ngvl-item__container{margin:0;padding:0;overflow:hidden;background-color:#fff;width:inherit;height:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
194
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NgVirtualListItemComponent, selector: "ng-virtual-list-item", host: { attributes: { "role": "listitem" }, classAttribute: "ngvl__item" }, usesInheritance: true, ngImport: i0, template: "@if (data(); as item) {\r\n <div #listItem [part]=\"part\" class=\"ngvl-item__container\" [ngClass]=\"{'snapped': item.config.snapped,\r\n 'snapped-out': item.config.snappedOut}\" (click)=\"onClickHandler()\">\r\n @if (itemRenderer(); as renderer) {\r\n <ng-container [ngTemplateOutlet]=\"renderer\"\r\n [ngTemplateOutletContext]=\"{data: item.data || {}, measures: measures(), config: config()}\" />\r\n }\r\n </div>\r\n}\r\n", styles: [":host{display:block;position:absolute;left:0;top:0;box-sizing:border-box;overflow:hidden}.ngvl-item__container{margin:0;padding:0;overflow:hidden;background-color:#fff;width:inherit;height:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
182
195
  }
183
196
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgVirtualListItemComponent, decorators: [{
184
197
  type: Component,
185
198
  args: [{ selector: 'ng-virtual-list-item', standalone: false, host: {
186
199
  'class': 'ngvl__item',
187
200
  'role': 'listitem',
188
- }, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (data(); as item) {\r\n <div #listItem [part]=\"part\" class=\"ngvl-item__container\" [ngClass]=\"{'snapped': item.config.snapped,\r\n 'snapped-out': item.config.snappedOut}\" (click)=\"onClickHandler()\">\r\n @if (itemRenderer(); as renderer) {\r\n <ng-container [ngTemplateOutlet]=\"renderer\"\r\n [ngTemplateOutletContext]=\"{data: item.data || {}, config: config()}\" />\r\n }\r\n </div>\r\n}\r\n", styles: [":host{display:block;position:absolute;left:0;top:0;box-sizing:border-box;overflow:hidden}.ngvl-item__container{margin:0;padding:0;overflow:hidden;background-color:#fff;width:inherit;height:inherit}\n"] }]
201
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (data(); as item) {\r\n <div #listItem [part]=\"part\" class=\"ngvl-item__container\" [ngClass]=\"{'snapped': item.config.snapped,\r\n 'snapped-out': item.config.snappedOut}\" (click)=\"onClickHandler()\">\r\n @if (itemRenderer(); as renderer) {\r\n <ng-container [ngTemplateOutlet]=\"renderer\"\r\n [ngTemplateOutletContext]=\"{data: item.data || {}, measures: measures(), config: config()}\" />\r\n }\r\n </div>\r\n}\r\n", styles: [":host{display:block;position:absolute;left:0;top:0;box-sizing:border-box;overflow:hidden}.ngvl-item__container{margin:0;padding:0;overflow:hidden;background-color:#fff;width:inherit;height:inherit}\n"] }]
189
202
  }], ctorParameters: () => [] });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdmlydHVhbC1saXN0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvY29tcG9uZW50cy9uZy12aXJ0dWFsLWxpc3QtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb21wb25lbnRzL25nLXZpcnR1YWwtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFHL0gsT0FBTyxFQUNMLGNBQWMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUM1RyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQ3hILGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixHQUMxRCxNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMxRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7QUFHL0UsTUFBTSxrQkFBa0IsR0FBRyxl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QUFLLGlCQUFpQixFQUFFLENBQUM7Z0JBQzVDLE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsTUFBTSxDQUFDLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQztRQUNwQyxNQUFNLENBQUMsU0FBUyxHQUFHLGtCQUFrQixDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7d0dBMU1VLDBCQUEwQjs0RkFBMUIsMEJBQTBCLCtKQ2xDdkMsbWRBU0E7OzRGRHlCYSwwQkFBMEI7a0JBWHRDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLEtBQUssUUFHWDt3QkFDSixPQUFPLEVBQUUsWUFBWTt3QkFDckIsTUFBTSxFQUFFLFVBQVU7cUJBQ25CLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgc2lnbmFsLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJUmVuZGVyVmlydHVhbExpc3RJdGVtIH0gZnJvbSAnLi4vbW9kZWxzL3JlbmRlci1pdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgSWQsIElTaXplIH0gZnJvbSAnLi4vdHlwZXMnO1xyXG5pbXBvcnQge1xyXG4gIERFRkFVTFRfWklOREVYLCBESVNQTEFZX0JMT0NLLCBESVNQTEFZX05PTkUsIEhJRERFTl9aSU5ERVgsIFBBUlRfREVGQVVMVF9JVEVNLCBQQVJUX0lURU1fRVZFTiwgUEFSVF9JVEVNX09ERCxcclxuICBQQVJUX0lURU1fU0VMRUNURUQsIFBBUlRfSVRFTV9TTkFQUEVELCBQT1NJVElPTl9BQlNPTFVURSwgUE9TSVRJT05fU1RJQ0tZLCBQWCwgU0laRV8xMDBfUEVSU0VOVCwgU0laRV9BVVRPLCBUUkFOU0xBVEVfM0QsXHJcbiAgVklTSUJJTElUWV9ISURERU4sIFZJU0lCSUxJVFlfVklTSUJMRSwgWkVST1NfVFJBTlNMQVRFXzNELFxyXG59IGZyb20gJy4uL2NvbnN0JztcclxuaW1wb3J0IHsgQmFzZVZpcnR1YWxMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL21vZGVscy9iYXNlLXZpcnR1YWwtbGlzdC1pdGVtLWNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nVmlydHVhbExpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vbmctdmlydHVhbC1saXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgbWFwLCB0YXAsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTWV0aG9kc0ZvclNlbGVjdGluZ1R5cGVzIH0gZnJvbSAnLi4vZW51bXMvbWV0aG9kLWZvci1zZWxlY3RpbmctdHlwZXMnO1xyXG5pbXBvcnQgeyBJUmVuZGVyVmlydHVhbExpc3RJdGVtQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL3JlbmRlci1pdGVtLWNvbmZpZy5tb2RlbCc7XHJcblxyXG5jb25zdCBBVFRSX0FSRUFfU0VMRUNURUQgPSAnYXJlYS1zZWxlY3RlZCc7XHJcblxyXG4vKipcclxuICogVmlydHVhbCBsaXN0IGl0ZW0gY29tcG9uZW50XHJcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9Eam9ubnlYL25nLXZpcnR1YWwtbGlzdC9ibG9iLzE4LngvcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvY29tcG9uZW50cy9uZy12aXJ0dWFsLWxpc3QtaXRlbS5jb21wb25lbnQudHNcclxuICogQGF1dGhvciBFdmdlbmlpIEdyZWJlbm5pa292XHJcbiAqIEBlbWFpbCBkam9ubnl4QGdtYWlsLmNvbVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZy12aXJ0dWFsLWxpc3QtaXRlbScsXHJcbiAgc3RhbmRhbG9uZTogZmFsc2UsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25nLXZpcnR1YWwtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbmctdmlydHVhbC1saXN0LWl0ZW0uY29tcG9uZW50LnNjc3MnLFxyXG4gIGhvc3Q6IHtcclxuICAgICdjbGFzcyc6ICduZ3ZsX19pdGVtJyxcclxuICAgICdyb2xlJzogJ2xpc3RpdGVtJyxcclxuICB9LFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlVmlydHVhbExpc3RJdGVtQ29tcG9uZW50IHtcclxuICBwcml2YXRlIF9pZCE6IG51bWJlcjtcclxuICBnZXQgaWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG5cclxuICBwcm90ZWN0ZWQgX3NlcnZpY2UgPSBpbmplY3QoTmdWaXJ0dWFsTGlzdFNlcnZpY2UpO1xyXG5cclxuICBwcml2YXRlIF9pc1NlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY29uZmlnID0gc2lnbmFsPElSZW5kZXJWaXJ0dWFsTGlzdEl0ZW1Db25maWcgJiB7IHNlbGVjdGVkOiBib29sZWFuIH0+KHt9IGFzIGFueSk7XHJcblxyXG4gIHByaXZhdGUgX3BhcnQgPSBQQVJUX0RFRkFVTFRfSVRFTTtcclxuICBnZXQgcGFydCgpIHsgcmV0dXJuIHRoaXMuX3BhcnQ7IH1cclxuXHJcbiAgcmVndWxhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBkYXRhID0gc2lnbmFsPElSZW5kZXJWaXJ0dWFsTGlzdEl0ZW0gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcbiAgcHJpdmF0ZSBfZGF0YTogSVJlbmRlclZpcnR1YWxMaXN0SXRlbSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxuICBzZXQgaXRlbSh2OiBJUmVuZGVyVmlydHVhbExpc3RJdGVtIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBpZiAodGhpcy5fZGF0YSA9PT0gdikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fZGF0YSA9IHY7XHJcblxyXG4gICAgdGhpcy51cGRhdGVQYXJ0U3RyKHYsIHRoaXMuX2lzU2VsZWN0ZWQpO1xyXG5cclxuICAgIHRoaXMudXBkYXRlQ29uZmlnKHYpO1xyXG5cclxuICAgIHRoaXMudXBkYXRlKCk7XHJcblxyXG4gICAgdGhpcy5kYXRhLnNldCh2KTtcclxuXHJcbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVndWxhckxlbmd0aDogc3RyaW5nID0gU0laRV8xMDBfUEVSU0VOVDtcclxuICBzZXQgcmVndWxhckxlbmd0aCh2OiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLl9yZWd1bGFyTGVuZ3RoID09PSB2KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9yZWd1bGFyTGVuZ3RoID0gdjtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZSgpO1xyXG5cclxuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaXRlbSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGl0ZW1JZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhPy5pZDtcclxuICB9XHJcblxyXG4gIGl0ZW1SZW5kZXJlciA9IHNpZ25hbDxUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG5cclxuICBzZXQgcmVuZGVyZXIodjogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5pdGVtUmVuZGVyZXIuc2V0KHYpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xyXG4gIGdldCBlbGVtZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuX2lkID0gdGhpcy5fc2VydmljZS5nZW5lcmF0ZUNvbXBvbmVudElkKCk7XHJcblxyXG4gICAgY29uc3QgJGRhdGEgPSB0b09ic2VydmFibGUodGhpcy5kYXRhKTtcclxuXHJcbiAgICBjb21iaW5lTGF0ZXN0KFskZGF0YSwgdGhpcy5fc2VydmljZS4kbWV0aG9kT2ZTZWxlY3RpbmcsIHRoaXMuX3NlcnZpY2UuJHNlbGVjdGVkSWRzXSkucGlwZShcclxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXHJcbiAgICAgIG1hcCgoWywgbSwgaWRzXSkgPT4gKHsgbWV0aG9kOiBtLCBpZHMgfSkpLFxyXG4gICAgICB0YXAoKHsgbWV0aG9kLCBpZHMgfSkgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAobWV0aG9kKSB7XHJcbiAgICAgICAgICBjYXNlIE1ldGhvZHNGb3JTZWxlY3RpbmdUeXBlcy5TRUxFQ1Q6IHtcclxuICAgICAgICAgICAgY29uc3QgaWQgPSBpZHMgYXMgSWQgfCB1bmRlZmluZWQsIGlzU2VsZWN0ZWQgPSBpZCA9PT0gdGhpcy5pdGVtSWQ7XHJcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoQVRUUl9BUkVBX1NFTEVDVEVELCBTdHJpbmcoaXNTZWxlY3RlZCkpO1xyXG4gICAgICAgICAgICB0aGlzLl9pc1NlbGVjdGVkID0gaXNTZWxlY3RlZDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXNlIE1ldGhvZHNGb3JTZWxlY3RpbmdUeXBlcy5NVUxUSV9TRUxFQ1Q6IHtcclxuICAgICAgICAgICAgY29uc3QgYWN0dWFsSWRzID0gaWRzIGFzIEFycmF5PElkPiwgaXNTZWxlY3RlZCA9IHRoaXMuaXRlbUlkICE9PSB1bmRlZmluZWQgJiYgYWN0dWFsSWRzICYmIGFjdHVhbElkcy5pbmNsdWRlcyh0aGlzLml0ZW1JZCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoQVRUUl9BUkVBX1NFTEVDVEVELCBTdHJpbmcoaXNTZWxlY3RlZCkpO1xyXG4gICAgICAgICAgICB0aGlzLl9pc1NlbGVjdGVkID0gaXNTZWxlY3RlZDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXNlIE1ldGhvZHNGb3JTZWxlY3RpbmdUeXBlcy5OT05FOlxyXG4gICAgICAgICAgZGVmYXVsdDoge1xyXG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKEFUVFJfQVJFQV9TRUxFQ1RFRCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2lzU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZVBhcnRTdHIodGhpcy5fZGF0YSwgdGhpcy5faXNTZWxlY3RlZCk7XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlQ29uZmlnKHRoaXMuX2RhdGEpO1xyXG4gICAgICB9KSxcclxuICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUNvbmZpZyh2OiBJUmVuZGVyVmlydHVhbExpc3RJdGVtPGFueT4gfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuY29uZmlnLnNldCh7IC4uLnY/LmNvbmZpZyB8fCB7fSwgc2VsZWN0ZWQ6IHRoaXMuX2lzU2VsZWN0ZWQgfSBhcyBhbnkpO1xyXG5cclxuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlKCkge1xyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuX2RhdGEsIHJlZ3VsYXIgPSB0aGlzLnJlZ3VsYXIsIGxlbmd0aCA9IHRoaXMuX3JlZ3VsYXJMZW5ndGg7XHJcbiAgICBpZiAoZGF0YSkge1xyXG4gICAgICBjb25zdCBzdHlsZXMgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGU7XHJcbiAgICAgIHN0eWxlcy56SW5kZXggPSBkYXRhLmNvbmZpZy56SW5kZXg7XHJcbiAgICAgIGlmIChkYXRhLmNvbmZpZy5zbmFwcGVkKSB7XHJcbiAgICAgICAgc3R5bGVzLnRyYW5zZm9ybSA9IGRhdGEuY29uZmlnLnN0aWNreSA9PT0gMSA/IFpFUk9TX1RSQU5TTEFURV8zRCA6IGAke1RSQU5TTEFURV8zRH0oJHtkYXRhLmNvbmZpZy5pc1ZlcnRpY2FsID8gMCA6IGRhdGEubWVhc3VyZXMueH0ke1BYfSwgJHtkYXRhLmNvbmZpZy5pc1ZlcnRpY2FsID8gZGF0YS5tZWFzdXJlcy55IDogMH0ke1BYfSAsIDApYDs7XHJcbiAgICAgICAgaWYgKCFkYXRhLmNvbmZpZy5pc1NuYXBwaW5nTWV0aG9kQWR2YW5jZWQpIHtcclxuICAgICAgICAgIHN0eWxlcy5wb3NpdGlvbiA9IFBPU0lUSU9OX1NUSUNLWTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc3R5bGVzLnBvc2l0aW9uID0gUE9TSVRJT05fQUJTT0xVVEU7XHJcbiAgICAgICAgaWYgKHJlZ3VsYXIpIHtcclxuICAgICAgICAgIHN0eWxlcy50cmFuc2Zvcm0gPSBgJHtUUkFOU0xBVEVfM0R9KCR7ZGF0YS5jb25maWcuaXNWZXJ0aWNhbCA/IDAgOiBkYXRhLm1lYXN1cmVzLmRlbHRhfSR7UFh9LCAke2RhdGEuY29uZmlnLmlzVmVydGljYWwgPyBkYXRhLm1lYXN1cmVzLmRlbHRhIDogMH0ke1BYfSAsIDApYDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgc3R5bGVzLnRyYW5zZm9ybSA9IGAke1RSQU5TTEFURV8zRH0oJHtkYXRhLmNvbmZpZy5pc1ZlcnRpY2FsID8gMCA6IGRhdGEubWVhc3VyZXMueH0ke1BYfSwgJHtkYXRhLmNvbmZpZy5pc1ZlcnRpY2FsID8gZGF0YS5tZWFzdXJlcy55IDogMH0ke1BYfSAsIDApYDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgc3R5bGVzLmhlaWdodCA9IGRhdGEuY29uZmlnLmlzVmVydGljYWwgPyBkYXRhLmNvbmZpZy5keW5hbWljID8gU0laRV9BVVRPIDogYCR7ZGF0YS5tZWFzdXJlcy5oZWlnaHR9JHtQWH1gIDogcmVndWxhciA/IGxlbmd0aCA6IFNJWkVfMTAwX1BFUlNFTlQ7XHJcbiAgICAgIHN0eWxlcy53aWR0aCA9IGRhdGEuY29uZmlnLmlzVmVydGljYWwgPyByZWd1bGFyID8gbGVuZ3RoIDogU0laRV8xMDBfUEVSU0VOVCA6IGRhdGEuY29uZmlnLmR5bmFtaWMgPyBTSVpFX0FVVE8gOiBgJHtkYXRhLm1lYXN1cmVzLndpZHRofSR7UFh9YDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVBhcnRTdHIodjogSVJlbmRlclZpcnR1YWxMaXN0SXRlbSB8IHVuZGVmaW5lZCwgaXNTZWxlY3RlZDogYm9vbGVhbikge1xyXG4gICAgbGV0IG9kZCA9IGZhbHNlO1xyXG4gICAgaWYgKHY/LmluZGV4ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgb2RkID0gdi5pbmRleCAlIDIgPT09IDA7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBhcnQgPSBQQVJUX0RFRkFVTFRfSVRFTTtcclxuICAgIHBhcnQgKz0gb2RkID8gUEFSVF9JVEVNX09ERCA6IFBBUlRfSVRFTV9FVkVOO1xyXG4gICAgaWYgKHYgPyB2LmNvbmZpZy5zbmFwcGVkIDogZmFsc2UpIHtcclxuICAgICAgcGFydCArPSBQQVJUX0lURU1fU05BUFBFRDtcclxuICAgIH1cclxuICAgIGlmIChpc1NlbGVjdGVkKSB7XHJcbiAgICAgIHBhcnQgKz0gUEFSVF9JVEVNX1NFTEVDVEVEO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcGFydCA9IHBhcnQ7XHJcbiAgfVxyXG5cclxuICBnZXRCb3VuZHMoKTogSVNpemUge1xyXG4gICAgY29uc3QgZWw6IEhUTUxFbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICB7IHdpZHRoLCBoZWlnaHQgfSA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgcmV0dXJuIHsgd2lkdGgsIGhlaWdodCB9O1xyXG4gIH1cclxuXHJcbiAgc2hvdygpIHtcclxuICAgIGNvbnN0IHN0eWxlcyA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZTtcclxuICAgIGlmICh0aGlzLnJlZ3VsYXIpIHtcclxuICAgICAgaWYgKHN0eWxlcy5kaXNwbGF5ID09PSBESVNQTEFZX0JMT0NLKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdHlsZXMuZGlzcGxheSA9IERJU1BMQVlfQkxPQ0s7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoc3R5bGVzLnZpc2liaWxpdHkgPT09IFZJU0lCSUxJVFlfVklTSUJMRSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3R5bGVzLnZpc2liaWxpdHkgPSBWSVNJQklMSVRZX1ZJU0lCTEU7XHJcbiAgICB9XHJcbiAgICBzdHlsZXMuekluZGV4ID0gdGhpcy5fZGF0YT8uY29uZmlnPy56SW5kZXggPz8gREVGQVVMVF9aSU5ERVg7XHJcbiAgfVxyXG5cclxuICBoaWRlKCkge1xyXG4gICAgY29uc3Qgc3R5bGVzID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlO1xyXG4gICAgaWYgKHRoaXMucmVndWxhcikge1xyXG4gICAgICBpZiAoc3R5bGVzLmRpc3BsYXkgPT09IERJU1BMQVlfTk9ORSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3R5bGVzLmRpc3BsYXkgPSBESVNQTEFZX05PTkU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoc3R5bGVzLnZpc2liaWxpdHkgPT09IFZJU0lCSUxJVFlfSElEREVOKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdHlsZXMudmlzaWJpbGl0eSA9IFZJU0lCSUxJVFlfSElEREVOO1xyXG4gICAgfVxyXG4gICAgc3R5bGVzLnBvc2l0aW9uID0gUE9TSVRJT05fQUJTT0xVVEU7XHJcbiAgICBzdHlsZXMudHJhbnNmb3JtID0gWkVST1NfVFJBTlNMQVRFXzNEO1xyXG4gICAgc3R5bGVzLnpJbmRleCA9IEhJRERFTl9aSU5ERVg7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrSGFuZGxlcigpIHtcclxuICAgIHRoaXMuX3NlcnZpY2UuaXRlbUNsaWNrKHRoaXMuX2RhdGEpO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKGRhdGEoKTsgYXMgaXRlbSkge1xyXG4gICAgPGRpdiAjbGlzdEl0ZW0gW3BhcnRdPVwicGFydFwiIGNsYXNzPVwibmd2bC1pdGVtX19jb250YWluZXJcIiBbbmdDbGFzc109XCJ7J3NuYXBwZWQnOiBpdGVtLmNvbmZpZy5zbmFwcGVkLFxyXG4gICAgICAgICAgICAnc25hcHBlZC1vdXQnOiBpdGVtLmNvbmZpZy5zbmFwcGVkT3V0fVwiIChjbGljayk9XCJvbkNsaWNrSGFuZGxlcigpXCI+XHJcbiAgICAgICAgQGlmIChpdGVtUmVuZGVyZXIoKTsgYXMgcmVuZGVyZXIpIHtcclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJyZW5kZXJlclwiXHJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2RhdGE6IGl0ZW0uZGF0YSB8fCB7fSwgY29uZmlnOiBjb25maWcoKX1cIiAvPlxyXG4gICAgICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxufVxyXG4iXX0=
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdmlydHVhbC1saXN0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvY29tcG9uZW50cy9uZy12aXJ0dWFsLWxpc3QtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb21wb25lbnRzL25nLXZpcnR1YWwtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFHL0gsT0FBTyxFQUNMLGNBQWMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUM1RyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQ3hILGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixHQUMxRCxNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMxRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7QUFlL0UsTUFBTSxrQkFBa0IsR0FBRyxl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Qix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgc2lnbmFsLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJUmVuZGVyVmlydHVhbExpc3RJdGVtIH0gZnJvbSAnLi4vbW9kZWxzL3JlbmRlci1pdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgSWQsIElSZWN0LCBJU2l6ZSB9IGZyb20gJy4uL3R5cGVzJztcclxuaW1wb3J0IHtcclxuICBERUZBVUxUX1pJTkRFWCwgRElTUExBWV9CTE9DSywgRElTUExBWV9OT05FLCBISURERU5fWklOREVYLCBQQVJUX0RFRkFVTFRfSVRFTSwgUEFSVF9JVEVNX0VWRU4sIFBBUlRfSVRFTV9PREQsXHJcbiAgUEFSVF9JVEVNX1NFTEVDVEVELCBQQVJUX0lURU1fU05BUFBFRCwgUE9TSVRJT05fQUJTT0xVVEUsIFBPU0lUSU9OX1NUSUNLWSwgUFgsIFNJWkVfMTAwX1BFUlNFTlQsIFNJWkVfQVVUTywgVFJBTlNMQVRFXzNELFxyXG4gIFZJU0lCSUxJVFlfSElEREVOLCBWSVNJQklMSVRZX1ZJU0lCTEUsIFpFUk9TX1RSQU5TTEFURV8zRCxcclxufSBmcm9tICcuLi9jb25zdCc7XHJcbmltcG9ydCB7IEJhc2VWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9tb2RlbHMvYmFzZS12aXJ0dWFsLWxpc3QtaXRlbS1jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ1ZpcnR1YWxMaXN0U2VydmljZSB9IGZyb20gJy4uL25nLXZpcnR1YWwtbGlzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IG1hcCwgdGFwLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1ldGhvZHNGb3JTZWxlY3RpbmdUeXBlcyB9IGZyb20gJy4uL2VudW1zL21ldGhvZC1mb3Itc2VsZWN0aW5nLXR5cGVzJztcclxuaW1wb3J0IHsgSVJlbmRlclZpcnR1YWxMaXN0SXRlbUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9yZW5kZXItaXRlbS1jb25maWcubW9kZWwnO1xyXG5cclxuaW50ZXJmYWNlIElJdGVtQ29uZmlnIGV4dGVuZHMgSVJlbmRlclZpcnR1YWxMaXN0SXRlbUNvbmZpZyB7XHJcbiAgLyoqXHJcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBlbGVtZW50IGlzIHNlbGVjdGVkIG9yIG5vdC5cclxuICAgKi9cclxuICBzZWxlY3RlZDogYm9vbGVhbjtcclxuICAvKipcclxuICAgICogU2VsZWN0cyBhIGxpc3QgaXRlbVxyXG4gICAgKiBAcGFyYW0gc2VsZWN0ZWQgLSBJZiB0aGUgdmFsdWUgaXMgdW5kZWZpbmVkLCB0aGVuIHRoZSB0b2dnbGUgbWV0aG9kIGlzIGV4ZWN1dGVkLCBpZiBmYWxzZSBvciB0cnVlLCB0aGVuIHRoZSBzZWxlY3Rpb24vZGVzZWxlY3Rpb24gaXMgcGVyZm9ybWVkLlxyXG4gICAgKi9cclxuICBzZWxlY3Q6IChzZWxlY3RlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCkgPT4gdm9pZDtcclxufVxyXG5cclxuY29uc3QgQVRUUl9BUkVBX1NFTEVDVEVEID0gJ2FyZWEtc2VsZWN0ZWQnO1xyXG5cclxuLyoqXHJcbiAqIFZpcnR1YWwgbGlzdCBpdGVtIGNvbXBvbmVudFxyXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vRGpvbm55WC9uZy12aXJ0dWFsLWxpc3QvYmxvYi8xOC54L3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL2NvbXBvbmVudHMvbmctdmlydHVhbC1saXN0LWl0ZW0uY29tcG9uZW50LnRzXHJcbiAqIEBhdXRob3IgRXZnZW5paSBHcmViZW5uaWtvdlxyXG4gKiBAZW1haWwgZGpvbm55eEBnbWFpbC5jb21cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmctdmlydHVhbC1saXN0LWl0ZW0nLFxyXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9uZy12aXJ0dWFsLWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL25nLXZpcnR1YWwtbGlzdC1pdGVtLmNvbXBvbmVudC5zY3NzJyxcclxuICBob3N0OiB7XHJcbiAgICAnY2xhc3MnOiAnbmd2bF9faXRlbScsXHJcbiAgICAncm9sZSc6ICdsaXN0aXRlbScsXHJcbiAgfSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nVmlydHVhbExpc3RJdGVtQ29tcG9uZW50IGV4dGVuZHMgQmFzZVZpcnR1YWxMaXN0SXRlbUNvbXBvbmVudCB7XHJcbiAgcHJpdmF0ZSBfaWQhOiBudW1iZXI7XHJcbiAgZ2V0IGlkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuXHJcbiAgcHJvdGVjdGVkIF9zZXJ2aWNlID0gaW5qZWN0KE5nVmlydHVhbExpc3RTZXJ2aWNlKTtcclxuXHJcbiAgcHJpdmF0ZSBfaXNTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbmZpZyA9IHNpZ25hbDxJSXRlbUNvbmZpZz4oe30gYXMgSUl0ZW1Db25maWcpO1xyXG5cclxuICBtZWFzdXJlcyA9IHNpZ25hbDxJUmVjdCAmIHtcclxuICAgIC8qKlxyXG4gICAgICogRGVsdGEgaXMgY2FsY3VsYXRlZCBmb3IgU25hcHBpbmcgTWV0aG9kLkFEVkFOQ0VEXHJcbiAgICAgKi9cclxuICAgIGRlbHRhOiBudW1iZXI7XHJcbiAgfSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuXHJcbiAgcHJpdmF0ZSBfcGFydCA9IFBBUlRfREVGQVVMVF9JVEVNO1xyXG4gIGdldCBwYXJ0KCkgeyByZXR1cm4gdGhpcy5fcGFydDsgfVxyXG5cclxuICByZWd1bGFyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGRhdGEgPSBzaWduYWw8SVJlbmRlclZpcnR1YWxMaXN0SXRlbSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICBwcml2YXRlIF9kYXRhOiBJUmVuZGVyVmlydHVhbExpc3RJdGVtIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG4gIHNldCBpdGVtKHY6IElSZW5kZXJWaXJ0dWFsTGlzdEl0ZW0gfCB1bmRlZmluZWQpIHtcclxuICAgIGlmICh0aGlzLl9kYXRhID09PSB2KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9kYXRhID0gdjtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZVBhcnRTdHIodiwgdGhpcy5faXNTZWxlY3RlZCk7XHJcblxyXG4gICAgdGhpcy51cGRhdGVDb25maWcodik7XHJcblxyXG4gICAgdGhpcy51cGRhdGVNZWFzdXJlcyh2KTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZSgpO1xyXG5cclxuICAgIHRoaXMuZGF0YS5zZXQodik7XHJcblxyXG4gICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlZ3VsYXJMZW5ndGg6IHN0cmluZyA9IFNJWkVfMTAwX1BFUlNFTlQ7XHJcbiAgc2V0IHJlZ3VsYXJMZW5ndGgodjogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5fcmVndWxhckxlbmd0aCA9PT0gdikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fcmVndWxhckxlbmd0aCA9IHY7XHJcblxyXG4gICAgdGhpcy51cGRhdGUoKTtcclxuXHJcbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGl0ZW0oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcclxuICB9XHJcblxyXG4gIGdldCBpdGVtSWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YT8uaWQ7XHJcbiAgfVxyXG5cclxuICBpdGVtUmVuZGVyZXIgPSBzaWduYWw8VGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuXHJcbiAgc2V0IHJlbmRlcmVyKHY6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuaXRlbVJlbmRlcmVyLnNldCh2KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+ID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcclxuICBnZXQgZWxlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZWxlY3RIYW5kbGVyID0gKGRhdGE6IElSZW5kZXJWaXJ0dWFsTGlzdEl0ZW08YW55PiB8IHVuZGVmaW5lZCkgPT5cclxuICAgIC8qKlxyXG4gICAgICogU2VsZWN0cyBhIGxpc3QgaXRlbVxyXG4gICAgICogQHBhcmFtIHNlbGVjdGVkIC0gSWYgdGhlIHZhbHVlIGlzIHVuZGVmaW5lZCwgdGhlbiB0aGUgdG9nZ2xlIG1ldGhvZCBpcyBleGVjdXRlZCwgaWYgZmFsc2Ugb3IgdHJ1ZSwgdGhlbiB0aGUgc2VsZWN0aW9uL2Rlc2VsZWN0aW9uIGlzIHBlcmZvcm1lZC5cclxuICAgICAqL1xyXG4gICAgKHNlbGVjdGVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkKSA9PiB7XHJcbiAgICAgIHRoaXMuX3NlcnZpY2Uuc2VsZWN0KGRhdGEsIHNlbGVjdGVkKTtcclxuICAgIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuX2lkID0gdGhpcy5fc2VydmljZS5nZW5lcmF0ZUNvbXBvbmVudElkKCk7XHJcblxyXG4gICAgY29uc3QgJGRhdGEgPSB0b09ic2VydmFibGUodGhpcy5kYXRhKTtcclxuXHJcbiAgICBjb21iaW5lTGF0ZXN0KFskZGF0YSwgdGhpcy5fc2VydmljZS4kbWV0aG9kT2ZTZWxlY3RpbmcsIHRoaXMuX3NlcnZpY2UuJHNlbGVjdGVkSWRzXSkucGlwZShcclxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXHJcbiAgICAgIG1hcCgoWywgbSwgaWRzXSkgPT4gKHsgbWV0aG9kOiBtLCBpZHMgfSkpLFxyXG4gICAgICB0YXAoKHsgbWV0aG9kLCBpZHMgfSkgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAobWV0aG9kKSB7XHJcbiAgICAgICAgICBjYXNlIE1ldGhvZHNGb3JTZWxlY3RpbmdUeXBlcy5TRUxFQ1Q6IHtcclxuICAgICAgICAgICAgY29uc3QgaWQgPSBpZHMgYXMgSWQgfCB1bmRlZmluZWQsIGlzU2VsZWN0ZWQgPSBpZCA9PT0gdGhpcy5pdGVtSWQ7XHJcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoQVRUUl9BUkVBX1NFTEVDVEVELCBTdHJpbmcoaXNTZWxlY3RlZCkpO1xyXG4gICAgICAgICAgICB0aGlzLl9pc1NlbGVjdGVkID0gaXNTZWxlY3RlZDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXNlIE1ldGhvZHNGb3JTZWxlY3RpbmdUeXBlcy5NVUxUSV9TRUxFQ1Q6IHtcclxuICAgICAgICAgICAgY29uc3QgYWN0dWFsSWRzID0gaWRzIGFzIEFycmF5PElkPiwgaXNTZWxlY3RlZCA9IHRoaXMuaXRlbUlkICE9PSB1bmRlZmluZWQgJiYgYWN0dWFsSWRzICYmIGFjdHVhbElkcy5pbmNsdWRlcyh0aGlzLml0ZW1JZCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoQVRUUl9BUkVBX1NFTEVDVEVELCBTdHJpbmcoaXNTZWxlY3RlZCkpO1xyXG4gICAgICAgICAgICB0aGlzLl9pc1NlbGVjdGVkID0gaXNTZWxlY3RlZDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXNlIE1ldGhvZHNGb3JTZWxlY3RpbmdUeXBlcy5OT05FOlxyXG4gICAgICAgICAgZGVmYXVsdDoge1xyXG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKEFUVFJfQVJFQV9TRUxFQ1RFRCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2lzU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZVBhcnRTdHIodGhpcy5fZGF0YSwgdGhpcy5faXNTZWxlY3RlZCk7XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlQ29uZmlnKHRoaXMuX2RhdGEpO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZU1lYXN1cmVzKHRoaXMuX2RhdGEpO1xyXG4gICAgICB9KSxcclxuICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZU1lYXN1cmVzKHY6IElSZW5kZXJWaXJ0dWFsTGlzdEl0ZW08YW55PiB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5tZWFzdXJlcy5zZXQodj8ubWVhc3VyZXMgPyB7IC4uLnYubWVhc3VyZXMgfSA6IHVuZGVmaW5lZClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQ29uZmlnKHY6IElSZW5kZXJWaXJ0dWFsTGlzdEl0ZW08YW55PiB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5jb25maWcuc2V0KHsgLi4udj8uY29uZmlnIHx8IHt9IGFzIElJdGVtQ29uZmlnLCBzZWxlY3RlZDogdGhpcy5faXNTZWxlY3RlZCwgc2VsZWN0OiB0aGlzLl9zZWxlY3RIYW5kbGVyKHYpIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGUoKSB7XHJcbiAgICBjb25zdCBkYXRhID0gdGhpcy5fZGF0YSwgcmVndWxhciA9IHRoaXMucmVndWxhciwgbGVuZ3RoID0gdGhpcy5fcmVndWxhckxlbmd0aDtcclxuICAgIGlmIChkYXRhKSB7XHJcbiAgICAgIGNvbnN0IHN0eWxlcyA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZTtcclxuICAgICAgc3R5bGVzLnpJbmRleCA9IGRhdGEuY29uZmlnLnpJbmRleDtcclxuICAgICAgaWYgKGRhdGEuY29uZmlnLnNuYXBwZWQpIHtcclxuICAgICAgICBzdHlsZXMudHJhbnNmb3JtID0gZGF0YS5jb25maWcuc3RpY2t5ID09PSAxID8gWkVST1NfVFJBTlNMQVRFXzNEIDogYCR7VFJBTlNMQVRFXzNEfSgke2RhdGEuY29uZmlnLmlzVmVydGljYWwgPyAwIDogZGF0YS5tZWFzdXJlcy54fSR7UFh9LCAke2RhdGEuY29uZmlnLmlzVmVydGljYWwgPyBkYXRhLm1lYXN1cmVzLnkgOiAwfSR7UFh9ICwgMClgOztcclxuICAgICAgICBpZiAoIWRhdGEuY29uZmlnLmlzU25hcHBpbmdNZXRob2RBZHZhbmNlZCkge1xyXG4gICAgICAgICAgc3R5bGVzLnBvc2l0aW9uID0gUE9TSVRJT05fU1RJQ0tZO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzdHlsZXMucG9zaXRpb24gPSBQT1NJVElPTl9BQlNPTFVURTtcclxuICAgICAgICBpZiAocmVndWxhcikge1xyXG4gICAgICAgICAgc3R5bGVzLnRyYW5zZm9ybSA9IGAke1RSQU5TTEFURV8zRH0oJHtkYXRhLmNvbmZpZy5pc1ZlcnRpY2FsID8gMCA6IGRhdGEubWVhc3VyZXMuZGVsdGF9JHtQWH0sICR7ZGF0YS5jb25maWcuaXNWZXJ0aWNhbCA/IGRhdGEubWVhc3VyZXMuZGVsdGEgOiAwfSR7UFh9ICwgMClgO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzdHlsZXMudHJhbnNmb3JtID0gYCR7VFJBTlNMQVRFXzNEfSgke2RhdGEuY29uZmlnLmlzVmVydGljYWwgPyAwIDogZGF0YS5tZWFzdXJlcy54fSR7UFh9LCAke2RhdGEuY29uZmlnLmlzVmVydGljYWwgPyBkYXRhLm1lYXN1cmVzLnkgOiAwfSR7UFh9ICwgMClgO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBzdHlsZXMuaGVpZ2h0ID0gZGF0YS5jb25maWcuaXNWZXJ0aWNhbCA/IGRhdGEuY29uZmlnLmR5bmFtaWMgPyBTSVpFX0FVVE8gOiBgJHtkYXRhLm1lYXN1cmVzLmhlaWdodH0ke1BYfWAgOiByZWd1bGFyID8gbGVuZ3RoIDogU0laRV8xMDBfUEVSU0VOVDtcclxuICAgICAgc3R5bGVzLndpZHRoID0gZGF0YS5jb25maWcuaXNWZXJ0aWNhbCA/IHJlZ3VsYXIgPyBsZW5ndGggOiBTSVpFXzEwMF9QRVJTRU5UIDogZGF0YS5jb25maWcuZHluYW1pYyA/IFNJWkVfQVVUTyA6IGAke2RhdGEubWVhc3VyZXMud2lkdGh9JHtQWH1gO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlUGFydFN0cih2OiBJUmVuZGVyVmlydHVhbExpc3RJdGVtIHwgdW5kZWZpbmVkLCBpc1NlbGVjdGVkOiBib29sZWFuKSB7XHJcbiAgICBsZXQgb2RkID0gZmFsc2U7XHJcbiAgICBpZiAodj8uaW5kZXggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBvZGQgPSB2LmluZGV4ICUgMiA9PT0gMDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcGFydCA9IFBBUlRfREVGQVVMVF9JVEVNO1xyXG4gICAgcGFydCArPSBvZGQgPyBQQVJUX0lURU1fT0REIDogUEFSVF9JVEVNX0VWRU47XHJcbiAgICBpZiAodiA/IHYuY29uZmlnLnNuYXBwZWQgOiBmYWxzZSkge1xyXG4gICAgICBwYXJ0ICs9IFBBUlRfSVRFTV9TTkFQUEVEO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzU2VsZWN0ZWQpIHtcclxuICAgICAgcGFydCArPSBQQVJUX0lURU1fU0VMRUNURUQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9wYXJ0ID0gcGFydDtcclxuICB9XHJcblxyXG4gIGdldEJvdW5kcygpOiBJU2l6ZSB7XHJcbiAgICBjb25zdCBlbDogSFRNTEVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgIHsgd2lkdGgsIGhlaWdodCB9ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICByZXR1cm4geyB3aWR0aCwgaGVpZ2h0IH07XHJcbiAgfVxyXG5cclxuICBzaG93KCkge1xyXG4gICAgY29uc3Qgc3R5bGVzID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlO1xyXG4gICAgaWYgKHRoaXMucmVndWxhcikge1xyXG4gICAgICBpZiAoc3R5bGVzLmRpc3BsYXkgPT09IERJU1BMQVlfQkxPQ0spIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHN0eWxlcy5kaXNwbGF5ID0gRElTUExBWV9CTE9DSztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChzdHlsZXMudmlzaWJpbGl0eSA9PT0gVklTSUJJTElUWV9WSVNJQkxFKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdHlsZXMudmlzaWJpbGl0eSA9IFZJU0lCSUxJVFlfVklTSUJMRTtcclxuICAgIH1cclxuICAgIHN0eWxlcy56SW5kZXggPSB0aGlzLl9kYXRhPy5jb25maWc/LnpJbmRleCA/PyBERUZBVUxUX1pJTkRFWDtcclxuICB9XHJcblxyXG4gIGhpZGUoKSB7XHJcbiAgICBjb25zdCBzdHlsZXMgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGU7XHJcbiAgICBpZiAodGhpcy5yZWd1bGFyKSB7XHJcbiAgICAgIGlmIChzdHlsZXMuZGlzcGxheSA9PT0gRElTUExBWV9OT05FKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdHlsZXMuZGlzcGxheSA9IERJU1BMQVlfTk9ORTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChzdHlsZXMudmlzaWJpbGl0eSA9PT0gVklTSUJJTElUWV9ISURERU4pIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHN0eWxlcy52aXNpYmlsaXR5ID0gVklTSUJJTElUWV9ISURERU47XHJcbiAgICB9XHJcbiAgICBzdHlsZXMucG9zaXRpb24gPSBQT1NJVElPTl9BQlNPTFVURTtcclxuICAgIHN0eWxlcy50cmFuc2Zvcm0gPSBaRVJPU19UUkFOU0xBVEVfM0Q7XHJcbiAgICBzdHlsZXMuekluZGV4ID0gSElEREVOX1pJTkRFWDtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tIYW5kbGVyKCkge1xyXG4gICAgdGhpcy5fc2VydmljZS5pdGVtQ2xpY2sodGhpcy5fZGF0YSk7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoZGF0YSgpOyBhcyBpdGVtKSB7XHJcbiAgICA8ZGl2ICNsaXN0SXRlbSBbcGFydF09XCJwYXJ0XCIgY2xhc3M9XCJuZ3ZsLWl0ZW1fX2NvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsnc25hcHBlZCc6IGl0ZW0uY29uZmlnLnNuYXBwZWQsXHJcbiAgICAgICAgICAgICdzbmFwcGVkLW91dCc6IGl0ZW0uY29uZmlnLnNuYXBwZWRPdXR9XCIgKGNsaWNrKT1cIm9uQ2xpY2tIYW5kbGVyKClcIj5cclxuICAgICAgICBAaWYgKGl0ZW1SZW5kZXJlcigpOyBhcyByZW5kZXJlcikge1xyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlbmRlcmVyXCJcclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ZGF0YTogaXRlbS5kYXRhIHx8IHt9LCBtZWFzdXJlczogbWVhc3VyZXMoKSwgY29uZmlnOiBjb25maWcoKX1cIiAvPlxyXG4gICAgICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxufVxyXG4iXX0=
@@ -5,6 +5,7 @@ export const DEFAULT_BUFFER_SIZE = 2;
5
5
  export const DEFAULT_MAX_BUFFER_SIZE = 100;
6
6
  export const DEFAULT_LIST_SIZE = 400;
7
7
  export const DEFAULT_SNAP = false;
8
+ export const DEFAULT_SELECT_BY_CLICK = true;
8
9
  export const DEFAULT_ENABLED_BUFFER_OPTIMIZATION = false;
9
10
  export const DEFAULT_DYNAMIC_SIZE = false;
10
11
  export const TRACK_BY_PROPERTY_NAME = 'id';
@@ -48,4 +49,4 @@ export const PART_ITEM_ODD = ' odd';
48
49
  export const PART_ITEM_EVEN = ' even';
49
50
  export const PART_ITEM_SNAPPED = ' snapped';
50
51
  export const PART_ITEM_SELECTED = ' selected';
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb25zdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFFckMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQztBQUVsQyxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxLQUFLLENBQUM7QUFFekQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO0FBRXJELE1BQU0sQ0FBQyxNQUFNLHVDQUF1QyxHQUFHLENBQUMsQ0FBQztBQUV6RCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLENBQUM7QUFFMUMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7QUFFOUQsVUFBVTtBQUVWLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQztBQUVyQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDO0FBRW5DLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUM7QUFFN0IsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQztBQUVqQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxTQUFTLENBQUM7QUFFNUMsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztBQUV2QyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDO0FBRWhDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUM7QUFFMUMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxZQUFZLFNBQVMsQ0FBQztBQUUzRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDO0FBRWxDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUM7QUFFbEMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQztBQUVuQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUM7QUFFL0IsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQztBQUUvQixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBRXZCLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUM7QUFFL0IsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxVQUFVLENBQUM7QUFFOUMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsWUFBWSxDQUFDO0FBRWxELFNBQVM7QUFFVCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQztBQUVwQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDO0FBRXRDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXRob2RzRm9yU2VsZWN0aW5nLCBTbmFwcGluZ01ldGhvZHMgfSBmcm9tIFwiLi4vZW51bXNcIjtcclxuaW1wb3J0IHsgRGlyZWN0aW9ucyB9IGZyb20gXCIuLi9lbnVtcy9kaXJlY3Rpb25zXCI7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9JVEVNX1NJWkUgPSAyNDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0JVRkZFUl9TSVpFID0gMjtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9CVUZGRVJfU0laRSA9IDEwMDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0xJU1RfU0laRSA9IDQwMDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NOQVAgPSBmYWxzZTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0VOQUJMRURfQlVGRkVSX09QVElNSVpBVElPTiA9IGZhbHNlO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRFlOQU1JQ19TSVpFID0gZmFsc2U7XHJcblxyXG5leHBvcnQgY29uc3QgVFJBQ0tfQllfUFJPUEVSVFlfTkFNRSA9ICdpZCc7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9ESVJFQ1RJT04gPSBEaXJlY3Rpb25zLlZFUlRJQ0FMO1xyXG5cclxuZXhwb3J0IGNvbnN0IERJU1BMQVlfT0JKRUNUU19MRU5HVEhfTUVTVVJFTUVOVF9FUlJPUiA9IDE7XHJcblxyXG5leHBvcnQgY29uc3QgTUFYX1NDUk9MTF9UT19JVEVSQVRJT05TID0gNTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NOQVBQSU5HX01FVEhPRCA9IFNuYXBwaW5nTWV0aG9kcy5OT1JNQUw7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUxFQ1RfTUVUSE9EID0gTWV0aG9kc0ZvclNlbGVjdGluZy5OT05FO1xyXG5cclxuLy8gcHJlc2V0c1xyXG5cclxuZXhwb3J0IGNvbnN0IEJFSEFWSU9SX0FVVE8gPSAnYXV0byc7XHJcblxyXG5leHBvcnQgY29uc3QgQkVIQVZJT1JfSU5TVEFOVCA9ICdpbnN0YW50JztcclxuXHJcbmV4cG9ydCBjb25zdCBCRUhBVklPUl9TTU9PVEggPSAnc21vb3RoJztcclxuXHJcbmV4cG9ydCBjb25zdCBESVNQTEFZX0JMT0NLID0gJ2Jsb2NrJztcclxuXHJcbmV4cG9ydCBjb25zdCBESVNQTEFZX05PTkUgPSAnbm9uZSc7XHJcblxyXG5leHBvcnQgY29uc3QgT1BBQ0lUWV8wID0gJzAnO1xyXG5cclxuZXhwb3J0IGNvbnN0IE9QQUNJVFlfMTAwID0gJzEwMCc7XHJcblxyXG5leHBvcnQgY29uc3QgVklTSUJJTElUWV9WSVNJQkxFID0gJ3Zpc2libGUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFZJU0lCSUxJVFlfSElEREVOID0gJ2hpZGRlbic7XHJcblxyXG5leHBvcnQgY29uc3QgU0laRV8xMDBfUEVSU0VOVCA9ICcxMDAlJztcclxuXHJcbmV4cG9ydCBjb25zdCBTSVpFX0FVVE8gPSAnYXV0byc7XHJcblxyXG5leHBvcnQgY29uc3QgUE9TSVRJT05fQUJTT0xVVEUgPSAnYWJzb2x1dGUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBPU0lUSU9OX1NUSUNLWSA9ICdzdGlja3knO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRSQU5TTEFURV8zRCA9ICd0cmFuc2xhdGUzZCc7XHJcblxyXG5leHBvcnQgY29uc3QgWkVST1NfVFJBTlNMQVRFXzNEID0gYCR7VFJBTlNMQVRFXzNEfSgwLDAsMClgO1xyXG5cclxuZXhwb3J0IGNvbnN0IEhJRERFTl9aSU5ERVggPSAnLTEnO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfWklOREVYID0gJzAnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRPUF9QUk9QX05BTUUgPSAndG9wJztcclxuXHJcbmV4cG9ydCBjb25zdCBMRUZUX1BST1BfTkFNRSA9ICdsZWZ0JztcclxuXHJcbmV4cG9ydCBjb25zdCBYX1BST1BfTkFNRSA9ICd4JztcclxuXHJcbmV4cG9ydCBjb25zdCBZX1BST1BfTkFNRSA9ICd5JztcclxuXHJcbmV4cG9ydCBjb25zdCBXSURUSF9QUk9QX05BTUUgPSAnd2lkdGgnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEhFSUdIVF9QUk9QX05BTUUgPSAnaGVpZ2h0JztcclxuXHJcbmV4cG9ydCBjb25zdCBQWCA9ICdweCc7XHJcblxyXG5leHBvcnQgY29uc3QgU0NST0xMID0gJ3Njcm9sbCc7XHJcblxyXG5leHBvcnQgY29uc3QgU0NST0xMX0VORCA9ICdzY3JvbGxlbmQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IENMQVNTX0xJU1RfVkVSVElDQUwgPSAndmVydGljYWwnO1xyXG5cclxuZXhwb3J0IGNvbnN0IENMQVNTX0xJU1RfSE9SSVpPTlRBTCA9ICdob3Jpem9udGFsJztcclxuXHJcbi8vIHN0eWxlc1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBUlRfREVGQVVMVF9JVEVNID0gJ2l0ZW0nO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBUlRfSVRFTV9PREQgPSAnIG9kZCc7XHJcblxyXG5leHBvcnQgY29uc3QgUEFSVF9JVEVNX0VWRU4gPSAnIGV2ZW4nO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBUlRfSVRFTV9TTkFQUEVEID0gJyBzbmFwcGVkJztcclxuXHJcbmV4cG9ydCBjb25zdCBQQVJUX0lURU1fU0VMRUNURUQgPSAnIHNlbGVjdGVkJztcclxuXHJcbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb25zdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFFckMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQztBQUVsQyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUM7QUFFNUMsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsS0FBSyxDQUFDO0FBRXpELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQztBQUUxQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUM7QUFFM0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztBQUVyRCxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBRyxDQUFDLENBQUM7QUFFekQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDO0FBRTlELFVBQVU7QUFFVixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDO0FBRXBDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztBQUUxQyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUM7QUFFckMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQztBQUVuQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDO0FBRTdCLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUM7QUFFakMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQztBQUUxQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQztBQUVoQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUM7QUFFNUMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEdBQUcsWUFBWSxTQUFTLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQztBQUVsQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDO0FBRWxDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUM7QUFFbkMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQztBQUVyQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDO0FBRS9CLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUM7QUFFL0IsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQztBQUV2QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztBQUV2QixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDO0FBRS9CLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUM7QUFFdEMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFlBQVksQ0FBQztBQUVsRCxTQUFTO0FBRVQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUM7QUFFNUMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWV0aG9kc0ZvclNlbGVjdGluZywgU25hcHBpbmdNZXRob2RzIH0gZnJvbSBcIi4uL2VudW1zXCI7XHJcbmltcG9ydCB7IERpcmVjdGlvbnMgfSBmcm9tIFwiLi4vZW51bXMvZGlyZWN0aW9uc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSVRFTV9TSVpFID0gMjQ7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9CVUZGRVJfU0laRSA9IDI7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVhfQlVGRkVSX1NJWkUgPSAxMDA7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9MSVNUX1NJWkUgPSA0MDA7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TTkFQID0gZmFsc2U7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUxFQ1RfQllfQ0xJQ0sgPSB0cnVlO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRU5BQkxFRF9CVUZGRVJfT1BUSU1JWkFUSU9OID0gZmFsc2U7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9EWU5BTUlDX1NJWkUgPSBmYWxzZTtcclxuXHJcbmV4cG9ydCBjb25zdCBUUkFDS19CWV9QUk9QRVJUWV9OQU1FID0gJ2lkJztcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0RJUkVDVElPTiA9IERpcmVjdGlvbnMuVkVSVElDQUw7XHJcblxyXG5leHBvcnQgY29uc3QgRElTUExBWV9PQkpFQ1RTX0xFTkdUSF9NRVNVUkVNRU5UX0VSUk9SID0gMTtcclxuXHJcbmV4cG9ydCBjb25zdCBNQVhfU0NST0xMX1RPX0lURVJBVElPTlMgPSA1O1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU05BUFBJTkdfTUVUSE9EID0gU25hcHBpbmdNZXRob2RzLk5PUk1BTDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFTEVDVF9NRVRIT0QgPSBNZXRob2RzRm9yU2VsZWN0aW5nLk5PTkU7XHJcblxyXG4vLyBwcmVzZXRzXHJcblxyXG5leHBvcnQgY29uc3QgQkVIQVZJT1JfQVVUTyA9ICdhdXRvJztcclxuXHJcbmV4cG9ydCBjb25zdCBCRUhBVklPUl9JTlNUQU5UID0gJ2luc3RhbnQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJFSEFWSU9SX1NNT09USCA9ICdzbW9vdGgnO1xyXG5cclxuZXhwb3J0IGNvbnN0IERJU1BMQVlfQkxPQ0sgPSAnYmxvY2snO1xyXG5cclxuZXhwb3J0IGNvbnN0IERJU1BMQVlfTk9ORSA9ICdub25lJztcclxuXHJcbmV4cG9ydCBjb25zdCBPUEFDSVRZXzAgPSAnMCc7XHJcblxyXG5leHBvcnQgY29uc3QgT1BBQ0lUWV8xMDAgPSAnMTAwJztcclxuXHJcbmV4cG9ydCBjb25zdCBWSVNJQklMSVRZX1ZJU0lCTEUgPSAndmlzaWJsZSc7XHJcblxyXG5leHBvcnQgY29uc3QgVklTSUJJTElUWV9ISURERU4gPSAnaGlkZGVuJztcclxuXHJcbmV4cG9ydCBjb25zdCBTSVpFXzEwMF9QRVJTRU5UID0gJzEwMCUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNJWkVfQVVUTyA9ICdhdXRvJztcclxuXHJcbmV4cG9ydCBjb25zdCBQT1NJVElPTl9BQlNPTFVURSA9ICdhYnNvbHV0ZSc7XHJcblxyXG5leHBvcnQgY29uc3QgUE9TSVRJT05fU1RJQ0tZID0gJ3N0aWNreSc7XHJcblxyXG5leHBvcnQgY29uc3QgVFJBTlNMQVRFXzNEID0gJ3RyYW5zbGF0ZTNkJztcclxuXHJcbmV4cG9ydCBjb25zdCBaRVJPU19UUkFOU0xBVEVfM0QgPSBgJHtUUkFOU0xBVEVfM0R9KDAsMCwwKWA7XHJcblxyXG5leHBvcnQgY29uc3QgSElEREVOX1pJTkRFWCA9ICctMSc7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9aSU5ERVggPSAnMCc7XHJcblxyXG5leHBvcnQgY29uc3QgVE9QX1BST1BfTkFNRSA9ICd0b3AnO1xyXG5cclxuZXhwb3J0IGNvbnN0IExFRlRfUFJPUF9OQU1FID0gJ2xlZnQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFhfUFJPUF9OQU1FID0gJ3gnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFlfUFJPUF9OQU1FID0gJ3knO1xyXG5cclxuZXhwb3J0IGNvbnN0IFdJRFRIX1BST1BfTkFNRSA9ICd3aWR0aCc7XHJcblxyXG5leHBvcnQgY29uc3QgSEVJR0hUX1BST1BfTkFNRSA9ICdoZWlnaHQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBYID0gJ3B4JztcclxuXHJcbmV4cG9ydCBjb25zdCBTQ1JPTEwgPSAnc2Nyb2xsJztcclxuXHJcbmV4cG9ydCBjb25zdCBTQ1JPTExfRU5EID0gJ3Njcm9sbGVuZCc7XHJcblxyXG5leHBvcnQgY29uc3QgQ0xBU1NfTElTVF9WRVJUSUNBTCA9ICd2ZXJ0aWNhbCc7XHJcblxyXG5leHBvcnQgY29uc3QgQ0xBU1NfTElTVF9IT1JJWk9OVEFMID0gJ2hvcml6b250YWwnO1xyXG5cclxuLy8gc3R5bGVzXHJcblxyXG5leHBvcnQgY29uc3QgUEFSVF9ERUZBVUxUX0lURU0gPSAnaXRlbSc7XHJcblxyXG5leHBvcnQgY29uc3QgUEFSVF9JVEVNX09ERCA9ICcgb2RkJztcclxuXHJcbmV4cG9ydCBjb25zdCBQQVJUX0lURU1fRVZFTiA9ICcgZXZlbic7XHJcblxyXG5leHBvcnQgY29uc3QgUEFSVF9JVEVNX1NOQVBQRUQgPSAnIHNuYXBwZWQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBUlRfSVRFTV9TRUxFQ1RFRCA9ICcgc2VsZWN0ZWQnO1xyXG5cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjcm9sbERpcmVjdGlvbiB9IGZyb20gJy4vc2Nyb2xsLWRpcmVjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IElTY3JvbGxFdmVudCB9IGZyb20gJy4vc2Nyb2xsLWV2ZW50Lm1vZGVsJztcclxuaW1wb3J0IHsgSVZpcnR1YWxMaXN0SXRlbSB9IGZyb20gJy4vaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IElWaXJ0dWFsTGlzdFN0aWNreU1hcCB9IGZyb20gJy4vc3RpY2t5LW1hcC5tb2RlbCc7XHJcbmltcG9ydCB7IElWaXJ0dWFsTGlzdENvbGxlY3Rpb24gfSBmcm9tICcuL2NvbGxlY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBJUmVuZGVyVmlydHVhbExpc3RJdGVtIH0gZnJvbSAnLi9yZW5kZXItaXRlbS5tb2RlbCc7XHJcblxyXG5leHBvcnQgdHlwZSB7XHJcbiAgICBTY3JvbGxEaXJlY3Rpb24sXHJcbiAgICBJU2Nyb2xsRXZlbnQsXHJcbiAgICBJVmlydHVhbExpc3RJdGVtLFxyXG4gICAgSVZpcnR1YWxMaXN0U3RpY2t5TWFwLFxyXG4gICAgSVZpcnR1YWxMaXN0Q29sbGVjdGlvbixcclxuICAgIElSZW5kZXJWaXJ0dWFsTGlzdEl0ZW0sXHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjcm9sbERpcmVjdGlvbiB9IGZyb20gJy4vc2Nyb2xsLWRpcmVjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IElTY3JvbGxFdmVudCB9IGZyb20gJy4vc2Nyb2xsLWV2ZW50Lm1vZGVsJztcclxuaW1wb3J0IHsgSVZpcnR1YWxMaXN0SXRlbSB9IGZyb20gJy4vaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IElWaXJ0dWFsTGlzdEl0ZW1Db25maWdNYXAgfSBmcm9tICcuL2l0ZW0tY29uZmlnLW1hcC5tb2RlbCc7XHJcbmltcG9ydCB7IElWaXJ0dWFsTGlzdENvbGxlY3Rpb24gfSBmcm9tICcuL2NvbGxlY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBJUmVuZGVyVmlydHVhbExpc3RJdGVtIH0gZnJvbSAnLi9yZW5kZXItaXRlbS5tb2RlbCc7XHJcblxyXG5leHBvcnQgdHlwZSB7XHJcbiAgICBTY3JvbGxEaXJlY3Rpb24sXHJcbiAgICBJU2Nyb2xsRXZlbnQsXHJcbiAgICBJVmlydHVhbExpc3RJdGVtLFxyXG4gICAgSVZpcnR1YWxMaXN0SXRlbUNvbmZpZ01hcCxcclxuICAgIElWaXJ0dWFsTGlzdENvbGxlY3Rpb24sXHJcbiAgICBJUmVuZGVyVmlydHVhbExpc3RJdGVtLFxyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS1jb25maWctbWFwLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvbW9kZWxzL2l0ZW0tY29uZmlnLW1hcC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFNldHMgc3RpY2t5IHBvc2l0aW9uIGFuZCBzZWxlY3RhYmxlIGZvciB0aGUgbGlzdCBpdGVtIGVsZW1lbnQuIElmIHN0aWNreSBwb3NpdGlvbiBpcyBncmVhdGVyIHRoYW4gMCwgdGhlbiBzdGlja3kgcG9zaXRpb24gaXMgYXBwbGllZC4gXHJcbiAqIElmIHRoZSBzdGlja3kgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIGAwYCwgdGhlbiB0aGUgc3RpY2t5IHBvc2l0aW9uIG1vZGUgaXMgZW5hYmxlZCBmb3IgdGhlIGVsZW1lbnQuIGAxYCAtIHBvc2l0aW9uIHN0YXJ0LCBgMmAgLSBwb3NpdGlvbiBlbmQuIERlZmF1bHQgdmFsdWUgaXMgYDBgLlxyXG4gKiBzZWxlY3RhYmxlIGRldGVybWluZXMgd2hldGhlciBhbiBlbGVtZW50IGNhbiBiZSBzZWxlY3RlZCBvciBub3QuIERlZmF1bHQgdmFsdWUgaXMgYHRydWVgLlxyXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vRGpvbm55WC9uZy12aXJ0dWFsLWxpc3QvYmxvYi8xOC54L3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL21vZGVscy9pdGVtLWNvbmZpZy1tYXAubW9kZWwudHNcclxuICogQGF1dGhvciBFdmdlbmlpIEdyZWJlbm5pa292XHJcbiAqIEBlbWFpbCBkam9ubnl4QGdtYWlsLmNvbVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBJVmlydHVhbExpc3RJdGVtQ29uZmlnTWFwIHtcclxuICAgIFtpZDogc3RyaW5nIHwgbnVtYmVyXToge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFNldHMgc3RpY2t5IHBvc2l0aW9uIGZvciB0aGUgZWxlbWVudC4gSWYgc3RpY2t5IHBvc2l0aW9uIGlzIGdyZWF0ZXIgdGhhbiAwLCB0aGVuIHN0aWNreSBwb3NpdGlvbiBpcyBhcHBsaWVkLlxyXG4gICAgICAgICAqIGAxYCAtIHBvc2l0aW9uIHN0YXJ0LCBgMmAgLSBwb3NpdGlvbiBlbmQuXHJcbiAgICAgICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgMGAuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RpY2t5PzogMCB8IDEgfCAyO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIERldGVybWluZXMgd2hldGhlciBhbiBlbGVtZW50IGNhbiBiZSBzZWxlY3RlZCBvciBub3QuXHJcbiAgICAgICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgdHJ1ZWAuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc2VsZWN0YWJsZT86IGJvb2xlYW47XHJcbiAgICB9XHJcbn0iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLWl0ZW0tY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvbW9kZWxzL3JlbmRlci1pdGVtLWNvbmZpZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIE9iamVjdCB3aXRoIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBmb3IgSVJlbmRlclZpcnR1YWxMaXN0SXRlbVxyXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vRGpvbm55WC9uZy12aXJ0dWFsLWxpc3QvYmxvYi8xOC54L3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL21vZGVscy9yZW5kZXItaXRlbS1jb25maWcubW9kZWwudHNcclxuICogQGF1dGhvciBFdmdlbmlpIEdyZWJlbm5pa292XHJcbiAqIEBlbWFpbCBkam9ubnl4QGdtYWlsLmNvbVxyXG4gKiBcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJlbmRlclZpcnR1YWxMaXN0SXRlbUNvbmZpZyB7XHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB0aGF0IHRoZSBlbGVtZW50IGlzIG9kZC5cclxuICAgICAqL1xyXG4gICAgb2RkOiBib29sZWFuO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgZWxlbWVudCBpcyBldmVuLlxyXG4gICAgICovXHJcbiAgICBldmVuOiBib29sZWFuO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJZiBncmVhdGVyIHRoYW4gMCwgdGhlIGVsZW1lbnQgd2lsbCBoYXZlIGEgc3RpY2t5IHBvc2l0aW9uIHdpdGggdGhlIGdpdmVuIHpJbmRleC5cclxuICAgICAqL1xyXG4gICAgc3RpY2t5OiBudW1iZXI7XHJcbiAgICAvKipcclxuICAgICAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBlbGVtZW50IHdpbGwgc25hcC5cclxuICAgICAqL1xyXG4gICAgc25hcDogYm9vbGVhbjtcclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIGVsZW1lbnQgaXMgc25hcHBlZC5cclxuICAgICAqL1xyXG4gICAgc25hcHBlZDogYm9vbGVhbjtcclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIGVsZW1lbnQgaXMgYmVpbmcgc2hpZnRlZCBieSBhbm90aGVyIHNuYXAgZWxlbWVudC5cclxuICAgICAqL1xyXG4gICAgc25hcHBlZE91dDogYm9vbGVhbjtcclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIGVsZW1lbnQgaXMgYSB2ZXJ0aWNhbCBsaXN0IGl0ZW0uXHJcbiAgICAgKi9cclxuICAgIGlzVmVydGljYWw6IGJvb2xlYW47XHJcbiAgICAvKipcclxuICAgICAqIFNwZWNpZmllcyB0aGF0IHRoZSBlbGVtZW50IGFkYXB0cyB0byB0aGUgc2l6ZSBvZiBpdHMgY29udGVudC5cclxuICAgICAqL1xyXG4gICAgZHluYW1pYzogYm9vbGVhbjtcclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzbmFwcGluZyBtZXRob2QgaXMgYWR2YW5jZWRcclxuICAgICAqL1xyXG4gICAgaXNTbmFwcGluZ01ldGhvZEFkdmFuY2VkOiBib29sZWFuO1xyXG4gICAgLyoqXHJcbiAgICAgKiB6LWluZGV4XHJcbiAgICAgKi9cclxuICAgIHpJbmRleDogc3RyaW5nO1xyXG59Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLWl0ZW0tY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvbW9kZWxzL3JlbmRlci1pdGVtLWNvbmZpZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIE9iamVjdCB3aXRoIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBmb3IgSVJlbmRlclZpcnR1YWxMaXN0SXRlbVxyXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vRGpvbm55WC9uZy12aXJ0dWFsLWxpc3QvYmxvYi8xOC54L3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL21vZGVscy9yZW5kZXItaXRlbS1jb25maWcubW9kZWwudHNcclxuICogQGF1dGhvciBFdmdlbmlpIEdyZWJlbm5pa292XHJcbiAqIEBlbWFpbCBkam9ubnl4QGdtYWlsLmNvbVxyXG4gKiBcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJlbmRlclZpcnR1YWxMaXN0SXRlbUNvbmZpZyB7XHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB0aGF0IHRoZSBlbGVtZW50IGlzIG9kZC5cclxuICAgICAqL1xyXG4gICAgb2RkOiBib29sZWFuO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgZWxlbWVudCBpcyBldmVuLlxyXG4gICAgICovXHJcbiAgICBldmVuOiBib29sZWFuO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJZiBncmVhdGVyIHRoYW4gMCwgdGhlIGVsZW1lbnQgd2lsbCBoYXZlIGEgc3RpY2t5IHBvc2l0aW9uIHdpdGggdGhlIGdpdmVuIHpJbmRleC5cclxuICAgICAqL1xyXG4gICAgc3RpY2t5OiAwIHwgMSB8IDI7XHJcbiAgICAvKipcclxuICAgICAqIERldGVybWluZXMgd2hldGhlciBhbiBlbGVtZW50IGNhbiBiZSBzZWxlY3RlZCBvciBub3QuIERlZmF1bHQgdmFsdWUgaXMgYHRydWVgLlxyXG4gICAgICovXHJcbiAgICBzZWxlY3RhYmxlOiBib29sZWFuO1xyXG4gICAgLyoqXHJcbiAgICAgKiBTcGVjaWZpZXMgd2hldGhlciB0aGUgZWxlbWVudCB3aWxsIHNuYXAuXHJcbiAgICAgKi9cclxuICAgIHNuYXA6IGJvb2xlYW47XHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB0aGF0IHRoZSBlbGVtZW50IGlzIHNuYXBwZWQuXHJcbiAgICAgKi9cclxuICAgIHNuYXBwZWQ6IGJvb2xlYW47XHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB0aGF0IHRoZSBlbGVtZW50IGlzIGJlaW5nIHNoaWZ0ZWQgYnkgYW5vdGhlciBzbmFwIGVsZW1lbnQuXHJcbiAgICAgKi9cclxuICAgIHNuYXBwZWRPdXQ6IGJvb2xlYW47XHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB0aGF0IHRoZSBlbGVtZW50IGlzIGEgdmVydGljYWwgbGlzdCBpdGVtLlxyXG4gICAgICovXHJcbiAgICBpc1ZlcnRpY2FsOiBib29sZWFuO1xyXG4gICAgLyoqXHJcbiAgICAgKiBTcGVjaWZpZXMgdGhhdCB0aGUgZWxlbWVudCBhZGFwdHMgdG8gdGhlIHNpemUgb2YgaXRzIGNvbnRlbnQuXHJcbiAgICAgKi9cclxuICAgIGR5bmFtaWM6IGJvb2xlYW47XHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgc25hcHBpbmcgbWV0aG9kIGlzIGFkdmFuY2VkXHJcbiAgICAgKi9cclxuICAgIGlzU25hcHBpbmdNZXRob2RBZHZhbmNlZDogYm9vbGVhbjtcclxuICAgIC8qKlxyXG4gICAgICogei1pbmRleFxyXG4gICAgICovXHJcbiAgICB6SW5kZXg6IHN0cmluZztcclxufSJdfQ==