@stiunb/unb-lib-components 18.0.30 → 18.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,40 +1,47 @@
1
- import { Component, Input, ViewChild } from '@angular/core';
2
- import { MatSidenav } from '@angular/material/sidenav';
1
+ import { Component, Input, ViewChild, inject } from '@angular/core';
2
+ import { BreakpointObserver } from '@angular/cdk/layout';
3
+ import { map, shareReplay } from 'rxjs/operators';
3
4
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/cdk/layout";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/material/toolbar";
7
- import * as i4 from "@angular/material/sidenav";
8
- import * as i5 from "@angular/material/icon";
9
- import * as i6 from "@angular/material/button";
10
- import * as i7 from "../unb-usuario/unb-usuario.component";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/material/toolbar";
7
+ import * as i3 from "@angular/material/sidenav";
8
+ import * as i4 from "@angular/material/icon";
9
+ import * as i5 from "@angular/material/button";
10
+ import * as i6 from "../unb-usuario/unb-usuario.component";
11
11
  export class UnbNavBarComponent {
12
- constructor(observer) {
13
- this.observer = observer;
14
- this.nomeSistema = "Nome do Sistema"; /* O nome do sistema */
15
- this.menuSize = 300; /** O tamanho do menu em px */
16
- this.widthToHideMenu = 800; /* O tamanho da tela ateh esconder o menu */
17
- this.contentBackgroundColor = '#f0f3f7'; /* A cor do Content */
18
- this.containerPadding = 10; /* O tamanho do padding to container que fica o content */
19
- this.isMobile = true;
12
+ constructor() {
13
+ // Dependências
14
+ this.breakpointObserver = inject(BreakpointObserver);
15
+ // Inputs de Configuração
16
+ this.nomeSistema = "Nome do Sistema";
17
+ this.nomeSistemaMobile = "UnB"; // input para nome curto
18
+ this.menuSize = 280; // Aumentei um pouco o padrão para ficar mais moderno
19
+ this.widthToHideMenu = 800;
20
+ this.contentBackgroundColor = '#f5f7fa'; // Cor mais suave e moderna
21
+ this.containerPadding = 16; // Mais respiro (padding) por padrão
20
22
  }
21
23
  ngOnInit() {
22
- this.observer.observe(['(max-width: ' + this.widthToHideMenu + 'px)']).subscribe((screenSize) => {
23
- if (screenSize.matches) {
24
- this.isMobile = true;
25
- }
26
- else {
27
- this.isMobile = false;
28
- }
29
- });
24
+ // Cria um observable que emite true/false baseado no tamanho da tela
25
+ this.isMobile$ = this.breakpointObserver
26
+ .observe(`(max-width: ${this.widthToHideMenu}px)`)
27
+ .pipe(map(result => result.matches), shareReplay());
30
28
  }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbNavBarComponent, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: UnbNavBarComponent, selector: "unb-nav-bar", inputs: { nomeSistema: "nomeSistema", menuSize: "menuSize", widthToHideMenu: "widthToHideMenu", contentBackgroundColor: "contentBackgroundColor", containerPadding: "containerPadding", oidcSecurityService: "oidcSecurityService" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true }], ngImport: i0, template: "<div class=\"example-container\" >\r\n <mat-toolbar class=\"example-toolbar\">\r\n <button mat-icon-button class=\"minifab\" type=\"button\" aria-label=\"Toggle sidenav\" color=\"accent\" (click)=\"snav.toggle()\"><mat-icon>menu</mat-icon></button> \r\n <img src=\"assets/img/unb_icon_branco.svg\" alt=\"\" style=\"width: 40px\">&nbsp;\r\n <span style=\"color: white;\">{{nomeSistema}}</span>\r\n <span class=\"spacer\"></span> \r\n <unb-usuario [oidcSecurityService]=\"oidcSecurityService\"></unb-usuario>\r\n </mat-toolbar>\r\n\r\n <mat-sidenav-container class=\"example-sidenav-container\" [ngStyle]=\"{'background-color': contentBackgroundColor}\" > \r\n <mat-sidenav #snav [mode]=\"isMobile ? 'over' : 'side'\" [opened]=\"isMobile ? 'false' : 'true'\" [style.max-width.px]=\"menuSize\" > \r\n <ng-content select=\"[menu]\"></ng-content> \r\n </mat-sidenav>\r\n\r\n <mat-sidenav-content [ngStyle]=\"{'padding.px': containerPadding}\">\r\n <ng-content select=\"[body]\"></ng-content> \r\n </mat-sidenav-content>\r\n\r\n </mat-sidenav-container>\r\n</div>", styles: [".example-container{display:flex;flex-direction:column;position:absolute;inset:0}.example-is-mobile .example-toolbar{position:fixed;z-index:2}.spacer{flex:1 1 auto}.example-sidenav-container{flex:1}.example-is-mobile .example-sidenav-container{flex:1 0 auto}.minifab{margin:5px;color:#fff;fill:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i4.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i4.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i4.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7.UnbUsuarioComponent, selector: "unb-usuario", inputs: ["oidcSecurityService"] }] }); }
29
+ handleMenuClick() {
30
+ // Se o modo for 'over', significa que estamos no mobile (ou tela pequena)
31
+ // cobrindo o conteúdo. Nesse caso, fechamos ao clicar.
32
+ if (this.sidenav.mode === 'over') {
33
+ this.sidenav.close();
34
+ }
35
+ }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbNavBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: UnbNavBarComponent, selector: "unb-nav-bar", inputs: { nomeSistema: "nomeSistema", nomeSistemaMobile: "nomeSistemaMobile", menuSize: "menuSize", widthToHideMenu: "widthToHideMenu", contentBackgroundColor: "contentBackgroundColor", containerPadding: "containerPadding", oidcSecurityService: "oidcSecurityService" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true }], ngImport: i0, template: "<div class=\"app-container\">\r\n\r\n <mat-toolbar class=\"app-toolbar\">\r\n\r\n <button mat-icon-button class=\"menu-button\" color=\"accent\" (click)=\"sidenav.toggle()\" aria-label=\"Toggle sidenav\">\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n\r\n <div class=\"branding\">\r\n <img src=\"assets/img/unb_icon_branco.svg\" alt=\"Logo UnB\" class=\"logo\">\r\n\r\n <span class=\"app-title\" *ngIf=\"{ isMobile: isMobile$ | async } as state\">\r\n {{ state.isMobile ? nomeSistemaMobile : nomeSistema }}\r\n </span>\r\n </div>\r\n\r\n <span class=\"spacer\"></span>\r\n\r\n <div class=\"actions-container\">\r\n <unb-usuario [oidcSecurityService]=\"oidcSecurityService\"></unb-usuario>\r\n </div>\r\n\r\n </mat-toolbar>\r\n\r\n <mat-sidenav-container class=\"sidenav-container\" [ngStyle]=\"{'background-color': contentBackgroundColor}\">\r\n\r\n <mat-sidenav #sidenav [mode]=\"(isMobile$ | async) ? 'over' : 'side'\" [opened]=\"!(isMobile$ | async)\"\r\n [style.width.px]=\"menuSize\" class=\"app-sidenav\">\r\n\r\n <div class=\"menu-wrapper\" (click)=\"handleMenuClick()\"> \r\n <ng-content select=\"[menu]\"></ng-content>\r\n </div>\r\n </mat-sidenav>\r\n\r\n <mat-sidenav-content [ngStyle]=\"{'padding.px': containerPadding}\">\r\n <ng-content select=\"[body]\"></ng-content>\r\n </mat-sidenav-content>\r\n\r\n </mat-sidenav-container>\r\n</div>", styles: [":host{--toolbar-height: 64px;--primary-color: #003366;--text-color: #ffffff}.app-container{display:flex;flex-direction:column;position:absolute;inset:0}.app-toolbar{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;height:var(--toolbar-height);padding:0 16px;box-shadow:0 2px 5px #0003;color:var(--text-color);background-color:var(--primary-color)}.branding{display:flex;align-items:center;gap:12px;overflow:hidden}.logo{height:32px;width:auto;flex-shrink:0}.app-title{font-weight:500;font-size:1.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.5px}.spacer{flex:1 1 auto}.actions-container{display:flex;align-items:center;justify-content:center;margin-left:16px;padding-left:16px;height:100%;position:relative}.actions-container:before{content:\"\";position:absolute;left:0;top:50%;transform:translateY(-50%);height:60%;width:1px;background-color:#ffffff4d}.sidenav-container{flex:1}@media (max-width: 600px){:host{--toolbar-height: 56px}.app-toolbar{padding:0 8px}.app-title{font-size:1rem}.actions-container{padding-left:8px;margin-left:8px;border:none}}.menu-wrapper{height:100%;overflow-y:auto}.menu-button{margin-right:8px;color:#fff!important}.menu-button mat-icon{font-size:28px;width:28px;height:28px;line-height:28px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i3.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i3.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i3.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i6.UnbUsuarioComponent, selector: "unb-usuario", inputs: ["oidcSecurityService"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
33
38
  }
34
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbNavBarComponent, decorators: [{
35
40
  type: Component,
36
- args: [{ selector: 'unb-nav-bar', template: "<div class=\"example-container\" >\r\n <mat-toolbar class=\"example-toolbar\">\r\n <button mat-icon-button class=\"minifab\" type=\"button\" aria-label=\"Toggle sidenav\" color=\"accent\" (click)=\"snav.toggle()\"><mat-icon>menu</mat-icon></button> \r\n <img src=\"assets/img/unb_icon_branco.svg\" alt=\"\" style=\"width: 40px\">&nbsp;\r\n <span style=\"color: white;\">{{nomeSistema}}</span>\r\n <span class=\"spacer\"></span> \r\n <unb-usuario [oidcSecurityService]=\"oidcSecurityService\"></unb-usuario>\r\n </mat-toolbar>\r\n\r\n <mat-sidenav-container class=\"example-sidenav-container\" [ngStyle]=\"{'background-color': contentBackgroundColor}\" > \r\n <mat-sidenav #snav [mode]=\"isMobile ? 'over' : 'side'\" [opened]=\"isMobile ? 'false' : 'true'\" [style.max-width.px]=\"menuSize\" > \r\n <ng-content select=\"[menu]\"></ng-content> \r\n </mat-sidenav>\r\n\r\n <mat-sidenav-content [ngStyle]=\"{'padding.px': containerPadding}\">\r\n <ng-content select=\"[body]\"></ng-content> \r\n </mat-sidenav-content>\r\n\r\n </mat-sidenav-container>\r\n</div>", styles: [".example-container{display:flex;flex-direction:column;position:absolute;inset:0}.example-is-mobile .example-toolbar{position:fixed;z-index:2}.spacer{flex:1 1 auto}.example-sidenav-container{flex:1}.example-is-mobile .example-sidenav-container{flex:1 0 auto}.minifab{margin:5px;color:#fff;fill:#fff}\n"] }]
37
- }], ctorParameters: () => [{ type: i1.BreakpointObserver }], propDecorators: { nomeSistema: [{
41
+ args: [{ selector: 'unb-nav-bar', template: "<div class=\"app-container\">\r\n\r\n <mat-toolbar class=\"app-toolbar\">\r\n\r\n <button mat-icon-button class=\"menu-button\" color=\"accent\" (click)=\"sidenav.toggle()\" aria-label=\"Toggle sidenav\">\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n\r\n <div class=\"branding\">\r\n <img src=\"assets/img/unb_icon_branco.svg\" alt=\"Logo UnB\" class=\"logo\">\r\n\r\n <span class=\"app-title\" *ngIf=\"{ isMobile: isMobile$ | async } as state\">\r\n {{ state.isMobile ? nomeSistemaMobile : nomeSistema }}\r\n </span>\r\n </div>\r\n\r\n <span class=\"spacer\"></span>\r\n\r\n <div class=\"actions-container\">\r\n <unb-usuario [oidcSecurityService]=\"oidcSecurityService\"></unb-usuario>\r\n </div>\r\n\r\n </mat-toolbar>\r\n\r\n <mat-sidenav-container class=\"sidenav-container\" [ngStyle]=\"{'background-color': contentBackgroundColor}\">\r\n\r\n <mat-sidenav #sidenav [mode]=\"(isMobile$ | async) ? 'over' : 'side'\" [opened]=\"!(isMobile$ | async)\"\r\n [style.width.px]=\"menuSize\" class=\"app-sidenav\">\r\n\r\n <div class=\"menu-wrapper\" (click)=\"handleMenuClick()\"> \r\n <ng-content select=\"[menu]\"></ng-content>\r\n </div>\r\n </mat-sidenav>\r\n\r\n <mat-sidenav-content [ngStyle]=\"{'padding.px': containerPadding}\">\r\n <ng-content select=\"[body]\"></ng-content>\r\n </mat-sidenav-content>\r\n\r\n </mat-sidenav-container>\r\n</div>", styles: [":host{--toolbar-height: 64px;--primary-color: #003366;--text-color: #ffffff}.app-container{display:flex;flex-direction:column;position:absolute;inset:0}.app-toolbar{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;height:var(--toolbar-height);padding:0 16px;box-shadow:0 2px 5px #0003;color:var(--text-color);background-color:var(--primary-color)}.branding{display:flex;align-items:center;gap:12px;overflow:hidden}.logo{height:32px;width:auto;flex-shrink:0}.app-title{font-weight:500;font-size:1.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.5px}.spacer{flex:1 1 auto}.actions-container{display:flex;align-items:center;justify-content:center;margin-left:16px;padding-left:16px;height:100%;position:relative}.actions-container:before{content:\"\";position:absolute;left:0;top:50%;transform:translateY(-50%);height:60%;width:1px;background-color:#ffffff4d}.sidenav-container{flex:1}@media (max-width: 600px){:host{--toolbar-height: 56px}.app-toolbar{padding:0 8px}.app-title{font-size:1rem}.actions-container{padding-left:8px;margin-left:8px;border:none}}.menu-wrapper{height:100%;overflow-y:auto}.menu-button{margin-right:8px;color:#fff!important}.menu-button mat-icon{font-size:28px;width:28px;height:28px;line-height:28px}\n"] }]
42
+ }], propDecorators: { nomeSistema: [{
43
+ type: Input
44
+ }], nomeSistemaMobile: [{
38
45
  type: Input
39
46
  }], menuSize: [{
40
47
  type: Input
@@ -48,6 +55,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
48
55
  type: Input
49
56
  }], sidenav: [{
50
57
  type: ViewChild,
51
- args: [MatSidenav]
58
+ args: ['sidenav']
52
59
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLW5hdi1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLW5hdi1iYXIvdW5iLW5hdi1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLW5hdi1iYXIvdW5iLW5hdi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0FBUXZELE1BQU0sT0FBTyxrQkFBa0I7SUFjN0IsWUFBb0IsUUFBNEI7UUFBNUIsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFadkMsZ0JBQVcsR0FBVSxpQkFBaUIsQ0FBQyxDQUFDLHVCQUF1QjtRQUMvRCxhQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsOEJBQThCO1FBQzlDLG9CQUFlLEdBQUcsR0FBRyxDQUFDLENBQUMsNENBQTRDO1FBQ25FLDJCQUFzQixHQUFHLFNBQVMsQ0FBQyxDQUFDLHNCQUFzQjtRQUMxRCxxQkFBZ0IsR0FBRyxFQUFFLENBQUMsQ0FBQywwREFBMEQ7UUFNMUYsYUFBUSxHQUFFLElBQUksQ0FBQztJQUVzQyxDQUFDO0lBRXRELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsR0FBRSxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDOUYsSUFBRyxVQUFVLENBQUMsT0FBTyxFQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN4QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXhCVSxrQkFBa0I7a0dBQWxCLGtCQUFrQixrVUFVbEIsVUFBVSxnRENwQnZCLGduQ0FtQk07OzJGRFRPLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxhQUFhO3VGQU1kLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdOLE9BQU87c0JBRE4sU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTaWRlbmF2IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XHJcbmltcG9ydCB7IE9pZGNTZWN1cml0eVNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLWF1dGgtb2lkYy1jbGllbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1bmItbmF2LWJhcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VuYi1uYXYtYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91bmItbmF2LWJhci5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFVuYk5hdkJhckNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIG5vbWVTaXN0ZW1hOiBzdHJpbmc9IFwiTm9tZSBkbyBTaXN0ZW1hXCI7IC8qIE8gbm9tZSBkbyBzaXN0ZW1hICovICBcclxuICBASW5wdXQoKSBtZW51U2l6ZSA9IDMwMDsgLyoqIE8gdGFtYW5obyBkbyBtZW51IGVtIHB4ICovXHJcbiAgQElucHV0KCkgd2lkdGhUb0hpZGVNZW51ID0gODAwOyAvKiBPIHRhbWFuaG8gZGEgdGVsYSBhdGVoIGVzY29uZGVyIG8gbWVudSAqL1xyXG4gIEBJbnB1dCgpIGNvbnRlbnRCYWNrZ3JvdW5kQ29sb3IgPSAnI2YwZjNmNyc7IC8qIEEgY29yIGRvIENvbnRlbnQgKi9cclxuICBASW5wdXQoKSBjb250YWluZXJQYWRkaW5nID0gMTA7IC8qIE8gdGFtYW5obyBkbyBwYWRkaW5nIHRvIGNvbnRhaW5lciBxdWUgZmljYSBvIGNvbnRlbnQgKi9cclxuICBcclxuICBASW5wdXQoKSBvaWRjU2VjdXJpdHlTZXJ2aWNlITpPaWRjU2VjdXJpdHlTZXJ2aWNlO1xyXG5cclxuICBAVmlld0NoaWxkKE1hdFNpZGVuYXYpXHJcbiAgc2lkZW5hdiE6IE1hdFNpZGVuYXY7XHJcbiAgaXNNb2JpbGU9IHRydWU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcikgeyAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZShbJyhtYXgtd2lkdGg6ICcrIHRoaXMud2lkdGhUb0hpZGVNZW51ICsgJ3B4KScgXSkuc3Vic2NyaWJlKChzY3JlZW5TaXplKSA9PiB7XHJcbiAgICAgIGlmKHNjcmVlblNpemUubWF0Y2hlcyl7XHJcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJleGFtcGxlLWNvbnRhaW5lclwiID5cclxuICA8bWF0LXRvb2xiYXIgY2xhc3M9XCJleGFtcGxlLXRvb2xiYXJcIj5cclxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwibWluaWZhYlwiIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiVG9nZ2xlIHNpZGVuYXZcIiBjb2xvcj1cImFjY2VudFwiICAoY2xpY2spPVwic25hdi50b2dnbGUoKVwiPjxtYXQtaWNvbj5tZW51PC9tYXQtaWNvbj48L2J1dHRvbj4gICAgXHJcbiAgICA8aW1nIHNyYz1cImFzc2V0cy9pbWcvdW5iX2ljb25fYnJhbmNvLnN2Z1wiIGFsdD1cIlwiIHN0eWxlPVwid2lkdGg6IDQwcHhcIj4mbmJzcDtcclxuICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6IHdoaXRlO1wiPnt7bm9tZVNpc3RlbWF9fTwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwic3BhY2VyXCI+PC9zcGFuPiAgICAgXHJcbiAgICA8dW5iLXVzdWFyaW8gW29pZGNTZWN1cml0eVNlcnZpY2VdPVwib2lkY1NlY3VyaXR5U2VydmljZVwiPjwvdW5iLXVzdWFyaW8+XHJcbiAgPC9tYXQtdG9vbGJhcj5cclxuXHJcbiAgPG1hdC1zaWRlbmF2LWNvbnRhaW5lciBjbGFzcz1cImV4YW1wbGUtc2lkZW5hdi1jb250YWluZXJcIiAgW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kLWNvbG9yJzogY29udGVudEJhY2tncm91bmRDb2xvcn1cIiA+ICBcclxuICAgIDxtYXQtc2lkZW5hdiAjc25hdiBbbW9kZV09XCJpc01vYmlsZSA/ICdvdmVyJyA6ICdzaWRlJ1wiIFtvcGVuZWRdPVwiaXNNb2JpbGUgPyAnZmFsc2UnIDogJ3RydWUnXCIgW3N0eWxlLm1heC13aWR0aC5weF09XCJtZW51U2l6ZVwiID4gICAgICAgICAgICAgICAgXHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttZW51XVwiPjwvbmctY29udGVudD4gICAgICBcclxuICAgIDwvbWF0LXNpZGVuYXY+XHJcblxyXG4gICAgPG1hdC1zaWRlbmF2LWNvbnRlbnQgIFtuZ1N0eWxlXT1cInsncGFkZGluZy5weCc6IGNvbnRhaW5lclBhZGRpbmd9XCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltib2R5XVwiPjwvbmctY29udGVudD4gICAgICBcclxuICAgIDwvbWF0LXNpZGVuYXYtY29udGVudD5cclxuXHJcbiAgPC9tYXQtc2lkZW5hdi1jb250YWluZXI+XHJcbjwvZGl2PiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLW5hdi1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLW5hdi1iYXIvdW5iLW5hdi1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLW5hdi1iYXIvdW5iLW5hdi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVFsRCxNQUFNLE9BQU8sa0JBQWtCO0lBTC9CO1FBT0UsZUFBZTtRQUNQLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXhELHlCQUF5QjtRQUNoQixnQkFBVyxHQUFXLGlCQUFpQixDQUFDO1FBQ3hDLHNCQUFpQixHQUFXLEtBQUssQ0FBQyxDQUFDLHdCQUF3QjtRQUMzRCxhQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMscURBQXFEO1FBQ3JFLG9CQUFlLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLDJCQUFzQixHQUFHLFNBQVMsQ0FBQyxDQUFDLDJCQUEyQjtRQUMvRCxxQkFBZ0IsR0FBRyxFQUFFLENBQUMsQ0FBQyxvQ0FBb0M7S0EyQnJFO0lBakJDLFFBQVE7UUFDTixxRUFBcUU7UUFDckUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCO2FBQ3JDLE9BQU8sQ0FBQyxlQUFlLElBQUksQ0FBQyxlQUFlLEtBQUssQ0FBQzthQUNqRCxJQUFJLENBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUM3QixXQUFXLEVBQUUsQ0FDZCxDQUFDO0lBQ04sQ0FBQztJQUVELGVBQWU7UUFDYiwwRUFBMEU7UUFDMUUsdURBQXVEO1FBQ3ZELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQzs4R0FyQ1Usa0JBQWtCO2tHQUFsQixrQkFBa0IscWFDWi9CLDI2Q0F1Q007OzJGRDNCTyxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsYUFBYTs4QkFVZCxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR2dCLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XHJcbmltcG9ydCB7IE1hdFNpZGVuYXYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcclxuaW1wb3J0IHsgT2lkY1NlY3VyaXR5U2VydmljZSB9IGZyb20gJ2FuZ3VsYXItYXV0aC1vaWRjLWNsaWVudCc7XHJcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndW5iLW5hdi1iYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91bmItbmF2LWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdW5iLW5hdi1iYXIuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVbmJOYXZCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIFxyXG4gIC8vIERlcGVuZMOqbmNpYXNcclxuICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlciA9IGluamVjdChCcmVha3BvaW50T2JzZXJ2ZXIpO1xyXG5cclxuICAvLyBJbnB1dHMgZGUgQ29uZmlndXJhw6fDo29cclxuICBASW5wdXQoKSBub21lU2lzdGVtYTogc3RyaW5nID0gXCJOb21lIGRvIFNpc3RlbWFcIjtcclxuICBASW5wdXQoKSBub21lU2lzdGVtYU1vYmlsZTogc3RyaW5nID0gXCJVbkJcIjsgLy8gaW5wdXQgcGFyYSBub21lIGN1cnRvXHJcbiAgQElucHV0KCkgbWVudVNpemUgPSAyODA7IC8vIEF1bWVudGVpIHVtIHBvdWNvIG8gcGFkcsOjbyBwYXJhIGZpY2FyIG1haXMgbW9kZXJub1xyXG4gIEBJbnB1dCgpIHdpZHRoVG9IaWRlTWVudSA9IDgwMDtcclxuICBASW5wdXQoKSBjb250ZW50QmFja2dyb3VuZENvbG9yID0gJyNmNWY3ZmEnOyAvLyBDb3IgbWFpcyBzdWF2ZSBlIG1vZGVybmFcclxuICBASW5wdXQoKSBjb250YWluZXJQYWRkaW5nID0gMTY7IC8vIE1haXMgcmVzcGlybyAocGFkZGluZykgcG9yIHBhZHLDo29cclxuICBcclxuICBASW5wdXQoKSBvaWRjU2VjdXJpdHlTZXJ2aWNlITogT2lkY1NlY3VyaXR5U2VydmljZTtcclxuXHJcbiAgLy8gQWNlc3NvIGFvIGNvbXBvbmVudGUgdmlzdWFsXHJcbiAgQFZpZXdDaGlsZCgnc2lkZW5hdicpIHNpZGVuYXYhOiBNYXRTaWRlbmF2O1xyXG5cclxuICAvLyBPYnNlcnZhYmxlIHBhcmEgY29udHJvbGFyIG8gZXN0YWRvIG1vYmlsZSBkZSBmb3JtYSByZWF0aXZhXHJcbiAgaXNNb2JpbGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgdW5kZWZpbmVkO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vIENyaWEgdW0gb2JzZXJ2YWJsZSBxdWUgZW1pdGUgdHJ1ZS9mYWxzZSBiYXNlYWRvIG5vIHRhbWFuaG8gZGEgdGVsYVxyXG4gICAgdGhpcy5pc01vYmlsZSQgPSB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclxyXG4gICAgICAub2JzZXJ2ZShgKG1heC13aWR0aDogJHt0aGlzLndpZHRoVG9IaWRlTWVudX1weClgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAocmVzdWx0ID0+IHJlc3VsdC5tYXRjaGVzKSxcclxuICAgICAgICBzaGFyZVJlcGxheSgpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVNZW51Q2xpY2soKSB7XHJcbiAgICAvLyBTZSBvIG1vZG8gZm9yICdvdmVyJywgc2lnbmlmaWNhIHF1ZSBlc3RhbW9zIG5vIG1vYmlsZSAob3UgdGVsYSBwZXF1ZW5hKVxyXG4gICAgLy8gY29icmluZG8gbyBjb250ZcO6ZG8uIE5lc3NlIGNhc28sIGZlY2hhbW9zIGFvIGNsaWNhci5cclxuICAgIGlmICh0aGlzLnNpZGVuYXYubW9kZSA9PT0gJ292ZXInKSB7XHJcbiAgICAgIHRoaXMuc2lkZW5hdi5jbG9zZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufSIsIjxkaXYgY2xhc3M9XCJhcHAtY29udGFpbmVyXCI+XHJcblxyXG4gIDxtYXQtdG9vbGJhciBjbGFzcz1cImFwcC10b29sYmFyXCI+XHJcblxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJtZW51LWJ1dHRvblwiIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cInNpZGVuYXYudG9nZ2xlKClcIiBhcmlhLWxhYmVsPVwiVG9nZ2xlIHNpZGVuYXZcIj5cclxuICAgICAgPG1hdC1pY29uPm1lbnU8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImJyYW5kaW5nXCI+XHJcbiAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ltZy91bmJfaWNvbl9icmFuY28uc3ZnXCIgYWx0PVwiTG9nbyBVbkJcIiBjbGFzcz1cImxvZ29cIj5cclxuXHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLXRpdGxlXCIgKm5nSWY9XCJ7IGlzTW9iaWxlOiBpc01vYmlsZSQgfCBhc3luYyB9IGFzIHN0YXRlXCI+XHJcbiAgICAgICAge3sgc3RhdGUuaXNNb2JpbGUgPyBub21lU2lzdGVtYU1vYmlsZSA6IG5vbWVTaXN0ZW1hIH19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxzcGFuIGNsYXNzPVwic3BhY2VyXCI+PC9zcGFuPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLWNvbnRhaW5lclwiPlxyXG4gICAgICA8dW5iLXVzdWFyaW8gW29pZGNTZWN1cml0eVNlcnZpY2VdPVwib2lkY1NlY3VyaXR5U2VydmljZVwiPjwvdW5iLXVzdWFyaW8+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9tYXQtdG9vbGJhcj5cclxuXHJcbiAgPG1hdC1zaWRlbmF2LWNvbnRhaW5lciBjbGFzcz1cInNpZGVuYXYtY29udGFpbmVyXCIgW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kLWNvbG9yJzogY29udGVudEJhY2tncm91bmRDb2xvcn1cIj5cclxuXHJcbiAgICA8bWF0LXNpZGVuYXYgI3NpZGVuYXYgW21vZGVdPVwiKGlzTW9iaWxlJCB8IGFzeW5jKSA/ICdvdmVyJyA6ICdzaWRlJ1wiIFtvcGVuZWRdPVwiIShpc01vYmlsZSQgfCBhc3luYylcIlxyXG4gICAgICBbc3R5bGUud2lkdGgucHhdPVwibWVudVNpemVcIiBjbGFzcz1cImFwcC1zaWRlbmF2XCI+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWVudS13cmFwcGVyXCIgKGNsaWNrKT1cImhhbmRsZU1lbnVDbGljaygpXCI+IFxyXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttZW51XVwiPjwvbmctY29udGVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1zaWRlbmF2PlxyXG5cclxuICAgIDxtYXQtc2lkZW5hdi1jb250ZW50IFtuZ1N0eWxlXT1cInsncGFkZGluZy5weCc6IGNvbnRhaW5lclBhZGRpbmd9XCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltib2R5XVwiPjwvbmctY29udGVudD5cclxuICAgIDwvbWF0LXNpZGVuYXYtY29udGVudD5cclxuXHJcbiAgPC9tYXQtc2lkZW5hdi1jb250YWluZXI+XHJcbjwvZGl2PiJdfQ==
@@ -69,6 +69,7 @@ export class UnbPessoaCrudModalComponent {
69
69
  this.pessoaEmitted.emit(pessoa);
70
70
  }
71
71
  else if (this.incluirBotaoNovo) {
72
+ this.openSnackBar('Pessoa não encontrada. Clique em “Incluir Nova Pessoa” para realizar o cadastro.');
72
73
  this.mostrarBotaoNovo = true;
73
74
  }
74
75
  }
@@ -141,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
141
142
  }], pessoaEmitted: [{
142
143
  type: Output
143
144
  }] } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLXBlc3NvYS1jcnVkLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuYi1saWItY29tcG9uZW50cy9zcmMvbGliL3VuYi1wZXNzb2EvdW5iLXBlc3NvYS1jcnVkLW1vZGFsL3VuYi1wZXNzb2EtY3J1ZC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmItbGliLWNvbXBvbmVudHMvc3JjL2xpYi91bmItcGVzc29hL3VuYi1wZXNzb2EtY3J1ZC1tb2RhbC91bmItcGVzc29hLWNydWQtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFJNUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNERBQTRELENBQUM7Ozs7Ozs7Ozs7QUFFMUc7Ozs7O0VBS0U7QUFPRixNQUFNLE9BQU8sMkJBQTJCO0lBY3RDLFlBQW9CLFFBQXFCLEVBQVUsYUFBK0IsRUFBVSxZQUFnQyxFQUFTLE1BQWlCO1FBQWxJLGFBQVEsR0FBUixRQUFRLENBQWE7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBWnRKLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsNkJBQTZCO1FBQ0YsbUJBQWMsR0FBNEIsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQzNELHFCQUFnQixHQUFHLElBQUksQ0FBQyxDQUFDLDhD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LElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDL0IsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXBIVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixnSkFNbEIsZ0JBQWdCLHVFQUNoQixnQkFBZ0IsMEVDN0J0QyxpMUNBa0NNOzsyRkRaTywyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0UsMkJBQTJCLGNBQ3pCLEtBQUs7d0tBU1UsY0FBYztzQkFBeEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2UsZ0JBQWdCO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLG1CQUFtQjtzQkFBMUQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDNUIsYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBVbmJQZXNzb2FNb2RlbCB9IGZyb20gJy4uL3VuYi1wZXNzb2EtbW9kZWxzL3VuYi1wZXNzb2EubW9kZWwnO1xyXG5pbXBvcnQgeyBVbkJQZXNzb2FTZXJ2aWNlIH0gZnJvbSAnLi4vdW5iLXBlc3NvYS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRm9ybUNvbmZpZywgVW5iUGVzc29hUGVzcXVpc2FDb25maWcgfSBmcm9tICcuLi91bmItcGVzc29hLW1vZGVscy91bmItcGVzc29hLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IFVuYk1lbnNhZ2VtU2VydmljZSB9IGZyb20gJy4uLy4uL3VuYi1tZW5zYWdlbS91bmItbWVuc2FnZW0uc2VydmljZSc7XHJcbmltcG9ydCB7IFVuYlBlc3NvYUZvcm1Db21wb25lbnQgfSBmcm9tICcuLi91bmItcGVzc29hLWZvcm0vdW5iLXBlc3NvYS1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFVuYlBlc3NvYUZvcm1EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi91bmItcGVzc29hLWZvcm0tZGlhbG9nL3VuYi1wZXNzb2EtZm9ybS1kaWFsb2cuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBFc3NlIMOpIHVtIGNvbXBvbmV0bmUgV3JhcHBlciB1dGlsaXTDoXJpby4gRWxlIGVuY2Fwc3VsYSBhIGxvZ2ljYSBkZSBwcm9jdXJhciBlIHNlIG5hbyBhY2hhciBpbmljaWFyIG8gZm9ybXVsYXJpbyBkZSBjYWRhc3RybyBlbSB1bSBtb2RhbC4gXHJcbiAqIFRhbWLDqW0sIHNlIGFjaGFyLCBlbGUgcGVybWl0ZSBhbHRlcmFyIGEgcGVzc29hIGVuY29udHJhZGEuXHJcbiAqIE8gU0dJIHVzYSBwYXJhIGNhZGFzdHJvIGRlIElucXVpbGlubyBubyBmb3JtdWxhcmlvLiBMYSB0ZW0gYSBwZXNxdWlzYSBkZSBQZXNzb2EsIHNlIG5hbyBhY2hhciwgYWJyZSBvIGZvcm11bGFyaW8gZGUgY2FkYXN0cm8gZW0gbW9kYWwuIEFzc2ltLCBuYW8gcHJlY2lzYSBpciBlbSBvdXRyYSB0ZWxhIHByYSBjYWRhc3RyYXJcclxuICogRWggcG9zc2l2ZWwgY29uZmlndXJhciBzZSBxdWVyIG1vc3RyYXIgbyBib3RhbyBkZSBOb3ZvIChzZSBuYW8gYWNoYXIpIGUgQWx0ZXJhciAoc2UgYWNoYXIpLiBObyBTR0ksIHBvciBleGVtcGxvIGV1IHNvaCBkZWl4byBpbmNsdWlyIG5vdm8sIHBxIG5hbyBmYXogc2VudGlkbyBhbHRlcmFyIGEgcGVzc29hIG5vIG1laW8gZG8gY2FkYXN0cm8gZG8gaW5xdWlsaW5vLlxyXG4qL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi11bmItcGVzc29hLWNydWQtbW9kYWwnLFxyXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91bmItcGVzc29hLWNydWQtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi91bmItcGVzc29hLWNydWQtbW9kYWwuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFVuYlBlc3NvYUNydWRNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAvLyBDb25maWd1cmHDp8OjbyBkbyBjb21wb25lbnRlXHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcGVzcXVpc2FDb25maWc6IFVuYlBlc3NvYVBlc3F1aXNhQ29uZmlnID0gbmV3IFVuYlBlc3NvYVBlc3F1aXNhQ29uZmlnKCk7XHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGluY2x1aXJCb3Rhb05vdm8gPSB0cnVlOyAvLyBzZSBwZXNxdWlzb3UgZSBuYW8gYWNob3UsIG1vc3RyYSBib3RhbyBub3ZvXHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGluY2x1aXJCb3Rhb0FsdGVyYXIgPSB0cnVlOyAvLyBzZSBwZXNxdWlzb3UgZSBhY2hvdSwgbW9zdHJhIGJvdGFvIGFsdGVyYXJcclxuICBAT3V0cHV0KCkgcGVzc29hRW1pdHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VW5iUGVzc29hTW9kZWw+KCk7XHJcblxyXG4gIHBlc3NvYVNlbGVjaW9uYWRhID0gbmV3IFVuYlBlc3NvYU1vZGVsKCk7XHJcbiAgbW9zdHJhckJvdGFvTm92byA9IGZhbHNlO1xyXG4gIGZvcm1Db25maWcgPSBuZXcgVW5iUGVzc29hRm9ybUNvbmZpZygpOyAvLyBvIGZvcm1DT25maWcgYSBnZW50ZSBtb250YSBjb25mb3JtZSBvIHBlc3F1aXNhQ29uZmlnXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLCBwcml2YXRlIHBlc3NvYVNlcnZpY2U6IFVuQlBlc3NvYVNlcnZpY2UsIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBVbmJNZW5zYWdlbVNlcnZpY2UsIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZykge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucGVzcXVpc2FDb25maWcudG9rZW4pIHtcclxuICAgICAgdGhpcy5wZXNzb2FTZXJ2aWNlLnNldFRva2VuKHRoaXMucGVzcXVpc2FDb25maWcudG9rZW4pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnBlc3F1aXNhQ29uZmlnLmJhY2tlbmRVUkwpIHtcclxuICAgICAgdGhpcy5wZXNzb2FTZXJ2aWNlLnNldEJhY2tlbmRVcmwodGhpcy5wZXNxdWlzYUNvbmZpZy5iYWNrZW5kVVJMKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3BlblNuYWNrQmFyKCdCYWNrZW5kIFVSTCBuw6NvIGluZm9ybWFkYSBuYSBjb25maWd1cmHDp8OjbyBkbyBjb21wb25lbnRlIFVuYlBlc3NvYUNydWRDb21wb25lbnQhJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mb3JtQ29uZmlnID0gbmV3IFVuYlBlc3NvYUZvcm1Db25maWcoKTtcclxuICAgIHRoaXMuZm9ybUNvbmZpZy5wZXNzb2EgPSB0aGlzLnBlc3NvYVNlbGVjaW9uYWRhO1xyXG4gICAgdGhpcy5mb3JtQ29uZmlnLmJhY2tlbmRVUkwgPSB0aGlzLnBlc3F1aXNhQ29uZmlnLmJhY2tlbmRVUkw7XHJcbiAgICB0aGlzLmZvcm1Db25maWcudG9rZW4gPSB0aGlzLnBlc3F1aXNhQ29uZmlnLnRva2VuO1xyXG4gIH1cclxuXHJcbiAgcGVzc29hUGVzcXVpc2FSZWNlYmlkYShwZXNzb2E6IFVuYlBlc3NvYU1vZGVsKSB7ICAgIFxyXG4gICAgLy8gMS4gVmVyaWZpY2Egc2UgYSBwZXNzb2Egw6kgbnVsYSBvdSBzZSDDqSB1bSBvYmpldG8gXCJ2YXppb1wiIChzZW0gSUQgZSBzZW0gZG9jdW1lbnRvcylcclxuICAgIGNvbnN0IGlzVmF6aW8gPSAhcGVzc29hIHx8IChcclxuICAgICAgIXBlc3NvYS5jb2RpZ29QZXNzb2EgJiYgICAvLyBOw6NvIHRlbSBJRFxyXG4gICAgICAhcGVzc29hLmNwZiAmJiAgICAgICAgICAgIC8vIE7Do28gdGVtIENQRlxyXG4gICAgICAhcGVzc29hLmNucGogJiYgICAgICAgICAgIC8vIE7Do28gdGVtIENOUEpcclxuICAgICAgIXBlc3NvYS5wYXNzYXBvcnRlICAgICAgICAvLyBOw6NvIHRlbSBQYXNzYXBvcnRlXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChpc1ZhemlvKSB7XHJcbiAgICAgIC8vIFNlIGZvciB2YXppbywgbGltcGFtb3MgYSBzZWxlw6fDo28gcGFyYSBlc2NvbmRlciBvIGZvcm11bMOhcmlvXHJcbiAgICAgIC8vIChPICpuZ0lmPVwicGVzc29hU2VsZWNpb25hZGFcIiBubyBIVE1MIHZhaSByZW1vdmVyIG8gY29tcG9uZW50ZSBkYSB0ZWxhKVxyXG4gICAgICB0aGlzLnBlc3NvYVNlbGVjaW9uYWRhID0gbmV3IFVuYlBlc3NvYU1vZGVsKCk7IC8vIG91IHVuZGVmaW5lZCwgZGVwZW5kZW5kbyBkYSB0aXBhZ2VtXHJcbiAgICAgIHRoaXMubW9zdHJhckJvdGFvTm92byA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gU2UgdGl2ZXIgYWxndW0gZGFkbyAoQ1BGIGRpZ2l0YWRvIG91IHBlc3NvYSBlbmNvbnRyYWRhKSwgYXR1YWxpemFcclxuICAgICAgdGhpcy5wZXNzb2FTZWxlY2lvbmFkYSA9IHBlc3NvYTtcclxuICAgICAgaWYgKHRoaXMucGVzc29hU2VsZWNpb25hZGEuY29kaWdvUGVzc29hKSB7ICAgICAgXHJcbiAgICAgICAgLy8gam9nYSBwcmEgY2ltYSBwcmEgZmFsYXIgcXVlIHVtYSBwZXNzb2EgZm9pIGVuY29udHJhZGFcclxuICAgICAgICB0aGlzLnBlc3NvYUVtaXR0ZWQuZW1pdChwZXNzb2EpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaW5jbHVpckJvdGFvTm92bykge1xyXG4gICAgICAgIHRoaXMubW9zdHJhckJvdGFvTm92byA9IHRydWU7ICAgICAgICBcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIDIuIEF0dWFsaXphIGEgY29uZmlndXJhw6fDo28gZG8gZm9ybXVsw6FyaW9cclxuICAgIC8vIEltcG9ydGFudGU6IFPDsyB0ZW50YSBhY2Vzc2FyICdwZXNzb2EnIHNlIGZvcm1Db25maWcgZXhpc3RpclxyXG4gICAgaWYgKHRoaXMuZm9ybUNvbmZpZykge1xyXG4gICAgICAvLyBVc2Ftb3MgbyBzcHJlYWQgb3BlcmF0b3IgKC4uLikgcGFyYSBmb3LDp2FyIG8gQW5ndWxhciBhIGRldGVjdGFyIGEgbXVkYW7Dp2EsXHJcbiAgICAgIC8vIGNhc28gbyBjb21wb25lbnRlIGZpbGhvIHVzZSBuZ09uQ2hhbmdlc1xyXG4gICAgICB0aGlzLmZvcm1Db25maWcgPSB7XHJcbiAgICAgICAgLi4udGhpcy5mb3JtQ29uZmlnLFxyXG4gICAgICAgIHBlc3NvYTogdGhpcy5wZXNzb2FTZWxlY2lvbmFkYSB8fCBuZXcgVW5iUGVzc29hTW9kZWwoKSAvLyBFdml0YSBwYXNzYXIgbnVsbCBwcm8gZm9ybSBzZSBuw6NvIHF1aXNlclxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGltcGFyU2VsZWNhbygpIHtcclxuICAgIHRoaXMucGVzc29hU2VsZWNpb25hZGEgPSBuZXcgVW5iUGVzc29hTW9kZWwoKTsgLy8gb3UgbmV3IFVuYlBlc3NvYU1vZGVsKClcclxuICAgIC8vIFRhbHZleiBwcmVjaXNlIGF2aXNhciBvIGNvbXBvbmVudGUgZmlsaG8gcGFyYSBsaW1wYXIgbyBpbnB1dCB0YW1iw6ltXHJcbiAgfVxyXG5cclxuICBnZXREb2N1bWVudG9Gb3JtYXRhZG8ocGVzc29hOiBVbmJQZXNzb2FNb2RlbCkge1xyXG4gICAgaWYgKHBlc3NvYS5jcGYgJiYgcGVzc29hLmNwZi50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgIHJldHVybiBwZXNzb2EuY3BmO1xyXG4gICAgfSBlbHNlIGlmIChwZXNzb2EuY25waiAmJiBwZXNzb2EuY25wai50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgIHJldHVybiBwZXNzb2EuY25wajtcclxuICAgIH0gZWxzZSBpZiAocGVzc29hLnBhc3NhcG9ydGUgJiYgcGVzc29hLnBhc3NhcG9ydGUudHJpbSgpICE9PSAnJykge1xyXG4gICAgICByZXR1cm4gcGVzc29hLnBhc3NhcG9ydGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuTW9kYWwoKSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFVuYlBlc3NvYUZvcm1EaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgLy8gMS4gRGVmaW5hIHVtIHBhaW5lbCBkZSBjbGFzc2UgcGFyYSBjb250cm9sYXIgdHVkbyBubyBDU1NcclxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wZXNzb2EtZnVsbHNjcmVlbicsIFxyXG4gICAgICBcclxuICAgICAgLy8gMi4gTGFyZ3VyYSBwYWRyw6NvIHBhcmEgRGVza3RvcCAobyBDU1MgdmFpIHNvYnJlc2NyZXZlciBubyBtb2JpbGUpXHJcbiAgICAgIHdpZHRoOiAnOTB2dycsIFxyXG4gICAgICBtYXhXaWR0aDogJzEyMDBweCcsIC8vIFRyYXZhIHBhcmEgbsOjbyBmaWNhciBnaWdhbnRlIGVtIG1vbml0b3JlcyB1bHRyYXdpZGVcclxuICAgICAgXHJcbiAgICAgIC8vIDMuIEFsdHVyYSBhdXRvbcOhdGljYSBvdSBtw6F4aW1hIChDU1MgY29udHJvbGEgbyBlc3RpY2FyKVxyXG4gICAgICBtYXhIZWlnaHQ6ICc5NXZoJywgXHJcblxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgY29uZmlnOiB0aGlzLmZvcm1Db25maWdcclxuICAgICAgfSxcclxuICAgICAgYXV0b0ZvY3VzOiAnZmlyc3QtdGFiYmFibGUnXHJcbiAgICB9KTtcclxuXHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHBlc3NvYVNhbHZhOiBVbmJQZXNzb2FNb2RlbCB8IG51bGwpID0+IHtcclxuICAgICAgaWYgKHBlc3NvYVNhbHZhPy5jb2RpZ29QZXNzb2EpIHtcclxuICAgICAgICB0aGlzLnBlc3NvYUVtaXR0ZWQuZW1pdChwZXNzb2FTYWx2YSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3BlblNuYWNrQmFyKG1lc3NhZ2U6IHN0cmluZykge1xyXG4gICAgdGhpcy5zbmFja0Jhci5vcGVuKG1lc3NhZ2UsICd4Jywge1xyXG4gICAgICBkdXJhdGlvbjogNTAwMCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNlYXJjaC13cmFwcGVyXCIgW2NsYXNzLmRpc2FibGVkLXdyYXBwZXJdPVwiaXNMb2FkaW5nXCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXQtYXJlYVwiPlxyXG4gICAgPGxpYi11bmItcGVzc29hLXBlc3F1aXNhciBcclxuICAgICAgICBbY29uZmlnXT1cInBlc3F1aXNhQ29uZmlnXCIgXHJcbiAgICAgICAgKHBlc3NvYUVtaXR0ZWQpPVwicGVzc29hUGVzcXVpc2FSZWNlYmlkYSgkZXZlbnQpXCI+XHJcbiAgICA8L2xpYi11bmItcGVzc29hLXBlc3F1aXNhcj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInNlYXJjaC1idXR0b24tYXJlYVwiPlxyXG5cclxuICAgIDxidXR0b24gKm5nSWY9XCJpbmNsdWlyQm90YW9Ob3ZvICYmIG1vc3RyYXJCb3Rhb05vdm8gJiYgIXBlc3NvYVNlbGVjaW9uYWRhLmNvZGlnb1Blc3NvYVwiIFxyXG4gICAgICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b24gXHJcbiAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Nb2RhbCgpXCIgXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiBcclxuICAgICAgICAgICAgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwO1wiPlxyXG4gICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj4gSW5jbHVpciBOb3ZhIFBlc3NvYVxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cImluY2x1aXJCb3Rhb0FsdGVyYXIgJiYgcGVzc29hU2VsZWNpb25hZGEuY29kaWdvUGVzc29hXCIgY2xhc3M9XCJtaW5pLWNhcmQtc2VsZWN0ZWRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYXZhdGFyXCI+PG1hdC1pY29uPnBlcnNvbjwvbWF0LWljb24+PC9kaXY+XHJcbiAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1pbmZvXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1uYW1lXCI+e3sgcGVzc29hU2VsZWNpb25hZGEubm9tZSB9fTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZG9jXCI+e3sgZ2V0RG9jdW1lbnRvRm9ybWF0YWRvKHBlc3NvYVNlbGVjaW9uYWRhKSB9fTwvZGl2PlxyXG4gICAgICAgPC9kaXY+XHJcbiAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1hY3Rpb25zXCI+XHJcbiAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvcGVuTW9kYWwoKVwiIHR5cGU9XCJidXR0b25cIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPiBFZGl0YXJcclxuICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLXBlc3NvYS1jcnVkLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuYi1saWItY29tcG9uZW50cy9zcmMvbGliL3VuYi1wZXNzb2EvdW5iLXBlc3NvYS1jcnVkLW1vZGFsL3VuYi1wZXNzb2EtY3J1ZC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmItbGliLWNvbXBvbmVudHMvc3JjL2xpYi91bmItcGVzc29hL3VuYi1wZXNzb2EtY3J1ZC1tb2RhbC91bmItcGVzc29hLWNydWQtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFJNUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNERBQTRELENBQUM7Ozs7Ozs7Ozs7QUFFMUc7Ozs7O0VBS0U7QUFPRixNQUFNLE9BQU8sMkJBQTJCO0lBY3RDLFlBQW9CLFFBQXFCLEVBQVUsYUFBK0IsRUFBVSxZQUFnQyxFQUFTLE1BQWlCO1FBQWxJLGFBQVEsR0FBUixRQUFRLENBQWE7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBWnRKLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsNkJBQTZCO1FBQ0YsbUJBQWMsR0FBNEIsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQzNELHFCQUFnQixHQUFHLElBQUksQ0FBQyxDQUFDLDhD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QUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQWU7UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtZQUMvQixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBckhVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGdKQU1sQixnQkFBZ0IsdUVBQ2hCLGdCQUFnQiwwRUM3QnRDLGkxQ0FrQ007OzJGRFpPLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFDRSwyQkFBMkIsY0FDekIsS0FBSzt3S0FTVSxjQUFjO3NCQUF4QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDZSxnQkFBZ0I7c0JBQXZELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsbUJBQW1CO3NCQUExRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUM1QixhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbmltcG9ydCB7IFVuYlBlc3NvYU1vZGVsIH0gZnJvbSAnLi4vdW5iLXBlc3NvYS1tb2RlbHMvdW5iLXBlc3NvYS5tb2RlbCc7XHJcbmltcG9ydCB7IFVuQlBlc3NvYVNlcnZpY2UgfSBmcm9tICcuLi91bmItcGVzc29hLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVbmJQZXNzb2FGb3JtQ29uZmlnLCBVbmJQZXNzb2FQZXNxdWlzYUNvbmZpZyB9IGZyb20gJy4uL3VuYi1wZXNzb2EtbW9kZWxzL3VuYi1wZXNzb2EtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgVW5iTWVuc2FnZW1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdW5iLW1lbnNhZ2VtL3VuYi1tZW5zYWdlbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL3VuYi1wZXNzb2EtZm9ybS91bmItcGVzc29hLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRm9ybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL3VuYi1wZXNzb2EtZm9ybS1kaWFsb2cvdW5iLXBlc3NvYS1mb3JtLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEVzc2Ugw6kgdW0gY29tcG9uZXRuZSBXcmFwcGVyIHV0aWxpdMOhcmlvLiBFbGUgZW5jYXBzdWxhIGEgbG9naWNhIGRlIHByb2N1cmFyIGUgc2UgbmFvIGFjaGFyIGluaWNpYXIgbyBmb3JtdWxhcmlvIGRlIGNhZGFzdHJvIGVtIHVtIG1vZGFsLiBcclxuICogVGFtYsOpbSwgc2UgYWNoYXIsIGVsZSBwZXJtaXRlIGFsdGVyYXIgYSBwZXNzb2EgZW5jb250cmFkYS5cclxuICogTyBTR0kgdXNhIHBhcmEgY2FkYXN0cm8gZGUgSW5xdWlsaW5vIG5vIGZvcm11bGFyaW8uIExhIHRlbSBhIHBlc3F1aXNhIGRlIFBlc3NvYSwgc2UgbmFvIGFjaGFyLCBhYnJlIG8gZm9ybXVsYXJpbyBkZSBjYWRhc3RybyBlbSBtb2RhbC4gQXNzaW0sIG5hbyBwcmVjaXNhIGlyIGVtIG91dHJhIHRlbGEgcHJhIGNhZGFzdHJhclxyXG4gKiBFaCBwb3NzaXZlbCBjb25maWd1cmFyIHNlIHF1ZXIgbW9zdHJhciBvIGJvdGFvIGRlIE5vdm8gKHNlIG5hbyBhY2hhcikgZSBBbHRlcmFyIChzZSBhY2hhcikuIE5vIFNHSSwgcG9yIGV4ZW1wbG8gZXUgc29oIGRlaXhvIGluY2x1aXIgbm92bywgcHEgbmFvIGZheiBzZW50aWRvIGFsdGVyYXIgYSBwZXNzb2Egbm8gbWVpbyBkbyBjYWRhc3RybyBkbyBpbnF1aWxpbm8uXHJcbiovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXVuYi1wZXNzb2EtY3J1ZC1tb2RhbCcsXHJcbiAgc3RhbmRhbG9uZTogZmFsc2UsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VuYi1wZXNzb2EtY3J1ZC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3VuYi1wZXNzb2EtY3J1ZC1tb2RhbC5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVW5iUGVzc29hQ3J1ZE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIC8vIENvbmZpZ3VyYcOnw6NvIGRvIGNvbXBvbmVudGVcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBwZXNxdWlzYUNvbmZpZzogVW5iUGVzc29hUGVzcXVpc2FDb25maWcgPSBuZXcgVW5iUGVzc29hUGVzcXVpc2FDb25maWcoKTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaW5jbHVpckJvdGFvTm92byA9IHRydWU7IC8vIHNlIHBlc3F1aXNvdSBlIG5hbyBhY2hvdSwgbW9zdHJhIGJvdGFvIG5vdm9cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaW5jbHVpckJvdGFvQWx0ZXJhciA9IHRydWU7IC8vIHNlIHBlc3F1aXNvdSBlIGFjaG91LCBtb3N0cmEgYm90YW8gYWx0ZXJhclxyXG4gIEBPdXRwdXQoKSBwZXNzb2FFbWl0dGVkID0gbmV3IEV2ZW50RW1pdHRlcjxVbmJQZXNzb2FNb2RlbD4oKTtcclxuXHJcbiAgcGVzc29hU2VsZWNpb25hZGEgPSBuZXcgVW5iUGVzc29hTW9kZWwoKTtcclxuICBtb3N0cmFyQm90YW9Ob3ZvID0gZmFsc2U7XHJcbiAgZm9ybUNvbmZpZyA9IG5ldyBVbmJQZXNzb2FGb3JtQ29uZmlnKCk7IC8vIG8gZm9ybUNPbmZpZyBhIGdlbnRlIG1vbnRhIGNvbmZvcm1lIG8gcGVzcXVpc2FDb25maWdcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsIHByaXZhdGUgcGVzc29hU2VydmljZTogVW5CUGVzc29hU2VydmljZSwgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IFVuYk1lbnNhZ2VtU2VydmljZSwgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5wZXNxdWlzYUNvbmZpZy50b2tlbikge1xyXG4gICAgICB0aGlzLnBlc3NvYVNlcnZpY2Uuc2V0VG9rZW4odGhpcy5wZXNxdWlzYUNvbmZpZy50b2tlbik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucGVzcXVpc2FDb25maWcuYmFja2VuZFVSTCkge1xyXG4gICAgICB0aGlzLnBlc3NvYVNlcnZpY2Uuc2V0QmFja2VuZFVybCh0aGlzLnBlc3F1aXNhQ29uZmlnLmJhY2tlbmRVUkwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vcGVuU25hY2tCYXIoJ0JhY2tlbmQgVVJMIG7Do28gaW5mb3JtYWRhIG5hIGNvbmZpZ3VyYcOnw6NvIGRvIGNvbXBvbmVudGUgVW5iUGVzc29hQ3J1ZENvbXBvbmVudCEnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZvcm1Db25maWcgPSBuZXcgVW5iUGVzc29hRm9ybUNvbmZpZygpO1xyXG4gICAgdGhpcy5mb3JtQ29uZmlnLnBlc3NvYSA9IHRoaXMucGVzc29hU2VsZWNpb25hZGE7XHJcbiAgICB0aGlzLmZvcm1Db25maWcuYmFja2VuZFVSTCA9IHRoaXMucGVzcXVpc2FDb25maWcuYmFja2VuZFVSTDtcclxuICAgIHRoaXMuZm9ybUNvbmZpZy50b2tlbiA9IHRoaXMucGVzcXVpc2FDb25maWcudG9rZW47XHJcbiAgfVxyXG5cclxuICBwZXNzb2FQZXNxdWlzYVJlY2ViaWRhKHBlc3NvYTogVW5iUGVzc29hTW9kZWwpIHsgICAgXHJcbiAgICAvLyAxLiBWZXJpZmljYSBzZSBhIHBlc3NvYSDDqSBudWxhIG91IHNlIMOpIHVtIG9iamV0byBcInZhemlvXCIgKHNlbSBJRCBlIHNlbSBkb2N1bWVudG9zKVxyXG4gICAgY29uc3QgaXNWYXppbyA9ICFwZXNzb2EgfHwgKFxyXG4gICAgICAhcGVzc29hLmNvZGlnb1Blc3NvYSAmJiAgIC8vIE7Do28gdGVtIElEXHJcbiAgICAgICFwZXNzb2EuY3BmICYmICAgICAgICAgICAgLy8gTsOjbyB0ZW0gQ1BGXHJcbiAgICAgICFwZXNzb2EuY25waiAmJiAgICAgICAgICAgLy8gTsOjbyB0ZW0gQ05QSlxyXG4gICAgICAhcGVzc29hLnBhc3NhcG9ydGUgICAgICAgIC8vIE7Do28gdGVtIFBhc3NhcG9ydGVcclxuICAgICk7XHJcblxyXG4gICAgaWYgKGlzVmF6aW8pIHtcclxuICAgICAgLy8gU2UgZm9yIHZhemlvLCBsaW1wYW1vcyBhIHNlbGXDp8OjbyBwYXJhIGVzY29uZGVyIG8gZm9ybXVsw6FyaW9cclxuICAgICAgLy8gKE8gKm5nSWY9XCJwZXNzb2FTZWxlY2lvbmFkYVwiIG5vIEhUTUwgdmFpIHJlbW92ZXIgbyBjb21wb25lbnRlIGRhIHRlbGEpXHJcbiAgICAgIHRoaXMucGVzc29hU2VsZWNpb25hZGEgPSBuZXcgVW5iUGVzc29hTW9kZWwoKTsgLy8gb3UgdW5kZWZpbmVkLCBkZXBlbmRlbmRvIGRhIHRpcGFnZW1cclxuICAgICAgdGhpcy5tb3N0cmFyQm90YW9Ob3ZvID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBTZSB0aXZlciBhbGd1bSBkYWRvIChDUEYgZGlnaXRhZG8gb3UgcGVzc29hIGVuY29udHJhZGEpLCBhdHVhbGl6YVxyXG4gICAgICB0aGlzLnBlc3NvYVNlbGVjaW9uYWRhID0gcGVzc29hO1xyXG4gICAgICBpZiAodGhpcy5wZXNzb2FTZWxlY2lvbmFkYS5jb2RpZ29QZXNzb2EpIHsgICAgICBcclxuICAgICAgICAvLyBqb2dhIHByYSBjaW1hIHByYSBmYWxhciBxdWUgdW1hIHBlc3NvYSBmb2kgZW5jb250cmFkYVxyXG4gICAgICAgIHRoaXMucGVzc29hRW1pdHRlZC5lbWl0KHBlc3NvYSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pbmNsdWlyQm90YW9Ob3ZvKSB7XHJcbiAgICAgICAgdGhpcy5vcGVuU25hY2tCYXIoJ1Blc3NvYSBuw6NvIGVuY29udHJhZGEuIENsaXF1ZSBlbSDigJxJbmNsdWlyIE5vdmEgUGVzc29h4oCdIHBhcmEgcmVhbGl6YXIgbyBjYWRhc3Ryby4nKTtcclxuICAgICAgICB0aGlzLm1vc3RyYXJCb3Rhb05vdm8gPSB0cnVlOyAgICAgICAgXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAyLiBBdHVhbGl6YSBhIGNvbmZpZ3VyYcOnw6NvIGRvIGZvcm11bMOhcmlvXHJcbiAgICAvLyBJbXBvcnRhbnRlOiBTw7MgdGVudGEgYWNlc3NhciAncGVzc29hJyBzZSBmb3JtQ29uZmlnIGV4aXN0aXJcclxuICAgIGlmICh0aGlzLmZvcm1Db25maWcpIHtcclxuICAgICAgLy8gVXNhbW9zIG8gc3ByZWFkIG9wZXJhdG9yICguLi4pIHBhcmEgZm9yw6dhciBvIEFuZ3VsYXIgYSBkZXRlY3RhciBhIG11ZGFuw6dhLFxyXG4gICAgICAvLyBjYXNvIG8gY29tcG9uZW50ZSBmaWxobyB1c2UgbmdPbkNoYW5nZXNcclxuICAgICAgdGhpcy5mb3JtQ29uZmlnID0ge1xyXG4gICAgICAgIC4uLnRoaXMuZm9ybUNvbmZpZyxcclxuICAgICAgICBwZXNzb2E6IHRoaXMucGVzc29hU2VsZWNpb25hZGEgfHwgbmV3IFVuYlBlc3NvYU1vZGVsKCkgLy8gRXZpdGEgcGFzc2FyIG51bGwgcHJvIGZvcm0gc2UgbsOjbyBxdWlzZXJcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxpbXBhclNlbGVjYW8oKSB7XHJcbiAgICB0aGlzLnBlc3NvYVNlbGVjaW9uYWRhID0gbmV3IFVuYlBlc3NvYU1vZGVsKCk7IC8vIG91IG5ldyBVbmJQZXNzb2FNb2RlbCgpXHJcbiAgICAvLyBUYWx2ZXogcHJlY2lzZSBhdmlzYXIgbyBjb21wb25lbnRlIGZpbGhvIHBhcmEgbGltcGFyIG8gaW5wdXQgdGFtYsOpbVxyXG4gIH1cclxuXHJcbiAgZ2V0RG9jdW1lbnRvRm9ybWF0YWRvKHBlc3NvYTogVW5iUGVzc29hTW9kZWwpIHtcclxuICAgIGlmIChwZXNzb2EuY3BmICYmIHBlc3NvYS5jcGYudHJpbSgpICE9PSAnJykge1xyXG4gICAgICByZXR1cm4gcGVzc29hLmNwZjtcclxuICAgIH0gZWxzZSBpZiAocGVzc29hLmNucGogJiYgcGVzc29hLmNucGoudHJpbSgpICE9PSAnJykge1xyXG4gICAgICByZXR1cm4gcGVzc29hLmNucGo7XHJcbiAgICB9IGVsc2UgaWYgKHBlc3NvYS5wYXNzYXBvcnRlICYmIHBlc3NvYS5wYXNzYXBvcnRlLnRyaW0oKSAhPT0gJycpIHtcclxuICAgICAgcmV0dXJuIHBlc3NvYS5wYXNzYXBvcnRlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3Blbk1vZGFsKCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihVbmJQZXNzb2FGb3JtRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIC8vIDEuIERlZmluYSB1bSBwYWluZWwgZGUgY2xhc3NlIHBhcmEgY29udHJvbGFyIHR1ZG8gbm8gQ1NTXHJcbiAgICAgIHBhbmVsQ2xhc3M6ICdkaWFsb2ctcGVzc29hLWZ1bGxzY3JlZW4nLCBcclxuICAgICAgXHJcbiAgICAgIC8vIDIuIExhcmd1cmEgcGFkcsOjbyBwYXJhIERlc2t0b3AgKG8gQ1NTIHZhaSBzb2JyZXNjcmV2ZXIgbm8gbW9iaWxlKVxyXG4gICAgICB3aWR0aDogJzkwdncnLCBcclxuICAgICAgbWF4V2lkdGg6ICcxMjAwcHgnLCAvLyBUcmF2YSBwYXJhIG7Do28gZmljYXIgZ2lnYW50ZSBlbSBtb25pdG9yZXMgdWx0cmF3aWRlXHJcbiAgICAgIFxyXG4gICAgICAvLyAzLiBBbHR1cmEgYXV0b23DoXRpY2Egb3UgbcOheGltYSAoQ1NTIGNvbnRyb2xhIG8gZXN0aWNhcilcclxuICAgICAgbWF4SGVpZ2h0OiAnOTV2aCcsIFxyXG5cclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGNvbmZpZzogdGhpcy5mb3JtQ29uZmlnXHJcbiAgICAgIH0sXHJcbiAgICAgIGF1dG9Gb2N1czogJ2ZpcnN0LXRhYmJhYmxlJ1xyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChwZXNzb2FTYWx2YTogVW5iUGVzc29hTW9kZWwgfCBudWxsKSA9PiB7XHJcbiAgICAgIGlmIChwZXNzb2FTYWx2YT8uY29kaWdvUGVzc29hKSB7XHJcbiAgICAgICAgdGhpcy5wZXNzb2FFbWl0dGVkLmVtaXQocGVzc29hU2FsdmEpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5TbmFja0JhcihtZXNzYWdlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc25hY2tCYXIub3BlbihtZXNzYWdlLCAneCcsIHtcclxuICAgICAgZHVyYXRpb246IDUwMDAsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzZWFyY2gtd3JhcHBlclwiIFtjbGFzcy5kaXNhYmxlZC13cmFwcGVyXT1cImlzTG9hZGluZ1wiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0LWFyZWFcIj5cclxuICAgIDxsaWItdW5iLXBlc3NvYS1wZXNxdWlzYXIgXHJcbiAgICAgICAgW2NvbmZpZ109XCJwZXNxdWlzYUNvbmZpZ1wiIFxyXG4gICAgICAgIChwZXNzb2FFbWl0dGVkKT1cInBlc3NvYVBlc3F1aXNhUmVjZWJpZGEoJGV2ZW50KVwiPlxyXG4gICAgPC9saWItdW5iLXBlc3NvYS1wZXNxdWlzYXI+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJzZWFyY2gtYnV0dG9uLWFyZWFcIj5cclxuXHJcbiAgICA8YnV0dG9uICpuZ0lmPVwiaW5jbHVpckJvdGFvTm92byAmJiBtb3N0cmFyQm90YW9Ob3ZvICYmICFwZXNzb2FTZWxlY2lvbmFkYS5jb2RpZ29QZXNzb2FcIiBcclxuICAgICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uIFxyXG4gICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuTW9kYWwoKVwiIFxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgXHJcbiAgICAgICAgICAgIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDtcIj5cclxuICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+IEluY2x1aXIgTm92YSBQZXNzb2FcclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJpbmNsdWlyQm90YW9BbHRlcmFyICYmIHBlc3NvYVNlbGVjaW9uYWRhLmNvZGlnb1Blc3NvYVwiIGNsYXNzPVwibWluaS1jYXJkLXNlbGVjdGVkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWF2YXRhclwiPjxtYXQtaWNvbj5wZXJzb248L21hdC1pY29uPjwvZGl2PlxyXG4gICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaW5mb1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbmFtZVwiPnt7IHBlc3NvYVNlbGVjaW9uYWRhLm5vbWUgfX08L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWRvY1wiPnt7IGdldERvY3VtZW50b0Zvcm1hdGFkbyhwZXNzb2FTZWxlY2lvbmFkYSkgfX08L2Rpdj5cclxuICAgICAgIDwvZGl2PlxyXG4gICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYWN0aW9uc1wiPlxyXG4gICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwib3Blbk1vZGFsKClcIiB0eXBlPVwiYnV0dG9uXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5lZGl0PC9tYXQtaWNvbj4gRWRpdGFyXHJcbiAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -1,24 +1,21 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, Input, inject } from '@angular/core';
