@sapphire-ion/framework 1.2.60 → 1.2.62

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,14 +1,17 @@
1
1
  import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import { IonBackButton, NavController } from '@ionic/angular';
3
3
  import { ActivatedRoute } from '@angular/router';
4
+ import { NavigationContextService } from '../../../../services/navigation-context.service';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@ionic/angular";
6
7
  import * as i2 from "@angular/router";
7
- import * as i3 from "@angular/common";
8
+ import * as i3 from "../../../../services/navigation-context.service";
9
+ import * as i4 from "@angular/common";
8
10
  export class HeaderViewComponent {
9
- constructor(navController, activatedRoute) {
11
+ constructor(navController, activatedRoute, navContext) {
10
12
  this.navController = navController;
11
13
  this.activatedRoute = activatedRoute;
14
+ this.navContext = navContext;
12
15
  this.novo = false;
13
16
  this.progress = null;
14
17
  this.saveEmitter = new EventEmitter();
@@ -27,17 +30,7 @@ export class HeaderViewComponent {
27
30
  }
28
31
  ngOnInit() { }
29
32
  get DefaultBackRoute() {
30
- const fullRoute = window.location.pathname.split('/');
31
- const li = fullRoute[fullRoute.length - 1];
32
- var offset = 1;
33
- if (Number(li)) {
34
- offset++;
35
- }
36
- let route = [];
37
- for (let i = 0; i < fullRoute.length - offset; i++) {
38
- route.push(fullRoute[i]);
39
- }
40
- return route.join('/');
33
+ return this.navContext.getBackRoute() ?? '/';
41
34
  }
42
35
  Back($event = null) {
43
36
  this.IonBackButtonElement.onClick($event);
@@ -50,13 +43,13 @@ export class HeaderViewComponent {
50
43
  Save() {
51
44
  this.saveEmitter.emit();
52
45
  }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderViewComponent, deps: [{ token: i1.NavController }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: HeaderViewComponent, selector: "header-view", inputs: { novo: "novo", loading: "loading", progress: "progress", focusInFirstField: "focusInFirstField", noBack: "noBack", noNew: "noNew", useDefaultRouting: "useDefaultRouting", backRouterLink: "backRouterLink" }, outputs: { saveEmitter: "save" }, viewQueries: [{ propertyName: "IonBackButtonElement", first: true, predicate: IonBackButton, descendants: true }, { propertyName: "NewIonButtonElement", first: true, predicate: ["new"], descendants: true }], ngImport: i0, template: "<div class=\"w-full h-7 flex\">\r\n <div class=\"w-1/2 flex items-center justify-start gap-3\">\r\n @if(!noBack){\r\n @if(useDefaultRouting || backRouterLink){\r\n <ion-button class=\"m-0\" fill=\"clear\" size=\"small\" [routerLink]=\"backRouterLink ? backRouterLink : DefaultBackRoute\">\r\n <ion-icon class=\"text-[1.7rem]\" name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n <ion-text class=\"text-base\">Voltar</ion-text>\r\n </ion-button>\r\n }\r\n @else{\r\n <ion-back-button style=\"--min-height: 100%;\" [disabled]=\"loading\" text=\"Voltar\" [defaultHref]=\"DefaultBackRoute\"></ion-back-button>\r\n }\r\n\r\n <!-- <ion-card button [disabled]=\"loading\" class=\"h-full w-12 m-0 default-transition\" style=\"border-color: var(--ion-color-primary)\">\r\n <ion-card-content class=\"p-0 bg-transparent\">\r\n @if(!useDefaultRouting){\r\n <ion-back-button class=\"scale-75 size-full\" style=\"--min-height: 100%;\" text=\"\" [defaultHref]=\"BackRoute\" >\r\n </ion-back-button>\r\n }@else {\r\n <ion-button class=\"size-full\" size=\"small\" fill=\"clear\" [routerLink]=\"BackRoute\">\r\n <ion-icon name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n }\r\n </ion-card-content>\r\n </ion-card> -->\r\n }\r\n @if(!noBack){\r\n <div class=\"h-full border-r-2 border-r-primary border-solid mask-y/50\"></div>\r\n }\r\n\r\n <div class=\"relative\">\r\n <ion-button class=\"-mx-2\" [disabled]=\"loading\" fill=\"clear\" size=\"small\" (click)=\"Save()\">\r\n <ion-icon class=\"text-base\" slot=\"start\" name=\"save\"></ion-icon>\r\n <ion-text class=\"text-base\">\r\n Salvar\r\n </ion-text>\r\n </ion-button>\r\n\r\n <div class=\"absolute w-[125%] h-[125%] -top-[12.5%] -left-[12.5%] flex flex-col items-center justify-center default-transition backdrop-blur-sm\" [ngClass]=\"{'opacity-0 -translate-y-8': !loading}\">\r\n <ion-text color=\"success\" class=\"text-sm mt-1\"><b>\r\n @if(progress){\r\n {{(progress * 100) | number: '1.1-1'}}%\r\n }@else {\r\n {{0 | number: '1.1-1'}}%\r\n }\r\n </b></ion-text>\r\n <ion-progress-bar [value]=\"progress\" color=\"success\" class=\"w-full default-transition\"></ion-progress-bar>\r\n </div>\r\n </div>\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n <div class=\"w-1/2 flex justify-end items-center gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!(noNew || novo)){\r\n <ion-button #new [routerLink]=\"['../']\" class=\"m-0\" fill=\"clear\" size=\"small\">\r\n <ion-icon class=\"text-base\" name=\"add\" slot=\"start\"></ion-icon> \r\n <ion-text class=\"text-base\">\r\n Novo\r\n </ion-text>\r\n </ion-button>\r\n }\r\n </div>\r\n</div>", styles: ["#back{margin:0;margin-right:.5rem;width:2rem;border-radius:1rem;padding:0}#back::part(native){padding-left:.5rem;padding-right:.5rem}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i1.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }] }); }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderViewComponent, deps: [{ token: i1.NavController }, { token: i2.ActivatedRoute }, { token: i3.NavigationContextService }], target: i0.ɵɵFactoryTarget.Component }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: HeaderViewComponent, selector: "header-view", inputs: { novo: "novo", loading: "loading", progress: "progress", focusInFirstField: "focusInFirstField", noBack: "noBack", noNew: "noNew", useDefaultRouting: "useDefaultRouting", backRouterLink: "backRouterLink" }, outputs: { saveEmitter: "save" }, viewQueries: [{ propertyName: "IonBackButtonElement", first: true, predicate: IonBackButton, descendants: true }, { propertyName: "NewIonButtonElement", first: true, predicate: ["new"], descendants: true }], ngImport: i0, template: "<div class=\"w-full h-7 flex\">\r\n <div class=\"w-1/2 flex items-center justify-start gap-3\">\r\n @if(!noBack){\r\n @if(useDefaultRouting || backRouterLink){\r\n <ion-button class=\"m-0\" fill=\"clear\" size=\"small\" [routerLink]=\"backRouterLink ? backRouterLink : DefaultBackRoute\">\r\n <ion-icon class=\"text-[1.7rem]\" name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n <ion-text class=\"text-base\">Voltar</ion-text>\r\n </ion-button>\r\n }\r\n @else{\r\n <ion-back-button style=\"--min-height: 100%;\" [disabled]=\"loading\" text=\"Voltar\" [defaultHref]=\"DefaultBackRoute\"></ion-back-button>\r\n }\r\n\r\n <!-- <ion-card button [disabled]=\"loading\" class=\"h-full w-12 m-0 default-transition\" style=\"border-color: var(--ion-color-primary)\">\r\n <ion-card-content class=\"p-0 bg-transparent\">\r\n @if(!useDefaultRouting){\r\n <ion-back-button class=\"scale-75 size-full\" style=\"--min-height: 100%;\" text=\"\" [defaultHref]=\"BackRoute\" >\r\n </ion-back-button>\r\n }@else {\r\n <ion-button class=\"size-full\" size=\"small\" fill=\"clear\" [routerLink]=\"BackRoute\">\r\n <ion-icon name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n }\r\n </ion-card-content>\r\n </ion-card> -->\r\n }\r\n @if(!noBack){\r\n <div class=\"h-full border-r-2 border-r-primary border-solid mask-y/50\"></div>\r\n }\r\n\r\n <div class=\"relative\">\r\n <ion-button class=\"-mx-2\" [disabled]=\"loading\" fill=\"clear\" size=\"small\" (click)=\"Save()\">\r\n <ion-icon class=\"text-base\" slot=\"start\" name=\"save\"></ion-icon>\r\n <ion-text class=\"text-base\">\r\n Salvar\r\n </ion-text>\r\n </ion-button>\r\n\r\n <div class=\"absolute w-[125%] h-[125%] -top-[12.5%] -left-[12.5%] flex flex-col items-center justify-center default-transition backdrop-blur-sm\" [ngClass]=\"{'opacity-0 -translate-y-8': !loading}\">\r\n <ion-text color=\"success\" class=\"text-sm mt-1\"><b>\r\n @if(progress){\r\n {{(progress * 100) | number: '1.1-1'}}%\r\n }@else {\r\n {{0 | number: '1.1-1'}}%\r\n }\r\n </b></ion-text>\r\n <ion-progress-bar [value]=\"progress\" color=\"success\" class=\"w-full default-transition\"></ion-progress-bar>\r\n </div>\r\n </div>\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n <div class=\"w-1/2 flex justify-end items-center gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!(noNew || novo)){\r\n <ion-button #new [routerLink]=\"['../']\" class=\"m-0\" fill=\"clear\" size=\"small\">\r\n <ion-icon class=\"text-base\" name=\"add\" slot=\"start\"></ion-icon> \r\n <ion-text class=\"text-base\">\r\n Novo\r\n </ion-text>\r\n </ion-button>\r\n }\r\n </div>\r\n</div>", styles: ["#back{margin:0;margin-right:.5rem;width:2rem;border-radius:1rem;padding:0}#back::part(native){padding-left:.5rem;padding-right:.5rem}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i1.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i4.DecimalPipe, name: "number" }] }); }
55
48
  }
56
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderViewComponent, decorators: [{
57
50
  type: Component,
58
51
  args: [{ selector: 'header-view', template: "<div class=\"w-full h-7 flex\">\r\n <div class=\"w-1/2 flex items-center justify-start gap-3\">\r\n @if(!noBack){\r\n @if(useDefaultRouting || backRouterLink){\r\n <ion-button class=\"m-0\" fill=\"clear\" size=\"small\" [routerLink]=\"backRouterLink ? backRouterLink : DefaultBackRoute\">\r\n <ion-icon class=\"text-[1.7rem]\" name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n <ion-text class=\"text-base\">Voltar</ion-text>\r\n </ion-button>\r\n }\r\n @else{\r\n <ion-back-button style=\"--min-height: 100%;\" [disabled]=\"loading\" text=\"Voltar\" [defaultHref]=\"DefaultBackRoute\"></ion-back-button>\r\n }\r\n\r\n <!-- <ion-card button [disabled]=\"loading\" class=\"h-full w-12 m-0 default-transition\" style=\"border-color: var(--ion-color-primary)\">\r\n <ion-card-content class=\"p-0 bg-transparent\">\r\n @if(!useDefaultRouting){\r\n <ion-back-button class=\"scale-75 size-full\" style=\"--min-height: 100%;\" text=\"\" [defaultHref]=\"BackRoute\" >\r\n </ion-back-button>\r\n }@else {\r\n <ion-button class=\"size-full\" size=\"small\" fill=\"clear\" [routerLink]=\"BackRoute\">\r\n <ion-icon name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n }\r\n </ion-card-content>\r\n </ion-card> -->\r\n }\r\n @if(!noBack){\r\n <div class=\"h-full border-r-2 border-r-primary border-solid mask-y/50\"></div>\r\n }\r\n\r\n <div class=\"relative\">\r\n <ion-button class=\"-mx-2\" [disabled]=\"loading\" fill=\"clear\" size=\"small\" (click)=\"Save()\">\r\n <ion-icon class=\"text-base\" slot=\"start\" name=\"save\"></ion-icon>\r\n <ion-text class=\"text-base\">\r\n Salvar\r\n </ion-text>\r\n </ion-button>\r\n\r\n <div class=\"absolute w-[125%] h-[125%] -top-[12.5%] -left-[12.5%] flex flex-col items-center justify-center default-transition backdrop-blur-sm\" [ngClass]=\"{'opacity-0 -translate-y-8': !loading}\">\r\n <ion-text color=\"success\" class=\"text-sm mt-1\"><b>\r\n @if(progress){\r\n {{(progress * 100) | number: '1.1-1'}}%\r\n }@else {\r\n {{0 | number: '1.1-1'}}%\r\n }\r\n </b></ion-text>\r\n <ion-progress-bar [value]=\"progress\" color=\"success\" class=\"w-full default-transition\"></ion-progress-bar>\r\n </div>\r\n </div>\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n <div class=\"w-1/2 flex justify-end items-center gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!(noNew || novo)){\r\n <ion-button #new [routerLink]=\"['../']\" class=\"m-0\" fill=\"clear\" size=\"small\">\r\n <ion-icon class=\"text-base\" name=\"add\" slot=\"start\"></ion-icon> \r\n <ion-text class=\"text-base\">\r\n Novo\r\n </ion-text>\r\n </ion-button>\r\n }\r\n </div>\r\n</div>", styles: ["#back{margin:0;margin-right:.5rem;width:2rem;border-radius:1rem;padding:0}#back::part(native){padding-left:.5rem;padding-right:.5rem}\n"] }]
59
- }], ctorParameters: () => [{ type: i1.NavController }, { type: i2.ActivatedRoute }], propDecorators: { novo: [{
52
+ }], ctorParameters: () => [{ type: i1.NavController }, { type: i2.ActivatedRoute }, { type: i3.NavigationContextService }], propDecorators: { novo: [{
60
53
  type: Input
61
54
  }], loading: [{
62
55
  type: Input
@@ -82,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
82
75
  type: ViewChild,
83
76
  args: ['new']
84
77
  }] } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC12aWV3L2hlYWRlci12aWV3L2hlYWRlci12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdmlldy9oZWFkZXItdmlldy9oZWFkZXItdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFXLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBTzFELE1BQU0sT0FBTyxtQkFBbUI7SUFxQjlCLFlBQ1UsYUFBNEIsRUFDNUIsY0FBOEI7UUFEOUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBckIvQixTQUFJLEdBQVksS0FBSyxDQUFDO1FBRXRCLGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBRXhCLGdCQUFXLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFM0UsNERBQTREO1FBQ25ELHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUM1Qyw4QkFBOEI7UUFDckIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUNqQyw2QkFBNkI7UUFDcEIsVUFBSyxHQUFhLEtBQUssQ0FBQztRQUNqQywrRkFBK0Y7UUFDdEYsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQzVDOztVQUVFO1FBQ08sbUJBQWMsR0FBeUMsU0FBUyxDQUFDO0lBS3RFLENBQUM7SUFFTCxRQUFRLEtBQUksQ0FBQztJQUViLElBQWMsZ0JBQWdCO1FBQzVCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUVyRCxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQyxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDZixJQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDO1lBQUMsTUFBTSxFQUFFLENBQUM7UUFBQyxDQUFDO1FBQzNCLElBQUksS0FBSyxHQUFhLEVBQUUsQ0FBQTtRQUN4QixLQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUMsQ0FBQztZQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFBQyxDQUFDO1FBQy9FLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBR00sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJO1FBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUVNLEdBQUc7UUFDUixJQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDO1lBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQztRQUNsRixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7K0dBcERVLG1CQUFtQjttR0FBbkIsbUJBQW1CLG1XQXVDbkIsYUFBYSw2SUNoRDFCLGk5RkErRE07OzRGRHRETyxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYTsrR0FNZCxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRVUsV0FBVztzQkFBMUIsTUFBTTt1QkFBQyxNQUFNO2dCQUdMLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFJRyxjQUFjO3NCQUF0QixLQUFLO2dCQW9Cb0Isb0JBQW9CO3NCQUE3QyxTQUFTO3VCQUFDLGFBQWE7Z0JBSU4sbUJBQW1CO3NCQUFwQyxTQUFTO3VCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW9uQmFja0J1dHRvbiwgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdoZWFkZXItdmlldycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXItdmlldy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGVhZGVyVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIG5vdm86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHByb2dyZXNzOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBcclxuICBAT3V0cHV0KCdzYXZlJykgc2F2ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTsgIFxyXG5cclxuICAvKiogSGFiaWxpdGEvRGVzYWJpbGl0YSBvIGZvY3VzIG5vIHByaW1laXJvIGNhbXBvIGRhIHZpZXcgKi9cclxuICBASW5wdXQoKSBmb2N1c0luRmlyc3RGaWVsZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiBSZW1vdmUgbyBib3TDo28gZGUgdm9sdGEgKi9cclxuICBASW5wdXQoKSBub0JhY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogUmVtb3ZlIG8gYm90w6NvIGRlIE5vdm8gKi9cclxuICBASW5wdXQoKSBub05ldyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogUGFyw6JtZXRybyB1c2FkbyBlbSB0ZWxhcyBkZW50cm8gZGUgdGVsYXMsIHBhcmEgcXVlIG8gcmV0b3JubyBzZW1wcmUgc2VqYSBhIHRlbGEgYW50ZXJpb3IgKi9cclxuICBASW5wdXQoKSB1c2VEZWZhdWx0Um91dGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiAgXHJcbiAgICogUm90YSBwYXJhIHZvbHRhciwgY2FzbyBuw6NvIHNlamEgZGVmaW5pZGEsIG8gY29tcG9uZW50ZSBpcsOhIHRlbnRhciB1c2FyIHJvdGEgZG8gaW9uaWNcclxuICAqL1xyXG4gIEBJbnB1dCgpIGJhY2tSb3V0ZXJMaW5rOiBzdHJpbmcgfCBhbnlbXSB8IFVybFRyZWUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuYXZDb250cm9sbGVyOiBOYXZDb250cm9sbGVyLFxyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gIHByb3RlY3RlZCBnZXQgRGVmYXVsdEJhY2tSb3V0ZSgpe1xyXG4gICAgY29uc3QgZnVsbFJvdXRlID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnNwbGl0KCcvJylcclxuXHJcbiAgICBjb25zdCBsaSA9IGZ1bGxSb3V0ZVtmdWxsUm91dGUubGVuZ3RoIC0gMV07XHJcbiAgICB2YXIgb2Zmc2V0ID0gMTtcclxuICAgIGlmKE51bWJlcihsaSkpeyBvZmZzZXQrKzsgfVxyXG4gICAgbGV0IHJvdXRlOiBzdHJpbmdbXSA9IFtdXHJcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgZnVsbFJvdXRlLmxlbmd0aCAtIG9mZnNldDsgaSsrKXsgcm91dGUucHVzaChmdWxsUm91dGVbaV0pOyB9XHJcbiAgICByZXR1cm4gcm91dGUuam9pbignLycpO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZChJb25CYWNrQnV0dG9uKSBJb25CYWNrQnV0dG9uRWxlbWVudDogSW9uQmFja0J1dHRvbjsgXHJcbiAgcHVibGljIEJhY2soJGV2ZW50ID0gbnVsbCl7XHJcbiAgICB0aGlzLklvbkJhY2tCdXR0b25FbGVtZW50Lm9uQ2xpY2soJGV2ZW50KVxyXG4gIH1cclxuICBAVmlld0NoaWxkKCduZXcnKSBOZXdJb25CdXR0b25FbGVtZW50OiBFbGVtZW50UmVmOyBcclxuICBwdWJsaWMgTmV3KCl7XHJcbiAgICBpZighdGhpcy5ub3ZvKXtcclxuICAgICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlRm9yd2FyZChbJy4uLyddLCB7IHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGV9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIFNhdmUoKTogdm9pZHtcclxuICAgIHRoaXMuc2F2ZUVtaXR0ZXIuZW1pdCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInctZnVsbCBoLTcgZmxleFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ3LTEvMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0IGdhcC0zXCI+XHJcbiAgICBAaWYoIW5vQmFjayl7XHJcbiAgICAgIEBpZih1c2VEZWZhdWx0Um91dGluZyB8fCBiYWNrUm91dGVyTGluayl7XHJcbiAgICAgICAgPGlvbi1idXR0b24gY2xhc3M9XCJtLTBcIiBmaWxsPVwiY2xlYXJcIiBzaXplPVwic21hbGxcIiBbcm91dGVyTGlua109XCJiYWNrUm91dGVyTGluayA/IGJhY2tSb3V0ZXJMaW5rIDogRGVmYXVsdEJhY2tSb3V0ZVwiPlxyXG4gICAgICAgICAgPGlvbi1pY29uIGNsYXNzPVwidGV4dC1bMS43cmVtXVwiIG5hbWU9XCJjaGV2cm9uLWJhY2tcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgIDxpb24tdGV4dCBjbGFzcz1cInRleHQtYmFzZVwiPlZvbHRhcjwvaW9uLXRleHQ+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIEBlbHNle1xyXG4gICAgICAgIDxpb24tYmFjay1idXR0b24gc3R5bGU9XCItLW1pbi1oZWlnaHQ6IDEwMCU7XCIgW2Rpc2FibGVkXT1cImxvYWRpbmdcIiB0ZXh0PVwiVm9sdGFyXCIgW2RlZmF1bHRIcmVmXT1cIkRlZmF1bHRCYWNrUm91dGVcIj48L2lvbi1iYWNrLWJ1dHRvbj5cclxuICAgICAgfVxyXG5cclxuICAgICAgPCEtLSA8aW9uLWNhcmQgYnV0dG9uIFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgY2xhc3M9XCJoLWZ1bGwgdy0xMiBtLTAgZGVmYXVsdC10cmFuc2l0aW9uXCIgc3R5bGU9XCJib3JkZXItY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KVwiPlxyXG4gICAgICAgIDxpb24tY2FyZC1jb250ZW50IGNsYXNzPVwicC0wIGJnLXRyYW5zcGFyZW50XCI+XHJcbiAgICAgICAgICBAaWYoIXVzZURlZmF1bHRSb3V0aW5nKXtcclxuICAgICAgICAgICAgPGlvbi1iYWNrLWJ1dHRvbiBjbGFzcz1cInNjYWxlLTc1IHNpemUtZnVsbFwiIHN0eWxlPVwiLS1taW4taGVpZ2h0OiAxMDAlO1wiIHRleHQ9XCJcIiAgW2RlZmF1bHRIcmVmXT1cIkJhY2tSb3V0ZVwiID5cclxuICAgICAgICAgICAgPC9pb24tYmFjay1idXR0b24+XHJcbiAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBjbGFzcz1cInNpemUtZnVsbFwiIHNpemU9XCJzbWFsbFwiIGZpbGw9XCJjbGVhclwiIFtyb3V0ZXJMaW5rXT1cIkJhY2tSb3V0ZVwiPlxyXG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hldnJvbi1iYWNrXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDwvaW9uLWNhcmQ+IC0tPlxyXG4gICAgfVxyXG4gICAgQGlmKCFub0JhY2spe1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiaC1mdWxsIGJvcmRlci1yLTIgYm9yZGVyLXItcHJpbWFyeSBib3JkZXItc29saWQgbWFzay15LzUwXCI+PC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcbiAgICAgIDxpb24tYnV0dG9uIGNsYXNzPVwiLW14LTJcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIGZpbGw9XCJjbGVhclwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJTYXZlKClcIj5cclxuICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJ0ZXh0LWJhc2VcIiBzbG90PVwic3RhcnRcIiBuYW1lPVwic2F2ZVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwidGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICBTYWx2YXJcclxuICAgICAgICA8L2lvbi10ZXh0PlxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgdy1bMTI1JV0gaC1bMTI1JV0gLXRvcC1bMTIuNSVdIC1sZWZ0LVsxMi41JV0gZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZGVmYXVsdC10cmFuc2l0aW9uIGJhY2tkcm9wLWJsdXItc21cIiBbbmdDbGFzc109XCJ7J29wYWNpdHktMCAtdHJhbnNsYXRlLXktOCc6ICFsb2FkaW5nfVwiPlxyXG4gICAgICAgIDxpb24tdGV4dCBjb2xvcj1cInN1Y2Nlc3NcIiBjbGFzcz1cInRleHQtc20gbXQtMVwiPjxiPlxyXG4gICAgICAgICAgQGlmKHByb2dyZXNzKXtcclxuICAgICAgICAgICAge3socHJvZ3Jlc3MgKiAxMDApIHwgbnVtYmVyOiAnMS4xLTEnfX0lXHJcbiAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICB7ezAgfCBudW1iZXI6ICcxLjEtMSd9fSVcclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2I+PC9pb24tdGV4dD5cclxuICAgICAgICA8aW9uLXByb2dyZXNzLWJhciBbdmFsdWVdPVwicHJvZ3Jlc3NcIiBjb2xvcj1cInN1Y2Nlc3NcIiBjbGFzcz1cInctZnVsbCBkZWZhdWx0LXRyYW5zaXRpb25cIj48L2lvbi1wcm9ncmVzcy1iYXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1zdGFydF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInctMS8yIGZsZXgganVzdGlmeS1lbmQgaXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD1lbmRdXCI+PC9uZy1jb250ZW50PlxyXG5cclxuICAgIEBpZighKG5vTmV3IHx8IG5vdm8pKXtcclxuICAgICAgPGlvbi1idXR0b24gI25ldyBbcm91dGVyTGlua109XCJbJy4uLyddXCIgY2xhc3M9XCJtLTBcIiBmaWxsPVwiY2xlYXJcIiBzaXplPVwic21hbGxcIj5cclxuICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJ0ZXh0LWJhc2VcIiBuYW1lPVwiYWRkXCIgc2xvdD1cInN0YXJ0XCI+PC9pb24taWNvbj4gXHJcbiAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwidGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICBOb3ZvXHJcbiAgICAgICAgPC9pb24tdGV4dD5cclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC12aWV3L2hlYWRlci12aWV3L2hlYWRlci12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdmlldy9oZWFkZXItdmlldy9oZWFkZXItdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFXLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7Ozs7OztBQU8zRixNQUFNLE9BQU8sbUJBQW1CO0lBcUI5QixZQUNVLGFBQTRCLEVBQzVCLGNBQThCLEVBQzlCLFVBQXFDO1FBRnJDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixlQUFVLEdBQVYsVUFBVSxDQUEyQjtRQXRCdEMsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUV0QixhQUFRLEdBQWtCLElBQUksQ0FBQztRQUV4QixnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTNFLDREQUE0RDtRQUNuRCxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDNUMsOEJBQThCO1FBQ3JCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDakMsNkJBQTZCO1FBQ3BCLFVBQUssR0FBYSxLQUFLLENBQUM7UUFDakMsK0ZBQStGO1FBQ3RGLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUM1Qzs7VUFFRTtRQUNPLG1CQUFjLEdBQXlDLFNBQVMsQ0FBQztJQU10RSxDQUFDO0lBRUwsUUFBUSxLQUFJLENBQUM7SUFFYixJQUFjLGdCQUFnQjtRQUM1QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLElBQUksR0FBRyxDQUFDO0lBQy9DLENBQUM7SUFHTSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUk7UUFDdkIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRU0sR0FBRztRQUNSLElBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUM7WUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQzsrR0E5Q1UsbUJBQW1CO21HQUFuQixtQkFBbUIsbVdBaUNuQixhQUFhLDZJQzNDMUIsaTlGQStETTs7NEZEckRPLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxhQUFhO3NKQU1kLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFVSxXQUFXO3NCQUExQixNQUFNO3VCQUFDLE1BQU07Z0JBR0wsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUlHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBY29CLG9CQUFvQjtzQkFBN0MsU0FBUzt1QkFBQyxhQUFhO2dCQUlOLG1CQUFtQjtzQkFBcEMsU0FBUzt1QkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElvbkJhY2tCdXR0b24sIE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi1jb250ZXh0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdoZWFkZXItdmlldycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXItdmlldy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGVhZGVyVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIG5vdm86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHByb2dyZXNzOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBcclxuICBAT3V0cHV0KCdzYXZlJykgc2F2ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTsgIFxyXG5cclxuICAvKiogSGFiaWxpdGEvRGVzYWJpbGl0YSBvIGZvY3VzIG5vIHByaW1laXJvIGNhbXBvIGRhIHZpZXcgKi9cclxuICBASW5wdXQoKSBmb2N1c0luRmlyc3RGaWVsZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiBSZW1vdmUgbyBib3TDo28gZGUgdm9sdGEgKi9cclxuICBASW5wdXQoKSBub0JhY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogUmVtb3ZlIG8gYm90w6NvIGRlIE5vdm8gKi9cclxuICBASW5wdXQoKSBub05ldyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogUGFyw6JtZXRybyB1c2FkbyBlbSB0ZWxhcyBkZW50cm8gZGUgdGVsYXMsIHBhcmEgcXVlIG8gcmV0b3JubyBzZW1wcmUgc2VqYSBhIHRlbGEgYW50ZXJpb3IgKi9cclxuICBASW5wdXQoKSB1c2VEZWZhdWx0Um91dGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiAgXHJcbiAgICogUm90YSBwYXJhIHZvbHRhciwgY2FzbyBuw6NvIHNlamEgZGVmaW5pZGEsIG8gY29tcG9uZW50ZSBpcsOhIHRlbnRhciB1c2FyIHJvdGEgZG8gaW9uaWNcclxuICAqL1xyXG4gIEBJbnB1dCgpIGJhY2tSb3V0ZXJMaW5rOiBzdHJpbmcgfCBhbnlbXSB8IFVybFRyZWUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuYXZDb250cm9sbGVyOiBOYXZDb250cm9sbGVyLFxyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIG5hdkNvbnRleHQgOiBOYXZpZ2F0aW9uQ29udGV4dFNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gIHByb3RlY3RlZCBnZXQgRGVmYXVsdEJhY2tSb3V0ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubmF2Q29udGV4dC5nZXRCYWNrUm91dGUoKSA/PyAnLyc7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKElvbkJhY2tCdXR0b24pIElvbkJhY2tCdXR0b25FbGVtZW50OiBJb25CYWNrQnV0dG9uOyBcclxuICBwdWJsaWMgQmFjaygkZXZlbnQgPSBudWxsKXtcclxuICAgIHRoaXMuSW9uQmFja0J1dHRvbkVsZW1lbnQub25DbGljaygkZXZlbnQpXHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ25ldycpIE5ld0lvbkJ1dHRvbkVsZW1lbnQ6IEVsZW1lbnRSZWY7IFxyXG4gIHB1YmxpYyBOZXcoKXtcclxuICAgIGlmKCF0aGlzLm5vdm8pe1xyXG4gICAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVGb3J3YXJkKFsnLi4vJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZX0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgU2F2ZSgpOiB2b2lke1xyXG4gICAgdGhpcy5zYXZlRW1pdHRlci5lbWl0KCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidy1mdWxsIGgtNyBmbGV4XCI+XHJcbiAgPGRpdiBjbGFzcz1cInctMS8yIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnQgZ2FwLTNcIj5cclxuICAgIEBpZighbm9CYWNrKXtcclxuICAgICAgQGlmKHVzZURlZmF1bHRSb3V0aW5nIHx8IGJhY2tSb3V0ZXJMaW5rKXtcclxuICAgICAgICA8aW9uLWJ1dHRvbiBjbGFzcz1cIm0tMFwiIGZpbGw9XCJjbGVhclwiIHNpemU9XCJzbWFsbFwiIFtyb3V0ZXJMaW5rXT1cImJhY2tSb3V0ZXJMaW5rID8gYmFja1JvdXRlckxpbmsgOiBEZWZhdWx0QmFja1JvdXRlXCI+XHJcbiAgICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJ0ZXh0LVsxLjdyZW1dXCIgbmFtZT1cImNoZXZyb24tYmFja1wiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwidGV4dC1iYXNlXCI+Vm9sdGFyPC9pb24tdGV4dD5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2V7XHJcbiAgICAgICAgPGlvbi1iYWNrLWJ1dHRvbiBzdHlsZT1cIi0tbWluLWhlaWdodDogMTAwJTtcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIHRleHQ9XCJWb2x0YXJcIiBbZGVmYXVsdEhyZWZdPVwiRGVmYXVsdEJhY2tSb3V0ZVwiPjwvaW9uLWJhY2stYnV0dG9uPlxyXG4gICAgICB9XHJcblxyXG4gICAgICA8IS0tIDxpb24tY2FyZCBidXR0b24gW2Rpc2FibGVkXT1cImxvYWRpbmdcIiBjbGFzcz1cImgtZnVsbCB3LTEyIG0tMCBkZWZhdWx0LXRyYW5zaXRpb25cIiBzdHlsZT1cImJvcmRlci1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpXCI+XHJcbiAgICAgICAgPGlvbi1jYXJkLWNvbnRlbnQgY2xhc3M9XCJwLTAgYmctdHJhbnNwYXJlbnRcIj5cclxuICAgICAgICAgIEBpZighdXNlRGVmYXVsdFJvdXRpbmcpe1xyXG4gICAgICAgICAgICA8aW9uLWJhY2stYnV0dG9uIGNsYXNzPVwic2NhbGUtNzUgc2l6ZS1mdWxsXCIgc3R5bGU9XCItLW1pbi1oZWlnaHQ6IDEwMCU7XCIgdGV4dD1cIlwiICBbZGVmYXVsdEhyZWZdPVwiQmFja1JvdXRlXCIgPlxyXG4gICAgICAgICAgICA8L2lvbi1iYWNrLWJ1dHRvbj5cclxuICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGNsYXNzPVwic2l6ZS1mdWxsXCIgc2l6ZT1cInNtYWxsXCIgZmlsbD1cImNsZWFyXCIgW3JvdXRlckxpbmtdPVwiQmFja1JvdXRlXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLWJhY2tcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cclxuICAgICAgPC9pb24tY2FyZD4gLS0+XHJcbiAgICB9XHJcbiAgICBAaWYoIW5vQmFjayl7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGwgYm9yZGVyLXItMiBib3JkZXItci1wcmltYXJ5IGJvcmRlci1zb2xpZCBtYXNrLXkvNTBcIj48L2Rpdj5cclxuICAgIH1cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cclxuICAgICAgPGlvbi1idXR0b24gY2xhc3M9XCItbXgtMlwiIFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgZmlsbD1cImNsZWFyXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cIlNhdmUoKVwiPlxyXG4gICAgICAgIDxpb24taWNvbiBjbGFzcz1cInRleHQtYmFzZVwiIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJzYXZlXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJ0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgIFNhbHZhclxyXG4gICAgICAgIDwvaW9uLXRleHQ+XHJcbiAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB3LVsxMjUlXSBoLVsxMjUlXSAtdG9wLVsxMi41JV0gLWxlZnQtWzEyLjUlXSBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBkZWZhdWx0LXRyYW5zaXRpb24gYmFja2Ryb3AtYmx1ci1zbVwiIFtuZ0NsYXNzXT1cInsnb3BhY2l0eS0wIC10cmFuc2xhdGUteS04JzogIWxvYWRpbmd9XCI+XHJcbiAgICAgICAgPGlvbi10ZXh0IGNvbG9yPVwic3VjY2Vzc1wiIGNsYXNzPVwidGV4dC1zbSBtdC0xXCI+PGI+XHJcbiAgICAgICAgICBAaWYocHJvZ3Jlc3Mpe1xyXG4gICAgICAgICAgICB7eyhwcm9ncmVzcyAqIDEwMCkgfCBudW1iZXI6ICcxLjEtMSd9fSVcclxuICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgIHt7MCB8IG51bWJlcjogJzEuMS0xJ319JVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvYj48L2lvbi10ZXh0PlxyXG4gICAgICAgIDxpb24tcHJvZ3Jlc3MtYmFyIFt2YWx1ZV09XCJwcm9ncmVzc1wiIGNvbG9yPVwic3VjY2Vzc1wiIGNsYXNzPVwidy1mdWxsIGRlZmF1bHQtdHJhbnNpdGlvblwiPjwvaW9uLXByb2dyZXNzLWJhcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PXN0YXJ0XVwiPjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwidy0xLzIgZmxleCBqdXN0aWZ5LWVuZCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PWVuZF1cIj48L25nLWNvbnRlbnQ+XHJcblxyXG4gICAgQGlmKCEobm9OZXcgfHwgbm92bykpe1xyXG4gICAgICA8aW9uLWJ1dHRvbiAjbmV3IFtyb3V0ZXJMaW5rXT1cIlsnLi4vJ11cIiBjbGFzcz1cIm0tMFwiIGZpbGw9XCJjbGVhclwiIHNpemU9XCJzbWFsbFwiPlxyXG4gICAgICAgIDxpb24taWNvbiBjbGFzcz1cInRleHQtYmFzZVwiIG5hbWU9XCJhZGRcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPiBcclxuICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJ0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgIE5vdm9cclxuICAgICAgICA8L2lvbi10ZXh0PlxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -7,6 +7,7 @@ import { firstValueFrom, lastValueFrom } from "rxjs";
7
7
  import { HeaderViewComponent } from "./header-view/header-view.component";
8
8
  import { CustomInput } from "../../inputs/custom-input";
9
9
  import { Timeout } from "../../../services/utils.service";
10
+ import { NavigationContextService } from '../../../services/navigation-context.service';
10
11
  import * as i0 from "@angular/core";
11
12
  export class View {
12
13
  constructor() {
@@ -33,6 +34,7 @@ export class View {
33
34
  this.activatedRoute = inject(ActivatedRoute);
34
35
  this.elementRef = inject(ElementRef);
35
36
  this.fb = inject(FormBuilder);
37
+ this.navContext = inject(NavigationContextService);
36
38
  }
37
39
  async ngOnInit() {
38
40
  if (this.lstTableFields.length == 0) {
@@ -119,20 +121,13 @@ export class View {
119
121
  this.SaveEmitter.emit(this.id);
120
122
  }
121
123
  get BackRoute() {
122
- const fullRoute = window.location.pathname.split('/');
123
- const li = fullRoute[fullRoute.length - 1];
124
- var offset = 1;
125
- if (Number(li)) {
126
- offset++;
127
- }
128
- let route = [];
129
- for (let i = 0; i < fullRoute.length - offset; i++) {
130
- route.push(fullRoute[i]);
131
- }
132
- return route.join('/');
124
+ return this.navContext.getBackRoute() ?? '/';
133
125
  }
134
126
  GetCurrentRouting() { return this.activatedRoute; }
135
- NavigateToList() { this.navController.navigateBack(this.BackRoute); }
127
+ NavigateToList() {
128
+ const back = this.navContext.getBackRoute() ?? '/';
129
+ this.navController.navigateBack(back);
130
+ }
136
131
  onKeyPress($event) {
137
132
  if (!(this.elementRef.nativeElement.contains(document.activeElement) || document.activeElement == this.elementRef.nativeElement)) {
138
133
  return;
@@ -200,4 +195,4 @@ function instanceOfViewWillCreateForm(object) {
200
195
  function instanceOfViewDidCreateForm(object) {
201
196
  return 'OnViewDidCreateForm' in object;
202
197
  }
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdmlldy92aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEssT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUlqRCxPQUFPLEVBQUUsY0FBYyxFQUFJLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFHMUQsTUFBTSxPQUFnQixJQUFJO0lBdUJ4QjtRQXRCQSxpQ0FBaUM7UUFDeEIsT0FBRSxHQUF5QixJQUFJLENBQUM7UUFDaEMsWUFBTyxHQUFjLEtBQUssQ0FBQztRQUMzQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBS3BDOzs7O1dBSUc7UUFDTSxzQkFBaUIsR0FBWSxDQUFDLENBQUM7UUFPOUIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQVNsQzs7WUFFSTtRQUNLLG1CQUFjLEdBQWlCLEVBQUUsQ0FBQztRQUMzQixpQkFBWSxHQUFrQixXQUFXLENBQUE7UUFnRC9CLDBC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WUFDeEIsT0FBTztRQUNULENBQUM7SUFDSCxDQUFDOytHQW5LbUIsSUFBSTttR0FBSixJQUFJLHNpQkE2SWIsbUJBQW1CLHFFQW5FaEIsV0FBVyxnREEzRUosRUFBRTs7NEZBQ0gsSUFBSTtrQkFEekIsU0FBUzsrQkFBYSxFQUFFO3dEQUdkLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFNRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBbUJHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFHaUIsT0FBTztzQkFBN0IsU0FBUzt1QkFBQyxVQUFVO2dCQXFDTSxlQUFlO3NCQUF6QyxZQUFZO3VCQUFDLFdBQVc7Z0JBUUMscUJBQXFCO3NCQUE5QyxNQUFNO3VCQUFDLGdCQUFnQjtnQkFvQ1IsV0FBVztzQkFBMUIsTUFBTTt1QkFBQyxNQUFNO2dCQXVCa0IsMEJBQTBCO3NCQUF6RCxTQUFTO3VCQUFDLG1CQUFtQjtnQkFHOUIsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLGdCQUFnQixFQUFDLENBQUMsUUFBUSxDQUFDOztBQTBCM0MsU0FBUyw0QkFBNEIsQ0FBQyxNQUFXO0lBQy9DLE9BQU8sc0JBQXNCLElBQUksTUFBTSxDQUFDO0FBQzFDLENBQUM7QUFJRCxTQUFTLDJCQUEyQixDQUFDLE1BQVc7SUFDOUMsT0FBTyxxQkFBcUIsSUFBSSxNQUFNLENBQUM7QUFDekMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgdmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgICAgICB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy93ZWIvaHR0cC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlQXRpdm8gfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvd2ViL2h0dHAuYXRpdm8uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSAgIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2dlbmVyaWMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUYWJsZUZpZWxkRm9ybUJ1aWxkZXIgfSBmcm9tIFwiLi4vLi4vLi4vY2xhc3Nlcy9pbnB1dHMvdGFibGUtZmllbGQtZm9ybS1idWlsZGVyXCI7XHJcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tIFwiQGlvbmljL2FuZ3VsYXJcIjtcclxuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIGxhc3RWYWx1ZUZyb20gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBIZWFkZXJWaWV3Q29tcG9uZW50IH0gZnJvbSBcIi4vaGVhZGVyLXZpZXcvaGVhZGVyLXZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRhYmxlRmllbGQgfSBmcm9tIFwiLi4vLi4vLi4vY2xhc3Nlcy9pbnB1dHMvdGFibGUtZmllbGRcIjtcclxuaW1wb3J0IHsgUm91dGVEYXRhIH0gZnJvbSBcIi4uLy4uLy4uL2NsYXNzZXMvcm91dGVzL3JvdXRlLWRhdGFcIjtcclxuaW1wb3J0IHsgQ3VzdG9tSW5wdXQgfSBmcm9tIFwiLi4vLi4vaW5wdXRzL2N1c3RvbS1pbnB1dFwiO1xyXG5pbXBvcnQgeyBUaW1lb3V0IH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycsIHN0eWxlczogJycgfSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZpZXc8VCBleHRlbmRzIEh0dHBTZXJ2aWNlIHwgSHR0cFNlcnZpY2VBdGl2bz4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8qKiBJZCBkbyBkYWRvIGEgc2VyIGNhcnJlZ2FkbyAqL1xyXG4gIEBJbnB1dCgpIGlkICAgICAgIDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgbG9hZGluZyAgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3VibWl0dGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqIFByb2dyZXNzbyBkZSBzYWx2YW1lbnRvICovXHJcbiAgQElucHV0KCkgcHJvZ3Jlc3MgOiBudW1iZXI7XHJcbiAgLyoqIFNlcnZpY2UgYSBzZXIgdXRsaXphZG8gbmEgdmlldyAqL1xyXG4gIEBJbnB1dCgpIHNlcnZpY2UgIDogVDtcclxuICAvKiogSGFiaWxpdGEvRGVzYWJpbGl0YSBvIGZvY3VzIG5vIHByaW1laXJvIGNhbXBvIGRhIHZpZXdcclxuICAgKiAxIC0gcGFyYSBhdGl2YXIgbm8gbm92byBlIG5vIGVkaXRhclxyXG4gICAqIDIgLSBwYXJhIGF0aXZhciBhcGVuYXMgbm8gbm92b1xyXG4gICAqIDMgLSBwYXJhIGRlc2F0aXZhciBwYXJhIG9zIGRvaXMgY2Fzb3NcclxuICAgKi9cclxuICBASW5wdXQoKSBzdGFydEluRmlyc3RGaWVsZCA6IG51bWJlciA9IDI7XHJcblxyXG4gIHByb3RlY3RlZCBnZW5lcmljU2VydmljZTogR2VuZXJpY1NlcnZpY2U7XHJcbiAgcHJvdGVjdGVkIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZTtcclxuICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcclxuICBwcm90ZWN0ZWQgZmI6IEZvcm1CdWlsZGVyO1xyXG5cclxuICBwcm90ZWN0ZWQgbmVzdGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgICB0aGlzLmdlbmVyaWNTZXJ2aWNlID0gaW5qZWN0KEdlbmVyaWNTZXJ2aWNlKVxyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSlcclxuICAgIHRoaXMuZWxlbWVudFJlZiAgICAgPSBpbmplY3QoRWxlbWVudFJlZilcclxuICAgIHRoaXMuZmIgICAgICAgICAgICAgPSBpbmplY3QoRm9ybUJ1aWxkZXIpXHJcbiAgfVxyXG5cclxuICAvKiogTGlzdGEgZGUgVGFibGVGaWVsZHMgYSBzZXJlbSBpbnZvY2Fkb3MgZGUgYWNvcmRvIGNvbSBzdWEgY29uZmlndXJhw6fDo28uXHJcbiAgICogQXV0b21hdGljYW1lbnRlIHByZWVuY2hpZG8gY29tIHNlcnZpY2UubHN0VGFibGVGaWVsZHNWaWV3IG91IHNlcnZpY2UubHN0VGFibGVGaWVsZHMgcXVhbmRvIG7Do28gaW5mb3JtYWRvXHJcbiAgICAqL1xyXG4gIEBJbnB1dCgpIGxzdFRhYmxlRmllbGRzOiBUYWJsZUZpZWxkW10gPSBbXTtcclxuICBASW5wdXQoKSBwdWJsaWMgcmVkaXJlY3RQYXRoOiBzdHJpbmcgfCBudWxsID0gXCIvdmlldy86aWRcIlxyXG4gIFxyXG4gIFxyXG4gIEBWaWV3Q2hpbGQoJy53cmFwcGVyJykgV3JhcHBlcjogSFRNTEVsZW1lbnQ7XHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICBpZih0aGlzLmxzdFRhYmxlRmllbGRzLmxlbmd0aCA9PSAwKXtcclxuICAgICAgaWYodGhpcy5zZXJ2aWNlLmxzdFRhYmxlRmllbGRzVmlldy5sZW5ndGggIT0gMCl7XHJcbiAgICAgICAgdGhpcy5sc3RUYWJsZUZpZWxkcyA9IHRoaXMuc2VydmljZS5sc3RUYWJsZUZpZWxkc1ZpZXc7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMubHN0VGFibGVGaWVsZHMgPSB0aGlzLnNlcnZpY2UubHN0VGFibGVGaWVsZHM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZih0aGlzLmlkID09IG51bGwpe1xyXG4gICAgICB0aGlzLmlkID0gdGhpcy5nZW5lcmljU2VydmljZS5HZXRJZCh0aGlzLmFjdGl2YXRlZFJvdXRlLCAwKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgaWYoIXRoaXMuc2VydmljZSl7IGNvbnNvbGUud2FybihcIlsgVmlldyBzZXJ2aWNlIGlzIG5vdCB2YWxpZCEgXVwiKTsgfVxyXG4gICAgaWYgKGluc3RhbmNlT2ZWaWV3V2lsbENyZWF0ZUZvcm0odGhpcykpIHsgdGhpcy5PblZpZXdXaWxsQ3JlYXRlRm9ybSgpIH1cclxuICAgIGF3YWl0IHRoaXMuQ3JlYXRlRm9ybSgpO1xyXG4gICAgaWYgKGluc3RhbmNlT2ZWaWV3RGlkQ3JlYXRlRm9ybSh0aGlzKSkgeyB0aGlzLk9uVmlld0RpZENyZWF0ZUZvcm0oKSB9XHJcbiAgXHJcbiAgICBpZih0aGlzLmVsZW1lbnRSZWYgJiYgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCl7XHJcbiAgICAgIHRoaXMubmVzdGVkID0gKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQudGFnTmFtZSBhcyBzdHJpbmcpLnRvVXBwZXJDYXNlKCkgIT0gXCJJT04tQ09OVEVOVFwiO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMubmVzdGVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBhd2FpdCB0aGlzLlJlZnJlc2goKTtcclxuXHJcbiAgICBpZih0aGlzLnN0YXJ0SW5GaXJzdEZpZWxkID09IDEpe1xyXG4gICAgICBhd2FpdCB0aGlzLkZvY3VzT25GaXJzdEZpZWxkKCk7XHJcbiAgICB9ZWxzZSBpZiAodGhpcy5zdGFydEluRmlyc3RGaWVsZCA9PSAyKXtcclxuICAgICAgaWYoIXRoaXMuaWQpe1xyXG4gICAgICAgIGF3YWl0IHRoaXMuRm9jdXNPbkZpcnN0RmllbGQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oQ3VzdG9tSW5wdXQpIGxzdEN1c3RvbUlucHV0czogUXVlcnlMaXN0PEN1c3RvbUlucHV0PGFueT4+O1xyXG4gIGFzeW5jIEZvY3VzT25GaXJzdEZpZWxkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdHJ5e1xyXG4gICAgICBhd2FpdCBUaW1lb3V0KDEwMCk7XHJcbiAgICAgIHRoaXMubHN0Q3VzdG9tSW5wdXRzLmZpcnN0LnNldEZvY3VzKG51bGwpO1xyXG4gICAgfWNhdGNoe31cclxuICB9XHJcblxyXG4gIEBPdXRwdXQoJ1ZpZXdEaWRSZWZyZXNoJykgVmlld0RpZFJlZnJlc2hFbWl0dGVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgYXN5bmMgUmVmcmVzaCgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0cnl7XHJcbiAgICAgIGF3YWl0IHRoaXMuTG9hZCgpO1xyXG4gICAgfWZpbmFsbHl7IH1cclxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5WaWV3RGlkUmVmcmVzaEVtaXR0ZXIuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgTG9hZCgpOiBQcm9taXNlPHZvaWQ+e1xyXG4gICAgaWYoIXRoaXMuaWQpeyByZXR1cm47IH1cclxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2VydmljZS5HZXQodGhpcy5pZCkpO1xyXG4gICAgdGhpcy5mcm0ucGF0Y2hWYWx1ZShyZXMpO1xyXG4gIH1cclxuXHJcbiAgZnJtOiBGb3JtR3JvdXA7XHJcbiAgYXN5bmMgQ3JlYXRlRm9ybSgpIHtcclxuICAgIHRoaXMuZnJtID0gVGFibGVGaWVsZEZvcm1CdWlsZGVyLmNyZWF0ZSh0aGlzLmxzdFRhYmxlRmllbGRzLCB0aGlzLmZiKTtcclxuICAgIGF3YWl0IHRoaXMuTG9hZElkQ29tcGFyaXNvbigpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgTG9hZElkQ29tcGFyaXNvbigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRyeXtcclxuICAgICAgY29uc3QgZGF0YTogUm91dGVEYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5hY3RpdmF0ZWRSb3V0ZS5kYXRhKSBhcyBSb3V0ZURhdGE7XHJcbiAgICAgIGlmKCFkYXRhKXsgcmV0dXJuOyB9XHJcbiAgICAgIGNvbnN0IGlkICAgPSB0aGlzLmdlbmVyaWNTZXJ2aWNlLkdldElkKHRoaXMuYWN0aXZhdGVkUm91dGUsIGRhdGEuaWRQcmVsb2FkZXJDb25maWd1cmF0aW9uLnJvdXRlRGVwdGgpO1xyXG4gICAgICBcclxuICAgICAgaWYoIWlkKXsgcmV0dXJuOyB9XHJcblxyXG4gICAgICB0aGlzLmZybS5jb250cm9sc1tkYXRhLmlkUHJlbG9hZGVyQ29uZmlndXJhdGlvbi5wcm9wZXJ0eU5hbWVdLnNldFZhbHVlKGlkKTtcclxuICAgICAgdGhpcy5sc3RUYWJsZUZpZWxkcy5maW5kKHAgPT4gcC5pbmRleCA9PSBkYXRhLmlkUHJlbG9hZGVyQ29uZmlndXJhdGlvbi5wcm9wZXJ0eU5hbWUpLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgIH1jYXRjaHsgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEVtaXRlIG8gaWQgZGEgZW50aWRhZGUgc2FsdmEgYXBvcyBvIHNhbHZhbWVudG8gKi9cclxuICBAT3V0cHV0KCdTYXZlJykgU2F2ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgYXN5bmMgU2F2ZSgpIHtcclxuICAgIGF3YWl0IGxhc3RWYWx1ZUZyb20odGhpcy5zZXJ2aWNlLlNhdmUodGhpcy5mcm0sIHRoaXMpKTtcclxuICAgIHRoaXMuU2F2ZUVtaXR0ZXIuZW1pdCh0aGlzLmlkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgQmFja1JvdXRlKCl7XHJcbiAgICBjb25zdCBmdWxsUm91dGUgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3BsaXQoJy8nKVxyXG5cclxuICAgIGNvbnN0IGxpID0gZnVsbFJvdXRlW2Z1bGxSb3V0ZS5sZW5ndGggLSAxXTtcclxuICAgIHZhciBvZmZzZXQgPSAxO1xyXG4gICAgaWYoTnVtYmVyKGxpKSl7IG9mZnNldCsrOyB9XHJcbiAgICBsZXQgcm91dGU6IHN0cmluZ1tdID0gW11cclxuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBmdWxsUm91dGUubGVuZ3RoIC0gb2Zmc2V0OyBpKyspeyByb3V0ZS5wdXNoKGZ1bGxSb3V0ZVtpXSk7IH1cclxuICAgIHJldHVybiByb3V0ZS5qb2luKCcvJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0Q3VycmVudFJvdXRpbmcoKTogQWN0aXZhdGVkUm91dGUgeyByZXR1cm4gdGhpcy5hY3RpdmF0ZWRSb3V0ZTsgfVxyXG5cclxuICBwcm90ZWN0ZWQgbmF2Q29udHJvbGxlcjogTmF2Q29udHJvbGxlcjtcclxuICBwcm90ZWN0ZWQgTmF2aWdhdGVUb0xpc3QoKTogdm9pZHsgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlQmFjayh0aGlzLkJhY2tSb3V0ZSk7IH1cclxuXHJcblxyXG4gIEBWaWV3Q2hpbGQoSGVhZGVyVmlld0NvbXBvbmVudCkgSGVhZGVyVmlld0NvbXBvbmVudEVsZW1lbnQ6IEhlYWRlclZpZXdDb21wb25lbnQ7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duJyxbJyRldmVudCddKVxyXG4gIG9uS2V5UHJlc3MoJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZighKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHx8IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYoJGV2ZW50LmtleSA9PSAnRXNjYXBlJyl7XHJcbiAgICAgIHRoaXMuSGVhZGVyVmlld0NvbXBvbmVudEVsZW1lbnQuQmFjaygkZXZlbnQpO1xyXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYoKCRldmVudC5jdHJsS2V5IHx8ICRldmVudC5tZXRhS2V5KSAmJiAoJGV2ZW50LmtleSA9PSAnRW50ZXInKSl7XHJcbiAgICAgIHRoaXMuU2F2ZSgpO1xyXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYoJGV2ZW50LmFsdEtleSAmJiAkZXZlbnQua2V5ID09ICdJbnNlcnQnKXtcclxuICAgICAgdGhpcy5IZWFkZXJWaWV3Q29tcG9uZW50RWxlbWVudC5OZXcoKTtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVmlld1dpbGxDcmVhdGVGb3Jte1xyXG4gIE9uVmlld1dpbGxDcmVhdGVGb3JtKCk6IHZvaWQgfCBhbnk7XHJcbn0gXHJcbmZ1bmN0aW9uIGluc3RhbmNlT2ZWaWV3V2lsbENyZWF0ZUZvcm0ob2JqZWN0OiBhbnkpOiBvYmplY3QgaXMgVmlld1dpbGxDcmVhdGVGb3JtIHtcclxuICByZXR1cm4gJ09uVmlld1dpbGxDcmVhdGVGb3JtJyBpbiBvYmplY3Q7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBWaWV3RGlkQ3JlYXRlRm9ybSB7XHJcbiAgT25WaWV3RGlkQ3JlYXRlRm9ybSgpOiB2b2lkIHwgYW55O1xyXG59IFxyXG5mdW5jdGlvbiBpbnN0YW5jZU9mVmlld0RpZENyZWF0ZUZvcm0ob2JqZWN0OiBhbnkpOiBvYmplY3QgaXMgVmlld0RpZENyZWF0ZUZvcm0ge1xyXG4gIHJldHVybiAnT25WaWV3RGlkQ3JlYXRlRm9ybScgaW4gb2JqZWN0O1xyXG59XHJcblxyXG4iXX0=
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdmlldy92aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEssT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUlqRCxPQUFPLEVBQUUsY0FBYyxFQUFJLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFHeEYsTUFBTSxPQUFnQixJQUFJO0lBdUJ4QjtRQXRCQSxpQ0FBaUM7UUFDeEIsT0FBRSxHQUF5QixJQUFJLENBQUM7UUFDaEMsWUFBTyxHQUFjLEtBQUssQ0FBQztRQUMzQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBS3BDOzs7O1dBSUc7UUFDTSxzQkFBaUIsR0FBWSxDQUFDLENBQUM7UUFPOUIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQVVsQzs7WUFFSTtRQUNLLG1CQUFjLEdBQWlCLEVB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b0JHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFHaUIsT0FBTztzQkFBN0IsU0FBUzt1QkFBQyxVQUFVO2dCQXFDTSxlQUFlO3NCQUF6QyxZQUFZO3VCQUFDLFdBQVc7Z0JBUUMscUJBQXFCO3NCQUE5QyxNQUFNO3VCQUFDLGdCQUFnQjtnQkFvQ1IsV0FBVztzQkFBMUIsTUFBTTt1QkFBQyxNQUFNO2dCQW9Ca0IsMEJBQTBCO3NCQUF6RCxTQUFTO3VCQUFDLG1CQUFtQjtnQkFHOUIsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLGdCQUFnQixFQUFDLENBQUMsUUFBUSxDQUFDOztBQTBCM0MsU0FBUyw0QkFBNEIsQ0FBQyxNQUFXO0lBQy9DLE9BQU8sc0JBQXNCLElBQUksTUFBTSxDQUFDO0FBQzFDLENBQUM7QUFJRCxTQUFTLDJCQUEyQixDQUFDLE1BQVc7SUFDOUMsT0FBTyxxQkFBcUIsSUFBSSxNQUFNLENBQUM7QUFDekMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgdmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgICAgICB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy93ZWIvaHR0cC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlQXRpdm8gfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvd2ViL2h0dHAuYXRpdm8uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSAgIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2dlbmVyaWMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUYWJsZUZpZWxkRm9ybUJ1aWxkZXIgfSBmcm9tIFwiLi4vLi4vLi4vY2xhc3Nlcy9pbnB1dHMvdGFibGUtZmllbGQtZm9ybS1idWlsZGVyXCI7XHJcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tIFwiQGlvbmljL2FuZ3VsYXJcIjtcclxuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIGxhc3RWYWx1ZUZyb20gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBIZWFkZXJWaWV3Q29tcG9uZW50IH0gZnJvbSBcIi4vaGVhZGVyLXZpZXcvaGVhZGVyLXZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRhYmxlRmllbGQgfSBmcm9tIFwiLi4vLi4vLi4vY2xhc3Nlcy9pbnB1dHMvdGFibGUtZmllbGRcIjtcclxuaW1wb3J0IHsgUm91dGVEYXRhIH0gZnJvbSBcIi4uLy4uLy4uL2NsYXNzZXMvcm91dGVzL3JvdXRlLWRhdGFcIjtcclxuaW1wb3J0IHsgQ3VzdG9tSW5wdXQgfSBmcm9tIFwiLi4vLi4vaW5wdXRzL2N1c3RvbS1pbnB1dFwiO1xyXG5pbXBvcnQgeyBUaW1lb3V0IH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi1jb250ZXh0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJywgc3R5bGVzOiAnJyB9KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVmlldzxUIGV4dGVuZHMgSHR0cFNlcnZpY2UgfCBIdHRwU2VydmljZUF0aXZvPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLyoqIElkIGRvIGRhZG8gYSBzZXIgY2FycmVnYWRvICovXHJcbiAgQElucHV0KCkgaWQgICAgICAgOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBsb2FkaW5nICA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogUHJvZ3Jlc3NvIGRlIHNhbHZhbWVudG8gKi9cclxuICBASW5wdXQoKSBwcm9ncmVzcyA6IG51bWJlcjtcclxuICAvKiogU2VydmljZSBhIHNlciB1dGxpemFkbyBuYSB2aWV3ICovXHJcbiAgQElucHV0KCkgc2VydmljZSAgOiBUO1xyXG4gIC8qKiBIYWJpbGl0YS9EZXNhYmlsaXRhIG8gZm9jdXMgbm8gcHJpbWVpcm8gY2FtcG8gZGEgdmlld1xyXG4gICAqIDEgLSBwYXJhIGF0aXZhciBubyBub3ZvIGUgbm8gZWRpdGFyXHJcbiAgICogMiAtIHBhcmEgYXRpdmFyIGFwZW5hcyBubyBub3ZvXHJcbiAgICogMyAtIHBhcmEgZGVzYXRpdmFyIHBhcmEgb3MgZG9pcyBjYXNvc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHN0YXJ0SW5GaXJzdEZpZWxkIDogbnVtYmVyID0gMjtcclxuXHJcbiAgcHJvdGVjdGVkIGdlbmVyaWNTZXJ2aWNlOiBHZW5lcmljU2VydmljZTtcclxuICBwcm90ZWN0ZWQgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlO1xyXG4gIHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xyXG4gIHByb3RlY3RlZCBmYjogRm9ybUJ1aWxkZXI7XHJcbiAgcHJvdGVjdGVkIG5hdkNvbnRleHQgOiBOYXZpZ2F0aW9uQ29udGV4dFNlcnZpY2VcclxuICBwcm90ZWN0ZWQgbmVzdGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgICB0aGlzLmdlbmVyaWNTZXJ2aWNlID0gaW5qZWN0KEdlbmVyaWNTZXJ2aWNlKVxyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSlcclxuICAgIHRoaXMuZWxlbWVudFJlZiAgICAgPSBpbmplY3QoRWxlbWVudFJlZilcclxuICAgIHRoaXMuZmIgICAgICAgICAgICAgPSBpbmplY3QoRm9ybUJ1aWxkZXIpXHJcbiAgICB0aGlzLm5hdkNvbnRleHQgICAgID0gaW5qZWN0KE5hdmlnYXRpb25Db250ZXh0U2VydmljZSlcclxuICB9XHJcblxyXG4gIC8qKiBMaXN0YSBkZSBUYWJsZUZpZWxkcyBhIHNlcmVtIGludm9jYWRvcyBkZSBhY29yZG8gY29tIHN1YSBjb25maWd1cmHDp8Ojby5cclxuICAgKiBBdXRvbWF0aWNhbWVudGUgcHJlZW5jaGlkbyBjb20gc2VydmljZS5sc3RUYWJsZUZpZWxkc1ZpZXcgb3Ugc2VydmljZS5sc3RUYWJsZUZpZWxkcyBxdWFuZG8gbsOjbyBpbmZvcm1hZG9cclxuICAgICovXHJcbiAgQElucHV0KCkgbHN0VGFibGVGaWVsZHM6IFRhYmxlRmllbGRbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZWRpcmVjdFBhdGg6IHN0cmluZyB8IG51bGwgPSBcIi92aWV3LzppZFwiXHJcbiAgXHJcbiAgXHJcbiAgQFZpZXdDaGlsZCgnLndyYXBwZXInKSBXcmFwcGVyOiBIVE1MRWxlbWVudDtcclxuICBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIGlmKHRoaXMubHN0VGFibGVGaWVsZHMubGVuZ3RoID09IDApe1xyXG4gICAgICBpZih0aGlzLnNlcnZpY2UubHN0VGFibGVGaWVsZHNWaWV3Lmxlbmd0aCAhPSAwKXtcclxuICAgICAgICB0aGlzLmxzdFRhYmxlRmllbGRzID0gdGhpcy5zZXJ2aWNlLmxzdFRhYmxlRmllbGRzVmlldztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5sc3RUYWJsZUZpZWxkcyA9IHRoaXMuc2VydmljZS5sc3RUYWJsZUZpZWxkcztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKHRoaXMuaWQgPT0gbnVsbCl7XHJcbiAgICAgIHRoaXMuaWQgPSB0aGlzLmdlbmVyaWNTZXJ2aWNlLkdldElkKHRoaXMuYWN0aXZhdGVkUm91dGUsIDApO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZighdGhpcy5zZXJ2aWNlKXsgY29uc29sZS53YXJuKFwiWyBWaWV3IHNlcnZpY2UgaXMgbm90IHZhbGlkISBdXCIpOyB9XHJcbiAgICBpZiAoaW5zdGFuY2VPZlZpZXdXaWxsQ3JlYXRlRm9ybSh0aGlzKSkgeyB0aGlzLk9uVmlld1dpbGxDcmVhdGVGb3JtKCkgfVxyXG4gICAgYXdhaXQgdGhpcy5DcmVhdGVGb3JtKCk7XHJcbiAgICBpZiAoaW5zdGFuY2VPZlZpZXdEaWRDcmVhdGVGb3JtKHRoaXMpKSB7IHRoaXMuT25WaWV3RGlkQ3JlYXRlRm9ybSgpIH1cclxuICBcclxuICAgIGlmKHRoaXMuZWxlbWVudFJlZiAmJiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCAmJiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KXtcclxuICAgICAgdGhpcy5uZXN0ZWQgPSAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC50YWdOYW1lIGFzIHN0cmluZykudG9VcHBlckNhc2UoKSAhPSBcIklPTi1DT05URU5UXCI7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5uZXN0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGF3YWl0IHRoaXMuUmVmcmVzaCgpO1xyXG5cclxuICAgIGlmKHRoaXMuc3RhcnRJbkZpcnN0RmllbGQgPT0gMSl7XHJcbiAgICAgIGF3YWl0IHRoaXMuRm9jdXNPbkZpcnN0RmllbGQoKTtcclxuICAgIH1lbHNlIGlmICh0aGlzLnN0YXJ0SW5GaXJzdEZpZWxkID09IDIpe1xyXG4gICAgICBpZighdGhpcy5pZCl7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5Gb2N1c09uRmlyc3RGaWVsZCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZHJlbihDdXN0b21JbnB1dCkgbHN0Q3VzdG9tSW5wdXRzOiBRdWVyeUxpc3Q8Q3VzdG9tSW5wdXQ8YW55Pj47XHJcbiAgYXN5bmMgRm9jdXNPbkZpcnN0RmllbGQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnl7XHJcbiAgICAgIGF3YWl0IFRpbWVvdXQoMTAwKTtcclxuICAgICAgdGhpcy5sc3RDdXN0b21JbnB1dHMuZmlyc3Quc2V0Rm9jdXMobnVsbCk7XHJcbiAgICB9Y2F0Y2h7fVxyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgnVmlld0RpZFJlZnJlc2gnKSBWaWV3RGlkUmVmcmVzaEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBhc3luYyBSZWZyZXNoKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRyeXtcclxuICAgICAgYXdhaXQgdGhpcy5Mb2FkKCk7XHJcbiAgICB9ZmluYWxseXsgfVxyXG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLlZpZXdEaWRSZWZyZXNoRW1pdHRlci5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBMb2FkKCk6IFByb21pc2U8dm9pZD57XHJcbiAgICBpZighdGhpcy5pZCl7IHJldHVybjsgfVxyXG4gICAgY29uc3QgcmVzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZXJ2aWNlLkdldCh0aGlzLmlkKSk7XHJcbiAgICB0aGlzLmZybS5wYXRjaFZhbHVlKHJlcyk7XHJcbiAgfVxyXG5cclxuICBmcm06IEZvcm1Hcm91cDtcclxuICBhc3luYyBDcmVhdGVGb3JtKCkge1xyXG4gICAgdGhpcy5mcm0gPSBUYWJsZUZpZWxkRm9ybUJ1aWxkZXIuY3JlYXRlKHRoaXMubHN0VGFibGVGaWVsZHMsIHRoaXMuZmIpO1xyXG4gICAgYXdhaXQgdGhpcy5Mb2FkSWRDb21wYXJpc29uKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBMb2FkSWRDb21wYXJpc29uKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdHJ5e1xyXG4gICAgICBjb25zdCBkYXRhOiBSb3V0ZURhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmFjdGl2YXRlZFJvdXRlLmRhdGEpIGFzIFJvdXRlRGF0YTtcclxuICAgICAgaWYoIWRhdGEpeyByZXR1cm47IH1cclxuICAgICAgY29uc3QgaWQgICA9IHRoaXMuZ2VuZXJpY1NlcnZpY2UuR2V0SWQodGhpcy5hY3RpdmF0ZWRSb3V0ZSwgZGF0YS5pZFByZWxvYWRlckNvbmZpZ3VyYXRpb24ucm91dGVEZXB0aCk7XHJcbiAgICAgIFxyXG4gICAgICBpZighaWQpeyByZXR1cm47IH1cclxuXHJcbiAgICAgIHRoaXMuZnJtLmNvbnRyb2xzW2RhdGEuaWRQcmVsb2FkZXJDb25maWd1cmF0aW9uLnByb3BlcnR5TmFtZV0uc2V0VmFsdWUoaWQpO1xyXG4gICAgICB0aGlzLmxzdFRhYmxlRmllbGRzLmZpbmQocCA9PiBwLmluZGV4ID09IGRhdGEuaWRQcmVsb2FkZXJDb25maWd1cmF0aW9uLnByb3BlcnR5TmFtZSkuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgfWNhdGNoeyB9XHJcbiAgfVxyXG5cclxuICAvKiogRW1pdGUgbyBpZCBkYSBlbnRpZGFkZSBzYWx2YSBhcG9zIG8gc2FsdmFtZW50byAqL1xyXG4gIEBPdXRwdXQoJ1NhdmUnKSBTYXZlRW1pdHRlcjogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICBhc3luYyBTYXZlKCkge1xyXG4gICAgYXdhaXQgbGFzdFZhbHVlRnJvbSh0aGlzLnNlcnZpY2UuU2F2ZSh0aGlzLmZybSwgdGhpcykpO1xyXG4gICAgdGhpcy5TYXZlRW1pdHRlci5lbWl0KHRoaXMuaWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBCYWNrUm91dGUoKXtcclxuICAgIHJldHVybiB0aGlzLm5hdkNvbnRleHQuZ2V0QmFja1JvdXRlKCkgPz8gJy8nO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEN1cnJlbnRSb3V0aW5nKCk6IEFjdGl2YXRlZFJvdXRlIHsgcmV0dXJuIHRoaXMuYWN0aXZhdGVkUm91dGU7IH1cclxuXHJcbiAgcHJvdGVjdGVkIG5hdkNvbnRyb2xsZXI6IE5hdkNvbnRyb2xsZXI7XHJcblxyXG4gIHByb3RlY3RlZCBOYXZpZ2F0ZVRvTGlzdCgpOiB2b2lkIHtcclxuICBjb25zdCBiYWNrID0gdGhpcy5uYXZDb250ZXh0LmdldEJhY2tSb3V0ZSgpID8/ICcvJztcclxuICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVCYWNrKGJhY2spO1xyXG59XHJcblxyXG5cclxuICBAVmlld0NoaWxkKEhlYWRlclZpZXdDb21wb25lbnQpIEhlYWRlclZpZXdDb21wb25lbnRFbGVtZW50OiBIZWFkZXJWaWV3Q29tcG9uZW50O1xyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bicsWyckZXZlbnQnXSlcclxuICBvbktleVByZXNzKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYoISh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB8fCBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmKCRldmVudC5rZXkgPT0gJ0VzY2FwZScpe1xyXG4gICAgICB0aGlzLkhlYWRlclZpZXdDb21wb25lbnRFbGVtZW50LkJhY2soJGV2ZW50KTtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmKCgkZXZlbnQuY3RybEtleSB8fCAkZXZlbnQubWV0YUtleSkgJiYgKCRldmVudC5rZXkgPT0gJ0VudGVyJykpe1xyXG4gICAgICB0aGlzLlNhdmUoKTtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmKCRldmVudC5hbHRLZXkgJiYgJGV2ZW50LmtleSA9PSAnSW5zZXJ0Jyl7XHJcbiAgICAgIHRoaXMuSGVhZGVyVmlld0NvbXBvbmVudEVsZW1lbnQuTmV3KCk7XHJcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdXaWxsQ3JlYXRlRm9ybXtcclxuICBPblZpZXdXaWxsQ3JlYXRlRm9ybSgpOiB2b2lkIHwgYW55O1xyXG59IFxyXG5mdW5jdGlvbiBpbnN0YW5jZU9mVmlld1dpbGxDcmVhdGVGb3JtKG9iamVjdDogYW55KTogb2JqZWN0IGlzIFZpZXdXaWxsQ3JlYXRlRm9ybSB7XHJcbiAgcmV0dXJuICdPblZpZXdXaWxsQ3JlYXRlRm9ybScgaW4gb2JqZWN0O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVmlld0RpZENyZWF0ZUZvcm0ge1xyXG4gIE9uVmlld0RpZENyZWF0ZUZvcm0oKTogdm9pZCB8IGFueTtcclxufSBcclxuZnVuY3Rpb24gaW5zdGFuY2VPZlZpZXdEaWRDcmVhdGVGb3JtKG9iamVjdDogYW55KTogb2JqZWN0IGlzIFZpZXdEaWRDcmVhdGVGb3JtIHtcclxuICByZXR1cm4gJ09uVmlld0RpZENyZWF0ZUZvcm0nIGluIG9iamVjdDtcclxufVxyXG5cclxuIl19
@@ -183,5 +183,6 @@ export * from '../lib/services/environment.service';
183
183
  export * from './services/generic.service';
184
184
  export * from '../lib/services/usuario.service';
185
185
  export * from '../lib/services/utils.service';
186
+ export * from '../lib/services/navigation-context.service';
186
187
  export * from '../lib/core.module';
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsYUFBYTtBQUNiLGdCQUFnQjtBQUNkLCtCQUErQjtBQUM3QixjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDckUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsaURBQWlELENBQUM7QUFDaEUsNEJBQTRCO0FBQzVCLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsMkJBQTJCO0FBQzNCLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCwyQkFBMkI7QUFDM0IsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsa0NBQWtDLENBQUM7QUFDbkQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxtQkFBbUI7QUFDakIsK0JBQStCO0FBQzdCLG1EQUFtRDtBQUNuRCxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGtEQUFrRDtBQUNsRCxjQUFjLGtFQUFrRSxDQUFDO0FBQ25GLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLHFDQUFxQztBQUNyQyxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLCtCQUErQjtBQUM3QiwrQ0FBK0M7QUFDN0MsOERBQThEO0FBQzlELGNBQWMsMEVBQTBFLENBQUM7QUFDM0YsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLCtEQUErRCxDQUFDO0FBQzlFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQscURBQXFEO0FBQ3JELGNBQWMsMkVBQTJFLENBQUM7QUFDMUYsZ0RBQWdEO0FBQzlDLDZEQUE2RDtBQUM3RCxjQUFjLHVFQUF1RSxDQUFDO0FBQ3hGLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsK0NBQStDO0FBQzdDLDhEQUE4RDtBQUM5RCxjQUFjLDBFQUEwRSxDQUFDO0FBQzNGLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLDZDQUE2QyxDQUFDO0FBQzlELGNBQWMsMENBQTBDLENBQUM7QUFDekQsb0NBQW9DO0FBQ3BDLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsc0NBQXNDO0FBQ3BDLDJEQUEyRDtBQUMzRCxjQUFjLGdGQUFnRixDQUFDO0FBQ2pHLGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSw4QkFBOEI7QUFDNUIsb0RBQW9EO0FBQ3BELGNBQWMsMEVBQTBFLENBQUM7QUFDekYsOENBQThDO0FBQzlDLGNBQWMsOERBQThELENBQUM7QUFDL0UsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLDhCQUE4QjtBQUM5QixjQUFjLDJDQUEyQyxDQUFDO0FBQzFELDRDQUE0QztBQUMxQyw2REFBNkQ7QUFDN0QsY0FBYyw4RUFBOEUsQ0FBQztBQUMvRiw2QkFBNkI7QUFDN0IsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxvQ0FBb0M7QUFDcEMsY0FBYyx1REFBdUQsQ0FBQztBQUV0RSw4QkFBOEI7QUFDNUIsNENBQTRDO0FBQzVDLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSwyQ0FBMkM7QUFDM0MsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLDZDQUE2QztBQUM3QyxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGtGQUFrRjtBQUNsRixnREFBZ0Q7QUFDaEQsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLDRDQUE0QztBQUM1QyxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsOERBQThELENBQUM7QUFDN0UsK0NBQStDO0FBQy9DLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRiw0Q0FBNEM7QUFDNUMsY0FBYywrRUFBK0UsQ0FBQztBQUM5RixjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsOERBQThELENBQUM7QUFDN0UsNENBQTRDO0FBQzVDLGNBQWMsMERBQTBELENBQUM7QUFDekUsOENBQThDO0FBQzVDLDREQUE0RDtBQUM1RCxjQUFjLGdGQUFnRixDQUFDO0FBQy9GLGNBQWMsaUZBQWlGLENBQUM7QUFDaEcsY0FBYyxzRkFBc0YsQ0FBQztBQUN2RyxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsOENBQThDO0FBQzlDLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixnREFBZ0Q7QUFDaEQsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGdEQUFnRDtBQUNoRCxjQUFjLGtFQUFrRSxDQUFDO0FBQ25GLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELCtCQUErQjtBQUMvQixjQUFjLDZDQUE2QyxDQUFDO0FBQzVELDZCQUE2QjtBQUMzQiw0Q0FBNEM7QUFDNUMsY0FBYywyREFBMkQsQ0FBQztBQUM1RSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELG9DQUFvQztBQUNwQyxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLCtCQUErQjtBQUM3QixvQ0FBb0M7QUFDcEMsY0FBYywrREFBK0QsQ0FBQztBQUNoRixjQUFjLCtDQUErQyxDQUFDO0FBQzlELGlDQUFpQztBQUNqQyxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLCtCQUErQjtBQUM3Qix1Q0FBdUM7QUFDdkMsY0FBYywrQ0FBK0MsQ0FBQztBQUNoRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMENBQTBDLENBQUM7QUFDekQsNEJBQTRCO0FBQzFCLG1DQUFtQztBQUNuQyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELG9DQUFvQztBQUNwQyxjQUFjLDRDQUE0QyxDQUFDO0FBQzdELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsb0NBQW9DO0FBQ3BDLGNBQWMsdURBQXVELENBQUM7QUFDdEUsK0JBQStCO0FBQy9CLGNBQWMsNkNBQTZDLENBQUM7QUFDOUQsbUJBQW1CO0FBQ2pCLGNBQWMsb0NBQW9DLENBQUM7QUFDckQsZUFBZTtBQUNiLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2xELGVBQWU7QUFDYixjQUFjLDBCQUEwQixDQUFDO0FBQzNDLGtCQUFrQjtBQUNoQiwyQkFBMkI7QUFDekIsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzVELHlCQUF5QjtBQUN2QixjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3RELGNBQWMsOEJBQThCLENBQUM7QUFDN0Msa0RBQWtEO0FBQ2xELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFFaEQsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBAc2FwcGhpcmUtaW9uL2ZyYW1ld29ya1xyXG4gKi9cclxuXHJcbi8vIFsg8J+TgSBMaWIgXVxyXG4vL1sg8J+TgSBDbGFzc2VzIF1cclxuICAvLyBbIPCfk4EgQ2xhc3NlcyAtPiBDb21wYXJpc29uIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9ib29sLXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9kYXRlLXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9kYXRldGltZS1wcm9wZXJ0eSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jb21wYXJpc29uL3Byb3BlcnRpZXMvZGVjaW1hbC1wcm9wZXJ0eSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jb21wYXJpc29uL3Byb3BlcnRpZXMvZW51bS1wcm9wZXJ0eSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jb21wYXJpc29uL3Byb3BlcnRpZXMvaW1wbGljaXQtcHJvcGVydHknO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvY29tcGFyaXNvbi9wcm9wZXJ0aWVzL2ludC1wcm9wZXJ0eSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jb21wYXJpc29uL3Byb3BlcnRpZXMvbG9uZy1wcm9wZXJ0eSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jb21wYXJpc29uL3Byb3BlcnRpZXMvc3RyaW5nLXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy90aW1lLXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9ib29sLXByb3BlcnR5JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jb21wYXJpc29uL2NvbXBhcmlzb24nO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vY29tcGFyaXNvbi1vcGVyYXRvcic7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvY29tcGFyaXNvbi9jb21wYXJpc29uLXZhbHVlLXR5cGUnO1xyXG4gIC8vIFsg8J+TgSBDbGFzc2VzIC0+IEZpbHRlcnMgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2ZpbHRlcnMvdmlldy1maWx0cm9zJztcclxuICAvLyBbIPCfk4EgQ2xhc3NlcyAtPiBJbnB1dHMgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2lucHV0cy90YWJsZS1maWVsZC1mb3JtLWJ1aWxkZXInO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2lucHV0cy90YWJsZS1maWVsZCc7XHJcbiAgLy8gWyDwn5OBIENsYXNzZXMgLT4gUm91dGVzIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9yb3V0ZXMvZGVmYXVsdC1yb3V0aW5nLWZhY3RvcnknO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL3JvdXRlcy9pZC1wcmVsb2FkZXItY29uZmlndXJhdGlvbic7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvcm91dGVzL3JvdXRlLWRhdGEnO1xyXG5leHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jcmVkZW50aWFscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2Vudmlyb25tZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvaW5maW5pdGUtc2Nyb2xsJztcclxuZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvcGFnZS1vcHRpb24nO1xyXG5cclxuLy9bIPCfk4EgQ29tcG9uZW50cyBdXHJcbiAgLy9bIPCfk4EgQ29tcG9uZW50cyAtPiBDYXJvdXNlbCBdXHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBDYXJvdXNlbCAtPiBDYXJyb3VzZWwtSW1hZ2UgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwtaW1hZ2UvY2Fyb3VzZWwtaW1hZ2UuY29tcG9uZW50JztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IENhcm91c2VsIC0+IENhcnJvdXNlbC1JdGVtIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2Nhcm91c2VsL2Nhcm91c2VsLWl0ZW0vY2Fyb3VzZWwtaXRlbS5jb21wb25lbnQnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2Nhcm91c2VsL2Nhcm91c2VsLmNvbXBvbmVudCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwubW9kdWxlJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9jYXJvdXNlbC9pLWNhcm91c2VsLWl0ZW0uY29tcG9uZW50JztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBDb250ZW50LUJsb2NrIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9jb250ZW50LWJsb2NrL2NvbnRlbnQtYmxvY2suY29tcG9uZW50JztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBEZWZhdWx0IF1cclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IERlZmF1bHQgLT4gZGVmYXVsdC1saXN0IF1cclxuICAgICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gRGVmYXVsdCAtPiBkZWZhdWx0LWxpc3QgLT4gaGVhZGVyLWxpc3QgXVxyXG4gICAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtbGlzdC9oZWFkZXItbGlzdC9oZWFkZXItbGlzdC5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LWxpc3QvYWJzdHJhY3QtbGlzdCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtbGlzdC9kZWZhdWx0LWxpc3QuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC1saXN0L2xpc3QnO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gRGVmYXVsdCAtPiBkZWZhdWx0LXBhZ2luYXRpb24gXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LXBhZ2luYXRpb24vZGVmYXVsdC1wYWdpbmF0aW9uLmNvbXBvbmVudCc7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBEZWZhdWx0IC0+IGRlZmF1bHQtdGFibGUgXVxyXG4gICAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBEZWZhdWx0IC0+IGRlZmF1bHQtdGFibGUgLT4gdGgtZmlsdGVyIF1cclxuICAgICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LXRhYmxlL3RoLWZpbHRlci90aC1maWx0ZXIuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC10YWJsZS9kZWZhdWx0LXRhYmxlLmNvbXBvbmVudCc7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBEZWZhdWx0IC0+IGRlZmF1bHQtdmlldyBdXHJcbiAgICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IERlZmF1bHQgLT4gZGVmYXVsdC12aWV3IC0+IGhlYWRlci12aWV3IF1cclxuICAgICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LXZpZXcvaGVhZGVyLXZpZXcvaGVhZGVyLXZpZXcuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC12aWV3L2Fic3RyYWN0LXZpZXcnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LXZpZXcvZGVmYXVsdC12aWV3LmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdmlldy92aWV3JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQubW9kdWxlJztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBkZWZhdWx0LXBhZ2UgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RlZmF1bHQtcGFnZS9kZWZhdWx0LnBhZ2UnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGRyYWctZHJvcC1wYWdlIF1cclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGRyYWctZHJvcC1wYWdlIC0+IGRyYWctZHJvcC1vdmVybGF5IF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RyYWctZHJvcC1maWxlL2RyYWctZHJvcC1vdmVybGF5L2RyYWctZHJvcC1vdmVybGF5LmNvbXBvbmVudCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZHJhZy1kcm9wLWZpbGUvZHJhZy1kcm9wLWZpbGUuZGlyZWN0aXZlJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kcmFnLWRyb3AtZmlsZS9kcmFnLWRyb3AtZmlsZS5tb2R1bGUnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGRyYXdlciBdXHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBkcmF3ZXIgLT4gZGVmYXVsdC1kcmF3ZXItZW5kIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RyYXdlci9kZWZhdWx0LWRyYXdlci1lbmQvZGVmYXVsdC1kcmF3ZXItZW5kLmNvbXBvbmVudCc7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBkcmF3ZXIgLT4gZHJhd2VyLWdyb3VwIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RyYXdlci9kcmF3ZXItZ3JvdXAvZHJhd2VyLWdyb3VwLmNvbXBvbmVudCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZHJhd2VyL2RyYXdlci5jb21wb25lbnQnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RyYXdlci9tZW51JztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBmaWx0ZXIgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50JztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBodHRwLXJlc3BvbnNlcy1wYWdlcyBdXHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBodHRwLXJlc3BvbnNlcy1wYWdlcyAtPiBmb3JiaWRkZW4tNDAzIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2h0dHAtcmVzcG9uc2VzLXBhZ2VzL2ZvcmJpZGRlbi00MDMvZm9yYmlkZGVuLTQwMy5jb21wb25lbnQnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGltYWdlIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGluZm8tcG9wb3ZlciBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5mby1wb3BvdmVyL2luZm8tcG9wb3Zlci5jb21wb25lbnQnO1xyXG5cclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgXVxyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LWJvb2wgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWJvb2wvaW5wdXQtYm9vbC5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWJvb2wvaW5wdXQtYm9vbC5jb25maWd1cmF0aW9uJztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGlucHV0cyAtPiBpbnB1dC1jZXAgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWNlcC9pbnB1dC1jZXAuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1jZXAvaW5wdXQtY2VwLmNvbmZpZ3VyYXRpb24nO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LWNvbG9yIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1jb2xvci9pbnB1dC1jb2xvci5jb21wb25lbnQnO1xyXG4gICAgLy8gZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWNvbG9yL2lucHV0LWNvbG9yLmNvbmZpZ3VyYXRpb24nO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LWNwZi1jbnBqIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1jcGYtY25wai9pbnB1dC1jcGYtY25wai5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWNwZi1jbnBqL2lucHV0LWNwZi1jbnBqLmNvbmZpZ3VyYXRpb24nO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LWRhdGUgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb25maWd1cmF0aW9uJztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGlucHV0cyAtPiBpbnB1dC1kZWNpbWFsIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1kZWNpbWFsL2lucHV0LWRlY2ltYWwuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1kZWNpbWFsL2lucHV0LWRlY2ltYWwuY29uZmlndXJhdGlvbic7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtZmlsZSBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtZmlsZS9kb3dubG9hZC1idXR0b24vZG93bmxvYWQtYnV0dG9uLmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtZmlsZS9pbnB1dC1maWxlLmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtZmlsZS9pbnB1dC1maWxlLmNvbmZpZ3VyYXRpb24nO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LWljb24gXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWljb24vaW5wdXQtaWNvbi5jb21wb25lbnQnO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LXNlbGVjdCBdXHJcbiAgICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGlucHV0cyAtPiBpbnB1dC1zZWxlY3QgLT4gZGlyZWN0aXZlcyBdXHJcbiAgICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1zZWxlY3QvZGlyZWN0aXZlcy9zaW9uLWxhYmVsLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbiAgICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1zZWxlY3QvZGlyZWN0aXZlcy9zaW9uLW9wdGlvbi10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG4gICAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtc2VsZWN0L2RpcmVjdGl2ZXMvc2lvbi1wbGFjZWhvbGRlci10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXNlbGVjdC9pbnB1dC1zZWxlY3QuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1zZWxlY3QvaW5wdXQuc2VsZWN0LmNvbmZpZ3VyYXRpb24nO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LXN0cmluZyBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtc3RyaW5nL2lucHV0LXN0cmluZy5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXN0cmluZy9pbnB1dC1zdHJpbmcuY29uZmlndXJhdGlvbic7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtdGVsZWZvbmUgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXRlbGVmb25lL2lucHV0LXRlbGVmb25lLmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtdGVsZWZvbmUvaW5wdXQtdGVsZWZvbmUuY29uZmlndXJhdGlvbic7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtdGV4dGFyZWEgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXRleHRhcmVhL2lucHV0LXRleHRhcmVhLmNvbXBvbmVudCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWNvbmZpZ3VyYXRpb24nO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1kZWZhdWx0LWNvbmZpZ3VyYXRpb25zJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtcHJvdmlkZXItZmFjdG9yeSc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXR5cGUnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC12YWxpZGF0b3JzJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXRzLm1vZHVsZSc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gbG9hZGluZyBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gbG9naW4gXVxyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gbG9naW4gLT4gbG9naW4tYWRtaW4gXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvbG9naW4vbG9naW4tYWRtaW4vbG9naW4tYWRtaW4uY29tcG9uZW50JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IG1haW4tY29udGVudCBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvbWFpbi1jb250ZW50L21haW4tY29udGVudC5jb21wb25lbnQnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IHBvcG92ZXIgXVxyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gc2lvbi1wb3BvdmVyIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL3BvcG92ZXIvc2lvbi1wb3BvdmVyL3Npb24tcG9wb3Zlci5jb21wb25lbnQnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL3BvcG92ZXIvc2lvbi1wb3BvdmVyLm1vZHVsZSc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gc2lvbi1jYXJkIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9zaW9uLWNhcmQvc2lvbi1jYXJkLmNvbXBvbmVudCc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gc3RlcHBlciBdXHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBzdGVwcGVyIC0+IHN0ZXAgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvc3RlcHBlci9zdGVwL3N0ZXAuY29tcG9uZW50JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9zdGVwcGVyL3N0ZXBwZXIubW9kdWxlJztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiB0YWJzIF1cclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IHRhYnMgLT4gdGFiIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL3RhYnMvdGFiL3RhYi5jb21wb25lbnQnO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gdGFicyAtPiB0YWJzIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL3RhYnMvdGFicy90YWJzLmNvbXBvbmVudCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvdGFicy90YWJzLm1vZHVsZSc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gdGV4dC10b29sdGlwIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy90ZXh0LXRvb2x0aXAvdGV4dC10b29sdGlwLmNvbXBvbmVudCc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gdG9vbHRpcCBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XHJcbi8vWyDwn5OBIERpcmVjdGl2ZXMgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9kaXJlY3RpdmVzL25nLXZhci5kaXJlY3RpdmUnO1xyXG4vL1sg8J+TgSBHdWFyZHMgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9ndWFyZHMvYXV0aC5ndWFyZCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2d1YXJkcy9lcnJvci5pbnRlcmNlcHRvcic7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2d1YXJkcy90b2tlbi5pbnRlcmNlcHRvcic7XHJcbi8vIFsg8J+TgSBQaXBlcyBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3BpcGVzL3NlY3VyZS5waXBlJztcclxuLy8gWyDwn5OBIFNlcnZpY2VzIF1cclxuICAvLyBbIPCfk4EgU2VydmljZXMgLT4gUm91dGUgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL3JvdXRlL3JvdXRlLnByb3ZpZGVyLnNlcnZpY2UnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL3JvdXRlL3JvdXRlLmNhY2hlLnNlcnZpY2UnO1xyXG4gIC8vIFsg8J+TgSBTZXJ2aWNlcyAtPiBXZWIgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL3dlYi9hcGktdXJsLXByb3ZpZGVyLnNlcnZpY2UnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL3dlYi9odHRwLmF0aXZvLnNlcnZpY2UnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL3dlYi9odHRwLnNlcnZpY2UnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL3dlYi9zdG9yYWdlLnNlcnZpY2UnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG4gIC8vIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9zZXJ2aWNlcy9jcnlwdG8uc2VydmljZSc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZ2VuZXJpYy5zZXJ2aWNlJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvdXN1YXJpby5zZXJ2aWNlJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvdXRpbHMuc2VydmljZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuLi9saWIvY29yZS5tb2R1bGUnOyJdfQ==
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsYUFBYTtBQUNiLGdCQUFnQjtBQUNkLCtCQUErQjtBQUM3QixjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDckUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsaURBQWlELENBQUM7QUFDaEUsNEJBQTRCO0FBQzVCLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsMkJBQTJCO0FBQzNCLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCwyQkFBMkI7QUFDM0IsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsa0NBQWtDLENBQUM7QUFDbkQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxtQkFBbUI7QUFDakIsK0JBQStCO0FBQzdCLG1EQUFtRDtBQUNuRCxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGtEQUFrRDtBQUNsRCxjQUFjLGtFQUFrRSxDQUFDO0FBQ25GLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFj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LGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0Q0FBNEMsQ0FBQztBQUU3RCxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIEBzYXBwaGlyZS1pb24vZnJhbWV3b3JrXHJcbiAqL1xyXG5cclxuLy8gWyDwn5OBIExpYiBdXHJcbi8vWyDwn5OBIENsYXNzZXMgXVxyXG4gIC8vIFsg8J+TgSBDbGFzc2VzIC0+IENvbXBhcmlzb24gXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvY29tcGFyaXNvbi9wcm9wZXJ0aWVzL2Jvb2wtcHJvcGVydHknO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvY29tcGFyaXNvbi9wcm9wZXJ0aWVzL2RhdGUtcHJvcGVydHknO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvY29tcGFyaXNvbi9wcm9wZXJ0aWVzL2RhdGV0aW1lLXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9kZWNpbWFsLXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9lbnVtLXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9pbXBsaWNpdC1wcm9wZXJ0eSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jb21wYXJpc29uL3Byb3BlcnRpZXMvaW50LXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9sb25nLXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9zdHJpbmctcHJvcGVydHknO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvY29tcGFyaXNvbi9wcm9wZXJ0aWVzL3RpbWUtcHJvcGVydHknO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvY29tcGFyaXNvbi9wcm9wZXJ0aWVzL2Jvb2wtcHJvcGVydHknO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vY29tcGFyaXNvbic7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvY29tcGFyaXNvbi9jb21wYXJpc29uLW9wZXJhdG9yJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jb21wYXJpc29uL2NvbXBhcmlzb24tdmFsdWUtdHlwZSc7XHJcbiAgLy8gWyDwn5OBIENsYXNzZXMgLT4gRmlsdGVycyBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvZmlsdGVycy92aWV3LWZpbHRyb3MnO1xyXG4gIC8vIFsg8J+TgSBDbGFzc2VzIC0+IElucHV0cyBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvaW5wdXRzL3RhYmxlLWZpZWxkLWZvcm0tYnVpbGRlcic7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvaW5wdXRzL3RhYmxlLWZpZWxkJztcclxuICAvLyBbIPCfk4EgQ2xhc3NlcyAtPiBSb3V0ZXMgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL3JvdXRlcy9kZWZhdWx0LXJvdXRpbmctZmFjdG9yeSc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvcm91dGVzL2lkLXByZWxvYWRlci1jb25maWd1cmF0aW9uJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9yb3V0ZXMvcm91dGUtZGF0YSc7XHJcbmV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NyZWRlbnRpYWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvZW52aXJvbm1lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9pbmZpbml0ZS1zY3JvbGwnO1xyXG5leHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9wYWdlLW9wdGlvbic7XHJcblxyXG4vL1sg8J+TgSBDb21wb25lbnRzIF1cclxuICAvL1sg8J+TgSBDb21wb25lbnRzIC0+IENhcm91c2VsIF1cclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IENhcm91c2VsIC0+IENhcnJvdXNlbC1JbWFnZSBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9jYXJvdXNlbC9jYXJvdXNlbC1pbWFnZS9jYXJvdXNlbC1pbWFnZS5jb21wb25lbnQnO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gQ2Fyb3VzZWwgLT4gQ2Fycm91c2VsLUl0ZW0gXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwtaXRlbS9jYXJvdXNlbC1pdGVtLmNvbXBvbmVudCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9jYXJvdXNlbC9jYXJvdXNlbC5tb2R1bGUnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2Nhcm91c2VsL2ktY2Fyb3VzZWwtaXRlbS5jb21wb25lbnQnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IENvbnRlbnQtQmxvY2sgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2NvbnRlbnQtYmxvY2svY29udGVudC1ibG9jay5jb21wb25lbnQnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IERlZmF1bHQgXVxyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gRGVmYXVsdCAtPiBkZWZhdWx0LWxpc3QgXVxyXG4gICAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBEZWZhdWx0IC0+IGRlZmF1bHQtbGlzdCAtPiBoZWFkZXItbGlzdCBdXHJcbiAgICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC1saXN0L2hlYWRlci1saXN0L2hlYWRlci1saXN0LmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtbGlzdC9hYnN0cmFjdC1saXN0JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC1saXN0L2RlZmF1bHQtbGlzdC5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LWxpc3QvbGlzdCc7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBEZWZhdWx0IC0+IGRlZmF1bHQtcGFnaW5hdGlvbiBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtcGFnaW5hdGlvbi9kZWZhdWx0LXBhZ2luYXRpb24uY29tcG9uZW50JztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IERlZmF1bHQgLT4gZGVmYXVsdC10YWJsZSBdXHJcbiAgICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IERlZmF1bHQgLT4gZGVmYXVsdC10YWJsZSAtPiB0aC1maWx0ZXIgXVxyXG4gICAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdGFibGUvdGgtZmlsdGVyL3RoLWZpbHRlci5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LXRhYmxlL2RlZmF1bHQtdGFibGUuY29tcG9uZW50JztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IERlZmF1bHQgLT4gZGVmYXVsdC12aWV3IF1cclxuICAgICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gRGVmYXVsdCAtPiBkZWZhdWx0LXZpZXcgLT4gaGVhZGVyLXZpZXcgXVxyXG4gICAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdmlldy9oZWFkZXItdmlldy9oZWFkZXItdmlldy5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LXZpZXcvYWJzdHJhY3Qtdmlldyc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdmlldy9kZWZhdWx0LXZpZXcuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC12aWV3L3ZpZXcnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC5tb2R1bGUnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGRlZmF1bHQtcGFnZSBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC1wYWdlL2RlZmF1bHQucGFnZSc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gZHJhZy1kcm9wLXBhZ2UgXVxyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gZHJhZy1kcm9wLXBhZ2UgLT4gZHJhZy1kcm9wLW92ZXJsYXkgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZHJhZy1kcm9wLWZpbGUvZHJhZy1kcm9wLW92ZXJsYXkvZHJhZy1kcm9wLW92ZXJsYXkuY29tcG9uZW50JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kcmFnLWRyb3AtZmlsZS9kcmFnLWRyb3AtZmlsZS5kaXJlY3RpdmUnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RyYWctZHJvcC1maWxlL2RyYWctZHJvcC1maWxlLm1vZHVsZSc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gZHJhd2VyIF1cclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGRyYXdlciAtPiBkZWZhdWx0LWRyYXdlci1lbmQgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZHJhd2VyL2RlZmF1bHQtZHJhd2VyLWVuZC9kZWZhdWx0LWRyYXdlci1lbmQuY29tcG9uZW50JztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGRyYXdlciAtPiBkcmF3ZXItZ3JvdXAgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZHJhd2VyL2RyYXdlci1ncm91cC9kcmF3ZXItZ3JvdXAuY29tcG9uZW50JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZHJhd2VyL21lbnUnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGZpbHRlciBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGh0dHAtcmVzcG9uc2VzLXBhZ2VzIF1cclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGh0dHAtcmVzcG9uc2VzLXBhZ2VzIC0+IGZvcmJpZGRlbi00MDMgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaHR0cC1yZXNwb25zZXMtcGFnZXMvZm9yYmlkZGVuLTQwMy9mb3JiaWRkZW4tNDAzLmNvbXBvbmVudCc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW1hZ2UgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2ltYWdlL2ltYWdlLmNvbXBvbmVudCc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5mby1wb3BvdmVyIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbmZvLXBvcG92ZXIvaW5mby1wb3BvdmVyLmNvbXBvbmVudCc7XHJcblxyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGlucHV0cyBdXHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtYm9vbCBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtYm9vbC9pbnB1dC1ib29sLmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtYm9vbC9pbnB1dC1ib29sLmNvbmZpZ3VyYXRpb24nO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LWNlcCBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtY2VwL2lucHV0LWNlcC5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWNlcC9pbnB1dC1jZXAuY29uZmlndXJhdGlvbic7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtY29sb3IgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWNvbG9yL2lucHV0LWNvbG9yLmNvbXBvbmVudCc7XHJcbiAgICAvLyBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtY29sb3IvaW5wdXQtY29sb3IuY29uZmlndXJhdGlvbic7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtY3BmLWNucGogXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWNwZi1jbnBqL2lucHV0LWNwZi1jbnBqLmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtY3BmLWNucGovaW5wdXQtY3BmLWNucGouY29uZmlndXJhdGlvbic7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtZGF0ZSBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtZGF0ZS9pbnB1dC1kYXRlLmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtZGF0ZS9pbnB1dC1kYXRlLmNvbmZpZ3VyYXRpb24nO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LWRlY2ltYWwgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRlY2ltYWwvaW5wdXQtZGVjaW1hbC5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRlY2ltYWwvaW5wdXQtZGVjaW1hbC5jb25maWd1cmF0aW9uJztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGlucHV0cyAtPiBpbnB1dC1maWxlIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1maWxlL2Rvd25sb2FkLWJ1dHRvbi9kb3dubG9hZC1idXR0b24uY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1maWxlL2lucHV0LWZpbGUuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1maWxlL2lucHV0LWZpbGUuY29uZmlndXJhdGlvbic7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtaWNvbiBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtaWNvbi9pbnB1dC1pY29uLmNvbXBvbmVudCc7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtc2VsZWN0IF1cclxuICAgICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LXNlbGVjdCAtPiBkaXJlY3RpdmVzIF1cclxuICAgICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXNlbGVjdC9kaXJlY3RpdmVzL3Npb24tbGFiZWwtdGVtcGxhdGUuZGlyZWN0aXZlJztcclxuICAgICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXNlbGVjdC9kaXJlY3RpdmVzL3Npb24tb3B0aW9uLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbiAgICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1zZWxlY3QvZGlyZWN0aXZlcy9zaW9uLXBsYWNlaG9sZGVyLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtc2VsZWN0L2lucHV0LXNlbGVjdC5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXNlbGVjdC9pbnB1dC5zZWxlY3QuY29uZmlndXJhdGlvbic7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtc3RyaW5nIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1zdHJpbmcvaW5wdXQtc3RyaW5nLmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtc3RyaW5nL2lucHV0LXN0cmluZy5jb25maWd1cmF0aW9uJztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGlucHV0cyAtPiBpbnB1dC10ZWxlZm9uZSBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtdGVsZWZvbmUvaW5wdXQtdGVsZWZvbmUuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC10ZWxlZm9uZS9pbnB1dC10ZWxlZm9uZS5jb25maWd1cmF0aW9uJztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGlucHV0cyAtPiBpbnB1dC10ZXh0YXJlYSBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtdGV4dGFyZWEvaW5wdXQtdGV4dGFyZWEuY29tcG9uZW50JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtY29uZmlndXJhdGlvbic7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRlZmF1bHQtY29uZmlndXJhdGlvbnMnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1wcm92aWRlci1mYWN0b3J5JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtdHlwZSc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXZhbGlkYXRvcnMnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dHMubW9kdWxlJztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBsb2FkaW5nIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50JztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBsb2dpbiBdXHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBsb2dpbiAtPiBsb2dpbi1hZG1pbiBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9sb2dpbi9sb2dpbi1hZG1pbi9sb2dpbi1hZG1pbi5jb21wb25lbnQnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gbWFpbi1jb250ZW50IF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9tYWluLWNvbnRlbnQvbWFpbi1jb250ZW50LmNvbXBvbmVudCc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gcG9wb3ZlciBdXHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBzaW9uLXBvcG92ZXIgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvcG9wb3Zlci9zaW9uLXBvcG92ZXIvc2lvbi1wb3BvdmVyLmNvbXBvbmVudCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvcG9wb3Zlci9zaW9uLXBvcG92ZXIubW9kdWxlJztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBzaW9uLWNhcmQgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL3Npb24tY2FyZC9zaW9uLWNhcmQuY29tcG9uZW50JztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBzdGVwcGVyIF1cclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IHN0ZXBwZXIgLT4gc3RlcCBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9zdGVwcGVyL3N0ZXAvc3RlcC5jb21wb25lbnQnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL3N0ZXBwZXIvc3RlcHBlci5jb21wb25lbnQnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL3N0ZXBwZXIvc3RlcHBlci5tb2R1bGUnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IHRhYnMgXVxyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gdGFicyAtPiB0YWIgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvdGFicy90YWIvdGFiLmNvbXBvbmVudCc7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiB0YWJzIC0+IHRhYnMgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvdGFicy90YWJzL3RhYnMuY29tcG9uZW50JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy90YWJzL3RhYnMubW9kdWxlJztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiB0ZXh0LXRvb2x0aXAgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL3RleHQtdG9vbHRpcC90ZXh0LXRvb2x0aXAuY29tcG9uZW50JztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiB0b29sdGlwIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcclxuLy9bIPCfk4EgRGlyZWN0aXZlcyBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2RpcmVjdGl2ZXMvbmctdmFyLmRpcmVjdGl2ZSc7XHJcbi8vWyDwn5OBIEd1YXJkcyBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2d1YXJkcy9hdXRoLmd1YXJkJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvZ3VhcmRzL2Vycm9yLmludGVyY2VwdG9yJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvZ3VhcmRzL3Rva2VuLmludGVyY2VwdG9yJztcclxuLy8gWyDwn5OBIFBpcGVzIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvcGlwZXMvc2VjdXJlLnBpcGUnO1xyXG4vLyBbIPCfk4EgU2VydmljZXMgXVxyXG4gIC8vIFsg8J+TgSBTZXJ2aWNlcyAtPiBSb3V0ZSBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvcm91dGUvcm91dGUucHJvdmlkZXIuc2VydmljZSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvcm91dGUvcm91dGUuY2FjaGUuc2VydmljZSc7XHJcbiAgLy8gWyDwn5OBIFNlcnZpY2VzIC0+IFdlYiBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvd2ViL2FwaS11cmwtcHJvdmlkZXIuc2VydmljZSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvd2ViL2h0dHAuYXRpdm8uc2VydmljZSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvd2ViL2h0dHAuc2VydmljZSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvd2ViL3N0b3JhZ2Uuc2VydmljZSc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbiAgLy8gZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL2NyeXB0by5zZXJ2aWNlJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9nZW5lcmljLnNlcnZpY2UnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9zZXJ2aWNlcy91c3VhcmlvLnNlcnZpY2UnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvbmF2aWdhdGlvbi1jb250ZXh0LnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvcmUubW9kdWxlJzsiXX0=
@@ -0,0 +1,112 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { NavigationEnd, Router } from '@angular/router';
3
+ import { filter } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ export class NavigationContextService {
7
+ constructor(router) {
8
+ this.router = router;
9
+ this.previousUrl = null;
10
+ this.currentUrl = null;
11
+ this.currentUrl = this.router.url;
12
+ this.router.events.pipe(filter(e => e instanceof NavigationEnd)).subscribe((e) => {
13
+ const nextUrl = e.urlAfterRedirects;
14
+ const preserve = history.state?.__preserveBack == true;
15
+ const currentBase = this.currentUrl ? this.getBaseRoute(this.currentUrl) : null;
16
+ const nextBase = this.getBaseRoute(nextUrl);
17
+ const nav = this.router.getCurrentNavigation();
18
+ const isBack = nav?.trigger == 'popstate';
19
+ // Redirect técnico - ignora
20
+ if (preserve) {
21
+ this.currentUrl = nextUrl;
22
+ return;
23
+ }
24
+ // Navegação interna da mesma view (Ex: Item <-> View Principal)
25
+ if (currentBase && currentBase == nextBase) {
26
+ // ajustes no histórico baseando-se estritamente na hierarquia.
27
+ const cleanNext = nextUrl.split('?')[0].replace(/\/$/, '');
28
+ const cleanBase = nextBase.replace(/\/$/, '');
29
+ if (cleanNext == cleanBase) {
30
+ // voltou para a raiz da entidade
31
+ this.previousUrl = this.getListRoute(nextBase);
32
+ }
33
+ else {
34
+ // voltou de um filho → pai REAL
35
+ this.previousUrl = this.getParentRoute(nextUrl);
36
+ }
37
+ this.currentUrl = nextUrl;
38
+ return;
39
+ }
40
+ // Chegou numa view base VIA BACK (de outro módulo)
41
+ if (isBack) {
42
+ // Se voltou de fora (OS -> Obra), recalcula para garantir
43
+ const cleanNext = nextUrl.split('?')[0].replace(/\/$/, '');
44
+ const cleanBase = nextBase.replace(/\/$/, '');
45
+ if (cleanNext === cleanBase) {
46
+ this.previousUrl = this.getListRoute(nextBase);
47
+ }
48
+ else {
49
+ this.previousUrl = nextBase;
50
+ }
51
+ this.currentUrl = nextUrl;
52
+ return;
53
+ }
54
+ // Navegação real (Entrando em um módulo novo ou avançando)
55
+ this.previousUrl = this.currentUrl;
56
+ this.currentUrl = nextUrl;
57
+ });
58
+ }
59
+ getBaseRoute(url) {
60
+ //pega a rota base
61
+ const parts = url.split('/').filter(Boolean);
62
+ const base = [];
63
+ for (const part of parts) {
64
+ base.push(part);
65
+ if (!isNaN(Number(part))) {
66
+ break;
67
+ }
68
+ }
69
+ return '/' + base.join('/');
70
+ }
71
+ getListRoute(baseRoute) {
72
+ //verifica se a rota de retorno é a inicial
73
+ const parts = baseRoute.split('/').filter(Boolean);
74
+ return '/' + parts[0];
75
+ }
76
+ getParentRoute(url) {
77
+ const clean = url.split('?')[0].replace(/\/$/, '');
78
+ let parts = clean.split('/').filter(Boolean);
79
+ // ---- REGRA FROM ----
80
+ const idx = parts.indexOf('from');
81
+ if (idx != -1) {
82
+ // remove o "from" e o parâmetro após ele
83
+ parts = parts.slice(0, idx);
84
+ // se o último item for view → remove também
85
+ if (parts[parts.length - 1] === 'view') {
86
+ parts.pop();
87
+ }
88
+ return '/' + parts.join('/');
89
+ }
90
+ // ---- REGRA VIEW ----
91
+ if (parts.length <= 1) {
92
+ return '/' + parts.join('/');
93
+ }
94
+ if (!isNaN(Number(parts[parts.length - 1]))) {
95
+ parts.pop();
96
+ }
97
+ if (parts[parts.length - 1] === 'view') {
98
+ parts.pop();
99
+ }
100
+ return '/' + parts.join('/');
101
+ }
102
+ getBackRoute() {
103
+ return this.previousUrl;
104
+ }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NavigationContextService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
106
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NavigationContextService, providedIn: 'root' }); }
107
+ }
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NavigationContextService, decorators: [{
109
+ type: Injectable,
110
+ args: [{ providedIn: 'root' }]
111
+ }], ctorParameters: () => [{ type: i1.Router }] });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL25hdmlnYXRpb24tY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFHOUIsTUFBTSxPQUFPLHdCQUF3QjtJQUluQyxZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUgxQixnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFDbEMsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFHdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUVsQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBZ0IsRUFBRSxFQUFFO1lBQzlGLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztZQUNwQyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUM7WUFFdkQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNoRixNQUFNLFFBQVEsR0FBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRS9DLE1BQU0s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O1FBQ0QsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN2QyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDOytHQWxIVSx3QkFBd0I7bUhBQXhCLHdCQUF3QixjQURYLE1BQU07OzRGQUNuQix3QkFBd0I7a0JBRHBDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uQ29udGV4dFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcHJldmlvdXNVcmw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgY3VycmVudFVybDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcclxuICAgIHRoaXMuY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDtcclxuXHJcbiAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpLnN1YnNjcmliZSgoZTogTmF2aWdhdGlvbkVuZCkgPT4ge1xyXG4gICAgICBjb25zdCBuZXh0VXJsID0gZS51cmxBZnRlclJlZGlyZWN0cztcclxuICAgICAgY29uc3QgcHJlc2VydmUgPSBoaXN0b3J5LnN0YXRlPy5fX3ByZXNlcnZlQmFjayA9PSB0cnVlO1xyXG4gICAgXHJcbiAgICAgIGNvbnN0IGN1cnJlbnRCYXNlID0gdGhpcy5jdXJyZW50VXJsID8gdGhpcy5nZXRCYXNlUm91dGUodGhpcy5jdXJyZW50VXJsKSA6IG51bGw7XHJcbiAgICAgIGNvbnN0IG5leHRCYXNlICAgID0gdGhpcy5nZXRCYXNlUm91dGUobmV4dFVybCk7XHJcbiAgICBcclxuICAgICAgY29uc3QgbmF2ID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTtcclxuICAgICAgY29uc3QgaXNCYWNrID0gbmF2Py50cmlnZ2VyID09ICdwb3BzdGF0ZSc7XHJcbiAgICBcclxuICAgICAgLy8gUmVkaXJlY3QgdMOpY25pY28gLSBpZ25vcmFcclxuICAgICAgaWYgKHByZXNlcnZlKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VXJsID0gbmV4dFVybDtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICAvLyBOYXZlZ2HDp8OjbyBpbnRlcm5hIGRhIG1lc21hIHZpZXcgKEV4OiBJdGVtIDwtPiBWaWV3IFByaW5jaXBhbClcclxuICAgICAgaWYgKGN1cnJlbnRCYXNlICYmIGN1cnJlbnRCYXNlID09IG5leHRCYXNlKSB7XHJcbiAgICAgICAgLy8gYWp1c3RlcyBubyBoaXN0w7NyaWNvIGJhc2VhbmRvLXNlIGVzdHJpdGFtZW50ZSBuYSBoaWVyYXJxdWlhLlxyXG4gICAgICAgIFxyXG4gICAgICAgIGNvbnN0IGNsZWFuTmV4dCA9IG5leHRVcmwuc3BsaXQoJz8nKVswXS5yZXBsYWNlKC9cXC8kLywgJycpO1xyXG4gICAgICAgIGNvbnN0IGNsZWFuQmFzZSA9IG5leHRCYXNlLnJlcGxhY2UoL1xcLyQvLCAnJyk7XHJcblxyXG4gICAgICAgIGlmIChjbGVhbk5leHQgPT0gY2xlYW5CYXNlKSB7XHJcbiAgICAgICAgICAvLyB2b2x0b3UgcGFyYSBhIHJhaXogZGEgZW50aWRhZGVcclxuICAgICAgICAgIHRoaXMucHJldmlvdXNVcmwgPSB0aGlzLmdldExpc3RSb3V0ZShuZXh0QmFzZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIHZvbHRvdSBkZSB1bSBmaWxobyDihpIgcGFpIFJFQUxcclxuICAgICAgICAgIHRoaXMucHJldmlvdXNVcmwgPSB0aGlzLmdldFBhcmVudFJvdXRlKG5leHRVcmwpO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIHRoaXMuY3VycmVudFVybCA9IG5leHRVcmw7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICBcclxuICAgICAgLy8gQ2hlZ291IG51bWEgdmlldyBiYXNlIFZJQSBCQUNLIChkZSBvdXRybyBtw7NkdWxvKVxyXG4gICAgICBpZiAoaXNCYWNrKSB7XHJcbiAgICAgICAgLy8gU2Ugdm9sdG91IGRlIGZvcmEgKE9TIC0+IE9icmEpLCByZWNhbGN1bGEgcGFyYSBnYXJhbnRpclxyXG4gICAgICAgIGNvbnN0IGNsZWFuTmV4dCA9IG5leHRVcmwuc3BsaXQoJz8nKVswXS5yZXBsYWNlKC9cXC8kLywgJycpO1xyXG4gICAgICAgIGNvbnN0IGNsZWFuQmFzZSA9IG5leHRCYXNlLnJlcGxhY2UoL1xcLyQvLCAnJyk7XHJcblxyXG4gICAgICAgIGlmIChjbGVhbk5leHQgPT09IGNsZWFuQmFzZSkge1xyXG4gICAgICAgICAgIHRoaXMucHJldmlvdXNVcmwgPSB0aGlzLmdldExpc3RSb3V0ZShuZXh0QmFzZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICB0aGlzLnByZXZpb3VzVXJsID0gbmV4dEJhc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmN1cnJlbnRVcmwgID0gbmV4dFVybDtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICAvLyBOYXZlZ2HDp8OjbyByZWFsIChFbnRyYW5kbyBlbSB1bSBtw7NkdWxvIG5vdm8gb3UgYXZhbsOnYW5kbylcclxuICAgICAgdGhpcy5wcmV2aW91c1VybCA9IHRoaXMuY3VycmVudFVybDtcclxuICAgICAgdGhpcy5jdXJyZW50VXJsICA9IG5leHRVcmw7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QmFzZVJvdXRlKHVybDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIC8vcGVnYSBhIHJvdGEgYmFzZVxyXG4gICAgY29uc3QgcGFydHMgPSB1cmwuc3BsaXQoJy8nKS5maWx0ZXIoQm9vbGVhbik7XHJcbiAgICBjb25zdCBiYXNlOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBwYXJ0IG9mIHBhcnRzKSB7XHJcbiAgICAgIGJhc2UucHVzaChwYXJ0KTtcclxuICAgICAgaWYgKCFpc05hTihOdW1iZXIocGFydCkpKSB7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAnLycgKyBiYXNlLmpvaW4oJy8nKTtcclxuICB9XHJcbiAgXHJcbiAgcHJpdmF0ZSBnZXRMaXN0Um91dGUoYmFzZVJvdXRlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgLy92ZXJpZmljYSBzZSBhIHJvdGEgZGUgcmV0b3JubyDDqSBhIGluaWNpYWxcclxuICAgIGNvbnN0IHBhcnRzID0gYmFzZVJvdXRlLnNwbGl0KCcvJykuZmlsdGVyKEJvb2xlYW4pO1xyXG4gICAgcmV0dXJuICcvJyArIHBhcnRzWzBdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQYXJlbnRSb3V0ZSh1cmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBjbGVhbiA9IHVybC5zcGxpdCgnPycpWzBdLnJlcGxhY2UoL1xcLyQvLCAnJyk7XHJcbiAgICBsZXQgcGFydHMgPSBjbGVhbi5zcGxpdCgnLycpLmZpbHRlcihCb29sZWFuKTtcclxuICAgIC8vIC0tLS0gUkVHUkEgRlJPTSAtLS0tXHJcbiAgICBjb25zdCBpZHggPSBwYXJ0cy5pbmRleE9mKCdmcm9tJyk7XHJcbiAgICBpZiAoaWR4ICE9IC0xKSB7XHJcbiAgICAgIC8vIHJlbW92ZSBvIFwiZnJvbVwiIGUgbyBwYXLDom1ldHJvIGFww7NzIGVsZVxyXG4gICAgICBwYXJ0cyA9IHBhcnRzLnNsaWNlKDAsIGlkeCk7XHJcbiAgICAgIC8vIHNlIG8gw7psdGltbyBpdGVtIGZvciB2aWV3IOKGkiByZW1vdmUgdGFtYsOpbVxyXG4gICAgICBpZiAocGFydHNbcGFydHMubGVuZ3RoIC0gMV0gPT09ICd2aWV3Jykge1xyXG4gICAgICAgIHBhcnRzLnBvcCgpO1xyXG4gICAgICB9XHJcbiAgICBcclxuICAgICAgcmV0dXJuICcvJyArIHBhcnRzLmpvaW4oJy8nKTtcclxuICAgIH1cclxuICBcclxuICAgIC8vIC0tLS0gUkVHUkEgVklFVyAtLS0tXHJcbiAgICBpZiAocGFydHMubGVuZ3RoIDw9IDEpIHtcclxuICAgICAgcmV0dXJuICcvJyArIHBhcnRzLmpvaW4oJy8nKTtcclxuICAgIH1cclxuICAgIGlmICghaXNOYU4oTnVtYmVyKHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdKSkpIHtcclxuICAgICAgcGFydHMucG9wKCk7XHJcbiAgICB9XHJcbiAgICBpZiAocGFydHNbcGFydHMubGVuZ3RoIC0gMV0gPT09ICd2aWV3Jykge1xyXG4gICAgICBwYXJ0cy5wb3AoKTtcclxuICAgIH1cclxuICAgIHJldHVybiAnLycgKyBwYXJ0cy5qb2luKCcvJyk7XHJcbiAgfVxyXG4gIGdldEJhY2tSb3V0ZSgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLnByZXZpb3VzVXJsO1xyXG4gIH1cclxufSJdfQ==
@@ -141,8 +141,14 @@ export class HttpService {
141
141
  if (!redirectPath) {
142
142
  return;
143
143
  }
144
- const path = redirectPath.replace(":id", id.toString());
145
- this.navController.navigateRoot([`../${path}`], { relativeTo: activatedRoute });
144
+ const path = redirectPath.replace(':id', id.toString());
145
+ // se contém "/from/", precisa subir 2 níveis
146
+ const currentSegments = activatedRoute.snapshot.url.map(u => u.path);
147
+ const level = currentSegments.includes('from') ? '../../' : '../';
148
+ this.navController.navigateRoot([`${level}${path}`], {
149
+ relativeTo: activatedRoute,
150
+ state: { __preserveBack: true }
151
+ });
146
152
  }
147
153
  FilesToForm(object, formData = new FormData(), lstTableFieldsView = null) {
148
154
  if (!lstTableFieldsView) {
@@ -174,4 +180,4 @@ export class ViewRetorno {
174
180
  this.lstDados = [];
175
181
  }
176
182
  }
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvaHR0cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQWEsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7QUFNL0QsTUFBTSxPQUFnQixXQUFXO0lBSy9CLFlBQ1ksSUFBMkIsRUFDM0IsRUFBNEIsRUFDNUIsY0FBK0IsRUFDL0IsYUFBOEIsRUFDOUIscUJBQTZDO1FBSjdDLFNBQUksR0FBSixJQUFJLENBQXVCO1FBQzNCLE9BQUUsR0FBRixFQUFFLENBQTBCO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDOUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF3QjtRQUV2RCxJQUFJLENBQUMsSUFBSSxHQUFvQixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEVBQUUsR0FBc0IsTUFBTSxDQUFDLFdBQVcsQ0FB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QUUsQ0FBQztZQUNsRCxJQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUM7Z0JBQzNFLElBQUcsS0FBSyxJQUFJLE9BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLEVBQUMsQ0FBQztvQkFDckMsTUFBTSxJQUFJLEdBQUcsS0FBYSxDQUFDO29CQUMzQixNQUFNLElBQUksR0FBRyxRQUFRLEdBQUcsRUFBRSxDQUFDO29CQUMzQixRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN2QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOytHQXpLbUIsV0FBVzttSEFBWCxXQUFXLGNBRm5CLE1BQU07OzRGQUVFLFdBQVc7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQTZLRCxNQUFNLE9BQU8sV0FBVztJQUF4QjtRQUNFLGFBQVEsR0FBUSxFQUFFLENBQUM7SUFFckIsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcblxyXG5pbXBvcnQgeyBBcGlVcmxQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL2FwaS11cmwtcHJvdmlkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VuZXJpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmlld0ZpbHRyb3MgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlcnMvdmlldy1maWx0cm9zJztcclxuaW1wb3J0IHsgVGFibGVGaWVsZCB9IGZyb20gJy4uLy4uL2NsYXNzZXMvaW5wdXRzL3RhYmxlLWZpZWxkJztcclxuaW1wb3J0IHsgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtdHlwZSc7XHJcbmltcG9ydCB7IFZpZXcgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC12aWV3L3ZpZXcnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSHR0cFNlcnZpY2U8ViA9IGFueT4ge1xyXG5cclxuICBwdWJsaWMgYWJzdHJhY3Qgcm91dGU6IHN0cmluZzsgXHJcbiAgcHVibGljIGFic3RyYWN0IHRpdGxlOiBzdHJpbmc7IFxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBodHRwPyAgICAgICAgICA6IEh0dHBDbGllbnQsXHJcbiAgICBwcm90ZWN0ZWQgZmI/ICAgICAgICAgICAgOiBGb3JtQnVpbGRlciwgXHJcbiAgICBwcm90ZWN0ZWQgZ2VuZXJpY1NlcnZpY2U/OiBHZW5lcmljU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBuYXZDb250cm9sbGVyPyA6IE5hdkNvbnRyb2xsZXIsXHJcbiAgICBwcm90ZWN0ZWQgYXBpVXJsUHJvdmlkZXJTZXJ2aWNlPzogQXBpVXJsUHJvdmlkZXJTZXJ2aWNlLFxyXG4gICkgeyBcclxuICAgIHRoaXMuaHR0cCAgICAgICAgICAgICAgICAgID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG4gICAgdGhpcy5mYiAgICAgICAgICAgICAgICAgICAgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xyXG4gICAgdGhpcy5nZW5lcmljU2VydmljZSAgICAgICAgPSBpbmplY3QoR2VuZXJpY1NlcnZpY2UpO1xyXG4gICAgdGhpcy5uYXZDb250cm9sbGVyICAgICAgICAgPSBpbmplY3QoTmF2Q29udHJvbGxlcik7XHJcbiAgICB0aGlzLmFwaVVybFByb3ZpZGVyU2VydmljZSA9IGluamVjdChBcGlVcmxQcm92aWRlclNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0b3JuYSBhIHJvdGEgY29tcGxldGEgZG8gc2VydmnDp29cclxuICAgKiBAcmV0dXJuIHN0cmluZ1xyXG4gICAqIEBleGFtcGxlICdodHRwczovL2FwaS5leGFtcGxlLmNvbS97cm91dGV9J1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgZnVsbFJvdXRlKCk6IHN0cmluZ3tcclxuICAgIHJldHVybiB0aGlzLmFwaVVybFByb3ZpZGVyU2VydmljZS5hcGlVcmwgKyB0aGlzLnJvdXRlXHJcbiAgfVxyXG5cclxuICAvKiogXHJcbiAgICogUmV0b3JuYSBvcyBkYWRvcyBkZSBhY29yZG8gY29tIG9zIGZpbHRyb3MgXHJcbiAgICogQHBhcmFtIHZGaWx0ZXIgRmlsdHJhIG9zIGRhZG9zIChQZXNxdWlzYSwgUGFnaW5hw6fDo28gZSBJQ29tcGFyaXNvbilcclxuICAqL1xyXG4gIHB1YmxpYyBMaXN0KHZGaWx0ZXI/OiBWaWV3RmlsdHJvcyk6IE9ic2VydmFibGU8Vmlld1JldG9ybm88Vj4+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFZpZXdSZXRvcm5vPFY+Pih0aGlzLmZ1bGxSb3V0ZSArIGAvbGlzdGAsIHZGaWx0ZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldG9ybmEgbyBkYWRvIGRhIHRhYmVsYSBhc3NvY2lhZGEgY29tIGEgcm90YSBjb20gbyBpZCBpbmRpY2FkbyBcclxuICAgKiBAcGFyYW0gaWQgaWQgZG8gZGFkb1xyXG4gICovXHJcbiAgcHVibGljIEdldChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxWPiB7IFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Vj4odGhpcy5mdWxsUm91dGUgK2AvZ2V0LyR7aWR9YCk7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKiBTYWx2YSBhcyBhbHRlcmHDp8O1ZXMgbm8gZGFkbyByZWNlYmlkbyAqL1xyXG4gIHB1YmxpYyBTYXZlPFQgPSBudW1iZXI+KG9iajogYW55IHwgRm9ybUdyb3VwIHwgViwgdmlldz86IFZpZXc8SHR0cFNlcnZpY2U+KTogT2JzZXJ2YWJsZTxUPntcclxuICAgIGlmKHZpZXcpeyB2aWV3LnN1Ym1pdHRlZCA9IHRydWU7IH1cclxuXHJcbiAgICB2YXIgb2JqZWN0ID0gb2JqO1xyXG4gICAgXHJcbiAgICBpZihvYmogaW5zdGFuY2VvZiBGb3JtR3JvdXApeyBcclxuICAgICAgaWYob2JqLmludmFsaWQpeyBcclxuICAgICAgICBjb25zdCBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKVxyXG4gICAgICAgIHN1YmplY3QuZXJyb3IoXCJbIEludmFsaWQgRm9ybSBdXCIpO1xyXG4gICAgICAgIHN1YmplY3QuY29tcGxldGUoKTtcclxuICAgICAgICB0aGlzLmdlbmVyaWNTZXJ2aWNlLlByZXNlbnRUb2FzdChcIlZlcmlmaXF1ZSBvcyBjYW1wb3MhXCIpXHJcbiAgICAgICAgcmV0dXJuIHN1YmplY3Q7XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBvYmplY3QgPSBvYmoudmFsdWU7IFxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZvcm1EYXRhID0gdGhpcy5GaWxlc1RvRm9ybShvYmplY3QpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCd2aWV3JywgSlNPTi5zdHJpbmdpZnkob2JqZWN0KSk7XHJcblxyXG4gICAgLy9DaGVjayBpbiB0aGUgY2FzZSBpdCBoYXMgYSBmaWxlIGFuZCB0aGUgdmlldyBpcyBub3QgcGFzc2VkXHJcbiAgICBpZihPYmplY3QuZW50cmllcyhvYmplY3QpLmZpbmQocCA9PiBwWzFdIGluc3RhbmNlb2YgRmlsZSkgJiYgdGhpcy5oYXNGaWxlRm9ybSAmJiAhdmlldyl7IFxyXG4gICAgICBjb25zb2xlLmVycm9yKFwiWyBGb3JtR3JvdXAgY29udGFpbnMgZmlsZSwgYnV0IHZpZXcgaXNudCBhIHZhbGlkIHBhcmFtZXRlciBdXCIpOyBcclxuICAgIH0gZWxzZSBcclxuICAgIGlmKHZpZXcpeyBcclxuICAgICAgcmV0dXJuIHRoaXMuX1NhdmUoZm9ybURhdGEsIHZpZXcpOyBcclxuICAgIH0gXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KHRoaXMuZnVsbFJvdXRlICsgYC9zYXZlYCwgZm9ybURhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEV4Y2x1aSBhIGVudGlkYWRlICovXHJcbiAgcHVibGljIERlbGV0ZShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTx2b2lkPih0aGlzLmZ1bGxSb3V0ZSArIGAvZGVsZXRlL2AraWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldG9ybmEgdG9kb3Mgb3MgZGFkb3MgKi9cclxuICBwdWJsaWMgTG9hZCh2RmlsdHJvcz86IFZpZXdGaWx0cm9zKTogUHJvbWlzZTxWaWV3UmV0b3JubzxWPj57XHJcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5MaXN0KHZGaWx0cm9zKSk7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0b3JuYSBvcyBjYW1wb3MgZGEgdGFiZWxhICovXHJcbiAgZ2V0IGxzdFRhYmxlRmllbGRzKCkgICAgOiBUYWJsZUZpZWxkW10geyByZXR1cm4gW107IH1cclxuICAvKiogUmV0b3JuYSBvcyBjYW1wb3MgZGEgdGFiZWxhIHBhcmEgdmlzdWFsaXphw6fDo28vZWRpw6fDo28gKHNlIHZhemlvIHJldG9ybmFyYSBvIHBhZHLDo28gKGxzdFRhYmxlRmllbGRzKSkgKi8gXHJcbiAgZ2V0IGxzdFRhYmxlRmllbGRzVmlldygpOiBUYWJsZUZpZWxkW10geyByZXR1cm4gdGhpcy5sc3RUYWJsZUZpZWxkczsgfSBcclxuXHJcbiAgLyoqIFJldG9yYSBvIFRhYmxlRmllbGQgcGFkcsOjbyBkZSBpZCAqL1xyXG4gIGdldCBkZWZhdWx0SWQoKSB7XHJcbiAgICB2YXIgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbCgwKTtcclxuICAgIGNvbnN0IGZpZWxkID0gbmV3IFRhYmxlRmllbGQoXCJpZFwiLCBcImlkXCIsIGNvbnRyb2wsIElucHV0VHlwZS5OdW1iZXIpOyBcclxuICAgIGZpZWxkLmhpZGRlbiAgICAgPSB0cnVlO1xyXG4gICAgZmllbGQuaGlkZGVuVmlldyA9IHRydWU7XHJcbiAgICByZXR1cm4gZmllbGRcclxuICB9XHJcblxyXG4gIC8qKiBSZXRvcmEgbyBUYWJsZUZpZWxkIHBhZHLDo28gZGUgaWRFbXByZXNhICovXHJcbiAgZ2V0IGRlZmF1bHRJZEVtcHJlc2EoKSB7XHJcbiAgICB2YXIgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbCgwKTtcclxuICAgIGNvbnN0IGZpZWxkID0gbmV3IFRhYmxlRmllbGQoXCJFbXByZXNhXCIsIFwiaWRFbXByZXNhXCIsIGNvbnRyb2wsIElucHV0VHlwZS5TZWxlY3QpOyBcclxuICAgIGZpZWxkLmhpZGRlblZpZXcgPSB0cnVlO1xyXG4gICAgZmllbGQuaGlkZGVuICAgICA9IHRydWU7XHJcbiAgICByZXR1cm4gZmllbGQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBoYXNGaWxlRm9ybSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMubHN0VGFibGVGaWVsZHNWaWV3LmZpbHRlcihwID0+IHAudHlwZSA9PSBJbnB1dFR5cGUuRmlsZSkubGVuZ3RoID4gMDsgfSBcclxuXHJcbiAgcHJvdGVjdGVkIF9TYXZlKGZvcm1EYXRhOiBGb3JtRGF0YSwgdmlldzogVmlldzxIdHRwU2VydmljZT4pOiBPYnNlcnZhYmxlPGFueSB8IHZvaWQ+e1xyXG4gICAgdmlldy5sb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIdHRwRXZlbnQ8YW55Pj4obnVsbCk7XHJcblxyXG4gICAgdGhpcy5odHRwLnBvc3QodGhpcy5mdWxsUm91dGUgKyBgL3NhdmVgLCBmb3JtRGF0YSwgeyByZXBvcnRQcm9ncmVzczogdHJ1ZSwgb2JzZXJ2ZTogJ2V2ZW50cycgfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJleikgPT4geyBcclxuICAgICAgICBpZihyZXoudHlwZSA9PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKXtcclxuICAgICAgICAgIGNvbnN0IHJlcyA9IHJlei5sb2FkZWQgLyByZXoudG90YWwhOyBcclxuICAgICAgICAgIHN1YmplY3QubmV4dChyZXopO1xyXG4gICAgICAgICAgdmlldy5wcm9ncmVzcyA9IHJlczsgIFxyXG4gICAgICAgIH1lbHNlIFxyXG4gICAgICAgIGlmKHJlei50eXBlID09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2Upe1xyXG4gICAgICAgICAgdmlldy5sb2FkaW5nICAgPSBmYWxzZTsgXHJcbiAgICAgICAgICB2aWV3LnN1Ym1pdHRlZCA9IGZhbHNlOyBcclxuICAgICAgICAgIHZpZXcuUmVmcmVzaCgpOyBcclxuXHJcbiAgICAgICAgICBjb25zdCBpZDogbnVtYmVyID0gTnVtYmVyKHJlei5ib2R5KVxyXG5cclxuICAgICAgICAgIC8vWyBSZWRpcmVjdCB0byB2aWV3LzppZCB8IHJlZGlyZWN0UGF0aCBdXHJcbiAgICAgICAgICBpZighdmlldy5pZCAmJiBpZCl7IFxyXG4gICAgICAgICAgICB0aGlzLlJlZGlyZWN0Um91dGUoaWQsIHZpZXcucmVkaXJlY3RQYXRoLCB2aWV3LkdldEN1cnJlbnRSb3V0aW5nKCkpOyBcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOihlcnIpID0+IHsgXHJcbiAgICAgICAgc3ViamVjdC5lcnJvcihlcnIpOyBcclxuICAgICAgICB2aWV3LmxvYWRpbmcgICA9IGZhbHNlOyBcclxuICAgICAgICB2aWV3LnN1Ym1pdHRlZCA9IGZhbHNlOyBcclxuICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7IFxyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZTooKSA9PiB7IFxyXG4gICAgICAgIHRoaXMuZ2VuZXJpY1NlcnZpY2UuUHJlc2VudFRvYXN0U3VjY2VzcygpO1xyXG4gICAgICAgIHN1YmplY3QuY29tcGxldGUoKTsgXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBzdWJqZWN0O1xyXG4gIH1cclxuICBwcml2YXRlIFJlZGlyZWN0Um91dGUoaWQ6IG51bWJlciwgcmVkaXJlY3RQYXRoOiBzdHJpbmcsIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IHZvaWQge1xyXG4gICAgaWYoIXJlZGlyZWN0UGF0aCl7IHJldHVybjsgfVxyXG4gICAgY29uc3QgcGF0aCA9IHJlZGlyZWN0UGF0aC5yZXBsYWNlKFwiOmlkXCIsIGlkLnRvU3RyaW5nKCkpO1xyXG4gICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlUm9vdChbYC4uLyR7cGF0aH1gXSwgeyByZWxhdGl2ZVRvOiBhY3RpdmF0ZWRSb3V0ZSB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEZpbGVzVG9Gb3JtKG9iamVjdDogViwgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCksIGxzdFRhYmxlRmllbGRzVmlldzogVGFibGVGaWVsZFtdIHwgbnVsbCA9IG51bGwpOiBGb3JtRGF0YSB7XHJcbiAgICBpZighbHN0VGFibGVGaWVsZHNWaWV3KXsgbHN0VGFibGVGaWVsZHNWaWV3ID0gdGhpcy5sc3RUYWJsZUZpZWxkc1ZpZXcuZmlsdGVyKHAgPT4gcC50eXBlID09IElucHV0VHlwZS5GaWxlKTsgfVxyXG5cclxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iamVjdCkpIHtcclxuICAgICAgaWYobHN0VGFibGVGaWVsZHNWaWV3LmZpbmQocCA9PiBwLmluZGV4ID09IGtleSAmJiBwLnR5cGUgPT0gSW5wdXRUeXBlLkZpbGUpKXtcclxuICAgICAgICBpZih2YWx1ZSAmJiB0eXBlb2YodmFsdWUpICE9IFwic3RyaW5nXCIpe1xyXG4gICAgICAgICAgY29uc3QgZmlsZSA9IHZhbHVlIGFzIEZpbGU7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gYGZpbGUtJHtrZXl9YDtcclxuICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChuYW1lLCBmaWxlLCBmaWxlLm5hbWUpO1xyXG4gICAgICAgICAgb2JqZWN0W2tleV0gPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcm1EYXRhO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZpZXdSZXRvcm5vPFQgPSBhbnk+IHtcclxuICBsc3REYWRvczogVFtdID0gW107XHJcbiAgdG90YWw6IG51bWJlcjtcclxufSJdfQ==
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvaHR0cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQWEsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7QUFNL0QsTUFBTSxPQUFnQixXQUFXO0lBSy9CLFlBQ1ksSUFBMkIsRUFDM0IsRUFBNEIsRUFDNUIsY0FBK0IsRUFDL0IsYUFBOEIsRUFDOUIscUJBQTZDO1FBSjdDLFNBQUksR0FBSixJQUFJLENBQXVCO1FBQzNCLE9BQUUsR0FBRixFQUFFLENBQTBCO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDOUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF3QjtRQUV2RCxJQUFJLENBQUMsSUFBSSxHQUFvQixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEVBQUUsR0FBc0IsTUFBTSxDQUFDLFdBQVcsQ0FB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IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50LCBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5cclxuaW1wb3J0IHsgQXBpVXJsUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi9hcGktdXJsLXByb3ZpZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSB9IGZyb20gJy4uL2dlbmVyaWMuc2VydmljZSc7XHJcbmltcG9ydCB7IFZpZXdGaWx0cm9zIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXJzL3ZpZXctZmlsdHJvcyc7XHJcbmltcG9ydCB7IFRhYmxlRmllbGQgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2lucHV0cy90YWJsZS1maWVsZCc7XHJcbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXR5cGUnO1xyXG5pbXBvcnQgeyBWaWV3IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdmlldy92aWV3JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEh0dHBTZXJ2aWNlPFYgPSBhbnk+IHtcclxuXHJcbiAgcHVibGljIGFic3RyYWN0IHJvdXRlOiBzdHJpbmc7IFxyXG4gIHB1YmxpYyBhYnN0cmFjdCB0aXRsZTogc3RyaW5nOyBcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgaHR0cD8gICAgICAgICAgOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJvdGVjdGVkIGZiPyAgICAgICAgICAgIDogRm9ybUJ1aWxkZXIsIFxyXG4gICAgcHJvdGVjdGVkIGdlbmVyaWNTZXJ2aWNlPzogR2VuZXJpY1NlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgbmF2Q29udHJvbGxlcj8gOiBOYXZDb250cm9sbGVyLFxyXG4gICAgcHJvdGVjdGVkIGFwaVVybFByb3ZpZGVyU2VydmljZT86IEFwaVVybFByb3ZpZGVyU2VydmljZSxcclxuICApIHsgXHJcbiAgICB0aGlzLmh0dHAgICAgICAgICAgICAgICAgICA9IGluamVjdChIdHRwQ2xpZW50KTtcclxuICAgIHRoaXMuZmIgICAgICAgICAgICAgICAgICAgID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcclxuICAgIHRoaXMuZ2VuZXJpY1NlcnZpY2UgICAgICAgID0gaW5qZWN0KEdlbmVyaWNTZXJ2aWNlKTtcclxuICAgIHRoaXMubmF2Q29udHJvbGxlciAgICAgICAgID0gaW5qZWN0KE5hdkNvbnRyb2xsZXIpO1xyXG4gICAgdGhpcy5hcGlVcmxQcm92aWRlclNlcnZpY2UgPSBpbmplY3QoQXBpVXJsUHJvdmlkZXJTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldG9ybmEgYSByb3RhIGNvbXBsZXRhIGRvIHNlcnZpw6dvXHJcbiAgICogQHJldHVybiBzdHJpbmdcclxuICAgKiBAZXhhbXBsZSAnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20ve3JvdXRlfSdcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IGZ1bGxSb3V0ZSgpOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlVcmxQcm92aWRlclNlcnZpY2UuYXBpVXJsICsgdGhpcy5yb3V0ZVxyXG4gIH1cclxuXHJcbiAgLyoqIFxyXG4gICAqIFJldG9ybmEgb3MgZGFkb3MgZGUgYWNvcmRvIGNvbSBvcyBmaWx0cm9zIFxyXG4gICAqIEBwYXJhbSB2RmlsdGVyIEZpbHRyYSBvcyBkYWRvcyAoUGVzcXVpc2EsIFBhZ2luYcOnw6NvIGUgSUNvbXBhcmlzb24pXHJcbiAgKi9cclxuICBwdWJsaWMgTGlzdCh2RmlsdGVyPzogVmlld0ZpbHRyb3MpOiBPYnNlcnZhYmxlPFZpZXdSZXRvcm5vPFY+PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxWaWV3UmV0b3JubzxWPj4odGhpcy5mdWxsUm91dGUgKyBgL2xpc3RgLCB2RmlsdGVyKTtcclxuICB9XHJcblxyXG4gIC8qKiBSZXRvcm5hIG8gZGFkbyBkYSB0YWJlbGEgYXNzb2NpYWRhIGNvbSBhIHJvdGEgY29tIG8gaWQgaW5kaWNhZG8gXHJcbiAgICogQHBhcmFtIGlkIGlkIGRvIGRhZG9cclxuICAqL1xyXG4gIHB1YmxpYyBHZXQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8Vj4geyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFY+KHRoaXMuZnVsbFJvdXRlICtgL2dldC8ke2lkfWApO1xyXG4gIH1cclxuICBcclxuICAvKiogU2FsdmEgYXMgYWx0ZXJhw6fDtWVzIG5vIGRhZG8gcmVjZWJpZG8gKi9cclxuICBwdWJsaWMgU2F2ZTxUID0gbnVtYmVyPihvYmo6IGFueSB8IEZvcm1Hcm91cCB8IFYsIHZpZXc/OiBWaWV3PEh0dHBTZXJ2aWNlPik6IE9ic2VydmFibGU8VD57XHJcbiAgICBpZih2aWV3KXsgdmlldy5zdWJtaXR0ZWQgPSB0cnVlOyB9XHJcblxyXG4gICAgdmFyIG9iamVjdCA9IG9iajtcclxuICAgIFxyXG4gICAgaWYob2JqIGluc3RhbmNlb2YgRm9ybUdyb3VwKXsgXHJcbiAgICAgIGlmKG9iai5pbnZhbGlkKXsgXHJcbiAgICAgICAgY29uc3Qgc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbClcclxuICAgICAgICBzdWJqZWN0LmVycm9yKFwiWyBJbnZhbGlkIEZvcm0gXVwiKTtcclxuICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgICAgICAgdGhpcy5nZW5lcmljU2VydmljZS5QcmVzZW50VG9hc3QoXCJWZXJpZmlxdWUgb3MgY2FtcG9zIVwiKVxyXG4gICAgICAgIHJldHVybiBzdWJqZWN0O1xyXG4gICAgICB9XHJcbiAgICBcclxuICAgICAgb2JqZWN0ID0gb2JqLnZhbHVlOyBcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmb3JtRGF0YSA9IHRoaXMuRmlsZXNUb0Zvcm0ob2JqZWN0KTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZCgndmlldycsIEpTT04uc3RyaW5naWZ5KG9iamVjdCkpO1xyXG5cclxuICAgIC8vQ2hlY2sgaW4gdGhlIGNhc2UgaXQgaGFzIGEgZmlsZSBhbmQgdGhlIHZpZXcgaXMgbm90IHBhc3NlZFxyXG4gICAgaWYoT2JqZWN0LmVudHJpZXMob2JqZWN0KS5maW5kKHAgPT4gcFsxXSBpbnN0YW5jZW9mIEZpbGUpICYmIHRoaXMuaGFzRmlsZUZvcm0gJiYgIXZpZXcpeyBcclxuICAgICAgY29uc29sZS5lcnJvcihcIlsgRm9ybUdyb3VwIGNvbnRhaW5zIGZpbGUsIGJ1dCB2aWV3IGlzbnQgYSB2YWxpZCBwYXJhbWV0ZXIgXVwiKTsgXHJcbiAgICB9IGVsc2UgXHJcbiAgICBpZih2aWV3KXsgXHJcbiAgICAgIHJldHVybiB0aGlzLl9TYXZlKGZvcm1EYXRhLCB2aWV3KTsgXHJcbiAgICB9IFxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPih0aGlzLmZ1bGxSb3V0ZSArIGAvc2F2ZWAsIGZvcm1EYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKiBFeGNsdWkgYSBlbnRpZGFkZSAqL1xyXG4gIHB1YmxpYyBEZWxldGUoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8dm9pZD4odGhpcy5mdWxsUm91dGUgKyBgL2RlbGV0ZS9gK2lkKTtcclxuICB9XHJcblxyXG4gIC8qKiBSZXRvcm5hIHRvZG9zIG9zIGRhZG9zICovXHJcbiAgcHVibGljIExvYWQodkZpbHRyb3M/OiBWaWV3RmlsdHJvcyk6IFByb21pc2U8Vmlld1JldG9ybm88Vj4+e1xyXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuTGlzdCh2RmlsdHJvcykpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldG9ybmEgb3MgY2FtcG9zIGRhIHRhYmVsYSAqL1xyXG4gIGdldCBsc3RUYWJsZUZpZWxkcygpICAgIDogVGFibGVGaWVsZFtdIHsgcmV0dXJuIFtdOyB9XHJcbiAgLyoqIFJldG9ybmEgb3MgY2FtcG9zIGRhIHRhYmVsYSBwYXJhIHZpc3VhbGl6YcOnw6NvL2VkacOnw6NvIChzZSB2YXppbyByZXRvcm5hcmEgbyBwYWRyw6NvIChsc3RUYWJsZUZpZWxkcykpICovIFxyXG4gIGdldCBsc3RUYWJsZUZpZWxkc1ZpZXcoKTogVGFibGVGaWVsZFtdIHsgcmV0dXJuIHRoaXMubHN0VGFibGVGaWVsZHM7IH0gXHJcblxyXG4gIC8qKiBSZXRvcmEgbyBUYWJsZUZpZWxkIHBhZHLDo28gZGUgaWQgKi9cclxuICBnZXQgZGVmYXVsdElkKCkge1xyXG4gICAgdmFyIGNvbnRyb2wgPSB0aGlzLmZiLmNvbnRyb2woMCk7XHJcbiAgICBjb25zdCBmaWVsZCA9IG5ldyBUYWJsZUZpZWxkKFwiaWRcIiwgXCJpZFwiLCBjb250cm9sLCBJbnB1dFR5cGUuTnVtYmVyKTsgXHJcbiAgICBmaWVsZC5oaWRkZW4gICAgID0gdHJ1ZTtcclxuICAgIGZpZWxkLmhpZGRlblZpZXcgPSB0cnVlO1xyXG4gICAgcmV0dXJuIGZpZWxkXHJcbiAgfVxyXG5cclxuICAvKiogUmV0b3JhIG8gVGFibGVGaWVsZCBwYWRyw6NvIGRlIGlkRW1wcmVzYSAqL1xyXG4gIGdldCBkZWZhdWx0SWRFbXByZXNhKCkge1xyXG4gICAgdmFyIGNvbnRyb2wgPSB0aGlzLmZiLmNvbnRyb2woMCk7XHJcbiAgICBjb25zdCBmaWVsZCA9IG5ldyBUYWJsZUZpZWxkKFwiRW1wcmVzYVwiLCBcImlkRW1wcmVzYVwiLCBjb250cm9sLCBJbnB1dFR5cGUuU2VsZWN0KTsgXHJcbiAgICBmaWVsZC5oaWRkZW5WaWV3ID0gdHJ1ZTtcclxuICAgIGZpZWxkLmhpZGRlbiAgICAgPSB0cnVlO1xyXG4gICAgcmV0dXJuIGZpZWxkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgaGFzRmlsZUZvcm0oKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmxzdFRhYmxlRmllbGRzVmlldy5maWx0ZXIocCA9PiBwLnR5cGUgPT0gSW5wdXRUeXBlLkZpbGUpLmxlbmd0aCA+IDA7IH0gXHJcblxyXG4gIHByb3RlY3RlZCBfU2F2ZShmb3JtRGF0YTogRm9ybURhdGEsIHZpZXc6IFZpZXc8SHR0cFNlcnZpY2U+KTogT2JzZXJ2YWJsZTxhbnkgfCB2b2lkPntcclxuICAgIHZpZXcubG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgY29uc3Qgc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SHR0cEV2ZW50PGFueT4+KG51bGwpO1xyXG5cclxuICAgIHRoaXMuaHR0cC5wb3N0KHRoaXMuZnVsbFJvdXRlICsgYC9zYXZlYCwgZm9ybURhdGEsIHsgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsIG9ic2VydmU6ICdldmVudHMnIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXopID0+IHsgXHJcbiAgICAgICAgaWYocmV6LnR5cGUgPT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcyl7XHJcbiAgICAgICAgICBjb25zdCByZXMgPSByZXoubG9hZGVkIC8gcmV6LnRvdGFsITsgXHJcbiAgICAgICAgICBzdWJqZWN0Lm5leHQocmV6KTtcclxuICAgICAgICAgIHZpZXcucHJvZ3Jlc3MgPSByZXM7ICBcclxuICAgICAgICB9ZWxzZSBcclxuICAgICAgICBpZihyZXoudHlwZSA9PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKXtcclxuICAgICAgICAgIHZpZXcubG9hZGluZyAgID0gZmFsc2U7IFxyXG4gICAgICAgICAgdmlldy5zdWJtaXR0ZWQgPSBmYWxzZTsgXHJcbiAgICAgICAgICB2aWV3LlJlZnJlc2goKTsgXHJcblxyXG4gICAgICAgICAgY29uc3QgaWQ6IG51bWJlciA9IE51bWJlcihyZXouYm9keSlcclxuXHJcbiAgICAgICAgICAvL1sgUmVkaXJlY3QgdG8gdmlldy86aWQgfCByZWRpcmVjdFBhdGggXVxyXG4gICAgICAgICAgaWYoIXZpZXcuaWQgJiYgaWQpeyBcclxuICAgICAgICAgICAgdGhpcy5SZWRpcmVjdFJvdXRlKGlkLCB2aWV3LnJlZGlyZWN0UGF0aCwgdmlldy5HZXRDdXJyZW50Um91dGluZygpKTsgXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjooZXJyKSA9PiB7IFxyXG4gICAgICAgIHN1YmplY3QuZXJyb3IoZXJyKTsgXHJcbiAgICAgICAgdmlldy5sb2FkaW5nICAgPSBmYWxzZTsgXHJcbiAgICAgICAgdmlldy5zdWJtaXR0ZWQgPSBmYWxzZTsgXHJcbiAgICAgICAgc3ViamVjdC5jb21wbGV0ZSgpOyBcclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGU6KCkgPT4geyBcclxuICAgICAgICB0aGlzLmdlbmVyaWNTZXJ2aWNlLlByZXNlbnRUb2FzdFN1Y2Nlc3MoKTtcclxuICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7IFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gc3ViamVjdDtcclxuICB9XHJcbiAgcHJpdmF0ZSBSZWRpcmVjdFJvdXRlKGlkOiBudW1iZXIsIHJlZGlyZWN0UGF0aDogc3RyaW5nLCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpOiB2b2lkIHtcclxuICAgIGlmICghcmVkaXJlY3RQYXRoKSB7IHJldHVybjsgfVxyXG5cclxuICAgIGNvbnN0IHBhdGggPSByZWRpcmVjdFBhdGgucmVwbGFjZSgnOmlkJywgaWQudG9TdHJpbmcoKSk7XHJcblxyXG4gICAgLy8gc2UgY29udMOpbSBcIi9mcm9tL1wiLCBwcmVjaXNhIHN1YmlyIDIgbsOtdmVpc1xyXG4gICAgY29uc3QgY3VycmVudFNlZ21lbnRzID0gYWN0aXZhdGVkUm91dGUuc25hcHNob3QudXJsLm1hcCh1ID0+IHUucGF0aCk7XHJcbiAgICBjb25zdCBsZXZlbCA9IGN1cnJlbnRTZWdtZW50cy5pbmNsdWRlcygnZnJvbScpID8gJy4uLy4uLycgOiAnLi4vJztcclxuXHJcbiAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KFxyXG4gICAgICBbIGAke2xldmVsfSR7cGF0aH1gIF0sXHJcbiAgICAgIHtcclxuICAgICAgICByZWxhdGl2ZVRvOiBhY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBzdGF0ZTogeyBfX3ByZXNlcnZlQmFjazogdHJ1ZSB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgRmlsZXNUb0Zvcm0ob2JqZWN0OiBWLCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSwgbHN0VGFibGVGaWVsZHNWaWV3OiBUYWJsZUZpZWxkW10gfCBudWxsID0gbnVsbCk6IEZvcm1EYXRhIHtcclxuICAgIGlmKCFsc3RUYWJsZUZpZWxkc1ZpZXcpeyBsc3RUYWJsZUZpZWxkc1ZpZXcgPSB0aGlzLmxzdFRhYmxlRmllbGRzVmlldy5maWx0ZXIocCA9PiBwLnR5cGUgPT0gSW5wdXRUeXBlLkZpbGUpOyB9XHJcblxyXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob2JqZWN0KSkge1xyXG4gICAgICBpZihsc3RUYWJsZUZpZWxkc1ZpZXcuZmluZChwID0+IHAuaW5kZXggPT0ga2V5ICYmIHAudHlwZSA9PSBJbnB1dFR5cGUuRmlsZSkpe1xyXG4gICAgICAgIGlmKHZhbHVlICYmIHR5cGVvZih2YWx1ZSkgIT0gXCJzdHJpbmdcIil7XHJcbiAgICAgICAgICBjb25zdCBmaWxlID0gdmFsdWUgYXMgRmlsZTtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBgZmlsZS0ke2tleX1gO1xyXG4gICAgICAgICAgZm9ybURhdGEuYXBwZW5kKG5hbWUsIGZpbGUsIGZpbGUubmFtZSk7XHJcbiAgICAgICAgICBvYmplY3Rba2V5XSA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybURhdGE7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVmlld1JldG9ybm88VCA9IGFueT4ge1xyXG4gIGxzdERhZG9zOiBUW10gPSBbXTtcclxuICB0b3RhbDogbnVtYmVyO1xyXG59Il19