@cqa-lib/cqa-ui 1.1.181 → 1.1.183
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.
- package/esm2020/lib/add-prerequisite-cases-section/add-prerequisite-cases-section.component.mjs +176 -0
- package/esm2020/lib/execution-screen/execution-step.models.mjs +1 -1
- package/esm2020/lib/execution-screen/main-step-collapse/main-step-collapse.component.mjs +36 -4
- package/esm2020/lib/ui-kit.module.mjs +6 -1
- package/esm2020/lib/utils/tw-overlay-container.mjs +3 -2
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/cqa-lib-cqa-ui.mjs +216 -6
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +210 -6
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/add-prerequisite-cases-section/add-prerequisite-cases-section.component.d.ts +88 -0
- package/lib/execution-screen/execution-step.models.d.ts +2 -0
- package/lib/execution-screen/main-step-collapse/main-step-collapse.component.d.ts +30 -1
- package/lib/ui-kit.module.d.ts +99 -98
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/styles.css +1 -1
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { Component, Input, Output, EventEmitter, TemplateRef, ContentChild } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "
|
|
3
|
+
import * as i1 from "../../button/button.component";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
4
5
|
export class MainStepCollapseComponent {
|
|
5
6
|
constructor() {
|
|
6
7
|
this.title = 'Prerequisites';
|
|
7
8
|
this.expanded = true;
|
|
9
|
+
/** When true, "View steps" redirects to URL instead of expanding inline. URL comes from item.viewStepsUrl or getViewStepsUrl(item). */
|
|
10
|
+
this.viewStepsAsRedirect = false;
|
|
11
|
+
/** When redirecting, open link in new tab. Default true */
|
|
12
|
+
this.viewStepsOpenInNewTab = true;
|
|
8
13
|
this.viewSteps = new EventEmitter();
|
|
14
|
+
this.headerButtonClick = new EventEmitter();
|
|
9
15
|
this.isExpanded = true;
|
|
10
16
|
this.expandedItemId = null; // Track which item's steps are currently displayed
|
|
11
17
|
}
|
|
@@ -71,12 +77,28 @@ export class MainStepCollapseComponent {
|
|
|
71
77
|
// Otherwise use items length
|
|
72
78
|
return this.items?.length || 0;
|
|
73
79
|
}
|
|
80
|
+
onHeaderButtonClick(config, index, event) {
|
|
81
|
+
event.stopPropagation();
|
|
82
|
+
event.preventDefault();
|
|
83
|
+
this.headerButtonClick.emit({ config, index });
|
|
84
|
+
}
|
|
85
|
+
/** Resolves the redirect URL for an item: item.viewStepsUrl takes precedence, else getViewStepsUrl(item) */
|
|
86
|
+
getItemViewStepsUrl(item) {
|
|
87
|
+
if (item.viewStepsUrl) {
|
|
88
|
+
return item.viewStepsUrl;
|
|
89
|
+
}
|
|
90
|
+
return this.getViewStepsUrl?.(item);
|
|
91
|
+
}
|
|
92
|
+
/** Whether redirect mode is active and we have a URL for this item */
|
|
93
|
+
hasViewStepsRedirectUrl(item) {
|
|
94
|
+
return !!this.viewStepsAsRedirect && !!this.getItemViewStepsUrl(item);
|
|
95
|
+
}
|
|
74
96
|
}
|
|
75
97
|
MainStepCollapseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: MainStepCollapseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
76
|
-
MainStepCollapseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: MainStepCollapseComponent, selector: "cqa-main-step-collapse", inputs: { title: "title", items: "items", expanded: "expanded", icon: "icon", count: "count", itemContentTemplate: "itemContentTemplate" }, outputs: { viewSteps: "viewSteps" }, host: { classAttribute: "cqa-ui-root" }, queries: [{ propertyName: "itemContentTpl", first: true, predicate: ["itemContent"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<!-- Header -->\n<div\n class=\"cqa-mt-2 cqa-flex cqa-items-center cqa-justify-between cqa-gap-3 cqa-px-3 cqa-py-2 cqa-cursor-pointer cqa-bg-[#EEF2FF] cqa-rounded-[4px] cqa-border cqa-border-[#C6D2FF] cqa-border-solid\"\n (click)=\"toggle()\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-3 cqa-w-full\">\n <!-- Chevron Icon (Left) -->\n <!-- <svg [class.cqa-rotate-180]=\"isExpanded\" class=\"cqa-transition-transform\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 6L8 10L12 6\" stroke=\"#3F51B5\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg> -->\n <div><svg [class.cqa-rotate-180]=\"isExpanded\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 6L8 10L12 6\" stroke=\"#4F39F6\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg></div>\n\n <!-- Chain-Link Icon (if configured, otherwise default) -->\n <!-- <div *ngIf=\"icon && icon.type === 'folder'\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M11.6666 11.6667C11.976 11.6667 12.2728 11.5437 12.4916 11.325C12.7104 11.1062 12.8333 10.8094 12.8333 10.5V4.66667C12.8333 4.35725 12.7104 4.0605 12.4916 3.84171C12.2728 3.62292 11.976 3.5 11.6666 3.5H7.05829C6.86318 3.50191 6.67069 3.45486 6.49847 3.36314C6.32624 3.27142 6.17977 3.13797 6.07246 2.975L5.59996 2.275C5.49373 2.11369 5.34911 1.98128 5.17908 1.88965C5.00906 1.79802 4.81894 1.75003 4.62579 1.75H2.33329C2.02387 1.75 1.72713 1.87292 1.50833 2.09171C1.28954 2.3105 1.16663 2.60725 1.16663 2.91667V10.5C1.16663 10.8094 1.28954 11.1062 1.50833 11.325C1.72713 11.5437 2.02387 11.6667 2.33329 11.6667H11.6666Z\" fill=\"#EFF6FF\" stroke=\"#3F51B5\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div *ngIf=\"icon && icon.type === 'loop'\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"16\" height=\"16\" rx=\"4\" fill=\"#EBECFD\"/>\n <path d=\"M9.66663 4.66666L11 5.99999L9.66663 7.33332\" stroke=\"#3F51B5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5 7.66667V7.33333C5 6.97971 5.14048 6.64057 5.39052 6.39052C5.64057 6.14048 5.97971 6 6.33333 6H11\" stroke=\"#3F51B5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M6.33333 11.3333L5 9.99999L6.33333 8.66666\" stroke=\"#3F51B5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M11 8.33334V8.66668C11 9.0203 10.8595 9.35944 10.6095 9.60949C10.3594 9.85953 10.0203 10 9.66667 10H5\" stroke=\"#3F51B5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div> -->\n <!-- Bar Icon (Bulleted List) -->\n <div *ngIf=\"icon && icon.type === 'bar'\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <!-- First bullet and line -->\n <circle cx=\"3\" cy=\"5\" r=\"2\" fill=\"#4F39F6\"/>\n <line x1=\"7\" y1=\"5\" x2=\"17\" y2=\"5\" stroke=\"#4F39F6\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <!-- Second bullet and line -->\n <circle cx=\"3\" cy=\"10\" r=\"2\" fill=\"#4F39F6\"/>\n <line x1=\"7\" y1=\"10\" x2=\"17\" y2=\"10\" stroke=\"#4F39F6\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <!-- Third bullet and line -->\n <circle cx=\"3\" cy=\"15\" r=\"2\" fill=\"#4F39F6\"/>\n <line x1=\"7\" y1=\"15\" x2=\"17\" y2=\"15\" stroke=\"#4F39F6\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n </svg>\n </div>\n\n <!-- Default Chain-Link Icon (when no icon or icon type is not specified) -->\n <div *ngIf=\"!icon || (icon.type !== 'bar' && icon.type !== 'folder' && icon.type !== 'loop' && icon.type !== 'custom')\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.50033 14.1663H5.83366C4.72859 14.1663 3.66878 13.7274 2.88738 12.946C2.10598 12.1646 1.66699 11.1047 1.66699 9.99967C1.66699 8.89461 2.10598 7.8348 2.88738 7.0534C3.66878 6.27199 4.72859 5.83301 5.83366 5.83301H7.50033\"\n stroke=\"#4F39F6\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path\n d=\"M12.5 5.83301H14.1667C15.2717 5.83301 16.3315 6.27199 17.1129 7.0534C17.8943 7.8348 18.3333 8.89461 18.3333 9.99967C18.3333 11.1047 17.8943 12.1646 17.1129 12.946C16.3315 13.7274 15.2717 14.1663 14.1667 14.1663H12.5\"\n stroke=\"#4F39F6\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M6.66699 10H13.3337\" stroke=\"#4F39F6\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </div>\n\n <!-- Custom Icon -->\n <div *ngIf=\"icon && icon.type === 'custom' && icon.svg\" [innerHTML]=\"icon.svg\"></div>\n\n <!-- Title -->\n <span class=\"cqa-font-semibold cqa-text-[14px] cqa-leading-[17px] cqa-text-[#312C85] cqa-flex-1\">\n {{ title }}\n </span>\n\n <!-- Badge -->\n <span\n class=\"cqa-px-2 cqa-py-[2px] cqa-rounded-[4px] cqa-bg-[#C6D2FF] cqa-text-[12px] cqa-leading-[16px] cqa-text-[#432DD7]\">\n {{ getDisplayCount() }}\n </span>\n </div>\n</div>\n\n<!-- Expanded Content -->\n<div *ngIf=\"isExpanded\" class=\"cqa-mt-2 cqa-flex cqa-flex-col cqa-gap-2 cqa-px-2.5\">\n <!-- When there are no items, display ng-content directly -->\n <ng-container *ngIf=\"!items || items.length === 0\">\n <ng-content></ng-content>\n </ng-container>\n\n <!-- When items exist, display them -->\n <div *ngFor=\"let item of items\">\n\n <!-- Item Header -->\n <div class=\"cqa-bg-white cqa-border cqa-border-solid cqa-border-[#E5E5E5] cqa-rounded-md cqa-overflow-hidden\">\n <div class=\"cqa-py-2 cqa-px-3 cqa-flex cqa-items-center cqa-justify-between cqa-gap-3\">\n <!-- Left side: Status and Title -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-3 cqa-flex-1\">\n <!-- Status Icon (Filled Green Circle with Checkmark) -->\n <div>\n <!-- Success -->\n <svg *ngIf=\"item.status === 'success'\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_48_121)\">\n <path\n d=\"M10.0003 18.3337C14.6027 18.3337 18.3337 14.6027 18.3337 10.0003C18.3337 5.39795 14.6027 1.66699 10.0003 1.66699C5.39795 1.66699 1.66699 5.39795 1.66699 10.0003C1.66699 14.6027 5.39795 18.3337 10.0003 18.3337Z\"\n stroke=\"#00A63E\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M7.5 9.99967L9.16667 11.6663L12.5 8.33301\" stroke=\"#00A63E\" stroke-width=\"1.66667\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </g>\n <defs>\n <clipPath id=\"clip0_48_121\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n <!-- Failed -->\n <svg *ngIf=\"item.status === 'failed'\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"#EF4444\" />\n <path d=\"M7 7L13 13M13 7L7 13\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n <!-- Pending -->\n <svg *ngIf=\"item.status === 'pending'\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"#9CA3AF\" />\n <path d=\"M10 6V10L13 12\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n <!-- Running -->\n <svg *ngIf=\"item.status === 'running'\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"#3B82F6\" />\n <path d=\"M10 6V10L13 12\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </div>\n \n <!-- Title -->\n <span class=\"cqa-text-[14px] cqa-leading-[18px]\" style=\"word-break: break-word;\">\n {{ item.title }}\n </span>\n </div>\n \n <!-- Right side: Duration and View Steps Link -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-3\">\n <!-- Duration with Clock Icon -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-1\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\"\n stroke=\"#6A7282\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M6 3V6L8 7\" stroke=\"#6A7282\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n <span class=\"cqa-text-[14px] cqa-leading-[20px] cqa-text-[#6A7282]\">\n {{ formatDuration(item.duration) }}\n </span>\n </div>\n \n <!-- View Steps Link -->\n <a href=\"#\" (click)=\"onViewSteps(item, $event)\"\n class=\"cqa-text-[12px] cqa-leading-[15px] cqa-font-semibold cqa-text-[#3F43EE] cqa-no-underline cqa-flex cqa-items-center cqa-gap-1 hover:cqa-underline\">\n <span>{{ isItemExpanded(item.id) ? 'Hide steps' : 'View steps' }}</span>\n <svg [class.cqa-rotate-90]=\"isItemExpanded(item.id)\" class=\"cqa-transition-transform\" width=\"16\" height=\"15\"\n viewBox=\"0 0 16 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.6552 12.8184L7.55413 11.7668L10.852 8.5864H2.83984V7.05032H10.852L7.55413 3.87506L8.6552 2.81836L13.8398 7.81836L8.6552 12.8184Z\"\n fill=\"#3F43EE\" />\n </svg>\n </a>\n </div>\n </div>\n </div>\n\n <!-- Steps Content (shown when item is expanded) -->\n <div *ngIf=\"isItemExpanded(item.id)\">\n <!-- Custom template via TemplateRef (from @ContentChild or @Input) - passes item as context -->\n <ng-container *ngIf=\"itemContentTpl || itemContentTemplate\">\n <div class=\"cqa-p-3\">\n <ng-container\n *ngTemplateOutlet=\"(itemContentTpl || itemContentTemplate)!; context: { $implicit: item, item: item }\"></ng-container>\n </div>\n </ng-container>\n\n <!-- Custom content projection via ng-content - displayed for all expanded items -->\n <ng-content select=\"[itemContent]\"></ng-content>\n </div>\n </div>\n</div>\n\n<!-- Custom content projection after all items - for steps loaded after API call -->\n<ng-content select=\"[afterItems]\"></ng-content>", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
98
|
+
MainStepCollapseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: MainStepCollapseComponent, selector: "cqa-main-step-collapse", inputs: { title: "title", items: "items", expanded: "expanded", icon: "icon", count: "count", itemContentTemplate: "itemContentTemplate", headerButtons: "headerButtons", viewStepsAsRedirect: "viewStepsAsRedirect", getViewStepsUrl: "getViewStepsUrl", viewStepsOpenInNewTab: "viewStepsOpenInNewTab" }, outputs: { viewSteps: "viewSteps", headerButtonClick: "headerButtonClick" }, host: { classAttribute: "cqa-ui-root" }, queries: [{ propertyName: "itemContentTpl", first: true, predicate: ["itemContent"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<!-- Header -->\n<div\n class=\"cqa-mt-2 cqa-flex cqa-items-center cqa-justify-between cqa-gap-3 cqa-px-3 cqa-py-2 cqa-cursor-pointer cqa-bg-[#EEF2FF] cqa-rounded-[4px] cqa-border cqa-border-[#C6D2FF] cqa-border-solid\"\n (click)=\"toggle()\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-3 cqa-w-full\">\n <!-- Chevron Icon (Left) -->\n <!-- <svg [class.cqa-rotate-180]=\"isExpanded\" class=\"cqa-transition-transform\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 6L8 10L12 6\" stroke=\"#3F51B5\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg> -->\n <div><svg [class.cqa-rotate-180]=\"isExpanded\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 6L8 10L12 6\" stroke=\"#4F39F6\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg></div>\n\n <!-- Chain-Link Icon (if configured, otherwise default) -->\n <!-- <div *ngIf=\"icon && icon.type === 'folder'\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M11.6666 11.6667C11.976 11.6667 12.2728 11.5437 12.4916 11.325C12.7104 11.1062 12.8333 10.8094 12.8333 10.5V4.66667C12.8333 4.35725 12.7104 4.0605 12.4916 3.84171C12.2728 3.62292 11.976 3.5 11.6666 3.5H7.05829C6.86318 3.50191 6.67069 3.45486 6.49847 3.36314C6.32624 3.27142 6.17977 3.13797 6.07246 2.975L5.59996 2.275C5.49373 2.11369 5.34911 1.98128 5.17908 1.88965C5.00906 1.79802 4.81894 1.75003 4.62579 1.75H2.33329C2.02387 1.75 1.72713 1.87292 1.50833 2.09171C1.28954 2.3105 1.16663 2.60725 1.16663 2.91667V10.5C1.16663 10.8094 1.28954 11.1062 1.50833 11.325C1.72713 11.5437 2.02387 11.6667 2.33329 11.6667H11.6666Z\" fill=\"#EFF6FF\" stroke=\"#3F51B5\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div *ngIf=\"icon && icon.type === 'loop'\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"16\" height=\"16\" rx=\"4\" fill=\"#EBECFD\"/>\n <path d=\"M9.66663 4.66666L11 5.99999L9.66663 7.33332\" stroke=\"#3F51B5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5 7.66667V7.33333C5 6.97971 5.14048 6.64057 5.39052 6.39052C5.64057 6.14048 5.97971 6 6.33333 6H11\" stroke=\"#3F51B5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M6.33333 11.3333L5 9.99999L6.33333 8.66666\" stroke=\"#3F51B5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M11 8.33334V8.66668C11 9.0203 10.8595 9.35944 10.6095 9.60949C10.3594 9.85953 10.0203 10 9.66667 10H5\" stroke=\"#3F51B5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div> -->\n <!-- Bar Icon (Bulleted List) -->\n <div *ngIf=\"icon && icon.type === 'bar'\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <!-- First bullet and line -->\n <circle cx=\"3\" cy=\"5\" r=\"2\" fill=\"#4F39F6\"/>\n <line x1=\"7\" y1=\"5\" x2=\"17\" y2=\"5\" stroke=\"#4F39F6\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <!-- Second bullet and line -->\n <circle cx=\"3\" cy=\"10\" r=\"2\" fill=\"#4F39F6\"/>\n <line x1=\"7\" y1=\"10\" x2=\"17\" y2=\"10\" stroke=\"#4F39F6\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <!-- Third bullet and line -->\n <circle cx=\"3\" cy=\"15\" r=\"2\" fill=\"#4F39F6\"/>\n <line x1=\"7\" y1=\"15\" x2=\"17\" y2=\"15\" stroke=\"#4F39F6\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n </svg>\n </div>\n\n <!-- Default Chain-Link Icon (when no icon or icon type is not specified) -->\n <div *ngIf=\"!icon || (icon.type !== 'bar' && icon.type !== 'folder' && icon.type !== 'loop' && icon.type !== 'custom')\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.50033 14.1663H5.83366C4.72859 14.1663 3.66878 13.7274 2.88738 12.946C2.10598 12.1646 1.66699 11.1047 1.66699 9.99967C1.66699 8.89461 2.10598 7.8348 2.88738 7.0534C3.66878 6.27199 4.72859 5.83301 5.83366 5.83301H7.50033\"\n stroke=\"#4F39F6\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path\n d=\"M12.5 5.83301H14.1667C15.2717 5.83301 16.3315 6.27199 17.1129 7.0534C17.8943 7.8348 18.3333 8.89461 18.3333 9.99967C18.3333 11.1047 17.8943 12.1646 17.1129 12.946C16.3315 13.7274 15.2717 14.1663 14.1667 14.1663H12.5\"\n stroke=\"#4F39F6\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M6.66699 10H13.3337\" stroke=\"#4F39F6\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </div>\n\n <!-- Custom Icon -->\n <div *ngIf=\"icon && icon.type === 'custom' && icon.svg\" [innerHTML]=\"icon.svg\"></div>\n\n <!-- Title -->\n <span class=\"cqa-font-semibold cqa-text-[14px] cqa-leading-[17px] cqa-text-[#312C85] cqa-flex-1\">\n {{ title }}\n </span>\n\n <!-- Badge and dynamic header buttons -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\" (click)=\"$event.stopPropagation()\">\n <ng-container *ngFor=\"let btn of headerButtons; let i = index\">\n <cqa-button\n [text]=\"btn.text\"\n [icon]=\"btn.icon\"\n [variant]=\"btn.variant || 'outlined'\"\n [disabled]=\"btn.disabled\"\n [tooltip]=\"btn.tooltip\"\n [customClass]=\"btn.customClass\"\n [btnSize]=\"btn.btnSize || 'sm'\"\n (clicked)=\"onHeaderButtonClick(btn, i, $event)\">\n </cqa-button>\n </ng-container>\n <span\n class=\"cqa-px-2 cqa-py-[2px] cqa-rounded-[4px] cqa-bg-[#C6D2FF] cqa-text-[12px] cqa-leading-[16px] cqa-text-[#432DD7]\">\n {{ getDisplayCount() }}\n </span>\n </div>\n </div>\n</div>\n\n<!-- Expanded Content -->\n<div *ngIf=\"isExpanded\" class=\"cqa-mt-2 cqa-flex cqa-flex-col cqa-gap-2 cqa-px-2.5\">\n <!-- When there are no items, display ng-content directly -->\n <ng-container *ngIf=\"!items || items.length === 0\">\n <ng-content></ng-content>\n </ng-container>\n\n <!-- When items exist, display them -->\n <div *ngFor=\"let item of items\">\n\n <!-- Item Header -->\n <div class=\"cqa-bg-white cqa-border cqa-border-solid cqa-border-[#E5E5E5] cqa-rounded-md cqa-overflow-hidden\">\n <div class=\"cqa-py-2 cqa-px-3 cqa-flex cqa-items-center cqa-justify-between cqa-gap-3\">\n <!-- Left side: Status and Title -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-3 cqa-flex-1\">\n <!-- Status Icon (Filled Green Circle with Checkmark) -->\n <div>\n <!-- Success -->\n <svg *ngIf=\"item.status === 'success'\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_48_121)\">\n <path\n d=\"M10.0003 18.3337C14.6027 18.3337 18.3337 14.6027 18.3337 10.0003C18.3337 5.39795 14.6027 1.66699 10.0003 1.66699C5.39795 1.66699 1.66699 5.39795 1.66699 10.0003C1.66699 14.6027 5.39795 18.3337 10.0003 18.3337Z\"\n stroke=\"#00A63E\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M7.5 9.99967L9.16667 11.6663L12.5 8.33301\" stroke=\"#00A63E\" stroke-width=\"1.66667\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </g>\n <defs>\n <clipPath id=\"clip0_48_121\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n <!-- Failed -->\n <svg *ngIf=\"item.status === 'failed'\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"#EF4444\" />\n <path d=\"M7 7L13 13M13 7L7 13\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n <!-- Pending -->\n <svg *ngIf=\"item.status === 'pending'\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"#9CA3AF\" />\n <path d=\"M10 6V10L13 12\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n <!-- Running -->\n <svg *ngIf=\"item.status === 'running'\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"#3B82F6\" />\n <path d=\"M10 6V10L13 12\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </div>\n \n <!-- Title -->\n <span class=\"cqa-text-[14px] cqa-leading-[18px]\" style=\"word-break: break-word;\">\n {{ item.title }}\n </span>\n </div>\n \n <!-- Right side: Duration and View Steps Link -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-3\">\n <!-- Duration with Clock Icon -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-1\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\"\n stroke=\"#6A7282\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M6 3V6L8 7\" stroke=\"#6A7282\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n <span class=\"cqa-text-[14px] cqa-leading-[20px] cqa-text-[#6A7282]\">\n {{ formatDuration(item.duration) }}\n </span>\n </div>\n \n <!-- View Steps Link: redirect mode (navigates to URL) or inline mode (toggle expand) -->\n <a *ngIf=\"hasViewStepsRedirectUrl(item)\"\n [href]=\"getItemViewStepsUrl(item)\"\n [attr.target]=\"viewStepsOpenInNewTab ? '_blank' : null\"\n [attr.rel]=\"viewStepsOpenInNewTab ? 'noopener noreferrer' : null\"\n class=\"cqa-text-[12px] cqa-leading-[15px] cqa-font-semibold cqa-text-[#3F43EE] cqa-no-underline cqa-flex cqa-items-center cqa-gap-1 hover:cqa-underline\">\n <span>View steps</span>\n <svg class=\"cqa-transition-transform\" width=\"16\" height=\"15\"\n viewBox=\"0 0 16 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.6552 12.8184L7.55413 11.7668L10.852 8.5864H2.83984V7.05032H10.852L7.55413 3.87506L8.6552 2.81836L13.8398 7.81836L8.6552 12.8184Z\"\n fill=\"#3F43EE\" />\n </svg>\n </a>\n <a *ngIf=\"!hasViewStepsRedirectUrl(item)\" href=\"#\" (click)=\"onViewSteps(item, $event)\"\n class=\"cqa-text-[12px] cqa-leading-[15px] cqa-font-semibold cqa-text-[#3F43EE] cqa-no-underline cqa-flex cqa-items-center cqa-gap-1 hover:cqa-underline\">\n <span>{{ isItemExpanded(item.id) ? 'Hide steps' : 'View steps' }}</span>\n <svg [class.cqa-rotate-90]=\"isItemExpanded(item.id)\" class=\"cqa-transition-transform\" width=\"16\" height=\"15\"\n viewBox=\"0 0 16 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.6552 12.8184L7.55413 11.7668L10.852 8.5864H2.83984V7.05032H10.852L7.55413 3.87506L8.6552 2.81836L13.8398 7.81836L8.6552 12.8184Z\"\n fill=\"#3F43EE\" />\n </svg>\n </a>\n </div>\n </div>\n </div>\n\n <!-- Steps Content (shown when item is expanded) -->\n <div *ngIf=\"isItemExpanded(item.id)\">\n <!-- Custom template via TemplateRef (from @ContentChild or @Input) - passes item as context -->\n <ng-container *ngIf=\"itemContentTpl || itemContentTemplate\">\n <div class=\"cqa-p-3\">\n <ng-container\n *ngTemplateOutlet=\"(itemContentTpl || itemContentTemplate)!; context: { $implicit: item, item: item }\"></ng-container>\n </div>\n </ng-container>\n\n <!-- Custom content projection via ng-content - displayed for all expanded items -->\n <ng-content select=\"[itemContent]\"></ng-content>\n </div>\n </div>\n</div>\n\n<!-- Custom content projection after all items - for steps loaded after API call -->\n<ng-content select=\"[afterItems]\"></ng-content>", components: [{ type: i1.ButtonComponent, selector: "cqa-button", inputs: ["variant", "btnSize", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass", "inlineStyles", "tooltip", "tooltipPosition"], outputs: ["clicked"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
77
99
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: MainStepCollapseComponent, decorators: [{
|
|
78
100
|
type: Component,
|
|
79
|
-
args: [{ selector: 'cqa-main-step-collapse', host: { class: 'cqa-ui-root' }, template: "<!-- Header -->\n<div\n class=\"cqa-mt-2 cqa-flex cqa-items-center cqa-justify-between cqa-gap-3 cqa-px-3 cqa-py-2 cqa-cursor-pointer cqa-bg-[#EEF2FF] cqa-rounded-[4px] cqa-border cqa-border-[#C6D2FF] cqa-border-solid\"\n (click)=\"toggle()\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-3 cqa-w-full\">\n <!-- Chevron Icon (Left) -->\n <!-- <svg [class.cqa-rotate-180]=\"isExpanded\" class=\"cqa-transition-transform\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 6L8 10L12 6\" stroke=\"#3F51B5\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg> -->\n <div><svg [class.cqa-rotate-180]=\"isExpanded\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 6L8 10L12 6\" stroke=\"#4F39F6\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg></div>\n\n <!-- Chain-Link Icon (if configured, otherwise default) -->\n <!-- <div *ngIf=\"icon && icon.type === 'folder'\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M11.6666 11.6667C11.976 11.6667 12.2728 11.5437 12.4916 11.325C12.7104 11.1062 12.8333 10.8094 12.8333 10.5V4.66667C12.8333 4.35725 12.7104 4.0605 12.4916 3.84171C12.2728 3.62292 11.976 3.5 11.6666 3.5H7.05829C6.86318 3.50191 6.67069 3.45486 6.49847 3.36314C6.32624 3.27142 6.17977 3.13797 6.07246 2.975L5.59996 2.275C5.49373 2.11369 5.34911 1.98128 5.17908 1.88965C5.00906 1.79802 4.81894 1.75003 4.62579 1.75H2.33329C2.02387 1.75 1.72713 1.87292 1.50833 2.09171C1.28954 2.3105 1.16663 2.60725 1.16663 2.91667V10.5C1.16663 10.8094 1.28954 11.1062 1.50833 11.325C1.72713 11.5437 2.02387 11.6667 2.33329 11.6667H11.6666Z\" fill=\"#EFF6FF\" stroke=\"#3F51B5\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div *ngIf=\"icon && icon.type === 'loop'\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"16\" height=\"16\" rx=\"4\" fill=\"#EBECFD\"/>\n <path d=\"M9.66663 4.66666L11 5.99999L9.66663 7.33332\" stroke=\"#3F51B5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5 7.66667V7.33333C5 6.97971 5.14048 6.64057 5.39052 6.39052C5.64057 6.14048 5.97971 6 6.33333 6H11\" stroke=\"#3F51B5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M6.33333 11.3333L5 9.99999L6.33333 8.66666\" stroke=\"#3F51B5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M11 8.33334V8.66668C11 9.0203 10.8595 9.35944 10.6095 9.60949C10.3594 9.85953 10.0203 10 9.66667 10H5\" stroke=\"#3F51B5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div> -->\n <!-- Bar Icon (Bulleted List) -->\n <div *ngIf=\"icon && icon.type === 'bar'\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <!-- First bullet and line -->\n <circle cx=\"3\" cy=\"5\" r=\"2\" fill=\"#4F39F6\"/>\n <line x1=\"7\" y1=\"5\" x2=\"17\" y2=\"5\" stroke=\"#4F39F6\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <!-- Second bullet and line -->\n <circle cx=\"3\" cy=\"10\" r=\"2\" fill=\"#4F39F6\"/>\n <line x1=\"7\" y1=\"10\" x2=\"17\" y2=\"10\" stroke=\"#4F39F6\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <!-- Third bullet and line -->\n <circle cx=\"3\" cy=\"15\" r=\"2\" fill=\"#4F39F6\"/>\n <line x1=\"7\" y1=\"15\" x2=\"17\" y2=\"15\" stroke=\"#4F39F6\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n </svg>\n </div>\n\n <!-- Default Chain-Link Icon (when no icon or icon type is not specified) -->\n <div *ngIf=\"!icon || (icon.type !== 'bar' && icon.type !== 'folder' && icon.type !== 'loop' && icon.type !== 'custom')\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.50033 14.1663H5.83366C4.72859 14.1663 3.66878 13.7274 2.88738 12.946C2.10598 12.1646 1.66699 11.1047 1.66699 9.99967C1.66699 8.89461 2.10598 7.8348 2.88738 7.0534C3.66878 6.27199 4.72859 5.83301 5.83366 5.83301H7.50033\"\n stroke=\"#4F39F6\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path\n d=\"M12.5 5.83301H14.1667C15.2717 5.83301 16.3315 6.27199 17.1129 7.0534C17.8943 7.8348 18.3333 8.89461 18.3333 9.99967C18.3333 11.1047 17.8943 12.1646 17.1129 12.946C16.3315 13.7274 15.2717 14.1663 14.1667 14.1663H12.5\"\n stroke=\"#4F39F6\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M6.66699 10H13.3337\" stroke=\"#4F39F6\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </div>\n\n <!-- Custom Icon -->\n <div *ngIf=\"icon && icon.type === 'custom' && icon.svg\" [innerHTML]=\"icon.svg\"></div>\n\n <!-- Title -->\n <span class=\"cqa-font-semibold cqa-text-[14px] cqa-leading-[17px] cqa-text-[#312C85] cqa-flex-1\">\n {{ title }}\n </span>\n\n <!-- Badge -->\n <span\n class=\"cqa-px-2 cqa-py-[2px] cqa-rounded-[4px] cqa-bg-[#C6D2FF] cqa-text-[12px] cqa-leading-[16px] cqa-text-[#432DD7]\">\n {{ getDisplayCount() }}\n </span>\n </div>\n</div>\n\n<!-- Expanded Content -->\n<div *ngIf=\"isExpanded\" class=\"cqa-mt-2 cqa-flex cqa-flex-col cqa-gap-2 cqa-px-2.5\">\n <!-- When there are no items, display ng-content directly -->\n <ng-container *ngIf=\"!items || items.length === 0\">\n <ng-content></ng-content>\n </ng-container>\n\n <!-- When items exist, display them -->\n <div *ngFor=\"let item of items\">\n\n <!-- Item Header -->\n <div class=\"cqa-bg-white cqa-border cqa-border-solid cqa-border-[#E5E5E5] cqa-rounded-md cqa-overflow-hidden\">\n <div class=\"cqa-py-2 cqa-px-3 cqa-flex cqa-items-center cqa-justify-between cqa-gap-3\">\n <!-- Left side: Status and Title -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-3 cqa-flex-1\">\n <!-- Status Icon (Filled Green Circle with Checkmark) -->\n <div>\n <!-- Success -->\n <svg *ngIf=\"item.status === 'success'\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_48_121)\">\n <path\n d=\"M10.0003 18.3337C14.6027 18.3337 18.3337 14.6027 18.3337 10.0003C18.3337 5.39795 14.6027 1.66699 10.0003 1.66699C5.39795 1.66699 1.66699 5.39795 1.66699 10.0003C1.66699 14.6027 5.39795 18.3337 10.0003 18.3337Z\"\n stroke=\"#00A63E\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M7.5 9.99967L9.16667 11.6663L12.5 8.33301\" stroke=\"#00A63E\" stroke-width=\"1.66667\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </g>\n <defs>\n <clipPath id=\"clip0_48_121\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n <!-- Failed -->\n <svg *ngIf=\"item.status === 'failed'\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"#EF4444\" />\n <path d=\"M7 7L13 13M13 7L7 13\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n <!-- Pending -->\n <svg *ngIf=\"item.status === 'pending'\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"#9CA3AF\" />\n <path d=\"M10 6V10L13 12\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n <!-- Running -->\n <svg *ngIf=\"item.status === 'running'\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"#3B82F6\" />\n <path d=\"M10 6V10L13 12\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </div>\n \n <!-- Title -->\n <span class=\"cqa-text-[14px] cqa-leading-[18px]\" style=\"word-break: break-word;\">\n {{ item.title }}\n </span>\n </div>\n \n <!-- Right side: Duration and View Steps Link -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-3\">\n <!-- Duration with Clock Icon -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-1\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\"\n stroke=\"#6A7282\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M6 3V6L8 7\" stroke=\"#6A7282\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n <span class=\"cqa-text-[14px] cqa-leading-[20px] cqa-text-[#6A7282]\">\n {{ formatDuration(item.duration) }}\n </span>\n </div>\n \n <!-- View Steps Link -->\n <a href=\"#\" (click)=\"onViewSteps(item, $event)\"\n class=\"cqa-text-[12px] cqa-leading-[15px] cqa-font-semibold cqa-text-[#3F43EE] cqa-no-underline cqa-flex cqa-items-center cqa-gap-1 hover:cqa-underline\">\n <span>{{ isItemExpanded(item.id) ? 'Hide steps' : 'View steps' }}</span>\n <svg [class.cqa-rotate-90]=\"isItemExpanded(item.id)\" class=\"cqa-transition-transform\" width=\"16\" height=\"15\"\n viewBox=\"0 0 16 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.6552 12.8184L7.55413 11.7668L10.852 8.5864H2.83984V7.05032H10.852L7.55413 3.87506L8.6552 2.81836L13.8398 7.81836L8.6552 12.8184Z\"\n fill=\"#3F43EE\" />\n </svg>\n </a>\n </div>\n </div>\n </div>\n\n <!-- Steps Content (shown when item is expanded) -->\n <div *ngIf=\"isItemExpanded(item.id)\">\n <!-- Custom template via TemplateRef (from @ContentChild or @Input) - passes item as context -->\n <ng-container *ngIf=\"itemContentTpl || itemContentTemplate\">\n <div class=\"cqa-p-3\">\n <ng-container\n *ngTemplateOutlet=\"(itemContentTpl || itemContentTemplate)!; context: { $implicit: item, item: item }\"></ng-container>\n </div>\n </ng-container>\n\n <!-- Custom content projection via ng-content - displayed for all expanded items -->\n <ng-content select=\"[itemContent]\"></ng-content>\n </div>\n </div>\n</div>\n\n<!-- Custom content projection after all items - for steps loaded after API call -->\n<ng-content select=\"[afterItems]\"></ng-content>", styles: [] }]
|
|
101
|
+
args: [{ selector: 'cqa-main-step-collapse', host: { class: 'cqa-ui-root' }, template: "<!-- Header -->\n<div\n class=\"cqa-mt-2 cqa-flex cqa-items-center cqa-justify-between cqa-gap-3 cqa-px-3 cqa-py-2 cqa-cursor-pointer cqa-bg-[#EEF2FF] cqa-rounded-[4px] cqa-border cqa-border-[#C6D2FF] cqa-border-solid\"\n (click)=\"toggle()\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-3 cqa-w-full\">\n <!-- Chevron Icon (Left) -->\n <!-- <svg [class.cqa-rotate-180]=\"isExpanded\" class=\"cqa-transition-transform\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 6L8 10L12 6\" stroke=\"#3F51B5\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg> -->\n <div><svg [class.cqa-rotate-180]=\"isExpanded\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 6L8 10L12 6\" stroke=\"#4F39F6\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg></div>\n\n <!-- Chain-Link Icon (if configured, otherwise default) -->\n <!-- <div *ngIf=\"icon && icon.type === 'folder'\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M11.6666 11.6667C11.976 11.6667 12.2728 11.5437 12.4916 11.325C12.7104 11.1062 12.8333 10.8094 12.8333 10.5V4.66667C12.8333 4.35725 12.7104 4.0605 12.4916 3.84171C12.2728 3.62292 11.976 3.5 11.6666 3.5H7.05829C6.86318 3.50191 6.67069 3.45486 6.49847 3.36314C6.32624 3.27142 6.17977 3.13797 6.07246 2.975L5.59996 2.275C5.49373 2.11369 5.34911 1.98128 5.17908 1.88965C5.00906 1.79802 4.81894 1.75003 4.62579 1.75H2.33329C2.02387 1.75 1.72713 1.87292 1.50833 2.09171C1.28954 2.3105 1.16663 2.60725 1.16663 2.91667V10.5C1.16663 10.8094 1.28954 11.1062 1.50833 11.325C1.72713 11.5437 2.02387 11.6667 2.33329 11.6667H11.6666Z\" fill=\"#EFF6FF\" stroke=\"#3F51B5\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div *ngIf=\"icon && icon.type === 'loop'\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"16\" height=\"16\" rx=\"4\" fill=\"#EBECFD\"/>\n <path d=\"M9.66663 4.66666L11 5.99999L9.66663 7.33332\" stroke=\"#3F51B5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5 7.66667V7.33333C5 6.97971 5.14048 6.64057 5.39052 6.39052C5.64057 6.14048 5.97971 6 6.33333 6H11\" stroke=\"#3F51B5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M6.33333 11.3333L5 9.99999L6.33333 8.66666\" stroke=\"#3F51B5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M11 8.33334V8.66668C11 9.0203 10.8595 9.35944 10.6095 9.60949C10.3594 9.85953 10.0203 10 9.66667 10H5\" stroke=\"#3F51B5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div> -->\n <!-- Bar Icon (Bulleted List) -->\n <div *ngIf=\"icon && icon.type === 'bar'\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <!-- First bullet and line -->\n <circle cx=\"3\" cy=\"5\" r=\"2\" fill=\"#4F39F6\"/>\n <line x1=\"7\" y1=\"5\" x2=\"17\" y2=\"5\" stroke=\"#4F39F6\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <!-- Second bullet and line -->\n <circle cx=\"3\" cy=\"10\" r=\"2\" fill=\"#4F39F6\"/>\n <line x1=\"7\" y1=\"10\" x2=\"17\" y2=\"10\" stroke=\"#4F39F6\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <!-- Third bullet and line -->\n <circle cx=\"3\" cy=\"15\" r=\"2\" fill=\"#4F39F6\"/>\n <line x1=\"7\" y1=\"15\" x2=\"17\" y2=\"15\" stroke=\"#4F39F6\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n </svg>\n </div>\n\n <!-- Default Chain-Link Icon (when no icon or icon type is not specified) -->\n <div *ngIf=\"!icon || (icon.type !== 'bar' && icon.type !== 'folder' && icon.type !== 'loop' && icon.type !== 'custom')\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.50033 14.1663H5.83366C4.72859 14.1663 3.66878 13.7274 2.88738 12.946C2.10598 12.1646 1.66699 11.1047 1.66699 9.99967C1.66699 8.89461 2.10598 7.8348 2.88738 7.0534C3.66878 6.27199 4.72859 5.83301 5.83366 5.83301H7.50033\"\n stroke=\"#4F39F6\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path\n d=\"M12.5 5.83301H14.1667C15.2717 5.83301 16.3315 6.27199 17.1129 7.0534C17.8943 7.8348 18.3333 8.89461 18.3333 9.99967C18.3333 11.1047 17.8943 12.1646 17.1129 12.946C16.3315 13.7274 15.2717 14.1663 14.1667 14.1663H12.5\"\n stroke=\"#4F39F6\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M6.66699 10H13.3337\" stroke=\"#4F39F6\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </div>\n\n <!-- Custom Icon -->\n <div *ngIf=\"icon && icon.type === 'custom' && icon.svg\" [innerHTML]=\"icon.svg\"></div>\n\n <!-- Title -->\n <span class=\"cqa-font-semibold cqa-text-[14px] cqa-leading-[17px] cqa-text-[#312C85] cqa-flex-1\">\n {{ title }}\n </span>\n\n <!-- Badge and dynamic header buttons -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\" (click)=\"$event.stopPropagation()\">\n <ng-container *ngFor=\"let btn of headerButtons; let i = index\">\n <cqa-button\n [text]=\"btn.text\"\n [icon]=\"btn.icon\"\n [variant]=\"btn.variant || 'outlined'\"\n [disabled]=\"btn.disabled\"\n [tooltip]=\"btn.tooltip\"\n [customClass]=\"btn.customClass\"\n [btnSize]=\"btn.btnSize || 'sm'\"\n (clicked)=\"onHeaderButtonClick(btn, i, $event)\">\n </cqa-button>\n </ng-container>\n <span\n class=\"cqa-px-2 cqa-py-[2px] cqa-rounded-[4px] cqa-bg-[#C6D2FF] cqa-text-[12px] cqa-leading-[16px] cqa-text-[#432DD7]\">\n {{ getDisplayCount() }}\n </span>\n </div>\n </div>\n</div>\n\n<!-- Expanded Content -->\n<div *ngIf=\"isExpanded\" class=\"cqa-mt-2 cqa-flex cqa-flex-col cqa-gap-2 cqa-px-2.5\">\n <!-- When there are no items, display ng-content directly -->\n <ng-container *ngIf=\"!items || items.length === 0\">\n <ng-content></ng-content>\n </ng-container>\n\n <!-- When items exist, display them -->\n <div *ngFor=\"let item of items\">\n\n <!-- Item Header -->\n <div class=\"cqa-bg-white cqa-border cqa-border-solid cqa-border-[#E5E5E5] cqa-rounded-md cqa-overflow-hidden\">\n <div class=\"cqa-py-2 cqa-px-3 cqa-flex cqa-items-center cqa-justify-between cqa-gap-3\">\n <!-- Left side: Status and Title -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-3 cqa-flex-1\">\n <!-- Status Icon (Filled Green Circle with Checkmark) -->\n <div>\n <!-- Success -->\n <svg *ngIf=\"item.status === 'success'\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_48_121)\">\n <path\n d=\"M10.0003 18.3337C14.6027 18.3337 18.3337 14.6027 18.3337 10.0003C18.3337 5.39795 14.6027 1.66699 10.0003 1.66699C5.39795 1.66699 1.66699 5.39795 1.66699 10.0003C1.66699 14.6027 5.39795 18.3337 10.0003 18.3337Z\"\n stroke=\"#00A63E\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M7.5 9.99967L9.16667 11.6663L12.5 8.33301\" stroke=\"#00A63E\" stroke-width=\"1.66667\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </g>\n <defs>\n <clipPath id=\"clip0_48_121\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n <!-- Failed -->\n <svg *ngIf=\"item.status === 'failed'\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"#EF4444\" />\n <path d=\"M7 7L13 13M13 7L7 13\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n <!-- Pending -->\n <svg *ngIf=\"item.status === 'pending'\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"#9CA3AF\" />\n <path d=\"M10 6V10L13 12\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n <!-- Running -->\n <svg *ngIf=\"item.status === 'running'\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"10\" cy=\"10\" r=\"8\" fill=\"#3B82F6\" />\n <path d=\"M10 6V10L13 12\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </div>\n \n <!-- Title -->\n <span class=\"cqa-text-[14px] cqa-leading-[18px]\" style=\"word-break: break-word;\">\n {{ item.title }}\n </span>\n </div>\n \n <!-- Right side: Duration and View Steps Link -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-3\">\n <!-- Duration with Clock Icon -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-1\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\"\n stroke=\"#6A7282\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M6 3V6L8 7\" stroke=\"#6A7282\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n <span class=\"cqa-text-[14px] cqa-leading-[20px] cqa-text-[#6A7282]\">\n {{ formatDuration(item.duration) }}\n </span>\n </div>\n \n <!-- View Steps Link: redirect mode (navigates to URL) or inline mode (toggle expand) -->\n <a *ngIf=\"hasViewStepsRedirectUrl(item)\"\n [href]=\"getItemViewStepsUrl(item)\"\n [attr.target]=\"viewStepsOpenInNewTab ? '_blank' : null\"\n [attr.rel]=\"viewStepsOpenInNewTab ? 'noopener noreferrer' : null\"\n class=\"cqa-text-[12px] cqa-leading-[15px] cqa-font-semibold cqa-text-[#3F43EE] cqa-no-underline cqa-flex cqa-items-center cqa-gap-1 hover:cqa-underline\">\n <span>View steps</span>\n <svg class=\"cqa-transition-transform\" width=\"16\" height=\"15\"\n viewBox=\"0 0 16 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.6552 12.8184L7.55413 11.7668L10.852 8.5864H2.83984V7.05032H10.852L7.55413 3.87506L8.6552 2.81836L13.8398 7.81836L8.6552 12.8184Z\"\n fill=\"#3F43EE\" />\n </svg>\n </a>\n <a *ngIf=\"!hasViewStepsRedirectUrl(item)\" href=\"#\" (click)=\"onViewSteps(item, $event)\"\n class=\"cqa-text-[12px] cqa-leading-[15px] cqa-font-semibold cqa-text-[#3F43EE] cqa-no-underline cqa-flex cqa-items-center cqa-gap-1 hover:cqa-underline\">\n <span>{{ isItemExpanded(item.id) ? 'Hide steps' : 'View steps' }}</span>\n <svg [class.cqa-rotate-90]=\"isItemExpanded(item.id)\" class=\"cqa-transition-transform\" width=\"16\" height=\"15\"\n viewBox=\"0 0 16 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.6552 12.8184L7.55413 11.7668L10.852 8.5864H2.83984V7.05032H10.852L7.55413 3.87506L8.6552 2.81836L13.8398 7.81836L8.6552 12.8184Z\"\n fill=\"#3F43EE\" />\n </svg>\n </a>\n </div>\n </div>\n </div>\n\n <!-- Steps Content (shown when item is expanded) -->\n <div *ngIf=\"isItemExpanded(item.id)\">\n <!-- Custom template via TemplateRef (from @ContentChild or @Input) - passes item as context -->\n <ng-container *ngIf=\"itemContentTpl || itemContentTemplate\">\n <div class=\"cqa-p-3\">\n <ng-container\n *ngTemplateOutlet=\"(itemContentTpl || itemContentTemplate)!; context: { $implicit: item, item: item }\"></ng-container>\n </div>\n </ng-container>\n\n <!-- Custom content projection via ng-content - displayed for all expanded items -->\n <ng-content select=\"[itemContent]\"></ng-content>\n </div>\n </div>\n</div>\n\n<!-- Custom content projection after all items - for steps loaded after API call -->\n<ng-content select=\"[afterItems]\"></ng-content>", styles: [] }]
|
|
80
102
|
}], propDecorators: { title: [{
|
|
81
103
|
type: Input
|
|
82
104
|
}], items: [{
|
|
@@ -89,10 +111,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
89
111
|
type: Input
|
|
90
112
|
}], itemContentTemplate: [{
|
|
91
113
|
type: Input
|
|
114
|
+
}], headerButtons: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}], viewStepsAsRedirect: [{
|
|
117
|
+
type: Input
|
|
118
|
+
}], getViewStepsUrl: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], viewStepsOpenInNewTab: [{
|
|
121
|
+
type: Input
|
|
92
122
|
}], itemContentTpl: [{
|
|
93
123
|
type: ContentChild,
|
|
94
124
|
args: ['itemContent', { read: TemplateRef }]
|
|
95
125
|
}], viewSteps: [{
|
|
96
126
|
type: Output
|
|
127
|
+
}], headerButtonClick: [{
|
|
128
|
+
type: Output
|
|
97
129
|
}] } });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1zdGVwLWNvbGxhcHNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9tYWluLXN0ZXAtY29sbGFwc2UvbWFpbi1zdGVwLWNvbGxhcHNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9tYWluLXN0ZXAtY29sbGFwc2UvbWFpbi1zdGVwLWNvbGxhcHNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBZ0IxRyxNQUFNLE9BQU8seUJBQXlCO0lBTnRDO1FBT1csVUFBSyxHQUFXLGVBQWUsQ0FBQztRQUVoQyxhQUFRLEdBQVksSUFBSSxDQUFDO1FBS3hCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUUzRCxlQUFVLEdBQVksSUFBSSxDQUFDO1FBQzNCLG1CQUFjLEdBQWtCLElBQUksQ0FBQyxDQUFDLG1EQUFtRDtLQTJFMUY7SUF6RUMsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBZTtRQUM1QixJQUFJLE9BQU8sR0FBRyxDQUFDLEVBQUU7WUFDZixPQUFPLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDM0M7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FB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O3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJlcmVxdWlzaXRlSXRlbSwgU3RlcFN0YXR1cyB9IGZyb20gJy4uL2V4ZWN1dGlvbi1zdGVwLm1vZGVscyc7XG5cbmV4cG9ydCB0eXBlIEljb25UeXBlID0gJ2ZvbGRlcicgfCAnbG9vcCcgfCAnYmFyJyB8ICdjdXN0b20nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEljb25Db25maWcge1xuICB0eXBlOiBJY29uVHlwZTtcbiAgc3ZnPzogc3RyaW5nOyAvLyBDdXN0b20gU1ZHIHN0cmluZyB3aGVuIHR5cGUgaXMgJ2N1c3RvbSdcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLW1haW4tc3RlcC1jb2xsYXBzZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYWluLXN0ZXAtY29sbGFwc2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnIH1cbn0pXG5leHBvcnQgY2xhc3MgTWFpblN0ZXBDb2xsYXBzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnUHJlcmVxdWlzaXRlcyc7XG4gIEBJbnB1dCgpIGl0ZW1zITogUHJlcmVxdWlzaXRlSXRlbVtdO1xuICBASW5wdXQoKSBleHBhbmRlZDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGljb24/OiBJY29uQ29uZmlnO1xuICBASW5wdXQoKSBjb3VudD86IG51bWJlcjsgLy8gQ291bnQgdG8gZGlzcGxheSB3aGVuIGl0ZW1zIGFycmF5IGlzIGVtcHR5XG4gIEBJbnB1dCgpIGl0ZW1Db250ZW50VGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+OyAvLyBUZW1wbGF0ZSBmb3IgY3VzdG9tIGNvbnRlbnQgdW5kZXIgc3RlcHMgKHByb2dyYW1tYXRpYylcbiAgQENvbnRlbnRDaGlsZCgnaXRlbUNvbnRlbnQnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGl0ZW1Db250ZW50VHBsPzogVGVtcGxhdGVSZWY8YW55PjsgLy8gVGVtcGxhdGUgcmVmZXJlbmNlIGZyb20gbmctdGVtcGxhdGVcbiAgQE91dHB1dCgpIHZpZXdTdGVwcyA9IG5ldyBFdmVudEVtaXR0ZXI8UHJlcmVxdWlzaXRlSXRlbT4oKTtcblxuICBpc0V4cGFuZGVkOiBib29sZWFuID0gdHJ1ZTtcbiAgZXhwYW5kZWRJdGVtSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsOyAvLyBUcmFjayB3aGljaCBpdGVtJ3Mgc3RlcHMgYXJlIGN1cnJlbnRseSBkaXNwbGF5ZWRcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSB0aGlzLmV4cGFuZGVkO1xuICB9XG5cbiAgdG9nZ2xlKCk6IHZvaWQge1xuICAgIHRoaXMuaXNFeHBhbmRlZCA9ICF0aGlzLmlzRXhwYW5kZWQ7XG4gIH1cblxuICBmb3JtYXREdXJhdGlvbihzZWNvbmRzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmIChzZWNvbmRzIDwgMSkge1xuICAgICAgcmV0dXJuIGAkeyhzZWNvbmRzICogMTAwMCkudG9GaXhlZCgwKX1tc2A7XG4gICAgfVxuXG4gICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKHNlY29uZHMgLyAzNjAwKTtcbiAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcigoc2Vjb25kcyAlIDM2MDApIC8gNjApO1xuICAgIGNvbnN0IHNlY3MgPSBNYXRoLmZsb29yKHNlY29uZHMgJSA2MCk7XG5cbiAgICBjb25zdCBwYXJ0czogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmIChob3VycyA+IDApIHtcbiAgICAgIHBhcnRzLnB1c2goYCR7aG91cnN9aGApO1xuICAgIH1cbiAgICBpZiAobWludXRlcyA+IDApIHtcbiAgICAgIHBhcnRzLnB1c2goYCR7bWludXRlc31tYCk7XG4gICAgfVxuICAgIGlmIChzZWNzID4gMCB8fCAoaG91cnMgPT09IDAgJiYgbWludXRlcyA9PT0gMCkpIHtcbiAgICAgIHBhcnRzLnB1c2goYCR7c2Vjc31zYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJyAnKTtcbiAgfVxuICBnZXRTdGF0dXNJY29uKHN0YXR1czogU3RlcFN0YXR1cyk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICByZXR1cm4gJ2NoZWNrX2NpcmNsZSc7XG4gICAgICBjYXNlICdmYWlsZWQnOlxuICAgICAgICByZXR1cm4gJ2NhbmNlbCc7XG4gICAgICBjYXNlICdwZW5kaW5nJzpcbiAgICAgICAgcmV0dXJuICdzY2hlZHVsZSc7XG4gICAgICBjYXNlICdydW5uaW5nJzpcbiAgICAgICAgcmV0dXJuICdzeW5jJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnaGVscF9vdXRsaW5lJztcbiAgICB9XG4gIH1cblxuXG4gIG9uVmlld1N0ZXBzKGl0ZW06IFByZXJlcXVpc2l0ZUl0ZW0sIGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgXG4gICAgLy8gQWNjb3JkaW9uIGJlaGF2aW9yOiBpZiBjbGlja2luZyB0aGUgc2FtZSBpdGVtLCBjbG9zZSBpdDsgb3RoZXJ3aXNlLCBjbG9zZSBwcmV2aW91cyBhbmQgb3BlbiBuZXcgb25lXG4gICAgaWYgKHRoaXMuZXhwYW5kZWRJdGVtSWQgPT09IGl0ZW0uaWQpIHtcbiAgICAgIHRoaXMuZXhwYW5kZWRJdGVtSWQgPSBudWxsOyAvLyBDbG9zZSBpZiBhbHJlYWR5IG9wZW5cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5leHBhbmRlZEl0ZW1JZCA9IGl0ZW0uaWQ7IC8vIE9wZW4gdGhlIGNsaWNrZWQgaXRlbSAoY2xvc2VzIHByZXZpb3VzIGF1dG9tYXRpY2FsbHkpXG4gICAgfVxuICAgIFxuICAgIHRoaXMudmlld1N0ZXBzLmVtaXQoaXRlbSk7XG4gIH1cblxuICBpc0l0ZW1FeHBhbmRlZChpdGVtSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmV4cGFuZGVkSXRlbUlkID09PSBpdGVtSWQ7XG4gIH1cblxuICBnZXREaXNwbGF5Q291bnQoKTogbnVtYmVyIHtcbiAgICAvLyBJZiBpdGVtcyBpcyBlbXB0eS91bmRlZmluZWQgYW5kIGNvdW50IGlzIHByb3ZpZGVkLCB1c2UgY291bnRcbiAgICBpZiAoKCF0aGlzLml0ZW1zIHx8IHRoaXMuaXRlbXMubGVuZ3RoID09PSAwKSAmJiB0aGlzLmNvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvdW50O1xuICAgIH1cbiAgICAvLyBPdGhlcndpc2UgdXNlIGl0ZW1zIGxlbmd0aFxuICAgIHJldHVybiB0aGlzLml0ZW1zPy5sZW5ndGggfHwgMDtcbiAgfVxufVxuIiwiPCEtLSBIZWFkZXIgLS0+XG48ZGl2XG4gIGNsYXNzPVwiY3FhLW10LTIgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1nYXAtMyBjcWEtcHgtMyBjcWEtcHktMiBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLWJnLVsjRUVGMkZGXSBjcWEtcm91bmRlZC1bNHB4XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItWyNDNkQyRkZdIGNxYS1ib3JkZXItc29saWRcIlxuICAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0zIGNxYS13LWZ1bGxcIj5cbiAgICA8IS0tIENoZXZyb24gSWNvbiAoTGVmdCkgLS0+XG4gICAgPCEtLSA8c3ZnIFtjbGFzcy5jcWEtcm90YXRlLTE4MF09XCJpc0V4cGFuZGVkXCIgY2xhc3M9XCJjcWEtdHJhbnNpdGlvbi10cmFuc2Zvcm1cIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgPHBhdGggZD1cIk00IDZMOCAxMEwxMiA2XCIgc3Ryb2tlPVwiIzNGNTFCNVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgPC9zdmc+IC0tPlxuICAgIDxkaXY+PHN2ZyBbY2xhc3MuY3FhLXJvdGF0ZS0xODBdPVwiaXNFeHBhbmRlZFwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgPHBhdGggZD1cIk00IDZMOCAxMEwxMiA2XCIgc3Ryb2tlPVwiIzRGMzlGNlwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICA8L3N2Zz48L2Rpdj5cblxuICAgIDwhLS0gQ2hhaW4tTGluayBJY29uIChpZiBjb25maWd1cmVkLCBvdGhlcndpc2UgZGVmYXVsdCkgLS0+XG4gICAgPCEtLSA8ZGl2ICpuZ0lmPVwiaWNvbiAmJiBpY29uLnR5cGUgPT09ICdmb2xkZXInXCI+XG4gICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8cGF0aCBkPVwiTTExLjY2NjYgMTEuNjY2N0MxMS45NzYgMTEuNjY2NyAxMi4yNzI4IDExLjU0MzcgMTIuNDkxNiAxMS4zMjVDMTIuNzEwNCAxMS4xMDYyIDEyLjgzMzMgMTAuODA5NCAxMi44MzMzIDEwLjVWNC42NjY2N0MxMi44MzMzIDQuMzU3MjUgMTIuNzEwNCA0LjA2MDUgMTIuNDkxNiAzLjg0MTcxQzEyLjI3MjggMy42MjI5MiAxMS45NzYgMy41IDExLjY2NjYgMy41SDcuMDU4MjlDNi44NjMxOCAzLjUwMTkxIDYuNjcwNjkgMy40NTQ4NiA2LjQ5ODQ3IDMuMzYzMTRDNi4zMjYyNCAzLjI3MTQyIDYuMTc5NzcgMy4xMzc5NyA2LjA3MjQ2IDIuOTc1TDUuNTk5OTYgMi4yNzVDNS40OTM3MyAyLjExMzY5IDUuMzQ5MTEgMS45ODEyOCA1LjE3OTA4IDEuODg5NjVDNS4wMDkwNiAxLjc5ODAyIDQuODE4OTQgMS43NTAwMyA0LjYyNTc5IDEuNzVIMi4zMzMyOUMyLjAyMzg3IDEuNzUgMS43MjcxMyAxLjg3MjkyIDEuNTA4MzMgMi4wOTE3MUMxLjI4OTU0IDIuMzEwNSAxLjE2NjYzIDIuNjA3MjUgMS4xNjY2MyAyLjkxNjY3VjEwLjVDMS4xNjY2MyAxMC44MDk0IDEuMjg5NTQgMTEuMTA2MiAxLjUwODMzIDExLjMyNUMxLjcyNzEzIDExLjU0MzcgMi4wMjM4NyAxMS42NjY3IDIuMzMzMjkgMTEuNjY2N0gxMS42NjY2WlwiIGZpbGw9XCIjRUZGNkZGXCIgc3Ryb2tlPVwiIzNGNTFCNVwiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgPC9zdmc+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiaWNvbiAmJiBpY29uLnR5cGUgPT09ICdsb29wJ1wiPlxuICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgcng9XCI0XCIgZmlsbD1cIiNFQkVDRkRcIi8+XG4gICAgICA8cGF0aCBkPVwiTTkuNjY2NjMgNC42NjY2NkwxMSA1Ljk5OTk5TDkuNjY2NjMgNy4zMzMzMlwiIHN0cm9rZT1cIiMzRjUxQjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICA8cGF0aCBkPVwiTTUgNy42NjY2N1Y3LjMzMzMzQzUgNi45Nzk3MSA1LjE0MDQ4IDYuNjQwNTcgNS4zOTA1MiA2LjM5MDUyQzUuNjQwNTcgNi4xNDA0OCA1Ljk3OTcxIDYgNi4zMzMzMyA2SDExXCIgc3Ryb2tlPVwiIzNGNTFCNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgIDxwYXRoIGQ9XCJNNi4zMzMzMyAxMS4zMzMzTDUgOS45OTk5OUw2LjMzMzMzIDguNjY2NjZcIiBzdHJva2U9XCIjM0Y1MUI1XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgPHBhdGggZD1cIk0xMSA4LjMzMzM0VjguNjY2NjhDMTEgOS4wMjAzIDEwLjg1OTUgOS4zNTk0NCAxMC42MDk1IDkuNjA5NDlDMTAuMzU5NCA5Ljg1OTUzIDEwLjAyMDMgMTAgOS42NjY2NyAxMEg1XCIgc3Ryb2tlPVwiIzNGNTFCNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICA8L3N2Zz5cbiAgPC9kaXY+IC0tPlxuICAgIDwhLS0gQmFyIEljb24gKEJ1bGxldGVkIExpc3QpIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJpY29uICYmIGljb24udHlwZSA9PT0gJ2JhcidcIj5cbiAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICA8IS0tIEZpcnN0IGJ1bGxldCBhbmQgbGluZSAtLT5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjNcIiBjeT1cIjVcIiByPVwiMlwiIGZpbGw9XCIjNEYzOUY2XCIvPlxuICAgICAgICA8bGluZSB4MT1cIjdcIiB5MT1cIjVcIiB4Mj1cIjE3XCIgeTI9XCI1XCIgc3Ryb2tlPVwiIzRGMzlGNlwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIi8+XG4gICAgICAgIDwhLS0gU2Vjb25kIGJ1bGxldCBhbmQgbGluZSAtLT5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjNcIiBjeT1cIjEwXCIgcj1cIjJcIiBmaWxsPVwiIzRGMzlGNlwiLz5cbiAgICAgICAgPGxpbmUgeDE9XCI3XCIgeTE9XCIxMFwiIHgyPVwiMTdcIiB5Mj1cIjEwXCIgc3Ryb2tlPVwiIzRGMzlGNlwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIi8+XG4gICAgICAgIDwhLS0gVGhpcmQgYnVsbGV0IGFuZCBsaW5lIC0tPlxuICAgICAgICA8Y2lyY2xlIGN4PVwiM1wiIGN5PVwiMTVcIiByPVwiMlwiIGZpbGw9XCIjNEYzOUY2XCIvPlxuICAgICAgICA8bGluZSB4MT1cIjdcIiB5MT1cIjE1XCIgeDI9XCIxN1wiIHkyPVwiMTVcIiBzdHJva2U9XCIjNEYzOUY2XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBEZWZhdWx0IENoYWluLUxpbmsgSWNvbiAod2hlbiBubyBpY29uIG9yIGljb24gdHlwZSBpcyBub3Qgc3BlY2lmaWVkKSAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiIWljb24gfHwgKGljb24udHlwZSAhPT0gJ2JhcicgJiYgaWNvbi50eXBlICE9PSAnZm9sZGVyJyAmJiBpY29uLnR5cGUgIT09ICdsb29wJyAmJiBpY29uLnR5cGUgIT09ICdjdXN0b20nKVwiPlxuICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk03LjUwMDMzIDE0LjE2NjNINS44MzM2NkM0LjcyODU5IDE0LjE2NjMgMy42Njg3OCAxMy43Mjc0IDIuODg3MzggMTIuOTQ2QzIuMTA1OTggMTIuMTY0NiAxLjY2Njk5IDExLjEwNDcgMS42NjY5OSA5Ljk5OTY3QzEuNjY2OTkgOC44OTQ2MSAyLjEwNTk4IDcuODM0OCAyLjg4NzM4IDcuMDUzNEMzLjY2ODc4IDYuMjcxOTkgNC43Mjg1OSA1LjgzMzAxIDUuODMzNjYgNS44MzMwMUg3LjUwMDMzXCJcbiAgICAgICAgICBzdHJva2U9XCIjNEYzOUY2XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk0xMi41IDUuODMzMDFIMTQuMTY2N0MxNS4yNzE3IDUuODMzMDEgMTYuMzMxNSA2LjI3MTk5IDE3LjExMjkgNy4wNTM0QzE3Ljg5NDMgNy44MzQ4IDE4LjMzMzMgOC44OTQ2MSAxOC4zMzMzIDkuOTk5NjdDMTguMzMzMyAxMS4xMDQ3IDE3Ljg5NDMgMTIuMTY0NiAxNy4xMTI5IDEyLjk0NkMxNi4zMzE1IDEzLjcyNzQgMTUuMjcxNyAxNC4xNjYzIDE0LjE2NjcgMTQuMTY2M0gxMi41XCJcbiAgICAgICAgICBzdHJva2U9XCIjNEYzOUY2XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgIDxwYXRoIGQ9XCJNNi42NjY5OSAxMEgxMy4zMzM3XCIgc3Ryb2tlPVwiIzRGMzlGNlwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQ3VzdG9tIEljb24gLS0+XG4gICAgPGRpdiAqbmdJZj1cImljb24gJiYgaWNvbi50eXBlID09PSAnY3VzdG9tJyAmJiBpY29uLnN2Z1wiIFtpbm5lckhUTUxdPVwiaWNvbi5zdmdcIj48L2Rpdj5cblxuICAgIDwhLS0gVGl0bGUgLS0+XG4gICAgPHNwYW4gY2xhc3M9XCJjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bMTRweF0gY3FhLWxlYWRpbmctWzE3cHhdIGNxYS10ZXh0LVsjMzEyQzg1XSBjcWEtZmxleC0xXCI+XG4gICAgICB7eyB0aXRsZSB9fVxuICAgIDwvc3Bhbj5cblxuICAgIDwhLS0gQmFkZ2UgLS0+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiY3FhLXB4LTIgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkLVs0cHhdIGNxYS1iZy1bI0M2RDJGRl0gY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNnB4XSBjcWEtdGV4dC1bIzQzMkREN11cIj5cbiAgICAgIHt7IGdldERpc3BsYXlDb3VudCgpIH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIEV4cGFuZGVkIENvbnRlbnQgLS0+XG48ZGl2ICpuZ0lmPVwiaXNFeHBhbmRlZFwiIGNsYXNzPVwiY3FhLW10LTIgY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMiBjcWEtcHgtMi41XCI+XG4gIDwhLS0gV2hlbiB0aGVyZSBhcmUgbm8gaXRlbXMsIGRpc3BsYXkgbmctY29udGVudCBkaXJlY3RseSAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPT09IDBcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBXaGVuIGl0ZW1zIGV4aXN0LCBkaXNwbGF5IHRoZW0gLS0+XG4gIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cblxuICAgIDwhLS0gSXRlbSBIZWFkZXIgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1iZy13aGl0ZSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0U1RTVFNV0gY3FhLXJvdW5kZWQtbWQgY3FhLW92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1weS0yIGNxYS1weC0zIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTNcIj5cbiAgICAgICAgPCEtLSBMZWZ0IHNpZGU6IFN0YXR1cyBhbmQgVGl0bGUgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMyBjcWEtZmxleC0xXCI+XG4gICAgICAgICAgPCEtLSBTdGF0dXMgSWNvbiAoRmlsbGVkIEdyZWVuIENpcmNsZSB3aXRoIENoZWNrbWFyaykgLS0+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDwhLS0gU3VjY2VzcyAtLT5cbiAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJpdGVtLnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzQ4XzEyMSlcIj5cbiAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgZD1cIk0xMC4wMDAzIDE4LjMzMzdDMTQuNjAyNyAxOC4zMzM3IDE4LjMzMzcgMTQuNjAyNyAxOC4zMzM3IDEwLjAwMDNDMTguMzMzNyA1LjM5Nzk1IDE0LjYwMjcgMS42NjY5OSAxMC4wMDAzIDEuNjY2OTlDNS4zOTc5NSAxLjY2Njk5IDEuNjY2OTkgNS4zOTc5NSAxLjY2Njk5IDEwLjAwMDNDMS42NjY5OSAxNC42MDI3IDUuMzk3OTUgMTguMzMzNyAxMC4wMDAzIDE4LjMzMzdaXCJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEE2M0VcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTcuNSA5Ljk5OTY3TDkuMTY2NjcgMTEuNjY2M0wxMi41IDguMzMzMDFcIiBzdHJva2U9XCIjMDBBNjNFXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXG4gICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgIDxkZWZzPlxuICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzQ4XzEyMVwiPlxuICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgLz5cbiAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxuICAgICAgICAgICAgICA8L2RlZnM+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwhLS0gRmFpbGVkIC0tPlxuICAgICAgICAgICAgPHN2ZyAqbmdJZj1cIml0ZW0uc3RhdHVzID09PSAnZmFpbGVkJ1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjEwXCIgY3k9XCIxMFwiIHI9XCI4XCIgZmlsbD1cIiNFRjQ0NDRcIiAvPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTcgN0wxMyAxM00xMyA3TDcgMTNcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwhLS0gUGVuZGluZyAtLT5cbiAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJpdGVtLnN0YXR1cyA9PT0gJ3BlbmRpbmcnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTBcIiBjeT1cIjEwXCIgcj1cIjhcIiBmaWxsPVwiIzlDQTNBRlwiIC8+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgNlYxMEwxMyAxMlwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwhLS0gUnVubmluZyAtLT5cbiAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJpdGVtLnN0YXR1cyA9PT0gJ3J1bm5pbmcnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTBcIiBjeT1cIjEwXCIgcj1cIjhcIiBmaWxsPVwiIzNCODJGNlwiIC8+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgNlYxMEwxMyAxMlwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L2Rpdj5cbiAgXG4gICAgICAgICAgPCEtLSBUaXRsZSAtLT5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMThweF1cIiBzdHlsZT1cIndvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XCI+XG4gICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgXG4gICAgICAgIDwhLS0gUmlnaHQgc2lkZTogRHVyYXRpb24gYW5kIFZpZXcgU3RlcHMgTGluayAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0zXCI+XG4gICAgICAgICAgPCEtLSBEdXJhdGlvbiB3aXRoIENsb2NrIEljb24gLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xXCI+XG4gICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTYgMTFDOC43NjE0MiAxMSAxMSA4Ljc2MTQyIDExIDZDMTEgMy4yMzg1OCA4Ljc2MTQyIDEgNiAxQzMuMjM4NTggMSAxIDMuMjM4NTggMSA2QzEgOC43NjE0MiAzLjIzODU4IDExIDYgMTFaXCJcbiAgICAgICAgICAgICAgICBzdHJva2U9XCIjNkE3MjgyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDNWNkw4IDdcIiBzdHJva2U9XCIjNkE3MjgyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTRweF0gY3FhLWxlYWRpbmctWzIwcHhdIGNxYS10ZXh0LVsjNkE3MjgyXVwiPlxuICAgICAgICAgICAgICB7eyBmb3JtYXREdXJhdGlvbihpdGVtLmR1cmF0aW9uKSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICBcbiAgICAgICAgICA8IS0tIFZpZXcgU3RlcHMgTGluayAtLT5cbiAgICAgICAgICA8YSBocmVmPVwiI1wiIChjbGljayk9XCJvblZpZXdTdGVwcyhpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzNGNDNFRV0gY3FhLW5vLXVuZGVybGluZSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMSBob3ZlcjpjcWEtdW5kZXJsaW5lXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyBpc0l0ZW1FeHBhbmRlZChpdGVtLmlkKSA/ICdIaWRlIHN0ZXBzJyA6ICdWaWV3IHN0ZXBzJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzdmcgW2NsYXNzLmNxYS1yb3RhdGUtOTBdPVwiaXNJdGVtRXhwYW5kZWQoaXRlbS5pZClcIiBjbGFzcz1cImNxYS10cmFuc2l0aW9uLXRyYW5zZm9ybVwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNVwiXG4gICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTVcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTguNjU1MiAxMi44MTg0TDcuNTU0MTMgMTEuNzY2OEwxMC44NTIgOC41ODY0SDIuODM5ODRWNy4wNTAzMkgxMC44NTJMNy41NTQxMyAzLjg3NTA2TDguNjU1MiAyLjgxODM2TDEzLjgzOTggNy44MTgzNkw4LjY1NTIgMTIuODE4NFpcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCIjM0Y0M0VFXCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gU3RlcHMgQ29udGVudCAoc2hvd24gd2hlbiBpdGVtIGlzIGV4cGFuZGVkKSAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNJdGVtRXhwYW5kZWQoaXRlbS5pZClcIj5cbiAgICAgIDwhLS0gQ3VzdG9tIHRlbXBsYXRlIHZpYSBUZW1wbGF0ZVJlZiAoZnJvbSBAQ29udGVudENoaWxkIG9yIEBJbnB1dCkgLSBwYXNzZXMgaXRlbSBhcyBjb250ZXh0IC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1Db250ZW50VHBsIHx8IGl0ZW1Db250ZW50VGVtcGxhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1wLTNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIihpdGVtQ29udGVudFRwbCB8fCBpdGVtQ29udGVudFRlbXBsYXRlKSE7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBpdGVtOiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBDdXN0b20gY29udGVudCBwcm9qZWN0aW9uIHZpYSBuZy1jb250ZW50IC0gZGlzcGxheWVkIGZvciBhbGwgZXhwYW5kZWQgaXRlbXMgLS0+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaXRlbUNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIEN1c3RvbSBjb250ZW50IHByb2plY3Rpb24gYWZ0ZXIgYWxsIGl0ZW1zIC0gZm9yIHN0ZXBzIGxvYWRlZCBhZnRlciBBUEkgY2FsbCAtLT5cbjxuZy1jb250ZW50IHNlbGVjdD1cIlthZnRlckl0ZW1zXVwiPjwvbmctY29udGVudD4iXX0=
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1zdGVwLWNvbGxhcHNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9tYWluLXN0ZXAtY29sbGFwc2UvbWFpbi1zdGVwLWNvbGxhcHNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9tYWluLXN0ZXAtY29sbGFwc2UvbWFpbi1zdGVwLWNvbGxhcHNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQThCMUcsTUFBTSxPQUFPLHlCQUF5QjtJQU50QztRQU9XLFVBQUssR0FBVyxlQUFlLENBQUM7UUFFaEMsYUFBUSxHQUFZLElBQUksQ0FBQztRQUtsQyx1SUFBdUk7UUFDOUgsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBRzlDLDJEQUEyRDtRQUNsRCwwQkFBcUIsR0FBWSxJQUFJLENBQUM7UUFFckMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBQ2pELHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFpRCxDQUFDO1FBRWhHLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFDM0IsbUJBQWMsR0FBa0IsSUFBSSxDQUFDLENBQUMsbURBQW1EO0tBOEYxRjtJQTVGQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDckMsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFlO1FBQzVCLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRTtZQUNmLE9B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LElBQXNCO1FBQ3hDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDMUI7UUFDRCxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsc0VBQXNFO0lBQ3RFLHVCQUF1QixDQUFDLElBQXNCO1FBQzVDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hFLENBQUM7O3NIQWhIVSx5QkFBeUI7MEdBQXpCLHlCQUF5QixzakJBY0MsV0FBVyw2QkM1Q2xELGcwWkFpTitDOzJGRG5MbEMseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLHdCQUF3QixRQUc1QixFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7OEJBR3JCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDOEMsY0FBYztzQkFBakUsWUFBWTt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUN4QyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIFRlbXBsYXRlUmVmLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByZXJlcXVpc2l0ZUl0ZW0sIFN0ZXBTdGF0dXMgfSBmcm9tICcuLi9leGVjdXRpb24tc3RlcC5tb2RlbHMnO1xuaW1wb3J0IHsgQnV0dG9uVmFyaWFudCB9IGZyb20gJy4uLy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgSWNvblR5cGUgPSAnZm9sZGVyJyB8ICdsb29wJyB8ICdiYXInIHwgJ2N1c3RvbSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNvbkNvbmZpZyB7XG4gIHR5cGU6IEljb25UeXBlO1xuICBzdmc/OiBzdHJpbmc7IC8vIEN1c3RvbSBTVkcgc3RyaW5nIHdoZW4gdHlwZSBpcyAnY3VzdG9tJ1xufVxuXG4vKiogQ29uZmlnIGZvciBkeW5hbWljIGhlYWRlciBidXR0b25zIHNob3duIGJlc2lkZSB0aGUgaXRlbXMgY291bnQgYmFkZ2UgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVyQnV0dG9uQ29uZmlnIHtcbiAgdGV4dD86IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgdmFyaWFudD86IEJ1dHRvblZhcmlhbnQ7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgdG9vbHRpcD86IHN0cmluZztcbiAgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XG4gIGJ0blNpemU/OiAnc20nIHwgJ21kJyB8ICdsZyc7XG4gIC8qKiBPcHRpb25hbCBpZCB0byBpZGVudGlmeSB0aGUgYnV0dG9uIGluIGhlYWRlckJ1dHRvbkNsaWNrIGV2ZW50ICovXG4gIGlkPzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtbWFpbi1zdGVwLWNvbGxhcHNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21haW4tc3RlcC1jb2xsYXBzZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCcgfVxufSlcbmV4cG9ydCBjbGFzcyBNYWluU3RlcENvbGxhcHNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICdQcmVyZXF1aXNpdGVzJztcbiAgQElucHV0KCkgaXRlbXMhOiBQcmVyZXF1aXNpdGVJdGVtW107XG4gIEBJbnB1dCgpIGV4cGFuZGVkOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgaWNvbj86IEljb25Db25maWc7XG4gIEBJbnB1dCgpIGNvdW50PzogbnVtYmVyOyAvLyBDb3VudCB0byBkaXNwbGF5IHdoZW4gaXRlbXMgYXJyYXkgaXMgZW1wdHlcbiAgQElucHV0KCkgaXRlbUNvbnRlbnRUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47IC8vIFRlbXBsYXRlIGZvciBjdXN0b20gY29udGVudCB1bmRlciBzdGVwcyAocHJvZ3JhbW1hdGljKVxuICBASW5wdXQoKSBoZWFkZXJCdXR0b25zPzogSGVhZGVyQnV0dG9uQ29uZmlnW107IC8vIER5bmFtaWMgYnV0dG9ucyB0byBzaG93IGJlc2lkZSB0aGUgaXRlbXMgY291bnQgYmFkZ2VcbiAgLyoqIFdoZW4gdHJ1ZSwgXCJWaWV3IHN0ZXBzXCIgcmVkaXJlY3RzIHRvIFVSTCBpbnN0ZWFkIG9mIGV4cGFuZGluZyBpbmxpbmUuIFVSTCBjb21lcyBmcm9tIGl0ZW0udmlld1N0ZXBzVXJsIG9yIGdldFZpZXdTdGVwc1VybChpdGVtKS4gKi9cbiAgQElucHV0KCkgdmlld1N0ZXBzQXNSZWRpcmVjdDogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiogT3B0aW9uYWwgZnVuY3Rpb24gdG8gZ2V0IHJlZGlyZWN0IFVSTCBwZXIgaXRlbS4gVXNlZCB3aGVuIGl0ZW0udmlld1N0ZXBzVXJsIGlzIG5vdCBzZXQuICovXG4gIEBJbnB1dCgpIGdldFZpZXdTdGVwc1VybD86IChpdGVtOiBQcmVyZXF1aXNpdGVJdGVtKSA9PiBzdHJpbmc7XG4gIC8qKiBXaGVuIHJlZGlyZWN0aW5nLCBvcGVuIGxpbmsgaW4gbmV3IHRhYi4gRGVmYXVsdCB0cnVlICovXG4gIEBJbnB1dCgpIHZpZXdTdGVwc09wZW5Jbk5ld1RhYjogYm9vbGVhbiA9IHRydWU7XG4gIEBDb250ZW50Q2hpbGQoJ2l0ZW1Db250ZW50JywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBpdGVtQ29udGVudFRwbD86IFRlbXBsYXRlUmVmPGFueT47IC8vIFRlbXBsYXRlIHJlZmVyZW5jZSBmcm9tIG5nLXRlbXBsYXRlXG4gIEBPdXRwdXQoKSB2aWV3U3RlcHMgPSBuZXcgRXZlbnRFbWl0dGVyPFByZXJlcXVpc2l0ZUl0ZW0+KCk7XG4gIEBPdXRwdXQoKSBoZWFkZXJCdXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8eyBjb25maWc6IEhlYWRlckJ1dHRvbkNvbmZpZzsgaW5kZXg6IG51bWJlciB9PigpO1xuXG4gIGlzRXhwYW5kZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBleHBhbmRlZEl0ZW1JZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7IC8vIFRyYWNrIHdoaWNoIGl0ZW0ncyBzdGVwcyBhcmUgY3VycmVudGx5IGRpc3BsYXllZFxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNFeHBhbmRlZCA9IHRoaXMuZXhwYW5kZWQ7XG4gIH1cblxuICB0b2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5pc0V4cGFuZGVkID0gIXRoaXMuaXNFeHBhbmRlZDtcbiAgfVxuXG4gIGZvcm1hdER1cmF0aW9uKHNlY29uZHM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKHNlY29uZHMgPCAxKSB7XG4gICAgICByZXR1cm4gYCR7KHNlY29uZHMgKiAxMDAwKS50b0ZpeGVkKDApfW1zYDtcbiAgICB9XG5cbiAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIDM2MDApO1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKChzZWNvbmRzICUgMzYwMCkgLyA2MCk7XG4gICAgY29uc3Qgc2VjcyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAlIDYwKTtcblxuICAgIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKGhvdXJzID4gMCkge1xuICAgICAgcGFydHMucHVzaChgJHtob3Vyc31oYCk7XG4gICAgfVxuICAgIGlmIChtaW51dGVzID4gMCkge1xuICAgICAgcGFydHMucHVzaChgJHttaW51dGVzfW1gKTtcbiAgICB9XG4gICAgaWYgKHNlY3MgPiAwIHx8IChob3VycyA9PT0gMCAmJiBtaW51dGVzID09PSAwKSkge1xuICAgICAgcGFydHMucHVzaChgJHtzZWNzfXNgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFydHMuam9pbignICcpO1xuICB9XG4gIGdldFN0YXR1c0ljb24oc3RhdHVzOiBTdGVwU3RhdHVzKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgIHJldHVybiAnY2hlY2tfY2lyY2xlJztcbiAgICAgIGNhc2UgJ2ZhaWxlZCc6XG4gICAgICAgIHJldHVybiAnY2FuY2VsJztcbiAgICAgIGNhc2UgJ3BlbmRpbmcnOlxuICAgICAgICByZXR1cm4gJ3NjaGVkdWxlJztcbiAgICAgIGNhc2UgJ3J1bm5pbmcnOlxuICAgICAgICByZXR1cm4gJ3N5bmMnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdoZWxwX291dGxpbmUnO1xuICAgIH1cbiAgfVxuXG5cbiAgb25WaWV3U3RlcHMoaXRlbTogUHJlcmVxdWlzaXRlSXRlbSwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBcbiAgICAvLyBBY2NvcmRpb24gYmVoYXZpb3I6IGlmIGNsaWNraW5nIHRoZSBzYW1lIGl0ZW0sIGNsb3NlIGl0OyBvdGhlcndpc2UsIGNsb3NlIHByZXZpb3VzIGFuZCBvcGVuIG5ldyBvbmVcbiAgICBpZiAodGhpcy5leHBhbmRlZEl0ZW1JZCA9PT0gaXRlbS5pZCkge1xuICAgICAgdGhpcy5leHBhbmRlZEl0ZW1JZCA9IG51bGw7IC8vIENsb3NlIGlmIGFscmVhZHkgb3BlblxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmV4cGFuZGVkSXRlbUlkID0gaXRlbS5pZDsgLy8gT3BlbiB0aGUgY2xpY2tlZCBpdGVtIChjbG9zZXMgcHJldmlvdXMgYXV0b21hdGljYWxseSlcbiAgICB9XG4gICAgXG4gICAgdGhpcy52aWV3U3RlcHMuZW1pdChpdGVtKTtcbiAgfVxuXG4gIGlzSXRlbUV4cGFuZGVkKGl0ZW1JZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kZWRJdGVtSWQgPT09IGl0ZW1JZDtcbiAgfVxuXG4gIGdldERpc3BsYXlDb3VudCgpOiBudW1iZXIge1xuICAgIC8vIElmIGl0ZW1zIGlzIGVtcHR5L3VuZGVmaW5lZCBhbmQgY291bnQgaXMgcHJvdmlkZWQsIHVzZSBjb3VudFxuICAgIGlmICgoIXRoaXMuaXRlbXMgfHwgdGhpcy5pdGVtcy5sZW5ndGggPT09IDApICYmIHRoaXMuY291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuY291bnQ7XG4gICAgfVxuICAgIC8vIE90aGVyd2lzZSB1c2UgaXRlbXMgbGVuZ3RoXG4gICAgcmV0dXJuIHRoaXMuaXRlbXM/Lmxlbmd0aCB8fCAwO1xuICB9XG5cbiAgb25IZWFkZXJCdXR0b25DbGljayhjb25maWc6IEhlYWRlckJ1dHRvbkNvbmZpZywgaW5kZXg6IG51bWJlciwgZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaGVhZGVyQnV0dG9uQ2xpY2suZW1pdCh7IGNvbmZpZywgaW5kZXggfSk7XG4gIH1cblxuICAvKiogUmVzb2x2ZXMgdGhlIHJlZGlyZWN0IFVSTCBmb3IgYW4gaXRlbTogaXRlbS52aWV3U3RlcHNVcmwgdGFrZXMgcHJlY2VkZW5jZSwgZWxzZSBnZXRWaWV3U3RlcHNVcmwoaXRlbSkgKi9cbiAgZ2V0SXRlbVZpZXdTdGVwc1VybChpdGVtOiBQcmVyZXF1aXNpdGVJdGVtKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoaXRlbS52aWV3U3RlcHNVcmwpIHtcbiAgICAgIHJldHVybiBpdGVtLnZpZXdTdGVwc1VybDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0Vmlld1N0ZXBzVXJsPy4oaXRlbSk7XG4gIH1cblxuICAvKiogV2hldGhlciByZWRpcmVjdCBtb2RlIGlzIGFjdGl2ZSBhbmQgd2UgaGF2ZSBhIFVSTCBmb3IgdGhpcyBpdGVtICovXG4gIGhhc1ZpZXdTdGVwc1JlZGlyZWN0VXJsKGl0ZW06IFByZXJlcXVpc2l0ZUl0ZW0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnZpZXdTdGVwc0FzUmVkaXJlY3QgJiYgISF0aGlzLmdldEl0ZW1WaWV3U3RlcHNVcmwoaXRlbSk7XG4gIH1cbn1cbiIsIjwhLS0gSGVhZGVyIC0tPlxuPGRpdlxuICBjbGFzcz1cImNxYS1tdC0yIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTMgY3FhLXB4LTMgY3FhLXB5LTIgY3FhLWN1cnNvci1wb2ludGVyIGNxYS1iZy1bI0VFRjJGRl0gY3FhLXJvdW5kZWQtWzRweF0gY3FhLWJvcmRlciBjcWEtYm9yZGVyLVsjQzZEMkZGXSBjcWEtYm9yZGVyLXNvbGlkXCJcbiAgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMyBjcWEtdy1mdWxsXCI+XG4gICAgPCEtLSBDaGV2cm9uIEljb24gKExlZnQpIC0tPlxuICAgIDwhLS0gPHN2ZyBbY2xhc3MuY3FhLXJvdGF0ZS0xODBdPVwiaXNFeHBhbmRlZFwiIGNsYXNzPVwiY3FhLXRyYW5zaXRpb24tdHJhbnNmb3JtXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgIDxwYXRoIGQ9XCJNNCA2TDggMTBMMTIgNlwiIHN0cm9rZT1cIiMzRjUxQjVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gIDwvc3ZnPiAtLT5cbiAgICA8ZGl2PjxzdmcgW2NsYXNzLmNxYS1yb3RhdGUtMTgwXT1cImlzRXhwYW5kZWRcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgIDxwYXRoIGQ9XCJNNCA2TDggMTBMMTIgNlwiIHN0cm9rZT1cIiM0RjM5RjZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgPC9zdmc+PC9kaXY+XG5cbiAgICA8IS0tIENoYWluLUxpbmsgSWNvbiAoaWYgY29uZmlndXJlZCwgb3RoZXJ3aXNlIGRlZmF1bHQpIC0tPlxuICAgIDwhLS0gPGRpdiAqbmdJZj1cImljb24gJiYgaWNvbi50eXBlID09PSAnZm9sZGVyJ1wiPlxuICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHBhdGggZD1cIk0xMS42NjY2IDExLjY2NjdDMTEuOTc2IDExLjY2NjcgMTIuMjcyOCAxMS41NDM3IDEyLjQ5MTYgMTEuMzI1QzEyLjcxMDQgMTEuMTA2MiAxMi44MzMzIDEwLjgwOTQgMTIuODMzMyAxMC41VjQuNjY2NjdDMTIuODMzMyA0LjM1NzI1IDEyLjcxMDQgNC4wNjA1IDEyLjQ5MTYgMy44NDE3MUMxMi4yNzI4IDMuNjIyOTIgMTEuOTc2IDMuNSAxMS42NjY2IDMuNUg3LjA1ODI5QzYuODYzMTggMy41MDE5MSA2LjY3MDY5IDMuNDU0ODYgNi40OTg0NyAzLjM2MzE0QzYuMzI2MjQgMy4yNzE0MiA2LjE3OTc3IDMuMTM3OTcgNi4wNzI0NiAyLjk3NUw1LjU5OTk2IDIuMjc1QzUuNDkzNzMgMi4xMTM2OSA1LjM0OTExIDEuOTgxMjggNS4xNzkwOCAxLjg4OTY1QzUuMDA5MDYgMS43OTgwMiA0LjgxODk0IDEuNzUwMDMgNC42MjU3OSAxLjc1SDIuMzMzMjlDMi4wMjM4NyAxLjc1IDEuNzI3MTMgMS44NzI5MiAxLjUwODMzIDIuMDkxNzFDMS4yODk1NCAyLjMxMDUgMS4xNjY2MyAyLjYwNzI1IDEuMTY2NjMgMi45MTY2N1YxMC41QzEuMTY2NjMgMTAuODA5NCAxLjI4OTU0IDExLjEwNjIgMS41MDgzMyAxMS4zMjVDMS43MjcxMyAxMS41NDM3IDIuMDIzODcgMTEuNjY2NyAyLjMzMzI5IDExLjY2NjdIMTEuNjY2NlpcIiBmaWxsPVwiI0VGRjZGRlwiIHN0cm9rZT1cIiMzRjUxQjVcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgIDwvc3ZnPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImljb24gJiYgaWNvbi50eXBlID09PSAnbG9vcCdcIj5cbiAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHJ4PVwiNFwiIGZpbGw9XCIjRUJFQ0ZEXCIvPlxuICAgICAgPHBhdGggZD1cIk05LjY2NjYzIDQuNjY2NjZMMTEgNS45OTk5OUw5LjY2NjYzIDcuMzMzMzJcIiBzdHJva2U9XCIjM0Y1MUI1XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgPHBhdGggZD1cIk01IDcuNjY2NjdWNy4zMzMzM0M1IDYuOTc5NzEgNS4xNDA0OCA2LjY0MDU3IDUuMzkwNTIgNi4zOTA1MkM1LjY0MDU3IDYuMTQwNDggNS45Nzk3MSA2IDYuMzMzMzMgNkgxMVwiIHN0cm9rZT1cIiMzRjUxQjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICA8cGF0aCBkPVwiTTYuMzMzMzMgMTEuMzMzM0w1IDkuOTk5OTlMNi4zMzMzMyA4LjY2NjY2XCIgc3Ryb2tlPVwiIzNGNTFCNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgIDxwYXRoIGQ9XCJNMTEgOC4zMzMzNFY4LjY2NjY4QzExIDkuMDIwMyAxMC44NTk1IDkuMzU5NDQgMTAuNjA5NSA5LjYwOTQ5QzEwLjM1OTQgOS44NTk1MyAxMC4wMjAzIDEwIDkuNjY2NjcgMTBINVwiIHN0cm9rZT1cIiMzRjUxQjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgPC9zdmc+XG4gIDwvZGl2PiAtLT5cbiAgICA8IS0tIEJhciBJY29uIChCdWxsZXRlZCBMaXN0KSAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiaWNvbiAmJiBpY29uLnR5cGUgPT09ICdiYXInXCI+XG4gICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgPCEtLSBGaXJzdCBidWxsZXQgYW5kIGxpbmUgLS0+XG4gICAgICAgIDxjaXJjbGUgY3g9XCIzXCIgY3k9XCI1XCIgcj1cIjJcIiBmaWxsPVwiIzRGMzlGNlwiLz5cbiAgICAgICAgPGxpbmUgeDE9XCI3XCIgeTE9XCI1XCIgeDI9XCIxN1wiIHkyPVwiNVwiIHN0cm9rZT1cIiM0RjM5RjZcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIvPlxuICAgICAgICA8IS0tIFNlY29uZCBidWxsZXQgYW5kIGxpbmUgLS0+XG4gICAgICAgIDxjaXJjbGUgY3g9XCIzXCIgY3k9XCIxMFwiIHI9XCIyXCIgZmlsbD1cIiM0RjM5RjZcIi8+XG4gICAgICAgIDxsaW5lIHgxPVwiN1wiIHkxPVwiMTBcIiB4Mj1cIjE3XCIgeTI9XCIxMFwiIHN0cm9rZT1cIiM0RjM5RjZcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIvPlxuICAgICAgICA8IS0tIFRoaXJkIGJ1bGxldCBhbmQgbGluZSAtLT5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjNcIiBjeT1cIjE1XCIgcj1cIjJcIiBmaWxsPVwiIzRGMzlGNlwiLz5cbiAgICAgICAgPGxpbmUgeDE9XCI3XCIgeTE9XCIxNVwiIHgyPVwiMTdcIiB5Mj1cIjE1XCIgc3Ryb2tlPVwiIzRGMzlGNlwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIi8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gRGVmYXVsdCBDaGFpbi1MaW5rIEljb24gKHdoZW4gbm8gaWNvbiBvciBpY29uIHR5cGUgaXMgbm90IHNwZWNpZmllZCkgLS0+XG4gICAgPGRpdiAqbmdJZj1cIiFpY29uIHx8IChpY29uLnR5cGUgIT09ICdiYXInICYmIGljb24udHlwZSAhPT0gJ2ZvbGRlcicgJiYgaWNvbi50eXBlICE9PSAnbG9vcCcgJiYgaWNvbi50eXBlICE9PSAnY3VzdG9tJylcIj5cbiAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNNy41MDAzMyAxNC4xNjYzSDUuODMzNjZDNC43Mjg1OSAxNC4xNjYzIDMuNjY4NzggMTMuNzI3NCAyLjg4NzM4IDEyLjk0NkMyLjEwNTk4IDEyLjE2NDYgMS42NjY5OSAxMS4xMDQ3IDEuNjY2OTkgOS45OTk2N0MxLjY2Njk5IDguODk0NjEgMi4xMDU5OCA3LjgzNDggMi44ODczOCA3LjA1MzRDMy42Njg3OCA2LjI3MTk5IDQuNzI4NTkgNS44MzMwMSA1LjgzMzY2IDUuODMzMDFINy41MDAzM1wiXG4gICAgICAgICAgc3Ryb2tlPVwiIzRGMzlGNlwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNMTIuNSA1LjgzMzAxSDE0LjE2NjdDMTUuMjcxNyA1LjgzMzAxIDE2LjMzMTUgNi4yNzE5OSAxNy4xMTI5IDcuMDUzNEMxNy44OTQzIDcuODM0OCAxOC4zMzMzIDguODk0NjEgMTguMzMzMyA5Ljk5OTY3QzE4LjMzMzMgMTEuMTA0NyAxNy44OTQzIDEyLjE2NDYgMTcuMTEyOSAxMi45NDZDMTYuMzMxNSAxMy43Mjc0IDE1LjI3MTcgMTQuMTY2MyAxNC4xNjY3IDE0LjE2NjNIMTIuNVwiXG4gICAgICAgICAgc3Ryb2tlPVwiIzRGMzlGNlwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICA8cGF0aCBkPVwiTTYuNjY2OTkgMTBIMTMuMzMzN1wiIHN0cm9rZT1cIiM0RjM5RjZcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEN1c3RvbSBJY29uIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJpY29uICYmIGljb24udHlwZSA9PT0gJ2N1c3RvbScgJiYgaWNvbi5zdmdcIiBbaW5uZXJIVE1MXT1cImljb24uc3ZnXCI+PC9kaXY+XG5cbiAgICA8IS0tIFRpdGxlIC0tPlxuICAgIDxzcGFuIGNsYXNzPVwiY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsxN3B4XSBjcWEtdGV4dC1bIzMxMkM4NV0gY3FhLWZsZXgtMVwiPlxuICAgICAge3sgdGl0bGUgfX1cbiAgICA8L3NwYW4+XG5cbiAgICA8IS0tIEJhZGdlIGFuZCBkeW5hbWljIGhlYWRlciBidXR0b25zIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMlwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ0biBvZiBoZWFkZXJCdXR0b25zOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxjcWEtYnV0dG9uXG4gICAgICAgICAgW3RleHRdPVwiYnRuLnRleHRcIlxuICAgICAgICAgIFtpY29uXT1cImJ0bi5pY29uXCJcbiAgICAgICAgICBbdmFyaWFudF09XCJidG4udmFyaWFudCB8fCAnb3V0bGluZWQnXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiYnRuLmRpc2FibGVkXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCJidG4udG9vbHRpcFwiXG4gICAgICAgICAgW2N1c3RvbUNsYXNzXT1cImJ0bi5jdXN0b21DbGFzc1wiXG4gICAgICAgICAgW2J0blNpemVdPVwiYnRuLmJ0blNpemUgfHwgJ3NtJ1wiXG4gICAgICAgICAgKGNsaWNrZWQpPVwib25IZWFkZXJCdXR0b25DbGljayhidG4sIGksICRldmVudClcIj5cbiAgICAgICAgPC9jcWEtYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImNxYS1weC0yIGNxYS1weS1bMnB4XSBjcWEtcm91bmRlZC1bNHB4XSBjcWEtYmctWyNDNkQyRkZdIGNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTZweF0gY3FhLXRleHQtWyM0MzJERDddXCI+XG4gICAgICAgIHt7IGdldERpc3BsYXlDb3VudCgpIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gRXhwYW5kZWQgQ29udGVudCAtLT5cbjxkaXYgKm5nSWY9XCJpc0V4cGFuZGVkXCIgY2xhc3M9XCJjcWEtbXQtMiBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yIGNxYS1weC0yLjVcIj5cbiAgPCEtLSBXaGVuIHRoZXJlIGFyZSBubyBpdGVtcywgZGlzcGxheSBuZy1jb250ZW50IGRpcmVjdGx5IC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW1zIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIFdoZW4gaXRlbXMgZXhpc3QsIGRpc3BsYXkgdGhlbSAtLT5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiPlxuXG4gICAgPCEtLSBJdGVtIEhlYWRlciAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWJnLXdoaXRlIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjRTVFNUU1XSBjcWEtcm91bmRlZC1tZCBjcWEtb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLXB5LTIgY3FhLXB4LTMgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1nYXAtM1wiPlxuICAgICAgICA8IS0tIExlZnQgc2lkZTogU3RhdHVzIGFuZCBUaXRsZSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0zIGNxYS1mbGV4LTFcIj5cbiAgICAgICAgICA8IS0tIFN0YXR1cyBJY29uIChGaWxsZWQgR3JlZW4gQ2lyY2xlIHdpdGggQ2hlY2ttYXJrKSAtLT5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPCEtLSBTdWNjZXNzIC0tPlxuICAgICAgICAgICAgPHN2ZyAqbmdJZj1cIml0ZW0uc3RhdHVzID09PSAnc3VjY2VzcydcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfNDhfMTIxKVwiPlxuICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICBkPVwiTTEwLjAwMDMgMTguMzMzN0MxNC42MDI3IDE4LjMzMzcgMTguMzMzNyAxNC42MDI3IDE4LjMzMzcgMTAuMDAwM0MxOC4zMzM3IDUuMzk3OTUgMTQuNjAyNyAxLjY2Njk5IDEwLjAwMDMgMS42NjY5OUM1LjM5Nzk1IDEuNjY2OTkgMS42NjY5OSA1LjM5Nzk1IDEuNjY2OTkgMTAuMDAwM0MxLjY2Njk5IDE0LjYwMjcgNS4zOTc5NSAxOC4zMzM3IDEwLjAwMDMgMTguMzMzN1pcIlxuICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTYzRVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNy41IDkuOTk5NjdMOS4xNjY2NyAxMS42NjYzTDEyLjUgOC4zMzMwMVwiIHN0cm9rZT1cIiMwMEE2M0VcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNDhfMTIxXCI+XG4gICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxuICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XG4gICAgICAgICAgICAgIDwvZGVmcz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPCEtLSBGYWlsZWQgLS0+XG4gICAgICAgICAgICA8c3ZnICpuZ0lmPVwiaXRlbS5zdGF0dXMgPT09ICdmYWlsZWQnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTBcIiBjeT1cIjEwXCIgcj1cIjhcIiBmaWxsPVwiI0VGNDQ0NFwiIC8+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNyA3TDEzIDEzTTEzIDdMNyAxM1wiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPCEtLSBQZW5kaW5nIC0tPlxuICAgICAgICAgICAgPHN2ZyAqbmdJZj1cIml0ZW0uc3RhdHVzID09PSAncGVuZGluZydcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMFwiIGN5PVwiMTBcIiByPVwiOFwiIGZpbGw9XCIjOUNBM0FGXCIgLz5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMCA2VjEwTDEzIDEyXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPCEtLSBSdW5uaW5nIC0tPlxuICAgICAgICAgICAgPHN2ZyAqbmdJZj1cIml0ZW0uc3RhdHVzID09PSAncnVubmluZydcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMFwiIGN5PVwiMTBcIiByPVwiOFwiIGZpbGw9XCIjM0I4MkY2XCIgLz5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMCA2VjEwTDEzIDEyXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvZGl2PlxuICBcbiAgICAgICAgICA8IS0tIFRpdGxlIC0tPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsxOHB4XVwiIHN0eWxlPVwid29yZC1icmVhazogYnJlYWstd29yZDtcIj5cbiAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICBcbiAgICAgICAgPCEtLSBSaWdodCBzaWRlOiBEdXJhdGlvbiBhbmQgVmlldyBTdGVwcyBMaW5rIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTNcIj5cbiAgICAgICAgICA8IS0tIER1cmF0aW9uIHdpdGggQ2xvY2sgSWNvbiAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTFcIj5cbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNNiAxMUM4Ljc2MTQyIDExIDExIDguNzYxNDIgMTEgNkMxMSAzLjIzODU4IDguNzYxNDIgMSA2IDFDMy4yMzg1OCAxIDEgMy4yMzg1OCAxIDZDMSA4Ljc2MTQyIDMuMjM4NTggMTEgNiAxMVpcIlxuICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2QTcyODJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYgM1Y2TDggN1wiIHN0cm9rZT1cIiM2QTcyODJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMjBweF0gY3FhLXRleHQtWyM2QTcyODJdXCI+XG4gICAgICAgICAgICAgIHt7IGZvcm1hdER1cmF0aW9uKGl0ZW0uZHVyYXRpb24pIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gIFxuICAgICAgICAgIDwhLS0gVmlldyBTdGVwcyBMaW5rOiByZWRpcmVjdCBtb2RlIChuYXZpZ2F0ZXMgdG8gVVJMKSBvciBpbmxpbmUgbW9kZSAodG9nZ2xlIGV4cGFuZCkgLS0+XG4gICAgICAgICAgPGEgKm5nSWY9XCJoYXNWaWV3U3RlcHNSZWRpcmVjdFVybChpdGVtKVwiXG4gICAgICAgICAgICBbaHJlZl09XCJnZXRJdGVtVmlld1N0ZXBzVXJsKGl0ZW0pXCJcbiAgICAgICAgICAgIFthdHRyLnRhcmdldF09XCJ2aWV3U3RlcHNPcGVuSW5OZXdUYWIgPyAnX2JsYW5rJyA6IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIucmVsXT1cInZpZXdTdGVwc09wZW5Jbk5ld1RhYiA/ICdub29wZW5lciBub3JlZmVycmVyJyA6IG51bGxcIlxuICAgICAgICAgICAgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjM0Y0M0VFXSBjcWEtbm8tdW5kZXJsaW5lIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xIGhvdmVyOmNxYS11bmRlcmxpbmVcIj5cbiAgICAgICAgICAgIDxzcGFuPlZpZXcgc3RlcHM8L3NwYW4+XG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY3FhLXRyYW5zaXRpb24tdHJhbnNmb3JtXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE1XCJcbiAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNOC42NTUyIDEyLjgxODRMNy41NTQxMyAxMS43NjY4TDEwLjg1MiA4LjU4NjRIMi44Mzk4NFY3LjA1MDMySDEwLjg1Mkw3LjU1NDEzIDMuODc1MDZMOC42NTUyIDIuODE4MzZMMTMuODM5OCA3LjgxODM2TDguNjU1MiAxMi44MTg0WlwiXG4gICAgICAgICAgICAgICAgZmlsbD1cIiMzRjQzRUVcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxhICpuZ0lmPVwiIWhhc1ZpZXdTdGVwc1JlZGlyZWN0VXJsKGl0ZW0pXCIgaHJlZj1cIiNcIiAoY2xpY2spPVwib25WaWV3U3RlcHMoaXRlbSwgJGV2ZW50KVwiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWyMzRjQzRUVdIGNxYS1uby11bmRlcmxpbmUgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEgaG92ZXI6Y3FhLXVuZGVybGluZVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgaXNJdGVtRXhwYW5kZWQoaXRlbS5pZCkgPyAnSGlkZSBzdGVwcycgOiAnVmlldyBzdGVwcycgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3ZnIFtjbGFzcy5jcWEtcm90YXRlLTkwXT1cImlzSXRlbUV4cGFuZGVkKGl0ZW0uaWQpXCIgY2xhc3M9XCJjcWEtdHJhbnNpdGlvbi10cmFuc2Zvcm1cIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTVcIlxuICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE1XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk04LjY1NTIgMTIuODE4NEw3LjU1NDEzIDExLjc2NjhMMTAuODUyIDguNTg2NEgyLjgzOTg0VjcuMDUwMzJIMTAuODUyTDcuNTU0MTMgMy44NzUwNkw4LjY1NTIgMi44MTgzNkwxMy44Mzk4IDcuODE4MzZMOC42NTUyIDEyLjgxODRaXCJcbiAgICAgICAgICAgICAgICBmaWxsPVwiIzNGNDNFRVwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFN0ZXBzIENvbnRlbnQgKHNob3duIHdoZW4gaXRlbSBpcyBleHBhbmRlZCkgLS0+XG4gICAgPGRpdiAqbmdJZj1cImlzSXRlbUV4cGFuZGVkKGl0ZW0uaWQpXCI+XG4gICAgICA8IS0tIEN1c3RvbSB0ZW1wbGF0ZSB2aWEgVGVtcGxhdGVSZWYgKGZyb20gQENvbnRlbnRDaGlsZCBvciBASW5wdXQpIC0gcGFzc2VzIGl0ZW0gYXMgY29udGV4dCAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtQ29udGVudFRwbCB8fCBpdGVtQ29udGVudFRlbXBsYXRlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtcC0zXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCIoaXRlbUNvbnRlbnRUcGwgfHwgaXRlbUNvbnRlbnRUZW1wbGF0ZSkhOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSwgaXRlbTogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gQ3VzdG9tIGNvbnRlbnQgcHJvamVjdGlvbiB2aWEgbmctY29udGVudCAtIGRpc3BsYXllZCBmb3IgYWxsIGV4cGFuZGVkIGl0ZW1zIC0tPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2l0ZW1Db250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSBDdXN0b20gY29udGVudCBwcm9qZWN0aW9uIGFmdGVyIGFsbCBpdGVtcyAtIGZvciBzdGVwcyBsb2FkZWQgYWZ0ZXIgQVBJIGNhbGwgLS0+XG48bmctY29udGVudCBzZWxlY3Q9XCJbYWZ0ZXJJdGVtc11cIj48L25nLWNvbnRlbnQ+Il19
|
|
@@ -43,6 +43,7 @@ import { CoverageModuleCardComponent } from './dashboards/coverage-module-card/c
|
|
|
43
43
|
import { TestDistributionCardComponent } from './dashboards/test-distribution-card/test-distribution-card.component';
|
|
44
44
|
import { FailedTestCasesCardComponent } from './dashboards/failed-test-cases-card/failed-test-cases-card.component';
|
|
45
45
|
import { DynamicSelectFieldComponent } from './dynamic-select/dynamic-select-field.component';
|
|
46
|
+
import { AddPrerequisiteCasesSectionComponent } from './add-prerequisite-cases-section/add-prerequisite-cases-section.component';
|
|
46
47
|
import { SelectedFiltersComponent } from './selected-filters/selected-filters.component';
|
|
47
48
|
import { InsightCardComponent } from './dashboards/insight-card/insight-card.component';
|
|
48
49
|
import { BadgeComponent } from './badge/badge.component';
|
|
@@ -158,6 +159,7 @@ UiKitModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "1
|
|
|
158
159
|
TestDistributionCardComponent,
|
|
159
160
|
FailedTestCasesCardComponent,
|
|
160
161
|
DynamicSelectFieldComponent,
|
|
162
|
+
AddPrerequisiteCasesSectionComponent,
|
|
161
163
|
SelectedFiltersComponent,
|
|
162
164
|
InsightCardComponent,
|
|
163
165
|
BadgeComponent,
|
|
@@ -279,6 +281,7 @@ UiKitModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "1
|
|
|
279
281
|
TestDistributionCardComponent,
|
|
280
282
|
FailedTestCasesCardComponent,
|
|
281
283
|
DynamicSelectFieldComponent,
|
|
284
|
+
AddPrerequisiteCasesSectionComponent,
|
|
282
285
|
SelectedFiltersComponent,
|
|
283
286
|
InsightCardComponent,
|
|
284
287
|
BadgeComponent,
|
|
@@ -447,6 +450,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
447
450
|
TestDistributionCardComponent,
|
|
448
451
|
FailedTestCasesCardComponent,
|
|
449
452
|
DynamicSelectFieldComponent,
|
|
453
|
+
AddPrerequisiteCasesSectionComponent,
|
|
450
454
|
SelectedFiltersComponent,
|
|
451
455
|
InsightCardComponent,
|
|
452
456
|
BadgeComponent,
|
|
@@ -574,6 +578,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
574
578
|
TestDistributionCardComponent,
|
|
575
579
|
FailedTestCasesCardComponent,
|
|
576
580
|
DynamicSelectFieldComponent,
|
|
581
|
+
AddPrerequisiteCasesSectionComponent,
|
|
577
582
|
SelectedFiltersComponent,
|
|
578
583
|
InsightCardComponent,
|
|
579
584
|
BadgeComponent,
|
|
@@ -694,4 +699,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
694
699
|
]
|
|
695
700
|
}]
|
|
696
701
|
}], ctorParameters: function () { return [{ type: i1.MatIconRegistry }]; } });
|
|
697
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkta2l0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdWkta2l0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGdC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LHdCQUF3QjtnQ0FDakMsWUFBWSxFQUFFLDZCQUE2QjtnQ0FDM0MsV0FBVyxFQUFFLDRCQUE0QjtnQ0FDekMsWUFBWSxFQUFFLDZCQUE2QjtnQ0FDM0MsVUFBVSxFQUFFLDJCQUEyQjtnQ0FDdkMsY0FBYyxFQUFFLCtCQUErQjtnQ0FDL0MsVUFBVSxFQUFFLDJCQUEyQjtnQ0FDdkMsYUFBYSxFQUFFLDhCQUE4QjtnQ0FDN0Msa0JBQWtCLEVBQUUsbUNBQW1DO2dDQUN2RCxjQUFjLEVBQUUsK0JBQStCOzZCQUNoRDt5QkFDRjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixRQUFRLEVBQUUsSUFBSSxHQUFHLENBQW9CO2dDQUNuQyxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQztnQ0FDN0IsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUM7Z0NBQ2xDLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDO2dDQUMzQixDQUFDLFdBQVcsRUFBRSxzQkFBc0IsQ0FBQztnQ0FDckMsQ0FBQyxRQUFRLEVBQUUsbUJBQW1CLENBQUM7Z0NBQy9CLENBQUMsZ0JBQWdCLEVBQUUsMEJBQTBCLENBQUM7Z0NBQzlDLENBQUMsVUFBVSxFQUFFLG9CQUFvQixDQUFDO2dDQUNsQyxDQUFDLFdBQVcsRUFBRSxxQkFBcUIsQ0FBQztnQ0FDcEMsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUM7Z0NBQ3pCLENBQUMsZUFBZSxFQUFFLHlCQUF5QixDQUFDO2dDQUM1QyxDQUFDLHVCQUF1QixFQUFFLGlDQUFpQyxDQUFDO2dDQUM1RCxDQUFDLGdCQUFnQixFQUFFLDBCQUEwQixDQUFDO2dDQUM5QyxDQUFDLGlCQUFpQixFQUFFLDJCQUEyQixDQUFDOzZCQUNqRCxDQUFDO3lCQUNIO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIGZvcndhcmRSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEljb25SZWdpc3RyeSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUsIE92ZXJsYXlDb250YWluZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ3hUeXBlZEpzTW9kdWxlIH0gZnJvbSAnbmd4LXR5cGVkLWpzJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9zZWFyY2gtYmFyL3NlYXJjaC1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNlZ21lbnRDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi9zZWdtZW50LWNvbnRyb2wvc2VnbWVudC1jb250cm9sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljQ2VsbFRlbXBsYXRlRGlyZWN0aXZlLCBEeW5hbWljSGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL3RhYmxlL2R5bmFtaWMtdGFibGUvZHluYW1pYy1jZWxsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEeW5hbWljQ2VsbENvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gJy4vdGFibGUvZHluYW1pYy10YWJsZS9keW5hbWljLWNlbGwtY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGlvbk1lbnVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2FjdGlvbi1tZW51L2FjdGlvbi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPdGhlckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vb3RoZXItYnV0dG9uL290aGVyLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0ZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vZmlsdGVycy9keW5hbWljLWZpbHRlci9keW5hbWljLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZXJhbmdlcGlja2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9maWx0ZXJzL2RhdGVyYW5nZXBpY2tlci9kYXRlcmFuZ2VwaWNrZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IERhdGVyYW5nZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vZmlsdGVycy9kYXRlcmFuZ2VwaWNrZXIvZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2x1bW5WaXNpYmlsaXR5Q29tcG9uZW50IH0gZnJvbSAnLi9jb2x1bW4tdmlzaWJpbGl0eS9jb2x1bW4tdmlzaWJpbGl0eS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVBY3Rpb25Ub29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1hY3Rpb24tdG9vbGJhci90YWJsZS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWV0cmljc0NhcmRDb21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZHMvbWV0cmljcy1jYXJkL21ldHJpY3MtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWV0cmljc0Jsb2NrQ29tcG9uZW50IH0gZnJvbSAnLi9kYXNoYm9hcmRzL21ldHJpY3MtY2FyZC9tZXRyaWNzLWJsb2NrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGFydENhcmRDb21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZHMvY2hhcnQtY2FyZC9jaGFydC1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9ncmVzc1RleHRDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9kYXNoYm9hcmRzL3Byb2dyZXNzLXRleHQtY2FyZC9wcm9ncmVzcy10ZXh0LWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IERhc2hib2FyZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkcy9kYXNoYm9hcmQtaGVhZGVyL2Rhc2hib2FyZC1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvdmVyYWdlTW9kdWxlQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkcy9jb3ZlcmFnZS1tb2R1bGUtY2FyZC9jb3ZlcmFnZS1tb2R1bGUtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVzdERpc3RyaWJ1dGlvbkNhcmRDb21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZHMvdGVzdC1kaXN0cmlidXRpb24tY2FyZC90ZXN0LWRpc3RyaWJ1dGlvbi1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGYWlsZWRUZXN0Q2FzZXNDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9kYXNoYm9hcmRzL2ZhaWxlZC10ZXN0LWNhc2VzLWNhcmQvZmFpbGVkLXRlc3QtY2FzZXMtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY1NlbGVjdEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLXNlbGVjdC9keW5hbWljLXNlbGVjdC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0ZWRGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3RlZC1maWx0ZXJzL3NlbGVjdGVkLWZpbHRlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IEluc2lnaHRDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9kYXNoYm9hcmRzL2luc2lnaHQtY2FyZC9pbnNpZ2h0LWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi9iYWRnZS9iYWRnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHJvcGRvd25CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2Ryb3Bkb3duLWJ1dHRvbi9kcm9wZG93bi1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEhlYXRFcnJvck1hcENlbGxDb21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZHMvaGVhdC1lcnJvci1tYXAtY2VsbC9oZWF0LWVycm9yLW1hcC1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vdGVtcGxhdGVzL3RhYmxlLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWlsd2luZE92ZXJsYXlDb250YWluZXIgfSBmcm9tICcuL3V0aWxzL3R3LW92ZXJsYXktY29udGFpbmVyJztcbmltcG9ydCB7IEZ1bGxUYWJsZUxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vZnVsbC10YWJsZS1sb2FkZXIvZnVsbC10YWJsZS1sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlRGF0YUxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtZGF0YS1sb2FkZXIvdGFibGUtZGF0YS1sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNURVBfQ09NUE9ORU5UX01BUCB9IGZyb20gJy4vZXhlY3V0aW9uLXNjcmVlbi9zdGVwLXJlZ2lzdHJ5LnRva2VuJztcbmltcG9ydCB7IEJhc2ljU3RlcENvbXBvbmVudCB9IGZyb20gJy4vZXhlY3V0aW9uLXNjcmVlbi9iYXNpYy1zdGVwL2Jhc2ljLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IFN0ZXBSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vZXhlY3V0aW9uLXNjcmVlbi9zdGVwLXJlbmRlcmVyL3N0ZXAtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFN0ZXBHcm91cENvbXBvbmVudCB9IGZyb20gJy4vZXhlY3V0aW9uLXNjcmVlbi9zdGVwLWdyb3VwL3N0ZXAtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IExvb3BTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi9leGVjdXRpb24tc2NyZWVuL2xvb3Atc3RlcC9sb29wLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmRpdGlvblN0ZXBDb21wb25lbnQgfSBmcm9tICcuL2V4ZWN1dGlvbi1zY3JlZW4vY29uZGl0aW9uLXN0ZXAvY29uZGl0aW9uLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IEZhaWxlZFN0ZXBDb21wb25lbnQgfSBmcm9tICcuL2V4ZWN1dGlvbi1zY3JlZW4vZmFpbGVkLXN0ZXAvZmFpbGVkLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IFVwZGF0ZWRGYWlsZWRTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi9leGVjdXRpb24tc2NyZWVuL3VwZGF0ZWQtZmFpbGVkLXN0ZXAvdXBkYXRlZC1mYWlsZWQtc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmlld01vcmVGYWlsZWRTdGVwQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9leGVjdXRpb24tc2NyZWVuL3ZpZXctbW9yZS1mYWlsZWQtc3RlcC1idXR0b24vdmlldy1tb3JlLWZhaWxlZC1zdGVwLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZkhlYWxBbmFseXNpc0NvbXBvbmVudCB9IGZyb20gJy4vZXhlY3V0aW9uLXNjcmVlbi9zZWxmLWhlYWwtYW5hbHlzaXMvc2VsZi1oZWFsLWFuYWx5c2lzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBSUFnZW50U3RlcENvbXBvbmVudCB9IGZyb20gJy4vZXhlY3V0aW9uLXNjcmVlbi9haS1hZ2VudC1zdGVwL2FpLWFnZW50LXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IEFJQWN0aW9uU3RlcENvbXBvbmVudCB9IGZyb20gJy4vZXhlY3V0aW9uLXNjcmVlbi9haS1hY3Rpb24tc3RlcC9haS1hY3Rpb24tc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBpU3RlcENvbXBvbmVudCB9IGZyb20gJy4vZXhlY3V0aW9uLXNjcmVlbi9hcGktc3RlcC9hcGktc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZURvd25sb2FkU3RlcENvbXBvbmVudCB9IGZyb20gJy4vZXhlY3V0aW9uLXNjcmVlbi9maWxlLWRvd25sb2FkLXN0ZXAvZmlsZS1kb3dubG9hZC1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEb2N1bWVudFZlcmlmaWNhdGlvblN0ZXBDb21wb25lbnQgfSBmcm9tICcuL2V4ZWN1dGlvbi1zY3JlZW4vZG9jdW1lbnQtdmVyaWZpY2F0aW9uLXN0ZXAvZG9jdW1lbnQtdmVyaWZpY2F0aW9uLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IExpdmVFeGVjdXRpb25TdGVwQ29tcG9uZW50IH0gZnJvbSAnLi9leGVjdXRpb24tc2NyZWVuL2xpdmUtZXhlY3V0aW9uLXN0ZXAvbGl2ZS1leGVjdXRpb24tc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWFpblN0ZXBDb2xsYXBzZUNvbXBvbmVudCB9IGZyb20gJy4vZXhlY3V0aW9uLXNjcmVlbi9tYWluLXN0ZXAtY29sbGFwc2UvbWFpbi1zdGVwLWNvbGxhcHNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWaXN1YWxDb21wYXJpc29uQ29tcG9uZW50IH0gZnJvbSAnLi9leGVjdXRpb24tc2NyZWVuL3Zpc3VhbC1jb21wYXJpc29uL3Zpc3VhbC1jb21wYXJpc29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW11bGF0b3JDb21wb25lbnQgfSBmcm9tICcuL3NpbXVsYXRvci9zaW11bGF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnNvbGVBbGVydENvbXBvbmVudCB9IGZyb20gJy4vY29uc29sZS1hbGVydC9jb25zb2xlLWFsZXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBaURlYnVnQWxlcnRDb21wb25lbnQgfSBmcm9tICcuL2FpLWRlYnVnLWFsZXJ0L2FpLWRlYnVnLWFsZXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZXR3b3JrUmVxdWVzdENvbXBvbmVudCB9IGZyb20gJy4vbmV0d29yay1yZXF1ZXN0L25ldHdvcmstcmVxdWVzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUnVuSGlzdG9yeUNhcmRDb21wb25lbnQgfSBmcm9tICcuL3J1bi1oaXN0b3J5LWNhcmQvcnVuLWhpc3RvcnktY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmlzdWFsRGlmZmVyZW5jZU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi92aXN1YWwtZGlmZmVyZW5jZS1tb2RhbC92aXN1YWwtZGlmZmVyZW5jZS1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkNhcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb24tY2FyZC9jb25maWd1cmF0aW9uLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBhcmVSdW5zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wYXJlLXJ1bnMvY29tcGFyZS1ydW5zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJdGVyYXRpb25zTG9vcENvbXBvbmVudCB9IGZyb20gJy4vaXRlcmF0aW9ucy1sb29wL2l0ZXJhdGlvbnMtbG9vcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmFpbGVkU3RlcENhcmRDb21wb25lbnQgfSBmcm9tICcuL2ZhaWxlZC1zdGVwLWNhcmQvZmFpbGVkLXN0ZXAtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2N1c3RvbS1pbnB1dC9jdXN0b20taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbVRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9jdXN0b20tdGV4dGFyZWEvY3VzdG9tLXRleHRhcmVhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21Ub2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2N1c3RvbS10b2dnbGUvY3VzdG9tLXRvZ2dsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7IEFpUmVhc29uaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9haS1yZWFzb25pbmcvYWktcmVhc29uaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFeGVjdXRpb25SZXN1bHRNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vZXhlY3V0aW9uLXJlc3VsdC1tb2RhbC9leGVjdXRpb24tcmVzdWx0LW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFcnJvck1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9lcnJvci1tb2RhbC9lcnJvci1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NJbmRpY2F0b3JDb21wb25lbnQgfSBmcm9tICcuL3Byb2dyZXNzLWluZGljYXRvci9wcm9ncmVzcy1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFN0ZXBQcm9ncmVzc0NhcmRDb21wb25lbnQgfSBmcm9tICcuL3N0ZXAtcHJvZ3Jlc3MtY2FyZC9zdGVwLXByb2dyZXNzLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IFN0ZXBTdGF0dXNDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9zdGVwLXN0YXR1cy1jYXJkL3N0ZXAtc3RhdHVzLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IERiVmVyaWZpY2F0aW9uU3RlcENvbXBvbmVudCB9IGZyb20gJy4vZXhlY3V0aW9uLXNjcmVlbi9kYi12ZXJpZmljYXRpb24tc3RlcC9kYi12ZXJpZmljYXRpb24tc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGJRdWVyeUV4ZWN1dGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2V4ZWN1dGlvbi1zY3JlZW4vZGItcXVlcnktZXhlY3V0aW9uLWl0ZW0vZGItcXVlcnktZXhlY3V0aW9uLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFRlc3RDYXNlTm9ybWFsU3RlcENvbXBvbmVudCB9IGZyb20gJy4vdGVzdC1jYXNlLWRldGFpbHMvbm9ybWFsLXN0ZXAvbm9ybWFsLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRlc3RDYXNlTG9vcFN0ZXBDb21wb25lbnQgfSBmcm9tICcuL3Rlc3QtY2FzZS1kZXRhaWxzL2xvb3Atc3RlcC9sb29wLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRlc3RDYXNlQ29uZGl0aW9uU3RlcENvbXBvbmVudCB9IGZyb20gJy4vdGVzdC1jYXNlLWRldGFpbHMvY29uZGl0aW9uLXN0ZXAvY29uZGl0aW9uLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRlc3RDYXNlU3RlcEdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy9zdGVwLWdyb3VwL3N0ZXAtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRlc3RDYXNlRGV0YWlsc1JlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy90ZXN0LWNhc2UtZGV0YWlscy1yZW5kZXJlci90ZXN0LWNhc2UtZGV0YWlscy1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVzdENhc2VBcGlTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy9hcGktc3RlcC9hcGktc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVzdENhc2VEYXRhYmFzZVN0ZXBDb21wb25lbnQgfSBmcm9tICcuL3Rlc3QtY2FzZS1kZXRhaWxzL2RhdGFiYXNlLXN0ZXAvZGF0YWJhc2Utc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVzdENhc2VBaUFnZW50U3RlcENvbXBvbmVudCB9IGZyb20gJy4vdGVzdC1jYXNlLWRldGFpbHMvYWktYWdlbnQtc3RlcC9haS1hZ2VudC1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXN0Q2FzZUFpVmVyaWZ5U3RlcENvbXBvbmVudCB9IGZyb20gJy4vdGVzdC1jYXNlLWRldGFpbHMvYWktdmVyaWZ5LXN0ZXAvYWktdmVyaWZ5LXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRlc3RDYXNlVXBsb2FkU3RlcENvbXBvbmVudCB9IGZyb20gJy4vdGVzdC1jYXNlLWRldGFpbHMvdXBsb2FkLXN0ZXAvdXBsb2FkLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRlc3RDYXNlU2NyZWVuc2hvdFN0ZXBDb21wb25lbnQgfSBmcm9tICcuL3Rlc3QtY2FzZS1kZXRhaWxzL3NjcmVlbnNob3Qtc3RlcC9zY3JlZW5zaG90LXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRlc3RDYXNlU2Nyb2xsU3RlcENvbXBvbmVudCB9IGZyb20gJy4vdGVzdC1jYXNlLWRldGFpbHMvc2Nyb2xsLXN0ZXAvc2Nyb2xsLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRlc3RDYXNlVmVyaWZ5VXJsU3RlcENvbXBvbmVudCB9IGZyb20gJy4vdGVzdC1jYXNlLWRldGFpbHMvdmVyaWZ5LXVybC1zdGVwL3ZlcmlmeS11cmwtc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVzdENhc2VSZXN0b3JlU2Vzc2lvblN0ZXBDb21wb25lbnQgfSBmcm9tICcuL3Rlc3QtY2FzZS1kZXRhaWxzL3Jlc3RvcmUtc2Vzc2lvbi1zdGVwL3Jlc3RvcmUtc2Vzc2lvbi1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXN0Q2FzZUN1c3RvbUNvZGVTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy9jdXN0b20tY29kZS1zdGVwL2N1c3RvbS1jb2RlLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbUVkaXRTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy9jdXN0b20tZWRpdC1zdGVwL2N1c3RvbS1lZGl0LXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IEl0ZW1MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9pdGVtLWxpc3QvaXRlbS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXN0RGF0YU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy90ZXN0LWRhdGEtbW9kYWwvdGVzdC1kYXRhLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBURVNUX0NBU0VfU1RFUF9DT01QT05FTlRfTUFQIH0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy90ZXN0LWNhc2Utc3RlcC1jb21wb25lbnRzLnRva2VuJztcbmltcG9ydCB7IExpdmVDb252ZXJzYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2xpdmUtY29udmVyc2F0aW9uL2xpdmUtY29udmVyc2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEbmRNb2R1bGUgfSBmcm9tICduZ3gtZHJhZy1kcm9wJztcbmltcG9ydCB7IFN0ZXBCdWlsZGVyQWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zdGVwLWJ1aWxkZXIvc3RlcC1idWlsZGVyLWFjdGlvbi9zdGVwLWJ1aWxkZXItYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGVwQnVpbGRlckxvb3BDb21wb25lbnQgfSBmcm9tICcuL3N0ZXAtYnVpbGRlci9zdGVwLWJ1aWxkZXItbG9vcC9zdGVwLWJ1aWxkZXItbG9vcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWxlbWVudFBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy9lbGVtZW50LXBvcHVwL2VsZW1lbnQtcG9wdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFN0ZXBCdWlsZGVyQ29uZGl0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zdGVwLWJ1aWxkZXIvc3RlcC1idWlsZGVyLWNvbmRpdGlvbi9zdGVwLWJ1aWxkZXItY29uZGl0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGVwQnVpbGRlckRhdGFiYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9zdGVwLWJ1aWxkZXIvc3RlcC1idWlsZGVyLWRhdGFiYXNlL3N0ZXAtYnVpbGRlci1kYXRhYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RlcEJ1aWxkZXJBaUFnZW50Q29tcG9uZW50IH0gZnJvbSAnLi9zdGVwLWJ1aWxkZXIvc3RlcC1idWlsZGVyLWFpLWFnZW50L3N0ZXAtYnVpbGRlci1haS1hZ2VudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RlcEJ1aWxkZXJDdXN0b21Db2RlQ29tcG9uZW50IH0gZnJvbSAnLi9zdGVwLWJ1aWxkZXIvc3RlcC1idWlsZGVyLWN1c3RvbS1jb2RlL3N0ZXAtYnVpbGRlci1jdXN0b20tY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RlcEJ1aWxkZXJSZWNvcmRTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi9zdGVwLWJ1aWxkZXIvc3RlcC1idWlsZGVyLXJlY29yZC1zdGVwL3N0ZXAtYnVpbGRlci1yZWNvcmQtc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RlcEJ1aWxkZXJEb2N1bWVudEdlbmVyYXRpb25UZW1wbGF0ZVN0ZXBDb21wb25lbnQgfSBmcm9tICcuL3N0ZXAtYnVpbGRlci9zdGVwLWJ1aWxkZXItZG9jdW1lbnQtZ2VuZXJhdGlvbi10ZW1wbGF0ZS1zdGVwL3N0ZXAtYnVpbGRlci1kb2N1bWVudC1nZW5lcmF0aW9uLXRlbXBsYXRlLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IEVsZW1lbnRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy9lbGVtZW50LWxpc3QvZWxlbWVudC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGVwQnVpbGRlckRvY3VtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9zdGVwLWJ1aWxkZXIvc3RlcC1idWlsZGVyLWRvY3VtZW50L3N0ZXAtYnVpbGRlci1kb2N1bWVudC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgU2VhcmNoQmFyQ29tcG9uZW50LFxuICAgIFNlZ21lbnRDb250cm9sQ29tcG9uZW50LFxuICAgIERpYWxvZ0NvbXBvbmVudCxcbiAgICBEeW5hbWljVGFibGVDb21wb25lbnQsXG4gICAgRHluYW1pY0NlbGxUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBEeW5hbWljSGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgRHluYW1pY0NlbGxDb250YWluZXJEaXJlY3RpdmUsXG4gICAgUGFnaW5hdGlvbkNvbXBvbmVudCxcbiAgICBBY3Rpb25NZW51QnV0dG9uQ29tcG9uZW50LFxuICAgIE90aGVyQnV0dG9uQ29tcG9uZW50LFxuICAgIER5bmFtaWNGaWx0ZXJDb21wb25lbnQsXG4gICAgRGF0ZXJhbmdlcGlja2VyRGlyZWN0aXZlLFxuICAgIERhdGVyYW5nZXBpY2tlckNvbXBvbmVudCxcbiAgICBDb2x1bW5WaXNpYmlsaXR5Q29tcG9uZW50LFxuICAgIFRhYmxlQWN0aW9uVG9vbGJhckNvbXBvbmVudCxcbiAgICBNZXRyaWNzQ2FyZENvbXBvbmVudCxcbiAgICBNZXRyaWNzQmxvY2tDb21wb25lbnQsXG4gICAgQ2hhcnRDYXJkQ29tcG9uZW50LFxuICAgIFByb2dyZXNzVGV4dENhcmRDb21wb25lbnQsXG4gICAgRGFzaGJvYXJkSGVhZGVyQ29tcG9uZW50LFxuICAgIENvdmVyYWdlTW9kdWxlQ2FyZENvbXBvbmVudCxcbiAgICBUZXN0RGlzdHJpYnV0aW9uQ2FyZENvbXBvbmVudCxcbiAgICBGYWlsZWRUZXN0Q2FzZXNDYXJkQ29tcG9uZW50LFxuICAgIER5bmFtaWNTZWxlY3RGaWVsZENvbXBvbmVudCxcbiAgICBTZWxlY3RlZEZpbHRlcnNDb21wb25lbnQsXG4gICAgSW5zaWdodENhcmRDb21wb25lbnQsXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgRHJvcGRvd25CdXR0b25Db21wb25lbnQsXG4gICAgSGVhdEVycm9yTWFwQ2VsbENvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIFRhYmxlVGVtcGxhdGVDb21wb25lbnQsXG4gICAgRnVsbFRhYmxlTG9hZGVyQ29tcG9uZW50LFxuICAgIFRhYmxlRGF0YUxvYWRlckNvbXBvbmVudCxcbiAgICBCYXNpY1N0ZXBDb21wb25lbnQsXG4gICAgU3RlcFJlbmRlcmVyQ29tcG9uZW50LFxuICAgIFN0ZXBHcm91cENvbXBvbmVudCxcbiAgICBMb29wU3RlcENvbXBvbmVudCxcbiAgICBDb25kaXRpb25TdGVwQ29tcG9uZW50LFxuICAgIEZhaWxlZFN0ZXBDb21wb25lbnQsXG4gICAgVXBkYXRlZEZhaWxlZFN0ZXBDb21wb25lbnQsXG4gICAgVmlld01vcmVGYWlsZWRTdGVwQnV0dG9uQ29tcG9uZW50LFxuICAgIFNlbGZIZWFsQW5hbHlzaXNDb21wb25lbnQsXG4gICAgQUlBZ2VudFN0ZXBDb21wb25lbnQsXG4gICAgQUlBY3Rpb25TdGVwQ29tcG9uZW50LFxuICAgIEFwaVN0ZXBDb21wb25lbnQsXG4gICAgRmlsZURvd25sb2FkU3RlcENvbXBvbmVudCxcbiAgICBEb2N1bWVudFZlcmlmaWNhdGlvblN0ZXBDb21wb25lbnQsXG4gICAgTGl2ZUV4ZWN1dGlvblN0ZXBDb21wb25lbnQsXG4gICAgTWFpblN0ZXBDb2xsYXBzZUNvbXBvbmVudCxcbiAgICBWaXN1YWxDb21wYXJpc29uQ29tcG9uZW50LFxuICAgIFNpbXVsYXRvckNvbXBvbmVudCxcbiAgICBDb25zb2xlQWxlcnRDb21wb25lbnQsXG4gICAgQWlEZWJ1Z0FsZXJ0Q29tcG9uZW50LFxuICAgIE5ldHdvcmtSZXF1ZXN0Q29tcG9uZW50LFxuICAgIFJ1bkhpc3RvcnlDYXJkQ29tcG9uZW50LFxuICAgIFZpc3VhbERpZmZlcmVuY2VNb2RhbENvbXBvbmVudCxcbiAgICBDb25maWd1cmF0aW9uQ2FyZENvbXBvbmVudCxcbiAgICBDb21wYXJlUnVuc0NvbXBvbmVudCxcbiAgICBJdGVyYXRpb25zTG9vcENvbXBvbmVudCxcbiAgICBGYWlsZWRTdGVwQ2FyZENvbXBvbmVudCxcbiAgICBDdXN0b21JbnB1dENvbXBvbmVudCxcbiAgICBDdXN0b21UZXh0YXJlYUNvbXBvbmVudCxcbiAgICBDdXN0b21Ub2dnbGVDb21wb25lbnQsXG4gICAgRmlsZVVwbG9hZENvbXBvbmVudCxcbiAgICBBaVJlYXNvbmluZ0NvbXBvbmVudCxcbiAgICBFeGVjdXRpb25SZXN1bHRNb2RhbENvbXBvbmVudCxcbiAgICBFcnJvck1vZGFsQ29tcG9uZW50LFxuICAgIFByb2dyZXNzSW5kaWNhdG9yQ29tcG9uZW50LFxuICAgIFN0ZXBQcm9ncmVzc0NhcmRDb21wb25lbnQsXG4gICAgU3RlcFN0YXR1c0NhcmRDb21wb25lbnQsXG4gICAgRGJWZXJpZmljYXRpb25TdGVwQ29tcG9uZW50LFxuICAgIERiUXVlcnlFeGVjdXRpb25JdGVtQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlTm9ybWFsU3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZUxvb3BTdGVwQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlQ29uZGl0aW9uU3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZVN0ZXBHcm91cENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZURldGFpbHNSZW5kZXJlckNvbXBvbmVudCxcbiAgICBUZXN0Q2FzZUFwaVN0ZXBDb21wb25lbnQsXG4gICAgVGVzdENhc2VEYXRhYmFzZVN0ZXBDb21wb25lbnQsXG4gICAgVGVzdENhc2VBaUFnZW50U3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZUFpVmVyaWZ5U3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZVVwbG9hZFN0ZXBDb21wb25lbnQsXG4gICAgVGVzdENhc2VTY3JlZW5zaG90U3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZVNjcm9sbFN0ZXBDb21wb25lbnQsXG4gICAgVGVzdENhc2VWZXJpZnlVcmxTdGVwQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlUmVzdG9yZVNlc3Npb25TdGVwQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlQ3VzdG9tQ29kZVN0ZXBDb21wb25lbnQsXG4gICAgQ3VzdG9tRWRpdFN0ZXBDb21wb25lbnQsXG4gICAgSXRlbUxpc3RDb21wb25lbnQsXG4gICAgVGVzdERhdGFNb2RhbENvbXBvbmVudCxcbiAgICBMaXZlQ29udmVyc2F0aW9uQ29tcG9uZW50LFxuICAgIFN0ZXBCdWlsZGVyQWN0aW9uQ29tcG9uZW50LFxuICAgIFN0ZXBCdWlsZGVyTG9vcENvbXBvbmVudCxcbiAgICBFbGVtZW50UG9wdXBDb21wb25lbnQsXG4gICAgU3RlcEJ1aWxkZXJDb25kaXRpb25Db21wb25lbnQsXG4gICAgU3RlcEJ1aWxkZXJEYXRhYmFzZUNvbXBvbmVudCxcbiAgICBTdGVwQnVpbGRlckFpQWdlbnRDb21wb25lbnQsXG4gICAgU3RlcEJ1aWxkZXJDdXN0b21Db2RlQ29tcG9uZW50LFxuICAgIFN0ZXBCdWlsZGVyUmVjb3JkU3RlcENvbXBvbmVudCxcbiAgICBTdGVwQnVpbGRlckRvY3VtZW50R2VuZXJhdGlvblRlbXBsYXRlU3RlcENvbXBvbmVudCxcbiAgICBFbGVtZW50TGlzdENvbXBvbmVudCxcbiAgICBTdGVwQnVpbGRlckRvY3VtZW50Q29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICBNYXRSYWRpb01vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIE1hdE5hdGl2ZURhdGVNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE92ZXJsYXlNb2R1bGUsXG4gICAgUG9ydGFsTW9kdWxlLFxuICAgIE5neFR5cGVkSnNNb2R1bGUsXG4gICAgRG5kTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgU2VhcmNoQmFyQ29tcG9uZW50LFxuICAgIFNlZ21lbnRDb250cm9sQ29tcG9uZW50LFxuICAgIERpYWxvZ0NvbXBvbmVudCxcbiAgICBEeW5hbWljVGFibGVDb21wb25lbnQsXG4gICAgRHluYW1pY0NlbGxUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBEeW5hbWljSGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgRHluYW1pY0NlbGxDb250YWluZXJEaXJlY3RpdmUsXG4gICAgUGFnaW5hdGlvbkNvbXBvbmVudCxcbiAgICBBY3Rpb25NZW51QnV0dG9uQ29tcG9uZW50LFxuICAgIE90aGVyQnV0dG9uQ29tcG9uZW50LFxuICAgIER5bmFtaWNGaWx0ZXJDb21wb25lbnQsXG4gICAgRGF0ZXJhbmdlcGlja2VyRGlyZWN0aXZlLFxuICAgIERhdGVyYW5nZXBpY2tlckNvbXBvbmVudCxcbiAgICBDb2x1bW5WaXNpYmlsaXR5Q29tcG9uZW50LFxuICAgIFRhYmxlQWN0aW9uVG9vbGJhckNvbXBvbmVudCxcbiAgICBNZXRyaWNzQ2FyZENvbXBvbmVudCxcbiAgICBDaGFydENhcmRDb21wb25lbnQsXG4gICAgUHJvZ3Jlc3NUZXh0Q2FyZENvbXBvbmVudCxcbiAgICBEYXNoYm9hcmRIZWFkZXJDb21wb25lbnQsXG4gICAgQ292ZXJhZ2VNb2R1bGVDYXJkQ29tcG9uZW50LFxuICAgIFRlc3REaXN0cmlidXRpb25DYXJkQ29tcG9uZW50LFxuICAgIEZhaWxlZFRlc3RDYXNlc0NhcmRDb21wb25lbnQsXG4gICAgRHluYW1pY1NlbGVjdEZpZWxkQ29tcG9uZW50LFxuICAgIFNlbGVjdGVkRmlsdGVyc0NvbXBvbmVudCxcbiAgICBJbnNpZ2h0Q2FyZENvbXBvbmVudCxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBEcm9wZG93bkJ1dHRvbkNvbXBvbmVudCxcbiAgICBIZWF0RXJyb3JNYXBDZWxsQ29tcG9uZW50LFxuICAgIEVtcHR5U3RhdGVDb21wb25lbnQsXG4gICAgVGFibGVUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICBGdWxsVGFibGVMb2FkZXJDb21wb25lbnQsXG4gICAgVGFibGVEYXRhTG9hZGVyQ29tcG9uZW50LFxuICAgIEJhc2ljU3RlcENvbXBvbmVudCxcbiAgICBTdGVwUmVuZGVyZXJDb21wb25lbnQsXG4gICAgU3RlcEdyb3VwQ29tcG9uZW50LFxuICAgIExvb3BTdGVwQ29tcG9uZW50LFxuICAgIENvbmRpdGlvblN0ZXBDb21wb25lbnQsXG4gICAgRmFpbGVkU3RlcENvbXBvbmVudCxcbiAgICBVcGRhdGVkRmFpbGVkU3RlcENvbXBvbmVudCxcbiAgICBWaWV3TW9yZUZhaWxlZFN0ZXBCdXR0b25Db21wb25lbnQsXG4gICAgU2VsZkhlYWxBbmFseXNpc0NvbXBvbmVudCxcbiAgICBBSUFnZW50U3RlcENvbXBvbmVudCxcbiAgICBBSUFjdGlvblN0ZXBDb21wb25lbnQsXG4gICAgQXBpU3RlcENvbXBvbmVudCxcbiAgICBGaWxlRG93bmxvYWRTdGVwQ29tcG9uZW50LFxuICAgIERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbXBvbmVudCxcbiAgICBMaXZlRXhlY3V0aW9uU3RlcENvbXBvbmVudCxcbiAgICBNYWluU3RlcENvbGxhcHNlQ29tcG9uZW50LFxuICAgIFZpc3VhbENvbXBhcmlzb25Db21wb25lbnQsXG4gICAgU2ltdWxhdG9yQ29tcG9uZW50LFxuICAgIENvbnNvbGVBbGVydENvbXBvbmVudCxcbiAgICBBaURlYnVnQWxlcnRDb21wb25lbnQsXG4gICAgTmV0d29ya1JlcXVlc3RDb21wb25lbnQsXG4gICAgUnVuSGlzdG9yeUNhcmRDb21wb25lbnQsXG4gICAgVmlzdWFsRGlmZmVyZW5jZU1vZGFsQ29tcG9uZW50LFxuICAgIENvbmZpZ3VyYXRpb25DYXJkQ29tcG9uZW50LFxuICAgIENvbXBhcmVSdW5zQ29tcG9uZW50LFxuICAgIEl0ZXJhdGlvbnNMb29wQ29tcG9uZW50LFxuICAgIEZhaWxlZFN0ZXBDYXJkQ29tcG9uZW50LFxuICAgIEN1c3RvbUlucHV0Q29tcG9uZW50LFxuICAgIEN1c3RvbVRleHRhcmVhQ29tcG9uZW50LFxuICAgIEN1c3RvbVRvZ2dsZUNvbXBvbmVudCxcbiAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxuICAgIEFpUmVhc29uaW5nQ29tcG9uZW50LFxuICAgIEV4ZWN1dGlvblJlc3VsdE1vZGFsQ29tcG9uZW50LFxuICAgIEVycm9yTW9kYWxDb21wb25lbnQsXG4gICAgUHJvZ3Jlc3NJbmRpY2F0b3JDb21wb25lbnQsXG4gICAgU3RlcFByb2dyZXNzQ2FyZENvbXBvbmVudCxcbiAgICBTdGVwU3RhdHVzQ2FyZENvbXBvbmVudCxcbiAgICBEYlZlcmlmaWNhdGlvblN0ZXBDb21wb25lbnQsXG4gICAgRGJRdWVyeUV4ZWN1dGlvbkl0ZW1Db21wb25lbnQsXG4gICAgVGVzdENhc2VOb3JtYWxTdGVwQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlTG9vcFN0ZXBDb21wb25lbnQsXG4gICAgVGVzdENhc2VDb25kaXRpb25TdGVwQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlU3RlcEdyb3VwQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlRGV0YWlsc1JlbmRlcmVyQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlQXBpU3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZURhdGFiYXNlU3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZUFpQWdlbnRTdGVwQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlVXBsb2FkU3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZVNjcmVlbnNob3RTdGVwQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlU2Nyb2xsU3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZVZlcmlmeVVybFN0ZXBDb21wb25lbnQsXG4gICAgVGVzdENhc2VSZXN0b3JlU2Vzc2lvblN0ZXBDb21wb25lbnQsXG4gICAgVGVzdENhc2VDdXN0b21Db2RlU3RlcENvbXBvbmVudCxcbiAgICBDdXN0b21FZGl0U3RlcENvbXBvbmVudCxcbiAgICBJdGVtTGlzdENvbXBvbmVudCxcbiAgICBUZXN0RGF0YU1vZGFsQ29tcG9uZW50LFxuICAgIExpdmVDb252ZXJzYXRpb25Db21wb25lbnQsXG4gICAgU3RlcEJ1aWxkZXJBY3Rpb25Db21wb25lbnQsXG4gICAgU3RlcEJ1aWxkZXJMb29wQ29tcG9uZW50LFxuICAgIEVsZW1lbnRQb3B1cENvbXBvbmVudCxcbiAgICBTdGVwQnVpbGRlckNvbmRpdGlvbkNvbXBvbmVudCxcbiAgICBTdGVwQnVpbGRlckRhdGFiYXNlQ29tcG9uZW50LFxuICAgIFN0ZXBCdWlsZGVyQWlBZ2VudENvbXBvbmVudCxcbiAgICBTdGVwQnVpbGRlckN1c3RvbUNvZGVDb21wb25lbnQsXG4gICAgU3RlcEJ1aWxkZXJSZWNvcmRTdGVwQ29tcG9uZW50LFxuICAgIFN0ZXBCdWlsZGVyRG9jdW1lbnRHZW5lcmF0aW9uVGVtcGxhdGVTdGVwQ29tcG9uZW50LFxuICAgIEVsZW1lbnRMaXN0Q29tcG9uZW50LFxuICAgIFN0ZXBCdWlsZGVyRG9jdW1lbnRDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogT3ZlcmxheUNvbnRhaW5lciwgdXNlQ2xhc3M6IFRhaWx3aW5kT3ZlcmxheUNvbnRhaW5lciB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFRFU1RfQ0FTRV9TVEVQX0NPTVBPTkVOVF9NQVAsXG4gICAgICB1c2VWYWx1ZToge1xuICAgICAgICBzdGVwR3JvdXA6IFRlc3RDYXNlU3RlcEdyb3VwQ29tcG9uZW50LFxuICAgICAgICBjb25kaXRpb25TdGVwOiBUZXN0Q2FzZUNvbmRpdGlvblN0ZXBDb21wb25lbnQsXG4gICAgICAgIGxvb3BTdGVwOiBUZXN0Q2FzZUxvb3BTdGVwQ29tcG9uZW50LFxuICAgICAgICBub3JtYWxTdGVwOiBUZXN0Q2FzZU5vcm1hbFN0ZXBDb21wb25lbnQsXG4gICAgICAgIGFwaVN0ZXA6IFRlc3RDYXNlQXBpU3RlcENvbXBvbmVudCxcbiAgICAgICAgZGF0YWJhc2VTdGVwOiBUZXN0Q2FzZURhdGFiYXNlU3RlcENvbXBvbmVudCxcbiAgICAgICAgYWlBZ2VudFN0ZXA6IFRlc3RDYXNlQWlBZ2VudFN0ZXBDb21wb25lbnQsXG4gICAgICAgIGFpVmVyaWZ5U3RlcDogVGVzdENhc2VBaVZlcmlmeVN0ZXBDb21wb25lbnQsXG4gICAgICAgIHVwbG9hZFN0ZXA6IFRlc3RDYXNlVXBsb2FkU3RlcENvbXBvbmVudCxcbiAgICAgICAgc2NyZWVuc2hvdFN0ZXA6IFRlc3RDYXNlU2NyZWVuc2hvdFN0ZXBDb21wb25lbnQsXG4gICAgICAgIHNjcm9sbFN0ZXA6IFRlc3RDYXNlU2Nyb2xsU3RlcENvbXBvbmVudCxcbiAgICAgICAgdmVyaWZ5VXJsU3RlcDogVGVzdENhc2VWZXJpZnlVcmxTdGVwQ29tcG9uZW50LFxuICAgICAgICByZXN0b3JlU2Vzc2lvblN0ZXA6IFRlc3RDYXNlUmVzdG9yZVNlc3Npb25TdGVwQ29tcG9uZW50LFxuICAgICAgICBjdXN0b21Db2RlU3RlcDogVGVzdENhc2VDdXN0b21Db2RlU3RlcENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBTVEVQX0NPTVBPTkVOVF9NQVAsXG4gICAgICB1c2VWYWx1ZTogbmV3IE1hcDxzdHJpbmcsIFR5cGU8YW55Pj4oW1xuICAgICAgICBbJ2Jhc2ljJywgQmFzaWNTdGVwQ29tcG9uZW50XSxcbiAgICAgICAgWydzdGVwLWdyb3VwJywgU3RlcEdyb3VwQ29tcG9uZW50XSxcbiAgICAgICAgWydsb29wJywgTG9vcFN0ZXBDb21wb25lbnRdLFxuICAgICAgICBbJ2NvbmRpdGlvbicsIENvbmRpdGlvblN0ZXBDb21wb25lbnRdLFxuICAgICAgICBbJ2ZhaWxlZCcsIEZhaWxlZFN0ZXBDb21wb25lbnRdLFxuICAgICAgICBbJ3VwZGF0ZWQtZmFpbGVkJywgVXBkYXRlZEZhaWxlZFN0ZXBDb21wb25lbnRdLFxuICAgICAgICBbJ2FpLWFnZW50JywgQUlBZ2VudFN0ZXBDb21wb25lbnRdLFxuICAgICAgICBbJ2FpLWFjdGlvbicsIEFJQWN0aW9uU3RlcENvbXBvbmVudF0sXG4gICAgICAgIFsnYXBpJywgQXBpU3RlcENvbXBvbmVudF0sXG4gICAgICAgIFsnZmlsZS1kb3dubG9hZCcsIEZpbGVEb3dubG9hZFN0ZXBDb21wb25lbnRdLFxuICAgICAgICBbJ2RvY3VtZW50LXZlcmlmaWNhdGlvbicsIERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbXBvbmVudF0sXG4gICAgICAgIFsnbGl2ZS1leGVjdXRpb24nLCBMaXZlRXhlY3V0aW9uU3RlcENvbXBvbmVudF0sXG4gICAgICAgIFsnZGItdmVyaWZpY2F0aW9uJywgRGJWZXJpZmljYXRpb25TdGVwQ29tcG9uZW50XSxcbiAgICAgIF0pXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFVpS2l0TW9kdWxlIHtcbiAgY29uc3RydWN0b3IoaWNvblJlZ2lzdHJ5OiBNYXRJY29uUmVnaXN0cnkpIHtcbiAgICBpY29uUmVnaXN0cnkucmVnaXN0ZXJGb250Q2xhc3NBbGlhcygnbWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCcsICdtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkJyk7XG4gIH1cbn1cblxuIl19
|
|
702
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkta2l0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdWkta2l0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGdC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aW1wb3J0IHsgTmdNb2R1bGUsIGZvcndhcmRSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEljb25SZWdpc3RyeSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUsIE92ZXJsYXlDb250YWluZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ3hUeXBlZEpzTW9kdWxlIH0gZnJvbSAnbmd4LXR5cGVkLWpzJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9zZWFyY2gtYmFyL3NlYXJjaC1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNlZ21lbnRDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi9zZWdtZW50LWNvbnRyb2wvc2VnbWVudC1jb250cm9sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljQ2VsbFRlbXBsYXRlRGlyZWN0aXZlLCBEeW5hbWljSGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL3RhYmxlL2R5bmFtaWMtdGFibGUvZHluYW1pYy1jZWxsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEeW5hbWljQ2VsbENvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gJy4vdGFibGUvZHluYW1pYy10YWJsZS9keW5hbWljLWNlbGwtY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGlvbk1lbnVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2FjdGlvbi1tZW51L2FjdGlvbi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPdGhlckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vb3RoZXItYnV0dG9uL290aGVyLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0ZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vZmlsdGVycy9keW5hbWljLWZpbHRlci9keW5hbWljLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZXJhbmdlcGlja2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9maWx0ZXJzL2RhdGVyYW5nZXBpY2tlci9kYXRlcmFuZ2VwaWNrZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IERhdGVyYW5nZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vZmlsdGVycy9kYXRlcmFuZ2VwaWNrZXIvZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2x1bW5WaXNpYmlsaXR5Q29tcG9uZW50IH0gZnJvbSAnLi9jb2x1bW4tdmlzaWJpbGl0eS9jb2x1bW4tdmlzaWJpbGl0eS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVBY3Rpb25Ub29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1hY3Rpb24tdG9vbGJhci90YWJsZS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWV0cmljc0NhcmRDb21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZHMvbWV0cmljcy1jYXJkL21ldHJpY3MtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWV0cmljc0Jsb2NrQ29tcG9uZW50IH0gZnJvbSAnLi9kYXNoYm9hcmRzL21ldHJpY3MtY2FyZC9tZXRyaWNzLWJsb2NrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGFydENhcmRDb21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZHMvY2hhcnQtY2FyZC9jaGFydC1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9ncmVzc1RleHRDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9kYXNoYm9hcmRzL3Byb2dyZXNzLXRleHQtY2FyZC9wcm9ncmVzcy10ZXh0LWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IERhc2hib2FyZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkcy9kYXNoYm9hcmQtaGVhZGVyL2Rhc2hib2FyZC1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvdmVyYWdlTW9kdWxlQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkcy9jb3ZlcmFnZS1tb2R1bGUtY2FyZC9jb3ZlcmFnZS1tb2R1bGUtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVzdERpc3RyaWJ1dGlvbkNhcmRDb21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZHMvdGVzdC1kaXN0cmlidXRpb24tY2FyZC90ZXN0LWRpc3RyaWJ1dGlvbi1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGYWlsZWRUZXN0Q2FzZXNDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9kYXNoYm9hcmRzL2ZhaWxlZC10ZXN0LWNhc2VzLWNhcmQvZmFpbGVkLXRlc3QtY2FzZXMtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY1NlbGVjdEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLXNlbGVjdC9keW5hbWljLXNlbGVjdC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRkUHJlcmVxdWlzaXRlQ2FzZXNTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtcHJlcmVxdWlzaXRlLWNhc2VzLXNlY3Rpb24vYWRkLXByZXJlcXVpc2l0ZS1jYXNlcy1zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RlZEZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdGVkLWZpbHRlcnMvc2VsZWN0ZWQtZmlsdGVycy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5zaWdodENhcmRDb21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZHMvaW5zaWdodC1jYXJkL2luc2lnaHQtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQgfSBmcm9tICcuL2JhZGdlL2JhZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEcm9wZG93bkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vZHJvcGRvd24tYnV0dG9uL2Ryb3Bkb3duLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGVhdEVycm9yTWFwQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkcy9oZWF0LWVycm9yLW1hcC1jZWxsL2hlYXQtZXJyb3ItbWFwLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZVRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi90ZW1wbGF0ZXMvdGFibGUtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRhaWx3aW5kT3ZlcmxheUNvbnRhaW5lciB9IGZyb20gJy4vdXRpbHMvdHctb3ZlcmxheS1jb250YWluZXInO1xuaW1wb3J0IHsgRnVsbFRhYmxlTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9mdWxsLXRhYmxlLWxvYWRlci9mdWxsLXRhYmxlLWxvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVEYXRhTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1kYXRhLWxvYWRlci90YWJsZS1kYXRhLWxvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU1RFUF9DT01QT05FTlRfTUFQIH0gZnJvbSAnLi9leGVjdXRpb24tc2NyZWVuL3N0ZXAtcmVnaXN0cnkudG9rZW4nO1xuaW1wb3J0IHsgQmFzaWNTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi9leGVjdXRpb24tc2NyZWVuL2Jhc2ljLXN0ZXAvYmFzaWMtc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RlcFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9leGVjdXRpb24tc2NyZWVuL3N0ZXAtcmVuZGVyZXIvc3RlcC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RlcEdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9leGVjdXRpb24tc2NyZWVuL3N0ZXAtZ3JvdXAvc3RlcC1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9vcFN0ZXBDb21wb25lbnQgfSBmcm9tICcuL2V4ZWN1dGlvbi1zY3JlZW4vbG9vcC1zdGVwL2xvb3Atc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZGl0aW9uU3RlcENvbXBvbmVudCB9IGZyb20gJy4vZXhlY3V0aW9uLXNjcmVlbi9jb25kaXRpb24tc3RlcC9jb25kaXRpb24tc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmFpbGVkU3RlcENvbXBvbmVudCB9IGZyb20gJy4vZXhlY3V0aW9uLXNjcmVlbi9mYWlsZWQtc3RlcC9mYWlsZWQtc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBkYXRlZEZhaWxlZFN0ZXBDb21wb25lbnQgfSBmcm9tICcuL2V4ZWN1dGlvbi1zY3JlZW4vdXBkYXRlZC1mYWlsZWQtc3RlcC91cGRhdGVkLWZhaWxlZC1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWaWV3TW9yZUZhaWxlZFN0ZXBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2V4ZWN1dGlvbi1zY3JlZW4vdmlldy1tb3JlLWZhaWxlZC1zdGVwLWJ1dHRvbi92aWV3LW1vcmUtZmFpbGVkLXN0ZXAtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxmSGVhbEFuYWx5c2lzQ29tcG9uZW50IH0gZnJvbSAnLi9leGVjdXRpb24tc2NyZWVuL3NlbGYtaGVhbC1hbmFseXNpcy9zZWxmLWhlYWwtYW5hbHlzaXMuY29tcG9uZW50JztcbmltcG9ydCB7IEFJQWdlbnRTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi9leGVjdXRpb24tc2NyZWVuL2FpLWFnZW50LXN0ZXAvYWktYWdlbnQtc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQUlBY3Rpb25TdGVwQ29tcG9uZW50IH0gZnJvbSAnLi9leGVjdXRpb24tc2NyZWVuL2FpLWFjdGlvbi1zdGVwL2FpLWFjdGlvbi1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcGlTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi9leGVjdXRpb24tc2NyZWVuL2FwaS1zdGVwL2FwaS1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlRG93bmxvYWRTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi9leGVjdXRpb24tc2NyZWVuL2ZpbGUtZG93bmxvYWQtc3RlcC9maWxlLWRvd25sb2FkLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IERvY3VtZW50VmVyaWZpY2F0aW9uU3RlcENvbXBvbmVudCB9IGZyb20gJy4vZXhlY3V0aW9uLXNjcmVlbi9kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcC9kb2N1bWVudC12ZXJpZmljYXRpb24tc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGl2ZUV4ZWN1dGlvblN0ZXBDb21wb25lbnQgfSBmcm9tICcuL2V4ZWN1dGlvbi1zY3JlZW4vbGl2ZS1leGVjdXRpb24tc3RlcC9saXZlLWV4ZWN1dGlvbi1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYWluU3RlcENvbGxhcHNlQ29tcG9uZW50IH0gZnJvbSAnLi9leGVjdXRpb24tc2NyZWVuL21haW4tc3RlcC1jb2xsYXBzZS9tYWluLXN0ZXAtY29sbGFwc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFZpc3VhbENvbXBhcmlzb25Db21wb25lbnQgfSBmcm9tICcuL2V4ZWN1dGlvbi1zY3JlZW4vdmlzdWFsLWNvbXBhcmlzb24vdmlzdWFsLWNvbXBhcmlzb24uY29tcG9uZW50JztcbmltcG9ydCB7IFNpbXVsYXRvckNvbXBvbmVudCB9IGZyb20gJy4vc2ltdWxhdG9yL3NpbXVsYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uc29sZUFsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9jb25zb2xlLWFsZXJ0L2NvbnNvbGUtYWxlcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEFpRGVidWdBbGVydENvbXBvbmVudCB9IGZyb20gJy4vYWktZGVidWctYWxlcnQvYWktZGVidWctYWxlcnQuY29tcG9uZW50JztcbmltcG9ydCB7IE5ldHdvcmtSZXF1ZXN0Q29tcG9uZW50IH0gZnJvbSAnLi9uZXR3b3JrLXJlcXVlc3QvbmV0d29yay1yZXF1ZXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSdW5IaXN0b3J5Q2FyZENvbXBvbmVudCB9IGZyb20gJy4vcnVuLWhpc3RvcnktY2FyZC9ydW4taGlzdG9yeS1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWaXN1YWxEaWZmZXJlbmNlTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL3Zpc3VhbC1kaWZmZXJlbmNlLW1vZGFsL3Zpc3VhbC1kaWZmZXJlbmNlLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vY29uZmlndXJhdGlvbi1jYXJkL2NvbmZpZ3VyYXRpb24tY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcGFyZVJ1bnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBhcmUtcnVucy9jb21wYXJlLXJ1bnMuY29tcG9uZW50JztcbmltcG9ydCB7IEl0ZXJhdGlvbnNMb29wQ29tcG9uZW50IH0gZnJvbSAnLi9pdGVyYXRpb25zLWxvb3AvaXRlcmF0aW9ucy1sb29wLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGYWlsZWRTdGVwQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vZmFpbGVkLXN0ZXAtY2FyZC9mYWlsZWQtc3RlcC1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY3VzdG9tLWlucHV0L2N1c3RvbS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tVGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuL2N1c3RvbS10ZXh0YXJlYS9jdXN0b20tdGV4dGFyZWEuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbVRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vY3VzdG9tLXRvZ2dsZS9jdXN0b20tdG9nZ2xlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWlSZWFzb25pbmdDb21wb25lbnQgfSBmcm9tICcuL2FpLXJlYXNvbmluZy9haS1yZWFzb25pbmcuY29tcG9uZW50JztcbmltcG9ydCB7IEV4ZWN1dGlvblJlc3VsdE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9leGVjdXRpb24tcmVzdWx0LW1vZGFsL2V4ZWN1dGlvbi1yZXN1bHQtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEVycm9yTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2Vycm9yLW1vZGFsL2Vycm9yLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9ncmVzc0luZGljYXRvckNvbXBvbmVudCB9IGZyb20gJy4vcHJvZ3Jlc3MtaW5kaWNhdG9yL3Byb2dyZXNzLWluZGljYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RlcFByb2dyZXNzQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vc3RlcC1wcm9ncmVzcy1jYXJkL3N0ZXAtcHJvZ3Jlc3MtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RlcFN0YXR1c0NhcmRDb21wb25lbnQgfSBmcm9tICcuL3N0ZXAtc3RhdHVzLWNhcmQvc3RlcC1zdGF0dXMtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGJWZXJpZmljYXRpb25TdGVwQ29tcG9uZW50IH0gZnJvbSAnLi9leGVjdXRpb24tc2NyZWVuL2RiLXZlcmlmaWNhdGlvbi1zdGVwL2RiLXZlcmlmaWNhdGlvbi1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYlF1ZXJ5RXhlY3V0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZXhlY3V0aW9uLXNjcmVlbi9kYi1xdWVyeS1leGVjdXRpb24taXRlbS9kYi1xdWVyeS1leGVjdXRpb24taXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVzdENhc2VOb3JtYWxTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy9ub3JtYWwtc3RlcC9ub3JtYWwtc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVzdENhc2VMb29wU3RlcENvbXBvbmVudCB9IGZyb20gJy4vdGVzdC1jYXNlLWRldGFpbHMvbG9vcC1zdGVwL2xvb3Atc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVzdENhc2VDb25kaXRpb25TdGVwQ29tcG9uZW50IH0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy9jb25kaXRpb24tc3RlcC9jb25kaXRpb24tc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVzdENhc2VTdGVwR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL3Rlc3QtY2FzZS1kZXRhaWxzL3N0ZXAtZ3JvdXAvc3RlcC1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVzdENhc2VEZXRhaWxzUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL3Rlc3QtY2FzZS1kZXRhaWxzL3Rlc3QtY2FzZS1kZXRhaWxzLXJlbmRlcmVyL3Rlc3QtY2FzZS1kZXRhaWxzLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXN0Q2FzZUFwaVN0ZXBDb21wb25lbnQgfSBmcm9tICcuL3Rlc3QtY2FzZS1kZXRhaWxzL2FwaS1zdGVwL2FwaS1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXN0Q2FzZURhdGFiYXNlU3RlcENvbXBvbmVudCB9IGZyb20gJy4vdGVzdC1jYXNlLWRldGFpbHMvZGF0YWJhc2Utc3RlcC9kYXRhYmFzZS1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXN0Q2FzZUFpQWdlbnRTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy9haS1hZ2VudC1zdGVwL2FpLWFnZW50LXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRlc3RDYXNlQWlWZXJpZnlTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy9haS12ZXJpZnktc3RlcC9haS12ZXJpZnktc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVzdENhc2VVcGxvYWRTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy91cGxvYWQtc3RlcC91cGxvYWQtc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVzdENhc2VTY3JlZW5zaG90U3RlcENvbXBvbmVudCB9IGZyb20gJy4vdGVzdC1jYXNlLWRldGFpbHMvc2NyZWVuc2hvdC1zdGVwL3NjcmVlbnNob3Qtc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVzdENhc2VTY3JvbGxTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy9zY3JvbGwtc3RlcC9zY3JvbGwtc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVzdENhc2VWZXJpZnlVcmxTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi90ZXN0LWNhc2UtZGV0YWlscy92ZXJpZnktdXJsLXN0ZXAvdmVyaWZ5LXVybC1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXN0Q2FzZVJlc3RvcmVTZXNzaW9uU3RlcENvbXBvbmVudCB9IGZyb20gJy4vdGVzdC1jYXNlLWRldGFpbHMvcmVzdG9yZS1zZXNzaW9uLXN0ZXAvcmVzdG9yZS1zZXNzaW9uLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRlc3RDYXNlQ3VzdG9tQ29kZVN0ZXBDb21wb25lbnQgfSBmcm9tICcuL3Rlc3QtY2FzZS1kZXRhaWxzL2N1c3RvbS1jb2RlLXN0ZXAvY3VzdG9tLWNvZGUtc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tRWRpdFN0ZXBDb21wb25lbnQgfSBmcm9tICcuL3Rlc3QtY2FzZS1kZXRhaWxzL2N1c3RvbS1lZGl0LXN0ZXAvY3VzdG9tLWVkaXQtc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSXRlbUxpc3RDb21wb25lbnQgfSBmcm9tICcuL2l0ZW0tbGlzdC9pdGVtLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRlc3REYXRhTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL3Rlc3QtY2FzZS1kZXRhaWxzL3Rlc3QtZGF0YS1tb2RhbC90ZXN0LWRhdGEtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFRFU1RfQ0FTRV9TVEVQX0NPTVBPTkVOVF9NQVAgfSBmcm9tICcuL3Rlc3QtY2FzZS1kZXRhaWxzL3Rlc3QtY2FzZS1zdGVwLWNvbXBvbmVudHMudG9rZW4nO1xuaW1wb3J0IHsgTGl2ZUNvbnZlcnNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbGl2ZS1jb252ZXJzYXRpb24vbGl2ZS1jb252ZXJzYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERuZE1vZHVsZSB9IGZyb20gJ25neC1kcmFnLWRyb3AnO1xuaW1wb3J0IHsgU3RlcEJ1aWxkZXJBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL3N0ZXAtYnVpbGRlci9zdGVwLWJ1aWxkZXItYWN0aW9uL3N0ZXAtYnVpbGRlci1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFN0ZXBCdWlsZGVyTG9vcENvbXBvbmVudCB9IGZyb20gJy4vc3RlcC1idWlsZGVyL3N0ZXAtYnVpbGRlci1sb29wL3N0ZXAtYnVpbGRlci1sb29wLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbGVtZW50UG9wdXBDb21wb25lbnQgfSBmcm9tICcuL3Rlc3QtY2FzZS1kZXRhaWxzL2VsZW1lbnQtcG9wdXAvZWxlbWVudC1wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RlcEJ1aWxkZXJDb25kaXRpb25Db21wb25lbnQgfSBmcm9tICcuL3N0ZXAtYnVpbGRlci9zdGVwLWJ1aWxkZXItY29uZGl0aW9uL3N0ZXAtYnVpbGRlci1jb25kaXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFN0ZXBCdWlsZGVyRGF0YWJhc2VDb21wb25lbnQgfSBmcm9tICcuL3N0ZXAtYnVpbGRlci9zdGVwLWJ1aWxkZXItZGF0YWJhc2Uvc3RlcC1idWlsZGVyLWRhdGFiYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGVwQnVpbGRlckFpQWdlbnRDb21wb25lbnQgfSBmcm9tICcuL3N0ZXAtYnVpbGRlci9zdGVwLWJ1aWxkZXItYWktYWdlbnQvc3RlcC1idWlsZGVyLWFpLWFnZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGVwQnVpbGRlckN1c3RvbUNvZGVDb21wb25lbnQgfSBmcm9tICcuL3N0ZXAtYnVpbGRlci9zdGVwLWJ1aWxkZXItY3VzdG9tLWNvZGUvc3RlcC1idWlsZGVyLWN1c3RvbS1jb2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGVwQnVpbGRlclJlY29yZFN0ZXBDb21wb25lbnQgfSBmcm9tICcuL3N0ZXAtYnVpbGRlci9zdGVwLWJ1aWxkZXItcmVjb3JkLXN0ZXAvc3RlcC1idWlsZGVyLXJlY29yZC1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGVwQnVpbGRlckRvY3VtZW50R2VuZXJhdGlvblRlbXBsYXRlU3RlcENvbXBvbmVudCB9IGZyb20gJy4vc3RlcC1idWlsZGVyL3N0ZXAtYnVpbGRlci1kb2N1bWVudC1nZW5lcmF0aW9uLXRlbXBsYXRlLXN0ZXAvc3RlcC1idWlsZGVyLWRvY3VtZW50LWdlbmVyYXRpb24tdGVtcGxhdGUtc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWxlbWVudExpc3RDb21wb25lbnQgfSBmcm9tICcuL3Rlc3QtY2FzZS1kZXRhaWxzL2VsZW1lbnQtbGlzdC9lbGVtZW50LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFN0ZXBCdWlsZGVyRG9jdW1lbnRDb21wb25lbnQgfSBmcm9tICcuL3N0ZXAtYnVpbGRlci9zdGVwLWJ1aWxkZXItZG9jdW1lbnQvc3RlcC1idWlsZGVyLWRvY3VtZW50LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBTZWFyY2hCYXJDb21wb25lbnQsXG4gICAgU2VnbWVudENvbnRyb2xDb21wb25lbnQsXG4gICAgRGlhbG9nQ29tcG9uZW50LFxuICAgIER5bmFtaWNUYWJsZUNvbXBvbmVudCxcbiAgICBEeW5hbWljQ2VsbFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIER5bmFtaWNIZWFkZXJUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBEeW5hbWljQ2VsbENvbnRhaW5lckRpcmVjdGl2ZSxcbiAgICBQYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgIEFjdGlvbk1lbnVCdXR0b25Db21wb25lbnQsXG4gICAgT3RoZXJCdXR0b25Db21wb25lbnQsXG4gICAgRHluYW1pY0ZpbHRlckNvbXBvbmVudCxcbiAgICBEYXRlcmFuZ2VwaWNrZXJEaXJlY3RpdmUsXG4gICAgRGF0ZXJhbmdlcGlja2VyQ29tcG9uZW50LFxuICAgIENvbHVtblZpc2liaWxpdHlDb21wb25lbnQsXG4gICAgVGFibGVBY3Rpb25Ub29sYmFyQ29tcG9uZW50LFxuICAgIE1ldHJpY3NDYXJkQ29tcG9uZW50LFxuICAgIE1ldHJpY3NCbG9ja0NvbXBvbmVudCxcbiAgICBDaGFydENhcmRDb21wb25lbnQsXG4gICAgUHJvZ3Jlc3NUZXh0Q2FyZENvbXBvbmVudCxcbiAgICBEYXNoYm9hcmRIZWFkZXJDb21wb25lbnQsXG4gICAgQ292ZXJhZ2VNb2R1bGVDYXJkQ29tcG9uZW50LFxuICAgIFRlc3REaXN0cmlidXRpb25DYXJkQ29tcG9uZW50LFxuICAgIEZhaWxlZFRlc3RDYXNlc0NhcmRDb21wb25lbnQsXG4gICAgRHluYW1pY1NlbGVjdEZpZWxkQ29tcG9uZW50LFxuICAgIEFkZFByZXJlcXVpc2l0ZUNhc2VzU2VjdGlvbkNvbXBvbmVudCxcbiAgICBTZWxlY3RlZEZpbHRlcnNDb21wb25lbnQsXG4gICAgSW5zaWdodENhcmRDb21wb25lbnQsXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgRHJvcGRvd25CdXR0b25Db21wb25lbnQsXG4gICAgSGVhdEVycm9yTWFwQ2VsbENvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIFRhYmxlVGVtcGxhdGVDb21wb25lbnQsXG4gICAgRnVsbFRhYmxlTG9hZGVyQ29tcG9uZW50LFxuICAgIFRhYmxlRGF0YUxvYWRlckNvbXBvbmVudCxcbiAgICBCYXNpY1N0ZXBDb21wb25lbnQsXG4gICAgU3RlcFJlbmRlcmVyQ29tcG9uZW50LFxuICAgIFN0ZXBHcm91cENvbXBvbmVudCxcbiAgICBMb29wU3RlcENvbXBvbmVudCxcbiAgICBDb25kaXRpb25TdGVwQ29tcG9uZW50LFxuICAgIEZhaWxlZFN0ZXBDb21wb25lbnQsXG4gICAgVXBkYXRlZEZhaWxlZFN0ZXBDb21wb25lbnQsXG4gICAgVmlld01vcmVGYWlsZWRTdGVwQnV0dG9uQ29tcG9uZW50LFxuICAgIFNlbGZIZWFsQW5hbHlzaXNDb21wb25lbnQsXG4gICAgQUlBZ2VudFN0ZXBDb21wb25lbnQsXG4gICAgQUlBY3Rpb25TdGVwQ29tcG9uZW50LFxuICAgIEFwaVN0ZXBDb21wb25lbnQsXG4gICAgRmlsZURvd25sb2FkU3RlcENvbXBvbmVudCxcbiAgICBEb2N1bWVudFZlcmlmaWNhdGlvblN0ZXBDb21wb25lbnQsXG4gICAgTGl2ZUV4ZWN1dGlvblN0ZXBDb21wb25lbnQsXG4gICAgTWFpblN0ZXBDb2xsYXBzZUNvbXBvbmVudCxcbiAgICBWaXN1YWxDb21wYXJpc29uQ29tcG9uZW50LFxuICAgIFNpbXVsYXRvckNvbXBvbmVudCxcbiAgICBDb25zb2xlQWxlcnRDb21wb25lbnQsXG4gICAgQWlEZWJ1Z0FsZXJ0Q29tcG9uZW50LFxuICAgIE5ldHdvcmtSZXF1ZXN0Q29tcG9uZW50LFxuICAgIFJ1bkhpc3RvcnlDYXJkQ29tcG9uZW50LFxuICAgIFZpc3VhbERpZmZlcmVuY2VNb2RhbENvbXBvbmVudCxcbiAgICBDb25maWd1cmF0aW9uQ2FyZENvbXBvbmVudCxcbiAgICBDb21wYXJlUnVuc0NvbXBvbmVudCxcbiAgICBJdGVyYXRpb25zTG9vcENvbXBvbmVudCxcbiAgICBGYWlsZWRTdGVwQ2FyZENvbXBvbmVudCxcbiAgICBDdXN0b21JbnB1dENvbXBvbmVudCxcbiAgICBDdXN0b21UZXh0YXJlYUNvbXBvbmVudCxcbiAgICBDdXN0b21Ub2dnbGVDb21wb25lbnQsXG4gICAgRmlsZVVwbG9hZENvbXBvbmVudCxcbiAgICBBaVJlYXNvbmluZ0NvbXBvbmVudCxcbiAgICBFeGVjdXRpb25SZXN1bHRNb2RhbENvbXBvbmVudCxcbiAgICBFcnJvck1vZGFsQ29tcG9uZW50LFxuICAgIFByb2dyZXNzSW5kaWNhdG9yQ29tcG9uZW50LFxuICAgIFN0ZXBQcm9ncmVzc0NhcmRDb21wb25lbnQsXG4gICAgU3RlcFN0YXR1c0NhcmRDb21wb25lbnQsXG4gICAgRGJWZXJpZmljYXRpb25TdGVwQ29tcG9uZW50LFxuICAgIERiUXVlcnlFeGVjdXRpb25JdGVtQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlTm9ybWFsU3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZUxvb3BTdGVwQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlQ29uZGl0aW9uU3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZVN0ZXBHcm91cENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZURldGFpbHNSZW5kZXJlckNvbXBvbmVudCxcbiAgICBUZXN0Q2FzZUFwaVN0ZXBDb21wb25lbnQsXG4gICAgVGVzdENhc2VEYXRhYmFzZVN0ZXBDb21wb25lbnQsXG4gICAgVGVzdENhc2VBaUFnZW50U3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZUFpVmVyaWZ5U3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZVVwbG9hZFN0ZXBDb21wb25lbnQsXG4gICAgVGVzdENhc2VTY3JlZW5zaG90U3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZVNjcm9sbFN0ZXBDb21wb25lbnQsXG4gICAgVGVzdENhc2VWZXJpZnlVcmxTdGVwQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlUmVzdG9yZVNlc3Npb25TdGVwQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlQ3VzdG9tQ29kZVN0ZXBDb21wb25lbnQsXG4gICAgQ3VzdG9tRWRpdFN0ZXBDb21wb25lbnQsXG4gICAgSXRlbUxpc3RDb21wb25lbnQsXG4gICAgVGVzdERhdGFNb2RhbENvbXBvbmVudCxcbiAgICBMaXZlQ29udmVyc2F0aW9uQ29tcG9uZW50LFxuICAgIFN0ZXBCdWlsZGVyQWN0aW9uQ29tcG9uZW50LFxuICAgIFN0ZXBCdWlsZGVyTG9vcENvbXBvbmVudCxcbiAgICBFbGVtZW50UG9wdXBDb21wb25lbnQsXG4gICAgU3RlcEJ1aWxkZXJDb25kaXRpb25Db21wb25lbnQsXG4gICAgU3RlcEJ1aWxkZXJEYXRhYmFzZUNvbXBvbmVudCxcbiAgICBTdGVwQnVpbGRlckFpQWdlbnRDb21wb25lbnQsXG4gICAgU3RlcEJ1aWxkZXJDdXN0b21Db2RlQ29tcG9uZW50LFxuICAgIFN0ZXBCdWlsZGVyUmVjb3JkU3RlcENvbXBvbmVudCxcbiAgICBTdGVwQnVpbGRlckRvY3VtZW50R2VuZXJhdGlvblRlbXBsYXRlU3RlcENvbXBvbmVudCxcbiAgICBFbGVtZW50TGlzdENvbXBvbmVudCxcbiAgICBTdGVwQnVpbGRlckRvY3VtZW50Q29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICBNYXRSYWRpb01vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIE1hdE5hdGl2ZURhdGVNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE92ZXJsYXlNb2R1bGUsXG4gICAgUG9ydGFsTW9kdWxlLFxuICAgIE5neFR5cGVkSnNNb2R1bGUsXG4gICAgRG5kTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgU2VhcmNoQmFyQ29tcG9uZW50LFxuICAgIFNlZ21lbnRDb250cm9sQ29tcG9uZW50LFxuICAgIERpYWxvZ0NvbXBvbmVudCxcbiAgICBEeW5hbWljVGFibGVDb21wb25lbnQsXG4gICAgRHluYW1pY0NlbGxUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBEeW5hbWljSGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgRHluYW1pY0NlbGxDb250YWluZXJEaXJlY3RpdmUsXG4gICAgUGFnaW5hdGlvbkNvbXBvbmVudCxcbiAgICBBY3Rpb25NZW51QnV0dG9uQ29tcG9uZW50LFxuICAgIE90aGVyQnV0dG9uQ29tcG9uZW50LFxuICAgIER5bmFtaWNGaWx0ZXJDb21wb25lbnQsXG4gICAgRGF0ZXJhbmdlcGlja2VyRGlyZWN0aXZlLFxuICAgIERhdGVyYW5nZXBpY2tlckNvbXBvbmVudCxcbiAgICBDb2x1bW5WaXNpYmlsaXR5Q29tcG9uZW50LFxuICAgIFRhYmxlQWN0aW9uVG9vbGJhckNvbXBvbmVudCxcbiAgICBNZXRyaWNzQ2FyZENvbXBvbmVudCxcbiAgICBDaGFydENhcmRDb21wb25lbnQsXG4gICAgUHJvZ3Jlc3NUZXh0Q2FyZENvbXBvbmVudCxcbiAgICBEYXNoYm9hcmRIZWFkZXJDb21wb25lbnQsXG4gICAgQ292ZXJhZ2VNb2R1bGVDYXJkQ29tcG9uZW50LFxuICAgIFRlc3REaXN0cmlidXRpb25DYXJkQ29tcG9uZW50LFxuICAgIEZhaWxlZFRlc3RDYXNlc0NhcmRDb21wb25lbnQsXG4gICAgRHluYW1pY1NlbGVjdEZpZWxkQ29tcG9uZW50LFxuICAgIEFkZFByZXJlcXVpc2l0ZUNhc2VzU2VjdGlvbkNvbXBvbmVudCxcbiAgICBTZWxlY3RlZEZpbHRlcnNDb21wb25lbnQsXG4gICAgSW5zaWdodENhcmRDb21wb25lbnQsXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgRHJvcGRvd25CdXR0b25Db21wb25lbnQsXG4gICAgSGVhdEVycm9yTWFwQ2VsbENvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIFRhYmxlVGVtcGxhdGVDb21wb25lbnQsXG4gICAgRnVsbFRhYmxlTG9hZGVyQ29tcG9uZW50LFxuICAgIFRhYmxlRGF0YUxvYWRlckNvbXBvbmVudCxcbiAgICBCYXNpY1N0ZXBDb21wb25lbnQsXG4gICAgU3RlcFJlbmRlcmVyQ29tcG9uZW50LFxuICAgIFN0ZXBHcm91cENvbXBvbmVudCxcbiAgICBMb29wU3RlcENvbXBvbmVudCxcbiAgICBDb25kaXRpb25TdGVwQ29tcG9uZW50LFxuICAgIEZhaWxlZFN0ZXBDb21wb25lbnQsXG4gICAgVXBkYXRlZEZhaWxlZFN0ZXBDb21wb25lbnQsXG4gICAgVmlld01vcmVGYWlsZWRTdGVwQnV0dG9uQ29tcG9uZW50LFxuICAgIFNlbGZIZWFsQW5hbHlzaXNDb21wb25lbnQsXG4gICAgQUlBZ2VudFN0ZXBDb21wb25lbnQsXG4gICAgQUlBY3Rpb25TdGVwQ29tcG9uZW50LFxuICAgIEFwaVN0ZXBDb21wb25lbnQsXG4gICAgRmlsZURvd25sb2FkU3RlcENvbXBvbmVudCxcbiAgICBEb2N1bWVudFZlcmlmaWNhdGlvblN0ZXBDb21wb25lbnQsXG4gICAgTGl2ZUV4ZWN1dGlvblN0ZXBDb21wb25lbnQsXG4gICAgTWFpblN0ZXBDb2xsYXBzZUNvbXBvbmVudCxcbiAgICBWaXN1YWxDb21wYXJpc29uQ29tcG9uZW50LFxuICAgIFNpbXVsYXRvckNvbXBvbmVudCxcbiAgICBDb25zb2xlQWxlcnRDb21wb25lbnQsXG4gICAgQWlEZWJ1Z0FsZXJ0Q29tcG9uZW50LFxuICAgIE5ldHdvcmtSZXF1ZXN0Q29tcG9uZW50LFxuICAgIFJ1bkhpc3RvcnlDYXJkQ29tcG9uZW50LFxuICAgIFZpc3VhbERpZmZlcmVuY2VNb2RhbENvbXBvbmVudCxcbiAgICBDb25maWd1cmF0aW9uQ2FyZENvbXBvbmVudCxcbiAgICBDb21wYXJlUnVuc0NvbXBvbmVudCxcbiAgICBJdGVyYXRpb25zTG9vcENvbXBvbmVudCxcbiAgICBGYWlsZWRTdGVwQ2FyZENvbXBvbmVudCxcbiAgICBDdXN0b21JbnB1dENvbXBvbmVudCxcbiAgICBDdXN0b21UZXh0YXJlYUNvbXBvbmVudCxcbiAgICBDdXN0b21Ub2dnbGVDb21wb25lbnQsXG4gICAgRmlsZVVwbG9hZENvbXBvbmVudCxcbiAgICBBaVJlYXNvbmluZ0NvbXBvbmVudCxcbiAgICBFeGVjdXRpb25SZXN1bHRNb2RhbENvbXBvbmVudCxcbiAgICBFcnJvck1vZGFsQ29tcG9uZW50LFxuICAgIFByb2dyZXNzSW5kaWNhdG9yQ29tcG9uZW50LFxuICAgIFN0ZXBQcm9ncmVzc0NhcmRDb21wb25lbnQsXG4gICAgU3RlcFN0YXR1c0NhcmRDb21wb25lbnQsXG4gICAgRGJWZXJpZmljYXRpb25TdGVwQ29tcG9uZW50LFxuICAgIERiUXVlcnlFeGVjdXRpb25JdGVtQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlTm9ybWFsU3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZUxvb3BTdGVwQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlQ29uZGl0aW9uU3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZVN0ZXBHcm91cENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZURldGFpbHNSZW5kZXJlckNvbXBvbmVudCxcbiAgICBUZXN0Q2FzZUFwaVN0ZXBDb21wb25lbnQsXG4gICAgVGVzdENhc2VEYXRhYmFzZVN0ZXBDb21wb25lbnQsXG4gICAgVGVzdENhc2VBaUFnZW50U3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZVVwbG9hZFN0ZXBDb21wb25lbnQsXG4gICAgVGVzdENhc2VTY3JlZW5zaG90U3RlcENvbXBvbmVudCxcbiAgICBUZXN0Q2FzZVNjcm9sbFN0ZXBDb21wb25lbnQsXG4gICAgVGVzdENhc2VWZXJpZnlVcmxTdGVwQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlUmVzdG9yZVNlc3Npb25TdGVwQ29tcG9uZW50LFxuICAgIFRlc3RDYXNlQ3VzdG9tQ29kZVN0ZXBDb21wb25lbnQsXG4gICAgQ3VzdG9tRWRpdFN0ZXBDb21wb25lbnQsXG4gICAgSXRlbUxpc3RDb21wb25lbnQsXG4gICAgVGVzdERhdGFNb2RhbENvbXBvbmVudCxcbiAgICBMaXZlQ29udmVyc2F0aW9uQ29tcG9uZW50LFxuICAgIFN0ZXBCdWlsZGVyQWN0aW9uQ29tcG9uZW50LFxuICAgIFN0ZXBCdWlsZGVyTG9vcENvbXBvbmVudCxcbiAgICBFbGVtZW50UG9wdXBDb21wb25lbnQsXG4gICAgU3RlcEJ1aWxkZXJDb25kaXRpb25Db21wb25lbnQsXG4gICAgU3RlcEJ1aWxkZXJEYXRhYmFzZUNvbXBvbmVudCxcbiAgICBTdGVwQnVpbGRlckFpQWdlbnRDb21wb25lbnQsXG4gICAgU3RlcEJ1aWxkZXJDdXN0b21Db2RlQ29tcG9uZW50LFxuICAgIFN0ZXBCdWlsZGVyUmVjb3JkU3RlcENvbXBvbmVudCxcbiAgICBTdGVwQnVpbGRlckRvY3VtZW50R2VuZXJhdGlvblRlbXBsYXRlU3RlcENvbXBvbmVudCxcbiAgICBFbGVtZW50TGlzdENvbXBvbmVudCxcbiAgICBTdGVwQnVpbGRlckRvY3VtZW50Q29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE92ZXJsYXlDb250YWluZXIsIHVzZUNsYXNzOiBUYWlsd2luZE92ZXJsYXlDb250YWluZXIgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBURVNUX0NBU0VfU1RFUF9DT01QT05FTlRfTUFQLFxuICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgc3RlcEdyb3VwOiBUZXN0Q2FzZVN0ZXBHcm91cENvbXBvbmVudCxcbiAgICAgICAgY29uZGl0aW9uU3RlcDogVGVzdENhc2VDb25kaXRpb25TdGVwQ29tcG9uZW50LFxuICAgICAgICBsb29wU3RlcDogVGVzdENhc2VMb29wU3RlcENvbXBvbmVudCxcbiAgICAgICAgbm9ybWFsU3RlcDogVGVzdENhc2VOb3JtYWxTdGVwQ29tcG9uZW50LFxuICAgICAgICBhcGlTdGVwOiBUZXN0Q2FzZUFwaVN0ZXBDb21wb25lbnQsXG4gICAgICAgIGRhdGFiYXNlU3RlcDogVGVzdENhc2VEYXRhYmFzZVN0ZXBDb21wb25lbnQsXG4gICAgICAgIGFpQWdlbnRTdGVwOiBUZXN0Q2FzZUFpQWdlbnRTdGVwQ29tcG9uZW50LFxuICAgICAgICBhaVZlcmlmeVN0ZXA6IFRlc3RDYXNlQWlWZXJpZnlTdGVwQ29tcG9uZW50LFxuICAgICAgICB1cGxvYWRTdGVwOiBUZXN0Q2FzZVVwbG9hZFN0ZXBDb21wb25lbnQsXG4gICAgICAgIHNjcmVlbnNob3RTdGVwOiBUZXN0Q2FzZVNjcmVlbnNob3RTdGVwQ29tcG9uZW50LFxuICAgICAgICBzY3JvbGxTdGVwOiBUZXN0Q2FzZVNjcm9sbFN0ZXBDb21wb25lbnQsXG4gICAgICAgIHZlcmlmeVVybFN0ZXA6IFRlc3RDYXNlVmVyaWZ5VXJsU3RlcENvbXBvbmVudCxcbiAgICAgICAgcmVzdG9yZVNlc3Npb25TdGVwOiBUZXN0Q2FzZVJlc3RvcmVTZXNzaW9uU3RlcENvbXBvbmVudCxcbiAgICAgICAgY3VzdG9tQ29kZVN0ZXA6IFRlc3RDYXNlQ3VzdG9tQ29kZVN0ZXBDb21wb25lbnQsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogU1RFUF9DT01QT05FTlRfTUFQLFxuICAgICAgdXNlVmFsdWU6IG5ldyBNYXA8c3RyaW5nLCBUeXBlPGFueT4+KFtcbiAgICAgICAgWydiYXNpYycsIEJhc2ljU3RlcENvbXBvbmVudF0sXG4gICAgICAgIFsnc3RlcC1ncm91cCcsIFN0ZXBHcm91cENvbXBvbmVudF0sXG4gICAgICAgIFsnbG9vcCcsIExvb3BTdGVwQ29tcG9uZW50XSxcbiAgICAgICAgWydjb25kaXRpb24nLCBDb25kaXRpb25TdGVwQ29tcG9uZW50XSxcbiAgICAgICAgWydmYWlsZWQnLCBGYWlsZWRTdGVwQ29tcG9uZW50XSxcbiAgICAgICAgWyd1cGRhdGVkLWZhaWxlZCcsIFVwZGF0ZWRGYWlsZWRTdGVwQ29tcG9uZW50XSxcbiAgICAgICAgWydhaS1hZ2VudCcsIEFJQWdlbnRTdGVwQ29tcG9uZW50XSxcbiAgICAgICAgWydhaS1hY3Rpb24nLCBBSUFjdGlvblN0ZXBDb21wb25lbnRdLFxuICAgICAgICBbJ2FwaScsIEFwaVN0ZXBDb21wb25lbnRdLFxuICAgICAgICBbJ2ZpbGUtZG93bmxvYWQnLCBGaWxlRG93bmxvYWRTdGVwQ29tcG9uZW50XSxcbiAgICAgICAgWydkb2N1bWVudC12ZXJpZmljYXRpb24nLCBEb2N1bWVudFZlcmlmaWNhdGlvblN0ZXBDb21wb25lbnRdLFxuICAgICAgICBbJ2xpdmUtZXhlY3V0aW9uJywgTGl2ZUV4ZWN1dGlvblN0ZXBDb21wb25lbnRdLFxuICAgICAgICBbJ2RiLXZlcmlmaWNhdGlvbicsIERiVmVyaWZpY2F0aW9uU3RlcENvbXBvbmVudF0sXG4gICAgICBdKVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBVaUtpdE1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKGljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5KSB7XG4gICAgaWNvblJlZ2lzdHJ5LnJlZ2lzdGVyRm9udENsYXNzQWxpYXMoJ21hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQnLCAnbWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCcpO1xuICB9XG59XG5cbiJdfQ==
|