ctt-babylon 0.13.39 → 0.13.41

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 (33) hide show
  1. package/esm2022/lib/components/core/babylon-c1-txt/babylon-c1-txt.component.mjs +11 -0
  2. package/esm2022/lib/components/core/babylon-c1-txt/index.mjs +2 -0
  3. package/esm2022/lib/components/core/babylon-he-me-svg-text-cta-mot/babylon-he-me-svg-text-cta-mot.component.mjs +7 -2
  4. package/esm2022/lib/components/core/babylon-map-txt/babylon-map-txt.component.mjs +53 -0
  5. package/esm2022/lib/components/core/babylon-map-txt/index.mjs +2 -0
  6. package/esm2022/lib/components/core/babylon-sli-c1-img-text/babylon-sli-c1-img-text.component.mjs +3 -3
  7. package/esm2022/lib/components/core/babylon-sli-c3-svg-vid-cta/babylon-sli-c3-svg-vid-cta.component.mjs +107 -74
  8. package/esm2022/lib/components/core/babylon-sli-c3-txt-img-cta/babylon-sli-c3-txt-img-cta.component.mjs +12 -0
  9. package/esm2022/lib/components/core/babylon-sli-c3-txt-img-cta/index.mjs +2 -0
  10. package/esm2022/lib/components/core/babylon-top-slider-img-video/babylon-top-slider-img-video.component.mjs +114 -0
  11. package/esm2022/lib/components/core/babylon-top-slider-img-video/index.mjs +2 -0
  12. package/esm2022/lib/components/core/index.mjs +5 -1
  13. package/esm2022/lib/components/external/core/c4-for-c2-txt/c4-for-c2-txt.component.mjs +3 -3
  14. package/esm2022/lib/components/external/core/c4-lis-c2-img-txt-c/list-rooms.component.mjs +15 -7
  15. package/esm2022/lib/components/external/core/c4-sli-c1-img-txt/h04-slider-text.component.mjs +8 -3
  16. package/esm2022/lib/directives/link-type/link-type.directive.mjs +4 -1
  17. package/esm2022/lib/directives/sliders/swiper-init.directive.mjs +11 -8
  18. package/esm2022/lib/services/mapper/mapper.service.mjs +7 -4
  19. package/fesm2022/ctt-babylon.mjs +329 -95
  20. package/fesm2022/ctt-babylon.mjs.map +1 -1
  21. package/lib/components/core/babylon-c1-txt/babylon-c1-txt.component.d.ts +5 -0
  22. package/lib/components/core/babylon-c1-txt/index.d.ts +1 -0
  23. package/lib/components/core/babylon-he-me-svg-text-cta-mot/babylon-he-me-svg-text-cta-mot.component.d.ts +2 -1
  24. package/lib/components/core/babylon-map-txt/babylon-map-txt.component.d.ts +15 -0
  25. package/lib/components/core/babylon-map-txt/index.d.ts +1 -0
  26. package/lib/components/core/babylon-sli-c3-svg-vid-cta/babylon-sli-c3-svg-vid-cta.component.d.ts +12 -8
  27. package/lib/components/core/babylon-sli-c3-txt-img-cta/babylon-sli-c3-txt-img-cta.component.d.ts +5 -0
  28. package/lib/components/core/babylon-sli-c3-txt-img-cta/index.d.ts +1 -0
  29. package/lib/components/core/babylon-top-slider-img-video/babylon-top-slider-img-video.component.d.ts +26 -0
  30. package/lib/components/core/babylon-top-slider-img-video/index.d.ts +1 -0
  31. package/lib/components/core/index.d.ts +4 -0
  32. package/lib/components/external/core/c4-sli-c1-img-txt/h04-slider-text.component.d.ts +1 -0
  33. package/package.json +1 -1
@@ -1,11 +1,16 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, ViewChild, } from '@angular/core';
1
+ import { CommonModule, isPlatformBrowser } from '@angular/common';
2
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, inject, Input, PLATFORM_ID, ViewChild, } from '@angular/core';
3
3
  import 'swiper';
4
4
  import Swiper, { Autoplay, EffectFade, Navigation, Pagination } from 'swiper';
5
5
  import * as i0 from "@angular/core";
6
6
  Swiper.use([Navigation, Pagination, Autoplay, EffectFade]);
7
7
  export class H04SliderTextComponent {
8
+ constructor() {
9
+ this.platformId = inject(PLATFORM_ID);
10
+ }
8
11
  ngAfterViewInit() {
12
+ if (!isPlatformBrowser(this.platformId))
13
+ return;
9
14
  const swiperOptions = {
10
15
  loop: true,
11
16
  pagination: {
@@ -39,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
39
44
  }], texts: [{
40
45
  type: Input
41
46
  }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaDA0LXNsaWRlci10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9jb21wb25lbnRzL2V4dGVybmFsL2NvcmUvYzQtc2xpLWMxLWltZy10eHQvaDA0LXNsaWRlci10ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9jb21wb25lbnRzL2V4dGVybmFsL2NvcmUvYzQtc2xpLWMxLWltZy10eHQvaDA0LXNsaWRlci10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUgsU0FBUyxFQUNULHNCQUFzQixFQUV0QixLQUFLLEVBQ0wsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sUUFBUSxDQUFDO0FBQ2hCLE9BQU8sTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDOztBQUk5RSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztBQVUzRCxNQUFNLE9BQU8sc0JBQXNCO0lBUS9CLGVBQWU7UUFDWCxNQUFNLGFBQWEsR0FBa0I7WUFDakMsSUFBSSxFQUFFLElBQUk7WUFDVixVQUFVLEVBQUU7Z0JBQ1IsRUFBRSxFQUFFLG9CQUFvQjtnQkFDeEIsU0FBUyxFQUFFLElBQUk7YUFDbEI7WUFDRCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLHVCQUF1QjtnQkFDL0IsTUFBTSxFQUFFLHVCQUF1QjthQUNsQztZQUNELFFBQVEsRUFBRTtnQkFDTixLQUFLLEVBQUUsSUFBSTtnQkFDWCxvQkFBb0IsRUFBRSxLQUFLO2FBQzlCO1lBQ0QsTUFBTSxFQUFFLE1BQU07WUFDZCxhQUFhLEVBQUUsQ0FBQztTQUNuQixDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FDcEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQ2xDLGFBQWEsQ0FDaEIsQ0FBQztJQUNOLENBQUM7K0dBOUJRLHNCQUFzQjttR0FBdEIsc0JBQXNCLHlQQ3hCbkMsdzVHQTZFQSx5blBEMURjLFlBQVk7OzRGQUtiLHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDSSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFdBR2QsQ0FBQyxzQkFBc0IsQ0FBQzs4QkFHSCxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFJbkIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAnc3dpcGVyJztcbmltcG9ydCBTd2lwZXIsIHsgQXV0b3BsYXksIEVmZmVjdEZhZGUsIE5hdmlnYXRpb24sIFBhZ2luYXRpb24gfSBmcm9tICdzd2lwZXInO1xuaW1wb3J0IHsgU3dpcGVyT3B0aW9ucyB9IGZyb20gJ3N3aXBlci90eXBlcyc7XG5pbXBvcnQgeyBCYWJ5bG9uTXVsdGltZWRpYUksIEJhYnlsb25UZXh0cyB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuXG5Td2lwZXIudXNlKFtOYXZpZ2F0aW9uLCBQYWdpbmF0aW9uLCBBdXRvcGxheSwgRWZmZWN0RmFkZV0pO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2Nlcy1oMDQtc2xpZGVyLXRleHQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2gwNC1zbGlkZXItdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2gwNC1zbGlkZXItdGV4dC5jb21wb25lbnQuY3NzJyxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIEgwNFNsaWRlclRleHRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKCdzd2lwZXJDb250YWluZXInKSBzd2lwZXJDb250YWluZXIhOiBFbGVtZW50UmVmO1xuICAgIHN3aXBlcj86IFN3aXBlcjtcblxuICAgIC8qICBASW5wdXQoKSBkYXRhOiBIMDRTbGlkZXJUZXh0ID0gaDA0U2xpZGVyVGV4dERhdGE7ICovXG4gICAgQElucHV0KCkgbXVsdGltZWRpYT86IEJhYnlsb25NdWx0aW1lZGlhSTtcbiAgICBASW5wdXQoKSB0ZXh0cz86IEJhYnlsb25UZXh0cztcblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3dpcGVyT3B0aW9uczogU3dpcGVyT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGxvb3A6IHRydWUsXG4gICAgICAgICAgICBwYWdpbmF0aW9uOiB7XG4gICAgICAgICAgICAgICAgZWw6ICcuc3dpcGVyLXBhZ2luYXRpb24nLFxuICAgICAgICAgICAgICAgIGNsaWNrYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuYXZpZ2F0aW9uOiB7XG4gICAgICAgICAgICAgICAgbmV4dEVsOiAnLm0tc3dpcGVyLWJ1dHRvbi5uZXh0JyxcbiAgICAgICAgICAgICAgICBwcmV2RWw6ICcubS1zd2lwZXItYnV0dG9uLnByZXYnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGF1dG9wbGF5OiB7XG4gICAgICAgICAgICAgICAgZGVsYXk6IDUwMDAsXG4gICAgICAgICAgICAgICAgZGlzYWJsZU9uSW50ZXJhY3Rpb246IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVmZmVjdDogJ2ZhZGUnLFxuICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zd2lwZXIgPSBuZXcgU3dpcGVyKFxuICAgICAgICAgICAgdGhpcy5zd2lwZXJDb250YWluZXIubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIHN3aXBlck9wdGlvbnNcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cIm1kbC1oMDRcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWRsLWNvbnRhaW5lclwiPlxuICAgICAgICBAaWYgKG11bHRpbWVkaWE/LmltYWdlbmVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWltYWdlbmVzIHN3aXBlclwiICNzd2lwZXJDb250YWluZXI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN3aXBlci13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgbXVsdGltZWRpYT8uaW1hZ2VuZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN3aXBlci1zbGlkZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtLmltZz8uc3JjXCIgW2FsdF09XCJpdGVtLmltZz8uYWx0XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN3aXBlci1wYWdpbmF0aW9uXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAodGV4dHMpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvb3RcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWJvdHRvbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tdGV4dG9zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLXN3aXBlci1idXR0b24gcHJldiBmaWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIk5leHQgc2xpZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCI4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgOCAxNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuODQ3MTcgMC41TDAuNzA3MDMxIDYuNjQwMTRMNi44NDcxNyAxMi43Nzk4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjQjc5ODVEXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibS1zd2lwZXItYnV0dG9uIG5leHQgZmlsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJQcmV2aW91cyBzbGlkZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCA4IDE0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMC41MDA0ODggMC41TDYuNjQwNjIgNi42NDAxNEwwLjUwMDQ4OCAxMi43Nzk4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjQjc5ODVEXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAodGV4dHMudGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0tdGl0dWxvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwidGV4dHMudGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh0ZXh0cy5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0tdGV4dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJ0ZXh0cy5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaDA0LXNsaWRlci10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9jb21wb25lbnRzL2V4dGVybmFsL2NvcmUvYzQtc2xpLWMxLWltZy10eHQvaDA0LXNsaWRlci10ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9jb21wb25lbnRzL2V4dGVybmFsL2NvcmUvYzQtc2xpLWMxLWltZy10eHQvaDA0LXNsaWRlci10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBRUgsU0FBUyxFQUNULHNCQUFzQixFQUV0QixNQUFNLEVBQ04sS0FBSyxFQUNMLFdBQVcsRUFDWCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxRQUFRLENBQUM7QUFDaEIsT0FBTyxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7O0FBSTlFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBVTNELE1BQU0sT0FBTyxzQkFBc0I7SUFSbkM7UUFnQkksZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQTBCcEM7SUF4QkcsZUFBZTtRQUNYLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQUUsT0FBTztRQUNoRCxNQUFNLGFBQWEsR0FBa0I7WUFDakMsSUFBSSxFQUFFLElBQUk7WUFDVixVQUFVLEVBQUU7Z0JBQ1IsRUFBRSxFQUFFLG9CQUFvQjtnQkFDeEIsU0FBUyxFQUFFLElBQUk7YUFDbEI7WUFDRCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLHVCQUF1QjtnQkFDL0IsTUFBTSxFQUFFLHVCQUF1QjthQUNsQztZQUNELFFBQVEsRUFBRTtnQkFDTixLQUFLLEVBQUUsSUFBSTtnQkFDWCxvQkFBb0IsRUFBRSxLQUFLO2FBQzlCO1lBQ0QsTUFBTSxFQUFFLE1BQU07WUFDZCxhQUFhLEVBQUUsQ0FBQztTQUNuQixDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FDcEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQ2xDLGFBQWEsQ0FDaEIsQ0FBQztJQUNOLENBQUM7K0dBakNRLHNCQUFzQjttR0FBdEIsc0JBQXNCLHlQQzFCbkMsdzVHQTZFQSx5blBEeERjLFlBQVk7OzRGQUtiLHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDSSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFdBR2QsQ0FBQyxzQkFBc0IsQ0FBQzs4QkFHSCxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFJbkIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgICBFbGVtZW50UmVmLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBQTEFURk9STV9JRCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICdzd2lwZXInO1xuaW1wb3J0IFN3aXBlciwgeyBBdXRvcGxheSwgRWZmZWN0RmFkZSwgTmF2aWdhdGlvbiwgUGFnaW5hdGlvbiB9IGZyb20gJ3N3aXBlcic7XG5pbXBvcnQgeyBTd2lwZXJPcHRpb25zIH0gZnJvbSAnc3dpcGVyL3R5cGVzJztcbmltcG9ydCB7IEJhYnlsb25NdWx0aW1lZGlhSSwgQmFieWxvblRleHRzIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cblN3aXBlci51c2UoW05hdmlnYXRpb24sIFBhZ2luYXRpb24sIEF1dG9wbGF5LCBFZmZlY3RGYWRlXSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY2VzLWgwNC1zbGlkZXItdGV4dCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaDA0LXNsaWRlci10ZXh0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vaDA0LXNsaWRlci10ZXh0LmNvbXBvbmVudC5jc3MnLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgSDA0U2xpZGVyVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3N3aXBlckNvbnRhaW5lcicpIHN3aXBlckNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XG4gICAgc3dpcGVyPzogU3dpcGVyO1xuXG4gICAgLyogIEBJbnB1dCgpIGRhdGE6IEgwNFNsaWRlclRleHQgPSBoMDRTbGlkZXJUZXh0RGF0YTsgKi9cbiAgICBASW5wdXQoKSBtdWx0aW1lZGlhPzogQmFieWxvbk11bHRpbWVkaWFJO1xuICAgIEBJbnB1dCgpIHRleHRzPzogQmFieWxvblRleHRzO1xuXG4gICAgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBzd2lwZXJPcHRpb25zOiBTd2lwZXJPcHRpb25zID0ge1xuICAgICAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICAgICAgICAgIHBhZ2luYXRpb246IHtcbiAgICAgICAgICAgICAgICBlbDogJy5zd2lwZXItcGFnaW5hdGlvbicsXG4gICAgICAgICAgICAgICAgY2xpY2thYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5hdmlnYXRpb246IHtcbiAgICAgICAgICAgICAgICBuZXh0RWw6ICcubS1zd2lwZXItYnV0dG9uLm5leHQnLFxuICAgICAgICAgICAgICAgIHByZXZFbDogJy5tLXN3aXBlci1idXR0b24ucHJldicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXV0b3BsYXk6IHtcbiAgICAgICAgICAgICAgICBkZWxheTogNTAwMCxcbiAgICAgICAgICAgICAgICBkaXNhYmxlT25JbnRlcmFjdGlvbjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZWZmZWN0OiAnZmFkZScsXG4gICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAxLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnN3aXBlciA9IG5ldyBTd2lwZXIoXG4gICAgICAgICAgICB0aGlzLnN3aXBlckNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgc3dpcGVyT3B0aW9uc1xuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwibWRsLWgwNFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtZGwtY29udGFpbmVyXCI+XG4gICAgICAgIEBpZiAobXVsdGltZWRpYT8uaW1hZ2VuZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0taW1hZ2VuZXMgc3dpcGVyXCIgI3N3aXBlckNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3dpcGVyLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBtdWx0aW1lZGlhPy5pbWFnZW5lczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3dpcGVyLXNsaWRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0uaW1nPy5zcmNcIiBbYWx0XT1cIml0ZW0uaW1nPy5hbHRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3dpcGVyLXBhZ2luYXRpb25cIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICh0ZXh0cykge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9vdFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tYm90dG9tXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS10ZXh0b3NcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0tc3dpcGVyLWJ1dHRvbiBwcmV2IGZpbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiTmV4dCBzbGlkZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCA4IDE0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi44NDcxNyAwLjVMMC43MDcwMzEgNi42NDAxNEw2Ljg0NzE3IDEyLjc3OThcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNCNzk4NURcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLXN3aXBlci1idXR0b24gbmV4dCBmaWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlByZXZpb3VzIHNsaWRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiOFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDggMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0wLjUwMDQ4OCAwLjVMNi42NDA2MiA2LjY0MDE0TDAuNTAwNDg4IDEyLjc3OThcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNCNzk4NURcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh0ZXh0cy50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibS10aXR1bG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJ0ZXh0cy50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHRleHRzLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibS10ZXh0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInRleHRzLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=
@@ -66,6 +66,9 @@ export class BabylonLinkTypeDirective {
66
66
  case 'anchor':
67
67
  this.handleAnchorLink(this.href);
68
68
  break;
69
+ case 'anchor_link':
70
+ this.handleAnchorLink(this.href);
71
+ break;
69
72
  case 'pdf_link':
70
73
  this.handlePdfLink(this.href);
71
74
  break;
@@ -303,4 +306,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
303
306
  type: HostListener,
304
307
  args: ['click', ['$event']]
305
308
  }] } });
