ngx-tethys 17.0.2 → 17.0.4

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 (99) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/autocomplete/autocomplete.component.d.ts +2 -5
  3. package/cascader/cascader.component.d.ts +9 -1
  4. package/cascader/cascader.service.d.ts +3 -0
  5. package/drag-drop/drag.directive.d.ts +1 -4
  6. package/drag-drop/drop-container.directive.d.ts +4 -5
  7. package/dropdown/dropdown-submenu.component.d.ts +3 -6
  8. package/esm2022/autocomplete/autocomplete.component.mjs +7 -14
  9. package/esm2022/button/button-group.component.mjs +2 -2
  10. package/esm2022/cascader/cascader.component.mjs +27 -5
  11. package/esm2022/cascader/cascader.service.mjs +33 -3
  12. package/esm2022/core/behaviors/disabled.mjs +2 -2
  13. package/esm2022/date-picker/abstract-picker.directive.mjs +3 -3
  14. package/esm2022/date-picker/base-picker.component.mjs +3 -2
  15. package/esm2022/drag-drop/drag.directive.mjs +3 -7
  16. package/esm2022/drag-drop/drop-container.directive.mjs +9 -7
  17. package/esm2022/dropdown/dropdown-submenu.component.mjs +7 -12
  18. package/esm2022/form/form.directive.mjs +3 -2
  19. package/esm2022/grid/thy-grid-item.component.mjs +7 -11
  20. package/esm2022/image/preview/image-preview.component.mjs +9 -13
  21. package/esm2022/input/input-count.component.mjs +9 -10
  22. package/esm2022/input/input-group.component.mjs +9 -9
  23. package/esm2022/nav/nav-item.directive.mjs +7 -13
  24. package/esm2022/nav/nav.component.mjs +8 -13
  25. package/esm2022/radio/button/radio-button.component.mjs +2 -2
  26. package/esm2022/radio/group/radio-group.component.mjs +6 -1
  27. package/esm2022/radio/radio.component.mjs +2 -2
  28. package/esm2022/resizable/resizable.directive.mjs +11 -14
  29. package/esm2022/resizable/resize-handle.component.mjs +8 -13
  30. package/esm2022/shared/directives/thy-drag-drop.directive.mjs +8 -8
  31. package/esm2022/space/space.component.mjs +7 -9
  32. package/esm2022/table/table-column.component.mjs +3 -2
  33. package/esm2022/table/table.component.mjs +11 -12
  34. package/esm2022/tabs/tabs.component.mjs +8 -10
  35. package/esm2022/time-picker/time-picker.utils.mjs +8 -8
  36. package/esm2022/util/helpers/helpers.mjs +10 -1
  37. package/esm2022/version.mjs +2 -2
  38. package/esm2022/watermark/watermark.directive.mjs +9 -14
  39. package/fesm2022/ngx-tethys-autocomplete.mjs +8 -14
  40. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  41. package/fesm2022/ngx-tethys-button.mjs +2 -1
  42. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  43. package/fesm2022/ngx-tethys-cascader.mjs +58 -6
  44. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  45. package/fesm2022/ngx-tethys-core.mjs +2 -2
  46. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  47. package/fesm2022/ngx-tethys-date-picker.mjs +2 -2
  48. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  49. package/fesm2022/ngx-tethys-drag-drop.mjs +9 -10
  50. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  51. package/fesm2022/ngx-tethys-dropdown.mjs +8 -11
  52. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  53. package/fesm2022/ngx-tethys-form.mjs +2 -1
  54. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  55. package/fesm2022/ngx-tethys-grid.mjs +6 -10
  56. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  57. package/fesm2022/ngx-tethys-image.mjs +10 -12
  58. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  59. package/fesm2022/ngx-tethys-input.mjs +13 -14
  60. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  61. package/fesm2022/ngx-tethys-nav.mjs +11 -21
  62. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  63. package/fesm2022/ngx-tethys-radio.mjs +6 -1
  64. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  65. package/fesm2022/ngx-tethys-resizable.mjs +15 -22
  66. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  67. package/fesm2022/ngx-tethys-shared.mjs +8 -7
  68. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  69. package/fesm2022/ngx-tethys-space.mjs +7 -8
  70. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  71. package/fesm2022/ngx-tethys-table.mjs +12 -12
  72. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  73. package/fesm2022/ngx-tethys-tabs.mjs +7 -9
  74. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  75. package/fesm2022/ngx-tethys-time-picker.mjs +8 -7
  76. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  77. package/fesm2022/ngx-tethys-util.mjs +9 -0
  78. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  79. package/fesm2022/ngx-tethys-watermark.mjs +8 -13
  80. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  81. package/fesm2022/ngx-tethys.mjs +1 -1
  82. package/fesm2022/ngx-tethys.mjs.map +1 -1
  83. package/grid/thy-grid-item.component.d.ts +3 -6
  84. package/image/preview/image-preview.component.d.ts +3 -6
  85. package/input/input-count.component.d.ts +2 -4
  86. package/input/input-group.component.d.ts +3 -4
  87. package/nav/nav-item.directive.d.ts +3 -6
  88. package/nav/nav.component.d.ts +3 -6
  89. package/package.json +1 -1
  90. package/resizable/resizable.directive.d.ts +2 -4
  91. package/resizable/resize-handle.component.d.ts +3 -6
  92. package/schematics/version.d.ts +1 -1
  93. package/schematics/version.js +1 -1
  94. package/shared/directives/thy-drag-drop.directive.d.ts +2 -4
  95. package/space/space.component.d.ts +2 -4
  96. package/table/table.component.d.ts +3 -3
  97. package/tabs/tabs.component.d.ts +2 -4
  98. package/util/helpers/helpers.d.ts +12 -0
  99. package/watermark/watermark.directive.d.ts +3 -6
@@ -1,21 +1,18 @@
1
- import { Directive, ElementRef, Renderer2, NgZone, Input, Output, EventEmitter, ChangeDetectorRef, booleanAttribute, numberAttribute } from '@angular/core';
2
- import { MixinBase, mixinUnsubscribe } from 'ngx-tethys/core';
1
+ import { Directive, ElementRef, Renderer2, NgZone, Input, Output, EventEmitter, ChangeDetectorRef, inject, DestroyRef, booleanAttribute, numberAttribute } from '@angular/core';
3
2
  import { ThyResizableService } from './resizable.service';
4
3
  import { Platform } from '@angular/cdk/platform';
5
- import { takeUntil } from 'rxjs/operators';
4
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
5
  import { getEventWithPoint, ensureInBounds, setCompatibleStyle } from './utils';
7
6
  import { fromEvent } from 'rxjs';
8
7
  import * as i0 from "@angular/core";
9
8
  import * as i1 from "@angular/cdk/platform";
10
9
  import * as i2 from "./resizable.service";
11
- const _MixinBase = mixinUnsubscribe(MixinBase);
12
10
  /**
13
11
  * 调整尺寸
14
12
  * @name thyResizable
15
13
  */
