ctt-babylon 0.8.18 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/esm2022/lib/components/core/babylon-faq-v2/babylon-faq-v2.component.mjs +2 -2
  2. package/esm2022/lib/components/core/babylon-list-c3-img-txt/babylon-list-c3-img-txt.component.mjs +12 -5
  3. package/esm2022/lib/components/core/babylon-slider-img-static/babylon-slider-img-static.component.mjs +12 -0
  4. package/esm2022/lib/components/core/babylon-slider-img-static/index.mjs +2 -0
  5. package/esm2022/lib/components/core/babylon-slider-img-static-v2/babylon-slider-img-static-v2.component.mjs +3 -3
  6. package/esm2022/lib/components/core/babylon-top-simple-banner/babylon-top-simple-banner.component.mjs +20 -0
  7. package/esm2022/lib/components/core/babylon-top-simple-banner/index.mjs +2 -0
  8. package/esm2022/lib/components/core/index.mjs +8 -7
  9. package/esm2022/lib/directives/babylon-sliders/babylon-swiper-slider.directive.mjs +2 -2
  10. package/esm2022/lib/directives/scrolls/scroll-to.directive.mjs +183 -0
  11. package/esm2022/lib/directives/scrolls/show-only-top.directive.mjs +103 -0
  12. package/esm2022/lib/directives/sliders/slick-init.directive.mjs +18 -11
  13. package/esm2022/lib/interfaces/babylon-item.interface.mjs +1 -1
  14. package/esm2022/lib/interfaces/babylon-text-info.interface.mjs +1 -1
  15. package/esm2022/lib/services/mapper/mapper.service.mjs +18 -11
  16. package/esm2022/lib/services/scroll/scroll-spy.service.mjs +50 -0
  17. package/fesm2022/ctt-babylon.mjs +955 -586
  18. package/fesm2022/ctt-babylon.mjs.map +1 -1
  19. package/lib/components/core/babylon-list-c3-img-txt/babylon-list-c3-img-txt.component.d.ts +5 -1
  20. package/lib/components/core/babylon-slider-img-static/babylon-slider-img-static.component.d.ts +5 -0
  21. package/lib/components/core/babylon-slider-img-static/index.d.ts +1 -0
  22. package/lib/components/core/babylon-top-simple-banner/babylon-top-simple-banner.component.d.ts +6 -0
  23. package/lib/components/core/babylon-top-simple-banner/index.d.ts +1 -0
  24. package/lib/components/core/index.d.ts +7 -6
  25. package/lib/directives/scrolls/scroll-to.directive.d.ts +31 -0
  26. package/lib/directives/scrolls/show-only-top.directive.d.ts +22 -0
  27. package/lib/interfaces/babylon-item.interface.d.ts +6 -0
  28. package/lib/interfaces/babylon-text-info.interface.d.ts +2 -0
  29. package/lib/services/mapper/mapper.service.d.ts +2 -1
  30. package/lib/services/scroll/scroll-spy.service.d.ts +17 -0
  31. package/lib/styles/styles/babylon/common.css +1 -1
  32. package/lib/styles/styles/babylon/common.scss +7 -0
  33. package/lib/styles/styles/babylon/globals.css +1 -1
  34. package/lib/styles/styles/babylon/globals.scss +299 -18
  35. package/package.json +1 -1
