ctt-puro 0.49.0 → 0.49.1
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/puro-header-mobile-submenu/puro-header-mobile-submenu.component.mjs +8 -3
- package/esm2022/lib/services/mapper/mapper.service.mjs +3 -3
- package/fesm2022/ctt-puro.mjs +9 -4
- package/fesm2022/ctt-puro.mjs.map +1 -1
- package/lib/components/puro-header-mobile-submenu/puro-header-mobile-submenu.component.d.ts +3 -1
- package/package.json +1 -1
package/esm2022/lib/components/puro-header-mobile-submenu/puro-header-mobile-submenu.component.mjs
CHANGED
|
@@ -12,6 +12,7 @@ export class PuroHeaderMobileSubmenuComponent {
|
|
|
12
12
|
this.router = inject(Router);
|
|
13
13
|
this.isDynamic = false;
|
|
14
14
|
this.btnClick = new EventEmitter();
|
|
15
|
+
this.btnClickCheckin = new EventEmitter();
|
|
15
16
|
this.SITE_GROUP = 1;
|
|
16
17
|
this.SITE_HOTELS = 2;
|
|
17
18
|
this.SITE_BEACH = 3;
|
|
@@ -88,7 +89,7 @@ export class PuroHeaderMobileSubmenuComponent {
|
|
|
88
89
|
}
|
|
89
90
|
}
|
|
90
91
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroHeaderMobileSubmenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroHeaderMobileSubmenuComponent, isStandalone: true, selector: "lib-puro-header-mobile-submenu", inputs: { titleMenu: "titleMenu", titleLang: "titleLang", btnBook: "btnBook", navLinks: "navLinks", bottomLinks: "bottomLinks", isDynamic: "isDynamic", logoHotel: "logoHotel", logoHotelWhite: "logoHotelWhite", siteId: "siteId" }, outputs: { btnClick: "btnClick" }, providers: [PuroActiveModalDirective], ngImport: i0, template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"banner__logo\">\n <a\n [href]=\"navLinks?.[0]?.url\"\n [linkType]=\"navLinks?.[0]?.linkType\"\n [attr.aria-label]=\"navLinks?.[0]?.label\"\n >\n @if (logoHotelWhite && logoHotel) {\n <img\n [ngSrc]=\"hasStickyClasses() ? logoHotel : logoHotelWhite\"\n alt=\"Logo\"\n width=\"177\"\n height=\"68\"\n class=\"header__logo--img\"\n priority\n />\n }\n </a>\n </div>\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div class=\"header__reserver\">\n <a
|
|
92
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PuroHeaderMobileSubmenuComponent, isStandalone: true, selector: "lib-puro-header-mobile-submenu", inputs: { titleMenu: "titleMenu", titleLang: "titleLang", btnBook: "btnBook", btnCheckin: "btnCheckin", navLinks: "navLinks", bottomLinks: "bottomLinks", isDynamic: "isDynamic", logoHotel: "logoHotel", logoHotelWhite: "logoHotelWhite", siteId: "siteId" }, outputs: { btnClick: "btnClick", btnClickCheckin: "btnClickCheckin" }, providers: [PuroActiveModalDirective], ngImport: i0, template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"banner__logo\">\n <a\n [href]=\"navLinks?.[0]?.url\"\n [linkType]=\"navLinks?.[0]?.linkType\"\n [attr.aria-label]=\"navLinks?.[0]?.label\"\n >\n @if (logoHotelWhite && logoHotel) {\n <img\n [ngSrc]=\"hasStickyClasses() ? logoHotel : logoHotelWhite\"\n alt=\"Logo\"\n width=\"177\"\n height=\"68\"\n class=\"header__logo--img\"\n priority\n />\n }\n </a>\n </div>\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div class=\"header__reserver\">\n @if (btnCheckin && siteId == 2) {\n <a \n class=\"btn btn__secondary btn--lg mobile__checkIn\"\n (click)=\"btnClickCheckin.emit()\"\n [attr.aria-label]=\"btnCheckin\"\n >\n <span>{{ btnCheckin }}</span></a\n >\n }\n @if (btnBook) {\n <a\n class=\"btn btn__primary btn--lg mobile__reservar\"\n (click)=\"btnClick.emit()\"\n data-modal_name=\"reserver\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\" [style.--bg-url]=\"cssBgUrl\">\n <div class=\"modal__inner\">\n <div class=\"modal__body\">\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n [linkType]=\"link.linkType\"\n [href]=\"link.url\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--bg-url)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PuroLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick"], outputs: ["bookClick", "anchorClicked"] }, { kind: "directive", type: PuroActiveModalDirective, selector: "[activeModal]" }, { kind: "directive", type: PuroNavStickyDirective, selector: "[navSticky]", inputs: ["isDynamic"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
92
93
|
}
|
|
93
94
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PuroHeaderMobileSubmenuComponent, decorators: [{
|
|
94
95
|
type: Component,
|
|
@@ -98,13 +99,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
98
99
|
PuroActiveModalDirective,
|
|
99
100
|
PuroNavStickyDirective,
|
|
100
101
|
NgOptimizedImage
|
|
101
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, providers: [PuroActiveModalDirective], template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"banner__logo\">\n <a\n [href]=\"navLinks?.[0]?.url\"\n [linkType]=\"navLinks?.[0]?.linkType\"\n [attr.aria-label]=\"navLinks?.[0]?.label\"\n >\n @if (logoHotelWhite && logoHotel) {\n <img\n [ngSrc]=\"hasStickyClasses() ? logoHotel : logoHotelWhite\"\n alt=\"Logo\"\n width=\"177\"\n height=\"68\"\n class=\"header__logo--img\"\n priority\n />\n }\n </a>\n </div>\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div class=\"header__reserver\">\n <a
|
|
102
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, providers: [PuroActiveModalDirective], template: "<header class=\"header\" navSticky [isDynamic]=\"isDynamic\">\n <div class=\"banner__logo\">\n <a\n [href]=\"navLinks?.[0]?.url\"\n [linkType]=\"navLinks?.[0]?.linkType\"\n [attr.aria-label]=\"navLinks?.[0]?.label\"\n >\n @if (logoHotelWhite && logoHotel) {\n <img\n [ngSrc]=\"hasStickyClasses() ? logoHotel : logoHotelWhite\"\n alt=\"Logo\"\n width=\"177\"\n height=\"68\"\n class=\"header__logo--img\"\n priority\n />\n }\n </a>\n </div>\n <div\n class=\"header__menu js-active-modal\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n [attr.aria-label]=\"titleMenu ?? 'Menu'\"\n >\n <i class=\"icon-83\"></i>\n @if (titleMenu) {\n <span>{{ titleMenu }}</span>\n }\n </div>\n <div class=\"header__reserver\">\n @if (btnCheckin && siteId == 2) {\n <a \n class=\"btn btn__secondary btn--lg mobile__checkIn\"\n (click)=\"btnClickCheckin.emit()\"\n [attr.aria-label]=\"btnCheckin\"\n >\n <span>{{ btnCheckin }}</span></a\n >\n }\n @if (btnBook) {\n <a\n class=\"btn btn__primary btn--lg mobile__reservar\"\n (click)=\"btnClick.emit()\"\n data-modal_name=\"reserver\"\n [attr.aria-label]=\"btnBook\"\n >\n <span>{{ btnBook }}</span>\n </a>\n }\n </div>\n <div\n class=\"header__language js-active-modal\"\n activeModal\n data-modal_name=\"language\"\n role=\"button\"\n [attr.aria-label]=\"titleLang ?? 'Language Menu'\"\n >\n @if (titleLang) {\n {{ titleLang }}\n }\n </div>\n</header>\n\n<div class=\"modal modal--solidCream modal--navigation\" [style.--bg-url]=\"cssBgUrl\">\n <div class=\"modal__inner\">\n <div class=\"modal__body\">\n <div\n class=\"modal__close js-close\"\n activeModal\n data-modal_name=\"navigation\"\n role=\"button\"\n aria-label=\"Close Button\"\n >\n <svg\n aria-hidden=\"true\"\n focusable=\"false\"\n class=\"modal__close--icon\"\n >\n <use href=\"#modal-close\"></use>\n </svg>\n </div>\n <div class=\"modal__nav\">\n <ul class=\"modal__nav--items\">\n @if (navLinks) {\n @for (link of navLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n [href]=\"link.url\"\n [linkType]=\"link.linkType\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n <ul class=\"modal__nav--itemsSmall\">\n @if (bottomLinks) {\n @for (link of bottomLinks; track $index) {\n <li class=\"modal__nav--link\">\n <a\n [linkType]=\"link.linkType\"\n [href]=\"link.url\"\n [attr.aria-label]=\"link.label\"\n >{{ link.label }}</a\n >\n </li>\n }\n }\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal.modal--navigation .modal__body:after{background-image:var(--bg-url)}\n"] }]
|
|
102
103
|
}], propDecorators: { titleMenu: [{
|
|
103
104
|
type: Input
|
|
104
105
|
}], titleLang: [{
|
|
105
106
|
type: Input
|
|
106
107
|
}], btnBook: [{
|
|
107
108
|
type: Input
|
|
109
|
+
}], btnCheckin: [{
|
|
110
|
+
type: Input
|
|
108
111
|
}], navLinks: [{
|
|
109
112
|
type: Input
|
|
110
113
|
}], bottomLinks: [{
|
|
@@ -119,5 +122,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
119
122
|
type: Input
|
|
120
123
|
}], btnClick: [{
|
|
121
124
|
type: Output
|
|
125
|
+
}], btnClickCheckin: [{
|
|
126
|
+
type: Output
|
|
122
127
|
}] } });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1oZWFkZXItbW9iaWxlLXN1Ym1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1oZWFkZXItbW9iaWxlLXN1Ym1lbnUvcHVyby1oZWFkZXItbW9iaWxlLXN1Ym1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1oZWFkZXItbW9iaWxlLXN1Ym1lbnUvcHVyby1oZWFkZXItbW9iaWxlLXN1Ym1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BGLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxNQUFNLEVBR04sTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIscUJBQXFCLEdBQ3hCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFFcEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQWlCOUIsTUFBTSxPQUFPLGdDQUFnQztJQWY3QztRQWdCWSxlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDbEQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQVF2QixjQUFT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QUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIsIE5nT3B0aW1pemVkSW1hZ2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBQTEFURk9STV9JRCxcbiAgICBpbmplY3QsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBQdXJvQWN0aXZlTW9kYWxEaXJlY3RpdmUsXG4gICAgUHVyb0xpbmtUeXBlRGlyZWN0aXZlLFxufSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFB1cm9OYXZTdGlja3lEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3B1cm8tbmF2LXN0aWNreS9wdXJvLW5hdi1zdGlja3kuZGlyZWN0aXZlJztcbmltcG9ydCB7IFB1cm9CdXR0b25JIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXB1cm8taGVhZGVyLW1vYmlsZS1zdWJtZW51JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUHVyb0xpbmtUeXBlRGlyZWN0aXZlLFxuICAgIFB1cm9BY3RpdmVNb2RhbERpcmVjdGl2ZSxcbiAgICBQdXJvTmF2U3RpY2t5RGlyZWN0aXZlLFxuICAgIE5nT3B0aW1pemVkSW1hZ2Vcbl0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3B1cm8taGVhZGVyLW1vYmlsZS1zdWJtZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vcHVyby1oZWFkZXItbW9iaWxlLXN1Ym1lbnUuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1B1cm9BY3RpdmVNb2RhbERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFB1cm9IZWFkZXJNb2JpbGVTdWJtZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gICAgcHJpdmF0ZSBhY3RpdmVNb2RhbER0diA9IGluamVjdChQdXJvQWN0aXZlTW9kYWxEaXJlY3RpdmUpO1xuICAgIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gICAgcHJpdmF0ZSByb3V0ZXJTdWI/OiBhbnk7XG5cbiAgICBASW5wdXQoKSB0aXRsZU1lbnU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgdGl0bGVMYW5nPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGJ0bkJvb2s/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgbmF2TGlua3M/OiBQdXJvQnV0dG9uSVtdO1xuICAgIEBJbnB1dCgpIGJvdHRvbUxpbmtzPzogUHVyb0J1dHRvbklbXTtcbiAgICBASW5wdXQoKSBpc0R5bmFtaWMgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBsb2dvSG90ZWw/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgbG9nb0hvdGVsV2hpdGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2l0ZUlkPzpcbiAgICAgICAgfCB0eXBlb2YgdGhpcy5TSVRFX0dST1VQXG4gICAgICAgIHwgdHlwZW9mIHRoaXMuU0lURV9CRUFDSFxuICAgICAgICB8IHR5cGVvZiB0aGlzLlNJVEVfSE9URUxTO1xuXG4gICAgQE91dHB1dCgpIGJ0bkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBTSVRFX0dST1VQID0gMTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IFNJVEVfSE9URUxTID0gMjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IFNJVEVfQkVBQ0ggPSAzO1xuXG4gICAgLyoqIFJlYWN0aXZlIHNpZ25hbCBxdWUgaW5kaWNhIHNpIGVsIGJvZHkgdGllbmUgYW1iYXMgY2xhc2VzICovXG4gICAgaGFzU3RpY2t5Q2xhc3NlcyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBwcml2YXRlIG9ic2VydmVyPzogTXV0YXRpb25PYnNlcnZlcjtcbiAgICBwcml2YXRlIHNjcm9sbExpc3RlbmVyPzogKCkgPT4gdm9pZDtcbiAgICBwcml2YXRlIHJhZklkPzogbnVtYmVyO1xuXG4gICAgY3NzQmdVcmwgPSAnJztcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5sb2dvSG90ZWwpIHtcbiAgICAgICAgICAgIHRoaXMuY3NzQmdVcmwgPSBgdXJsKFwiJHt0aGlzLmxvZ29Ib3RlbH1cIilgO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2hvdGVscycpO1xuXG4gICAgICAgICAgICB0aGlzLnJvdXRlclN1YiA9IHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoKGUpID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2hvdGVscycpO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy51cGRhdGVTdGlja3lTdGF0ZSgpO1xuXG4gICAgICAgICAgICAvLyDwn5GB77iPIE9ic2VydmVyIHBhcmEgZGV0ZWN0YXIgY2FtYmlvcyBkZSBjbGFzZSBlbiBib2R5XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN0aWNreVN0YXRlKClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwge1xuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJ10sXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8g8J+OryBMaXN0ZW5lciBkZSBzY3JvbGw6IGFzZWd1cmEgZGV0ZWNjacOzbiBpbmNsdXNvIGVuIHNjcm9sbCByw6FwaWRvXG4gICAgICAgICAgICB0aGlzLnNjcm9sbExpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmSWQhKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuY2hlY2tTdGlja3lDbGFzc2VzKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc1N0aWNreUNsYXNzZXMoKSAhPT0gY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNTdGlja3lDbGFzc2VzLnNldChjdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnNjcm9sbExpc3RlbmVyLCB7XG4gICAgICAgICAgICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm91dGVyU3ViPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgIGlmICh0aGlzLnNjcm9sbExpc3RlbmVyKVxuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuc2Nyb2xsTGlzdGVuZXIpO1xuICAgICAgICBpZiAodGhpcy5yYWZJZCkgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5yYWZJZCk7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ2hvdGVscycpO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIHVwZGF0ZVN0aWNreVN0YXRlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5jaGVja1N0aWNreUNsYXNzZXMoKTtcbiAgICAgICAgaWYgKHRoaXMuaGFzU3RpY2t5Q2xhc3NlcygpICE9PSBjdXJyZW50KSB7XG4gICAgICAgICAgICB0aGlzLmhhc1N0aWNreUNsYXNzZXMuc2V0KGN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1N0aWNreUNsYXNzZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdDtcbiAgICAgICAgcmV0dXJuIGJvZHkuY29udGFpbnMoJ25hdi1zdGlja3knKSAmJiBib2R5LmNvbnRhaW5zKCdtb2JpbGUtc3RpY2t5Jyk7XG4gICAgfVxuXG4gICAgY2xpY2tCdG5Cb29rKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ0bkNsaWNrLmVtaXQoKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLnNpdGVJZCkge1xuICAgICAgICAgICAgY2FzZSB0aGlzLlNJVEVfR1JPVVA6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHRoaXMuU0lURV9IT1RFTFM6XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVNb2RhbER0di5oYW5kbGVDbGljaygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSB0aGlzLlNJVEVfQkVBQ0g6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGhlYWRlciBjbGFzcz1cImhlYWRlclwiIG5hdlN0aWNreSBbaXNEeW5hbWljXT1cImlzRHluYW1pY1wiPlxuICAgIDxkaXYgY2xhc3M9XCJiYW5uZXJfX2xvZ29cIj5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIFtocmVmXT1cIm5hdkxpbmtzPy5bMF0/LnVybFwiXG4gICAgICAgICAgICBbbGlua1R5cGVdPVwibmF2TGlua3M/LlswXT8ubGlua1R5cGVcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJuYXZMaW5rcz8uWzBdPy5sYWJlbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAobG9nb0hvdGVsV2hpdGUgJiYgbG9nb0hvdGVsKSB7XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBbbmdTcmNdPVwiaGFzU3RpY2t5Q2xhc3NlcygpID8gbG9nb0hvdGVsIDogbG9nb0hvdGVsV2hpdGVcIlxuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJMb2dvXCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNzdcIlxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI2OFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19sb2dvLS1pbWdcIlxuICAgICAgICAgICAgICAgICAgICBwcmlvcml0eVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaGVhZGVyX19tZW51IGpzLWFjdGl2ZS1tb2RhbFwiXG4gICAgICAgIGFjdGl2ZU1vZGFsXG4gICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cIm5hdmlnYXRpb25cIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0aXRsZU1lbnUgPz8gJ01lbnUnXCJcbiAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbi04M1wiPjwvaT5cbiAgICAgICAgQGlmICh0aXRsZU1lbnUpIHtcbiAgICAgICAgICAgIDxzcGFuPnt7IHRpdGxlTWVudSB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJfX3Jlc2VydmVyXCI+XG4gICAgICAgIDxhIGhyZWY9XCJcIiBjbGFzcz1cImJ0biBidG5fX3NlY29uZGFyeSBidG4tLWxnIG1vYmlsZV9fY2hlY2tJblwiXG4gICAgICAgICAgICA+PHNwYW4+Q0hFQ0tJTiBPTkxJTkU8L3NwYW4+PC9hXG4gICAgICAgID5cbiAgICAgICAgQGlmIChidG5Cb29rKSB7XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bl9fcHJpbWFyeSBidG4tLWxnIG1vYmlsZV9fcmVzZXJ2YXJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJidG5DbGljay5lbWl0KClcIlxuICAgICAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cInJlc2VydmVyXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ0bkJvb2tcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGJ0bkJvb2sgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaGVhZGVyX19sYW5ndWFnZSBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICBhY3RpdmVNb2RhbFxuICAgICAgICBkYXRhLW1vZGFsX25hbWU9XCJsYW5ndWFnZVwiXG4gICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRpdGxlTGFuZyA/PyAnTGFuZ3VhZ2UgTWVudSdcIlxuICAgID5cbiAgICAgICAgQGlmICh0aXRsZUxhbmcpIHtcbiAgICAgICAgICAgIHt7IHRpdGxlTGFuZyB9fVxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L2hlYWRlcj5cblxuPGRpdiBjbGFzcz1cIm1vZGFsIG1vZGFsLS1zb2xpZENyZWFtIG1vZGFsLS1uYXZpZ2F0aW9uXCIgW3N0eWxlLi0tYmctdXJsXT1cImNzc0JnVXJsXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsX19pbm5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWxfX2JvZHlcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vZGFsX19jbG9zZSBqcy1jbG9zZVwiXG4gICAgICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgICAgICBkYXRhLW1vZGFsX25hbWU9XCJuYXZpZ2F0aW9uXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2UgQnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb2RhbF9fY2xvc2UtLWljb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPVwiI21vZGFsLWNsb3NlXCI+PC91c2U+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbF9fbmF2XCI+XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibW9kYWxfX25hdi0taXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChuYXZMaW5rcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAobGluayBvZiBuYXZMaW5rczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibW9kYWxfX25hdi0tbGlua1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cImxpbmsubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsaW5rLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBsaW5rLmxhYmVsIH19PC9hXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJtb2RhbF9fbmF2LS1pdGVtc1NtYWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoYm90dG9tTGlua3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGxpbmsgb2YgYm90dG9tTGlua3M7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm1vZGFsX19uYXYtLWxpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJsaW5rLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImxpbmsudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGluay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgbGluay5sYWJlbCB9fTwvYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1oZWFkZXItbW9iaWxlLXN1Ym1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1oZWFkZXItbW9iaWxlLXN1Ym1lbnUvcHVyby1oZWFkZXItbW9iaWxlLXN1Ym1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2NvbXBvbmVudHMvcHVyby1oZWFkZXItbW9iaWxlLXN1Ym1lbnUvcHVyby1oZWFkZXItbW9iaWxlLXN1Ym1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BGLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxNQUFNLEVBR04sTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIscUJBQXFCLEdBQ3hCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFFcEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQWlCOUIsTUFBTSxPQUFPLGdDQUFnQztJQWY3QztRQWdCWSxlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDbEQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQVN2QixjQUFT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U0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciwgTmdPcHRpbWl6ZWRJbWFnZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFBMQVRGT1JNX0lELFxuICAgIGluamVjdCxcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIFB1cm9BY3RpdmVNb2RhbERpcmVjdGl2ZSxcbiAgICBQdXJvTGlua1R5cGVEaXJlY3RpdmUsXG59IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgUHVyb05hdlN0aWNreURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcHVyby1uYXYtc3RpY2t5L3B1cm8tbmF2LXN0aWNreS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUHVyb0J1dHRvbkkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItcHVyby1oZWFkZXItbW9iaWxlLXN1Ym1lbnUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBQdXJvTGlua1R5cGVEaXJlY3RpdmUsXG4gICAgUHVyb0FjdGl2ZU1vZGFsRGlyZWN0aXZlLFxuICAgIFB1cm9OYXZTdGlja3lEaXJlY3RpdmUsXG4gICAgTmdPcHRpbWl6ZWRJbWFnZVxuXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHVyby1oZWFkZXItbW9iaWxlLXN1Ym1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9wdXJvLWhlYWRlci1tb2JpbGUtc3VibWVudS5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbUHVyb0FjdGl2ZU1vZGFsRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgUHVyb0hlYWRlck1vYmlsZVN1Ym1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgICBwcml2YXRlIGFjdGl2ZU1vZGFsRHR2ID0gaW5qZWN0KFB1cm9BY3RpdmVNb2RhbERpcmVjdGl2ZSk7XG4gICAgcHJpdmF0ZSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgICBwcml2YXRlIHJvdXRlclN1Yj86IGFueTtcblxuICAgIEBJbnB1dCgpIHRpdGxlTWVudT86IHN0cmluZztcbiAgICBASW5wdXQoKSB0aXRsZUxhbmc/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgYnRuQm9vaz86IHN0cmluZztcbiAgICBASW5wdXQoKSBidG5DaGVja2luPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG5hdkxpbmtzPzogUHVyb0J1dHRvbklbXTtcbiAgICBASW5wdXQoKSBib3R0b21MaW5rcz86IFB1cm9CdXR0b25JW107XG4gICAgQElucHV0KCkgaXNEeW5hbWljID0gZmFsc2U7XG4gICAgQElucHV0KCkgbG9nb0hvdGVsPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxvZ29Ib3RlbFdoaXRlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHNpdGVJZD86XG4gICAgICAgIHwgdHlwZW9mIHRoaXMuU0lURV9HUk9VUFxuICAgICAgICB8IHR5cGVvZiB0aGlzLlNJVEVfQkVBQ0hcbiAgICAgICAgfCB0eXBlb2YgdGhpcy5TSVRFX0hPVEVMUztcblxuICAgIEBPdXRwdXQoKSBidG5DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYnRuQ2xpY2tDaGVja2luID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBTSVRFX0dST1VQID0gMTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IFNJVEVfSE9URUxTID0gMjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IFNJVEVfQkVBQ0ggPSAzO1xuXG4gICAgLyoqIFJlYWN0aXZlIHNpZ25hbCBxdWUgaW5kaWNhIHNpIGVsIGJvZHkgdGllbmUgYW1iYXMgY2xhc2VzICovXG4gICAgaGFzU3RpY2t5Q2xhc3NlcyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBwcml2YXRlIG9ic2VydmVyPzogTXV0YXRpb25PYnNlcnZlcjtcbiAgICBwcml2YXRlIHNjcm9sbExpc3RlbmVyPzogKCkgPT4gdm9pZDtcbiAgICBwcml2YXRlIHJhZklkPzogbnVtYmVyO1xuXG4gICAgY3NzQmdVcmwgPSAnJztcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5sb2dvSG90ZWwpIHtcbiAgICAgICAgICAgIHRoaXMuY3NzQmdVcmwgPSBgdXJsKFwiJHt0aGlzLmxvZ29Ib3RlbH1cIilgO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2hvdGVscycpO1xuXG4gICAgICAgICAgICB0aGlzLnJvdXRlclN1YiA9IHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgICAgICAgICAucGlwZShmaWx0ZXIoKGUpID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2hvdGVscycpO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy51cGRhdGVTdGlja3lTdGF0ZSgpO1xuXG4gICAgICAgICAgICAvLyDwn5GB77iPIE9ic2VydmVyIHBhcmEgZGV0ZWN0YXIgY2FtYmlvcyBkZSBjbGFzZSBlbiBib2R5XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN0aWNreVN0YXRlKClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwge1xuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJ10sXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8g8J+OryBMaXN0ZW5lciBkZSBzY3JvbGw6IGFzZWd1cmEgZGV0ZWNjacOzbiBpbmNsdXNvIGVuIHNjcm9sbCByw6FwaWRvXG4gICAgICAgICAgICB0aGlzLnNjcm9sbExpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMucmFmSWQhKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuY2hlY2tTdGlja3lDbGFzc2VzKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc1N0aWNreUNsYXNzZXMoKSAhPT0gY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNTdGlja3lDbGFzc2VzLnNldChjdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnNjcm9sbExpc3RlbmVyLCB7XG4gICAgICAgICAgICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm91dGVyU3ViPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgIGlmICh0aGlzLnNjcm9sbExpc3RlbmVyKVxuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuc2Nyb2xsTGlzdGVuZXIpO1xuICAgICAgICBpZiAodGhpcy5yYWZJZCkgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5yYWZJZCk7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ2hvdGVscycpO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIHVwZGF0ZVN0aWNreVN0YXRlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5jaGVja1N0aWNreUNsYXNzZXMoKTtcbiAgICAgICAgaWYgKHRoaXMuaGFzU3RpY2t5Q2xhc3NlcygpICE9PSBjdXJyZW50KSB7XG4gICAgICAgICAgICB0aGlzLmhhc1N0aWNreUNsYXNzZXMuc2V0KGN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1N0aWNreUNsYXNzZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdDtcbiAgICAgICAgcmV0dXJuIGJvZHkuY29udGFpbnMoJ25hdi1zdGlja3knKSAmJiBib2R5LmNvbnRhaW5zKCdtb2JpbGUtc3RpY2t5Jyk7XG4gICAgfVxuXG4gICAgY2xpY2tCdG5Cb29rKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ0bkNsaWNrLmVtaXQoKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLnNpdGVJZCkge1xuICAgICAgICAgICAgY2FzZSB0aGlzLlNJVEVfR1JPVVA6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHRoaXMuU0lURV9IT1RFTFM6XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVNb2RhbER0di5oYW5kbGVDbGljaygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSB0aGlzLlNJVEVfQkVBQ0g6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGhlYWRlciBjbGFzcz1cImhlYWRlclwiIG5hdlN0aWNreSBbaXNEeW5hbWljXT1cImlzRHluYW1pY1wiPlxuICAgIDxkaXYgY2xhc3M9XCJiYW5uZXJfX2xvZ29cIj5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIFtocmVmXT1cIm5hdkxpbmtzPy5bMF0/LnVybFwiXG4gICAgICAgICAgICBbbGlua1R5cGVdPVwibmF2TGlua3M/LlswXT8ubGlua1R5cGVcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJuYXZMaW5rcz8uWzBdPy5sYWJlbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAobG9nb0hvdGVsV2hpdGUgJiYgbG9nb0hvdGVsKSB7XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBbbmdTcmNdPVwiaGFzU3RpY2t5Q2xhc3NlcygpID8gbG9nb0hvdGVsIDogbG9nb0hvdGVsV2hpdGVcIlxuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJMb2dvXCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNzdcIlxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI2OFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyX19sb2dvLS1pbWdcIlxuICAgICAgICAgICAgICAgICAgICBwcmlvcml0eVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaGVhZGVyX19tZW51IGpzLWFjdGl2ZS1tb2RhbFwiXG4gICAgICAgIGFjdGl2ZU1vZGFsXG4gICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cIm5hdmlnYXRpb25cIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0aXRsZU1lbnUgPz8gJ01lbnUnXCJcbiAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbi04M1wiPjwvaT5cbiAgICAgICAgQGlmICh0aXRsZU1lbnUpIHtcbiAgICAgICAgICAgIDxzcGFuPnt7IHRpdGxlTWVudSB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJfX3Jlc2VydmVyXCI+XG4gICAgICAgIEBpZiAoYnRuQ2hlY2tpbiAmJiBzaXRlSWQgPT0gMikge1xuICAgICAgICAgICAgPGEgXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX19zZWNvbmRhcnkgYnRuLS1sZyBtb2JpbGVfX2NoZWNrSW5cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJidG5DbGlja0NoZWNraW4uZW1pdCgpXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ0bkNoZWNraW5cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGJ0bkNoZWNraW4gfX08L3NwYW4+PC9hXG4gICAgICAgICAgICA+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChidG5Cb29rKSB7XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bl9fcHJpbWFyeSBidG4tLWxnIG1vYmlsZV9fcmVzZXJ2YXJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJidG5DbGljay5lbWl0KClcIlxuICAgICAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cInJlc2VydmVyXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ0bkJvb2tcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGJ0bkJvb2sgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaGVhZGVyX19sYW5ndWFnZSBqcy1hY3RpdmUtbW9kYWxcIlxuICAgICAgICBhY3RpdmVNb2RhbFxuICAgICAgICBkYXRhLW1vZGFsX25hbWU9XCJsYW5ndWFnZVwiXG4gICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRpdGxlTGFuZyA/PyAnTGFuZ3VhZ2UgTWVudSdcIlxuICAgID5cbiAgICAgICAgQGlmICh0aXRsZUxhbmcpIHtcbiAgICAgICAgICAgIHt7IHRpdGxlTGFuZyB9fVxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L2hlYWRlcj5cblxuPGRpdiBjbGFzcz1cIm1vZGFsIG1vZGFsLS1zb2xpZENyZWFtIG1vZGFsLS1uYXZpZ2F0aW9uXCIgW3N0eWxlLi0tYmctdXJsXT1cImNzc0JnVXJsXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsX19pbm5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWxfX2JvZHlcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vZGFsX19jbG9zZSBqcy1jbG9zZVwiXG4gICAgICAgICAgICAgICAgYWN0aXZlTW9kYWxcbiAgICAgICAgICAgICAgICBkYXRhLW1vZGFsX25hbWU9XCJuYXZpZ2F0aW9uXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2UgQnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb2RhbF9fY2xvc2UtLWljb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHVzZSBocmVmPVwiI21vZGFsLWNsb3NlXCI+PC91c2U+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbF9fbmF2XCI+XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibW9kYWxfX25hdi0taXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChuYXZMaW5rcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAobGluayBvZiBuYXZMaW5rczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibW9kYWxfX25hdi0tbGlua1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cImxpbmsubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsaW5rLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBsaW5rLmxhYmVsIH19PC9hXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJtb2RhbF9fbmF2LS1pdGVtc1NtYWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoYm90dG9tTGlua3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGxpbmsgb2YgYm90dG9tTGlua3M7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm1vZGFsX19uYXYtLWxpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJsaW5rLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImxpbmsudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGluay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgbGluay5sYWJlbCB9fTwvYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|