306
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay10eXBlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9kaXJlY3RpdmVzL2xpbmstdHlwZS9saW5rLXR5cGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDSCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04sV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBTWhFLE1BQU0sT0FBTyx3QkFBd0I7SUFnQmpDLFlBQ3FCLE1BQWMsRUFDZCxLQUFpQjtRQURqQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQWI3Qix1QkFBa0IsR0FBYSxLQUFLLENBQUM7UUFDcEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzNDLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsb0JBQWUsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0IsWUFBTyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzVDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFeEIsYUFBUSxHQUFHLHNCQUFzQixDQUFDO1FBQ2xDLGNBQVMsR0FBRyxXQUFXLENBQUM7UUFDeEIsZUFBVSxHQUFHLGVBQWUsQ0FBQztJQUszQyxDQUFDO0lBQ0osV0FBVztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJ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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE91dHB1dCxcbiAgICBQTEFURk9STV9JRCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU0lURV9DT05GSUdfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21hcHBlci9tYXBwZXIuc2VydmljZS50b2tlbic7XG5pbXBvcnQgeyBjb21wbGV4X2xpbmtzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29tcGxleC1saW5rcy50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2xpbmtUeXBlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBsaW5rVHlwZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBocmVmPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG1vZGFsQ2xpY2s/OiBFdmVudEVtaXR0ZXI8c3RyaW5nPjtcbiAgICBASW5wdXQoKSBjbGlja1BvcHVwPzogRXZlbnRFbWl0dGVyPHN0cmluZz47XG4gICAgQElucHV0KCkgZGlzYWJsZVBvaW50ZXJOb25lPzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBPdXRwdXQoKSBhbmNob3JDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIHByaXZhdGUgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gICAgcHJpdmF0ZSBoYXNDb21wbGV4TGlua3MgPSBpbmplY3QoY29tcGxleF9saW5rcyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzaXRlU3ZjID0gaW5qZWN0KFNJVEVfQ09ORklHX1NFUlZJQ0VfVE9LRU4pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IFBIT05FX1JFID0gL15UXFxzKls6XFwtXT9cXHMqKC4rKSQvaTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IE1BSUxUT19SRSA9IC9ebWFpbHRvOi9pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQUREUkVTU19SRSA9IC9eY1xcL1xcLj8oLiopJC9pO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWxSZWY6IEVsZW1lbnRSZWZcbiAgICApIHt9XG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5saW5rVHlwZSB8fCAhdGhpcy5ocmVmKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZU5vTGluaygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzRXh0ZXJuYWxUeXBlKHRoaXMubGlua1R5cGUpKSB7XG4gICAgICAgICAgICBjb25zdCBkZXRlY3RlZCA9IHRoaXMuZGV0ZWN0RXh0ZXJuYWxLaW5kKHRoaXMuaHJlZik7XG4gICAgICAgICAgICB0aGlzLmFwcGx5Tm9ybWFsaXplZEhyZWYoZGV0ZWN0ZWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsIHRoaXMuaHJlZik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5saW5rVHlwZSA9PT0gJ2V4dGVybmFsJyB8fCB0aGlzLmxpbmtUeXBlID09PSAnZXh0ZXJuYWxfbGluaycpIHtcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdub2ZvbGxvdycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIGJ0bkNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubGlua1R5cGUgfHwgIXRoaXMuaHJlZikge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVOb0xpbmsoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5saW5rVHlwZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdsaW5rVHlwZSBpcyBtaXNzaW5nLicpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMubGlua1R5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2ludGVybmFsJzpcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUludGVybmFsTGluayh0aGlzLmhyZWYpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdpbnRlcm5hbF9saW5rJzpcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUludGVybmFsTGluayh0aGlzLmhyZWYpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdzZWxmX2xpbmsnOlxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlSW50ZXJuYWxMaW5rKHRoaXMuaHJlZik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ2ludGVybmFsX2hvdGVsX2xpbmsnOlxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlSW50ZXJuYWxMaW5rKHRoaXMuaHJlZik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ2V4dGVybmFsJzpcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUV4dGVybmFsTGluayh0aGlzLmhyZWYpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdleHRlcm5hbF9saW5rJzpcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUV4dGVybmFsTGluayh0aGlzLmhyZWYpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdhbmNob3InOlxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQW5jaG9yTGluayh0aGlzLmhyZWYpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdwZGZfbGluayc6XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVQZGZMaW5rKHRoaXMuaHJlZik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ25vbGluayc6XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVOb0xpbmsoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnY29tcG9uZW50JzpcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNvbXBvbmVudExpbmsodGhpcy5ocmVmKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnY29tcG9uZW50X2xpbmsnOlxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ29tcG9uZW50TGluayh0aGlzLmhyZWYpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVW5zdXBwb3J0ZWQgbGlua1R5cGU6ICR7dGhpcy5saW5rVHlwZX1gKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlSW50ZXJuYWxMaW5rKHVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNsZWFuZWRVcmwgPSB1cmwudHJpbSgpLnJlcGxhY2UoL1xcLyskLywgJycpO1xuICAgICAgICBjb25zdCB0YXJnZXQgPSAnLycgKyBjbGVhbmVkVXJsO1xuICAgICAgICB0aGlzLmFuY2hvckNsaWNrZWQuZW1pdCgpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSAodGhpcy5yb3V0ZXIudXJsIHx8ICcnKVxuICAgICAgICAgICAgLnNwbGl0KCc/JylbMF1cbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXC8rJC8sICcnKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0Q2xlYW4gPSB0YXJnZXQuc3BsaXQoJz8nKVswXS5yZXBsYWNlKC9cXC8rJC8sICcnKTtcblxuICAgICAgICBpZiAoY3VycmVudCA9PT0gdGFyZ2V0Q2xlYW4pIHJldHVybjtcblxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRhcmdldCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFeHRlcm5hbExpbmsodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgZGV0ZWN0ZWQgPSB0aGlzLmRldGVjdEV4dGVybmFsS2luZCh1cmwpO1xuICAgICAgICBzd2l0Y2ggKGRldGVjdGVkLmtpbmQpIHtcbiAgICAgICAgICAgIGNhc2UgJ3Bob25lJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5QaG9uZShkZXRlY3RlZC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdlbWFpbCc6XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuRW1haWwoZGV0ZWN0ZWQudmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYWRkcmVzcyc6XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuQWRkcmVzcyhkZXRlY3RlZC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNvbnN0IGlzQWJzb2x1dGVVcmwgPSAodXJsOiBzdHJpbmcpID0+IC9eKGh0dHBzPzopL2kudGVzdCh1cmwpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbmFsVXJsID0gaXNBYnNvbHV0ZVVybChkZXRlY3RlZC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgPyBkZXRlY3RlZC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6ICdodHRwczovLycgKyBkZXRlY3RlZC52YWx1ZTtcblxuICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKGZpbmFsVXJsLCAnX2JsYW5rJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZVBkZkxpbmsodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVBbmNob3JMaW5rKHNlY3Rpb25JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBjb25zdCBsYW5nID1cbiAgICAgICAgICAgICAgICB0aGlzLnNpdGVTdmMuc2VsZWN0ZWRMYW5ndWFnZUluc3RhbnQ/LmxvY2F0ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaGFzQ29tcGxleExpbmtzICYmIHRoaXMucm91dGVyLnVybCAhPT0gYC8ke2xhbmd9YCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVkaXJlY3RUb0hvbWVBbmNob3Ioc2VjdGlvbklkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNlY3Rpb25JZCk7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeU9mZnNldCA9IC0xNjA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgK1xuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbFkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgeU9mZnNldDtcblxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IHksIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmNob3JDbGlja2VkLmVtaXQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFNlY3Rpb24gd2l0aCBJRCAke3NlY3Rpb25JZH0gbm90IGZvdW5kLmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQ29tcG9uZW50TGluayh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBjbGVhbmVkQ29tcG9uZW50TmFtZSA9IHVybC50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKHRoaXMubW9kYWxDbGljaykge1xuICAgICAgICAgICAgdGhpcy5tb2RhbENsaWNrLmVtaXQoY2xlYW5lZENvbXBvbmVudE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNsaWNrUG9wdXApIHtcbiAgICAgICAgICAgIHRoaXMuY2xpY2tQb3B1cC5lbWl0KGNsZWFuZWRDb21wb25lbnROYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlTm9MaW5rKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwYXJlbnRMaSA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jbG9zZXN0KCdsaScpO1xuXG4gICAgICAgIGNvbnN0IGlzSW5zaWRlTWVudUl0ZW1XaXRoQ2hpbGRyZW4gPSBwYXJlbnRMaT8uY2xhc3NMaXN0LmNvbnRhaW5zKFxuICAgICAgICAgICAgJ21lbnUtaXRlbS1oYXMtY2hpbGRyZW4nXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCFpc0luc2lkZU1lbnVJdGVtV2l0aENoaWxkcmVuKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZVBvaW50ZXJOb25lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnaHJlZicpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ1tocmVmXScpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtZGlzYWJsZWQnLCAndHJ1ZScpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJy0xJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmN1cnNvciA9ICdkZWZhdWx0JztcbiAgICAgICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb3BlblBob25lKG51bTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYHRlbDoke251bX1gO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3BlbkVtYWlsKGVtYWlsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgbWFpbHRvOiR7ZW1haWx9YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9wZW5BZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBtYXBzVXJsID0gdGhpcy5idWlsZE1hcHNVcmwoYWRkcmVzcyk7XG4gICAgICAgIHdpbmRvdy5vcGVuKG1hcHNVcmwsICdfYmxhbmsnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkTWFwc1VybChhZGRyZXNzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9zZWFyY2gvP2FwaT0xJnF1ZXJ5PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGFkZHJlc3MpfWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0V4dGVybmFsVHlwZSh0Pzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0ID09PSAnZXh0ZXJuYWwnIHx8IHQgPT09ICdleHRlcm5hbF9saW5rJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGRldGVjdEV4dGVybmFsS2luZChyYXc6IHN0cmluZyk6IHtcbiAgICAgICAga2luZDogJ3Bob25lJyB8ICdlbWFpbCcgfCAnYWRkcmVzcycgfCAndXJsJztcbiAgICAgICAgdmFsdWU6IHN0cmluZztcbiAgICB9IHtcbiAgICAgICAgY29uc3QgdHJpbW1lZCA9IChyYXcgfHwgJycpLnRyaW0oKTtcblxuICAgICAgICBpZiAodGhpcy5NQUlMVE9fUkUudGVzdCh0cmltbWVkKSkge1xuICAgICAgICAgICAgY29uc3QgZW1haWwgPSB0cmltbWVkLnJlcGxhY2UoL15tYWlsdG86L2ksICcnKTtcbiAgICAgICAgICAgIHJldHVybiB7IGtpbmQ6ICdlbWFpbCcsIHZhbHVlOiBlbWFpbCB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuUEhPTkVfUkUudGVzdCh0cmltbWVkKSkge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSB0aGlzLlBIT05FX1JFLmV4ZWModHJpbW1lZCk7XG4gICAgICAgICAgICBjb25zdCBudW1SYXcgPSAobWF0Y2g/LlsxXSA/PyAnJykudHJpbSgpO1xuICAgICAgICAgICAgY29uc3QgZGlnaXRzID0gbnVtUmF3LnJlcGxhY2UoL1teXFxkK10vZywgJycpO1xuICAgICAgICAgICAgcmV0dXJuIHsga2luZDogJ3Bob25lJywgdmFsdWU6IGRpZ2l0cyB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICgvXnRlbDovaS50ZXN0KHRyaW1tZWQpKSB7XG4gICAgICAgICAgICBjb25zdCBudW0gPSB0cmltbWVkLnJlcGxhY2UoL150ZWw6L2ksICcnKS5yZXBsYWNlKC9bXlxcZCtdL2csICcnKTtcbiAgICAgICAgICAgIHJldHVybiB7IGtpbmQ6ICdwaG9uZScsIHZhbHVlOiBudW0gfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFkZHJNYXRjaCA9IHRoaXMuQUREUkVTU19SRS5leGVjKHRyaW1tZWQpO1xuICAgICAgICBpZiAoYWRkck1hdGNoKSB7XG4gICAgICAgICAgICBjb25zdCBhZGRyID0gKGFkZHJNYXRjaFsxXSA/PyAnJykudHJpbSgpO1xuICAgICAgICAgICAgcmV0dXJuIHsga2luZDogJ2FkZHJlc3MnLCB2YWx1ZTogYWRkciB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHsga2luZDogJ3VybCcsIHZhbHVlOiB0cmltbWVkIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0V4dGVybmFsTGFuZ3VhZ2VzKHZhbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbGFuZyA9IHRoaXMuc2l0ZVN2Yy5zZWxlY3RlZExhbmd1YWdlSW5zdGFudD8ubG9jYXRlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGxldCBsYW5ndXJsID0gdmFsICsgJy8nICsgbGFuZztcblxuICAgICAgICByZXR1cm4gbGFuZ3VybDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZGlyZWN0VG9Ib21lQW5jaG9yKHNlY3Rpb25JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGludGVydmFsTXMgPSA1MDtcbiAgICAgICAgbGV0IGludGVydmFsSWQ6IGFueTtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnLycpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXR0ZW1wdFNjcm9sbCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNlY3Rpb25JZCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9TZWN0aW9uKHNlY3Rpb25JZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKGF0dGVtcHRTY3JvbGwsIGludGVydmFsTXMpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgU2VjdGlvbiB3aXRoIElEICR7c2VjdGlvbklkfSBub3QgZm91bmQuYCk7XG4gICAgICAgICAgICAgICAgfSwgMzAwMCk7XG5cbiAgICAgICAgICAgICAgICBhdHRlbXB0U2Nyb2xsKCk7XG4gICAgICAgICAgICB9LCAzMDApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNjcm9sbFRvU2VjdGlvbihzZWN0aW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2VjdGlvbklkKTtcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHlPZmZzZXQgPSAtMTYwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHkgPVxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxZICtcbiAgICAgICAgICAgICAgICAgICAgeU9mZnNldDtcblxuICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogeSwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuYW5jaG9yQ2xpY2tlZC5lbWl0KCk7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpPy5jbGFzc0xpc3QucmVtb3ZlKCdub19zY3JvbGwnKTtcbiAgICAgICAgICAgIH0sIDUwMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFNlY3Rpb24gd2l0aCBJRCAke3NlY3Rpb25JZH0gbm90IGZvdW5kLmApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBseU5vcm1hbGl6ZWRIcmVmKGRldGVjdGVkOiB7XG4gICAgICAgIGtpbmQ6ICdwaG9uZScgfCAnZW1haWwnIHwgJ2FkZHJlc3MnIHwgJ3VybCc7XG4gICAgICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgfSk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgc3dpdGNoIChkZXRlY3RlZC5raW5kKSB7XG4gICAgICAgICAgICBjYXNlICdwaG9uZSc6XG4gICAgICAgICAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdocmVmJywgYHRlbDoke2RldGVjdGVkLnZhbHVlfWApO1xuICAgICAgICAgICAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZSgndGFyZ2V0Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdlbWFpbCc6XG4gICAgICAgICAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdocmVmJywgYG1haWx0bzoke2RldGVjdGVkLnZhbHVlfWApO1xuICAgICAgICAgICAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZSgndGFyZ2V0Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdhZGRyZXNzJzpcbiAgICAgICAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB0aGlzLmJ1aWxkTWFwc1VybChkZXRlY3RlZC52YWx1ZSkpO1xuICAgICAgICAgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgndGFyZ2V0JywgJ19ibGFuaycpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpZiAoZWwuY2xvc2VzdCgnLmNzX25hdl9saXN0JykgJiYgdGhpcy5oYXNDb21wbGV4TGlua3MpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5ld3ZhbHVlID0gdGhpcy5jaGVja0V4dGVybmFsTGFuZ3VhZ2VzKGRldGVjdGVkLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdocmVmJywgbmV3dmFsdWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnaHJlZicsIGRldGVjdGVkLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWwuc2V0QXR0cmlidXRlKCd0YXJnZXQnLCAnX2JsYW5rJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
309
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay10eXBlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9kaXJlY3RpdmVzL2xpbmstdHlwZS9saW5rLXR5cGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDSCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04sV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBTWhFLE1BQU0sT0FBTyx3QkFBd0I7SUFnQmpDLFlBQ3FCLE1BQWMsRUFDZCxLQUFpQjtRQURqQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQWI3Qix1QkFBa0IsR0FBYSxLQUFLLENBQUM7UUFDcEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzNDLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsb0JBQWUsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0IsWUFBTyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzVDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFeEIsYUFBUSxHQUFHLHNCQUFzQixDQUFDO1FBQ2xDLGNBQVMsR0FBRyxXQUFXLENBQUM7UUFDeEIsZUFBVSxHQUFHLGVBQWUsQ0FBQztJQUszQyxDQUFDO0lBQ0osV0FBVztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUM5QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsT0FBTztTQUNWO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNwQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN0QzthQUFNO1lBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDNUQ7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssVUFBVSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssZUFBZSxFQUFFO1lBQ25FLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDNUQ7SUFDTCxDQUFDO0lBR0QsUUFBUSxDQUFDLEtBQVk7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQzlCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDckMsT0FBTztTQUNWO1FBRUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXZCLFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNuQixLQUFLLFVBQVU7Z0JBQ1gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkMsTUFBTTtZQUVWLEtBQUssZUFBZTtnQkFDaEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkMsTUFBTTtZQUVWLEtBQUssV0FBVztnQkFDWixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNuQyxNQUFNO1lBRVYsS0FBSyxxQkFBcUI7Z0JBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ25DLE1BQU07WUFFVixLQUFLLFVBQVU7Z0JBQ1gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkMsTUFBTTtZQUVWLEtBQUssZUFBZTtnQkFDaEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkMsTUFBTTtZQUVWLEtBQUssUUFBUTtnQkFDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNqQyxNQUFNO1lBRVYsS0FBSyxhQUFhO2dCQUNkLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2pDLE1BQU07WUFFVixLQUFLLFVBQVU7Z0JBQ1gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLE1BQU07WUFFVixLQUFLLFFBQVE7Z0JBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNwQixNQUFNO1lBRVYsS0FBSyxXQUFXO2dCQUNaLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BDLE1BQU07WUFFVixLQUFLLGdCQUFnQjtnQkFDakIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEMsTUFBTTtZQUVWO2dCQUNJLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RCxNQUFNO1NBQ2I7SUFDTCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsR0FBVztRQUNsQyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsRCxNQUFNLE1BQU0sR0FBRyxHQUFHLEdBQUcsVUFBVSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFMUIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7YUFDbEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTdELElBQUksT0FBTyxLQUFLLFdBQVc7WUFBRSxPQUFPO1FBRXBDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxHQUFXO1FBQ2xDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQUUsT0FBTztRQUVoRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUMsUUFBUSxRQUFRLENBQUMsSUFBSSxFQUFFO1lBQ25CLEtBQUssT0FBTztnQkFDUixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0IsTUFBTTtZQUNWLEtBQUssT0FBTztnQkFDUixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0IsTUFBTTtZQUNWLEtBQUssU0FBUztnQkFDVixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakMsTUFBTTtZQUNWO2dCQUNJLE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvRCxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztvQkFDMUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLO29CQUNoQixDQUFDLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBRWxDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNoQyxNQUFNO1NBQ2I7SUFDTCxDQUFDO0lBRU8sYUFBYSxDQUFDLEdBQVc7UUFDN0IsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsU0FBaUI7UUFDdEMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDcEMsTUFBTSxJQUFJLEdBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0QsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUU7Z0JBQ3hELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUN4QztpQkFBTTtnQkFDSCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNuRCxJQUFJLE9BQU8sRUFBRTtvQkFDVCxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQztvQkFDckIsTUFBTSxDQUFDLEdBQ0gsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRzt3QkFDbkMsTUFBTSxDQUFDLE9BQU87d0JBQ2QsT0FBTyxDQUFDO29CQUVaLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO29CQUNoRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUM3QjtxQkFBTTtvQkFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixTQUFTLGFBQWEsQ0FBQyxDQUFDO2lCQUMzRDthQUNKO1NBQ0o7SUFDTCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsR0FBVztRQUNuQyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0RCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUM5QztRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQzlDO0lBQ0wsQ0FBQztJQUVPLFlBQVk7UUFDaEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhELE1BQU0sNEJBQTRCLEdBQUcsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQzdELHdCQUF3QixDQUMzQixDQUFDO1FBRUYsSUFBSSxDQUFDLDRCQUE0QixFQUFFO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNuRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUMvRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7YUFDekQ7U0FDSjtJQUNMLENBQUM7SUFFTyxTQUFTLENBQUMsR0FBVztRQUN6QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTyxTQUFTLENBQUMsS0FBYTtRQUMzQixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxVQUFVLEtBQUssRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFTyxXQUFXLENBQUMsT0FBZTtRQUMvQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTyxZQUFZLENBQUMsT0FBZTtRQUNoQyxPQUFPLG1EQUFtRCxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzVGLENBQUM7SUFFTyxjQUFjLENBQUMsQ0FBVTtRQUM3QixPQUFPLENBQUMsS0FBSyxVQUFVLElBQUksQ0FBQyxLQUFLLGVBQWUsQ0FBQztJQUNyRCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsR0FBVztRQUlsQyxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVuQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzlCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQy9DLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztTQUMxQztRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7U0FDM0M7UUFDRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDeEIsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNqRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7U0FDeEM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxJQUFJLFNBQVMsRUFBRTtZQUNYLE1BQU0sSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUMzQztRQUVELE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRU8sc0JBQXNCLENBQUMsR0FBVztRQUN0QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN4RSxJQUFJLE9BQU8sR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztRQUUvQixPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRU8sb0JBQW9CLENBQUMsU0FBaUI7UUFDMUMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksVUFBZSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDckMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUU7b0JBQ3ZCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBRW5ELElBQUksT0FBTyxFQUFFO3dCQUNULGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFDMUIsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO3dCQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO3FCQUNuQztnQkFDTCxDQUFDLENBQUM7Z0JBRUYsVUFBVSxHQUFHLFdBQVcsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBRXBELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQzlCLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDMUIsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsU0FBUyxhQUFhLENBQUMsQ0FBQztnQkFDNUQsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUVULGFBQWEsRUFBRSxDQUFDO1lBQ3BCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGVBQWUsQ0FBQyxTQUFpQjtRQUNyQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25ELElBQUksT0FBTyxFQUFFO1lBQ1QsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQztnQkFDckIsTUFBTSxDQUFDLEdBQ0gsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRztvQkFDbkMsTUFBTSxDQUFDLE9BQU87b0JBQ2QsT0FBTyxDQUFDO2dCQUVaLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMxQixRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbEUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1g7YUFBTTtZQUNILE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLFNBQVMsYUFBYSxDQUFDLENBQUM7U0FDM0Q7SUFDTCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsUUFHM0I7UUFDRyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUNwQyxRQUFRLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDbkIsS0FBSyxPQUFPO2dCQUNSLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ2pELEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzdCLE1BQU07WUFDVixLQUFLLE9BQU87Z0JBQ1IsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsVUFBVSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDcEQsRUFBRSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDN0IsTUFBTTtZQUNWLEtBQUssU0FBUztnQkFDVixFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUMzRCxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDcEMsTUFBTTtZQUNWO2dCQUNJLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO29CQUNwRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMzRCxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztpQkFDckM7cUJBQU07b0JBQ0gsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUMzQztnQkFDRCxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDcEMsTUFBTTtTQUNiO0lBQ0wsQ0FBQzsrR0FsVlEsd0JBQXdCO21HQUF4Qix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBSnBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjtvR0FFWSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBZ0NQLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT3V0cHV0LFxuICAgIFBMQVRGT1JNX0lELFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTSVRFX0NPTkZJR19TRVJWSUNFX1RPS0VOIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWFwcGVyL21hcHBlci5zZXJ2aWNlLnRva2VuJztcbmltcG9ydCB7IGNvbXBsZXhfbGlua3MgfSBmcm9tICcuLi8uLi91dGlscy9jb21wbGV4LWxpbmtzLnRva2VuJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbGlua1R5cGVdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIGxpbmtUeXBlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGhyZWY/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgbW9kYWxDbGljaz86IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xuICAgIEBJbnB1dCgpIGNsaWNrUG9wdXA/OiBFdmVudEVtaXR0ZXI8c3RyaW5nPjtcbiAgICBASW5wdXQoKSBkaXNhYmxlUG9pbnRlck5vbmU/OiBib29sZWFuID0gZmFsc2U7XG4gICAgQE91dHB1dCgpIGFuY2hvckNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgICBwcml2YXRlIGhhc0NvbXBsZXhMaW5rcyA9IGluamVjdChjb21wbGV4X2xpbmtzKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNpdGVTdmMgPSBpbmplY3QoU0lURV9DT05GSUdfU0VSVklDRV9UT0tFTik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgUEhPTkVfUkUgPSAvXlRcXHMqWzpcXC1dP1xccyooLispJC9pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgTUFJTFRPX1JFID0gL15tYWlsdG86L2k7XG4gICAgcHJpdmF0ZSByZWFkb25seSBBRERSRVNTX1JFID0gL15jXFwvXFwuPyguKikkL2k7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBlbFJlZjogRWxlbWVudFJlZlxuICAgICkge31cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmxpbmtUeXBlIHx8ICF0aGlzLmhyZWYpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlTm9MaW5rKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNFeHRlcm5hbFR5cGUodGhpcy5saW5rVHlwZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRldGVjdGVkID0gdGhpcy5kZXRlY3RFeHRlcm5hbEtpbmQodGhpcy5ocmVmKTtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlOb3JtYWxpemVkSHJlZihkZXRlY3RlZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdocmVmJywgdGhpcy5ocmVmKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmxpbmtUeXBlID09PSAnZXh0ZXJuYWwnIHx8IHRoaXMubGlua1R5cGUgPT09ICdleHRlcm5hbF9saW5rJykge1xuICAgICAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgncmVsJywgJ25vZm9sbG93Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgYnRuQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5saW5rVHlwZSB8fCAhdGhpcy5ocmVmKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZU5vTGluaygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmxpbmtUeXBlKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ2xpbmtUeXBlIGlzIG1pc3NpbmcuJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5saW5rVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnaW50ZXJuYWwnOlxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlSW50ZXJuYWxMaW5rKHRoaXMuaHJlZik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ2ludGVybmFsX2xpbmsnOlxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlSW50ZXJuYWxMaW5rKHRoaXMuaHJlZik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ3NlbGZfbGluayc6XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVJbnRlcm5hbExpbmsodGhpcy5ocmVmKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnaW50ZXJuYWxfaG90ZWxfbGluayc6XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVJbnRlcm5hbExpbmsodGhpcy5ocmVmKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnZXh0ZXJuYWwnOlxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXh0ZXJuYWxMaW5rKHRoaXMuaHJlZik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ2V4dGVybmFsX2xpbmsnOlxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXh0ZXJuYWxMaW5rKHRoaXMuaHJlZik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ2FuY2hvcic6XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVBbmNob3JMaW5rKHRoaXMuaHJlZik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ2FuY2hvcl9saW5rJzpcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUFuY2hvckxpbmsodGhpcy5ocmVmKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAncGRmX2xpbmsnOlxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlUGRmTGluayh0aGlzLmhyZWYpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdub2xpbmsnOlxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlTm9MaW5rKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ2NvbXBvbmVudCc6XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVDb21wb25lbnRMaW5rKHRoaXMuaHJlZik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ2NvbXBvbmVudF9saW5rJzpcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNvbXBvbmVudExpbmsodGhpcy5ocmVmKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFVuc3VwcG9ydGVkIGxpbmtUeXBlOiAke3RoaXMubGlua1R5cGV9YCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUludGVybmFsTGluayh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBjbGVhbmVkVXJsID0gdXJsLnRyaW0oKS5yZXBsYWNlKC9cXC8rJC8sICcnKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gJy8nICsgY2xlYW5lZFVybDtcbiAgICAgICAgdGhpcy5hbmNob3JDbGlja2VkLmVtaXQoKTtcblxuICAgICAgICBjb25zdCBjdXJyZW50ID0gKHRoaXMucm91dGVyLnVybCB8fCAnJylcbiAgICAgICAgICAgIC5zcGxpdCgnPycpWzBdXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwvKyQvLCAnJyk7XG4gICAgICAgIGNvbnN0IHRhcmdldENsZWFuID0gdGFyZ2V0LnNwbGl0KCc/JylbMF0ucmVwbGFjZSgvXFwvKyQvLCAnJyk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnQgPT09IHRhcmdldENsZWFuKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0YXJnZXQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlRXh0ZXJuYWxMaW5rKHVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGRldGVjdGVkID0gdGhpcy5kZXRlY3RFeHRlcm5hbEtpbmQodXJsKTtcbiAgICAgICAgc3dpdGNoIChkZXRlY3RlZC5raW5kKSB7XG4gICAgICAgICAgICBjYXNlICdwaG9uZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuUGhvbmUoZGV0ZWN0ZWQudmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZW1haWwnOlxuICAgICAgICAgICAgICAgIHRoaXMub3BlbkVtYWlsKGRldGVjdGVkLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2FkZHJlc3MnOlxuICAgICAgICAgICAgICAgIHRoaXMub3BlbkFkZHJlc3MoZGV0ZWN0ZWQudmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjb25zdCBpc0Fic29sdXRlVXJsID0gKHVybDogc3RyaW5nKSA9PiAvXihodHRwcz86KS9pLnRlc3QodXJsKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaW5hbFVybCA9IGlzQWJzb2x1dGVVcmwoZGV0ZWN0ZWQudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgID8gZGV0ZWN0ZWQudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiAnaHR0cHM6Ly8nICsgZGV0ZWN0ZWQudmFsdWU7XG5cbiAgICAgICAgICAgICAgICB3aW5kb3cub3BlbihmaW5hbFVybCwgJ19ibGFuaycpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVQZGZMaW5rKHVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQW5jaG9yTGluayhzZWN0aW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgY29uc3QgbGFuZyA9XG4gICAgICAgICAgICAgICAgdGhpcy5zaXRlU3ZjLnNlbGVjdGVkTGFuZ3VhZ2VJbnN0YW50Py5sb2NhdGUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmhhc0NvbXBsZXhMaW5rcyAmJiB0aGlzLnJvdXRlci51cmwgIT09IGAvJHtsYW5nfWApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9Ib21lQW5jaG9yKHNlY3Rpb25JZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWN0aW9uSWQpO1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHlPZmZzZXQgPSAtMTYwO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxZICtcbiAgICAgICAgICAgICAgICAgICAgICAgIHlPZmZzZXQ7XG5cbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiB5LCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYW5jaG9yQ2xpY2tlZC5lbWl0KCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBTZWN0aW9uIHdpdGggSUQgJHtzZWN0aW9uSWR9IG5vdCBmb3VuZC5gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUNvbXBvbmVudExpbmsodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2xlYW5lZENvbXBvbmVudE5hbWUgPSB1cmwudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICh0aGlzLm1vZGFsQ2xpY2spIHtcbiAgICAgICAgICAgIHRoaXMubW9kYWxDbGljay5lbWl0KGNsZWFuZWRDb21wb25lbnROYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jbGlja1BvcHVwKSB7XG4gICAgICAgICAgICB0aGlzLmNsaWNrUG9wdXAuZW1pdChjbGVhbmVkQ29tcG9uZW50TmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZU5vTGluaygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyZW50TGkgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnbGknKTtcblxuICAgICAgICBjb25zdCBpc0luc2lkZU1lbnVJdGVtV2l0aENoaWxkcmVuID0gcGFyZW50TGk/LmNsYXNzTGlzdC5jb250YWlucyhcbiAgICAgICAgICAgICdtZW51LWl0ZW0taGFzLWNoaWxkcmVuJ1xuICAgICAgICApO1xuXG4gICAgICAgIGlmICghaXNJbnNpZGVNZW51SXRlbVdpdGhDaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVQb2ludGVyTm9uZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2hyZWYnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdbaHJlZl0nKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWRpc2FibGVkJywgJ3RydWUnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5jdXJzb3IgPSAnZGVmYXVsdCc7XG4gICAgICAgICAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9wZW5QaG9uZShudW06IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGB0ZWw6JHtudW19YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9wZW5FbWFpbChlbWFpbDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYG1haWx0bzoke2VtYWlsfWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbWFwc1VybCA9IHRoaXMuYnVpbGRNYXBzVXJsKGFkZHJlc3MpO1xuICAgICAgICB3aW5kb3cub3BlbihtYXBzVXJsLCAnX2JsYW5rJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidWlsZE1hcHNVcmwoYWRkcmVzczogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGBodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvc2VhcmNoLz9hcGk9MSZxdWVyeT0ke2VuY29kZVVSSUNvbXBvbmVudChhZGRyZXNzKX1gO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNFeHRlcm5hbFR5cGUodD86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdCA9PT0gJ2V4dGVybmFsJyB8fCB0ID09PSAnZXh0ZXJuYWxfbGluayc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXRlY3RFeHRlcm5hbEtpbmQocmF3OiBzdHJpbmcpOiB7XG4gICAgICAgIGtpbmQ6ICdwaG9uZScgfCAnZW1haWwnIHwgJ2FkZHJlc3MnIHwgJ3VybCc7XG4gICAgICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgfSB7XG4gICAgICAgIGNvbnN0IHRyaW1tZWQgPSAocmF3IHx8ICcnKS50cmltKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuTUFJTFRPX1JFLnRlc3QodHJpbW1lZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGVtYWlsID0gdHJpbW1lZC5yZXBsYWNlKC9ebWFpbHRvOi9pLCAnJyk7XG4gICAgICAgICAgICByZXR1cm4geyBraW5kOiAnZW1haWwnLCB2YWx1ZTogZW1haWwgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLlBIT05FX1JFLnRlc3QodHJpbW1lZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gdGhpcy5QSE9ORV9SRS5leGVjKHRyaW1tZWQpO1xuICAgICAgICAgICAgY29uc3QgbnVtUmF3ID0gKG1hdGNoPy5bMV0gPz8gJycpLnRyaW0oKTtcbiAgICAgICAgICAgIGNvbnN0IGRpZ2l0cyA9IG51bVJhdy5yZXBsYWNlKC9bXlxcZCtdL2csICcnKTtcbiAgICAgICAgICAgIHJldHVybiB7IGtpbmQ6ICdwaG9uZScsIHZhbHVlOiBkaWdpdHMgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoL150ZWw6L2kudGVzdCh0cmltbWVkKSkge1xuICAgICAgICAgICAgY29uc3QgbnVtID0gdHJpbW1lZC5yZXBsYWNlKC9edGVsOi9pLCAnJykucmVwbGFjZSgvW15cXGQrXS9nLCAnJyk7XG4gICAgICAgICAgICByZXR1cm4geyBraW5kOiAncGhvbmUnLCB2YWx1ZTogbnVtIH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhZGRyTWF0Y2ggPSB0aGlzLkFERFJFU1NfUkUuZXhlYyh0cmltbWVkKTtcbiAgICAgICAgaWYgKGFkZHJNYXRjaCkge1xuICAgICAgICAgICAgY29uc3QgYWRkciA9IChhZGRyTWF0Y2hbMV0gPz8gJycpLnRyaW0oKTtcbiAgICAgICAgICAgIHJldHVybiB7IGtpbmQ6ICdhZGRyZXNzJywgdmFsdWU6IGFkZHIgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IGtpbmQ6ICd1cmwnLCB2YWx1ZTogdHJpbW1lZCB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tFeHRlcm5hbExhbmd1YWdlcyh2YWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGxhbmcgPSB0aGlzLnNpdGVTdmMuc2VsZWN0ZWRMYW5ndWFnZUluc3RhbnQ/LmxvY2F0ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBsZXQgbGFuZ3VybCA9IHZhbCArICcvJyArIGxhbmc7XG5cbiAgICAgICAgcmV0dXJuIGxhbmd1cmw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWRpcmVjdFRvSG9tZUFuY2hvcihzZWN0aW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbnRlcnZhbE1zID0gNTA7XG4gICAgICAgIGxldCBpbnRlcnZhbElkOiBhbnk7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF0dGVtcHRTY3JvbGwgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWN0aW9uSWQpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFRvU2VjdGlvbihzZWN0aW9uSWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGludGVydmFsSWQgPSBzZXRJbnRlcnZhbChhdHRlbXB0U2Nyb2xsLCBpbnRlcnZhbE1zKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsSWQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFNlY3Rpb24gd2l0aCBJRCAke3NlY3Rpb25JZH0gbm90IGZvdW5kLmApO1xuICAgICAgICAgICAgICAgIH0sIDMwMDApO1xuXG4gICAgICAgICAgICAgICAgYXR0ZW1wdFNjcm9sbCgpO1xuICAgICAgICAgICAgfSwgMzAwKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzY3JvbGxUb1NlY3Rpb24oc2VjdGlvbklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNlY3Rpb25JZCk7XG4gICAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB5T2Zmc2V0ID0gLTE2MDtcbiAgICAgICAgICAgICAgICBjb25zdCB5ID1cbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgK1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsWSArXG4gICAgICAgICAgICAgICAgICAgIHlPZmZzZXQ7XG5cbiAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IHksIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmFuY2hvckNsaWNrZWQuZW1pdCgpO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKT8uY2xhc3NMaXN0LnJlbW92ZSgnbm9fc2Nyb2xsJyk7XG4gICAgICAgICAgICB9LCA1MDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBTZWN0aW9uIHdpdGggSUQgJHtzZWN0aW9uSWR9IG5vdCBmb3VuZC5gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXBwbHlOb3JtYWxpemVkSHJlZihkZXRlY3RlZDoge1xuICAgICAgICBraW5kOiAncGhvbmUnIHwgJ2VtYWlsJyB8ICdhZGRyZXNzJyB8ICd1cmwnO1xuICAgICAgICB2YWx1ZTogc3RyaW5nO1xuICAgIH0pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHN3aXRjaCAoZGV0ZWN0ZWQua2luZCkge1xuICAgICAgICAgICAgY2FzZSAncGhvbmUnOlxuICAgICAgICAgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnaHJlZicsIGB0ZWw6JHtkZXRlY3RlZC52YWx1ZX1gKTtcbiAgICAgICAgICAgICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoJ3RhcmdldCcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZW1haWwnOlxuICAgICAgICAgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnaHJlZicsIGBtYWlsdG86JHtkZXRlY3RlZC52YWx1ZX1gKTtcbiAgICAgICAgICAgICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoJ3RhcmdldCcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYWRkcmVzcyc6XG4gICAgICAgICAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdocmVmJywgdGhpcy5idWlsZE1hcHNVcmwoZGV0ZWN0ZWQudmFsdWUpKTtcbiAgICAgICAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsICdfYmxhbmsnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaWYgKGVsLmNsb3Nlc3QoJy5jc19uYXZfbGlzdCcpICYmIHRoaXMuaGFzQ29tcGxleExpbmtzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBuZXd2YWx1ZSA9IHRoaXMuY2hlY2tFeHRlcm5hbExhbmd1YWdlcyhkZXRlY3RlZC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnaHJlZicsIG5ld3ZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBkZXRlY3RlZC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgndGFyZ2V0JywgJ19ibGFuaycpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -94,21 +94,24 @@ export class SwiperInitDirective {
94
94
  effect: fade ? 'fade' : 'slide',
95
95
  autoplay: autoplay ? { delay: 5000 } : false,
96
96
  allowTouchMove: draggable,
97
- observer: true,
98
- observeParents: true,
99
97
  autoHeight: adaptiveHeight,
100
98
  freeMode: freeMode ? { enabled: true, momentum: true } : false,
101
99
  slidesPerView: variableWidth ? 'auto' : slides_mobile_xsmall,
102
100
  spaceBetween: variableWidth ? 16 : 0,
101
+ observer: true,
102
+ observeParents: true,
103
103
  navigation: showButtons && navContainer
104
104
  ? {
105
- nextEl: navContainer.querySelector('.swiper-button-next'),
106
- prevEl: navContainer.querySelector('.swiper-button-prev'),
105
+ nextEl: '.swiper-button-next',
106
+ prevEl: '.swiper-button-prev',
107
107
  }
108
- : undefined,
108
+ : false,
109
109
  pagination: showDots && dotsContainer
110
- ? { el: dotsContainer, clickable: true }
111
- : undefined,
110
+ ? {
111
+ el: '.js-slider-dots',
112
+ clickable: true,
113
+ }
114
+ : false,
112
115
  breakpoints: {
113
116
  540: {
114
117
  slidesPerView: variableWidth ? 'auto' : slides_mobile_small,
@@ -212,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
212
215
  type: Inject,
213
216
  args: [PLATFORM_ID]
214
217
  }] }] });
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpcGVyLWluaXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2RpcmVjdGl2ZXMvc2xpZGVycy9zd2lwZXItaW5pdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUVILFNBQVMsRUFFVCxNQUFNLEVBRU4sV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDOztBQVN2QixNQUFNLE9BQU8sbUJBQW1CO0lBSTVCLFlBQ1ksSUFBNkIsRUFDUixVQUFrQjtRQUR2QyxTQUFJLEdBQUosSUFBSSxDQUF5QjtRQUNSLGVBQVUsR0FBVixVQUFVLENBQVE7UUFKM0Msb0JBQWUsR0FBc0IsRUFBRSxDQUFDO0lBSzdDLENBQUM7SUFFSixLQUFLLENBQUMsZUFBZTtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUMxRCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN2QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBdUIsQ0FBQztRQUUvQyxPQUFPLENBQUMsR0FBRyxDQUFDLHVDQUF1QyxFQUFFO1lBQ2pELE1BQU07WUFDTixPQUFPO1NBQ1YsQ0FBQyxDQUFDO1FBRUgsMkJBQTJCO1FBQzNCLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBVyxFQUFzQixFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlELE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBVyxFQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssTUFBTSxDQUFDO1FB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QztZQUUvRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FDM0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FDakQsQ0FBQztZQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUMzQixNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUNqRCxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXRSUSxtQkFBbUIsNENBTWhCLFdBQVc7bUdBTmQsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQ0FBbUM7b0JBQzdDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBT1EsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgUExBVEZPUk1fSUQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBTd2lwZXIgZ2xvYmFsICh2aWVuZSBkZWwgYW5ndWxhci5qc29uIC0+IHNjcmlwdHMpXG5kZWNsYXJlIGNvbnN0IFN3aXBlcjogYW55O1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJy5qcy1hY3RpdmUtc2xpZGVyLFthcHBTd2lwZXJJbml0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU3dpcGVySW5pdERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBzd2lwZXJJbnN0YW5jZT86IGFueTtcbiAgICBwcml2YXRlIGFycm93Q2xlYW51cEZuczogQXJyYXk8KCkgPT4gdm9pZD4gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IG9iamVjdFxuICAgICkge31cblxuICAgIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnW1N3aXBlckluaXREaXJlY3RpdmVdIE5vIGVzIGJyb3dzZXIsIHNhbGdvJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmhvc3QubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgZGF0YXNldCA9IHBhcmVudC5kYXRhc2V0IGFzIERPTVN0cmluZ01hcDtcblxuICAgICAgICBjb25zb2xlLmxvZygnW1N3aXBlckluaXREaXJlY3RpdmVdIG5nQWZ0ZXJWaWV3SW5pdCcsIHtcbiAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgIGRhdGFzZXQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEhlbHBlcnMgcGFyYSBsZWVyIGRhdGEtKlxuICAgICAgICBjb25zdCBnZXQgPSAoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4gZGF0YXNldFtrZXldO1xuICAgICAgICBjb25zdCBnZXRCb29sID0gKGtleTogc3RyaW5nKTogYm9vbGVhbiA9PiBnZXQoa2V5KSA9PT0gJ3RydWUnO1xuICAgICAgICBjb25zdCBnZXROdW0gPSAoa2V5OiBzdHJpbmcsIGZhbGxiYWNrID0gMCk6IG51bWJlciA9PiB7XG4gICAgICAgICAgICBjb25zdCB2ID0gTnVtYmVyKGdldChrZXkpKTtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUodikgPyB2IDogZmFsbGJhY2s7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc2xpZGVyTmFtZSA9IGdldCgnc2xpZGVyX25hbWUnKTtcbiAgICAgICAgaWYgKCFzbGlkZXJOYW1lKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgJ1tTd2lwZXJJbml0RGlyZWN0aXZlXSBTaW4gZGF0YS1zbGlkZXJfbmFtZSBlbiBlbCBwYXJlbnQnLFxuICAgICAgICAgICAgICAgIHBhcmVudFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNsaWRlclNlbGVjdG9yID0gcGFyZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KFxuICAgICAgICAgICAgJy4nICsgc2xpZGVyTmFtZVxuICAgICAgICApO1xuICAgICAgICBpZiAoIXNsaWRlclNlbGVjdG9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgJ1tTd2lwZXJJbml0RGlyZWN0aXZlXSBObyBlbmN1ZW50cm8gZWwgY29udGVuZWRvciAuJyxcbiAgICAgICAgICAgICAgICBzbGlkZXJOYW1lLFxuICAgICAgICAgICAgICAgICcgZGVudHJvIGRlICcsXG4gICAgICAgICAgICAgICAgcGFyZW50XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3dpcGVyIHlhIGluaWNpYWxpemFkbyDihpIgc2FsaXJcbiAgICAgICAgaWYgKHNsaWRlclNlbGVjdG9yLmNsYXNzTGlzdC5jb250YWlucygnc3dpcGVyLWluaXRpYWxpemVkJykpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgICdbU3dpcGVySW5pdERpcmVjdGl2ZV0gU3dpcGVyIHlhIGluaWNpYWxpemFkbyBlbiBlc3RlIGNvbnRlbmVkb3IsIHNhbGdvJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vID09PT09PSBMRUNUVVJBIERFIERBVEEtQVRUUklCVVRFUyA9PT09PT1cbiAgICAgICAgY29uc3Qgc2hvd0RvdHMgPSBnZXRCb29sKCdzbGlkZXJfc2hvd2RvdHMnKTtcbiAgICAgICAgY29uc3Qgc2hvd0J1dHRvbnMgPSBnZXRCb29sKCdzbGlkZXJfc2hvd2J0bnMnKTtcbiAgICAgICAgY29uc3QgZmFkZSA9IGdldEJvb2woJ3NsaWRlcl9mYWRlJyk7XG4gICAgICAgIGNvbnN0IGNlbnRlciA9IGdldEJvb2woJ3NsaWRlcl9jZW50ZXJtb2RlJyk7XG4gICAgICAgIGNvbnN0IGF1dG9wbGF5ID0gZ2V0Qm9vbCgnc2xpZGVyX2F1dG9wbGF5Jyk7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsID0gZ2V0Qm9vbCgnc2xpZGVyX3ZlcnRpY2FsJyk7XG4gICAgICAgIGNvbnN0IHJ0bCA9IGdldEJvb2woJ3NsaWRlcl9ydGwnKTtcbiAgICAgICAgY29uc3QgZHJhZ2dhYmxlID0gZ2V0KCdzbGlkZXJfZHJhZ2dhYmxlJykgIT09ICdmYWxzZSc7XG4gICAgICAgIGNvbnN0IGFkYXB0aXZlSGVpZ2h0ID0gZ2V0Qm9vbCgnc2xpZGVyX2FkYXB0aXZlX2hlaWdodCcpO1xuXG4gICAgICAgIGNvbnN0IHZhcmlhYmxlV2lkdGggPSBnZXRCb29sKCdzbGlkZXJfdmFyaWFibGVfd2lkdGgnKTtcbiAgICAgICAgY29uc3QgZnJlZU1vZGUgPSBnZXRCb29sKCdzbGlkZXJfZnJlZW1vZGUnKTtcblxuICAgICAgICBjb25zdCBzcGVlZCA9IGdldE51bSgnc2xpZGVyX3NwZWVkJywgNzUwKTtcbiAgICAgICAgY29uc3QgaW5maW5pdGUgPSBnZXRCb29sKCdzbGlkZXNfaW5maW5pdGUnKTtcblxuICAgICAgICAvLyBjb250ZW5lZG9yZXNcbiAgICAgICAgY29uc3QgbmF2Q29udGFpbmVyID1cbiAgICAgICAgICAgIHBhcmVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLmpzLXNsaWRlci1hcnJvd3MnKTtcbiAgICAgICAgY29uc3QgZG90c0NvbnRhaW5lciA9XG4gICAgICAgICAgICBwYXJlbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5qcy1zbGlkZXItZG90cycpO1xuXG4gICAgICAgIC8vID09PT09PSBTVkcgRkxFQ0hBUyA9PT09PT1cbiAgICAgICAgY29uc3QgYXJyb3dTVkcgPSBgXG48c3ZnIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCI3MFwiIHZpZXdCb3g9XCIwIDAgMzUgNzBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbjxwYXRoIGQ9XCJNMzUgNzBDMzAuNDAzNyA3MCAyNS44NTI1IDY5LjA5NDcgMjEuNjA2MSA2Ny4zMzU4QzE3LjM1OTcgNjUuNTc2OSAxMy41MDEzIDYyLjk5ODggMTAuMjUxMyA1OS43NDg3QzcuMDAxMjEgNTYuNDk4NyA0LjQyMzEzIDUyLjY0MDMgMi42NjQyMSA0OC4zOTM5QzAuOTA1MyA0NC4xNDc1IC00LjAxODJlLTA3IDM5LjU5NjMgMCAzNUM0LjAxODJlLTA3IDMwLjQwMzcgMC45MDUzMDMgMjUuODUyNSAyLjY2NDIyIDIxLjYwNjFDNC40MjMxMyAxNy4zNTk3IDcuMDAxMjEgMTMuNTAxMyAxMC4yNTEzIDEwLjI1MTNDMTMuNTAxMyA3LjAwMTIxIDE3LjM1OTcgNC40MjMxMyAyMS42MDYxIDIuNjY0MjFDMjUuODUyNSAwLjkwNTMgMzAuNDAzNyAtNi4wMjczZS0wNyAzNSAwVjM1VjcwWlwiIGZpbGw9XCIjRDBBNjdCXCIvPlxuPHBhdGggZD1cIk0xNi43MzY4IDI4LjEyNkMxNi41NjgzIDI3Ljk1NzggMTYuMjk0OSAyNy45NTc3IDE2LjEyNjUgMjguMTI2QzE1Ljk1OCAyOC4yOTQ0IDE1Ljk1ODIgMjguNTY3OCAxNi4xMjY1IDI4LjczNjNMMjIuNjgyMSAzNS4yOTJMMTYuMTI2NSA0MS44NDc3QzE1Ljk1NzkgNDIuMDE2MiAxNS45NTc5IDQyLjI4OTUgMTYuMTI2NSA0Mi40NThDMTYuMjk1IDQyLjYyNjUgMTYuNTY4MyA0Mi42MjY1IDE2LjczNjggNDIuNDU4TDIzLjU5NzIgMzUuNTk3N0MyMy42ODE2IDM1LjUxMzMgMjMuNzI0MiAzNS40MDI2IDIzLjcyNDEgMzUuMjkyQzIzLjcyNDEgMzUuMTgxNiAyMy42ODE0IDM1LjA3MTUgMjMuNTk3MiAzNC45ODczTDE2LjczNjggMjguMTI2WlwiIGZpbGw9XCJ3aGl0ZVwiLz5cbjwvc3ZnPmAudHJpbSgpO1xuXG4gICAgICAgIGlmIChzaG93QnV0dG9ucyAmJiBuYXZDb250YWluZXIpIHtcbiAgICAgICAgICAgIGlmICghbmF2Q29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5zd2lwZXItYnV0dG9uLXByZXYnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgICAgICBwcmV2LmNsYXNzTmFtZSA9ICdzd2lwZXItYnV0dG9uLXByZXYnO1xuICAgICAgICAgICAgICAgIHByZXYuaW5uZXJIVE1MID0gYXJyb3dTVkc7XG4gICAgICAgICAgICAgICAgcHJldi5zdHlsZS50cmFuc2Zvcm0gPSAncm90YXRlKDE4MGRlZyknOyAvLyBQcmV2IGdpcmFkYVxuICAgICAgICAgICAgICAgIG5hdkNvbnRhaW5lci5hcHBlbmRDaGlsZChwcmV2KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFuYXZDb250YWluZXIucXVlcnlTZWxlY3RvcignLnN3aXBlci1idXR0b24tbmV4dCcpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgICAgIG5leHQuY2xhc3NOYW1lID0gJ3N3aXBlci1idXR0b24tbmV4dCc7XG4gICAgICAgICAgICAgICAgbmV4dC5pbm5lckhUTUwgPSBhcnJvd1NWRztcbiAgICAgICAgICAgICAgICBuYXZDb250YWluZXIuYXBwZW5kQ2hpbGQobmV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyA9PT09PT0gQlJFQUtQT0lOVFMgPT09PT09XG4gICAgICAgIGNvbnN0IHNsaWRlc19wYyA9IGdldE51bSgnc2xpZGVzX3BjJywgMSk7XG4gICAgICAgIGNvbnN0IHNsaWRlc19sYXB0b3AgPSBnZXROdW0oJ3NsaWRlc19sYXB0b3AnLCBzbGlkZXNfcGMpO1xuICAgICAgICBjb25zdCBzbGlkZXNfdGFibGV0ID0gZ2V0TnVtKCdzbGlkZXNfdGFibGV0Jywgc2xpZGVzX2xhcHRvcCk7XG4gICAgICAgIGNvbnN0IHNsaWRlc19tb2JpbGUgPSBnZXROdW0oJ3NsaWRlc19tb2JpbGUnLCBzbGlkZXNfdGFibGV0KTtcbiAgICAgICAgY29uc3Qgc2xpZGVzX21vYmlsZV9zbWFsbCA9IGdldE51bShcbiAgICAgICAgICAgICdzbGlkZXNfbW9iaWxlX3NtYWxsJyxcbiAgICAgICAgICAgIHNsaWRlc19tb2JpbGVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc2xpZGVzX21vYmlsZV94c21hbGwgPSBnZXROdW0oXG4gICAgICAgICAgICAnc2xpZGVzX21vYmlsZV94c21hbGwnLFxuICAgICAgICAgICAgc2xpZGVzX21vYmlsZV9zbWFsbFxuICAgICAgICApO1xuXG4gICAgICAgIC8vID09PT09PSBPUENJT05FUyBTV0lQRVIgPT09PT09XG4gICAgICAgIGNvbnN0IHN3aXBlck9wdGlvbnM6IGFueSA9IHtcbiAgICAgICAgICAgIGRpcmVjdGlvbjogdmVydGljYWwgPyAndmVydGljYWwnIDogJ2hvcml6b250YWwnLFxuICAgICAgICAgICAgc3BlZWQsXG4gICAgICAgICAgICBsb29wOiBpbmZpbml0ZSxcbiAgICAgICAgICAgIGNlbnRlcmVkU2xpZGVzOiBjZW50ZXIsXG4gICAgICAgICAgICBlZmZlY3Q6IGZhZGUgPyAnZmFkZScgOiAnc2xpZGUnLFxuICAgICAgICAgICAgYXV0b3BsYXk6IGF1dG9wbGF5ID8geyBkZWxheTogNTAwMCB9IDogZmFsc2UsXG4gICAgICAgICAgICBhbGxvd1RvdWNoTW92ZTogZHJhZ2dhYmxlLFxuICAgICAgICAgICAgb2JzZXJ2ZXI6IHRydWUsXG4gICAgICAgICAgICBvYnNlcnZlUGFyZW50czogdHJ1ZSxcbiAgICAgICAgICAgIGF1dG9IZWlnaHQ6IGFkYXB0aXZlSGVpZ2h0LFxuXG4gICAgICAgICAgICBmcmVlTW9kZTogZnJlZU1vZGUgPyB7IGVuYWJsZWQ6IHRydWUsIG1vbWVudHVtOiB0cnVlIH0gOiBmYWxzZSxcblxuICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogdmFyaWFibGVXaWR0aCA/ICdhdXRvJyA6IHNsaWRlc19tb2JpbGVfeHNtYWxsLFxuICAgICAgICAgICAgc3BhY2VCZXR3ZWVuOiB2YXJpYWJsZVdpZHRoID8gMTYgOiAwLFxuXG4gICAgICAgICAgICBuYXZpZ2F0aW9uOlxuICAgICAgICAgICAgICAgIHNob3dCdXR0b25zICYmIG5hdkNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dEVsOiBuYXZDb250YWluZXIucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuc3dpcGVyLWJ1dHRvbi1uZXh0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2RWw6IG5hdkNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5zd2lwZXItYnV0dG9uLXByZXYnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcblxuICAgICAgICAgICAgcGFnaW5hdGlvbjpcbiAgICAgICAgICAgICAgICBzaG93RG90cyAmJiBkb3RzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgID8geyBlbDogZG90c0NvbnRhaW5lciwgY2xpY2thYmxlOiB0cnVlIH1cbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG5cbiAgICAgICAgICAgIGJyZWFrcG9pbnRzOiB7XG4gICAgICAgICAgICAgICAgNTQwOiB7XG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IHZhcmlhYmxlV2lkdGggPyAnYXV0bycgOiBzbGlkZXNfbW9iaWxlX3NtYWxsLFxuICAgICAgICAgICAgICAgICAgICBmcmVlTW9kZTogZnJlZU1vZGUgPyB7IGVuYWJsZWQ6IHRydWUgfSA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgNzY4OiB7XG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IHZhcmlhYmxlV2lkdGggPyAnYXV0bycgOiBzbGlkZXNfbW9iaWxlLFxuICAgICAgICAgICAgICAgICAgICBmcmVlTW9kZTogZnJlZU1vZGUgPyB7IGVuYWJsZWQ6IHRydWUgfSA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgMTAyNDoge1xuICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiB2YXJpYWJsZVdpZHRoID8gJ2F1dG8nIDogc2xpZGVzX3RhYmxldCxcbiAgICAgICAgICAgICAgICAgICAgZnJlZU1vZGU6IGZyZWVNb2RlID8geyBlbmFibGVkOiB0cnVlIH0gOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIDEyODA6IHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogdmFyaWFibGVXaWR0aCA/ICdhdXRvJyA6IHNsaWRlc19sYXB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGZyZWVNb2RlOiBmcmVlTW9kZSA/IHsgZW5hYmxlZDogdHJ1ZSB9IDogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAxMzY2OiB7XG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IHZhcmlhYmxlV2lkdGggPyAnYXV0bycgOiBzbGlkZXNfcGMsXG4gICAgICAgICAgICAgICAgICAgIGZyZWVNb2RlOiBmcmVlTW9kZSA/IHsgZW5hYmxlZDogdHJ1ZSB9IDogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gPT09PT09IElOSVQgU1dJUEVSID09PT09PVxuICAgICAgICBpZiAoIVN3aXBlcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAnW1N3aXBlckluaXREaXJlY3RpdmVdIFN3aXBlciBnbG9iYWwgbm8gZW5jb250cmFkbyAod2luZG93LlN3aXBlciBlcyBmYWxzeSknXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5sb2coJ1tTd2lwZXJJbml0RGlyZWN0aXZlXSBJTklUIFNXSVBFUicsIHtcbiAgICAgICAgICAgIHNsaWRlck5hbWUsXG4gICAgICAgICAgICBzbGlkZXJTZWxlY3RvcixcbiAgICAgICAgICAgIG9wdGlvbnM6IHN3aXBlck9wdGlvbnMsXG4gICAgICAgICAgICBzd2lwZXJUeXBlOiB0eXBlb2YgU3dpcGVyLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnN3aXBlckluc3RhbmNlID0gbmV3IFN3aXBlcihzbGlkZXJTZWxlY3Rvciwgc3dpcGVyT3B0aW9ucyk7XG5cbiAgICAgICAgLy8gUG9zaWNpw7NuIGZsZWNoYXMgdGlwbyAtLXNsaWRlck5hdl9fcG9zaXRpb25cbiAgICAgICAgdGhpcy5pbml0QXJyb3dQb3NpdGlvbmluZyhwYXJlbnQpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcblxuICAgICAgICBpZiAodGhpcy5zd2lwZXJJbnN0YW5jZT8uZGVzdHJveSkge1xuICAgICAgICAgICAgdGhpcy5zd2lwZXJJbnN0YW5jZS5kZXN0cm95KHRydWUsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hcnJvd0NsZWFudXBGbnMuZm9yRWFjaCgoZm4pID0+IGZuKCkpO1xuICAgICAgICB0aGlzLmFycm93Q2xlYW51cEZucyA9IFtdO1xuICAgIH1cblxuICAgIC8vID09PT09PT09IFBPU0lDScOTTiBERSBGTEVDSEFTIChlcXVpdmFsZW50ZSBqcy1zbGlkZXJfZml4LWFycm93cykgPT09PT09PT1cbiAgICBwcml2YXRlIGluaXRBcnJvd1Bvc2l0aW9uaW5nKHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2xpZGVycyA9IHBhcmVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihcbiAgICAgICAgICAgICcuanMtc2xpZGVyX2ZpeC1hcnJvd3MnXG4gICAgICAgICk7XG4gICAgICAgIGlmICghc2xpZGVycy5sZW5ndGgpIHJldHVybjtcblxuICAgICAgICBzbGlkZXJzLmZvckVhY2goKHNsaWRlcikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VjdGlvbiA9XG4gICAgICAgICAgICAgICAgc2xpZGVyLmNsb3Nlc3Q8SFRNTEVsZW1lbnQ+KCcuanMtYWN0aXZlLXNsaWRlcicpIHx8IHBhcmVudDtcbiAgICAgICAgICAgIGlmICghc2VjdGlvbikgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBjYWxjUG9zaXRpb24gPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGhlaWdodFNlbGVjdG9yOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgbW9iaWxlU2VsID0gc2xpZGVyLnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KFxuICAgICAgICAgICAgICAgICAgICAnLmpzLXNsaWRlcl9maXgtYXJyb3dzLXpvbmUubW9iaWxlJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVza3RvcFNlbCA9IHNsaWRlci5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihcbiAgICAgICAgICAgICAgICAgICAgJy5qcy1zbGlkZXJfZml4LWFycm93cy16b25lLmRlc2t0b3AnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBnZW5lcmljU2VsID0gc2xpZGVyLnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KFxuICAgICAgICAgICAgICAgICAgICAnLmpzLXNsaWRlcl9maXgtYXJyb3dzLXpvbmUnXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGlmIChtb2JpbGVTZWwgJiYgd2luZG93LmlubmVyV2lkdGggPD0gMTI3OSkge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHRTZWxlY3RvciA9IG1vYmlsZVNlbDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRlc2t0b3BTZWwgJiYgd2luZG93LmlubmVyV2lkdGggPj0gMTI4MCkge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHRTZWxlY3RvciA9IGRlc2t0b3BTZWw7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0U2VsZWN0b3IgPSBnZW5lcmljU2VsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghaGVpZ2h0U2VsZWN0b3IpIHJldHVybjtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHJlbGF0aXZlID1cbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0U2VsZWN0b3IuY2xvc2VzdDxIVE1MRWxlbWVudD4oJy5yZWxhdGl2ZScpO1xuICAgICAgICAgICAgICAgIGlmICghcmVsYXRpdmUpIHJldHVybjtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBoZWlnaHRTZWxlY3Rvci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRSZWN0ID0gcmVsYXRpdmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gcmVjdC50b3AgLSBwYXJlbnRSZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMjtcblxuICAgICAgICAgICAgICAgIHNlY3Rpb24uc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAgICAgICAgICctLXNsaWRlck5hdl9fcG9zaXRpb24nLFxuICAgICAgICAgICAgICAgICAgICBgJHtoZWlnaHR9cHhgXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNhbGNQb3NpdGlvbigpO1xuICAgICAgICAgICAgc2V0VGltZW91dChjYWxjUG9zaXRpb24sIDUwMCk7XG5cbiAgICAgICAgICAgIGNvbnN0IG9uU2Nyb2xsID0gKCkgPT4gY2FsY1Bvc2l0aW9uKCk7XG4gICAgICAgICAgICBjb25zdCBvblJlc2l6ZSA9ICgpID0+IGNhbGNQb3NpdGlvbigpO1xuXG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25TY3JvbGwsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvblJlc2l6ZSwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmFycm93Q2xlYW51cEZucy5wdXNoKCgpID0+XG4gICAgICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuYXJyb3dDbGVhbnVwRm5zLnB1c2goKCkgPT5cbiAgICAgICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25SZXNpemUpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpcGVyLWluaXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2RpcmVjdGl2ZXMvc2xpZGVycy9zd2lwZXItaW5pdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUVILFNBQVMsRUFFVCxNQUFNLEVBRU4sV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDOztBQVN2QixNQUFNLE9BQU8sbUJBQW1CO0lBSTVCLFlBQ1ksSUFBNkIsRUFDUixVQUFrQjtRQUR2QyxTQUFJLEdBQUosSUFBSSxDQUF5QjtRQUNSLGVBQVUsR0FBVixVQUFVLENBQVE7UUFKM0Msb0JBQWUsR0FBc0IsRUFBRSxDQUFDO0lBSzdDLENBQUM7SUFFSixLQUFLLENBQUMsZUFBZTtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUMxRCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN2QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBdUIsQ0FBQztRQUUvQyxPQUFPLENBQUMsR0FBRyxDQUFDLHVDQUF1QyxFQUFFO1lBQ2pELE1BQU07WUFDTixPQUFPO1NBQ1YsQ0FBQyxDQUFDO1FBRUgsMkJBQTJCO1FBQzNCLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBVyxFQUFzQixFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlELE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBVyxFQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssTUFBTSxDQUFDO1FB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Q0FDM0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FDakQsQ0FBQztZQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUMzQixNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUNqRCxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXRSUSxtQkFBbUIsNENBTWhCLFdBQVc7bUdBTmQsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQ0FBbUM7b0JBQzdDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBT1EsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgUExBVEZPUk1fSUQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBTd2lwZXIgZ2xvYmFsICh2aWVuZSBkZWwgYW5ndWxhci5qc29uIC0+IHNjcmlwdHMpXG5kZWNsYXJlIGNvbnN0IFN3aXBlcjogYW55O1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJy5qcy1hY3RpdmUtc2xpZGVyLFthcHBTd2lwZXJJbml0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU3dpcGVySW5pdERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBzd2lwZXJJbnN0YW5jZT86IGFueTtcbiAgICBwcml2YXRlIGFycm93Q2xlYW51cEZuczogQXJyYXk8KCkgPT4gdm9pZD4gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IG9iamVjdFxuICAgICkge31cblxuICAgIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnW1N3aXBlckluaXREaXJlY3RpdmVdIE5vIGVzIGJyb3dzZXIsIHNhbGdvJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmhvc3QubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgZGF0YXNldCA9IHBhcmVudC5kYXRhc2V0IGFzIERPTVN0cmluZ01hcDtcblxuICAgICAgICBjb25zb2xlLmxvZygnW1N3aXBlckluaXREaXJlY3RpdmVdIG5nQWZ0ZXJWaWV3SW5pdCcsIHtcbiAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgIGRhdGFzZXQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEhlbHBlcnMgcGFyYSBsZWVyIGRhdGEtKlxuICAgICAgICBjb25zdCBnZXQgPSAoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4gZGF0YXNldFtrZXldO1xuICAgICAgICBjb25zdCBnZXRCb29sID0gKGtleTogc3RyaW5nKTogYm9vbGVhbiA9PiBnZXQoa2V5KSA9PT0gJ3RydWUnO1xuICAgICAgICBjb25zdCBnZXROdW0gPSAoa2V5OiBzdHJpbmcsIGZhbGxiYWNrID0gMCk6IG51bWJlciA9PiB7XG4gICAgICAgICAgICBjb25zdCB2ID0gTnVtYmVyKGdldChrZXkpKTtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUodikgPyB2IDogZmFsbGJhY2s7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc2xpZGVyTmFtZSA9IGdldCgnc2xpZGVyX25hbWUnKTtcbiAgICAgICAgaWYgKCFzbGlkZXJOYW1lKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgJ1tTd2lwZXJJbml0RGlyZWN0aXZlXSBTaW4gZGF0YS1zbGlkZXJfbmFtZSBlbiBlbCBwYXJlbnQnLFxuICAgICAgICAgICAgICAgIHBhcmVudFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNsaWRlclNlbGVjdG9yID0gcGFyZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KFxuICAgICAgICAgICAgJy4nICsgc2xpZGVyTmFtZVxuICAgICAgICApO1xuICAgICAgICBpZiAoIXNsaWRlclNlbGVjdG9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgJ1tTd2lwZXJJbml0RGlyZWN0aXZlXSBObyBlbmN1ZW50cm8gZWwgY29udGVuZWRvciAuJyxcbiAgICAgICAgICAgICAgICBzbGlkZXJOYW1lLFxuICAgICAgICAgICAgICAgICcgZGVudHJvIGRlICcsXG4gICAgICAgICAgICAgICAgcGFyZW50XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3dpcGVyIHlhIGluaWNpYWxpemFkbyDihpIgc2FsaXJcbiAgICAgICAgaWYgKHNsaWRlclNlbGVjdG9yLmNsYXNzTGlzdC5jb250YWlucygnc3dpcGVyLWluaXRpYWxpemVkJykpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgICdbU3dpcGVySW5pdERpcmVjdGl2ZV0gU3dpcGVyIHlhIGluaWNpYWxpemFkbyBlbiBlc3RlIGNvbnRlbmVkb3IsIHNhbGdvJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vID09PT09PSBMRUNUVVJBIERFIERBVEEtQVRUUklCVVRFUyA9PT09PT1cbiAgICAgICAgY29uc3Qgc2hvd0RvdHMgPSBnZXRCb29sKCdzbGlkZXJfc2hvd2RvdHMnKTtcbiAgICAgICAgY29uc3Qgc2hvd0J1dHRvbnMgPSBnZXRCb29sKCdzbGlkZXJfc2hvd2J0bnMnKTtcbiAgICAgICAgY29uc3QgZmFkZSA9IGdldEJvb2woJ3NsaWRlcl9mYWRlJyk7XG4gICAgICAgIGNvbnN0IGNlbnRlciA9IGdldEJvb2woJ3NsaWRlcl9jZW50ZXJtb2RlJyk7XG4gICAgICAgIGNvbnN0IGF1dG9wbGF5ID0gZ2V0Qm9vbCgnc2xpZGVyX2F1dG9wbGF5Jyk7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FsID0gZ2V0Qm9vbCgnc2xpZGVyX3ZlcnRpY2FsJyk7XG4gICAgICAgIGNvbnN0IHJ0bCA9IGdldEJvb2woJ3NsaWRlcl9ydGwnKTtcbiAgICAgICAgY29uc3QgZHJhZ2dhYmxlID0gZ2V0KCdzbGlkZXJfZHJhZ2dhYmxlJykgIT09ICdmYWxzZSc7XG4gICAgICAgIGNvbnN0IGFkYXB0aXZlSGVpZ2h0ID0gZ2V0Qm9vbCgnc2xpZGVyX2FkYXB0aXZlX2hlaWdodCcpO1xuXG4gICAgICAgIGNvbnN0IHZhcmlhYmxlV2lkdGggPSBnZXRCb29sKCdzbGlkZXJfdmFyaWFibGVfd2lkdGgnKTtcbiAgICAgICAgY29uc3QgZnJlZU1vZGUgPSBnZXRCb29sKCdzbGlkZXJfZnJlZW1vZGUnKTtcblxuICAgICAgICBjb25zdCBzcGVlZCA9IGdldE51bSgnc2xpZGVyX3NwZWVkJywgNzUwKTtcbiAgICAgICAgY29uc3QgaW5maW5pdGUgPSBnZXRCb29sKCdzbGlkZXNfaW5maW5pdGUnKTtcblxuICAgICAgICAvLyBjb250ZW5lZG9yZXNcbiAgICAgICAgY29uc3QgbmF2Q29udGFpbmVyID1cbiAgICAgICAgICAgIHBhcmVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLmpzLXNsaWRlci1hcnJvd3MnKTtcbiAgICAgICAgY29uc3QgZG90c0NvbnRhaW5lciA9XG4gICAgICAgICAgICBwYXJlbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5qcy1zbGlkZXItZG90cycpO1xuXG4gICAgICAgIC8vID09PT09PSBTVkcgRkxFQ0hBUyA9PT09PT1cbiAgICAgICAgY29uc3QgYXJyb3dTVkcgPSBgXG48c3ZnIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCI3MFwiIHZpZXdCb3g9XCIwIDAgMzUgNzBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbjxwYXRoIGQ9XCJNMzUgNzBDMzAuNDAzNyA3MCAyNS44NTI1IDY5LjA5NDcgMjEuNjA2MSA2Ny4zMzU4QzE3LjM1OTcgNjUuNTc2OSAxMy41MDEzIDYyLjk5ODggMTAuMjUxMyA1OS43NDg3QzcuMDAxMjEgNTYuNDk4NyA0LjQyMzEzIDUyLjY0MDMgMi42NjQyMSA0OC4zOTM5QzAuOTA1MyA0NC4xNDc1IC00LjAxODJlLTA3IDM5LjU5NjMgMCAzNUM0LjAxODJlLTA3IDMwLjQwMzcgMC45MDUzMDMgMjUuODUyNSAyLjY2NDIyIDIxLjYwNjFDNC40MjMxMyAxNy4zNTk3IDcuMDAxMjEgMTMuNTAxMyAxMC4yNTEzIDEwLjI1MTNDMTMuNTAxMyA3LjAwMTIxIDE3LjM1OTcgNC40MjMxMyAyMS42MDYxIDIuNjY0MjFDMjUuODUyNSAwLjkwNTMgMzAuNDAzNyAtNi4wMjczZS0wNyAzNSAwVjM1VjcwWlwiIGZpbGw9XCIjRDBBNjdCXCIvPlxuPHBhdGggZD1cIk0xNi43MzY4IDI4LjEyNkMxNi41NjgzIDI3Ljk1NzggMTYuMjk0OSAyNy45NTc3IDE2LjEyNjUgMjguMTI2QzE1Ljk1OCAyOC4yOTQ0IDE1Ljk1ODIgMjguNTY3OCAxNi4xMjY1IDI4LjczNjNMMjIuNjgyMSAzNS4yOTJMMTYuMTI2NSA0MS44NDc3QzE1Ljk1NzkgNDIuMDE2MiAxNS45NTc5IDQyLjI4OTUgMTYuMTI2NSA0Mi40NThDMTYuMjk1IDQyLjYyNjUgMTYuNTY4MyA0Mi42MjY1IDE2LjczNjggNDIuNDU4TDIzLjU5NzIgMzUuNTk3N0MyMy42ODE2IDM1LjUxMzMgMjMuNzI0MiAzNS40MDI2IDIzLjcyNDEgMzUuMjkyQzIzLjcyNDEgMzUuMTgxNiAyMy42ODE0IDM1LjA3MTUgMjMuNTk3MiAzNC45ODczTDE2LjczNjggMjguMTI2WlwiIGZpbGw9XCJ3aGl0ZVwiLz5cbjwvc3ZnPmAudHJpbSgpO1xuXG4gICAgICAgIGlmIChzaG93QnV0dG9ucyAmJiBuYXZDb250YWluZXIpIHtcbiAgICAgICAgICAgIGlmICghbmF2Q29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5zd2lwZXItYnV0dG9uLXByZXYnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgICAgICBwcmV2LmNsYXNzTmFtZSA9ICdzd2lwZXItYnV0dG9uLXByZXYnO1xuICAgICAgICAgICAgICAgIHByZXYuaW5uZXJIVE1MID0gYXJyb3dTVkc7XG4gICAgICAgICAgICAgICAgcHJldi5zdHlsZS50cmFuc2Zvcm0gPSAncm90YXRlKDE4MGRlZyknOyAvLyBQcmV2IGdpcmFkYVxuICAgICAgICAgICAgICAgIG5hdkNvbnRhaW5lci5hcHBlbmRDaGlsZChwcmV2KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFuYXZDb250YWluZXIucXVlcnlTZWxlY3RvcignLnN3aXBlci1idXR0b24tbmV4dCcpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgICAgIG5leHQuY2xhc3NOYW1lID0gJ3N3aXBlci1idXR0b24tbmV4dCc7XG4gICAgICAgICAgICAgICAgbmV4dC5pbm5lckhUTUwgPSBhcnJvd1NWRztcbiAgICAgICAgICAgICAgICBuYXZDb250YWluZXIuYXBwZW5kQ2hpbGQobmV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyA9PT09PT0gQlJFQUtQT0lOVFMgPT09PT09XG4gICAgICAgIGNvbnN0IHNsaWRlc19wYyA9IGdldE51bSgnc2xpZGVzX3BjJywgMSk7XG4gICAgICAgIGNvbnN0IHNsaWRlc19sYXB0b3AgPSBnZXROdW0oJ3NsaWRlc19sYXB0b3AnLCBzbGlkZXNfcGMpO1xuICAgICAgICBjb25zdCBzbGlkZXNfdGFibGV0ID0gZ2V0TnVtKCdzbGlkZXNfdGFibGV0Jywgc2xpZGVzX2xhcHRvcCk7XG4gICAgICAgIGNvbnN0IHNsaWRlc19tb2JpbGUgPSBnZXROdW0oJ3NsaWRlc19tb2JpbGUnLCBzbGlkZXNfdGFibGV0KTtcbiAgICAgICAgY29uc3Qgc2xpZGVzX21vYmlsZV9zbWFsbCA9IGdldE51bShcbiAgICAgICAgICAgICdzbGlkZXNfbW9iaWxlX3NtYWxsJyxcbiAgICAgICAgICAgIHNsaWRlc19tb2JpbGVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc2xpZGVzX21vYmlsZV94c21hbGwgPSBnZXROdW0oXG4gICAgICAgICAgICAnc2xpZGVzX21vYmlsZV94c21hbGwnLFxuICAgICAgICAgICAgc2xpZGVzX21vYmlsZV9zbWFsbFxuICAgICAgICApO1xuXG4gICAgICAgIC8vID09PT09PSBPUENJT05FUyBTV0lQRVIgPT09PT09XG4gICAgICAgIGNvbnN0IHN3aXBlck9wdGlvbnM6IGFueSA9IHtcbiAgICAgICAgICAgIGRpcmVjdGlvbjogdmVydGljYWwgPyAndmVydGljYWwnIDogJ2hvcml6b250YWwnLFxuICAgICAgICAgICAgc3BlZWQsXG4gICAgICAgICAgICBsb29wOiBpbmZpbml0ZSxcbiAgICAgICAgICAgIGNlbnRlcmVkU2xpZGVzOiBjZW50ZXIsXG4gICAgICAgICAgICBlZmZlY3Q6IGZhZGUgPyAnZmFkZScgOiAnc2xpZGUnLFxuICAgICAgICAgICAgYXV0b3BsYXk6IGF1dG9wbGF5ID8geyBkZWxheTogNTAwMCB9IDogZmFsc2UsXG4gICAgICAgICAgICBhbGxvd1RvdWNoTW92ZTogZHJhZ2dhYmxlLFxuICAgICAgICAgICAgYXV0b0hlaWdodDogYWRhcHRpdmVIZWlnaHQsXG5cbiAgICAgICAgICAgIGZyZWVNb2RlOiBmcmVlTW9kZSA/IHsgZW5hYmxlZDogdHJ1ZSwgbW9tZW50dW06IHRydWUgfSA6IGZhbHNlLFxuXG4gICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiB2YXJpYWJsZVdpZHRoID8gJ2F1dG8nIDogc2xpZGVzX21vYmlsZV94c21hbGwsXG4gICAgICAgICAgICBzcGFjZUJldHdlZW46IHZhcmlhYmxlV2lkdGggPyAxNiA6IDAsXG5cbiAgICAgICAgICAgIG9ic2VydmVyOiB0cnVlLFxuICAgICAgICAgICAgb2JzZXJ2ZVBhcmVudHM6IHRydWUsXG5cbiAgICAgICAgICAgIG5hdmlnYXRpb246XG4gICAgICAgICAgICAgICAgc2hvd0J1dHRvbnMgJiYgbmF2Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0RWw6ICcuc3dpcGVyLWJ1dHRvbi1uZXh0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkVsOiAnLnN3aXBlci1idXR0b24tcHJldicsXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA6IGZhbHNlLFxuXG4gICAgICAgICAgICBwYWdpbmF0aW9uOlxuICAgICAgICAgICAgICAgIHNob3dEb3RzICYmIGRvdHNDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVsOiAnLmpzLXNsaWRlci1kb3RzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2thYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiBmYWxzZSxcblxuICAgICAgICAgICAgYnJlYWtwb2ludHM6IHtcbiAgICAgICAgICAgICAgICA1NDA6IHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogdmFyaWFibGVXaWR0aCA/ICdhdXRvJyA6IHNsaWRlc19tb2JpbGVfc21hbGwsXG4gICAgICAgICAgICAgICAgICAgIGZyZWVNb2RlOiBmcmVlTW9kZSA/IHsgZW5hYmxlZDogdHJ1ZSB9IDogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICA3Njg6IHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogdmFyaWFibGVXaWR0aCA/ICdhdXRvJyA6IHNsaWRlc19tb2JpbGUsXG4gICAgICAgICAgICAgICAgICAgIGZyZWVNb2RlOiBmcmVlTW9kZSA/IHsgZW5hYmxlZDogdHJ1ZSB9IDogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAxMDI0OiB7XG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IHZhcmlhYmxlV2lkdGggPyAnYXV0bycgOiBzbGlkZXNfdGFibGV0LFxuICAgICAgICAgICAgICAgICAgICBmcmVlTW9kZTogZnJlZU1vZGUgPyB7IGVuYWJsZWQ6IHRydWUgfSA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgMTI4MDoge1xuICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiB2YXJpYWJsZVdpZHRoID8gJ2F1dG8nIDogc2xpZGVzX2xhcHRvcCxcbiAgICAgICAgICAgICAgICAgICAgZnJlZU1vZGU6IGZyZWVNb2RlID8geyBlbmFibGVkOiB0cnVlIH0gOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIDEzNjY6IHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogdmFyaWFibGVXaWR0aCA/ICdhdXRvJyA6IHNsaWRlc19wYyxcbiAgICAgICAgICAgICAgICAgICAgZnJlZU1vZGU6IGZyZWVNb2RlID8geyBlbmFibGVkOiB0cnVlIH0gOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICAvLyA9PT09PT0gSU5JVCBTV0lQRVIgPT09PT09XG4gICAgICAgIGlmICghU3dpcGVyKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICdbU3dpcGVySW5pdERpcmVjdGl2ZV0gU3dpcGVyIGdsb2JhbCBubyBlbmNvbnRyYWRvICh3aW5kb3cuU3dpcGVyIGVzIGZhbHN5KSdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmxvZygnW1N3aXBlckluaXREaXJlY3RpdmVdIElOSVQgU1dJUEVSJywge1xuICAgICAgICAgICAgc2xpZGVyTmFtZSxcbiAgICAgICAgICAgIHNsaWRlclNlbGVjdG9yLFxuICAgICAgICAgICAgb3B0aW9uczogc3dpcGVyT3B0aW9ucyxcbiAgICAgICAgICAgIHN3aXBlclR5cGU6IHR5cGVvZiBTd2lwZXIsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc3dpcGVySW5zdGFuY2UgPSBuZXcgU3dpcGVyKHNsaWRlclNlbGVjdG9yLCBzd2lwZXJPcHRpb25zKTtcblxuICAgICAgICAvLyBQb3NpY2nDs24gZmxlY2hhcyB0aXBvIC0tc2xpZGVyTmF2X19wb3NpdGlvblxuICAgICAgICB0aGlzLmluaXRBcnJvd1Bvc2l0aW9uaW5nKHBhcmVudCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXG4gICAgICAgIGlmICh0aGlzLnN3aXBlckluc3RhbmNlPy5kZXN0cm95KSB7XG4gICAgICAgICAgICB0aGlzLnN3aXBlckluc3RhbmNlLmRlc3Ryb3kodHJ1ZSwgdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFycm93Q2xlYW51cEZucy5mb3JFYWNoKChmbikgPT4gZm4oKSk7XG4gICAgICAgIHRoaXMuYXJyb3dDbGVhbnVwRm5zID0gW107XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT0gUE9TSUNJw5NOIERFIEZMRUNIQVMgKGVxdWl2YWxlbnRlIGpzLXNsaWRlcl9maXgtYXJyb3dzKSA9PT09PT09PVxuICAgIHByaXZhdGUgaW5pdEFycm93UG9zaXRpb25pbmcocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzbGlkZXJzID0gcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KFxuICAgICAgICAgICAgJy5qcy1zbGlkZXJfZml4LWFycm93cydcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFzbGlkZXJzLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgIHNsaWRlcnMuZm9yRWFjaCgoc2xpZGVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uID1cbiAgICAgICAgICAgICAgICBzbGlkZXIuY2xvc2VzdDxIVE1MRWxlbWVudD4oJy5qcy1hY3RpdmUtc2xpZGVyJykgfHwgcGFyZW50O1xuICAgICAgICAgICAgaWYgKCFzZWN0aW9uKSByZXR1cm47XG5cbiAgICAgICAgICAgIGNvbnN0IGNhbGNQb3NpdGlvbiA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgaGVpZ2h0U2VsZWN0b3I6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBtb2JpbGVTZWwgPSBzbGlkZXIucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oXG4gICAgICAgICAgICAgICAgICAgICcuanMtc2xpZGVyX2ZpeC1hcnJvd3Mtem9uZS5tb2JpbGUnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkZXNrdG9wU2VsID0gc2xpZGVyLnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KFxuICAgICAgICAgICAgICAgICAgICAnLmpzLXNsaWRlcl9maXgtYXJyb3dzLXpvbmUuZGVza3RvcCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGdlbmVyaWNTZWwgPSBzbGlkZXIucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oXG4gICAgICAgICAgICAgICAgICAgICcuanMtc2xpZGVyX2ZpeC1hcnJvd3Mtem9uZSdcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgaWYgKG1vYmlsZVNlbCAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8PSAxMjc5KSB7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodFNlbGVjdG9yID0gbW9iaWxlU2VsO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGVza3RvcFNlbCAmJiB3aW5kb3cuaW5uZXJXaWR0aCA+PSAxMjgwKSB7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodFNlbGVjdG9yID0gZGVza3RvcFNlbDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHRTZWxlY3RvciA9IGdlbmVyaWNTZWw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCFoZWlnaHRTZWxlY3RvcikgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcmVsYXRpdmUgPVxuICAgICAgICAgICAgICAgICAgICBoZWlnaHRTZWxlY3Rvci5jbG9zZXN0PEhUTUxFbGVtZW50PignLnJlbGF0aXZlJyk7XG4gICAgICAgICAgICAgICAgaWYgKCFyZWxhdGl2ZSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IGhlaWdodFNlbGVjdG9yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFJlY3QgPSByZWxhdGl2ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSByZWN0LnRvcCAtIHBhcmVudFJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyO1xuXG4gICAgICAgICAgICAgICAgc2VjdGlvbi5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAgICAgICAgICAgJy0tc2xpZGVyTmF2X19wb3NpdGlvbicsXG4gICAgICAgICAgICAgICAgICAgIGAke2hlaWdodH1weGBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY2FsY1Bvc2l0aW9uKCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGNhbGNQb3NpdGlvbiwgNTAwKTtcblxuICAgICAgICAgICAgY29uc3Qgb25TY3JvbGwgPSAoKSA9PiBjYWxjUG9zaXRpb24oKTtcbiAgICAgICAgICAgIGNvbnN0IG9uUmVzaXplID0gKCkgPT4gY2FsY1Bvc2l0aW9uKCk7XG5cbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvblNjcm9sbCwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uUmVzaXplLCB7IHBhc3NpdmU6IHRydWUgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuYXJyb3dDbGVhbnVwRm5zLnB1c2goKCkgPT5cbiAgICAgICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25TY3JvbGwpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5hcnJvd0NsZWFudXBGbnMucHVzaCgoKSA9PlxuICAgICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBvblJlc2l6ZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==