@tolle_/tolle-ui 18.2.30 → 18.3.0

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.
@@ -1,6 +1,7 @@
1
- import { Component, TemplateRef } from '@angular/core';
1
+ import { ChangeDetectorRef, Component, inject, TemplateRef } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { A11yModule } from '@angular/cdk/a11y';
4
+ import { Subscription } from 'rxjs';
4
5
  import { cn } from './utils/cn';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "./modal-ref";
@@ -8,9 +9,13 @@ import * as i2 from "@angular/common";
8
9
  import * as i3 from "@angular/cdk/a11y";
9
10
  export class ModalComponent {
10
11
  ref;
12
+ cdr = inject(ChangeDetectorRef);
13
+ subscription = new Subscription();
11
14
  contentType = 'string';
12
15
  content;
13
16
  modalClasses = '';
17
+ /** True while the exit animation plays, just before the overlay is torn down. */
18
+ closing = false;
14
19
  /** Stable, per-instance ids used to wire dialog ARIA relationships. */
15
20
  _uid = Math.random().toString(36).substr(2, 9);
16
21
  titleId = `tolle-modal-title-${this._uid}`;
@@ -22,16 +27,21 @@ export class ModalComponent {
22
27
  this.content = this.ref.modal.content;
23
28
  this.modalClasses = this.getModalSizeCss();
24
29
  this.determineContentType();
30
+ this.subscription.add(this.ref.closing$.subscribe((closing) => {
31
+ this.closing = closing;
32
+ this.cdr.markForCheck();
33
+ }));
25
34
  }
26
- /** Whether the auto-rendered header (title and/or close button) is shown. */
27
- get hasHeader() {
28
- return !!(this.ref.modal.showCloseButton || this.ref.modal.title);
35
+ ngOnDestroy() {
36
+ this.subscription.unsubscribe();
29
37
  }
30
38
  getModalSizeCss() {
31
39
  const { size } = this.ref.modal;
32
40
  return cn(
33
41
  // Surface: overlay card that never exceeds the viewport (header stays, body scrolls).
34
- 'bg-background text-foreground border border-border shadow-lg relative flex flex-col w-full mx-auto', size === 'fullscreen' ? 'h-screen w-screen rounded-none' : 'rounded-lg max-h-[85vh]',
42
+ 'relative flex w-full mx-auto flex-col gap-4 rounded-lg border border-border bg-background p-6 text-foreground shadow-lg duration-200',
43
+ // Enter/exit animation, driven by `data-state` (see `closing` above).
44
+ 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95', 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95', size === 'fullscreen' ? 'h-screen w-screen rounded-none' : 'max-h-[85vh]',
35
45
  // Sizing scale with explicit max-widths
36
46
  size === 'xs' && 'max-w-[320px]', size === 'sm' && 'max-w-[425px]', size === 'default' && 'max-w-[512px]', size === 'lg' && 'max-w-[1024px]', size === 'xl' && 'max-w-[1280px]');
37
47
  }
@@ -49,6 +59,7 @@ export class ModalComponent {
49
59
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalComponent, deps: [{ token: i1.ModalRef }], target: i0.ɵɵFactoryTarget.Component });
50
60
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ModalComponent, isStandalone: true, selector: "tolle-modal", ngImport: i0, template: `
51
61
  <div [class]="modalClasses" class="pointer-events-auto"
62
+ [attr.data-state]="closing ? 'closed' : 'open'"
52
63
  role="dialog"
53
64
  aria-modal="true"
54
65
  [attr.aria-labelledby]="ref.modal.title ? titleId : null"
@@ -56,25 +67,26 @@ export class ModalComponent {
56
67
  cdkTrapFocus cdkTrapFocusAutoCapture
57
68
  (mousedown)="$event.stopPropagation()">
58
69
 
70
+ <button
71
+ *ngIf="ref.modal.showCloseButton"
72
+ type="button"
73
+ (click)="ref.close()"
74
+ aria-label="Close"
75
+ class="absolute right-4 top-4 grid h-6 w-6 place-items-center rounded-sm text-muted-foreground opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2">
76
+ <i class="ri-close-line text-base" aria-hidden="true"></i>
77
+ </button>
78
+
59
79
  <!-- Header -->
60
- <div *ngIf="hasHeader" class="flex shrink-0 items-start justify-between gap-4 px-6 pt-6 pb-4">
61
- <h2 *ngIf="ref.modal.title" [id]="titleId" class="text-lg font-semibold leading-none tracking-tight text-foreground">
80
+ <div *ngIf="ref.modal.title" class="flex shrink-0 flex-col gap-1.5 pr-8 text-center sm:text-left">
81
+ <h2 [id]="titleId" class="text-lg font-semibold leading-none tracking-tight text-foreground">
62
82
  {{ ref.modal.title }}
63
83
  </h2>
64
- <button
65
- *ngIf="ref.modal.showCloseButton"
66
- type="button"
67
- (click)="ref.close()"
68
- aria-label="Close"
69
- class="-mr-2 -mt-2 ml-auto grid h-8 w-8 shrink-0 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring">
70
- <i class="ri-close-line text-xl"></i>
71
- </button>
72
84
  </div>
73
85
 
74
86
  <!-- Body -->
75
87
  <div class="min-h-0 flex-1 overflow-y-auto">
76
88
  <ng-container [ngSwitch]="contentType">
77
- <p *ngSwitchCase="'string'" [id]="descId" [class]="hasHeader ? 'px-6 pb-6 text-sm leading-relaxed text-muted-foreground' : 'p-6 text-sm leading-relaxed text-muted-foreground'">{{ content }}</p>
89
+ <p *ngSwitchCase="'string'" [id]="descId" class="text-sm leading-relaxed text-muted-foreground">{{ content }}</p>
78
90
 
79
91
  <ng-container *ngSwitchCase="'template'">
80
92
  <ng-container *ngTemplateOutlet="asTemplate; context: ref.modal.context"></ng-container>
@@ -92,6 +104,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
92
104
  type: Component,
93
105
  args: [{ selector: 'tolle-modal', standalone: true, imports: [CommonModule, A11yModule], template: `
94
106
  <div [class]="modalClasses" class="pointer-events-auto"
107
+ [attr.data-state]="closing ? 'closed' : 'open'"
95
108
  role="dialog"
96
109
  aria-modal="true"
97
110
  [attr.aria-labelledby]="ref.modal.title ? titleId : null"
@@ -99,25 +112,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
99
112
  cdkTrapFocus cdkTrapFocusAutoCapture
100
113
  (mousedown)="$event.stopPropagation()">
101
114
 
115
+ <button
116
+ *ngIf="ref.modal.showCloseButton"
117
+ type="button"
118
+ (click)="ref.close()"
119
+ aria-label="Close"
120
+ class="absolute right-4 top-4 grid h-6 w-6 place-items-center rounded-sm text-muted-foreground opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2">
121
+ <i class="ri-close-line text-base" aria-hidden="true"></i>
122
+ </button>
123
+
102
124
  <!-- Header -->
103
- <div *ngIf="hasHeader" class="flex shrink-0 items-start justify-between gap-4 px-6 pt-6 pb-4">
104
- <h2 *ngIf="ref.modal.title" [id]="titleId" class="text-lg font-semibold leading-none tracking-tight text-foreground">
125
+ <div *ngIf="ref.modal.title" class="flex shrink-0 flex-col gap-1.5 pr-8 text-center sm:text-left">
126
+ <h2 [id]="titleId" class="text-lg font-semibold leading-none tracking-tight text-foreground">
105
127
  {{ ref.modal.title }}
106
128
  </h2>
107
- <button
108
- *ngIf="ref.modal.showCloseButton"
109
- type="button"
110
- (click)="ref.close()"
111
- aria-label="Close"
112
- class="-mr-2 -mt-2 ml-auto grid h-8 w-8 shrink-0 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring">
113
- <i class="ri-close-line text-xl"></i>
114
- </button>
115
129
  </div>
116
130
 
117
131
  <!-- Body -->
118
132
  <div class="min-h-0 flex-1 overflow-y-auto">
119
133
  <ng-container [ngSwitch]="contentType">
120
- <p *ngSwitchCase="'string'" [id]="descId" [class]="hasHeader ? 'px-6 pb-6 text-sm leading-relaxed text-muted-foreground' : 'p-6 text-sm leading-relaxed text-muted-foreground'">{{ content }}</p>
134
+ <p *ngSwitchCase="'string'" [id]="descId" class="text-sm leading-relaxed text-muted-foreground">{{ content }}</p>
121
135
 
122
136
  <ng-container *ngSwitchCase="'template'">
123
137
  <ng-container *ngTemplateOutlet="asTemplate; context: ref.modal.context"></ng-container>
@@ -131,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
131
145
  </div>
132
146
  `, styles: [":host{display:contents}\n"] }]
133
147
  }], ctorParameters: () => [{ type: i1.ModalRef }] });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxXQUFXLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7OztBQW9EaEMsTUFBTSxPQUFPLGNBQWM7SUFVTjtJQVRuQixXQUFXLEdBQXdDLFFBQVEsQ0FBQztJQUM1RCxPQUFPLENBQU07SUFDYixZQUFZLEdBQUcsRUFBRSxDQUFDO0lBRWxCLHVFQUF1RTtJQUN0RCxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELE9BQU8sR0FBRyxxQkFBcUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNDLE1BQU0sR0FBRyxvQkFBb0IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBRWxELFlBQW1CLEdBQWE7UUFBYixRQUFHLEdBQUgsR0FBRyxDQUFVO0lBQUcsQ0FBQztJQUVwQyxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxJQUFJLFNBQVM7UUFDWCxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU8sZUFBZTtRQUNyQixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFFaEMsT0FBTyxFQUFFO1FBQ1Asc0ZBQXNGO1FBQ3RGLG9HQUFvRyxFQUVwRyxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUMseUJBQXlCO1FBRXBGLHdDQUF3QztRQUN4QyxJQUFJLEtBQUssSUFBSSxJQUFJLGVBQWUsRUFDaEMsSUFBSSxLQUFLLElBQUksSUFBSSxlQUFlLEVBQ2hDLElBQUksS0FBSyxTQUFTLElBQUksZUFBZSxFQUNyQyxJQUFJLEtBQUssSUFBSSxJQUFJLGdCQUFnQixFQUNqQyxJQUFJLEtBQUssSUFBSSxJQUFJLGdCQUFnQixDQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRO1lBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUM7YUFDN0QsSUFBSSxJQUFJLENBQUMsT0FBTyxZQUFZLFdBQVc7WUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQzs7WUFDdkUsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksVUFBVSxLQUFLLE9BQU8sSUFBSSxDQUFDLE9BQTJCLENBQUMsQ0FBQyxDQUFDO0lBQzdELElBQUksV0FBVyxLQUFLLE9BQU8sSUFBSSxDQUFDLE9BQW9CLENBQUMsQ0FBQyxDQUFDO0lBQzdDLEVBQUUsR0FBRyxFQUFFLENBQUM7d0dBakRQLGNBQWM7NEZBQWQsY0FBYyx1RUE5Q2Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVDVCxrR0F4Q1MsWUFBWSw2dUJBQUUsVUFBVTs7NEZBK0N2QixjQUFjO2tCQWxEMUIsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxZQUN6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUNUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IE1vZGFsUmVmIH0gZnJvbSAnLi9tb2RhbC1yZWYnO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBMTF5TW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzc109XCJtb2RhbENsYXNzZXNcIiBjbGFzcz1cInBvaW50ZXItZXZlbnRzLWF1dG9cIlxuICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICBhcmlhLW1vZGFsPVwidHJ1ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwicmVmLm1vZGFsLnRpdGxlID8gdGl0bGVJZCA6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJjb250ZW50VHlwZSA9PT0gJ3N0cmluZycgPyBkZXNjSWQgOiBudWxsXCJcbiAgICAgIGNka1RyYXBGb2N1cyBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZVxuICAgICAgKG1vdXNlZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cblxuICAgICAgPCEtLSBIZWFkZXIgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaGFzSGVhZGVyXCIgY2xhc3M9XCJmbGV4IHNocmluay0wIGl0ZW1zLXN0YXJ0IGp1c3RpZnktYmV0d2VlbiBnYXAtNCBweC02IHB0LTYgcGItNFwiPlxuICAgICAgICA8aDIgKm5nSWY9XCJyZWYubW9kYWwudGl0bGVcIiBbaWRdPVwidGl0bGVJZFwiIGNsYXNzPVwidGV4dC1sZyBmb250LXNlbWlib2xkIGxlYWRpbmctbm9uZSB0cmFja2luZy10aWdodCB0ZXh0LWZvcmVncm91bmRcIj5cbiAgICAgICAgICB7eyByZWYubW9kYWwudGl0bGUgfX1cbiAgICAgICAgPC9oMj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwicmVmLm1vZGFsLnNob3dDbG9zZUJ1dHRvblwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cInJlZi5jbG9zZSgpXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2VcIlxuICAgICAgICAgIGNsYXNzPVwiLW1yLTIgLW10LTIgbWwtYXV0byBncmlkIGgtOCB3LTggc2hyaW5rLTAgcGxhY2UtaXRlbXMtY2VudGVyIHJvdW5kZWQtbWQgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHRyYW5zaXRpb24tY29sb3JzIGhvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWZvcmVncm91bmQgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmdcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cInJpLWNsb3NlLWxpbmUgdGV4dC14bFwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBCb2R5IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pbi1oLTAgZmxleC0xIG92ZXJmbG93LXktYXV0b1wiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb250ZW50VHlwZVwiPlxuICAgICAgICAgIDxwICpuZ1N3aXRjaENhc2U9XCInc3RyaW5nJ1wiIFtpZF09XCJkZXNjSWRcIiBbY2xhc3NdPVwiaGFzSGVhZGVyID8gJ3B4LTYgcGItNiB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZCB0ZXh0LW11dGVkLWZvcmVncm91bmQnIDogJ3AtNiB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZCB0ZXh0LW11dGVkLWZvcmVncm91bmQnXCI+e3sgY29udGVudCB9fTwvcD5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0ZW1wbGF0ZSdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhc1RlbXBsYXRlOyBjb250ZXh0OiByZWYubW9kYWwuY29udGV4dFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NvbXBvbmVudCdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiYXNDb21wb25lbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbYFxuICAgIDpob3N0IHtcbiAgICAgIGRpc3BsYXk6IGNvbnRlbnRzOyAvKiBUaGlzIG1ha2VzIHRoZSBob3N0IFwiZGlzYXBwZWFyXCIgc28gdGhlIGRpdiB0YXJnZXRzIHRoZSBvdmVybGF5IHBhbmUgZGlyZWN0bHkgKi9cbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29udGVudFR5cGU6ICd0ZW1wbGF0ZScgfCAnc3RyaW5nJyB8ICdjb21wb25lbnQnID0gJ3N0cmluZyc7XG4gIGNvbnRlbnQ6IGFueTtcbiAgbW9kYWxDbGFzc2VzID0gJyc7XG5cbiAgLyoqIFN0YWJsZSwgcGVyLWluc3RhbmNlIGlkcyB1c2VkIHRvIHdpcmUgZGlhbG9nIEFSSUEgcmVsYXRpb25zaGlwcy4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfdWlkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpO1xuICByZWFkb25seSB0aXRsZUlkID0gYHRvbGxlLW1vZGFsLXRpdGxlLSR7dGhpcy5fdWlkfWA7XG4gIHJlYWRvbmx5IGRlc2NJZCA9IGB0b2xsZS1tb2RhbC1kZXNjLSR7dGhpcy5fdWlkfWA7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlZjogTW9kYWxSZWYpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5yZWYubW9kYWwuY29udGVudDtcbiAgICB0aGlzLm1vZGFsQ2xhc3NlcyA9IHRoaXMuZ2V0TW9kYWxTaXplQ3NzKCk7XG4gICAgdGhpcy5kZXRlcm1pbmVDb250ZW50VHlwZSgpO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGF1dG8tcmVuZGVyZWQgaGVhZGVyICh0aXRsZSBhbmQvb3IgY2xvc2UgYnV0dG9uKSBpcyBzaG93bi4gKi9cbiAgZ2V0IGhhc0hlYWRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy5yZWYubW9kYWwuc2hvd0Nsb3NlQnV0dG9uIHx8IHRoaXMucmVmLm1vZGFsLnRpdGxlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW9kYWxTaXplQ3NzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgeyBzaXplIH0gPSB0aGlzLnJlZi5tb2RhbDtcblxuICAgIHJldHVybiBjbihcbiAgICAgIC8vIFN1cmZhY2U6IG92ZXJsYXkgY2FyZCB0aGF0IG5ldmVyIGV4Y2VlZHMgdGhlIHZpZXdwb3J0IChoZWFkZXIgc3RheXMsIGJvZHkgc2Nyb2xscykuXG4gICAgICAnYmctYmFja2dyb3VuZCB0ZXh0LWZvcmVncm91bmQgYm9yZGVyIGJvcmRlci1ib3JkZXIgc2hhZG93LWxnIHJlbGF0aXZlIGZsZXggZmxleC1jb2wgdy1mdWxsIG14LWF1dG8nLFxuXG4gICAgICBzaXplID09PSAnZnVsbHNjcmVlbicgPyAnaC1zY3JlZW4gdy1zY3JlZW4gcm91bmRlZC1ub25lJyA6ICdyb3VuZGVkLWxnIG1heC1oLVs4NXZoXScsXG5cbiAgICAgIC8vIFNpemluZyBzY2FsZSB3aXRoIGV4cGxpY2l0IG1heC13aWR0aHNcbiAgICAgIHNpemUgPT09ICd4cycgJiYgJ21heC13LVszMjBweF0nLFxuICAgICAgc2l6ZSA9PT0gJ3NtJyAmJiAnbWF4LXctWzQyNXB4XScsXG4gICAgICBzaXplID09PSAnZGVmYXVsdCcgJiYgJ21heC13LVs1MTJweF0nLFxuICAgICAgc2l6ZSA9PT0gJ2xnJyAmJiAnbWF4LXctWzEwMjRweF0nLFxuICAgICAgc2l6ZSA9PT0gJ3hsJyAmJiAnbWF4LXctWzEyODBweF0nXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0ZXJtaW5lQ29udGVudFR5cGUoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmNvbnRlbnQgPT09ICdzdHJpbmcnKSB0aGlzLmNvbnRlbnRUeXBlID0gJ3N0cmluZyc7XG4gICAgZWxzZSBpZiAodGhpcy5jb250ZW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHRoaXMuY29udGVudFR5cGUgPSAndGVtcGxhdGUnO1xuICAgIGVsc2UgdGhpcy5jb250ZW50VHlwZSA9ICdjb21wb25lbnQnO1xuICB9XG5cbiAgZ2V0IGFzVGVtcGxhdGUoKSB7IHJldHVybiB0aGlzLmNvbnRlbnQgYXMgVGVtcGxhdGVSZWY8YW55PjsgfVxuICBnZXQgYXNDb21wb25lbnQoKSB7IHJldHVybiB0aGlzLmNvbnRlbnQgYXMgVHlwZTxhbnk+OyB9XG4gIHByb3RlY3RlZCBjbiA9IGNuO1xufVxuIl19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLFdBQVcsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7QUFzRGhDLE1BQU0sT0FBTyxjQUFjO0lBZU47SUFkRixHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFbkQsV0FBVyxHQUF3QyxRQUFRLENBQUM7SUFDNUQsT0FBTyxDQUFNO0lBQ2IsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUNsQixpRkFBaUY7SUFDakYsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUVoQix1RUFBdUU7SUFDdEQsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RCxPQUFPLEdBQUcscUJBQXFCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQyxNQUFNLEdBQUcsb0JBQW9CLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVsRCxZQUFtQixHQUFhO1FBQWIsUUFBRyxHQUFILEdBQUcsQ0FBVTtJQUFHLENBQUM7SUFFcEMsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRTVCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBRWhDLE9BQU8sRUFBRTtRQUNQLHNGQUFzRjtRQUN0RixzSUFBc0k7UUFFdEksc0VBQXNFO1FBQ3RFLHVGQUF1RixFQUN2RixnR0FBZ0csRUFFaEcsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLGNBQWM7UUFFekUsd0NBQXdDO1FBQ3hDLElBQUksS0FBSyxJQUFJLElBQUksZUFBZSxFQUNoQyxJQUFJLEtBQUssSUFBSSxJQUFJLGVBQWUsRUFDaEMsSUFBSSxLQUFLLFNBQVMsSUFBSSxlQUFlLEVBQ3JDLElBQUksS0FBSyxJQUFJLElBQUksZ0JBQWdCLEVBQ2pDLElBQUksS0FBSyxJQUFJLElBQUksZ0JBQWdCLENBQ2xDLENBQUM7SUFDSixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFFBQVE7WUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQzthQUM3RCxJQUFJLElBQUksQ0FBQyxPQUFPLFlBQVksV0FBVztZQUFFLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDOztZQUN2RSxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxVQUFVLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBMkIsQ0FBQyxDQUFDLENBQUM7SUFDN0QsSUFBSSxXQUFXLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBb0IsQ0FBQyxDQUFDLENBQUM7SUFDN0MsRUFBRSxHQUFHLEVBQUUsQ0FBQzt3R0FoRVAsY0FBYzs0RkFBZCxjQUFjLHVFQWhEZjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Q1Qsa0dBMUNTLFlBQVksNnVCQUFFLFVBQVU7OzRGQWlEdkIsY0FBYztrQkFwRDFCLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsWUFDekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUNUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNb2RhbFJlZiB9IGZyb20gJy4vbW9kYWwtcmVmJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLW1vZGFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQTExeU1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbY2xhc3NdPVwibW9kYWxDbGFzc2VzXCIgY2xhc3M9XCJwb2ludGVyLWV2ZW50cy1hdXRvXCJcbiAgICAgIFthdHRyLmRhdGEtc3RhdGVdPVwiY2xvc2luZyA/ICdjbG9zZWQnIDogJ29wZW4nXCJcbiAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cInJlZi5tb2RhbC50aXRsZSA/IHRpdGxlSWQgOiBudWxsXCJcbiAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiY29udGVudFR5cGUgPT09ICdzdHJpbmcnID8gZGVzY0lkIDogbnVsbFwiXG4gICAgICBjZGtUcmFwRm9jdXMgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVcbiAgICAgIChtb3VzZWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJyZWYubW9kYWwuc2hvd0Nsb3NlQnV0dG9uXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJyZWYuY2xvc2UoKVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZVwiXG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgcmlnaHQtNCB0b3AtNCBncmlkIGgtNiB3LTYgcGxhY2UtaXRlbXMtY2VudGVyIHJvdW5kZWQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIG9wYWNpdHktNzAgcmluZy1vZmZzZXQtYmFja2dyb3VuZCB0cmFuc2l0aW9uLW9wYWNpdHkgaG92ZXI6b3BhY2l0eS0xMDAgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yXCI+XG4gICAgICAgIDxpIGNsYXNzPVwicmktY2xvc2UtbGluZSB0ZXh0LWJhc2VcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPCEtLSBIZWFkZXIgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPVwicmVmLm1vZGFsLnRpdGxlXCIgY2xhc3M9XCJmbGV4IHNocmluay0wIGZsZXgtY29sIGdhcC0xLjUgcHItOCB0ZXh0LWNlbnRlciBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgPGgyIFtpZF09XCJ0aXRsZUlkXCIgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbGVhZGluZy1ub25lIHRyYWNraW5nLXRpZ2h0IHRleHQtZm9yZWdyb3VuZFwiPlxuICAgICAgICAgIHt7IHJlZi5tb2RhbC50aXRsZSB9fVxuICAgICAgICA8L2gyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQm9keSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaW4taC0wIGZsZXgtMSBvdmVyZmxvdy15LWF1dG9cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29udGVudFR5cGVcIj5cbiAgICAgICAgICA8cCAqbmdTd2l0Y2hDYXNlPVwiJ3N0cmluZydcIiBbaWRdPVwiZGVzY0lkXCIgY2xhc3M9XCJ0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyBjb250ZW50IH19PC9wPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RlbXBsYXRlJ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFzVGVtcGxhdGU7IGNvbnRleHQ6IHJlZi5tb2RhbC5jb250ZXh0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29tcG9uZW50J1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJhc0NvbXBvbmVudFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgOmhvc3Qge1xuICAgICAgZGlzcGxheTogY29udGVudHM7IC8qIFRoaXMgbWFrZXMgdGhlIGhvc3QgXCJkaXNhcHBlYXJcIiBzbyB0aGUgZGl2IHRhcmdldHMgdGhlIG92ZXJsYXkgcGFuZSBkaXJlY3RseSAqL1xuICAgIH1cbiAgYF1cbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29udGVudFR5cGU6ICd0ZW1wbGF0ZScgfCAnc3RyaW5nJyB8ICdjb21wb25lbnQnID0gJ3N0cmluZyc7XG4gIGNvbnRlbnQ6IGFueTtcbiAgbW9kYWxDbGFzc2VzID0gJyc7XG4gIC8qKiBUcnVlIHdoaWxlIHRoZSBleGl0IGFuaW1hdGlvbiBwbGF5cywganVzdCBiZWZvcmUgdGhlIG92ZXJsYXkgaXMgdG9ybiBkb3duLiAqL1xuICBjbG9zaW5nID0gZmFsc2U7XG5cbiAgLyoqIFN0YWJsZSwgcGVyLWluc3RhbmNlIGlkcyB1c2VkIHRvIHdpcmUgZGlhbG9nIEFSSUEgcmVsYXRpb25zaGlwcy4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfdWlkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpO1xuICByZWFkb25seSB0aXRsZUlkID0gYHRvbGxlLW1vZGFsLXRpdGxlLSR7dGhpcy5fdWlkfWA7XG4gIHJlYWRvbmx5IGRlc2NJZCA9IGB0b2xsZS1tb2RhbC1kZXNjLSR7dGhpcy5fdWlkfWA7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlZjogTW9kYWxSZWYpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5yZWYubW9kYWwuY29udGVudDtcbiAgICB0aGlzLm1vZGFsQ2xhc3NlcyA9IHRoaXMuZ2V0TW9kYWxTaXplQ3NzKCk7XG4gICAgdGhpcy5kZXRlcm1pbmVDb250ZW50VHlwZSgpO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5yZWYuY2xvc2luZyQuc3Vic2NyaWJlKChjbG9zaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2luZyA9IGNsb3Npbmc7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW9kYWxTaXplQ3NzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgeyBzaXplIH0gPSB0aGlzLnJlZi5tb2RhbDtcblxuICAgIHJldHVybiBjbihcbiAgICAgIC8vIFN1cmZhY2U6IG92ZXJsYXkgY2FyZCB0aGF0IG5ldmVyIGV4Y2VlZHMgdGhlIHZpZXdwb3J0IChoZWFkZXIgc3RheXMsIGJvZHkgc2Nyb2xscykuXG4gICAgICAncmVsYXRpdmUgZmxleCB3LWZ1bGwgbXgtYXV0byBmbGV4LWNvbCBnYXAtNCByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLWJhY2tncm91bmQgcC02IHRleHQtZm9yZWdyb3VuZCBzaGFkb3ctbGcgZHVyYXRpb24tMjAwJyxcblxuICAgICAgLy8gRW50ZXIvZXhpdCBhbmltYXRpb24sIGRyaXZlbiBieSBgZGF0YS1zdGF0ZWAgKHNlZSBgY2xvc2luZ2AgYWJvdmUpLlxuICAgICAgJ2RhdGEtW3N0YXRlPW9wZW5dOmFuaW1hdGUtaW4gZGF0YS1bc3RhdGU9b3Blbl06ZmFkZS1pbi0wIGRhdGEtW3N0YXRlPW9wZW5dOnpvb20taW4tOTUnLFxuICAgICAgJ2RhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wIGRhdGEtW3N0YXRlPWNsb3NlZF06em9vbS1vdXQtOTUnLFxuXG4gICAgICBzaXplID09PSAnZnVsbHNjcmVlbicgPyAnaC1zY3JlZW4gdy1zY3JlZW4gcm91bmRlZC1ub25lJyA6ICdtYXgtaC1bODV2aF0nLFxuXG4gICAgICAvLyBTaXppbmcgc2NhbGUgd2l0aCBleHBsaWNpdCBtYXgtd2lkdGhzXG4gICAgICBzaXplID09PSAneHMnICYmICdtYXgtdy1bMzIwcHhdJyxcbiAgICAgIHNpemUgPT09ICdzbScgJiYgJ21heC13LVs0MjVweF0nLFxuICAgICAgc2l6ZSA9PT0gJ2RlZmF1bHQnICYmICdtYXgtdy1bNTEycHhdJyxcbiAgICAgIHNpemUgPT09ICdsZycgJiYgJ21heC13LVsxMDI0cHhdJyxcbiAgICAgIHNpemUgPT09ICd4bCcgJiYgJ21heC13LVsxMjgwcHhdJ1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGRldGVybWluZUNvbnRlbnRUeXBlKCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5jb250ZW50ID09PSAnc3RyaW5nJykgdGhpcy5jb250ZW50VHlwZSA9ICdzdHJpbmcnO1xuICAgIGVsc2UgaWYgKHRoaXMuY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB0aGlzLmNvbnRlbnRUeXBlID0gJ3RlbXBsYXRlJztcbiAgICBlbHNlIHRoaXMuY29udGVudFR5cGUgPSAnY29tcG9uZW50JztcbiAgfVxuXG4gIGdldCBhc1RlbXBsYXRlKCkgeyByZXR1cm4gdGhpcy5jb250ZW50IGFzIFRlbXBsYXRlUmVmPGFueT47IH1cbiAgZ2V0IGFzQ29tcG9uZW50KCkgeyByZXR1cm4gdGhpcy5jb250ZW50IGFzIFR5cGU8YW55PjsgfVxuICBwcm90ZWN0ZWQgY24gPSBjbjtcbn1cbiJdfQ==
@@ -1,29 +1,2 @@
1
- export class Modal {
2
- /** The content to display (String, Component, or Template) */
3
- content;
4
- /** Optional title for the standard header */
5
- title;
6
- /** * Predefined size scale.
7
- * - xs: 320px (Mobile alerts)
8
- * - sm: 425px (Standard dialogs)
9
- * - default: 544px (Forms)
10
- * - lg: 90% / 1024px (Data tables)
11
- * - xl: 1280px (Large forms, dashboards)
12
- * - fullscreen: 100vw/100vh (Complex workflows)
13
- */
14
- size = 'default';
15
- /** * If true (default), clicking the backdrop closes the modal.
16
- * Set to false for "blocking" modals (e.g., Terms of Service).
17
- */
18
- backdropClose = true;
19
- /** * Data to pass to a Component content.
20
- * Accessed via @Input() in the child component.
21
- */
22
- data;
23
- /** * Context to pass to a TemplateRef content.
24
- * Accessed via `let-val` in the HTML.
25
- */
26
- context;
27
- showCloseButton = true;
28
- }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL21vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxLQUFLO0lBQ2hCLDhEQUE4RDtJQUM5RCxPQUFPLENBQXlDO0lBRWhELDZDQUE2QztJQUM3QyxLQUFLLENBQVU7SUFFZjs7Ozs7OztPQU9HO0lBQ0gsSUFBSSxHQUEwRCxTQUFTLENBQUM7SUFFeEU7O09BRUc7SUFDSCxhQUFhLEdBQWEsSUFBSSxDQUFDO0lBRS9COztPQUVHO0lBQ0gsSUFBSSxDQUEwQjtJQUU5Qjs7T0FFRztJQUNILE9BQU8sQ0FBSztJQUVaLGVBQWUsR0FBYSxJQUFJLENBQUM7Q0FDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiwgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBjbGFzcyBNb2RhbDxUID0gYW55PiB7XG4gIC8qKiBUaGUgY29udGVudCB0byBkaXNwbGF5IChTdHJpbmcsIENvbXBvbmVudCwgb3IgVGVtcGxhdGUpICovXG4gIGNvbnRlbnQhOiBzdHJpbmcgfCBUeXBlPGFueT4gfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKiBPcHRpb25hbCB0aXRsZSBmb3IgdGhlIHN0YW5kYXJkIGhlYWRlciAqL1xuICB0aXRsZT86IHN0cmluZztcblxuICAvKiogKiBQcmVkZWZpbmVkIHNpemUgc2NhbGUuXG4gICAqIC0geHM6IDMyMHB4IChNb2JpbGUgYWxlcnRzKVxuICAgKiAtIHNtOiA0MjVweCAoU3RhbmRhcmQgZGlhbG9ncylcbiAgICogLSBkZWZhdWx0OiA1NDRweCAoRm9ybXMpXG4gICAqIC0gbGc6IDkwJSAvIDEwMjRweCAoRGF0YSB0YWJsZXMpXG4gICAqIC0geGw6IDEyODBweCAoTGFyZ2UgZm9ybXMsIGRhc2hib2FyZHMpXG4gICAqIC0gZnVsbHNjcmVlbjogMTAwdncvMTAwdmggKENvbXBsZXggd29ya2Zsb3dzKVxuICAgKi9cbiAgc2l6ZT86ICd4cycgfCAnc20nIHwgJ2RlZmF1bHQnIHwgJ2xnJyB8ICd4bCcgfCAnZnVsbHNjcmVlbicgPSAnZGVmYXVsdCc7XG5cbiAgLyoqICogSWYgdHJ1ZSAoZGVmYXVsdCksIGNsaWNraW5nIHRoZSBiYWNrZHJvcCBjbG9zZXMgdGhlIG1vZGFsLlxuICAgKiBTZXQgdG8gZmFsc2UgZm9yIFwiYmxvY2tpbmdcIiBtb2RhbHMgKGUuZy4sIFRlcm1zIG9mIFNlcnZpY2UpLlxuICAgKi9cbiAgYmFja2Ryb3BDbG9zZT86IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKiAqIERhdGEgdG8gcGFzcyB0byBhIENvbXBvbmVudCBjb250ZW50LlxuICAgKiBBY2Nlc3NlZCB2aWEgQElucHV0KCkgaW4gdGhlIGNoaWxkIGNvbXBvbmVudC5cbiAgICovXG4gIGRhdGE/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIC8qKiAqIENvbnRleHQgdG8gcGFzcyB0byBhIFRlbXBsYXRlUmVmIGNvbnRlbnQuXG4gICAqIEFjY2Vzc2VkIHZpYSBgbGV0LXZhbGAgaW4gdGhlIEhUTUwuXG4gICAqL1xuICBjb250ZXh0PzogVDtcblxuICBzaG93Q2xvc2VCdXR0b24/OiBib29sZWFuID0gdHJ1ZTtcbn1cbiJdfQ==
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL21vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiwgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgYE1vZGFsU2VydmljZS5vcGVuKClgLiBBbHdheXMgcGFzc2VkIGFzIGEgcGxhaW4gb2JqZWN0XG4gKiBsaXRlcmFsLCBzbyB1bnNldCBmaWVsZHMgZmFsbCBiYWNrIHRvIGBNT0RBTF9ERUZBVUxUU2AgaW4gYG1vZGFsLnNlcnZpY2UudHNgXG4gKiByYXRoZXIgdGhhbiBhIGNsYXNzIGZpZWxkIGluaXRpYWxpemVyIOKAlCB0aG9zZSBuZXZlciBydW4gZm9yIGEgbGl0ZXJhbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb2RhbDxUID0gYW55PiB7XG4gIC8qKiBUaGUgY29udGVudCB0byBkaXNwbGF5IChTdHJpbmcsIENvbXBvbmVudCwgb3IgVGVtcGxhdGUpICovXG4gIGNvbnRlbnQ6IHN0cmluZyB8IFR5cGU8YW55PiB8IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqIE9wdGlvbmFsIHRpdGxlIGZvciB0aGUgc3RhbmRhcmQgaGVhZGVyICovXG4gIHRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKiAqIFByZWRlZmluZWQgc2l6ZSBzY2FsZS5cbiAgICogLSB4czogMzIwcHggKE1vYmlsZSBhbGVydHMpXG4gICAqIC0gc206IDQyNXB4IChTdGFuZGFyZCBkaWFsb2dzKVxuICAgKiAtIGRlZmF1bHQ6IDUxMnB4IChGb3JtcylcbiAgICogLSBsZzogMTAyNHB4IChEYXRhIHRhYmxlcylcbiAgICogLSB4bDogMTI4MHB4IChMYXJnZSBmb3JtcywgZGFzaGJvYXJkcylcbiAgICogLSBmdWxsc2NyZWVuOiAxMDB2dy8xMDB2aCAoQ29tcGxleCB3b3JrZmxvd3MpXG4gICAqL1xuICBzaXplPzogJ3hzJyB8ICdzbScgfCAnZGVmYXVsdCcgfCAnbGcnIHwgJ3hsJyB8ICdmdWxsc2NyZWVuJztcblxuICAvKiogKiBJZiB0cnVlIChkZWZhdWx0KSwgY2xpY2tpbmcgdGhlIGJhY2tkcm9wIGNsb3NlcyB0aGUgbW9kYWwuXG4gICAqIFNldCB0byBmYWxzZSBmb3IgXCJibG9ja2luZ1wiIG1vZGFscyAoZS5nLiwgVGVybXMgb2YgU2VydmljZSkuXG4gICAqL1xuICBiYWNrZHJvcENsb3NlPzogYm9vbGVhbjtcblxuICAvKiogKiBEYXRhIHRvIHBhc3MgdG8gYSBDb21wb25lbnQgY29udGVudC5cbiAgICogQWNjZXNzZWQgdmlhIEBJbnB1dCgpIGluIHRoZSBjaGlsZCBjb21wb25lbnQuXG4gICAqL1xuICBkYXRhPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICAvKiogKiBDb250ZXh0IHRvIHBhc3MgdG8gYSBUZW1wbGF0ZVJlZiBjb250ZW50LlxuICAgKiBBY2Nlc3NlZCB2aWEgYGxldC12YWxgIGluIHRoZSBIVE1MLlxuICAgKi9cbiAgY29udGV4dD86IFQ7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGJ1aWx0LWluIGNvcm5lciBjbG9zZSBidXR0b24gcmVuZGVycy4gRGVmYXVsdHMgdG8gdHJ1ZS4gKi9cbiAgc2hvd0Nsb3NlQnV0dG9uPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -6,6 +6,16 @@ import { ModalComponent } from './modal.component';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/cdk/overlay";
8
8
  import * as i2 from "./modal-stack.service";
9
+ /**
10
+ * `open()` always receives a plain object literal, never a `new Modal()`
11
+ * instance, so a class field initializer would never actually apply — these
12
+ * are the real defaults, merged in explicitly below.
13
+ */
14
+ const MODAL_DEFAULTS = {
15
+ size: 'default',
16
+ backdropClose: true,
17
+ showCloseButton: true,
18
+ };
9
19
  export class ModalService {
10
20
  overlay;
11
21
  injector;
@@ -16,12 +26,13 @@ export class ModalService {
16
26
  this.stack = stack;
17
27
  }
18
28
  open(config) {
29
+ const resolved = { ...MODAL_DEFAULTS, ...config };
19
30
  // 0. Remember what was focused so we can restore it after the modal closes.
20
31
  const previouslyFocused = document.activeElement;
21
32
  // 1. Create the Overlay (DOM placeholder)
22
33
  const overlayRef = this.createOverlay();
23
34
  // 2. Create the Controller (Ref)
24
- const modalRef = new ModalRef(overlayRef, config, this.stack);
35
+ const modalRef = new ModalRef(overlayRef, resolved, this.stack);
25
36
  // 3. Create Injector to allow the Component to access the Ref
26
37
  const injector = Injector.create({
27
38
  parent: this.injector,
@@ -30,7 +41,7 @@ export class ModalService {
30
41
  // Escape-to-close: mirror the backdrop close path, but only for
31
42
  // non-blocking modals (backdropClose !== false).
32
43
  overlayRef.keydownEvents().subscribe((event) => {
33
- if (event.key === 'Escape' && config.backdropClose !== false) {
44
+ if (event.key === 'Escape' && resolved.backdropClose) {
34
45
  event.preventDefault();
35
46
  modalRef.close();
36
47
  }
@@ -40,6 +51,9 @@ export class ModalService {
40
51
  // 4. Attach the UI Component to the Overlay
41
52
  const portal = new ComponentPortal(ModalComponent, null, injector);
42
53
  overlayRef.attach(portal);
54
+ // The backdrop element only exists once attached — setting this any
55
+ // earlier (e.g. in ModalRef's constructor) would silently no-op.
56
+ overlayRef.backdropElement?.setAttribute('data-state', 'open');
43
57
  return modalRef;
44
58
  }
45
59
  /** Global helper to close everything */
@@ -50,7 +64,15 @@ export class ModalService {
50
64
  createOverlay() {
51
65
  const config = new OverlayConfig({
52
66
  hasBackdrop: true,
53
- backdropClass: ['cdk-overlay-backdrop', 'bg-black/80', 'backdrop-blur-sm'],
67
+ backdropClass: [
68
+ 'cdk-overlay-backdrop',
69
+ 'bg-black/80',
70
+ 'backdrop-blur-sm',
71
+ 'data-[state=open]:animate-in',
72
+ 'data-[state=open]:fade-in-0',
73
+ 'data-[state=closed]:animate-out',
74
+ 'data-[state=closed]:fade-out-0',
75
+ ],
54
76
  panelClass: [
55
77
  'w-full',
56
78
  'h-full',
@@ -74,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
74
96
  type: Injectable,
75
97
  args: [{ providedIn: 'root' }]
76
98
  }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.Injector }, { type: i2.ModalStackService }] });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBSW5ELE1BQU0sT0FBTyxZQUFZO0lBRWI7SUFDQTtJQUNBO0lBSFYsWUFDVSxPQUFnQixFQUNoQixRQUFrQixFQUNsQixLQUF3QjtRQUZ4QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7SUFDL0IsQ0FBQztJQUVKLElBQUksQ0FBVSxNQUFhO1FBQ3pCLDRFQUE0RTtRQUM1RSxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxhQUFtQyxDQUFDO1FBRXZFLDBDQUEwQztRQUMxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFeEMsaUNBQWlDO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFJLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpFLDhEQUE4RDtRQUM5RCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQy9CLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNyQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDO1NBQ3ZELENBQUMsQ0FBQztRQUVILGdFQUFnRTtRQUNoRSxpREFBaUQ7UUFDakQsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUM1RCxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxhQUFhLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQzdELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILDhEQUE4RDtRQUM5RCxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV2RSw0Q0FBNEM7UUFDNUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNuRSxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTFCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCx3Q0FBd0M7SUFDeEMsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELG1CQUFtQjtJQUNYLGFBQWE7UUFDbkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxhQUFhLENBQUM7WUFDL0IsV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixDQUFDO1lBQzFFLFVBQVUsRUFBRTtnQkFDVixRQUFRO2dCQUNSLFFBQVE7Z0JBQ1IsTUFBTTtnQkFDTixjQUFjO2dCQUNkLGdCQUFnQjtnQkFDaEIscUJBQXFCO2FBQ3RCO1lBQ0QsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1lBQ3JELGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2lCQUN0QyxNQUFNLEVBQUU7aUJBQ1Isa0JBQWtCLEVBQUU7aUJBQ3BCLGdCQUFnQixFQUFFO1NBQ3RCLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsQ0FBQzt3R0FwRVUsWUFBWTs0R0FBWixZQUFZLGNBREMsTUFBTTs7NEZBQ25CLFlBQVk7a0JBRHhCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IE1vZGFsIH0gZnJvbSAnLi9tb2RhbCc7XG5pbXBvcnQgeyBNb2RhbFJlZiB9IGZyb20gJy4vbW9kYWwtcmVmJztcbmltcG9ydCB7IE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxTdGFja1NlcnZpY2UgfSBmcm9tICcuL21vZGFsLXN0YWNrLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE1vZGFsU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHN0YWNrOiBNb2RhbFN0YWNrU2VydmljZVxuICApIHt9XG5cbiAgb3BlbjxSID0gYW55Pihjb25maWc6IE1vZGFsKTogTW9kYWxSZWY8Uj4ge1xuICAgIC8vIDAuIFJlbWVtYmVyIHdoYXQgd2FzIGZvY3VzZWQgc28gd2UgY2FuIHJlc3RvcmUgaXQgYWZ0ZXIgdGhlIG1vZGFsIGNsb3Nlcy5cbiAgICBjb25zdCBwcmV2aW91c2x5Rm9jdXNlZCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgLy8gMS4gQ3JlYXRlIHRoZSBPdmVybGF5IChET00gcGxhY2Vob2xkZXIpXG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuY3JlYXRlT3ZlcmxheSgpO1xuXG4gICAgLy8gMi4gQ3JlYXRlIHRoZSBDb250cm9sbGVyIChSZWYpXG4gICAgY29uc3QgbW9kYWxSZWYgPSBuZXcgTW9kYWxSZWY8Uj4ob3ZlcmxheVJlZiwgY29uZmlnLCB0aGlzLnN0YWNrKTtcblxuICAgIC8vIDMuIENyZWF0ZSBJbmplY3RvciB0byBhbGxvdyB0aGUgQ29tcG9uZW50IHRvIGFjY2VzcyB0aGUgUmVmXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBNb2RhbFJlZiwgdXNlVmFsdWU6IG1vZGFsUmVmIH1dXG4gICAgfSk7XG5cbiAgICAvLyBFc2NhcGUtdG8tY2xvc2U6IG1pcnJvciB0aGUgYmFja2Ryb3AgY2xvc2UgcGF0aCwgYnV0IG9ubHkgZm9yXG4gICAgLy8gbm9uLWJsb2NraW5nIG1vZGFscyAoYmFja2Ryb3BDbG9zZSAhPT0gZmFsc2UpLlxuICAgIG92ZXJsYXlSZWYua2V5ZG93bkV2ZW50cygpLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnICYmIGNvbmZpZy5iYWNrZHJvcENsb3NlICE9PSBmYWxzZSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBtb2RhbFJlZi5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gUmVzdG9yZSBmb2N1cyB0byB0aGUgdHJpZ2dlciBvbmNlIHRoZSBvdmVybGF5IGlzIHRvcm4gZG93bi5cbiAgICBvdmVybGF5UmVmLmRldGFjaG1lbnRzKCkuc3Vic2NyaWJlKCgpID0+IHByZXZpb3VzbHlGb2N1c2VkPy5mb2N1cz8uKCkpO1xuXG4gICAgLy8gNC4gQXR0YWNoIHRoZSBVSSBDb21wb25lbnQgdG8gdGhlIE92ZXJsYXlcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKE1vZGFsQ29tcG9uZW50LCBudWxsLCBpbmplY3Rvcik7XG4gICAgb3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcblxuICAgIHJldHVybiBtb2RhbFJlZjtcbiAgfVxuXG4gIC8qKiBHbG9iYWwgaGVscGVyIHRvIGNsb3NlIGV2ZXJ5dGhpbmcgKi9cbiAgY2xvc2VBbGwoKSB7XG4gICAgdGhpcy5zdGFjay5jbG9zZUFsbCgpO1xuICB9XG5cbiAgLy8gbW9kYWwuc2VydmljZS50c1xuICBwcml2YXRlIGNyZWF0ZU92ZXJsYXkoKTogT3ZlcmxheVJlZiB7XG4gICAgY29uc3QgY29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiBbJ2Nkay1vdmVybGF5LWJhY2tkcm9wJywgJ2JnLWJsYWNrLzgwJywgJ2JhY2tkcm9wLWJsdXItc20nXSxcbiAgICAgIHBhbmVsQ2xhc3M6IFtcbiAgICAgICAgJ3ctZnVsbCcsXG4gICAgICAgICdoLWZ1bGwnLFxuICAgICAgICAnZmxleCcsXG4gICAgICAgICdpdGVtcy1jZW50ZXInLFxuICAgICAgICAnanVzdGlmeS1jZW50ZXInLFxuICAgICAgICAncG9pbnRlci1ldmVudHMtbm9uZSdcbiAgICAgIF0sXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpXG4gICAgICAgIC5nbG9iYWwoKVxuICAgICAgICAuY2VudGVySG9yaXpvbnRhbGx5KClcbiAgICAgICAgLmNlbnRlclZlcnRpY2FsbHkoKVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheS5jcmVhdGUoY29uZmlnKTtcbiAgfVxuXG5cbn1cbiJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBR25EOzs7O0dBSUc7QUFDSCxNQUFNLGNBQWMsR0FBd0U7SUFDMUYsSUFBSSxFQUFFLFNBQVM7SUFDZixhQUFhLEVBQUUsSUFBSTtJQUNuQixlQUFlLEVBQUUsSUFBSTtDQUN0QixDQUFDO0FBR0YsTUFBTSxPQUFPLFlBQVk7SUFFYjtJQUNBO0lBQ0E7SUFIVixZQUNVLE9BQWdCLEVBQ2hCLFFBQWtCLEVBQ2xCLEtBQXdCO1FBRnhCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFtQjtJQUMvQixDQUFDO0lBRUosSUFBSSxDQUFVLE1BQWE7UUFDekIsTUFBTSxRQUFRLEdBQVUsRUFBRSxHQUFHLGNBQWMsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBRXpELDRFQUE0RTtRQUM1RSxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxhQUFtQyxDQUFDO1FBRXZFLDBDQUEwQztRQUMxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFeEMsaUNBQWlDO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFJLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5FLDhEQUE4RDtRQUM5RCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQy9CLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNyQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDO1NBQ3ZELENBQUMsQ0FBQztRQUVILGdFQUFnRTtRQUNoRSxpREFBaUQ7UUFDakQsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUM1RCxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssUUFBUSxJQUFJLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDckQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsOERBQThEO1FBQzlELFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXZFLDRDQUE0QztRQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25FLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFMUIsb0VBQW9FO1FBQ3BFLGlFQUFpRTtRQUNqRSxVQUFVLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFL0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELHdDQUF3QztJQUN4QyxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsbUJBQW1CO0lBQ1gsYUFBYTtRQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLGFBQWEsQ0FBQztZQUMvQixXQUFXLEVBQUUsSUFBSTtZQUNqQixhQUFhLEVBQUU7Z0JBQ2Isc0JBQXNCO2dCQUN0QixhQUFhO2dCQUNiLGtCQUFrQjtnQkFDbEIsOEJBQThCO2dCQUM5Qiw2QkFBNkI7Z0JBQzdCLGlDQUFpQztnQkFDakMsZ0NBQWdDO2FBQ2pDO1lBQ0QsVUFBVSxFQUFFO2dCQUNWLFFBQVE7Z0JBQ1IsUUFBUTtnQkFDUixNQUFNO2dCQUNOLGNBQWM7Z0JBQ2QsZ0JBQWdCO2dCQUNoQixxQkFBcUI7YUFDdEI7WUFDRCxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7WUFDckQsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7aUJBQ3RDLE1BQU0sRUFBRTtpQkFDUixrQkFBa0IsRUFBRTtpQkFDcEIsZ0JBQWdCLEVBQUU7U0FDdEIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO3dHQWxGVSxZQUFZOzRHQUFaLFlBQVksY0FEQyxNQUFNOzs0RkFDbkIsWUFBWTtrQkFEeEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgTW9kYWwgfSBmcm9tICcuL21vZGFsJztcbmltcG9ydCB7IE1vZGFsUmVmIH0gZnJvbSAnLi9tb2RhbC1yZWYnO1xuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2RhbFN0YWNrU2VydmljZSB9IGZyb20gJy4vbW9kYWwtc3RhY2suc2VydmljZSc7XG5cbi8qKlxuICogYG9wZW4oKWAgYWx3YXlzIHJlY2VpdmVzIGEgcGxhaW4gb2JqZWN0IGxpdGVyYWwsIG5ldmVyIGEgYG5ldyBNb2RhbCgpYFxuICogaW5zdGFuY2UsIHNvIGEgY2xhc3MgZmllbGQgaW5pdGlhbGl6ZXIgd291bGQgbmV2ZXIgYWN0dWFsbHkgYXBwbHkg4oCUIHRoZXNlXG4gKiBhcmUgdGhlIHJlYWwgZGVmYXVsdHMsIG1lcmdlZCBpbiBleHBsaWNpdGx5IGJlbG93LlxuICovXG5jb25zdCBNT0RBTF9ERUZBVUxUUzogUmVxdWlyZWQ8UGljazxNb2RhbCwgJ3NpemUnIHwgJ2JhY2tkcm9wQ2xvc2UnIHwgJ3Nob3dDbG9zZUJ1dHRvbic+PiA9IHtcbiAgc2l6ZTogJ2RlZmF1bHQnLFxuICBiYWNrZHJvcENsb3NlOiB0cnVlLFxuICBzaG93Q2xvc2VCdXR0b246IHRydWUsXG59O1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE1vZGFsU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHN0YWNrOiBNb2RhbFN0YWNrU2VydmljZVxuICApIHt9XG5cbiAgb3BlbjxSID0gYW55Pihjb25maWc6IE1vZGFsKTogTW9kYWxSZWY8Uj4ge1xuICAgIGNvbnN0IHJlc29sdmVkOiBNb2RhbCA9IHsgLi4uTU9EQUxfREVGQVVMVFMsIC4uLmNvbmZpZyB9O1xuXG4gICAgLy8gMC4gUmVtZW1iZXIgd2hhdCB3YXMgZm9jdXNlZCBzbyB3ZSBjYW4gcmVzdG9yZSBpdCBhZnRlciB0aGUgbW9kYWwgY2xvc2VzLlxuICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICAvLyAxLiBDcmVhdGUgdGhlIE92ZXJsYXkgKERPTSBwbGFjZWhvbGRlcilcbiAgICBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KCk7XG5cbiAgICAvLyAyLiBDcmVhdGUgdGhlIENvbnRyb2xsZXIgKFJlZilcbiAgICBjb25zdCBtb2RhbFJlZiA9IG5ldyBNb2RhbFJlZjxSPihvdmVybGF5UmVmLCByZXNvbHZlZCwgdGhpcy5zdGFjayk7XG5cbiAgICAvLyAzLiBDcmVhdGUgSW5qZWN0b3IgdG8gYWxsb3cgdGhlIENvbXBvbmVudCB0byBhY2Nlc3MgdGhlIFJlZlxuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTW9kYWxSZWYsIHVzZVZhbHVlOiBtb2RhbFJlZiB9XVxuICAgIH0pO1xuXG4gICAgLy8gRXNjYXBlLXRvLWNsb3NlOiBtaXJyb3IgdGhlIGJhY2tkcm9wIGNsb3NlIHBhdGgsIGJ1dCBvbmx5IGZvclxuICAgIC8vIG5vbi1ibG9ja2luZyBtb2RhbHMgKGJhY2tkcm9wQ2xvc2UgIT09IGZhbHNlKS5cbiAgICBvdmVybGF5UmVmLmtleWRvd25FdmVudHMoKS5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJyAmJiByZXNvbHZlZC5iYWNrZHJvcENsb3NlKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG1vZGFsUmVmLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBSZXN0b3JlIGZvY3VzIHRvIHRoZSB0cmlnZ2VyIG9uY2UgdGhlIG92ZXJsYXkgaXMgdG9ybiBkb3duLlxuICAgIG92ZXJsYXlSZWYuZGV0YWNobWVudHMoKS5zdWJzY3JpYmUoKCkgPT4gcHJldmlvdXNseUZvY3VzZWQ/LmZvY3VzPy4oKSk7XG5cbiAgICAvLyA0LiBBdHRhY2ggdGhlIFVJIENvbXBvbmVudCB0byB0aGUgT3ZlcmxheVxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoTW9kYWxDb21wb25lbnQsIG51bGwsIGluamVjdG9yKTtcbiAgICBvdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXG4gICAgLy8gVGhlIGJhY2tkcm9wIGVsZW1lbnQgb25seSBleGlzdHMgb25jZSBhdHRhY2hlZCDigJQgc2V0dGluZyB0aGlzIGFueVxuICAgIC8vIGVhcmxpZXIgKGUuZy4gaW4gTW9kYWxSZWYncyBjb25zdHJ1Y3Rvcikgd291bGQgc2lsZW50bHkgbm8tb3AuXG4gICAgb3ZlcmxheVJlZi5iYWNrZHJvcEVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScsICdvcGVuJyk7XG5cbiAgICByZXR1cm4gbW9kYWxSZWY7XG4gIH1cblxuICAvKiogR2xvYmFsIGhlbHBlciB0byBjbG9zZSBldmVyeXRoaW5nICovXG4gIGNsb3NlQWxsKCkge1xuICAgIHRoaXMuc3RhY2suY2xvc2VBbGwoKTtcbiAgfVxuXG4gIC8vIG1vZGFsLnNlcnZpY2UudHNcbiAgcHJpdmF0ZSBjcmVhdGVPdmVybGF5KCk6IE92ZXJsYXlSZWYge1xuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgYmFja2Ryb3BDbGFzczogW1xuICAgICAgICAnY2RrLW92ZXJsYXktYmFja2Ryb3AnLFxuICAgICAgICAnYmctYmxhY2svODAnLFxuICAgICAgICAnYmFja2Ryb3AtYmx1ci1zbScsXG4gICAgICAgICdkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluJyxcbiAgICAgICAgJ2RhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMCcsXG4gICAgICAgICdkYXRhLVtzdGF0ZT1jbG9zZWRdOmFuaW1hdGUtb3V0JyxcbiAgICAgICAgJ2RhdGEtW3N0YXRlPWNsb3NlZF06ZmFkZS1vdXQtMCcsXG4gICAgICBdLFxuICAgICAgcGFuZWxDbGFzczogW1xuICAgICAgICAndy1mdWxsJyxcbiAgICAgICAgJ2gtZnVsbCcsXG4gICAgICAgICdmbGV4JyxcbiAgICAgICAgJ2l0ZW1zLWNlbnRlcicsXG4gICAgICAgICdqdXN0aWZ5LWNlbnRlcicsXG4gICAgICAgICdwb2ludGVyLWV2ZW50cy1ub25lJ1xuICAgICAgXSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKClcbiAgICAgICAgLmdsb2JhbCgpXG4gICAgICAgIC5jZW50ZXJIb3Jpem9udGFsbHkoKVxuICAgICAgICAuY2VudGVyVmVydGljYWxseSgpXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5vdmVybGF5LmNyZWF0ZShjb25maWcpO1xuICB9XG5cblxufVxuIl19
@@ -105,21 +105,21 @@ export class ResizablePanelComponent {
105
105
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizablePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
106
106
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ResizablePanelComponent, isStandalone: true, selector: "tolle-resizable-panel", inputs: { direction: "direction", class: "class" }, queries: [{ propertyName: "panels", predicate: i0.forwardRef(() => ResizablePanelItemComponent) }], ngImport: i0, template: `
107
107
  <div [class]="computedContainerClass">
108
- <div class="flex" [class.flex-col]="direction === 'vertical'" [class.flex-row]="direction === 'horizontal'">
108
+ <div class="flex h-full w-full" [class.flex-col]="direction === 'vertical'" [class.flex-row]="direction === 'horizontal'">
109
109
  <ng-content></ng-content>
110
110
  </div>
111
111
  </div>
112
- `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
112
+ `, isInline: true, styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
113
113
  }