@@ -0,0 +1,103 @@
1
+ // directives/show-only-at-top.directive.ts
2
+ import { Directive, HostBinding, Input, } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class ShowOnlyAtTopDirective {
5
+ get cls() {
6
+ return this.hidden;
7
+ }
8
+ get op() {
9
+ return this.hidden ? '0' : '1';
10
+ }
11
+ get pe() {
12
+ return this.hidden ? 'none' : 'auto';
13
+ }
14
+ constructor(zone) {
15
+ this.zone = zone;
16
+ /** Rango en px desde el top en el que el botón permanece visible */
17
+ this.topShowPx = 10; // ajusta a 4–16 si quieres más/menos sensible
18
+ this.minWidth = 540;
19
+ this.hidden = false;
20
+ this.active = false;
21
+ this.ticking = false;
22
+ this.t = 'opacity .25s ease, transform .25s ease';
23
+ }
24
+ ngAfterViewInit() {
25
+ const evaluateScroll = () => {
26
+ const y = Math.max(window.scrollY, document.documentElement.scrollTop || 0);
27
+ const shouldHide = this.active && y > this.topShowPx;
28
+ if (shouldHide !== this.hidden)
29
+ this.hidden = shouldHide;
30
+ };
31
+ const applyActiveState = () => {
32
+ const nowActive = window.innerWidth >= this.minWidth;
33
+ if (nowActive === this.active)
34
+ return;
35
+ this.active = nowActive;
36
+ if (!this.active) {
37
+ // Desactivado en < minWidth: muestra siempre y no escucha scroll
38
+ this.hidden = false;
39
+ window.removeEventListener('scroll', onScroll);
40
+ }
41
+ else {
42
+ // Re-activar
43
+ window.addEventListener('scroll', onScroll, { passive: true });
44
+ evaluateScroll();
45
+ }
46
+ };
47
+ const onScroll = () => {
48
+ if (this.ticking)
49
+ return;
50
+ this.ticking = true;
51
+ requestAnimationFrame(() => {
52
+ evaluateScroll();
53
+ this.ticking = false;
54
+ });
55
+ };
56
+ const onResize = () => {
57
+ applyActiveState();
58
+ if (this.active)
59
+ onScroll();
60
+ };
61
+ this.zone.runOutsideAngular(() => {
62
+ // Setup inicial
63
+ applyActiveState();
64
+ if (this.active) {
65
+ window.addEventListener('scroll', onScroll, { passive: true });
66
+ evaluateScroll();
67
+ }
68
+ window.addEventListener('resize', onResize, { passive: true });
69
+ this.offScroll = () => window.removeEventListener('scroll', onScroll);
70
+ this.offResize = () => window.removeEventListener('resize', onResize);
71
+ });
72
+ }
73
+ ngOnDestroy() {
74
+ this.offScroll?.();
75
+ this.offResize?.();
76
+ }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ShowOnlyAtTopDirective, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
78
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ShowOnlyAtTopDirective, isStandalone: true, selector: "[showOnlyAtTop]", inputs: { topShowPx: "topShowPx", minWidth: "minWidth" }, host: { properties: { "style.transition": "this.t", "class.is-hidden": "this.cls", "style.opacity": "this.op", "style.pointerEvents": "this.pe" } }, ngImport: i0 }); }
79
+ }
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ShowOnlyAtTopDirective, decorators: [{
81
+ type: Directive,
82
+ args: [{
83
+ selector: '[showOnlyAtTop]',
84
+ standalone: true,
85
+ }]
86
+ }], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { topShowPx: [{
87
+ type: Input
88
+ }], minWidth: [{
89
+ type: Input
90
+ }], t: [{
91
+ type: HostBinding,
92
+ args: ['style.transition']
93
+ }], cls: [{
94
+ type: HostBinding,
95
+ args: ['class.is-hidden']
96
+ }], op: [{
97
+ type: HostBinding,
98
+ args: ['style.opacity']
99
+ }], pe: [{
100
+ type: HostBinding,
101
+ args: ['style.pointerEvents']
102
+ }] } });
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1vbmx5LXRvcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvZGlyZWN0aXZlcy9zY3JvbGxzL3Nob3ctb25seS10b3AuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJDQUEyQztBQUMzQyxPQUFPLEVBRUgsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEdBR1IsTUFBTSxlQUFlLENBQUM7O0FBTXZCLE1BQU0sT0FBTyxzQkFBc0I7SUFZL0IsSUFBb0MsR0FBRztRQUNuQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQWtDLEVBQUU7UUFDaEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBd0MsRUFBRTtRQUN0QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFvQixJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQXJCaEMsb0VBQW9FO1FBQzNELGNBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQyw4Q0FBOEM7UUFDOUQsYUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNoQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUdmLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFUyxNQUFDLEdBQzlCLHdDQUF3QyxDQUFDO0lBV1YsQ0FBQztJQUVwQyxlQUFlO1FBQ1gsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQ2QsTUFBTSxDQUFDLE9BQU8sRUFDZCxRQUFRLENBQUMsZUFBZSxDQUFDLFNB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QUFHO3NCQUF0QyxXQUFXO3VCQUFDLGlCQUFpQjtnQkFHSSxFQUFFO3NCQUFuQyxXQUFXO3VCQUFDLGVBQWU7Z0JBR1ksRUFBRTtzQkFBekMsV0FBVzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBkaXJlY3RpdmVzL3Nob3ctb25seS1hdC10b3AuZGlyZWN0aXZlLnRzXG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tzaG93T25seUF0VG9wXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2hvd09ubHlBdFRvcERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIFJhbmdvIGVuIHB4IGRlc2RlIGVsIHRvcCBlbiBlbCBxdWUgZWwgYm90w7NuIHBlcm1hbmVjZSB2aXNpYmxlICovXG4gICAgQElucHV0KCkgdG9wU2hvd1B4ID0gMTA7IC8vIGFqdXN0YSBhIDTigJMxNiBzaSBxdWllcmVzIG3DoXMvbWVub3Mgc2Vuc2libGVcbiAgICBASW5wdXQoKSBtaW5XaWR0aCA9IDU0MDtcbiAgICBwcml2YXRlIGhpZGRlbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgYWN0aXZlID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBvZmZTY3JvbGw/OiAoKSA9PiB2b2lkO1xuICAgIHByaXZhdGUgb2ZmUmVzaXplPzogKCkgPT4gdm9pZDtcbiAgICBwcml2YXRlIHRpY2tpbmcgPSBmYWxzZTtcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUudHJhbnNpdGlvbicpIHQgPVxuICAgICAgICAnb3BhY2l0eSAuMjVzIGVhc2UsIHRyYW5zZm9ybSAuMjVzIGVhc2UnO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaXMtaGlkZGVuJykgZ2V0IGNscygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGlkZGVuO1xuICAgIH1cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm9wYWNpdHknKSBnZXQgb3AoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhpZGRlbiA/ICcwJyA6ICcxJztcbiAgICB9XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wb2ludGVyRXZlbnRzJykgZ2V0IHBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5oaWRkZW4gPyAnbm9uZScgOiAnYXV0byc7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBOZ1pvbmUpIHt9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2YWx1YXRlU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeSA9IE1hdGgubWF4KFxuICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxZLFxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgMFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZEhpZGUgPSB0aGlzLmFjdGl2ZSAmJiB5ID4gdGhpcy50b3BTaG93UHg7XG4gICAgICAgICAgICBpZiAoc2hvdWxkSGlkZSAhPT0gdGhpcy5oaWRkZW4pIHRoaXMuaGlkZGVuID0gc2hvdWxkSGlkZTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBhcHBseUFjdGl2ZVN0YXRlID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm93QWN0aXZlID0gd2luZG93LmlubmVyV2lkdGggPj0gdGhpcy5taW5XaWR0aDtcbiAgICAgICAgICAgIGlmIChub3dBY3RpdmUgPT09IHRoaXMuYWN0aXZlKSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IG5vd0FjdGl2ZTtcbiAgICAgICAgICAgIGlmICghdGhpcy5hY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAvLyBEZXNhY3RpdmFkbyBlbiA8IG1pbldpZHRoOiBtdWVzdHJhIHNpZW1wcmUgeSBubyBlc2N1Y2hhIHNjcm9sbFxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gUmUtYWN0aXZhclxuICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvblNjcm9sbCwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgIGV2YWx1YXRlU2Nyb2xsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgb25TY3JvbGwgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy50aWNraW5nKSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLnRpY2tpbmcgPSB0cnVlO1xuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICBldmFsdWF0ZVNjcm9sbCgpO1xuICAgICAgICAgICAgICAgIHRoaXMudGlja2luZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgb25SZXNpemUgPSAoKSA9PiB7XG4gICAgICAgICAgICBhcHBseUFjdGl2ZVN0YXRlKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmUpIG9uU2Nyb2xsKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIC8vIFNldHVwIGluaWNpYWxcbiAgICAgICAgICAgIGFwcGx5QWN0aXZlU3RhdGUoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvblNjcm9sbCwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgIGV2YWx1YXRlU2Nyb2xsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25SZXNpemUsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHRoaXMub2ZmU2Nyb2xsID0gKCkgPT5cbiAgICAgICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25TY3JvbGwpO1xuICAgICAgICAgICAgdGhpcy5vZmZSZXNpemUgPSAoKSA9PlxuICAgICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvblJlc2l6ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9mZlNjcm9sbD8uKCk7XG4gICAgICAgIHRoaXMub2ZmUmVzaXplPy4oKTtcbiAgICB9XG59XG4iXX0=
@@ -9,7 +9,13 @@ export class SlickInitDirective {
9
9
  async ngAfterViewInit() {
10
10
  if (!isPlatformBrowser(this.platformId))
11
11
  return;
12
- await this.waitForSlick(); // espera a $ y $.fn.slick
12
+ // 1) Espera a que jquery + slick estén listos
13
+ const slickReady = await this.waitForSlick();
14
+ // 2) Si NO están, no sigas (evita $ undefined)
15
+ if (!slickReady || typeof $ === 'undefined' || !$.fn || !$.fn.slick) {
16
+ console.warn('[SlickInitDirective] jQuery/Slick no están disponibles, no inicializo el slider');
17
+ return;
18
+ }
13
19
  const parent = this.host.nativeElement;
14
20
  const get = (name) => parent.getAttribute(name);
15
21
  const getBool = (name) => {
@@ -73,7 +79,6 @@ export class SlickInitDirective {
73
79
  nextArrow +=
74
80
  "<button type='button' class='slick-next icon-large'><svg aria-hidden='true' focusable='false'><use href='/assets/babylon/svg/icon-arrow-large.svg#icon-arrow-large'></use></svg></button>";
75
81
  }
76
- // --- normalizar altura en vertical (sin 'this' implícito) ---
77
82
  const updateVerticalHeight = () => {
78
83
  const $el = $(sliderSelector);
79
84
  if (window.innerWidth >= 541) {
@@ -99,7 +104,6 @@ export class SlickInitDirective {
99
104
  passive: true,
100
105
  });
101
106
  }
102
- // --- INIT SLICK ---
103
107
  $(sliderSelector).slick({
104
108
  dots: showDots,
105
109
  arrows: showBtns,
@@ -165,6 +169,8 @@ export class SlickInitDirective {
165
169
  ngOnDestroy() {
166
170
  if (!isPlatformBrowser(this.platformId))
167
171
  return;
172
+ if (typeof $ === 'undefined' || !$.fn?.slick)
173
+ return;
168
174
  if (this.sliderEl && $(this.sliderEl).hasClass('slick-initialized')) {
169
175
  try {
170
176
  $(this.sliderEl).slick('unslick');
@@ -177,18 +183,19 @@ export class SlickInitDirective {
177
183
  window.removeEventListener('resize', this.resizeHandler);
178
184
  }
179
185
  }
180
- // Espera a $ y slick: resuelve (no rechaza) y loguea si no llegan
181
- waitForSlick(timeoutMs = 4000, stepMs = 100) {
186
+ // Devuelve true si jQuery+Slick llegan a estar disponibles, false si no
187
+ waitForSlick(timeoutMs = 8000, stepMs = 100) {
182
188
  if (!isPlatformBrowser(this.platformId))
183
- return Promise.resolve();
189
+ return Promise.resolve(false);
184
190
  const start = performance.now();
185
191
  return new Promise((resolve) => {
186
192
  const check = () => {
187
- if (typeof $ !== 'undefined' && $.fn && $.fn.slick)
188
- return resolve();
193
+ if (typeof $ !== 'undefined' && $.fn && $.fn.slick) {
194
+ return resolve(true);
195
+ }
189
196
  if (performance.now() - start > timeoutMs) {
190
- console.warn('[SlickInitDirective] Slick no disponible. ¿Cargaste jQuery y slick?');
191
- return resolve(); // evita error si no llega
197
+ console.warn('[SlickInitDirective] Slick no disponible tras timeout. ¿Scripts cargados?');
198
+ return resolve(false);
192
199
  }
193
200
  setTimeout(check, stepMs);
194
201
  };
@@ -208,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
208
215
  type: Inject,
209
216
  args: [PLATFORM_ID]
210
217
  }] }] });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2staW5pdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvZGlyZWN0aXZlcy9zbGlkZXJzL3NsaWNrLWluaXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFFSCxTQUFTLEVBRVQsTUFBTSxFQUVOLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQzs7QUFTdkIsTUFBTSxPQUFPLGtCQUFrQjtJQUkzQixZQUNZLElBQTZCLEVBQ1IsVUFBa0I7UUFEdkMsU0FBSSxHQUFKLElBQUksQ0FBeUI7UUFDUixlQUFVLEdBQVYsVUFBVSxDQUFRO0lBQ2hELENBQUM7SUFFSixLQUFLLENBQUMsZUFBZTtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFDaEQsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQywwQkFBMEI7UUFFckQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDdkMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtZQUM3QixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEIsT0FBTyxDQUFDLEtBQUssTUFBTSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSyxDQUFTLEtBQUssSUFBSSxDQUFDO1FBQ3hFLENBQUMsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBWSxFQUFFLEdBQUcsR0FB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RTtvQkFDdkMsT0FBTyxDQUFDLElBQUksQ0FDUixxRUFBcUUsQ0FDeEUsQ0FBQztvQkFDRixPQUFPLE9BQU8sRUFBRSxDQUFDLENBQUMsMEJBQTBCO2lCQUMvQztnQkFDRCxVQUFVLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FBQztZQUNGLEtBQUssRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXhOUSxrQkFBa0IsNENBTWYsV0FBVzttR0FOZCxrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtDQUFrQztvQkFDNUMsVUFBVSxFQUFFLElBQUk7aUJBQ25COzswQkFPUSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIE9uRGVzdHJveSxcbiAgICBQTEFURk9STV9JRCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIFNpIG5vIHRpZW5lcyBAdHlwZXMvanF1ZXJ5LCBkw6lqYWxvIGNvbW8gYW55XG5kZWNsYXJlIGNvbnN0ICQ6IGFueTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICcuanMtYWN0aXZlLXNsaWRlcixbYXBwU2xpY2tJbml0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2xpY2tJbml0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlc2l6ZUhhbmRsZXI/OiAoKSA9PiB2b2lkO1xuICAgIHByaXZhdGUgc2xpZGVyRWw/OiBIVE1MRWxlbWVudDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IG9iamVjdFxuICAgICkge31cblxuICAgIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIGF3YWl0IHRoaXMud2FpdEZvclNsaWNrKCk7IC8vIGVzcGVyYSBhICQgeSAkLmZuLnNsaWNrXG5cbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGdldCA9IChuYW1lOiBzdHJpbmcpID0+IHBhcmVudC5nZXRBdHRyaWJ1dGUobmFtZSk7XG4gICAgICAgIGNvbnN0IGdldEJvb2wgPSAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2ID0gZ2V0KG5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuIHYgPT09ICd0cnVlJyB8fCB2ID09PSAnMScgfHwgdiA9PT0gJycgfHwgKHYgYXMgYW55KSA9PT0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZ2V0TnVtID0gKG5hbWU6IHN0cmluZywgZGVmID0gMCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdiA9IE51bWJlcihnZXQobmFtZSkpO1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZSh2KSA/IHYgOiBkZWY7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc2xpZGVyTmFtZSA9IGdldCgnZGF0YS1zbGlkZXJfbmFtZScpIHx8ICcnO1xuICAgICAgICBjb25zdCBzbGlkZXJTcGVlZCA9IGdldE51bSgnZGF0YS1zbGlkZXJfc3BlZWQnLCA3NTApO1xuICAgICAgICBjb25zdCBzaG93QnRucyA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX3Nob3didG5zJyk7XG4gICAgICAgIGNvbnN0IHNob3dEb3RzID0gZ2V0Qm9vbCgnZGF0YS1zbGlkZXJfc2hvd2RvdHMnKTtcbiAgICAgICAgY29uc3QgZmFkZSA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX2ZhZGUnKTtcbiAgICAgICAgY29uc3QgY2VudGVyTW9kZSA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX2NlbnRlcm1vZGUnKTtcbiAgICAgICAgY29uc3QgYXV0b3BsYXkgPSBnZXRCb29sKCdkYXRhLXNsaWRlcl9hdXRvcGxheScpO1xuICAgICAgICBjb25zdCBzbGlkZXNQYyA9IGdldE51bSgnZGF0YS1zbGlkZXNfcGMnLCAxKTtcbiAgICAgICAgY29uc3Qgc2xpZGVzTGFwdG9wID0gZ2V0TnVtKCdkYXRhLXNsaWRlc19sYXB0b3AnKSB8fCBzbGlkZXNQYztcbiAgICAgICAgY29uc3Qgc2xpZGVzVGFibGV0ID0gZ2V0TnVtKCdkYXRhLXNsaWRlc190YWJsZXQnKSB8fCBzbGlkZXNMYXB0b3A7XG4gICAgICAgIGNvbnN0IHNsaWRlc01vYmlsZSA9IGdldE51bSgnZGF0YS1zbGlkZXNfbW9iaWxlJykgfHwgc2xpZGVzVGFibGV0O1xuICAgICAgICBjb25zdCBzbGlkZXNNb2JpbGVTbWFsbCA9XG4gICAgICAgICAgICBnZXROdW0oJ2RhdGEtc2xpZGVzX21vYmlsZV9zbWFsbCcpIHx8IHNsaWRlc01vYmlsZTtcbiAgICAgICAgY29uc3Qgc2xpZGVzTW9iaWxlWFNtYWxsID1cbiAgICAgICAgICAgIGdldE51bSgnZGF0YS1zbGlkZXNfbW9iaWxlX3hzbWFsbCcpIHx8IHNsaWRlc01vYmlsZVNtYWxsO1xuICAgICAgICBjb25zdCBpbmZpbml0ZSA9IGdldEJvb2woJ2RhdGEtc2xpZGVzX2luZmluaXRlJyk7XG5cbiAgICAgICAgbGV0IHJvd3NQYyA9IGdldE51bSgnZGF0YS1zbGlkZXNyb3dzX3BjJywgMSk7XG4gICAgICAgIGxldCByb3dzTGFwdG9wID0gZ2V0TnVtKCdkYXRhLXNsaWRlc3Jvd3NfbGFwdG9wJywgMSk7XG4gICAgICAgIGxldCByb3dzVGFibGV0ID0gZ2V0TnVtKCdkYXRhLXNsaWRlc3Jvd3NfdGFibGV0JywgMSk7XG4gICAgICAgIGxldCByb3dzTW9iaWxlID0gZ2V0TnVtKCdkYXRhLXNsaWRlc3Jvd3NfbW9iaWxlJywgMSk7XG4gICAgICAgIGxldCByb3dzTW9iaWxlU21hbGwgPSBnZXROdW0oJ2RhdGEtc2xpZGVzcm93c19tb2JpbGVfc21hbGwnLCAxKTtcbiAgICAgICAgbGV0IHJvd3NNb2JpbGVYU21hbGwgPSBnZXROdW0oJ2RhdGEtc2xpZGVzcm93c19tb2JpbGVfeHNtYWxsJywgMSk7XG5cbiAgICAgICAgY29uc3QgYXNOYXZGb3IgPSBnZXQoJ2RhdGEtc2xpZGVyX2FzTmF2Rm9yJykgfHwgdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCB2ZXJ0aWNhbCA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX3ZlcnRpY2FsJyk7XG4gICAgICAgIGNvbnN0IGFkYXB0aXZlSGVpZ2h0ID0gZ2V0Qm9vbCgnZGF0YS1zbGlkZXJfYWRhcHRpdmVfaGVpZ2h0Jyk7XG4gICAgICAgIGNvbnN0IHBhdXNlID0gZ2V0Qm9vbCgnZGF0YS1zbGlkZXJfcGF1c2UnKTtcbiAgICAgICAgY29uc3QgZHJhZ2dhYmxlID0gZ2V0Qm9vbCgnZGF0YS1zbGlkZXJfZHJhZ2dhYmxlJyk7XG4gICAgICAgIGNvbnN0IHJ0bCA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX3J0bCcpO1xuICAgICAgICBjb25zdCB2YXJpYWJsZVdpZHRoID0gZ2V0Qm9vbCgnZGF0YS1zbGlkZXJfdmFyaWFibGVfd2lkdGgnKTtcbiAgICAgICAgY29uc3QgYnRuc01vZGUgPSBnZXQoJ2RhdGEtc2xpZGVyX2J0bnMnKSB8fCAnJztcblxuICAgICAgICBpZiAod2luZG93LmlubmVyV2lkdGggPCA1NDAgJiYgcGFyZW50LmNsYXNzTGlzdC5jb250YWlucygncm93cy0yJykpIHtcbiAgICAgICAgICAgIHJvd3NQYyA9IDE7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzbGlkZXJBcnJvd3MgPSBwYXJlbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICcuanMtc2xpZGVyLWFycm93cydcbiAgICAgICAgKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICAgIGNvbnN0IHNsaWRlckRvdHMgPSBwYXJlbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICcuanMtc2xpZGVyLWRvdHMnXG4gICAgICAgICkgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgICBjb25zdCBzbGlkZXJTZWxlY3RvciA9IHBhcmVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgJy4nICsgc2xpZGVyTmFtZVxuICAgICAgICApIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICAgICAgaWYgKCFzbGlkZXJTZWxlY3RvcikgcmV0dXJuO1xuICAgICAgICB0aGlzLnNsaWRlckVsID0gc2xpZGVyU2VsZWN0b3I7XG5cbiAgICAgICAgaWYgKCQoc2xpZGVyU2VsZWN0b3IpLmhhc0NsYXNzKCdzbGljay1pbml0aWFsaXplZCcpKSByZXR1cm47XG5cbiAgICAgICAgbGV0IHByZXZBcnJvdyA9ICcnO1xuICAgICAgICBsZXQgbmV4dEFycm93ID0gJyc7XG4gICAgICAgIGlmIChidG5zTW9kZS5pbmNsdWRlcygnaWNvbi1zbWFsbCcpKSB7XG4gICAgICAgICAgICBwcmV2QXJyb3cgKz1cbiAgICAgICAgICAgICAgICBcIjxidXR0b24gdHlwZT0nYnV0dG9uJyBjbGFzcz0nc2xpY2stcHJldiBpY29uLXNtYWxsJz48c3ZnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJyBjbGFzcz0nbGluZSc+PHVzZSBocmVmPScvYXNzZXRzL2JhYnlsb24vc3ZnL2Fycm93LWxpbmUuc3ZnI2Fycm93LWxpbmUnPjwvdXNlPjwvc3ZnPjxzdmcgYXJpYS1oaWRkZW49J3RydWUnIGZvY3VzYWJsZT0nZmFsc2UnPjx1c2UgaHJlZj0nL2Fzc2V0cy9iYWJ5bG9uL3N2Zy9pY29uLWFycm93LnN2ZyNpY29uLWFycm93Jz48L3VzZT48L3N2Zz48L2J1dHRvbj5cIjtcbiAgICAgICAgICAgIG5leHRBcnJvdyArPVxuICAgICAgICAgICAgICAgIFwiPGJ1dHRvbiB0eXBlPSdidXR0b24nIGNsYXNzPSdzbGljay1uZXh0IGljb24tc21hbGwnPjxzdmcgYXJpYS1oaWRkZW49J3RydWUnIGZvY3VzYWJsZT0nZmFsc2UnIGNsYXNzPSdsaW5lJz48dXNlIGhyZWY9Jy9hc3NldHMvYmFieWxvbi9zdmcvYXJyb3ctbGluZS5zdmcjYXJyb3ctbGluZSc+PC91c2U+PC9zdmc+PHN2ZyBhcmlhLWhpZGRlbj0ndHJ1ZScgZm9jdXNhYmxlPSdmYWxzZSc+PHVzZSBocmVmPScvYXNzZXRzL2JhYnlsb24vc3ZnL2ljb24tYXJyb3cuc3ZnI2ljb24tYXJyb3cnPjwvdXNlPjwvc3ZnPjwvYnV0dG9uPlwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChidG5zTW9kZS5pbmNsdWRlcygnaWNvbi1sYXJnZScpKSB7XG4gICAgICAgICAgICBwcmV2QXJyb3cgKz1cbiAgICAgICAgICAgICAgICBcIjxidXR0b24gdHlwZT0nYnV0dG9uJyBjbGFzcz0nc2xpY2stcHJldiBpY29uLWxhcmdlJz48c3ZnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJz48dXNlIGhyZWY9Jy9hc3NldHMvYmFieWxvbi9zdmcvaWNvbi1hcnJvdy1sYXJnZS5zdmcjaWNvbi1hcnJvdy1sYXJnZSc+PC91c2U+PC9zdmc+PC9idXR0b24+XCI7XG4gICAgICAgICAgICBuZXh0QXJyb3cgKz1cbiAgICAgICAgICAgICAgICBcIjxidXR0b24gdHlwZT0nYnV0dG9uJyBjbGFzcz0nc2xpY2stbmV4dCBpY29uLWxhcmdlJz48c3ZnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJz48dXNlIGhyZWY9Jy9hc3NldHMvYmFieWxvbi9zdmcvaWNvbi1hcnJvdy1sYXJnZS5zdmcjaWNvbi1hcnJvdy1sYXJnZSc+PC91c2U+PC9zdmc+PC9idXR0b24+XCI7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAtLS0gbm9ybWFsaXphciBhbHR1cmEgZW4gdmVydGljYWwgKHNpbiAndGhpcycgaW1wbMOtY2l0bykgLS0tXG4gICAgICAgIGNvbnN0IHVwZGF0ZVZlcnRpY2FsSGVpZ2h0ID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgJGVsID0gJChzbGlkZXJTZWxlY3Rvcik7XG4gICAgICAgICAgICBpZiAod2luZG93LmlubmVyV2lkdGggPj0gNTQxKSB7XG4gICAgICAgICAgICAgICAgbGV0IG1heEggPSAwO1xuICAgICAgICAgICAgICAgICRlbC5maW5kKCcuc2xpY2stc2xpZGU6bm90KC5zbGljay1jbG9uZWQpJykuZWFjaChcbiAgICAgICAgICAgICAgICAgICAgKF86IG51bWJlciwgZWw6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoID0gKCQoZWwpIGFzIGFueSkub3V0ZXJIZWlnaHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoID4gbWF4SCkgbWF4SCA9IGg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICRlbC5maW5kKCcuc2xpY2stc2xpZGUnKS5lYWNoKChfOiBudW1iZXIsIGVsOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAoJChlbCkgYXMgYW55KS5jc3MoJ2hlaWdodCcsIGAke21heEh9cHhgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgJChzbGlkZXJTZWxlY3RvcikuZmluZCgnLnNsaWNrLXNsaWRlJykuY3NzKCdoZWlnaHQnLCAnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHZlcnRpY2FsKSB7XG4gICAgICAgICAgICAkKHNsaWRlclNlbGVjdG9yKS5vbignc2V0UG9zaXRpb24nLCB1cGRhdGVWZXJ0aWNhbEhlaWdodCk7XG4gICAgICAgICAgICAkKHNsaWRlclNlbGVjdG9yKS5vbignaW5pdCcsICgpID0+XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCh1cGRhdGVWZXJ0aWNhbEhlaWdodCwgMClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZXIgPSAoKSA9PiB1cGRhdGVWZXJ0aWNhbEhlaWdodCgpO1xuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVzaXplSGFuZGxlciwge1xuICAgICAgICAgICAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIC0tLSBJTklUIFNMSUNLIC0tLVxuICAgICAgICAkKHNsaWRlclNlbGVjdG9yKS5zbGljayh7XG4gICAgICAgICAgICBkb3RzOiBzaG93RG90cyxcbiAgICAgICAgICAgIGFycm93czogc2hvd0J0bnMsXG4gICAgICAgICAgICBhcHBlbmRBcnJvd3M6IHNsaWRlckFycm93cyB8fCBwYXJlbnQsXG4gICAgICAgICAgICBwcmV2QXJyb3csXG4gICAgICAgICAgICBuZXh0QXJyb3csXG4gICAgICAgICAgICBhcHBlbmREb3RzOiBzbGlkZXJEb3RzIHx8IHBhcmVudCxcbiAgICAgICAgICAgIGluZmluaXRlLFxuICAgICAgICAgICAgdXNlVHJhbnNmb3JtOiB0cnVlLFxuICAgICAgICAgICAgZmFkZSxcbiAgICAgICAgICAgIGNlbnRlck1vZGUsXG4gICAgICAgICAgICBjZW50ZXJQYWRkaW5nOiAnMCcsXG4gICAgICAgICAgICBjc3NFYXNlOiAnY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiknLFxuICAgICAgICAgICAgc3BlZWQ6IHNsaWRlclNwZWVkLFxuICAgICAgICAgICAgc2xpZGVzVG9TaG93OiBzbGlkZXNQYyxcbiAgICAgICAgICAgIHNsaWRlc1RvU2Nyb2xsOiAxLFxuICAgICAgICAgICAgcm93czogcm93c1BjLFxuICAgICAgICAgICAgYXV0b3BsYXksXG4gICAgICAgICAgICBhdXRvcGxheVNwZWVkOiA1MDAwLFxuICAgICAgICAgICAgc3dpcGVUb1NsaWRlOiB0cnVlLFxuICAgICAgICAgICAgdmVydGljYWwsXG4gICAgICAgICAgICB2ZXJ0aWNhbFN3aXBpbmc6IHZlcnRpY2FsLFxuICAgICAgICAgICAgYWRhcHRpdmVIZWlnaHQsXG4gICAgICAgICAgICBhc05hdkZvcixcbiAgICAgICAgICAgIHBhdXNlT25Gb2N1czogcGF1c2UsXG4gICAgICAgICAgICBwYXVzZU9uSG92ZXI6IHBhdXNlLFxuICAgICAgICAgICAgZHJhZ2dhYmxlLFxuICAgICAgICAgICAgc3dpcGU6IGRyYWdnYWJsZSxcbiAgICAgICAgICAgIHJ0bCxcbiAgICAgICAgICAgIHZhcmlhYmxlV2lkdGgsXG4gICAgICAgICAgICByZXNwb25zaXZlOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiAxNjgwLFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczogeyBzbGlkZXNUb1Nob3c6IHNsaWRlc0xhcHRvcCwgcm93czogcm93c0xhcHRvcCB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiAxMzY2LFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczogeyBzbGlkZXNUb1Nob3c6IHNsaWRlc1RhYmxldCwgcm93czogcm93c1RhYmxldCB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiAxMjgwLFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczogeyBzbGlkZXNUb1Nob3c6IHNsaWRlc01vYmlsZSwgcm93czogcm93c01vYmlsZSB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiAxMDIzLFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiBzbGlkZXNNb2JpbGVTbWFsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M6IHJvd3NNb2JpbGVTbWFsbCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogNzY3LFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiBzbGlkZXNNb2JpbGVYU21hbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dzOiByb3dzTW9iaWxlWFNtYWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWw6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWxTd2lwaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICBpZiAodGhpcy5zbGlkZXJFbCAmJiAkKHRoaXMuc2xpZGVyRWwpLmhhc0NsYXNzKCdzbGljay1pbml0aWFsaXplZCcpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICQodGhpcy5zbGlkZXJFbCkuc2xpY2soJ3Vuc2xpY2snKTtcbiAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgIC8qIG5hZGEgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yZXNpemVIYW5kbGVyKSB7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVIYW5kbGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVzcGVyYSBhICQgeSBzbGljazogcmVzdWVsdmUgKG5vIHJlY2hhemEpIHkgbG9ndWVhIHNpIG5vIGxsZWdhblxuICAgIHByaXZhdGUgd2FpdEZvclNsaWNrKHRpbWVvdXRNcyA9IDQwMDAsIHN0ZXBNcyA9IDEwMCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjaGVjayA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mICQgIT09ICd1bmRlZmluZWQnICYmICQuZm4gJiYgJC5mbi5zbGljaylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICBpZiAocGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydCA+IHRpbWVvdXRNcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICAgICAgICAnW1NsaWNrSW5pdERpcmVjdGl2ZV0gU2xpY2sgbm8gZGlzcG9uaWJsZS4gwr9DYXJnYXN0ZSBqUXVlcnkgeSBzbGljaz8nXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKCk7IC8vIGV2aXRhIGVycm9yIHNpIG5vIGxsZWdhXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2ssIHN0ZXBNcyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2staW5pdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvZGlyZWN0aXZlcy9zbGlkZXJzL3NsaWNrLWluaXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFFSCxTQUFTLEVBRVQsTUFBTSxFQUVOLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQzs7QUFTdkIsTUFBTSxPQUFPLGtCQUFrQjtJQUkzQixZQUNZLElBQTZCLEVBQ1IsVUFBa0I7UUFEdkMsU0FBSSxHQUFKLElBQUksQ0FBeUI7UUFDUixlQUFVLEdBQVYsVUFBVSxDQUFRO0lBQ2hELENBQUM7SUFFSixLQUFLLENBQUMsZUFBZTtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFFaEQsOENBQThDO1FBQzlDLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTdDLCtDQUErQztRQUMvQyxJQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFdBQVcsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRTtZQUNqRSxPQUFPLENBQUMsSUFBSSxDQUNSLGlGQUFpRixDQUNwRixDQUFDO1lBQ0YsT0FBTztTQUNWO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDdkMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFB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QUMsR0FBRyxFQUFFLENBQUM7UUFFaEMsT0FBTyxJQUFJLE9BQU8sQ0FBVSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3BDLE1BQU0sS0FBSyxHQUFHLEdBQUcsRUFBRTtnQkFDZixJQUFJLE9BQU8sQ0FBQyxLQUFLLFdBQVcsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFO29CQUNoRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDeEI7Z0JBQ0QsSUFBSSxXQUFXLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFHLFNBQVMsRUFBRTtvQkFDdkMsT0FBTyxDQUFDLElBQUksQ0FDUiwyRUFBMkUsQ0FDOUUsQ0FBQztvQkFDRixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDekI7Z0JBQ0QsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM5QixDQUFDLENBQUM7WUFDRixLQUFLLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0FwT1Esa0JBQWtCLDRDQU1mLFdBQVc7bUdBTmQsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUo5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBT1EsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgUExBVEZPUk1fSUQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBzaWd1ZSBpZ3VhbCwgc8OzbG8gcGFyYSBUU1xuZGVjbGFyZSBjb25zdCAkOiBhbnk7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnLmpzLWFjdGl2ZS1zbGlkZXIsW2FwcFNsaWNrSW5pdF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNsaWNrSW5pdERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZXNpemVIYW5kbGVyPzogKCkgPT4gdm9pZDtcbiAgICBwcml2YXRlIHNsaWRlckVsPzogSFRNTEVsZW1lbnQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBob3N0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBvYmplY3RcbiAgICApIHt9XG5cbiAgICBhc3luYyBuZ0FmdGVyVmlld0luaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXG4gICAgICAgIC8vIDEpIEVzcGVyYSBhIHF1ZSBqcXVlcnkgKyBzbGljayBlc3TDqW4gbGlzdG9zXG4gICAgICAgIGNvbnN0IHNsaWNrUmVhZHkgPSBhd2FpdCB0aGlzLndhaXRGb3JTbGljaygpO1xuXG4gICAgICAgIC8vIDIpIFNpIE5PIGVzdMOhbiwgbm8gc2lnYXMgKGV2aXRhICQgdW5kZWZpbmVkKVxuICAgICAgICBpZiAoIXNsaWNrUmVhZHkgfHwgdHlwZW9mICQgPT09ICd1bmRlZmluZWQnIHx8ICEkLmZuIHx8ICEkLmZuLnNsaWNrKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgJ1tTbGlja0luaXREaXJlY3RpdmVdIGpRdWVyeS9TbGljayBubyBlc3TDoW4gZGlzcG9uaWJsZXMsIG5vIGluaWNpYWxpem8gZWwgc2xpZGVyJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBnZXQgPSAobmFtZTogc3RyaW5nKSA9PiBwYXJlbnQuZ2V0QXR0cmlidXRlKG5hbWUpO1xuICAgICAgICBjb25zdCBnZXRCb29sID0gKG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgdiA9IGdldChuYW1lKTtcbiAgICAgICAgICAgIHJldHVybiB2ID09PSAndHJ1ZScgfHwgdiA9PT0gJzEnIHx8IHYgPT09ICcnIHx8ICh2IGFzIGFueSkgPT09IHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGdldE51bSA9IChuYW1lOiBzdHJpbmcsIGRlZiA9IDApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHYgPSBOdW1iZXIoZ2V0KG5hbWUpKTtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUodikgPyB2IDogZGVmO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHNsaWRlck5hbWUgPSBnZXQoJ2RhdGEtc2xpZGVyX25hbWUnKSB8fCAnJztcbiAgICAgICAgY29uc3Qgc2xpZGVyU3BlZWQgPSBnZXROdW0oJ2RhdGEtc2xpZGVyX3NwZWVkJywgNzUwKTtcbiAgICAgICAgY29uc3Qgc2hvd0J0bnMgPSBnZXRCb29sKCdkYXRhLXNsaWRlcl9zaG93YnRucycpO1xuICAgICAgICBjb25zdCBzaG93RG90cyA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX3Nob3dkb3RzJyk7XG4gICAgICAgIGNvbnN0IGZhZGUgPSBnZXRCb29sKCdkYXRhLXNsaWRlcl9mYWRlJyk7XG4gICAgICAgIGNvbnN0IGNlbnRlck1vZGUgPSBnZXRCb29sKCdkYXRhLXNsaWRlcl9jZW50ZXJtb2RlJyk7XG4gICAgICAgIGNvbnN0IGF1dG9wbGF5ID0gZ2V0Qm9vbCgnZGF0YS1zbGlkZXJfYXV0b3BsYXknKTtcbiAgICAgICAgY29uc3Qgc2xpZGVzUGMgPSBnZXROdW0oJ2RhdGEtc2xpZGVzX3BjJywgMSk7XG4gICAgICAgIGNvbnN0IHNsaWRlc0xhcHRvcCA9IGdldE51bSgnZGF0YS1zbGlkZXNfbGFwdG9wJykgfHwgc2xpZGVzUGM7XG4gICAgICAgIGNvbnN0IHNsaWRlc1RhYmxldCA9IGdldE51bSgnZGF0YS1zbGlkZXNfdGFibGV0JykgfHwgc2xpZGVzTGFwdG9wO1xuICAgICAgICBjb25zdCBzbGlkZXNNb2JpbGUgPSBnZXROdW0oJ2RhdGEtc2xpZGVzX21vYmlsZScpIHx8IHNsaWRlc1RhYmxldDtcbiAgICAgICAgY29uc3Qgc2xpZGVzTW9iaWxlU21hbGwgPVxuICAgICAgICAgICAgZ2V0TnVtKCdkYXRhLXNsaWRlc19tb2JpbGVfc21hbGwnKSB8fCBzbGlkZXNNb2JpbGU7XG4gICAgICAgIGNvbnN0IHNsaWRlc01vYmlsZVhTbWFsbCA9XG4gICAgICAgICAgICBnZXROdW0oJ2RhdGEtc2xpZGVzX21vYmlsZV94c21hbGwnKSB8fCBzbGlkZXNNb2JpbGVTbWFsbDtcbiAgICAgICAgY29uc3QgaW5maW5pdGUgPSBnZXRCb29sKCdkYXRhLXNsaWRlc19pbmZpbml0ZScpO1xuXG4gICAgICAgIGxldCByb3dzUGMgPSBnZXROdW0oJ2RhdGEtc2xpZGVzcm93c19wYycsIDEpO1xuICAgICAgICBsZXQgcm93c0xhcHRvcCA9IGdldE51bSgnZGF0YS1zbGlkZXNyb3dzX2xhcHRvcCcsIDEpO1xuICAgICAgICBsZXQgcm93c1RhYmxldCA9IGdldE51bSgnZGF0YS1zbGlkZXNyb3dzX3RhYmxldCcsIDEpO1xuICAgICAgICBsZXQgcm93c01vYmlsZSA9IGdldE51bSgnZGF0YS1zbGlkZXNyb3dzX21vYmlsZScsIDEpO1xuICAgICAgICBsZXQgcm93c01vYmlsZVNtYWxsID0gZ2V0TnVtKCdkYXRhLXNsaWRlc3Jvd3NfbW9iaWxlX3NtYWxsJywgMSk7XG4gICAgICAgIGxldCByb3dzTW9iaWxlWFNtYWxsID0gZ2V0TnVtKCdkYXRhLXNsaWRlc3Jvd3NfbW9iaWxlX3hzbWFsbCcsIDEpO1xuXG4gICAgICAgIGNvbnN0IGFzTmF2Rm9yID0gZ2V0KCdkYXRhLXNsaWRlcl9hc05hdkZvcicpIHx8IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgdmVydGljYWwgPSBnZXRCb29sKCdkYXRhLXNsaWRlcl92ZXJ0aWNhbCcpO1xuICAgICAgICBjb25zdCBhZGFwdGl2ZUhlaWdodCA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX2FkYXB0aXZlX2hlaWdodCcpO1xuICAgICAgICBjb25zdCBwYXVzZSA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX3BhdXNlJyk7XG4gICAgICAgIGNvbnN0IGRyYWdnYWJsZSA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX2RyYWdnYWJsZScpO1xuICAgICAgICBjb25zdCBydGwgPSBnZXRCb29sKCdkYXRhLXNsaWRlcl9ydGwnKTtcbiAgICAgICAgY29uc3QgdmFyaWFibGVXaWR0aCA9IGdldEJvb2woJ2RhdGEtc2xpZGVyX3ZhcmlhYmxlX3dpZHRoJyk7XG4gICAgICAgIGNvbnN0IGJ0bnNNb2RlID0gZ2V0KCdkYXRhLXNsaWRlcl9idG5zJykgfHwgJyc7XG5cbiAgICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgNTQwICYmIHBhcmVudC5jbGFzc0xpc3QuY29udGFpbnMoJ3Jvd3MtMicpKSB7XG4gICAgICAgICAgICByb3dzUGMgPSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2xpZGVyQXJyb3dzID0gcGFyZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAnLmpzLXNsaWRlci1hcnJvd3MnXG4gICAgICAgICkgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgICBjb25zdCBzbGlkZXJEb3RzID0gcGFyZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAnLmpzLXNsaWRlci1kb3RzJ1xuICAgICAgICApIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICAgICAgY29uc3Qgc2xpZGVyU2VsZWN0b3IgPSBwYXJlbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICcuJyArIHNsaWRlck5hbWVcbiAgICAgICAgKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICAgIGlmICghc2xpZGVyU2VsZWN0b3IpIHJldHVybjtcbiAgICAgICAgdGhpcy5zbGlkZXJFbCA9IHNsaWRlclNlbGVjdG9yO1xuXG4gICAgICAgIGlmICgkKHNsaWRlclNlbGVjdG9yKS5oYXNDbGFzcygnc2xpY2staW5pdGlhbGl6ZWQnKSkgcmV0dXJuO1xuXG4gICAgICAgIGxldCBwcmV2QXJyb3cgPSAnJztcbiAgICAgICAgbGV0IG5leHRBcnJvdyA9ICcnO1xuICAgICAgICBpZiAoYnRuc01vZGUuaW5jbHVkZXMoJ2ljb24tc21hbGwnKSkge1xuICAgICAgICAgICAgcHJldkFycm93ICs9XG4gICAgICAgICAgICAgICAgXCI8YnV0dG9uIHR5cGU9J2J1dHRvbicgY2xhc3M9J3NsaWNrLXByZXYgaWNvbi1zbWFsbCc+PHN2ZyBhcmlhLWhpZGRlbj0ndHJ1ZScgZm9jdXNhYmxlPSdmYWxzZScgY2xhc3M9J2xpbmUnPjx1c2UgaHJlZj0nL2Fzc2V0cy9iYWJ5bG9uL3N2Zy9hcnJvdy1saW5lLnN2ZyNhcnJvdy1saW5lJz48L3VzZT48L3N2Zz48c3ZnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJz48dXNlIGhyZWY9Jy9hc3NldHMvYmFieWxvbi9zdmcvaWNvbi1hcnJvdy5zdmcjaWNvbi1hcnJvdyc+PC91c2U+PC9zdmc+PC9idXR0b24+XCI7XG4gICAgICAgICAgICBuZXh0QXJyb3cgKz1cbiAgICAgICAgICAgICAgICBcIjxidXR0b24gdHlwZT0nYnV0dG9uJyBjbGFzcz0nc2xpY2stbmV4dCBpY29uLXNtYWxsJz48c3ZnIGFyaWEtaGlkZGVuPSd0cnVlJyBmb2N1c2FibGU9J2ZhbHNlJyBjbGFzcz0nbGluZSc+PHVzZSBocmVmPScvYXNzZXRzL2JhYnlsb24vc3ZnL2Fycm93LWxpbmUuc3ZnI2Fycm93LWxpbmUnPjwvdXNlPjwvc3ZnPjxzdmcgYXJpYS1oaWRkZW49J3RydWUnIGZvY3VzYWJsZT0nZmFsc2UnPjx1c2UgaHJlZj0nL2Fzc2V0cy9iYWJ5bG9uL3N2Zy9pY29uLWFycm93LnN2ZyNpY29uLWFycm93Jz48L3VzZT48L3N2Zz48L2J1dHRvbj5cIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYnRuc01vZGUuaW5jbHVkZXMoJ2ljb24tbGFyZ2UnKSkge1xuICAgICAgICAgICAgcHJldkFycm93ICs9XG4gICAgICAgICAgICAgICAgXCI8YnV0dG9uIHR5cGU9J2J1dHRvbicgY2xhc3M9J3NsaWNrLXByZXYgaWNvbi1sYXJnZSc+PHN2ZyBhcmlhLWhpZGRlbj0ndHJ1ZScgZm9jdXNhYmxlPSdmYWxzZSc+PHVzZSBocmVmPScvYXNzZXRzL2JhYnlsb24vc3ZnL2ljb24tYXJyb3ctbGFyZ2Uuc3ZnI2ljb24tYXJyb3ctbGFyZ2UnPjwvdXNlPjwvc3ZnPjwvYnV0dG9uPlwiO1xuICAgICAgICAgICAgbmV4dEFycm93ICs9XG4gICAgICAgICAgICAgICAgXCI8YnV0dG9uIHR5cGU9J2J1dHRvbicgY2xhc3M9J3NsaWNrLW5leHQgaWNvbi1sYXJnZSc+PHN2ZyBhcmlhLWhpZGRlbj0ndHJ1ZScgZm9jdXNhYmxlPSdmYWxzZSc+PHVzZSBocmVmPScvYXNzZXRzL2JhYnlsb24vc3ZnL2ljb24tYXJyb3ctbGFyZ2Uuc3ZnI2ljb24tYXJyb3ctbGFyZ2UnPjwvdXNlPjwvc3ZnPjwvYnV0dG9uPlwiO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXBkYXRlVmVydGljYWxIZWlnaHQgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCAkZWwgPSAkKHNsaWRlclNlbGVjdG9yKTtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA+PSA1NDEpIHtcbiAgICAgICAgICAgICAgICBsZXQgbWF4SCA9IDA7XG4gICAgICAgICAgICAgICAgJGVsLmZpbmQoJy5zbGljay1zbGlkZTpub3QoLnNsaWNrLWNsb25lZCknKS5lYWNoKFxuICAgICAgICAgICAgICAgICAgICAoXzogbnVtYmVyLCBlbDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGggPSAoJChlbCkgYXMgYW55KS5vdXRlckhlaWdodCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGggPiBtYXhIKSBtYXhIID0gaDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgJGVsLmZpbmQoJy5zbGljay1zbGlkZScpLmVhY2goKF86IG51bWJlciwgZWw6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICgkKGVsKSBhcyBhbnkpLmNzcygnaGVpZ2h0JywgYCR7bWF4SH1weGApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKHNsaWRlclNlbGVjdG9yKS5maW5kKCcuc2xpY2stc2xpZGUnKS5jc3MoJ2hlaWdodCcsICcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodmVydGljYWwpIHtcbiAgICAgICAgICAgICQoc2xpZGVyU2VsZWN0b3IpLm9uKCdzZXRQb3NpdGlvbicsIHVwZGF0ZVZlcnRpY2FsSGVpZ2h0KTtcbiAgICAgICAgICAgICQoc2xpZGVyU2VsZWN0b3IpLm9uKCdpbml0JywgKCkgPT5cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHVwZGF0ZVZlcnRpY2FsSGVpZ2h0LCAwKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMucmVzaXplSGFuZGxlciA9ICgpID0+IHVwZGF0ZVZlcnRpY2FsSGVpZ2h0KCk7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVIYW5kbGVyLCB7XG4gICAgICAgICAgICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJChzbGlkZXJTZWxlY3Rvcikuc2xpY2soe1xuICAgICAgICAgICAgZG90czogc2hvd0RvdHMsXG4gICAgICAgICAgICBhcnJvd3M6IHNob3dCdG5zLFxuICAgICAgICAgICAgYXBwZW5kQXJyb3dzOiBzbGlkZXJBcnJvd3MgfHwgcGFyZW50LFxuICAgICAgICAgICAgcHJldkFycm93LFxuICAgICAgICAgICAgbmV4dEFycm93LFxuICAgICAgICAgICAgYXBwZW5kRG90czogc2xpZGVyRG90cyB8fCBwYXJlbnQsXG4gICAgICAgICAgICBpbmZpbml0ZSxcbiAgICAgICAgICAgIHVzZVRyYW5zZm9ybTogdHJ1ZSxcbiAgICAgICAgICAgIGZhZGUsXG4gICAgICAgICAgICBjZW50ZXJNb2RlLFxuICAgICAgICAgICAgY2VudGVyUGFkZGluZzogJzAnLFxuICAgICAgICAgICAgY3NzRWFzZTogJ2N1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpJyxcbiAgICAgICAgICAgIHNwZWVkOiBzbGlkZXJTcGVlZCxcbiAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogc2xpZGVzUGMsXG4gICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogMSxcbiAgICAgICAgICAgIHJvd3M6IHJvd3NQYyxcbiAgICAgICAgICAgIGF1dG9wbGF5LFxuICAgICAgICAgICAgYXV0b3BsYXlTcGVlZDogNTAwMCxcbiAgICAgICAgICAgIHN3aXBlVG9TbGlkZTogdHJ1ZSxcbiAgICAgICAgICAgIHZlcnRpY2FsLFxuICAgICAgICAgICAgdmVydGljYWxTd2lwaW5nOiB2ZXJ0aWNhbCxcbiAgICAgICAgICAgIGFkYXB0aXZlSGVpZ2h0LFxuICAgICAgICAgICAgYXNOYXZGb3IsXG4gICAgICAgICAgICBwYXVzZU9uRm9jdXM6IHBhdXNlLFxuICAgICAgICAgICAgcGF1c2VPbkhvdmVyOiBwYXVzZSxcbiAgICAgICAgICAgIGRyYWdnYWJsZSxcbiAgICAgICAgICAgIHN3aXBlOiBkcmFnZ2FibGUsXG4gICAgICAgICAgICBydGwsXG4gICAgICAgICAgICB2YXJpYWJsZVdpZHRoLFxuICAgICAgICAgICAgcmVzcG9uc2l2ZTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogMTY4MCxcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHsgc2xpZGVzVG9TaG93OiBzbGlkZXNMYXB0b3AsIHJvd3M6IHJvd3NMYXB0b3AgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogMTM2NixcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHsgc2xpZGVzVG9TaG93OiBzbGlkZXNUYWJsZXQsIHJvd3M6IHJvd3NUYWJsZXQgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogMTI4MCxcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHsgc2xpZGVzVG9TaG93OiBzbGlkZXNNb2JpbGUsIHJvd3M6IHJvd3NNb2JpbGUgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogMTAyMyxcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogc2xpZGVzTW9iaWxlU21hbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dzOiByb3dzTW9iaWxlU21hbGwsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDc2NyxcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogc2xpZGVzTW9iaWxlWFNtYWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm93czogcm93c01vYmlsZVhTbWFsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsU3dpcGluZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgaWYgKHR5cGVvZiAkID09PSAndW5kZWZpbmVkJyB8fCAhJC5mbj8uc2xpY2spIHJldHVybjtcblxuICAgICAgICBpZiAodGhpcy5zbGlkZXJFbCAmJiAkKHRoaXMuc2xpZGVyRWwpLmhhc0NsYXNzKCdzbGljay1pbml0aWFsaXplZCcpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICQodGhpcy5zbGlkZXJFbCkuc2xpY2soJ3Vuc2xpY2snKTtcbiAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgIC8qIG5hZGEgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yZXNpemVIYW5kbGVyKSB7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVIYW5kbGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIERldnVlbHZlIHRydWUgc2kgalF1ZXJ5K1NsaWNrIGxsZWdhbiBhIGVzdGFyIGRpc3BvbmlibGVzLCBmYWxzZSBzaSBub1xuICAgIHByaXZhdGUgd2FpdEZvclNsaWNrKHRpbWVvdXRNcyA9IDgwMDAsIHN0ZXBNcyA9IDEwMCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpO1xuICAgICAgICBjb25zdCBzdGFydCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2hlY2sgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiAkICE9PSAndW5kZWZpbmVkJyAmJiAkLmZuICYmICQuZm4uc2xpY2spIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0ID4gdGltZW91dE1zKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgICAgICAgICdbU2xpY2tJbml0RGlyZWN0aXZlXSBTbGljayBubyBkaXNwb25pYmxlIHRyYXMgdGltZW91dC4gwr9TY3JpcHRzIGNhcmdhZG9zPydcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGNoZWNrLCBzdGVwTXMpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1pdGVtLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9pbnRlcmZhY2VzL2JhYnlsb24taXRlbS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQmFieWxvbkl0ZW1JIHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1pdGVtLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9pbnRlcmZhY2VzL2JhYnlsb24taXRlbS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhYnlsb25CdXR0b25JIH0gZnJvbSAnLi9iYWJ5bG9uLWJ1dHRvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmFieWxvbkltYWdlSSB9IGZyb20gJy4vYmFieWxvbi1pbWFnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmFieWxvblRleHRJbmZvSSB9IGZyb20gJy4vYmFieWxvbi10ZXh0LWluZm8uaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBCYWJ5bG9uSXRlbUkge1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGJ1dHRvbnM/OiBCYWJ5bG9uQnV0dG9uSVtdO1xuICAgIG11bHRpbWVkaWE/OiBCYWJ5bG9uSW1hZ2VJW107XG4gICAgdGV4dHM/OiBCYWJ5bG9uVGV4dEluZm9JO1xufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi10ZXh0LWluZm8uaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2ludGVyZmFjZXMvYmFieWxvbi10ZXh0LWluZm8uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYWJ5bG9uRHluYW1pY0hlYWRpbmdJIH0gZnJvbSAnLi4vY29tcG9uZW50cy9zaGFyZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhYnlsb25UZXh0SW5mb0kge1xuICAgIHByZXRpdGxlPzogc3RyaW5nO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIHN1YnRpdGxlPzogc3RyaW5nO1xuICAgIHRleHQ/OiBzdHJpbmc7XG4gICAgaXRlbTE/OiBzdHJpbmc7XG4gICAgaXRlbTFUZXh0Pzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGFkZGl0aW9uYWwxPzogc3RyaW5nO1xuICAgIGFkZGl0aW9uYWwyPzogc3RyaW5nO1xuICAgIGFkZGl0aW9uYWwzPzogc3RyaW5nO1xuICAgIGNvbmRpdGlvbnM/OiBzdHJpbmc7XG4gICAgdXJsPzogc3RyaW5nO1xuICAgIHByZXRpdGxlQ29udGFpbj86IEJhYnlsb25EeW5hbWljSGVhZGluZ0k7XG4gICAgdGl0bGVDb250YWluPzogQmFieWxvbkR5bmFtaWNIZWFkaW5nSTtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi10ZXh0LWluZm8uaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2ludGVyZmFjZXMvYmFieWxvbi10ZXh0LWluZm8uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYWJ5bG9uRHluYW1pY0hlYWRpbmdJIH0gZnJvbSAnLi4vY29tcG9uZW50cy9zaGFyZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhYnlsb25UZXh0SW5mb0kge1xuICAgIHByZXRpdGxlPzogc3RyaW5nO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIHRpdGxlMj86IHN0cmluZztcbiAgICBzdWJ0aXRsZT86IHN0cmluZztcbiAgICB0ZXh0Pzogc3RyaW5nO1xuICAgIGl0ZW0xPzogc3RyaW5nO1xuICAgIGl0ZW0xVGV4dD86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBhZGRpdGlvbmFsMT86IHN0cmluZztcbiAgICBhZGRpdGlvbmFsMj86IHN0cmluZztcbiAgICBhZGRpdGlvbmFsMz86IHN0cmluZztcbiAgICBjb25kaXRpb25zPzogc3RyaW5nO1xuICAgIHVybD86IHN0cmluZztcbiAgICBwcmV0aXRsZUNvbnRhaW4/OiBCYWJ5bG9uRHluYW1pY0hlYWRpbmdJO1xuICAgIHRpdGxlQ29udGFpbj86IEJhYnlsb25EeW5hbWljSGVhZGluZ0k7XG4gICAgc3ZnPzogc3RyaW5nO1xufVxuIl19