@cqa-lib/cqa-ui 1.0.37 → 1.0.39

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,8 +1,10 @@
1
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
2
  import { EMPTY_STATE_IMAGES } from '../../assets/images/image-assets.constants';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "../../empty-state/empty-state.component";
5
- import * as i2 from "@angular/common";
4
+ import * as i1 from "@angular/material/icon";
5
+ import * as i2 from "../../empty-state/empty-state.component";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "@angular/material/tooltip";
6
8
  export class ChartCardComponent {
7
9
  constructor() {
8
10
  this.title = 'Chart';
@@ -19,10 +21,10 @@ export class ChartCardComponent {
19
21
  }
20
22
  }
21
23
  ChartCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ChartCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
- ChartCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ChartCardComponent, selector: "cqa-chart-card", inputs: { title: "title", subtitle: "subtitle", cardClass: "cardClass", height: "height", isEmpty: "isEmpty", emptyStateConfig: "emptyStateConfig" }, ngImport: i0, template: "<div id=\"cqa-ui-root\">\n <div\n class=\"cqa-border cqa-border-solid cqa-border-border-default cqa-rounded-[8px] cqa-shadow-card\"\n [ngClass]=\"cardClass\">\n <!-- Header -->\n <div\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-wrap cqa-px-[13px] cqa-py-[6px]\">\n <div class=\"cqa-flex cqa-flex-col\">\n <div class=\"cqa-text-[16px] cqa-leading-6 cqa-text-[#111827]\">{{ title }}</div>\n <div *ngIf=\"subtitle\" class=\"cqa-text-[12px] cqa-leading-4 cqa-text-[#6A7282] cqa-mt-0.5\">{{ subtitle }}</div>\n </div>\n <!-- Right-side actions slot -->\n <ng-content select=\"[chart-actions]\"></ng-content>\n </div>\n\n <!-- Chart/content area -->\n <div class=\"cqa-px-[13px]\">\n <div class=\"cqa-w-full\" [ngStyle]=\"height ? { 'min-height': height, 'height': height } : { 'min-height': '220px' }\">\n <!-- Empty State -->\n <ng-container *ngIf=\"isEmpty\">\n <cqa-empty-state\n [title]=\"emptyStateConfig.title\"\n [description]=\"emptyStateConfig.description\"\n [imageUrl]=\"emptyStateConfig.imageUrl\"\n [actions]=\"emptyStateConfig.actions\"\n (actionClick)=\"$event.onClick?.()\"\n ></cqa-empty-state>\n </ng-container>\n \n <!-- Default Content -->\n <ng-container *ngIf=\"!isEmpty\">\n <ng-content></ng-content>\n </ng-container>\n </div>\n </div>\n </div>\n</div>", components: [{ type: i1.EmptyStateComponent, selector: "cqa-empty-state", inputs: ["preset", "imageUrl", "title", "description", "actions"], outputs: ["actionClick"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24
+ ChartCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ChartCardComponent, selector: "cqa-chart-card", inputs: { title: "title", subtitle: "subtitle", cardClass: "cardClass", height: "height", info: "info", isEmpty: "isEmpty", emptyStateConfig: "emptyStateConfig" }, ngImport: i0, template: "<div id=\"cqa-ui-root\">\n <div\n class=\"cqa-border cqa-border-solid cqa-border-border-default cqa-rounded-[8px] cqa-shadow-card\"\n [ngClass]=\"cardClass\">\n <!-- Header -->\n <div class=\"cqa-px-[16px] cqa-py-4\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-3 cqa-flex-wrap\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-1.5\">\n <div class=\"cqa-text-[16px] cqa-leading-6 cqa-text-[#111827] cqa-font-medium\">{{ title }}</div>\n <mat-icon \n *ngIf=\"info\" \n class=\"!cqa-w-4 !cqa-h-4 !cqa-text-[16px] cqa-cursor-help cqa-flex-shrink-0\"\n [matTooltip]=\"info\"\n matTooltipPosition=\"above\"\n style=\"color: #64748B;\">\n info_outline\n </mat-icon>\n </div>\n <!-- Chart actions slot (segments) -->\n <ng-content select=\"[chart-actions]\"></ng-content>\n </div>\n <div *ngIf=\"subtitle\" class=\"cqa-text-[12px] cqa-leading-4 cqa-text-[#6A7282] cqa-mt-0.5\">{{ subtitle }}</div>\n </div>\n\n <!-- Chart/content area -->\n <div class=\"cqa-px-[13px]\">\n <div class=\"cqa-w-full\" [ngStyle]=\"height ? { 'min-height': height, 'height': height } : { 'min-height': '220px' }\">\n <!-- Empty State -->\n <ng-container *ngIf=\"isEmpty\">\n <cqa-empty-state\n [title]=\"emptyStateConfig.title\"\n [description]=\"emptyStateConfig.description\"\n [imageUrl]=\"emptyStateConfig.imageUrl\"\n [actions]=\"emptyStateConfig.actions\"\n (actionClick)=\"$event.onClick?.()\"\n ></cqa-empty-state>\n </ng-container>\n \n <!-- Default Content -->\n <ng-container *ngIf=\"!isEmpty\">\n <ng-content></ng-content>\n </ng-container>\n </div>\n </div>\n </div>\n</div>", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2.EmptyStateComponent, selector: "cqa-empty-state", inputs: ["preset", "imageUrl", "title", "description", "actions"], outputs: ["actionClick"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
23
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ChartCardComponent, decorators: [{
24
26
  type: Component,
25
- args: [{ selector: 'cqa-chart-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div id=\"cqa-ui-root\">\n <div\n class=\"cqa-border cqa-border-solid cqa-border-border-default cqa-rounded-[8px] cqa-shadow-card\"\n [ngClass]=\"cardClass\">\n <!-- Header -->\n <div\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-wrap cqa-px-[13px] cqa-py-[6px]\">\n <div class=\"cqa-flex cqa-flex-col\">\n <div class=\"cqa-text-[16px] cqa-leading-6 cqa-text-[#111827]\">{{ title }}</div>\n <div *ngIf=\"subtitle\" class=\"cqa-text-[12px] cqa-leading-4 cqa-text-[#6A7282] cqa-mt-0.5\">{{ subtitle }}</div>\n </div>\n <!-- Right-side actions slot -->\n <ng-content select=\"[chart-actions]\"></ng-content>\n </div>\n\n <!-- Chart/content area -->\n <div class=\"cqa-px-[13px]\">\n <div class=\"cqa-w-full\" [ngStyle]=\"height ? { 'min-height': height, 'height': height } : { 'min-height': '220px' }\">\n <!-- Empty State -->\n <ng-container *ngIf=\"isEmpty\">\n <cqa-empty-state\n [title]=\"emptyStateConfig.title\"\n [description]=\"emptyStateConfig.description\"\n [imageUrl]=\"emptyStateConfig.imageUrl\"\n [actions]=\"emptyStateConfig.actions\"\n (actionClick)=\"$event.onClick?.()\"\n ></cqa-empty-state>\n </ng-container>\n \n <!-- Default Content -->\n <ng-container *ngIf=\"!isEmpty\">\n <ng-content></ng-content>\n </ng-container>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
27
+ args: [{ selector: 'cqa-chart-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div id=\"cqa-ui-root\">\n <div\n class=\"cqa-border cqa-border-solid cqa-border-border-default cqa-rounded-[8px] cqa-shadow-card\"\n [ngClass]=\"cardClass\">\n <!-- Header -->\n <div class=\"cqa-px-[16px] cqa-py-4\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-3 cqa-flex-wrap\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-1.5\">\n <div class=\"cqa-text-[16px] cqa-leading-6 cqa-text-[#111827] cqa-font-medium\">{{ title }}</div>\n <mat-icon \n *ngIf=\"info\" \n class=\"!cqa-w-4 !cqa-h-4 !cqa-text-[16px] cqa-cursor-help cqa-flex-shrink-0\"\n [matTooltip]=\"info\"\n matTooltipPosition=\"above\"\n style=\"color: #64748B;\">\n info_outline\n </mat-icon>\n </div>\n <!-- Chart actions slot (segments) -->\n <ng-content select=\"[chart-actions]\"></ng-content>\n </div>\n <div *ngIf=\"subtitle\" class=\"cqa-text-[12px] cqa-leading-4 cqa-text-[#6A7282] cqa-mt-0.5\">{{ subtitle }}</div>\n </div>\n\n <!-- Chart/content area -->\n <div class=\"cqa-px-[13px]\">\n <div class=\"cqa-w-full\" [ngStyle]=\"height ? { 'min-height': height, 'height': height } : { 'min-height': '220px' }\">\n <!-- Empty State -->\n <ng-container *ngIf=\"isEmpty\">\n <cqa-empty-state\n [title]=\"emptyStateConfig.title\"\n [description]=\"emptyStateConfig.description\"\n [imageUrl]=\"emptyStateConfig.imageUrl\"\n [actions]=\"emptyStateConfig.actions\"\n (actionClick)=\"$event.onClick?.()\"\n ></cqa-empty-state>\n </ng-container>\n \n <!-- Default Content -->\n <ng-container *ngIf=\"!isEmpty\">\n <ng-content></ng-content>\n </ng-container>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
26
28
  }], propDecorators: { title: [{
27
29
  type: Input
28
30
  }], subtitle: [{
@@ -31,9 +33,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
31
33
  type: Input
32
34
  }], height: [{
33
35
  type: Input
36
+ }], info: [{
37
+ type: Input
34
38
  }], isEmpty: [{
35
39
  type: Input
36
40
  }], emptyStateConfig: [{
37
41
  type: Input
38
42
  }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Rhc2hib2FyZHMvY2hhcnQtY2FyZC9jaGFydC1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy9jaGFydC1jYXJkL2NoYXJ0LWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7QUFRaEYsTUFBTSxPQUFPLGtCQUFrQjtJQU4vQjtRQU9XLFVBQUssR0FBVyxPQUFPLENBQUM7UUFFeEIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUVoQywwQ0FBMEM7UUFDakMsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUNsQyxnQ0FBZ0M7UUFDdkIscUJBQWdCLEdBQXFCO1lBQzVDLEtBQUssRUFBRSxlQUFlO1lBQ3RCLFdBQVcsRUFBRSx3Q0FBd0M7WUFDckQsUUFBUSxFQUFFLGtCQUFrQixDQUFDLGVBQWU7WUFDNUMsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO0tBQ0g7OytHQWRZLGtCQUFrQjttR0FBbEIsa0JBQWtCLDRNQ1YvQiw4OUNBb0NNOzJGRDFCTyxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZUNvbmZpZyB9IGZyb20gJy4uLy4uL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRU1QVFlfU1RBVEVfSU1BR0VTIH0gZnJvbSAnLi4vLi4vYXNzZXRzL2ltYWdlcy9pbWFnZS1hc3NldHMuY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWNoYXJ0LWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFydENhcmRDb21wb25lbnQge1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gJ0NoYXJ0JztcbiAgQElucHV0KCkgc3VidGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNhcmRDbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGhlaWdodD86IHN0cmluZzsgLy8gQ3VzdG9tIGhlaWdodCBmb3IgdGhlIGNoYXJ0IGFyZWEgKGUuZy4sICczMDBweCcsICc0MDBweCcsICdhdXRvJylcbiAgLyoqIFNob3cgZW1wdHkgc3RhdGUgaW5zdGVhZCBvZiBjb250ZW50ICovXG4gIEBJbnB1dCgpIGlzRW1wdHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIEVtcHR5IHN0YXRlIGNvbmZpZ3VyYXRpb24gKi9cbiAgQElucHV0KCkgZW1wdHlTdGF0ZUNvbmZpZzogRW1wdHlTdGF0ZUNvbmZpZyA9IHtcbiAgICB0aXRsZTogJ05vIGNoYXJ0IGRhdGEnLFxuICAgIGRlc2NyaXB0aW9uOiAnVGhlcmUgaXMgbm8gZGF0YSBhdmFpbGFibGUgdG8gZGlzcGxheS4nLFxuICAgIGltYWdlVXJsOiBFTVBUWV9TVEFURV9JTUFHRVMuQU5BTFlUSUNTX0NIQVJULFxuICAgIGFjdGlvbnM6IFtdXG4gIH07XG59XG5cblxuIiwiPGRpdiBpZD1cImNxYS11aS1yb290XCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLWJvcmRlci1kZWZhdWx0IGNxYS1yb3VuZGVkLVs4cHhdIGNxYS1zaGFkb3ctY2FyZFwiXG4gICAgW25nQ2xhc3NdPVwiY2FyZENsYXNzXCI+XG4gICAgPCEtLSBIZWFkZXIgLS0+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWZsZXgtd3JhcCBjcWEtcHgtWzEzcHhdIGNxYS1weS1bNnB4XVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzE2cHhdIGNxYS1sZWFkaW5nLTYgY3FhLXRleHQtWyMxMTE4MjddXCI+e3sgdGl0bGUgfX08L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInN1YnRpdGxlXCIgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctNCBjcWEtdGV4dC1bIzZBNzI4Ml0gY3FhLW10LTAuNVwiPnt7IHN1YnRpdGxlIH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gUmlnaHQtc2lkZSBhY3Rpb25zIHNsb3QgLS0+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjaGFydC1hY3Rpb25zXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQ2hhcnQvY29udGVudCBhcmVhIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtcHgtWzEzcHhdXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLXctZnVsbFwiIFtuZ1N0eWxlXT1cImhlaWdodCA/IHsgJ21pbi1oZWlnaHQnOiBoZWlnaHQsICdoZWlnaHQnOiBoZWlnaHQgfSA6IHsgJ21pbi1oZWlnaHQnOiAnMjIwcHgnIH1cIj5cbiAgICAgICAgPCEtLSBFbXB0eSBTdGF0ZSAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRW1wdHlcIj5cbiAgICAgICAgICA8Y3FhLWVtcHR5LXN0YXRlXG4gICAgICAgICAgICBbdGl0bGVdPVwiZW1wdHlTdGF0ZUNvbmZpZy50aXRsZVwiXG4gICAgICAgICAgICBbZGVzY3JpcHRpb25dPVwiZW1wdHlTdGF0ZUNvbmZpZy5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICBbaW1hZ2VVcmxdPVwiZW1wdHlTdGF0ZUNvbmZpZy5pbWFnZVVybFwiXG4gICAgICAgICAgICBbYWN0aW9uc109XCJlbXB0eVN0YXRlQ29uZmlnLmFjdGlvbnNcIlxuICAgICAgICAgICAgKGFjdGlvbkNsaWNrKT1cIiRldmVudC5vbkNsaWNrPy4oKVwiXG4gICAgICAgICAgPjwvY3FhLWVtcHR5LXN0YXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgXG4gICAgICAgIDwhLS0gRGVmYXVsdCBDb250ZW50IC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRW1wdHlcIj5cbiAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Rhc2hib2FyZHMvY2hhcnQtY2FyZC9jaGFydC1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy9jaGFydC1jYXJkL2NoYXJ0LWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7OztBQVFoRixNQUFNLE9BQU8sa0JBQWtCO0lBTi9CO1FBT1csVUFBSyxHQUFXLE9BQU8sQ0FBQztRQUV4QixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBSWhDLDBDQUEwQztRQUNqQyxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ2xDLGdDQUFnQztRQUN2QixxQkFBZ0IsR0FBcUI7WUFDNUMsS0FBSyxFQUFFLGVBQWU7WUFDdEIsV0FBVyxFQUFFLHdDQUF3QztZQUNyRCxRQUFRLEVBQUUsa0JBQWtCLENBQUMsZUFBZTtZQUM1QyxPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUM7S0FDSDs7K0dBaEJZLGtCQUFrQjttR0FBbEIsa0JBQWtCLDBOQ1YvQixtMkRBNkNNOzJGRG5DTyxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb25maWcgfSBmcm9tICcuLi8uLi9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEVNUFRZX1NUQVRFX0lNQUdFUyB9IGZyb20gJy4uLy4uL2Fzc2V0cy9pbWFnZXMvaW1hZ2UtYXNzZXRzLmNvbnN0YW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1jaGFydC1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0LWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRDYXJkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICdDaGFydCc7XG4gIEBJbnB1dCgpIHN1YnRpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSBjYXJkQ2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBoZWlnaHQ/OiBzdHJpbmc7IC8vIEN1c3RvbSBoZWlnaHQgZm9yIHRoZSBjaGFydCBhcmVhIChlLmcuLCAnMzAwcHgnLCAnNDAwcHgnLCAnYXV0bycpXG4gIC8qKiBJbmZvIHRvb2x0aXAgdGV4dCB0byBkaXNwbGF5IG9uIGhvdmVyIG9mIGluZm8gaWNvbiAqL1xuICBASW5wdXQoKSBpbmZvPzogc3RyaW5nO1xuICAvKiogU2hvdyBlbXB0eSBzdGF0ZSBpbnN0ZWFkIG9mIGNvbnRlbnQgKi9cbiAgQElucHV0KCkgaXNFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiogRW1wdHkgc3RhdGUgY29uZmlndXJhdGlvbiAqL1xuICBASW5wdXQoKSBlbXB0eVN0YXRlQ29uZmlnOiBFbXB0eVN0YXRlQ29uZmlnID0ge1xuICAgIHRpdGxlOiAnTm8gY2hhcnQgZGF0YScsXG4gICAgZGVzY3JpcHRpb246ICdUaGVyZSBpcyBubyBkYXRhIGF2YWlsYWJsZSB0byBkaXNwbGF5LicsXG4gICAgaW1hZ2VVcmw6IEVNUFRZX1NUQVRFX0lNQUdFUy5BTkFMWVRJQ1NfQ0hBUlQsXG4gICAgYWN0aW9uczogW11cbiAgfTtcbn1cblxuXG4iLCI8ZGl2IGlkPVwiY3FhLXVpLXJvb3RcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItYm9yZGVyLWRlZmF1bHQgY3FhLXJvdW5kZWQtWzhweF0gY3FhLXNoYWRvdy1jYXJkXCJcbiAgICBbbmdDbGFzc109XCJjYXJkQ2xhc3NcIj5cbiAgICA8IS0tIEhlYWRlciAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLXB4LVsxNnB4XSBjcWEtcHktNFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTMgY3FhLWZsZXgtd3JhcFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEuNVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTZweF0gY3FhLWxlYWRpbmctNiBjcWEtdGV4dC1bIzExMTgyN10gY3FhLWZvbnQtbWVkaXVtXCI+e3sgdGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICA8bWF0LWljb24gXG4gICAgICAgICAgICAqbmdJZj1cImluZm9cIiBcbiAgICAgICAgICAgIGNsYXNzPVwiIWNxYS13LTQgIWNxYS1oLTQgIWNxYS10ZXh0LVsxNnB4XSBjcWEtY3Vyc29yLWhlbHAgY3FhLWZsZXgtc2hyaW5rLTBcIlxuICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiaW5mb1wiXG4gICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXG4gICAgICAgICAgICBzdHlsZT1cImNvbG9yOiAjNjQ3NDhCO1wiPlxuICAgICAgICAgICAgaW5mb19vdXRsaW5lXG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gQ2hhcnQgYWN0aW9ucyBzbG90IChzZWdtZW50cykgLS0+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjaGFydC1hY3Rpb25zXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInN1YnRpdGxlXCIgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctNCBjcWEtdGV4dC1bIzZBNzI4Ml0gY3FhLW10LTAuNVwiPnt7IHN1YnRpdGxlIH19PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIENoYXJ0L2NvbnRlbnQgYXJlYSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLXB4LVsxM3B4XVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS13LWZ1bGxcIiBbbmdTdHlsZV09XCJoZWlnaHQgPyB7ICdtaW4taGVpZ2h0JzogaGVpZ2h0LCAnaGVpZ2h0JzogaGVpZ2h0IH0gOiB7ICdtaW4taGVpZ2h0JzogJzIyMHB4JyB9XCI+XG4gICAgICAgIDwhLS0gRW1wdHkgU3RhdGUgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0VtcHR5XCI+XG4gICAgICAgICAgPGNxYS1lbXB0eS1zdGF0ZVxuICAgICAgICAgICAgW3RpdGxlXT1cImVtcHR5U3RhdGVDb25maWcudGl0bGVcIlxuICAgICAgICAgICAgW2Rlc2NyaXB0aW9uXT1cImVtcHR5U3RhdGVDb25maWcuZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgW2ltYWdlVXJsXT1cImVtcHR5U3RhdGVDb25maWcuaW1hZ2VVcmxcIlxuICAgICAgICAgICAgW2FjdGlvbnNdPVwiZW1wdHlTdGF0ZUNvbmZpZy5hY3Rpb25zXCJcbiAgICAgICAgICAgIChhY3Rpb25DbGljayk9XCIkZXZlbnQub25DbGljaz8uKClcIlxuICAgICAgICAgID48L2NxYS1lbXB0eS1zdGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIFxuICAgICAgICA8IS0tIERlZmF1bHQgQ29udGVudCAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0VtcHR5XCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -104,10 +104,10 @@ export class CoverageModuleCardComponent {
104
104
  }
105
105
  }
106
106
  CoverageModuleCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CoverageModuleCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
107
- CoverageModuleCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: CoverageModuleCardComponent, selector: "cqa-coverage-module-card", inputs: { title: "title", issues: "issues", showViewAction: "showViewAction", layout: "layout", positiveCount: "positiveCount", negativeCount: "negativeCount", edgeCaseCount: "edgeCaseCount", positiveLabel: "positiveLabel", negativeLabel: "negativeLabel", edgeCaseLabel: "edgeCaseLabel", aiCount: "aiCount", humanCount: "humanCount", aiLabel: "aiLabel", humanLabel: "humanLabel", items: "items", ctaText: "ctaText", ctaDisabled: "ctaDisabled", generationMs: "generationMs" }, outputs: { view: "view", issuesClicked: "issuesClicked", ctaClicked: "ctaClicked", aiCoverageClick: "aiCoverageClick", positiveClicked: "positiveClicked", negativeClicked: "negativeClicked", edgeCaseClicked: "edgeCaseClicked" }, ngImport: i0, template: "<div id=\"cqa-ui-root\" class=\"cqa-h-full\">\n <div\n class=\"cqa-w-full cqa-h-full cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-py-[10px] md:cqa-px-[17px] cqa-px-3 cqa-shadow-card cqa-flex cqa-flex-col\">\n <!-- Header -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-mb-3 cqa-shrink-0 cqa-min-h-[28px]\">\n <h3 class=\"cqa-text-[18px] cqa-leading-[28px] cqa-font-bold cqa-text-dialog cqa-flex-shrink\">{{ title }}</h3>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-shrink-0 cqa-flex-nowrap\">\n <span (click)=\"issuesClicked.emit()\"\n class=\"cqa-cursor-pointer cqa-px-[10px] cqa-py-[4px] cqa-text-[12px] cqa-leading-[16px] cqa-flex cqa-items-center cqa-gap-1 cqa-rounded-full cqa-bg-warning-light cqa-text-danger cqa-whitespace-nowrap cqa-flex-shrink-0\">\n {{ issues }} {{ issues === 1 ? 'issue' : 'issues' }}\n </span>\n <button type=\"button\"\n class=\"cqa-text-[14px] cqa-leading-[20px] cqa-text-primary cqa-flex cqa-items-center cqa-gap-1 cqa-whitespace-nowrap cqa-flex-shrink-0\"\n *ngIf=\"showViewAction\" (click)=\"view.emit()\">\n View\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 12L10 8L6 4\" stroke=\"#4F46E5\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n <!-- Default Layout: Middle metrics row -->\n <ng-container *ngIf=\"layout === 'default'\">\n <div class=\"cqa-grid md:cqa-grid-cols-4 cqa-grid-cols-2 cqa-gap-3 cqa-mb-4 cqa-py-2\" style=\"border-top: 1px solid #F3F4F6; border-bottom: 1px solid #F3F4F6; border-left: none; border-right: none;\">\n <!-- Left: Positive / Negative / Edge Case -->\n <div class=\"cqa-text-center cqa-cursor-pointer\" (click)=\"positiveClicked.emit()\">\n <div class=\"cqa-text-[18px] cqa-leading-[28px] cqa-font-bold cqa-text-[#059669]\">{{ positiveCount }}</div>\n <div class=\"cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-muted\">{{ positiveLabel }}</div>\n </div>\n <div class=\"cqa-text-center cqa-cursor-pointer\" (click)=\"negativeClicked.emit()\">\n <div class=\"cqa-text-[18px] cqa-leading-[28px] cqa-font-bold cqa-text-[#EF4444]\">{{ negativeCount }}</div>\n <div class=\"cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-muted\">{{ negativeLabel }}</div>\n </div>\n <div class=\"cqa-text-center cqa-cursor-pointer\" (click)=\"edgeCaseClicked.emit()\">\n <div class=\"cqa-text-[18px] cqa-leading-[28px] cqa-font-bold cqa-text-[#F59E0B]\">{{ edgeCaseCount }}</div>\n <div class=\"cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-muted\">{{ edgeCaseLabel }}</div>\n </div>\n\n <!-- Right: AI / Human -->\n <div class=\"cqa-text-center cqa-flex cqa-items-center cqa-justify-center cqa-flex-col\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-center\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-items-center cqa-justify-center cqa-w-[60px] cqa-cursor-pointer\">\n <span class=\"cqa-text-[12px] cqa-leading-[16px] cqa-font-bold cqa-text-primary cqa-flex cqa-items-center cqa-gap-[2px]\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_7415_11751)\"><path d=\"M4.9685 7.75012C4.92386 7.57709 4.83367 7.41918 4.70731 7.29282C4.58095 7.16646 4.42304 7.07626 4.25 7.03162L1.1825 6.24062C1.13017 6.22577 1.08411 6.19425 1.05131 6.15085C1.01851 6.10744 1.00076 6.05453 1.00076 6.00012C1.00076 5.94572 1.01851 5.89281 1.05131 5.8494C1.08411 5.806 1.13017 5.77448 1.1825 5.75962L4.25 4.96812C4.42298 4.92353 4.58085 4.83341 4.7072 4.70714C4.83356 4.58088 4.92378 4.42307 4.9685 4.25012L5.7595 1.18262C5.7742 1.13008 5.80569 1.0838 5.84916 1.05082C5.89263 1.01785 5.94569 1 6.00025 1C6.05481 1 6.10787 1.01785 6.15134 1.05082C6.19481 1.0838 6.2263 1.13008 6.241 1.18262L7.0315 4.25012C7.07614 4.42316 7.16633 4.58107 7.29269 4.70743C7.41905 4.83379 7.57696 4.92399 7.75 4.96862L10.8175 5.75912C10.8703 5.77367 10.9168 5.80513 10.9499 5.84866C10.9831 5.8922 11.001 5.94541 11.001 6.00012C11.001 6.05484 10.9831 6.10805 10.9499 6.15159C10.9168 6.19512 10.8703 6.22657 10.8175 6.24112L7.75 7.03162C7.57696 7.07626 7.41905 7.16646 7.29269 7.29282C7.16633 7.41918 7.07614 7.57709 7.0315 7.75012L6.2405 10.8176C6.2258 10.8702 6.19431 10.9165 6.15084 10.9494C6.10737 10.9824 6.05431 11.0002 5.99975 11.0002C5.94519 11.0002 5.89213 10.9824 5.84866 10.9494C5.80519 10.9165 5.7737 10.8702 5.759 10.8176L4.9685 7.75012Z\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 1.5V3.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11 2.5H9\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 8.5V9.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.5 9H1.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_7415_11751\"><rect width=\"12\" height=\"12\" fill=\"white\"/></clipPath></defs></svg>\n {{ aiLabel }}\n </span>\n <span class=\"cqa-text-[14px] cqa-leading-[20px] cqa-font-bold cqa-text-dialog\">{{ aiCount }}</span>\n </div>\n <div class=\"cqa-bg-primary-surface cqa-w-[2px] cqa-h-full cqa-mx-[3.5px]\"></div>\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-items-center cqa-justify-center cqa-w-[60px]\">\n <span class=\"cqa-text-[12px] cqa-leading-[16px] cqa-font-bold cqa-text-dialog-secondary cqa-flex cqa-items-center cqa-gap-[2px]\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.5 10.5V9.5C9.5 8.96957 9.28929 8.46086 8.91421 8.08579C8.53914 7.71071 8.03043 7.5 7.5 7.5H4.5C3.96957 7.5 3.46086 7.71071 3.08579 8.08579C2.71071 8.46086 2.5 8.96957 2.5 9.5V10.5\" stroke=\"#3F43EE\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 5.5C7.10457 5.5 8 4.60457 8 3.5C8 2.39543 7.10457 1.5 6 1.5C4.89543 1.5 4 2.39543 4 3.5C4 4.60457 4.89543 5.5 6 5.5Z\" stroke=\"#3F43EE\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n {{ humanLabel }}\n </span>\n <span class=\"cqa-text-[14px] cqa-leading-[20px] cqa-font-bold cqa-text-dialog\">{{ humanCount }}</span>\n </div>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-muted cqa-pt-[2px] cqa-pb-1\">Coverage</div>\n </div>\n </div>\n </ng-container>\n\n <!-- Mobile Layout: Stacked metrics -->\n <ng-container *ngIf=\"layout === 'mobile'\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-3 cqa-mb-4 cqa-py-2\" style=\"border-top: 1px solid #F3F4F6; border-bottom: 1px solid #F3F4F6; border-left: none; border-right: none;\">\n <!-- First row: Positive / Negative / Edge Case -->\n <div class=\"cqa-grid cqa-grid-cols-5 cqa-gap-2\">\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\" (click)=\"positiveClicked.emit()\">\n <div class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-bold cqa-text-[#059669]\">{{ positiveCount }}</div>\n <div class=\"cqa-text-[11px] cqa-leading-[14px] cqa-text-dialog-muted\">{{ positiveLabel }}</div>\n </div>\n <div class=\"cqa-col-span-1\"></div>\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\" (click)=\"negativeClicked.emit()\">\n <div class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-bold cqa-text-[#EF4444]\">{{ negativeCount }}</div>\n <div class=\"cqa-text-[11px] cqa-leading-[14px] cqa-text-dialog-muted\">{{ negativeLabel }}</div>\n </div>\n <div class=\"cqa-col-span-1\"></div>\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\" (click)=\"edgeCaseClicked.emit()\">\n <div class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-bold cqa-text-[#F59E0B]\">{{ edgeCaseCount }}</div>\n <div class=\"cqa-text-[11px] cqa-leading-[14px] cqa-text-dialog-muted\">{{ edgeCaseLabel }}</div>\n </div>\n </div>\n <!-- Second row: AI / Human (aligned between Positive-Negative and Negative-Edge Case) -->\n <div class=\"cqa-grid cqa-grid-cols-5 cqa-gap-2\">\n <div class=\"cqa-col-span-1\"></div>\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-items-center cqa-justify-center\">\n <span class=\"cqa-text-[11px] cqa-leading-[14px] cqa-font-bold cqa-text-primary cqa-flex cqa-items-center cqa-gap-[2px]\">\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_7415_11751)\"><path d=\"M4.9685 7.75012C4.92386 7.57709 4.83367 7.41918 4.70731 7.29282C4.58095 7.16646 4.42304 7.07626 4.25 7.03162L1.1825 6.24062C1.13017 6.22577 1.08411 6.19425 1.05131 6.15085C1.01851 6.10744 1.00076 6.05453 1.00076 6.00012C1.00076 5.94572 1.01851 5.89281 1.05131 5.8494C1.08411 5.806 1.13017 5.77448 1.1825 5.75962L4.25 4.96812C4.42298 4.92353 4.58085 4.83341 4.7072 4.70714C4.83356 4.58088 4.92378 4.42307 4.9685 4.25012L5.7595 1.18262C5.7742 1.13008 5.80569 1.0838 5.84916 1.05082C5.89263 1.01785 5.94569 1 6.00025 1C6.05481 1 6.10787 1.01785 6.15134 1.05082C6.19481 1.0838 6.2263 1.13008 6.241 1.18262L7.0315 4.25012C7.07614 4.42316 7.16633 4.58107 7.29269 4.70743C7.41905 4.83379 7.57696 4.92399 7.75 4.96862L10.8175 5.75912C10.8703 5.77367 10.9168 5.80513 10.9499 5.84866C10.9831 5.8922 11.001 5.94541 11.001 6.00012C11.001 6.05484 10.9831 6.10805 10.9499 6.15159C10.9168 6.19512 10.8703 6.22657 10.8175 6.24112L7.75 7.03162C7.57696 7.07626 7.41905 7.16646 7.29269 7.29282C7.16633 7.41918 7.07614 7.57709 7.0315 7.75012L6.2405 10.8176C6.2258 10.8702 6.19431 10.9165 6.15084 10.9494C6.10737 10.9824 6.05431 11.0002 5.99975 11.0002C5.94519 11.0002 5.89213 10.9824 5.84866 10.9494C5.80519 10.9165 5.7737 10.8702 5.759 10.8176L4.9685 7.75012Z\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 1.5V3.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11 2.5H9\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 8.5V9.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.5 9H1.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_7415_11751\"><rect width=\"12\" height=\"12\" fill=\"white\"/></clipPath></defs></svg>\n {{ aiLabel }}\n </span>\n <span class=\"cqa-text-[13px] cqa-leading-[18px] cqa-font-bold cqa-text-dialog\">{{ aiCount }}</span>\n </div>\n </div>\n <div class=\"cqa-col-span-1\"></div>\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-items-center cqa-justify-center\">\n <span class=\"cqa-text-[11px] cqa-leading-[14px] cqa-font-bold cqa-text-dialog-secondary cqa-flex cqa-items-center cqa-gap-[2px]\">\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.5 10.5V9.5C9.5 8.96957 9.28929 8.46086 8.91421 8.08579C8.53914 7.71071 8.03043 7.5 7.5 7.5H4.5C3.96957 7.5 3.46086 7.71071 3.08579 8.08579C2.71071 8.46086 2.5 8.96957 2.5 9.5V10.5\" stroke=\"#3F43EE\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 5.5C7.10457 5.5 8 4.60457 8 3.5C8 2.39543 7.10457 1.5 6 1.5C4.89543 1.5 4 2.39543 4 3.5C4 4.60457 4.89543 5.5 6 5.5Z\" stroke=\"#3F43EE\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n {{ humanLabel }}\n </span>\n <span class=\"cqa-text-[13px] cqa-leading-[18px] cqa-font-bold cqa-text-dialog\">{{ humanCount }}</span>\n </div>\n </div>\n <div class=\"cqa-col-span-1\"></div>\n </div>\n <!-- Third row: Coverage label -->\n <div class=\"cqa-w-full cqa-text-center\">\n <div class=\"cqa-text-[11px] cqa-leading-[14px] cqa-text-dialog-muted\">Coverage</div>\n </div>\n </div>\n </ng-container>\n\n <!-- Body -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-mb-3 cqa-flex-1\">\n <div *ngFor=\"let it of items\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <span class=\"md:cqa-w-full md:cqa-max-w-[216px] cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-secondary cqa-flex cqa-items-center cqa-gap-2\">\n <svg *ngIf=\"it.status=='success'\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.8333 6.46309V6.99976C12.8326 8.25767 12.4253 9.48165 11.6721 10.4892C10.9189 11.4967 9.86025 12.2337 8.65396 12.5904C7.44767 12.947 6.1584 12.9042 4.97844 12.4683C3.79848 12.0323 2.79105 11.2266 2.10639 10.1714C1.42174 9.11611 1.09654 7.8678 1.17931 6.61261C1.26208 5.35742 1.74837 4.16262 2.56566 3.20638C3.38295 2.25015 4.48746 1.58373 5.71444 1.30651C6.94143 1.02929 8.22515 1.15612 9.37417 1.66809\" stroke=\"#10B981\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.25 6.41634L7 8.16634L12.8333 2.33301\" stroke=\"#10B981\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n <svg *ngIf=\"it.status=='error'\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 12.8337C10.2217 12.8337 12.8333 10.222 12.8333 7.00033C12.8333 3.77866 10.2217 1.16699 7 1.16699C3.77834 1.16699 1.16666 3.77866 1.16666 7.00033C1.16666 10.222 3.77834 12.8337 7 12.8337Z\" stroke=\"#EF4444\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 4.66699V7.00033\" stroke=\"#EF4444\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 9.33301H7.00583\" stroke=\"#EF4444\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n {{ it.label }}\n </span>\n <div class=\"cqa-flex-1 cqa-h-[6px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden\">\n <div class=\"cqa-h-full cqa-rounded-full\" [ngClass]=\"statusColorClass(it)\"\n [style.width]=\"formatPercent(it.percent)\"></div>\n </div>\n <span class=\"cqa-min-w-[40px] cqa-text-[12px] cqa-leading-[16px] cqa-font-bold\" [ngClass]=\"textColorClass(it)\">{{\n formatPercent(it.percent) }}</span>\n </div>\n </div>\n\n <!-- Footer -->\n <cqa-button variant=\"filled\" [customClass]=\"ctaButtonClass\" (click)=\"onAiCoverageClick()\" class=\"cqa-mt-auto\">\n <ng-container *ngIf=\"!isGenerating; else generatingTpl\">\n <svg *ngIf=\"!isGenerating && !isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.01882 0C9.12979 0.0454767 9.17718 0.15653 9.22261 0.259691C9.24539 0.319799 9.26628 0.380234 9.28657 0.44115C9.29452 0.464493 9.30246 0.487836 9.31065 0.511886C9.41613 0.826009 9.51008 1.1435 9.60457 1.46076C9.62593 1.53238 9.64739 1.60397 9.66885 1.67557C9.7781 2.04007 9.88654 2.4048 9.99438 2.76969C10.0095 2.82093 10.0247 2.87218 10.0398 2.92342C10.0826 3.0679 10.1252 3.21239 10.1677 3.35694C10.2573 3.66239 10.3495 3.96695 10.4476 4.27002C10.4561 4.29653 10.4647 4.32305 10.4735 4.35036C10.7284 5.12999 11.0896 5.82875 11.6818 6.42393C11.6965 6.4394 11.7111 6.45488 11.7262 6.47083C11.979 6.72875 12.3034 6.93541 12.6276 7.10221C12.6441 7.11085 12.6606 7.11948 12.6776 7.12838C13.6317 7.61851 14.779 7.83407 15.8124 8.12101C16.2652 8.24681 16.7166 8.37658 17.1663 8.51206C17.1979 8.52157 17.2296 8.53107 17.2612 8.54055C17.3557 8.5689 17.45 8.59774 17.5442 8.62694C17.5662 8.63358 17.5882 8.64023 17.6108 8.64707C17.7406 8.68812 17.8648 8.73658 17.9713 8.82054C18.0038 8.88837 18.0038 8.88837 17.995 8.95619C17.8913 9.05472 17.7884 9.10092 17.6516 9.14599C17.632 9.15264 17.6124 9.1593 17.5923 9.16615C17.3612 9.24366 17.127 9.31149 16.8925 9.37871C16.8444 9.39261 16.7963 9.40651 16.7482 9.42042C16.4514 9.50603 16.1542 9.5898 15.8566 9.67263C15.4646 9.78175 15.0733 9.89268 14.6823 10.0049C14.6182 10.0232 14.5541 10.0416 14.49 10.0598C14.1534 10.1557 13.8185 10.2551 13.4863 10.3642C13.4587 10.3732 13.4312 10.3822 13.4028 10.3915C12.2902 10.7616 11.4422 11.4522 10.9114 12.462C10.6253 13.0295 10.4565 13.6432 10.2843 14.2489C10.2377 14.4124 10.1882 14.5749 10.1381 14.7374C10.0988 14.8652 10.0604 14.9933 10.023 15.1216C10.0185 15.1369 10.0141 15.1522 10.0095 15.1679C9.98788 15.2419 9.96638 15.3159 9.94503 15.3899C9.89039 15.5776 9.83156 15.7637 9.77111 15.9498C9.66383 16.2804 9.5662 16.6135 9.46917 16.947C9.32288 17.4491 9.32288 17.4491 9.23993 17.6905C9.23443 17.7067 9.22893 17.7229 9.22326 17.7396C9.19298 17.8256 9.16183 17.9047 9.10453 17.9774C9.01734 17.9958 9.01734 17.9958 8.93901 18C8.84946 17.8752 8.79016 17.7542 8.74265 17.6102C8.73574 17.5897 8.72882 17.5693 8.7217 17.5483C8.63368 17.285 8.55502 17.0189 8.47634 16.7529C8.45832 16.6921 8.44022 16.6313 8.42211 16.5705C8.2872 16.1173 8.15451 15.6635 8.02202 15.2096C7.47014 12.9645 7.47014 12.9645 6.078 11.1493C6.05569 11.1319 6.03338 11.1145 6.01039 11.0966C5.09826 10.398 3.89667 10.1394 2.7963 9.83627C2.52415 9.76124 2.2521 9.68587 1.98006 9.61046C1.95628 9.60386 1.95628 9.60386 1.93201 9.59714C1.53962 9.48834 1.14735 9.37925 0.756448 9.26566C0.739911 9.26089 0.723375 9.25612 0.706338 9.25121C0.105798 9.07767 0.105798 9.07767 0.00129307 8.95619C-0.00166252 8.90108 -0.00166252 8.90108 0.0249378 8.84315C0.134167 8.7408 0.240153 8.69696 0.38432 8.65238C0.405194 8.64567 0.426068 8.63897 0.447574 8.63206C0.511506 8.61164 0.575577 8.59169 0.639702 8.57183C0.658001 8.56609 0.676301 8.56035 0.695155 8.55443C0.82457 8.51385 0.95445 8.47479 1.08452 8.43618C1.11648 8.42665 1.11648 8.42665 1.14909 8.41693C1.70454 8.25174 2.26361 8.09801 2.82252 7.94392C3.23899 7.82909 3.65476 7.71236 4.06921 7.59097C4.08825 7.58542 4.1073 7.57987 4.12692 7.57415C5.087 7.29393 6.02557 6.89632 6.64547 6.1074C6.65475 6.09569 6.66403 6.08399 6.6736 6.07194C7.36395 5.1963 7.63315 4.13145 7.93391 3.09241C8.03285 2.75069 8.13298 2.40929 8.23345 2.06798C8.26127 1.97347 8.28906 1.87894 8.31673 1.78439C8.42788 1.40458 8.5407 1.02528 8.66 0.647727C8.67116 0.612372 8.68227 0.577001 8.69333 0.541614C8.86035 0.00797522 8.86035 0.00797522 9.01882 0Z\" fill=\"#FBFCFF\"/><path d=\"M14.4719 1.11069C14.5805 1.22817 14.6022 1.36624 14.636 1.51625C14.7487 1.98751 14.8786 2.42084 15.3293 2.6946C15.6074 2.84167 15.9389 2.90859 16.247 2.9718C16.3771 2.99902 16.4869 3.03515 16.5985 3.1074C16.6236 3.14555 16.6236 3.14555 16.6221 3.21197C16.5963 3.29273 16.5736 3.31878 16.5054 3.37165C16.4308 3.39549 16.4308 3.39549 16.3413 3.41404C16.3075 3.42147 16.2736 3.42898 16.2398 3.43656C16.2217 3.44058 16.2036 3.4446 16.1849 3.44874C15.6339 3.57062 15.6339 3.57062 15.1576 3.84645C15.1421 3.85837 15.1267 3.87029 15.1107 3.88257C14.7703 4.16959 14.6983 4.64703 14.5958 5.04699C14.59 5.06896 14.5841 5.09092 14.578 5.11355C14.573 5.133 14.5679 5.15244 14.5627 5.17248C14.5405 5.23185 14.5176 5.27057 14.4719 5.31607C14.3447 5.33152 14.3447 5.33152 14.2828 5.31607C14.1843 5.24309 14.1623 5.15997 14.1366 5.04828C14.1322 5.03099 14.1279 5.01369 14.1235 4.99587C14.1098 4.94064 14.0965 4.88531 14.0833 4.82996C13.9796 4.39891 13.8625 3.976 13.449 3.72333C13.1258 3.55101 12.7329 3.46951 12.3717 3.4037C12.2727 3.38399 12.216 3.3592 12.1547 3.28121C12.1414 3.20208 12.1414 3.20208 12.1547 3.12294C12.2489 3.02971 12.348 3.00696 12.4754 2.97881C12.5156 2.9693 12.5557 2.95973 12.5958 2.9501C12.6165 2.94516 12.6372 2.94022 12.6586 2.93512C12.7642 2.90911 12.8689 2.87995 12.9734 2.85021C12.9924 2.84494 13.0114 2.83967 13.031 2.83424C13.2436 2.77346 13.4271 2.69571 13.5971 2.5577C13.6129 2.54523 13.6288 2.53276 13.6451 2.5199C13.9096 2.29228 13.9995 1.95032 14.081 1.63124C14.0873 1.60702 14.0935 1.5828 14.0999 1.55784C14.1123 1.50918 14.1244 1.46046 14.1363 1.4117C14.1449 1.37776 14.1449 1.37776 14.1535 1.34315C14.1585 1.32288 14.1635 1.30261 14.1686 1.28172C14.1904 1.21719 14.219 1.16652 14.2591 1.11069C14.3362 1.07385 14.3903 1.0905 14.4719 1.11069Z\" fill=\"#FBFCFF\"/><path d=\"M3.59089 12.4942C3.61902 12.4944 3.61902 12.4944 3.64772 12.4946C3.84954 12.5004 3.98609 12.5623 4.13472 12.692C4.30767 12.8707 4.38753 13.0722 4.38299 13.313C4.36357 13.5082 4.24316 13.6787 4.09547 13.8107C3.92163 13.9448 3.74626 13.9892 3.52411 13.983C3.33681 13.9621 3.1606 13.877 3.02785 13.749C2.86276 13.5336 2.8145 13.3361 2.83869 13.0707C2.88867 12.8618 3.03274 12.6923 3.21701 12.5733C3.34502 12.5113 3.44798 12.493 3.59089 12.4942Z\" fill=\"#FBFCFF\"/></svg>\n <svg *ngIf=\"isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.8333 6.46309V6.99976C12.8326 8.25767 12.4253 9.48165 11.6721 10.4892C10.9189 11.4967 9.86025 12.2337 8.65396 12.5904C7.44767 12.947 6.1584 12.9042 4.97844 12.4683C3.79848 12.0323 2.79105 11.2266 2.10639 10.1714C1.42174 9.11611 1.09654 7.8678 1.17931 6.61261C1.26208 5.35742 1.74837 4.16262 2.56566 3.20638C3.38295 2.25015 4.48746 1.58373 5.71444 1.30651C6.94143 1.02929 8.22515 1.15612 9.37417 1.66809\" stroke=\"#10B981\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.25 6.41634L7 8.16634L12.8333 2.33301\" stroke=\"#10B981\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n {{ ctaText }}\n </ng-container>\n <ng-template #generatingTpl>\n <span class=\"cqa-inline-flex cqa-items-center cqa-gap-2\">\n <svg *ngIf=\"!isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\">\n <circle cx=\"9\" cy=\"9\" r=\"7\" stroke-width=\"2\" stroke-opacity=\"0.25\"/>\n <path d=\"M16 9a7 7 0 0 1-7 7\" stroke-width=\"2\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 9 9\" to=\"360 9 9\" dur=\"0.8s\" repeatCount=\"indefinite\"/>\n </path>\n </svg>\n <svg *ngIf=\"isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\">\n <circle cx=\"9\" cy=\"9\" r=\"7\" stroke-width=\"2\" stroke-opacity=\"0.25\"/>\n <path d=\"M16 9a7 7 0 0 1-7 7\" stroke-width=\"2\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 9 9\" to=\"360 9 9\" dur=\"0.8s\" repeatCount=\"indefinite\"/>\n </path>\n </svg>\n Generating\n </span>\n </ng-template>\n </cqa-button>\n </div>\n</div>", components: [{ type: i1.ButtonComponent, selector: "cqa-button", inputs: ["variant", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass"], outputs: ["clicked"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
107
+ CoverageModuleCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: CoverageModuleCardComponent, selector: "cqa-coverage-module-card", inputs: { title: "title", issues: "issues", showViewAction: "showViewAction", layout: "layout", positiveCount: "positiveCount", negativeCount: "negativeCount", edgeCaseCount: "edgeCaseCount", positiveLabel: "positiveLabel", negativeLabel: "negativeLabel", edgeCaseLabel: "edgeCaseLabel", aiCount: "aiCount", humanCount: "humanCount", aiLabel: "aiLabel", humanLabel: "humanLabel", items: "items", ctaText: "ctaText", ctaDisabled: "ctaDisabled", generationMs: "generationMs" }, outputs: { view: "view", issuesClicked: "issuesClicked", ctaClicked: "ctaClicked", aiCoverageClick: "aiCoverageClick", positiveClicked: "positiveClicked", negativeClicked: "negativeClicked", edgeCaseClicked: "edgeCaseClicked" }, ngImport: i0, template: "<div id=\"cqa-ui-root\" class=\"cqa-h-full\">\n <div\n class=\"cqa-w-full cqa-h-full cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-py-[10px] md:cqa-px-[17px] cqa-px-3 cqa-shadow-card cqa-flex cqa-flex-col\">\n <!-- Header -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-mb-3 cqa-shrink-0 cqa-min-h-[28px]\">\n <h3 class=\"cqa-text-[18px] cqa-leading-[28px] cqa-font-bold cqa-text-dialog cqa-flex-shrink\">{{ title }}</h3>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-shrink-0 cqa-flex-nowrap\">\n <span (click)=\"issuesClicked.emit()\"\n class=\"cqa-cursor-pointer cqa-px-[10px] cqa-py-[4px] cqa-text-[12px] cqa-leading-[16px] cqa-flex cqa-items-center cqa-gap-1 cqa-rounded-full cqa-bg-warning-light cqa-text-danger cqa-whitespace-nowrap cqa-flex-shrink-0\">\n {{ issues }} {{ issues === 1 ? 'issue' : 'issues' }}\n </span>\n <button type=\"button\"\n class=\"cqa-text-[14px] cqa-leading-[20px] cqa-text-primary cqa-flex cqa-items-center cqa-gap-1 cqa-whitespace-nowrap cqa-flex-shrink-0\"\n *ngIf=\"showViewAction\" (click)=\"view.emit()\">\n View\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 12L10 8L6 4\" stroke=\"#4F46E5\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n <!-- Default Layout: Middle metrics row -->\n <ng-container *ngIf=\"layout === 'default'\">\n <div class=\"cqa-grid md:cqa-grid-cols-4 cqa-grid-cols-2 cqa-gap-3 cqa-mb-4 cqa-py-2\" style=\"border-top: 1px solid #F3F4F6; border-bottom: 1px solid #F3F4F6; border-left: none; border-right: none;\">\n <!-- Left: Positive / Negative / Edge Case -->\n <div class=\"cqa-text-center cqa-cursor-pointer\" (click)=\"positiveClicked.emit()\">\n <div class=\"cqa-text-[18px] cqa-leading-[28px] cqa-font-bold cqa-text-[#059669]\">{{ positiveCount }}</div>\n <div class=\"cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-muted\">{{ positiveLabel }}</div>\n </div>\n <div class=\"cqa-text-center cqa-cursor-pointer\" (click)=\"negativeClicked.emit()\">\n <div class=\"cqa-text-[18px] cqa-leading-[28px] cqa-font-bold cqa-text-[#EF4444]\">{{ negativeCount }}</div>\n <div class=\"cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-muted\">{{ negativeLabel }}</div>\n </div>\n <div class=\"cqa-text-center cqa-cursor-pointer\" (click)=\"edgeCaseClicked.emit()\">\n <div class=\"cqa-text-[18px] cqa-leading-[28px] cqa-font-bold cqa-text-[#F59E0B]\">{{ edgeCaseCount }}</div>\n <div class=\"cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-muted\">{{ edgeCaseLabel }}</div>\n </div>\n\n <!-- Right: AI / Human -->\n <div class=\"cqa-text-center cqa-flex cqa-items-center cqa-justify-center cqa-flex-col\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-center\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-items-center cqa-justify-center cqa-w-[60px] cqa-cursor-pointer\">\n <span class=\"cqa-text-[12px] cqa-leading-[16px] cqa-font-bold cqa-text-primary cqa-flex cqa-items-center cqa-gap-[2px]\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_7415_11751)\"><path d=\"M4.9685 7.75012C4.92386 7.57709 4.83367 7.41918 4.70731 7.29282C4.58095 7.16646 4.42304 7.07626 4.25 7.03162L1.1825 6.24062C1.13017 6.22577 1.08411 6.19425 1.05131 6.15085C1.01851 6.10744 1.00076 6.05453 1.00076 6.00012C1.00076 5.94572 1.01851 5.89281 1.05131 5.8494C1.08411 5.806 1.13017 5.77448 1.1825 5.75962L4.25 4.96812C4.42298 4.92353 4.58085 4.83341 4.7072 4.70714C4.83356 4.58088 4.92378 4.42307 4.9685 4.25012L5.7595 1.18262C5.7742 1.13008 5.80569 1.0838 5.84916 1.05082C5.89263 1.01785 5.94569 1 6.00025 1C6.05481 1 6.10787 1.01785 6.15134 1.05082C6.19481 1.0838 6.2263 1.13008 6.241 1.18262L7.0315 4.25012C7.07614 4.42316 7.16633 4.58107 7.29269 4.70743C7.41905 4.83379 7.57696 4.92399 7.75 4.96862L10.8175 5.75912C10.8703 5.77367 10.9168 5.80513 10.9499 5.84866C10.9831 5.8922 11.001 5.94541 11.001 6.00012C11.001 6.05484 10.9831 6.10805 10.9499 6.15159C10.9168 6.19512 10.8703 6.22657 10.8175 6.24112L7.75 7.03162C7.57696 7.07626 7.41905 7.16646 7.29269 7.29282C7.16633 7.41918 7.07614 7.57709 7.0315 7.75012L6.2405 10.8176C6.2258 10.8702 6.19431 10.9165 6.15084 10.9494C6.10737 10.9824 6.05431 11.0002 5.99975 11.0002C5.94519 11.0002 5.89213 10.9824 5.84866 10.9494C5.80519 10.9165 5.7737 10.8702 5.759 10.8176L4.9685 7.75012Z\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 1.5V3.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11 2.5H9\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 8.5V9.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.5 9H1.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_7415_11751\"><rect width=\"12\" height=\"12\" fill=\"white\"/></clipPath></defs></svg>\n {{ aiLabel }}\n </span>\n <span class=\"cqa-text-[14px] cqa-leading-[20px] cqa-font-bold cqa-text-dialog\">{{ aiCount }}</span>\n </div>\n <div class=\"cqa-bg-primary-surface cqa-w-[2px] cqa-h-full cqa-mx-[3.5px]\"></div>\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-items-center cqa-justify-center cqa-w-[60px]\">\n <span class=\"cqa-text-[12px] cqa-leading-[16px] cqa-font-bold cqa-text-dialog-secondary cqa-flex cqa-items-center cqa-gap-[2px]\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.5 10.5V9.5C9.5 8.96957 9.28929 8.46086 8.91421 8.08579C8.53914 7.71071 8.03043 7.5 7.5 7.5H4.5C3.96957 7.5 3.46086 7.71071 3.08579 8.08579C2.71071 8.46086 2.5 8.96957 2.5 9.5V10.5\" stroke=\"#3F43EE\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 5.5C7.10457 5.5 8 4.60457 8 3.5C8 2.39543 7.10457 1.5 6 1.5C4.89543 1.5 4 2.39543 4 3.5C4 4.60457 4.89543 5.5 6 5.5Z\" stroke=\"#3F43EE\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n {{ humanLabel }}\n </span>\n <span class=\"cqa-text-[14px] cqa-leading-[20px] cqa-font-bold cqa-text-dialog\">{{ humanCount }}</span>\n </div>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-muted cqa-pt-[2px] cqa-pb-1\">Coverage</div>\n </div>\n </div>\n </ng-container>\n\n <!-- Mobile Layout: Stacked metrics -->\n <ng-container *ngIf=\"layout === 'mobile'\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-3 cqa-mb-4 cqa-py-2\" style=\"border-top: 1px solid #F3F4F6; border-bottom: 1px solid #F3F4F6; border-left: none; border-right: none;\">\n <!-- First row: Positive / Negative / Edge Case -->\n <div class=\"cqa-grid cqa-grid-cols-5 cqa-gap-2\">\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\" (click)=\"positiveClicked.emit()\">\n <div class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-bold cqa-text-[#059669]\">{{ positiveCount }}</div>\n <div class=\"cqa-text-[11px] cqa-leading-[14px] cqa-text-dialog-muted\">{{ positiveLabel }}</div>\n </div>\n <div class=\"cqa-col-span-1\"></div>\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\" (click)=\"negativeClicked.emit()\">\n <div class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-bold cqa-text-[#EF4444]\">{{ negativeCount }}</div>\n <div class=\"cqa-text-[11px] cqa-leading-[14px] cqa-text-dialog-muted\">{{ negativeLabel }}</div>\n </div>\n <div class=\"cqa-col-span-1\"></div>\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\" (click)=\"edgeCaseClicked.emit()\">\n <div class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-bold cqa-text-[#F59E0B]\">{{ edgeCaseCount }}</div>\n <div class=\"cqa-text-[11px] cqa-leading-[14px] cqa-text-dialog-muted\">{{ edgeCaseLabel }}</div>\n </div>\n </div>\n <!-- Separator -->\n <div class=\"cqa-w-full cqa-h-[1px] cqa-bg-[#F3F4F6]\"></div>\n <!-- Second row: AI / Human (aligned between Positive-Negative and Negative-Edge Case) -->\n <div class=\"cqa-grid cqa-grid-cols-5 cqa-gap-2\">\n <div class=\"cqa-col-span-1\"></div>\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-items-center cqa-justify-center\">\n <span class=\"cqa-text-[11px] cqa-leading-[14px] cqa-font-bold cqa-text-primary cqa-flex cqa-items-center cqa-gap-[2px]\">\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_7415_11751)\"><path d=\"M4.9685 7.75012C4.92386 7.57709 4.83367 7.41918 4.70731 7.29282C4.58095 7.16646 4.42304 7.07626 4.25 7.03162L1.1825 6.24062C1.13017 6.22577 1.08411 6.19425 1.05131 6.15085C1.01851 6.10744 1.00076 6.05453 1.00076 6.00012C1.00076 5.94572 1.01851 5.89281 1.05131 5.8494C1.08411 5.806 1.13017 5.77448 1.1825 5.75962L4.25 4.96812C4.42298 4.92353 4.58085 4.83341 4.7072 4.70714C4.83356 4.58088 4.92378 4.42307 4.9685 4.25012L5.7595 1.18262C5.7742 1.13008 5.80569 1.0838 5.84916 1.05082C5.89263 1.01785 5.94569 1 6.00025 1C6.05481 1 6.10787 1.01785 6.15134 1.05082C6.19481 1.0838 6.2263 1.13008 6.241 1.18262L7.0315 4.25012C7.07614 4.42316 7.16633 4.58107 7.29269 4.70743C7.41905 4.83379 7.57696 4.92399 7.75 4.96862L10.8175 5.75912C10.8703 5.77367 10.9168 5.80513 10.9499 5.84866C10.9831 5.8922 11.001 5.94541 11.001 6.00012C11.001 6.05484 10.9831 6.10805 10.9499 6.15159C10.9168 6.19512 10.8703 6.22657 10.8175 6.24112L7.75 7.03162C7.57696 7.07626 7.41905 7.16646 7.29269 7.29282C7.16633 7.41918 7.07614 7.57709 7.0315 7.75012L6.2405 10.8176C6.2258 10.8702 6.19431 10.9165 6.15084 10.9494C6.10737 10.9824 6.05431 11.0002 5.99975 11.0002C5.94519 11.0002 5.89213 10.9824 5.84866 10.9494C5.80519 10.9165 5.7737 10.8702 5.759 10.8176L4.9685 7.75012Z\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 1.5V3.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11 2.5H9\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 8.5V9.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.5 9H1.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_7415_11751\"><rect width=\"12\" height=\"12\" fill=\"white\"/></clipPath></defs></svg>\n {{ aiLabel }}\n </span>\n <span class=\"cqa-text-[13px] cqa-leading-[18px] cqa-font-bold cqa-text-dialog\">{{ aiCount }}</span>\n </div>\n </div>\n <div class=\"cqa-col-span-1\"></div>\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-items-center cqa-justify-center\">\n <span class=\"cqa-text-[11px] cqa-leading-[14px] cqa-font-bold cqa-text-dialog-secondary cqa-flex cqa-items-center cqa-gap-[2px]\">\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.5 10.5V9.5C9.5 8.96957 9.28929 8.46086 8.91421 8.08579C8.53914 7.71071 8.03043 7.5 7.5 7.5H4.5C3.96957 7.5 3.46086 7.71071 3.08579 8.08579C2.71071 8.46086 2.5 8.96957 2.5 9.5V10.5\" stroke=\"#3F43EE\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 5.5C7.10457 5.5 8 4.60457 8 3.5C8 2.39543 7.10457 1.5 6 1.5C4.89543 1.5 4 2.39543 4 3.5C4 4.60457 4.89543 5.5 6 5.5Z\" stroke=\"#3F43EE\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n {{ humanLabel }}\n </span>\n <span class=\"cqa-text-[13px] cqa-leading-[18px] cqa-font-bold cqa-text-dialog\">{{ humanCount }}</span>\n </div>\n </div>\n <div class=\"cqa-col-span-1\"></div>\n </div>\n </div>\n </ng-container>\n\n <!-- Body -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-mb-3 cqa-flex-1\">\n <div *ngFor=\"let it of items\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <span class=\"cqa-w-[45%] cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-secondary cqa-flex cqa-items-center cqa-gap-2 cqa-shrink-0\">\n <svg *ngIf=\"it.status=='success'\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cqa-shrink-0\"><path d=\"M12.8333 6.46309V6.99976C12.8326 8.25767 12.4253 9.48165 11.6721 10.4892C10.9189 11.4967 9.86025 12.2337 8.65396 12.5904C7.44767 12.947 6.1584 12.9042 4.97844 12.4683C3.79848 12.0323 2.79105 11.2266 2.10639 10.1714C1.42174 9.11611 1.09654 7.8678 1.17931 6.61261C1.26208 5.35742 1.74837 4.16262 2.56566 3.20638C3.38295 2.25015 4.48746 1.58373 5.71444 1.30651C6.94143 1.02929 8.22515 1.15612 9.37417 1.66809\" stroke=\"#10B981\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.25 6.41634L7 8.16634L12.8333 2.33301\" stroke=\"#10B981\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n <svg *ngIf=\"it.status=='error'\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cqa-shrink-0\"><path d=\"M7 12.8337C10.2217 12.8337 12.8333 10.222 12.8333 7.00033C12.8333 3.77866 10.2217 1.16699 7 1.16699C3.77834 1.16699 1.16666 3.77866 1.16666 7.00033C1.16666 10.222 3.77834 12.8337 7 12.8337Z\" stroke=\"#EF4444\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 4.66699V7.00033\" stroke=\"#EF4444\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 9.33301H7.00583\" stroke=\"#EF4444\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n {{ it.label }}\n </span>\n <div class=\"cqa-w-[45%] cqa-h-[6px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-shrink-0\">\n <div class=\"cqa-h-full cqa-rounded-full\" [ngClass]=\"statusColorClass(it)\"\n [style.width]=\"formatPercent(it.percent)\"></div>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[16px] cqa-font-bold cqa-shrink-0\" [ngClass]=\"textColorClass(it)\">{{\n formatPercent(it.percent) }}</span>\n </div>\n </div>\n\n <!-- Footer -->\n <cqa-button variant=\"filled\" [customClass]=\"ctaButtonClass\" (click)=\"onAiCoverageClick()\" class=\"cqa-mt-auto\">\n <ng-container *ngIf=\"!isGenerating; else generatingTpl\">\n <svg *ngIf=\"isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.8333 6.46309V6.99976C12.8326 8.25767 12.4253 9.48165 11.6721 10.4892C10.9189 11.4967 9.86025 12.2337 8.65396 12.5904C7.44767 12.947 6.1584 12.9042 4.97844 12.4683C3.79848 12.0323 2.79105 11.2266 2.10639 10.1714C1.42174 9.11611 1.09654 7.8678 1.17931 6.61261C1.26208 5.35742 1.74837 4.16262 2.56566 3.20638C3.38295 2.25015 4.48746 1.58373 5.71444 1.30651C6.94143 1.02929 8.22515 1.15612 9.37417 1.66809\" stroke=\"#10B981\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.25 6.41634L7 8.16634L12.8333 2.33301\" stroke=\"#10B981\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n {{ ctaText }}\n <svg *ngIf=\"!isGenerating && !isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 3V15M3 9H15\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n <svg *ngIf=\"isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 3V15M3 9H15\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </ng-container>\n <ng-template #generatingTpl>\n <span class=\"cqa-inline-flex cqa-items-center cqa-gap-2\">\n <svg *ngIf=\"!isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\">\n <circle cx=\"9\" cy=\"9\" r=\"7\" stroke-width=\"2\" stroke-opacity=\"0.25\"/>\n <path d=\"M16 9a7 7 0 0 1-7 7\" stroke-width=\"2\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 9 9\" to=\"360 9 9\" dur=\"0.8s\" repeatCount=\"indefinite\"/>\n </path>\n </svg>\n <svg *ngIf=\"isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\">\n <circle cx=\"9\" cy=\"9\" r=\"7\" stroke-width=\"2\" stroke-opacity=\"0.25\"/>\n <path d=\"M16 9a7 7 0 0 1-7 7\" stroke-width=\"2\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 9 9\" to=\"360 9 9\" dur=\"0.8s\" repeatCount=\"indefinite\"/>\n </path>\n </svg>\n Generating\n </span>\n </ng-template>\n </cqa-button>\n </div>\n</div>", components: [{ type: i1.ButtonComponent, selector: "cqa-button", inputs: ["variant", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass"], outputs: ["clicked"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
108
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CoverageModuleCardComponent, decorators: [{
109
109
  type: Component,
110
- args: [{ selector: 'cqa-coverage-module-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div id=\"cqa-ui-root\" class=\"cqa-h-full\">\n <div\n class=\"cqa-w-full cqa-h-full cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-py-[10px] md:cqa-px-[17px] cqa-px-3 cqa-shadow-card cqa-flex cqa-flex-col\">\n <!-- Header -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-mb-3 cqa-shrink-0 cqa-min-h-[28px]\">\n <h3 class=\"cqa-text-[18px] cqa-leading-[28px] cqa-font-bold cqa-text-dialog cqa-flex-shrink\">{{ title }}</h3>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-shrink-0 cqa-flex-nowrap\">\n <span (click)=\"issuesClicked.emit()\"\n class=\"cqa-cursor-pointer cqa-px-[10px] cqa-py-[4px] cqa-text-[12px] cqa-leading-[16px] cqa-flex cqa-items-center cqa-gap-1 cqa-rounded-full cqa-bg-warning-light cqa-text-danger cqa-whitespace-nowrap cqa-flex-shrink-0\">\n {{ issues }} {{ issues === 1 ? 'issue' : 'issues' }}\n </span>\n <button type=\"button\"\n class=\"cqa-text-[14px] cqa-leading-[20px] cqa-text-primary cqa-flex cqa-items-center cqa-gap-1 cqa-whitespace-nowrap cqa-flex-shrink-0\"\n *ngIf=\"showViewAction\" (click)=\"view.emit()\">\n View\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 12L10 8L6 4\" stroke=\"#4F46E5\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n <!-- Default Layout: Middle metrics row -->\n <ng-container *ngIf=\"layout === 'default'\">\n <div class=\"cqa-grid md:cqa-grid-cols-4 cqa-grid-cols-2 cqa-gap-3 cqa-mb-4 cqa-py-2\" style=\"border-top: 1px solid #F3F4F6; border-bottom: 1px solid #F3F4F6; border-left: none; border-right: none;\">\n <!-- Left: Positive / Negative / Edge Case -->\n <div class=\"cqa-text-center cqa-cursor-pointer\" (click)=\"positiveClicked.emit()\">\n <div class=\"cqa-text-[18px] cqa-leading-[28px] cqa-font-bold cqa-text-[#059669]\">{{ positiveCount }}</div>\n <div class=\"cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-muted\">{{ positiveLabel }}</div>\n </div>\n <div class=\"cqa-text-center cqa-cursor-pointer\" (click)=\"negativeClicked.emit()\">\n <div class=\"cqa-text-[18px] cqa-leading-[28px] cqa-font-bold cqa-text-[#EF4444]\">{{ negativeCount }}</div>\n <div class=\"cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-muted\">{{ negativeLabel }}</div>\n </div>\n <div class=\"cqa-text-center cqa-cursor-pointer\" (click)=\"edgeCaseClicked.emit()\">\n <div class=\"cqa-text-[18px] cqa-leading-[28px] cqa-font-bold cqa-text-[#F59E0B]\">{{ edgeCaseCount }}</div>\n <div class=\"cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-muted\">{{ edgeCaseLabel }}</div>\n </div>\n\n <!-- Right: AI / Human -->\n <div class=\"cqa-text-center cqa-flex cqa-items-center cqa-justify-center cqa-flex-col\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-center\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-items-center cqa-justify-center cqa-w-[60px] cqa-cursor-pointer\">\n <span class=\"cqa-text-[12px] cqa-leading-[16px] cqa-font-bold cqa-text-primary cqa-flex cqa-items-center cqa-gap-[2px]\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_7415_11751)\"><path d=\"M4.9685 7.75012C4.92386 7.57709 4.83367 7.41918 4.70731 7.29282C4.58095 7.16646 4.42304 7.07626 4.25 7.03162L1.1825 6.24062C1.13017 6.22577 1.08411 6.19425 1.05131 6.15085C1.01851 6.10744 1.00076 6.05453 1.00076 6.00012C1.00076 5.94572 1.01851 5.89281 1.05131 5.8494C1.08411 5.806 1.13017 5.77448 1.1825 5.75962L4.25 4.96812C4.42298 4.92353 4.58085 4.83341 4.7072 4.70714C4.83356 4.58088 4.92378 4.42307 4.9685 4.25012L5.7595 1.18262C5.7742 1.13008 5.80569 1.0838 5.84916 1.05082C5.89263 1.01785 5.94569 1 6.00025 1C6.05481 1 6.10787 1.01785 6.15134 1.05082C6.19481 1.0838 6.2263 1.13008 6.241 1.18262L7.0315 4.25012C7.07614 4.42316 7.16633 4.58107 7.29269 4.70743C7.41905 4.83379 7.57696 4.92399 7.75 4.96862L10.8175 5.75912C10.8703 5.77367 10.9168 5.80513 10.9499 5.84866C10.9831 5.8922 11.001 5.94541 11.001 6.00012C11.001 6.05484 10.9831 6.10805 10.9499 6.15159C10.9168 6.19512 10.8703 6.22657 10.8175 6.24112L7.75 7.03162C7.57696 7.07626 7.41905 7.16646 7.29269 7.29282C7.16633 7.41918 7.07614 7.57709 7.0315 7.75012L6.2405 10.8176C6.2258 10.8702 6.19431 10.9165 6.15084 10.9494C6.10737 10.9824 6.05431 11.0002 5.99975 11.0002C5.94519 11.0002 5.89213 10.9824 5.84866 10.9494C5.80519 10.9165 5.7737 10.8702 5.759 10.8176L4.9685 7.75012Z\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 1.5V3.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11 2.5H9\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 8.5V9.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.5 9H1.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_7415_11751\"><rect width=\"12\" height=\"12\" fill=\"white\"/></clipPath></defs></svg>\n {{ aiLabel }}\n </span>\n <span class=\"cqa-text-[14px] cqa-leading-[20px] cqa-font-bold cqa-text-dialog\">{{ aiCount }}</span>\n </div>\n <div class=\"cqa-bg-primary-surface cqa-w-[2px] cqa-h-full cqa-mx-[3.5px]\"></div>\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-items-center cqa-justify-center cqa-w-[60px]\">\n <span class=\"cqa-text-[12px] cqa-leading-[16px] cqa-font-bold cqa-text-dialog-secondary cqa-flex cqa-items-center cqa-gap-[2px]\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.5 10.5V9.5C9.5 8.96957 9.28929 8.46086 8.91421 8.08579C8.53914 7.71071 8.03043 7.5 7.5 7.5H4.5C3.96957 7.5 3.46086 7.71071 3.08579 8.08579C2.71071 8.46086 2.5 8.96957 2.5 9.5V10.5\" stroke=\"#3F43EE\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 5.5C7.10457 5.5 8 4.60457 8 3.5C8 2.39543 7.10457 1.5 6 1.5C4.89543 1.5 4 2.39543 4 3.5C4 4.60457 4.89543 5.5 6 5.5Z\" stroke=\"#3F43EE\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n {{ humanLabel }}\n </span>\n <span class=\"cqa-text-[14px] cqa-leading-[20px] cqa-font-bold cqa-text-dialog\">{{ humanCount }}</span>\n </div>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-muted cqa-pt-[2px] cqa-pb-1\">Coverage</div>\n </div>\n </div>\n </ng-container>\n\n <!-- Mobile Layout: Stacked metrics -->\n <ng-container *ngIf=\"layout === 'mobile'\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-3 cqa-mb-4 cqa-py-2\" style=\"border-top: 1px solid #F3F4F6; border-bottom: 1px solid #F3F4F6; border-left: none; border-right: none;\">\n <!-- First row: Positive / Negative / Edge Case -->\n <div class=\"cqa-grid cqa-grid-cols-5 cqa-gap-2\">\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\" (click)=\"positiveClicked.emit()\">\n <div class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-bold cqa-text-[#059669]\">{{ positiveCount }}</div>\n <div class=\"cqa-text-[11px] cqa-leading-[14px] cqa-text-dialog-muted\">{{ positiveLabel }}</div>\n </div>\n <div class=\"cqa-col-span-1\"></div>\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\" (click)=\"negativeClicked.emit()\">\n <div class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-bold cqa-text-[#EF4444]\">{{ negativeCount }}</div>\n <div class=\"cqa-text-[11px] cqa-leading-[14px] cqa-text-dialog-muted\">{{ negativeLabel }}</div>\n </div>\n <div class=\"cqa-col-span-1\"></div>\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\" (click)=\"edgeCaseClicked.emit()\">\n <div class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-bold cqa-text-[#F59E0B]\">{{ edgeCaseCount }}</div>\n <div class=\"cqa-text-[11px] cqa-leading-[14px] cqa-text-dialog-muted\">{{ edgeCaseLabel }}</div>\n </div>\n </div>\n <!-- Second row: AI / Human (aligned between Positive-Negative and Negative-Edge Case) -->\n <div class=\"cqa-grid cqa-grid-cols-5 cqa-gap-2\">\n <div class=\"cqa-col-span-1\"></div>\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-items-center cqa-justify-center\">\n <span class=\"cqa-text-[11px] cqa-leading-[14px] cqa-font-bold cqa-text-primary cqa-flex cqa-items-center cqa-gap-[2px]\">\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_7415_11751)\"><path d=\"M4.9685 7.75012C4.92386 7.57709 4.83367 7.41918 4.70731 7.29282C4.58095 7.16646 4.42304 7.07626 4.25 7.03162L1.1825 6.24062C1.13017 6.22577 1.08411 6.19425 1.05131 6.15085C1.01851 6.10744 1.00076 6.05453 1.00076 6.00012C1.00076 5.94572 1.01851 5.89281 1.05131 5.8494C1.08411 5.806 1.13017 5.77448 1.1825 5.75962L4.25 4.96812C4.42298 4.92353 4.58085 4.83341 4.7072 4.70714C4.83356 4.58088 4.92378 4.42307 4.9685 4.25012L5.7595 1.18262C5.7742 1.13008 5.80569 1.0838 5.84916 1.05082C5.89263 1.01785 5.94569 1 6.00025 1C6.05481 1 6.10787 1.01785 6.15134 1.05082C6.19481 1.0838 6.2263 1.13008 6.241 1.18262L7.0315 4.25012C7.07614 4.42316 7.16633 4.58107 7.29269 4.70743C7.41905 4.83379 7.57696 4.92399 7.75 4.96862L10.8175 5.75912C10.8703 5.77367 10.9168 5.80513 10.9499 5.84866C10.9831 5.8922 11.001 5.94541 11.001 6.00012C11.001 6.05484 10.9831 6.10805 10.9499 6.15159C10.9168 6.19512 10.8703 6.22657 10.8175 6.24112L7.75 7.03162C7.57696 7.07626 7.41905 7.16646 7.29269 7.29282C7.16633 7.41918 7.07614 7.57709 7.0315 7.75012L6.2405 10.8176C6.2258 10.8702 6.19431 10.9165 6.15084 10.9494C6.10737 10.9824 6.05431 11.0002 5.99975 11.0002C5.94519 11.0002 5.89213 10.9824 5.84866 10.9494C5.80519 10.9165 5.7737 10.8702 5.759 10.8176L4.9685 7.75012Z\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 1.5V3.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11 2.5H9\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 8.5V9.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.5 9H1.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_7415_11751\"><rect width=\"12\" height=\"12\" fill=\"white\"/></clipPath></defs></svg>\n {{ aiLabel }}\n </span>\n <span class=\"cqa-text-[13px] cqa-leading-[18px] cqa-font-bold cqa-text-dialog\">{{ aiCount }}</span>\n </div>\n </div>\n <div class=\"cqa-col-span-1\"></div>\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-items-center cqa-justify-center\">\n <span class=\"cqa-text-[11px] cqa-leading-[14px] cqa-font-bold cqa-text-dialog-secondary cqa-flex cqa-items-center cqa-gap-[2px]\">\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.5 10.5V9.5C9.5 8.96957 9.28929 8.46086 8.91421 8.08579C8.53914 7.71071 8.03043 7.5 7.5 7.5H4.5C3.96957 7.5 3.46086 7.71071 3.08579 8.08579C2.71071 8.46086 2.5 8.96957 2.5 9.5V10.5\" stroke=\"#3F43EE\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 5.5C7.10457 5.5 8 4.60457 8 3.5C8 2.39543 7.10457 1.5 6 1.5C4.89543 1.5 4 2.39543 4 3.5C4 4.60457 4.89543 5.5 6 5.5Z\" stroke=\"#3F43EE\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n {{ humanLabel }}\n </span>\n <span class=\"cqa-text-[13px] cqa-leading-[18px] cqa-font-bold cqa-text-dialog\">{{ humanCount }}</span>\n </div>\n </div>\n <div class=\"cqa-col-span-1\"></div>\n </div>\n <!-- Third row: Coverage label -->\n <div class=\"cqa-w-full cqa-text-center\">\n <div class=\"cqa-text-[11px] cqa-leading-[14px] cqa-text-dialog-muted\">Coverage</div>\n </div>\n </div>\n </ng-container>\n\n <!-- Body -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-mb-3 cqa-flex-1\">\n <div *ngFor=\"let it of items\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <span class=\"md:cqa-w-full md:cqa-max-w-[216px] cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-secondary cqa-flex cqa-items-center cqa-gap-2\">\n <svg *ngIf=\"it.status=='success'\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.8333 6.46309V6.99976C12.8326 8.25767 12.4253 9.48165 11.6721 10.4892C10.9189 11.4967 9.86025 12.2337 8.65396 12.5904C7.44767 12.947 6.1584 12.9042 4.97844 12.4683C3.79848 12.0323 2.79105 11.2266 2.10639 10.1714C1.42174 9.11611 1.09654 7.8678 1.17931 6.61261C1.26208 5.35742 1.74837 4.16262 2.56566 3.20638C3.38295 2.25015 4.48746 1.58373 5.71444 1.30651C6.94143 1.02929 8.22515 1.15612 9.37417 1.66809\" stroke=\"#10B981\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.25 6.41634L7 8.16634L12.8333 2.33301\" stroke=\"#10B981\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n <svg *ngIf=\"it.status=='error'\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 12.8337C10.2217 12.8337 12.8333 10.222 12.8333 7.00033C12.8333 3.77866 10.2217 1.16699 7 1.16699C3.77834 1.16699 1.16666 3.77866 1.16666 7.00033C1.16666 10.222 3.77834 12.8337 7 12.8337Z\" stroke=\"#EF4444\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 4.66699V7.00033\" stroke=\"#EF4444\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 9.33301H7.00583\" stroke=\"#EF4444\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n {{ it.label }}\n </span>\n <div class=\"cqa-flex-1 cqa-h-[6px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden\">\n <div class=\"cqa-h-full cqa-rounded-full\" [ngClass]=\"statusColorClass(it)\"\n [style.width]=\"formatPercent(it.percent)\"></div>\n </div>\n <span class=\"cqa-min-w-[40px] cqa-text-[12px] cqa-leading-[16px] cqa-font-bold\" [ngClass]=\"textColorClass(it)\">{{\n formatPercent(it.percent) }}</span>\n </div>\n </div>\n\n <!-- Footer -->\n <cqa-button variant=\"filled\" [customClass]=\"ctaButtonClass\" (click)=\"onAiCoverageClick()\" class=\"cqa-mt-auto\">\n <ng-container *ngIf=\"!isGenerating; else generatingTpl\">\n <svg *ngIf=\"!isGenerating && !isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.01882 0C9.12979 0.0454767 9.17718 0.15653 9.22261 0.259691C9.24539 0.319799 9.26628 0.380234 9.28657 0.44115C9.29452 0.464493 9.30246 0.487836 9.31065 0.511886C9.41613 0.826009 9.51008 1.1435 9.60457 1.46076C9.62593 1.53238 9.64739 1.60397 9.66885 1.67557C9.7781 2.04007 9.88654 2.4048 9.99438 2.76969C10.0095 2.82093 10.0247 2.87218 10.0398 2.92342C10.0826 3.0679 10.1252 3.21239 10.1677 3.35694C10.2573 3.66239 10.3495 3.96695 10.4476 4.27002C10.4561 4.29653 10.4647 4.32305 10.4735 4.35036C10.7284 5.12999 11.0896 5.82875 11.6818 6.42393C11.6965 6.4394 11.7111 6.45488 11.7262 6.47083C11.979 6.72875 12.3034 6.93541 12.6276 7.10221C12.6441 7.11085 12.6606 7.11948 12.6776 7.12838C13.6317 7.61851 14.779 7.83407 15.8124 8.12101C16.2652 8.24681 16.7166 8.37658 17.1663 8.51206C17.1979 8.52157 17.2296 8.53107 17.2612 8.54055C17.3557 8.5689 17.45 8.59774 17.5442 8.62694C17.5662 8.63358 17.5882 8.64023 17.6108 8.64707C17.7406 8.68812 17.8648 8.73658 17.9713 8.82054C18.0038 8.88837 18.0038 8.88837 17.995 8.95619C17.8913 9.05472 17.7884 9.10092 17.6516 9.14599C17.632 9.15264 17.6124 9.1593 17.5923 9.16615C17.3612 9.24366 17.127 9.31149 16.8925 9.37871C16.8444 9.39261 16.7963 9.40651 16.7482 9.42042C16.4514 9.50603 16.1542 9.5898 15.8566 9.67263C15.4646 9.78175 15.0733 9.89268 14.6823 10.0049C14.6182 10.0232 14.5541 10.0416 14.49 10.0598C14.1534 10.1557 13.8185 10.2551 13.4863 10.3642C13.4587 10.3732 13.4312 10.3822 13.4028 10.3915C12.2902 10.7616 11.4422 11.4522 10.9114 12.462C10.6253 13.0295 10.4565 13.6432 10.2843 14.2489C10.2377 14.4124 10.1882 14.5749 10.1381 14.7374C10.0988 14.8652 10.0604 14.9933 10.023 15.1216C10.0185 15.1369 10.0141 15.1522 10.0095 15.1679C9.98788 15.2419 9.96638 15.3159 9.94503 15.3899C9.89039 15.5776 9.83156 15.7637 9.77111 15.9498C9.66383 16.2804 9.5662 16.6135 9.46917 16.947C9.32288 17.4491 9.32288 17.4491 9.23993 17.6905C9.23443 17.7067 9.22893 17.7229 9.22326 17.7396C9.19298 17.8256 9.16183 17.9047 9.10453 17.9774C9.01734 17.9958 9.01734 17.9958 8.93901 18C8.84946 17.8752 8.79016 17.7542 8.74265 17.6102C8.73574 17.5897 8.72882 17.5693 8.7217 17.5483C8.63368 17.285 8.55502 17.0189 8.47634 16.7529C8.45832 16.6921 8.44022 16.6313 8.42211 16.5705C8.2872 16.1173 8.15451 15.6635 8.02202 15.2096C7.47014 12.9645 7.47014 12.9645 6.078 11.1493C6.05569 11.1319 6.03338 11.1145 6.01039 11.0966C5.09826 10.398 3.89667 10.1394 2.7963 9.83627C2.52415 9.76124 2.2521 9.68587 1.98006 9.61046C1.95628 9.60386 1.95628 9.60386 1.93201 9.59714C1.53962 9.48834 1.14735 9.37925 0.756448 9.26566C0.739911 9.26089 0.723375 9.25612 0.706338 9.25121C0.105798 9.07767 0.105798 9.07767 0.00129307 8.95619C-0.00166252 8.90108 -0.00166252 8.90108 0.0249378 8.84315C0.134167 8.7408 0.240153 8.69696 0.38432 8.65238C0.405194 8.64567 0.426068 8.63897 0.447574 8.63206C0.511506 8.61164 0.575577 8.59169 0.639702 8.57183C0.658001 8.56609 0.676301 8.56035 0.695155 8.55443C0.82457 8.51385 0.95445 8.47479 1.08452 8.43618C1.11648 8.42665 1.11648 8.42665 1.14909 8.41693C1.70454 8.25174 2.26361 8.09801 2.82252 7.94392C3.23899 7.82909 3.65476 7.71236 4.06921 7.59097C4.08825 7.58542 4.1073 7.57987 4.12692 7.57415C5.087 7.29393 6.02557 6.89632 6.64547 6.1074C6.65475 6.09569 6.66403 6.08399 6.6736 6.07194C7.36395 5.1963 7.63315 4.13145 7.93391 3.09241C8.03285 2.75069 8.13298 2.40929 8.23345 2.06798C8.26127 1.97347 8.28906 1.87894 8.31673 1.78439C8.42788 1.40458 8.5407 1.02528 8.66 0.647727C8.67116 0.612372 8.68227 0.577001 8.69333 0.541614C8.86035 0.00797522 8.86035 0.00797522 9.01882 0Z\" fill=\"#FBFCFF\"/><path d=\"M14.4719 1.11069C14.5805 1.22817 14.6022 1.36624 14.636 1.51625C14.7487 1.98751 14.8786 2.42084 15.3293 2.6946C15.6074 2.84167 15.9389 2.90859 16.247 2.9718C16.3771 2.99902 16.4869 3.03515 16.5985 3.1074C16.6236 3.14555 16.6236 3.14555 16.6221 3.21197C16.5963 3.29273 16.5736 3.31878 16.5054 3.37165C16.4308 3.39549 16.4308 3.39549 16.3413 3.41404C16.3075 3.42147 16.2736 3.42898 16.2398 3.43656C16.2217 3.44058 16.2036 3.4446 16.1849 3.44874C15.6339 3.57062 15.6339 3.57062 15.1576 3.84645C15.1421 3.85837 15.1267 3.87029 15.1107 3.88257C14.7703 4.16959 14.6983 4.64703 14.5958 5.04699C14.59 5.06896 14.5841 5.09092 14.578 5.11355C14.573 5.133 14.5679 5.15244 14.5627 5.17248C14.5405 5.23185 14.5176 5.27057 14.4719 5.31607C14.3447 5.33152 14.3447 5.33152 14.2828 5.31607C14.1843 5.24309 14.1623 5.15997 14.1366 5.04828C14.1322 5.03099 14.1279 5.01369 14.1235 4.99587C14.1098 4.94064 14.0965 4.88531 14.0833 4.82996C13.9796 4.39891 13.8625 3.976 13.449 3.72333C13.1258 3.55101 12.7329 3.46951 12.3717 3.4037C12.2727 3.38399 12.216 3.3592 12.1547 3.28121C12.1414 3.20208 12.1414 3.20208 12.1547 3.12294C12.2489 3.02971 12.348 3.00696 12.4754 2.97881C12.5156 2.9693 12.5557 2.95973 12.5958 2.9501C12.6165 2.94516 12.6372 2.94022 12.6586 2.93512C12.7642 2.90911 12.8689 2.87995 12.9734 2.85021C12.9924 2.84494 13.0114 2.83967 13.031 2.83424C13.2436 2.77346 13.4271 2.69571 13.5971 2.5577C13.6129 2.54523 13.6288 2.53276 13.6451 2.5199C13.9096 2.29228 13.9995 1.95032 14.081 1.63124C14.0873 1.60702 14.0935 1.5828 14.0999 1.55784C14.1123 1.50918 14.1244 1.46046 14.1363 1.4117C14.1449 1.37776 14.1449 1.37776 14.1535 1.34315C14.1585 1.32288 14.1635 1.30261 14.1686 1.28172C14.1904 1.21719 14.219 1.16652 14.2591 1.11069C14.3362 1.07385 14.3903 1.0905 14.4719 1.11069Z\" fill=\"#FBFCFF\"/><path d=\"M3.59089 12.4942C3.61902 12.4944 3.61902 12.4944 3.64772 12.4946C3.84954 12.5004 3.98609 12.5623 4.13472 12.692C4.30767 12.8707 4.38753 13.0722 4.38299 13.313C4.36357 13.5082 4.24316 13.6787 4.09547 13.8107C3.92163 13.9448 3.74626 13.9892 3.52411 13.983C3.33681 13.9621 3.1606 13.877 3.02785 13.749C2.86276 13.5336 2.8145 13.3361 2.83869 13.0707C2.88867 12.8618 3.03274 12.6923 3.21701 12.5733C3.34502 12.5113 3.44798 12.493 3.59089 12.4942Z\" fill=\"#FBFCFF\"/></svg>\n <svg *ngIf=\"isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.8333 6.46309V6.99976C12.8326 8.25767 12.4253 9.48165 11.6721 10.4892C10.9189 11.4967 9.86025 12.2337 8.65396 12.5904C7.44767 12.947 6.1584 12.9042 4.97844 12.4683C3.79848 12.0323 2.79105 11.2266 2.10639 10.1714C1.42174 9.11611 1.09654 7.8678 1.17931 6.61261C1.26208 5.35742 1.74837 4.16262 2.56566 3.20638C3.38295 2.25015 4.48746 1.58373 5.71444 1.30651C6.94143 1.02929 8.22515 1.15612 9.37417 1.66809\" stroke=\"#10B981\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.25 6.41634L7 8.16634L12.8333 2.33301\" stroke=\"#10B981\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n {{ ctaText }}\n </ng-container>\n <ng-template #generatingTpl>\n <span class=\"cqa-inline-flex cqa-items-center cqa-gap-2\">\n <svg *ngIf=\"!isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\">\n <circle cx=\"9\" cy=\"9\" r=\"7\" stroke-width=\"2\" stroke-opacity=\"0.25\"/>\n <path d=\"M16 9a7 7 0 0 1-7 7\" stroke-width=\"2\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 9 9\" to=\"360 9 9\" dur=\"0.8s\" repeatCount=\"indefinite\"/>\n </path>\n </svg>\n <svg *ngIf=\"isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\">\n <circle cx=\"9\" cy=\"9\" r=\"7\" stroke-width=\"2\" stroke-opacity=\"0.25\"/>\n <path d=\"M16 9a7 7 0 0 1-7 7\" stroke-width=\"2\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 9 9\" to=\"360 9 9\" dur=\"0.8s\" repeatCount=\"indefinite\"/>\n </path>\n </svg>\n Generating\n </span>\n </ng-template>\n </cqa-button>\n </div>\n</div>", styles: [] }]
110
+ args: [{ selector: 'cqa-coverage-module-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div id=\"cqa-ui-root\" class=\"cqa-h-full\">\n <div\n class=\"cqa-w-full cqa-h-full cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-py-[10px] md:cqa-px-[17px] cqa-px-3 cqa-shadow-card cqa-flex cqa-flex-col\">\n <!-- Header -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-mb-3 cqa-shrink-0 cqa-min-h-[28px]\">\n <h3 class=\"cqa-text-[18px] cqa-leading-[28px] cqa-font-bold cqa-text-dialog cqa-flex-shrink\">{{ title }}</h3>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-shrink-0 cqa-flex-nowrap\">\n <span (click)=\"issuesClicked.emit()\"\n class=\"cqa-cursor-pointer cqa-px-[10px] cqa-py-[4px] cqa-text-[12px] cqa-leading-[16px] cqa-flex cqa-items-center cqa-gap-1 cqa-rounded-full cqa-bg-warning-light cqa-text-danger cqa-whitespace-nowrap cqa-flex-shrink-0\">\n {{ issues }} {{ issues === 1 ? 'issue' : 'issues' }}\n </span>\n <button type=\"button\"\n class=\"cqa-text-[14px] cqa-leading-[20px] cqa-text-primary cqa-flex cqa-items-center cqa-gap-1 cqa-whitespace-nowrap cqa-flex-shrink-0\"\n *ngIf=\"showViewAction\" (click)=\"view.emit()\">\n View\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 12L10 8L6 4\" stroke=\"#4F46E5\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n\n <!-- Default Layout: Middle metrics row -->\n <ng-container *ngIf=\"layout === 'default'\">\n <div class=\"cqa-grid md:cqa-grid-cols-4 cqa-grid-cols-2 cqa-gap-3 cqa-mb-4 cqa-py-2\" style=\"border-top: 1px solid #F3F4F6; border-bottom: 1px solid #F3F4F6; border-left: none; border-right: none;\">\n <!-- Left: Positive / Negative / Edge Case -->\n <div class=\"cqa-text-center cqa-cursor-pointer\" (click)=\"positiveClicked.emit()\">\n <div class=\"cqa-text-[18px] cqa-leading-[28px] cqa-font-bold cqa-text-[#059669]\">{{ positiveCount }}</div>\n <div class=\"cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-muted\">{{ positiveLabel }}</div>\n </div>\n <div class=\"cqa-text-center cqa-cursor-pointer\" (click)=\"negativeClicked.emit()\">\n <div class=\"cqa-text-[18px] cqa-leading-[28px] cqa-font-bold cqa-text-[#EF4444]\">{{ negativeCount }}</div>\n <div class=\"cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-muted\">{{ negativeLabel }}</div>\n </div>\n <div class=\"cqa-text-center cqa-cursor-pointer\" (click)=\"edgeCaseClicked.emit()\">\n <div class=\"cqa-text-[18px] cqa-leading-[28px] cqa-font-bold cqa-text-[#F59E0B]\">{{ edgeCaseCount }}</div>\n <div class=\"cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-muted\">{{ edgeCaseLabel }}</div>\n </div>\n\n <!-- Right: AI / Human -->\n <div class=\"cqa-text-center cqa-flex cqa-items-center cqa-justify-center cqa-flex-col\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-center\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-items-center cqa-justify-center cqa-w-[60px] cqa-cursor-pointer\">\n <span class=\"cqa-text-[12px] cqa-leading-[16px] cqa-font-bold cqa-text-primary cqa-flex cqa-items-center cqa-gap-[2px]\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_7415_11751)\"><path d=\"M4.9685 7.75012C4.92386 7.57709 4.83367 7.41918 4.70731 7.29282C4.58095 7.16646 4.42304 7.07626 4.25 7.03162L1.1825 6.24062C1.13017 6.22577 1.08411 6.19425 1.05131 6.15085C1.01851 6.10744 1.00076 6.05453 1.00076 6.00012C1.00076 5.94572 1.01851 5.89281 1.05131 5.8494C1.08411 5.806 1.13017 5.77448 1.1825 5.75962L4.25 4.96812C4.42298 4.92353 4.58085 4.83341 4.7072 4.70714C4.83356 4.58088 4.92378 4.42307 4.9685 4.25012L5.7595 1.18262C5.7742 1.13008 5.80569 1.0838 5.84916 1.05082C5.89263 1.01785 5.94569 1 6.00025 1C6.05481 1 6.10787 1.01785 6.15134 1.05082C6.19481 1.0838 6.2263 1.13008 6.241 1.18262L7.0315 4.25012C7.07614 4.42316 7.16633 4.58107 7.29269 4.70743C7.41905 4.83379 7.57696 4.92399 7.75 4.96862L10.8175 5.75912C10.8703 5.77367 10.9168 5.80513 10.9499 5.84866C10.9831 5.8922 11.001 5.94541 11.001 6.00012C11.001 6.05484 10.9831 6.10805 10.9499 6.15159C10.9168 6.19512 10.8703 6.22657 10.8175 6.24112L7.75 7.03162C7.57696 7.07626 7.41905 7.16646 7.29269 7.29282C7.16633 7.41918 7.07614 7.57709 7.0315 7.75012L6.2405 10.8176C6.2258 10.8702 6.19431 10.9165 6.15084 10.9494C6.10737 10.9824 6.05431 11.0002 5.99975 11.0002C5.94519 11.0002 5.89213 10.9824 5.84866 10.9494C5.80519 10.9165 5.7737 10.8702 5.759 10.8176L4.9685 7.75012Z\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 1.5V3.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11 2.5H9\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 8.5V9.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.5 9H1.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_7415_11751\"><rect width=\"12\" height=\"12\" fill=\"white\"/></clipPath></defs></svg>\n {{ aiLabel }}\n </span>\n <span class=\"cqa-text-[14px] cqa-leading-[20px] cqa-font-bold cqa-text-dialog\">{{ aiCount }}</span>\n </div>\n <div class=\"cqa-bg-primary-surface cqa-w-[2px] cqa-h-full cqa-mx-[3.5px]\"></div>\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-items-center cqa-justify-center cqa-w-[60px]\">\n <span class=\"cqa-text-[12px] cqa-leading-[16px] cqa-font-bold cqa-text-dialog-secondary cqa-flex cqa-items-center cqa-gap-[2px]\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.5 10.5V9.5C9.5 8.96957 9.28929 8.46086 8.91421 8.08579C8.53914 7.71071 8.03043 7.5 7.5 7.5H4.5C3.96957 7.5 3.46086 7.71071 3.08579 8.08579C2.71071 8.46086 2.5 8.96957 2.5 9.5V10.5\" stroke=\"#3F43EE\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 5.5C7.10457 5.5 8 4.60457 8 3.5C8 2.39543 7.10457 1.5 6 1.5C4.89543 1.5 4 2.39543 4 3.5C4 4.60457 4.89543 5.5 6 5.5Z\" stroke=\"#3F43EE\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n {{ humanLabel }}\n </span>\n <span class=\"cqa-text-[14px] cqa-leading-[20px] cqa-font-bold cqa-text-dialog\">{{ humanCount }}</span>\n </div>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-muted cqa-pt-[2px] cqa-pb-1\">Coverage</div>\n </div>\n </div>\n </ng-container>\n\n <!-- Mobile Layout: Stacked metrics -->\n <ng-container *ngIf=\"layout === 'mobile'\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-3 cqa-mb-4 cqa-py-2\" style=\"border-top: 1px solid #F3F4F6; border-bottom: 1px solid #F3F4F6; border-left: none; border-right: none;\">\n <!-- First row: Positive / Negative / Edge Case -->\n <div class=\"cqa-grid cqa-grid-cols-5 cqa-gap-2\">\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\" (click)=\"positiveClicked.emit()\">\n <div class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-bold cqa-text-[#059669]\">{{ positiveCount }}</div>\n <div class=\"cqa-text-[11px] cqa-leading-[14px] cqa-text-dialog-muted\">{{ positiveLabel }}</div>\n </div>\n <div class=\"cqa-col-span-1\"></div>\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\" (click)=\"negativeClicked.emit()\">\n <div class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-bold cqa-text-[#EF4444]\">{{ negativeCount }}</div>\n <div class=\"cqa-text-[11px] cqa-leading-[14px] cqa-text-dialog-muted\">{{ negativeLabel }}</div>\n </div>\n <div class=\"cqa-col-span-1\"></div>\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\" (click)=\"edgeCaseClicked.emit()\">\n <div class=\"cqa-text-[16px] cqa-leading-[24px] cqa-font-bold cqa-text-[#F59E0B]\">{{ edgeCaseCount }}</div>\n <div class=\"cqa-text-[11px] cqa-leading-[14px] cqa-text-dialog-muted\">{{ edgeCaseLabel }}</div>\n </div>\n </div>\n <!-- Separator -->\n <div class=\"cqa-w-full cqa-h-[1px] cqa-bg-[#F3F4F6]\"></div>\n <!-- Second row: AI / Human (aligned between Positive-Negative and Negative-Edge Case) -->\n <div class=\"cqa-grid cqa-grid-cols-5 cqa-gap-2\">\n <div class=\"cqa-col-span-1\"></div>\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-items-center cqa-justify-center\">\n <span class=\"cqa-text-[11px] cqa-leading-[14px] cqa-font-bold cqa-text-primary cqa-flex cqa-items-center cqa-gap-[2px]\">\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_7415_11751)\"><path d=\"M4.9685 7.75012C4.92386 7.57709 4.83367 7.41918 4.70731 7.29282C4.58095 7.16646 4.42304 7.07626 4.25 7.03162L1.1825 6.24062C1.13017 6.22577 1.08411 6.19425 1.05131 6.15085C1.01851 6.10744 1.00076 6.05453 1.00076 6.00012C1.00076 5.94572 1.01851 5.89281 1.05131 5.8494C1.08411 5.806 1.13017 5.77448 1.1825 5.75962L4.25 4.96812C4.42298 4.92353 4.58085 4.83341 4.7072 4.70714C4.83356 4.58088 4.92378 4.42307 4.9685 4.25012L5.7595 1.18262C5.7742 1.13008 5.80569 1.0838 5.84916 1.05082C5.89263 1.01785 5.94569 1 6.00025 1C6.05481 1 6.10787 1.01785 6.15134 1.05082C6.19481 1.0838 6.2263 1.13008 6.241 1.18262L7.0315 4.25012C7.07614 4.42316 7.16633 4.58107 7.29269 4.70743C7.41905 4.83379 7.57696 4.92399 7.75 4.96862L10.8175 5.75912C10.8703 5.77367 10.9168 5.80513 10.9499 5.84866C10.9831 5.8922 11.001 5.94541 11.001 6.00012C11.001 6.05484 10.9831 6.10805 10.9499 6.15159C10.9168 6.19512 10.8703 6.22657 10.8175 6.24112L7.75 7.03162C7.57696 7.07626 7.41905 7.16646 7.29269 7.29282C7.16633 7.41918 7.07614 7.57709 7.0315 7.75012L6.2405 10.8176C6.2258 10.8702 6.19431 10.9165 6.15084 10.9494C6.10737 10.9824 6.05431 11.0002 5.99975 11.0002C5.94519 11.0002 5.89213 10.9824 5.84866 10.9494C5.80519 10.9165 5.7737 10.8702 5.759 10.8176L4.9685 7.75012Z\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 1.5V3.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11 2.5H9\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2 8.5V9.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.5 9H1.5\" stroke=\"#7C3AED\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><defs><clipPath id=\"clip0_7415_11751\"><rect width=\"12\" height=\"12\" fill=\"white\"/></clipPath></defs></svg>\n {{ aiLabel }}\n </span>\n <span class=\"cqa-text-[13px] cqa-leading-[18px] cqa-font-bold cqa-text-dialog\">{{ aiCount }}</span>\n </div>\n </div>\n <div class=\"cqa-col-span-1\"></div>\n <div class=\"cqa-col-span-1 cqa-text-center cqa-cursor-pointer\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-items-center cqa-justify-center\">\n <span class=\"cqa-text-[11px] cqa-leading-[14px] cqa-font-bold cqa-text-dialog-secondary cqa-flex cqa-items-center cqa-gap-[2px]\">\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.5 10.5V9.5C9.5 8.96957 9.28929 8.46086 8.91421 8.08579C8.53914 7.71071 8.03043 7.5 7.5 7.5H4.5C3.96957 7.5 3.46086 7.71071 3.08579 8.08579C2.71071 8.46086 2.5 8.96957 2.5 9.5V10.5\" stroke=\"#3F43EE\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 5.5C7.10457 5.5 8 4.60457 8 3.5C8 2.39543 7.10457 1.5 6 1.5C4.89543 1.5 4 2.39543 4 3.5C4 4.60457 4.89543 5.5 6 5.5Z\" stroke=\"#3F43EE\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n {{ humanLabel }}\n </span>\n <span class=\"cqa-text-[13px] cqa-leading-[18px] cqa-font-bold cqa-text-dialog\">{{ humanCount }}</span>\n </div>\n </div>\n <div class=\"cqa-col-span-1\"></div>\n </div>\n </div>\n </ng-container>\n\n <!-- Body -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-mb-3 cqa-flex-1\">\n <div *ngFor=\"let it of items\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <span class=\"cqa-w-[45%] cqa-text-[12px] cqa-leading-[16px] cqa-text-dialog-secondary cqa-flex cqa-items-center cqa-gap-2 cqa-shrink-0\">\n <svg *ngIf=\"it.status=='success'\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cqa-shrink-0\"><path d=\"M12.8333 6.46309V6.99976C12.8326 8.25767 12.4253 9.48165 11.6721 10.4892C10.9189 11.4967 9.86025 12.2337 8.65396 12.5904C7.44767 12.947 6.1584 12.9042 4.97844 12.4683C3.79848 12.0323 2.79105 11.2266 2.10639 10.1714C1.42174 9.11611 1.09654 7.8678 1.17931 6.61261C1.26208 5.35742 1.74837 4.16262 2.56566 3.20638C3.38295 2.25015 4.48746 1.58373 5.71444 1.30651C6.94143 1.02929 8.22515 1.15612 9.37417 1.66809\" stroke=\"#10B981\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.25 6.41634L7 8.16634L12.8333 2.33301\" stroke=\"#10B981\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n <svg *ngIf=\"it.status=='error'\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"cqa-shrink-0\"><path d=\"M7 12.8337C10.2217 12.8337 12.8333 10.222 12.8333 7.00033C12.8333 3.77866 10.2217 1.16699 7 1.16699C3.77834 1.16699 1.16666 3.77866 1.16666 7.00033C1.16666 10.222 3.77834 12.8337 7 12.8337Z\" stroke=\"#EF4444\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 4.66699V7.00033\" stroke=\"#EF4444\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 9.33301H7.00583\" stroke=\"#EF4444\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n {{ it.label }}\n </span>\n <div class=\"cqa-w-[45%] cqa-h-[6px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-shrink-0\">\n <div class=\"cqa-h-full cqa-rounded-full\" [ngClass]=\"statusColorClass(it)\"\n [style.width]=\"formatPercent(it.percent)\"></div>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[16px] cqa-font-bold cqa-shrink-0\" [ngClass]=\"textColorClass(it)\">{{\n formatPercent(it.percent) }}</span>\n </div>\n </div>\n\n <!-- Footer -->\n <cqa-button variant=\"filled\" [customClass]=\"ctaButtonClass\" (click)=\"onAiCoverageClick()\" class=\"cqa-mt-auto\">\n <ng-container *ngIf=\"!isGenerating; else generatingTpl\">\n <svg *ngIf=\"isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.8333 6.46309V6.99976C12.8326 8.25767 12.4253 9.48165 11.6721 10.4892C10.9189 11.4967 9.86025 12.2337 8.65396 12.5904C7.44767 12.947 6.1584 12.9042 4.97844 12.4683C3.79848 12.0323 2.79105 11.2266 2.10639 10.1714C1.42174 9.11611 1.09654 7.8678 1.17931 6.61261C1.26208 5.35742 1.74837 4.16262 2.56566 3.20638C3.38295 2.25015 4.48746 1.58373 5.71444 1.30651C6.94143 1.02929 8.22515 1.15612 9.37417 1.66809\" stroke=\"#10B981\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.25 6.41634L7 8.16634L12.8333 2.33301\" stroke=\"#10B981\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n {{ ctaText }}\n <svg *ngIf=\"!isGenerating && !isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 3V15M3 9H15\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n <svg *ngIf=\"isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 3V15M3 9H15\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </ng-container>\n <ng-template #generatingTpl>\n <span class=\"cqa-inline-flex cqa-items-center cqa-gap-2\">\n <svg *ngIf=\"!isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\">\n <circle cx=\"9\" cy=\"9\" r=\"7\" stroke-width=\"2\" stroke-opacity=\"0.25\"/>\n <path d=\"M16 9a7 7 0 0 1-7 7\" stroke-width=\"2\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 9 9\" to=\"360 9 9\" dur=\"0.8s\" repeatCount=\"indefinite\"/>\n </path>\n </svg>\n <svg *ngIf=\"isGenerated\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\">\n <circle cx=\"9\" cy=\"9\" r=\"7\" stroke-width=\"2\" stroke-opacity=\"0.25\"/>\n <path d=\"M16 9a7 7 0 0 1-7 7\" stroke-width=\"2\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 9 9\" to=\"360 9 9\" dur=\"0.8s\" repeatCount=\"indefinite\"/>\n </path>\n </svg>\n Generating\n </span>\n </ng-template>\n </cqa-button>\n </div>\n</div>", styles: [] }]
111
111
  }], propDecorators: { title: [{
112
112
  type: Input
113
113
  }], issues: [{
@@ -159,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
159
159
  }], edgeCaseClicked: [{
160
160
  type: Output
161
161
  }] } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY292ZXJhZ2UtbW9kdWxlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kYXNoYm9hcmRzL2NvdmVyYWdlLW1vZHVsZS1jYXJkL2NvdmVyYWdlLW1vZHVsZS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy9jb3ZlcmFnZS1tb2R1bGUtY2FyZC9jb3ZlcmFnZS1tb2R1bGUtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDOzs7O0FBbUIzRyxNQUFNLE9BQU8sMkJBQTJCO0lBTnhDO1FBT0UsZ0NBQWdDO1FBQ3ZCLFVBQUssR0FBVyxVQUFVLENBQUM7UUFDcEMsZ0RBQWdEO1FBQ3ZDLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDNUIsd0NBQXdDO1FBQy9CLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBQ3hDLDJDQUEyQztRQUNsQyxXQUFNLEdBQXlCLFNBQVMsQ0FBQztRQUNsRCxpQ0FBaUM7UUFDeEIsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFDMUIsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFDMUIsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFDMUIsa0JBQWEsR0FBVyxVQUFVLENBQUM7UUFDbkMsa0JBQWEsR0FBVyxVQUFVLENBQUM7UUFDbkMsa0JBQWEsR0FBVyxXQUFXLENBQUM7UUFDN0Msa0NBQWtDO1FBQ3pCLFlBQU8sR0FBVyxDQUFDLENBQUM7UUFDcEIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixZQUFPLEdBQVcsSUFBSSxDQUFDO1FBQ3ZCLGVBQVUsR0FBVyxPQUFPLENBQUM7UUFDdEMsNENBQTRDO1FBQ25DLFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBQ3BDLHVCQUF1QjtRQUNkLFlBQU8sR0FBVyxhQUFhLENBQUM7UUFDekMsa0JBQWtCO1FBQ1QsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDdEMseURBQXlEO1FBQ2hELGlCQUFZLEdBQVcsR0FBRyxDQUFDO1FBRTFCLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN6QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNoRCxpREFBaUQ7UUFDdkMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3JELHFEQUFxRDtRQUMzQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDckQscURBQXFEO1FBQzNDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNyRCxzREFBc0Q7UUFDNUMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXJELGdDQUFnQztRQUNoQyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixnQkFBVyxHQUFZLEtBQUssQ0FBQztLQWdFOUI7SUE3REMsZ0JBQWdCLENBQUMsSUFBa0I7UUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUM7UUFDeEMsUUFBUSxNQUFNLEVBQUU7WUFDZCxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxrQkFBa0IsQ0FBQyxDQUFDLFFBQVE7WUFDckMsS0FBSyxPQUFPO2dCQUNWLE9BQU8sa0JBQWtCLENBQUMsQ0FBQyxNQUFNO1lBQ25DO2dCQUNFLE9BQU8sa0JBQWtCLENBQUMsQ0FBQyxPQUFPO1NBQ3JDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFrQjtRQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQztRQUN4QyxRQUFRLE1BQU0sRUFBRTtZQUNkLEtBQUssU0FBUztnQkFDWixPQUFPLG9CQUFvQixDQUFDO1lBQzlCLEtBQUssT0FBTztnQkFDVixPQUFPLG9CQUFvQixDQUFDO1lBQzlCO2dCQUNFLE9BQU8sb0JBQW9CLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQVc7UUFDdkIsSUFBSSxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN4RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sR0FBRyxPQUFPLEdBQUcsQ0FBQztJQUN2QixDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLElBQUksY0FBYztRQUNoQixNQUFNLElBQUksR0FBRyxpRUFBaUUsQ0FBQztRQUMvRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsK0RBQStEO1lBQy9ELE9BQU8sR0FBRyxJQUFJLDJEQUEyRCxDQUFDO1NBQzNFO1FBQ0QsSUFBRyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3BCLE9BQU8sR0FBRyxJQUFJLDBDQUEwQyxDQUFDO1NBQzFEO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUU1Qix5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFekIsdUNBQXVDO1FBRXZDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUMxQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOzt3SEEzR1UsMkJBQTJCOzRHQUEzQiwyQkFBMkIsaXdCQ25CeEMsazF0QkE4Sk07MkZEM0lPLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFDRSwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU07OEJBSXRDLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksSUFBSTtzQkFBYixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFFRyxlQUFlO3NCQUF4QixNQUFNO2dCQUVHLGVBQWU7c0JBQXhCLE1BQU07Z0JBRUcsZUFBZTtzQkFBeEIsTUFBTTtnQkFFRyxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgQ292ZXJhZ2VTdGF0dXMgPSAnc3VjY2VzcycgfCAnZXJyb3InIHwgJ25ldXRyYWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvdmVyYWdlSXRlbSB7XG4gIC8qKiBSb3cgbGFiZWwsIGUuZy4gXCJJbnB1dCBWYWxpZGF0aW9uXCIgKi9cbiAgbGFiZWw6IHN0cmluZztcbiAgLyoqIFZhbHVlIGluIHBlcmNlbnQgKDAtMTAwKSAqL1xuICBwZXJjZW50OiBudW1iZXI7XG4gIC8qKiBWaXN1YWwgc3RhdHVzIHRvIGNvbG9yaXplIHRoZSBiYXIvdGV4dCAqL1xuICBzdGF0dXM/OiBDb3ZlcmFnZVN0YXR1cztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWNvdmVyYWdlLW1vZHVsZS1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdmVyYWdlLW1vZHVsZS1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENvdmVyYWdlTW9kdWxlQ2FyZENvbXBvbmVudCB7XG4gIC8qKiBDYXJkIHRpdGxlLCBlLmcuIFwiQUkgQXNrXCIgKi9cbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICdDb3ZlcmFnZSc7XG4gIC8qKiBOdW1iZXIgb2YgaXNzdWVzIHRvIGRpc3BsYXkgbmV4dCB0byB0aXRsZSAqL1xuICBASW5wdXQoKSBpc3N1ZXM6IG51bWJlciA9IDA7XG4gIC8qKiBPcHRpb25hbCBcIlZpZXdcIiBhY3Rpb24gdmlzaWJpbGl0eSAqL1xuICBASW5wdXQoKSBzaG93Vmlld0FjdGlvbjogYm9vbGVhbiA9IHRydWU7XG4gIC8qKiBMYXlvdXQgb3B0aW9uOiAnZGVmYXVsdCcgb3IgJ21vYmlsZScgKi9cbiAgQElucHV0KCkgbGF5b3V0OiAnZGVmYXVsdCcgfCAnbW9iaWxlJyA9ICdkZWZhdWx0JztcbiAgLyoqIE1pZGRsZSBtZXRyaWNzOiBsZWZ0IGdyb3VwICovXG4gIEBJbnB1dCgpIHBvc2l0aXZlQ291bnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG5lZ2F0aXZlQ291bnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIGVkZ2VDYXNlQ291bnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIHBvc2l0aXZlTGFiZWw6IHN0cmluZyA9ICdQb3NpdGl2ZSc7XG4gIEBJbnB1dCgpIG5lZ2F0aXZlTGFiZWw6IHN0cmluZyA9ICdOZWdhdGl2ZSc7XG4gIEBJbnB1dCgpIGVkZ2VDYXNlTGFiZWw6IHN0cmluZyA9ICdFZGdlIENhc2UnO1xuICAvKiogTWlkZGxlIG1ldHJpY3M6IHJpZ2h0IGdyb3VwICovXG4gIEBJbnB1dCgpIGFpQ291bnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIGh1bWFuQ291bnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIGFpTGFiZWw6IHN0cmluZyA9ICdBSSc7XG4gIEBJbnB1dCgpIGh1bWFuTGFiZWw6IHN0cmluZyA9ICdIdW1hbic7XG4gIC8qKiBSb3dzIG9mIGNvdmVyYWdlIHdpdGggcGVyY2VudGFnZSBiYXJzICovXG4gIEBJbnB1dCgpIGl0ZW1zOiBDb3ZlcmFnZUl0ZW1bXSA9IFtdO1xuICAvKiogQ1RBIGJ1dHRvbiBsYWJlbCAqL1xuICBASW5wdXQoKSBjdGFUZXh0OiBzdHJpbmcgPSAnQUkgQ292ZXJhZ2UnO1xuICAvKiogRGlzYWJsZSBDVEEgKi9cbiAgQElucHV0KCkgY3RhRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIEdlbmVyYXRpb24gZHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzIChkZWZhdWx0IH4xMnMpICovXG4gIEBJbnB1dCgpIGdlbmVyYXRpb25NczogbnVtYmVyID0gMjAwO1xuXG4gIEBPdXRwdXQoKSB2aWV3ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgaXNzdWVzQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGN0YUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIC8qKiBFbWl0cyB3aGVuIHRoZSBBSSBjb3ZlcmFnZSBhcmVhIGlzIGNsaWNrZWQgKi9cbiAgQE91dHB1dCgpIGFpQ292ZXJhZ2VDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqIEVtaXRzIHdoZW4gdGhlIFBvc2l0aXZlIGNvdW50L2xhYmVsIGlzIGNsaWNrZWQgKi9cbiAgQE91dHB1dCgpIHBvc2l0aXZlQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqIEVtaXRzIHdoZW4gdGhlIE5lZ2F0aXZlIGNvdW50L2xhYmVsIGlzIGNsaWNrZWQgKi9cbiAgQE91dHB1dCgpIG5lZ2F0aXZlQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqIEVtaXRzIHdoZW4gdGhlIEVkZ2UgQ2FzZSBjb3VudC9sYWJlbCBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSBlZGdlQ2FzZUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqIEludGVybmFsIGdlbmVyYXRpb24gc3RhdGUgKi9cbiAgaXNHZW5lcmF0aW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGlzR2VuZXJhdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgZ2VuZXJhdGlvblRpbWVySWQ/OiBudW1iZXI7XG5cbiAgc3RhdHVzQ29sb3JDbGFzcyhpdGVtOiBDb3ZlcmFnZUl0ZW0pOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0YXR1cyA9IGl0ZW0uc3RhdHVzID8/ICduZXV0cmFsJztcbiAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgIHJldHVybiAnY3FhLWJnLVsjMTBCOTgxXSc7IC8vIGdyZWVuXG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIHJldHVybiAnY3FhLWJnLVsjRUY0NDQ0XSc7IC8vIHJlZFxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdjcWEtYmctWyMzQjgyRjZdJzsgLy8gYmx1ZVxuICAgIH1cbiAgfVxuXG4gIHRleHRDb2xvckNsYXNzKGl0ZW06IENvdmVyYWdlSXRlbSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RhdHVzID0gaXRlbS5zdGF0dXMgPz8gJ25ldXRyYWwnO1xuICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgcmV0dXJuICdjcWEtdGV4dC1bIzEwQjk4MV0nO1xuICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICByZXR1cm4gJ2NxYS10ZXh0LVsjRUY0NDQ0XSc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ2NxYS10ZXh0LVsjMzc0MTUxXSc7XG4gICAgfVxuICB9XG5cbiAgZm9ybWF0UGVyY2VudChwY3Q6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKHBjdCA9PT0gdW5kZWZpbmVkIHx8IHBjdCA9PT0gbnVsbCB8fCBOdW1iZXIuaXNOYU4ocGN0KSkgcmV0dXJuICcwJSc7XG4gICAgY29uc3QgY2xhbXBlZCA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEwMCwgcGN0KSk7XG4gICAgcmV0dXJuIGAke2NsYW1wZWR9JWA7XG4gIH1cblxuICAvKiogQ29tcHV0ZWQgQ1RBIGJ1dHRvbiBjbGFzcyB0byBzd2l0Y2ggdG8gbGlnaHQgZ3JlZW4gYWZ0ZXIgZ2VuZXJhdGlvbiAqL1xuICBnZXQgY3RhQnV0dG9uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlID0gJ2NxYS13LWZ1bGwgY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsyMHB4XSBjcWEtZm9udC1zZW1pYm9sZCc7XG4gICAgaWYgKHRoaXMuaXNHZW5lcmF0ZWQpIHtcbiAgICAgIC8vIGxpZ2h0IGdyZWVuIGJhY2tncm91bmQsIGRhcmsgZ3JlZW4gdGV4dCwgc3VidGxlIGdyZWVuIGJvcmRlclxuICAgICAgcmV0dXJuIGAke2Jhc2V9IGNxYS1iZy1bI0QxRkFFNV0gY3FhLXRleHQtWyMwNjVGNDZdIGNxYS1ib3JkZXItWyNBN0YzRDBdYDtcbiAgICB9XG4gICAgaWYodGhpcy5pc0dlbmVyYXRpbmcpIHtcbiAgICAgIHJldHVybiBgJHtiYXNlfSBjcWEtYmctcHJpbWFyeS1zdXJmYWNlIGNxYS10ZXh0LXByaW1hcnlgO1xuICAgIH1cbiAgICByZXR1cm4gYmFzZTtcbiAgfVxuXG4gIG9uQWlDb3ZlcmFnZUNsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzR2VuZXJhdGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmN0YUNsaWNrZWQuZW1pdCgpO1xuICAgIHRoaXMuYWlDb3ZlcmFnZUNsaWNrLmVtaXQoKTtcblxuICAgIC8vIFN0YXJ0IGdlbmVyYXRpbmcgc3RhdGUgZm9yIH4xMiBzZWNvbmRzXG4gICAgdGhpcy5pc0dlbmVyYXRlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNHZW5lcmF0aW5nID0gdHJ1ZTtcblxuICAgIC8vIENsZWFyIGFueSBleGlzdGluZyB0aW1lciBkZWZlbnNpdmVseVxuICAgIFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pc0dlbmVyYXRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNHZW5lcmF0ZWQgPSB0cnVlO1xuICAgIH0sIDIwMCk7XG4gIH1cbn1cblxuXG4iLCI8ZGl2IGlkPVwiY3FhLXVpLXJvb3RcIiBjbGFzcz1cImNxYS1oLWZ1bGxcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY3FhLXctZnVsbCBjcWEtaC1mdWxsIGNxYS1iZy13aGl0ZSBjcWEtcm91bmRlZC1bOHB4XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0U1RTdFQl0gY3FhLXB5LVsxMHB4XSBtZDpjcWEtcHgtWzE3cHhdIGNxYS1weC0zIGNxYS1zaGFkb3ctY2FyZCBjcWEtZmxleCBjcWEtZmxleC1jb2xcIj5cbiAgICA8IS0tIEhlYWRlciAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1tYi0zIGNxYS1zaHJpbmstMCBjcWEtbWluLWgtWzI4cHhdXCI+XG4gICAgICA8aDMgY2xhc3M9XCJjcWEtdGV4dC1bMThweF0gY3FhLWxlYWRpbmctWzI4cHhdIGNxYS1mb250LWJvbGQgY3FhLXRleHQtZGlhbG9nIGNxYS1mbGV4LXNocmlua1wiPnt7IHRpdGxlIH19PC9oMz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1zaHJpbmstMCBjcWEtZmxleC1ub3dyYXBcIj5cbiAgICAgICAgICA8c3BhbiAoY2xpY2spPVwiaXNzdWVzQ2xpY2tlZC5lbWl0KClcIlxuICAgICAgICAgICAgY2xhc3M9XCJjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXB4LVsxMHB4XSBjcWEtcHktWzRweF0gY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNnB4XSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMSBjcWEtcm91bmRlZC1mdWxsIGNxYS1iZy13YXJuaW5nLWxpZ2h0IGNxYS10ZXh0LWRhbmdlciBjcWEtd2hpdGVzcGFjZS1ub3dyYXAgY3FhLWZsZXgtc2hyaW5rLTBcIj5cbiAgICAgICAgICAgIHt7IGlzc3VlcyB9fSB7eyBpc3N1ZXMgPT09IDEgPyAnaXNzdWUnIDogJ2lzc3VlcycgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsyMHB4XSBjcWEtdGV4dC1wcmltYXJ5IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xIGNxYS13aGl0ZXNwYWNlLW5vd3JhcCBjcWEtZmxleC1zaHJpbmstMFwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dWaWV3QWN0aW9uXCIgKGNsaWNrKT1cInZpZXcuZW1pdCgpXCI+XG4gICAgICAgICAgICBWaWV3XG4gICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDEyTDEwIDhMNiA0XCIgc3Ryb2tlPVwiIzRGNDZFNVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgIDwhLS0gRGVmYXVsdCBMYXlvdXQ6IE1pZGRsZSBtZXRyaWNzIHJvdyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGF5b3V0ID09PSAnZGVmYXVsdCdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZ3JpZCBtZDpjcWEtZ3JpZC1jb2xzLTQgY3FhLWdyaWQtY29scy0yIGNxYS1nYXAtMyBjcWEtbWItNCBjcWEtcHktMlwiIHN0eWxlPVwiYm9yZGVyLXRvcDogMXB4IHNvbGlkICNGM0Y0RjY7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRjNGNEY2OyBib3JkZXItbGVmdDogbm9uZTsgYm9yZGVyLXJpZ2h0OiBub25lO1wiPlxuICAgICAgICA8IS0tIExlZnQ6IFBvc2l0aXZlIC8gTmVnYXRpdmUgLyBFZGdlIENhc2UgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1jZW50ZXIgY3FhLWN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInBvc2l0aXZlQ2xpY2tlZC5lbWl0KClcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzE4cHhdIGNxYS1sZWFkaW5nLVsyOHB4XSBjcWEtZm9udC1ib2xkIGNxYS10ZXh0LVsjMDU5NjY5XVwiPnt7IHBvc2l0aXZlQ291bnQgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNnB4XSBjcWEtdGV4dC1kaWFsb2ctbXV0ZWRcIj57eyBwb3NpdGl2ZUxhYmVsIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtY2VudGVyIGNxYS1jdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJuZWdhdGl2ZUNsaWNrZWQuZW1pdCgpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxOHB4XSBjcWEtbGVhZGluZy1bMjhweF0gY3FhLWZvbnQtYm9sZCBjcWEtdGV4dC1bI0VGNDQ0NF1cIj57eyBuZWdhdGl2ZUNvdW50IH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTZweF0gY3FhLXRleHQtZGlhbG9nLW11dGVkXCI+e3sgbmVnYXRpdmVMYWJlbCB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LWNlbnRlciBjcWEtY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiZWRnZUNhc2VDbGlja2VkLmVtaXQoKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMThweF0gY3FhLWxlYWRpbmctWzI4cHhdIGNxYS1mb250LWJvbGQgY3FhLXRleHQtWyNGNTlFMEJdXCI+e3sgZWRnZUNhc2VDb3VudCB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE2cHhdIGNxYS10ZXh0LWRpYWxvZy1tdXRlZFwiPnt7IGVkZ2VDYXNlTGFiZWwgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBSaWdodDogQUkgLyBIdW1hbiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LWNlbnRlciBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtZmxleC1jb2xcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xIGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS13LVs2MHB4XSBjcWEtY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE2cHhdIGNxYS1mb250LWJvbGQgY3FhLXRleHQtcHJpbWFyeSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtWzJweF1cIj5cbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzc0MTVfMTE3NTEpXCI+PHBhdGggZD1cIk00Ljk2ODUgNy43NTAxMkM0LjkyMzg2IDcuNTc3MDkgNC44MzM2NyA3LjQxOTE4IDQuNzA3MzEgNy4yOTI4MkM0LjU4MDk1IDcuMTY2NDYgNC40MjMwNCA3LjA3NjI2IDQuMjUgNy4wMzE2MkwxLjE4MjUgNi4yNDA2MkMxLjEzMDE3IDYuMjI1NzcgMS4wODQxMSA2LjE5NDI1IDEuMDUxMzEgNi4xNTA4NUMxLjAxODUxIDYuMTA3NDQgMS4wMDA3NiA2LjA1NDUzIDEuMDAwNzYgNi4wMDAxMkMxLjAwMDc2IDUuOTQ1NzIgMS4wMTg1MSA1Ljg5MjgxIDEuMDUxMzEgNS44NDk0QzEuMDg0MTEgNS44MDYgMS4xMzAxNyA1Ljc3NDQ4IDEuMTgyNSA1Ljc1OTYyTDQuMjUgNC45NjgxMkM0LjQyMjk4IDQuOTIzNTMgNC41ODA4NSA0LjgzMzQxIDQuNzA3MiA0LjcwNzE0QzQuODMzNTYgNC41ODA4OCA0LjkyMzc4IDQuNDIzMDcgNC45Njg1IDQuMjUwMTJMNS43NTk1IDEuMTgyNjJDNS43NzQyIDEuMTMwMDggNS44MDU2OSAxLjA4MzggNS44NDkxNiAxLjA1MDgyQzUuODkyNjMgMS4wMTc4NSA1Ljk0NTY5IDEgNi4wMDAyNSAxQzYuMDU0ODEgMSA2LjEwNzg3IDEuMDE3ODUgNi4xNTEzNCAxLjA1MDgyQzYuMTk0ODEgMS4wODM4IDYuMjI2MyAxLjEzMDA4IDYuMjQxIDEuMTgyNjJMNy4wMzE1IDQuMjUwMTJDNy4wNzYxNCA0LjQyMzE2IDcuMTY2MzMgNC41ODEwNyA3LjI5MjY5IDQuNzA3NDNDNy40MTkwNSA0LjgzMzc5IDcuNTc2OTYgNC45MjM5OSA3Ljc1IDQuOTY4NjJMMTAuODE3NSA1Ljc1OTEyQzEwLjg3MDMgNS43NzM2NyAxMC45MTY4IDUuODA1MTMgMTAuOTQ5OSA1Ljg0ODY2QzEwLjk4MzEgNS44OTIyIDExLjAwMSA1Ljk0NTQxIDExLjAwMSA2LjAwMDEyQzExLjAwMSA2LjA1NDg0IDEwLjk4MzEgNi4xMDgwNSAxMC45NDk5IDYuMTUxNTlDMTAuOTE2OCA2LjE5NTEyIDEwLjg3MDMgNi4yMjY1NyAxMC44MTc1IDYuMjQxMTJMNy43NSA3LjAzMTYyQzcuNTc2OTYgNy4wNzYyNiA3LjQxOTA1IDcuMTY2NDYgNy4yOTI2OSA3LjI5MjgyQzcuMTY2MzMgNy40MTkxOCA3LjA3NjE0IDcuNTc3MDkgNy4wMzE1IDcuNzUwMTJMNi4yNDA1IDEwLjgxNzZDNi4yMjU4IDEwLjg3MDIgNi4xOTQzMSAxMC45MTY1IDYuMTUwODQgMTAuOTQ5NEM2LjEwNzM3IDEwLjk4MjQgNi4wNTQzMSAxMS4wMDAyIDUuOTk5NzUgMTEuMDAwMkM1Ljk0NTE5IDExLjAwMDIgNS44OTIxMyAxMC45ODI0IDUuODQ4NjYgMTAuOTQ5NEM1LjgwNTE5IDEwLjkxNjUgNS43NzM3IDEwLjg3MDIgNS43NTkgMTAuODE3Nkw0Ljk2ODUgNy43NTAxMlpcIiBzdHJva2U9XCIjN0MzQUVEXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMTAgMS41VjMuNVwiIHN0cm9rZT1cIiM3QzNBRURcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0xMSAyLjVIOVwiIHN0cm9rZT1cIiM3QzNBRURcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0yIDguNVY5LjVcIiBzdHJva2U9XCIjN0MzQUVEXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMi41IDlIMS41XCIgc3Ryb2tlPVwiIzdDM0FFRFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPVwiY2xpcDBfNzQxNV8xMTc1MVwiPjxyZWN0IHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCJ3aGl0ZVwiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz5cbiAgICAgICAgICAgICAgICB7eyBhaUxhYmVsIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTRweF0gY3FhLWxlYWRpbmctWzIwcHhdIGNxYS1mb250LWJvbGQgY3FhLXRleHQtZGlhbG9nXCI+e3sgYWlDb3VudCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1iZy1wcmltYXJ5LXN1cmZhY2UgY3FhLXctWzJweF0gY3FhLWgtZnVsbCBjcWEtbXgtWzMuNXB4XVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTEgY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXctWzYwcHhdXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNnB4XSBjcWEtZm9udC1ib2xkIGNxYS10ZXh0LWRpYWxvZy1zZWNvbmRhcnkgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLVsycHhdXCI+XG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk05LjUgMTAuNVY5LjVDOS41IDguOTY5NTcgOS4yODkyOSA4LjQ2MDg2IDguOTE0MjEgOC4wODU3OUM4LjUzOTE0IDcuNzEwNzEgOC4wMzA0MyA3LjUgNy41IDcuNUg0LjVDMy45Njk1NyA3LjUgMy40NjA4NiA3LjcxMDcxIDMuMDg1NzkgOC4wODU3OUMyLjcxMDcxIDguNDYwODYgMi41IDguOTY5NTcgMi41IDkuNVYxMC41XCIgc3Ryb2tlPVwiIzNGNDNFRVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTYgNS41QzcuMTA0NTcgNS41IDggNC42MDQ1NyA4IDMuNUM4IDIuMzk1NDMgNy4xMDQ1NyAxLjUgNiAxLjVDNC44OTU0MyAxLjUgNCAyLjM5NTQzIDQgMy41QzQgNC42MDQ1NyA0Ljg5NTQzIDUuNSA2IDUuNVpcIiBzdHJva2U9XCIjM0Y0M0VFXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgICAgICAgICAgIHt7IGh1bWFuTGFiZWwgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMjBweF0gY3FhLWZvbnQtYm9sZCBjcWEtdGV4dC1kaWFsb2dcIj57eyBodW1hbkNvdW50IH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTZweF0gY3FhLXRleHQtZGlhbG9nLW11dGVkIGNxYS1wdC1bMnB4XSBjcWEtcGItMVwiPkNvdmVyYWdlPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIE1vYmlsZSBMYXlvdXQ6IFN0YWNrZWQgbWV0cmljcyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGF5b3V0ID09PSAnbW9iaWxlJ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTMgY3FhLW1iLTQgY3FhLXB5LTJcIiBzdHlsZT1cImJvcmRlci10b3A6IDFweCBzb2xpZCAjRjNGNEY2OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0YzRjRGNjsgYm9yZGVyLWxlZnQ6IG5vbmU7IGJvcmRlci1yaWdodDogbm9uZTtcIj5cbiAgICAgICAgPCEtLSBGaXJzdCByb3c6IFBvc2l0aXZlIC8gTmVnYXRpdmUgLyBFZGdlIENhc2UgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZ3JpZCBjcWEtZ3JpZC1jb2xzLTUgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1jb2wtc3Bhbi0xIGNxYS10ZXh0LWNlbnRlciBjcWEtY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicG9zaXRpdmVDbGlja2VkLmVtaXQoKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxNnB4XSBjcWEtbGVhZGluZy1bMjRweF0gY3FhLWZvbnQtYm9sZCBjcWEtdGV4dC1bIzA1OTY2OV1cIj57eyBwb3NpdGl2ZUNvdW50IH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzExcHhdIGNxYS1sZWFkaW5nLVsxNHB4XSBjcWEtdGV4dC1kaWFsb2ctbXV0ZWRcIj57eyBwb3NpdGl2ZUxhYmVsIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1jb2wtc3Bhbi0xXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1jb2wtc3Bhbi0xIGNxYS10ZXh0LWNlbnRlciBjcWEtY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwibmVnYXRpdmVDbGlja2VkLmVtaXQoKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxNnB4XSBjcWEtbGVhZGluZy1bMjRweF0gY3FhLWZvbnQtYm9sZCBjcWEtdGV4dC1bI0VGNDQ0NF1cIj57eyBuZWdhdGl2ZUNvdW50IH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzExcHhdIGNxYS1sZWFkaW5nLVsxNHB4XSBjcWEtdGV4dC1kaWFsb2ctbXV0ZWRcIj57eyBuZWdhdGl2ZUxhYmVsIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1jb2wtc3Bhbi0xXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1jb2wtc3Bhbi0xIGNxYS10ZXh0LWNlbnRlciBjcWEtY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiZWRnZUNhc2VDbGlja2VkLmVtaXQoKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxNnB4XSBjcWEtbGVhZGluZy1bMjRweF0gY3FhLWZvbnQtYm9sZCBjcWEtdGV4dC1bI0Y1OUUwQl1cIj57eyBlZGdlQ2FzZUNvdW50IH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzExcHhdIGNxYS1sZWFkaW5nLVsxNHB4XSBjcWEtdGV4dC1kaWFsb2ctbXV0ZWRcIj57eyBlZGdlQ2FzZUxhYmVsIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIFNlY29uZCByb3c6IEFJIC8gSHVtYW4gKGFsaWduZWQgYmV0d2VlbiBQb3NpdGl2ZS1OZWdhdGl2ZSBhbmQgTmVnYXRpdmUtRWRnZSBDYXNlKSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtNSBjcWEtZ2FwLTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWNvbC1zcGFuLTFcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWNvbC1zcGFuLTEgY3FhLXRleHQtY2VudGVyIGNxYS1jdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTEgY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTFweF0gY3FhLWxlYWRpbmctWzE0cHhdIGNxYS1mb250LWJvbGQgY3FhLXRleHQtcHJpbWFyeSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtWzJweF1cIj5cbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTBcIiBoZWlnaHQ9XCIxMFwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzc0MTVfMTE3NTEpXCI+PHBhdGggZD1cIk00Ljk2ODUgNy43NTAxMkM0LjkyMzg2IDcuNTc3MDkgNC44MzM2NyA3LjQxOTE4IDQuNzA3MzEgNy4yOTI4MkM0LjU4MDk1IDcuMTY2NDYgNC40MjMwNCA3LjA3NjI2IDQuMjUgNy4wMzE2MkwxLjE4MjUgNi4yNDA2MkMxLjEzMDE3IDYuMjI1NzcgMS4wODQxMSA2LjE5NDI1IDEuMDUxMzEgNi4xNTA4NUMxLjAxODUxIDYuMTA3NDQgMS4wMDA3NiA2LjA1NDUzIDEuMDAwNzYgNi4wMDAxMkMxLjAwMDc2IDUuOTQ1NzIgMS4wMTg1MSA1Ljg5MjgxIDEuMDUxMzEgNS44NDk0QzEuMDg0MTEgNS44MDYgMS4xMzAxNyA1Ljc3NDQ4IDEuMTgyNSA1Ljc1OTYyTDQuMjUgNC45NjgxMkM0LjQyMjk4IDQuOTIzNTMgNC41ODA4NSA0LjgzMzQxIDQuNzA3MiA0LjcwNzE0QzQuODMzNTYgNC41ODA4OCA0LjkyMzc4IDQuNDIzMDcgNC45Njg1IDQuMjUwMTJMNS43NTk1IDEuMTgyNjJDNS43NzQyIDEuMTMwMDggNS44MDU2OSAxLjA4MzggNS44NDkxNiAxLjA1MDgyQzUuODkyNjMgMS4wMTc4NSA1Ljk0NTY5IDEgNi4wMDAyNSAxQzYuMDU0ODEgMSA2LjEwNzg3IDEuMDE3ODUgNi4xNTEzNCAxLjA1MDgyQzYuMTk0ODEgMS4wODM4IDYuMjI2MyAxLjEzMDA4IDYuMjQxIDEuMTgyNjJMNy4wMzE1IDQuMjUwMTJDNy4wNzYxNCA0LjQyMzE2IDcuMTY2MzMgNC41ODEwNyA3LjI5MjY5IDQuNzA3NDNDNy40MTkwNSA0LjgzMzc5IDcuNTc2OTYgNC45MjM5OSA3Ljc1IDQuOTY4NjJMMTAuODE3NSA1Ljc1OTEyQzEwLjg3MDMgNS43NzM2NyAxMC45MTY4IDUuODA1MTMgMTAuOTQ5OSA1Ljg0ODY2QzEwLjk4MzEgNS44OTIyIDExLjAwMSA1Ljk0NTQxIDExLjAwMSA2LjAwMDEyQzExLjAwMSA2LjA1NDg0IDEwLjk4MzEgNi4xMDgwNSAxMC45NDk5IDYuMTUxNTlDMTAuOTE2OCA2LjE5NTEyIDEwLjg3MDMgNi4yMjY1NyAxMC44MTc1IDYuMjQxMTJMNy43NSA3LjAzMTYyQzcuNTc2OTYgNy4wNzYyNiA3LjQxOTA1IDcuMTY2NDYgNy4yOTI2OSA3LjI5MjgyQzcuMTY2MzMgNy40MTkxOCA3LjA3NjE0IDcuNTc3MDkgNy4wMzE1IDcuNzUwMTJMNi4yNDA1IDEwLjgxNzZDNi4yMjU4IDEwLjg3MDIgNi4xOTQzMSAxMC45MTY1IDYuMTUwODQgMTAuOTQ5NEM2LjEwNzM3IDEwLjk4MjQgNi4wNTQzMSAxMS4wMDAyIDUuOTk5NzUgMTEuMDAwMkM1Ljk0NTE5IDExLjAwMDIgNS44OTIxMyAxMC45ODI0IDUuODQ4NjYgMTAuOTQ5NEM1LjgwNTE5IDEwLjkxNjUgNS43NzM3IDEwLjg3MDIgNS43NTkgMTAuODE3Nkw0Ljk2ODUgNy43NTAxMlpcIiBzdHJva2U9XCIjN0MzQUVEXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMTAgMS41VjMuNVwiIHN0cm9rZT1cIiM3QzNBRURcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0xMSAyLjVIOVwiIHN0cm9rZT1cIiM3QzNBRURcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0yIDguNVY5LjVcIiBzdHJva2U9XCIjN0MzQUVEXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMi41IDlIMS41XCIgc3Ryb2tlPVwiIzdDM0FFRFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPVwiY2xpcDBfNzQxNV8xMTc1MVwiPjxyZWN0IHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCJ3aGl0ZVwiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz5cbiAgICAgICAgICAgICAgICB7eyBhaUxhYmVsIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTNweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS1mb250LWJvbGQgY3FhLXRleHQtZGlhbG9nXCI+e3sgYWlDb3VudCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtY29sLXNwYW4tMVwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtY29sLXNwYW4tMSBjcWEtdGV4dC1jZW50ZXIgY3FhLWN1cnNvci1wb2ludGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMSBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMXB4XSBjcWEtbGVhZGluZy1bMTRweF0gY3FhLWZvbnQtYm9sZCBjcWEtdGV4dC1kaWFsb2ctc2Vjb25kYXJ5IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC1bMnB4XVwiPlxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMFwiIGhlaWdodD1cIjEwXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNOS41IDEwLjVWOS41QzkuNSA4Ljk2OTU3IDkuMjg5MjkgOC40NjA4NiA4LjkxNDIxIDguMDg1NzlDOC41MzkxNCA3LjcxMDcxIDguMDMwNDMgNy41IDcuNSA3LjVINC41QzMuOTY5NTcgNy41IDMuNDYwODYgNy43MTA3MSAzLjA4NTc5IDguMDg1NzlDMi43MTA3MSA4LjQ2MDg2IDIuNSA4Ljk2OTU3IDIuNSA5LjVWMTAuNVwiIHN0cm9rZT1cIiMzRjQzRUVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk02IDUuNUM3LjEwNDU3IDUuNSA4IDQuNjA0NTcgOCAzLjVDOCAyLjM5NTQzIDcuMTA0NTcgMS41IDYgMS41QzQuODk1NDMgMS41IDQgMi4zOTU0MyA0IDMuNUM0IDQuNjA0NTcgNC44OTU0MyA1LjUgNiA1LjVaXCIgc3Ryb2tlPVwiIzNGNDNFRVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgICAgICAgICAgICB7eyBodW1hbkxhYmVsIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTNweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS1mb250LWJvbGQgY3FhLXRleHQtZGlhbG9nXCI+e3sgaHVtYW5Db3VudCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtY29sLXNwYW4tMVwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBUaGlyZCByb3c6IENvdmVyYWdlIGxhYmVsIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXctZnVsbCBjcWEtdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzExcHhdIGNxYS1sZWFkaW5nLVsxNHB4XSBjcWEtdGV4dC1kaWFsb2ctbXV0ZWRcIj5Db3ZlcmFnZTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBCb2R5IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yIGNxYS1tYi0zIGNxYS1mbGV4LTFcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0IG9mIGl0ZW1zXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMlwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1kOmNxYS13LWZ1bGwgbWQ6Y3FhLW1heC13LVsyMTZweF0gY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNnB4XSBjcWEtdGV4dC1kaWFsb2ctc2Vjb25kYXJ5IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgPHN2ZyAqbmdJZj1cIml0LnN0YXR1cz09J3N1Y2Nlc3MnXCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTIuODMzMyA2LjQ2MzA5VjYuOTk5NzZDMTIuODMyNiA4LjI1NzY3IDEyLjQyNTMgOS40ODE2NSAxMS42NzIxIDEwLjQ4OTJDMTAuOTE4OSAxMS40OTY3IDkuODYwMjUgMTIuMjMzNyA4LjY1Mzk2IDEyLjU5MDRDNy40NDc2NyAxMi45NDcgNi4xNTg0IDEyLjkwNDIgNC45Nzg0NCAxMi40NjgzQzMuNzk4NDggMTIuMDMyMyAyLjc5MTA1IDExLjIyNjYgMi4xMDYzOSAxMC4xNzE0QzEuNDIxNzQgOS4xMTYxMSAxLjA5NjU0IDcuODY3OCAxLjE3OTMxIDYuNjEyNjFDMS4yNjIwOCA1LjM1NzQyIDEuNzQ4MzcgNC4xNjI2MiAyLjU2NTY2IDMuMjA2MzhDMy4zODI5NSAyLjI1MDE1IDQuNDg3NDYgMS41ODM3MyA1LjcxNDQ0IDEuMzA2NTFDNi45NDE0MyAxLjAyOTI5IDguMjI1MTUgMS4xNTYxMiA5LjM3NDE3IDEuNjY4MDlcIiBzdHJva2U9XCIjMTBCOTgxXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTUuMjUgNi40MTYzNEw3IDguMTY2MzRMMTIuODMzMyAyLjMzMzAxXCIgc3Ryb2tlPVwiIzEwQjk4MVwiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICAgICAgPHN2ZyAqbmdJZj1cIml0LnN0YXR1cz09J2Vycm9yJ1wiIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTcgMTIuODMzN0MxMC4yMjE3IDEyLjgzMzcgMTIuODMzMyAxMC4yMjIgMTIuODMzMyA3LjAwMDMzQzEyLjgzMzMgMy43Nzg2NiAxMC4yMjE3IDEuMTY2OTkgNyAxLjE2Njk5QzMuNzc4MzQgMS4xNjY5OSAxLjE2NjY2IDMuNzc4NjYgMS4xNjY2NiA3LjAwMDMzQzEuMTY2NjYgMTAuMjIyIDMuNzc4MzQgMTIuODMzNyA3IDEyLjgzMzdaXCIgc3Ryb2tlPVwiI0VGNDQ0NFwiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk03IDQuNjY2OTlWNy4wMDAzM1wiIHN0cm9rZT1cIiNFRjQ0NDRcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNyA5LjMzMzAxSDcuMDA1ODNcIiBzdHJva2U9XCIjRUY0NDQ0XCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgICAgICB7eyBpdC5sYWJlbCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1oLVs2cHhdIGNxYS1yb3VuZGVkLWZ1bGwgY3FhLWJnLVsjRjNGNEY2XSBjcWEtb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1oLWZ1bGwgY3FhLXJvdW5kZWQtZnVsbFwiIFtuZ0NsYXNzXT1cInN0YXR1c0NvbG9yQ2xhc3MoaXQpXCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJmb3JtYXRQZXJjZW50KGl0LnBlcmNlbnQpXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1taW4tdy1bNDBweF0gY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNnB4XSBjcWEtZm9udC1ib2xkXCIgW25nQ2xhc3NdPVwidGV4dENvbG9yQ2xhc3MoaXQpXCI+e3tcbiAgICAgICAgICBmb3JtYXRQZXJjZW50KGl0LnBlcmNlbnQpIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEZvb3RlciAtLT5cbiAgICAgPGNxYS1idXR0b24gdmFyaWFudD1cImZpbGxlZFwiIFtjdXN0b21DbGFzc109XCJjdGFCdXR0b25DbGFzc1wiIChjbGljayk9XCJvbkFpQ292ZXJhZ2VDbGljaygpXCIgY2xhc3M9XCJjcWEtbXQtYXV0b1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0dlbmVyYXRpbmc7IGVsc2UgZ2VuZXJhdGluZ1RwbFwiPlxuICAgICAgICA8c3ZnICpuZ0lmPVwiIWlzR2VuZXJhdGluZyAmJiAhaXNHZW5lcmF0ZWRcIiAgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNOS4wMTg4MiAwQzkuMTI5NzkgMC4wNDU0NzY3IDkuMTc3MTggMC4xNTY1MyA5LjIyMjYxIDAuMjU5NjkxQzkuMjQ1MzkgMC4zMTk3OTkgOS4yNjYyOCAwLjM4MDIzNCA5LjI4NjU3IDAuNDQxMTVDOS4yOTQ1MiAwLjQ2NDQ5MyA5LjMwMjQ2IDAuNDg3ODM2IDkuMzEwNjUgMC41MTE4ODZDOS40MTYxMyAwLjgyNjAwOSA5LjUxMDA4IDEuMTQzNSA5LjYwNDU3IDEuNDYwNzZDOS42MjU5MyAxLjUzMjM4IDkuNjQ3MzkgMS42MDM5NyA5LjY2ODg1IDEuNjc1NTdDOS43NzgxIDIuMDQwMDcgOS44ODY1NCAyLjQwNDggOS45OTQzOCAyLjc2OTY5QzEwLjAwOTUgMi44MjA5MyAxMC4wMjQ3IDIuODcyMTggMTAuMDM5OCAyLjkyMzQyQzEwLjA4MjYgMy4wNjc5IDEwLjEyNTIgMy4yMTIzOSAxMC4xNjc3IDMuMzU2OTRDMTAuMjU3MyAzLjY2MjM5IDEwLjM0OTUgMy45NjY5NSAxMC40NDc2IDQuMjcwMDJDMTAuNDU2MSA0LjI5NjUzIDEwLjQ2NDcgNC4zMjMwNSAxMC40NzM1IDQuMzUwMzZDMTAuNzI4NCA1LjEyOTk5IDExLjA4OTYgNS44Mjg3NSAxMS42ODE4IDYuNDIzOTNDMTEuNjk2NSA2LjQzOTQgMTEuNzExMSA2LjQ1NDg4IDExLjcyNjIgNi40NzA4M0MxMS45NzkgNi43Mjg3NSAxMi4zMDM0IDYuOTM1NDEgMTIuNjI3NiA3LjEwMjIxQzEyLjY0NDEgNy4xMTA4NSAxMi42NjA2IDcuMTE5NDggMTIuNjc3NiA3LjEyODM4QzEzLjYzMTcgNy42MTg1MSAxNC43NzkgNy44MzQwNyAxNS44MTI0IDguMTIxMDFDMTYuMjY1MiA4LjI0NjgxIDE2LjcxNjYgOC4zNzY1OCAxNy4xNjYzIDguNTEyMDZDMTcuMTk3OSA4LjUyMTU3IDE3LjIyOTYgOC41MzEwNyAxNy4yNjEyIDguNTQwNTVDMTcuMzU1NyA4LjU2ODkgMTcuNDUgOC41OTc3NCAxNy41NDQyIDguNjI2OTRDMTcuNTY2MiA4LjYzMzU4IDE3LjU4ODIgOC42NDAyMyAxNy42MTA4IDguNjQ3MDdDMTcuNzQwNiA4LjY4ODEyIDE3Ljg2NDggOC43MzY1OCAxNy45NzEzIDguODIwNTRDMTguMDAzOCA4Ljg4ODM3IDE4LjAwMzggOC44ODgzNyAxNy45OTUgOC45NTYxOUMxNy44OTEzIDkuMDU0NzIgMTcuNzg4NCA5LjEwMDkyIDE3LjY1MTYgOS4xNDU5OUMxNy42MzIgOS4xNTI2NCAxNy42MTI0IDkuMTU5MyAxNy41OTIzIDkuMTY2MTVDMTcuMzYxMiA5LjI0MzY2IDE3LjEyNyA5LjMxMTQ5IDE2Ljg5MjUgOS4zNzg3MUMxNi44NDQ0IDkuMzkyNjEgMTYuNzk2MyA5LjQwNjUxIDE2Ljc0ODIgOS40MjA0MkMxNi40NTE0IDkuNTA2MDMgMTYuMTU0MiA5LjU4OTggMTUuODU2NiA5LjY3MjYzQzE1LjQ2NDYgOS43ODE3NSAxNS4wNzMzIDkuODkyNjggMTQuNjgyMyAxMC4wMDQ5QzE0LjYxODIgMTAuMDIzMiAxNC41NTQxIDEwLjA0MTYgMTQuNDkgMTAuMDU5OEMxNC4xNTM0IDEwLjE1NTcgMTMuODE4NSAxMC4yNTUxIDEzLjQ4NjMgMTAuMzY0MkMxMy40NTg3IDEwLjM3MzIgMTMuNDMxMiAxMC4zODIyIDEzLjQwMjggMTAuMzkxNUMxMi4yOTAyIDEwLjc2MTYgMTEuNDQyMiAxMS40NTIyIDEwLjkxMTQgMTIuNDYyQzEwLjYyNTMgMTMuMDI5NSAxMC40NTY1IDEzLjY0MzIgMTAuMjg0MyAxNC4yNDg5QzEwLjIzNzcgMTQuNDEyNCAxMC4xODgyIDE0LjU3NDkgMTAuMTM4MSAxNC43Mzc0QzEwLjA5ODggMTQuODY1MiAxMC4wNjA0IDE0Ljk5MzMgMTAuMDIzIDE1LjEyMTZDMTAuMDE4NSAxNS4xMzY5IDEwLjAxNDEgMTUuMTUyMiAxMC4wMDk1IDE1LjE2NzlDOS45ODc4OCAxNS4yNDE5IDkuOTY2MzggMTUuMzE1OSA5Ljk0NTAzIDE1LjM4OTlDOS44OTAzOSAxNS41Nzc2IDkuODMxNTYgMTUuNzYzNyA5Ljc3MTExIDE1Ljk0OThDOS42NjM4MyAxNi4yODA0IDkuNTY2MiAxNi42MTM1IDkuNDY5MTcgMTYuOTQ3QzkuMzIyODggMTcuNDQ5MSA5LjMyMjg4IDE3LjQ0OTEgOS4yMzk5MyAxNy42OTA1QzkuMjM0NDMgMTcuNzA2NyA5LjIyODkzIDE3LjcyMjkgOS4yMjMyNiAxNy43Mzk2QzkuMTkyOTggMTcuODI1NiA5LjE2MTgzIDE3LjkwNDcgOS4xMDQ1MyAxNy45Nzc0QzkuMDE3MzQgMTcuOTk1OCA5LjAxNzM0IDE3Ljk5NTggOC45MzkwMSAxOEM4Ljg0OTQ2IDE3Ljg3NTIgOC43OTAxNiAxNy43NTQyIDguNzQyNjUgMTcuNjEwMkM4LjczNTc0IDE3LjU4OTcgOC43Mjg4MiAxNy41NjkzIDguNzIxNyAxNy41NDgzQzguNjMzNjggMTcuMjg1IDguNTU1MDIgMTcuMDE4OSA4LjQ3NjM0IDE2Ljc1MjlDOC40NTgzMiAxNi42OTIxIDguNDQwMjIgMTYuNjMxMyA4LjQyMjExIDE2LjU3MDVDOC4yODcyIDE2LjExNzMgOC4xNTQ1MSAxNS42NjM1IDguMDIyMDIgMTUuMjA5NkM3LjQ3MDE0IDEyLjk2NDUgNy40NzAxNCAxMi45NjQ1IDYuMDc4IDExLjE0OTNDNi4wNTU2OSAxMS4xMzE5IDYuMDMzMzggMTEuMTE0NSA2LjAxMDM5IDExLjA5NjZDNS4wOTgyNiAxMC4zOTggMy44OTY2NyAxMC4xMzk0IDIuNzk2MyA5LjgzNjI3QzIuNTI0MTUgOS43NjEyNCAyLjI1MjEgOS42ODU4NyAxLjk4MDA2IDkuNjEwNDZDMS45NTYyOCA5LjYwMzg2IDEuOTU2MjggOS42MDM4NiAxLjkzMjAxIDkuNTk3MTRDMS41Mzk2MiA5LjQ4ODM0IDEuMTQ3MzUgOS4zNzkyNSAwLjc1NjQ0OCA5LjI2NTY2QzAuNzM5OTExIDkuMjYwODkgMC43MjMzNzUgOS4yNTYxMiAwLjcwNjMzOCA5LjI1MTIxQzAuMTA1Nzk4IDkuMDc3NjcgMC4xMDU3OTggOS4wNzc2NyAwLjAwMTI5MzA3IDguOTU2MTlDLTAuMDAxNjYyNTIgOC45MDEwOCAtMC4wMDE2NjI1MiA4LjkwMTA4IDAuMDI0OTM3OCA4Ljg0MzE1QzAuMTM0MTY3IDguNzQwOCAwLjI0MDE1MyA4LjY5Njk2IDAuMzg0MzIgOC42NTIzOEMwLjQwNTE5NCA4LjY0NTY3IDAuNDI2MDY4IDguNjM4OTcgMC40NDc1NzQgOC42MzIwNkMwLjUxMTUwNiA4LjYxMTY0IDAuNTc1NTc3IDguNTkxNjkgMC42Mzk3MDIgOC41NzE4M0MwLjY1ODAwMSA4LjU2NjA5IDAuNjc2MzAxIDguNTYwMzUgMC42OTUxNTUgOC41NTQ0M0MwLjgyNDU3IDguNTEzODUgMC45NTQ0NSA4LjQ3NDc5IDEuMDg0NTIgOC40MzYxOEMxLjExNjQ4IDguNDI2NjUgMS4xMTY0OCA4LjQyNjY1IDEuMTQ5MDkgOC40MTY5M0MxLjcwNDU0IDguMjUxNzQgMi4yNjM2MSA4LjA5ODAxIDIuODIyNTIgNy45NDM5MkMzLjIzODk5IDcuODI5MDkgMy42NTQ3NiA3LjcxMjM2IDQuMDY5MjEgNy41OTA5N0M0LjA4ODI1IDcuNTg1NDIgNC4xMDczIDcuNTc5ODcgNC4xMjY5MiA3LjU3NDE1QzUuMDg3IDcuMjkzOTMgNi4wMjU1NyA2Ljg5NjMyIDYuNjQ1NDcgNi4xMDc0QzYuNjU0NzUgNi4wOTU2OSA2LjY2NDAzIDYuMDgzOTkgNi42NzM2IDYuMDcxOTRDNy4zNjM5NSA1LjE5NjMgNy42MzMxNSA0LjEzMTQ1IDcuOTMzOTEgMy4wOTI0MUM4LjAzMjg1IDIuNzUwNjkgOC4xMzI5OCAyLjQwOTI5IDguMjMzNDUgMi4wNjc5OEM4LjI2MTI3IDEuOTczNDcgOC4yODkwNiAxLjg3ODk0IDguMzE2NzMgMS43ODQzOUM4LjQyNzg4IDEuNDA0NTggOC41NDA3IDEuMDI1MjggOC42NiAwLjY0NzcyN0M4LjY3MTE2IDAuNjEyMzcyIDguNjgyMjcgMC41NzcwMDEgOC42OTMzMyAwLjU0MTYxNEM4Ljg2MDM1IDAuMDA3OTc1MjIgOC44NjAzNSAwLjAwNzk3NTIyIDkuMDE4ODIgMFpcIiBmaWxsPVwiI0ZCRkNGRlwiLz48cGF0aCBkPVwiTTE0LjQ3MTkgMS4xMTA2OUMxNC41ODA1IDEuMjI4MTcgMTQuNjAyMiAxLjM2NjI0IDE0LjYzNiAxLjUxNjI1QzE0Ljc0ODcgMS45ODc1MSAxNC44Nzg2IDIuNDIwODQgMTUuMzI5MyAyLjY5NDZDMTUuNjA3NCAyLjg0MTY3IDE1LjkzODkgMi45MDg1OSAxNi4yNDcgMi45NzE4QzE2LjM3NzEgMi45OTkwMiAxNi40ODY5IDMuMDM1MTUgMTYuNTk4NSAzLjEwNzRDMTYuNjIzNiAzLjE0NTU1IDE2LjYyMzYgMy4xNDU1NSAxNi42MjIxIDMuMjExOTdDMTYuNTk2MyAzLjI5MjczIDE2LjU3MzYgMy4zMTg3OCAxNi41MDU0IDMuMzcxNjVDMTYuNDMwOCAzLjM5NTQ5IDE2LjQzMDggMy4zOTU0OSAxNi4zNDEzIDMuNDE0MDRDMTYuMzA3NSAzLjQyMTQ3IDE2LjI3MzYgMy40Mjg5OCAxNi4yMzk4IDMuNDM2NTZDMTYuMjIxNyAzLjQ0MDU4IDE2LjIwMzYgMy40NDQ2IDE2LjE4NDkgMy40NDg3NEMxNS42MzM5IDMuNTcwNjIgMTUuNjMzOSAzLjU3MDYyIDE1LjE1NzYgMy44NDY0NUMxNS4xNDIxIDMuODU4MzcgMTUuMTI2NyAzLjg3MDI5IDE1LjExMDcgMy44ODI1N0MxNC43NzAzIDQuMTY5NTkgMTQuNjk4MyA0LjY0NzAzIDE0LjU5NTggNS4wNDY5OUMxNC41OSA1LjA2ODk2IDE0LjU4NDEgNS4wOTA5MiAxNC41NzggNS4xMTM1NUMxNC41NzMgNS4xMzMgMTQuNTY3OSA1LjE1MjQ0IDE0LjU2MjcgNS4xNzI0OEMxNC41NDA1IDUuMjMxODUgMTQuNTE3NiA1LjI3MDU3IDE0LjQ3MTkgNS4zMTYwN0MxNC4zNDQ3IDUuMzMxNTIgMTQuMzQ0NyA1LjMzMTUyIDE0LjI4MjggNS4zMTYwN0MxNC4xODQzIDUuMjQzMDkgMTQuMTYyMyA1LjE1OTk3IDE0LjEzNjYgNS4wNDgyOEMxNC4xMzIyIDUuMDMwOTkgMTQuMTI3OSA1LjAxMzY5IDE0LjEyMzUgNC45OTU4N0MxNC4xMDk4IDQuOTQwNjQgMTQuMDk2NSA0Ljg4NTMxIDE0LjA4MzMgNC44Mjk5NkMxMy45Nzk2IDQuMzk4OTEgMTMuODYyNSAzLjk3NiAxMy40NDkgMy43MjMzM0MxMy4xMjU4IDMuNTUxMDEgMTIuNzMyOSAzLjQ2OTUxIDEyLjM3MTcgMy40MDM3QzEyLjI3MjcgMy4zODM5OSAxMi4yMTYgMy4zNTkyIDEyLjE1NDcgMy4yODEyMUMxMi4xNDE0IDMuMjAyMDggMTIuMTQxNCAzLjIwMjA4IDEyLjE1NDcgMy4xMjI5NEMxMi4yNDg5IDMuMDI5NzEgMTIuMzQ4IDMuMDA2OTYgMTIuNDc1NCAyLjk3ODgxQzEyLjUxNTYgMi45NjkzIDEyLjU1NTcgMi45NTk3MyAxMi41OTU4IDIuOTUwMUMxMi42MTY1IDIuOTQ1MTYgMTIuNjM3MiAyLjk0MDIyIDEyLjY1ODYgMi45MzUxMkMxMi43NjQyIDIuOTA5MTEgMTIuODY4OSAyLjg3OTk1IDEyLjk3MzQgMi44NTAyMUMxMi45OTI0IDIuODQ0OTQgMTMuMDExNCAyLjgzOTY3IDEzLjAzMSAyLjgzNDI0QzEzLjI0MzYgMi43NzM0NiAxMy40MjcxIDIuNjk1NzEgMTMuNTk3MSAyLjU1NzdDMTMuNjEyOSAyLjU0NTIzIDEzLjYyODggMi41MzI3NiAxMy42NDUxIDIuNTE5OUMxMy45MDk2IDIuMjkyMjggMTMuOTk5NSAxLjk1MDMyIDE0LjA4MSAxLjYzMTI0QzE0LjA4NzMgMS42MDcwMiAxNC4wOTM1IDEuNTgyOCAxNC4wOTk5IDEuNTU3ODRDMTQuMTEyMyAxLjUwOTE4IDE0LjEyNDQgMS40NjA0NiAxNC4xMzYzIDEuNDExN0MxNC4xNDQ5IDEuMzc3NzYgMTQuMTQ0OSAxLjM3Nzc2IDE0LjE1MzUgMS4zNDMxNUMxNC4xNTg1IDEuMzIyODggMTQuMTYzNSAxLjMwMjYxIDE0LjE2ODYgMS4yODE3MkMxNC4xOTA0IDEuMjE3MTkgMTQuMjE5IDEuMTY2NTIgMTQuMjU5MSAxLjExMDY5QzE0LjMzNjIgMS4wNzM4NSAxNC4zOTAzIDEuMDkwNSAxNC40NzE5IDEuMTEwNjlaXCIgZmlsbD1cIiNGQkZDRkZcIi8+PHBhdGggZD1cIk0zLjU5MDg5IDEyLjQ5NDJDMy42MTkwMiAxMi40OTQ0IDMuNjE5MDIgMTIuNDk0NCAzLjY0NzcyIDEyLjQ5NDZDMy44NDk1NCAxMi41MDA0IDMuOTg2MDkgMTIuNTYyMyA0LjEzNDcyIDEyLjY5MkM0LjMwNzY3IDEyLjg3MDcgNC4zODc1MyAxMy4wNzIyIDQuMzgyOTkgMTMuMzEzQzQuMzYzNTcgMTMuNTA4MiA0LjI0MzE2IDEzLjY3ODcgNC4wOTU0NyAxMy44MTA3QzMuOTIxNjMgMTMuOTQ0OCAzLjc0NjI2IDEzLjk4OTIgMy41MjQxMSAxMy45ODNDMy4zMzY4MSAxMy45NjIxIDMuMTYwNiAxMy44NzcgMy4wMjc4NSAxMy43NDlDMi44NjI3NiAxMy41MzM2IDIuODE0NSAxMy4zMzYxIDIuODM4NjkgMTMuMDcwN0MyLjg4ODY3IDEyLjg2MTggMy4wMzI3NCAxMi42OTIzIDMuMjE3MDEgMTIuNTczM0MzLjM0NTAyIDEyLjUxMTMgMy40NDc5OCAxMi40OTMgMy41OTA4OSAxMi40OTQyWlwiIGZpbGw9XCIjRkJGQ0ZGXCIvPjwvc3ZnPlxuICAgICAgICA8c3ZnICpuZ0lmPVwiaXNHZW5lcmF0ZWRcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMi44MzMzIDYuNDYzMDlWNi45OTk3NkMxMi44MzI2IDguMjU3NjcgMTIuNDI1MyA5LjQ4MTY1IDExLjY3MjEgMTAuNDg5MkMxMC45MTg5IDExLjQ5NjcgOS44NjAyNSAxMi4yMzM3IDguNjUzOTYgMTIuNTkwNEM3LjQ0NzY3IDEyLjk0NyA2LjE1ODQgMTIuOTA0MiA0Ljk3ODQ0IDEyLjQ2ODNDMy43OTg0OCAxMi4wMzIzIDIuNzkxMDUgMTEuMjI2NiAyLjEwNjM5IDEwLjE3MTRDMS40MjE3NCA5LjExNjExIDEuMDk2NTQgNy44Njc4IDEuMTc5MzEgNi42MTI2MUMxLjI2MjA4IDUuMzU3NDIgMS43NDgzNyA0LjE2MjYyIDIuNTY1NjYgMy4yMDYzOEMzLjM4Mjk1IDIuMjUwMTUgNC40ODc0NiAxLjU4MzczIDUuNzE0NDQgMS4zMDY1MUM2Ljk0MTQzIDEuMDI5MjkgOC4yMjUxNSAxLjE1NjEyIDkuMzc0MTcgMS42NjgwOVwiIHN0cm9rZT1cIiMxMEI5ODFcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNS4yNSA2LjQxNjM0TDcgOC4xNjYzNEwxMi44MzMzIDIuMzMzMDFcIiBzdHJva2U9XCIjMTBCOTgxXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgICAge3sgY3RhVGV4dCB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2dlbmVyYXRpbmdUcGw+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWlubGluZS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgPHN2ZyAqbmdJZj1cIiFpc0dlbmVyYXRlZFwiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMTggMThcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIj5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI5XCIgY3k9XCI5XCIgcj1cIjdcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLW9wYWNpdHk9XCIwLjI1XCIvPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0xNiA5YTcgNyAwIDAgMS03IDdcIiBzdHJva2Utd2lkdGg9XCIyXCI+XG4gICAgICAgICAgICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9XCJ0cmFuc2Zvcm1cIiB0eXBlPVwicm90YXRlXCIgZnJvbT1cIjAgOSA5XCIgdG89XCIzNjAgOSA5XCIgZHVyPVwiMC44c1wiIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiLz5cbiAgICAgICAgICAgIDwvcGF0aD5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8c3ZnICpuZ0lmPVwiaXNHZW5lcmF0ZWRcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDE4IDE4XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCI+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiOVwiIHI9XCI3XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1vcGFjaXR5PVwiMC4yNVwiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTYgOWE3IDcgMCAwIDEtNyA3XCIgc3Ryb2tlLXdpZHRoPVwiMlwiPlxuICAgICAgICAgICAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCIgdHlwZT1cInJvdGF0ZVwiIGZyb209XCIwIDkgOVwiIHRvPVwiMzYwIDkgOVwiIGR1cj1cIjAuOHNcIiByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIi8+XG4gICAgICAgICAgICA8L3BhdGg+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgR2VuZXJhdGluZ1xuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvY3FhLWJ1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY292ZXJhZ2UtbW9kdWxlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kYXNoYm9hcmRzL2NvdmVyYWdlLW1vZHVsZS1jYXJkL2NvdmVyYWdlLW1vZHVsZS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy9jb3ZlcmFnZS1tb2R1bGUtY2FyZC9jb3ZlcmFnZS1tb2R1bGUtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDOzs7O0FBbUIzRyxNQUFNLE9BQU8sMkJBQTJCO0lBTnhDO1FBT0UsZ0NBQWdDO1FBQ3ZCLFVBQUssR0FBVyxVQUFVLENBQUM7UUFDcEMsZ0RBQWdEO1FBQ3ZDLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDNUIsd0NBQXdDO1FBQy9CLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBQ3hDLDJDQUEyQztRQUNsQyxXQUFNLEdBQXlCLFNBQVMsQ0FBQztRQUNsRCxpQ0FBaUM7UUFDeEIsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFDMUIsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFDMUIsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFDMUIsa0JBQWEsR0FBVyxVQUFVLENBQUM7UUFDbkMsa0JBQWEsR0FBVyxVQUFVLENBQUM7UUFDbkMsa0JBQWEsR0FBVyxXQUFXLENBQUM7UUFDN0Msa0NBQWtDO1FBQ3pCLFlBQU8sR0FBVyxDQUFDLENBQUM7UUFDcEIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixZQUFPLEdBQVcsSUFBSSxDQUFDO1FBQ3ZCLGVBQVUsR0FBVyxPQUFPLENBQUM7UUFDdEMsNENBQTRDO1FBQ25DLFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBQ3BDLHVCQUF1QjtRQUNkLFlBQU8sR0FBVyxhQUFhLENBQUM7UUFDekMsa0JBQWtCO1FBQ1QsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDdEMseURBQXlEO1FBQ2hELGlCQUFZLEdBQVcsR0FBRyxDQUFDO1FBRTFCLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN6QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNoRCxpREFBaUQ7UUFDdkMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3JELHFEQUFxRDtRQUMzQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDckQscURBQXFEO1FBQzNDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNyRCxzREFBc0Q7UUFDNUMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXJELGdDQUFnQztRQUNoQyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixnQkFBVyxHQUFZLEtBQUssQ0FBQztLQWdFOUI7SUE3REMsZ0JBQWdCLENBQUMsSUFBa0I7UUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUM7UUFDeEMsUUFBUSxNQUFNLEVBQUU7WUFDZCxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxrQkFBa0IsQ0FBQyxDQUFDLFFBQVE7WUFDckMsS0FBSyxPQUFPO2dCQUNWLE9BQU8sa0JBQWtCLENBQUMsQ0FBQyxNQUFNO1lBQ25DO2dCQUNFLE9BQU8sa0JBQWtCLENBQUMsQ0FBQyxPQUFPO1NBQ3JDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFrQjtRQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQztRQUN4QyxRQUFRLE1BQU0sRUFBRTtZQUNkLEtBQUssU0FBUztnQkFDWixPQUFPLG9CQUFvQixDQUFDO1lBQzlCLEtBQUssT0FBTztnQkFDVixPQUFPLG9CQUFvQixDQUFDO1lBQzlCO2dCQUNFLE9BQU8sb0JBQW9CLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQVc7UUFDdkIsSUFBSSxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN4RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sR0FBRyxPQUFPLEdBQUcsQ0FBQztJQUN2QixDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLElBQUksY0FBYztRQUNoQixNQUFNLElBQUksR0FBRyxpRUFBaUUsQ0FBQztRQUMvRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsK0RBQStEO1lBQy9ELE9BQU8sR0FBRyxJQUFJLDJEQUEyRCxDQUFDO1NBQzNFO1FBQ0QsSUFBRyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3BCLE9BQU8sR0FBRyxJQUFJLDBDQUEwQyxDQUFDO1NBQzFEO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUU1Qix5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFekIsdUNBQXVDO1FBRXZDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUMxQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOzt3SEEzR1UsMkJBQTJCOzRHQUEzQiwyQkFBMkIsaXdCQ25CeEMsNGdqQkFpS007MkZEOUlPLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFDRSwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU07OEJBSXRDLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksSUFBSTtzQkFBYixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFFRyxlQUFlO3NCQUF4QixNQUFNO2dCQUVHLGVBQWU7c0JBQXhCLE1BQU07Z0JBRUcsZUFBZTtzQkFBeEIsTUFBTTtnQkFFRyxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgQ292ZXJhZ2VTdGF0dXMgPSAnc3VjY2VzcycgfCAnZXJyb3InIHwgJ25ldXRyYWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvdmVyYWdlSXRlbSB7XG4gIC8qKiBSb3cgbGFiZWwsIGUuZy4gXCJJbnB1dCBWYWxpZGF0aW9uXCIgKi9cbiAgbGFiZWw6IHN0cmluZztcbiAgLyoqIFZhbHVlIGluIHBlcmNlbnQgKDAtMTAwKSAqL1xuICBwZXJjZW50OiBudW1iZXI7XG4gIC8qKiBWaXN1YWwgc3RhdHVzIHRvIGNvbG9yaXplIHRoZSBiYXIvdGV4dCAqL1xuICBzdGF0dXM/OiBDb3ZlcmFnZVN0YXR1cztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWNvdmVyYWdlLW1vZHVsZS1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdmVyYWdlLW1vZHVsZS1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENvdmVyYWdlTW9kdWxlQ2FyZENvbXBvbmVudCB7XG4gIC8qKiBDYXJkIHRpdGxlLCBlLmcuIFwiQUkgQXNrXCIgKi9cbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICdDb3ZlcmFnZSc7XG4gIC8qKiBOdW1iZXIgb2YgaXNzdWVzIHRvIGRpc3BsYXkgbmV4dCB0byB0aXRsZSAqL1xuICBASW5wdXQoKSBpc3N1ZXM6IG51bWJlciA9IDA7XG4gIC8qKiBPcHRpb25hbCBcIlZpZXdcIiBhY3Rpb24gdmlzaWJpbGl0eSAqL1xuICBASW5wdXQoKSBzaG93Vmlld0FjdGlvbjogYm9vbGVhbiA9IHRydWU7XG4gIC8qKiBMYXlvdXQgb3B0aW9uOiAnZGVmYXVsdCcgb3IgJ21vYmlsZScgKi9cbiAgQElucHV0KCkgbGF5b3V0OiAnZGVmYXVsdCcgfCAnbW9iaWxlJyA9ICdkZWZhdWx0JztcbiAgLyoqIE1pZGRsZSBtZXRyaWNzOiBsZWZ0IGdyb3VwICovXG4gIEBJbnB1dCgpIHBvc2l0aXZlQ291bnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG5lZ2F0aXZlQ291bnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIGVkZ2VDYXNlQ291bnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIHBvc2l0aXZlTGFiZWw6IHN0cmluZyA9ICdQb3NpdGl2ZSc7XG4gIEBJbnB1dCgpIG5lZ2F0aXZlTGFiZWw6IHN0cmluZyA9ICdOZWdhdGl2ZSc7XG4gIEBJbnB1dCgpIGVkZ2VDYXNlTGFiZWw6IHN0cmluZyA9ICdFZGdlIENhc2UnO1xuICAvKiogTWlkZGxlIG1ldHJpY3M6IHJpZ2h0IGdyb3VwICovXG4gIEBJbnB1dCgpIGFpQ291bnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIGh1bWFuQ291bnQ6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIGFpTGFiZWw6IHN0cmluZyA9ICdBSSc7XG4gIEBJbnB1dCgpIGh1bWFuTGFiZWw6IHN0cmluZyA9ICdIdW1hbic7XG4gIC8qKiBSb3dzIG9mIGNvdmVyYWdlIHdpdGggcGVyY2VudGFnZSBiYXJzICovXG4gIEBJbnB1dCgpIGl0ZW1zOiBDb3ZlcmFnZUl0ZW1bXSA9IFtdO1xuICAvKiogQ1RBIGJ1dHRvbiBsYWJlbCAqL1xuICBASW5wdXQoKSBjdGFUZXh0OiBzdHJpbmcgPSAnQUkgQ292ZXJhZ2UnO1xuICAvKiogRGlzYWJsZSBDVEEgKi9cbiAgQElucHV0KCkgY3RhRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIEdlbmVyYXRpb24gZHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzIChkZWZhdWx0IH4xMnMpICovXG4gIEBJbnB1dCgpIGdlbmVyYXRpb25NczogbnVtYmVyID0gMjAwO1xuXG4gIEBPdXRwdXQoKSB2aWV3ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgaXNzdWVzQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGN0YUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIC8qKiBFbWl0cyB3aGVuIHRoZSBBSSBjb3ZlcmFnZSBhcmVhIGlzIGNsaWNrZWQgKi9cbiAgQE91dHB1dCgpIGFpQ292ZXJhZ2VDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqIEVtaXRzIHdoZW4gdGhlIFBvc2l0aXZlIGNvdW50L2xhYmVsIGlzIGNsaWNrZWQgKi9cbiAgQE91dHB1dCgpIHBvc2l0aXZlQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqIEVtaXRzIHdoZW4gdGhlIE5lZ2F0aXZlIGNvdW50L2xhYmVsIGlzIGNsaWNrZWQgKi9cbiAgQE91dHB1dCgpIG5lZ2F0aXZlQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqIEVtaXRzIHdoZW4gdGhlIEVkZ2UgQ2FzZSBjb3VudC9sYWJlbCBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSBlZGdlQ2FzZUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqIEludGVybmFsIGdlbmVyYXRpb24gc3RhdGUgKi9cbiAgaXNHZW5lcmF0aW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGlzR2VuZXJhdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgZ2VuZXJhdGlvblRpbWVySWQ/OiBudW1iZXI7XG5cbiAgc3RhdHVzQ29sb3JDbGFzcyhpdGVtOiBDb3ZlcmFnZUl0ZW0pOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0YXR1cyA9IGl0ZW0uc3RhdHVzID8/ICduZXV0cmFsJztcbiAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgIHJldHVybiAnY3FhLWJnLVsjMTBCOTgxXSc7IC8vIGdyZWVuXG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIHJldHVybiAnY3FhLWJnLVsjRUY0NDQ0XSc7IC8vIHJlZFxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdjcWEtYmctWyMzQjgyRjZdJzsgLy8gYmx1ZVxuICAgIH1cbiAgfVxuXG4gIHRleHRDb2xvckNsYXNzKGl0ZW06IENvdmVyYWdlSXRlbSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RhdHVzID0gaXRlbS5zdGF0dXMgPz8gJ25ldXRyYWwnO1xuICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgcmV0dXJuICdjcWEtdGV4dC1bIzEwQjk4MV0nO1xuICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICByZXR1cm4gJ2NxYS10ZXh0LVsjRUY0NDQ0XSc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ2NxYS10ZXh0LVsjMzc0MTUxXSc7XG4gICAgfVxuICB9XG5cbiAgZm9ybWF0UGVyY2VudChwY3Q6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKHBjdCA9PT0gdW5kZWZpbmVkIHx8IHBjdCA9PT0gbnVsbCB8fCBOdW1iZXIuaXNOYU4ocGN0KSkgcmV0dXJuICcwJSc7XG4gICAgY29uc3QgY2xhbXBlZCA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEwMCwgcGN0KSk7XG4gICAgcmV0dXJuIGAke2NsYW1wZWR9JWA7XG4gIH1cblxuICAvKiogQ29tcHV0ZWQgQ1RBIGJ1dHRvbiBjbGFzcyB0byBzd2l0Y2ggdG8gbGlnaHQgZ3JlZW4gYWZ0ZXIgZ2VuZXJhdGlvbiAqL1xuICBnZXQgY3RhQnV0dG9uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlID0gJ2NxYS13LWZ1bGwgY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsyMHB4XSBjcWEtZm9udC1zZW1pYm9sZCc7XG4gICAgaWYgKHRoaXMuaXNHZW5lcmF0ZWQpIHtcbiAgICAgIC8vIGxpZ2h0IGdyZWVuIGJhY2tncm91bmQsIGRhcmsgZ3JlZW4gdGV4dCwgc3VidGxlIGdyZWVuIGJvcmRlclxuICAgICAgcmV0dXJuIGAke2Jhc2V9IGNxYS1iZy1bI0QxRkFFNV0gY3FhLXRleHQtWyMwNjVGNDZdIGNxYS1ib3JkZXItWyNBN0YzRDBdYDtcbiAgICB9XG4gICAgaWYodGhpcy5pc0dlbmVyYXRpbmcpIHtcbiAgICAgIHJldHVybiBgJHtiYXNlfSBjcWEtYmctcHJpbWFyeS1zdXJmYWNlIGNxYS10ZXh0LXByaW1hcnlgO1xuICAgIH1cbiAgICByZXR1cm4gYmFzZTtcbiAgfVxuXG4gIG9uQWlDb3ZlcmFnZUNsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzR2VuZXJhdGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmN0YUNsaWNrZWQuZW1pdCgpO1xuICAgIHRoaXMuYWlDb3ZlcmFnZUNsaWNrLmVtaXQoKTtcblxuICAgIC8vIFN0YXJ0IGdlbmVyYXRpbmcgc3RhdGUgZm9yIH4xMiBzZWNvbmRzXG4gICAgdGhpcy5pc0dlbmVyYXRlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNHZW5lcmF0aW5nID0gdHJ1ZTtcblxuICAgIC8vIENsZWFyIGFueSBleGlzdGluZyB0aW1lciBkZWZlbnNpdmVseVxuICAgIFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pc0dlbmVyYXRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNHZW5lcmF0ZWQgPSB0cnVlO1xuICAgIH0sIDIwMCk7XG4gIH1cbn1cblxuXG4iLCI8ZGl2IGlkPVwiY3FhLXVpLXJvb3RcIiBjbGFzcz1cImNxYS1oLWZ1bGxcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY3FhLXctZnVsbCBjcWEtaC1mdWxsIGNxYS1iZy13aGl0ZSBjcWEtcm91bmRlZC1bOHB4XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0U1RTdFQl0gY3FhLXB5LVsxMHB4XSBtZDpjcWEtcHgtWzE3cHhdIGNxYS1weC0zIGNxYS1zaGFkb3ctY2FyZCBjcWEtZmxleCBjcWEtZmxleC1jb2xcIj5cbiAgICA8IS0tIEhlYWRlciAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1tYi0zIGNxYS1zaHJpbmstMCBjcWEtbWluLWgtWzI4cHhdXCI+XG4gICAgICA8aDMgY2xhc3M9XCJjcWEtdGV4dC1bMThweF0gY3FhLWxlYWRpbmctWzI4cHhdIGNxYS1mb250LWJvbGQgY3FhLXRleHQtZGlhbG9nIGNxYS1mbGV4LXNocmlua1wiPnt7IHRpdGxlIH19PC9oMz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1zaHJpbmstMCBjcWEtZmxleC1ub3dyYXBcIj5cbiAgICAgICAgICA8c3BhbiAoY2xpY2spPVwiaXNzdWVzQ2xpY2tlZC5lbWl0KClcIlxuICAgICAgICAgICAgY2xhc3M9XCJjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXB4LVsxMHB4XSBjcWEtcHktWzRweF0gY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNnB4XSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMSBjcWEtcm91bmRlZC1mdWxsIGNxYS1iZy13YXJuaW5nLWxpZ2h0IGNxYS10ZXh0LWRhbmdlciBjcWEtd2hpdGVzcGFjZS1ub3dyYXAgY3FhLWZsZXgtc2hyaW5rLTBcIj5cbiAgICAgICAgICAgIHt7IGlzc3VlcyB9fSB7eyBpc3N1ZXMgPT09IDEgPyAnaXNzdWUnIDogJ2lzc3VlcycgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsyMHB4XSBjcWEtdGV4dC1wcmltYXJ5IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xIGNxYS13aGl0ZXNwYWNlLW5vd3JhcCBjcWEtZmxleC1zaHJpbmstMFwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dWaWV3QWN0aW9uXCIgKGNsaWNrKT1cInZpZXcuZW1pdCgpXCI+XG4gICAgICAgICAgICBWaWV3XG4gICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDEyTDEwIDhMNiA0XCIgc3Ryb2tlPVwiIzRGNDZFNVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgIDwhLS0gRGVmYXVsdCBMYXlvdXQ6IE1pZGRsZSBtZXRyaWNzIHJvdyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGF5b3V0ID09PSAnZGVmYXVsdCdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZ3JpZCBtZDpjcWEtZ3JpZC1jb2xzLTQgY3FhLWdyaWQtY29scy0yIGNxYS1nYXAtMyBjcWEtbWItNCBjcWEtcHktMlwiIHN0eWxlPVwiYm9yZGVyLXRvcDogMXB4IHNvbGlkICNGM0Y0RjY7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRjNGNEY2OyBib3JkZXItbGVmdDogbm9uZTsgYm9yZGVyLXJpZ2h0OiBub25lO1wiPlxuICAgICAgICA8IS0tIExlZnQ6IFBvc2l0aXZlIC8gTmVnYXRpdmUgLyBFZGdlIENhc2UgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1jZW50ZXIgY3FhLWN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInBvc2l0aXZlQ2xpY2tlZC5lbWl0KClcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzE4cHhdIGNxYS1sZWFkaW5nLVsyOHB4XSBjcWEtZm9udC1ib2xkIGNxYS10ZXh0LVsjMDU5NjY5XVwiPnt7IHBvc2l0aXZlQ291bnQgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNnB4XSBjcWEtdGV4dC1kaWFsb2ctbXV0ZWRcIj57eyBwb3NpdGl2ZUxhYmVsIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtY2VudGVyIGNxYS1jdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJuZWdhdGl2ZUNsaWNrZWQuZW1pdCgpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxOHB4XSBjcWEtbGVhZGluZy1bMjhweF0gY3FhLWZvbnQtYm9sZCBjcWEtdGV4dC1bI0VGNDQ0NF1cIj57eyBuZWdhdGl2ZUNvdW50IH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTZweF0gY3FhLXRleHQtZGlhbG9nLW11dGVkXCI+e3sgbmVnYXRpdmVMYWJlbCB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LWNlbnRlciBjcWEtY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiZWRnZUNhc2VDbGlja2VkLmVtaXQoKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMThweF0gY3FhLWxlYWRpbmctWzI4cHhdIGNxYS1mb250LWJvbGQgY3FhLXRleHQtWyNGNTlFMEJdXCI+e3sgZWRnZUNhc2VDb3VudCB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE2cHhdIGNxYS10ZXh0LWRpYWxvZy1tdXRlZFwiPnt7IGVkZ2VDYXNlTGFiZWwgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBSaWdodDogQUkgLyBIdW1hbiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LWNlbnRlciBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtZmxleC1jb2xcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xIGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS13LVs2MHB4XSBjcWEtY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE2cHhdIGNxYS1mb250LWJvbGQgY3FhLXRleHQtcHJpbWFyeSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtWzJweF1cIj5cbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzc0MTVfMTE3NTEpXCI+PHBhdGggZD1cIk00Ljk2ODUgNy43NTAxMkM0LjkyMzg2IDcuNTc3MDkgNC44MzM2NyA3LjQxOTE4IDQuNzA3MzEgNy4yOTI4MkM0LjU4MDk1IDcuMTY2NDYgNC40MjMwNCA3LjA3NjI2IDQuMjUgNy4wMzE2MkwxLjE4MjUgNi4yNDA2MkMxLjEzMDE3IDYuMjI1NzcgMS4wODQxMSA2LjE5NDI1IDEuMDUxMzEgNi4xNTA4NUMxLjAxODUxIDYuMTA3NDQgMS4wMDA3NiA2LjA1NDUzIDEuMDAwNzYgNi4wMDAxMkMxLjAwMDc2IDUuOTQ1NzIgMS4wMTg1MSA1Ljg5MjgxIDEuMDUxMzEgNS44NDk0QzEuMDg0MTEgNS44MDYgMS4xMzAxNyA1Ljc3NDQ4IDEuMTgyNSA1Ljc1OTYyTDQuMjUgNC45NjgxMkM0LjQyMjk4IDQuOTIzNTMgNC41ODA4NSA0LjgzMzQxIDQuNzA3MiA0LjcwNzE0QzQuODMzNTYgNC41ODA4OCA0LjkyMzc4IDQuNDIzMDcgNC45Njg1IDQuMjUwMTJMNS43NTk1IDEuMTgyNjJDNS43NzQyIDEuMTMwMDggNS44MDU2OSAxLjA4MzggNS44NDkxNiAxLjA1MDgyQzUuODkyNjMgMS4wMTc4NSA1Ljk0NTY5IDEgNi4wMDAyNSAxQzYuMDU0ODEgMSA2LjEwNzg3IDEuMDE3ODUgNi4xNTEzNCAxLjA1MDgyQzYuMTk0ODEgMS4wODM4IDYuMjI2MyAxLjEzMDA4IDYuMjQxIDEuMTgyNjJMNy4wMzE1IDQuMjUwMTJDNy4wNzYxNCA0LjQyMzE2IDcuMTY2MzMgNC41ODEwNyA3LjI5MjY5IDQuNzA3NDNDNy40MTkwNSA0LjgzMzc5IDcuNTc2OTYgNC45MjM5OSA3Ljc1IDQuOTY4NjJMMTAuODE3NSA1Ljc1OTEyQzEwLjg3MDMgNS43NzM2NyAxMC45MTY4IDUuODA1MTMgMTAuOTQ5OSA1Ljg0ODY2QzEwLjk4MzEgNS44OTIyIDExLjAwMSA1Ljk0NTQxIDExLjAwMSA2LjAwMDEyQzExLjAwMSA2LjA1NDg0IDEwLjk4MzEgNi4xMDgwNSAxMC45NDk5IDYuMTUxNTlDMTAuOTE2OCA2LjE5NTEyIDEwLjg3MDMgNi4yMjY1NyAxMC44MTc1IDYuMjQxMTJMNy43NSA3LjAzMTYyQzcuNTc2OTYgNy4wNzYyNiA3LjQxOTA1IDcuMTY2NDYgNy4yOTI2OSA3LjI5MjgyQzcuMTY2MzMgNy40MTkxOCA3LjA3NjE0IDcuNTc3MDkgNy4wMzE1IDcuNzUwMTJMNi4yNDA1IDEwLjgxNzZDNi4yMjU4IDEwLjg3MDIgNi4xOTQzMSAxMC45MTY1IDYuMTUwODQgMTAuOTQ5NEM2LjEwNzM3IDEwLjk4MjQgNi4wNTQzMSAxMS4wMDAyIDUuOTk5NzUgMTEuMDAwMkM1Ljk0NTE5IDExLjAwMDIgNS44OTIxMyAxMC45ODI0IDUuODQ4NjYgMTAuOTQ5NEM1LjgwNTE5IDEwLjkxNjUgNS43NzM3IDEwLjg3MDIgNS43NTkgMTAuODE3Nkw0Ljk2ODUgNy43NTAxMlpcIiBzdHJva2U9XCIjN0MzQUVEXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMTAgMS41VjMuNVwiIHN0cm9rZT1cIiM3QzNBRURcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0xMSAyLjVIOVwiIHN0cm9rZT1cIiM3QzNBRURcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0yIDguNVY5LjVcIiBzdHJva2U9XCIjN0MzQUVEXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMi41IDlIMS41XCIgc3Ryb2tlPVwiIzdDM0FFRFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPVwiY2xpcDBfNzQxNV8xMTc1MVwiPjxyZWN0IHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCJ3aGl0ZVwiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz5cbiAgICAgICAgICAgICAgICB7eyBhaUxhYmVsIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTRweF0gY3FhLWxlYWRpbmctWzIwcHhdIGNxYS1mb250LWJvbGQgY3FhLXRleHQtZGlhbG9nXCI+e3sgYWlDb3VudCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1iZy1wcmltYXJ5LXN1cmZhY2UgY3FhLXctWzJweF0gY3FhLWgtZnVsbCBjcWEtbXgtWzMuNXB4XVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTEgY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXctWzYwcHhdXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNnB4XSBjcWEtZm9udC1ib2xkIGNxYS10ZXh0LWRpYWxvZy1zZWNvbmRhcnkgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLVsycHhdXCI+XG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk05LjUgMTAuNVY5LjVDOS41IDguOTY5NTcgOS4yODkyOSA4LjQ2MDg2IDguOTE0MjEgOC4wODU3OUM4LjUzOTE0IDcuNzEwNzEgOC4wMzA0MyA3LjUgNy41IDcuNUg0LjVDMy45Njk1NyA3LjUgMy40NjA4NiA3LjcxMDcxIDMuMDg1NzkgOC4wODU3OUMyLjcxMDcxIDguNDYwODYgMi41IDguOTY5NTcgMi41IDkuNVYxMC41XCIgc3Ryb2tlPVwiIzNGNDNFRVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTYgNS41QzcuMTA0NTcgNS41IDggNC42MDQ1NyA4IDMuNUM4IDIuMzk1NDMgNy4xMDQ1NyAxLjUgNiAxLjVDNC44OTU0MyAxLjUgNCAyLjM5NTQzIDQgMy41QzQgNC42MDQ1NyA0Ljg5NTQzIDUuNSA2IDUuNVpcIiBzdHJva2U9XCIjM0Y0M0VFXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgICAgICAgICAgIHt7IGh1bWFuTGFiZWwgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMjBweF0gY3FhLWZvbnQtYm9sZCBjcWEtdGV4dC1kaWFsb2dcIj57eyBodW1hbkNvdW50IH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTZweF0gY3FhLXRleHQtZGlhbG9nLW11dGVkIGNxYS1wdC1bMnB4XSBjcWEtcGItMVwiPkNvdmVyYWdlPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIE1vYmlsZSBMYXlvdXQ6IFN0YWNrZWQgbWV0cmljcyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGF5b3V0ID09PSAnbW9iaWxlJ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTMgY3FhLW1iLTQgY3FhLXB5LTJcIiBzdHlsZT1cImJvcmRlci10b3A6IDFweCBzb2xpZCAjRjNGNEY2OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0YzRjRGNjsgYm9yZGVyLWxlZnQ6IG5vbmU7IGJvcmRlci1yaWdodDogbm9uZTtcIj5cbiAgICAgICAgPCEtLSBGaXJzdCByb3c6IFBvc2l0aXZlIC8gTmVnYXRpdmUgLyBFZGdlIENhc2UgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZ3JpZCBjcWEtZ3JpZC1jb2xzLTUgY3FhLWdhcC0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1jb2wtc3Bhbi0xIGNxYS10ZXh0LWNlbnRlciBjcWEtY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicG9zaXRpdmVDbGlja2VkLmVtaXQoKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxNnB4XSBjcWEtbGVhZGluZy1bMjRweF0gY3FhLWZvbnQtYm9sZCBjcWEtdGV4dC1bIzA1OTY2OV1cIj57eyBwb3NpdGl2ZUNvdW50IH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzExcHhdIGNxYS1sZWFkaW5nLVsxNHB4XSBjcWEtdGV4dC1kaWFsb2ctbXV0ZWRcIj57eyBwb3NpdGl2ZUxhYmVsIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1jb2wtc3Bhbi0xXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1jb2wtc3Bhbi0xIGNxYS10ZXh0LWNlbnRlciBjcWEtY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwibmVnYXRpdmVDbGlja2VkLmVtaXQoKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxNnB4XSBjcWEtbGVhZGluZy1bMjRweF0gY3FhLWZvbnQtYm9sZCBjcWEtdGV4dC1bI0VGNDQ0NF1cIj57eyBuZWdhdGl2ZUNvdW50IH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzExcHhdIGNxYS1sZWFkaW5nLVsxNHB4XSBjcWEtdGV4dC1kaWFsb2ctbXV0ZWRcIj57eyBuZWdhdGl2ZUxhYmVsIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1jb2wtc3Bhbi0xXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1jb2wtc3Bhbi0xIGNxYS10ZXh0LWNlbnRlciBjcWEtY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiZWRnZUNhc2VDbGlja2VkLmVtaXQoKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxNnB4XSBjcWEtbGVhZGluZy1bMjRweF0gY3FhLWZvbnQtYm9sZCBjcWEtdGV4dC1bI0Y1OUUwQl1cIj57eyBlZGdlQ2FzZUNvdW50IH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtWzExcHhdIGNxYS1sZWFkaW5nLVsxNHB4XSBjcWEtdGV4dC1kaWFsb2ctbXV0ZWRcIj57eyBlZGdlQ2FzZUxhYmVsIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIFNlcGFyYXRvciAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLWgtWzFweF0gY3FhLWJnLVsjRjNGNEY2XVwiPjwvZGl2PlxuICAgICAgICA8IS0tIFNlY29uZCByb3c6IEFJIC8gSHVtYW4gKGFsaWduZWQgYmV0d2VlbiBQb3NpdGl2ZS1OZWdhdGl2ZSBhbmQgTmVnYXRpdmUtRWRnZSBDYXNlKSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtNSBjcWEtZ2FwLTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWNvbC1zcGFuLTFcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWNvbC1zcGFuLTEgY3FhLXRleHQtY2VudGVyIGNxYS1jdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTEgY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTFweF0gY3FhLWxlYWRpbmctWzE0cHhdIGNxYS1mb250LWJvbGQgY3FhLXRleHQtcHJpbWFyeSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtWzJweF1cIj5cbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTBcIiBoZWlnaHQ9XCIxMFwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzc0MTVfMTE3NTEpXCI+PHBhdGggZD1cIk00Ljk2ODUgNy43NTAxMkM0LjkyMzg2IDcuNTc3MDkgNC44MzM2NyA3LjQxOTE4IDQuNzA3MzEgNy4yOTI4MkM0LjU4MDk1IDcuMTY2NDYgNC40MjMwNCA3LjA3NjI2IDQuMjUgNy4wMzE2MkwxLjE4MjUgNi4yNDA2MkMxLjEzMDE3IDYuMjI1NzcgMS4wODQxMSA2LjE5NDI1IDEuMDUxMzEgNi4xNTA4NUMxLjAxODUxIDYuMTA3NDQgMS4wMDA3NiA2LjA1NDUzIDEuMDAwNzYgNi4wMDAxMkMxLjAwMDc2IDUuOTQ1NzIgMS4wMTg1MSA1Ljg5MjgxIDEuMDUxMzEgNS44NDk0QzEuMDg0MTEgNS44MDYgMS4xMzAxNyA1Ljc3NDQ4IDEuMTgyNSA1Ljc1OTYyTDQuMjUgNC45NjgxMkM0LjQyMjk4IDQuOTIzNTMgNC41ODA4NSA0LjgzMzQxIDQuNzA3MiA0LjcwNzE0QzQuODMzNTYgNC41ODA4OCA0LjkyMzc4IDQuNDIzMDcgNC45Njg1IDQuMjUwMTJMNS43NTk1IDEuMTgyNjJDNS43NzQyIDEuMTMwMDggNS44MDU2OSAxLjA4MzggNS44NDkxNiAxLjA1MDgyQzUuODkyNjMgMS4wMTc4NSA1Ljk0NTY5IDEgNi4wMDAyNSAxQzYuMDU0ODEgMSA2LjEwNzg3IDEuMDE3ODUgNi4xNTEzNCAxLjA1MDgyQzYuMTk0ODEgMS4wODM4IDYuMjI2MyAxLjEzMDA4IDYuMjQxIDEuMTgyNjJMNy4wMzE1IDQuMjUwMTJDNy4wNzYxNCA0LjQyMzE2IDcuMTY2MzMgNC41ODEwNyA3LjI5MjY5IDQuNzA3NDNDNy40MTkwNSA0LjgzMzc5IDcuNTc2OTYgNC45MjM5OSA3Ljc1IDQuOTY4NjJMMTAuODE3NSA1Ljc1OTEyQzEwLjg3MDMgNS43NzM2NyAxMC45MTY4IDUuODA1MTMgMTAuOTQ5OSA1Ljg0ODY2QzEwLjk4MzEgNS44OTIyIDExLjAwMSA1Ljk0NTQxIDExLjAwMSA2LjAwMDEyQzExLjAwMSA2LjA1NDg0IDEwLjk4MzEgNi4xMDgwNSAxMC45NDk5IDYuMTUxNTlDMTAuOTE2OCA2LjE5NTEyIDEwLjg3MDMgNi4yMjY1NyAxMC44MTc1IDYuMjQxMTJMNy43NSA3LjAzMTYyQzcuNTc2OTYgNy4wNzYyNiA3LjQxOTA1IDcuMTY2NDYgNy4yOTI2OSA3LjI5MjgyQzcuMTY2MzMgNy40MTkxOCA3LjA3NjE0IDcuNTc3MDkgNy4wMzE1IDcuNzUwMTJMNi4yNDA1IDEwLjgxNzZDNi4yMjU4IDEwLjg3MDIgNi4xOTQzMSAxMC45MTY1IDYuMTUwODQgMTAuOTQ5NEM2LjEwNzM3IDEwLjk4MjQgNi4wNTQzMSAxMS4wMDAyIDUuOTk5NzUgMTEuMDAwMkM1Ljk0NTE5IDExLjAwMDIgNS44OTIxMyAxMC45ODI0IDUuODQ4NjYgMTAuOTQ5NEM1LjgwNTE5IDEwLjkxNjUgNS43NzM3IDEwLjg3MDIgNS43NTkgMTAuODE3Nkw0Ljk2ODUgNy43NTAxMlpcIiBzdHJva2U9XCIjN0MzQUVEXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMTAgMS41VjMuNVwiIHN0cm9rZT1cIiM3QzNBRURcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0xMSAyLjVIOVwiIHN0cm9rZT1cIiM3QzNBRURcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0yIDguNVY5LjVcIiBzdHJva2U9XCIjN0MzQUVEXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNMi41IDlIMS41XCIgc3Ryb2tlPVwiIzdDM0FFRFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPVwiY2xpcDBfNzQxNV8xMTc1MVwiPjxyZWN0IHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCJ3aGl0ZVwiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz5cbiAgICAgICAgICAgICAgICB7eyBhaUxhYmVsIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTNweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS1mb250LWJvbGQgY3FhLXRleHQtZGlhbG9nXCI+e3sgYWlDb3VudCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtY29sLXNwYW4tMVwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtY29sLXNwYW4tMSBjcWEtdGV4dC1jZW50ZXIgY3FhLWN1cnNvci1wb2ludGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMSBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMXB4XSBjcWEtbGVhZGluZy1bMTRweF0gY3FhLWZvbnQtYm9sZCBjcWEtdGV4dC1kaWFsb2ctc2Vjb25kYXJ5IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC1bMnB4XVwiPlxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMFwiIGhlaWdodD1cIjEwXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNOS41IDEwLjVWOS41QzkuNSA4Ljk2OTU3IDkuMjg5MjkgOC40NjA4NiA4LjkxNDIxIDguMDg1NzlDOC41MzkxNCA3LjcxMDcxIDguMDMwNDMgNy41IDcuNSA3LjVINC41QzMuOTY5NTcgNy41IDMuNDYwODYgNy43MTA3MSAzLjA4NTc5IDguMDg1NzlDMi43MTA3MSA4LjQ2MDg2IDIuNSA4Ljk2OTU3IDIuNSA5LjVWMTAuNVwiIHN0cm9rZT1cIiMzRjQzRUVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk02IDUuNUM3LjEwNDU3IDUuNSA4IDQuNjA0NTcgOCAzLjVDOCAyLjM5NTQzIDcuMTA0NTcgMS41IDYgMS41QzQuODk1NDMgMS41IDQgMi4zOTU0MyA0IDMuNUM0IDQuNjA0NTcgNC44OTU0MyA1LjUgNiA1LjVaXCIgc3Ryb2tlPVwiIzNGNDNFRVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgICAgICAgICAgICB7eyBodW1hbkxhYmVsIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTNweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS1mb250LWJvbGQgY3FhLXRleHQtZGlhbG9nXCI+e3sgaHVtYW5Db3VudCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtY29sLXNwYW4tMVwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBCb2R5IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yIGNxYS1tYi0zIGNxYS1mbGV4LTFcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0IG9mIGl0ZW1zXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMlwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS13LVs0NSVdIGNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTZweF0gY3FhLXRleHQtZGlhbG9nLXNlY29uZGFyeSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtc2hyaW5rLTBcIj5cbiAgICAgICAgICA8c3ZnICpuZ0lmPVwiaXQuc3RhdHVzPT0nc3VjY2VzcydcIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJjcWEtc2hyaW5rLTBcIj48cGF0aCBkPVwiTTEyLjgzMzMgNi40NjMwOVY2Ljk5OTc2QzEyLjgzMjYgOC4yNTc2NyAxMi40MjUzIDkuNDgxNjUgMTEuNjcyMSAxMC40ODkyQzEwLjkxODkgMTEuNDk2NyA5Ljg2MDI1IDEyLjIzMzcgOC42NTM5NiAxMi41OTA0QzcuNDQ3NjcgMTIuOTQ3IDYuMTU4NCAxMi45MDQyIDQuOTc4NDQgMTIuNDY4M0MzLjc5ODQ4IDEyLjAzMjMgMi43OTEwNSAxMS4yMjY2IDIuMTA2MzkgMTAuMTcxNEMxLjQyMTc0IDkuMTE2MTEgMS4wOTY1NCA3Ljg2NzggMS4xNzkzMSA2LjYxMjYxQzEuMjYyMDggNS4zNTc0MiAxLjc0ODM3IDQuMTYyNjIgMi41NjU2NiAzLjIwNjM4QzMuMzgyOTUgMi4yNTAxNSA0LjQ4NzQ2IDEuNTgzNzMgNS43MTQ0NCAxLjMwNjUxQzYuOTQxNDMgMS4wMjkyOSA4LjIyNTE1IDEuMTU2MTIgOS4zNzQxNyAxLjY2ODA5XCIgc3Ryb2tlPVwiIzEwQjk4MVwiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk01LjI1IDYuNDE2MzRMNyA4LjE2NjM0TDEyLjgzMzMgMi4zMzMwMVwiIHN0cm9rZT1cIiMxMEI5ODFcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCJpdC5zdGF0dXM9PSdlcnJvcidcIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJjcWEtc2hyaW5rLTBcIj48cGF0aCBkPVwiTTcgMTIuODMzN0MxMC4yMjE3IDEyLjgzMzcgMTIuODMzMyAxMC4yMjIgMTIuODMzMyA3LjAwMDMzQzEyLjgzMzMgMy43Nzg2NiAxMC4yMjE3IDEuMTY2OTkgNyAxLjE2Njk5QzMuNzc4MzQgMS4xNjY5OSAxLjE2NjY2IDMuNzc4NjYgMS4xNjY2NiA3LjAwMDMzQzEuMTY2NjYgMTAuMjIyIDMuNzc4MzQgMTIuODMzNyA3IDEyLjgzMzdaXCIgc3Ryb2tlPVwiI0VGNDQ0NFwiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk03IDQuNjY2OTlWNy4wMDAzM1wiIHN0cm9rZT1cIiNFRjQ0NDRcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNyA5LjMzMzAxSDcuMDA1ODNcIiBzdHJva2U9XCIjRUY0NDQ0XCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgICAgICB7eyBpdC5sYWJlbCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdy1bNDUlXSBjcWEtaC1bNnB4XSBjcWEtcm91bmRlZC1mdWxsIGNxYS1iZy1bI0YzRjRGNl0gY3FhLW92ZXJmbG93LWhpZGRlbiBjcWEtc2hyaW5rLTBcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWgtZnVsbCBjcWEtcm91bmRlZC1mdWxsXCIgW25nQ2xhc3NdPVwic3RhdHVzQ29sb3JDbGFzcyhpdClcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImZvcm1hdFBlcmNlbnQoaXQucGVyY2VudClcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNnB4XSBjcWEtZm9udC1ib2xkIGNxYS1zaHJpbmstMFwiIFtuZ0NsYXNzXT1cInRleHRDb2xvckNsYXNzKGl0KVwiPnt7XG4gICAgICAgICAgZm9ybWF0UGVyY2VudChpdC5wZXJjZW50KSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBGb290ZXIgLS0+XG4gICAgIDxjcWEtYnV0dG9uIHZhcmlhbnQ9XCJmaWxsZWRcIiBbY3VzdG9tQ2xhc3NdPVwiY3RhQnV0dG9uQ2xhc3NcIiAoY2xpY2spPVwib25BaUNvdmVyYWdlQ2xpY2soKVwiIGNsYXNzPVwiY3FhLW10LWF1dG9cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNHZW5lcmF0aW5nOyBlbHNlIGdlbmVyYXRpbmdUcGxcIj5cbiAgICAgICAgPHN2ZyAqbmdJZj1cImlzR2VuZXJhdGVkXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTIuODMzMyA2LjQ2MzA5VjYuOTk5NzZDMTIuODMyNiA4LjI1NzY3IDEyLjQyNTMgOS40ODE2NSAxMS42NzIxIDEwLjQ4OTJDMTAuOTE4OSAxMS40OTY3IDkuODYwMjUgMTIuMjMzNyA4LjY1Mzk2IDEyLjU5MDRDNy40NDc2NyAxMi45NDcgNi4xNTg0IDEyLjkwNDIgNC45Nzg0NCAxMi40NjgzQzMuNzk4NDggMTIuMDMyMyAyLjc5MTA1IDExLjIyNjYgMi4xMDYzOSAxMC4xNzE0QzEuNDIxNzQgOS4xMTYxMSAxLjA5NjU0IDcuODY3OCAxLjE3OTMxIDYuNjEyNjFDMS4yNjIwOCA1LjM1NzQyIDEuNzQ4MzcgNC4xNjI2MiAyLjU2NTY2IDMuMjA2MzhDMy4zODI5NSAyLjI1MDE1IDQuNDg3NDYgMS41ODM3MyA1LjcxNDQ0IDEuMzA2NTFDNi45NDE0MyAxLjAyOTI5IDguMjI1MTUgMS4xNTYxMiA5LjM3NDE3IDEuNjY4MDlcIiBzdHJva2U9XCIjMTBCOTgxXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTUuMjUgNi40MTYzNEw3IDguMTY2MzRMMTIuODMzMyAyLjMzMzAxXCIgc3Ryb2tlPVwiIzEwQjk4MVwiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICAgIHt7IGN0YVRleHQgfX1cbiAgICAgICAgPHN2ZyAqbmdJZj1cIiFpc0dlbmVyYXRpbmcgJiYgIWlzR2VuZXJhdGVkXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNOSAzVjE1TTMgOUgxNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgICA8c3ZnICpuZ0lmPVwiaXNHZW5lcmF0ZWRcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDE4IDE4XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPHBhdGggZD1cIk05IDNWMTVNMyA5SDE1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZ2VuZXJhdGluZ1RwbD5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtaW5saW5lLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTJcIj5cbiAgICAgICAgICA8c3ZnICpuZ0lmPVwiIWlzR2VuZXJhdGVkXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjlcIiBjeT1cIjlcIiByPVwiN1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2Utb3BhY2l0eT1cIjAuMjVcIi8+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTE2IDlhNyA3IDAgMCAxLTcgN1wiIHN0cm9rZS13aWR0aD1cIjJcIj5cbiAgICAgICAgICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT1cInRyYW5zZm9ybVwiIHR5cGU9XCJyb3RhdGVcIiBmcm9tPVwiMCA5IDlcIiB0bz1cIjM2MCA5IDlcIiBkdXI9XCIwLjhzXCIgcmVwZWF0Q291bnQ9XCJpbmRlZmluaXRlXCIvPlxuICAgICAgICAgICAgPC9wYXRoPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCJpc0dlbmVyYXRlZFwiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMTggMThcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIj5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI5XCIgY3k9XCI5XCIgcj1cIjdcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLW9wYWNpdHk9XCIwLjI1XCIvPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0xNiA5YTcgNyAwIDAgMS03IDdcIiBzdHJva2Utd2lkdGg9XCIyXCI+XG4gICAgICAgICAgICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9XCJ0cmFuc2Zvcm1cIiB0eXBlPVwicm90YXRlXCIgZnJvbT1cIjAgOSA5XCIgdG89XCIzNjAgOSA5XCIgZHVyPVwiMC44c1wiIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiLz5cbiAgICAgICAgICAgIDwvcGF0aD5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICBHZW5lcmF0aW5nXG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9jcWEtYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==