114
114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizablePanelComponent, decorators: [{
115
115
  type: Component,
116
116
  args: [{ selector: 'tolle-resizable-panel', standalone: true, imports: [CommonModule], template: `
117
117
  <div [class]="computedContainerClass">
118
- <div class="flex" [class.flex-col]="direction === 'vertical'" [class.flex-row]="direction === 'horizontal'">
118
+ <div class="flex h-full w-full" [class.flex-col]="direction === 'vertical'" [class.flex-row]="direction === 'horizontal'">
119
119
  <ng-content></ng-content>
120
120
  </div>
121
121
  </div>
122
- `, styles: [":host{display:block}\n"] }]
122
+ `, styles: [":host{display:block;width:100%;height:100%}\n"] }]
123
123
  }], propDecorators: { direction: [{
124
124
  type: Input
125
125
  }], class: [{
@@ -128,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
128
128
  type: ContentChildren,
129
129
  args: [forwardRef(() => ResizablePanelItemComponent)]
130
130
  }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvcmVzaXphYmxlLXBhbmVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQStCLFVBQVUsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQWEsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdKLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQW1CL0UsTUFBTSxPQUFPLHVCQUF1QjtJQUN6QixTQUFTLEdBQThCLFlBQVksQ0FBQztJQUNwRCxLQUFLLEdBQVcsRUFBRSxDQUFDO0lBRTVCLHVGQUF1RjtJQUN2QixNQUFNLENBQTBDO0lBRXhHLEVBQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEIsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWhDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEIsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLGVBQWUsR0FBYSxFQUFFLENBQUM7SUFFL0IsaUJBQWlCLENBQTJCO0lBQzVDLGVBQWUsQ0FBMkI7SUFFbEQsa0JBQWtCO1FBQ2hCLG1DQUFtQztRQUNuQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxD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LENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLEVBQUUsQ0FDUCxlQUFlLEVBQ2YsSUFBSSxDQUFDLEtBQUssQ0FDWCxDQUFDO0lBQ0osQ0FBQzt3R0E1SFUsdUJBQXVCOzRGQUF2Qix1QkFBdUIsZ0xBS0EsMkJBQTJCLDhCQWxCbkQ7Ozs7OztHQU1ULCtGQVBTLFlBQVk7OzRGQWNYLHVCQUF1QjtrQkFqQm5DLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiOzs7Ozs7R0FNVDs4QkFRUSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFHMEQsTUFBTTtzQkFBckUsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBDb250ZW50Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgQWZ0ZXJDb250ZW50SW5pdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25EZXN0cm95LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcbmltcG9ydCB7IFJlc2l6YWJsZVBhbmVsSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcmVzaXphYmxlLXBhbmVsLWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtcmVzaXphYmxlLXBhbmVsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbY2xhc3NdPVwiY29tcHV0ZWRDb250YWluZXJDbGFzc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIiBbY2xhc3MuZmxleC1jb2xdPVwiZGlyZWN0aW9uID09PSAndmVydGljYWwnXCIgW2NsYXNzLmZsZXgtcm93XT1cImRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgOmhvc3Qge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICBgXVxufSlcbmV4cG9ydCBjbGFzcyBSZXNpemFibGVQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGRpcmVjdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyA9ICdob3Jpem9udGFsJztcbiAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuXG4gIC8vIGZvcndhcmRSZWYgYnJlYWtzIHRoZSBwYW5lbCA8LT4gaXRlbSBjaXJjdWxhciBpbXBvcnQgKFREWiBhdCBjbGFzcy1kZWNvcmF0aW9uIHRpbWUpLlxuICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gUmVzaXphYmxlUGFuZWxJdGVtQ29tcG9uZW50KSkgcGFuZWxzITogUXVlcnlMaXN0PFJlc2l6YWJsZVBhbmVsSXRlbUNvbXBvbmVudD47XG5cbiAgcHJpdmF0ZSBlbCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIHByaXZhdGUgaXNSZXNpemluZyA9IGZhbHNlO1xuICBwcml2YXRlIGFjdGl2ZVBhbmVsSW5kZXggPSAtMTtcbiAgcHJpdmF0ZSBzdGFydEN1cnNvclBvc2l0aW9uID0gMDtcbiAgcHJpdmF0ZSBzdGFydFBhbmVsU2l6ZXM6IG51bWJlcltdID0gW107XG5cbiAgcHJpdmF0ZSBtb3VzZU1vdmVMaXN0ZW5lcj86IChlOiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICBwcml2YXRlIG1vdXNlVXBMaXN0ZW5lcj86IChlOiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAvLyBJbml0aWFsaXplIHBhbmVsIHNpemVzIGlmIG5lZWRlZFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVQYW5lbFNpemVzKCk7XG4gICAgICB0aGlzLnVwZGF0ZUxhc3RTdGF0dXMoKTtcbiAgICB9KTtcblxuICAgIHRoaXMucGFuZWxzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlUGFuZWxTaXplcygpO1xuICAgICAgdGhpcy51cGRhdGVMYXN0U3RhdHVzKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmNsZWFudXBMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTGFzdFN0YXR1cygpIHtcbiAgICBjb25zdCBwYW5lbHMgPSB0aGlzLnBhbmVscy50b0FycmF5KCk7XG4gICAgcGFuZWxzLmZvckVhY2goKHAsIGkpID0+IHAuaXNMYXN0ID0gaSA9PT0gcGFuZWxzLmxlbmd0aCAtIDEpO1xuICB9XG5cbiAgc3RhcnRSZXNpemUoaXRlbTogUmVzaXphYmxlUGFuZWxJdGVtQ29tcG9uZW50LCBldmVudDogTW91c2VFdmVudCkge1xuICAgIGNvbnN0IHBhbmVscyA9IHRoaXMucGFuZWxzLnRvQXJyYXkoKTtcbiAgICB0aGlzLmFjdGl2ZVBhbmVsSW5kZXggPSBwYW5lbHMuaW5kZXhPZihpdGVtKTtcbiAgICBpZiAodGhpcy5hY3RpdmVQYW5lbEluZGV4ID09PSAtMSB8fCB0aGlzLmFjdGl2ZVBhbmVsSW5kZXggPT09IHBhbmVscy5sZW5ndGggLSAxKSByZXR1cm47XG5cbiAgICB0aGlzLmlzUmVzaXppbmcgPSB0cnVlO1xuICAgIHRoaXMuc3RhcnRDdXJzb3JQb3NpdGlvbiA9IHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcgPyBldmVudC5jbGllbnRYIDogZXZlbnQuY2xpZW50WTtcbiAgICB0aGlzLnN0YXJ0UGFuZWxTaXplcyA9IHBhbmVscy5tYXAocCA9PiBwLnNpemUpO1xuXG4gICAgdGhpcy5zZXR1cExpc3RlbmVycygpO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/ICdjb2wtcmVzaXplJyA6ICdyb3ctcmVzaXplJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3QgPSAnbm9uZSc7XG4gIH1cblxuICBwcml2YXRlIHNldHVwTGlzdGVuZXJzKCkge1xuICAgIHRoaXMubW91c2VNb3ZlTGlzdGVuZXIgPSAoZTogTW91c2VFdmVudCkgPT4gdGhpcy5vbk1vdXNlTW92ZShlKTtcbiAgICB0aGlzLm1vdXNlVXBMaXN0ZW5lciA9ICgpID0+IHRoaXMuc3RvcFJlc2l6ZSgpO1xuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5tb3VzZU1vdmVMaXN0ZW5lcik7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMubW91c2VVcExpc3RlbmVyKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYW51cExpc3RlbmVycygpIHtcbiAgICBpZiAodGhpcy5tb3VzZU1vdmVMaXN0ZW5lcikgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5tb3VzZU1vdmVMaXN0ZW5lcik7XG4gICAgaWYgKHRoaXMubW91c2VVcExpc3RlbmVyKSBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5tb3VzZVVwTGlzdGVuZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbk1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICghdGhpcy5pc1Jlc2l6aW5nKSByZXR1cm47XG5cbiAgICBjb25zdCBjdXJyZW50UG9zID0gdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/IGV2ZW50LmNsaWVudFggOiBldmVudC5jbGllbnRZO1xuICAgIGNvbnN0IGRlbHRhUHggPSBjdXJyZW50UG9zIC0gdGhpcy5zdGFydEN1cnNvclBvc2l0aW9uO1xuXG4gICAgY29uc3QgY29udGFpbmVyU2l6ZSA9IHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCdcbiAgICAgID8gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoXG4gICAgICA6IHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG5cbiAgICBjb25zdCBkZWx0YVBlcmNlbnQgPSAoZGVsdGFQeCAvIGNvbnRhaW5lclNpemUpICogMTAwO1xuXG4gICAgY29uc3QgcGFuZWxzID0gdGhpcy5wYW5lbHMudG9BcnJheSgpO1xuICAgIGNvbnN0IHBhbmVsQSA9IHBhbmVsc1t0aGlzLmFjdGl2ZVBhbmVsSW5kZXhdO1xuICAgIGNvbnN0IHBhbmVsQiA9IHBhbmVsc1t0aGlzLmFjdGl2ZVBhbmVsSW5kZXggKyAxXTtcblxuICAgIGNvbnN0IG5ld1NpemVBID0gTWF0aC5tYXgocGFuZWxBLm1pblNpemUsIHRoaXMuc3RhcnRQYW5lbFNpemVzW3RoaXMuYWN0aXZlUGFuZWxJbmRleF0gKyBkZWx0YVBlcmNlbnQpO1xuICAgIGNvbnN0IGFjdHVhbERlbHRhID0gbmV3U2l6ZUEgLSB0aGlzLnN0YXJ0UGFuZWxTaXplc1t0aGlzLmFjdGl2ZVBhbmVsSW5kZXhdO1xuICAgIGNvbnN0IG5ld1NpemVCID0gTWF0aC5tYXgocGFuZWxCLm1pblNpemUsIHRoaXMuc3RhcnRQYW5lbFNpemVzW3RoaXMuYWN0aXZlUGFuZWxJbmRleCArIDFdIC0gYWN0dWFsRGVsdGEpO1xuXG4gICAgcGFuZWxBLnNpemUgPSBuZXdTaXplQTtcbiAgICBwYW5lbEIuc2l6ZSA9IHRoaXMuc3RhcnRQYW5lbFNpemVzW3RoaXMuYWN0aXZlUGFuZWxJbmRleF0gKyB0aGlzLnN0YXJ0UGFuZWxTaXplc1t0aGlzLmFjdGl2ZVBhbmVsSW5kZXggKyAxXSAtIHBhbmVsQS5zaXplO1xuXG4gICAgaWYgKHBhbmVsQi5zaXplIDwgcGFuZWxCLm1pblNpemUpIHtcbiAgICAgIHBhbmVsQi5zaXplID0gcGFuZWxCLm1pblNpemU7XG4gICAgICBwYW5lbEEuc2l6ZSA9ICh0aGlzLnN0YXJ0UGFuZWxTaXplc1t0aGlzLmFjdGl2ZVBhbmVsSW5kZXhdICsgdGhpcy5zdGFydFBhbmVsU2l6ZXNbdGhpcy5hY3RpdmVQYW5lbEluZGV4ICsgMV0pIC0gcGFuZWxCLm1pblNpemU7XG4gICAgfVxuXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdG9wUmVzaXplKCkge1xuICAgIHRoaXMuaXNSZXNpemluZyA9IGZhbHNlO1xuICAgIHRoaXMuY2xlYW51cExpc3RlbmVycygpO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gJyc7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0ID0gJyc7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVBhbmVsU2l6ZXMoKSB7XG4gICAgY29uc3QgcGFuZWxzID0gdGhpcy5wYW5lbHMudG9BcnJheSgpO1xuICAgIGNvbnN0IHRvdGFsUGFuZWxzID0gcGFuZWxzLmxlbmd0aDtcblxuICAgIGlmICh0b3RhbFBhbmVscyA+IDApIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRTaXplID0gMTAwIC8gdG90YWxQYW5lbHM7XG4gICAgICBwYW5lbHMuZm9yRWFjaChwYW5lbCA9PiB7XG4gICAgICAgIGlmICghcGFuZWwuc2l6ZSkge1xuICAgICAgICAgIHBhbmVsLnNpemUgPSBkZWZhdWx0U2l6ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGNvbXB1dGVkQ29udGFpbmVyQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKFxuICAgICAgJ3ctZnVsbCBoLWZ1bGwnLFxuICAgICAgdGhpcy5jbGFzc1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvcmVzaXphYmxlLXBhbmVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQStCLFVBQVUsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQWEsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdKLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQXdCL0UsTUFBTSxPQUFPLHVCQUF1QjtJQUN6QixTQUFTLEdBQThCLFlBQVksQ0FBQztJQUNwRCxLQUFLLEdBQVcsRUFBRSxDQUFDO0lBRTVCLHVGQUF1RjtJQUN2QixNQUFNLENBQTBDO0lBRXhHLEVBQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEIsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWhDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEIsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLGVBQWUsR0FBYSxFQUFFLENBQUM7SUFFL0IsaUJBQWlCLENBQTJCO0lBQzVDLGVBQWUsQ0FBMkI7SUFFbEQsa0JBQWtCO1FBQ2hCLG1DQUFtQztRQUNuQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxD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LENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLEVBQUUsQ0FDUCxlQUFlLEVBQ2YsSUFBSSxDQUFDLEtBQUssQ0FDWCxDQUFDO0lBQ0osQ0FBQzt3R0E1SFUsdUJBQXVCOzRGQUF2Qix1QkFBdUIsZ0xBS0EsMkJBQTJCLDhCQXZCbkQ7Ozs7OztHQU1ULHNIQVBTLFlBQVk7OzRGQW1CWCx1QkFBdUI7a0JBdEJuQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYjs7Ozs7O0dBTVQ7OEJBYVEsU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRzBELE1BQU07c0JBQXJFLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QsIEFmdGVyQ29udGVudEluaXQsIEVsZW1lbnRSZWYsIGluamVjdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uRGVzdHJveSwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5pbXBvcnQgeyBSZXNpemFibGVQYW5lbEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3Jlc2l6YWJsZS1wYW5lbC1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXJlc2l6YWJsZS1wYW5lbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgW2NsYXNzXT1cImNvbXB1dGVkQ29udGFpbmVyQ2xhc3NcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGgtZnVsbCB3LWZ1bGxcIiBbY2xhc3MuZmxleC1jb2xdPVwiZGlyZWN0aW9uID09PSAndmVydGljYWwnXCIgW2NsYXNzLmZsZXgtcm93XT1cImRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgLyogRmlsbHMgaXRzIHBhcmVudCBieSBkZWZhdWx0IHNvIGNvbnN1bWVycyBkb24ndCBoYXZlIHRvIHJlbWVtYmVyIGFcbiAgICAgICBtYW51YWwgaC1mdWxsIOKAlCB0aGUgZmxleCByb3cvY29sIHdyYXBwZXIgYmVsb3cgb25seSBoYXMgc29tZXRoaW5nIHRvXG4gICAgICAgZGlzdHJpYnV0ZSBvbmNlIHRoaXMgYW5kIHRoZSBjb250YWluZXIgZGl2IGFjdHVhbGx5IGhhdmUgYSBoZWlnaHQuICovXG4gICAgOmhvc3Qge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIFJlc2l6YWJsZVBhbmVsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ2hvcml6b250YWwnO1xuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG5cbiAgLy8gZm9yd2FyZFJlZiBicmVha3MgdGhlIHBhbmVsIDwtPiBpdGVtIGNpcmN1bGFyIGltcG9ydCAoVERaIGF0IGNsYXNzLWRlY29yYXRpb24gdGltZSkuXG4gIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBSZXNpemFibGVQYW5lbEl0ZW1Db21wb25lbnQpKSBwYW5lbHMhOiBRdWVyeUxpc3Q8UmVzaXphYmxlUGFuZWxJdGVtQ29tcG9uZW50PjtcblxuICBwcml2YXRlIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgcHJpdmF0ZSBpc1Jlc2l6aW5nID0gZmFsc2U7XG4gIHByaXZhdGUgYWN0aXZlUGFuZWxJbmRleCA9IC0xO1xuICBwcml2YXRlIHN0YXJ0Q3Vyc29yUG9zaXRpb24gPSAwO1xuICBwcml2YXRlIHN0YXJ0UGFuZWxTaXplczogbnVtYmVyW10gPSBbXTtcblxuICBwcml2YXRlIG1vdXNlTW92ZUxpc3RlbmVyPzogKGU6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gIHByaXZhdGUgbW91c2VVcExpc3RlbmVyPzogKGU6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIC8vIEluaXRpYWxpemUgcGFuZWwgc2l6ZXMgaWYgbmVlZGVkXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVBhbmVsU2l6ZXMoKTtcbiAgICAgIHRoaXMudXBkYXRlTGFzdFN0YXR1cygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5wYW5lbHMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVQYW5lbFNpemVzKCk7XG4gICAgICB0aGlzLnVwZGF0ZUxhc3RTdGF0dXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY2xlYW51cExpc3RlbmVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVMYXN0U3RhdHVzKCkge1xuICAgIGNvbnN0IHBhbmVscyA9IHRoaXMucGFuZWxzLnRvQXJyYXkoKTtcbiAgICBwYW5lbHMuZm9yRWFjaCgocCwgaSkgPT4gcC5pc0xhc3QgPSBpID09PSBwYW5lbHMubGVuZ3RoIC0gMSk7XG4gIH1cblxuICBzdGFydFJlc2l6ZShpdGVtOiBSZXNpemFibGVQYW5lbEl0ZW1Db21wb25lbnQsIGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgY29uc3QgcGFuZWxzID0gdGhpcy5wYW5lbHMudG9BcnJheSgpO1xuICAgIHRoaXMuYWN0aXZlUGFuZWxJbmRleCA9IHBhbmVscy5pbmRleE9mKGl0ZW0pO1xuICAgIGlmICh0aGlzLmFjdGl2ZVBhbmVsSW5kZXggPT09IC0xIHx8IHRoaXMuYWN0aXZlUGFuZWxJbmRleCA9PT0gcGFuZWxzLmxlbmd0aCAtIDEpIHJldHVybjtcblxuICAgIHRoaXMuaXNSZXNpemluZyA9IHRydWU7XG4gICAgdGhpcy5zdGFydEN1cnNvclBvc2l0aW9uID0gdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/IGV2ZW50LmNsaWVudFggOiBldmVudC5jbGllbnRZO1xuICAgIHRoaXMuc3RhcnRQYW5lbFNpemVzID0gcGFuZWxzLm1hcChwID0+IHAuc2l6ZSk7XG5cbiAgICB0aGlzLnNldHVwTGlzdGVuZXJzKCk7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSB0aGlzLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnID8gJ2NvbC1yZXNpemUnIDogJ3Jvdy1yZXNpemUnO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUudXNlclNlbGVjdCA9ICdub25lJztcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5tb3VzZU1vdmVMaXN0ZW5lciA9IChlOiBNb3VzZUV2ZW50KSA9PiB0aGlzLm9uTW91c2VNb3ZlKGUpO1xuICAgIHRoaXMubW91c2VVcExpc3RlbmVyID0gKCkgPT4gdGhpcy5zdG9wUmVzaXplKCk7XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm1vdXNlTW92ZUxpc3RlbmVyKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5tb3VzZVVwTGlzdGVuZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwTGlzdGVuZXJzKCkge1xuICAgIGlmICh0aGlzLm1vdXNlTW92ZUxpc3RlbmVyKSBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm1vdXNlTW92ZUxpc3RlbmVyKTtcbiAgICBpZiAodGhpcy5tb3VzZVVwTGlzdGVuZXIpIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm1vdXNlVXBMaXN0ZW5lcik7XG4gIH1cblxuICBwcml2YXRlIG9uTW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmlzUmVzaXppbmcpIHJldHVybjtcblxuICAgIGNvbnN0IGN1cnJlbnRQb3MgPSB0aGlzLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnID8gZXZlbnQuY2xpZW50WCA6IGV2ZW50LmNsaWVudFk7XG4gICAgY29uc3QgZGVsdGFQeCA9IGN1cnJlbnRQb3MgLSB0aGlzLnN0YXJ0Q3Vyc29yUG9zaXRpb247XG5cbiAgICBjb25zdCBjb250YWluZXJTaXplID0gdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJ1xuICAgICAgPyB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGhcbiAgICAgIDogdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcblxuICAgIGNvbnN0IGRlbHRhUGVyY2VudCA9IChkZWx0YVB4IC8gY29udGFpbmVyU2l6ZSkgKiAxMDA7XG5cbiAgICBjb25zdCBwYW5lbHMgPSB0aGlzLnBhbmVscy50b0FycmF5KCk7XG4gICAgY29uc3QgcGFuZWxBID0gcGFuZWxzW3RoaXMuYWN0aXZlUGFuZWxJbmRleF07XG4gICAgY29uc3QgcGFuZWxCID0gcGFuZWxzW3RoaXMuYWN0aXZlUGFuZWxJbmRleCArIDFdO1xuXG4gICAgY29uc3QgbmV3U2l6ZUEgPSBNYXRoLm1heChwYW5lbEEubWluU2l6ZSwgdGhpcy5zdGFydFBhbmVsU2l6ZXNbdGhpcy5hY3RpdmVQYW5lbEluZGV4XSArIGRlbHRhUGVyY2VudCk7XG4gICAgY29uc3QgYWN0dWFsRGVsdGEgPSBuZXdTaXplQSAtIHRoaXMuc3RhcnRQYW5lbFNpemVzW3RoaXMuYWN0aXZlUGFuZWxJbmRleF07XG4gICAgY29uc3QgbmV3U2l6ZUIgPSBNYXRoLm1heChwYW5lbEIubWluU2l6ZSwgdGhpcy5zdGFydFBhbmVsU2l6ZXNbdGhpcy5hY3RpdmVQYW5lbEluZGV4ICsgMV0gLSBhY3R1YWxEZWx0YSk7XG5cbiAgICBwYW5lbEEuc2l6ZSA9IG5ld1NpemVBO1xuICAgIHBhbmVsQi5zaXplID0gdGhpcy5zdGFydFBhbmVsU2l6ZXNbdGhpcy5hY3RpdmVQYW5lbEluZGV4XSArIHRoaXMuc3RhcnRQYW5lbFNpemVzW3RoaXMuYWN0aXZlUGFuZWxJbmRleCArIDFdIC0gcGFuZWxBLnNpemU7XG5cbiAgICBpZiAocGFuZWxCLnNpemUgPCBwYW5lbEIubWluU2l6ZSkge1xuICAgICAgcGFuZWxCLnNpemUgPSBwYW5lbEIubWluU2l6ZTtcbiAgICAgIHBhbmVsQS5zaXplID0gKHRoaXMuc3RhcnRQYW5lbFNpemVzW3RoaXMuYWN0aXZlUGFuZWxJbmRleF0gKyB0aGlzLnN0YXJ0UGFuZWxTaXplc1t0aGlzLmFjdGl2ZVBhbmVsSW5kZXggKyAxXSkgLSBwYW5lbEIubWluU2l6ZTtcbiAgICB9XG5cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIHN0b3BSZXNpemUoKSB7XG4gICAgdGhpcy5pc1Jlc2l6aW5nID0gZmFsc2U7XG4gICAgdGhpcy5jbGVhbnVwTGlzdGVuZXJzKCk7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSAnJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3QgPSAnJztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUGFuZWxTaXplcygpIHtcbiAgICBjb25zdCBwYW5lbHMgPSB0aGlzLnBhbmVscy50b0FycmF5KCk7XG4gICAgY29uc3QgdG90YWxQYW5lbHMgPSBwYW5lbHMubGVuZ3RoO1xuXG4gICAgaWYgKHRvdGFsUGFuZWxzID4gMCkge1xuICAgICAgY29uc3QgZGVmYXVsdFNpemUgPSAxMDAgLyB0b3RhbFBhbmVscztcbiAgICAgIHBhbmVscy5mb3JFYWNoKHBhbmVsID0+IHtcbiAgICAgICAgaWYgKCFwYW5lbC5zaXplKSB7XG4gICAgICAgICAgcGFuZWwuc2l6ZSA9IGRlZmF1bHRTaXplO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgY29tcHV0ZWRDb250YWluZXJDbGFzcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAndy1mdWxsIGgtZnVsbCcsXG4gICAgICB0aGlzLmNsYXNzXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -162,7 +162,7 @@ export class SegmentComponent {
162
162
  (keydown)="onKeydown($event)"
163
163
  >
164
164
  <div
165
- class="absolute top-1 bottom-1 bg-primary shadow-sm rounded-md transition-all duration-300 ease-[cubic-bezier(0.2,0.0,0.2,1)]"
165
+ class="absolute top-1 bottom-1 bg-primary shadow-sm rounded-md transition-all duration-300 ease-tolle"
166
166
  [style.left.px]="gliderLeft"
167
167
  [style.width.px]="gliderWidth"
168
168
  [class.opacity-0]="!hasValue"
@@ -219,7 +219,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
219
219
  (keydown)="onKeydown($event)"
220
220
  >
221
221
  <div
222
- class="absolute top-1 bottom-1 bg-primary shadow-sm rounded-md transition-all duration-300 ease-[cubic-bezier(0.2,0.0,0.2,1)]"
222
+ class="absolute top-1 bottom-1 bg-primary shadow-sm rounded-md transition-all duration-300 ease-tolle"
223
223
  [style.left.px]="gliderLeft"
224
224
  [style.width.px]="gliderWidth"
225
225
  [class.opacity-0]="!hasValue"
@@ -281,4 +281,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
281
281
  * @deprecated Use `SegmentComponent`. This alias will be removed in a future major.
282
282
  */
283
283
  export { SegmentComponent as SegmentedComponent };
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3NlZ21lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFVBQVUsRUFFVixZQUFZLEVBUVosU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQTRFaEMsTUFBTSxPQUFPLGdCQUFnQjtJQW1CUDtJQWxCWCxLQUFLLEdBQWtCLEVBQUUsQ0FBQztJQUMxQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixZQUFZLENBQW9CLENBQUMsdUJBQXVCO0lBRWpFLEtBQUssR0FBUSxJQUFJLENBQUM7SUFDbEIsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNmLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDaEIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVPLFdBQVcsQ0FBMkI7SUFDckMsWUFBWSxDQUFzQztJQUVuRSxjQUFjLENBQWtCO0lBRXhDLFFBQVEsR0FBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUIsU0FBUyxHQUFRLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUUzQixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUFJLENBQUM7SUFFL0MsZUFBZTtRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUV0QyxJQUFJLE9BQU8sY0FBYyxLQUFLLFdB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Z0JBQWdCO2tCQWpFNUIsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxhQUN6Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQzs0QkFDL0MsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1Q7c0ZBUVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBT2tCLFdBQVc7c0JBQWxDLFNBQVM7dUJBQUMsV0FBVztnQkFDRyxZQUFZO3NCQUFwQyxZQUFZO3VCQUFDLFNBQVM7O0FBK0l6Qjs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxrQkFBa0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgZm9yd2FyZFJlZixcbiAgRWxlbWVudFJlZixcbiAgVmlld0NoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbmV4cG9ydCB0eXBlIFNlZ21lbnRJdGVtID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGljb24/OiBzdHJpbmc7ICAgLy8gQWRkZWQ6IE9wdGlvbmFsIGljb24gY2xhc3MgKGUuZy4sICdyaS1ob21lLWxpbmUnKVxuICBjbGFzcz86IHN0cmluZzsgIC8vIEFkZGVkOiBDdXN0b20gY2xhc3MgZm9yIHNwZWNpZmljIGl0ZW0gd3JhcHBlclxuICBkYXRhPzogYW55OyAgICAgIC8vIEFkZGVkOiBFeHRyYSBkYXRhIHBheWxvYWQgZm9yIGN1c3RvbSB0ZW1wbGF0ZXNcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2VnbWVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWdtZW50Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgICNjb250YWluZXJcbiAgICAgIFtjbGFzc109XCJjbihcbiAgICAgICAgJ3JlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIHAtMSBiZy1tdXRlZCByb3VuZGVkLWxnIHNlbGVjdC1ub25lIHctZnVsbCBnYXAtMScsXG4gICAgICAgIGNsYXNzXG4gICAgICApXCJcbiAgICAgIHJvbGU9XCJyYWRpb2dyb3VwXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTEgYm90dG9tLTEgYmctcHJpbWFyeSBzaGFkb3ctc20gcm91bmRlZC1tZCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgZWFzZS1bY3ViaWMtYmV6aWVyKDAuMiwwLjAsMC4yLDEpXVwiXG4gICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImdsaWRlckxlZnRcIlxuICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiZ2xpZGVyV2lkdGhcIlxuICAgICAgICBbY2xhc3Mub3BhY2l0eS0wXT1cIiFoYXNWYWx1ZVwiXG4gICAgICA+PC9kaXY+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIlxuICAgICAgICAjaXRlbUVsc1xuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgcm9sZT1cInJhZGlvXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWQgfHwgZGlzYWJsZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwidmFsdWUgPT09IGl0ZW0udmFsdWVcIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCJnZXRUYWJJbmRleChpdGVtKVwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3QoaXRlbS52YWx1ZSlcIlxuICAgICAgICBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgJ3JlbGF0aXZlIHotMTAgZmxleC0xIHB4LTMgcHktMS41IHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMjAwIHJvdW5kZWQtbWQgdGV4dC1jZW50ZXIgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yJyxcbiAgICAgICAgICAnZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTInLFxuICAgICAgICAgIHZhbHVlID09PSBpdGVtLnZhbHVlXG4gICAgICAgICAgICA/ICd0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCdcbiAgICAgICAgICAgIDogJ3RleHQtbXV0ZWQtZm9yZWdyb3VuZCBob3Zlcjp0ZXh0LWZvcmVncm91bmQvNzAnLFxuICAgICAgICAgIGl0ZW0uZGlzYWJsZWQgJiYgJ29wYWNpdHktNTAgY3Vyc29yLW5vdC1hbGxvd2VkJyxcbiAgICAgICAgICBpdGVtLmNsYXNzXG4gICAgICAgIClcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbVRlbXBsYXRlOyBlbHNlIGRlZmF1bHRDb250ZW50XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIHNlbGVjdGVkOiB2YWx1ZSA9PT0gaXRlbS52YWx1ZSB9XCI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbnRlbnQ+XG4gICAgICAgICAgPGkgKm5nSWY9XCJpdGVtLmljb25cIiBbY2xhc3NdPVwiaXRlbS5pY29uXCI+PC9pPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICA6aG9zdCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIFNlZ21lbnRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBpdGVtczogU2VnbWVudEl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpdGVtVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+OyAvLyBBbGxvdyBjdXN0b20gY29udGVudFxuXG4gIHZhbHVlOiBhbnkgPSBudWxsO1xuICBnbGlkZXJMZWZ0ID0gMDtcbiAgZ2xpZGVyV2lkdGggPSAwO1xuICBoYXNWYWx1ZSA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lckVsITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBWaWV3Q2hpbGRyZW4oJ2l0ZW1FbHMnKSBpdGVtRWxlbWVudHMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuXG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI/OiBSZXNpemVPYnNlcnZlcjtcblxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4geyB9O1xuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHsgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlR2xpZGVyKCkpO1xuXG4gICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jb250YWluZXJFbCkge1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlR2xpZGVyKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmNvbnRhaW5lckVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgLy8gUmVjYWxjdWxhdGUgaWYgaXRlbXMgY2hhbmdlIG9yIGlmIHZhbHVlIGNoYW5nZXMgZXh0ZXJuYWxseVxuICAgIGlmIChjaGFuZ2VzWydpdGVtcyddICYmICFjaGFuZ2VzWydpdGVtcyddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlR2xpZGVyKCkpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdCh2YWw6IGFueSkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbXMuZmluZChpID0+IGkudmFsdWUgPT09IHZhbCk7XG4gICAgaWYgKGl0ZW0/LmRpc2FibGVkKSByZXR1cm47XG5cbiAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgIHRoaXMub25DaGFuZ2UodmFsKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMudXBkYXRlR2xpZGVyKCk7XG4gIH1cblxuICAvKiogVHJ1ZSB3aGVuIHRoZSBjdXJyZW50IHZhbHVlIG1hdGNoZXMgb25lIG9mIHRoZSBpdGVtcy4gKi9cbiAgcHJpdmF0ZSBoYXNTZWxlY3RlZFZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnNvbWUoaSA9PiBpLnZhbHVlID09PSB0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZmlyc3RFbmFibGVkSXRlbSgpOiBTZWdtZW50SXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZChpID0+ICFpLmRpc2FibGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSb3ZpbmcgdGFiaW5kZXg6IHRoZSBzZWxlY3RlZCBpdGVtIGlzIHRhYi1yZWFjaGFibGUsIG9yIC0gd2hlbiBub3RoaW5nIGlzXG4gICAqIHNlbGVjdGVkIC0gdGhlIGZpcnN0IGVuYWJsZWQgaXRlbS4gQWxsIG90aGVyIGl0ZW1zIGdldCAtMS5cbiAgICovXG4gIGdldFRhYkluZGV4KGl0ZW06IFNlZ21lbnRJdGVtKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCBpdGVtLmRpc2FibGVkKSByZXR1cm4gLTE7XG4gICAgaWYgKHRoaXMudmFsdWUgPT09IGl0ZW0udmFsdWUpIHJldHVybiAwO1xuICAgIGlmICghdGhpcy5oYXNTZWxlY3RlZFZhbHVlKCkgJiYgdGhpcy5maXJzdEVuYWJsZWRJdGVtKCkgPT09IGl0ZW0pIHJldHVybiAwO1xuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXQUktQVJJQSByYWRpbyBncm91cCBrZXlib2FyZCBuYXY6IEFycm93IExlZnQvUmlnaHQgKGFuZCBIb21lL0VuZCkgbW92ZVxuICAgKiBzZWxlY3Rpb24gKyBmb2N1cyBhY3Jvc3MgdGhlIGVuYWJsZWQgaXRlbXMsIHdyYXBwaW5nIGFuZCBza2lwcGluZyBkaXNhYmxlZC5cbiAgICovXG4gIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG5cbiAgICBjb25zdCBrZXkgPSBldmVudC5rZXk7XG4gICAgY29uc3QgZm9yd2FyZCA9IGtleSA9PT0gJ0Fycm93UmlnaHQnO1xuICAgIGNvbnN0IGJhY2t3YXJkID0ga2V5ID09PSAnQXJyb3dMZWZ0JztcbiAgICBjb25zdCBob21lID0ga2V5ID09PSAnSG9tZSc7XG4gICAgY29uc3QgZW5kID0ga2V5ID09PSAnRW5kJztcbiAgICBpZiAoIWZvcndhcmQgJiYgIWJhY2t3YXJkICYmICFob21lICYmICFlbmQpIHJldHVybjtcblxuICAgIGNvbnN0IGVuYWJsZWQgPSB0aGlzLml0ZW1zLm1hcCgoaXQsIGkpID0+ICh7IGl0LCBpIH0pKS5maWx0ZXIoeCA9PiAheC5pdC5kaXNhYmxlZCk7XG4gICAgaWYgKCFlbmFibGVkLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IGJ1dHRvbnMgPSB0aGlzLml0ZW1FbGVtZW50cz8udG9BcnJheSgpLm1hcChyID0+IHIubmF0aXZlRWxlbWVudCkgPz8gW107XG4gICAgY29uc3QgZm9jdXNlZEluZGV4ID0gYnV0dG9ucy5pbmRleE9mKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gICAgbGV0IHBvcyA9IGVuYWJsZWQuZmluZEluZGV4KHggPT4geC5pID09PSBmb2N1c2VkSW5kZXgpO1xuICAgIGlmIChwb3MgPCAwKSBwb3MgPSBlbmFibGVkLmZpbmRJbmRleCh4ID0+IHguaXQudmFsdWUgPT09IHRoaXMudmFsdWUpO1xuXG4gICAgbGV0IHRhcmdldFBvczogbnVtYmVyO1xuICAgIGlmIChob21lKSB7XG4gICAgICB0YXJnZXRQb3MgPSAwO1xuICAgIH0gZWxzZSBpZiAoZW5kKSB7XG4gICAgICB0YXJnZXRQb3MgPSBlbmFibGVkLmxlbmd0aCAtIDE7XG4gICAgfSBlbHNlIGlmIChmb3J3YXJkKSB7XG4gICAgICB0YXJnZXRQb3MgPSBwb3MgPCAwID8gMCA6IChwb3MgKyAxKSAlIGVuYWJsZWQubGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXRQb3MgPSBwb3MgPCAwID8gZW5hYmxlZC5sZW5ndGggLSAxIDogKHBvcyAtIDEgKyBlbmFibGVkLmxlbmd0aCkgJSBlbmFibGVkLmxlbmd0aDtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXQgPSBlbmFibGVkW3RhcmdldFBvc107XG4gICAgdGhpcy5zZWxlY3QodGFyZ2V0Lml0LnZhbHVlKTtcbiAgICB0aGlzLml0ZW1FbGVtZW50cy5nZXQodGFyZ2V0LmkpPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICB1cGRhdGVHbGlkZXIoKSB7XG4gICAgaWYgKCF0aGlzLml0ZW1FbGVtZW50cyB8fCAhdGhpcy5pdGVtcy5sZW5ndGgpIHJldHVybjtcblxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pdGVtcy5maW5kSW5kZXgoaSA9PiBpLnZhbHVlID09PSB0aGlzLnZhbHVlKTtcblxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIHRoaXMuaGFzVmFsdWUgPSBmYWxzZTtcbiAgICAgIHRoaXMuZ2xpZGVyV2lkdGggPSAwO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB0aGlzLml0ZW1FbGVtZW50cy5nZXQoaW5kZXgpPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKGFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuaGFzVmFsdWUgPSB0cnVlO1xuICAgICAgdGhpcy5nbGlkZXJMZWZ0ID0gYWN0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xuICAgICAgdGhpcy5nbGlkZXJXaWR0aCA9IGFjdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ1ZBIEltcGxlbWVudGF0aW9uXG4gIHdyaXRlVmFsdWUodmFsOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVHbGlkZXIoKSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vbkNoYW5nZSA9IGZuOyB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vblRvdWNoZWQgPSBmbjsgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNuID0gY247XG59XG5cbi8qKlxuICogQmFjay1jb21wYXQgYWxpYXM6IHRoZSBjbGFzcyB3YXMgcmVuYW1lZCB0byBtYXRjaCBpdHMgYHRvbGxlLXNlZ21lbnRgIHNlbGVjdG9yLlxuICpcbiAqIEEgcmUtZXhwb3J0IGJpbmRpbmcgcmF0aGVyIHRoYW4gYGNvbnN0IFNlZ21lbnRlZENvbXBvbmVudCA9IFNlZ21lbnRDb21wb25lbnRgLFxuICogYmVjYXVzZSBBbmd1bGFyJ3MgQU9UIGNvbXBpbGVyIHJlc29sdmVzIGFuIGFsaWFzZWQgZXhwb3J0IHN0cmFpZ2h0IGJhY2sgdG8gdGhlXG4gKiBjbGFzcyBkZWNsYXJhdGlvbiDigJQgc28gaXQgc3RpbGwgd29ya3MgaW4gYSBjb25zdW1lcidzIGBpbXBvcnRzOiBbXWAgYXJyYXkuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIGBTZWdtZW50Q29tcG9uZW50YC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgbWFqb3IuXG4gKi9cbmV4cG9ydCB7IFNlZ21lbnRDb21wb25lbnQgYXMgU2VnbWVudGVkQ29tcG9uZW50IH07XG4iXX0=
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3NlZ21lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFVBQVUsRUFFVixZQUFZLEVBUVosU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQTRFaEMsTUFBTSxPQUFPLGdCQUFnQjtJQW1CUDtJQWxCWCxLQUFLLEdBQWtCLEVBQUUsQ0FBQztJQUMxQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixZQUFZLENBQW9CLENBQUMsdUJBQXVCO0lBRWpFLEtBQUssR0FBUSxJQUFJLENBQUM7SUFDbEIsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNmLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDaEIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVPLFdBQVcsQ0FBMkI7SUFDckMsWUFBWSxDQUFzQztJQUVuRSxjQUFjLENBQWtCO0lBRXhDLFFBQVEsR0FBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUIsU0FBUyxHQUFRLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUUzQixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUFJLENBQUM7SUFFL0MsZUFBZTtRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUV0QyxJQUFJLE9BQU8sY0FBYyxLQUFLLFdB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Z0JBQWdCO2tCQWpFNUIsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxhQUN6Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQzs0QkFDL0MsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1Q7c0ZBUVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBT2tCLFdBQVc7c0JBQWxDLFNBQVM7dUJBQUMsV0FBVztnQkFDRyxZQUFZO3NCQUFwQyxZQUFZO3VCQUFDLFNBQVM7O0FBK0l6Qjs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxrQkFBa0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgZm9yd2FyZFJlZixcbiAgRWxlbWVudFJlZixcbiAgVmlld0NoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbmV4cG9ydCB0eXBlIFNlZ21lbnRJdGVtID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGljb24/OiBzdHJpbmc7ICAgLy8gQWRkZWQ6IE9wdGlvbmFsIGljb24gY2xhc3MgKGUuZy4sICdyaS1ob21lLWxpbmUnKVxuICBjbGFzcz86IHN0cmluZzsgIC8vIEFkZGVkOiBDdXN0b20gY2xhc3MgZm9yIHNwZWNpZmljIGl0ZW0gd3JhcHBlclxuICBkYXRhPzogYW55OyAgICAgIC8vIEFkZGVkOiBFeHRyYSBkYXRhIHBheWxvYWQgZm9yIGN1c3RvbSB0ZW1wbGF0ZXNcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2VnbWVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWdtZW50Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgICNjb250YWluZXJcbiAgICAgIFtjbGFzc109XCJjbihcbiAgICAgICAgJ3JlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIHAtMSBiZy1tdXRlZCByb3VuZGVkLWxnIHNlbGVjdC1ub25lIHctZnVsbCBnYXAtMScsXG4gICAgICAgIGNsYXNzXG4gICAgICApXCJcbiAgICAgIHJvbGU9XCJyYWRpb2dyb3VwXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTEgYm90dG9tLTEgYmctcHJpbWFyeSBzaGFkb3ctc20gcm91bmRlZC1tZCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgZWFzZS10b2xsZVwiXG4gICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImdsaWRlckxlZnRcIlxuICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiZ2xpZGVyV2lkdGhcIlxuICAgICAgICBbY2xhc3Mub3BhY2l0eS0wXT1cIiFoYXNWYWx1ZVwiXG4gICAgICA+PC9kaXY+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIlxuICAgICAgICAjaXRlbUVsc1xuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgcm9sZT1cInJhZGlvXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWQgfHwgZGlzYWJsZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwidmFsdWUgPT09IGl0ZW0udmFsdWVcIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCJnZXRUYWJJbmRleChpdGVtKVwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3QoaXRlbS52YWx1ZSlcIlxuICAgICAgICBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgJ3JlbGF0aXZlIHotMTAgZmxleC0xIHB4LTMgcHktMS41IHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMjAwIHJvdW5kZWQtbWQgdGV4dC1jZW50ZXIgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yJyxcbiAgICAgICAgICAnZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTInLFxuICAgICAgICAgIHZhbHVlID09PSBpdGVtLnZhbHVlXG4gICAgICAgICAgICA/ICd0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCdcbiAgICAgICAgICAgIDogJ3RleHQtbXV0ZWQtZm9yZWdyb3VuZCBob3Zlcjp0ZXh0LWZvcmVncm91bmQvNzAnLFxuICAgICAgICAgIGl0ZW0uZGlzYWJsZWQgJiYgJ29wYWNpdHktNTAgY3Vyc29yLW5vdC1hbGxvd2VkJyxcbiAgICAgICAgICBpdGVtLmNsYXNzXG4gICAgICAgIClcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbVRlbXBsYXRlOyBlbHNlIGRlZmF1bHRDb250ZW50XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIHNlbGVjdGVkOiB2YWx1ZSA9PT0gaXRlbS52YWx1ZSB9XCI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbnRlbnQ+XG4gICAgICAgICAgPGkgKm5nSWY9XCJpdGVtLmljb25cIiBbY2xhc3NdPVwiaXRlbS5pY29uXCI+PC9pPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICA6aG9zdCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIFNlZ21lbnRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBpdGVtczogU2VnbWVudEl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpdGVtVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+OyAvLyBBbGxvdyBjdXN0b20gY29udGVudFxuXG4gIHZhbHVlOiBhbnkgPSBudWxsO1xuICBnbGlkZXJMZWZ0ID0gMDtcbiAgZ2xpZGVyV2lkdGggPSAwO1xuICBoYXNWYWx1ZSA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lckVsITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBWaWV3Q2hpbGRyZW4oJ2l0ZW1FbHMnKSBpdGVtRWxlbWVudHMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuXG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI/OiBSZXNpemVPYnNlcnZlcjtcblxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4geyB9O1xuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHsgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlR2xpZGVyKCkpO1xuXG4gICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jb250YWluZXJFbCkge1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlR2xpZGVyKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmNvbnRhaW5lckVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgLy8gUmVjYWxjdWxhdGUgaWYgaXRlbXMgY2hhbmdlIG9yIGlmIHZhbHVlIGNoYW5nZXMgZXh0ZXJuYWxseVxuICAgIGlmIChjaGFuZ2VzWydpdGVtcyddICYmICFjaGFuZ2VzWydpdGVtcyddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlR2xpZGVyKCkpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdCh2YWw6IGFueSkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbXMuZmluZChpID0+IGkudmFsdWUgPT09IHZhbCk7XG4gICAgaWYgKGl0ZW0/LmRpc2FibGVkKSByZXR1cm47XG5cbiAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgIHRoaXMub25DaGFuZ2UodmFsKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMudXBkYXRlR2xpZGVyKCk7XG4gIH1cblxuICAvKiogVHJ1ZSB3aGVuIHRoZSBjdXJyZW50IHZhbHVlIG1hdGNoZXMgb25lIG9mIHRoZSBpdGVtcy4gKi9cbiAgcHJpdmF0ZSBoYXNTZWxlY3RlZFZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnNvbWUoaSA9PiBpLnZhbHVlID09PSB0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZmlyc3RFbmFibGVkSXRlbSgpOiBTZWdtZW50SXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZChpID0+ICFpLmRpc2FibGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSb3ZpbmcgdGFiaW5kZXg6IHRoZSBzZWxlY3RlZCBpdGVtIGlzIHRhYi1yZWFjaGFibGUsIG9yIC0gd2hlbiBub3RoaW5nIGlzXG4gICAqIHNlbGVjdGVkIC0gdGhlIGZpcnN0IGVuYWJsZWQgaXRlbS4gQWxsIG90aGVyIGl0ZW1zIGdldCAtMS5cbiAgICovXG4gIGdldFRhYkluZGV4KGl0ZW06IFNlZ21lbnRJdGVtKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCBpdGVtLmRpc2FibGVkKSByZXR1cm4gLTE7XG4gICAgaWYgKHRoaXMudmFsdWUgPT09IGl0ZW0udmFsdWUpIHJldHVybiAwO1xuICAgIGlmICghdGhpcy5oYXNTZWxlY3RlZFZhbHVlKCkgJiYgdGhpcy5maXJzdEVuYWJsZWRJdGVtKCkgPT09IGl0ZW0pIHJldHVybiAwO1xuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXQUktQVJJQSByYWRpbyBncm91cCBrZXlib2FyZCBuYXY6IEFycm93IExlZnQvUmlnaHQgKGFuZCBIb21lL0VuZCkgbW92ZVxuICAgKiBzZWxlY3Rpb24gKyBmb2N1cyBhY3Jvc3MgdGhlIGVuYWJsZWQgaXRlbXMsIHdyYXBwaW5nIGFuZCBza2lwcGluZyBkaXNhYmxlZC5cbiAgICovXG4gIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG5cbiAgICBjb25zdCBrZXkgPSBldmVudC5rZXk7XG4gICAgY29uc3QgZm9yd2FyZCA9IGtleSA9PT0gJ0Fycm93UmlnaHQnO1xuICAgIGNvbnN0IGJhY2t3YXJkID0ga2V5ID09PSAnQXJyb3dMZWZ0JztcbiAgICBjb25zdCBob21lID0ga2V5ID09PSAnSG9tZSc7XG4gICAgY29uc3QgZW5kID0ga2V5ID09PSAnRW5kJztcbiAgICBpZiAoIWZvcndhcmQgJiYgIWJhY2t3YXJkICYmICFob21lICYmICFlbmQpIHJldHVybjtcblxuICAgIGNvbnN0IGVuYWJsZWQgPSB0aGlzLml0ZW1zLm1hcCgoaXQsIGkpID0+ICh7IGl0LCBpIH0pKS5maWx0ZXIoeCA9PiAheC5pdC5kaXNhYmxlZCk7XG4gICAgaWYgKCFlbmFibGVkLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IGJ1dHRvbnMgPSB0aGlzLml0ZW1FbGVtZW50cz8udG9BcnJheSgpLm1hcChyID0+IHIubmF0aXZlRWxlbWVudCkgPz8gW107XG4gICAgY29uc3QgZm9jdXNlZEluZGV4ID0gYnV0dG9ucy5pbmRleE9mKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gICAgbGV0IHBvcyA9IGVuYWJsZWQuZmluZEluZGV4KHggPT4geC5pID09PSBmb2N1c2VkSW5kZXgpO1xuICAgIGlmIChwb3MgPCAwKSBwb3MgPSBlbmFibGVkLmZpbmRJbmRleCh4ID0+IHguaXQudmFsdWUgPT09IHRoaXMudmFsdWUpO1xuXG4gICAgbGV0IHRhcmdldFBvczogbnVtYmVyO1xuICAgIGlmIChob21lKSB7XG4gICAgICB0YXJnZXRQb3MgPSAwO1xuICAgIH0gZWxzZSBpZiAoZW5kKSB7XG4gICAgICB0YXJnZXRQb3MgPSBlbmFibGVkLmxlbmd0aCAtIDE7XG4gICAgfSBlbHNlIGlmIChmb3J3YXJkKSB7XG4gICAgICB0YXJnZXRQb3MgPSBwb3MgPCAwID8gMCA6IChwb3MgKyAxKSAlIGVuYWJsZWQubGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXRQb3MgPSBwb3MgPCAwID8gZW5hYmxlZC5sZW5ndGggLSAxIDogKHBvcyAtIDEgKyBlbmFibGVkLmxlbmd0aCkgJSBlbmFibGVkLmxlbmd0aDtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXQgPSBlbmFibGVkW3RhcmdldFBvc107XG4gICAgdGhpcy5zZWxlY3QodGFyZ2V0Lml0LnZhbHVlKTtcbiAgICB0aGlzLml0ZW1FbGVtZW50cy5nZXQodGFyZ2V0LmkpPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICB1cGRhdGVHbGlkZXIoKSB7XG4gICAgaWYgKCF0aGlzLml0ZW1FbGVtZW50cyB8fCAhdGhpcy5pdGVtcy5sZW5ndGgpIHJldHVybjtcblxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pdGVtcy5maW5kSW5kZXgoaSA9PiBpLnZhbHVlID09PSB0aGlzLnZhbHVlKTtcblxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIHRoaXMuaGFzVmFsdWUgPSBmYWxzZTtcbiAgICAgIHRoaXMuZ2xpZGVyV2lkdGggPSAwO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB0aGlzLml0ZW1FbGVtZW50cy5nZXQoaW5kZXgpPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKGFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuaGFzVmFsdWUgPSB0cnVlO1xuICAgICAgdGhpcy5nbGlkZXJMZWZ0ID0gYWN0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xuICAgICAgdGhpcy5nbGlkZXJXaWR0aCA9IGFjdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ1ZBIEltcGxlbWVudGF0aW9uXG4gIHdyaXRlVmFsdWUodmFsOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVHbGlkZXIoKSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vbkNoYW5nZSA9IGZuOyB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vblRvdWNoZWQgPSBmbjsgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNuID0gY247XG59XG5cbi8qKlxuICogQmFjay1jb21wYXQgYWxpYXM6IHRoZSBjbGFzcyB3YXMgcmVuYW1lZCB0byBtYXRjaCBpdHMgYHRvbGxlLXNlZ21lbnRgIHNlbGVjdG9yLlxuICpcbiAqIEEgcmUtZXhwb3J0IGJpbmRpbmcgcmF0aGVyIHRoYW4gYGNvbnN0IFNlZ21lbnRlZENvbXBvbmVudCA9IFNlZ21lbnRDb21wb25lbnRgLFxuICogYmVjYXVzZSBBbmd1bGFyJ3MgQU9UIGNvbXBpbGVyIHJlc29sdmVzIGFuIGFsaWFzZWQgZXhwb3J0IHN0cmFpZ2h0IGJhY2sgdG8gdGhlXG4gKiBjbGFzcyBkZWNsYXJhdGlvbiDigJQgc28gaXQgc3RpbGwgd29ya3MgaW4gYSBjb25zdW1lcidzIGBpbXBvcnRzOiBbXWAgYXJyYXkuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIGBTZWdtZW50Q29tcG9uZW50YC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgbWFqb3IuXG4gKi9cbmV4cG9ydCB7IFNlZ21lbnRDb21wb25lbnQgYXMgU2VnbWVudGVkQ29tcG9uZW50IH07XG4iXX0=