2
+ import { UnbAuthService } from '../services/unb-auth.service';
2
3
  import * as i0 from "@angular/core";
3
- import * as i1 from "../services/unb-auth.service";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "@angular/material/menu";
6
- import * as i4 from "@angular/material/icon";
7
- import * as i5 from "@angular/material/divider";
8
- import * as i6 from "@angular/material/button";
9
- import * as i7 from "@angular/material/card";
10
- import * as i8 from "@angular/material/tooltip";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/material/menu";
6
+ import * as i3 from "@angular/material/icon";
7
+ import * as i4 from "@angular/material/divider";
8
+ import * as i5 from "@angular/material/button";
11
9
  export class UnbUsuarioComponent {
12
- constructor(authService) {
13
- this.authService = authService;
10
+ constructor() {
11
+ // Injeção moderna
12
+ this.authService = inject(UnbAuthService);
14
13
  }
15
14
  ngOnInit() {
16
- if (this.oidcSecurityService == null) {
17
- console.log("Erro: oidcService está null!");
18
- return;
15
+ if (this.oidcSecurityService) {
16
+ this.authService.initiate(this.oidcSecurityService);
17
+ this.usuario$ = this.authService.usuario$;
19
18
  }
20
- this.authService.initiate(this.oidcSecurityService);
21
- this.usuario$ = this.authService.usuario$;
22
19
  }
23
20
  login() {
24
21
  this.authService.login();
@@ -26,13 +23,13 @@ export class UnbUsuarioComponent {
26
23
  logout() {
27
24
  this.authService.logout();
28
25
  }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbUsuarioComponent, deps: [{ token: i1.UnbAuthService }], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: UnbUsuarioComponent, selector: "unb-usuario", inputs: { oidcSecurityService: "oidcSecurityService" }, ngImport: i0, template: "<button mat-mini-fab color=\"primary\" aria-label=\"Login Button\" [matMenuTriggerFor]=\"menu\">\r\n <mat-icon>person</mat-icon>\r\n</button>\r\n<mat-menu #menu=\"matMenu\">\r\n <div *ngIf=\"usuario$ | async as usuario\"> \r\n <mat-card-header class=\"menuHeader\" *ngIf=\"usuario && usuario.autenticado; else notAuthenticated\">\r\n <mat-card-title>\r\n <div class=\"user-info-container\">\r\n <span>{{ usuario.usuarioNome }}</span>\r\n <mat-icon matTooltip=\"{{ usuario.perfis.join(', ') }}\" aria-label=\"Perfis de usu\u00E1rio\" *ngIf=\"usuario.perfis\">\r\n account_circle\r\n </mat-icon>\r\n </div>\r\n </mat-card-title>\r\n </mat-card-header>\r\n\r\n <ng-template #notAuthenticated>\r\n <mat-card-header class=\"menuHeader\">\r\n <button mat-menu-item (click)=\"login()\">\r\n <mat-icon>login</mat-icon>\r\n <span>Login</span>\r\n </button>\r\n </mat-card-header>\r\n </ng-template>\r\n\r\n <mat-divider *ngIf=\"usuario.autenticado\"></mat-divider>\r\n\r\n <mat-card-actions *ngIf=\"usuario.autenticado\">\r\n <button mat-menu-item (click)=\"logout()\">\r\n <mat-icon>exit_to_app</mat-icon>\r\n <span>Sair</span>\r\n </button>\r\n </mat-card-actions>\r\n </div>\r\n</mat-menu>", styles: [".sidenav-container{height:100%}.sidenav{width:200px}.sidenav .mat-toolbar{background:inherit}.mat-toolbar.mat-primary{position:sticky;top:0;z-index:1}button.login_button{outline:none;padding:0;border:none;background:none;cursor:pointer}.mat-card{background:#036;padding:5px 20px 0 0}.menu{min-width:500px;max-width:400px}.menuHeader{padding:10px}.user-info-container{display:flex;align-items:center;justify-content:center;gap:8px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i6.MatMiniFabButton, selector: "button[mat-mini-fab]", exportAs: ["matButton"] }, { kind: "directive", type: i7.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "component", type: i7.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i7.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbUsuarioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: UnbUsuarioComponent, selector: "unb-usuario", inputs: { oidcSecurityService: "oidcSecurityService" }, ngImport: i0, template: "<ng-container *ngIf=\"{ user: usuario$ | async } as state\">\r\n\r\n <div class=\"usuario-container\">\r\n\r\n <ng-container *ngIf=\"state.user?.autenticado; else guestOrLoading\">\r\n \r\n <button mat-icon-button [matMenuTriggerFor]=\"userMenu\" class=\"avatar-button\" aria-label=\"Menu do usu\u00E1rio\">\r\n <mat-icon class=\"avatar-icon\">account_circle</mat-icon>\r\n </button>\r\n\r\n <mat-menu #userMenu=\"matMenu\" xPosition=\"before\" class=\"custom-user-menu\">\r\n <div class=\"menu-header\">\r\n <div class=\"user-avatar-placeholder\">\r\n <mat-icon>person</mat-icon>\r\n </div>\r\n <div class=\"user-details\">\r\n <span class=\"user-name\">{{ state.user?.usuarioNome }}</span>\r\n <span class=\"user-profiles\" *ngIf=\"state.user?.perfis?.length\">\r\n {{ state.user?.perfis?.join(', ') }}\r\n </span>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"logout()\">\r\n <mat-icon>logout</mat-icon>\r\n <span>Sair</span>\r\n </button>\r\n </mat-menu>\r\n\r\n </ng-container>\r\n\r\n <ng-template #guestOrLoading>\r\n <button mat-stroked-button class=\"btn-login\" (click)=\"login()\">\r\n <mat-icon>login</mat-icon>\r\n <span>Entrar</span>\r\n </button>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n</ng-container>", styles: [":host{display:flex;align-items:center;height:100%}.usuario-container{display:flex;align-items:center;height:100%}.btn-login{border-radius:20px;color:#fff!important;border:1px solid rgba(255,255,255,.5)!important;background-color:transparent!important;line-height:36px;padding:0 16px;white-space:nowrap}.btn-login mat-icon{margin-right:8px;color:#fff!important}.btn-login:hover{background-color:#ffffff1a!important}.avatar-button{display:flex;align-items:center;justify-content:center;width:40px!important;height:40px!important;padding:0!important;background:transparent}.avatar-icon{font-size:32px!important;width:32px!important;height:32px!important;color:#fff!important;line-height:1!important;display:flex;align-items:center;justify-content:center}.menu-header{padding:16px;display:flex;align-items:center;gap:12px;min-width:200px;outline:none}.user-avatar-placeholder{width:40px;height:40px;background-color:#f5f5f5;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#757575}.user-details{display:flex;flex-direction:column}.user-name{font-weight:600;font-size:.95rem;color:#333}.user-profiles{font-size:.75rem;color:#666;margin-top:2px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
31
28
  }
32
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbUsuarioComponent, decorators: [{
33
30
  type: Component,
34
- args: [{ selector: 'unb-usuario', template: "<button mat-mini-fab color=\"primary\" aria-label=\"Login Button\" [matMenuTriggerFor]=\"menu\">\r\n <mat-icon>person</mat-icon>\r\n</button>\r\n<mat-menu #menu=\"matMenu\">\r\n <div *ngIf=\"usuario$ | async as usuario\"> \r\n <mat-card-header class=\"menuHeader\" *ngIf=\"usuario && usuario.autenticado; else notAuthenticated\">\r\n <mat-card-title>\r\n <div class=\"user-info-container\">\r\n <span>{{ usuario.usuarioNome }}</span>\r\n <mat-icon matTooltip=\"{{ usuario.perfis.join(', ') }}\" aria-label=\"Perfis de usu\u00E1rio\" *ngIf=\"usuario.perfis\">\r\n account_circle\r\n </mat-icon>\r\n </div>\r\n </mat-card-title>\r\n </mat-card-header>\r\n\r\n <ng-template #notAuthenticated>\r\n <mat-card-header class=\"menuHeader\">\r\n <button mat-menu-item (click)=\"login()\">\r\n <mat-icon>login</mat-icon>\r\n <span>Login</span>\r\n </button>\r\n </mat-card-header>\r\n </ng-template>\r\n\r\n <mat-divider *ngIf=\"usuario.autenticado\"></mat-divider>\r\n\r\n <mat-card-actions *ngIf=\"usuario.autenticado\">\r\n <button mat-menu-item (click)=\"logout()\">\r\n <mat-icon>exit_to_app</mat-icon>\r\n <span>Sair</span>\r\n </button>\r\n </mat-card-actions>\r\n </div>\r\n</mat-menu>", styles: [".sidenav-container{height:100%}.sidenav{width:200px}.sidenav .mat-toolbar{background:inherit}.mat-toolbar.mat-primary{position:sticky;top:0;z-index:1}button.login_button{outline:none;padding:0;border:none;background:none;cursor:pointer}.mat-card{background:#036;padding:5px 20px 0 0}.menu{min-width:500px;max-width:400px}.menuHeader{padding:10px}.user-info-container{display:flex;align-items:center;justify-content:center;gap:8px}\n"] }]
35
- }], ctorParameters: () => [{ type: i1.UnbAuthService }], propDecorators: { oidcSecurityService: [{
31
+ args: [{ selector: 'unb-usuario', template: "<ng-container *ngIf=\"{ user: usuario$ | async } as state\">\r\n\r\n <div class=\"usuario-container\">\r\n\r\n <ng-container *ngIf=\"state.user?.autenticado; else guestOrLoading\">\r\n \r\n <button mat-icon-button [matMenuTriggerFor]=\"userMenu\" class=\"avatar-button\" aria-label=\"Menu do usu\u00E1rio\">\r\n <mat-icon class=\"avatar-icon\">account_circle</mat-icon>\r\n </button>\r\n\r\n <mat-menu #userMenu=\"matMenu\" xPosition=\"before\" class=\"custom-user-menu\">\r\n <div class=\"menu-header\">\r\n <div class=\"user-avatar-placeholder\">\r\n <mat-icon>person</mat-icon>\r\n </div>\r\n <div class=\"user-details\">\r\n <span class=\"user-name\">{{ state.user?.usuarioNome }}</span>\r\n <span class=\"user-profiles\" *ngIf=\"state.user?.perfis?.length\">\r\n {{ state.user?.perfis?.join(', ') }}\r\n </span>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"logout()\">\r\n <mat-icon>logout</mat-icon>\r\n <span>Sair</span>\r\n </button>\r\n </mat-menu>\r\n\r\n </ng-container>\r\n\r\n <ng-template #guestOrLoading>\r\n <button mat-stroked-button class=\"btn-login\" (click)=\"login()\">\r\n <mat-icon>login</mat-icon>\r\n <span>Entrar</span>\r\n </button>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n</ng-container>", styles: [":host{display:flex;align-items:center;height:100%}.usuario-container{display:flex;align-items:center;height:100%}.btn-login{border-radius:20px;color:#fff!important;border:1px solid rgba(255,255,255,.5)!important;background-color:transparent!important;line-height:36px;padding:0 16px;white-space:nowrap}.btn-login mat-icon{margin-right:8px;color:#fff!important}.btn-login:hover{background-color:#ffffff1a!important}.avatar-button{display:flex;align-items:center;justify-content:center;width:40px!important;height:40px!important;padding:0!important;background:transparent}.avatar-icon{font-size:32px!important;width:32px!important;height:32px!important;color:#fff!important;line-height:1!important;display:flex;align-items:center;justify-content:center}.menu-header{padding:16px;display:flex;align-items:center;gap:12px;min-width:200px;outline:none}.user-avatar-placeholder{width:40px;height:40px;background-color:#f5f5f5;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#757575}.user-details{display:flex;flex-direction:column}.user-name{font-weight:600;font-size:.95rem;color:#333}.user-profiles{font-size:.75rem;color:#666;margin-top:2px}\n"] }]
32
+ }], propDecorators: { oidcSecurityService: [{
36
33
  type: Input
37
34
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLXVzdWFyaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXVzdWFyaW8vdW5iLXVzdWFyaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXVzdWFyaW8vdW5iLXVzdWFyaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUFXekQsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixZQUFzQixXQUEyQjtRQUEzQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7SUFBSSxDQUFDO0lBRXRELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUE7WUFDM0MsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO0lBQzVDLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs4R0F2QlUsbUJBQW1CO2tHQUFuQixtQkFBbUIsMkdDWGhDLDR6Q0FrQ1c7OzJGRHZCRSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYTttRkFPZCxtQkFBbUI7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2lkY1NlY3VyaXR5U2VydmljZSB9IGZyb20gJ2FuZ3VsYXItYXV0aC1vaWRjLWNsaWVudCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVW5iQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91bmItYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVW5iVXN1YXJpb01vZGVsIH0gZnJvbSAnLi91bmItdXN1YXJpby5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3VuYi11c3VhcmlvJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdW5iLXVzdWFyaW8uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VuYi11c3VhcmlvLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVW5iVXN1YXJpb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgdXN1YXJpbyQhOiBPYnNlcnZhYmxlPFVuYlVzdWFyaW9Nb2RlbD47XHJcbiAgXHJcbiAgQElucHV0KCkgb2lkY1NlY3VyaXR5U2VydmljZSE6T2lkY1NlY3VyaXR5U2VydmljZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGF1dGhTZXJ2aWNlOiBVbmJBdXRoU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMub2lkY1NlY3VyaXR5U2VydmljZSA9PSBudWxsKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRXJybzogb2lkY1NlcnZpY2UgZXN0w6EgbnVsbCFcIilcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXV0aFNlcnZpY2UuaW5pdGlhdGUodGhpcy5vaWRjU2VjdXJpdHlTZXJ2aWNlKTtcclxuICAgIHRoaXMudXN1YXJpbyQgPSB0aGlzLmF1dGhTZXJ2aWNlLnVzdWFyaW8kO1xyXG4gIH1cclxuXHJcbiAgbG9naW4oKSB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2luKCk7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dCgpO1xyXG4gIH1cclxuIH1cclxuIiwiPGJ1dHRvbiBtYXQtbWluaS1mYWIgY29sb3I9XCJwcmltYXJ5XCIgYXJpYS1sYWJlbD1cIkxvZ2luIEJ1dHRvblwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XHJcbiAgPG1hdC1pY29uPnBlcnNvbjwvbWF0LWljb24+XHJcbjwvYnV0dG9uPlxyXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgPGRpdiAqbmdJZj1cInVzdWFyaW8kIHwgYXN5bmMgYXMgdXN1YXJpb1wiPiAgICBcclxuICAgIDxtYXQtY2FyZC1oZWFkZXIgY2xhc3M9XCJtZW51SGVhZGVyXCIgKm5nSWY9XCJ1c3VhcmlvICYmIHVzdWFyaW8uYXV0ZW50aWNhZG87IGVsc2Ugbm90QXV0aGVudGljYXRlZFwiPlxyXG4gICAgICA8bWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItaW5mby1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxzcGFuPnt7IHVzdWFyaW8udXN1YXJpb05vbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8bWF0LWljb24gbWF0VG9vbHRpcD1cInt7IHVzdWFyaW8ucGVyZmlzLmpvaW4oJywgJykgfX1cIiBhcmlhLWxhYmVsPVwiUGVyZmlzIGRlIHVzdcOhcmlvXCIgKm5nSWY9XCJ1c3VhcmlvLnBlcmZpc1wiPlxyXG4gICAgICAgICAgICBhY2NvdW50X2NpcmNsZVxyXG4gICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9tYXQtY2FyZC10aXRsZT5cclxuICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjbm90QXV0aGVudGljYXRlZD5cclxuICAgICAgPG1hdC1jYXJkLWhlYWRlciBjbGFzcz1cIm1lbnVIZWFkZXJcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImxvZ2luKClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5sb2dpbjwvbWF0LWljb24+XHJcbiAgICAgICAgICA8c3Bhbj5Mb2dpbjwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxtYXQtZGl2aWRlciAqbmdJZj1cInVzdWFyaW8uYXV0ZW50aWNhZG9cIj48L21hdC1kaXZpZGVyPlxyXG5cclxuICAgIDxtYXQtY2FyZC1hY3Rpb25zICpuZ0lmPVwidXN1YXJpby5hdXRlbnRpY2Fkb1wiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImxvZ291dCgpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uPmV4aXRfdG9fYXBwPC9tYXQtaWNvbj5cclxuICAgICAgICA8c3Bhbj5TYWlyPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cclxuICA8L2Rpdj5cclxuPC9tYXQtbWVudT4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLXVzdWFyaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXVzdWFyaW8vdW5iLXVzdWFyaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXVzdWFyaW8vdW5iLXVzdWFyaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7OztBQVE5RCxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBT0Usa0JBQWtCO1FBQ1YsZ0JBQVcsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7S0FvQjlDO0lBZEMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUM1QyxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDOzhHQXRCVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiwyR0NYaEMsdzhDQXdDZTs7MkZEN0JGLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxhQUFhOzhCQVNkLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9pZGNTZWN1cml0eVNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLWF1dGgtb2lkYy1jbGllbnQnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFVuYkF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdW5iLWF1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IFVuYlVzdWFyaW9Nb2RlbCB9IGZyb20gJy4vdW5iLXVzdWFyaW8ubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1bmItdXN1YXJpbycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VuYi11c3VhcmlvLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91bmItdXN1YXJpby5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFVuYlVzdWFyaW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIFxyXG4gIC8vIEluamXDp8OjbyBtb2Rlcm5hXHJcbiAgcHJpdmF0ZSBhdXRoU2VydmljZSA9IGluamVjdChVbmJBdXRoU2VydmljZSk7XHJcblxyXG4gIEBJbnB1dCgpIG9pZGNTZWN1cml0eVNlcnZpY2UhOiBPaWRjU2VjdXJpdHlTZXJ2aWNlO1xyXG5cclxuICB1c3VhcmlvJCE6IE9ic2VydmFibGU8VW5iVXN1YXJpb01vZGVsPjtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5vaWRjU2VjdXJpdHlTZXJ2aWNlKSB7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuaW5pdGlhdGUodGhpcy5vaWRjU2VjdXJpdHlTZXJ2aWNlKTtcclxuICAgICAgdGhpcy51c3VhcmlvJCA9IHRoaXMuYXV0aFNlcnZpY2UudXN1YXJpbyQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2dpbigpIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UubG9naW4oKTtcclxuICB9XHJcblxyXG4gIGxvZ291dCgpIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KCk7XHJcbiAgfVxyXG59IiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInsgdXNlcjogdXN1YXJpbyQgfCBhc3luYyB9IGFzIHN0YXRlXCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJ1c3VhcmlvLWNvbnRhaW5lclwiPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZS51c2VyPy5hdXRlbnRpY2FkbzsgZWxzZSBndWVzdE9yTG9hZGluZ1wiPlxyXG4gICAgICBcclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInVzZXJNZW51XCIgY2xhc3M9XCJhdmF0YXItYnV0dG9uXCIgYXJpYS1sYWJlbD1cIk1lbnUgZG8gdXN1w6FyaW9cIj5cclxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhdmF0YXItaWNvblwiPmFjY291bnRfY2lyY2xlPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICA8bWF0LW1lbnUgI3VzZXJNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiIGNsYXNzPVwiY3VzdG9tLXVzZXItbWVudVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWhlYWRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItYXZhdGFyLXBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5wZXJzb248L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1uYW1lXCI+e3sgc3RhdGUudXNlcj8udXN1YXJpb05vbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1wcm9maWxlc1wiICpuZ0lmPVwic3RhdGUudXNlcj8ucGVyZmlzPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICB7eyBzdGF0ZS51c2VyPy5wZXJmaXM/LmpvaW4oJywgJykgfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJsb2dvdXQoKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmxvZ291dDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8c3Bhbj5TYWlyPC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L21hdC1tZW51PlxyXG5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZ3Vlc3RPckxvYWRpbmc+XHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwiYnRuLWxvZ2luXCIgKGNsaWNrKT1cImxvZ2luKClcIj5cclxuICAgICAgICA8bWF0LWljb24+bG9naW48L21hdC1pY29uPlxyXG4gICAgICAgIDxzcGFuPkVudHJhcjwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbjwvbmctY29udGFpbmVyPiJdfQ==