ctt-babylon 0.26.5 → 0.26.7

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.
Files changed (26) hide show
  1. package/esm2022/lib/components/core/babylon-ai-badge/babylon-ai-badge.component.mjs +35 -0
  2. package/esm2022/lib/components/core/babylon-list-img/babylon-list-img.component.mjs +11 -3
  3. package/esm2022/lib/components/external/core/c2-txt-cta/c2-txt-cta.component.mjs +3 -3
  4. package/esm2022/lib/components/external/core/complex-module-slider-r-v2/complex-module-slider-r-v2.component.mjs +40 -7
  5. package/esm2022/lib/components/external/core/lis-c3-img-txt-cta/lis-c3-img-txt-cta.component.mjs +7 -3
  6. package/esm2022/lib/components/external/core/sli-c2-img-txt-cta-v4/sli-c2-img-txt-cta-v4.component.mjs +7 -3
  7. package/esm2022/lib/components/external/core/sli-c2-img-txt-r/sli-c2-img-txt-r.component.mjs +13 -8
  8. package/esm2022/lib/components/external/core/sli-c3-img-txt/sli-c3-img-txt.component.mjs +48 -23
  9. package/esm2022/lib/components/external/core/top-c2-img-txt/top-c2-img-txt.component.mjs +19 -7
  10. package/esm2022/lib/interfaces/babylon-image.interface.mjs +1 -1
  11. package/esm2022/lib/interfaces/babylon-item.interface.mjs +1 -1
  12. package/esm2022/lib/utils/ai-badge.utils.mjs +41 -0
  13. package/fesm2022/ctt-babylon.mjs +2 -2
  14. package/fesm2022/ctt-babylon.mjs.map +1 -1
  15. package/lib/components/core/babylon-ai-badge/babylon-ai-badge.component.d.ts +13 -0
  16. package/lib/components/core/babylon-list-img/babylon-list-img.component.d.ts +2 -0
  17. package/lib/components/external/core/complex-module-slider-r-v2/complex-module-slider-r-v2.component.d.ts +8 -0
  18. package/lib/components/external/core/lis-c3-img-txt-cta/lis-c3-img-txt-cta.component.d.ts +2 -0
  19. package/lib/components/external/core/sli-c2-img-txt-cta-v4/sli-c2-img-txt-cta-v4.component.d.ts +2 -0
  20. package/lib/components/external/core/sli-c2-img-txt-r/sli-c2-img-txt-r.component.d.ts +2 -0
  21. package/lib/components/external/core/sli-c3-img-txt/sli-c3-img-txt.component.d.ts +2 -0
  22. package/lib/components/external/core/top-c2-img-txt/top-c2-img-txt.component.d.ts +2 -0
  23. package/lib/interfaces/babylon-image.interface.d.ts +1 -0
  24. package/lib/interfaces/babylon-item.interface.d.ts +1 -0
  25. package/lib/utils/ai-badge.utils.d.ts +4 -0
  26. 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 ? this.items : this.experiences;
