ctt-babylon 0.26.4 → 0.26.6
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/core/babylon-ai-badge/babylon-ai-badge.component.mjs +32 -0
- package/esm2022/lib/components/core/babylon-list-img/babylon-list-img.component.mjs +11 -3
- package/esm2022/lib/components/core/babylon-social-bar/babylon-social-bar.component.mjs +3 -3
- package/esm2022/lib/components/external/core/c2-txt-cta/c2-txt-cta.component.mjs +3 -3
- package/esm2022/lib/components/external/core/complex-module-slider-r-v2/complex-module-slider-r-v2.component.mjs +40 -7
- package/esm2022/lib/components/external/core/lis-c3-img-txt-cta/lis-c3-img-txt-cta.component.mjs +7 -3
- package/esm2022/lib/components/external/core/sli-c2-img-txt-cta-v4/sli-c2-img-txt-cta-v4.component.mjs +7 -3
- package/esm2022/lib/components/external/core/sli-c2-img-txt-r/sli-c2-img-txt-r.component.mjs +13 -8
- package/esm2022/lib/components/external/core/sli-c3-img-txt/sli-c3-img-txt.component.mjs +48 -23
- package/esm2022/lib/components/external/core/top-c2-img-txt/top-c2-img-txt.component.mjs +19 -7
- package/esm2022/lib/interfaces/babylon-image.interface.mjs +1 -1
- package/esm2022/lib/interfaces/babylon-item.interface.mjs +1 -1
- package/esm2022/lib/utils/ai-badge.utils.mjs +37 -0
- package/fesm2022/ctt-babylon.mjs +2 -2
- package/fesm2022/ctt-babylon.mjs.map +1 -1
- package/lib/components/core/babylon-ai-badge/babylon-ai-badge.component.d.ts +12 -0
- package/lib/components/core/babylon-list-img/babylon-list-img.component.d.ts +2 -0
- package/lib/components/external/core/complex-module-slider-r-v2/complex-module-slider-r-v2.component.d.ts +8 -0
- package/lib/components/external/core/lis-c3-img-txt-cta/lis-c3-img-txt-cta.component.d.ts +2 -0
- package/lib/components/external/core/sli-c2-img-txt-cta-v4/sli-c2-img-txt-cta-v4.component.d.ts +2 -0
- package/lib/components/external/core/sli-c2-img-txt-r/sli-c2-img-txt-r.component.d.ts +2 -0
- package/lib/components/external/core/sli-c3-img-txt/sli-c3-img-txt.component.d.ts +2 -0
- package/lib/components/external/core/top-c2-img-txt/top-c2-img-txt.component.d.ts +2 -0
- package/lib/interfaces/babylon-image.interface.d.ts +1 -0
- package/lib/interfaces/babylon-item.interface.d.ts +1 -0
- package/lib/utils/ai-badge.utils.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, HostListener, inject, Input, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { Component, HostListener, inject, Input, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
3
3
|
import Swiper from 'swiper';
|
|
4
4
|
import { Autoplay, Navigation } from 'swiper';
|
|
5
5
|
import { BabylonLinkTypeDirective } from '../../../../directives/link-type/link-type.directive';
|
|
@@ -7,6 +7,8 @@ import { BabylonSwiperCssLoaderDirective } from '../../../../directives/babylon-
|
|
|
7
7
|
import { SITE_CONFIG_SERVICE_TOKEN } from '../../../../services/mapper/mapper.service.token';
|
|
8
8
|
import sliderSettings from './slider-settings.json';
|
|
9
9
|
import { getFirstImageByTagFromImages } from '../../../../utils/mutimedia.utils';
|
|
10
|
+
import { getAiBadgeText } from '../../../../utils/ai-badge.utils';
|
|
11
|
+
import { BabylonAiBadgeComponent } from '../../../core/babylon-ai-badge/babylon-ai-badge.component';
|
|
10
12
|
import * as i0 from "@angular/core";
|
|
11
13
|
export class SliC3ImgTxtComponent {
|
|
12
14
|
constructor(ngZone) {
|
|
@@ -14,11 +16,14 @@ export class SliC3ImgTxtComponent {
|
|
|
14
16
|
this.siteSvc = inject(SITE_CONFIG_SERVICE_TOKEN);
|
|
15
17
|
this.sliderInitialized = false;
|
|
16
18
|
this.tagName = 'SliC3ImgTxt';
|
|
19
|
+
this.getAiBadgeText = getAiBadgeText;
|
|
17
20
|
this.sliderConfig = sliderSettings;
|
|
18
21
|
}
|
|
19
22
|
get normalizedItems() {
|
|
20
|
-
const source = this.items?.length
|
|
21
|
-
|
|
23
|
+
const source = this.items?.length
|
|
24
|
+
? this.items
|
|
25
|
+
: this.experiences;
|
|
26
|
+
return (source
|
|
22
27
|
?.map((item) => {
|
|
23
28
|
const image = this.resolveImage(item);
|
|
24
29
|
if (!image)
|
|
@@ -42,16 +47,17 @@ export class SliC3ImgTxtComponent {
|
|
|
42
47
|
image,
|
|
43
48
|
url: primaryLink?.url ?? itemUrl ?? '#',
|
|
44
49
|
linkType: primaryLink?.linkType,
|
|
45
|
-
target: primaryLink?.target
|
|
50
|
+
target: primaryLink?.target,
|
|
46
51
|
};
|
|
47
52
|
})
|
|
48
|
-
?.filter(Boolean) ?? [];
|
|
53
|
+
?.filter(Boolean) ?? []);
|
|
49
54
|
}
|
|
50
55
|
ngAfterViewInit() {
|
|
51
56
|
this.initSlider();
|
|
52
57
|
}
|
|
53
58
|
ngOnChanges(changes) {
|
|
54
|
-
if ((changes['items'] || changes['experiences']) &&
|
|
59
|
+
if ((changes['items'] || changes['experiences']) &&
|
|
60
|
+
this.sliderInitialized) {
|
|
55
61
|
this.destroySlider();
|
|
56
62
|
queueMicrotask(() => this.initSlider());
|
|
57
63
|
}
|
|
@@ -69,30 +75,38 @@ export class SliC3ImgTxtComponent {
|
|
|
69
75
|
return index;
|
|
70
76
|
}
|
|
71
77
|
resolveImage(item) {
|
|
72
|
-
const taggedMappedImage = getFirstImageByTagFromImages(item?.multimedia?.imagenes, this.tagName) ??
|
|
73
|
-
item?.multimedia?.imagenes?.[0];
|
|
78
|
+
const taggedMappedImage = getFirstImageByTagFromImages(item?.multimedia?.imagenes, this.tagName) ?? item?.multimedia?.imagenes?.[0];
|
|
74
79
|
const mappedTaggedSrc = taggedMappedImage?.img?.src;
|
|
75
80
|
if (mappedTaggedSrc) {
|
|
76
81
|
return {
|
|
82
|
+
tags: taggedMappedImage?.tags,
|
|
77
83
|
src: this.normalizeImageUrl(mappedTaggedSrc),
|
|
78
|
-
alt: taggedMappedImage?.img?.alt ??
|
|
84
|
+
alt: taggedMappedImage?.img?.alt ??
|
|
85
|
+
item?.texts?.title ??
|
|
86
|
+
item?.title ??
|
|
87
|
+
item?.label,
|
|
79
88
|
};
|
|
80
89
|
}
|
|
81
90
|
const direct = item?.img?.src;
|
|
82
91
|
if (direct) {
|
|
83
92
|
return {
|
|
93
|
+
tags: item?.tags,
|
|
84
94
|
src: this.normalizeImageUrl(direct),
|
|
85
|
-
alt: item?.img?.alt ??
|
|
95
|
+
alt: item?.img?.alt ??
|
|
96
|
+
item?.texts?.title ??
|
|
97
|
+
item?.title ??
|
|
98
|
+
item?.label,
|
|
86
99
|
};
|
|
87
100
|
}
|
|
88
101
|
const fromMapped = item?.multimedia?.imagenes?.[0]?.img?.src;
|
|
89
102
|
if (fromMapped) {
|
|
90
103
|
return {
|
|
104
|
+
tags: item?.multimedia?.imagenes?.[0]?.tags,
|
|
91
105
|
src: this.normalizeImageUrl(fromMapped),
|
|
92
106
|
alt: item?.multimedia?.imagenes?.[0]?.img?.alt ??
|
|
93
107
|
item?.texts?.title ??
|
|
94
108
|
item?.title ??
|
|
95
|
-
item?.label
|
|
109
|
+
item?.label,
|
|
96
110
|
};
|
|
97
111
|
}
|
|
98
112
|
const rawImages = item?.multimedia;
|
|
@@ -115,8 +129,9 @@ export class SliC3ImgTxtComponent {
|
|
|
115
129
|
if (!rawSrc)
|
|
116
130
|
return undefined;
|
|
117
131
|
return {
|
|
132
|
+
tags: raw?.tags,
|
|
118
133
|
src: this.normalizeImageUrl(rawSrc),
|
|
119
|
-
alt: raw?.alt ?? item?.texts?.title ?? item?.title ?? item?.label
|
|
134
|
+
alt: raw?.alt ?? item?.texts?.title ?? item?.title ?? item?.label,
|
|
120
135
|
};
|
|
121
136
|
}
|
|
122
137
|
normalizeImageUrl(src) {
|
|
@@ -131,7 +146,9 @@ export class SliC3ImgTxtComponent {
|
|
|
131
146
|
return `${cleanBase}${cleanSrc}`;
|
|
132
147
|
}
|
|
133
148
|
initSlider() {
|
|
134
|
-
if (this.sliderInitialized ||
|
|
149
|
+
if (this.sliderInitialized ||
|
|
150
|
+
typeof window === 'undefined' ||
|
|
151
|
+
!this.sectionSlider) {
|
|
135
152
|
return;
|
|
136
153
|
}
|
|
137
154
|
const items = this.normalizedItems;
|
|
@@ -148,28 +165,31 @@ export class SliC3ImgTxtComponent {
|
|
|
148
165
|
loop: shouldLoop,
|
|
149
166
|
watchOverflow: true,
|
|
150
167
|
centerInsufficientSlides: true,
|
|
151
|
-
navigation: hasMultipleSlides &&
|
|
168
|
+
navigation: hasMultipleSlides &&
|
|
169
|
+
this.sliderConfig.showButtons &&
|
|
170
|
+
this.sliderPrev &&
|
|
171
|
+
this.sliderNext
|
|
152
172
|
? {
|
|
153
173
|
nextEl: this.sliderNext.nativeElement,
|
|
154
|
-
prevEl: this.sliderPrev.nativeElement
|
|
174
|
+
prevEl: this.sliderPrev.nativeElement,
|
|
155
175
|
}
|
|
156
176
|
: false,
|
|
157
177
|
autoplay: this.sliderConfig.autoplay
|
|
158
178
|
? {
|
|
159
179
|
delay: 3000,
|
|
160
|
-
disableOnInteraction: false
|
|
180
|
+
disableOnInteraction: false,
|
|
161
181
|
}
|
|
162
182
|
: false,
|
|
163
183
|
breakpoints: {
|
|
164
184
|
768: {
|
|
165
185
|
slidesPerView: 2.2,
|
|
166
|
-
slidesPerGroup: 1
|
|
186
|
+
slidesPerGroup: 1,
|
|
167
187
|
},
|
|
168
188
|
1124: {
|
|
169
189
|
slidesPerView: 3.2,
|
|
170
|
-
slidesPerGroup: 1
|
|
171
|
-
}
|
|
172
|
-
}
|
|
190
|
+
slidesPerGroup: 1,
|
|
191
|
+
},
|
|
192
|
+
},
|
|
173
193
|
});
|
|
174
194
|
this.sliderInitialized = true;
|
|
175
195
|
});
|
|
@@ -193,11 +213,16 @@ export class SliC3ImgTxtComponent {
|
|
|
193
213
|
this.sliderInitialized = false;
|
|
194
214
|
}
|
|
195
215
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SliC3ImgTxtComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
196
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SliC3ImgTxtComponent, isStandalone: true, selector: "sli-c3-img-txt", inputs: { texts: "texts", items: "items", experiences: "experiences" }, host: { listeners: { "window:resize": "onWindowResize()" } }, viewQueries: [{ propertyName: "sectionSlider", first: true, predicate: ["sectionSlider"], descendants: true }, { propertyName: "sliderPrev", first: true, predicate: ["sliderPrev"], descendants: true }, { propertyName: "sliderNext", first: true, predicate: ["sliderNext"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<section class=\"mdl-slider\" babylonSwiperCssLoader>\n
|
|
216
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SliC3ImgTxtComponent, isStandalone: true, selector: "sli-c3-img-txt", inputs: { texts: "texts", items: "items", experiences: "experiences" }, host: { listeners: { "window:resize": "onWindowResize()" } }, viewQueries: [{ propertyName: "sectionSlider", first: true, predicate: ["sectionSlider"], descendants: true }, { propertyName: "sliderPrev", first: true, predicate: ["sliderPrev"], descendants: true }, { propertyName: "sliderNext", first: true, predicate: ["sliderNext"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<section class=\"mdl-slider\" babylonSwiperCssLoader>\n <div class=\"mdl-container\">\n @if (texts?.title) {\n <h2 class=\"mdl-title\">{{ texts?.title }}</h2>\n }\n\n <div class=\"swiper\" #sectionSlider>\n <div class=\"swiper-wrapper\">\n @for (item of normalizedItems; track trackItem($index)) {\n <a\n class=\"swiper-slide\"\n [href]=\"item.url\"\n [attr.target]=\"item.target || null\"\n [linkType]=\"item.linkType\"\n >\n <img\n [src]=\"item.image.src\"\n [alt]=\"\n item.image.alt || item.title || 'slide image'\n \"\n />\n @if (getAiBadgeText(item.image); as badgeText) {\n <lib-babylon-ai-badge\n [text]=\"badgeText\"\n position=\"top-right\"\n ></lib-babylon-ai-badge>\n }\n <div class=\"m-content\">\n @if (item.title) {\n <h3 class=\"m-titulo\">{{ item.title }}</h3>\n }\n @if (item.description) {\n <p\n class=\"m-texto\"\n [innerHTML]=\"item.description\"\n ></p>\n }\n </div>\n </a>\n }\n </div>\n\n @if (normalizedItems.length > 1 && sliderConfig.showButtons) {\n <button\n class=\"swiper-button-prev\"\n type=\"button\"\n aria-label=\"Anterior\"\n #sliderPrev\n ></button>\n <button\n class=\"swiper-button-next\"\n type=\"button\"\n aria-label=\"Siguiente\"\n #sliderNext\n ></button>\n }\n </div>\n </div>\n</section>\n", styles: ["@charset \"UTF-8\";html{font-size:62.5%}html body{font:14px \"\"}@media (min-width: 1921px) and (max-height: 600px){html{font-size:55.5%}}body,section{font-family:new-atten,sans-serif;font-size:1.6rem;font-weight:400;line-height:2.8rem}section .mdl-container{width:100%;max-width:178rem;margin:0 auto}.readmoreinit{line-height:1.6!important}@media screen and (max-width: 1200px){.readmoreinit{line-height:1.6!important}}@media screen and (max-width: 600px){.readmoreinit{line-height:1.6!important}}.read-more{display:flex;flex-direction:column;font-family:CoreSansG,sans-serif;font-size:1.5rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.4;letter-spacing:normal;color:#e6411e;text-decoration:underline;cursor:pointer;margin-top:2rem}.read-more .less{display:none}.w100{font-weight:100}.w300{font-weight:300}.w400{font-weight:400}.w500{font-weight:medium}.w600{font-weight:600}.w700{font-weight:700}.w900{font-weight:900}.italic{font-style:italic}.row{display:flex;flex-direction:row}.col{display:flex;flex-direction:column}body{cursor:default;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{color:inherit;border:0;margin:0;padding:0}a{text-size-adjust:none;-webkit-text-size-adjust:none;text-decoration:none;cursor:pointer}ul{list-style-position:outside}li{padding-left:3rem;list-style:none;position:relative}li:before{content:\"\\25cf\";position:absolute;top:0;left:0}button,mark{background:none}button,label{cursor:pointer}:focus{outline:none!important}::-moz-focus-inner{border:0}summary::-webkit-details-marker{display:none}button,input[type=submit],input[type=text]{-webkit-appearance:none}h1,h2,h3,h4,h5,h6{text-transform:none}p{width:100%}img{width:auto;height:auto;object-fit:contain}@-webkit-keyframes swingV{15%{-webkit-transform:translateY(.5rem);transform:translateY(.5rem)}30%{-webkit-transform:translateY(-.5rem);transform:translateY(-.5rem)}50%{-webkit-transform:translateY(.3rem);transform:translateY(.3rem)}65%{-webkit-transform:translateY(-.3rem);transform:translateY(-.3rem)}80%{-webkit-transform:translateY(.2rem);transform:translateY(.2rem)}to{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes swingV{15%{-webkit-transform:translateY(.5rem);transform:translateY(.5rem)}30%{-webkit-transform:translateY(-.5rem);transform:translateY(-.5rem)}50%{-webkit-transform:translateY(.3rem);transform:translateY(.3rem)}65%{-webkit-transform:translateY(-.3rem);transform:translateY(-.3rem)}80%{-webkit-transform:translateY(.2rem);transform:translateY(.2rem)}to{-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes swingH{15%{-webkit-transform:translateX(.5rem);transform:translate(.5rem)}30%{-webkit-transform:translateX(-.5rem);transform:translate(-.5rem)}50%{-webkit-transform:translateX(.3rem);transform:translate(.3rem)}65%{-webkit-transform:translateX(-.3rem);transform:translate(-.3rem)}80%{-webkit-transform:translateX(.2rem);transform:translate(.2rem)}to{-webkit-transform:translateX(0);transform:translate(0)}}@keyframes swingH{15%{-webkit-transform:translateX(.5rem);transform:translate(.5rem)}30%{-webkit-transform:translateX(-.5rem);transform:translate(-.5rem)}50%{-webkit-transform:translateX(.3rem);transform:translate(.3rem)}65%{-webkit-transform:translateX(-.3rem);transform:translate(-.3rem)}80%{-webkit-transform:translateX(.2rem);transform:translate(.2rem)}to{-webkit-transform:translateX(0);transform:translate(0)}}.fancybox__backdrop{background-color:#00000087!important}.fancybox__content{padding:0!important}.fancybox__content>.carousel__button.is-close{color:#b6b8bb!important}.fancybox__counter{display:none!important}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-background-clip:text;-webkit-text-fill-color:#ffffff;transition:background-color 5000s ease-in-out 0s;box-shadow:inset 0 0 20px 20px #23232329}.mdl-slider{padding-left:0!important;padding-right:0!important}.mdl-slider .mdl-container{max-width:100%}.mdl-slider .mdl-container .swiper .swiper-wrapper{display:flex}.mdl-slider .mdl-container .swiper .swiper-wrapper .swiper-slide{height:100vh;position:relative;transition:.5s}.mdl-slider .mdl-container .swiper .swiper-wrapper .swiper-slide:hover{opacity:.7;transition:.5s}.mdl-slider .mdl-container .swiper .swiper-wrapper .swiper-slide img{width:100%;height:100%;object-fit:cover}.mdl-slider .mdl-container .swiper .swiper-wrapper .swiper-slide .m-content{position:absolute;top:18rem;left:50%;transform:translate(-50%);width:calc(100% - 2rem);max-width:38.4rem}.mdl-slider .mdl-container .swiper .swiper-wrapper .swiper-slide .m-content .m-titulo{font-family:CoreSansG,sans-serif;font-size:4rem;font-style:normal;font-weight:700;line-height:100%;color:#fff;padding:0 1rem}.mdl-slider .mdl-container .swiper .swiper-wrapper .swiper-slide .m-content .m-texto{font-family:new-atten,sans-serif;font-size:1.6rem;font-weight:400;line-height:2.8rem;color:#fff;margin-top:2rem;padding:0 1rem}.mdl-slider .mdl-container .swiper .swiper-button-prev,.mdl-slider .mdl-container .swiper .swiper-button-next{background-color:#fff;transition:.5s;width:4rem}.mdl-slider .mdl-container .swiper .swiper-button-prev svg,.mdl-slider .mdl-container .swiper .swiper-button-next svg{height:1.2rem}.mdl-slider .mdl-container .swiper .swiper-button-prev:after,.mdl-slider .mdl-container .swiper .swiper-button-next:after{font-size:1.3rem;font-weight:700;color:#393637}.mdl-slider .mdl-container .swiper .swiper-button-prev:hover,.mdl-slider .mdl-container .swiper .swiper-button-next:hover{opacity:.8;transition:.5s}.mdl-slider .mdl-container .swiper .swiper-button-prev{left:0;border-radius:0 4rem 4rem 0}.mdl-slider .mdl-container .swiper .swiper-button-next{right:0;border-radius:4rem 0 0 4rem}@media (max-width: 850px){.mdl-slider .swiper-slide{height:80vh!important}}@media (max-width: 600px){.mdl-slider .swiper-slide{height:80vh}.mdl-slider .m-content{top:10rem!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: BabylonSwiperCssLoaderDirective, selector: "[babylonSwiperCssLoader]" }, { kind: "directive", type: BabylonLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick", "clickPopup", "disablePointerNone"], outputs: ["anchorClicked"] }, { kind: "component", type: BabylonAiBadgeComponent, selector: "lib-babylon-ai-badge", inputs: ["text", "position", "additionalClasses", "top", "bottom", "left", "right"] }] }); }
|
|
197
217
|
}
|
|
198
218
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SliC3ImgTxtComponent, decorators: [{
|
|
199
219
|
type: Component,
|
|
200
|
-
args: [{ selector: 'sli-c3-img-txt', standalone: true, imports: [
|
|
220
|
+
args: [{ selector: 'sli-c3-img-txt', standalone: true, imports: [
|
|
221
|
+
CommonModule,
|
|
222
|
+
BabylonSwiperCssLoaderDirective,
|
|
223
|
+
BabylonLinkTypeDirective,
|
|
224
|
+
BabylonAiBadgeComponent,
|
|
225
|
+
], encapsulation: ViewEncapsulation.Emulated, template: "<section class=\"mdl-slider\" babylonSwiperCssLoader>\n <div class=\"mdl-container\">\n @if (texts?.title) {\n <h2 class=\"mdl-title\">{{ texts?.title }}</h2>\n }\n\n <div class=\"swiper\" #sectionSlider>\n <div class=\"swiper-wrapper\">\n @for (item of normalizedItems; track trackItem($index)) {\n <a\n class=\"swiper-slide\"\n [href]=\"item.url\"\n [attr.target]=\"item.target || null\"\n [linkType]=\"item.linkType\"\n >\n <img\n [src]=\"item.image.src\"\n [alt]=\"\n item.image.alt || item.title || 'slide image'\n \"\n />\n @if (getAiBadgeText(item.image); as badgeText) {\n <lib-babylon-ai-badge\n [text]=\"badgeText\"\n position=\"top-right\"\n ></lib-babylon-ai-badge>\n }\n <div class=\"m-content\">\n @if (item.title) {\n <h3 class=\"m-titulo\">{{ item.title }}</h3>\n }\n @if (item.description) {\n <p\n class=\"m-texto\"\n [innerHTML]=\"item.description\"\n ></p>\n }\n </div>\n </a>\n }\n </div>\n\n @if (normalizedItems.length > 1 && sliderConfig.showButtons) {\n <button\n class=\"swiper-button-prev\"\n type=\"button\"\n aria-label=\"Anterior\"\n #sliderPrev\n ></button>\n <button\n class=\"swiper-button-next\"\n type=\"button\"\n aria-label=\"Siguiente\"\n #sliderNext\n ></button>\n }\n </div>\n </div>\n</section>\n", styles: ["@charset \"UTF-8\";html{font-size:62.5%}html body{font:14px \"\"}@media (min-width: 1921px) and (max-height: 600px){html{font-size:55.5%}}body,section{font-family:new-atten,sans-serif;font-size:1.6rem;font-weight:400;line-height:2.8rem}section .mdl-container{width:100%;max-width:178rem;margin:0 auto}.readmoreinit{line-height:1.6!important}@media screen and (max-width: 1200px){.readmoreinit{line-height:1.6!important}}@media screen and (max-width: 600px){.readmoreinit{line-height:1.6!important}}.read-more{display:flex;flex-direction:column;font-family:CoreSansG,sans-serif;font-size:1.5rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.4;letter-spacing:normal;color:#e6411e;text-decoration:underline;cursor:pointer;margin-top:2rem}.read-more .less{display:none}.w100{font-weight:100}.w300{font-weight:300}.w400{font-weight:400}.w500{font-weight:medium}.w600{font-weight:600}.w700{font-weight:700}.w900{font-weight:900}.italic{font-style:italic}.row{display:flex;flex-direction:row}.col{display:flex;flex-direction:column}body{cursor:default;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{color:inherit;border:0;margin:0;padding:0}a{text-size-adjust:none;-webkit-text-size-adjust:none;text-decoration:none;cursor:pointer}ul{list-style-position:outside}li{padding-left:3rem;list-style:none;position:relative}li:before{content:\"\\25cf\";position:absolute;top:0;left:0}button,mark{background:none}button,label{cursor:pointer}:focus{outline:none!important}::-moz-focus-inner{border:0}summary::-webkit-details-marker{display:none}button,input[type=submit],input[type=text]{-webkit-appearance:none}h1,h2,h3,h4,h5,h6{text-transform:none}p{width:100%}img{width:auto;height:auto;object-fit:contain}@-webkit-keyframes swingV{15%{-webkit-transform:translateY(.5rem);transform:translateY(.5rem)}30%{-webkit-transform:translateY(-.5rem);transform:translateY(-.5rem)}50%{-webkit-transform:translateY(.3rem);transform:translateY(.3rem)}65%{-webkit-transform:translateY(-.3rem);transform:translateY(-.3rem)}80%{-webkit-transform:translateY(.2rem);transform:translateY(.2rem)}to{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes swingV{15%{-webkit-transform:translateY(.5rem);transform:translateY(.5rem)}30%{-webkit-transform:translateY(-.5rem);transform:translateY(-.5rem)}50%{-webkit-transform:translateY(.3rem);transform:translateY(.3rem)}65%{-webkit-transform:translateY(-.3rem);transform:translateY(-.3rem)}80%{-webkit-transform:translateY(.2rem);transform:translateY(.2rem)}to{-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes swingH{15%{-webkit-transform:translateX(.5rem);transform:translate(.5rem)}30%{-webkit-transform:translateX(-.5rem);transform:translate(-.5rem)}50%{-webkit-transform:translateX(.3rem);transform:translate(.3rem)}65%{-webkit-transform:translateX(-.3rem);transform:translate(-.3rem)}80%{-webkit-transform:translateX(.2rem);transform:translate(.2rem)}to{-webkit-transform:translateX(0);transform:translate(0)}}@keyframes swingH{15%{-webkit-transform:translateX(.5rem);transform:translate(.5rem)}30%{-webkit-transform:translateX(-.5rem);transform:translate(-.5rem)}50%{-webkit-transform:translateX(.3rem);transform:translate(.3rem)}65%{-webkit-transform:translateX(-.3rem);transform:translate(-.3rem)}80%{-webkit-transform:translateX(.2rem);transform:translate(.2rem)}to{-webkit-transform:translateX(0);transform:translate(0)}}.fancybox__backdrop{background-color:#00000087!important}.fancybox__content{padding:0!important}.fancybox__content>.carousel__button.is-close{color:#b6b8bb!important}.fancybox__counter{display:none!important}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-background-clip:text;-webkit-text-fill-color:#ffffff;transition:background-color 5000s ease-in-out 0s;box-shadow:inset 0 0 20px 20px #23232329}.mdl-slider{padding-left:0!important;padding-right:0!important}.mdl-slider .mdl-container{max-width:100%}.mdl-slider .mdl-container .swiper .swiper-wrapper{display:flex}.mdl-slider .mdl-container .swiper .swiper-wrapper .swiper-slide{height:100vh;position:relative;transition:.5s}.mdl-slider .mdl-container .swiper .swiper-wrapper .swiper-slide:hover{opacity:.7;transition:.5s}.mdl-slider .mdl-container .swiper .swiper-wrapper .swiper-slide img{width:100%;height:100%;object-fit:cover}.mdl-slider .mdl-container .swiper .swiper-wrapper .swiper-slide .m-content{position:absolute;top:18rem;left:50%;transform:translate(-50%);width:calc(100% - 2rem);max-width:38.4rem}.mdl-slider .mdl-container .swiper .swiper-wrapper .swiper-slide .m-content .m-titulo{font-family:CoreSansG,sans-serif;font-size:4rem;font-style:normal;font-weight:700;line-height:100%;color:#fff;padding:0 1rem}.mdl-slider .mdl-container .swiper .swiper-wrapper .swiper-slide .m-content .m-texto{font-family:new-atten,sans-serif;font-size:1.6rem;font-weight:400;line-height:2.8rem;color:#fff;margin-top:2rem;padding:0 1rem}.mdl-slider .mdl-container .swiper .swiper-button-prev,.mdl-slider .mdl-container .swiper .swiper-button-next{background-color:#fff;transition:.5s;width:4rem}.mdl-slider .mdl-container .swiper .swiper-button-prev svg,.mdl-slider .mdl-container .swiper .swiper-button-next svg{height:1.2rem}.mdl-slider .mdl-container .swiper .swiper-button-prev:after,.mdl-slider .mdl-container .swiper .swiper-button-next:after{font-size:1.3rem;font-weight:700;color:#393637}.mdl-slider .mdl-container .swiper .swiper-button-prev:hover,.mdl-slider .mdl-container .swiper .swiper-button-next:hover{opacity:.8;transition:.5s}.mdl-slider .mdl-container .swiper .swiper-button-prev{left:0;border-radius:0 4rem 4rem 0}.mdl-slider .mdl-container .swiper .swiper-button-next{right:0;border-radius:4rem 0 0 4rem}@media (max-width: 850px){.mdl-slider .swiper-slide{height:80vh!important}}@media (max-width: 600px){.mdl-slider .swiper-slide{height:80vh}.mdl-slider .m-content{top:10rem!important}}\n"] }]
|
|
201
226
|
}], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { texts: [{
|
|
202
227
|
type: Input
|
|
203
228
|
}], items: [{
|
|
@@ -217,4 +242,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
217
242
|
type: HostListener,
|
|
218
243
|
args: ['window:resize']
|
|
219
244
|
}] } });
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpLWMzLWltZy10eHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZXJuYWwvY29yZS9zbGktYzMtaW1nLXR4dC9zbGktYzMtaW1nLXR4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL3NsaS1jMy1pbWctdHh0L3NsaS1jMy1pbWctdHh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUtMLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBRzdILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzdGLE9BQU8sY0FBYyxNQUFNLHdCQUF3QixDQUFDO0FBRXBELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQVVqRixNQUFNLE9BQU8sb0JBQW9CO0lBZ0IvQixZQUE2QixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWYxQixZQUFPLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDckQsc0JBQWlCLEdBQUcs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YztzQkFEYixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgU3dpcGVyIGZyb20gJ3N3aXBlcic7XG5pbXBvcnQgeyBBdXRvcGxheSwgTmF2aWdhdGlvbiB9IGZyb20gJ3N3aXBlcic7XG5pbXBvcnQgeyBCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzL2xpbmstdHlwZS9saW5rLXR5cGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhYnlsb25Td2lwZXJDc3NMb2FkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzL2JhYnlsb24tc2xpZGVycy9iYWJ5bG9uLXN3aXBlci1jc3MtbG9hZGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCYWJ5bG9uSXRlbUksIEJhYnlsb25UZXh0SW5mb0kgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEJhYnlsb25HbG9iYWxFeHBlcmllbmNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9iYWJ5bG9uLWdsb2JhbC1leHBlcmllbmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTSVRFX0NPTkZJR19TRVJWSUNFX1RPS0VOIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvbWFwcGVyL21hcHBlci5zZXJ2aWNlLnRva2VuJztcbmltcG9ydCBzbGlkZXJTZXR0aW5ncyBmcm9tICcuL3NsaWRlci1zZXR0aW5ncy5qc29uJztcbmltcG9ydCB7IFNsaUMzSW1nVHh0U2xpZGVJdGVtIH0gZnJvbSAnLi9zbGktYzMtaW1nLXR4dC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldEZpcnN0SW1hZ2VCeVRhZ0Zyb21JbWFnZXMgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9tdXRpbWVkaWEudXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbGktYzMtaW1nLXR4dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJhYnlsb25Td2lwZXJDc3NMb2FkZXJEaXJlY3RpdmUsIEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zbGktYzMtaW1nLXR4dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9zbGktYzMtaW1nLXR4dC5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIFNsaUMzSW1nVHh0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IHNpdGVTdmMgPSBpbmplY3QoU0lURV9DT05GSUdfU0VSVklDRV9UT0tFTik7XG4gIHByaXZhdGUgc2xpZGVySW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzd2lwZXJJbnN0YW5jZT86IFN3aXBlcjtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWdOYW1lID0gJ1NsaUMzSW1nVHh0JztcblxuICBASW5wdXQoKSB0ZXh0cz86IEJhYnlsb25UZXh0SW5mb0k7XG4gIEBJbnB1dCgpIGl0ZW1zPzogQmFieWxvbkl0ZW1JW107XG4gIEBJbnB1dCgpIGV4cGVyaWVuY2VzPzogQmFieWxvbkdsb2JhbEV4cGVyaWVuY2VbXTtcblxuICBAVmlld0NoaWxkKCdzZWN0aW9uU2xpZGVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIHNlY3Rpb25TbGlkZXI/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnc2xpZGVyUHJldicsIHsgc3RhdGljOiBmYWxzZSB9KSBzbGlkZXJQcmV2PzogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3NsaWRlck5leHQnLCB7IHN0YXRpYzogZmFsc2UgfSkgc2xpZGVyTmV4dD86IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG4gIHJlYWRvbmx5IHNsaWRlckNvbmZpZyA9IHNsaWRlclNldHRpbmdzO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUpIHt9XG5cbiAgZ2V0IG5vcm1hbGl6ZWRJdGVtcygpOiBTbGlDM0ltZ1R4dFNsaWRlSXRlbVtdIHtcbiAgICBjb25zdCBzb3VyY2UgPSB0aGlzLml0ZW1zPy5sZW5ndGggPyB0aGlzLml0ZW1zIDogKHRoaXMuZXhwZXJpZW5jZXMgYXMgQmFieWxvbkl0ZW1JW10gfCB1bmRlZmluZWQpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHNvdXJjZVxuICAgICAgICA/Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGltYWdlID0gdGhpcy5yZXNvbHZlSW1hZ2UoaXRlbSk7XG4gICAgICAgICAgaWYgKCFpbWFnZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgICAgIGNvbnN0IHRpdGxlID1cbiAgICAgICAgICAgIGl0ZW0/LnRleHRzPy50aXRsZSA/P1xuICAgICAgICAgICAgaXRlbT8udGV4dHM/Lm5hbWUgPz9cbiAgICAgICAgICAgIGl0ZW0/LnRpdGxlID8/XG4gICAgICAgICAgICBpdGVtPy5sYWJlbCA/P1xuICAgICAgICAgICAgKGl0ZW0gYXMgYW55KT8ubmFtZUlkZW50aWZpZXIgPz9cbiAgICAgICAgICAgICcnO1xuXG4gICAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPVxuICAgICAgICAgICAgaXRlbT8udGV4dHM/LmRlc2NyaXB0aW9uID8/XG4gICAgICAgICAgICBpdGVtPy5kZXNjcmlwdGlvbiA/P1xuICAgICAgICAgICAgaXRlbT8udGV4dCA/P1xuICAgICAgICAgICAgJyc7XG5cbiAgICAgICAgICBjb25zdCBwcmltYXJ5TGluayA9IGl0ZW0/LmJ1dHRvbnM/LlswXSA/PyBpdGVtPy5saW5rcz8uWzBdO1xuICAgICAgICAgIGNvbnN0IGl0ZW1VcmwgPSAoaXRlbSBhcyBhbnkpPy51cmw7XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IChpdGVtIGFzIGFueSk/LmlkLFxuICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgICAgIGltYWdlLFxuICAgICAgICAgICAgdXJsOiBwcmltYXJ5TGluaz8udXJsID8/IGl0ZW1VcmwgPz8gJyMnLFxuICAgICAgICAgICAgbGlua1R5cGU6IHByaW1hcnlMaW5rPy5saW5rVHlwZSxcbiAgICAgICAgICAgIHRhcmdldDogcHJpbWFyeUxpbms/LnRhcmdldFxuICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICAgID8uZmlsdGVyKEJvb2xlYW4pIGFzIFNsaUMzSW1nVHh0U2xpZGVJdGVtW11cbiAgICApID8/IFtdO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdFNsaWRlcigpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICgoY2hhbmdlc1snaXRlbXMnXSB8fCBjaGFuZ2VzWydleHBlcmllbmNlcyddKSAmJiB0aGlzLnNsaWRlckluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLmRlc3Ryb3lTbGlkZXIoKTtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuaW5pdFNsaWRlcigpKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lTbGlkZXIoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBvbldpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2xpZGVySW5pdGlhbGl6ZWQpIHJldHVybjtcblxuICAgIHRoaXMuZGVzdHJveVNsaWRlcigpO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuaW5pdFNsaWRlcigpKTtcbiAgfVxuXG4gIHRyYWNrSXRlbShpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVJbWFnZShpdGVtOiBCYWJ5bG9uSXRlbUkpOiB7IHNyYzogc3RyaW5nOyBhbHQ/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdGFnZ2VkTWFwcGVkSW1hZ2UgPVxuICAgICAgZ2V0Rmlyc3RJbWFnZUJ5VGFnRnJvbUltYWdlcyhpdGVtPy5tdWx0aW1lZGlhPy5pbWFnZW5lcywgdGhpcy50YWdOYW1lKSA/P1xuICAgICAgaXRlbT8ubXVsdGltZWRpYT8uaW1hZ2VuZXM/LlswXTtcblxuICAgIGNvbnN0IG1hcHBlZFRhZ2dlZFNyYyA9IHRhZ2dlZE1hcHBlZEltYWdlPy5pbWc/LnNyYztcbiAgICBpZiAobWFwcGVkVGFnZ2VkU3JjKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzcmM6IHRoaXMubm9ybWFsaXplSW1hZ2VVcmwobWFwcGVkVGFnZ2VkU3JjKSxcbiAgICAgICAgYWx0OiB0YWdnZWRNYXBwZWRJbWFnZT8uaW1nPy5hbHQgPz8gaXRlbT8udGV4dHM/LnRpdGxlID8/IGl0ZW0/LnRpdGxlID8/IGl0ZW0/LmxhYmVsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGRpcmVjdCA9IGl0ZW0/LmltZz8uc3JjO1xuICAgIGlmIChkaXJlY3QpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNyYzogdGhpcy5ub3JtYWxpemVJbWFnZVVybChkaXJlY3QpLFxuICAgICAgICBhbHQ6IGl0ZW0/LmltZz8uYWx0ID8/IGl0ZW0/LnRleHRzPy50aXRsZSA/PyBpdGVtPy50aXRsZSA/PyBpdGVtPy5sYWJlbFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBmcm9tTWFwcGVkID0gaXRlbT8ubXVsdGltZWRpYT8uaW1hZ2VuZXM/LlswXT8uaW1nPy5zcmM7XG4gICAgaWYgKGZyb21NYXBwZWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNyYzogdGhpcy5ub3JtYWxpemVJbWFnZVVybChmcm9tTWFwcGVkKSxcbiAgICAgICAgYWx0OlxuICAgICAgICAgIGl0ZW0/Lm11bHRpbWVkaWE/LmltYWdlbmVzPy5bMF0/LmltZz8uYWx0ID8/XG4gICAgICAgICAgaXRlbT8udGV4dHM/LnRpdGxlID8/XG4gICAgICAgICAgaXRlbT8udGl0bGUgPz9cbiAgICAgICAgICBpdGVtPy5sYWJlbFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCByYXdJbWFnZXMgPSAoaXRlbSBhcyBhbnkpPy5tdWx0aW1lZGlhIGFzIGFueVtdIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHJhdyA9XG4gICAgICBnZXRGaXJzdEltYWdlQnlUYWdGcm9tSW1hZ2VzKHJhd0ltYWdlcyBhcyBhbnksIHRoaXMudGFnTmFtZSkgPz9cbiAgICAgIHJhd0ltYWdlcz8uWzBdO1xuICAgIGNvbnN0IHJhd1NyYyA9XG4gICAgICByYXc/LnBhdGg/LndlYnAgPz9cbiAgICAgIHJhdz8ucGF0aD8ub3JpZ2luYWwgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzEzNjZdPy53ZWJwID8/XG4gICAgICByYXc/LnRodW1ibmFpbHM/LlsxMjgwXT8ud2VicCA/P1xuICAgICAgcmF3Py50aHVtYm5haWxzPy5bMTAyNF0/LndlYnAgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzc2OF0/LndlYnAgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzU0MF0/LndlYnAgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzM3NV0/LndlYnAgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzEzNjZdPy5vcmlnaW5hbCA/P1xuICAgICAgcmF3Py50aHVtYm5haWxzPy5bMTI4MF0/Lm9yaWdpbmFsID8/XG4gICAgICByYXc/LnRodW1ibmFpbHM/LlsxMDI0XT8ub3JpZ2luYWwgPz9cbiAgICAgIHJhdz8udGh1bWJuYWlscz8uWzc2OF0/Lm9yaWdpbmFsID8/XG4gICAgICByYXc/LnRodW1ibmFpbHM/Lls1NDBdPy5vcmlnaW5hbCA/P1xuICAgICAgcmF3Py50aHVtYm5haWxzPy5bMzc1XT8ub3JpZ2luYWw7XG5cbiAgICBpZiAoIXJhd1NyYykgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICBzcmM6IHRoaXMubm9ybWFsaXplSW1hZ2VVcmwocmF3U3JjKSxcbiAgICAgIGFsdDogcmF3Py5hbHQgPz8gaXRlbT8udGV4dHM/LnRpdGxlID8/IGl0ZW0/LnRpdGxlID8/IGl0ZW0/LmxhYmVsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplSW1hZ2VVcmwoc3JjOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICgvXihodHRwcz86KT9cXC9cXC8vaS50ZXN0KHNyYykgfHwgL14oZGF0YXxibG9iKTovaS50ZXN0KHNyYykpIHtcbiAgICAgIHJldHVybiBzcmM7XG4gICAgfVxuXG4gICAgY29uc3QgY2RuQmFzZSA9ICh0aGlzLnNpdGVTdmM/LmNkbkltYWdlc0luc3RhbnQgPz8gJycpLnRvU3RyaW5nKCk7XG4gICAgaWYgKCFjZG5CYXNlKSByZXR1cm4gc3JjO1xuXG4gICAgY29uc3QgY2xlYW5CYXNlID0gY2RuQmFzZS5lbmRzV2l0aCgnLycpID8gY2RuQmFzZSA6IGAke2NkbkJhc2V9L2A7XG4gICAgY29uc3QgY2xlYW5TcmMgPSBzcmMucmVwbGFjZSgvXlxcLysvLCAnJyk7XG4gICAgcmV0dXJuIGAke2NsZWFuQmFzZX0ke2NsZWFuU3JjfWA7XG4gIH1cblxuICBwcml2YXRlIGluaXRTbGlkZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgfHwgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgIXRoaXMuc2VjdGlvblNsaWRlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5ub3JtYWxpemVkSXRlbXM7XG4gICAgY29uc3QgaGFzTXVsdGlwbGVTbGlkZXMgPSBpdGVtcy5sZW5ndGggPiAxO1xuICAgIGNvbnN0IHNsaWRlc1BlclZpZXdGb3JWaWV3cG9ydCA9IHRoaXMuZ2V0U2xpZGVzUGVyVmlld0ZvclZpZXdwb3J0KCk7XG4gICAgY29uc3QgaGFzSW5zdWZmaWNpZW50U2xpZGVzID0gaXRlbXMubGVuZ3RoIDw9IHNsaWRlc1BlclZpZXdGb3JWaWV3cG9ydDtcbiAgICBjb25zdCBzaG91bGRMb29wID0gaGFzTXVsdGlwbGVTbGlkZXMgJiYgIWhhc0luc3VmZmljaWVudFNsaWRlcztcblxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuc3dpcGVySW5zdGFuY2UgPSBuZXcgU3dpcGVyKHRoaXMuc2VjdGlvblNsaWRlciEubmF0aXZlRWxlbWVudCwge1xuICAgICAgICBtb2R1bGVzOiBbTmF2aWdhdGlvbiwgQXV0b3BsYXldLFxuICAgICAgICBzbGlkZXNQZXJWaWV3OiAxLFxuICAgICAgICBzbGlkZXNQZXJHcm91cDogMSxcbiAgICAgICAgc3BlZWQ6IDMwMCxcbiAgICAgICAgbG9vcDogc2hvdWxkTG9vcCxcbiAgICAgICAgd2F0Y2hPdmVyZmxvdzogdHJ1ZSxcbiAgICAgICAgY2VudGVySW5zdWZmaWNpZW50U2xpZGVzOiB0cnVlLFxuICAgICAgICBuYXZpZ2F0aW9uOlxuICAgICAgICAgIGhhc011bHRpcGxlU2xpZGVzICYmIHRoaXMuc2xpZGVyQ29uZmlnLnNob3dCdXR0b25zICYmIHRoaXMuc2xpZGVyUHJldiAmJiB0aGlzLnNsaWRlck5leHRcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIG5leHRFbDogdGhpcy5zbGlkZXJOZXh0Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgcHJldkVsOiB0aGlzLnNsaWRlclByZXYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IGZhbHNlLFxuICAgICAgICBhdXRvcGxheTogdGhpcy5zbGlkZXJDb25maWcuYXV0b3BsYXlcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZGVsYXk6IDMwMDAsXG4gICAgICAgICAgICAgIGRpc2FibGVPbkludGVyYWN0aW9uOiBmYWxzZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgIGJyZWFrcG9pbnRzOiB7XG4gICAgICAgICAgNzY4OiB7XG4gICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAyLjIsXG4gICAgICAgICAgICBzbGlkZXNQZXJHcm91cDogMVxuICAgICAgICAgIH0sXG4gICAgICAgICAgMTEyNDoge1xuICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMy4yLFxuICAgICAgICAgICAgc2xpZGVzUGVyR3JvdXA6IDFcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnNsaWRlckluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2xpZGVzUGVyVmlld0ZvclZpZXdwb3J0KCk6IG51bWJlciB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gMTtcblxuICAgIGNvbnN0IHdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgaWYgKHdpZHRoID49IDExMjQpIHJldHVybiAzLjI7XG4gICAgaWYgKHdpZHRoID49IDc2OCkgcmV0dXJuIDIuMjtcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveVNsaWRlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgfHwgIXRoaXMuc3dpcGVySW5zdGFuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN3aXBlckluc3RhbmNlLmRlc3Ryb3kodHJ1ZSwgdHJ1ZSk7XG4gICAgdGhpcy5zd2lwZXJJbnN0YW5jZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnNsaWRlckluaXRpYWxpemVkID0gZmFsc2U7XG4gIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwibWRsLXNsaWRlclwiIGJhYnlsb25Td2lwZXJDc3NMb2FkZXI+XG4gIDxkaXYgY2xhc3M9XCJtZGwtY29udGFpbmVyXCI+XG4gICAgQGlmICh0ZXh0cz8udGl0bGUpIHtcbiAgICAgIDxoMiBjbGFzcz1cIm1kbC10aXRsZVwiPnt7IHRleHRzPy50aXRsZSB9fTwvaDI+XG4gICAgfVxuXG4gICAgPGRpdiBjbGFzcz1cInN3aXBlclwiICNzZWN0aW9uU2xpZGVyPlxuICAgICAgPGRpdiBjbGFzcz1cInN3aXBlci13cmFwcGVyXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2Ygbm9ybWFsaXplZEl0ZW1zOyB0cmFjayB0cmFja0l0ZW0oJGluZGV4KSkge1xuICAgICAgICAgIDxhXG4gICAgICAgICAgICBjbGFzcz1cInN3aXBlci1zbGlkZVwiXG4gICAgICAgICAgICBbaHJlZl09XCJpdGVtLnVybFwiXG4gICAgICAgICAgICBbYXR0ci50YXJnZXRdPVwiaXRlbS50YXJnZXQgfHwgbnVsbFwiXG4gICAgICAgICAgICBbbGlua1R5cGVdPVwiaXRlbS5saW5rVHlwZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0uaW1hZ2Uuc3JjXCIgW2FsdF09XCJpdGVtLmltYWdlLmFsdCB8fCBpdGVtLnRpdGxlIHx8ICdzbGlkZSBpbWFnZSdcIiAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tY29udGVudFwiPlxuICAgICAgICAgICAgICBAaWYgKGl0ZW0udGl0bGUpIHtcbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtLXRpdHVsb1wiPnt7IGl0ZW0udGl0bGUgfX08L2gzPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAoaXRlbS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibS10ZXh0b1wiIFtpbm5lckhUTUxdPVwiaXRlbS5kZXNjcmlwdGlvblwiPjwvcD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChub3JtYWxpemVkSXRlbXMubGVuZ3RoID4gMSAmJiBzbGlkZXJDb25maWcuc2hvd0J1dHRvbnMpIHtcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInN3aXBlci1idXR0b24tcHJldlwiIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiQW50ZXJpb3JcIiAjc2xpZGVyUHJldj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInN3aXBlci1idXR0b24tbmV4dFwiIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiU2lndWllbnRlXCIgI3NsaWRlck5leHQ+PC9idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpLWMzLWltZy10eHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZXJuYWwvY29yZS9zbGktYzMtaW1nLXR4dC9zbGktYzMtaW1nLXR4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL3NsaS1jMy1pbWctdHh0L3NsaS1jMy1pbWctdHh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUtMLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBRzdILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzdGLE9BQU8sY0FBYyxNQUFNLHdCQUF3QixDQUFDO0FBRXBELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQzs7QUFlcEcsTUFBTSxPQUFPLG9CQUFvQjtJQXNCN0IsWUFBNkIsTUFB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TCxZQUFZO3dCQUNaLCtCQUErQjt3QkFDL0Isd0JBQXdCO3dCQUN4Qix1QkFBdUI7cUJBQzFCLGlCQUdjLGlCQUFpQixDQUFDLFFBQVE7MkVBV2hDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFHTixhQUFhO3NCQURaLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHN0MsVUFBVTtzQkFEVCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRzFDLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQW9FMUMsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IFN3aXBlciBmcm9tICdzd2lwZXInO1xuaW1wb3J0IHsgQXV0b3BsYXksIE5hdmlnYXRpb24gfSBmcm9tICdzd2lwZXInO1xuaW1wb3J0IHsgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcy9saW5rLXR5cGUvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCYWJ5bG9uU3dpcGVyQ3NzTG9hZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcy9iYWJ5bG9uLXNsaWRlcnMvYmFieWxvbi1zd2lwZXItY3NzLWxvYWRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFieWxvbkl0ZW1JLCBCYWJ5bG9uVGV4dEluZm9JIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBCYWJ5bG9uR2xvYmFsRXhwZXJpZW5jZSB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1nbG9iYWwtZXhwZXJpZW5jZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU0lURV9DT05GSUdfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL21hcHBlci9tYXBwZXIuc2VydmljZS50b2tlbic7XG5pbXBvcnQgc2xpZGVyU2V0dGluZ3MgZnJvbSAnLi9zbGlkZXItc2V0dGluZ3MuanNvbic7XG5pbXBvcnQgeyBTbGlDM0ltZ1R4dFNsaWRlSXRlbSB9IGZyb20gJy4vc2xpLWMzLWltZy10eHQuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRGaXJzdEltYWdlQnlUYWdGcm9tSW1hZ2VzIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvbXV0aW1lZGlhLnV0aWxzJztcbmltcG9ydCB7IGdldEFpQmFkZ2VUZXh0IH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvYWktYmFkZ2UudXRpbHMnO1xuaW1wb3J0IHsgQmFieWxvbkFpQmFkZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2JhYnlsb24tYWktYmFkZ2UvYmFieWxvbi1haS1iYWRnZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NsaS1jMy1pbWctdHh0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBCYWJ5bG9uU3dpcGVyQ3NzTG9hZGVyRGlyZWN0aXZlLFxuICAgICAgICBCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmUsXG4gICAgICAgIEJhYnlsb25BaUJhZGdlQ29tcG9uZW50LFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NsaS1jMy1pbWctdHh0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vc2xpLWMzLWltZy10eHQuY29tcG9uZW50LnNjc3MnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxufSlcbmV4cG9ydCBjbGFzcyBTbGlDM0ltZ1R4dENvbXBvbmVudFxuICAgIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNpdGVTdmMgPSBpbmplY3QoU0lURV9DT05GSUdfU0VSVklDRV9UT0tFTik7XG4gICAgcHJpdmF0ZSBzbGlkZXJJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgc3dpcGVySW5zdGFuY2U/OiBTd2lwZXI7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0YWdOYW1lID0gJ1NsaUMzSW1nVHh0JztcbiAgICBwdWJsaWMgZ2V0QWlCYWRnZVRleHQgPSBnZXRBaUJhZGdlVGV4dDtcblxuICAgIEBJbnB1dCgpIHRleHRzPzogQmFieWxvblRleHRJbmZvSTtcbiAgICBASW5wdXQoKSBpdGVtcz86IEJhYnlsb25JdGVtSVtdO1xuICAgIEBJbnB1dCgpIGV4cGVyaWVuY2VzPzogQmFieWxvbkdsb2JhbEV4cGVyaWVuY2VbXTtcblxuICAgIEBWaWV3Q2hpbGQoJ3NlY3Rpb25TbGlkZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBzZWN0aW9uU2xpZGVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgnc2xpZGVyUHJldicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHNsaWRlclByZXY/OiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdzbGlkZXJOZXh0JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgc2xpZGVyTmV4dD86IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG4gICAgcmVhZG9ubHkgc2xpZGVyQ29uZmlnID0gc2xpZGVyU2V0dGluZ3M7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lKSB7fVxuXG4gICAgZ2V0IG5vcm1hbGl6ZWRJdGVtcygpOiBTbGlDM0ltZ1R4dFNsaWRlSXRlbVtdIHtcbiAgICAgICAgY29uc3Qgc291cmNlID0gdGhpcy5pdGVtcz8ubGVuZ3RoXG4gICAgICAgICAgICA/IHRoaXMuaXRlbXNcbiAgICAgICAgICAgIDogKHRoaXMuZXhwZXJpZW5jZXMgYXMgQmFieWxvbkl0ZW1JW10gfCB1bmRlZmluZWQpO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoc291cmNlXG4gICAgICAgICAgICAgICAgPy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW1hZ2UgPSB0aGlzLnJlc29sdmVJbWFnZShpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpbWFnZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aXRsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy50ZXh0cz8udGl0bGUgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LnRleHRzPy5uYW1lID8/XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy50aXRsZSA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbT8ubGFiZWwgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtIGFzIGFueSk/Lm5hbWVJZGVudGlmaWVyID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAnJztcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy50ZXh0cz8uZGVzY3JpcHRpb24gPz9cbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LmRlc2NyaXB0aW9uID8/XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy50ZXh0ID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAnJztcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmltYXJ5TGluayA9IGl0ZW0/LmJ1dHRvbnM/LlswXSA/PyBpdGVtPy5saW5rcz8uWzBdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtVXJsID0gKGl0ZW0gYXMgYW55KT8udXJsO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogKGl0ZW0gYXMgYW55KT8uaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IHByaW1hcnlMaW5rPy51cmwgPz8gaXRlbVVybCA/PyAnIycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rVHlwZTogcHJpbWFyeUxpbms/LmxpbmtUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBwcmltYXJ5TGluaz8udGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgPy5maWx0ZXIoQm9vbGVhbikgYXMgU2xpQzNJbWdUeHRTbGlkZUl0ZW1bXSkgPz8gW11cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdFNsaWRlcigpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKGNoYW5nZXNbJ2l0ZW1zJ10gfHwgY2hhbmdlc1snZXhwZXJpZW5jZXMnXSkgJiZcbiAgICAgICAgICAgIHRoaXMuc2xpZGVySW5pdGlhbGl6ZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3lTbGlkZXIoKTtcbiAgICAgICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuaW5pdFNsaWRlcigpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3lTbGlkZXIoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgICBvbldpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnNsaWRlckluaXRpYWxpemVkKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5kZXN0cm95U2xpZGVyKCk7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuaW5pdFNsaWRlcigpKTtcbiAgICB9XG5cbiAgICB0cmFja0l0ZW0oaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc29sdmVJbWFnZShcbiAgICAgICAgaXRlbTogQmFieWxvbkl0ZW1JXG4gICAgKTogeyBzcmM6IHN0cmluZzsgYWx0Pzogc3RyaW5nOyB0YWdzPzogYW55IH0gfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCB0YWdnZWRNYXBwZWRJbWFnZSA9XG4gICAgICAgICAgICBnZXRGaXJzdEltYWdlQnlUYWdGcm9tSW1hZ2VzKFxuICAgICAgICAgICAgICAgIGl0ZW0/Lm11bHRpbWVkaWE/LmltYWdlbmVzLFxuICAgICAgICAgICAgICAgIHRoaXMudGFnTmFtZVxuICAgICAgICAgICAgKSA/PyBpdGVtPy5tdWx0aW1lZGlhPy5pbWFnZW5lcz8uWzBdO1xuXG4gICAgICAgIGNvbnN0IG1hcHBlZFRhZ2dlZFNyYyA9IHRhZ2dlZE1hcHBlZEltYWdlPy5pbWc/LnNyYztcbiAgICAgICAgaWYgKG1hcHBlZFRhZ2dlZFNyYykge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0YWdzOiB0YWdnZWRNYXBwZWRJbWFnZT8udGFncyxcbiAgICAgICAgICAgICAgICBzcmM6IHRoaXMubm9ybWFsaXplSW1hZ2VVcmwobWFwcGVkVGFnZ2VkU3JjKSxcbiAgICAgICAgICAgICAgICBhbHQ6XG4gICAgICAgICAgICAgICAgICAgIHRhZ2dlZE1hcHBlZEltYWdlPy5pbWc/LmFsdCA/P1xuICAgICAgICAgICAgICAgICAgICBpdGVtPy50ZXh0cz8udGl0bGUgPz9cbiAgICAgICAgICAgICAgICAgICAgaXRlbT8udGl0bGUgPz9cbiAgICAgICAgICAgICAgICAgICAgaXRlbT8ubGFiZWwsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGlyZWN0ID0gaXRlbT8uaW1nPy5zcmM7XG4gICAgICAgIGlmIChkaXJlY3QpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdGFnczogaXRlbT8udGFncyxcbiAgICAgICAgICAgICAgICBzcmM6IHRoaXMubm9ybWFsaXplSW1hZ2VVcmwoZGlyZWN0KSxcbiAgICAgICAgICAgICAgICBhbHQ6XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0/LmltZz8uYWx0ID8/XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0/LnRleHRzPy50aXRsZSA/P1xuICAgICAgICAgICAgICAgICAgICBpdGVtPy50aXRsZSA/P1xuICAgICAgICAgICAgICAgICAgICBpdGVtPy5sYWJlbCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmcm9tTWFwcGVkID0gaXRlbT8ubXVsdGltZWRpYT8uaW1hZ2VuZXM/LlswXT8uaW1nPy5zcmM7XG4gICAgICAgIGlmIChmcm9tTWFwcGVkKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHRhZ3M6IGl0ZW0/Lm11bHRpbWVkaWE/LmltYWdlbmVzPy5bMF0/LnRhZ3MsXG4gICAgICAgICAgICAgICAgc3JjOiB0aGlzLm5vcm1hbGl6ZUltYWdlVXJsKGZyb21NYXBwZWQpLFxuICAgICAgICAgICAgICAgIGFsdDpcbiAgICAgICAgICAgICAgICAgICAgaXRlbT8ubXVsdGltZWRpYT8uaW1hZ2VuZXM/LlswXT8uaW1nPy5hbHQgPz9cbiAgICAgICAgICAgICAgICAgICAgaXRlbT8udGV4dHM/LnRpdGxlID8/XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0/LnRpdGxlID8/XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0/LmxhYmVsLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJhd0ltYWdlcyA9IChpdGVtIGFzIGFueSk/Lm11bHRpbWVkaWEgYXMgYW55W10gfCB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHJhdyA9XG4gICAgICAgICAgICBnZXRGaXJzdEltYWdlQnlUYWdGcm9tSW1hZ2VzKHJhd0ltYWdlcyBhcyBhbnksIHRoaXMudGFnTmFtZSkgPz9cbiAgICAgICAgICAgIHJhd0ltYWdlcz8uWzBdO1xuICAgICAgICBjb25zdCByYXdTcmMgPVxuICAgICAgICAgICAgcmF3Py5wYXRoPy53ZWJwID8/XG4gICAgICAgICAgICByYXc/LnBhdGg/Lm9yaWdpbmFsID8/XG4gICAgICAgICAgICByYXc/LnRodW1ibmFpbHM/LlsxMzY2XT8ud2VicCA/P1xuICAgICAgICAgICAgcmF3Py50aHVtYm5haWxzPy5bMTI4MF0/LndlYnAgPz9cbiAgICAgICAgICAgIHJhdz8udGh1bWJuYWlscz8uWzEwMjRdPy53ZWJwID8/XG4gICAgICAgICAgICByYXc/LnRodW1ibmFpbHM/Lls3NjhdPy53ZWJwID8/XG4gICAgICAgICAgICByYXc/LnRodW1ibmFpbHM/Lls1NDBdPy53ZWJwID8/XG4gICAgICAgICAgICByYXc/LnRodW1ibmFpbHM/LlszNzVdPy53ZWJwID8/XG4gICAgICAgICAgICByYXc/LnRodW1ibmFpbHM/LlsxMzY2XT8ub3JpZ2luYWwgPz9cbiAgICAgICAgICAgIHJhdz8udGh1bWJuYWlscz8uWzEyODBdPy5vcmlnaW5hbCA/P1xuICAgICAgICAgICAgcmF3Py50aHVtYm5haWxzPy5bMTAyNF0/Lm9yaWdpbmFsID8/XG4gICAgICAgICAgICByYXc/LnRodW1ibmFpbHM/Lls3NjhdPy5vcmlnaW5hbCA/P1xuICAgICAgICAgICAgcmF3Py50aHVtYm5haWxzPy5bNTQwXT8ub3JpZ2luYWwgPz9cbiAgICAgICAgICAgIHJhdz8udGh1bWJuYWlscz8uWzM3NV0/Lm9yaWdpbmFsO1xuXG4gICAgICAgIGlmICghcmF3U3JjKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0YWdzOiByYXc/LnRhZ3MsXG4gICAgICAgICAgICBzcmM6IHRoaXMubm9ybWFsaXplSW1hZ2VVcmwocmF3U3JjKSxcbiAgICAgICAgICAgIGFsdDogcmF3Py5hbHQgPz8gaXRlbT8udGV4dHM/LnRpdGxlID8/IGl0ZW0/LnRpdGxlID8/IGl0ZW0/LmxhYmVsLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgbm9ybWFsaXplSW1hZ2VVcmwoc3JjOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoL14oaHR0cHM/Oik/XFwvXFwvL2kudGVzdChzcmMpIHx8IC9eKGRhdGF8YmxvYik6L2kudGVzdChzcmMpKSB7XG4gICAgICAgICAgICByZXR1cm4gc3JjO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2RuQmFzZSA9ICh0aGlzLnNpdGVTdmM/LmNkbkltYWdlc0luc3RhbnQgPz8gJycpLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmICghY2RuQmFzZSkgcmV0dXJuIHNyYztcblxuICAgICAgICBjb25zdCBjbGVhbkJhc2UgPSBjZG5CYXNlLmVuZHNXaXRoKCcvJykgPyBjZG5CYXNlIDogYCR7Y2RuQmFzZX0vYDtcbiAgICAgICAgY29uc3QgY2xlYW5TcmMgPSBzcmMucmVwbGFjZSgvXlxcLysvLCAnJyk7XG4gICAgICAgIHJldHVybiBgJHtjbGVhbkJhc2V9JHtjbGVhblNyY31gO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFNsaWRlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5zbGlkZXJJbml0aWFsaXplZCB8fFxuICAgICAgICAgICAgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICAgICAgICAgICF0aGlzLnNlY3Rpb25TbGlkZXJcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMubm9ybWFsaXplZEl0ZW1zO1xuICAgICAgICBjb25zdCBoYXNNdWx0aXBsZVNsaWRlcyA9IGl0ZW1zLmxlbmd0aCA+IDE7XG4gICAgICAgIGNvbnN0IHNsaWRlc1BlclZpZXdGb3JWaWV3cG9ydCA9IHRoaXMuZ2V0U2xpZGVzUGVyVmlld0ZvclZpZXdwb3J0KCk7XG4gICAgICAgIGNvbnN0IGhhc0luc3VmZmljaWVudFNsaWRlcyA9IGl0ZW1zLmxlbmd0aCA8PSBzbGlkZXNQZXJWaWV3Rm9yVmlld3BvcnQ7XG4gICAgICAgIGNvbnN0IHNob3VsZExvb3AgPSBoYXNNdWx0aXBsZVNsaWRlcyAmJiAhaGFzSW5zdWZmaWNpZW50U2xpZGVzO1xuXG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3dpcGVySW5zdGFuY2UgPSBuZXcgU3dpcGVyKFxuICAgICAgICAgICAgICAgIHRoaXMuc2VjdGlvblNsaWRlciEubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG1vZHVsZXM6IFtOYXZpZ2F0aW9uLCBBdXRvcGxheV0sXG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDEsXG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1Blckdyb3VwOiAxLFxuICAgICAgICAgICAgICAgICAgICBzcGVlZDogMzAwLFxuICAgICAgICAgICAgICAgICAgICBsb29wOiBzaG91bGRMb29wLFxuICAgICAgICAgICAgICAgICAgICB3YXRjaE92ZXJmbG93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXJJbnN1ZmZpY2llbnRTbGlkZXM6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb246XG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNNdWx0aXBsZVNsaWRlcyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zbGlkZXJDb25maWcuc2hvd0J1dHRvbnMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVyUHJldiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zbGlkZXJOZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dEVsOiB0aGlzLnNsaWRlck5leHQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2RWw6IHRoaXMuc2xpZGVyUHJldi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiB0aGlzLnNsaWRlckNvbmZpZy5hdXRvcGxheVxuICAgICAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxheTogMzAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVPbkludGVyYWN0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDc2ODoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDIuMixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJHcm91cDogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAxMTI0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMy4yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1Blckdyb3VwOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLnNsaWRlckluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTbGlkZXNQZXJWaWV3Rm9yVmlld3BvcnQoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gMTtcblxuICAgICAgICBjb25zdCB3aWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICBpZiAod2lkdGggPj0gMTEyNCkgcmV0dXJuIDMuMjtcbiAgICAgICAgaWYgKHdpZHRoID49IDc2OCkgcmV0dXJuIDIuMjtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95U2xpZGVyKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc2xpZGVySW5pdGlhbGl6ZWQgfHwgIXRoaXMuc3dpcGVySW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3dpcGVySW5zdGFuY2UuZGVzdHJveSh0cnVlLCB0cnVlKTtcbiAgICAgICAgdGhpcy5zd2lwZXJJbnN0YW5jZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5zbGlkZXJJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwibWRsLXNsaWRlclwiIGJhYnlsb25Td2lwZXJDc3NMb2FkZXI+XG4gICAgPGRpdiBjbGFzcz1cIm1kbC1jb250YWluZXJcIj5cbiAgICAgICAgQGlmICh0ZXh0cz8udGl0bGUpIHtcbiAgICAgICAgICAgIDxoMiBjbGFzcz1cIm1kbC10aXRsZVwiPnt7IHRleHRzPy50aXRsZSB9fTwvaDI+XG4gICAgICAgIH1cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic3dpcGVyXCIgI3NlY3Rpb25TbGlkZXI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3dpcGVyLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIG5vcm1hbGl6ZWRJdGVtczsgdHJhY2sgdHJhY2tJdGVtKCRpbmRleCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3dpcGVyLXNsaWRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIml0ZW0udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRhcmdldF09XCJpdGVtLnRhcmdldCB8fCBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJpdGVtLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS5pbWFnZS5zcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaW1hZ2UuYWx0IHx8IGl0ZW0udGl0bGUgfHwgJ3NsaWRlIGltYWdlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChnZXRBaUJhZGdlVGV4dChpdGVtLmltYWdlKTsgYXMgYmFkZ2VUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1iYWJ5bG9uLWFpLWJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cImJhZGdlVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPVwidG9wLXJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9saWItYmFieWxvbi1haS1iYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0udGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibS10aXR1bG9cIj57eyBpdGVtLnRpdGxlIH19PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0tdGV4dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJpdGVtLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICBAaWYgKG5vcm1hbGl6ZWRJdGVtcy5sZW5ndGggPiAxICYmIHNsaWRlckNvbmZpZy5zaG93QnV0dG9ucykge1xuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzd2lwZXItYnV0dG9uLXByZXZcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkFudGVyaW9yXCJcbiAgICAgICAgICAgICAgICAgICAgI3NsaWRlclByZXZcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN3aXBlci1idXR0b24tbmV4dFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2lndWllbnRlXCJcbiAgICAgICAgICAgICAgICAgICAgI3NsaWRlck5leHRcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
|