@indice/ng-components 0.2.148-beta → 0.2.151-beta
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/bundles/indice-ng-components.umd.js +22 -11
- package/bundles/indice-ng-components.umd.js.map +1 -1
- package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +22 -12
- package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +1 -1
- package/esm2015/lib/types.js +1 -1
- package/fesm2015/indice-ng-components.js +21 -11
- package/fesm2015/indice-ng-components.js.map +1 -1
- package/lib/layouts/shell/shell-header/shell-header.component.d.ts +7 -4
- package/lib/types.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, Inject, Input } from '@angular/core';
|
|
2
2
|
import { NavigationStart, Router } from '@angular/router';
|
|
3
|
-
import { filter
|
|
3
|
+
import { filter } from 'rxjs/operators';
|
|
4
4
|
import { APP_LINKS } from '../../../tokens';
|
|
5
5
|
import { Observable, of } from 'rxjs';
|
|
6
6
|
import { AuthService } from '@indice/ng-auth';
|
|
@@ -16,16 +16,18 @@ export class ShellHeaderComponent {
|
|
|
16
16
|
this.links = links;
|
|
17
17
|
// tslint:disable-next-line:no-input-rename
|
|
18
18
|
this.sectionLinksPath = 'main';
|
|
19
|
-
this.
|
|
19
|
+
this.notificationsLinksPath = 'notifications';
|
|
20
20
|
this.allNotificationsLinkPath = 'allNotifications';
|
|
21
|
+
this.notificationsCounterLinksPath = 'notificationsCounter';
|
|
21
22
|
this.border = true;
|
|
22
23
|
this.showNotifications = false;
|
|
23
24
|
this.showUserNameOnHeader = false;
|
|
24
25
|
this.notificationsMenuVisible = true;
|
|
25
26
|
this.profileMenuVisible = true;
|
|
26
27
|
this.sectionLinks = of([]);
|
|
27
|
-
this.
|
|
28
|
+
this.notifications = of([]);
|
|
28
29
|
this.allNotificationsLink = of();
|
|
30
|
+
this.unreadNotificationsCountObs = of(0);
|
|
29
31
|
this.mobileMenuExpanded = false;
|
|
30
32
|
this.userMenuExpanded = false;
|
|
31
33
|
this.notificationsMenuExpanded = false;
|
|
@@ -35,7 +37,7 @@ export class ShellHeaderComponent {
|
|
|
35
37
|
this.statusSub$ = null;
|
|
36
38
|
this.user = null;
|
|
37
39
|
this.avatarName = null;
|
|
38
|
-
this.
|
|
40
|
+
this.unreadNotificationsCount = 0;
|
|
39
41
|
}
|
|
40
42
|
ngOnDestroy() {
|
|
41
43
|
if (this.routerSub$) {
|
|
@@ -54,8 +56,10 @@ export class ShellHeaderComponent {
|
|
|
54
56
|
this.showNotifications = (_a = this.config) === null || _a === void 0 ? void 0 : _a.showNotifications;
|
|
55
57
|
this.showUserNameOnHeader = (_b = this.config) === null || _b === void 0 ? void 0 : _b.showUserNameOnHeader;
|
|
56
58
|
this.sectionLinks = this.links[this.sectionLinksPath];
|
|
57
|
-
this.
|
|
59
|
+
this.notifications = this.links[this.notificationsLinksPath];
|
|
58
60
|
this.allNotificationsLink = this.links[this.allNotificationsLinkPath];
|
|
61
|
+
this.unreadNotificationsCountObs = this.links[this.notificationsCounterLinksPath];
|
|
62
|
+
this.getUnreadNotificationsCount();
|
|
59
63
|
this.routerSub$ = this.router.events.pipe(filter(event => event instanceof NavigationStart)).subscribe(event => {
|
|
60
64
|
this.mobileMenuExpanded = false;
|
|
61
65
|
this.userMenuExpanded = false;
|
|
@@ -72,9 +76,6 @@ export class ShellHeaderComponent {
|
|
|
72
76
|
// console.log('ShellHeaderComponent user subscription');
|
|
73
77
|
this.setCurrentUser(user);
|
|
74
78
|
});
|
|
75
|
-
this.notificationLinks.pipe(map(notifications => {
|
|
76
|
-
this.notificationsCount = notifications.filter(x => !x.isRead).length;
|
|
77
|
-
})).subscribe();
|
|
78
79
|
}
|
|
79
80
|
setCurrentUser(user) {
|
|
80
81
|
var _a, _b;
|
|
@@ -105,10 +106,16 @@ export class ShellHeaderComponent {
|
|
|
105
106
|
expandNotificationsMenu() {
|
|
106
107
|
this.notificationsMenuExpanded = !this.notificationsMenuExpanded;
|
|
107
108
|
this.userMenuExpanded = false;
|
|
109
|
+
this.getUnreadNotificationsCount();
|
|
110
|
+
}
|
|
111
|
+
getUnreadNotificationsCount() {
|
|
112
|
+
this.unreadNotificationsCountObs.subscribe(count => {
|
|
113
|
+
this.unreadNotificationsCount = count;
|
|
114
|
+
});
|
|
108
115
|
}
|
|
109
116
|
}
|
|
110
117
|
ShellHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellHeaderComponent, deps: [{ token: AuthService }, { token: Router }, { token: APP_LINKS }], target: i0.ɵɵFactoryTarget.Component });
|
|
111
|
-
ShellHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ShellHeaderComponent, selector: "lib-shell-header", inputs: { sectionLinksPath: ["section-links", "sectionLinksPath"], notificationLinksPath: ["notification-links", "notificationLinksPath"], allNotificationsLinkPath: ["all-notifications", "allNotificationsLinkPath"], config: "config", border: "border" }, ngImport: i0, template: "<nav>\r\n <div class=\"shell-header-paddings\">\r\n <div [class]=\"border ? 'shell-header-border' : ''\">\r\n <div class=\"shell-header-menu-container\">\r\n <div class=\"shell-header-links-no-grow-container\">\r\n <div>\r\n <a href=\"#\"\r\n [routerLink]=\"['/']\"><img class=\"app-logo\"\r\n [src]=\"config.appLogo\"\r\n [alt]=\"config.appLogoAlt\" /></a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"shell-header-link-container\">\r\n <ng-container *ngFor=\"let link of sectionLinks | async\">\r\n <a href=\"#\"\r\n [routerLink]=\"[link.path]\"\r\n [attr.target]=\"link.external ? '_blank' : '_self'\"\r\n [routerLinkActive]=\"['nav-link-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n class=\"nav-link\">\r\n {{ link.text }}\r\n </a>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"shell-header-md-visible\">\r\n <div class=\"shell-header-links-no-grow-container\">\r\n\r\n <ng-container *ngFor=\"let link of links.profileActions | async\">\r\n <a class=\"shell-header-menu-rounded-button\"\r\n (clickOutside)=\"onClickOutsideProfile($event)\"\r\n [attr.href]=\"link.path\"\r\n [attr.target]=\"link.external ? '_blank' : '_self'\">\r\n <span class=\"sr-only\">{{ link.text }}</span>\r\n <i *ngIf=\"link.icon\"\r\n [class]=\"link.icon\"></i>\r\n </a>\r\n </ng-container>\r\n\r\n <!-- Profile dropdown -->\r\n <div class=\"ml-2 relative\"\r\n (clickOutside)=\"onClickOutsideProfile($event)\"\r\n *ngIf=\"profileMenuVisible\">\r\n <div [ngClass]=\"{'shell-header-profile': showUserNameOnHeader}\">\r\n <div *ngIf=\"user && showUserNameOnHeader\"\r\n class=\"shell-header-profile-userName\">\r\n {{ user.profile.name }}\r\n </div>\r\n <button type=\"button\"\r\n *ngIf=\"user\"\r\n (click)=\"userMenuExpanded = !userMenuExpanded\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">Open user menu</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\">{{this.avatarName}}</span>\r\n </span>\r\n </button>\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!user\"\r\n (click)=\"signin(null)\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">sign in</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\"><i class=\"ms-Icon ms-Icon--Signin\"></i></span>\r\n </span>\r\n </button>\r\n\r\n <div *ngIf=\"userMenuExpanded\"\r\n [ngClass]=\"showUserNameOnHeader ? 'shell-header-profile-dropdown-with-username' : 'shell-header-profile-dropdown'\"\r\n role=\"menu\"\r\n aria-orientation=\"vertical\"\r\n aria-labelledby=\"user-menu\">\r\n <!-- <a href=\"#\" class=\"block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100\" role=\"menuitem\">\u0391\u03C0\u03BF\u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7</a> -->\r\n <ng-container *ngFor=\"let link of links.profile | async\">\r\n <!-- <a *ngIf=\"link.external\" [attr.href]=\"link.path\" [attr.target]=\"'_blank'\" class=\"nav-link-profile\">\r\n {{ link.text }}\r\n </a> -->\r\n <a [routerLink]=\"link.path\"\r\n [routerLinkActive]=\"['nav-link-profile-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n class=\"nav-link-profile\">\r\n {{ link.text }}\r\n </a>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <!-- Notifications dropdown -->\r\n <div class=\"ml-2 relative\"\r\n (clickOutside)=\"onClickOutsideNotifications($event)\"\r\n *ngIf=\"notificationsMenuVisible\">\r\n <!-- Notifications Button -->\r\n <button type=\"button\"\r\n class=\"mobile-menu-rounded-button bg-transparent\"\r\n *ngIf=\"showNotifications\"\r\n (click)=\"expandNotificationsMenu()\"\r\n id=\"notifications-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <span class=\"relative inline-block\">\r\n <!-- Heroicon name: outline/bell -->\r\n <svg class=\"mobile-menu-rounded-button-icon-style\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\" />\r\n </svg>\r\n <span *ngIf=\"notificationsCount > 0\"\r\n class=\"absolute top-0 right-0 inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-gray-100 transform translate-x-1/2 -translate-y-1/2 bg-gray-500 rounded-full\">{{notificationsCount}}</span>\r\n </span>\r\n </button>\r\n\r\n <div *ngIf=\"notificationsMenuExpanded\"\r\n [ngClass]=\"showUserNameOnHeader ? 'shell-header-notifications-dropdown-with-username' : 'shell-header-notifications-dropdown'\"\r\n role=\"menu\"\r\n aria-orientation=\"vertical\"\r\n aria-labelledby=\"notifications-menu\">\r\n <div class=\"max-h-64 overflow-y-auto notification-messages min-h\">\r\n <ng-container *ngIf=\"!notificationLinks; else notificationsDropDown\"\r\n class=\"py-5\">\r\n <div class=\"nav-link-notifications hover:bg-transparent\">\r\n \u0394\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03BD\u03AD\u03B5\u03C2 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2\r\n </div>\r\n </ng-container>\r\n <ng-template #notificationsDropDown>\r\n <ul class=\"pr-1.5\">\r\n <ng-container *ngIf=\"notificationLinks | async as obs; else loading\">\r\n <ng-container *ngIf=\"obs.length <= 0\"\r\n class=\"py-5\">\r\n <div class=\"nav-link-notifications hover:bg-transparent\">\r\n \u0394\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03BD\u03AD\u03B5\u03C2 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2\r\n </div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let link of obs\">\r\n <li class=\"mb-2\"\r\n [ngClass]=\"{'border-l-2 border-blue-500 bg-blue-50 hover:bg-blue-50': !link.isRead }\">\r\n <div class=\"flex justify-between\">\r\n <div class=\"flex-grow\">\r\n <a [routerLink]=\"link.path\"\r\n class=\"nav-link-notifications grid\"\r\n [ngClass]=\"!link.isRead ? ' hover:bg-blue-50' : 'border-b border-gray-100'\">\r\n <div class=\"flex flex-col\">\r\n <div class=\"font-thin tracking-tighter\">\r\n {{ link.creationDate | date: 'EEE, d MMMM' }}\r\n </div>\r\n <div class=\"font-bold\">\r\n {{ link.text }}\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n <!-- <div class=\"flex-none font-thin tracking-tighter\">\r\n <button type=\"button\"\r\n title=\"\u0394\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE\"\r\n class=\"text-red-600 hover:text-red-900\">\r\n <span class=\"ms-Icon ms-Icon--Delete\"></span>\r\n </button>\r\n </div> -->\r\n </div>\r\n </li>\r\n\r\n\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loading>\r\n <div class=\"h-32 flex items-center justify-center\">\r\n <div class=\"animate-pulse text-s text-gray-600\">Loading...</div>\r\n </div>\r\n </ng-template>\r\n\r\n\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <div class=\"p-1 rounded-sm\">\r\n <a [routerLink]=\"(allNotificationsLink | async)?.path\">\r\n <button type=\"button\"\r\n class=\"shell-header-notifications-dropdown-view-all-button\">\u03A0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AE \u03CC\u03BB\u03C9\u03BD</button>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mobile-menu-button-container\">\r\n <!-- Mobile menu button -->\r\n <button type=\"button\"\r\n (click)=\"mobileMenuExpanded = !mobileMenuExpanded\"\r\n class=\"mobile-menu-button\"\r\n aria-controls=\"mobile-menu\"\r\n [attr.aria-expanded]=\"mobileMenuExpanded\">\r\n <span class=\"sr-only\">Open main menu</span>\r\n <!--Heroicon name: outline/menu Menu open: \"hidden\", Menu closed: \"block\"-->\r\n <svg class=\"block h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M4 6h16M4 12h16M4 18h16\" />\r\n </svg>\r\n <!--Heroicon name: outline/x Menu open: \"block\", Menu closed: \"hidden\"-->\r\n <svg class=\"hidden h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Mobile menu, show/hide based on menu state. -->\r\n <div class=\"mobile-menu-container\"\r\n *ngIf=\"mobileMenuExpanded\"\r\n id=\"mobile-menu\">\r\n <div class=\"mobile-menu-link-container\">\r\n <ng-container *ngFor=\"let link of sectionLinks | async\">\r\n <a *ngIf=\"link.external\"\r\n [attr.href]=\"link.path\"\r\n [attr.target]=\"'_blank'\"\r\n class=\"nav-link-mobile\">\r\n {{ link.text }}\r\n </a>\r\n <a *ngIf=\"!link.external\"\r\n [routerLink]=\"link.path\"\r\n [routerLinkActive]=\"['nav-link-mobile-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n class=\"nav-link-mobile\">\r\n {{ link.text }}\r\n </a>\r\n </ng-container>\r\n <ng-container *ngIf=\"!user\">\r\n <a href=\"#\"\r\n (click)=\"signin($event)\"\r\n class=\"nav-link-mobile\">\r\n <i class=\"ms-Icon ms-Icon--Signin mr-2\"></i>\u03A3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7\r\n </a>\r\n </ng-container>\r\n </div>\r\n <div class=\"mobile-menu-user-info-container\"\r\n *ngIf=\"user\">\r\n <div class=\"mobile-menu-user-info-container-inner\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"mobile-menu-avatar-container\">\r\n <span class=\"mobile-menu-avatar-name\">{{ this.avatarName }}</span>\r\n </span>\r\n </div>\r\n <div class=\"ml-3\">\r\n <div class=\"mobile-menu-user-name\">{{ user.profile.name }}</div>\r\n <div class=\"mobile-menu-user-email\">{{ user.profile.email }}</div>\r\n </div>\r\n <a [routerLink]=\"(allNotificationsLink | async)?.path\">\r\n <button class=\"mobile-menu-rounded-button\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <!-- Heroicon name: outline/bell -->\r\n <svg class=\"mobile-menu-rounded-button-icon-style\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\" />\r\n </svg>\r\n </button>\r\n </a>\r\n </div>\r\n <div class=\"mobile-menu-link-container\">\r\n <ng-container *ngFor=\"let link of links.profile | async\">\r\n <a *ngIf=\"link.external\"\r\n [attr.href]=\"link.path\"\r\n [attr.target]=\"'_blank'\"\r\n class=\"nav-link-mobile\">\r\n {{ link.text }}\r\n </a>\r\n <a [routerLink]=\"link.path\"\r\n [routerLinkActive]=\"['nav-link-mobile-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n class=\"nav-link-mobile\">\r\n {{ link.text }}\r\n </a>\r\n </ng-container>\r\n <!-- <a href=\"#\" class=\"block px-3 py-2 rounded-sm text-base font-medium text-gray-400 hover:text-white hover:bg-gray-700\">\u0391\u03C0\u03BF\u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7</a> -->\r\n </div>\r\n </div>\r\n </div>\r\n</nav>\r\n", directives: [{ type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }, { type: i3.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i2.AsyncPipe, "date": i2.DatePipe } });
|
|
118
|
+
ShellHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ShellHeaderComponent, selector: "lib-shell-header", inputs: { sectionLinksPath: ["section-links", "sectionLinksPath"], notificationsLinksPath: ["notifications-links", "notificationsLinksPath"], allNotificationsLinkPath: ["all-notifications", "allNotificationsLinkPath"], notificationsCounterLinksPath: ["notifications-counter", "notificationsCounterLinksPath"], config: "config", border: "border" }, ngImport: i0, template: "<nav>\r\n <div class=\"shell-header-paddings\">\r\n <div [class]=\"border ? 'shell-header-border' : ''\">\r\n <div class=\"shell-header-menu-container\">\r\n <div class=\"shell-header-links-no-grow-container\">\r\n <div>\r\n <a href=\"#\"\r\n [routerLink]=\"['/']\"><img class=\"app-logo\"\r\n [src]=\"config.appLogo\"\r\n [alt]=\"config.appLogoAlt\" /></a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"shell-header-link-container\">\r\n <ng-container *ngFor=\"let link of sectionLinks | async\">\r\n <a href=\"#\"\r\n [routerLink]=\"[link.path]\"\r\n [attr.target]=\"link.external ? '_blank' : '_self'\"\r\n [routerLinkActive]=\"['nav-link-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n class=\"nav-link\"\r\n (click)=\"getUnreadNotificationsCount()\">\r\n {{ link.text }}\r\n </a>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"shell-header-md-visible\">\r\n <div class=\"shell-header-links-no-grow-container\">\r\n\r\n <ng-container *ngFor=\"let link of links.profileActions | async\">\r\n <a class=\"shell-header-menu-rounded-button\"\r\n (clickOutside)=\"onClickOutsideProfile($event)\"\r\n [attr.href]=\"link.path\"\r\n [attr.target]=\"link.external ? '_blank' : '_self'\">\r\n <span class=\"sr-only\">{{ link.text }}</span>\r\n <i *ngIf=\"link.icon\"\r\n [class]=\"link.icon\"></i>\r\n </a>\r\n </ng-container>\r\n\r\n <!-- Profile dropdown -->\r\n <div class=\"ml-2 relative\"\r\n (clickOutside)=\"onClickOutsideProfile($event)\"\r\n *ngIf=\"profileMenuVisible\">\r\n <div [ngClass]=\"{'shell-header-profile': showUserNameOnHeader}\">\r\n <div *ngIf=\"user && showUserNameOnHeader\"\r\n class=\"shell-header-profile-userName\">\r\n {{ user.profile.name }}\r\n </div>\r\n <button type=\"button\"\r\n *ngIf=\"user\"\r\n (click)=\"userMenuExpanded = !userMenuExpanded\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">Open user menu</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\">{{this.avatarName}}</span>\r\n </span>\r\n </button>\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!user\"\r\n (click)=\"signin(null)\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">sign in</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\"><i class=\"ms-Icon ms-Icon--Signin\"></i></span>\r\n </span>\r\n </button>\r\n\r\n <div *ngIf=\"userMenuExpanded\"\r\n [ngClass]=\"showUserNameOnHeader ? 'shell-header-profile-dropdown-with-username' : 'shell-header-profile-dropdown'\"\r\n role=\"menu\"\r\n aria-orientation=\"vertical\"\r\n aria-labelledby=\"user-menu\">\r\n <!-- <a href=\"#\" class=\"block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100\" role=\"menuitem\">\u0391\u03C0\u03BF\u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7</a> -->\r\n <ng-container *ngFor=\"let link of links.profile | async\">\r\n <!-- <a *ngIf=\"link.external\" [attr.href]=\"link.path\" [attr.target]=\"'_blank'\" class=\"nav-link-profile\">\r\n {{ link.text }}\r\n </a> -->\r\n <a [routerLink]=\"link.path\"\r\n [routerLinkActive]=\"['nav-link-profile-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n class=\"nav-link-profile\">\r\n {{ link.text }}\r\n </a>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <!-- Notifications dropdown -->\r\n <div class=\"ml-2 relative\"\r\n (clickOutside)=\"onClickOutsideNotifications($event)\"\r\n *ngIf=\"notificationsMenuVisible\">\r\n <!-- Notifications Button -->\r\n <button type=\"button\"\r\n class=\"mobile-menu-rounded-button bg-transparent\"\r\n *ngIf=\"showNotifications\"\r\n (click)=\"expandNotificationsMenu()\"\r\n id=\"notifications-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <span class=\"relative inline-block\">\r\n <!-- Heroicon name: outline/bell -->\r\n <svg class=\"mobile-menu-rounded-button-icon-style\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\" />\r\n </svg>\r\n <span *ngIf=\"unreadNotificationsCount > 0\"\r\n class=\"absolute top-0 right-0 inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-gray-100 transform translate-x-1/2 -translate-y-1/2 bg-gray-500 rounded-full\">{{unreadNotificationsCount}}</span>\r\n </span>\r\n </button>\r\n\r\n <div *ngIf=\"notificationsMenuExpanded\"\r\n [ngClass]=\"showUserNameOnHeader ? 'shell-header-notifications-dropdown-with-username' : 'shell-header-notifications-dropdown'\"\r\n role=\"menu\"\r\n aria-orientation=\"vertical\"\r\n aria-labelledby=\"notifications-menu\">\r\n <div class=\"max-h-64 overflow-y-auto notification-messages min-h\">\r\n <ng-container *ngIf=\"!notifications; else notificationsDropDown\"\r\n class=\"py-5\">\r\n <div class=\"nav-link-notifications hover:bg-transparent\">\r\n \u0394\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03BD\u03AD\u03B5\u03C2 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2\r\n </div>\r\n </ng-container>\r\n <ng-template #notificationsDropDown>\r\n <ul class=\"pr-1.5\">\r\n <ng-container *ngIf=\"notifications | async as obs; else loading\">\r\n <ng-container *ngIf=\"obs.length <= 0\"\r\n class=\"py-5\">\r\n <div class=\"nav-link-notifications hover:bg-transparent\">\r\n \u0394\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03BD\u03AD\u03B5\u03C2 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2\r\n </div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let link of obs\">\r\n <li class=\"mb-2\"\r\n [ngClass]=\"{'border-l-2 border-blue-500 bg-blue-50 hover:bg-blue-50': !link.isRead }\">\r\n <div class=\"flex justify-between\">\r\n <div class=\"flex-grow\">\r\n <a [routerLink]=\"link.path\"\r\n class=\"nav-link-notifications grid\"\r\n [ngClass]=\"!link.isRead ? ' hover:bg-blue-50' : 'border-b border-gray-100'\">\r\n <div class=\"flex flex-col\">\r\n <div class=\"font-thin tracking-tighter\">\r\n {{ link.creationDate | date: 'EEE, d MMMM' }}\r\n </div>\r\n <div class=\"font-bold\">\r\n {{ link.text }}\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n <!-- <div class=\"flex-none font-thin tracking-tighter\">\r\n <button type=\"button\"\r\n title=\"\u0394\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE\"\r\n class=\"text-red-600 hover:text-red-900\">\r\n <span class=\"ms-Icon ms-Icon--Delete\"></span>\r\n </button>\r\n </div> -->\r\n </div>\r\n </li>\r\n\r\n\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loading>\r\n <div class=\"h-32 flex items-center justify-center\">\r\n <div class=\"animate-pulse text-s text-gray-600\">Loading...</div>\r\n </div>\r\n </ng-template>\r\n\r\n\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <div class=\"p-1 rounded-sm\">\r\n <a [routerLink]=\"(allNotificationsLink | async)?.path\">\r\n <button type=\"button\"\r\n class=\"shell-header-notifications-dropdown-view-all-button\">\u03A0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AE \u03CC\u03BB\u03C9\u03BD</button>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mobile-menu-button-container\">\r\n <!-- Mobile menu button -->\r\n <button type=\"button\"\r\n (click)=\"mobileMenuExpanded = !mobileMenuExpanded\"\r\n class=\"mobile-menu-button\"\r\n aria-controls=\"mobile-menu\"\r\n [attr.aria-expanded]=\"mobileMenuExpanded\">\r\n <span class=\"sr-only\">Open main menu</span>\r\n <!--Heroicon name: outline/menu Menu open: \"hidden\", Menu closed: \"block\"-->\r\n <svg class=\"block h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M4 6h16M4 12h16M4 18h16\" />\r\n </svg>\r\n <!--Heroicon name: outline/x Menu open: \"block\", Menu closed: \"hidden\"-->\r\n <svg class=\"hidden h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Mobile menu, show/hide based on menu state. -->\r\n <div class=\"mobile-menu-container\"\r\n *ngIf=\"mobileMenuExpanded\"\r\n id=\"mobile-menu\">\r\n <div class=\"mobile-menu-link-container\">\r\n <ng-container *ngFor=\"let link of sectionLinks | async\">\r\n <a *ngIf=\"link.external\"\r\n [attr.href]=\"link.path\"\r\n [attr.target]=\"'_blank'\"\r\n class=\"nav-link-mobile\">\r\n {{ link.text }}\r\n </a>\r\n <a *ngIf=\"!link.external\"\r\n [routerLink]=\"link.path\"\r\n [routerLinkActive]=\"['nav-link-mobile-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n class=\"nav-link-mobile\">\r\n {{ link.text }}\r\n </a>\r\n </ng-container>\r\n <ng-container *ngIf=\"!user\">\r\n <a href=\"#\"\r\n (click)=\"signin($event)\"\r\n class=\"nav-link-mobile\">\r\n <i class=\"ms-Icon ms-Icon--Signin mr-2\"></i>\u03A3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7\r\n </a>\r\n </ng-container>\r\n </div>\r\n <div class=\"mobile-menu-user-info-container\"\r\n *ngIf=\"user\">\r\n <div class=\"mobile-menu-user-info-container-inner\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"mobile-menu-avatar-container\">\r\n <span class=\"mobile-menu-avatar-name\">{{ this.avatarName }}</span>\r\n </span>\r\n </div>\r\n <div class=\"ml-3\">\r\n <div class=\"mobile-menu-user-name\">{{ user.profile.name }}</div>\r\n <div class=\"mobile-menu-user-email\">{{ user.profile.email }}</div>\r\n </div>\r\n <a [routerLink]=\"(allNotificationsLink | async)?.path\">\r\n <button class=\"mobile-menu-rounded-button\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <!-- Heroicon name: outline/bell -->\r\n <svg class=\"mobile-menu-rounded-button-icon-style\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\" />\r\n </svg>\r\n </button>\r\n </a>\r\n </div>\r\n <div class=\"mobile-menu-link-container\">\r\n <ng-container *ngFor=\"let link of links.profile | async\">\r\n <a *ngIf=\"link.external\"\r\n [attr.href]=\"link.path\"\r\n [attr.target]=\"'_blank'\"\r\n class=\"nav-link-mobile\">\r\n {{ link.text }}\r\n </a>\r\n <a [routerLink]=\"link.path\"\r\n [routerLinkActive]=\"['nav-link-mobile-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n class=\"nav-link-mobile\">\r\n {{ link.text }}\r\n </a>\r\n </ng-container>\r\n <!-- <a href=\"#\" class=\"block px-3 py-2 rounded-sm text-base font-medium text-gray-400 hover:text-white hover:bg-gray-700\">\u0391\u03C0\u03BF\u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7</a> -->\r\n </div>\r\n </div>\r\n </div>\r\n</nav>\r\n", directives: [{ type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }, { type: i3.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i2.AsyncPipe, "date": i2.DatePipe } });
|
|
112
119
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellHeaderComponent, decorators: [{
|
|
113
120
|
type: Component,
|
|
114
121
|
args: [{
|
|
@@ -128,15 +135,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImpor
|
|
|
128
135
|
}] }]; }, propDecorators: { sectionLinksPath: [{
|
|
129
136
|
type: Input,
|
|
130
137
|
args: ['section-links']
|
|
131
|
-
}],
|
|
138
|
+
}], notificationsLinksPath: [{
|
|
132
139
|
type: Input,
|
|
133
|
-
args: ['
|
|
140
|
+
args: ['notifications-links']
|
|
134
141
|
}], allNotificationsLinkPath: [{
|
|
135
142
|
type: Input,
|
|
136
143
|
args: ['all-notifications']
|
|
144
|
+
}], notificationsCounterLinksPath: [{
|
|
145
|
+
type: Input,
|
|
146
|
+
args: ['notifications-counter']
|
|
137
147
|
}], config: [{
|
|
138
148
|
type: Input
|
|
139
149
|
}], border: [{
|
|
140
150
|
type: Input
|
|
141
151
|
}] } });
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9sYXlvdXRzL3NoZWxsL3NoZWxsLWhlYWRlci9zaGVsbC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtaGVhZGVyL3NoZWxsLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLE1BQU0sRUFBZSxHQUFHLEVBQVMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBTzlDLE1BQU0sT0FBTyxvQkFBb0I7SUEwQi9CLFlBQXlDLFdBQXdCLEVBQ3ZDLE1BQWMsRUFDWixLQUFVO1FBRkcsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNaLFVBQUssR0FBTCxLQUFLLENBQUs7UUEzQnRDLDJDQUEyQztRQUNuQixxQkFBZ0IsR0FBRyxNQUFNLENBQUM7UUFDckIsMEJBQXFCLEdBQUcsZUFBZSxDQUFDO1FBQ3pDLDZCQUF3QixHQUFHLGtCQUFrQixDQUFDO1FBR2pFLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDaEIsc0JB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QUNELElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUE7SUFDeEMsQ0FBQztJQUVNLHVCQUF1QjtRQUM1QixJQUFJLENBQUMseUJBQXlCLEdBQUcsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUM7UUFDakUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQTtJQUMvQixDQUFDOztpSEExR1Usb0JBQW9CLGtCQTBCWCxXQUFXLGFBQ3JCLE1BQU0sYUFDTixTQUFTO3FHQTVCUixvQkFBb0Isc1RDZGpDLHM1ZkE4VEE7MkZEaFRhLG9CQUFvQjtrQkFMaEMsU0FBUzttQkFBQztvQkFDVCw4Q0FBOEM7b0JBQzlDLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFdBQVcsRUFBRSwrQkFBK0I7aUJBQzdDOzswQkEyQmMsTUFBTTsyQkFBQyxXQUFXOzswQkFDNUIsTUFBTTsyQkFBQyxNQUFNOzswQkFDYixNQUFNOzJCQUFDLFNBQVM7NENBMUJLLGdCQUFnQjtzQkFBdkMsS0FBSzt1QkFBQyxlQUFlO2dCQUNPLHFCQUFxQjtzQkFBakQsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBQ0Msd0JBQXdCO3NCQUFuRCxLQUFLO3VCQUFDLG1CQUFtQjtnQkFFakIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIEluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJ29pZGMtY2xpZW50JztcclxuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIGRlbGF5LCB0YWtlLCBtYXAsIGNvdW50IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBJU2hlbGxDb25maWcsIE5hdkxpbmssIE5vdGlmaWNhdGlvbk5hdkxpbmsgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XHJcbmltcG9ydCB7IEFQUF9MSU5LUyB9IGZyb20gJy4uLy4uLy4uL3Rva2Vucyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICdAaW5kaWNlL25nLWF1dGgnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnbGliLXNoZWxsLWhlYWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NoZWxsLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaGVsbEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzZWN0aW9uLWxpbmtzJykgc2VjdGlvbkxpbmtzUGF0aCA9ICdtYWluJztcclxuICBASW5wdXQoJ25vdGlmaWNhdGlvbi1saW5rcycpIG5vdGlmaWNhdGlvbkxpbmtzUGF0aCA9ICdub3RpZmljYXRpb25zJztcclxuICBASW5wdXQoJ2FsbC1ub3RpZmljYXRpb25zJykgYWxsTm90aWZpY2F0aW9uc0xpbmtQYXRoID0gJ2FsbE5vdGlmaWNhdGlvbnMnO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoKSBjb25maWchOiBJU2hlbGxDb25maWc7XHJcbiAgQElucHV0KCkgYm9yZGVyID0gdHJ1ZTtcclxuICBwdWJsaWMgc2hvd05vdGlmaWNhdGlvbnM6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1VzZXJOYW1lT25IZWFkZXI6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcclxuICBwdWJsaWMgbm90aWZpY2F0aW9uc01lbnVWaXNpYmxlID0gdHJ1ZTtcclxuICBwdWJsaWMgcHJvZmlsZU1lbnVWaXNpYmxlID0gdHJ1ZTtcclxuICBwdWJsaWMgc2VjdGlvbkxpbmtzOiBPYnNlcnZhYmxlPE5hdkxpbmtbXT4gPSBvZihbXSk7XHJcbiAgcHVibGljIG5vdGlmaWNhdGlvbkxpbmtzOiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbk5hdkxpbmtbXT4gPSBvZihbXSk7XHJcbiAgcHVibGljIGFsbE5vdGlmaWNhdGlvbnNMaW5rOiBPYnNlcnZhYmxlPE5hdkxpbms+ID0gb2YoKTtcclxuICBwdWJsaWMgbW9iaWxlTWVudUV4cGFuZGVkID0gZmFsc2U7XHJcbiAgcHVibGljIHVzZXJNZW51RXhwYW5kZWQgPSBmYWxzZTtcclxuICBwdWJsaWMgbm90aWZpY2F0aW9uc01lbnVFeHBhbmRlZCA9IGZhbHNlO1xyXG4gIHByb3RlY3RlZCByb3V0ZVN1YmplY3Q6IE9ic2VydmFibGU8RXZlbnQ+ID0gbmV3IE9ic2VydmFibGU8RXZlbnQ+KCk7XHJcbiAgcHJvdGVjdGVkIHJvdXRlclN1YiQ6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIHByb3RlY3RlZCB1c2VyU3ViJDogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIHN0YXR1c1N1YiQ6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyB1c2VyOiBVc2VyIHwgbnVsbCA9IG51bGw7XHJcbiAgcHVibGljIGF2YXRhck5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyBub3RpZmljYXRpb25zQ291bnQgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEF1dGhTZXJ2aWNlKSBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIEBJbmplY3QoUm91dGVyKSBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgQEluamVjdChBUFBfTElOS1MpIHB1YmxpYyBsaW5rczogYW55KSB7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJvdXRlclN1YiQpIHtcclxuICAgICAgdGhpcy5yb3V0ZXJTdWIkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICAvLyBUT0RPOiBjaGVjayBhdXRoZW50aWNhdGVkIHVzZXIgaGVyZSBiZWZvcmUgd2Ugc3RhcnQgcG9sbGluZyBzZXJ2ZXIgc3RhdHVzXHJcbiAgICBpZiAodGhpcy5zdGF0dXNTdWIkKSB7XHJcbiAgICAgIHRoaXMuc3RhdHVzU3ViJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudXNlclN1YiQpIHtcclxuICAgICAgdGhpcy51c2VyU3ViJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dOb3RpZmljYXRpb25zID0gdGhpcy5jb25maWc/LnNob3dOb3RpZmljYXRpb25zO1xyXG4gICAgdGhpcy5zaG93VXNlck5hbWVPbkhlYWRlciA9IHRoaXMuY29uZmlnPy5zaG93VXNlck5hbWVPbkhlYWRlcjtcclxuICAgIHRoaXMuc2VjdGlvbkxpbmtzID0gdGhpcy5saW5rc1t0aGlzLnNlY3Rpb25MaW5rc1BhdGhdIGFzIE9ic2VydmFibGU8TmF2TGlua1tdPjtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uTGlua3MgPSB0aGlzLmxpbmtzW3RoaXMubm90aWZpY2F0aW9uTGlua3NQYXRoXSBhcyBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbk5hdkxpbmtbXT47XHJcbiAgICB0aGlzLmFsbE5vdGlmaWNhdGlvbnNMaW5rID0gdGhpcy5saW5rc1t0aGlzLmFsbE5vdGlmaWNhdGlvbnNMaW5rUGF0aF0gYXMgT2JzZXJ2YWJsZTxOYXZMaW5rPjtcclxuICAgIHRoaXMucm91dGVyU3ViJCA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgIHRoaXMubW9iaWxlTWVudUV4cGFuZGVkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudXNlck1lbnVFeHBhbmRlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbnNNZW51RXhwYW5kZWQgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5sb2FkVXNlcigpLnN1YnNjcmliZSgodXNlcikgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyh1c2VyKTtcclxuICAgICAgdGhpcy5zZXRDdXJyZW50VXNlcih1c2VyKTtcclxuICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgfSk7XHJcbiAgICAvLyBEZXRlY3QgdXNlciBjaGFuZ2VzIGFuZCBkaXNwbGF5IC8gb3Igbm90IHVzZXIgaW5mbyBhY2NvcmRpbmdseS4uLlxyXG4gICAgdGhpcy51c2VyU3ViJCA9IHRoaXMuYXV0aFNlcnZpY2UudXNlciQuc3Vic2NyaWJlKCh1c2VyOiBhbnkpID0+IHtcclxuICAgICAgLy8gY29uc29sZS5sb2coJ1NoZWxsSGVhZGVyQ29tcG9uZW50IHVzZXIgc3Vic2NyaXB0aW9uJyk7XHJcbiAgICAgIHRoaXMuc2V0Q3VycmVudFVzZXIodXNlcik7XHJcbiAgICB9KTtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uTGlua3MucGlwZShcclxuICAgICAgbWFwKG5vdGlmaWNhdGlvbnMgPT4ge1xyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uc0NvdW50ID0gbm90aWZpY2F0aW9ucy5maWx0ZXIoeCA9PiAheC5pc1JlYWQpLmxlbmd0aFxyXG4gICAgICB9KVxyXG4gICAgKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Q3VycmVudFVzZXIodXNlcjogYW55KSB7XHJcbiAgICB0aGlzLnVzZXIgPSB1c2VyO1xyXG4gICAgaWYgKHRoaXMudXNlciAmJiB0aGlzLnVzZXIucHJvZmlsZSkge1xyXG4gICAgICB0aGlzLmF2YXRhck5hbWUgPSBgJHt0aGlzLnVzZXIucHJvZmlsZS5naXZlbl9uYW1lPy5jaGFyQXQoMCl9JHt0aGlzLnVzZXIucHJvZmlsZS5mYW1pbHlfbmFtZT8uY2hhckF0KDApfWA7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdsb2FkIHVzZXInLCB0aGlzLmF2YXRhck5hbWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnR5cGVkZWZcclxuICBwdWJsaWMgb25DbGlja091dHNpZGVQcm9maWxlKCRldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnVzZXJNZW51RXhwYW5kZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp0eXBlZGVmXHJcbiAgcHVibGljIG9uQ2xpY2tPdXRzaWRlTm90aWZpY2F0aW9ucygkZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zTWVudUV4cGFuZGVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2lnbmluKGV2ZW50OiBhbnkgfCBudWxsIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuYXV0aFNlcnZpY2Uuc2lnbmluUmVkaXJlY3QoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBhbmRVc2VyTWVudSgpIHtcclxuICAgIHRoaXMudXNlck1lbnVFeHBhbmRlZCA9ICF0aGlzLnVzZXJNZW51RXhwYW5kZWQ7XHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnNNZW51RXhwYW5kZWQgPSBmYWxzZVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cGFuZE5vdGlmaWNhdGlvbnNNZW51KCkge1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zTWVudUV4cGFuZGVkID0gIXRoaXMubm90aWZpY2F0aW9uc01lbnVFeHBhbmRlZDtcclxuICAgIHRoaXMudXNlck1lbnVFeHBhbmRlZCA9IGZhbHNlXHJcbiAgfVxyXG59XHJcbiIsIjxuYXY+XHJcbiAgPGRpdiBjbGFzcz1cInNoZWxsLWhlYWRlci1wYWRkaW5nc1wiPlxyXG4gICAgPGRpdiBbY2xhc3NdPVwiYm9yZGVyID8gJ3NoZWxsLWhlYWRlci1ib3JkZXInIDogJydcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNoZWxsLWhlYWRlci1tZW51LWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGVsbC1oZWFkZXItbGlua3Mtbm8tZ3Jvdy1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxhIGhyZWY9XCIjXCJcclxuICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvJ11cIj48aW1nIGNsYXNzPVwiYXBwLWxvZ29cIlxyXG4gICAgICAgICAgICAgICAgICAgW3NyY109XCJjb25maWcuYXBwTG9nb1wiXHJcbiAgICAgICAgICAgICAgICAgICBbYWx0XT1cImNvbmZpZy5hcHBMb2dvQWx0XCIgLz48L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNoZWxsLWhlYWRlci1saW5rLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBzZWN0aW9uTGlua3MgfCBhc3luY1wiPlxyXG4gICAgICAgICAgICA8YSBocmVmPVwiI1wiXHJcbiAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIltsaW5rLnBhdGhdXCJcclxuICAgICAgICAgICAgICAgW2F0dHIudGFyZ2V0XT1cImxpbmsuZXh0ZXJuYWwgPyAnX2JsYW5rJyA6ICdfc2VsZidcIlxyXG4gICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZV09XCJbJ25hdi1saW5rLWFjdGl2ZSddXCJcclxuICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6IGxpbmsuZXhhY3QgfVwiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmtcIj5cclxuICAgICAgICAgICAgICB7eyBsaW5rLnRleHQgfX1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGVsbC1oZWFkZXItbWQtdmlzaWJsZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNoZWxsLWhlYWRlci1saW5rcy1uby1ncm93LWNvbnRhaW5lclwiPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBsaW5rcy5wcm9maWxlQWN0aW9ucyB8IGFzeW5jXCI+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJzaGVsbC1oZWFkZXItbWVudS1yb3VuZGVkLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgKGNsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZVByb2ZpbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJsaW5rLnBhdGhcIlxyXG4gICAgICAgICAgICAgICAgIFthdHRyLnRhcmdldF09XCJsaW5rLmV4dGVybmFsID8gJ19ibGFuaycgOiAnX3NlbGYnXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj57eyBsaW5rLnRleHQgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImxpbmsuaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwibGluay5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8IS0tIFByb2ZpbGUgZHJvcGRvd24gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtbC0yIHJlbGF0aXZlXCJcclxuICAgICAgICAgICAgICAgICAoY2xpY2tPdXRzaWRlKT1cIm9uQ2xpY2tPdXRzaWRlUHJvZmlsZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAqbmdJZj1cInByb2ZpbGVNZW51VmlzaWJsZVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieydzaGVsbC1oZWFkZXItcHJvZmlsZSc6IHNob3dVc2VyTmFtZU9uSGVhZGVyfVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInVzZXIgJiYgc2hvd1VzZXJOYW1lT25IZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNoZWxsLWhlYWRlci1wcm9maWxlLXVzZXJOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IHVzZXIucHJvZmlsZS5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidXNlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1c2VyTWVudUV4cGFuZGVkID0gIXVzZXJNZW51RXhwYW5kZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNoZWxsLWhlYWRlci1wcm9maWxlLWRyb3Bkb3duLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidXNlci1tZW51XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+T3BlbiB1c2VyIG1lbnU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXZhdGFyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXZhdGFyLXRleHRcIj57e3RoaXMuYXZhdGFyTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiF1c2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNpZ25pbihudWxsKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2hlbGwtaGVhZGVyLXByb2ZpbGUtZHJvcGRvd24tYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ1c2VyLW1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5zaWduIGluPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF2YXRhci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF2YXRhci10ZXh0XCI+PGkgY2xhc3M9XCJtcy1JY29uIG1zLUljb24tLVNpZ25pblwiPjwvaT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VyTWVudUV4cGFuZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2hvd1VzZXJOYW1lT25IZWFkZXIgPyAnc2hlbGwtaGVhZGVyLXByb2ZpbGUtZHJvcGRvd24td2l0aC11c2VybmFtZScgOiAnc2hlbGwtaGVhZGVyLXByb2ZpbGUtZHJvcGRvd24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgcm9sZT1cIm1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBhcmlhLW9yaWVudGF0aW9uPVwidmVydGljYWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJ1c2VyLW1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgPCEtLSA8YSBocmVmPVwiI1wiIGNsYXNzPVwiYmxvY2sgcHgtNCBweS0yIHRleHQtc20gdGV4dC1ncmF5LTcwMCBob3ZlcjpiZy1ncmF5LTEwMFwiIHJvbGU9XCJtZW51aXRlbVwiPs6Rz4DOv8+Dz43Ovc60zrXPg863PC9hPiAtLT5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBsaW5rcy5wcm9maWxlIHwgYXN5bmNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxhICpuZ0lmPVwibGluay5leHRlcm5hbFwiIFthdHRyLmhyZWZdPVwibGluay5wYXRoXCIgW2F0dHIudGFyZ2V0XT1cIidfYmxhbmsnXCIgY2xhc3M9XCJuYXYtbGluay1wcm9maWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5rLnRleHQgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2E+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cImxpbmsucGF0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiWyduYXYtbGluay1wcm9maWxlLWFjdGl2ZSddXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogbGluay5leGFjdCB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rLXByb2ZpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmsudGV4dCB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBOb3RpZmljYXRpb25zIGRyb3Bkb3duIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWwtMiByZWxhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgKGNsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZU5vdGlmaWNhdGlvbnMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgKm5nSWY9XCJub3RpZmljYXRpb25zTWVudVZpc2libGVcIj5cclxuICAgICAgICAgICAgICA8IS0tIE5vdGlmaWNhdGlvbnMgQnV0dG9uIC0tPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vYmlsZS1tZW51LXJvdW5kZWQtYnV0dG9uIGJnLXRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd05vdGlmaWNhdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImV4cGFuZE5vdGlmaWNhdGlvbnNNZW51KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgaWQ9XCJub3RpZmljYXRpb25zLW1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5WaWV3IG5vdGlmaWNhdGlvbnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlbGF0aXZlIGlubGluZS1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIEhlcm9pY29uIG5hbWU6IG91dGxpbmUvYmVsbCAtLT5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cIm1vYmlsZS1tZW51LXJvdW5kZWQtYnV0dG9uLWljb24tc3R5bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE1IDE3aDVsLTEuNDA1LTEuNDA1QTIuMDMyIDIuMDMyIDAgMDExOCAxNC4xNThWMTFhNi4wMDIgNi4wMDIgMCAwMC00LTUuNjU5VjVhMiAyIDAgMTAtNCAwdi4zNDFDNy42NyA2LjE2NSA2IDguMzg4IDYgMTF2My4xNTljMCAuNTM4LS4yMTQgMS4wNTUtLjU5NSAxLjQzNkw0IDE3aDVtNiAwdjFhMyAzIDAgMTEtNiAwdi0xbTYgMEg5XCIgLz5cclxuICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibm90aWZpY2F0aW9uc0NvdW50ID4gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgcmlnaHQtMCBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtMiBweS0xIHRleHQteHMgZm9udC1ib2xkIGxlYWRpbmctbm9uZSB0ZXh0LWdyYXktMTAwIHRyYW5zZm9ybSB0cmFuc2xhdGUteC0xLzIgLXRyYW5zbGF0ZS15LTEvMiBiZy1ncmF5LTUwMCByb3VuZGVkLWZ1bGxcIj57e25vdGlmaWNhdGlvbnNDb3VudH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm90aWZpY2F0aW9uc01lbnVFeHBhbmRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzaG93VXNlck5hbWVPbkhlYWRlciA/ICdzaGVsbC1oZWFkZXItbm90aWZpY2F0aW9ucy1kcm9wZG93bi13aXRoLXVzZXJuYW1lJyA6ICdzaGVsbC1oZWFkZXItbm90aWZpY2F0aW9ucy1kcm9wZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgcm9sZT1cIm1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICAgYXJpYS1vcmllbnRhdGlvbj1cInZlcnRpY2FsXCJcclxuICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cIm5vdGlmaWNhdGlvbnMtbWVudVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1heC1oLTY0IG92ZXJmbG93LXktYXV0byBub3RpZmljYXRpb24tbWVzc2FnZXMgbWluLWhcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFub3RpZmljYXRpb25MaW5rczsgZWxzZSBub3RpZmljYXRpb25zRHJvcERvd25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHktNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtbGluay1ub3RpZmljYXRpb25zIGhvdmVyOmJnLXRyYW5zcGFyZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICDOlM61zr0gzq3Ph861z4TOtSDOvc6tzrXPgiDOtc65zrTOv8+Azr/Ouc6uz4POtc65z4JcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90aWZpY2F0aW9uc0Ryb3BEb3duPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInByLTEuNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vdGlmaWNhdGlvbkxpbmtzIHwgYXN5bmMgYXMgb2JzOyBlbHNlIGxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9icy5sZW5ndGggPD0gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJweS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1saW5rLW5vdGlmaWNhdGlvbnMgaG92ZXI6YmctdHJhbnNwYXJlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIM6UzrXOvSDOrc+HzrXPhM61IM69zq3Otc+CIM61zrnOtM6/z4DOv865zq7Pg861zrnPglxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBvYnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJtYi0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydib3JkZXItbC0yIGJvcmRlci1ibHVlLTUwMCBiZy1ibHVlLTUwIGhvdmVyOmJnLWJsdWUtNTAnOiAhbGluay5pc1JlYWQgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJsaW5rLnBhdGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmstbm90aWZpY2F0aW9ucyBncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIhbGluay5pc1JlYWQgPyAnIGhvdmVyOmJnLWJsdWUtNTAnIDogJ2JvcmRlci1iIGJvcmRlci1ncmF5LTEwMCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LXRoaW4gdHJhY2tpbmctdGlnaHRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmsuY3JlYXRpb25EYXRlIHwgZGF0ZTogJ0VFRSwgZCBNTU1NJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtYm9sZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmsudGV4dCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZsZXgtbm9uZSBmb250LXRoaW4gdHJhY2tpbmctdGlnaHRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCLOlM65zrHOs8+BzrHPhs6uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXJlZC02MDAgaG92ZXI6dGV4dC1yZWQtOTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtSWNvbiBtcy1JY29uLS1EZWxldGVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0zMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbmltYXRlLXB1bHNlIHRleHQtcyB0ZXh0LWdyYXktNjAwXCI+TG9hZGluZy4uLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0xIHJvdW5kZWQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiKGFsbE5vdGlmaWNhdGlvbnNMaW5rIHwgYXN5bmMpPy5wYXRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2hlbGwtaGVhZGVyLW5vdGlmaWNhdGlvbnMtZHJvcGRvd24tdmlldy1hbGwtYnV0dG9uXCI+zqDPgc6/zrLOv867zq4gz4zOu8+Jzr08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtbWVudS1idXR0b24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8IS0tIE1vYmlsZSBtZW51IGJ1dHRvbiAtLT5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtb2JpbGVNZW51RXhwYW5kZWQgPSAhbW9iaWxlTWVudUV4cGFuZGVkXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb2JpbGUtbWVudS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibW9iaWxlLW1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm1vYmlsZU1lbnVFeHBhbmRlZFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5PcGVuIG1haW4gbWVudTwvc3Bhbj5cclxuICAgICAgICAgICAgPCEtLUhlcm9pY29uIG5hbWU6IG91dGxpbmUvbWVudSAgTWVudSBvcGVuOiBcImhpZGRlblwiLCBNZW51IGNsb3NlZDogXCJibG9ja1wiLS0+XHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJibG9jayBoLTYgdy02XCJcclxuICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk00IDZoMTZNNCAxMmgxNk00IDE4aDE2XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwhLS1IZXJvaWNvbiBuYW1lOiBvdXRsaW5lL3ggTWVudSBvcGVuOiBcImJsb2NrXCIsIE1lbnUgY2xvc2VkOiBcImhpZGRlblwiLS0+XHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJoaWRkZW4gaC02IHctNlwiXHJcbiAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNiAxOEwxOCA2TTYgNmwxMiAxMlwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gTW9iaWxlIG1lbnUsIHNob3cvaGlkZSBiYXNlZCBvbiBtZW51IHN0YXRlLiAtLT5cclxuICA8ZGl2IGNsYXNzPVwibW9iaWxlLW1lbnUtY29udGFpbmVyXCJcclxuICAgICAgICpuZ0lmPVwibW9iaWxlTWVudUV4cGFuZGVkXCJcclxuICAgICAgIGlkPVwibW9iaWxlLW1lbnVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtbWVudS1saW5rLWNvbnRhaW5lclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaW5rIG9mIHNlY3Rpb25MaW5rcyB8IGFzeW5jXCI+XHJcbiAgICAgICAgPGEgKm5nSWY9XCJsaW5rLmV4dGVybmFsXCJcclxuICAgICAgICAgICBbYXR0ci5ocmVmXT1cImxpbmsucGF0aFwiXHJcbiAgICAgICAgICAgW2F0dHIudGFyZ2V0XT1cIidfYmxhbmsnXCJcclxuICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rLW1vYmlsZVwiPlxyXG4gICAgICAgICAge3sgbGluay50ZXh0IH19XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIDxhICpuZ0lmPVwiIWxpbmsuZXh0ZXJuYWxcIlxyXG4gICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImxpbmsucGF0aFwiXHJcbiAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiWyduYXYtbGluay1tb2JpbGUtYWN0aXZlJ11cIlxyXG4gICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ7IGV4YWN0OiBsaW5rLmV4YWN0IH1cIlxyXG4gICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmstbW9iaWxlXCI+XHJcbiAgICAgICAgICB7eyBsaW5rLnRleHQgfX1cclxuICAgICAgICA8L2E+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXVzZXJcIj5cclxuICAgICAgICA8YSBocmVmPVwiI1wiXHJcbiAgICAgICAgICAgKGNsaWNrKT1cInNpZ25pbigkZXZlbnQpXCJcclxuICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rLW1vYmlsZVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJtcy1JY29uIG1zLUljb24tLVNpZ25pbiBtci0yXCI+PC9pPs6jz43Ovc60zrXPg863XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1tZW51LXVzZXItaW5mby1jb250YWluZXJcIlxyXG4gICAgICAgICAqbmdJZj1cInVzZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1tZW51LXVzZXItaW5mby1jb250YWluZXItaW5uZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zaHJpbmstMFwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtb2JpbGUtbWVudS1hdmF0YXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibW9iaWxlLW1lbnUtYXZhdGFyLW5hbWVcIj57eyB0aGlzLmF2YXRhck5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1sLTNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtbWVudS11c2VyLW5hbWVcIj57eyB1c2VyLnByb2ZpbGUubmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1tZW51LXVzZXItZW1haWxcIj57eyB1c2VyLnByb2ZpbGUuZW1haWwgfX08L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YSBbcm91dGVyTGlua109XCIoYWxsTm90aWZpY2F0aW9uc0xpbmsgfCBhc3luYyk/LnBhdGhcIj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtb2JpbGUtbWVudS1yb3VuZGVkLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5WaWV3IG5vdGlmaWNhdGlvbnM8L3NwYW4+XHJcbiAgICAgICAgICAgIDwhLS0gSGVyb2ljb24gbmFtZTogb3V0bGluZS9iZWxsIC0tPlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwibW9iaWxlLW1lbnUtcm91bmRlZC1idXR0b24taWNvbi1zdHlsZVwiXHJcbiAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTUgMTdoNWwtMS40MDUtMS40MDVBMi4wMzIgMi4wMzIgMCAwMTE4IDE0LjE1OFYxMWE2LjAwMiA2LjAwMiAwIDAwLTQtNS42NTlWNWEyIDIgMCAxMC00IDB2LjM0MUM3LjY3IDYuMTY1IDYgOC4zODggNiAxMXYzLjE1OWMwIC41MzgtLjIxNCAxLjA1NS0uNTk1IDEuNDM2TDQgMTdoNW02IDB2MWEzIDMgMCAxMS02IDB2LTFtNiAwSDlcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtbWVudS1saW5rLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2YgbGlua3MucHJvZmlsZSB8IGFzeW5jXCI+XHJcbiAgICAgICAgICA8YSAqbmdJZj1cImxpbmsuZXh0ZXJuYWxcIlxyXG4gICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJsaW5rLnBhdGhcIlxyXG4gICAgICAgICAgICAgW2F0dHIudGFyZ2V0XT1cIidfYmxhbmsnXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmstbW9iaWxlXCI+XHJcbiAgICAgICAgICAgIHt7IGxpbmsudGV4dCB9fVxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwibGluay5wYXRoXCJcclxuICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cIlsnbmF2LWxpbmstbW9iaWxlLWFjdGl2ZSddXCJcclxuICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ7IGV4YWN0OiBsaW5rLmV4YWN0IH1cIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluay1tb2JpbGVcIj5cclxuICAgICAgICAgICAge3sgbGluay50ZXh0IH19XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPCEtLSA8YSBocmVmPVwiI1wiIGNsYXNzPVwiYmxvY2sgcHgtMyBweS0yIHJvdW5kZWQtc20gdGV4dC1iYXNlIGZvbnQtbWVkaXVtIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSBob3ZlcjpiZy1ncmF5LTcwMFwiPs6Rz4DOv8+Dz43Ovc60zrXPg863PC9hPiAtLT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uYXY+XHJcbiJdfQ==
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9sYXlvdXRzL3NoZWxsL3NoZWxsLWhlYWRlci9zaGVsbC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvc2hlbGwvc2hlbGwtaGVhZGVyL3NoZWxsLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLE1BQU0sRUFBMkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBTzlDLE1BQU0sT0FBTyxvQkFBb0I7SUE0Qi9CLFlBQXlDLFdBQXdCLEVBQ3ZDLE1BQWMsRUFDWixLQUFVO1FBRkcsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNaLFVBQUssR0FBTCxLQUFLLENBQUs7UUE3QnRDLDJDQUEyQztRQUNuQixxQkFBZ0IsR0FBRyxNQUFNLENBQUM7UUFDcEIsMkJBQXNCLEdBQUcsZUFBZSxDQUFDO1FBQzNDLDZCQUF3QixHQUFHLGtCQUFrQixDQUFDO1FBQzFDLGtDQUE2QixHQUFHLHNCQUFzQixDQUFDO1FBRzlFLFdBQU0sR0FB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ZXN0cm95LCBJbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICdvaWRjLWNsaWVudCc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZmlsdGVyLCBkZWxheSwgdGFrZSwgbWFwLCBjb3VudCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSVNoZWxsQ29uZmlnLCBOYXZMaW5rLCBOb3RpZmljYXRpb25OYXZMaW5rIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBBUFBfTElOS1MgfSBmcm9tICcuLi8uLi8uLi90b2tlbnMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnQGluZGljZS9uZy1hdXRoJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2xpYi1zaGVsbC1oZWFkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGVsbC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hlbGxIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnc2VjdGlvbi1saW5rcycpIHNlY3Rpb25MaW5rc1BhdGggPSAnbWFpbic7XHJcbiAgQElucHV0KCdub3RpZmljYXRpb25zLWxpbmtzJykgbm90aWZpY2F0aW9uc0xpbmtzUGF0aCA9ICdub3RpZmljYXRpb25zJztcclxuICBASW5wdXQoJ2FsbC1ub3RpZmljYXRpb25zJykgYWxsTm90aWZpY2F0aW9uc0xpbmtQYXRoID0gJ2FsbE5vdGlmaWNhdGlvbnMnO1xyXG4gIEBJbnB1dCgnbm90aWZpY2F0aW9ucy1jb3VudGVyJykgbm90aWZpY2F0aW9uc0NvdW50ZXJMaW5rc1BhdGggPSAnbm90aWZpY2F0aW9uc0NvdW50ZXInO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoKSBjb25maWchOiBJU2hlbGxDb25maWc7XHJcbiAgQElucHV0KCkgYm9yZGVyID0gdHJ1ZTtcclxuICBwdWJsaWMgc2hvd05vdGlmaWNhdGlvbnM6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1VzZXJOYW1lT25IZWFkZXI6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcclxuICBwdWJsaWMgbm90aWZpY2F0aW9uc01lbnVWaXNpYmxlID0gdHJ1ZTtcclxuICBwdWJsaWMgcHJvZmlsZU1lbnVWaXNpYmxlID0gdHJ1ZTtcclxuICBwdWJsaWMgc2VjdGlvbkxpbmtzOiBPYnNlcnZhYmxlPE5hdkxpbmtbXT4gPSBvZihbXSk7XHJcbiAgcHVibGljIG5vdGlmaWNhdGlvbnM6IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uTmF2TGlua1tdPiA9IG9mKFtdKTtcclxuICBwdWJsaWMgYWxsTm90aWZpY2F0aW9uc0xpbms6IE9ic2VydmFibGU8TmF2TGluaz4gPSBvZigpO1xyXG4gIHB1YmxpYyB1bnJlYWROb3RpZmljYXRpb25zQ291bnRPYnM6IE9ic2VydmFibGU8bnVtYmVyPiA9IG9mKDApO1xyXG4gIHB1YmxpYyBtb2JpbGVNZW51RXhwYW5kZWQgPSBmYWxzZTtcclxuICBwdWJsaWMgdXNlck1lbnVFeHBhbmRlZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBub3RpZmljYXRpb25zTWVudUV4cGFuZGVkID0gZmFsc2U7XHJcbiAgcHJvdGVjdGVkIHJvdXRlU3ViamVjdDogT2JzZXJ2YWJsZTxFdmVudD4gPSBuZXcgT2JzZXJ2YWJsZTxFdmVudD4oKTtcclxuICBwcm90ZWN0ZWQgcm91dGVyU3ViJDogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIHVzZXJTdWIkOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuICBwcm90ZWN0ZWQgc3RhdHVzU3ViJDogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgcHVibGljIHVzZXI6IFVzZXIgfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgYXZhdGFyTmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgcHVibGljIHVucmVhZE5vdGlmaWNhdGlvbnNDb3VudCA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQXV0aFNlcnZpY2UpIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgQEluamVjdChSb3V0ZXIpIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBASW5qZWN0KEFQUF9MSU5LUykgcHVibGljIGxpbmtzOiBhbnkpIHtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucm91dGVyU3ViJCkge1xyXG4gICAgICB0aGlzLnJvdXRlclN1YiQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIC8vIFRPRE86IGNoZWNrIGF1dGhlbnRpY2F0ZWQgdXNlciBoZXJlIGJlZm9yZSB3ZSBzdGFydCBwb2xsaW5nIHNlcnZlciBzdGF0dXNcclxuICAgIGlmICh0aGlzLnN0YXR1c1N1YiQpIHtcclxuICAgICAgdGhpcy5zdGF0dXNTdWIkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy51c2VyU3ViJCkge1xyXG4gICAgICB0aGlzLnVzZXJTdWIkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd05vdGlmaWNhdGlvbnMgPSB0aGlzLmNvbmZpZz8uc2hvd05vdGlmaWNhdGlvbnM7XHJcbiAgICB0aGlzLnNob3dVc2VyTmFtZU9uSGVhZGVyID0gdGhpcy5jb25maWc/LnNob3dVc2VyTmFtZU9uSGVhZGVyO1xyXG4gICAgdGhpcy5zZWN0aW9uTGlua3MgPSB0aGlzLmxpbmtzW3RoaXMuc2VjdGlvbkxpbmtzUGF0aF0gYXMgT2JzZXJ2YWJsZTxOYXZMaW5rW10+O1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zID0gdGhpcy5saW5rc1t0aGlzLm5vdGlmaWNhdGlvbnNMaW5rc1BhdGhdIGFzIE9ic2VydmFibGU8Tm90aWZpY2F0aW9uTmF2TGlua1tdPjtcclxuICAgIHRoaXMuYWxsTm90aWZpY2F0aW9uc0xpbmsgPSB0aGlzLmxpbmtzW3RoaXMuYWxsTm90aWZpY2F0aW9uc0xpbmtQYXRoXSBhcyBPYnNlcnZhYmxlPE5hdkxpbms+O1xyXG4gICAgdGhpcy51bnJlYWROb3RpZmljYXRpb25zQ291bnRPYnMgPSB0aGlzLmxpbmtzW3RoaXMubm90aWZpY2F0aW9uc0NvdW50ZXJMaW5rc1BhdGhdIGFzIE9ic2VydmFibGU8bnVtYmVyPjtcclxuICAgIHRoaXMuZ2V0VW5yZWFkTm90aWZpY2F0aW9uc0NvdW50KCk7XHJcbiAgICB0aGlzLnJvdXRlclN1YiQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICB0aGlzLm1vYmlsZU1lbnVFeHBhbmRlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnVzZXJNZW51RXhwYW5kZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25zTWVudUV4cGFuZGVkID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UubG9hZFVzZXIoKS5zdWJzY3JpYmUoKHVzZXIpID0+IHtcclxuICAgICAgY29uc29sZS5sb2codXNlcik7XHJcbiAgICAgIHRoaXMuc2V0Q3VycmVudFVzZXIodXNlcik7XHJcbiAgICB9LCBlcnJvciA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgIH0pO1xyXG4gICAgLy8gRGV0ZWN0IHVzZXIgY2hhbmdlcyBhbmQgZGlzcGxheSAvIG9yIG5vdCB1c2VyIGluZm8gYWNjb3JkaW5nbHkuLi5cclxuICAgIHRoaXMudXNlclN1YiQgPSB0aGlzLmF1dGhTZXJ2aWNlLnVzZXIkLnN1YnNjcmliZSgodXNlcjogYW55KSA9PiB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdTaGVsbEhlYWRlckNvbXBvbmVudCB1c2VyIHN1YnNjcmlwdGlvbicpO1xyXG4gICAgICB0aGlzLnNldEN1cnJlbnRVc2VyKHVzZXIpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEN1cnJlbnRVc2VyKHVzZXI6IGFueSkge1xyXG4gICAgdGhpcy51c2VyID0gdXNlcjtcclxuICAgIGlmICh0aGlzLnVzZXIgJiYgdGhpcy51c2VyLnByb2ZpbGUpIHtcclxuICAgICAgdGhpcy5hdmF0YXJOYW1lID0gYCR7dGhpcy51c2VyLnByb2ZpbGUuZ2l2ZW5fbmFtZT8uY2hhckF0KDApfSR7dGhpcy51c2VyLnByb2ZpbGUuZmFtaWx5X25hbWU/LmNoYXJBdCgwKX1gO1xyXG4gICAgICBjb25zb2xlLmxvZygnbG9hZCB1c2VyJywgdGhpcy5hdmF0YXJOYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp0eXBlZGVmXHJcbiAgcHVibGljIG9uQ2xpY2tPdXRzaWRlUHJvZmlsZSgkZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy51c2VyTWVudUV4cGFuZGVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dHlwZWRlZlxyXG4gIHB1YmxpYyBvbkNsaWNrT3V0c2lkZU5vdGlmaWNhdGlvbnMoJGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uc01lbnVFeHBhbmRlZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNpZ25pbihldmVudDogYW55IHwgbnVsbCB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLnNpZ25pblJlZGlyZWN0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXhwYW5kVXNlck1lbnUoKSB7XHJcbiAgICB0aGlzLnVzZXJNZW51RXhwYW5kZWQgPSAhdGhpcy51c2VyTWVudUV4cGFuZGVkO1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zTWVudUV4cGFuZGVkID0gZmFsc2VcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBhbmROb3RpZmljYXRpb25zTWVudSgpIHtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uc01lbnVFeHBhbmRlZCA9ICF0aGlzLm5vdGlmaWNhdGlvbnNNZW51RXhwYW5kZWQ7XHJcbiAgICB0aGlzLnVzZXJNZW51RXhwYW5kZWQgPSBmYWxzZVxyXG4gICAgdGhpcy5nZXRVbnJlYWROb3RpZmljYXRpb25zQ291bnQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRVbnJlYWROb3RpZmljYXRpb25zQ291bnQoKSB7XHJcbiAgICB0aGlzLnVucmVhZE5vdGlmaWNhdGlvbnNDb3VudE9icy5zdWJzY3JpYmUoY291bnQgPT4ge1xyXG4gICAgICB0aGlzLnVucmVhZE5vdGlmaWNhdGlvbnNDb3VudCA9IGNvdW50XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPG5hdj5cclxuICA8ZGl2IGNsYXNzPVwic2hlbGwtaGVhZGVyLXBhZGRpbmdzXCI+XHJcbiAgICA8ZGl2IFtjbGFzc109XCJib3JkZXIgPyAnc2hlbGwtaGVhZGVyLWJvcmRlcicgOiAnJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2hlbGwtaGVhZGVyLW1lbnUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNoZWxsLWhlYWRlci1saW5rcy1uby1ncm93LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGEgaHJlZj1cIiNcIlxyXG4gICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy8nXVwiPjxpbWcgY2xhc3M9XCJhcHAtbG9nb1wiXHJcbiAgICAgICAgICAgICAgICAgICBbc3JjXT1cImNvbmZpZy5hcHBMb2dvXCJcclxuICAgICAgICAgICAgICAgICAgIFthbHRdPVwiY29uZmlnLmFwcExvZ29BbHRcIiAvPjwvYT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hlbGwtaGVhZGVyLWxpbmstY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaW5rIG9mIHNlY3Rpb25MaW5rcyB8IGFzeW5jXCI+XHJcbiAgICAgICAgICAgIDxhIGhyZWY9XCIjXCJcclxuICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiW2xpbmsucGF0aF1cIlxyXG4gICAgICAgICAgICAgICBbYXR0ci50YXJnZXRdPVwibGluay5leHRlcm5hbCA/ICdfYmxhbmsnIDogJ19zZWxmJ1wiXHJcbiAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cIlsnbmF2LWxpbmstYWN0aXZlJ11cIlxyXG4gICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogbGluay5leGFjdCB9XCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGlua1wiXHJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJnZXRVbnJlYWROb3RpZmljYXRpb25zQ291bnQoKVwiPlxyXG4gICAgICAgICAgICAgIHt7IGxpbmsudGV4dCB9fVxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNoZWxsLWhlYWRlci1tZC12aXNpYmxlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hlbGwtaGVhZGVyLWxpbmtzLW5vLWdyb3ctY29udGFpbmVyXCI+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaW5rIG9mIGxpbmtzLnByb2ZpbGVBY3Rpb25zIHwgYXN5bmNcIj5cclxuICAgICAgICAgICAgICA8YSBjbGFzcz1cInNoZWxsLWhlYWRlci1tZW51LXJvdW5kZWQtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAoY2xpY2tPdXRzaWRlKT1cIm9uQ2xpY2tPdXRzaWRlUHJvZmlsZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICBbYXR0ci5ocmVmXT1cImxpbmsucGF0aFwiXHJcbiAgICAgICAgICAgICAgICAgW2F0dHIudGFyZ2V0XT1cImxpbmsuZXh0ZXJuYWwgPyAnX2JsYW5rJyA6ICdfc2VsZidcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPnt7IGxpbmsudGV4dCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwibGluay5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJsaW5rLmljb25cIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gUHJvZmlsZSBkcm9wZG93biAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1sLTIgcmVsYXRpdmVcIlxyXG4gICAgICAgICAgICAgICAgIChjbGlja091dHNpZGUpPVwib25DbGlja091dHNpZGVQcm9maWxlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvZmlsZU1lbnVWaXNpYmxlXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7J3NoZWxsLWhlYWRlci1wcm9maWxlJzogc2hvd1VzZXJOYW1lT25IZWFkZXJ9XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidXNlciAmJiBzaG93VXNlck5hbWVPbkhlYWRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2hlbGwtaGVhZGVyLXByb2ZpbGUtdXNlck5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAge3sgdXNlci5wcm9maWxlLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ1c2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInVzZXJNZW51RXhwYW5kZWQgPSAhdXNlck1lbnVFeHBhbmRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2hlbGwtaGVhZGVyLXByb2ZpbGUtZHJvcGRvd24tYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ1c2VyLW1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5PcGVuIHVzZXIgbWVudTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdmF0YXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdmF0YXItdGV4dFwiPnt7dGhpcy5hdmF0YXJOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXVzZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2lnbmluKG51bGwpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaGVsbC1oZWFkZXItcHJvZmlsZS1kcm9wZG93bi1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cInVzZXItbWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPnNpZ24gaW48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXZhdGFyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXZhdGFyLXRleHRcIj48aSBjbGFzcz1cIm1zLUljb24gbXMtSWNvbi0tU2lnbmluXCI+PC9pPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInVzZXJNZW51RXhwYW5kZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzaG93VXNlck5hbWVPbkhlYWRlciA/ICdzaGVsbC1oZWFkZXItcHJvZmlsZS1kcm9wZG93bi13aXRoLXVzZXJuYW1lJyA6ICdzaGVsbC1oZWFkZXItcHJvZmlsZS1kcm9wZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICByb2xlPVwibWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIGFyaWEtb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cInVzZXItbWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJibG9jayBweC00IHB5LTIgdGV4dC1zbSB0ZXh0LWdyYXktNzAwIGhvdmVyOmJnLWdyYXktMTAwXCIgcm9sZT1cIm1lbnVpdGVtXCI+zpHPgM6/z4PPjc69zrTOtc+Dzrc8L2E+IC0tPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaW5rIG9mIGxpbmtzLnByb2ZpbGUgfCBhc3luY1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGEgKm5nSWY9XCJsaW5rLmV4dGVybmFsXCIgW2F0dHIuaHJlZl09XCJsaW5rLnBhdGhcIiBbYXR0ci50YXJnZXRdPVwiJ19ibGFuaydcIiBjbGFzcz1cIm5hdi1saW5rLXByb2ZpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmsudGV4dCB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwibGluay5wYXRoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZV09XCJbJ25hdi1saW5rLXByb2ZpbGUtYWN0aXZlJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ7IGV4YWN0OiBsaW5rLmV4YWN0IH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmstcHJvZmlsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3sgbGluay50ZXh0IH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIE5vdGlmaWNhdGlvbnMgZHJvcGRvd24gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtbC0yIHJlbGF0aXZlXCJcclxuICAgICAgICAgICAgICAgICAoY2xpY2tPdXRzaWRlKT1cIm9uQ2xpY2tPdXRzaWRlTm90aWZpY2F0aW9ucygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAqbmdJZj1cIm5vdGlmaWNhdGlvbnNNZW51VmlzaWJsZVwiPlxyXG4gICAgICAgICAgICAgIDwhLS0gTm90aWZpY2F0aW9ucyBCdXR0b24gLS0+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9iaWxlLW1lbnUtcm91bmRlZC1idXR0b24gYmctdHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93Tm90aWZpY2F0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kTm90aWZpY2F0aW9uc01lbnUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBpZD1cIm5vdGlmaWNhdGlvbnMtbWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPlZpZXcgbm90aWZpY2F0aW9uczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVsYXRpdmUgaW5saW5lLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gSGVyb2ljb24gbmFtZTogb3V0bGluZS9iZWxsIC0tPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwibW9iaWxlLW1lbnUtcm91bmRlZC1idXR0b24taWNvbi1zdHlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTUgMTdoNWwtMS40MDUtMS40MDVBMi4wMzIgMi4wMzIgMCAwMTE4IDE0LjE1OFYxMWE2LjAwMiA2LjAwMiAwIDAwLTQtNS42NTlWNWEyIDIgMCAxMC00IDB2LjM0MUM3LjY3IDYuMTY1IDYgOC4zODggNiAxMXYzLjE1OWMwIC41MzgtLjIxNCAxLjA1NS0uNTk1IDEuNDM2TDQgMTdoNW02IDB2MWEzIDMgMCAxMS02IDB2LTFtNiAwSDlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ1bnJlYWROb3RpZmljYXRpb25zQ291bnQgPiAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCByaWdodC0wIGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweC0yIHB5LTEgdGV4dC14cyBmb250LWJvbGQgbGVhZGluZy1ub25lIHRleHQtZ3JheS0xMDAgdHJhbnNmb3JtIHRyYW5zbGF0ZS14LTEvMiAtdHJhbnNsYXRlLXktMS8yIGJnLWdyYXktNTAwIHJvdW5kZWQtZnVsbFwiPnt7dW5yZWFkTm90aWZpY2F0aW9uc0NvdW50fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub3RpZmljYXRpb25zTWVudUV4cGFuZGVkXCJcclxuICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNob3dVc2VyTmFtZU9uSGVhZGVyID8gJ3NoZWxsLWhlYWRlci1ub3RpZmljYXRpb25zLWRyb3Bkb3duLXdpdGgtdXNlcm5hbWUnIDogJ3NoZWxsLWhlYWRlci1ub3RpZmljYXRpb25zLWRyb3Bkb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICByb2xlPVwibWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICBhcmlhLW9yaWVudGF0aW9uPVwidmVydGljYWxcIlxyXG4gICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwibm90aWZpY2F0aW9ucy1tZW51XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF4LWgtNjQgb3ZlcmZsb3cteS1hdXRvIG5vdGlmaWNhdGlvbi1tZXNzYWdlcyBtaW4taFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5vdGlmaWNhdGlvbnM7IGVsc2Ugbm90aWZpY2F0aW9uc0Ryb3BEb3duXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInB5LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWxpbmstbm90aWZpY2F0aW9ucyBob3ZlcjpiZy10cmFuc3BhcmVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgzpTOtc69IM6tz4fOtc+EzrUgzr3Orc61z4IgzrXOuc60zr/PgM6/zrnOrs+DzrXOuc+CXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdGlmaWNhdGlvbnNEcm9wRG93bj5cclxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJwci0xLjVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub3RpZmljYXRpb25zIHwgYXN5bmMgYXMgb2JzOyBlbHNlIGxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9icy5sZW5ndGggPD0gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJweS01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1saW5rLW5vdGlmaWNhdGlvbnMgaG92ZXI6YmctdHJhbnNwYXJlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIM6UzrXOvSDOrc+HzrXPhM61IM69zq3Otc+CIM61zrnOtM6/z4DOv865zq7Pg861zrnPglxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBvYnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJtYi0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydib3JkZXItbC0yIGJvcmRlci1ibHVlLTUwMCBiZy1ibHVlLTUwIGhvdmVyOmJnLWJsdWUtNTAnOiAhbGluay5pc1JlYWQgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJsaW5rLnBhdGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmstbm90aWZpY2F0aW9ucyBncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIhbGluay5pc1JlYWQgPyAnIGhvdmVyOmJnLWJsdWUtNTAnIDogJ2JvcmRlci1iIGJvcmRlci1ncmF5LTEwMCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LXRoaW4gdHJhY2tpbmctdGlnaHRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmsuY3JlYXRpb25EYXRlIHwgZGF0ZTogJ0VFRSwgZCBNTU1NJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtYm9sZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmsudGV4dCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZsZXgtbm9uZSBmb250LXRoaW4gdHJhY2tpbmctdGlnaHRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCLOlM65zrHOs8+BzrHPhs6uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXJlZC02MDAgaG92ZXI6dGV4dC1yZWQtOTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtSWNvbiBtcy1JY29uLS1EZWxldGVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0zMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbmltYXRlLXB1bHNlIHRleHQtcyB0ZXh0LWdyYXktNjAwXCI+TG9hZGluZy4uLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0xIHJvdW5kZWQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiKGFsbE5vdGlmaWNhdGlvbnNMaW5rIHwgYXN5bmMpPy5wYXRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2hlbGwtaGVhZGVyLW5vdGlmaWNhdGlvbnMtZHJvcGRvd24tdmlldy1hbGwtYnV0dG9uXCI+zqDPgc6/zrLOv867zq4gz4zOu8+Jzr08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtbWVudS1idXR0b24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8IS0tIE1vYmlsZSBtZW51IGJ1dHRvbiAtLT5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtb2JpbGVNZW51RXhwYW5kZWQgPSAhbW9iaWxlTWVudUV4cGFuZGVkXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb2JpbGUtbWVudS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibW9iaWxlLW1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm1vYmlsZU1lbnVFeHBhbmRlZFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5PcGVuIG1haW4gbWVudTwvc3Bhbj5cclxuICAgICAgICAgICAgPCEtLUhlcm9pY29uIG5hbWU6IG91dGxpbmUvbWVudSAgTWVudSBvcGVuOiBcImhpZGRlblwiLCBNZW51IGNsb3NlZDogXCJibG9ja1wiLS0+XHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJibG9jayBoLTYgdy02XCJcclxuICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk00IDZoMTZNNCAxMmgxNk00IDE4aDE2XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwhLS1IZXJvaWNvbiBuYW1lOiBvdXRsaW5lL3ggTWVudSBvcGVuOiBcImJsb2NrXCIsIE1lbnUgY2xvc2VkOiBcImhpZGRlblwiLS0+XHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJoaWRkZW4gaC02IHctNlwiXHJcbiAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNiAxOEwxOCA2TTYgNmwxMiAxMlwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gTW9iaWxlIG1lbnUsIHNob3cvaGlkZSBiYXNlZCBvbiBtZW51IHN0YXRlLiAtLT5cclxuICA8ZGl2IGNsYXNzPVwibW9iaWxlLW1lbnUtY29udGFpbmVyXCJcclxuICAgICAgICpuZ0lmPVwibW9iaWxlTWVudUV4cGFuZGVkXCJcclxuICAgICAgIGlkPVwibW9iaWxlLW1lbnVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtbWVudS1saW5rLWNvbnRhaW5lclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaW5rIG9mIHNlY3Rpb25MaW5rcyB8IGFzeW5jXCI+XHJcbiAgICAgICAgPGEgKm5nSWY9XCJsaW5rLmV4dGVybmFsXCJcclxuICAgICAgICAgICBbYXR0ci5ocmVmXT1cImxpbmsucGF0aFwiXHJcbiAgICAgICAgICAgW2F0dHIudGFyZ2V0XT1cIidfYmxhbmsnXCJcclxuICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rLW1vYmlsZVwiPlxyXG4gICAgICAgICAge3sgbGluay50ZXh0IH19XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIDxhICpuZ0lmPVwiIWxpbmsuZXh0ZXJuYWxcIlxyXG4gICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImxpbmsucGF0aFwiXHJcbiAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiWyduYXYtbGluay1tb2JpbGUtYWN0aXZlJ11cIlxyXG4gICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ7IGV4YWN0OiBsaW5rLmV4YWN0IH1cIlxyXG4gICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmstbW9iaWxlXCI+XHJcbiAgICAgICAgICB7eyBsaW5rLnRleHQgfX1cclxuICAgICAgICA8L2E+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXVzZXJcIj5cclxuICAgICAgICA8YSBocmVmPVwiI1wiXHJcbiAgICAgICAgICAgKGNsaWNrKT1cInNpZ25pbigkZXZlbnQpXCJcclxuICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rLW1vYmlsZVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJtcy1JY29uIG1zLUljb24tLVNpZ25pbiBtci0yXCI+PC9pPs6jz43Ovc60zrXPg863XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1tZW51LXVzZXItaW5mby1jb250YWluZXJcIlxyXG4gICAgICAgICAqbmdJZj1cInVzZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1tZW51LXVzZXItaW5mby1jb250YWluZXItaW5uZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zaHJpbmstMFwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtb2JpbGUtbWVudS1hdmF0YXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibW9iaWxlLW1lbnUtYXZhdGFyLW5hbWVcIj57eyB0aGlzLmF2YXRhck5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1sLTNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtbWVudS11c2VyLW5hbWVcIj57eyB1c2VyLnByb2ZpbGUubmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1tZW51LXVzZXItZW1haWxcIj57eyB1c2VyLnByb2ZpbGUuZW1haWwgfX08L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YSBbcm91dGVyTGlua109XCIoYWxsTm90aWZpY2F0aW9uc0xpbmsgfCBhc3luYyk/LnBhdGhcIj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtb2JpbGUtbWVudS1yb3VuZGVkLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5WaWV3IG5vdGlmaWNhdGlvbnM8L3NwYW4+XHJcbiAgICAgICAgICAgIDwhLS0gSGVyb2ljb24gbmFtZTogb3V0bGluZS9iZWxsIC0tPlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwibW9iaWxlLW1lbnUtcm91bmRlZC1idXR0b24taWNvbi1zdHlsZVwiXHJcbiAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTUgMTdoNWwtMS40MDUtMS40MDVBMi4wMzIgMi4wMzIgMCAwMTE4IDE0LjE1OFYxMWE2LjAwMiA2LjAwMiAwIDAwLTQtNS42NTlWNWEyIDIgMCAxMC00IDB2LjM0MUM3LjY3IDYuMTY1IDYgOC4zODggNiAxMXYzLjE1OWMwIC41MzgtLjIxNCAxLjA1NS0uNTk1IDEuNDM2TDQgMTdoNW02IDB2MWEzIDMgMCAxMS02IDB2LTFtNiAwSDlcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtbWVudS1saW5rLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2YgbGlua3MucHJvZmlsZSB8IGFzeW5jXCI+XHJcbiAgICAgICAgICA8YSAqbmdJZj1cImxpbmsuZXh0ZXJuYWxcIlxyXG4gICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJsaW5rLnBhdGhcIlxyXG4gICAgICAgICAgICAgW2F0dHIudGFyZ2V0XT1cIidfYmxhbmsnXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmstbW9iaWxlXCI+XHJcbiAgICAgICAgICAgIHt7IGxpbmsudGV4dCB9fVxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwibGluay5wYXRoXCJcclxuICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cIlsnbmF2LWxpbmstbW9iaWxlLWFjdGl2ZSddXCJcclxuICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJ7IGV4YWN0OiBsaW5rLmV4YWN0IH1cIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluay1tb2JpbGVcIj5cclxuICAgICAgICAgICAge3sgbGluay50ZXh0IH19XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPCEtLSA8YSBocmVmPVwiI1wiIGNsYXNzPVwiYmxvY2sgcHgtMyBweS0yIHJvdW5kZWQtc20gdGV4dC1iYXNlIGZvbnQtbWVkaXVtIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSBob3ZlcjpiZy1ncmF5LTcwMFwiPs6Rz4DOv8+Dz43Ovc60zrXPg863PC9hPiAtLT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uYXY+XHJcbiJdfQ==
|
|
@@ -83,7 +83,7 @@ export class ShellLayoutComponent {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
ShellLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellLayoutComponent, deps: [{ token: i1.Router }, { token: i2.Location }, { token: SHELL_CONFIG }, { token: i3.ComponentLoaderFactory }], target: i0.ɵɵFactoryTarget.Component });
|
|
86
|
-
ShellLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ShellLayoutComponent, selector: "lib-shell-layout", viewQueries: [{ propertyName: "dynamicComponentHosts", predicate: DynamicComponentHostDirective, descendants: true }], ngImport: i0, template: "<div *ngIf=\"loaded\"\r\n [style.display]=\"!loaded ? 'none':'block'\"\r\n class=\"shell-container active-side-pane\">\r\n <div class=\"shell-header-container\"\r\n *ngIf=\"activeConfig.showHeader\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-header-container-inner-fluid' : 'shell-header-container-inner'\">\r\n\r\n <ng-container *ngIf=\"activeConfig.customHeaderComponent\">\r\n <div appDynamicComponentHost=\"Header\"></div>\r\n </ng-container>\r\n\r\n <lib-shell-header *ngIf=\"!activeConfig.customHeaderComponent\"\r\n [config]=\"activeConfig\"></lib-shell-header>\r\n </div>\r\n </div>\r\n\r\n <main [class]=\"activeConfig.showHeader ? 'shell-content-container' : 'shell-content-container-no-header'\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-content-container-inner-fluid' : 'shell-content-container-inner'\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </main>\r\n\r\n <div class=\"shell-footer-container\"\r\n *ngIf=\"activeConfig.showFooter\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-footer-container-inner-fluid' : 'shell-footer-container-inner'\">\r\n <ng-container *ngIf=\"activeConfig.customFooterComponent\">\r\n <div appDynamicComponentHost\r\n hostName=\"Footer\"></div>\r\n </ng-container>\r\n <lib-shell-footer *ngIf=\"!activeConfig.customFooterComponent\"></lib-shell-footer>\r\n </div>\r\n </div>\r\n\r\n <lib-side-pane #rightPane>\r\n <router-outlet name=\"rightpane\"\r\n (activate)=\"rightPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"rightPane.onSidePaneDeactivated($event)\"></router-outlet>\r\n </lib-side-pane>\r\n\r\n <lib-toaster-container></lib-toaster-container>\r\n\r\n</div>\r\n", components: [{ type: i4.ShellHeaderComponent, selector: "lib-shell-header", inputs: ["section-links", "
|
|
86
|
+
ShellLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ShellLayoutComponent, selector: "lib-shell-layout", viewQueries: [{ propertyName: "dynamicComponentHosts", predicate: DynamicComponentHostDirective, descendants: true }], ngImport: i0, template: "<div *ngIf=\"loaded\"\r\n [style.display]=\"!loaded ? 'none':'block'\"\r\n class=\"shell-container active-side-pane\">\r\n <div class=\"shell-header-container\"\r\n *ngIf=\"activeConfig.showHeader\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-header-container-inner-fluid' : 'shell-header-container-inner'\">\r\n\r\n <ng-container *ngIf=\"activeConfig.customHeaderComponent\">\r\n <div appDynamicComponentHost=\"Header\"></div>\r\n </ng-container>\r\n\r\n <lib-shell-header *ngIf=\"!activeConfig.customHeaderComponent\"\r\n [config]=\"activeConfig\"></lib-shell-header>\r\n </div>\r\n </div>\r\n\r\n <main [class]=\"activeConfig.showHeader ? 'shell-content-container' : 'shell-content-container-no-header'\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-content-container-inner-fluid' : 'shell-content-container-inner'\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </main>\r\n\r\n <div class=\"shell-footer-container\"\r\n *ngIf=\"activeConfig.showFooter\">\r\n <div [class]=\"activeConfig.fluid ? 'shell-footer-container-inner-fluid' : 'shell-footer-container-inner'\">\r\n <ng-container *ngIf=\"activeConfig.customFooterComponent\">\r\n <div appDynamicComponentHost\r\n hostName=\"Footer\"></div>\r\n </ng-container>\r\n <lib-shell-footer *ngIf=\"!activeConfig.customFooterComponent\"></lib-shell-footer>\r\n </div>\r\n </div>\r\n\r\n <lib-side-pane #rightPane>\r\n <router-outlet name=\"rightpane\"\r\n (activate)=\"rightPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"rightPane.onSidePaneDeactivated($event)\"></router-outlet>\r\n </lib-side-pane>\r\n\r\n <lib-toaster-container></lib-toaster-container>\r\n\r\n</div>\r\n", components: [{ type: i4.ShellHeaderComponent, selector: "lib-shell-header", inputs: ["section-links", "notifications-links", "all-notifications", "notifications-counter", "config", "border"] }, { type: i5.ShellFooterComponent, selector: "lib-shell-footer" }, { type: i6.SidePaneComponent, selector: "lib-side-pane", inputs: ["visible"], outputs: ["onComplete"] }, { type: i7.ToasterContainerComponent, selector: "lib-toaster-container" }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.DynamicComponentHostDirective, selector: "[appDynamicComponentHost]", inputs: ["hostName"] }, { type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
|
|
87
87
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ShellLayoutComponent, decorators: [{
|
|
88
88
|
type: Component,
|
|
89
89
|
args: [{
|
package/esm2015/lib/types.js
CHANGED
|
@@ -111,4 +111,4 @@ export var SidePaneOverlayType;
|
|
|
111
111
|
SidePaneOverlayType["Light"] = "";
|
|
112
112
|
SidePaneOverlayType["Dark"] = "-opacity-50";
|
|
113
113
|
})(SidePaneOverlayType || (SidePaneOverlayType = {}));
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY0EsTUFBTSxPQUFPLE9BQU87SUFDbEIsWUFBWSxJQUFZLEVBQUUsSUFBWSxFQUFFLFFBQWlCLEtBQUssRUFBRSxXQUFvQixLQUFLLEVBQUUsSUFBYSxFQUFFLE1BQWdCLEVBQUUsWUFBbUI7UUFjeEksV0FBTSxHQUFhLEtBQUssQ0FBQztRQWI5QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0NBUUY7QUFFRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxPQUFPO0lBQzFDLFlBQVksSUFBWSxFQUFFLElBQVksRUFBRSxZQUFzQixFQUFFLElBQWE7UUFDM0UsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxPQUFPO0lBQzFDLFlBQVksSUFBWSxFQUFFLElBQVksRUFBRSxJQUFhO1FBQ25ELEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLE9BQU87SUFDOUMsWUFB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LFNBS1g7QUFMRCxXQUFZLFNBQVM7SUFDbkIsMEJBQWEsQ0FBQTtJQUNiLGdDQUFtQixDQUFBO0lBQ25CLDRCQUFlLENBQUE7SUFDZixnQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsU0FBUyxLQUFULFNBQVMsUUFLcEI7QUFFRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQVcsQ0FBQztBQVMvRCxNQUFNLENBQU4sSUFBWSxZQUtYO0FBTEQsV0FBWSxZQUFZO0lBQ3RCLDRCQUFZLENBQUE7SUFDWiwrQkFBZSxDQUFBO0lBQ2YsZ0NBQWdCLENBQUE7SUFDaEIsK0JBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTFcsWUFBWSxLQUFaLFlBQVksUUFLdkI7QUFFRCxNQUFNLENBQU4sSUFBWSxtQkFLWDtBQUxELFdBQVksbUJBQW1CO0lBQzdCLG1DQUFZLENBQUE7SUFDWiwwQ0FBbUIsQ0FBQTtJQUNuQixpQ0FBVSxDQUFBO0lBQ1YsMkNBQW9CLENBQUE7QUFDdEIsQ0FBQyxFQUxXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFLOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUFwcExpbmtzIHtcclxuICBwdWJsaWM6IE9ic2VydmFibGU8TmF2TGlua1tdPjtcclxuICBtYWluOiBPYnNlcnZhYmxlPE5hdkxpbmtbXT47XHJcbiAgcHJvZmlsZTogT2JzZXJ2YWJsZTxOYXZMaW5rW10+O1xyXG4gIHByb2ZpbGVBY3Rpb25zOiBPYnNlcnZhYmxlPE5hdkxpbmtbXT47XHJcbiAgbGVnYWw6IE9ic2VydmFibGU8TmF2TGlua1tdPjtcclxuICBicmFuZDogT2JzZXJ2YWJsZTxOYXZMaW5rW10+O1xyXG4gIG5vdGlmaWNhdGlvbnM/OiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbk5hdkxpbmtbXT47XHJcbiAgYWxsTm90aWZpY2F0aW9ucz86IE9ic2VydmFibGU8TmF2TGluaz47XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgTmF2TGluayB7XHJcbiAgY29uc3RydWN0b3IodGV4dDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIGV4YWN0OiBib29sZWFuID0gZmFsc2UsIGV4dGVybmFsOiBib29sZWFuID0gZmFsc2UsIGljb24/OiBzdHJpbmcsIGlzUmVhZD86IGJvb2xlYW4sIGNyZWF0aW9uRGF0ZT86IERhdGUpIHtcclxuICAgIHRoaXMudGV4dCA9IHRleHQ7XHJcbiAgICB0aGlzLnBhdGggPSBwYXRoO1xyXG4gICAgdGhpcy5leGFjdCA9IGV4YWN0O1xyXG4gICAgdGhpcy5leHRlcm5hbCA9IGV4dGVybmFsO1xyXG4gICAgdGhpcy5pY29uID0gaWNvbjtcclxuICAgIHRoaXMuaXNSZWFkID0gaXNSZWFkO1xyXG4gICAgdGhpcy5jcmVhdGlvbkRhdGUgPSBjcmVhdGlvbkRhdGU7XHJcbiAgfVxyXG4gIHB1YmxpYyB0ZXh0OiBzdHJpbmc7XHJcbiAgcHVibGljIHBhdGg6IHN0cmluZztcclxuICBwdWJsaWMgZXhhY3Q6IGJvb2xlYW47XHJcbiAgcHVibGljIGV4dGVybmFsOiBib29sZWFuO1xyXG4gIHB1YmxpYyBpY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGlzUmVhZD86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgY3JlYXRpb25EYXRlPzogRGF0ZTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEV4dGVybmFsTmF2TGluayBleHRlbmRzIE5hdkxpbmsge1xyXG4gIGNvbnN0cnVjdG9yKHRleHQ6IHN0cmluZywgcGF0aDogc3RyaW5nLCBvcGVuSW5OZXdUYWI/OiBib29sZWFuLCBpY29uPzogc3RyaW5nKSB7XHJcbiAgICBzdXBlcih0ZXh0LCBwYXRoLCB0cnVlLCBvcGVuSW5OZXdUYWIsIGljb24pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZyYWdtZW50TmF2TGluayBleHRlbmRzIE5hdkxpbmsge1xyXG4gIGNvbnN0cnVjdG9yKHRleHQ6IHN0cmluZywgcGF0aDogc3RyaW5nLCBpY29uPzogc3RyaW5nKSB7XHJcbiAgICBzdXBlcih0ZXh0LCBwYXRoLCB0cnVlLCB0cnVlLCBpY29uKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25OYXZMaW5rIGV4dGVuZHMgTmF2TGluayB7XHJcbiAgY29uc3RydWN0b3IodGV4dDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIGlzUmVhZDogYm9vbGVhbiwgY3JlYXRpb25EYXRlPzogRGF0ZSkge1xyXG4gICAgc3VwZXIodGV4dCwgcGF0aCwgdHJ1ZSwgZmFsc2UsIHVuZGVmaW5lZCwgaXNSZWFkLCBjcmVhdGlvbkRhdGUpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZpZXdBY3Rpb24ge1xyXG4gIHB1YmxpYyB0eXBlOiBzdHJpbmc7XHJcbiAgcHVibGljIGtleTogc3RyaW5nIHwgbnVsbDtcclxuICBwdWJsaWMgcGFyYW06IGFueTtcclxuICBwdWJsaWMgaWNvbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB0b29sdGlwOiBzdHJpbmcgfCBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcih0eXBlOiBzdHJpbmcsIGtleTogc3RyaW5nIHwgbnVsbCwgcGFyYW06IGFueSwgaWNvbjogc3RyaW5nLCB0b29sdGlwOiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy5rZXkgPSBrZXk7XHJcbiAgICB0aGlzLnBhcmFtID0gcGFyYW07XHJcbiAgICB0aGlzLmljb24gPSBpY29uO1xyXG4gICAgdGhpcy50b29sdGlwID0gdG9vbHRpcDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMaXN0Vmlld1R5cGUge1xyXG4gIHB1YmxpYyBzdGF0aWMgVGlsZXMgPSAndGlsZXMnO1xyXG4gIHB1YmxpYyBzdGF0aWMgVGFibGUgPSAndGFibGUnO1xyXG4gIHB1YmxpYyBzdGF0aWMgTWFwID0gJ21hcCc7XHJcbiAgcHVibGljIHN0YXRpYyBHYWxsZXJ5ID0gJ2dhbGxlcnknO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUm91dGVyVmlld0FjdGlvbiBleHRlbmRzIFZpZXdBY3Rpb24ge1xyXG4gIHB1YmxpYyBvdXRsZXQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyBsaW5rOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBjb25zdHJ1Y3RvcihpY29uOiBzdHJpbmcsIGxpbms6IHN0cmluZywgb3V0bGV0OiBzdHJpbmcgfCBudWxsLCB0b29sdGlwOiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICBzdXBlcigncm91dGVyLWxpbmsnLCBudWxsLCBudWxsLCBpY29uLCB0b29sdGlwKTtcclxuICAgIHRoaXMub3V0bGV0ID0gb3V0bGV0O1xyXG4gICAgdGhpcy5saW5rID0gbGluaztcclxuICB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgU3dpdGNoVmlld0FjdGlvbiBleHRlbmRzIFZpZXdBY3Rpb24ge1xyXG4gIGNvbnN0cnVjdG9yKHZpZXc6IHN0cmluZywgaWNvbjogc3RyaW5nLCB0b29sdGlwOiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICBzdXBlcignc3dpdGNoLXZpZXcnLCBudWxsLCB2aWV3LCBpY29uLCB0b29sdGlwKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJlc3VsdFNldDxUPiB7XHJcbiAgY291bnQ6IG51bWJlcjtcclxuICBpdGVtczogVFtdO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSGVhZGVyTWV0YUl0ZW0ge1xyXG4gIHB1YmxpYyBrZXk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyBpY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgdGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNZW51T3B0aW9uIHtcclxuICBjb25zdHJ1Y3Rvcih0ZXh0OiBzdHJpbmcsIHZhbHVlOiBhbnksIGRlc2NyaXB0aW9uPzogc3RyaW5nLCBkYXRhPzogYW55LCBpY29uPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRleHQgPSB0ZXh0O1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xyXG4gICAgdGhpcy5kYXRhID0gZGF0YTtcclxuICAgIHRoaXMuaWNvbiA9IGljb247XHJcbiAgfVxyXG4gIHB1YmxpYyB0ZXh0OiBzdHJpbmc7XHJcbiAgcHVibGljIHZhbHVlOiBhbnk7XHJcbiAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGRhdGE6IGFueSB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgaWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElBZGRyZXNzIHtcclxuICBpZD86IHN0cmluZztcclxuICBzdHJlZXQ/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHN0cmVldE51bWJlcj86IHN0cmluZyB8IG51bGw7XHJcbiAgY2l0eT86IHN0cmluZyB8IG51bGw7XHJcbiAgcmVnaW9uPzogc3RyaW5nIHwgbnVsbDtcclxuICBwb3N0YWxDb2RlPzogc3RyaW5nIHwgbnVsbDtcclxuICBjb3VudHJ5Pzogc3RyaW5nIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJU2hlbGxDb25maWcge1xyXG4gIGFwcExvZ286IHN0cmluZztcclxuICBhcHBMb2dvQWx0OiBzdHJpbmc7XHJcbiAgc2hvd0hlYWRlcjogYm9vbGVhbjtcclxuICBzaG93VXNlck5hbWVPbkhlYWRlcj86IGJvb2xlYW47XHJcbiAgc2hvd05vdGlmaWNhdGlvbnM6IGJvb2xlYW47XHJcbiAgc2hvd0Zvb3RlcjogYm9vbGVhbjtcclxuICBjdXN0b21IZWFkZXJDb21wb25lbnQ/OiBhbnk7XHJcbiAgY3VzdG9tRm9vdGVyQ29tcG9uZW50PzogYW55O1xyXG4gIGZsdWlkOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGVmYXVsdFNoZWxsQ29uZmlnIGltcGxlbWVudHMgSVNoZWxsQ29uZmlnIHtcclxuICBhcHBMb2dvID0gJ2h0dHBzOi8vdGFpbHdpbmR1aS5jb20vaW1nL2xvZ29zL3dvcmtmbG93LW1hcmsuc3ZnP2NvbG9yPXdoaXRlJztcclxuICBhcHBMb2dvQWx0ID0gJ3lvdXIgYXBwIG5hbWUgaGVyZSc7XHJcbiAgc2hvd0hlYWRlciA9IHRydWU7XHJcbiAgc2hvd1VzZXJOYW1lT25IZWFkZXIgPSBmYWxzZTtcclxuICBzaG93Tm90aWZpY2F0aW9ucyA9IGZhbHNlO1xyXG4gIHNob3dGb290ZXIgPSB0cnVlO1xyXG4gIGZsdWlkID0gZmFsc2U7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFNDUkVFTl9TSVpFIHtcclxuICBYUyxcclxuICBTTSxcclxuICBNRCxcclxuICBMRyxcclxuICBYTFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElTY3JlZW5TaXplIHtcclxuICBpZDogU0NSRUVOX1NJWkU7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGNzczogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBUb2FzdFR5cGUge1xyXG4gIEluZm8gPSAnaW5mbycsXHJcbiAgU3VjY2VzcyA9ICdzdWNjZXNzJyxcclxuICBFcnJvciA9ICdlcnJvcicsXHJcbiAgV2FybmluZyA9ICd3YXJuaW5nJ1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgTlVMTF9UT0FTVCA9IHsgdGl0bGU6ICdfX19fX05VTExfX19fXycgfSBhcyBUb2FzdDtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVG9hc3Qge1xyXG4gIHR5cGU6IFRvYXN0VHlwZTtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGJvZHk6IHN0cmluZztcclxuICBkZWxheTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBTaWRlUGFuZVNpemUge1xyXG4gIERlZmF1bHQgPSAnJyxcclxuICBTbWFsbDI1ID0gJzI1JScsXHJcbiAgTWVkaXVtNTAgPSAnNTAlJyxcclxuICBMYXJnZTc1ID0gJzc1JSdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU2lkZVBhbmVPdmVybGF5VHlwZSB7XHJcbiAgRGVmYXVsdCA9ICcnLFxyXG4gIE5vbmUgPSAnLW9wYWNpdHktMCcsXHJcbiAgTGlnaHQgPSAnJyxcclxuICBEYXJrID0gJy1vcGFjaXR5LTUwJ1xyXG59XHJcbiJdfQ==
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUEsTUFBTSxPQUFPLE9BQU87SUFDbEIsWUFBWSxJQUFZLEVBQUUsSUFBWSxFQUFFLFFBQWlCLEtBQUssRUFBRSxXQUFvQixLQUFLLEVBQUUsSUFBYSxFQUFFLE1BQWdCLEVBQUUsWUFBbUI7UUFjeEksV0FBTSxHQUFhLEtBQUssQ0FBQztRQWI5QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0NBUUY7QUFFRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxPQUFPO0lBQzFDLFlBQVksSUFBWSxFQUFFLElBQVksRUFBRSxZQUFzQixFQUFFLElBQWE7UUFDM0UsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxPQUFPO0lBQzFDLFlBQVksSUFBWSxFQUFFLElBQVksRUFBRSxJQUFhO1FBQ25ELEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLE9BQU87SUFDOUMsWUFB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LFNBS1g7QUFMRCxXQUFZLFNBQVM7SUFDbkIsMEJBQWEsQ0FBQTtJQUNiLGdDQUFtQixDQUFBO0lBQ25CLDRCQUFlLENBQUE7SUFDZixnQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsU0FBUyxLQUFULFNBQVMsUUFLcEI7QUFFRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQVcsQ0FBQztBQVMvRCxNQUFNLENBQU4sSUFBWSxZQUtYO0FBTEQsV0FBWSxZQUFZO0lBQ3RCLDRCQUFZLENBQUE7SUFDWiwrQkFBZSxDQUFBO0lBQ2YsZ0NBQWdCLENBQUE7SUFDaEIsK0JBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTFcsWUFBWSxLQUFaLFlBQVksUUFLdkI7QUFFRCxNQUFNLENBQU4sSUFBWSxtQkFLWDtBQUxELFdBQVksbUJBQW1CO0lBQzdCLG1DQUFZLENBQUE7SUFDWiwwQ0FBbUIsQ0FBQTtJQUNuQixpQ0FBVSxDQUFBO0lBQ1YsMkNBQW9CLENBQUE7QUFDdEIsQ0FBQyxFQUxXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFLOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUFwcExpbmtzIHtcclxuICBwdWJsaWM6IE9ic2VydmFibGU8TmF2TGlua1tdPjtcclxuICBtYWluOiBPYnNlcnZhYmxlPE5hdkxpbmtbXT47XHJcbiAgcHJvZmlsZTogT2JzZXJ2YWJsZTxOYXZMaW5rW10+O1xyXG4gIHByb2ZpbGVBY3Rpb25zOiBPYnNlcnZhYmxlPE5hdkxpbmtbXT47XHJcbiAgbGVnYWw6IE9ic2VydmFibGU8TmF2TGlua1tdPjtcclxuICBicmFuZDogT2JzZXJ2YWJsZTxOYXZMaW5rW10+O1xyXG4gIG5vdGlmaWNhdGlvbnM/OiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbk5hdkxpbmtbXT47XHJcbiAgYWxsTm90aWZpY2F0aW9ucz86IE9ic2VydmFibGU8TmF2TGluaz47XHJcbiAgbm90aWZpY2F0aW9uc0NvdW50ZXI/OiBPYnNlcnZhYmxlPG51bWJlcj47XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgTmF2TGluayB7XHJcbiAgY29uc3RydWN0b3IodGV4dDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIGV4YWN0OiBib29sZWFuID0gZmFsc2UsIGV4dGVybmFsOiBib29sZWFuID0gZmFsc2UsIGljb24/OiBzdHJpbmcsIGlzUmVhZD86IGJvb2xlYW4sIGNyZWF0aW9uRGF0ZT86IERhdGUpIHtcclxuICAgIHRoaXMudGV4dCA9IHRleHQ7XHJcbiAgICB0aGlzLnBhdGggPSBwYXRoO1xyXG4gICAgdGhpcy5leGFjdCA9IGV4YWN0O1xyXG4gICAgdGhpcy5leHRlcm5hbCA9IGV4dGVybmFsO1xyXG4gICAgdGhpcy5pY29uID0gaWNvbjtcclxuICAgIHRoaXMuaXNSZWFkID0gaXNSZWFkO1xyXG4gICAgdGhpcy5jcmVhdGlvbkRhdGUgPSBjcmVhdGlvbkRhdGU7XHJcbiAgfVxyXG4gIHB1YmxpYyB0ZXh0OiBzdHJpbmc7XHJcbiAgcHVibGljIHBhdGg6IHN0cmluZztcclxuICBwdWJsaWMgZXhhY3Q6IGJvb2xlYW47XHJcbiAgcHVibGljIGV4dGVybmFsOiBib29sZWFuO1xyXG4gIHB1YmxpYyBpY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGlzUmVhZD86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgY3JlYXRpb25EYXRlPzogRGF0ZTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEV4dGVybmFsTmF2TGluayBleHRlbmRzIE5hdkxpbmsge1xyXG4gIGNvbnN0cnVjdG9yKHRleHQ6IHN0cmluZywgcGF0aDogc3RyaW5nLCBvcGVuSW5OZXdUYWI/OiBib29sZWFuLCBpY29uPzogc3RyaW5nKSB7XHJcbiAgICBzdXBlcih0ZXh0LCBwYXRoLCB0cnVlLCBvcGVuSW5OZXdUYWIsIGljb24pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZyYWdtZW50TmF2TGluayBleHRlbmRzIE5hdkxpbmsge1xyXG4gIGNvbnN0cnVjdG9yKHRleHQ6IHN0cmluZywgcGF0aDogc3RyaW5nLCBpY29uPzogc3RyaW5nKSB7XHJcbiAgICBzdXBlcih0ZXh0LCBwYXRoLCB0cnVlLCB0cnVlLCBpY29uKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25OYXZMaW5rIGV4dGVuZHMgTmF2TGluayB7XHJcbiAgY29uc3RydWN0b3IodGV4dDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIGlzUmVhZDogYm9vbGVhbiwgY3JlYXRpb25EYXRlPzogRGF0ZSkge1xyXG4gICAgc3VwZXIodGV4dCwgcGF0aCwgdHJ1ZSwgZmFsc2UsIHVuZGVmaW5lZCwgaXNSZWFkLCBjcmVhdGlvbkRhdGUpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZpZXdBY3Rpb24ge1xyXG4gIHB1YmxpYyB0eXBlOiBzdHJpbmc7XHJcbiAgcHVibGljIGtleTogc3RyaW5nIHwgbnVsbDtcclxuICBwdWJsaWMgcGFyYW06IGFueTtcclxuICBwdWJsaWMgaWNvbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB0b29sdGlwOiBzdHJpbmcgfCBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcih0eXBlOiBzdHJpbmcsIGtleTogc3RyaW5nIHwgbnVsbCwgcGFyYW06IGFueSwgaWNvbjogc3RyaW5nLCB0b29sdGlwOiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy5rZXkgPSBrZXk7XHJcbiAgICB0aGlzLnBhcmFtID0gcGFyYW07XHJcbiAgICB0aGlzLmljb24gPSBpY29uO1xyXG4gICAgdGhpcy50b29sdGlwID0gdG9vbHRpcDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMaXN0Vmlld1R5cGUge1xyXG4gIHB1YmxpYyBzdGF0aWMgVGlsZXMgPSAndGlsZXMnO1xyXG4gIHB1YmxpYyBzdGF0aWMgVGFibGUgPSAndGFibGUnO1xyXG4gIHB1YmxpYyBzdGF0aWMgTWFwID0gJ21hcCc7XHJcbiAgcHVibGljIHN0YXRpYyBHYWxsZXJ5ID0gJ2dhbGxlcnknO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUm91dGVyVmlld0FjdGlvbiBleHRlbmRzIFZpZXdBY3Rpb24ge1xyXG4gIHB1YmxpYyBvdXRsZXQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyBsaW5rOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBjb25zdHJ1Y3RvcihpY29uOiBzdHJpbmcsIGxpbms6IHN0cmluZywgb3V0bGV0OiBzdHJpbmcgfCBudWxsLCB0b29sdGlwOiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICBzdXBlcigncm91dGVyLWxpbmsnLCBudWxsLCBudWxsLCBpY29uLCB0b29sdGlwKTtcclxuICAgIHRoaXMub3V0bGV0ID0gb3V0bGV0O1xyXG4gICAgdGhpcy5saW5rID0gbGluaztcclxuICB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgU3dpdGNoVmlld0FjdGlvbiBleHRlbmRzIFZpZXdBY3Rpb24ge1xyXG4gIGNvbnN0cnVjdG9yKHZpZXc6IHN0cmluZywgaWNvbjogc3RyaW5nLCB0b29sdGlwOiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICBzdXBlcignc3dpdGNoLXZpZXcnLCBudWxsLCB2aWV3LCBpY29uLCB0b29sdGlwKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJlc3VsdFNldDxUPiB7XHJcbiAgY291bnQ6IG51bWJlcjtcclxuICBpdGVtczogVFtdO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSGVhZGVyTWV0YUl0ZW0ge1xyXG4gIHB1YmxpYyBrZXk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyBpY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgdGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNZW51T3B0aW9uIHtcclxuICBjb25zdHJ1Y3Rvcih0ZXh0OiBzdHJpbmcsIHZhbHVlOiBhbnksIGRlc2NyaXB0aW9uPzogc3RyaW5nLCBkYXRhPzogYW55LCBpY29uPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRleHQgPSB0ZXh0O1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xyXG4gICAgdGhpcy5kYXRhID0gZGF0YTtcclxuICAgIHRoaXMuaWNvbiA9IGljb247XHJcbiAgfVxyXG4gIHB1YmxpYyB0ZXh0OiBzdHJpbmc7XHJcbiAgcHVibGljIHZhbHVlOiBhbnk7XHJcbiAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGRhdGE6IGFueSB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgaWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElBZGRyZXNzIHtcclxuICBpZD86IHN0cmluZztcclxuICBzdHJlZXQ/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHN0cmVldE51bWJlcj86IHN0cmluZyB8IG51bGw7XHJcbiAgY2l0eT86IHN0cmluZyB8IG51bGw7XHJcbiAgcmVnaW9uPzogc3RyaW5nIHwgbnVsbDtcclxuICBwb3N0YWxDb2RlPzogc3RyaW5nIHwgbnVsbDtcclxuICBjb3VudHJ5Pzogc3RyaW5nIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJU2hlbGxDb25maWcge1xyXG4gIGFwcExvZ286IHN0cmluZztcclxuICBhcHBMb2dvQWx0OiBzdHJpbmc7XHJcbiAgc2hvd0hlYWRlcjogYm9vbGVhbjtcclxuICBzaG93VXNlck5hbWVPbkhlYWRlcj86IGJvb2xlYW47XHJcbiAgc2hvd05vdGlmaWNhdGlvbnM6IGJvb2xlYW47XHJcbiAgc2hvd0Zvb3RlcjogYm9vbGVhbjtcclxuICBjdXN0b21IZWFkZXJDb21wb25lbnQ/OiBhbnk7XHJcbiAgY3VzdG9tRm9vdGVyQ29tcG9uZW50PzogYW55O1xyXG4gIGZsdWlkOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGVmYXVsdFNoZWxsQ29uZmlnIGltcGxlbWVudHMgSVNoZWxsQ29uZmlnIHtcclxuICBhcHBMb2dvID0gJ2h0dHBzOi8vdGFpbHdpbmR1aS5jb20vaW1nL2xvZ29zL3dvcmtmbG93LW1hcmsuc3ZnP2NvbG9yPXdoaXRlJztcclxuICBhcHBMb2dvQWx0ID0gJ3lvdXIgYXBwIG5hbWUgaGVyZSc7XHJcbiAgc2hvd0hlYWRlciA9IHRydWU7XHJcbiAgc2hvd1VzZXJOYW1lT25IZWFkZXIgPSBmYWxzZTtcclxuICBzaG93Tm90aWZpY2F0aW9ucyA9IGZhbHNlO1xyXG4gIHNob3dGb290ZXIgPSB0cnVlO1xyXG4gIGZsdWlkID0gZmFsc2U7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFNDUkVFTl9TSVpFIHtcclxuICBYUyxcclxuICBTTSxcclxuICBNRCxcclxuICBMRyxcclxuICBYTFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElTY3JlZW5TaXplIHtcclxuICBpZDogU0NSRUVOX1NJWkU7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGNzczogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBUb2FzdFR5cGUge1xyXG4gIEluZm8gPSAnaW5mbycsXHJcbiAgU3VjY2VzcyA9ICdzdWNjZXNzJyxcclxuICBFcnJvciA9ICdlcnJvcicsXHJcbiAgV2FybmluZyA9ICd3YXJuaW5nJ1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgTlVMTF9UT0FTVCA9IHsgdGl0bGU6ICdfX19fX05VTExfX19fXycgfSBhcyBUb2FzdDtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVG9hc3Qge1xyXG4gIHR5cGU6IFRvYXN0VHlwZTtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGJvZHk6IHN0cmluZztcclxuICBkZWxheTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBTaWRlUGFuZVNpemUge1xyXG4gIERlZmF1bHQgPSAnJyxcclxuICBTbWFsbDI1ID0gJzI1JScsXHJcbiAgTWVkaXVtNTAgPSAnNTAlJyxcclxuICBMYXJnZTc1ID0gJzc1JSdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU2lkZVBhbmVPdmVybGF5VHlwZSB7XHJcbiAgRGVmYXVsdCA9ICcnLFxyXG4gIE5vbmUgPSAnLW9wYWNpdHktMCcsXHJcbiAgTGlnaHQgPSAnJyxcclxuICBEYXJrID0gJy1vcGFjaXR5LTUwJ1xyXG59XHJcbiJdfQ==
|