angular-debug-recorder 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -51,70 +51,70 @@ export class TestPreviewComponent {
51
51
  });
52
52
  }
53
53
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TestPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TestPreviewComponent, isStandalone: true, selector: "app-test-preview", inputs: { test: "test" }, ngImport: i0, template: `
55
- <div class="test-preview" data-debug-panel>
56
- @if (!test) {
57
- <div class="empty-state">
58
- <div class="empty-icon">🤖</div>
59
- <p>Noch kein Test generiert.</p>
60
- <p class="hint">Zeichne Aktionen auf und klicke „🤖 → Cypress Test".</p>
61
- </div>
62
- } @else {
63
- <div class="test-toolbar" data-debug-panel>
64
- <div class="test-meta">
65
- <span class="model-tag">{{ test.model }}</span>
66
- <span class="gen-time">{{ formatDate(test.generatedAt) }}</span>
67
- </div>
68
- <div class="test-actions">
69
- <button class="action-btn" title="Kopieren" (click)="copyCode()">
70
- {{ copied() ? '✅ Kopiert!' : '📋 Kopieren' }}
71
- </button>
72
- <button class="action-btn" title="Herunterladen" (click)="downloadCode()">
73
- 💾 Download
74
- </button>
75
- </div>
76
- </div>
77
-
78
- <div class="code-container">
79
- <pre class="code-block"><code [innerHTML]="highlightedCode()"></code></pre>
80
- </div>
81
- }
82
- </div>
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TestPreviewComponent, isStandalone: true, selector: "app-test-preview", inputs: { test: "test" }, ngImport: i0, template: `
55
+ <div class="test-preview" data-debug-panel>
56
+ @if (!test) {
57
+ <div class="empty-state">
58
+ <div class="empty-icon">🤖</div>
59
+ <p>Noch kein Test generiert.</p>
60
+ <p class="hint">Zeichne Aktionen auf und klicke „🤖 → Cypress Test".</p>
61
+ </div>
62
+ } @else {
63
+ <div class="test-toolbar" data-debug-panel>
64
+ <div class="test-meta">
65
+ <span class="model-tag">{{ test.model }}</span>
66
+ <span class="gen-time">{{ formatDate(test.generatedAt) }}</span>
67
+ </div>
68
+ <div class="test-actions">
69
+ <button class="action-btn" title="Kopieren" (click)="copyCode()">
70
+ {{ copied() ? '✅ Kopiert!' : '📋 Kopieren' }}
71
+ </button>
72
+ <button class="action-btn" title="Herunterladen" (click)="downloadCode()">
73
+ 💾 Download
74
+ </button>
75
+ </div>
76
+ </div>
77
+
78
+ <div class="code-container">
79
+ <pre class="code-block"><code [innerHTML]="highlightedCode()"></code></pre>
80
+ </div>
81
+ }
82
+ </div>
83
83
  `, isInline: true, styles: [".test-preview{height:100%;display:flex;flex-direction:column}.empty-state{text-align:center;padding:32px 20px;color:#64748b}.empty-icon{font-size:40px;margin-bottom:10px}.empty-state p{margin:4px 0;font-size:13px}.hint{font-size:11px;color:#475569}.test-toolbar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#1e293b;border-bottom:1px solid #334155;flex-shrink:0;gap:8px}.test-meta{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.model-tag{background:#312e81;color:#a5b4fc;font-size:10px;padding:2px 7px;border-radius:4px;font-weight:600;white-space:nowrap}.gen-time{font-size:10px;color:#64748b;white-space:nowrap}.test-actions{display:flex;gap:6px;flex-shrink:0}.action-btn{background:#334155;border:none;color:#cbd5e1;padding:4px 10px;border-radius:5px;font-size:11px;cursor:pointer;white-space:nowrap;transition:background .15s}.action-btn:hover{background:#475569}.code-container{flex:1;overflow:auto}.code-container::-webkit-scrollbar{width:5px;height:5px}.code-container::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}.code-block{margin:0;padding:14px;font-family:Cascadia Code,Consolas,Fira Code,monospace;font-size:11px;line-height:1.7;color:#e2e8f0;white-space:pre;tab-size:2}:global(.kw){color:#c084fc}:global(.str){color:#86efac}:global(.fn){color:#67e8f9}:global(.cm){color:#64748b;font-style:italic}:global(.num){color:#fb923c}:global(.cy){color:#fbbf24;font-weight:600}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
84
84
  }
85
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TestPreviewComponent, decorators: [{
86
86
  type: Component,
87
- args: [{ selector: 'app-test-preview', standalone: true, imports: [CommonModule], template: `
88
- <div class="test-preview" data-debug-panel>
89
- @if (!test) {
90
- <div class="empty-state">
91
- <div class="empty-icon">🤖</div>
92
- <p>Noch kein Test generiert.</p>
93
- <p class="hint">Zeichne Aktionen auf und klicke „🤖 → Cypress Test".</p>
94
- </div>
95
- } @else {
96
- <div class="test-toolbar" data-debug-panel>
97
- <div class="test-meta">
98
- <span class="model-tag">{{ test.model }}</span>
99
- <span class="gen-time">{{ formatDate(test.generatedAt) }}</span>
100
- </div>
101
- <div class="test-actions">
102
- <button class="action-btn" title="Kopieren" (click)="copyCode()">
103
- {{ copied() ? '✅ Kopiert!' : '📋 Kopieren' }}
104
- </button>
105
- <button class="action-btn" title="Herunterladen" (click)="downloadCode()">
106
- 💾 Download
107
- </button>
108
- </div>
109
- </div>
110
-
111
- <div class="code-container">
112
- <pre class="code-block"><code [innerHTML]="highlightedCode()"></code></pre>
113
- </div>
114
- }
115
- </div>
87
+ args: [{ selector: 'app-test-preview', standalone: true, imports: [CommonModule], template: `
88
+ <div class="test-preview" data-debug-panel>
89
+ @if (!test) {
90
+ <div class="empty-state">
91
+ <div class="empty-icon">🤖</div>
92
+ <p>Noch kein Test generiert.</p>
93
+ <p class="hint">Zeichne Aktionen auf und klicke „🤖 → Cypress Test".</p>
94
+ </div>
95
+ } @else {
96
+ <div class="test-toolbar" data-debug-panel>
97
+ <div class="test-meta">
98
+ <span class="model-tag">{{ test.model }}</span>
99
+ <span class="gen-time">{{ formatDate(test.generatedAt) }}</span>
100
+ </div>
101
+ <div class="test-actions">
102
+ <button class="action-btn" title="Kopieren" (click)="copyCode()">
103
+ {{ copied() ? '✅ Kopiert!' : '📋 Kopieren' }}
104
+ </button>
105
+ <button class="action-btn" title="Herunterladen" (click)="downloadCode()">
106
+ 💾 Download
107
+ </button>
108
+ </div>
109
+ </div>
110
+
111
+ <div class="code-container">
112
+ <pre class="code-block"><code [innerHTML]="highlightedCode()"></code></pre>
113
+ </div>
114
+ }
115
+ </div>
116
116
  `, styles: [".test-preview{height:100%;display:flex;flex-direction:column}.empty-state{text-align:center;padding:32px 20px;color:#64748b}.empty-icon{font-size:40px;margin-bottom:10px}.empty-state p{margin:4px 0;font-size:13px}.hint{font-size:11px;color:#475569}.test-toolbar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#1e293b;border-bottom:1px solid #334155;flex-shrink:0;gap:8px}.test-meta{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.model-tag{background:#312e81;color:#a5b4fc;font-size:10px;padding:2px 7px;border-radius:4px;font-weight:600;white-space:nowrap}.gen-time{font-size:10px;color:#64748b;white-space:nowrap}.test-actions{display:flex;gap:6px;flex-shrink:0}.action-btn{background:#334155;border:none;color:#cbd5e1;padding:4px 10px;border-radius:5px;font-size:11px;cursor:pointer;white-space:nowrap;transition:background .15s}.action-btn:hover{background:#475569}.code-container{flex:1;overflow:auto}.code-container::-webkit-scrollbar{width:5px;height:5px}.code-container::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}.code-block{margin:0;padding:14px;font-family:Cascadia Code,Consolas,Fira Code,monospace;font-size:11px;line-height:1.7;color:#e2e8f0;white-space:pre;tab-size:2}:global(.kw){color:#c084fc}:global(.str){color:#86efac}:global(.fn){color:#67e8f9}:global(.cm){color:#64748b;font-style:italic}:global(.num){color:#fb923c}:global(.cy){color:#fbbf24;font-weight:600}\n"] }]
