@sapphire-ion/framework 1.0.47 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/default-page/default.page.mjs +7 -5
- package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +41 -25
- package/esm2022/lib/components/popover/sion-popover/sion-popover.component.mjs +9 -7
- package/esm2022/lib/components/sion-card/sion-card.component.mjs +3 -3
- package/esm2022/lib/services/web/storage.service.mjs +5 -2
- package/fesm2022/sapphire-ion-framework.mjs +59 -36
- package/fesm2022/sapphire-ion-framework.mjs.map +1 -1
- package/lib/components/default-page/default.page.d.ts +3 -3
- package/lib/components/inputs/input-select/input-select.component.d.ts +8 -2
- package/lib/components/popover/sion-popover/sion-popover.component.d.ts +1 -1
- package/lib/services/web/storage.service.d.ts +2 -1
- package/package.json +1 -1
- package/themes/compiled-styles.scss +4 -0
- package/themes/styles/components.scss +5 -0
|
@@ -32,11 +32,13 @@ export class DefaultPage {
|
|
|
32
32
|
};
|
|
33
33
|
this.title = this.coreService.environment.applicationName;
|
|
34
34
|
this.lstMenu = [];
|
|
35
|
-
this.
|
|
35
|
+
this.lstImage = null;
|
|
36
36
|
}
|
|
37
37
|
async ngOnInit() {
|
|
38
38
|
this.loading = true;
|
|
39
|
-
|
|
39
|
+
const conf = await firstValueFrom(this.route.data);
|
|
40
|
+
this.lstImage = Array.isArray(conf.image) ? conf.image :
|
|
41
|
+
conf.image ? [conf.image] : undefined;
|
|
40
42
|
this.lstMenu = await firstValueFrom(this.routeProviderService.GetData());
|
|
41
43
|
this.loading = false;
|
|
42
44
|
}
|
|
@@ -44,7 +46,7 @@ export class DefaultPage {
|
|
|
44
46
|
this.genericService.SetTitle(item.title);
|
|
45
47
|
}
|
|
46
48
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultPage, deps: [{ token: i1.ActivatedRoute }, { token: i2.EnvironmentService }, { token: i3.GenericService }, { token: i4.RouteProviderService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultPage, isStandalone: true, selector: "app-default", ngImport: i0, template: "<ion-content [fullscreen]=\"true\">\r\n <div class=\"wrapper\">\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb [routerLink]=\"[null]\">\r\n <ion-icon slot=\"start\" name=\"home\"></ion-icon> Inicio\r\n </ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n \r\n <ion-card>\r\n <ion-card-content class=\"flex flex-col items-center justify-center !p-
|
|
49
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultPage, isStandalone: true, selector: "app-default", ngImport: i0, template: "<ion-content [fullscreen]=\"true\">\r\n <div class=\"wrapper\">\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb [routerLink]=\"[null]\">\r\n <ion-icon slot=\"start\" name=\"home\"></ion-icon> Inicio\r\n </ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n \r\n <ion-card>\r\n <ion-card-content class=\"flex flex-col items-center justify-center !p-6\">\r\n <div class=\"w-full shrink-0 text-center\">\r\n @if(lstImage){\r\n @for (item of lstImage; track $index) {\r\n <ion-img [class]=\"item.classes\" [src]=\"item.src\" (ion-error)=\"lstImage\"></ion-img>\r\n }\r\n }\r\n @else {\r\n <ion-text class=\"text-8xl font-poppins w-full\"> {{title}} </ion-text>\r\n }\r\n </div>\r\n\r\n <div class=\"overflow-hidden p-2 w-full relative\">\r\n <loading [type]=\"3\" [loading]=\"loading\"></loading>\r\n <div class=\"size-full flex flex-wrap portrait:!grid gap-2\">\r\n @for (item of lstMenu; track item; let i = $index) {\r\n @if(item.type == \"Menu\"){\r\n <ion-button fill=\"outline\" class=\"grow min-w-fit\" [routerLink]=\"[item.route]\">\r\n <ion-icon slot=\"start\" [name]=\"item.icon\"></ion-icon> \r\n {{useTranslation ? (TranslationModule.Permissao + item.id | translate) : item.title}}\r\n </ion-button>\r\n }\r\n @if(item.type == \"MenuGroup\"){\r\n <ion-button fill=\"outline\" class=\"grow min-w-fit\" (click)=\"popover.present($event)\">\r\n <ion-icon slot=\"start\" [name]=\"item.icon\"></ion-icon> \r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </ion-button>\r\n\r\n <ion-popover #popover class=\"overflow-y-auto\" [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-list class=\"no-outer-border\">\r\n <ion-item class=\"bg-transparent\" (click)=\"SetTitle(menu)\" *ngFor=\"let menu of item.lstMenu\" [routerLink]=\"['./' + menu.route]\" lines=\"none\" detail=\"false\" routerLinkActive=\"selected\">\r\n <ion-icon [name]=\"menu.icon\" slot=\"start\"></ion-icon> \r\n <ion-label> \r\n {{useTranslation ? (TranslationModule.Permissao + menu.id | translate) : menu.title}} \r\n </ion-label>\r\n </ion-item>\r\n </ion-list>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"!overflow-y-auto w-full portrait:grow relative\">\r\n <loading [type]=\"3\" [loading]=\"loading\"></loading>\r\n <div class=\"flex flex-wrap items-start justify-start mt-4 portrait:!grid portrait:!grid-cols-1\"> \r\n </div>\r\n </div> -->\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</ion-content>", styles: ["ion-popover::part(content){overflow-y:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i6.IonBreadcrumb, selector: "ion-breadcrumb", inputs: ["active", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "separator", "target"] }, { kind: "component", type: i6.IonBreadcrumbs, selector: "ion-breadcrumbs", inputs: ["color", "itemsAfterCollapse", "itemsBeforeCollapse", "maxItems", "mode"] }, { kind: "component", type: i6.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: i6.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i6.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i6.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i6.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i6.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: i6.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i6.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i6.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i6.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i6.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i6.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "ngmodule", type: InputsModule }, { kind: "directive", type: RouterLinkWithHref, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
|
|
48
50
|
}
|
|
49
51
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultPage, decorators: [{
|
|
50
52
|
type: Component,
|
|
@@ -56,7 +58,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
56
58
|
RouterLinkWithHref,
|
|
57
59
|
LoadingComponent,
|
|
58
60
|
TranslateModule,
|
|
59
|
-
], template: "<ion-content [fullscreen]=\"true\">\r\n <div class=\"wrapper\">\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb [routerLink]=\"[null]\">\r\n <ion-icon slot=\"start\" name=\"home\"></ion-icon> Inicio\r\n </ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n \r\n <ion-card>\r\n <ion-card-content class=\"flex flex-col items-center justify-center !p-
|
|
61
|
+
], template: "<ion-content [fullscreen]=\"true\">\r\n <div class=\"wrapper\">\r\n <ion-breadcrumbs>\r\n <ion-breadcrumb [routerLink]=\"[null]\">\r\n <ion-icon slot=\"start\" name=\"home\"></ion-icon> Inicio\r\n </ion-breadcrumb>\r\n </ion-breadcrumbs>\r\n \r\n <ion-card>\r\n <ion-card-content class=\"flex flex-col items-center justify-center !p-6\">\r\n <div class=\"w-full shrink-0 text-center\">\r\n @if(lstImage){\r\n @for (item of lstImage; track $index) {\r\n <ion-img [class]=\"item.classes\" [src]=\"item.src\" (ion-error)=\"lstImage\"></ion-img>\r\n }\r\n }\r\n @else {\r\n <ion-text class=\"text-8xl font-poppins w-full\"> {{title}} </ion-text>\r\n }\r\n </div>\r\n\r\n <div class=\"overflow-hidden p-2 w-full relative\">\r\n <loading [type]=\"3\" [loading]=\"loading\"></loading>\r\n <div class=\"size-full flex flex-wrap portrait:!grid gap-2\">\r\n @for (item of lstMenu; track item; let i = $index) {\r\n @if(item.type == \"Menu\"){\r\n <ion-button fill=\"outline\" class=\"grow min-w-fit\" [routerLink]=\"[item.route]\">\r\n <ion-icon slot=\"start\" [name]=\"item.icon\"></ion-icon> \r\n {{useTranslation ? (TranslationModule.Permissao + item.id | translate) : item.title}}\r\n </ion-button>\r\n }\r\n @if(item.type == \"MenuGroup\"){\r\n <ion-button fill=\"outline\" class=\"grow min-w-fit\" (click)=\"popover.present($event)\">\r\n <ion-icon slot=\"start\" [name]=\"item.icon\"></ion-icon> \r\n {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n </ion-button>\r\n\r\n <ion-popover #popover class=\"overflow-y-auto\" [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n <ng-template>\r\n <ion-list class=\"no-outer-border\">\r\n <ion-item class=\"bg-transparent\" (click)=\"SetTitle(menu)\" *ngFor=\"let menu of item.lstMenu\" [routerLink]=\"['./' + menu.route]\" lines=\"none\" detail=\"false\" routerLinkActive=\"selected\">\r\n <ion-icon [name]=\"menu.icon\" slot=\"start\"></ion-icon> \r\n <ion-label> \r\n {{useTranslation ? (TranslationModule.Permissao + menu.id | translate) : menu.title}} \r\n </ion-label>\r\n </ion-item>\r\n </ion-list>\r\n </ng-template>\r\n </ion-popover>\r\n }\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"!overflow-y-auto w-full portrait:grow relative\">\r\n <loading [type]=\"3\" [loading]=\"loading\"></loading>\r\n <div class=\"flex flex-wrap items-start justify-start mt-4 portrait:!grid portrait:!grid-cols-1\"> \r\n </div>\r\n </div> -->\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n</ion-content>", styles: ["ion-popover::part(content){overflow-y:auto}\n"] }]
|
|
60
62
|
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.EnvironmentService }, { type: i3.GenericService }, { type: i4.RouteProviderService }] });
|
|
61
63
|
export class DefaultPageConfiguration {
|
|
62
64
|
constructor(image = null, useTranslation = false) {
|
|
@@ -70,4 +72,4 @@ export class DefaultPageImage {
|
|
|
70
72
|
this.classes = classes;
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQtcGFnZS9kZWZhdWx0LnBhZ2UudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZGVmYXVsdC1wYWdlL2RlZmF1bHQucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7OztBQUd2RCxxRkFBcUY7QUFnQnJGLE1BQU0sT0FBTyxXQUFXO0lBUXRCLFlBQ1UsS0FBcUIsRUFDckIsV0FBK0IsRUFDL0IsY0FBOEIsRUFDOUIsb0JBQTBDO1FBSDFDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQVZwRCxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyxzQkFBaUIsR0FBUTtZQUN2QixTQUFTLEVBQU8scUJBQXFCO1lBQ3JDLGNBQWMsRUFBRSwwQkFBMEI7U0FDM0MsQ0FBQztRQVVGLFVBQUssR0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUM7UUFFN0QsWUFBTyxHQUFXLEVBQUUsQ0FBQTtRQUNwQixrQkFBYSxHQUFvQyxJQUFJLENBQUM7SUFMdEQsQ0FBQztJQU1ELEtBQUssQ0FBQyxRQUFRO1FBQ1osSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBNkIsQ0FBQztRQUN2RixJQUFJLENBQUMsT0FBTyxHQUFTLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBVTtRQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQzsrR0E3QlUsV0FBVzttR0FBWCxXQUFXLHVFQy9CeEIsaTJGQW9EYyxzR0RoQ1YsWUFBWSwySkFDWixXQUFXLDhCQUNYLFdBQVcsa2hFQUNYLFlBQVksK0JBQ1osa0JBQWtCLG9PQUNsQixnQkFBZ0Isd0ZBQ2hCLGVBQWU7OzRGQUtOLFdBQVc7a0JBZnZCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGFBQWEsV0FDZDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQjs7QUFvQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUNTLFFBQWlDLElBQUksRUFDckMsaUJBQTBCLEtBQUs7UUFEL0IsVUFBSyxHQUFMLEtBQUssQ0FBZ0M7UUFDckMsbUJBQWMsR0FBZCxjQUFjLENBQWlCO0lBRXhDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFDUyxNQUFxQixJQUFJLEVBQ3pCLFVBQWtCLEVBQUU7UUFEcEIsUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUFDekIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtJQUMzQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyTGlua1dpdGhIcmVmIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IFJvdXRlUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcm91dGUvcm91dGUucHJvdmlkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ2VuZXJpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vaW5wdXRzL2lucHV0cy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBNZW51IH0gZnJvbSAnLi4vZHJhd2VyL21lbnUnO1xyXG5cclxuLyoqIFBhZ2luYSBEZWZhdWx0IC0gbW9zdHJhIG9zIGJvdMO1ZXMgZGUgcm90YXMgaG9yaXpvbnRhbG1lbnRlIC0gY29tcG9uZW50ZSBwYWRyw6NvICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc2VsZWN0b3I6ICdhcHAtZGVmYXVsdCcsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBJb25pY01vZHVsZSxcclxuICAgIElucHV0c01vZHVsZSxcclxuICAgIFJvdXRlckxpbmtXaXRoSHJlZixcclxuICAgIExvYWRpbmdDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC5wYWdlLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RlZmF1bHQucGFnZS5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0UGFnZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgXHJcbiAgdXNlVHJhbnNsYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBUcmFuc2xhdGlvbk1vZHVsZTogYW55ID0ge1xyXG4gICAgUGVybWlzc2FvICAgICA6ICdFbnRpdGllcy5QZXJtaXNzYW8uJyxcclxuICAgIFBlcm1pc3Nhb0dydXBvOiAnRW50aXRpZXMuUGVybWlzc2FvR3J1cG8uJ1xyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIGNvcmVTZXJ2aWNlOiBFbnZpcm9ubWVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdlbmVyaWNTZXJ2aWNlOiBHZW5lcmljU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVQcm92aWRlclNlcnZpY2U6IFJvdXRlUHJvdmlkZXJTZXJ2aWNlIFxyXG4gICkgeyBcclxuICB9XHJcbiAgXHJcbiAgdGl0bGU6IHN0cmluZyA9IHRoaXMuY29yZVNlcnZpY2UuZW52aXJvbm1lbnQuYXBwbGljYXRpb25OYW1lO1xyXG4gIGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgbHN0TWVudTogTWVudVtdID0gW10gXHJcbiAgY29uZmlndXJhdGlvbjogRGVmYXVsdFBhZ2VDb25maWd1cmF0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5yb3V0ZS5kYXRhKSBhcyBEZWZhdWx0UGFnZUNvbmZpZ3VyYXRpb247XHJcbiAgICB0aGlzLmxzdE1lbnUgICAgICAgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnJvdXRlUHJvdmlkZXJTZXJ2aWNlLkdldERhdGEoKSk7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIFNldFRpdGxlKGl0ZW06IE1lbnUpe1xyXG4gICAgdGhpcy5nZW5lcmljU2VydmljZS5TZXRUaXRsZShpdGVtLnRpdGxlKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0UGFnZUNvbmZpZ3VyYXRpb257XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaW1hZ2U6IERlZmF1bHRQYWdlSW1hZ2UgfCBudWxsID0gbnVsbCxcclxuICAgIHB1YmxpYyB1c2VUcmFuc2xhdGlvbjogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKXtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0UGFnZUltYWdlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzcmM6IHN0cmluZyB8IG51bGwgPSBudWxsLFxyXG4gICAgcHVibGljIGNsYXNzZXM6IHN0cmluZyA9ICcnXHJcbiAgKXt9XHJcbn1cclxuIiwiPGlvbi1jb250ZW50IFtmdWxsc2NyZWVuXT1cInRydWVcIj5cclxuICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgPGlvbi1icmVhZGNydW1icz5cclxuICAgICAgPGlvbi1icmVhZGNydW1iIFtyb3V0ZXJMaW5rXT1cIltudWxsXVwiPlxyXG4gICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiBuYW1lPVwiaG9tZVwiPjwvaW9uLWljb24+IEluaWNpb1xyXG4gICAgICA8L2lvbi1icmVhZGNydW1iPlxyXG4gICAgPC9pb24tYnJlYWRjcnVtYnM+XHJcbiAgXHJcbiAgICA8aW9uLWNhcmQ+XHJcbiAgICAgIDxpb24tY2FyZC1jb250ZW50IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgIXAtOFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgc2hyaW5rLTAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgIEBpZihjb25maWd1cmF0aW9uPy5pbWFnZSl7XHJcbiAgICAgICAgICAgIDxpb24taW1nIFtjbGFzc109XCJjb25maWd1cmF0aW9uLmltYWdlLmNsYXNzZXNcIiBbc3JjXT1cImNvbmZpZ3VyYXRpb24uaW1hZ2Uuc3JjXCIgKGlvbi1lcnJvcik9XCJjb25maWd1cmF0aW9uLmltYWdlID0gbnVsbFwiPjwvaW9uLWltZz5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwidGV4dC04eGwgZm9udC1wb3BwaW5zIHctZnVsbFwiPiB7e3RpdGxlfX0gPC9pb24tdGV4dD5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiIW92ZXJmbG93LXktYXV0byB3LWZ1bGwgcG9ydHJhaXQ6Z3JvdyByZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgPGxvYWRpbmcgW3R5cGVdPVwiM1wiIFtsb2FkaW5nXT1cImxvYWRpbmdcIj48L2xvYWRpbmc+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgaXRlbXMtc3RhcnQganVzdGlmeS1zdGFydCBtdC00IHBvcnRyYWl0OiFncmlkIHBvcnRyYWl0OiFncmlkLWNvbHMtMVwiPiBcclxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBsc3RNZW51OyB0cmFjayBpdGVtOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgICAgICAgIEBpZihpdGVtLnR5cGUgPT0gXCJNZW51XCIpe1xyXG4gICAgICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBjbGFzcz1cIm14LTEgbXQtMiBmbGV4LWdyb3cgc2hyaW5rLTBcIiBbcm91dGVyTGlua109XCJbaXRlbS5yb3V0ZV1cIj5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIFtuYW1lXT1cIml0ZW0uaWNvblwiPjwvaW9uLWljb24+IFxyXG4gICAgICAgICAgICAgICAgICB7e3VzZVRyYW5zbGF0aW9uID8gKFRyYW5zbGF0aW9uTW9kdWxlLlBlcm1pc3NhbyArIGl0ZW0uaWQgfCB0cmFuc2xhdGUpIDogaXRlbS50aXRsZX19XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIEBpZihpdGVtLnR5cGUgPT0gXCJNZW51R3JvdXBcIil7XHJcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIGNsYXNzPVwibXgtMSBtdC0yIGZsZXgtZ3JvdyBzaHJpbmstMFwiIChjbGljayk9XCJwb3BvdmVyLnByZXNlbnQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgW25hbWVdPVwiaXRlbS5pY29uXCI+PC9pb24taWNvbj4gXHJcbiAgICAgICAgICAgICAgICAgIHt7dXNlVHJhbnNsYXRpb24gPyAoVHJhbnNsYXRpb25Nb2R1bGUuUGVybWlzc2FvR3J1cG8gKyBpdGVtLmlkIHwgdHJhbnNsYXRlKSA6IGl0ZW0udGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1wb3BvdmVyICNwb3BvdmVyIGNsYXNzPVwib3ZlcmZsb3cteS1hdXRvXCIgW2Rpc21pc3NPblNlbGVjdF09XCJ0cnVlXCIgdHJpZ2dlckFjdGlvbj1cImNsaWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWxpc3QgY2xhc3M9XCJuby1vdXRlci1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpb24taXRlbSBjbGFzcz1cImJnLXRyYW5zcGFyZW50XCIgKGNsaWNrKT1cIlNldFRpdGxlKG1lbnUpXCIgKm5nRm9yPVwibGV0IG1lbnUgb2YgaXRlbS5sc3RNZW51XCIgW3JvdXRlckxpbmtdPVwiWycuLycgKyBtZW51LnJvdXRlXVwiIGxpbmVzPVwibm9uZVwiIGRldGFpbD1cImZhbHNlXCIgcm91dGVyTGlua0FjdGl2ZT1cInNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJtZW51Lmljb25cIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1sYWJlbD4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3t1c2VUcmFuc2xhdGlvbiA/IChUcmFuc2xhdGlvbk1vZHVsZS5QZXJtaXNzYW8gKyBtZW51LmlkIHwgdHJhbnNsYXRlKSA6IG1lbnUudGl0bGV9fSAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9pb24taXRlbT5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1saXN0PlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tcG9wb3Zlcj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8L2lvbi1jYXJkPlxyXG4gIDwvZGl2PlxyXG48L2lvbi1jb250ZW50PiJdfQ==
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQtcGFnZS9kZWZhdWx0LnBhZ2UudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZGVmYXVsdC1wYWdlL2RlZmF1bHQucGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7OztBQUd2RCxxRkFBcUY7QUFnQnJGLE1BQU0sT0FBTyxXQUFXO0lBUXRCLFlBQ1UsS0FBcUIsRUFDckIsV0FBK0IsRUFDL0IsY0FBOEIsRUFDOUIsb0JBQTBDO1FBSDFDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQVZwRCxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyxzQkFBaUIsR0FBUTtZQUN2QixTQUFTLEVBQU8scUJBQXFCO1lBQ3JDLGNBQWMsRUFBRSwwQkFBMEI7U0FDM0MsQ0FBQztRQVVGLFVBQUssR0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUM7UUFFN0QsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUVyQixhQUFRLEdBQXVCLElBQUksQ0FBQztJQU5wQyxDQUFDO0lBUUQsS0FBSyxDQUFDLFFBQVE7UUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVwQixNQUFNLElBQUksR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBNkIsQ0FBQztRQUUvRSxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVyRSxJQUFJLENBQUMsT0FBTyxHQUFTLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBVTtRQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQzsrR0FwQ1UsV0FBVzttR0FBWCxXQUFXLHVFQy9CeEIsNGxHQThEYyxzR0QxQ1YsWUFBWSwySkFDWixXQUFXLDhCQUNYLFdBQVcsa2hFQUNYLFlBQVksK0JBQ1osa0JBQWtCLG9PQUNsQixnQkFBZ0Isd0ZBQ2hCLGVBQWU7OzRGQUtOLFdBQVc7a0JBZnZCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGFBQWEsV0FDZDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQjs7QUEyQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUNTLFFBQXNELElBQUksRUFDMUQsaUJBQTBCLEtBQUs7UUFEL0IsVUFBSyxHQUFMLEtBQUssQ0FBcUQ7UUFDMUQsbUJBQWMsR0FBZCxjQUFjLENBQWlCO0lBRXhDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFDUyxNQUFxQixJQUFJLEVBQ3pCLFVBQWtCLEVBQUU7UUFEcEIsUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUFDekIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtJQUMzQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyTGlua1dpdGhIcmVmIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IFJvdXRlUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcm91dGUvcm91dGUucHJvdmlkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ2VuZXJpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vaW5wdXRzL2lucHV0cy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBNZW51IH0gZnJvbSAnLi4vZHJhd2VyL21lbnUnO1xyXG5cclxuLyoqIFBhZ2luYSBEZWZhdWx0IC0gbW9zdHJhIG9zIGJvdMO1ZXMgZGUgcm90YXMgaG9yaXpvbnRhbG1lbnRlIC0gY29tcG9uZW50ZSBwYWRyw6NvICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc2VsZWN0b3I6ICdhcHAtZGVmYXVsdCcsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBJb25pY01vZHVsZSxcclxuICAgIElucHV0c01vZHVsZSxcclxuICAgIFJvdXRlckxpbmtXaXRoSHJlZixcclxuICAgIExvYWRpbmdDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC5wYWdlLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RlZmF1bHQucGFnZS5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0UGFnZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHVzZVRyYW5zbGF0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgVHJhbnNsYXRpb25Nb2R1bGU6IGFueSA9IHtcclxuICAgIFBlcm1pc3NhbyAgICAgOiAnRW50aXRpZXMuUGVybWlzc2FvLicsXHJcbiAgICBQZXJtaXNzYW9HcnVwbzogJ0VudGl0aWVzLlBlcm1pc3Nhb0dydXBvLidcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBjb3JlU2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBnZW5lcmljU2VydmljZTogR2VuZXJpY1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlUHJvdmlkZXJTZXJ2aWNlOiBSb3V0ZVByb3ZpZGVyU2VydmljZSBcclxuICApIHsgXHJcbiAgfVxyXG4gIFxyXG4gIHRpdGxlOiBzdHJpbmcgPSB0aGlzLmNvcmVTZXJ2aWNlLmVudmlyb25tZW50LmFwcGxpY2F0aW9uTmFtZTtcclxuICBsb2FkaW5nOiBib29sZWFuO1xyXG4gIGxzdE1lbnU6IE1lbnVbXSA9IFtdO1xyXG5cclxuICBsc3RJbWFnZTogRGVmYXVsdFBhZ2VJbWFnZVtdID0gbnVsbDtcclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgXHJcbiAgICBjb25zdCBjb25mID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5yb3V0ZS5kYXRhKSBhcyBEZWZhdWx0UGFnZUNvbmZpZ3VyYXRpb247XHJcblxyXG4gICAgdGhpcy5sc3RJbWFnZSA9IEFycmF5LmlzQXJyYXkoY29uZi5pbWFnZSkgPyBjb25mLmltYWdlIDogXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZi5pbWFnZSA/IFtjb25mLmltYWdlXSA6IHVuZGVmaW5lZDtcclxuXHJcbiAgICB0aGlzLmxzdE1lbnUgICAgICAgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnJvdXRlUHJvdmlkZXJTZXJ2aWNlLkdldERhdGEoKSk7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIFNldFRpdGxlKGl0ZW06IE1lbnUpe1xyXG4gICAgdGhpcy5nZW5lcmljU2VydmljZS5TZXRUaXRsZShpdGVtLnRpdGxlKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0UGFnZUNvbmZpZ3VyYXRpb257XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaW1hZ2U6IERlZmF1bHRQYWdlSW1hZ2UgfCBEZWZhdWx0UGFnZUltYWdlW10gfCBudWxsID0gbnVsbCxcclxuICAgIHB1YmxpYyB1c2VUcmFuc2xhdGlvbjogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKXtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0UGFnZUltYWdlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzcmM6IHN0cmluZyB8IG51bGwgPSBudWxsLFxyXG4gICAgcHVibGljIGNsYXNzZXM6IHN0cmluZyA9ICcnXHJcbiAgKXt9XHJcbn1cclxuIiwiPGlvbi1jb250ZW50IFtmdWxsc2NyZWVuXT1cInRydWVcIj5cclxuICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgPGlvbi1icmVhZGNydW1icz5cclxuICAgICAgPGlvbi1icmVhZGNydW1iIFtyb3V0ZXJMaW5rXT1cIltudWxsXVwiPlxyXG4gICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiBuYW1lPVwiaG9tZVwiPjwvaW9uLWljb24+IEluaWNpb1xyXG4gICAgICA8L2lvbi1icmVhZGNydW1iPlxyXG4gICAgPC9pb24tYnJlYWRjcnVtYnM+XHJcbiAgXHJcbiAgICA8aW9uLWNhcmQ+XHJcbiAgICAgIDxpb24tY2FyZC1jb250ZW50IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgIXAtNlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgc2hyaW5rLTAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgIEBpZihsc3RJbWFnZSl7XHJcbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgbHN0SW1hZ2U7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgIDxpb24taW1nIFtjbGFzc109XCJpdGVtLmNsYXNzZXNcIiBbc3JjXT1cIml0ZW0uc3JjXCIgKGlvbi1lcnJvcik9XCJsc3RJbWFnZVwiPjwvaW9uLWltZz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJ0ZXh0LTh4bCBmb250LXBvcHBpbnMgdy1mdWxsXCI+IHt7dGl0bGV9fSA8L2lvbi10ZXh0PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmZsb3ctaGlkZGVuIHAtMiB3LWZ1bGwgcmVsYXRpdmVcIj5cclxuICAgICAgICAgIDxsb2FkaW5nIFt0eXBlXT1cIjNcIiBbbG9hZGluZ109XCJsb2FkaW5nXCI+PC9sb2FkaW5nPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNpemUtZnVsbCBmbGV4IGZsZXgtd3JhcCBwb3J0cmFpdDohZ3JpZCBnYXAtMlwiPlxyXG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIGxzdE1lbnU7IHRyYWNrIGl0ZW07IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgQGlmKGl0ZW0udHlwZSA9PSBcIk1lbnVcIil7XHJcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIGNsYXNzPVwiZ3JvdyBtaW4tdy1maXRcIiBbcm91dGVyTGlua109XCJbaXRlbS5yb3V0ZV1cIj5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIFtuYW1lXT1cIml0ZW0uaWNvblwiPjwvaW9uLWljb24+IFxyXG4gICAgICAgICAgICAgICAgICB7e3VzZVRyYW5zbGF0aW9uID8gKFRyYW5zbGF0aW9uTW9kdWxlLlBlcm1pc3NhbyArIGl0ZW0uaWQgfCB0cmFuc2xhdGUpIDogaXRlbS50aXRsZX19XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIEBpZihpdGVtLnR5cGUgPT0gXCJNZW51R3JvdXBcIil7XHJcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIGNsYXNzPVwiZ3JvdyBtaW4tdy1maXRcIiAoY2xpY2spPVwicG9wb3Zlci5wcmVzZW50KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIFtuYW1lXT1cIml0ZW0uaWNvblwiPjwvaW9uLWljb24+IFxyXG4gICAgICAgICAgICAgICAgICB7e3VzZVRyYW5zbGF0aW9uID8gKFRyYW5zbGF0aW9uTW9kdWxlLlBlcm1pc3Nhb0dydXBvICsgaXRlbS5pZCB8IHRyYW5zbGF0ZSkgOiBpdGVtLnRpdGxlfX1cclxuICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8aW9uLXBvcG92ZXIgI3BvcG92ZXIgY2xhc3M9XCJvdmVyZmxvdy15LWF1dG9cIiBbZGlzbWlzc09uU2VsZWN0XT1cInRydWVcIiB0cmlnZ2VyQWN0aW9uPVwiY2xpY2tcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tbGlzdCBjbGFzcz1cIm5vLW91dGVyLWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1pdGVtIGNsYXNzPVwiYmctdHJhbnNwYXJlbnRcIiAoY2xpY2spPVwiU2V0VGl0bGUobWVudSlcIiAqbmdGb3I9XCJsZXQgbWVudSBvZiBpdGVtLmxzdE1lbnVcIiBbcm91dGVyTGlua109XCJbJy4vJyArIG1lbnUucm91dGVdXCIgbGluZXM9XCJub25lXCIgZGV0YWlsPVwiZmFsc2VcIiByb3V0ZXJMaW5rQWN0aXZlPVwic2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cIm1lbnUuaWNvblwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWxhYmVsPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e3VzZVRyYW5zbGF0aW9uID8gKFRyYW5zbGF0aW9uTW9kdWxlLlBlcm1pc3NhbyArIG1lbnUuaWQgfCB0cmFuc2xhdGUpIDogbWVudS50aXRsZX19ICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1wb3BvdmVyPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIiFvdmVyZmxvdy15LWF1dG8gdy1mdWxsIHBvcnRyYWl0Omdyb3cgcmVsYXRpdmVcIj5cclxuICAgICAgICAgIDxsb2FkaW5nIFt0eXBlXT1cIjNcIiBbbG9hZGluZ109XCJsb2FkaW5nXCI+PC9sb2FkaW5nPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGl0ZW1zLXN0YXJ0IGp1c3RpZnktc3RhcnQgbXQtNCBwb3J0cmFpdDohZ3JpZCBwb3J0cmFpdDohZ3JpZC1jb2xzLTFcIj4gXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cclxuICAgIDwvaW9uLWNhcmQ+XHJcbiAgPC9kaXY+XHJcbjwvaW9uLWNvbnRlbnQ+Il19
|