axidio-styleguide-library1-v2 0.1.67 → 0.1.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,6 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
- import * as i2 from "../dropdown/dropdown.component";
5
4
  export class ChartHeaderV3Component {
6
5
  constructor() {
7
6
  this.compareByFilterSelection = new EventEmitter();
@@ -37,11 +36,11 @@ export class ChartHeaderV3Component {
37
36
  this.zoomInZoomOutClick.emit({ isZoomOut: this.isZoomedOut, event: event });
38
37
  }
39
38
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChartHeaderV3Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
40
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChartHeaderV3Component, selector: "lib-chart-header-v3", inputs: { chartData: "chartData", chartConfiguration: "chartConfiguration" }, outputs: { compareByFilterSelection: "compareByFilterSelection", zoomInZoomOutClick: "zoomInZoomOutClick" }, ngImport: i0, template: "<div class=\"lib-display-flex header-title-styles\" [ngClass]=\"\r\n !chartData.dropdownData2 &&\r\n !chartData.dropdownData1 &&\r\n chartData.data.length <= 8\r\n ? 'lib-justify-content-start'\r\n : 'lib-justify-content-space-between'\r\n \">\r\n <span class=\"legend-latest-holder\" *ngIf=\"\r\n chartData.data &&\r\n chartData.metaData.default_dept &&\r\n (chartConfiguration.isToggleVisible || chartData.metaData.isToggleVisible)\r\n \">\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n *ngIf=\"chartData.metaData.default_dept == item.key\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"marginRight-30 legend-style font-size-2\" *ngIf=\"chartData.metaData.default_dept\">\r\n Default Dept: {{ chartData.metaData.default_dept }}\r\n </span>\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span *ngIf=\"\r\n item.key != chartData.metaData.default_dept &&\r\n chartData.metaData.default_dept\r\n \" class=\"legends-latest\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"legend-style font-size-2\" *ngIf=\"isLegendVisible() && chartData.metaData.default_dept\">Cross Train\r\n Dept</span>\r\n </span>\r\n <span class=\"legend-latest-holder legend-width\"\r\n [ngClass]=\"chartData.metaData.colorLegendVisibleOnTopLeft ? '' : 'invisible'\"\r\n *ngIf=\"chartData.data && !chartData.metaData.default_dept\">\r\n <span class=\"lib-display-flex lib-align-items-center\"\r\n *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n [style.background-color]=\"item.value\"></span>\r\n <span class=\"marginRight-20 legend-style font-size-1 lib-white-space-nowrap\">\r\n {{ item.key }}\r\n </span>\r\n </span>\r\n </span>\r\n <span class=\"display-flex\">\r\n <span *ngIf=\"\r\n chartData.dropdownData1 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData1\" [isDropdownOpen]=\"this.isDD1Open\"\r\n (ddClicked)=\"handleDD1Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"></lib-dropdown>\r\n </span>\r\n <span *ngIf=\"\r\n chartData.dropdownData2 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData2\" [isDropdownOpen]=\"this.isDD2Open\"\r\n (ddClicked)=\"handleDD2Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"\r\n [isCheckboxVisible]=\"chartData.metaData.isCheckboxVisible\"\r\n [dropdownHeaderName]=\"chartData.metaData.dropdownHeaderName\"></lib-dropdown>\r\n </span>\r\n <span class=\"zoomIcons-holder\" *ngIf=\"chartData.data && chartData.data.length > 8\">\r\n <span class=\"zoomIcons\" title=\"Zoom In\" [ngClass]=\"!isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(false, $event)\">\r\n <i class=\"fa fa-search-plus\"></i>\r\n </span>\r\n <span class=\"zoomIcons\" title=\"Zoom Out\" [ngClass]=\"isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(true, $event)\">\r\n <i class=\"fa fa-search-minus\"></i>\r\n </span>\r\n </span>\r\n </span>\r\n</div>", styles: [".invisible{visibility:hidden}.hidden{visibility:hidden!important}.content-hidden{visibility:hidden}.opacity-hidden{opacity:0;pointer-events:none}@media (min-height: 500px){.legend-width{max-width:550px;overflow:auto}}@media (min-height: 900px){.header-title-styles{margin-left:35px;margin-top:12px;margin-bottom:25px}.legend-width{max-width:700px;overflow:auto}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DropdownComponent, selector: "lib-dropdown", inputs: ["dropdownHeaderName", "isDropdownOpen", "dropdownData", "isCheckboxVisible"], outputs: ["ddClicked", "selectedFromDropdown"] }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }] }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChartHeaderV3Component, selector: "lib-chart-header-v3", inputs: { chartData: "chartData", chartConfiguration: "chartConfiguration" }, outputs: { compareByFilterSelection: "compareByFilterSelection", zoomInZoomOutClick: "zoomInZoomOutClick" }, ngImport: i0, template: "<div class=\"lib-display-flex header-title-styles\" [ngClass]=\"\r\n !chartData.dropdownData2 &&\r\n !chartData.dropdownData1 &&\r\n chartData.data.length <= 8\r\n ? 'lib-justify-content-start'\r\n : 'lib-justify-content-space-between'\r\n \">\r\n <span class=\"legend-latest-holder\" *ngIf=\"\r\n chartData.data &&\r\n chartData.metaData.default_dept &&\r\n (chartConfiguration.isToggleVisible || chartData.metaData.isToggleVisible)\r\n \">\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n *ngIf=\"chartData.metaData.default_dept == item.key\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"marginRight-30 legend-style font-size-2\" *ngIf=\"chartData.metaData.default_dept\">\r\n Default Dept: {{ chartData.metaData.default_dept }}\r\n </span>\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span *ngIf=\"\r\n item.key != chartData.metaData.default_dept &&\r\n chartData.metaData.default_dept\r\n \" class=\"legends-latest\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"legend-style font-size-2\" *ngIf=\"isLegendVisible() && chartData.metaData.default_dept\">Cross Train\r\n Dept</span>\r\n </span>\r\n <span class=\"legend-latest-holder legend-width\"\r\n [ngClass]=\"chartData.metaData.colorLegendVisibleOnTopLeft ? '' : 'invisible'\"\r\n *ngIf=\"chartData.data && !chartData.metaData.default_dept\">\r\n <span class=\"lib-display-flex lib-align-items-center\"\r\n *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n [style.background-color]=\"item.value\"></span>\r\n <span class=\"marginRight-20 legend-style font-size-1 lib-white-space-nowrap\">\r\n {{ item.key }}\r\n </span>\r\n </span>\r\n </span>\r\n <span class=\"display-flex\">\r\n <!-- <span *ngIf=\"\r\n chartData.dropdownData1 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData1\" [isDropdownOpen]=\"this.isDD1Open\"\r\n (ddClicked)=\"handleDD1Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"></lib-dropdown>\r\n </span>\r\n <span *ngIf=\"\r\n chartData.dropdownData2 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData2\" [isDropdownOpen]=\"this.isDD2Open\"\r\n (ddClicked)=\"handleDD2Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"\r\n [isCheckboxVisible]=\"chartData.metaData.isCheckboxVisible\"\r\n [dropdownHeaderName]=\"chartData.metaData.dropdownHeaderName\"></lib-dropdown>\r\n </span> -->\r\n <span class=\"zoomIcons-holder\" *ngIf=\"chartData.data && chartData.data.length > 8\">\r\n <span class=\"zoomIcons\" title=\"Zoom In\" [ngClass]=\"!isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(false, $event)\">\r\n <i class=\"fa fa-search-plus\"></i>\r\n </span>\r\n <span class=\"zoomIcons\" title=\"Zoom Out\" [ngClass]=\"isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(true, $event)\">\r\n <i class=\"fa fa-search-minus\"></i>\r\n </span>\r\n </span>\r\n </span>\r\n</div>", styles: [".invisible{visibility:hidden}.hidden{visibility:hidden!important}.content-hidden{visibility:hidden}.opacity-hidden{opacity:0;pointer-events:none}@media (min-height: 500px){.legend-width{max-width:550px;overflow:auto}}@media (min-height: 900px){.header-title-styles{margin-left:35px;margin-top:12px;margin-bottom:25px}.legend-width{max-width:700px;overflow:auto}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }] }); }
41
40
  }
42
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChartHeaderV3Component, decorators: [{
43
42
  type: Component,
44
- args: [{ selector: 'lib-chart-header-v3', template: "<div class=\"lib-display-flex header-title-styles\" [ngClass]=\"\r\n !chartData.dropdownData2 &&\r\n !chartData.dropdownData1 &&\r\n chartData.data.length <= 8\r\n ? 'lib-justify-content-start'\r\n : 'lib-justify-content-space-between'\r\n \">\r\n <span class=\"legend-latest-holder\" *ngIf=\"\r\n chartData.data &&\r\n chartData.metaData.default_dept &&\r\n (chartConfiguration.isToggleVisible || chartData.metaData.isToggleVisible)\r\n \">\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n *ngIf=\"chartData.metaData.default_dept == item.key\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"marginRight-30 legend-style font-size-2\" *ngIf=\"chartData.metaData.default_dept\">\r\n Default Dept: {{ chartData.metaData.default_dept }}\r\n </span>\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span *ngIf=\"\r\n item.key != chartData.metaData.default_dept &&\r\n chartData.metaData.default_dept\r\n \" class=\"legends-latest\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"legend-style font-size-2\" *ngIf=\"isLegendVisible() && chartData.metaData.default_dept\">Cross Train\r\n Dept</span>\r\n </span>\r\n <span class=\"legend-latest-holder legend-width\"\r\n [ngClass]=\"chartData.metaData.colorLegendVisibleOnTopLeft ? '' : 'invisible'\"\r\n *ngIf=\"chartData.data && !chartData.metaData.default_dept\">\r\n <span class=\"lib-display-flex lib-align-items-center\"\r\n *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n [style.background-color]=\"item.value\"></span>\r\n <span class=\"marginRight-20 legend-style font-size-1 lib-white-space-nowrap\">\r\n {{ item.key }}\r\n </span>\r\n </span>\r\n </span>\r\n <span class=\"display-flex\">\r\n <span *ngIf=\"\r\n chartData.dropdownData1 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData1\" [isDropdownOpen]=\"this.isDD1Open\"\r\n (ddClicked)=\"handleDD1Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"></lib-dropdown>\r\n </span>\r\n <span *ngIf=\"\r\n chartData.dropdownData2 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData2\" [isDropdownOpen]=\"this.isDD2Open\"\r\n (ddClicked)=\"handleDD2Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"\r\n [isCheckboxVisible]=\"chartData.metaData.isCheckboxVisible\"\r\n [dropdownHeaderName]=\"chartData.metaData.dropdownHeaderName\"></lib-dropdown>\r\n </span>\r\n <span class=\"zoomIcons-holder\" *ngIf=\"chartData.data && chartData.data.length > 8\">\r\n <span class=\"zoomIcons\" title=\"Zoom In\" [ngClass]=\"!isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(false, $event)\">\r\n <i class=\"fa fa-search-plus\"></i>\r\n </span>\r\n <span class=\"zoomIcons\" title=\"Zoom Out\" [ngClass]=\"isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(true, $event)\">\r\n <i class=\"fa fa-search-minus\"></i>\r\n </span>\r\n </span>\r\n </span>\r\n</div>", styles: [".invisible{visibility:hidden}.hidden{visibility:hidden!important}.content-hidden{visibility:hidden}.opacity-hidden{opacity:0;pointer-events:none}@media (min-height: 500px){.legend-width{max-width:550px;overflow:auto}}@media (min-height: 900px){.header-title-styles{margin-left:35px;margin-top:12px;margin-bottom:25px}.legend-width{max-width:700px;overflow:auto}}\n"] }]
43
+ args: [{ selector: 'lib-chart-header-v3', template: "<div class=\"lib-display-flex header-title-styles\" [ngClass]=\"\r\n !chartData.dropdownData2 &&\r\n !chartData.dropdownData1 &&\r\n chartData.data.length <= 8\r\n ? 'lib-justify-content-start'\r\n : 'lib-justify-content-space-between'\r\n \">\r\n <span class=\"legend-latest-holder\" *ngIf=\"\r\n chartData.data &&\r\n chartData.metaData.default_dept &&\r\n (chartConfiguration.isToggleVisible || chartData.metaData.isToggleVisible)\r\n \">\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n *ngIf=\"chartData.metaData.default_dept == item.key\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"marginRight-30 legend-style font-size-2\" *ngIf=\"chartData.metaData.default_dept\">\r\n Default Dept: {{ chartData.metaData.default_dept }}\r\n </span>\r\n <span *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span *ngIf=\"\r\n item.key != chartData.metaData.default_dept &&\r\n chartData.metaData.default_dept\r\n \" class=\"legends-latest\" [style.background-color]=\"item.value\"></span></span>\r\n <span class=\"legend-style font-size-2\" *ngIf=\"isLegendVisible() && chartData.metaData.default_dept\">Cross Train\r\n Dept</span>\r\n </span>\r\n <span class=\"legend-latest-holder legend-width\"\r\n [ngClass]=\"chartData.metaData.colorLegendVisibleOnTopLeft ? '' : 'invisible'\"\r\n *ngIf=\"chartData.data && !chartData.metaData.default_dept\">\r\n <span class=\"lib-display-flex lib-align-items-center\"\r\n *ngFor=\"let item of chartData.metaData.colors | keyvalue : keepOrder\"><span class=\"legends-latest\"\r\n [style.background-color]=\"item.value\"></span>\r\n <span class=\"marginRight-20 legend-style font-size-1 lib-white-space-nowrap\">\r\n {{ item.key }}\r\n </span>\r\n </span>\r\n </span>\r\n <span class=\"display-flex\">\r\n <!-- <span *ngIf=\"\r\n chartData.dropdownData1 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData1\" [isDropdownOpen]=\"this.isDD1Open\"\r\n (ddClicked)=\"handleDD1Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"></lib-dropdown>\r\n </span>\r\n <span *ngIf=\"\r\n chartData.dropdownData2 &&\r\n chartData.metaData.breadcrumbLength &&\r\n chartData.metaData.breadcrumbLength == 1\r\n \">\r\n <lib-dropdown [dropdownData]=\"chartData.dropdownData2\" [isDropdownOpen]=\"this.isDD2Open\"\r\n (ddClicked)=\"handleDD2Click()\" (selectedFromDropdown)=\"handleCompareByFilterSelection($event)\"\r\n [isCheckboxVisible]=\"chartData.metaData.isCheckboxVisible\"\r\n [dropdownHeaderName]=\"chartData.metaData.dropdownHeaderName\"></lib-dropdown>\r\n </span> -->\r\n <span class=\"zoomIcons-holder\" *ngIf=\"chartData.data && chartData.data.length > 8\">\r\n <span class=\"zoomIcons\" title=\"Zoom In\" [ngClass]=\"!isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(false, $event)\">\r\n <i class=\"fa fa-search-plus\"></i>\r\n </span>\r\n <span class=\"zoomIcons\" title=\"Zoom Out\" [ngClass]=\"isZoomedOut ? 'zoom-active' : 'zoom-inactive'\"\r\n (click)=\"isZoomOutSelected(true, $event)\">\r\n <i class=\"fa fa-search-minus\"></i>\r\n </span>\r\n </span>\r\n </span>\r\n</div>", styles: [".invisible{visibility:hidden}.hidden{visibility:hidden!important}.content-hidden{visibility:hidden}.opacity-hidden{opacity:0;pointer-events:none}@media (min-height: 500px){.legend-width{max-width:550px;overflow:auto}}@media (min-height: 900px){.header-title-styles{margin-left:35px;margin-top:12px;margin-bottom:25px}.legend-width{max-width:700px;overflow:auto}}\n"] }]
45
44
  }], propDecorators: { chartData: [{
46
45
  type: Input
47
46
  }], chartConfiguration: [{
@@ -51,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
51
50
  }], zoomInZoomOutClick: [{
52
51
  type: Output
53
52
  }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtaGVhZGVyLXYzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9jaGFydC1oZWFkZXItdjMvY2hhcnQtaGVhZGVyLXYzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9jaGFydC1oZWFkZXItdjMvY2hhcnQtaGVhZGVyLXYzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPdkUsTUFBTSxPQUFPLHNCQUFzQjtJQUxuQztRQVFZLDZCQUF3QixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDbkQsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV2RCxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUEyQjVCLGNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQztLQUNIO0lBNUJDLGVBQWU7UUFDYixJQUNFLElBQUksQ0FBQyxTQUFTO1lBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTTtZQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ3RELENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBQ0QsOEJBQThCLENBQUMsS0FBSztRQUNsQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsS0FBSztRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUM3QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDOUUsQ0FBQzsrR0FsQ1Usc0JBQXNCO21HQUF0QixzQkFBc0Isc1BDUG5DLDYvR0FpRU07OzRGRDFETyxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UscUJBQXFCOzhCQUt0QixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDSSx3QkFBd0I7c0JBQWpDLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWNoYXJ0LWhlYWRlci12MycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0LWhlYWRlci12My5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2NoYXJ0LWhlYWRlci12My5jb21wb25lbnQubGVzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGFydEhlYWRlclYzQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBjaGFydERhdGE6IGFueTtcclxuICBASW5wdXQoKSBjaGFydENvbmZpZ3VyYXRpb246IGFueTtcclxuICBAT3V0cHV0KCkgY29tcGFyZUJ5RmlsdGVyU2VsZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHpvb21Jblpvb21PdXRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBpc0REMU9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0REMk9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1pvb21lZE91dDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGlzTGVnZW5kVmlzaWJsZSgpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5jaGFydERhdGEgJiZcclxuICAgICAgdGhpcy5jaGFydERhdGEubWV0YURhdGEuY29sb3JzICYmXHJcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMuY2hhcnREYXRhLm1ldGFEYXRhLmNvbG9ycykubGVuZ3RoID4gMVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBoYW5kbGVERDFDbGljaygpIHtcclxuICAgIHRoaXMuaXNERDFPcGVuID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNERDJPcGVuID0gZmFsc2U7XHJcbiAgfVxyXG4gIGhhbmRsZUREMkNsaWNrKCkge1xyXG4gICAgdGhpcy5pc0REMk9wZW4gPSB0cnVlO1xyXG4gICAgdGhpcy5pc0REMU9wZW4gPSBmYWxzZTtcclxuICB9XHJcbiAgaGFuZGxlQ29tcGFyZUJ5RmlsdGVyU2VsZWN0aW9uKGV2ZW50KSB7XHJcbiAgICB0aGlzLmNvbXBhcmVCeUZpbHRlclNlbGVjdGlvbi5lbWl0KGV2ZW50KTtcclxuICB9XHJcbiAgaXNab29tT3V0U2VsZWN0ZWQoaXNab29tT3V0LCBldmVudCkge1xyXG4gICAgdGhpcy5pc1pvb21lZE91dCA9IGlzWm9vbU91dDsgXHJcbiAgICB0aGlzLnpvb21Jblpvb21PdXRDbGljay5lbWl0KHsgaXNab29tT3V0OiB0aGlzLmlzWm9vbWVkT3V0LCBldmVudDogZXZlbnQgfSk7XHJcbiAgfVxyXG4gIGtlZXBPcmRlciA9IChhLCBiKSA9PiB7XHJcbiAgICByZXR1cm4gYTtcclxuICB9O1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsaWItZGlzcGxheS1mbGV4IGhlYWRlci10aXRsZS1zdHlsZXNcIiBbbmdDbGFzc109XCJcclxuICAgICFjaGFydERhdGEuZHJvcGRvd25EYXRhMiAmJlxyXG4gICAgIWNoYXJ0RGF0YS5kcm9wZG93bkRhdGExICYmXHJcbiAgICBjaGFydERhdGEuZGF0YS5sZW5ndGggPD0gOFxyXG4gICAgICA/ICdsaWItanVzdGlmeS1jb250ZW50LXN0YXJ0J1xyXG4gICAgICA6ICdsaWItanVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4nXHJcbiAgXCI+XHJcbiAgPHNwYW4gY2xhc3M9XCJsZWdlbmQtbGF0ZXN0LWhvbGRlclwiICpuZ0lmPVwiXHJcbiAgICAgIGNoYXJ0RGF0YS5kYXRhICYmXHJcbiAgICAgIGNoYXJ0RGF0YS5tZXRhRGF0YS5kZWZhdWx0X2RlcHQgJiZcclxuICAgICAgKGNoYXJ0Q29uZmlndXJhdGlvbi5pc1RvZ2dsZVZpc2libGUgfHwgY2hhcnREYXRhLm1ldGFEYXRhLmlzVG9nZ2xlVmlzaWJsZSlcclxuICAgIFwiPlxyXG4gICAgPHNwYW4gKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2hhcnREYXRhLm1ldGFEYXRhLmNvbG9ycyB8IGtleXZhbHVlIDoga2VlcE9yZGVyXCI+PHNwYW4gY2xhc3M9XCJsZWdlbmRzLWxhdGVzdFwiXHJcbiAgICAgICAgKm5nSWY9XCJjaGFydERhdGEubWV0YURhdGEuZGVmYXVsdF9kZXB0ID09IGl0ZW0ua2V5XCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiaXRlbS52YWx1ZVwiPjwvc3Bhbj48L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cIm1hcmdpblJpZ2h0LTMwIGxlZ2VuZC1zdHlsZSBmb250LXNpemUtMlwiICpuZ0lmPVwiY2hhcnREYXRhLm1ldGFEYXRhLmRlZmF1bHRfZGVwdFwiPlxyXG4gICAgICBEZWZhdWx0IERlcHQ6IHt7IGNoYXJ0RGF0YS5tZXRhRGF0YS5kZWZhdWx0X2RlcHQgfX1cclxuICAgIDwvc3Bhbj5cclxuICAgIDxzcGFuICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNoYXJ0RGF0YS5tZXRhRGF0YS5jb2xvcnMgfCBrZXl2YWx1ZSA6IGtlZXBPcmRlclwiPjxzcGFuICpuZ0lmPVwiXHJcbiAgICAgICAgICBpdGVtLmtleSAhPSBjaGFydERhdGEubWV0YURhdGEuZGVmYXVsdF9kZXB0ICYmXHJcbiAgICAgICAgICBjaGFydERhdGEubWV0YURhdGEuZGVmYXVsdF9kZXB0XHJcbiAgICAgICAgXCIgY2xhc3M9XCJsZWdlbmRzLWxhdGVzdFwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cIml0ZW0udmFsdWVcIj48L3NwYW4+PC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJsZWdlbmQtc3R5bGUgZm9udC1zaXplLTJcIiAqbmdJZj1cImlzTGVnZW5kVmlzaWJsZSgpICYmIGNoYXJ0RGF0YS5tZXRhRGF0YS5kZWZhdWx0X2RlcHRcIj5Dcm9zcyBUcmFpblxyXG4gICAgICBEZXB0PC9zcGFuPlxyXG4gIDwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXRlc3QtaG9sZGVyIGxlZ2VuZC13aWR0aFwiXHJcbiAgICBbbmdDbGFzc109XCJjaGFydERhdGEubWV0YURhdGEuY29sb3JMZWdlbmRWaXNpYmxlT25Ub3BMZWZ0ID8gJycgOiAnaW52aXNpYmxlJ1wiXHJcbiAgICAqbmdJZj1cImNoYXJ0RGF0YS5kYXRhICYmICFjaGFydERhdGEubWV0YURhdGEuZGVmYXVsdF9kZXB0XCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImxpYi1kaXNwbGF5LWZsZXggbGliLWFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNoYXJ0RGF0YS5tZXRhRGF0YS5jb2xvcnMgfCBrZXl2YWx1ZSA6IGtlZXBPcmRlclwiPjxzcGFuIGNsYXNzPVwibGVnZW5kcy1sYXRlc3RcIlxyXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cIml0ZW0udmFsdWVcIj48L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibWFyZ2luUmlnaHQtMjAgbGVnZW5kLXN0eWxlIGZvbnQtc2l6ZS0xIGxpYi13aGl0ZS1zcGFjZS1ub3dyYXBcIj5cclxuICAgICAgICB7eyBpdGVtLmtleSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9zcGFuPlxyXG4gIDxzcGFuIGNsYXNzPVwiZGlzcGxheS1mbGV4XCI+XHJcbiAgICA8c3BhbiAqbmdJZj1cIlxyXG4gICAgICAgIGNoYXJ0RGF0YS5kcm9wZG93bkRhdGExICYmXHJcbiAgICAgICAgY2hhcnREYXRhLm1ldGFEYXRhLmJyZWFkY3J1bWJMZW5ndGggJiZcclxuICAgICAgICBjaGFydERhdGEubWV0YURhdGEuYnJlYWRjcnVtYkxlbmd0aCA9PSAxXHJcbiAgICAgIFwiPlxyXG4gICAgICA8bGliLWRyb3Bkb3duIFtkcm9wZG93bkRhdGFdPVwiY2hhcnREYXRhLmRyb3Bkb3duRGF0YTFcIiBbaXNEcm9wZG93bk9wZW5dPVwidGhpcy5pc0REMU9wZW5cIlxyXG4gICAgICAgIChkZENsaWNrZWQpPVwiaGFuZGxlREQxQ2xpY2soKVwiIChzZWxlY3RlZEZyb21Ecm9wZG93bik9XCJoYW5kbGVDb21wYXJlQnlGaWx0ZXJTZWxlY3Rpb24oJGV2ZW50KVwiPjwvbGliLWRyb3Bkb3duPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJcclxuICAgICAgICBjaGFydERhdGEuZHJvcGRvd25EYXRhMiAmJlxyXG4gICAgICAgIGNoYXJ0RGF0YS5tZXRhRGF0YS5icmVhZGNydW1iTGVuZ3RoICYmXHJcbiAgICAgICAgY2hhcnREYXRhLm1ldGFEYXRhLmJyZWFkY3J1bWJMZW5ndGggPT0gMVxyXG4gICAgICBcIj5cclxuICAgICAgPGxpYi1kcm9wZG93biBbZHJvcGRvd25EYXRhXT1cImNoYXJ0RGF0YS5kcm9wZG93bkRhdGEyXCIgW2lzRHJvcGRvd25PcGVuXT1cInRoaXMuaXNERDJPcGVuXCJcclxuICAgICAgICAoZGRDbGlja2VkKT1cImhhbmRsZUREMkNsaWNrKClcIiAoc2VsZWN0ZWRGcm9tRHJvcGRvd24pPVwiaGFuZGxlQ29tcGFyZUJ5RmlsdGVyU2VsZWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgIFtpc0NoZWNrYm94VmlzaWJsZV09XCJjaGFydERhdGEubWV0YURhdGEuaXNDaGVja2JveFZpc2libGVcIlxyXG4gICAgICAgIFtkcm9wZG93bkhlYWRlck5hbWVdPVwiY2hhcnREYXRhLm1ldGFEYXRhLmRyb3Bkb3duSGVhZGVyTmFtZVwiPjwvbGliLWRyb3Bkb3duPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJ6b29tSWNvbnMtaG9sZGVyXCIgKm5nSWY9XCJjaGFydERhdGEuZGF0YSAmJiBjaGFydERhdGEuZGF0YS5sZW5ndGggPiA4XCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiem9vbUljb25zXCIgdGl0bGU9XCJab29tIEluXCIgW25nQ2xhc3NdPVwiIWlzWm9vbWVkT3V0ID8gJ3pvb20tYWN0aXZlJyA6ICd6b29tLWluYWN0aXZlJ1wiXHJcbiAgICAgICAgKGNsaWNrKT1cImlzWm9vbU91dFNlbGVjdGVkKGZhbHNlLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2gtcGx1c1wiPjwvaT5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInpvb21JY29uc1wiIHRpdGxlPVwiWm9vbSBPdXRcIiBbbmdDbGFzc109XCJpc1pvb21lZE91dCA/ICd6b29tLWFjdGl2ZScgOiAnem9vbS1pbmFjdGl2ZSdcIlxyXG4gICAgICAgIChjbGljayk9XCJpc1pvb21PdXRTZWxlY3RlZCh0cnVlLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2gtbWludXNcIj48L2k+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvc3Bhbj5cclxuICA8L3NwYW4+XHJcbjwvZGl2PiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtaGVhZGVyLXYzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9jaGFydC1oZWFkZXItdjMvY2hhcnQtaGVhZGVyLXYzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9jaGFydC1oZWFkZXItdjMvY2hhcnQtaGVhZGVyLXYzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU92RSxNQUFNLE9BQU8sc0JBQXNCO0lBTG5DO1FBUVksNkJBQXdCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNuRCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXZELGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixnQkFBVyxHQUFZLElBQUksQ0FBQztRQTJCNUIsY0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDO0tBQ0g7SUE1QkMsZUFBZTtRQUNiLElBQ0UsSUFBSSxDQUFDLFNBQVM7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNO1lBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDdEQsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBQ0QsY0FBYztRQUNaLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFDRCw4QkFBOEIsQ0FBQyxLQUFLO1FBQ2xDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELGlCQUFpQixDQUFDLFNBQVMsRUFBRSxLQUFLO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDOytHQWxDVSxzQkFBc0I7bUdBQXRCLHNCQUFzQixzUENQbkMsc2dIQWlFTTs7NEZEMURPLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxxQkFBcUI7OEJBS3RCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNJLHdCQUF3QjtzQkFBakMsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY2hhcnQtaGVhZGVyLXYzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQtaGVhZGVyLXYzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY2hhcnQtaGVhZGVyLXYzLmNvbXBvbmVudC5sZXNzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENoYXJ0SGVhZGVyVjNDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGNoYXJ0RGF0YTogYW55O1xyXG4gIEBJbnB1dCgpIGNoYXJ0Q29uZmlndXJhdGlvbjogYW55O1xyXG4gIEBPdXRwdXQoKSBjb21wYXJlQnlGaWx0ZXJTZWxlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgem9vbUluWm9vbU91dENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGlzREQxT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzREQyT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzWm9vbWVkT3V0OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgaXNMZWdlbmRWaXNpYmxlKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNoYXJ0RGF0YSAmJlxyXG4gICAgICB0aGlzLmNoYXJ0RGF0YS5tZXRhRGF0YS5jb2xvcnMgJiZcclxuICAgICAgT2JqZWN0LmtleXModGhpcy5jaGFydERhdGEubWV0YURhdGEuY29sb3JzKS5sZW5ndGggPiAxXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGhhbmRsZUREMUNsaWNrKCkge1xyXG4gICAgdGhpcy5pc0REMU9wZW4gPSB0cnVlO1xyXG4gICAgdGhpcy5pc0REMk9wZW4gPSBmYWxzZTtcclxuICB9XHJcbiAgaGFuZGxlREQyQ2xpY2soKSB7XHJcbiAgICB0aGlzLmlzREQyT3BlbiA9IHRydWU7XHJcbiAgICB0aGlzLmlzREQxT3BlbiA9IGZhbHNlO1xyXG4gIH1cclxuICBoYW5kbGVDb21wYXJlQnlGaWx0ZXJTZWxlY3Rpb24oZXZlbnQpIHtcclxuICAgIHRoaXMuY29tcGFyZUJ5RmlsdGVyU2VsZWN0aW9uLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICBpc1pvb21PdXRTZWxlY3RlZChpc1pvb21PdXQsIGV2ZW50KSB7XHJcbiAgICB0aGlzLmlzWm9vbWVkT3V0ID0gaXNab29tT3V0OyBcclxuICAgIHRoaXMuem9vbUluWm9vbU91dENsaWNrLmVtaXQoeyBpc1pvb21PdXQ6IHRoaXMuaXNab29tZWRPdXQsIGV2ZW50OiBldmVudCB9KTtcclxuICB9XHJcbiAga2VlcE9yZGVyID0gKGEsIGIpID0+IHtcclxuICAgIHJldHVybiBhO1xyXG4gIH07XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxpYi1kaXNwbGF5LWZsZXggaGVhZGVyLXRpdGxlLXN0eWxlc1wiIFtuZ0NsYXNzXT1cIlxyXG4gICAgIWNoYXJ0RGF0YS5kcm9wZG93bkRhdGEyICYmXHJcbiAgICAhY2hhcnREYXRhLmRyb3Bkb3duRGF0YTEgJiZcclxuICAgIGNoYXJ0RGF0YS5kYXRhLmxlbmd0aCA8PSA4XHJcbiAgICAgID8gJ2xpYi1qdXN0aWZ5LWNvbnRlbnQtc3RhcnQnXHJcbiAgICAgIDogJ2xpYi1qdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYmV0d2VlbidcclxuICBcIj5cclxuICA8c3BhbiBjbGFzcz1cImxlZ2VuZC1sYXRlc3QtaG9sZGVyXCIgKm5nSWY9XCJcclxuICAgICAgY2hhcnREYXRhLmRhdGEgJiZcclxuICAgICAgY2hhcnREYXRhLm1ldGFEYXRhLmRlZmF1bHRfZGVwdCAmJlxyXG4gICAgICAoY2hhcnRDb25maWd1cmF0aW9uLmlzVG9nZ2xlVmlzaWJsZSB8fCBjaGFydERhdGEubWV0YURhdGEuaXNUb2dnbGVWaXNpYmxlKVxyXG4gICAgXCI+XHJcbiAgICA8c3BhbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjaGFydERhdGEubWV0YURhdGEuY29sb3JzIHwga2V5dmFsdWUgOiBrZWVwT3JkZXJcIj48c3BhbiBjbGFzcz1cImxlZ2VuZHMtbGF0ZXN0XCJcclxuICAgICAgICAqbmdJZj1cImNoYXJ0RGF0YS5tZXRhRGF0YS5kZWZhdWx0X2RlcHQgPT0gaXRlbS5rZXlcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJpdGVtLnZhbHVlXCI+PC9zcGFuPjwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwibWFyZ2luUmlnaHQtMzAgbGVnZW5kLXN0eWxlIGZvbnQtc2l6ZS0yXCIgKm5nSWY9XCJjaGFydERhdGEubWV0YURhdGEuZGVmYXVsdF9kZXB0XCI+XHJcbiAgICAgIERlZmF1bHQgRGVwdDoge3sgY2hhcnREYXRhLm1ldGFEYXRhLmRlZmF1bHRfZGVwdCB9fVxyXG4gICAgPC9zcGFuPlxyXG4gICAgPHNwYW4gKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2hhcnREYXRhLm1ldGFEYXRhLmNvbG9ycyB8IGtleXZhbHVlIDoga2VlcE9yZGVyXCI+PHNwYW4gKm5nSWY9XCJcclxuICAgICAgICAgIGl0ZW0ua2V5ICE9IGNoYXJ0RGF0YS5tZXRhRGF0YS5kZWZhdWx0X2RlcHQgJiZcclxuICAgICAgICAgIGNoYXJ0RGF0YS5tZXRhRGF0YS5kZWZhdWx0X2RlcHRcclxuICAgICAgICBcIiBjbGFzcz1cImxlZ2VuZHMtbGF0ZXN0XCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiaXRlbS52YWx1ZVwiPjwvc3Bhbj48L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cImxlZ2VuZC1zdHlsZSBmb250LXNpemUtMlwiICpuZ0lmPVwiaXNMZWdlbmRWaXNpYmxlKCkgJiYgY2hhcnREYXRhLm1ldGFEYXRhLmRlZmF1bHRfZGVwdFwiPkNyb3NzIFRyYWluXHJcbiAgICAgIERlcHQ8L3NwYW4+XHJcbiAgPC9zcGFuPlxyXG4gIDxzcGFuIGNsYXNzPVwibGVnZW5kLWxhdGVzdC1ob2xkZXIgbGVnZW5kLXdpZHRoXCJcclxuICAgIFtuZ0NsYXNzXT1cImNoYXJ0RGF0YS5tZXRhRGF0YS5jb2xvckxlZ2VuZFZpc2libGVPblRvcExlZnQgPyAnJyA6ICdpbnZpc2libGUnXCJcclxuICAgICpuZ0lmPVwiY2hhcnREYXRhLmRhdGEgJiYgIWNoYXJ0RGF0YS5tZXRhRGF0YS5kZWZhdWx0X2RlcHRcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwibGliLWRpc3BsYXktZmxleCBsaWItYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2hhcnREYXRhLm1ldGFEYXRhLmNvbG9ycyB8IGtleXZhbHVlIDoga2VlcE9yZGVyXCI+PHNwYW4gY2xhc3M9XCJsZWdlbmRzLWxhdGVzdFwiXHJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiaXRlbS52YWx1ZVwiPjwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJtYXJnaW5SaWdodC0yMCBsZWdlbmQtc3R5bGUgZm9udC1zaXplLTEgbGliLXdoaXRlLXNwYWNlLW5vd3JhcFwiPlxyXG4gICAgICAgIHt7IGl0ZW0ua2V5IH19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvc3Bhbj5cclxuICA8L3NwYW4+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXNwbGF5LWZsZXhcIj5cclxuICAgIDwhLS0gPHNwYW4gKm5nSWY9XCJcclxuICAgICAgICBjaGFydERhdGEuZHJvcGRvd25EYXRhMSAmJlxyXG4gICAgICAgIGNoYXJ0RGF0YS5tZXRhRGF0YS5icmVhZGNydW1iTGVuZ3RoICYmXHJcbiAgICAgICAgY2hhcnREYXRhLm1ldGFEYXRhLmJyZWFkY3J1bWJMZW5ndGggPT0gMVxyXG4gICAgICBcIj5cclxuICAgICAgPGxpYi1kcm9wZG93biBbZHJvcGRvd25EYXRhXT1cImNoYXJ0RGF0YS5kcm9wZG93bkRhdGExXCIgW2lzRHJvcGRvd25PcGVuXT1cInRoaXMuaXNERDFPcGVuXCJcclxuICAgICAgICAoZGRDbGlja2VkKT1cImhhbmRsZUREMUNsaWNrKClcIiAoc2VsZWN0ZWRGcm9tRHJvcGRvd24pPVwiaGFuZGxlQ29tcGFyZUJ5RmlsdGVyU2VsZWN0aW9uKCRldmVudClcIj48L2xpYi1kcm9wZG93bj5cclxuICAgIDwvc3Bhbj5cclxuICAgIDxzcGFuICpuZ0lmPVwiXHJcbiAgICAgICAgY2hhcnREYXRhLmRyb3Bkb3duRGF0YTIgJiZcclxuICAgICAgICBjaGFydERhdGEubWV0YURhdGEuYnJlYWRjcnVtYkxlbmd0aCAmJlxyXG4gICAgICAgIGNoYXJ0RGF0YS5tZXRhRGF0YS5icmVhZGNydW1iTGVuZ3RoID09IDFcclxuICAgICAgXCI+XHJcbiAgICAgIDxsaWItZHJvcGRvd24gW2Ryb3Bkb3duRGF0YV09XCJjaGFydERhdGEuZHJvcGRvd25EYXRhMlwiIFtpc0Ryb3Bkb3duT3Blbl09XCJ0aGlzLmlzREQyT3BlblwiXHJcbiAgICAgICAgKGRkQ2xpY2tlZCk9XCJoYW5kbGVERDJDbGljaygpXCIgKHNlbGVjdGVkRnJvbURyb3Bkb3duKT1cImhhbmRsZUNvbXBhcmVCeUZpbHRlclNlbGVjdGlvbigkZXZlbnQpXCJcclxuICAgICAgICBbaXNDaGVja2JveFZpc2libGVdPVwiY2hhcnREYXRhLm1ldGFEYXRhLmlzQ2hlY2tib3hWaXNpYmxlXCJcclxuICAgICAgICBbZHJvcGRvd25IZWFkZXJOYW1lXT1cImNoYXJ0RGF0YS5tZXRhRGF0YS5kcm9wZG93bkhlYWRlck5hbWVcIj48L2xpYi1kcm9wZG93bj5cclxuICAgIDwvc3Bhbj4gLS0+XHJcbiAgICA8c3BhbiBjbGFzcz1cInpvb21JY29ucy1ob2xkZXJcIiAqbmdJZj1cImNoYXJ0RGF0YS5kYXRhICYmIGNoYXJ0RGF0YS5kYXRhLmxlbmd0aCA+IDhcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ6b29tSWNvbnNcIiB0aXRsZT1cIlpvb20gSW5cIiBbbmdDbGFzc109XCIhaXNab29tZWRPdXQgPyAnem9vbS1hY3RpdmUnIDogJ3pvb20taW5hY3RpdmUnXCJcclxuICAgICAgICAoY2xpY2spPVwiaXNab29tT3V0U2VsZWN0ZWQoZmFsc2UsICRldmVudClcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaC1wbHVzXCI+PC9pPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiem9vbUljb25zXCIgdGl0bGU9XCJab29tIE91dFwiIFtuZ0NsYXNzXT1cImlzWm9vbWVkT3V0ID8gJ3pvb20tYWN0aXZlJyA6ICd6b29tLWluYWN0aXZlJ1wiXHJcbiAgICAgICAgKGNsaWNrKT1cImlzWm9vbU91dFNlbGVjdGVkKHRydWUsICRldmVudClcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaC1taW51c1wiPjwvaT5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvc3Bhbj5cclxuPC9kaXY+Il19