21
- return source
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']) && this.sliderInitialized) {
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 ?? item?.texts?.title ?? item?.title ?? item?.label
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 ?? item?.texts?.title ?? item?.title ?? item?.label
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 || typeof window === 'undefined' || !this.sectionSlider) {
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 && this.sliderConfig.showButtons && this.sliderPrev && this.sliderNext
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 <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 [src]=\"item.image.src\" [alt]=\"item.image.alt || item.title || 'slide image'\" />\n <div class=\"m-content\">\n @if (item.title) {\n <h3 class=\"m-titulo\">{{ item.title }}</h3>\n }\n @if (item.description) {\n <p class=\"m-texto\" [innerHTML]=\"item.description\"></p>\n }\n </div>\n </a>\n }\n </div>\n\n @if (normalizedItems.length > 1 && sliderConfig.showButtons) {\n <button class=\"swiper-button-prev\" type=\"button\" aria-label=\"Anterior\" #sliderPrev></button>\n <button class=\"swiper-button-next\" type=\"button\" aria-label=\"Siguiente\" #sliderNext></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"] }] }); }
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.name\"\n [badgeId]=\"badgeText.id\"\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: ["badgeId", "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: [CommonModule, BabylonSwiperCssLoaderDirective, BabylonLinkTypeDirective], 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 [src]=\"item.image.src\" [alt]=\"item.image.alt || item.title || 'slide image'\" />\n <div class=\"m-content\">\n @if (item.title) {\n <h3 class=\"m-titulo\">{{ item.title }}</h3>\n }\n @if (item.description) {\n <p class=\"m-texto\" [innerHTML]=\"item.description\"></p>\n }\n </div>\n </a>\n }\n </div>\n\n @if (normalizedItems.length > 1 && sliderConfig.showButtons) {\n <button class=\"swiper-button-prev\" type=\"button\" aria-label=\"Anterior\" #sliderPrev></button>\n <button class=\"swiper-button-next\" type=\"button\" aria-label=\"Siguiente\" #sliderNext></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"] }]
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.name\"\n [badgeId]=\"badgeText.id\"\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpLWMzLWltZy10eHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZXJuYWwvY29yZS9zbGktYzMtaW1nLXR4dC9zbGktYzMtaW1nLXR4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL3NsaS1jMy1pbWctdHh0L3NsaS1jMy1pbWctdHh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUtMLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBRzdILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzdGLE9BQU8sY0FBYyxNQUFNLHdCQUF3QixDQUFDO0FBRXBELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQVVqRixNQUFNLE9BQU8sb0JBQW9CO0lBZ0IvQixZQUE2QixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWYxQixZQUFPLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDckQsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRWpCLFlBQU8sR0FBRyxhQUFhLENBQUM7UUFVaEMsaUJBQVksR0FBRyxjQUFjLENBQUM7SUFFTyxDQUFDO0lBRS9DLElBQUksZUFBZTtRQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFdBQTBDLENBQUM7UUFFbEcsT0FDRSxNQUFNO1lBQ0osRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNiLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTyxTQUFTLENBQUM7WUFFN0IsTUFBTSxLQUFLLEdBQ1QsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLO2dCQUNsQixJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUk7Z0JBQ2pCLElBQUksRUFBRSxLQUFLO2dCQUNYLElBQUksRUFBRSxLQUFLO2dCQUNWLElBQVksRUFBRSxjQUFjO2dCQUM3QixFQUFFLENBQUM7WUFFTCxNQUFNLFdBQVcsR0FDZixJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVc7Z0JBQ3hCLElBQUksRUFBRSxXQUFXO2dCQUNqQixJQUFJLEVBQUUsSUFBSTtnQkFDVixFQUFFLENBQUM7WUFFTCxNQUFNLFdBQVcsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNELE1BQU0sT0FBTyxHQUFJLElBQVksRUFBRSxHQUFHLENBQUM7WUFFbkMsT0FBTztnQkFDTCxFQUFFLEVBQUcsSUFBWSxFQUFFLEVBQUU7Z0JBQ3JCLEtBQUs7Z0JBQ0wsV0FBVztnQkFDWCxLQUFLO2dCQUNMLEdBQUcsRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLE9BQU8sSUFBSSxHQUFHO2dCQUN2QyxRQUFRLEVBQUUsV0FBVyxFQUFFLFFBQVE7Z0JBQy9CLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTTthQUM1QixDQUFDO1FBQ0osQ0FBQyxDQUFDO1lBQ0YsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUNuQixJQUFJLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztTQUN6QztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFHRCxjQUFjO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUI7WUFBRSxPQUFPO1FBRXBDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLFlBQVksQ0FBQyxJQUFrQjtRQUNyQyxNQUFNLGlCQUFpQixHQUNyQiw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3RFLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbEMsTUFBTSxlQUFlLEdBQUcsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztRQUNwRCxJQUFJLGVBQWUsRUFBRTtZQUNuQixPQUFPO2dCQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDO2dCQUM1QyxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLO2FBQ3JGLENBQUM7U0FDSDtRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO1FBQzlCLElBQUksTUFBTSxFQUFFO1lBQ1YsT0FBTztnQkFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztnQkFDbkMsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEtBQUs7YUFDeEUsQ0FBQztTQUNIO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO1FBQzdELElBQUksVUFBVSxFQUFFO1lBQ2QsT0FBTztnQkFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztnQkFDdkMsR0FBRyxFQUNELElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUc7b0JBQ3pDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSztvQkFDbEIsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsSUFBSSxFQUFFLEtBQUs7YUFDZCxDQUFDO1NBQ0g7UUFFRCxNQUFNLFNBQVMsR0FBSSxJQUFZLEVBQUUsVUFBK0IsQ0FBQztRQUNqRSxNQUFNLEdBQUcsR0FDUCw0QkFBNEIsQ0FBQyxTQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDNUQsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakIsTUFBTSxNQUFNLEdBQ1YsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ2YsR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRO1lBQ25CLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJO1lBQzdCLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJO1lBQzdCLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJO1lBQzdCLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJO1lBQzVCLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJO1lBQzVCLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJO1lBQzVCLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRO1lBQ2pDLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRO1lBQ2pDLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRO1lBQ2pDLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRO1lBQ2hDLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRO1lBQ2hDLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLENBQUM7UUFFbkMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUU5QixPQUFPO1lBQ0wsR0FBRyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7WUFDbkMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSztTQUNsRSxDQUFDO0lBQ0osQ0FBQztJQUVPLGlCQUFpQixDQUFDLEdBQVc7UUFDbkMsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzlELE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFFRCxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEUsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUV6QixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekMsT0FBTyxHQUFHLFNBQVMsR0FBRyxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2xGLE9BQU87U0FDUjtRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDbkMsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUMzQyxNQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQ3BFLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSx3QkFBd0IsQ0FBQztRQUN2RSxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBRS9ELElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWMsQ0FBQyxhQUFhLEVBQUU7Z0JBQ2xFLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUM7Z0JBQy9CLGFBQWEsRUFBRSxDQUFDO2dCQUNoQixjQUFjLEVBQUUsQ0FBQztnQkFDakIsS0FBSyxFQUFFLEdBQUc7Z0JBQ1YsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLGFBQWEsRUFBRSxJQUFJO2dCQUNuQix3QkFBd0IsRUFBRSxJQUFJO2dCQUM5QixVQUFVLEVBQ1IsaUJBQWlCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVTtvQkFDdEYsQ0FBQyxDQUFDO3dCQUNFLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWE7d0JBQ3JDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWE7cUJBQ3RDO29CQUNILENBQUMsQ0FBQyxLQUFLO2dCQUNYLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVE7b0JBQ2xDLENBQUMsQ0FBQzt3QkFDRSxLQUFLLEVBQUUsSUFBSTt3QkFDWCxvQkFBb0IsRUFBRSxLQUFLO3FCQUM1QjtvQkFDSCxDQUFDLENBQUMsS0FBSztnQkFDVCxXQUFXLEVBQUU7b0JBQ1gsR0FBRyxFQUFFO3dCQUNILGFBQWEsRUFBRSxHQUFHO3dCQUNsQixjQUFjLEVBQUUsQ0FBQztxQkFDbEI7b0JBQ0QsSUFBSSxFQUFFO3dCQUNKLGFBQWEsRUFBRSxHQUFHO3dCQUNsQixjQUFjLEVBQUUsQ0FBQztxQkFDbEI7aUJBQ0Y7YUFDRixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLDJCQUEyQjtRQUNqQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVc7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUU1QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ2hDLElBQUksS0FBSyxJQUFJLElBQUk7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUM5QixJQUFJLEtBQUssSUFBSSxHQUFHO1lBQUUsT0FBTyxHQUFHLENBQUM7UUFDN0IsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNuRCxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNqQyxDQUFDOytHQWpPVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiwyZ0JDbENqQyxpeENBbUNBLHE0TEROWSxZQUFZLCtCQUFFLCtCQUErQixxRUFBRSx3QkFBd0I7OzRGQUt0RSxvQkFBb0I7a0JBUmhDLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLCtCQUErQixFQUFFLHdCQUF3QixDQUFDLGlCQUduRSxpQkFBaUIsQ0FBQyxRQUFROzJFQVFoQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRXlDLGFBQWE7c0JBQTNELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDRCxVQUFVO3NCQUFyRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0UsVUFBVTtzQkFBckQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQThEMUMsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgU3dpcGVyIGZyb20gJ3N3aXBlcic7XG5pbXBvcnQgeyBBdXRvcGxheSwgTmF2aWdhdGlvbiB9IGZyb20gJ3N3aXBlcic7XG5pbXBvcnQgeyBCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzL2xpbmstdHlwZS9saW5rLXR5cGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhYnlsb25Td2lwZXJDc3NMb2FkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzL2JhYnlsb24tc2xpZGVycy9iYWJ5bG9uLXN3aXBlci1jc3MtbG9hZGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCYWJ5bG9uSXRlbUksIEJhYnlsb25UZXh0SW5mb0kgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEJhYnlsb25HbG9iYWxFeHBlcmllbmNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9iYWJ5bG9uLWdsb2JhbC1leHBlcmllbmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTSVRFX0NPTkZJR19TRVJWSUNFX1RPS0VOIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvbWFwcGVyL21hcHBlci5zZXJ2aWNlLnRva2VuJztcbmltcG9ydCBzbGlkZXJTZXR0aW5ncyBmcm9tICcuL3NsaWRlci1zZXR0aW5ncy5qc29uJztcbmltcG9ydCB7IFNsaUMzSW1nVHh0U2xpZGVJdGVtIH0gZnJvbSAnLi9zbGktYzMtaW1nLXR4dC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldEZpcnN0SW1hZ2VCeVRhZ0Zyb21JbWFnZXMgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9tdXRpbWVkaWEudXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbGktYzMtaW1nLXR4dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJhYnlsb25Td2lwZXJDc3NMb2FkZXJEaXJlY3RpdmUsIEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zbGktYzMtaW1nLXR4dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9zbGktYzMtaW1nLXR4dC5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIFNsaUMzSW1nVHh0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IHNpdGVTdmMgPSBpbmplY3QoU0lURV9DT05GSUdfU0VSVklDRV9UT0tFTik7XG4gIHByaXZhdGUgc2xpZGVySW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzd2lwZXJJbnN0YW5jZT86IFN3aXBlcjtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWdOYW1lID0gJ1NsaUMzSW1nVHh0JztcblxuICBASW5wdXQoKSB0ZXh0cz86IEJhYnlsb25UZXh0SW5mb0k7XG4gIEBJbnB1dCgpIGl0ZW1zPzogQmFieWxvbkl0ZW1JW107XG4gIEBJbnB1dCgpIGV4cGVyaWVuY2VzPzogQmFieWxvbkdsb2JhbEV4cGVyaWVuY2VbXTtcblxuICBAVmlld0NoaWxkKCdzZWN0aW9uU2xpZGVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIHNlY3Rpb25TbGlkZXI/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+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3dpcGVyLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIG5vcm1hbGl6ZWRJdGVtczsgdHJhY2sgdHJhY2tJdGVtKCRpbmRleCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3dpcGVyLXNsaWRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIml0ZW0udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRhcmdldF09XCJpdGVtLnRhcmdldCB8fCBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJpdGVtLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS5pbWFnZS5zcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaW1hZ2UuYWx0IHx8IGl0ZW0udGl0bGUgfHwgJ3NsaWRlIGltYWdlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChnZXRBaUJhZGdlVGV4dChpdGVtLmltYWdlKTsgYXMgYmFkZ2VUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1iYWJ5bG9uLWFpLWJhZGdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cImJhZGdlVGV4dC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2JhZGdlSWRdPVwiYmFkZ2VUZXh0LmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249XCJ0b3AtcmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2xpYi1iYWJ5bG9uLWFpLWJhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtLXRpdHVsb1wiPnt7IGl0ZW0udGl0bGUgfX08L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibS10ZXh0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIml0ZW0uZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIEBpZiAobm9ybWFsaXplZEl0ZW1zLmxlbmd0aCA+IDEgJiYgc2xpZGVyQ29uZmlnLnNob3dCdXR0b25zKSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN3aXBlci1idXR0b24tcHJldlwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQW50ZXJpb3JcIlxuICAgICAgICAgICAgICAgICAgICAjc2xpZGVyUHJldlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3dpcGVyLWJ1dHRvbi1uZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTaWd1aWVudGVcIlxuICAgICAgICAgICAgICAgICAgICAjc2xpZGVyTmV4dFxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=