117
117
  }], propDecorators: { test: [{
118
118
  type: Input
119
119
  }] } });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RlYnVnLXJlY29yZGVyL3NyYy9saWIvdGVzdC1wcmV2aWV3L3Rlc3QtcHJldmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBK0cvQyxNQUFNLE9BQU8sb0JBQW9CO0lBNUdqQztRQTZHVyxTQUFJLEdBQXlCLElBQUksQ0FBQztRQUUzQyxXQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXZCLG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7S0EwQ0o7SUF4Q1MsZUFBZSxDQUFDLElBQVk7UUFDbEMsT0FBTyxJQUFJO2FBQ1IsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7YUFDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7YUFDckIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7WUFDdEIsV0FBVzthQUNWLE9BQU8sQ0FBQyxlQUFlLEVBQUUsNEJBQTRCLENBQUM7WUFDdkQsZUFBZTthQUNkLE9BQU8sQ0FBQyxXQUFXLEVBQUUsNEJBQTRCLENBQUM7WUFDbkQsV0FBVzthQUNWLE9BQU8sQ0FBQyx1SUFBdUksRUFBRSw0QkFBNEIsQ0FBQztZQUMvSyxVQUFVO2FBQ1QsT0FBTyxDQUFDLDRCQUE0QixFQUFFLDZCQUE2QixDQUFDO1lBQ3JFLFVBQVU7YUFDVCxPQUFPLENBQUMsWUFBWSxFQUFFLDZCQUE2QixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUN2QixNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUN2QixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDO1FBQzNFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNWLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFVO1FBQ25CLE9BQU8sSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRTtZQUMxQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUztTQUNyRSxDQUFDLENBQUM7SUFDTCxDQUFDOytHQWpEVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixzR0F4R3JCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCVCx5L0NBOUJTLFlBQVk7OzRGQXlHWCxvQkFBb0I7a0JBNUdoQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2QlQ7OEJBNEVRLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIHNpZ25hbCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBHZW5lcmF0ZWRUZXN0IH0gZnJvbSAnLi4vbW9kZWxzL3JlY29yZGVkLWFjdGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10ZXN0LXByZXZpZXcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwidGVzdC1wcmV2aWV3XCIgZGF0YS1kZWJ1Zy1wYW5lbD5cbiAgICAgIEBpZiAoIXRlc3QpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LWljb25cIj7wn6SWPC9kaXY+XG4gICAgICAgICAgPHA+Tm9jaCBrZWluIFRlc3QgZ2VuZXJpZXJ0LjwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cImhpbnRcIj5aZWljaG5lIEFrdGlvbmVuIGF1ZiB1bmQga2xpY2tlIOKAnvCfpJYg4oaSIEN5cHJlc3MgVGVzdFwiLjwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInRlc3QtdG9vbGJhclwiIGRhdGEtZGVidWctcGFuZWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRlc3QtbWV0YVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtb2RlbC10YWdcIj57eyB0ZXN0Lm1vZGVsIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnZW4tdGltZVwiPnt7IGZvcm1hdERhdGUodGVzdC5nZW5lcmF0ZWRBdCkgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRlc3QtYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbi1idG5cIiB0aXRsZT1cIktvcGllcmVuXCIgKGNsaWNrKT1cImNvcHlDb2RlKClcIj5cbiAgICAgICAgICAgICAge3sgY29waWVkKCkgPyAn4pyFIEtvcGllcnQhJyA6ICfwn5OLIEtvcGllcmVuJyB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uLWJ0blwiIHRpdGxlPVwiSGVydW50ZXJsYWRlblwiIChjbGljayk9XCJkb3dubG9hZENvZGUoKVwiPlxuICAgICAgICAgICAgICDwn5K+IERvd25sb2FkXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvZGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgPHByZSBjbGFzcz1cImNvZGUtYmxvY2tcIj48Y29kZSBbaW5uZXJIVE1MXT1cImhpZ2hsaWdodGVkQ29kZSgpXCI+PC9jb2RlPjwvcHJlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbYFxuICAgIC50ZXN0LXByZXZpZXcgeyBoZWlnaHQ6IDEwMCU7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuICAgIC5lbXB0eS1zdGF0ZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiAzMnB4IDIwcHg7XG4gICAgICBjb2xvcjogIzY0NzQ4YjtcbiAgICB9XG4gICAgLmVtcHR5LWljb24geyBmb250LXNpemU6IDQwcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgICAuZW1wdHktc3RhdGUgcCB7IG1hcmdpbjogNHB4IDA7IGZvbnQtc2l6ZTogMTNweDsgfVxuICAgIC5oaW50IHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogIzQ3NTU2OTsgfVxuXG4gICAgLnRlc3QtdG9vbGJhciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgICAgYmFja2dyb3VuZDogIzFlMjkzYjtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMzM0MTU1O1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBnYXA6IDhweDtcbiAgICB9XG4gICAgLnRlc3QtbWV0YSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyBmbGV4OiAxOyBtaW4td2lkdGg6IDA7IH1cbiAgICAubW9kZWwtdGFnIHtcbiAgICAgIGJhY2tncm91bmQ6ICMzMTJlODE7XG4gICAgICBjb2xvcjogI2E1YjRmYztcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIHBhZGRpbmc6IDJweCA3cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG4gICAgLmdlbi10aW1lIHsgZm9udC1zaXplOiAxMHB4OyBjb2xvcjogIzY0NzQ4Yjsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgIC50ZXN0LWFjdGlvbnMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDZweDsgZmxleC1zaHJpbms6IDA7IH1cbiAgICAuYWN0aW9uLWJ0biB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMzM0MTU1O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgY29sb3I6ICNjYmQ1ZTE7XG4gICAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzO1xuICAgIH1cbiAgICAuYWN0aW9uLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6ICM0NzU1Njk7IH1cblxuICAgIC5jb2RlLWNvbnRhaW5lciB7XG4gICAgICBmbGV4OiAxO1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuICAgIC5jb2RlLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogNXB4OyBoZWlnaHQ6IDVweDsgfVxuICAgIC5jb2RlLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgeyBiYWNrZ3JvdW5kOiAjMzM0MTU1OyBib3JkZXItcmFkaXVzOiAzcHg7IH1cblxuICAgIC5jb2RlLWJsb2NrIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgICBmb250LWZhbWlseTogJ0Nhc2NhZGlhIENvZGUnLCAnQ29uc29sYXMnLCAnRmlyYSBDb2RlJywgbW9ub3NwYWNlO1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNztcbiAgICAgIGNvbG9yOiAjZTJlOGYwO1xuICAgICAgd2hpdGUtc3BhY2U6IHByZTtcbiAgICAgIHRhYi1zaXplOiAyO1xuICAgIH1cblxuICAgIC8qIFN5bnRheCBIaWdobGlnaHRpbmcgKi9cbiAgICA6Z2xvYmFsKC5rdykgIHsgY29sb3I6ICNjMDg0ZmM7IH1cbiAgICA6Z2xvYmFsKC5zdHIpIHsgY29sb3I6ICM4NmVmYWM7IH1cbiAgICA6Z2xvYmFsKC5mbikgIHsgY29sb3I6ICM2N2U4Zjk7IH1cbiAgICA6Z2xvYmFsKC5jbSkgIHsgY29sb3I6ICM2NDc0OGI7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuICAgIDpnbG9iYWwoLm51bSkgeyBjb2xvcjogI2ZiOTIzYzsgfVxuICAgIDpnbG9iYWwoLmN5KSAgeyBjb2xvcjogI2ZiYmYyNDsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICBgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGVzdFByZXZpZXdDb21wb25lbnQge1xuICBASW5wdXQoKSB0ZXN0OiBHZW5lcmF0ZWRUZXN0IHwgbnVsbCA9IG51bGw7XG5cbiAgY29waWVkID0gc2lnbmFsKGZhbHNlKTtcblxuICBoaWdobGlnaHRlZENvZGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLnRlc3QpIHJldHVybiAnJztcbiAgICByZXR1cm4gdGhpcy5zeW50YXhIaWdobGlnaHQodGhpcy50ZXN0LmNvZGUpO1xuICB9KTtcblxuICBwcml2YXRlIHN5bnRheEhpZ2hsaWdodChjb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBjb2RlXG4gICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxuICAgICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKVxuICAgICAgLnJlcGxhY2UoLz4vZywgJyZndDsnKVxuICAgICAgLy8gQ29tbWVudHNcbiAgICAgIC5yZXBsYWNlKC8oXFwvXFwvW15cXG5dKikvZywgJzxzcGFuIGNsYXNzPVwiY21cIj4kMTwvc3Bhbj4nKVxuICAgICAgLy8gY3kuIGNvbW1hbmRzXG4gICAgICAucmVwbGFjZSgvXFxiKGN5KVxcYi9nLCAnPHNwYW4gY2xhc3M9XCJjeVwiPiQxPC9zcGFuPicpXG4gICAgICAvLyBLZXl3b3Jkc1xuICAgICAgLnJlcGxhY2UoL1xcYihkZXNjcmliZXxpdHxiZWZvcmVFYWNofGFmdGVyRWFjaHxiZWZvcmV8YWZ0ZXJ8Y29udGV4dHxzcGVjaWZ5fGNvbnN0fGxldHx2YXJ8ZnVuY3Rpb258cmV0dXJufGltcG9ydHxleHBvcnR8ZnJvbXxhc3luY3xhd2FpdHxuZXcpXFxiL2csICc8c3BhbiBjbGFzcz1cImt3XCI+JDE8L3NwYW4+JylcbiAgICAgIC8vIFN0cmluZ3NcbiAgICAgIC5yZXBsYWNlKC8oJ1teJ10qJ3xcIlteXCJdKlwifGBbXmBdKmApL2csICc8c3BhbiBjbGFzcz1cInN0clwiPiQxPC9zcGFuPicpXG4gICAgICAvLyBOdW1iZXJzXG4gICAgICAucmVwbGFjZSgvXFxiKFxcZCspXFxiL2csICc8c3BhbiBjbGFzcz1cIm51bVwiPiQxPC9zcGFuPicpO1xuICB9XG5cbiAgYXN5bmMgY29weUNvZGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLnRlc3QpIHJldHVybjtcbiAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0aGlzLnRlc3QuY29kZSk7XG4gICAgdGhpcy5jb3BpZWQuc2V0KHRydWUpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jb3BpZWQuc2V0KGZhbHNlKSwgMjAwMCk7XG4gIH1cblxuICBkb3dubG9hZENvZGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRlc3QpIHJldHVybjtcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3RoaXMudGVzdC5jb2RlXSwgeyB0eXBlOiAndGV4dC90eXBlc2NyaXB0JyB9KTtcbiAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgYS5ocmVmID0gdXJsO1xuICAgIGEuZG93bmxvYWQgPSBgY3lwcmVzcy10ZXN0LSR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpLnNsaWNlKDAsIDEwKX0uY3kudHNgO1xuICAgIGEuY2xpY2soKTtcbiAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG4gIH1cblxuICBmb3JtYXREYXRlKHRzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgRGF0ZSh0cykudG9Mb2NhbGVTdHJpbmcoJ2RlLURFJywge1xuICAgICAgZGF5OiAnMi1kaWdpdCcsIG1vbnRoOiAnMi1kaWdpdCcsIGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RlYnVnLXJlY29yZGVyL3NyYy9saWIvdGVzdC1wcmV2aWV3L3Rlc3QtcHJldmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBK0cvQyxNQUFNLE9BQU8sb0JBQW9CO0lBNUdqQztRQTZHVyxTQUFJLEdBQXlCLElBQUksQ0FBQztRQUUzQyxXQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXZCLG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7S0EwQ0o7SUF4Q1MsZUFBZSxDQUFDLElBQVk7UUFDbEMsT0FBTyxJQUFJO2FBQ1IsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7YUFDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7YUFDckIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7WUFDdEIsV0FBVzthQUNWLE9BQU8sQ0FBQyxlQUFlLEVBQUUsNEJBQTRCLENBQUM7WUFDdkQsZUFBZTthQUNkLE9BQU8sQ0FBQyxXQUFXLEVBQUUsNEJBQTRCLENBQUM7WUFDbkQsV0FBVzthQUNWLE9BQU8sQ0FBQyx1SUFBdUksRUFBRSw0QkFBNEIsQ0FBQztZQUMvSyxVQUFVO2FBQ1QsT0FBTyxDQUFDLDRCQUE0QixFQUFFLDZCQUE2QixDQUFDO1lBQ3JFLFVBQVU7YUFDVCxPQUFPLENBQUMsWUFBWSxFQUFFLDZCQUE2QixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUN2QixNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUN2QixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDO1FBQzNFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNWLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFVO1FBQ25CLE9BQU8sSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRTtZQUMxQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUztTQUNyRSxDQUFDLENBQUM7SUFDTCxDQUFDOytHQWpEVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixzR0F4R3JCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCVCx5L0NBOUJTLFlBQVk7OzRGQXlHWCxvQkFBb0I7a0JBNUdoQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2QlQ7OEJBNEVRLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIHNpZ25hbCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgR2VuZXJhdGVkVGVzdCB9IGZyb20gJy4uL21vZGVscy9yZWNvcmRlZC1hY3Rpb24ubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdGVzdC1wcmV2aWV3JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwidGVzdC1wcmV2aWV3XCIgZGF0YS1kZWJ1Zy1wYW5lbD5cclxuICAgICAgQGlmICghdGVzdCkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1zdGF0ZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LWljb25cIj7wn6SWPC9kaXY+XHJcbiAgICAgICAgICA8cD5Ob2NoIGtlaW4gVGVzdCBnZW5lcmllcnQuPC9wPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJoaW50XCI+WmVpY2huZSBBa3Rpb25lbiBhdWYgdW5kIGtsaWNrZSDigJ7wn6SWIOKGkiBDeXByZXNzIFRlc3RcIi48L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXN0LXRvb2xiYXJcIiBkYXRhLWRlYnVnLXBhbmVsPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRlc3QtbWV0YVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1vZGVsLXRhZ1wiPnt7IHRlc3QubW9kZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2VuLXRpbWVcIj57eyBmb3JtYXREYXRlKHRlc3QuZ2VuZXJhdGVkQXQpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGVzdC1hY3Rpb25zXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhY3Rpb24tYnRuXCIgdGl0bGU9XCJLb3BpZXJlblwiIChjbGljayk9XCJjb3B5Q29kZSgpXCI+XHJcbiAgICAgICAgICAgICAge3sgY29waWVkKCkgPyAn4pyFIEtvcGllcnQhJyA6ICfwn5OLIEtvcGllcmVuJyB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbi1idG5cIiB0aXRsZT1cIkhlcnVudGVybGFkZW5cIiAoY2xpY2spPVwiZG93bmxvYWRDb2RlKClcIj5cclxuICAgICAgICAgICAgICDwn5K+IERvd25sb2FkXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2RlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPHByZSBjbGFzcz1cImNvZGUtYmxvY2tcIj48Y29kZSBbaW5uZXJIVE1MXT1cImhpZ2hsaWdodGVkQ29kZSgpXCI+PC9jb2RlPjwvcHJlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHN0eWxlczogW2BcclxuICAgIC50ZXN0LXByZXZpZXcgeyBoZWlnaHQ6IDEwMCU7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cclxuXHJcbiAgICAuZW1wdHktc3RhdGUge1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIHBhZGRpbmc6IDMycHggMjBweDtcclxuICAgICAgY29sb3I6ICM2NDc0OGI7XHJcbiAgICB9XHJcbiAgICAuZW1wdHktaWNvbiB7IGZvbnQtc2l6ZTogNDBweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxyXG4gICAgLmVtcHR5LXN0YXRlIHAgeyBtYXJnaW46IDRweCAwOyBmb250LXNpemU6IDEzcHg7IH1cclxuICAgIC5oaW50IHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogIzQ3NTU2OTsgfVxyXG5cclxuICAgIC50ZXN0LXRvb2xiYXIge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIHBhZGRpbmc6IDhweCAxMnB4O1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjMWUyOTNiO1xyXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzNDE1NTtcclxuICAgICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAgIGdhcDogOHB4O1xyXG4gICAgfVxyXG4gICAgLnRlc3QtbWV0YSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyBmbGV4OiAxOyBtaW4td2lkdGg6IDA7IH1cclxuICAgIC5tb2RlbC10YWcge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjMzEyZTgxO1xyXG4gICAgICBjb2xvcjogI2E1YjRmYztcclxuICAgICAgZm9udC1zaXplOiAxMHB4O1xyXG4gICAgICBwYWRkaW5nOiAycHggN3B4O1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICB9XHJcbiAgICAuZ2VuLXRpbWUgeyBmb250LXNpemU6IDEwcHg7IGNvbG9yOiAjNjQ3NDhiOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XHJcbiAgICAudGVzdC1hY3Rpb25zIHsgZGlzcGxheTogZmxleDsgZ2FwOiA2cHg7IGZsZXgtc2hyaW5rOiAwOyB9XHJcbiAgICAuYWN0aW9uLWJ0biB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICMzMzQxNTU7XHJcbiAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgY29sb3I6ICNjYmQ1ZTE7XHJcbiAgICAgIHBhZGRpbmc6IDRweCAxMHB4O1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzO1xyXG4gICAgfVxyXG4gICAgLmFjdGlvbi1idG46aG92ZXIgeyBiYWNrZ3JvdW5kOiAjNDc1NTY5OyB9XHJcblxyXG4gICAgLmNvZGUtY29udGFpbmVyIHtcclxuICAgICAgZmxleDogMTtcclxuICAgICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICB9XHJcbiAgICAuY29kZS1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDVweDsgaGVpZ2h0OiA1cHg7IH1cclxuICAgIC5jb2RlLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgeyBiYWNrZ3JvdW5kOiAjMzM0MTU1OyBib3JkZXItcmFkaXVzOiAzcHg7IH1cclxuXHJcbiAgICAuY29kZS1ibG9jayB7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgcGFkZGluZzogMTRweDtcclxuICAgICAgZm9udC1mYW1pbHk6ICdDYXNjYWRpYSBDb2RlJywgJ0NvbnNvbGFzJywgJ0ZpcmEgQ29kZScsIG1vbm9zcGFjZTtcclxuICAgICAgZm9udC1zaXplOiAxMXB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMS43O1xyXG4gICAgICBjb2xvcjogI2UyZThmMDtcclxuICAgICAgd2hpdGUtc3BhY2U6IHByZTtcclxuICAgICAgdGFiLXNpemU6IDI7XHJcbiAgICB9XHJcblxyXG4gICAgLyogU3ludGF4IEhpZ2hsaWdodGluZyAqL1xyXG4gICAgOmdsb2JhbCgua3cpICB7IGNvbG9yOiAjYzA4NGZjOyB9XHJcbiAgICA6Z2xvYmFsKC5zdHIpIHsgY29sb3I6ICM4NmVmYWM7IH1cclxuICAgIDpnbG9iYWwoLmZuKSAgeyBjb2xvcjogIzY3ZThmOTsgfVxyXG4gICAgOmdsb2JhbCguY20pICB7IGNvbG9yOiAjNjQ3NDhiOyBmb250LXN0eWxlOiBpdGFsaWM7IH1cclxuICAgIDpnbG9iYWwoLm51bSkgeyBjb2xvcjogI2ZiOTIzYzsgfVxyXG4gICAgOmdsb2JhbCguY3kpICB7IGNvbG9yOiAjZmJiZjI0OyBmb250LXdlaWdodDogNjAwOyB9XHJcbiAgYF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXN0UHJldmlld0NvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgdGVzdDogR2VuZXJhdGVkVGVzdCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb3BpZWQgPSBzaWduYWwoZmFsc2UpO1xyXG5cclxuICBoaWdobGlnaHRlZENvZGUgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBpZiAoIXRoaXMudGVzdCkgcmV0dXJuICcnO1xyXG4gICAgcmV0dXJuIHRoaXMuc3ludGF4SGlnaGxpZ2h0KHRoaXMudGVzdC5jb2RlKTtcclxuICB9KTtcclxuXHJcbiAgcHJpdmF0ZSBzeW50YXhIaWdobGlnaHQoY29kZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBjb2RlXHJcbiAgICAgIC5yZXBsYWNlKC8mL2csICcmYW1wOycpXHJcbiAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcclxuICAgICAgLnJlcGxhY2UoLz4vZywgJyZndDsnKVxyXG4gICAgICAvLyBDb21tZW50c1xyXG4gICAgICAucmVwbGFjZSgvKFxcL1xcL1teXFxuXSopL2csICc8c3BhbiBjbGFzcz1cImNtXCI+JDE8L3NwYW4+JylcclxuICAgICAgLy8gY3kuIGNvbW1hbmRzXHJcbiAgICAgIC5yZXBsYWNlKC9cXGIoY3kpXFxiL2csICc8c3BhbiBjbGFzcz1cImN5XCI+JDE8L3NwYW4+JylcclxuICAgICAgLy8gS2V5d29yZHNcclxuICAgICAgLnJlcGxhY2UoL1xcYihkZXNjcmliZXxpdHxiZWZvcmVFYWNofGFmdGVyRWFjaHxiZWZvcmV8YWZ0ZXJ8Y29udGV4dHxzcGVjaWZ5fGNvbnN0fGxldHx2YXJ8ZnVuY3Rpb258cmV0dXJufGltcG9ydHxleHBvcnR8ZnJvbXxhc3luY3xhd2FpdHxuZXcpXFxiL2csICc8c3BhbiBjbGFzcz1cImt3XCI+JDE8L3NwYW4+JylcclxuICAgICAgLy8gU3RyaW5nc1xyXG4gICAgICAucmVwbGFjZSgvKCdbXiddKid8XCJbXlwiXSpcInxgW15gXSpgKS9nLCAnPHNwYW4gY2xhc3M9XCJzdHJcIj4kMTwvc3Bhbj4nKVxyXG4gICAgICAvLyBOdW1iZXJzXHJcbiAgICAgIC5yZXBsYWNlKC9cXGIoXFxkKylcXGIvZywgJzxzcGFuIGNsYXNzPVwibnVtXCI+JDE8L3NwYW4+Jyk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBjb3B5Q29kZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy50ZXN0KSByZXR1cm47XHJcbiAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0aGlzLnRlc3QuY29kZSk7XHJcbiAgICB0aGlzLmNvcGllZC5zZXQodHJ1ZSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY29waWVkLnNldChmYWxzZSksIDIwMDApO1xyXG4gIH1cclxuXHJcbiAgZG93bmxvYWRDb2RlKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnRlc3QpIHJldHVybjtcclxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbdGhpcy50ZXN0LmNvZGVdLCB7IHR5cGU6ICd0ZXh0L3R5cGVzY3JpcHQnIH0pO1xyXG4gICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBhLmhyZWYgPSB1cmw7XHJcbiAgICBhLmRvd25sb2FkID0gYGN5cHJlc3MtdGVzdC0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zbGljZSgwLCAxMCl9LmN5LnRzYDtcclxuICAgIGEuY2xpY2soKTtcclxuICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGUodHM6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUodHMpLnRvTG9jYWxlU3RyaW5nKCdkZS1ERScsIHtcclxuICAgICAgZGF5OiAnMi1kaWdpdCcsIG1vbnRoOiAnMi1kaWdpdCcsIGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcsXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19