16
- export class ThyResizableDirective extends _MixinBase {
14
+ export class ThyResizableDirective {
17
15
  constructor(elementRef, renderer, platform, ngZone, thyResizableService, changeDetectorRef) {
18
- super();
19
16
  this.elementRef = elementRef;
20
17
  this.renderer = renderer;
21
18
  this.platform = platform;
@@ -76,7 +73,8 @@ export class ThyResizableDirective extends _MixinBase {
76
73
  this.sizeCache = null;
77
74
  this.ghostElement = null;
78
75
  this.currentHandleEvent = null;
79
- this.thyResizableService.handleMouseDownOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(event => {
76
+ this.destroyRef = inject(DestroyRef);
77
+ this.thyResizableService.handleMouseDownOutsideAngular$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(event => {
80
78
  if (this.thyDisabled) {
81
79
  return;
82
80
  }
@@ -92,7 +90,7 @@ export class ThyResizableDirective extends _MixinBase {
92
90
  }
93
91
  this.nativeElementRect = this.nativeElement.getBoundingClientRect();
94
92
  });
95
- this.thyResizableService.documentMouseUpOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(event => {
93
+ this.thyResizableService.documentMouseUpOutsideAngular$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(event => {
96
94
  if (this.resizing) {
97
95
  this.ngZone.run(() => {
98
96
  this.resizing = false;
@@ -102,7 +100,7 @@ export class ThyResizableDirective extends _MixinBase {
102
100
  this.endResize(event);
103
101
  }
104
102
  });
105
- this.thyResizableService.documentMouseMoveOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(event => {
103
+ this.thyResizableService.documentMouseMoveOutsideAngular$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(event => {
106
104
  if (this.resizing) {
107
105
  this.resize(event);
108
106
  }
@@ -115,12 +113,12 @@ export class ThyResizableDirective extends _MixinBase {
115
113
  this.nativeElement = this.elementRef.nativeElement;
116
114
  this.ngZone.runOutsideAngular(() => {
117
115
  fromEvent(this.nativeElement, 'mouseenter')
118
- .pipe(takeUntil(this.ngUnsubscribe$))
116
+ .pipe(takeUntilDestroyed(this.destroyRef))
119
117
  .subscribe(() => {
120
118
  this.thyResizableService.mouseEnteredOutsideAngular$.next(true);
121
119
  });
122
120
  fromEvent(this.nativeElement, 'mouseleave')
123
- .pipe(takeUntil(this.ngUnsubscribe$))
121
+ .pipe(takeUntilDestroyed(this.destroyRef))
124
122
  .subscribe(() => {
125
123
  this.thyResizableService.mouseEnteredOutsideAngular$.next(false);
126
124
  });
@@ -308,10 +306,9 @@ export class ThyResizableDirective extends _MixinBase {
308
306
  ngOnDestroy() {
309
307
  this.ghostElement = null;
310
308
  this.sizeCache = null;
311
- super.ngOnDestroy();
312
309
  }
313
310
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyResizableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.Platform }, { token: i0.NgZone }, { token: i2.ThyResizableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
314
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.3", type: ThyResizableDirective, isStandalone: true, selector: "[thyResizable]", inputs: { thyBounds: "thyBounds", thyMaxHeight: ["thyMaxHeight", "thyMaxHeight", numberAttribute], thyMaxWidth: ["thyMaxWidth", "thyMaxWidth", numberAttribute], thyMinHeight: ["thyMinHeight", "thyMinHeight", numberAttribute], thyMinWidth: ["thyMinWidth", "thyMinWidth", numberAttribute], thyGridColumnCount: ["thyGridColumnCount", "thyGridColumnCount", numberAttribute], thyMaxColumn: ["thyMaxColumn", "thyMaxColumn", numberAttribute], thyMinColumn: ["thyMinColumn", "thyMinColumn", numberAttribute], thyLockAspectRatio: ["thyLockAspectRatio", "thyLockAspectRatio", booleanAttribute], thyPreview: ["thyPreview", "thyPreview", booleanAttribute], thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute] }, outputs: { thyResize: "thyResize", thyResizeStart: "thyResizeStart", thyResizeEnd: "thyResizeEnd" }, host: { properties: { "class.thy-resizable-resizing": "resizing", "class.thy-resizable-disabled": "thyDisabled" }, classAttribute: "thy-resizable" }, providers: [ThyResizableService], usesInheritance: true, ngImport: i0 }); }
311
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.3", type: ThyResizableDirective, isStandalone: true, selector: "[thyResizable]", inputs: { thyBounds: "thyBounds", thyMaxHeight: ["thyMaxHeight", "thyMaxHeight", numberAttribute], thyMaxWidth: ["thyMaxWidth", "thyMaxWidth", numberAttribute], thyMinHeight: ["thyMinHeight", "thyMinHeight", numberAttribute], thyMinWidth: ["thyMinWidth", "thyMinWidth", numberAttribute], thyGridColumnCount: ["thyGridColumnCount", "thyGridColumnCount", numberAttribute], thyMaxColumn: ["thyMaxColumn", "thyMaxColumn", numberAttribute], thyMinColumn: ["thyMinColumn", "thyMinColumn", numberAttribute], thyLockAspectRatio: ["thyLockAspectRatio", "thyLockAspectRatio", booleanAttribute], thyPreview: ["thyPreview", "thyPreview", booleanAttribute], thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute] }, outputs: { thyResize: "thyResize", thyResizeStart: "thyResizeStart", thyResizeEnd: "thyResizeEnd" }, host: { properties: { "class.thy-resizable-resizing": "resizing", "class.thy-resizable-disabled": "thyDisabled" }, classAttribute: "thy-resizable" }, providers: [ThyResizableService], ngImport: i0 }); }
315
312
  }
316
313
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyResizableDirective, decorators: [{
317
314
  type: Directive,
@@ -364,4 +361,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
364
361
  }], thyResizeEnd: [{
365
362
  type: Output
366
363
  }] } });
367
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yZXNpemFibGUvcmVzaXphYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUdULFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQStCLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBRWpDLE1BQU0sVUFBVSxHQUFtRCxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUUvRjs7O0dBR0c7QUFXSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsVUFBVTtJQWdGakQsWUFDWSxVQUFtQyxFQUNuQyxRQUFtQixFQUNuQixRQUFrQixFQUNsQixNQUFjLEVBQ2QsbUJBQXdDLEVBQ3hDLGlCQUFvQztRQUU1QyxLQUFLLEVBQUUsQ0FBQztRQVBBLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsd0JBQW1CLEdBQW5CLG1CQUFt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IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgRWxlbWVudFJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgTmdab25lLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciwgVGh5VW5zdWJzY3JpYmUsIE1peGluQmFzZSwgbWl4aW5VbnN1YnNjcmliZSB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBUaHlSZXNpemFibGVTZXJ2aWNlIH0gZnJvbSAnLi9yZXNpemFibGUuc2VydmljZSc7XG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUaHlSZXNpemVIYW5kbGVNb3VzZURvd25FdmVudCB9IGZyb20gJy4vcmVzaXplLWhhbmRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGh5UmVzaXplRXZlbnQgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBnZXRFdmVudFdpdGhQb2ludCwgZW5zdXJlSW5Cb3VuZHMsIHNldENvbXBhdGlibGVTdHlsZSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IF9NaXhpbkJhc2U6IENvbnN0cnVjdG9yPFRoeVVuc3Vic2NyaWJlPiAmIHR5cGVvZiBNaXhpbkJhc2UgPSBtaXhpblVuc3Vic2NyaWJlKE1peGluQmFzZSk7XG5cbi8qKlxuICog6LCD5pW05bC65a+4XG4gKiBAbmFtZSB0aHlSZXNpemFibGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGh5UmVzaXphYmxlXScsXG4gICAgcHJvdmlkZXJzOiBbVGh5UmVzaXphYmxlU2VydmljZV0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1yZXNpemFibGUnLFxuICAgICAgICAnW2NsYXNzLnRoeS1yZXNpemFibGUtcmVzaXppbmddJzogJ3Jlc2l6aW5nJyxcbiAgICAgICAgJ1tjbGFzcy50aHktcmVzaXphYmxlLWRpc2FibGVkXSc6ICd0aHlEaXNhYmxlZCdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5UmVzaXphYmxlRGlyZWN0aXZlIGV4dGVuZHMgX01peGluQmFzZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICog6LCD5pW05bC65a+455qE6L6555WMXG4gICAgICogQGRlZmF1bHQgcGFyZW50XG4gICAgICogQHR5cGUgJ3dpbmRvdycgfCAncGFyZW50JyB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5Qm91bmRzOiAnd2luZG93JyB8ICdwYXJlbnQnIHwgRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSAncGFyZW50JztcblxuICAgIC8qKlxuICAgICAqIOacgOWkp+mrmOW6pijotoXov4fovrnnlYzpg6jliIblv73nlaUpXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5TWF4SGVpZ2h0PzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog5pyA5aSn5a695bqmKOi2hei/h+i+ueeVjOmDqOWIhuW/veeVpSlcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlNYXhXaWR0aD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOacgOWwj+mrmOW6plxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeU1pbkhlaWdodDogbnVtYmVyID0gNDA7XG5cbiAgICAvKipcbiAgICAgKiDmnIDlsI/lrr3luqZcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlNaW5XaWR0aDogbnVtYmVyID0gNDA7XG5cbiAgICAvKipcbiAgICAgKiDmoIXmoLzliJfmlbAoLTEg5Li65LiN5qCF5qC8KVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeUdyaWRDb2x1bW5Db3VudDogbnVtYmVyID0gLTE7XG5cbiAgICAvKipcbiAgICAgKiDmoIXmoLzmnIDlpKfliJfmlbBcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlNYXhDb2x1bW46IG51bWJlciA9IC0xO1xuXG4gICAgLyoqXG4gICAgICog5qCF5qC85pyA5bCP5YiX5pWwXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5TWluQ29sdW1uOiBudW1iZXIgPSAtMTtcblxuICAgIC8qKlxuICAgICAqIOmUgeWumuWuvemrmOavlFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0aHlMb2NrQXNwZWN0UmF0aW86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpumihOiniOaooeW8j1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0aHlQcmV2aWV3OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbnpoHnlKjosIPmlbTlpKflsI9cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdGh5RGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOiwg+aVtOWwuuWvuOaXtueahOS6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlSZXNpemUgPSBuZXcgRXZlbnRFbWl0dGVyPFRoeVJlc2l6ZUV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICog5byA5aeL6LCD5pW05bC65a+45pe255qE5LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHRoeVJlc2l6ZVN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlSZXNpemVFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIOe7k+adn+iwg+aVtOWwuuWvuOaXtueahOS6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlSZXNpemVFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPFRoeVJlc2l6ZUV2ZW50PigpO1xuXG4gICAgcmVzaXppbmcgPSBmYWxzZTtcbiAgICBwcml2YXRlIG5hdGl2ZUVsZW1lbnQhOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIG5hdGl2ZUVsZW1lbnRSZWN0ITogQ2xpZW50UmVjdCB8IERPTVJlY3Q7XG4gICAgcHJpdmF0ZSBzaXplQ2FjaGU6IFRoeVJlc2l6ZUV2ZW50IHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBnaG9zdEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBjdXJyZW50SGFuZGxlRXZlbnQ6IFRoeVJlc2l6ZUhhbmRsZU1vdXNlRG93bkV2ZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIHBsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSB0aHlSZXNpemFibGVTZXJ2aWNlOiBUaHlSZXNpemFibGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnRoeVJlc2l6YWJsZVNlcnZpY2UuaGFuZGxlTW91c2VEb3duT3V0c2lkZUFuZ3VsYXIkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMudGh5RGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnJlc2l6aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IHsgbW91c2VFdmVudCB9ID0gZXZlbnQ7XG4gICAgICAgICAgICB0aGlzLnRoeVJlc2l6YWJsZVNlcnZpY2Uuc3RhcnRSZXNpemluZyhtb3VzZUV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEhhbmRsZUV2ZW50ID0gZXZlbnQ7XG4gICAgICAgICAgICB0aGlzLnNldEN1cnNvcigpO1xuICAgICAgICAgICAgLy8gUmUtZW50ZXIgdGhlIEFuZ3VsYXIgem9uZSBhbmQgcnVuIHRoZSBjaGFuZ2UgZGV0ZWN0aW9uIG9ubHkgaWYgdGhlcmUncmUgYW55IGB0aHlSZXNpemVTdGFydGAgbGlzdGVuZXJzLFxuICAgICAgICAgICAgLy8gZS5nLjogYDxkaXYgdGh5UmVzaXphYmxlICh0aHlSZXNpemVTdGFydCk9XCIuLi5cIj48L2Rpdj5gLlxuICAgICAgICAgICAgaWYgKHRoaXMudGh5UmVzaXplU3RhcnQub2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLnRoeVJlc2l6ZVN0YXJ0LmVtaXQoeyBtb3VzZUV2ZW50IH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudFJlY3QgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudGh5UmVzaXphYmxlU2VydmljZS5kb2N1bWVudE1vdXNlVXBPdXRzaWRlQW5ndWxhciQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlJCkpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5yZXNpemluZykge1xuICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXppbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnRoeVJlc2l6YWJsZVNlcnZpY2UuZG9jdW1lbnRNb3VzZVVwT3V0c2lkZUFuZ3VsYXIkLm5leHQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW5kUmVzaXplKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy50aHlSZXNpemFibGVTZXJ2aWNlLmRvY3VtZW50TW91c2VNb3ZlT3V0c2lkZUFuZ3VsYXIkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucmVzaXppbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZShldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnBsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5uYXRpdmVFbGVtZW50LCAnbW91c2VlbnRlcicpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRoeVJlc2l6YWJsZVNlcnZpY2UubW91c2VFbnRlcmVkT3V0c2lkZUFuZ3VsYXIkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWxlYXZlJylcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGh5UmVzaXphYmxlU2VydmljZS5tb3VzZUVudGVyZWRPdXRzaWRlQW5ndWxhciQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldEN1cnNvcigpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmN1cnJlbnRIYW5kbGVFdmVudCEuZGlyZWN0aW9uKSB7XG4gICAgICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRvY3VtZW50LmJvZHksICdjdXJzb3InLCAnZXctcmVzaXplJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRvY3VtZW50LmJvZHksICdjdXJzb3InLCAnbnMtcmVzaXplJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0b3BMZWZ0JzpcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbVJpZ2h0JzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRvY3VtZW50LmJvZHksICdjdXJzb3InLCAnbndzZS1yZXNpemUnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3RvcFJpZ2h0JzpcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbUxlZnQnOlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuYm9keSwgJ2N1cnNvcicsICduZXN3LXJlc2l6ZScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHNldENvbXBhdGlibGVTdHlsZShkb2N1bWVudC5ib2R5LCAndXNlci1zZWxlY3QnLCAnbm9uZScpO1xuICAgIH1cblxuICAgIGVuZFJlc2l6ZShldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkb2N1bWVudC5ib2R5LCAnY3Vyc29yJywgJycpO1xuICAgICAgICBzZXRDb21wYXRpYmxlU3R5bGUoZG9jdW1lbnQuYm9keSwgJ3VzZXItc2VsZWN0JywgJycpO1xuICAgICAgICB0aGlzLnJlbW92ZUdob3N0RWxlbWVudCgpO1xuICAgICAgICBjb25zdCBzaXplID0gdGhpcy5zaXplQ2FjaGVcbiAgICAgICAgICAgID8geyAuLi50aGlzLnNpemVDYWNoZSB9XG4gICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiB0aGlzLm5hdGl2ZUVsZW1lbnRSZWN0LndpZHRoLFxuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLm5hdGl2ZUVsZW1lbnRSZWN0LmhlaWdodFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAvLyBSZS1lbnRlciB0aGUgQW5ndWxhciB6b25lIGFuZCBydW4gdGhlIGNoYW5nZSBkZXRlY3Rpb24gb25seSBpZiB0aGVyZSdyZSBhbnkgYHRoeVJlc2l6ZUVuZGAgbGlzdGVuZXJzLFxuICAgICAgICAvLyBlLmcuOiBgPGRpdiB0aHlSZXNpemFibGUgKHRoeVJlc2l6ZUVuZCk9XCIuLi5cIj48L2Rpdj5gLlxuICAgICAgICBpZiAodGhpcy50aHlSZXNpemVFbmQub2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRoeVJlc2l6ZUVuZC5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgLi4uc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgbW91c2VFdmVudDogZXZlbnRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2l6ZUNhY2hlID0gbnVsbDtcbiAgICAgICAgdGhpcy5jdXJyZW50SGFuZGxlRXZlbnQgPSBudWxsO1xuICAgIH1cblxuICAgIHJlc2l6ZShldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmF0aXZlRWxlbWVudFJlY3QgPSB0aGlzLm5hdGl2ZUVsZW1lbnRSZWN0O1xuICAgICAgICBjb25zdCByZXNpemVFdmVudCA9IGdldEV2ZW50V2l0aFBvaW50KGV2ZW50KTtcbiAgICAgICAgY29uc3QgaGFuZGxlRXZlbnQgPSBnZXRFdmVudFdpdGhQb2ludCh0aGlzLmN1cnJlbnRIYW5kbGVFdmVudCEubW91c2VFdmVudCk7XG4gICAgICAgIGxldCB3aWR0aCA9IG5hdGl2ZUVsZW1lbnRSZWN0LndpZHRoO1xuICAgICAgICBsZXQgaGVpZ2h0ID0gbmF0aXZlRWxlbWVudFJlY3QuaGVpZ2h0O1xuICAgICAgICBjb25zdCByYXRpbyA9IHRoaXMudGh5TG9ja0FzcGVjdFJhdGlvID8gd2lkdGggLyBoZWlnaHQgOiAtMTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmN1cnJlbnRIYW5kbGVFdmVudCEuZGlyZWN0aW9uKSB7XG4gICAgICAgICAgICBjYXNlICdib3R0b21SaWdodCc6XG4gICAgICAgICAgICAgICAgd2lkdGggPSByZXNpemVFdmVudC5jbGllbnRYIC0gbmF0aXZlRWxlbWVudFJlY3QubGVmdDtcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSByZXNpemVFdmVudC5jbGllbnRZIC0gbmF0aXZlRWxlbWVudFJlY3QudG9wO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYm90dG9tTGVmdCc6XG4gICAgICAgICAgICAgICAgd2lkdGggPSBuYXRpdmVFbGVtZW50UmVjdC53aWR0aCArIChoYW5kbGVFdmVudC5jbGllbnRYIC0gcmVzaXplRXZlbnQuY2xpZW50WCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gcmVzaXplRXZlbnQuY2xpZW50WSAtIG5hdGl2ZUVsZW1lbnRSZWN0LnRvcDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3RvcFJpZ2h0JzpcbiAgICAgICAgICAgICAgICB3aWR0aCA9IHJlc2l6ZUV2ZW50LmNsaWVudFggLSBuYXRpdmVFbGVtZW50UmVjdC5sZWZ0O1xuICAgICAgICAgICAgICAgIGhlaWdodCA9IG5hdGl2ZUVsZW1lbnRSZWN0LmhlaWdodCArIChoYW5kbGVFdmVudC5jbGllbnRZIC0gcmVzaXplRXZlbnQuY2xpZW50WSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0b3BMZWZ0JzpcbiAgICAgICAgICAgICAgICB3aWR0aCA9IG5hdGl2ZUVsZW1lbnRSZWN0LndpZHRoICsgKGhhbmRsZUV2ZW50LmNsaWVudFggLSByZXNpemVFdmVudC5jbGllbnRYKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSBuYXRpdmVFbGVtZW50UmVjdC5oZWlnaHQgKyAoaGFuZGxlRXZlbnQuY2xpZW50WSAtIHJlc2l6ZUV2ZW50LmNsaWVudFkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSBuYXRpdmVFbGVtZW50UmVjdC5oZWlnaHQgKyAoaGFuZGxlRXZlbnQuY2xpZW50WSAtIHJlc2l6ZUV2ZW50LmNsaWVudFkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAgICAgIHdpZHRoID0gcmVzaXplRXZlbnQuY2xpZW50WCAtIG5hdGl2ZUVsZW1lbnRSZWN0LmxlZnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgICAgICAgIGhlaWdodCA9IHJlc2l6ZUV2ZW50LmNsaWVudFkgLSBuYXRpdmVFbGVtZW50UmVjdC50b3A7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICAgICAgICB3aWR0aCA9IG5hdGl2ZUVsZW1lbnRSZWN0LndpZHRoICsgKGhhbmRsZUV2ZW50LmNsaWVudFggLSByZXNpemVFdmVudC5jbGllbnRYKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzaXplID0gdGhpcy5jYWxjU2l6ZSh3aWR0aCwgaGVpZ2h0LCByYXRpbyk7XG4gICAgICAgIHRoaXMuc2l6ZUNhY2hlID0geyAuLi5zaXplIH07XG4gICAgICAgIC8vIFJlLWVudGVyIHRoZSBBbmd1bGFyIHpvbmUgYW5kIHJ1biB0aGUgY2hhbmdlIGRldGVjdGlvbiBvbmx5IGlmIHRoZXJlJ3JlIGFueSBgdGh5UmVzaXplYCBsaXN0ZW5lcnMsXG4gICAgICAgIC8vIGUuZy46IGA8ZGl2IHRoeVJlc2l6YWJsZSAodGh5UmVzaXplKT1cIi4uLlwiPjwvZGl2PmAuXG4gICAgICAgIGlmICh0aGlzLnRoeVJlc2l6ZS5vYnNlcnZlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudGh5UmVzaXplLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICAuLi5zaXplLFxuICAgICAgICAgICAgICAgICAgICBtb3VzZUV2ZW50OiBldmVudFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50aHlQcmV2aWV3KSB7XG4gICAgICAgICAgICB0aGlzLnByZXZpZXdSZXNpemUoc2l6ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjYWxjU2l6ZSh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgcmF0aW86IG51bWJlcik6IFRoeVJlc2l6ZUV2ZW50IHtcbiAgICAgICAgbGV0IG5ld1dpZHRoOiBudW1iZXI7XG4gICAgICAgIGxldCBuZXdIZWlnaHQ6IG51bWJlcjtcbiAgICAgICAgbGV0IG1heFdpZHRoOiBudW1iZXI7XG4gICAgICAgIGxldCBtYXhIZWlnaHQ6IG51bWJlcjtcbiAgICAgICAgbGV0IGNvbCA9IDA7XG4gICAgICAgIGxldCBzcGFuV2lkdGggPSAwO1xuICAgICAgICBsZXQgbWluV2lkdGggPSB0aGlzLnRoeU1pbldpZHRoO1xuICAgICAgICBsZXQgYm91bmRXaWR0aCA9IEluZmluaXR5O1xuICAgICAgICBsZXQgYm91bmRIZWlnaHQgPSBJbmZpbml0eTtcbiAgICAgICAgaWYgKHRoaXMudGh5Qm91bmRzID09PSAncGFyZW50Jykge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5yZW5kZXJlci5wYXJlbnROb2RlKHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICBpZiAocGFyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRSZWN0ID0gcGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIGJvdW5kV2lkdGggPSBwYXJlbnRSZWN0LndpZHRoO1xuICAgICAgICAgICAgICAgIGJvdW5kSGVpZ2h0ID0gcGFyZW50UmVjdC5oZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50aHlCb3VuZHMgPT09ICd3aW5kb3cnKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBib3VuZFdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgICAgICAgICAgICAgYm91bmRIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50aHlCb3VuZHMgJiYgdGhpcy50aHlCb3VuZHMubmF0aXZlRWxlbWVudCAmJiB0aGlzLnRoeUJvdW5kcy5uYXRpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGJvdW5kc1JlY3QgPSB0aGlzLnRoeUJvdW5kcy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgYm91bmRXaWR0aCA9IGJvdW5kc1JlY3Qud2lkdGg7XG4gICAgICAgICAgICBib3VuZEhlaWdodCA9IGJvdW5kc1JlY3QuaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgbWF4V2lkdGggPSBlbnN1cmVJbkJvdW5kcyh0aGlzLnRoeU1heFdpZHRoISwgYm91bmRXaWR0aCk7XG4gICAgICAgIG1heEhlaWdodCA9IGVuc3VyZUluQm91bmRzKHRoaXMudGh5TWF4SGVpZ2h0ISwgYm91bmRIZWlnaHQpO1xuXG4gICAgICAgIGlmICh0aGlzLnRoeUdyaWRDb2x1bW5Db3VudCAhPT0gLTEpIHtcbiAgICAgICAgICAgIHNwYW5XaWR0aCA9IG1heFdpZHRoIC8gdGhpcy50aHlHcmlkQ29sdW1uQ291bnQ7XG4gICAgICAgICAgICBtaW5XaWR0aCA9IHRoaXMudGh5TWluQ29sdW1uICE9PSAtMSA/IHNwYW5XaWR0aCAqIHRoaXMudGh5TWluQ29sdW1uIDogbWluV2lkdGg7XG4gICAgICAgICAgICBtYXhXaWR0aCA9IHRoaXMudGh5TWF4Q29sdW1uICE9PSAtMSA/IHNwYW5XaWR0aCAqIHRoaXMudGh5TWF4Q29sdW1uIDogbWF4V2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmF0aW8gIT09IC0xKSB7XG4gICAgICAgICAgICBpZiAoLyhsZWZ0fHJpZ2h0KS9pLnRlc3QodGhpcy5jdXJyZW50SGFuZGxlRXZlbnQhLmRpcmVjdGlvbikpIHtcbiAgICAgICAgICAgICAgICBuZXdXaWR0aCA9IE1hdGgubWluKE1hdGgubWF4KHdpZHRoLCBtaW5XaWR0aCksIG1heFdpZHRoKTtcbiAgICAgICAgICAgICAgICBuZXdIZWlnaHQgPSBNYXRoLm1pbihNYXRoLm1heChuZXdXaWR0aCAvIHJhdGlvLCB0aGlzLnRoeU1pbkhlaWdodCksIG1heEhlaWdodCk7XG4gICAgICAgICAgICAgICAgaWYgKG5ld0hlaWdodCA+PSBtYXhIZWlnaHQgfHwgbmV3SGVpZ2h0IDw9IHRoaXMudGh5TWluSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld1dpZHRoID0gTWF0aC5taW4oTWF0aC5tYXgobmV3SGVpZ2h0ICogcmF0aW8sIG1pbldpZHRoKSwgbWF4V2lkdGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3SGVpZ2h0ID0gTWF0aC5taW4oTWF0aC5tYXgoaGVpZ2h0LCB0aGlzLnRoeU1pbkhlaWdodCksIG1heEhlaWdodCk7XG4gICAgICAgICAgICAgICAgbmV3V2lkdGggPSBNYXRoLm1pbihNYXRoLm1heChuZXdIZWlnaHQgKiByYXRpbywgbWluV2lkdGgpLCBtYXhXaWR0aCk7XG4gICAgICAgICAgICAgICAgaWYgKG5ld1dpZHRoID49IG1heFdpZHRoIHx8IG5ld1dpZHRoIDw9IG1pbldpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0hlaWdodCA9IE1hdGgubWluKE1hdGgubWF4KG5ld1dpZHRoIC8gcmF0aW8sIHRoaXMudGh5TWluSGVpZ2h0KSwgbWF4SGVpZ2h0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdXaWR0aCA9IE1hdGgubWluKE1hdGgubWF4KHdpZHRoLCBtaW5XaWR0aCksIG1heFdpZHRoKTtcbiAgICAgICAgICAgIG5ld0hlaWdodCA9IE1hdGgubWluKE1hdGgubWF4KGhlaWdodCwgdGhpcy50aHlNaW5IZWlnaHQpLCBtYXhIZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudGh5R3JpZENvbHVtbkNvdW50ICE9PSAtMSkge1xuICAgICAgICAgICAgY29sID0gTWF0aC5yb3VuZChuZXdXaWR0aCAvIHNwYW5XaWR0aCk7XG4gICAgICAgICAgICBuZXdXaWR0aCA9IGNvbCAqIHNwYW5XaWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb2wsXG4gICAgICAgICAgICB3aWR0aDogbmV3V2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IG5ld0hlaWdodFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByZXZpZXdSZXNpemUoeyB3aWR0aCwgaGVpZ2h0IH06IFRoeVJlc2l6ZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3JlYXRlR2hvc3RFbGVtZW50KCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5naG9zdEVsZW1lbnQsICd3aWR0aCcsIGAke3dpZHRofXB4YCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5naG9zdEVsZW1lbnQsICdoZWlnaHQnLCBgJHtoZWlnaHR9cHhgKTtcbiAgICB9XG5cbiAgICBjcmVhdGVHaG9zdEVsZW1lbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5naG9zdEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZ2hvc3RFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZ2hvc3RFbGVtZW50LCAnY2xhc3MnLCAndGh5LXJlc2l6YWJsZS1wcmV2aWV3Jyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZ2hvc3RFbGVtZW50KTtcbiAgICB9XG5cbiAgICByZW1vdmVHaG9zdEVsZW1lbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmdob3N0RWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZ2hvc3RFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdob3N0RWxlbWVudCA9IG51bGw7XG4gICAgICAgIHRoaXMuc2l6ZUNhY2hlID0gbnVsbDtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iXX0=
364
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yZXNpemFibGUvcmVzaXphYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUdULFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLGlCQUFpQixFQUNqQixNQUFNLEVBQ04sVUFBVSxFQUNWLGdCQUFnQixFQUNoQixlQUFlLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUdoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFFakM7OztHQUdHO0FBV0gsTUFBTSxPQUFPLHFCQUFxQjtJQWlGOUIsWUFDWSxVQUFtQyxFQUNuQyxRQUFtQixFQUNuQixRQUFrQixFQUNsQixNQUFjLEVBQ2QsbUJBQXdDLEVBQ3hDLGlCQUFvQztRQUxwQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXRGaEQ7Ozs7V0FJRztRQUNNLGNBQVMsR0FBa0QsUUFBUSxDQUFDO1FBWTdFOztXQUVHO1FBQ29DLGlCQUFZLEdBQVcsRUFB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QUFDLG1CQUFtQixDQUFDO29CQUNoQyxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLGVBQWU7d0JBQ3RCLGdDQUFnQyxFQUFFLFVBQVU7d0JBQzVDLGdDQUFnQyxFQUFFLGFBQWE7cUJBQ2xEO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNuQjtxTkFPWSxTQUFTO3NCQUFqQixLQUFLO2dCQUtpQyxZQUFZO3NCQUFsRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFLRSxXQUFXO3NCQUFqRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFLRSxZQUFZO3NCQUFsRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFLRSxXQUFXO3NCQUFqRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFLRSxrQkFBa0I7c0JBQXhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUtFLFlBQVk7c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUtFLFlBQVk7c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUtHLGtCQUFrQjtzQkFBekQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFLRSxVQUFVO3NCQUFqRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUtFLFdBQVc7c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBS25CLFNBQVM7c0JBQTNCLE1BQU07Z0JBS1ksY0FBYztzQkFBaEMsTUFBTTtnQkFLWSxZQUFZO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgRWxlbWVudFJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgTmdab25lLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgaW5qZWN0LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlSZXNpemFibGVTZXJ2aWNlIH0gZnJvbSAnLi9yZXNpemFibGUuc2VydmljZSc7XG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBUaHlSZXNpemVIYW5kbGVNb3VzZURvd25FdmVudCB9IGZyb20gJy4vcmVzaXplLWhhbmRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGh5UmVzaXplRXZlbnQgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBnZXRFdmVudFdpdGhQb2ludCwgZW5zdXJlSW5Cb3VuZHMsIHNldENvbXBhdGlibGVTdHlsZSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICog6LCD5pW05bC65a+4XG4gKiBAbmFtZSB0aHlSZXNpemFibGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGh5UmVzaXphYmxlXScsXG4gICAgcHJvdmlkZXJzOiBbVGh5UmVzaXphYmxlU2VydmljZV0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1yZXNpemFibGUnLFxuICAgICAgICAnW2NsYXNzLnRoeS1yZXNpemFibGUtcmVzaXppbmddJzogJ3Jlc2l6aW5nJyxcbiAgICAgICAgJ1tjbGFzcy50aHktcmVzaXphYmxlLWRpc2FibGVkXSc6ICd0aHlEaXNhYmxlZCdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5UmVzaXphYmxlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiDosIPmlbTlsLrlr7jnmoTovrnnlYxcbiAgICAgKiBAZGVmYXVsdCBwYXJlbnRcbiAgICAgKiBAdHlwZSAnd2luZG93JyB8ICdwYXJlbnQnIHwgRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlCb3VuZHM6ICd3aW5kb3cnIHwgJ3BhcmVudCcgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiA9ICdwYXJlbnQnO1xuXG4gICAgLyoqXG4gICAgICog5pyA5aSn6auY5bqmKOi2hei/h+i+ueeVjOmDqOWIhuW/veeVpSlcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlNYXhIZWlnaHQ/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDmnIDlpKflrr3luqYo6LaF6L+H6L6555WM6YOo5YiG5b+955WlKVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeU1heFdpZHRoPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog5pyA5bCP6auY5bqmXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5TWluSGVpZ2h0OiBudW1iZXIgPSA0MDtcblxuICAgIC8qKlxuICAgICAqIOacgOWwj+WuveW6plxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeU1pbldpZHRoOiBudW1iZXIgPSA0MDtcblxuICAgIC8qKlxuICAgICAqIOagheagvOWIl+aVsCgtMSDkuLrkuI3moIXmoLwpXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5R3JpZENvbHVtbkNvdW50OiBudW1iZXIgPSAtMTtcblxuICAgIC8qKlxuICAgICAqIOagheagvOacgOWkp+WIl+aVsFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeU1heENvbHVtbjogbnVtYmVyID0gLTE7XG5cbiAgICAvKipcbiAgICAgKiDmoIXmoLzmnIDlsI/liJfmlbBcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlNaW5Db2x1bW46IG51bWJlciA9IC0xO1xuXG4gICAgLyoqXG4gICAgICog6ZSB5a6a5a696auY5q+UXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeUxvY2tBc3BlY3RSYXRpbzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm6aKE6KeI5qih5byPXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeVByZXZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuemgeeUqOiwg+aVtOWkp+Wwj1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0aHlEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog6LCD5pW05bC65a+45pe255qE5LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHRoeVJlc2l6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5UmVzaXplRXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDlvIDlp4vosIPmlbTlsLrlr7jml7bnmoTkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5UmVzaXplU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPFRoeVJlc2l6ZUV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICog57uT5p2f6LCD5pW05bC65a+45pe255qE5LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHRoeVJlc2l6ZUVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5UmVzaXplRXZlbnQ+KCk7XG5cbiAgICByZXNpemluZyA9IGZhbHNlO1xuICAgIHByaXZhdGUgbmF0aXZlRWxlbWVudCE6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgbmF0aXZlRWxlbWVudFJlY3QhOiBDbGllbnRSZWN0IHwgRE9NUmVjdDtcbiAgICBwcml2YXRlIHNpemVDYWNoZTogVGh5UmVzaXplRXZlbnQgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIGdob3N0RWxlbWVudDogSFRNTERpdkVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIGN1cnJlbnRIYW5kbGVFdmVudDogVGh5UmVzaXplSGFuZGxlTW91c2VEb3duRXZlbnQgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIHBsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSB0aHlSZXNpemFibGVTZXJ2aWNlOiBUaHlSZXNpemFibGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICB0aGlzLnRoeVJlc2l6YWJsZVNlcnZpY2UuaGFuZGxlTW91c2VEb3duT3V0c2lkZUFuZ3VsYXIkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy50aHlEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucmVzaXppbmcgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3QgeyBtb3VzZUV2ZW50IH0gPSBldmVudDtcbiAgICAgICAgICAgIHRoaXMudGh5UmVzaXphYmxlU2VydmljZS5zdGFydFJlc2l6aW5nKG1vdXNlRXZlbnQpO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SGFuZGxlRXZlbnQgPSBldmVudDtcbiAgICAgICAgICAgIHRoaXMuc2V0Q3Vyc29yKCk7XG4gICAgICAgICAgICAvLyBSZS1lbnRlciB0aGUgQW5ndWxhciB6b25lIGFuZCBydW4gdGhlIGNoYW5nZSBkZXRlY3Rpb24gb25seSBpZiB0aGVyZSdyZSBhbnkgYHRoeVJlc2l6ZVN0YXJ0YCBsaXN0ZW5lcnMsXG4gICAgICAgICAgICAvLyBlLmcuOiBgPGRpdiB0aHlSZXNpemFibGUgKHRoeVJlc2l6ZVN0YXJ0KT1cIi4uLlwiPjwvZGl2PmAuXG4gICAgICAgICAgICBpZiAodGhpcy50aHlSZXNpemVTdGFydC5vYnNlcnZlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMudGh5UmVzaXplU3RhcnQuZW1pdCh7IG1vdXNlRXZlbnQgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50UmVjdCA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy50aHlSZXNpemFibGVTZXJ2aWNlLmRvY3VtZW50TW91c2VVcE91dHNpZGVBbmd1bGFyJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucmVzaXppbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2l6aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy50aHlSZXNpemFibGVTZXJ2aWNlLmRvY3VtZW50TW91c2VVcE91dHNpZGVBbmd1bGFyJC5uZXh0KGV2ZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVuZFJlc2l6ZShldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudGh5UmVzaXphYmxlU2VydmljZS5kb2N1bWVudE1vdXNlTW92ZU91dHNpZGVBbmd1bGFyJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucmVzaXppbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZShldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnBsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5uYXRpdmVFbGVtZW50LCAnbW91c2VlbnRlcicpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGh5UmVzaXphYmxlU2VydmljZS5tb3VzZUVudGVyZWRPdXRzaWRlQW5ndWxhciQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMubmF0aXZlRWxlbWVudCwgJ21vdXNlbGVhdmUnKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRoeVJlc2l6YWJsZVNlcnZpY2UubW91c2VFbnRlcmVkT3V0c2lkZUFuZ3VsYXIkLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXRDdXJzb3IoKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5jdXJyZW50SGFuZGxlRXZlbnQhLmRpcmVjdGlvbikge1xuICAgICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkb2N1bWVudC5ib2R5LCAnY3Vyc29yJywgJ2V3LXJlc2l6ZScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkb2N1bWVudC5ib2R5LCAnY3Vyc29yJywgJ25zLXJlc2l6ZScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wTGVmdCc6XG4gICAgICAgICAgICBjYXNlICdib3R0b21SaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkb2N1bWVudC5ib2R5LCAnY3Vyc29yJywgJ253c2UtcmVzaXplJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0b3BSaWdodCc6XG4gICAgICAgICAgICBjYXNlICdib3R0b21MZWZ0JzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRvY3VtZW50LmJvZHksICdjdXJzb3InLCAnbmVzdy1yZXNpemUnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBzZXRDb21wYXRpYmxlU3R5bGUoZG9jdW1lbnQuYm9keSwgJ3VzZXItc2VsZWN0JywgJ25vbmUnKTtcbiAgICB9XG5cbiAgICBlbmRSZXNpemUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuYm9keSwgJ2N1cnNvcicsICcnKTtcbiAgICAgICAgc2V0Q29tcGF0aWJsZVN0eWxlKGRvY3VtZW50LmJvZHksICd1c2VyLXNlbGVjdCcsICcnKTtcbiAgICAgICAgdGhpcy5yZW1vdmVHaG9zdEVsZW1lbnQoKTtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMuc2l6ZUNhY2hlXG4gICAgICAgICAgICA/IHsgLi4udGhpcy5zaXplQ2FjaGUgfVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogdGhpcy5uYXRpdmVFbGVtZW50UmVjdC53aWR0aCxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogdGhpcy5uYXRpdmVFbGVtZW50UmVjdC5oZWlnaHRcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgLy8gUmUtZW50ZXIgdGhlIEFuZ3VsYXIgem9uZSBhbmQgcnVuIHRoZSBjaGFuZ2UgZGV0ZWN0aW9uIG9ubHkgaWYgdGhlcmUncmUgYW55IGB0aHlSZXNpemVFbmRgIGxpc3RlbmVycyxcbiAgICAgICAgLy8gZS5nLjogYDxkaXYgdGh5UmVzaXphYmxlICh0aHlSZXNpemVFbmQpPVwiLi4uXCI+PC9kaXY+YC5cbiAgICAgICAgaWYgKHRoaXMudGh5UmVzaXplRW5kLm9ic2VydmVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50aHlSZXNpemVFbmQuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIC4uLnNpemUsXG4gICAgICAgICAgICAgICAgICAgIG1vdXNlRXZlbnQ6IGV2ZW50XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNpemVDYWNoZSA9IG51bGw7XG4gICAgICAgIHRoaXMuY3VycmVudEhhbmRsZUV2ZW50ID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXNpemUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnRSZWN0ID0gdGhpcy5uYXRpdmVFbGVtZW50UmVjdDtcbiAgICAgICAgY29uc3QgcmVzaXplRXZlbnQgPSBnZXRFdmVudFdpdGhQb2ludChldmVudCk7XG4gICAgICAgIGNvbnN0IGhhbmRsZUV2ZW50ID0gZ2V0RXZlbnRXaXRoUG9pbnQodGhpcy5jdXJyZW50SGFuZGxlRXZlbnQhLm1vdXNlRXZlbnQpO1xuICAgICAgICBsZXQgd2lkdGggPSBuYXRpdmVFbGVtZW50UmVjdC53aWR0aDtcbiAgICAgICAgbGV0IGhlaWdodCA9IG5hdGl2ZUVsZW1lbnRSZWN0LmhlaWdodDtcbiAgICAgICAgY29uc3QgcmF0aW8gPSB0aGlzLnRoeUxvY2tBc3BlY3RSYXRpbyA/IHdpZHRoIC8gaGVpZ2h0IDogLTE7XG4gICAgICAgIHN3aXRjaCAodGhpcy5jdXJyZW50SGFuZGxlRXZlbnQhLmRpcmVjdGlvbikge1xuICAgICAgICAgICAgY2FzZSAnYm90dG9tUmlnaHQnOlxuICAgICAgICAgICAgICAgIHdpZHRoID0gcmVzaXplRXZlbnQuY2xpZW50WCAtIG5hdGl2ZUVsZW1lbnRSZWN0LmxlZnQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gcmVzaXplRXZlbnQuY2xpZW50WSAtIG5hdGl2ZUVsZW1lbnRSZWN0LnRvcDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbUxlZnQnOlxuICAgICAgICAgICAgICAgIHdpZHRoID0gbmF0aXZlRWxlbWVudFJlY3Qud2lkdGggKyAoaGFuZGxlRXZlbnQuY2xpZW50WCAtIHJlc2l6ZUV2ZW50LmNsaWVudFgpO1xuICAgICAgICAgICAgICAgIGhlaWdodCA9IHJlc2l6ZUV2ZW50LmNsaWVudFkgLSBuYXRpdmVFbGVtZW50UmVjdC50b3A7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0b3BSaWdodCc6XG4gICAgICAgICAgICAgICAgd2lkdGggPSByZXNpemVFdmVudC5jbGllbnRYIC0gbmF0aXZlRWxlbWVudFJlY3QubGVmdDtcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSBuYXRpdmVFbGVtZW50UmVjdC5oZWlnaHQgKyAoaGFuZGxlRXZlbnQuY2xpZW50WSAtIHJlc2l6ZUV2ZW50LmNsaWVudFkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wTGVmdCc6XG4gICAgICAgICAgICAgICAgd2lkdGggPSBuYXRpdmVFbGVtZW50UmVjdC53aWR0aCArIChoYW5kbGVFdmVudC5jbGllbnRYIC0gcmVzaXplRXZlbnQuY2xpZW50WCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gbmF0aXZlRWxlbWVudFJlY3QuaGVpZ2h0ICsgKGhhbmRsZUV2ZW50LmNsaWVudFkgLSByZXNpemVFdmVudC5jbGllbnRZKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gbmF0aXZlRWxlbWVudFJlY3QuaGVpZ2h0ICsgKGhhbmRsZUV2ZW50LmNsaWVudFkgLSByZXNpemVFdmVudC5jbGllbnRZKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgICB3aWR0aCA9IHJlc2l6ZUV2ZW50LmNsaWVudFggLSBuYXRpdmVFbGVtZW50UmVjdC5sZWZ0O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSByZXNpemVFdmVudC5jbGllbnRZIC0gbmF0aXZlRWxlbWVudFJlY3QudG9wO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICAgICAgd2lkdGggPSBuYXRpdmVFbGVtZW50UmVjdC53aWR0aCArIChoYW5kbGVFdmVudC5jbGllbnRYIC0gcmVzaXplRXZlbnQuY2xpZW50WCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMuY2FsY1NpemUod2lkdGgsIGhlaWdodCwgcmF0aW8pO1xuICAgICAgICB0aGlzLnNpemVDYWNoZSA9IHsgLi4uc2l6ZSB9O1xuICAgICAgICAvLyBSZS1lbnRlciB0aGUgQW5ndWxhciB6b25lIGFuZCBydW4gdGhlIGNoYW5nZSBkZXRlY3Rpb24gb25seSBpZiB0aGVyZSdyZSBhbnkgYHRoeVJlc2l6ZWAgbGlzdGVuZXJzLFxuICAgICAgICAvLyBlLmcuOiBgPGRpdiB0aHlSZXNpemFibGUgKHRoeVJlc2l6ZSk9XCIuLi5cIj48L2Rpdj5gLlxuICAgICAgICBpZiAodGhpcy50aHlSZXNpemUub2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRoeVJlc2l6ZS5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgLi4uc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgbW91c2VFdmVudDogZXZlbnRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudGh5UHJldmlldykge1xuICAgICAgICAgICAgdGhpcy5wcmV2aWV3UmVzaXplKHNpemUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2FsY1NpemUod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHJhdGlvOiBudW1iZXIpOiBUaHlSZXNpemVFdmVudCB7XG4gICAgICAgIGxldCBuZXdXaWR0aDogbnVtYmVyO1xuICAgICAgICBsZXQgbmV3SGVpZ2h0OiBudW1iZXI7XG4gICAgICAgIGxldCBtYXhXaWR0aDogbnVtYmVyO1xuICAgICAgICBsZXQgbWF4SGVpZ2h0OiBudW1iZXI7XG4gICAgICAgIGxldCBjb2wgPSAwO1xuICAgICAgICBsZXQgc3BhbldpZHRoID0gMDtcbiAgICAgICAgbGV0IG1pbldpZHRoID0gdGhpcy50aHlNaW5XaWR0aDtcbiAgICAgICAgbGV0IGJvdW5kV2lkdGggPSBJbmZpbml0eTtcbiAgICAgICAgbGV0IGJvdW5kSGVpZ2h0ID0gSW5maW5pdHk7XG4gICAgICAgIGlmICh0aGlzLnRoeUJvdW5kcyA9PT0gJ3BhcmVudCcpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMucmVuZGVyZXIucGFyZW50Tm9kZSh0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKHBhcmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50UmVjdCA9IHBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBib3VuZFdpZHRoID0gcGFyZW50UmVjdC53aWR0aDtcbiAgICAgICAgICAgICAgICBib3VuZEhlaWdodCA9IHBhcmVudFJlY3QuaGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudGh5Qm91bmRzID09PSAnd2luZG93Jykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgYm91bmRXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICAgICAgICAgIGJvdW5kSGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudGh5Qm91bmRzICYmIHRoaXMudGh5Qm91bmRzLm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy50aHlCb3VuZHMubmF0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBib3VuZHNSZWN0ID0gdGhpcy50aHlCb3VuZHMubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGJvdW5kV2lkdGggPSBib3VuZHNSZWN0LndpZHRoO1xuICAgICAgICAgICAgYm91bmRIZWlnaHQgPSBib3VuZHNSZWN0LmhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIG1heFdpZHRoID0gZW5zdXJlSW5Cb3VuZHModGhpcy50aHlNYXhXaWR0aCEsIGJvdW5kV2lkdGgpO1xuICAgICAgICBtYXhIZWlnaHQgPSBlbnN1cmVJbkJvdW5kcyh0aGlzLnRoeU1heEhlaWdodCEsIGJvdW5kSGVpZ2h0KTtcblxuICAgICAgICBpZiAodGhpcy50aHlHcmlkQ29sdW1uQ291bnQgIT09IC0xKSB7XG4gICAgICAgICAgICBzcGFuV2lkdGggPSBtYXhXaWR0aCAvIHRoaXMudGh5R3JpZENvbHVtbkNvdW50O1xuICAgICAgICAgICAgbWluV2lkdGggPSB0aGlzLnRoeU1pbkNvbHVtbiAhPT0gLTEgPyBzcGFuV2lkdGggKiB0aGlzLnRoeU1pbkNvbHVtbiA6IG1pbldpZHRoO1xuICAgICAgICAgICAgbWF4V2lkdGggPSB0aGlzLnRoeU1heENvbHVtbiAhPT0gLTEgPyBzcGFuV2lkdGggKiB0aGlzLnRoeU1heENvbHVtbiA6IG1heFdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJhdGlvICE9PSAtMSkge1xuICAgICAgICAgICAgaWYgKC8obGVmdHxyaWdodCkvaS50ZXN0KHRoaXMuY3VycmVudEhhbmRsZUV2ZW50IS5kaXJlY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgbmV3V2lkdGggPSBNYXRoLm1pbihNYXRoLm1heCh3aWR0aCwgbWluV2lkdGgpLCBtYXhXaWR0aCk7XG4gICAgICAgICAgICAgICAgbmV3SGVpZ2h0ID0gTWF0aC5taW4oTWF0aC5tYXgobmV3V2lkdGggLyByYXRpbywgdGhpcy50aHlNaW5IZWlnaHQpLCBtYXhIZWlnaHQpO1xuICAgICAgICAgICAgICAgIGlmIChuZXdIZWlnaHQgPj0gbWF4SGVpZ2h0IHx8IG5ld0hlaWdodCA8PSB0aGlzLnRoeU1pbkhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICBuZXdXaWR0aCA9IE1hdGgubWluKE1hdGgubWF4KG5ld0hlaWdodCAqIHJhdGlvLCBtaW5XaWR0aCksIG1heFdpZHRoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld0hlaWdodCA9IE1hdGgubWluKE1hdGgubWF4KGhlaWdodCwgdGhpcy50aHlNaW5IZWlnaHQpLCBtYXhIZWlnaHQpO1xuICAgICAgICAgICAgICAgIG5ld1dpZHRoID0gTWF0aC5taW4oTWF0aC5tYXgobmV3SGVpZ2h0ICogcmF0aW8sIG1pbldpZHRoKSwgbWF4V2lkdGgpO1xuICAgICAgICAgICAgICAgIGlmIChuZXdXaWR0aCA+PSBtYXhXaWR0aCB8fCBuZXdXaWR0aCA8PSBtaW5XaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICBuZXdIZWlnaHQgPSBNYXRoLm1pbihNYXRoLm1heChuZXdXaWR0aCAvIHJhdGlvLCB0aGlzLnRoeU1pbkhlaWdodCksIG1heEhlaWdodCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3V2lkdGggPSBNYXRoLm1pbihNYXRoLm1heCh3aWR0aCwgbWluV2lkdGgpLCBtYXhXaWR0aCk7XG4gICAgICAgICAgICBuZXdIZWlnaHQgPSBNYXRoLm1pbihNYXRoLm1heChoZWlnaHQsIHRoaXMudGh5TWluSGVpZ2h0KSwgbWF4SGVpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnRoeUdyaWRDb2x1bW5Db3VudCAhPT0gLTEpIHtcbiAgICAgICAgICAgIGNvbCA9IE1hdGgucm91bmQobmV3V2lkdGggLyBzcGFuV2lkdGgpO1xuICAgICAgICAgICAgbmV3V2lkdGggPSBjb2wgKiBzcGFuV2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29sLFxuICAgICAgICAgICAgd2lkdGg6IG5ld1dpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBuZXdIZWlnaHRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcmV2aWV3UmVzaXplKHsgd2lkdGgsIGhlaWdodCB9OiBUaHlSZXNpemVFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZUdob3N0RWxlbWVudCgpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZ2hvc3RFbGVtZW50LCAnd2lkdGgnLCBgJHt3aWR0aH1weGApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZ2hvc3RFbGVtZW50LCAnaGVpZ2h0JywgYCR7aGVpZ2h0fXB4YCk7XG4gICAgfVxuXG4gICAgY3JlYXRlR2hvc3RFbGVtZW50KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZ2hvc3RFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmdob3N0RWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmdob3N0RWxlbWVudCwgJ2NsYXNzJywgJ3RoeS1yZXNpemFibGUtcHJldmlldycpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLmdob3N0RWxlbWVudCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlR2hvc3RFbGVtZW50KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5naG9zdEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLmdob3N0RWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5naG9zdEVsZW1lbnQgPSBudWxsO1xuICAgICAgICB0aGlzLnNpemVDYWNoZSA9IG51bGw7XG4gICAgfVxufVxuIl19
@@ -1,8 +1,7 @@
1
- import { Component, ChangeDetectionStrategy, Input, Output, NgZone, EventEmitter, ElementRef, booleanAttribute } from '@angular/core';
1
+ import { Component, ChangeDetectionStrategy, Input, Output, NgZone, EventEmitter, ElementRef, inject, DestroyRef, booleanAttribute } from '@angular/core';
2
2
  import { normalizePassiveListenerOptions } from '@angular/cdk/platform';
3
3
  import { ThyResizableService } from './resizable.service';
4
- import { takeUntil } from 'rxjs/operators';
5
- import { MixinBase, mixinUnsubscribe } from 'ngx-tethys/core';
4
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
5
  import { fromEvent, merge } from 'rxjs';
7
6
  import { useHostRenderer } from '@tethys/cdk/dom';
8
7
  import { NgIf } from '@angular/common';
@@ -14,15 +13,13 @@ export class ThyResizeHandleMouseDownEvent {
14
13
  this.mouseEvent = mouseEvent;
15
14
  }
16
15
  }
17
- const _MixinBase = mixinUnsubscribe(MixinBase);
18
16
  const passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true });
19
17
  /**
20
18
  * 定义调整手柄及方向
21
19
  * @name thy-resize-handle
22
20
  */
23
- export class ThyResizeHandle extends _MixinBase {
21
+ export class ThyResizeHandle {
24
22
  constructor(ngZone, thyResizableService, host) {
25
- super();
26
23
  this.ngZone = ngZone;
27
24
  this.thyResizableService = thyResizableService;
28
25
  this.host = host;
@@ -40,9 +37,10 @@ export class ThyResizeHandle extends _MixinBase {
40
37
  */
41
38
  this.thyMouseDown = new EventEmitter();
42
39
  this.hostRenderer = useHostRenderer();
40
+ this.destroyRef = inject(DestroyRef);
43
41
  }
44
42
  ngOnInit() {
45
- this.thyResizableService.mouseEnteredOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(entered => {
43
+ this.thyResizableService.mouseEnteredOutsideAngular$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(entered => {
46
44
  if (entered) {
47
45
  this.hostRenderer.addClass('thy-resizable-handle-box-hover');
48
46
  }
@@ -55,17 +53,14 @@ export class ThyResizeHandle extends _MixinBase {
55
53
  // The element `touchstart` listener is not passive by default
56
54
  // We never call `preventDefault()` on it, so we're safe making it passive too.
57
55
  merge(fromEvent(this.host.nativeElement, 'mousedown', passiveEventListenerOptions), fromEvent(this.host.nativeElement, 'touchstart', passiveEventListenerOptions))
58
- .pipe(takeUntil(this.ngUnsubscribe$))
56
+ .pipe(takeUntilDestroyed(this.destroyRef))
59
57
  .subscribe((event) => {
60
58
  this.thyResizableService.handleMouseDownOutsideAngular$.next(new ThyResizeHandleMouseDownEvent(this.thyDirection, event));
61
59
  });
62
60
  });
63
61
  }
64
- ngOnDestroy() {
65
- super.ngOnDestroy();
66
- }
67
62
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyResizeHandle, deps: [{ token: i0.NgZone }, { token: i1.ThyResizableService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
68
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyResizeHandle, isStandalone: true, selector: "thy-resize-handle, [thy-resize-handle]", inputs: { thyDirection: "thyDirection", thyLine: ["thyLine", "thyLine", booleanAttribute] }, outputs: { thyMouseDown: "thyMouseDown" }, host: { properties: { "class.thy-resizable-handle-top": "thyDirection === 'top'", "class.thy-resizable-handle-right": "thyDirection === 'right'", "class.thy-resizable-handle-bottom": "thyDirection === 'bottom'", "class.thy-resizable-handle-left": "thyDirection === 'left'", "class.thy-resizable-handle-topRight": "thyDirection === 'topRight'", "class.thy-resizable-handle-bottomRight": "thyDirection === 'bottomRight'", "class.thy-resizable-handle-bottomLeft": "thyDirection === 'bottomLeft'", "class.thy-resizable-handle-topLeft": "thyDirection === 'topLeft'", "class.thy-resizable-handle-box-hover": "entered" }, classAttribute: "thy-resizable-handle" }, exportAs: ["thyResizeHandle"], usesInheritance: true, ngImport: i0, template: `
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyResizeHandle, isStandalone: true, selector: "thy-resize-handle, [thy-resize-handle]", inputs: { thyDirection: "thyDirection", thyLine: ["thyLine", "thyLine", booleanAttribute] }, outputs: { thyMouseDown: "thyMouseDown" }, host: { properties: { "class.thy-resizable-handle-top": "thyDirection === 'top'", "class.thy-resizable-handle-right": "thyDirection === 'right'", "class.thy-resizable-handle-bottom": "thyDirection === 'bottom'", "class.thy-resizable-handle-left": "thyDirection === 'left'", "class.thy-resizable-handle-topRight": "thyDirection === 'topRight'", "class.thy-resizable-handle-bottomRight": "thyDirection === 'bottomRight'", "class.thy-resizable-handle-bottomLeft": "thyDirection === 'bottomLeft'", "class.thy-resizable-handle-topLeft": "thyDirection === 'topLeft'", "class.thy-resizable-handle-box-hover": "entered" }, classAttribute: "thy-resizable-handle" }, exportAs: ["thyResizeHandle"], ngImport: i0, template: `
69
64
  <ng-content></ng-content>
70
65
  <div *ngIf="thyLine" class="thy-resizable-handle-line"></div>
71
66
  `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -103,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
103
98
  }], thyMouseDown: [{
104
99
  type: Output
105
100
  }] } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWhhbmRsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmVzaXphYmxlL3Jlc2l6ZS1oYW5kbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFlBQVksRUFDWixVQUFVLEVBQ1YsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXhFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQStCLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUV2QyxNQUFNLE9BQU8sNkJBQTZCO0lBQ3RDLFlBQW1CLFNBQTZCLEVBQVMsVUFBbUM7UUFBekUsY0FBUyxHQUFULFNBQVMsQ0FBb0I7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtJQUFHLENBQUM7Q0FDbkc7QUFFRCxNQUFNLFVBQVUsR0FBbUQsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0YsTUFBTSwyQkFBMkIsR0FBNEIsK0JBQStCLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUVoSDs7O0dBR0c7QUF3QkgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsVUFBVTtJQW1CM0MsWUFBb0IsTUFBYyxFQUFVLG1CQUF3QyxFQUFVLElBQTZCO1FBQ3ZILEtBQUssRUFBRSxDQUFDO1FBRFEsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUF5QjtRQWxCM0g7OztXQUdHO1FBQ00saUJBQVksR0FBdUIsYUFBYSxDQUFDO1FBRTFEOztXQUVHO1FBQ3FDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFeEQ7O1dBRUc7UUFDZ0IsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBaUMsQ0FBQztRQUU1RSxpQkFBWSxHQUFHLGVBQWUsRUFBRSxDQUFDO0lBSXpDLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLG1CQUFtQixDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzFHLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztZQUNqRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztZQUNwRSxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUMvQixrRkFBa0Y7WUFDbEYsOERBQThEO1lBQzlELCtFQUErRTtZQUMvRSxLQUFLLENBQ0QsU0FBUyxDQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSwyQkFBMkIsQ0FBQyxFQUN4RixTQUFTLENBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLDJCQUEyQixDQUFDLENBQzVGO2lCQUNJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2lCQUNwQyxTQUFTLENBQUMsQ0FBQyxLQUE4QixFQUFFLEVBQUU7Z0JBQzFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQ3hELElBQUksNkJBQTZCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FDOUQsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQWpEUSxlQUFlO2tHQUFmLGVBQWUsa0pBVUosZ0JBQWdCLCt3QkE5QjFCOzs7S0FHVCw0REFlUyxJQUFJOzsyRkFFTCxlQUFlO2tCQXZCM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsd0NBQXdDO29CQUNsRCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixRQUFRLEVBQUU7OztLQUdUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLHNCQUFzQjt3QkFDN0Isa0NBQWtDLEVBQUUsd0JBQXdCO3dCQUM1RCxvQ0FBb0MsRUFBRSwwQkFBMEI7d0JBQ2hFLHFDQUFxQyxFQUFFLDJCQUEyQjt3QkFDbEUsbUNBQW1DLEVBQUUseUJBQXlCO3dCQUM5RCx1Q0FBdUMsRUFBRSw2QkFBNkI7d0JBQ3RFLDBDQUEwQyxFQUFFLGdDQUFnQzt3QkFDNUUseUNBQXlDLEVBQUUsK0JBQStCO3dCQUMxRSxzQ0FBc0MsRUFBRSw0QkFBNEI7d0JBQ3BFLHdDQUF3QyxFQUFFLFNBQVM7cUJBQ3REO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7aUJBQ2xCO3NJQU1ZLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS2tDLE9BQU87c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBS25CLFlBQVk7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBOZ1pvbmUsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG5vcm1hbGl6ZVBhc3NpdmVMaXN0ZW5lck9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHsgVGh5UmVzaXplRGlyZWN0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGh5UmVzaXphYmxlU2VydmljZSB9IGZyb20gJy4vcmVzaXphYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IsIFRoeVVuc3Vic2NyaWJlLCBNaXhpbkJhc2UsIG1peGluVW5zdWJzY3JpYmUgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdXNlSG9zdFJlbmRlcmVyIH0gZnJvbSAnQHRldGh5cy9jZGsvZG9tJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgY2xhc3MgVGh5UmVzaXplSGFuZGxlTW91c2VEb3duRXZlbnQge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkaXJlY3Rpb246IFRoeVJlc2l6ZURpcmVjdGlvbiwgcHVibGljIG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSB7fVxufVxuXG5jb25zdCBfTWl4aW5CYXNlOiBDb25zdHJ1Y3RvcjxUaHlVbnN1YnNjcmliZT4gJiB0eXBlb2YgTWl4aW5CYXNlID0gbWl4aW5VbnN1YnNjcmliZShNaXhpbkJhc2UpO1xuXG5jb25zdCBwYXNzaXZlRXZlbnRMaXN0ZW5lck9wdGlvbnMgPSA8QWRkRXZlbnRMaXN0ZW5lck9wdGlvbnM+bm9ybWFsaXplUGFzc2l2ZUxpc3RlbmVyT3B0aW9ucyh7IHBhc3NpdmU6IHRydWUgfSk7XG5cbi8qKlxuICog5a6a5LmJ6LCD5pW05omL5p+E5Y+K5pa55ZCRXG4gKiBAbmFtZSB0aHktcmVzaXplLWhhbmRsZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1yZXNpemUtaGFuZGxlLCBbdGh5LXJlc2l6ZS1oYW5kbGVdJyxcbiAgICBleHBvcnRBczogJ3RoeVJlc2l6ZUhhbmRsZScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidGh5TGluZVwiIGNsYXNzPVwidGh5LXJlc2l6YWJsZS1oYW5kbGUtbGluZVwiPjwvZGl2PlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1yZXNpemFibGUtaGFuZGxlJyxcbiAgICAgICAgJ1tjbGFzcy50aHktcmVzaXphYmxlLWhhbmRsZS10b3BdJzogYHRoeURpcmVjdGlvbiA9PT0gJ3RvcCdgLFxuICAgICAgICAnW2NsYXNzLnRoeS1yZXNpemFibGUtaGFuZGxlLXJpZ2h0XSc6IGB0aHlEaXJlY3Rpb24gPT09ICdyaWdodCdgLFxuICAgICAgICAnW2NsYXNzLnRoeS1yZXNpemFibGUtaGFuZGxlLWJvdHRvbV0nOiBgdGh5RGlyZWN0aW9uID09PSAnYm90dG9tJ2AsXG4gICAgICAgICdbY2xhc3MudGh5LXJlc2l6YWJsZS1oYW5kbGUtbGVmdF0nOiBgdGh5RGlyZWN0aW9uID09PSAnbGVmdCdgLFxuICAgICAgICAnW2NsYXNzLnRoeS1yZXNpemFibGUtaGFuZGxlLXRvcFJpZ2h0XSc6IGB0aHlEaXJlY3Rpb24gPT09ICd0b3BSaWdodCdgLFxuICAgICAgICAnW2NsYXNzLnRoeS1yZXNpemFibGUtaGFuZGxlLWJvdHRvbVJpZ2h0XSc6IGB0aHlEaXJlY3Rpb24gPT09ICdib3R0b21SaWdodCdgLFxuICAgICAgICAnW2NsYXNzLnRoeS1yZXNpemFibGUtaGFuZGxlLWJvdHRvbUxlZnRdJzogYHRoeURpcmVjdGlvbiA9PT0gJ2JvdHRvbUxlZnQnYCxcbiAgICAgICAgJ1tjbGFzcy50aHktcmVzaXphYmxlLWhhbmRsZS10b3BMZWZ0XSc6IGB0aHlEaXJlY3Rpb24gPT09ICd0b3BMZWZ0J2AsXG4gICAgICAgICdbY2xhc3MudGh5LXJlc2l6YWJsZS1oYW5kbGUtYm94LWhvdmVyXSc6ICdlbnRlcmVkJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5UmVzaXplSGFuZGxlIGV4dGVuZHMgX01peGluQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiDosIPmlbTmlrnlkJFcbiAgICAgKiBAdHlwZSB0b3AgfCByaWdodCB8IGJvdHRvbSB8IGxlZnQgfCB0b3BSaWdodCB8IGJvdHRvbVJpZ2h0IHwgYm90dG9tTGVmdCB8IHRvcExlZnRcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlEaXJlY3Rpb246IFRoeVJlc2l6ZURpcmVjdGlvbiA9ICdib3R0b21SaWdodCc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblsZXnpLrmi5bmi73nur9cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdGh5TGluZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogTW91c2VEb3duIOWbnuiwg+S6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlNb3VzZURvd24gPSBuZXcgRXZlbnRFbWl0dGVyPFRoeVJlc2l6ZUhhbmRsZU1vdXNlRG93bkV2ZW50PigpO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUsIHByaXZhdGUgdGh5UmVzaXphYmxlU2VydmljZTogVGh5UmVzaXphYmxlU2VydmljZSwgcHJpdmF0ZSBob3N0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRoeVJlc2l6YWJsZVNlcnZpY2UubW91c2VFbnRlcmVkT3V0c2lkZUFuZ3VsYXIkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoZW50ZXJlZCA9PiB7XG4gICAgICAgICAgICBpZiAoZW50ZXJlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLmFkZENsYXNzKCd0aHktcmVzaXphYmxlLWhhbmRsZS1ib3gtaG92ZXInKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIucmVtb3ZlQ2xhc3MoJ3RoeS1yZXNpemFibGUtaGFuZGxlLWJveC1ob3ZlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgLy8gTm90ZTogc2luY2UgQ2hyb21lIDU2IGRlZmF1bHRzIGRvY3VtZW50IGxldmVsIGB0b3VjaHN0YXJ0YCBsaXN0ZW5lciB0byBwYXNzaXZlLlxuICAgICAgICAgICAgLy8gVGhlIGVsZW1lbnQgYHRvdWNoc3RhcnRgIGxpc3RlbmVyIGlzIG5vdCBwYXNzaXZlIGJ5IGRlZmF1bHRcbiAgICAgICAgICAgIC8vIFdlIG5ldmVyIGNhbGwgYHByZXZlbnREZWZhdWx0KClgIG9uIGl0LCBzbyB3ZSdyZSBzYWZlIG1ha2luZyBpdCBwYXNzaXZlIHRvby5cbiAgICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmhvc3QubmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicsIHBhc3NpdmVFdmVudExpc3RlbmVyT3B0aW9ucyksXG4gICAgICAgICAgICAgICAgZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LCAndG91Y2hzdGFydCcsIHBhc3NpdmVFdmVudExpc3RlbmVyT3B0aW9ucylcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGh5UmVzaXphYmxlU2VydmljZS5oYW5kbGVNb3VzZURvd25PdXRzaWRlQW5ndWxhciQubmV4dChcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBUaHlSZXNpemVIYW5kbGVNb3VzZURvd25FdmVudCh0aGlzLnRoeURpcmVjdGlvbiwgZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWhhbmRsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmVzaXphYmxlL3Jlc2l6ZS1oYW5kbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLFVBQVUsRUFDVixnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRXZDLE1BQU0sT0FBTyw2QkFBNkI7SUFDdEMsWUFBbUIsU0FBNkIsRUFBUyxVQUFtQztRQUF6RSxjQUFTLEdBQVQsU0FBUyxDQUFvQjtRQUFTLGVBQVUsR0FBVixVQUFVLENBQXlCO0lBQUcsQ0FBQztDQUNuRztBQUVELE1BQU0sMkJBQTJCLEdBQTRCLCtCQUErQixDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFFaEg7OztHQUdHO0FBd0JILE1BQU0sT0FBTyxlQUFlO0lBcUJ4QixZQUFvQixNQUFjLEVBQVUsbUJBQXdDLEVBQVUsSUFBNkI7UUFBdkcsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUF5QjtRQXBCM0g7OztXQUdHO1FBQ00saUJBQVksR0FBdUIsYUFBYSxDQUFDO1FBRTFEOztXQUVHO1FBQ3FDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFeEQ7O1dBRUc7UUFDZ0IsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBaUMsQ0FBQztRQUU1RSxpQkFBWSxHQUFHLGVBQWUsRUFBRSxDQUFDO1FBRXhCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFNkUsQ0FBQztJQUUvSCxRQUFRO1FBQ0osSUFBSSxDQUFDLG1CQUFtQixDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDL0csSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ2pFLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ3BFLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQy9CLGtGQUFrRjtZQUNsRiw4REFBOEQ7WUFDOUQsK0VBQStFO1lBQy9FLEtBQUssQ0FDRCxTQUFTLENBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLDJCQUEyQixDQUFDLEVBQ3hGLFNBQVMsQ0FBYSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsMkJBQTJCLENBQUMsQ0FDNUY7aUJBQ0ksSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDekMsU0FBUyxDQUFDLENBQUMsS0FBOEIsRUFBRSxFQUFFO2dCQUMxQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUN4RCxJQUFJLDZCQUE2QixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQzlELENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0E5Q1EsZUFBZTtrR0FBZixlQUFlLGtKQVVKLGdCQUFnQix3dkJBOUIxQjs7O0tBR1QsNERBZVMsSUFBSTs7MkZBRUwsZUFBZTtrQkF2QjNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHdDQUF3QztvQkFDbEQsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7S0FHVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxzQkFBc0I7d0JBQzdCLGtDQUFrQyxFQUFFLHdCQUF3Qjt3QkFDNUQsb0NBQW9DLEVBQUUsMEJBQTBCO3dCQUNoRSxxQ0FBcUMsRUFBRSwyQkFBMkI7d0JBQ2xFLG1DQUFtQyxFQUFFLHlCQUF5Qjt3QkFDOUQsdUNBQXVDLEVBQUUsNkJBQTZCO3dCQUN0RSwwQ0FBMEMsRUFBRSxnQ0FBZ0M7d0JBQzVFLHlDQUF5QyxFQUFFLCtCQUErQjt3QkFDMUUsc0NBQXNDLEVBQUUsNEJBQTRCO3dCQUNwRSx3Q0FBd0MsRUFBRSxTQUFTO3FCQUN0RDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDO2lCQUNsQjtzSUFNWSxZQUFZO3NCQUFwQixLQUFLO2dCQUtrQyxPQUFPO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUtuQixZQUFZO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBPbkluaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBOZ1pvbmUsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG5vcm1hbGl6ZVBhc3NpdmVMaXN0ZW5lck9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHsgVGh5UmVzaXplRGlyZWN0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGh5UmVzaXphYmxlU2VydmljZSB9IGZyb20gJy4vcmVzaXphYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdXNlSG9zdFJlbmRlcmVyIH0gZnJvbSAnQHRldGh5cy9jZGsvZG9tJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgY2xhc3MgVGh5UmVzaXplSGFuZGxlTW91c2VEb3duRXZlbnQge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkaXJlY3Rpb246IFRoeVJlc2l6ZURpcmVjdGlvbiwgcHVibGljIG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSB7fVxufVxuXG5jb25zdCBwYXNzaXZlRXZlbnRMaXN0ZW5lck9wdGlvbnMgPSA8QWRkRXZlbnRMaXN0ZW5lck9wdGlvbnM+bm9ybWFsaXplUGFzc2l2ZUxpc3RlbmVyT3B0aW9ucyh7IHBhc3NpdmU6IHRydWUgfSk7XG5cbi8qKlxuICog5a6a5LmJ6LCD5pW05omL5p+E5Y+K5pa55ZCRXG4gKiBAbmFtZSB0aHktcmVzaXplLWhhbmRsZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1yZXNpemUtaGFuZGxlLCBbdGh5LXJlc2l6ZS1oYW5kbGVdJyxcbiAgICBleHBvcnRBczogJ3RoeVJlc2l6ZUhhbmRsZScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidGh5TGluZVwiIGNsYXNzPVwidGh5LXJlc2l6YWJsZS1oYW5kbGUtbGluZVwiPjwvZGl2PlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1yZXNpemFibGUtaGFuZGxlJyxcbiAgICAgICAgJ1tjbGFzcy50aHktcmVzaXphYmxlLWhhbmRsZS10b3BdJzogYHRoeURpcmVjdGlvbiA9PT0gJ3RvcCdgLFxuICAgICAgICAnW2NsYXNzLnRoeS1yZXNpemFibGUtaGFuZGxlLXJpZ2h0XSc6IGB0aHlEaXJlY3Rpb24gPT09ICdyaWdodCdgLFxuICAgICAgICAnW2NsYXNzLnRoeS1yZXNpemFibGUtaGFuZGxlLWJvdHRvbV0nOiBgdGh5RGlyZWN0aW9uID09PSAnYm90dG9tJ2AsXG4gICAgICAgICdbY2xhc3MudGh5LXJlc2l6YWJsZS1oYW5kbGUtbGVmdF0nOiBgdGh5RGlyZWN0aW9uID09PSAnbGVmdCdgLFxuICAgICAgICAnW2NsYXNzLnRoeS1yZXNpemFibGUtaGFuZGxlLXRvcFJpZ2h0XSc6IGB0aHlEaXJlY3Rpb24gPT09ICd0b3BSaWdodCdgLFxuICAgICAgICAnW2NsYXNzLnRoeS1yZXNpemFibGUtaGFuZGxlLWJvdHRvbVJpZ2h0XSc6IGB0aHlEaXJlY3Rpb24gPT09ICdib3R0b21SaWdodCdgLFxuICAgICAgICAnW2NsYXNzLnRoeS1yZXNpemFibGUtaGFuZGxlLWJvdHRvbUxlZnRdJzogYHRoeURpcmVjdGlvbiA9PT0gJ2JvdHRvbUxlZnQnYCxcbiAgICAgICAgJ1tjbGFzcy50aHktcmVzaXphYmxlLWhhbmRsZS10b3BMZWZ0XSc6IGB0aHlEaXJlY3Rpb24gPT09ICd0b3BMZWZ0J2AsXG4gICAgICAgICdbY2xhc3MudGh5LXJlc2l6YWJsZS1oYW5kbGUtYm94LWhvdmVyXSc6ICdlbnRlcmVkJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5UmVzaXplSGFuZGxlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiDosIPmlbTmlrnlkJFcbiAgICAgKiBAdHlwZSB0b3AgfCByaWdodCB8IGJvdHRvbSB8IGxlZnQgfCB0b3BSaWdodCB8IGJvdHRvbVJpZ2h0IHwgYm90dG9tTGVmdCB8IHRvcExlZnRcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlEaXJlY3Rpb246IFRoeVJlc2l6ZURpcmVjdGlvbiA9ICdib3R0b21SaWdodCc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblsZXnpLrmi5bmi73nur9cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdGh5TGluZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogTW91c2VEb3duIOWbnuiwg+S6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlNb3VzZURvd24gPSBuZXcgRXZlbnRFbWl0dGVyPFRoeVJlc2l6ZUhhbmRsZU1vdXNlRG93bkV2ZW50PigpO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUsIHByaXZhdGUgdGh5UmVzaXphYmxlU2VydmljZTogVGh5UmVzaXphYmxlU2VydmljZSwgcHJpdmF0ZSBob3N0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRoeVJlc2l6YWJsZVNlcnZpY2UubW91c2VFbnRlcmVkT3V0c2lkZUFuZ3VsYXIkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZShlbnRlcmVkID0+IHtcbiAgICAgICAgICAgIGlmIChlbnRlcmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIuYWRkQ2xhc3MoJ3RoeS1yZXNpemFibGUtaGFuZGxlLWJveC1ob3ZlcicpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci5yZW1vdmVDbGFzcygndGh5LXJlc2l6YWJsZS1oYW5kbGUtYm94LWhvdmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAvLyBOb3RlOiBzaW5jZSBDaHJvbWUgNTYgZGVmYXVsdHMgZG9jdW1lbnQgbGV2ZWwgYHRvdWNoc3RhcnRgIGxpc3RlbmVyIHRvIHBhc3NpdmUuXG4gICAgICAgICAgICAvLyBUaGUgZWxlbWVudCBgdG91Y2hzdGFydGAgbGlzdGVuZXIgaXMgbm90IHBhc3NpdmUgYnkgZGVmYXVsdFxuICAgICAgICAgICAgLy8gV2UgbmV2ZXIgY2FsbCBgcHJldmVudERlZmF1bHQoKWAgb24gaXQsIHNvIHdlJ3JlIHNhZmUgbWFraW5nIGl0IHBhc3NpdmUgdG9vLlxuICAgICAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJywgcGFzc2l2ZUV2ZW50TGlzdGVuZXJPcHRpb25zKSxcbiAgICAgICAgICAgICAgICBmcm9tRXZlbnQ8VG91Y2hFdmVudD4odGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsICd0b3VjaHN0YXJ0JywgcGFzc2l2ZUV2ZW50TGlzdGVuZXJPcHRpb25zKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRoeVJlc2l6YWJsZVNlcnZpY2UuaGFuZGxlTW91c2VEb3duT3V0c2lkZUFuZ3VsYXIkLm5leHQoXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgVGh5UmVzaXplSGFuZGxlTW91c2VEb3duRXZlbnQodGhpcy50aHlEaXJlY3Rpb24sIGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -1,21 +1,20 @@
1
1
  import { Directive, ContentChildren, QueryList } from '@angular/core';
2
2
  import { CdkDrag } from '@angular/cdk/drag-drop';
3
3
  import { merge, Subject } from 'rxjs';
4
- import { MixinBase, mixinUnsubscribe } from 'ngx-tethys/core';
5
4
  import { takeUntil, startWith } from 'rxjs/operators';
6
5
  import * as i0 from "@angular/core";
7
- const _MixinBase = mixinUnsubscribe(MixinBase);
8
6
  /**
9
7
  * @private
10
8
  */
11
- export class ThyDragDropDirective extends _MixinBase {
9
+ export class ThyDragDropDirective {
12
10
  constructor() {
13
- super();
11
+ this.ngUnsubscribe$ = new Subject();
14
12
  }
15
13
  ngAfterContentInit() {
16
14
  if (this.draggables) {
17
15
  this.draggables.changes.pipe(startWith(this.draggables)).subscribe(() => {
18
- super.ngOnDestroy();
16
+ this.ngUnsubscribe$.next();
17
+ this.ngUnsubscribe$.complete();
19
18
  this.ngUnsubscribe$ = new Subject();
20
19
  merge(...this.draggables.toArray().map(dragRef => {
21
20
  return dragRef.started;
@@ -33,10 +32,11 @@ export class ThyDragDropDirective extends _MixinBase {
33
32
  }
34
33
  }
35
34
  ngOnDestroy() {
36
- super.ngOnDestroy();
35
+ this.ngUnsubscribe$.next();
36
+ this.ngUnsubscribe$.complete();
37
37
  }
38
38
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyDragDropDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
39
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.3", type: ThyDragDropDirective, isStandalone: true, selector: "[thyDragDrop]", queries: [{ propertyName: "draggables", predicate: CdkDrag, descendants: true }], usesInheritance: true, ngImport: i0 }); }
39
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.3", type: ThyDragDropDirective, isStandalone: true, selector: "[thyDragDrop]", queries: [{ propertyName: "draggables", predicate: CdkDrag, descendants: true }], ngImport: i0 }); }
40
40
  }
41
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyDragDropDirective, decorators: [{
42
42
  type: Directive,
@@ -48,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
48
48
  type: ContentChildren,
49
49
  args: [CdkDrag, { descendants: true }]
50
50
  }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh5LWRyYWctZHJvcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2hhcmVkL2RpcmVjdGl2ZXMvdGh5LWRyYWctZHJvcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsZUFBZSxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFlLFNBQVMsRUFBRSxnQkFBZ0IsRUFBa0IsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRixPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUV0RCxNQUFNLFVBQVUsR0FBbUQsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0Y7O0dBRUc7QUFLSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsVUFBVTtJQUdoRDtRQUNJLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDcEUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ3BDLEtBQUssQ0FDRCxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUN2QyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQzNCLENBQUMsQ0FBQyxDQUNMO3FCQUNJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO3FCQUNwQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNaLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUNyRCxDQUFDLENBQUMsQ0FBQztnQkFFUCxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7cUJBQ3BDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ1osUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBQ3hELENBQUMsQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs4R0FqQ1Esb0JBQW9CO2tHQUFwQixvQkFBb0Isb0dBQ1osT0FBTzs7MkZBRGYsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7d0RBRW9ELFVBQVU7c0JBQTFELGVBQWU7dUJBQUMsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgQWZ0ZXJDb250ZW50SW5pdCwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2RrRHJhZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbnN0cnVjdG9yLCBNaXhpbkJhc2UsIG1peGluVW5zdWJzY3JpYmUsIFRoeVVuc3Vic2NyaWJlIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBfTWl4aW5CYXNlOiBDb25zdHJ1Y3RvcjxUaHlVbnN1YnNjcmliZT4gJiB0eXBlb2YgTWl4aW5CYXNlID0gbWl4aW5VbnN1YnNjcmliZShNaXhpbkJhc2UpO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3RoeURyYWdEcm9wXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlEcmFnRHJvcERpcmVjdGl2ZSBleHRlbmRzIF9NaXhpbkJhc2UgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBDb250ZW50Q2hpbGRyZW4oQ2RrRHJhZywgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBkcmFnZ2FibGVzOiBRdWVyeUxpc3Q8Q2RrRHJhZz47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmRyYWdnYWJsZXMpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ2dhYmxlcy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZHJhZ2dhYmxlcykpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3QoKTtcbiAgICAgICAgICAgICAgICBtZXJnZShcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5kcmFnZ2FibGVzLnRvQXJyYXkoKS5tYXAoZHJhZ1JlZiA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZHJhZ1JlZi5zdGFydGVkO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgndGh5LWRyYWdnaW5nLWJvZHknKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBtZXJnZSguLi50aGlzLmRyYWdnYWJsZXMudG9BcnJheSgpLm1hcChkcmFnUmVmID0+IGRyYWdSZWYucmVsZWFzZWQpKVxuICAgICAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCd0aHktZHJhZ2dpbmctYm9keScpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh5LWRyYWctZHJvcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2hhcmVkL2RpcmVjdGl2ZXMvdGh5LWRyYWctZHJvcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsZUFBZSxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFdEQ7O0dBRUc7QUFLSCxNQUFNLE9BQU8sb0JBQW9CO0lBSzdCO1FBRlEsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRXhCLENBQUM7SUFFaEIsa0JBQWtCO1FBQ2QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNwRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUUvQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ3BDLEtBQUssQ0FDRCxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUN2QyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQzNCLENBQUMsQ0FBQyxDQUNMO3FCQUNJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO3FCQUNwQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNaLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUNyRCxDQUFDLENBQUMsQ0FBQztnQkFFUCxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7cUJBQ3BDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ1osUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBQ3hELENBQUMsQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQzs4R0FwQ1Esb0JBQW9CO2tHQUFwQixvQkFBb0Isb0dBQ1osT0FBTzs7MkZBRGYsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7d0RBRW9ELFVBQVU7c0JBQTFELGVBQWU7dUJBQUMsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgQWZ0ZXJDb250ZW50SW5pdCwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2RrRHJhZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3RoeURyYWdEcm9wXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlEcmFnRHJvcERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgQENvbnRlbnRDaGlsZHJlbihDZGtEcmFnLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIGRyYWdnYWJsZXM6IFF1ZXJ5TGlzdDxDZGtEcmFnPjtcblxuICAgIHByaXZhdGUgbmdVbnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5kcmFnZ2FibGVzKSB7XG4gICAgICAgICAgICB0aGlzLmRyYWdnYWJsZXMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmRyYWdnYWJsZXMpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubmdVbnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubmdVbnN1YnNjcmliZSQuY29tcGxldGUoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMubmdVbnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdCgpO1xuICAgICAgICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmRyYWdnYWJsZXMudG9BcnJheSgpLm1hcChkcmFnUmVmID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkcmFnUmVmLnN0YXJ0ZWQ7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCd0aHktZHJhZ2dpbmctYm9keScpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIG1lcmdlKC4uLnRoaXMuZHJhZ2dhYmxlcy50b0FycmF5KCkubWFwKGRyYWdSZWYgPT4gZHJhZ1JlZi5yZWxlYXNlZCkpXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ3RoeS1kcmFnZ2luZy1ib2R5Jyk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
@@ -1,7 +1,6 @@
1
- import { MixinBase, mixinUnsubscribe } from 'ngx-tethys/core';
2
1
  import { useHostRenderer } from '@tethys/cdk/dom';
3
- import { takeUntil } from 'rxjs/operators';
4
- import { booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, Directive, HostBinding, Input, QueryList, TemplateRef } from '@angular/core';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, DestroyRef, Directive, HostBinding, inject, Input, QueryList, TemplateRef } from '@angular/core';
5
4
  import { getNumericSize } from 'ngx-tethys/core';
6
5
  import { NgFor, NgTemplateOutlet } from '@angular/common';
7
6
  import * as i0 from "@angular/core";
@@ -27,13 +26,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
27
26
  }]
28
27
  }], ctorParameters: () => [] });
29
28
  const DEFAULT_SIZE = 'md';
30
- const _MixinBase = mixinUnsubscribe(MixinBase);
31
29
  /**
32
30
  * 间距组件
33
31
  * @name thy-space
34
32
  * @order 10
35
33
  */
36
- export class ThySpace extends _MixinBase {
34
+ export class ThySpace {
37
35
  /**
38
36
  * 大小,支持 `zero` | `xxs` | `xs` | `sm` | `md` | `lg` | `xlg` 和自定义数字大小
39
37
  * @type string | number
@@ -49,8 +47,8 @@ export class ThySpace extends _MixinBase {
49
47
  this.hostRenderer.updateClass(align ? [`align-items-${align}`] : []);
50
48
  }
51
49
  constructor(cdr) {
52
- super();
53
50
  this.cdr = cdr;
51
+ this.destroyRef = inject(DestroyRef);
54
52
  this.space = getNumericSize(DEFAULT_SIZE);
55
53
  this.hostRenderer = useHostRenderer();
56
54
  /**
@@ -60,12 +58,12 @@ export class ThySpace extends _MixinBase {
60
58
  }
61
59
  ngOnInit() { }
62
60
  ngAfterContentInit() {
63
- this.items.changes.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(() => {
61
+ this.items.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
64
62
  this.cdr.markForCheck();
65
63
  });
66
64
  }
67
65
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThySpace, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
68
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThySpace, isStandalone: true, selector: "thy-space", inputs: { thySize: "thySize", thyVertical: ["thyVertical", "thyVertical", booleanAttribute], thyAlign: "thyAlign" }, host: { properties: { "class.thy-space-vertical": "this.thyVertical" }, classAttribute: "thy-space" }, queries: [{ propertyName: "items", predicate: ThySpaceItemDirective, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n\n<ng-template ngFor let-item let-last=\"last\" let-index=\"index\" [ngForOf]=\"items\">\n <div class=\"thy-space-item\" [style.margin-right.px]=\"last ? null : space\">\n <ng-container [ngTemplateOutlet]=\"item\"></ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThySpace, isStandalone: true, selector: "thy-space", inputs: { thySize: "thySize", thyVertical: ["thyVertical", "thyVertical", booleanAttribute], thyAlign: "thyAlign" }, host: { properties: { "class.thy-space-vertical": "this.thyVertical" }, classAttribute: "thy-space" }, queries: [{ propertyName: "items", predicate: ThySpaceItemDirective, read: TemplateRef }], ngImport: i0, template: "<ng-content></ng-content>\n\n<ng-template ngFor let-item let-last=\"last\" let-index=\"index\" [ngForOf]=\"items\">\n <div class=\"thy-space-item\" [style.margin-right.px]=\"last ? null : space\">\n <ng-container [ngTemplateOutlet]=\"item\"></ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
69
67
  }
70
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThySpace, decorators: [{
71
69
  type: Component,
@@ -86,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
86
84
  type: ContentChildren,
87
85
  args: [ThySpaceItemDirective, { read: TemplateRef }]
88
86
  }] } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NwYWNlL3NwYWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zcGFjZS9zcGFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsU0FBUyxFQUFFLGdCQUFnQixFQUFrQixNQUFNLGlCQUFpQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUVILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBRUwsU0FBUyxFQUNULFdBQVcsRUFDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWtCLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFMUQ7Ozs7R0FJRztBQVFILE1BQU0sT0FBTyxxQkFBcUI7SUFDOUIsZ0JBQWUsQ0FBQztJQUVoQixRQUFRLEtBQVUsQ0FBQzs4R0FIVixxQkFBcUI7a0dBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFQakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLGdCQUFnQjtxQkFDMUI7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ25COztBQU9ELE1BQU0sWUFBWSxHQUFtQixJQUFJLENBQUM7QUFFMUMsTUFBTSxVQUFVLEdBQW1ELGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRS9GOzs7O0dBSUc7QUFXSCxNQUFNLE9BQU8sUUFBUyxTQUFRLFVBQVU7SUFLcEM7OztPQUdHO0lBQ0gsSUFBYSxPQUFPLENBQUMsSUFBb0I7UUFDckMsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFTRCx5Q0FBeUM7SUFDekM7O09BRUc7SUFDSCxJQUNJLFFBQVEsQ0FBQyxLQUFhO1FBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFJRCxZQUFvQixHQUFzQjtRQUN0QyxLQUFLLEVBQUUsQ0FBQztRQURRLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBOUJuQyxVQUFLLEdBQVcsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTVDLGlCQUFZLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFVekM7O1dBRUc7UUFHSCxnQkFBVyxHQUFZLEtBQUssQ0FBQztJQWU3QixDQUFDO0lBRUQsUUFBUSxLQUFVLENBQUM7SUFFbkIsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ25FLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQXpDUSxRQUFRO2tHQUFSLFFBQVEsdUhBaUJHLGdCQUFnQixnTEFZbkIscUJBQXFCLFFBQVUsV0FBVyxvREN2Ri9ELGtTQU9BLDRDRGlEYyxLQUFLLG1IQUFFLGdCQUFnQjs7MkZBRXhCLFFBQVE7a0JBVnBCLFNBQVM7K0JBQ0ksV0FBVyxtQkFFSix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLEtBQUssRUFBRSxXQUFXO3FCQUNyQixjQUNXLElBQUksV0FDUCxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQztzRkFXckIsT0FBTztzQkFBbkIsS0FBSztnQkFTTixXQUFXO3NCQUZWLFdBQVc7dUJBQUMsMEJBQTBCOztzQkFDdEMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRbEMsUUFBUTtzQkFEWCxLQUFLO2dCQUt5RCxLQUFLO3NCQUFuRSxlQUFlO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdG9yLCBNaXhpbkJhc2UsIG1peGluVW5zdWJzY3JpYmUsIFRoeVVuc3Vic2NyaWJlIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlTcGFjaW5nU2l6ZSwgZ2V0TnVtZXJpY1NpemUgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIOmXtOi3nee7hOS7tumhue+8jOS9v+eUqOe7k+aehOaAp+aMh+S7pCAqdGh5U3BhY2VJdGVtIOS8oOWFpeaooeadv1xuICogQG5hbWUgdGh5U3BhY2VJdGVtXG4gKiBAb3JkZXIgMjBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGh5U3BhY2VJdGVtXScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1zcGFjZS1pdGVtJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlTcGFjZUl0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge31cbn1cblxuY29uc3QgREVGQVVMVF9TSVpFOiBUaHlTcGFjaW5nU2l6ZSA9ICdtZCc7XG5cbmNvbnN0IF9NaXhpbkJhc2U6IENvbnN0cnVjdG9yPFRoeVVuc3Vic2NyaWJlPiAmIHR5cGVvZiBNaXhpbkJhc2UgPSBtaXhpblVuc3Vic2NyaWJlKE1peGluQmFzZSk7XG5cbi8qKlxuICog6Ze06Led57uE5Lu2XG4gKiBAbmFtZSB0aHktc3BhY2VcbiAqIEBvcmRlciAxMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1zcGFjZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwYWNlLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGh5LXNwYWNlJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVNwYWNlIGV4dGVuZHMgX01peGluQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgcHVibGljIHNwYWNlOiBudW1iZXIgPSBnZXROdW1lcmljU2l6ZShERUZBVUxUX1NJWkUpO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIC8qKlxuICAgICAqIOWkp+Wwj++8jOaUr+aMgSBgemVyb2AgfCBgeHhzYCB8IGB4c2AgfCBgc21gIHwgYG1kYCB8IGBsZ2AgfCBgeGxnYCDlkozoh6rlrprkuYnmlbDlrZflpKflsI9cbiAgICAgKiBAdHlwZSBzdHJpbmcgfCBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5U2l6ZShzaXplOiBUaHlTcGFjaW5nU2l6ZSkge1xuICAgICAgICB0aGlzLnNwYWNlID0gZ2V0TnVtZXJpY1NpemUoc2l6ZSwgREVGQVVMVF9TSVpFKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDpl7Tot53lnoLnm7TmlrnlkJHvvIzpu5jorqTmmK/msLTlubPmlrnlkJFcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoYGNsYXNzLnRoeS1zcGFjZS12ZXJ0aWNhbGApXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgdGh5VmVydGljYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIEBDbGFzc0JpbmRpbmcoYGFsaWduLWl0ZW1zLXt7dmFsdWV9fWApXG4gICAgLyoqXG4gICAgICog5a+56b2Q5pa55byP77yM5Y+v6YCJ5oupIGBzdGFydGAgfCBgZW5kYCB8IGBiYXNlbGluZWAgfCBgY2VudGVyYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUFsaWduKGFsaWduOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIudXBkYXRlQ2xhc3MoYWxpZ24gPyBbYGFsaWduLWl0ZW1zLSR7YWxpZ259YF0gOiBbXSk7XG4gICAgfVxuXG4gICAgQENvbnRlbnRDaGlsZHJlbihUaHlTcGFjZUl0ZW1EaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgaXRlbXMhOiBRdWVyeUxpc3Q8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+PjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge31cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pdGVtcy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1pdGVtIGxldC1sYXN0PVwibGFzdFwiIGxldC1pbmRleD1cImluZGV4XCIgW25nRm9yT2ZdPVwiaXRlbXNcIj5cbiAgPGRpdiBjbGFzcz1cInRoeS1zcGFjZS1pdGVtXCIgW3N0eWxlLm1hcmdpbi1yaWdodC5weF09XCJsYXN0ID8gbnVsbCA6IHNwYWNlXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NwYWNlL3NwYWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zcGFjZS9zcGFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFaEUsT0FBTyxFQUVILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFFTCxTQUFTLEVBQ1QsV0FBVyxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBa0IsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUxRDs7OztHQUlHO0FBUUgsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixnQkFBZSxDQUFDO0lBRWhCLFFBQVEsS0FBVSxDQUFDOzhHQUhWLHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQVBqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsZ0JBQWdCO3FCQUMxQjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7O0FBT0QsTUFBTSxZQUFZLEdBQW1CLElBQUksQ0FBQztBQUUxQzs7OztHQUlHO0FBV0gsTUFBTSxPQUFPLFFBQVE7SUFPakI7OztPQUdHO0lBQ0gsSUFBYSxPQUFPLENBQUMsSUFBb0I7UUFDckMsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFTRCx5Q0FBeUM7SUFDekM7O09BRUc7SUFDSCxJQUNJLFFBQVEsQ0FBQyxLQUFhO1FBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFJRCxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWhDekIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxQyxVQUFLLEdBQVcsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTVDLGlCQUFZLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFVekM7O1dBRUc7UUFHSCxnQkFBVyxHQUFZLEtBQUssQ0FBQztJQWFnQixDQUFDO0lBRTlDLFFBQVEsS0FBVSxDQUFDO0lBRW5CLGtCQUFrQjtRQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hFLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQXpDUSxRQUFRO2tHQUFSLFFBQVEsdUhBbUJHLGdCQUFnQixnTEFZbkIscUJBQXFCLFFBQVUsV0FBVyw2QkN4Ri9ELGtTQU9BLDRDRGdEYyxLQUFLLG1IQUFFLGdCQUFnQjs7MkZBRXhCLFFBQVE7a0JBVnBCLFNBQVM7K0JBQ0ksV0FBVyxtQkFFSix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLEtBQUssRUFBRSxXQUFXO3FCQUNyQixjQUNXLElBQUksV0FDUCxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQztzRkFhckIsT0FBTztzQkFBbkIsS0FBSztnQkFTTixXQUFXO3NCQUZWLFdBQVc7dUJBQUMsMEJBQTBCOztzQkFDdEMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRbEMsUUFBUTtzQkFEWCxLQUFLO2dCQUt5RCxLQUFLO3NCQUFuRSxlQUFlO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlTcGFjaW5nU2l6ZSwgZ2V0TnVtZXJpY1NpemUgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIOmXtOi3nee7hOS7tumhue+8jOS9v+eUqOe7k+aehOaAp+aMh+S7pCAqdGh5U3BhY2VJdGVtIOS8oOWFpeaooeadv1xuICogQG5hbWUgdGh5U3BhY2VJdGVtXG4gKiBAb3JkZXIgMjBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGh5U3BhY2VJdGVtXScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1zcGFjZS1pdGVtJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlTcGFjZUl0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge31cbn1cblxuY29uc3QgREVGQVVMVF9TSVpFOiBUaHlTcGFjaW5nU2l6ZSA9ICdtZCc7XG5cbi8qKlxuICog6Ze06Led57uE5Lu2XG4gKiBAbmFtZSB0aHktc3BhY2VcbiAqIEBvcmRlciAxMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1zcGFjZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwYWNlLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGh5LXNwYWNlJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVNwYWNlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBwdWJsaWMgc3BhY2U6IG51bWJlciA9IGdldE51bWVyaWNTaXplKERFRkFVTFRfU0laRSk7XG5cbiAgICBwcml2YXRlIGhvc3RSZW5kZXJlciA9IHVzZUhvc3RSZW5kZXJlcigpO1xuXG4gICAgLyoqXG4gICAgICog5aSn5bCP77yM5pSv5oyBIGB6ZXJvYCB8IGB4eHNgIHwgYHhzYCB8IGBzbWAgfCBgbWRgIHwgYGxnYCB8IGB4bGdgIOWSjOiHquWumuS5ieaVsOWtl+Wkp+Wwj1xuICAgICAqIEB0eXBlIHN0cmluZyB8IG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlTaXplKHNpemU6IFRoeVNwYWNpbmdTaXplKSB7XG4gICAgICAgIHRoaXMuc3BhY2UgPSBnZXROdW1lcmljU2l6ZShzaXplLCBERUZBVUxUX1NJWkUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOmXtOi3neWeguebtOaWueWQke+8jOm7mOiupOaYr+awtOW5s+aWueWQkVxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZyhgY2xhc3MudGh5LXNwYWNlLXZlcnRpY2FsYClcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICB0aHlWZXJ0aWNhbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gQENsYXNzQmluZGluZyhgYWxpZ24taXRlbXMte3t2YWx1ZX19YClcbiAgICAvKipcbiAgICAgKiDlr7npvZDmlrnlvI/vvIzlj6/pgInmi6kgYHN0YXJ0YCB8IGBlbmRgIHwgYGJhc2VsaW5lYCB8IGBjZW50ZXJgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5QWxpZ24oYWxpZ246IHN0cmluZykge1xuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci51cGRhdGVDbGFzcyhhbGlnbiA/IFtgYWxpZ24taXRlbXMtJHthbGlnbn1gXSA6IFtdKTtcbiAgICB9XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFRoeVNwYWNlSXRlbURpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBpdGVtcyE6IFF1ZXJ5TGlzdDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1zLmNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbjxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtaXRlbSBsZXQtbGFzdD1cImxhc3RcIiBsZXQtaW5kZXg9XCJpbmRleFwiIFtuZ0Zvck9mXT1cIml0ZW1zXCI+XG4gIDxkaXYgY2xhc3M9XCJ0aHktc3BhY2UtaXRlbVwiIFtzdHlsZS5tYXJnaW4tcmlnaHQucHhdPVwibGFzdCA/IG51bGwgOiBzcGFjZVwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,5 +1,6 @@
1
+ import { coerceCssPixelValue } from '@angular/cdk/coercion';
1
2
  import { Component, ContentChild, ElementRef, EventEmitter, Inject, InjectionToken, Input, Optional, Output, TemplateRef, ViewEncapsulation, booleanAttribute } from '@angular/core';
2
- import { coerceCssPixelValue, isArray, isObject } from 'ngx-tethys/util';
3
+ import { isArray, isObject } from 'ngx-tethys/util';
3
4
  import { ThyTableSortDirection } from './table.interface';
4
5
  import * as i0 from "@angular/core";
5
6
  /**
@@ -201,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
201
202
  type: ContentChild,
202
203
  args: [TemplateRef, { static: true }]
203
204
  }] } });
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90YWJsZS90YWJsZS1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBcUIsTUFBTSxtQkFBbUIsQ0FBQzs7QUFPN0U7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyxJQUFJLGNBQWMsQ0FBaUMsbUNBQW1DLENBQUMsQ0FBQztBQUl6STs7OztHQUlHO0FBT0gsTUFBTSxPQUFPLHVCQUF1QjtJQXFCaEM7O09BRUc7SUFDSCxJQUNJLFFBQVEsQ0FBQyxLQUFzQjtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFJRDs7T0FFRztJQUNILElBQ0ksV0FBVyxDQUFDLEtBQXNCO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQW1CRDs7T0FFRztJQUNILElBQ0ksVUFBVSxDQUFDLEtBQVU7UUFDckIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFD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RSxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBS3BDLFVBQVU7c0JBQWxDLE1BQU07dUJBQUMsZUFBZTtnQkFFbUIsaUJBQWlCO3NCQUExRCxZQUFZO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRUEsZUFBZTtzQkFBdEQsWUFBWTt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUdsQyxXQUFXO3NCQURkLFlBQVk7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9pc051bWJlclZhbHVlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBib29sZWFuQXR0cmlidXRlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQ3NzUGl4ZWxWYWx1ZSwgaXNBcnJheSwgaXNPYmplY3QgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgVGh5VGFibGVTb3J0RGlyZWN0aW9uLCBUaHlUYWJsZVNvcnRFdmVudCB9IGZyb20gJy4vdGFibGUuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBJVGh5VGFibGVDb2x1bW5QYXJlbnRDb21wb25lbnQge1xuICAgIHJvd0tleTogc3RyaW5nO1xuICAgIHVwZGF0ZUNvbHVtblNlbGVjdGlvbnMoa2V5OiBzdHJpbmcsIHNlbGVjdGlvbnM6IGFueSk6IHZvaWQ7XG59XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIHVzZWQgdG8gcHJvdmlkZSB0aGUgcGFyZW50IGNvbXBvbmVudCB0byBvcHRpb25zLlxuICovXG5leHBvcnQgY29uc3QgVEhZX1RBQkxFX0NPTFVNTl9QQVJFTlRfQ09NUE9ORU5UID0gbmV3IEluamVjdGlvblRva2VuPElUaHlUYWJsZUNvbHVtblBhcmVudENvbXBvbmVudD4oJ1RIWV9UQUJMRV9DT0xVTU5fUEFSRU5UX0NPTVBPTkVOVCcpO1xuXG5leHBvcnQgdHlwZSBGaXhlZERpcmVjdGlvbiA9ICdsZWZ0JyB8ICdyaWdodCc7XG5cbi8qKlxuICog6KGo5qC85YiX57uE5Lu2XG4gKiBAbmFtZSB0aHktdGFibGUtY29sdW1uXG4gKiBAb3JkZXIgMjBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktdGFibGUtY29sdW1uJyxcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlUYWJsZUNvbHVtbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICog6K6+572u5pWw5o2u5bGe5oCnIEtlee+8jOivu+WPluaVsOe7hOS4reWvueixoeeahOW9k+WJjSBLZXkg5YC8XG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KCd0aHlNb2RlbEtleScpIG1vZGVsID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7liJflkI3vvIzmmL7npLrlnKjooajlpLRcbiAgICAgKiBAdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoJ3RoeVRpdGxlJykgdGl0bGUgPSAnJztcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruWIl+eahOeJueauiuexu+Wei++8jOW6j+WIl+WPt+OAgemAieaLqeahhuOAgeWNlemAieahhuOAgeWIh+aNouaMiemSrlxuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgndGh5VHlwZScpIHR5cGUgPSAnJztcblxuICAgIHB1YmxpYyB3aWR0aDogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7liJfnmoTlrr3luqZcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlXaWR0aCh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgICAgIHRoaXMud2lkdGggPSBjb2VyY2VDc3NQaXhlbFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWluV2lkdGg6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICog6K6+572u5YiX55qE5pyA5bCP5a695bqmXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5TWluV2lkdGgodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xuICAgICAgICB0aGlzLm1pbldpZHRoID0gY29lcmNlQ3NzUGl4ZWxWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6K6+572u5YiX55qE5qC35byPXG4gICAgICovXG4gICAgQElucHV0KCd0aHlDbGFzc05hbWUnKSBjbGFzc05hbWUgPSAnJztcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruWIl+WktOmDqOeahCBDbGFzc++8jOWNsyB0aCDlhYPntKDkuIrnmoTmoLflvI9cbiAgICAgKiBAdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoJ3RoeUhlYWRlckNsYXNzTmFtZScpIGhlYWRlckNsYXNzTmFtZSA9ICcnO1xuXG4gICAgLyoqXG4gICAgICog6K6+572u6Ieq5a6a5LmJ57G75Z6L55qE56aB55So54q25oCBXG4gICAgICogQHR5cGUgYm9vbGVhblxuICAgICAqL1xuICAgIEBJbnB1dCh7IGFsaWFzOiAndGh5RGlzYWJsZWQnLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIHRoeVR5cGUg5Li6IGNoZWNrYm94IOaIluiAhSByYWRpbyDnsbvlnovml7bpgInkuK3nmoTmlbDmja4g77yM5pSv5oyB5Y2V5Liq5a+56LGh77yM5Y2V5LiqIElk77yM5ZCM5pe25pSv5oyB5aSa5LiqIElk77yM5aSa5Liq5a+56LGhXG4gICAgICovXG4gICAgQElucHV0KCd0aHlTZWxlY3Rpb25zJylcbiAgICBzZXQgc2VsZWN0aW9ucyh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9ucyA9IGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9ucyA9IHRoaXMuX3NlbGVjdGlvbnMubWFwKChpdGVtOiBzdHJpbmcgfCBudW1iZXIgfCBvYmplY3QpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNPYmplY3QoaXRlbSkgPyBpdGVtW3RoaXMucGFyZW50LnJvd0tleV0gOiBpdGVtO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2ZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnQudXBkYXRlQ29sdW1uU2VsZWN0aW9ucyh0aGlzLmtleSwgdGhpcy5fc2VsZWN0aW9ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgc2VsZWN0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbnM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIOiuvue9ruaVsOaNruS4uuepuueahOaXtuWAmeaYvuekuueahOaWh+acrFxuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgndGh5RGVmYXVsdFRleHQnKSBkZWZhdWx0VGV4dCA9ICcnO1xuXG4gICAgLyoqXG4gICAgICog6K6+572uIFRyZWUg5qih5byP5LiL5oqY5Y+g5bGV5byA5oyJ6ZKu5bGV56S65YiX77yM5LiN5Lyg6buY6K6k56ys5LiA5YiXXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlFeHBhbmQnLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZXhwYW5kID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgc29ydGFibGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblvIDlkK/liJfmjpLluo/lip/og73vvIjlvIDlkK/ml7YgdGh5TW9kZWxLZXkg5Li6IOW/heS8oO+8iVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeVNvcnRhYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNvcnRhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB0aHlNb2RlbEtleSBpcyByZXF1aXJlZCB3aGVuIHNvcnRhYmxlYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNvcnRhYmxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDpu5jorqTliJfmjpLluo/pobrluo9cbiAgICAgKiBAdHlwZSAnYXNjJyB8ICdkZXNjJyB8ICcnXG4gICAgICovXG4gICAgQElucHV0KCd0aHlTb3J0RGlyZWN0aW9uJykgc29ydERpcmVjdGlvbiA9IFRoeVRhYmxlU29ydERpcmVjdGlvbi5kZWZhdWx0O1xuXG4gICAgLyoqXG4gICAgICog6K6+572u5Zu65a6a5YiXXG4gICAgICovXG4gICAgQElucHV0KCd0aHlGaXhlZCcpIGZpeGVkOiBGaXhlZERpcmVjdGlvbjtcblxuICAgIC8qKlxuICAgICAqIOW9k+WJjeWIl+aYr+WQpuaYr+aTjeS9nOWIl++8jOiuvue9ruS4uiB0cnVlIOaXtuS8mui/veWKoCB0aHktb3BlcmF0aW9uLWxpbmtzIOagt+W8j+exu++8jOaWh+Wtl+WxheS4rVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlPcGVyYXRpb25hbCcsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBvcGVyYXRpb25hbDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOW9k+WJjeWIl+aYr+WQpuaYr+asoeimgeWIl++8jOiuvue9ruS4uiB0cnVlIOaXtuS8mui/veWKoCB0aHktdGFibGUtY29sdW1uLXNlY29uZGFyeSDmoLflvI/nsbvvvIzmloflrZfpopzoibLkuLogJGdyYXktNjAwXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyBhbGlhczogJ3RoeVNlY29uZGFyeScsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzZWNvbmRhcnk6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDliJfmjpLluo/kv67mlLnkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCd0aHlTb3J0Q2hhbmdlJykgc29ydENoYW5nZTogRXZlbnRFbWl0dGVyPFRoeVRhYmxlU29ydEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5VGFibGVTb3J0RXZlbnQ+KCk7XG5cbiAgICBAQ29udGVudENoaWxkKCdoZWFkZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBoZWFkZXJUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBDb250ZW50Q2hpbGQoJ2NlbGwnLCB7IHN0YXRpYzogdHJ1ZSB9KSBjZWxsVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHNldCB0ZW1wbGF0ZVJlZih2YWx1ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5oZWFkZXJUZW1wbGF0ZVJlZiAmJiAhdGhpcy5jZWxsVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNlbGxUZW1wbGF0ZVJlZiA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGtleT86IHN0cmluZztcblxuICAgIHB1YmxpYyBsZWZ0OiBudW1iZXI7XG5cbiAgICBwdWJsaWMgcmlnaHQ6IG51bWJlcjtcblxuICAgIHByaXZhdGUgX3NlbGVjdGlvbnM6IGFueTtcblxuICAgIHByaXZhdGUgX2ZpcnN0Q2hhbmdlID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFRIWV9UQUJMRV9DT0xVTU5fUEFSRU5UX0NPTVBPTkVOVClcbiAgICAgICAgcHVibGljIHBhcmVudDogSVRoeVRhYmxlQ29sdW1uUGFyZW50Q29tcG9uZW50XG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMua2V5ID0gdGhpcy5fZ2VuZXJhdGVLZXkoKTtcbiAgICAgICAgdGhpcy5fZmlyc3RDaGFuZ2UgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZW5lcmF0ZUtleSgpIHtcbiAgICAgICAgcmV0dXJuICdbJCRjb2x1bW5dJyArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMTYpLnNsaWNlKDIsIDEwKTtcbiAgICB9XG59XG4iXX0=
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90YWJsZS90YWJsZS1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0IsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixjQUFjLEVBQ2QsS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sV0FBVyxFQUNYLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUscUJBQXFCLEVBQXFCLE1BQU0sbUJBQW1CLENBQUM7O0FBTzdFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUcsSUFBSSxjQUFjLENBQWlDLG1DQUFtQyxDQUFDLENBQUM7QUFJekk7Ozs7R0FJRztBQU9ILE1BQU0sT0FBTyx1QkFBdUI7SUFxQmhDOztPQUVHO0lBQ0gsSUFDSSxRQUFRLENBQUMsS0FBc0I7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBSUQ7O09BRUc7SUFDSCxJQUNJLFdBQVcsQ0FBQyxLQUFzQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFtQkQ7O09BRUc7SUFDSCxJQUNJLFVBQVUsQ0FBQyxLQUFVO1FBQ3JCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFD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LEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTUEsU0FBUztzQkFBdkUsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUtwQyxVQUFVO3NCQUFsQyxNQUFNO3VCQUFDLGVBQWU7Z0JBRW1CLGlCQUFpQjtzQkFBMUQsWUFBWTt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVBLGVBQWU7c0JBQXRELFlBQVk7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHbEMsV0FBVztzQkFEZCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfaXNOdW1iZXJWYWx1ZSwgY29lcmNlQ3NzUGl4ZWxWYWx1ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzQXJyYXksIGlzT2JqZWN0IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IFRoeVRhYmxlU29ydERpcmVjdGlvbiwgVGh5VGFibGVTb3J0RXZlbnQgfSBmcm9tICcuL3RhYmxlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRoeVRhYmxlQ29sdW1uUGFyZW50Q29tcG9uZW50IHtcbiAgICByb3dLZXk6IHN0cmluZztcbiAgICB1cGRhdGVDb2x1bW5TZWxlY3Rpb25zKGtleTogc3RyaW5nLCBzZWxlY3Rpb25zOiBhbnkpOiB2b2lkO1xufVxuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB1c2VkIHRvIHByb3ZpZGUgdGhlIHBhcmVudCBjb21wb25lbnQgdG8gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IFRIWV9UQUJMRV9DT0xVTU5fUEFSRU5UX0NPTVBPTkVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJVGh5VGFibGVDb2x1bW5QYXJlbnRDb21wb25lbnQ+KCdUSFlfVEFCTEVfQ09MVU1OX1BBUkVOVF9DT01QT05FTlQnKTtcblxuZXhwb3J0IHR5cGUgRml4ZWREaXJlY3Rpb24gPSAnbGVmdCcgfCAncmlnaHQnO1xuXG4vKipcbiAqIOihqOagvOWIl+e7hOS7tlxuICogQG5hbWUgdGh5LXRhYmxlLWNvbHVtblxuICogQG9yZGVyIDIwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXRhYmxlLWNvbHVtbicsXG4gICAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5VGFibGVDb2x1bW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqIOiuvue9ruaVsOaNruWxnuaApyBLZXnvvIzor7vlj5bmlbDnu4TkuK3lr7nosaHnmoTlvZPliY0gS2V5IOWAvFxuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgndGh5TW9kZWxLZXknKSBtb2RlbCA9ICcnO1xuXG4gICAgLyoqXG4gICAgICog6K6+572u5YiX5ZCN77yM5pi+56S65Zyo6KGo5aS0XG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KCd0aHlUaXRsZScpIHRpdGxlID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7liJfnmoTnibnmrornsbvlnovvvIzluo/liJflj7fjgIHpgInmi6nmoYbjgIHljZXpgInmoYbjgIHliIfmjaLmjInpkq5cbiAgICAgKiBAdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoJ3RoeVR5cGUnKSB0eXBlID0gJyc7XG5cbiAgICBwdWJsaWMgd2lkdGg6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICog6K6+572u5YiX55qE5a695bqmXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5V2lkdGgodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xuICAgICAgICB0aGlzLndpZHRoID0gY29lcmNlQ3NzUGl4ZWxWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG1pbldpZHRoOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruWIl+eahOacgOWwj+WuveW6plxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeU1pbldpZHRoKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5taW5XaWR0aCA9IGNvZXJjZUNzc1BpeGVsVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiuvue9ruWIl+eahOagt+W8j1xuICAgICAqL1xuICAgIEBJbnB1dCgndGh5Q2xhc3NOYW1lJykgY2xhc3NOYW1lID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7liJflpLTpg6jnmoQgQ2xhc3PvvIzljbMgdGgg5YWD57Sg5LiK55qE5qC35byPXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KCd0aHlIZWFkZXJDbGFzc05hbWUnKSBoZWFkZXJDbGFzc05hbWUgPSAnJztcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruiHquWumuS5ieexu+Wei+eahOemgeeUqOeKtuaAgVxuICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgKi9cbiAgICBASW5wdXQoeyBhbGlhczogJ3RoeURpc2FibGVkJywgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiB0aHlUeXBlIOS4uiBjaGVja2JveCDmiJbogIUgcmFkaW8g57G75Z6L5pe26YCJ5Lit55qE5pWw5o2uIO+8jOaUr+aMgeWNleS4quWvueixoe+8jOWNleS4qiBJZO+8jOWQjOaXtuaUr+aMgeWkmuS4qiBJZO+8jOWkmuS4quWvueixoVxuICAgICAqL1xuICAgIEBJbnB1dCgndGh5U2VsZWN0aW9ucycpXG4gICAgc2V0IHNlbGVjdGlvbnModmFsdWU6IGFueSkge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbnMgPSBpc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbnMgPSB0aGlzLl9zZWxlY3Rpb25zLm1hcCgoaXRlbTogc3RyaW5nIHwgbnVtYmVyIHwgb2JqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzT2JqZWN0KGl0ZW0pID8gaXRlbVt0aGlzLnBhcmVudC5yb3dLZXldIDogaXRlbTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGFyZW50LnVwZGF0ZUNvbHVtblNlbGVjdGlvbnModGhpcy5rZXksIHRoaXMuX3NlbGVjdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHNlbGVjdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb25zO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiDorr7nva7mlbDmja7kuLrnqbrnmoTml7blgJnmmL7npLrnmoTmlofmnKxcbiAgICAgKiBAdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoJ3RoeURlZmF1bHRUZXh0JykgZGVmYXVsdFRleHQgPSAnJztcblxuICAgIC8qKlxuICAgICAqIOiuvue9riBUcmVlIOaooeW8j+S4i+aKmOWPoOWxleW8gOaMiemSruWxleekuuWIl++8jOS4jeS8oOm7mOiupOesrOS4gOWIl1xuICAgICAqL1xuICAgIEBJbnB1dCh7IGFsaWFzOiAndGh5RXhwYW5kJywgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGV4cGFuZCA9IGZhbHNlO1xuXG4gICAgcHVibGljIHNvcnRhYmxlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5byA5ZCv5YiX5o6S5bqP5Yqf6IO977yI5byA5ZCv5pe2IHRoeU1vZGVsS2V5IOS4uiDlv4XkvKDvvIlcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlTb3J0YWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zb3J0YWJsZSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgdGh5TW9kZWxLZXkgaXMgcmVxdWlyZWQgd2hlbiBzb3J0YWJsZWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zb3J0YWJsZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6buY6K6k5YiX5o6S5bqP6aG65bqPXG4gICAgICogQHR5cGUgJ2FzYycgfCAnZGVzYycgfCAnJ1xuICAgICAqL1xuICAgIEBJbnB1dCgndGh5U29ydERpcmVjdGlvbicpIHNvcnREaXJlY3Rpb24gPSBUaHlUYWJsZVNvcnREaXJlY3Rpb24uZGVmYXVsdDtcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruWbuuWumuWIl1xuICAgICAqL1xuICAgIEBJbnB1dCgndGh5Rml4ZWQnKSBmaXhlZDogRml4ZWREaXJlY3Rpb247XG5cbiAgICAvKipcbiAgICAgKiDlvZPliY3liJfmmK/lkKbmmK/mk43kvZzliJfvvIzorr7nva7kuLogdHJ1ZSDml7bkvJrov73liqAgdGh5LW9wZXJhdGlvbi1saW5rcyDmoLflvI/nsbvvvIzmloflrZflsYXkuK1cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IGFsaWFzOiAndGh5T3BlcmF0aW9uYWwnLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgb3BlcmF0aW9uYWw6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDlvZPliY3liJfmmK/lkKbmmK/mrKHopoHliJfvvIzorr7nva7kuLogdHJ1ZSDml7bkvJrov73liqAgdGh5LXRhYmxlLWNvbHVtbi1zZWNvbmRhcnkg5qC35byP57G777yM5paH5a2X6aKc6Imy5Li6ICRncmF5LTYwMFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICd0aHlTZWNvbmRhcnknLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2Vjb25kYXJ5OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog5YiX5o6S5bqP5L+u5pS55LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgndGh5U29ydENoYW5nZScpIHNvcnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUaHlUYWJsZVNvcnRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRoeVRhYmxlU29ydEV2ZW50PigpO1xuXG4gICAgQENvbnRlbnRDaGlsZCgnaGVhZGVyJywgeyBzdGF0aWM6IHRydWUgfSkgaGVhZGVyVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAQ29udGVudENoaWxkKCdjZWxsJywgeyBzdGF0aWM6IHRydWUgfSkgY2VsbFRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZiwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBzZXQgdGVtcGxhdGVSZWYodmFsdWU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaGVhZGVyVGVtcGxhdGVSZWYgJiYgIXRoaXMuY2VsbFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jZWxsVGVtcGxhdGVSZWYgPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBrZXk/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgbGVmdDogbnVtYmVyO1xuXG4gICAgcHVibGljIHJpZ2h0OiBudW1iZXI7XG5cbiAgICBwcml2YXRlIF9zZWxlY3Rpb25zOiBhbnk7XG5cbiAgICBwcml2YXRlIF9maXJzdENoYW5nZSA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChUSFlfVEFCTEVfQ09MVU1OX1BBUkVOVF9DT01QT05FTlQpXG4gICAgICAgIHB1YmxpYyBwYXJlbnQ6IElUaHlUYWJsZUNvbHVtblBhcmVudENvbXBvbmVudFxuICAgICkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmtleSA9IHRoaXMuX2dlbmVyYXRlS2V5KCk7XG4gICAgICAgIHRoaXMuX2ZpcnN0Q2hhbmdlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVLZXkoKSB7XG4gICAgICAgIHJldHVybiAnWyQkY29sdW1uXScgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDE2KS5zbGljZSgyLCAxMCk7XG4gICAgfVxufVxuIl19