ctt-babylon 0.12.29 → 0.12.31

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 (116) hide show
  1. package/esm2022/lib/components/core/babylon-404/babylon-404.component.mjs +1 -1
  2. package/esm2022/lib/components/core/babylon-action-banner/babylon-action-banner.component.mjs +1 -1
  3. package/esm2022/lib/components/core/babylon-av-c4-img-text/babylon-av-c4-img-text.component.mjs +1 -1
  4. package/esm2022/lib/components/core/babylon-av-img-social/babylon-av-img-social.component.mjs +1 -1
  5. package/esm2022/lib/components/core/babylon-av-img-social/babylon-av-img-social.directive.mjs +11 -7
  6. package/esm2022/lib/components/core/babylon-av-txt-ico/babylon-av-txt-ico.component.mjs +1 -1
  7. package/esm2022/lib/components/core/babylon-av-txt-ico/babylon-av-txt-ico.directive.mjs +6 -4
  8. package/esm2022/lib/components/core/babylon-ba-img-txt/babylon-ba-img-txt.component.mjs +1 -1
  9. package/esm2022/lib/components/core/babylon-ba-sli-img-txt/babylon-ba-sli-img-txt.component.mjs +2 -2
  10. package/esm2022/lib/components/core/babylon-banner-info/babylon-banner-info.component.mjs +1 -1
  11. package/esm2022/lib/components/core/babylon-blog-details/babylon-blog-details.component.mjs +2 -2
  12. package/esm2022/lib/components/core/babylon-blog-list/babylon-blog-list.component.mjs +2 -2
  13. package/esm2022/lib/components/core/babylon-breadcrumb-v2/babylon-breadcrumb-v2.component.mjs +1 -1
  14. package/esm2022/lib/components/core/babylon-contact-address/babylon-contact-address.component.mjs +2 -2
  15. package/esm2022/lib/components/core/babylon-contact-form-v2/babylon-contact-form-v2.component.mjs +1 -1
  16. package/esm2022/lib/components/core/babylon-contact-map/babylon-contact-map.component.mjs +1 -1
  17. package/esm2022/lib/components/core/babylon-fo-addr-cont-img/babylon-fo-addr-cont-img.component.mjs +2 -2
  18. package/esm2022/lib/components/core/babylon-fo-lis-c4-txt/babylon-fo-lis-c4-txt.component.mjs +1 -1
  19. package/esm2022/lib/components/core/babylon-footer-contact/babylon-footer-contact.component.mjs +2 -2
  20. package/esm2022/lib/components/core/babylon-footer-links/babylon-footer-links.component.mjs +1 -1
  21. package/esm2022/lib/components/core/babylon-footer-logos/babylon-footer-logos.component.mjs +1 -1
  22. package/esm2022/lib/components/core/babylon-footer-social/babylon-footer-social.component.mjs +1 -1
  23. package/esm2022/lib/components/core/babylon-gr-c2-img/babylon-gr-c2-img.component.mjs +1 -1
  24. package/esm2022/lib/components/core/babylon-he-svg-list/babylon-he-svg-list.component.mjs +1 -1
  25. package/esm2022/lib/components/core/babylon-head-intro/babylon-head-intro.component.mjs +2 -2
  26. package/esm2022/lib/components/core/babylon-header-book-show/babylon-header-book-show.component.mjs +2 -2
  27. package/esm2022/lib/components/core/babylon-header-clear/babylon-header-clear.component.mjs +1 -1
  28. package/esm2022/lib/components/core/babylon-header-menu-center/babylon-header-menu-center.component.mjs +2 -2
  29. package/esm2022/lib/components/core/babylon-header-menu-logo-center/babylon-header-menu-logo-center.component.mjs +2 -2
  30. package/esm2022/lib/components/core/babylon-header-menu-show/babylon-header-menu-show.component.mjs +2 -2
  31. package/esm2022/lib/components/core/babylon-hotels-list/babylon-hotels-list.component.mjs +1 -1
  32. package/esm2022/lib/components/core/babylon-hotels-slider/babylon-hotels-slider.component.mjs +2 -2
  33. package/esm2022/lib/components/core/babylon-info-big/babylon-info-big.component.mjs +1 -1
  34. package/esm2022/lib/components/core/babylon-info-big-v2/babylon-info-big-v2.component.mjs +1 -1
  35. package/esm2022/lib/components/core/babylon-info-grid/babylon-info-grid.component.mjs +2 -2
  36. package/esm2022/lib/components/core/babylon-info-img/babylon-info-img.component.mjs +2 -2
  37. package/esm2022/lib/components/core/babylon-info-img-slider/babylon-info-img-slider.component.mjs +1 -1
  38. package/esm2022/lib/components/core/babylon-info-img-v2/babylon-info-img-v2.component.mjs +2 -2
  39. package/esm2022/lib/components/core/babylon-info-intro/babylon-info-intro.component.mjs +2 -2
  40. package/esm2022/lib/components/core/babylon-info-zig-zag/babylon-info-zig-zag.component.mjs +2 -2
  41. package/esm2022/lib/components/core/babylon-info-zig-zag-counter/babylon-info-zig-zag-counter.component.mjs +2 -2
  42. package/esm2022/lib/components/core/babylon-info-zigzag-v2/babylon-info-zigzag-v2.component.mjs +1 -1
  43. package/esm2022/lib/components/core/babylon-info-zigzag-v4/babylon-info-zigzag-v4.component.mjs +1 -1
  44. package/esm2022/lib/components/core/babylon-info2col-img/babylon-info2col-img.component.mjs +1 -1
  45. package/esm2022/lib/components/core/babylon-info2img/babylon-info2img.component.mjs +2 -2
  46. package/esm2022/lib/components/core/babylon-info2img-big/babylon-info2img-big.component.mjs +2 -2
  47. package/esm2022/lib/components/core/babylon-info4img/babylon-info4img.component.mjs +1 -1
  48. package/esm2022/lib/components/core/babylon-items-grid/babylon-items-grid.component.mjs +1 -1
  49. package/esm2022/lib/components/core/babylon-lis-c2-txt/babylon-lis-c2-txt.component.mjs +1 -1
  50. package/esm2022/lib/components/core/babylon-lis-svg-txt-cta/babylon-lis-svg-txt-cta.component.mjs +1 -1
  51. package/esm2022/lib/components/core/babylon-list-c3-img-txt/babylon-list-c3-img-txt.component.mjs +1 -1
  52. package/esm2022/lib/components/core/babylon-list-img-info/babylon-list-img-info.component.mjs +1 -1
  53. package/esm2022/lib/components/core/babylon-list-img-v2/babylon-list-img-v2.component.mjs +1 -1
  54. package/esm2022/lib/components/core/babylon-menu-modal/babylon-menu-modal.component.mjs +1 -1
  55. package/esm2022/lib/components/core/babylon-modal-menu/babylon-modal-menu.component.mjs +2 -2
  56. package/esm2022/lib/components/core/babylon-modal-multiple-motors/babylon-modal-multiple-motors.component.mjs +1 -1
  57. package/esm2022/lib/components/core/babylon-newsletter-modal-v2/babylon-newsletter-modal-v2.component.mjs +4 -3
  58. package/esm2022/lib/components/core/babylon-offer-detail/babylon-offer-detail.component.mjs +2 -2
  59. package/esm2022/lib/components/core/babylon-offer-detail-v2/babylon-offer-detail-v2.component.mjs +1 -1
  60. package/esm2022/lib/components/core/babylon-offer-popup/babylon-offer-popup.component.mjs +1 -1
  61. package/esm2022/lib/components/core/babylon-offer-popupV2/babylon-offer-popup-v2.component.mjs +2 -2
  62. package/esm2022/lib/components/core/babylon-offer-slider/babylon-offer-slider.component.mjs +2 -2
  63. package/esm2022/lib/components/core/babylon-offers-list/babylon-offers-list.component.mjs +2 -2
  64. package/esm2022/lib/components/core/babylon-press-list/babylon-press-list.component.mjs +1 -1
  65. package/esm2022/lib/components/core/babylon-rooms-cols/babylon-rooms-cols.component.mjs +2 -2
  66. package/esm2022/lib/components/core/babylon-rooms-grid/babylon-rooms-grid.component.mjs +2 -2
  67. package/esm2022/lib/components/core/babylon-rooms-list/babylon-rooms-list.component.mjs +2 -2
  68. package/esm2022/lib/components/core/babylon-rooms-list-v2/babylon-rooms-list-v2.component.mjs +1 -1
  69. package/esm2022/lib/components/core/babylon-rooms-slider/babylon-rooms-slider.component.mjs +2 -2
  70. package/esm2022/lib/components/core/babylon-simple-img-info/babylon-simple-img-info.component.mjs +1 -1
  71. package/esm2022/lib/components/core/babylon-sli-c1-img-text/babylon-sli-c1-img-text.component.mjs +3 -3
  72. package/esm2022/lib/components/core/babylon-sli-c5-img-txt/babylon-sli-c5-img-txt.component.mjs +1 -1
  73. package/esm2022/lib/components/core/babylon-slider-img-static/babylon-slider-img-static.component.mjs +1 -1
  74. package/esm2022/lib/components/core/babylon-slider-img-static-v2/babylon-slider-img-static-v2.component.mjs +2 -2
  75. package/esm2022/lib/components/core/babylon-slider-img-video/babylon-slider-img-video.component.mjs +1 -1
  76. package/esm2022/lib/components/core/babylon-slider2col/babylon-slider2col.component.mjs +2 -2
  77. package/esm2022/lib/components/core/babylon-slider2col-v2/babylon-slider2col-v2.component.mjs +1 -1
  78. package/esm2022/lib/components/core/babylon-slider2items/babylon-slider2items.component.mjs +2 -2
  79. package/esm2022/lib/components/core/babylon-slider3col/babylon-slider3col.component.mjs +2 -2
  80. package/esm2022/lib/components/core/babylon-slider3col-v2/babylon-slider3col-v2.component.mjs +1 -1
  81. package/esm2022/lib/components/core/babylon-slider3items/babylon-slider3items.component.mjs +2 -2
  82. package/esm2022/lib/components/core/babylon-social-bar/babylon-social-bar.component.mjs +1 -1
  83. package/esm2022/lib/components/core/babylon-social-bar-v2/babylon-social-bar-v2.component.mjs +1 -1
  84. package/esm2022/lib/components/core/babylon-static-footer/babylon-static-footer.component.mjs +2 -2
  85. package/esm2022/lib/components/core/babylon-static-footer-v2/babylon-static-footer-v2.component.mjs +1 -1
  86. package/esm2022/lib/components/core/babylon-static-footer-v3/babylon-static-footer-v3.component.mjs +2 -2
  87. package/esm2022/lib/components/core/babylon-submenu-hotel/babylon-submenu-hotel.component.mjs +1 -1
  88. package/esm2022/lib/components/core/babylon-top-simple-banner/babylon-top-simple-banner.component.mjs +1 -1
  89. package/esm2022/lib/components/core/babylon-top-slider/babylon-top-slider.component.mjs +2 -2
  90. package/esm2022/lib/components/core/babylon-variant-selector/babylon-variant-selector.component.mjs +1 -1
  91. package/esm2022/lib/components/external/core/c2-txt-cta/c2-txt-cta.component.mjs +1 -1
  92. package/esm2022/lib/components/external/core/c2-txt-rrss/c2-txt-rrss.component.mjs +1 -1
  93. package/esm2022/lib/components/external/core/c3-txt-img-cta/c3-txt-img-cta.component.mjs +1 -1
  94. package/esm2022/lib/components/external/core/c4-c1-img-txt-c/c4-c1-img-txt-c.component.mjs +1 -1
  95. package/esm2022/lib/components/external/core/c4-fo-link-svg/c4-fo-link-svg.component.mjs +1 -1
  96. package/esm2022/lib/components/external/core/c4-lis-c2-img-txt-c/list-rooms.component.mjs +1 -1
  97. package/esm2022/lib/components/external/core/c4-me-txt-svg-cta/c4-me-txt-svg-cta.component.mjs +1 -1
  98. package/esm2022/lib/components/external/core/c4-sli-c2-img-txt-c/c4-sli-c2-img-txt-c.component.mjs +1 -1
  99. package/esm2022/lib/components/external/core/c4-sli-c2-txt-img/c4-sli-c2-txt-img.component.mjs +1 -1
  100. package/esm2022/lib/components/external/core/car-c2-txt-cta/car-c2-txt-cta.component.mjs +1 -1
  101. package/esm2022/lib/components/external/core/lis-c2-img-txt-cv4/lis-c2-img-txt-cv4.component.mjs +5 -3
  102. package/esm2022/lib/components/external/core/lis-c3-txt-img-ct/lis-c3-txt-img-ct.component.mjs +4 -3
  103. package/esm2022/lib/components/external/core/lis-c4-txt-des-cta/lis-c4-txt-des-cta.component.mjs +6 -3
  104. package/esm2022/lib/components/external/core/sli-c2-txt-car-img-c/sli-c2-txt-car-img-c.component.mjs +1 -1
  105. package/esm2022/lib/directives/babylon-sliders/babylon-swiper-slider.directive.mjs +3 -3
  106. package/esm2022/lib/directives/link-type/link-type.directive.mjs +13 -8
  107. package/esm2022/lib/interfaces/babylon-hotel.interface.mjs +1 -1
  108. package/esm2022/lib/services/mapper/mapper.service.mjs +18 -15
  109. package/fesm2022/ctt-babylon.mjs +158 -139
  110. package/fesm2022/ctt-babylon.mjs.map +1 -1
  111. package/lib/components/external/core/lis-c2-img-txt-cv4/lis-c2-img-txt-cv4.component.d.ts +3 -1
  112. package/lib/components/external/core/lis-c4-txt-des-cta/lis-c4-txt-des-cta.component.d.ts +2 -1
  113. package/lib/directives/link-type/link-type.directive.d.ts +2 -1
  114. package/lib/interfaces/babylon-hotel.interface.d.ts +1 -0
  115. package/lib/services/mapper/mapper.service.d.ts +1 -1
  116. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { BabylonLinkTypeDirective } from '../../../../directives/link-type/link-type.directive';
3
4
  import defaultContent from './lis-c3-txt-img-ct.content.json';
4
5
  import * as i0 from "@angular/core";
5
6
  export class LisC3TxtImgCtComponent {
@@ -63,11 +64,11 @@ export class LisC3TxtImgCtComponent {
63
64
  return [...list].sort((a, b) => (a.order ?? 0) - (b.order ?? 0));
64
65
  }
65
66
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LisC3TxtImgCtComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: LisC3TxtImgCtComponent, isStandalone: true, selector: "lis-c3-txt-img-ct", inputs: { content: "content", texts: "texts", multimedia: "multimedia", contactInfo: "contactInfo", consultTypes: "consultTypes", hotels: "hotels", buttons: "buttons" }, outputs: { formSubmit: "formSubmit" }, ngImport: i0, template: "@if (contactInfo) {\n <section class=\"mdl-md004\">\n @if (multimedia) {\n <img\n class=\"m-float\"\n [src]=\"\n multimedia.staticImagenes?.[0]?.img?.src ??\n '/assets/babylon/svg/others/mosaico.png'\n \"\n [alt]=\"multimedia.staticImagenes?.[0]?.img?.alt ?? 'alegria'\"\n loading=\"lazy\"\n />\n }\n <div class=\"mdl-container\">\n <div class=\"m-left\">\n @if (contactInfo.title) {\n <h2 class=\"m-title\">{{ contactInfo.title }}</h2>\n }\n @if (multimedia?.imagenes?.[0]; as img) {\n <div class=\"m-img\">\n <img\n [src]=\"img.img?.src\"\n [alt]=\"img.img?.alt\"\n loading=\"lazy\"\n />\n </div>\n }\n </div>\n\n <div class=\"m-right\">\n <div class=\"m-form-container\">\n @if (contactInfo.description) {\n <div class=\"m-title\">\n {{ contactInfo.description }}\n </div>\n }\n\n <form (submit)=\"handleSubmit($event)\" novalidate>\n <div class=\"m-inputs-container\">\n @if (hotels?.length) {\n <div class=\"m-input\">\n <!-- clase:full para q sea largo el input -->\n <select name=\"hotelId\" required>\n <option selected disabled value=\"\">\n @if (contactInfo.hotelDropTitle) {\n {{ contactInfo.hotelDropTitle }}\n }\n </option>\n\n @for (h of sortedHotels; track h.id) {\n <option [value]=\"h.id\">\n {{ h.name }}\n </option>\n }\n </select>\n\n <svg\n width=\"11\"\n height=\"6\"\n viewBox=\"0 0 11 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.87252 5.756L0.258221 1.41563C0.0922871 1.25955 -0.000596046 1.04818 3.8147e-06 0.82802C0.000602722 0.607855 0.094636 0.39693 0.261417 0.241647C0.428199 0.0863637 0.654065 -0.000558332 0.88933 2.69906e-06C1.12459 0.000563731 1.34999 0.0885619 1.51592 0.244639L5.48813 4.00549L9.48408 0.247203C9.65001 0.0911261 9.87541 0.00312796 10.1107 0.00256693C10.3459 0.0020059 10.5718 0.088928 10.7386 0.244211C10.9054 0.399495 10.9994 0.610419 11 0.830584C11.0006 1.05075 10.9077 1.26212 10.7418 1.4182L6.12931 5.75685C5.96252 5.9127 5.73641 6.00016 5.50072 6C5.26503 5.99984 5.03906 5.91207 4.87252 5.756Z\"\n fill=\"#515050\"\n />\n </svg>\n </div>\n }\n @if (consultTypes?.length) {\n <div class=\"m-input\">\n <select name=\"consultType\" required>\n <option selected disabled value=\"\">\n @if (contactInfo.dropdownTitle) {\n {{ contactInfo.dropdownTitle }}\n }\n </option>\n\n @for (\n opt of consultTypes;\n track $index\n ) {\n <option [value]=\"opt.consultTypeId\">\n {{ opt.name }}\n </option>\n }\n </select>\n\n <svg\n width=\"11\"\n height=\"6\"\n viewBox=\"0 0 11 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.87252 5.756L0.258221 1.41563C0.0922871 1.25955 -0.000596046 1.04818 3.8147e-06 0.82802C0.000602722 0.607855 0.094636 0.39693 0.261417 0.241647C0.428199 0.0863637 0.654065 -0.000558332 0.88933 2.69906e-06C1.12459 0.000563731 1.34999 0.0885619 1.51592 0.244639L5.48813 4.00549L9.48408 0.247203C9.65001 0.0911261 9.87541 0.00312796 10.1107 0.00256693C10.3459 0.0020059 10.5718 0.088928 10.7386 0.244211C10.9054 0.399495 10.9994 0.610419 11 0.830584C11.0006 1.05075 10.9077 1.26212 10.7418 1.4182L6.12931 5.75685C5.96252 5.9127 5.73641 6.00016 5.50072 6C5.26503 5.99984 5.03906 5.91207 4.87252 5.756Z\"\n fill=\"#515050\"\n />\n </svg>\n </div>\n }\n <!-- Name -->\n @if (contactInfo.inputName) {\n <div class=\"m-input\">\n <span>{{ contactInfo.inputName }}</span>\n <input\n [attr.name]=\"'nombre'\"\n [type]=\"'text'\"\n [required]=\"true\"\n placeholder=\"\"\n minlength=\"2\"\n />\n <svg\n width=\"12\"\n height=\"14\"\n viewBox=\"0 0 12 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <path\n d=\"M11.0253 9.12893C10.4087 8.51049 9.58738 8.16992 8.71198 8.16992H3.26716C2.39299 8.16992 1.57169 8.51049 0.953871 9.12893C0.335435 9.74675 -0.00452016 10.5681 -0.00390542 11.4422V12.8033C-0.00390542 13.1063 0.241993 13.3529 0.545679 13.3529C0.848134 13.3529 1.09465 13.107 1.09465 12.8033V11.4422C1.09465 10.8619 1.32087 10.3154 1.73153 9.90474C2.14033 9.4947 2.68623 9.26848 3.26778 9.26848H8.71321C9.29415 9.26848 9.84004 9.49409 10.2495 9.90474C10.6601 10.3142 10.8857 10.8607 10.8857 11.4422V12.8033C10.8857 13.1063 11.1316 13.3529 11.4353 13.3529C11.7378 13.3529 11.9843 13.107 11.9843 12.8033V11.4422C11.9843 10.5681 11.6437 9.74675 11.0253 9.12893Z\"\n fill=\"#515050\"\n />\n <path\n d=\"M5.98982 6.54337C7.7941 6.54337 9.2615 5.07597 9.2615 3.27168C9.2615 1.4674 7.7941 0 5.98982 0C4.18554 0 2.71875 1.4674 2.71875 3.27168C2.71875 5.07597 4.18554 6.54337 5.98982 6.54337ZM5.98982 1.09794C7.18858 1.09794 8.16357 2.07293 8.16357 3.27168C8.16357 4.47044 7.18858 5.44543 5.98982 5.44543C4.79168 5.44543 3.81669 4.47044 3.81669 3.27168C3.81669 2.07293 4.79168 1.09794 5.98982 1.09794Z\"\n fill=\"#515050\"\n />\n </g>\n </svg>\n </div>\n }\n <!-- Code -->\n @if (contactInfo.inputSurnames) {\n <div class=\"m-input\">\n <span>{{ contactInfo.inputSurnames }}</span>\n <input\n [attr.name]=\"'surname'\"\n [type]=\"'text'\"\n [required]=\"true\"\n placeholder=\"\"\n minlength=\"2\"\n />\n <svg\n width=\"12\"\n height=\"14\"\n viewBox=\"0 0 12 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <path\n d=\"M11.0253 9.12893C10.4087 8.51049 9.58738 8.16992 8.71198 8.16992H3.26716C2.39299 8.16992 1.57169 8.51049 0.953871 9.12893C0.335435 9.74675 -0.00452016 10.5681 -0.00390542 11.4422V12.8033C-0.00390542 13.1063 0.241993 13.3529 0.545679 13.3529C0.848134 13.3529 1.09465 13.107 1.09465 12.8033V11.4422C1.09465 10.8619 1.32087 10.3154 1.73153 9.90474C2.14033 9.4947 2.68623 9.26848 3.26778 9.26848H8.71321C9.29415 9.26848 9.84004 9.49409 10.2495 9.90474C10.6601 10.3142 10.8857 10.8607 10.8857 11.4422V12.8033C10.8857 13.1063 11.1316 13.3529 11.4353 13.3529C11.7378 13.3529 11.9843 13.107 11.9843 12.8033V11.4422C11.9843 10.5681 11.6437 9.74675 11.0253 9.12893Z\"\n fill=\"#515050\"\n />\n <path\n d=\"M5.98982 6.54337C7.7941 6.54337 9.2615 5.07597 9.2615 3.27168C9.2615 1.4674 7.7941 0 5.98982 0C4.18554 0 2.71875 1.4674 2.71875 3.27168C2.71875 5.07597 4.18554 6.54337 5.98982 6.54337ZM5.98982 1.09794C7.18858 1.09794 8.16357 2.07293 8.16357 3.27168C8.16357 4.47044 7.18858 5.44543 5.98982 5.44543C4.79168 5.44543 3.81669 4.47044 3.81669 3.27168C3.81669 2.07293 4.79168 1.09794 5.98982 1.09794Z\"\n fill=\"#515050\"\n />\n </g>\n </svg>\n </div>\n }\n <!-- Email -->\n @if (contactInfo.inputEmail) {\n <div class=\"m-input\">\n <span>{{ contactInfo.inputEmail }}</span>\n <input\n [attr.name]=\"'email'\"\n [type]=\"'email'\"\n [required]=\"true\"\n placeholder=\"\"\n pattern=\"^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\"\n />\n <svg\n width=\"16\"\n height=\"13\"\n viewBox=\"0 0 16 13\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.7149 12.7352H2.28514C1.67446 12.7352 1.10053 12.4976 0.669461 12.0657C0.237581 11.6338 0 11.0599 0 10.4492V2.29411C0 2.28758 0 2.28023 0 2.2737C0.00326564 1.66793 0.240847 1.09889 0.669461 0.669461C1.10053 0.237581 1.67446 0 2.28514 0H13.7149C14.3255 0 14.8995 0.237581 15.3305 0.669461C15.7592 1.09889 15.9967 1.66793 16 2.2737C16 2.28023 16 2.28758 16 2.29411V10.4492C16 11.0599 15.7624 11.6338 15.3305 12.0657C14.8995 12.4976 14.3255 12.7352 13.7149 12.7352ZM1.30544 3.50484V10.4484C1.30544 10.7064 1.40993 10.9587 1.5928 11.1407C1.77813 11.326 2.02387 11.4281 2.28593 11.4281H13.7157C13.9728 11.4281 14.2259 11.3236 14.4088 11.1407C14.5917 10.9587 14.6962 10.7064 14.6962 10.4484V3.50484L8.36331 7.7265C8.14451 7.87345 7.85793 7.87345 7.63913 7.7265L1.30544 3.50484ZM1.35686 1.96999L8 6.39901L14.6431 1.96999C14.595 1.82957 14.5158 1.70058 14.408 1.59282C14.2251 1.40994 13.9728 1.30544 13.7149 1.30544H2.28514C2.02389 1.30544 1.77733 1.40749 1.59201 1.59282C1.48424 1.70058 1.40503 1.82957 1.35686 1.96999Z\"\n fill=\"#515050\"\n />\n </svg>\n </div>\n }\n <!-- Telf -->\n @if (contactInfo.inputPhone) {\n <div class=\"m-input\">\n <span>{{ contactInfo.inputPhone }}</span>\n <input\n [attr.name]=\"'phone'\"\n [type]=\"'tel'\"\n [required]=\"true\"\n placeholder=\"\"\n pattern=\"^[0-9+\\-\\s()]{7,}$\"\n />\n <svg\n width=\"12\"\n height=\"14\"\n viewBox=\"0 0 12 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <path\n d=\"M11.0253 9.12893C10.4087 8.51049 9.58738 8.16992 8.71198 8.16992H3.26716C2.39299 8.16992 1.57169 8.51049 0.953871 9.12893C0.335435 9.74675 -0.00452016 10.5681 -0.00390542 11.4422V12.8033C-0.00390542 13.1063 0.241993 13.3529 0.545679 13.3529C0.848134 13.3529 1.09465 13.107 1.09465 12.8033V11.4422C1.09465 10.8619 1.32087 10.3154 1.73153 9.90474C2.14033 9.4947 2.68623 9.26848 3.26778 9.26848H8.71321C9.29415 9.26848 9.84004 9.49409 10.2495 9.90474C10.6601 10.3142 10.8857 10.8607 10.8857 11.4422V12.8033C10.8857 13.1063 11.1316 13.3529 11.4353 13.3529C11.7378 13.3529 11.9843 13.107 11.9843 12.8033V11.4422C11.9843 10.5681 11.6437 9.74675 11.0253 9.12893Z\"\n fill=\"#515050\"\n />\n <path\n d=\"M5.98982 6.54337C7.7941 6.54337 9.2615 5.07597 9.2615 3.27168C9.2615 1.4674 7.7941 0 5.98982 0C4.18554 0 2.71875 1.4674 2.71875 3.27168C2.71875 5.07597 4.18554 6.54337 5.98982 6.54337ZM5.98982 1.09794C7.18858 1.09794 8.16357 2.07293 8.16357 3.27168C8.16357 4.47044 7.18858 5.44543 5.98982 5.44543C4.79168 5.44543 3.81669 4.47044 3.81669 3.27168C3.81669 2.07293 4.79168 1.09794 5.98982 1.09794Z\"\n fill=\"#515050\"\n />\n </g>\n </svg>\n </div>\n }\n\n <div class=\"m-input\">\n @if (contactInfo.inputMessage) {\n <span>{{ contactInfo.inputMessage }}</span>\n <textarea\n rows=\"14\"\n [placeholder]=\"\n contactInfo.inputMessagePlaceHolder ??\n ''\n \"\n [attr.name]=\"'mensaje'\"\n required\n minlength=\"10\"\n ></textarea>\n }\n </div>\n </div>\n\n <div class=\"m-footer\">\n <div class=\"m-legal\">\n <div class=\"m-row\">\n <small></small>\n @if (contactInfo.errorRequired) {\n <span>{{\n contactInfo.errorRequired\n }}</span>\n }\n <!-- @if (submitAttempted && !isFormValid) {\n <span>{{\n contactInfo.errorRequired\n }}</span>*\n\n @if (submitError) {\n <span>{{ submitError }}</span>\n } -->\n </div>\n @if (contactInfo.conditions) {\n <div class=\"m-row\">\n <label>\n <input\n type=\"checkbox\"\n [attr.name]=\"'checkbox'\"\n [required]=\"true\"\n />\n <span>{{\n contactInfo.conditions\n }}</span>\n </label>\n </div>\n }\n @if (contactInfo.conditions2) {\n <div class=\"m-row\">\n <label>\n <input\n type=\"checkbox\"\n [attr.name]=\"'checkbox2'\"\n [required]=\"false\"\n />\n <span>{{\n contactInfo.conditions2\n }}</span>\n </label>\n </div>\n }\n </div>\n @if (buttons?.[0]; as btn) {\n <button\n type=\"submit\"\n class=\"m-button-sm\"\n [disabled]=\"isSubmitting\"\n >\n <span>{{ btn?.label }}</span>\n </button>\n }\n </div>\n\n @if (contactInfo.note) {\n <div class=\"m-note\">\n {{ contactInfo.note }}\n </div>\n }\n </form>\n\n @if (multimedia?.imagenes?.[0]; as img) {\n <div class=\"m-img\">\n <img\n [src]=\"img.img?.src\"\n [alt]=\"img.img?.alt\"\n loading=\"lazy\"\n />\n </div>\n }\n </div>\n </div>\n </div>\n </section>\n}\n", styles: ["@charset \"UTF-8\";html{overflow-x:unset}.mdl-md004{position:relative}.mdl-md004 .m-float{position:absolute;left:-10rem;bottom:8rem;z-index:9}.mdl-md004 select{-webkit-appearance:none;appearance:none;background:transparent}.mdl-md004 select option{font-family:var(--font-text);font-size:1.4rem;font-weight:var(--w_text);color:var(--cl_dropdown-text)}.mdl-md004 .mdl-container{display:flex;flex-direction:row;gap:9rem;max-width:116.9rem;padding:18.4rem 0 8rem;position:relative}.mdl-md004 .mdl-container .m-left{width:calc(42% - 4.5rem);display:flex;flex-direction:column;gap:6rem;position:sticky;top:26.5rem;height:max-content}.mdl-md004 .mdl-container .m-left .m-title{font-family:jokker,sans-serif;font-weight:300;font-size:4.4rem;line-height:5.8rem}@media (max-width: 1366px){.mdl-md004 .mdl-container .m-left .m-title{font-size:3.6rem;line-height:4.8rem}}@media (max-width: 540px){.mdl-md004 .mdl-container .m-left .m-title{font-size:3rem;line-height:4rem}}@media (max-width: 375px){.mdl-md004 .mdl-container .m-left .m-title{font-size:2.4rem;line-height:3rem}}.mdl-md004 .mdl-container .m-left .m-title{color:#515050}.mdl-md004 .mdl-container .m-left .m-img{height:66rem}.mdl-md004 .mdl-container .m-left .m-img img{width:100%;height:100%;object-fit:cover}.mdl-md004 .mdl-container .m-right{width:calc(58% - 4.5rem)}.mdl-md004 .mdl-container .m-right .m-form-container{display:flex;flex-direction:column;gap:6rem}.mdl-md004 .mdl-container .m-right .m-form-container .m-title{color:#515050b2;text-align:end;font-family:jokker,sans-serif;font-weight:300;font-size:3.2rem;line-height:4.6rem}@media (max-width: 1366px){.mdl-md004 .mdl-container .m-right .m-form-container .m-title{font-size:2.8rem;line-height:3.8rem}}@media (max-width: 1080px){.mdl-md004 .mdl-container .m-right .m-form-container .m-title{font-size:3.2rem;line-height:4.6rem}}@media (max-width: 540px){.mdl-md004 .mdl-container .m-right .m-form-container .m-title{font-size:2.8rem;line-height:3.8rem}}@media (max-width: 375px){.mdl-md004 .mdl-container .m-right .m-form-container .m-title{font-size:2.2rem;line-height:3rem}}.mdl-md004 .mdl-container .m-right .m-form-container form{display:flex;flex-direction:column;gap:3rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-inputs-container{display:flex;flex-wrap:wrap;flex-direction:row;gap:2.5rem 3rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input{font-family:jokker,sans-serif;font-weight:400;font-size:1.3rem;color:#515050;width:calc(50% - 1.7rem);border:1px solid #e4e4e4;border-radius:2px;position:relative;display:flex;flex-direction:row;align-items:center;justify-content:space-between;cursor:pointer}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:hover svg path{transition:all .3s ease;fill:#ff4338}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input.full,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea){width:100%}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(input[required]):after,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(select[required]):after{content:\"\";position:absolute;left:-13px;background-color:transparent;width:5px;height:5px;border:1px solid #ff4338;border-radius:100%}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea[required]):after{content:\"\";position:absolute;left:-13px;top:2.5rem;background-color:transparent;width:5px;height:5px;border:1px solid #ff4338;border-radius:100%}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(input:focus) span,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(input:not(:placeholder-shown)) span,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea:focus) span,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea:not(:placeholder-shown)) span{transform:translateY(-170%);font-size:1rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea) span{top:2rem;transform:none}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea):has(textarea:focus) span,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea):has(textarea:not(:placeholder-shown)) span{transform:translateY(-100%)}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input select{width:100%;background-color:transparent;font-family:jokker,sans-serif;font-weight:400;font-size:1.3rem;color:#515050}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea{padding:3.3rem 2rem 1rem;resize:none}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input::placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input::-webkit-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input:-ms-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input::-ms-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea::placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea::-webkit-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea:-ms-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea::-ms-input-placeholder{color:transparent}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input select{padding:2.3rem 2rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input svg{position:absolute;top:50%;transform:translateY(-60%);right:2rem;pointer-events:none}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input span{position:absolute;top:50%;left:2rem;transform:translateY(-50%);transition:all .3s ease;pointer-events:none}.mdl-md004 .mdl-container .m-right .m-form-container form input[type=checkbox]{appearance:none;width:1.5rem;height:1.5rem;accent-color:#fff;border:1px solid #e4e4e4;border-radius:2px}.mdl-md004 .mdl-container .m-right .m-form-container form input[type=checkbox]:checked{background-image:url(/assets/babylon/svg/icons/input-check.svg);background-position:center;background-size:cover;background-repeat:no-repeat;background-size:80%}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer{display:flex;flex-direction:row;justify-content:space-between;gap:2rem;border-bottom:1px solid #e4e4e4;padding-bottom:4rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal{display:flex;flex-direction:column;gap:2.2rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal .m-row,.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal .m-row label{display:flex;flex-direction:row;gap:1rem;align-items:center}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal .m-row small{background-color:transparent;width:5px;height:5px;border:1px solid #ff4338;border-radius:100%;margin-right:3.5px;margin-left:2.5px}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal .m-row span{font-family:jokker,sans-serif;font-weight:400;font-size:1.3rem;line-height:24px;color:#515050b2;line-height:1.4}.mdl-md004 .mdl-container .m-right .m-form-container form .m-note{font-family:jokker,sans-serif;font-weight:400;font-size:1.3rem;line-height:24px;color:#515050b2}.mdl-md004 .mdl-container .m-right .m-form-container .m-img{display:none;width:85%;align-self:center}.mdl-md004 .mdl-container .m-right .m-form-container .m-img img{width:100%;height:100%;object-fit:cover}@media (max-width: 1366px){.mdl-md004 .m-float{left:-23rem}.mdl-md004 .mdl-container .m-left{top:25rem}}@media (max-width: 1080px){.mdl-md004{margin-bottom:12rem}.mdl-md004 .m-float{bottom:-4rem}.mdl-md004 .mdl-container{flex-direction:column;gap:2rem}.mdl-md004 .mdl-container .m-left{width:100%;position:relative;top:auto}.mdl-md004 .mdl-container .m-left .m-img{display:none}.mdl-md004 .mdl-container .m-right{width:100%}.mdl-md004 .mdl-container .m-right .m-form-container .m-title{text-align:start}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer{flex-wrap:wrap}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer button{margin:2rem auto 0}.mdl-md004 .mdl-container .m-right .m-form-container .m-img{display:block}}@media (max-width: 540px){.mdl-md004{margin-bottom:4rem}.mdl-md004 .m-float{height:27rem;left:-19rem;bottom:0}.mdl-md004 .mdl-container .m-right .m-form-container{gap:3rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-inputs-container{width:96%;align-self:end}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input{width:100%!important}.mdl-md004 .mdl-container .m-right .m-form-container .m-img{width:100%;height:40rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: LisC3TxtImgCtComponent, isStandalone: true, selector: "lis-c3-txt-img-ct", inputs: { content: "content", texts: "texts", multimedia: "multimedia", contactInfo: "contactInfo", consultTypes: "consultTypes", hotels: "hotels", buttons: "buttons" }, outputs: { formSubmit: "formSubmit" }, ngImport: i0, template: "@if (contactInfo) {\n <section class=\"mdl-md004\">\n @if (multimedia) {\n <img\n class=\"m-float\"\n [src]=\"\n multimedia.staticImagenes?.[0]?.img?.src ??\n '/assets/babylon/svg/others/mosaico.png'\n \"\n [alt]=\"multimedia.staticImagenes?.[0]?.img?.alt ?? 'alegria'\"\n loading=\"lazy\"\n />\n }\n <div class=\"mdl-container\">\n <div class=\"m-left\">\n @if (contactInfo.title) {\n <h2 class=\"m-title\">{{ contactInfo.title }}</h2>\n }\n @if (multimedia?.imagenes?.[0]; as img) {\n <div class=\"m-img\">\n <img\n [src]=\"img.img?.src\"\n [alt]=\"img.img?.alt\"\n loading=\"lazy\"\n />\n </div>\n }\n </div>\n\n <div class=\"m-right\">\n <div class=\"m-form-container\">\n @if (contactInfo.description) {\n <div class=\"m-title\">\n {{ contactInfo.description }}\n </div>\n }\n\n <form (submit)=\"handleSubmit($event)\" novalidate>\n <div class=\"m-inputs-container\">\n @if (hotels?.length) {\n <div class=\"m-input\">\n <!-- clase:full para q sea largo el input -->\n <select name=\"hotelId\" required>\n <option selected disabled value=\"\">\n @if (contactInfo.hotelDropTitle) {\n {{ contactInfo.hotelDropTitle }}\n }\n </option>\n\n @for (h of sortedHotels; track h.id) {\n <option [value]=\"h.id\">\n {{ h.name }}\n </option>\n }\n </select>\n\n <svg\n width=\"11\"\n height=\"6\"\n viewBox=\"0 0 11 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.87252 5.756L0.258221 1.41563C0.0922871 1.25955 -0.000596046 1.04818 3.8147e-06 0.82802C0.000602722 0.607855 0.094636 0.39693 0.261417 0.241647C0.428199 0.0863637 0.654065 -0.000558332 0.88933 2.69906e-06C1.12459 0.000563731 1.34999 0.0885619 1.51592 0.244639L5.48813 4.00549L9.48408 0.247203C9.65001 0.0911261 9.87541 0.00312796 10.1107 0.00256693C10.3459 0.0020059 10.5718 0.088928 10.7386 0.244211C10.9054 0.399495 10.9994 0.610419 11 0.830584C11.0006 1.05075 10.9077 1.26212 10.7418 1.4182L6.12931 5.75685C5.96252 5.9127 5.73641 6.00016 5.50072 6C5.26503 5.99984 5.03906 5.91207 4.87252 5.756Z\"\n fill=\"#515050\"\n />\n </svg>\n </div>\n }\n @if (consultTypes?.length) {\n <div class=\"m-input\">\n <select name=\"consultType\" required>\n <option selected disabled value=\"\">\n @if (contactInfo.dropdownTitle) {\n {{ contactInfo.dropdownTitle }}\n }\n </option>\n\n @for (\n opt of consultTypes;\n track $index\n ) {\n <option [value]=\"opt.consultTypeId\">\n {{ opt.name }}\n </option>\n }\n </select>\n\n <svg\n width=\"11\"\n height=\"6\"\n viewBox=\"0 0 11 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.87252 5.756L0.258221 1.41563C0.0922871 1.25955 -0.000596046 1.04818 3.8147e-06 0.82802C0.000602722 0.607855 0.094636 0.39693 0.261417 0.241647C0.428199 0.0863637 0.654065 -0.000558332 0.88933 2.69906e-06C1.12459 0.000563731 1.34999 0.0885619 1.51592 0.244639L5.48813 4.00549L9.48408 0.247203C9.65001 0.0911261 9.87541 0.00312796 10.1107 0.00256693C10.3459 0.0020059 10.5718 0.088928 10.7386 0.244211C10.9054 0.399495 10.9994 0.610419 11 0.830584C11.0006 1.05075 10.9077 1.26212 10.7418 1.4182L6.12931 5.75685C5.96252 5.9127 5.73641 6.00016 5.50072 6C5.26503 5.99984 5.03906 5.91207 4.87252 5.756Z\"\n fill=\"#515050\"\n />\n </svg>\n </div>\n }\n <!-- Name -->\n @if (contactInfo.inputName) {\n <div class=\"m-input\">\n <span>{{ contactInfo.inputName }}</span>\n <input\n [attr.name]=\"'nombre'\"\n [type]=\"'text'\"\n [required]=\"true\"\n placeholder=\"\"\n minlength=\"2\"\n />\n <svg\n width=\"12\"\n height=\"14\"\n viewBox=\"0 0 12 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <path\n d=\"M11.0253 9.12893C10.4087 8.51049 9.58738 8.16992 8.71198 8.16992H3.26716C2.39299 8.16992 1.57169 8.51049 0.953871 9.12893C0.335435 9.74675 -0.00452016 10.5681 -0.00390542 11.4422V12.8033C-0.00390542 13.1063 0.241993 13.3529 0.545679 13.3529C0.848134 13.3529 1.09465 13.107 1.09465 12.8033V11.4422C1.09465 10.8619 1.32087 10.3154 1.73153 9.90474C2.14033 9.4947 2.68623 9.26848 3.26778 9.26848H8.71321C9.29415 9.26848 9.84004 9.49409 10.2495 9.90474C10.6601 10.3142 10.8857 10.8607 10.8857 11.4422V12.8033C10.8857 13.1063 11.1316 13.3529 11.4353 13.3529C11.7378 13.3529 11.9843 13.107 11.9843 12.8033V11.4422C11.9843 10.5681 11.6437 9.74675 11.0253 9.12893Z\"\n fill=\"#515050\"\n />\n <path\n d=\"M5.98982 6.54337C7.7941 6.54337 9.2615 5.07597 9.2615 3.27168C9.2615 1.4674 7.7941 0 5.98982 0C4.18554 0 2.71875 1.4674 2.71875 3.27168C2.71875 5.07597 4.18554 6.54337 5.98982 6.54337ZM5.98982 1.09794C7.18858 1.09794 8.16357 2.07293 8.16357 3.27168C8.16357 4.47044 7.18858 5.44543 5.98982 5.44543C4.79168 5.44543 3.81669 4.47044 3.81669 3.27168C3.81669 2.07293 4.79168 1.09794 5.98982 1.09794Z\"\n fill=\"#515050\"\n />\n </g>\n </svg>\n </div>\n }\n <!-- Code -->\n @if (contactInfo.inputSurnames) {\n <div class=\"m-input\">\n <span>{{ contactInfo.inputSurnames }}</span>\n <input\n [attr.name]=\"'surname'\"\n [type]=\"'text'\"\n [required]=\"true\"\n placeholder=\"\"\n minlength=\"2\"\n />\n <svg\n width=\"12\"\n height=\"14\"\n viewBox=\"0 0 12 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <path\n d=\"M11.0253 9.12893C10.4087 8.51049 9.58738 8.16992 8.71198 8.16992H3.26716C2.39299 8.16992 1.57169 8.51049 0.953871 9.12893C0.335435 9.74675 -0.00452016 10.5681 -0.00390542 11.4422V12.8033C-0.00390542 13.1063 0.241993 13.3529 0.545679 13.3529C0.848134 13.3529 1.09465 13.107 1.09465 12.8033V11.4422C1.09465 10.8619 1.32087 10.3154 1.73153 9.90474C2.14033 9.4947 2.68623 9.26848 3.26778 9.26848H8.71321C9.29415 9.26848 9.84004 9.49409 10.2495 9.90474C10.6601 10.3142 10.8857 10.8607 10.8857 11.4422V12.8033C10.8857 13.1063 11.1316 13.3529 11.4353 13.3529C11.7378 13.3529 11.9843 13.107 11.9843 12.8033V11.4422C11.9843 10.5681 11.6437 9.74675 11.0253 9.12893Z\"\n fill=\"#515050\"\n />\n <path\n d=\"M5.98982 6.54337C7.7941 6.54337 9.2615 5.07597 9.2615 3.27168C9.2615 1.4674 7.7941 0 5.98982 0C4.18554 0 2.71875 1.4674 2.71875 3.27168C2.71875 5.07597 4.18554 6.54337 5.98982 6.54337ZM5.98982 1.09794C7.18858 1.09794 8.16357 2.07293 8.16357 3.27168C8.16357 4.47044 7.18858 5.44543 5.98982 5.44543C4.79168 5.44543 3.81669 4.47044 3.81669 3.27168C3.81669 2.07293 4.79168 1.09794 5.98982 1.09794Z\"\n fill=\"#515050\"\n />\n </g>\n </svg>\n </div>\n }\n <!-- Email -->\n @if (contactInfo.inputEmail) {\n <div class=\"m-input\">\n <span>{{ contactInfo.inputEmail }}</span>\n <input\n [attr.name]=\"'email'\"\n [type]=\"'email'\"\n [required]=\"true\"\n placeholder=\"\"\n pattern=\"^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\"\n />\n <svg\n width=\"16\"\n height=\"13\"\n viewBox=\"0 0 16 13\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.7149 12.7352H2.28514C1.67446 12.7352 1.10053 12.4976 0.669461 12.0657C0.237581 11.6338 0 11.0599 0 10.4492V2.29411C0 2.28758 0 2.28023 0 2.2737C0.00326564 1.66793 0.240847 1.09889 0.669461 0.669461C1.10053 0.237581 1.67446 0 2.28514 0H13.7149C14.3255 0 14.8995 0.237581 15.3305 0.669461C15.7592 1.09889 15.9967 1.66793 16 2.2737C16 2.28023 16 2.28758 16 2.29411V10.4492C16 11.0599 15.7624 11.6338 15.3305 12.0657C14.8995 12.4976 14.3255 12.7352 13.7149 12.7352ZM1.30544 3.50484V10.4484C1.30544 10.7064 1.40993 10.9587 1.5928 11.1407C1.77813 11.326 2.02387 11.4281 2.28593 11.4281H13.7157C13.9728 11.4281 14.2259 11.3236 14.4088 11.1407C14.5917 10.9587 14.6962 10.7064 14.6962 10.4484V3.50484L8.36331 7.7265C8.14451 7.87345 7.85793 7.87345 7.63913 7.7265L1.30544 3.50484ZM1.35686 1.96999L8 6.39901L14.6431 1.96999C14.595 1.82957 14.5158 1.70058 14.408 1.59282C14.2251 1.40994 13.9728 1.30544 13.7149 1.30544H2.28514C2.02389 1.30544 1.77733 1.40749 1.59201 1.59282C1.48424 1.70058 1.40503 1.82957 1.35686 1.96999Z\"\n fill=\"#515050\"\n />\n </svg>\n </div>\n }\n <!-- Telf -->\n @if (contactInfo.inputPhone) {\n <div class=\"m-input\">\n <span>{{ contactInfo.inputPhone }}</span>\n <input\n [attr.name]=\"'phone'\"\n [type]=\"'tel'\"\n [required]=\"true\"\n placeholder=\"\"\n pattern=\"^[0-9+\\-\\s()]{7,}$\"\n />\n <svg\n width=\"12\"\n height=\"14\"\n viewBox=\"0 0 12 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <path\n d=\"M11.0253 9.12893C10.4087 8.51049 9.58738 8.16992 8.71198 8.16992H3.26716C2.39299 8.16992 1.57169 8.51049 0.953871 9.12893C0.335435 9.74675 -0.00452016 10.5681 -0.00390542 11.4422V12.8033C-0.00390542 13.1063 0.241993 13.3529 0.545679 13.3529C0.848134 13.3529 1.09465 13.107 1.09465 12.8033V11.4422C1.09465 10.8619 1.32087 10.3154 1.73153 9.90474C2.14033 9.4947 2.68623 9.26848 3.26778 9.26848H8.71321C9.29415 9.26848 9.84004 9.49409 10.2495 9.90474C10.6601 10.3142 10.8857 10.8607 10.8857 11.4422V12.8033C10.8857 13.1063 11.1316 13.3529 11.4353 13.3529C11.7378 13.3529 11.9843 13.107 11.9843 12.8033V11.4422C11.9843 10.5681 11.6437 9.74675 11.0253 9.12893Z\"\n fill=\"#515050\"\n />\n <path\n d=\"M5.98982 6.54337C7.7941 6.54337 9.2615 5.07597 9.2615 3.27168C9.2615 1.4674 7.7941 0 5.98982 0C4.18554 0 2.71875 1.4674 2.71875 3.27168C2.71875 5.07597 4.18554 6.54337 5.98982 6.54337ZM5.98982 1.09794C7.18858 1.09794 8.16357 2.07293 8.16357 3.27168C8.16357 4.47044 7.18858 5.44543 5.98982 5.44543C4.79168 5.44543 3.81669 4.47044 3.81669 3.27168C3.81669 2.07293 4.79168 1.09794 5.98982 1.09794Z\"\n fill=\"#515050\"\n />\n </g>\n </svg>\n </div>\n }\n\n <div class=\"m-input\">\n @if (contactInfo.inputMessage) {\n <span>{{ contactInfo.inputMessage }}</span>\n <textarea\n rows=\"14\"\n [placeholder]=\"\n contactInfo.inputMessagePlaceHolder ??\n ''\n \"\n [attr.name]=\"'mensaje'\"\n required\n minlength=\"10\"\n ></textarea>\n }\n </div>\n </div>\n\n <div class=\"m-footer\">\n <div class=\"m-legal\">\n <div class=\"m-row\">\n <small></small>\n @if (contactInfo.errorRequired) {\n <span>{{\n contactInfo.errorRequired\n }}</span>\n }\n <!-- @if (submitAttempted && !isFormValid) {\n <span>{{\n contactInfo.errorRequired\n }}</span>*\n\n @if (submitError) {\n <span>{{ submitError }}</span>\n } -->\n </div>\n @if (contactInfo.conditions) {\n <div class=\"m-row\">\n <label>\n <input\n type=\"checkbox\"\n [attr.name]=\"'checkbox'\"\n [required]=\"true\"\n />\n @if (buttons?.[0]; as btn) {\n <a\n [href]=\"btn.url\"\n [linkType]=\"btn.linkType\"\n >\n <span>{{\n contactInfo.conditions\n }}</span>\n </a>\n } @else {\n <span>{{\n contactInfo.conditions\n }}</span>\n }\n </label>\n </div>\n }\n @if (contactInfo.conditions2) {\n <div class=\"m-row\">\n <label>\n <input\n type=\"checkbox\"\n [attr.name]=\"'checkbox2'\"\n [required]=\"false\"\n />\n <span>{{\n contactInfo.conditions2\n }}</span>\n </label>\n </div>\n }\n </div>\n @if (buttons?.[0]; as btn) {\n <button\n type=\"submit\"\n class=\"m-button-sm\"\n [disabled]=\"isSubmitting\"\n >\n <span>{{ btn?.label }}</span>\n </button>\n }\n </div>\n\n @if (contactInfo.note) {\n <div class=\"m-note\">\n {{ contactInfo.note }}\n </div>\n }\n </form>\n\n @if (multimedia?.imagenes?.[0]; as img) {\n <div class=\"m-img\">\n <img\n [src]=\"img.img?.src\"\n [alt]=\"img.img?.alt\"\n loading=\"lazy\"\n />\n </div>\n }\n </div>\n </div>\n </div>\n </section>\n}\n", styles: ["@charset \"UTF-8\";html{overflow-x:unset}.mdl-md004{position:relative}.mdl-md004 .m-float{position:absolute;left:-10rem;bottom:8rem;z-index:9}.mdl-md004 select{-webkit-appearance:none;appearance:none;background:transparent}.mdl-md004 select option{font-family:var(--font-text);font-size:1.4rem;font-weight:var(--w_text);color:var(--cl_dropdown-text)}.mdl-md004 .mdl-container{display:flex;flex-direction:row;gap:9rem;max-width:116.9rem;padding:18.4rem 0 8rem;position:relative}.mdl-md004 .mdl-container .m-left{width:calc(42% - 4.5rem);display:flex;flex-direction:column;gap:6rem;position:sticky;top:26.5rem;height:max-content}.mdl-md004 .mdl-container .m-left .m-title{font-family:jokker,sans-serif;font-weight:300;font-size:4.4rem;line-height:5.8rem}@media (max-width: 1366px){.mdl-md004 .mdl-container .m-left .m-title{font-size:3.6rem;line-height:4.8rem}}@media (max-width: 540px){.mdl-md004 .mdl-container .m-left .m-title{font-size:3rem;line-height:4rem}}@media (max-width: 375px){.mdl-md004 .mdl-container .m-left .m-title{font-size:2.4rem;line-height:3rem}}.mdl-md004 .mdl-container .m-left .m-title{color:#515050}.mdl-md004 .mdl-container .m-left .m-img{height:66rem}.mdl-md004 .mdl-container .m-left .m-img img{width:100%;height:100%;object-fit:cover}.mdl-md004 .mdl-container .m-right{width:calc(58% - 4.5rem)}.mdl-md004 .mdl-container .m-right .m-form-container{display:flex;flex-direction:column;gap:6rem}.mdl-md004 .mdl-container .m-right .m-form-container .m-title{color:#515050b2;text-align:end;font-family:jokker,sans-serif;font-weight:300;font-size:3.2rem;line-height:4.6rem}@media (max-width: 1366px){.mdl-md004 .mdl-container .m-right .m-form-container .m-title{font-size:2.8rem;line-height:3.8rem}}@media (max-width: 1080px){.mdl-md004 .mdl-container .m-right .m-form-container .m-title{font-size:3.2rem;line-height:4.6rem}}@media (max-width: 540px){.mdl-md004 .mdl-container .m-right .m-form-container .m-title{font-size:2.8rem;line-height:3.8rem}}@media (max-width: 375px){.mdl-md004 .mdl-container .m-right .m-form-container .m-title{font-size:2.2rem;line-height:3rem}}.mdl-md004 .mdl-container .m-right .m-form-container form{display:flex;flex-direction:column;gap:3rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-inputs-container{display:flex;flex-wrap:wrap;flex-direction:row;gap:2.5rem 3rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input{font-family:jokker,sans-serif;font-weight:400;font-size:1.3rem;color:#515050;width:calc(50% - 1.7rem);border:1px solid #e4e4e4;border-radius:2px;position:relative;display:flex;flex-direction:row;align-items:center;justify-content:space-between;cursor:pointer}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:hover svg path{transition:all .3s ease;fill:#ff4338}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input.full,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea){width:100%}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(input[required]):after,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(select[required]):after{content:\"\";position:absolute;left:-13px;background-color:transparent;width:5px;height:5px;border:1px solid #ff4338;border-radius:100%}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea[required]):after{content:\"\";position:absolute;left:-13px;top:2.5rem;background-color:transparent;width:5px;height:5px;border:1px solid #ff4338;border-radius:100%}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(input:focus) span,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(input:not(:placeholder-shown)) span,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea:focus) span,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea:not(:placeholder-shown)) span{transform:translateY(-170%);font-size:1rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea) span{top:2rem;transform:none}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea):has(textarea:focus) span,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea):has(textarea:not(:placeholder-shown)) span{transform:translateY(-100%)}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input select{width:100%;background-color:transparent;font-family:jokker,sans-serif;font-weight:400;font-size:1.3rem;color:#515050}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea{padding:3.3rem 2rem 1rem;resize:none}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input::placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input::-webkit-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input:-ms-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input::-ms-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea::placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea::-webkit-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea:-ms-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea::-ms-input-placeholder{color:transparent}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input select{padding:2.3rem 2rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input svg{position:absolute;top:50%;transform:translateY(-60%);right:2rem;pointer-events:none}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input span{position:absolute;top:50%;left:2rem;transform:translateY(-50%);transition:all .3s ease;pointer-events:none}.mdl-md004 .mdl-container .m-right .m-form-container form input[type=checkbox]{appearance:none;width:1.5rem;height:1.5rem;accent-color:#fff;border:1px solid #e4e4e4;border-radius:2px}.mdl-md004 .mdl-container .m-right .m-form-container form input[type=checkbox]:checked{background-image:url(/assets/babylon/svg/icons/input-check.svg);background-position:center;background-size:cover;background-repeat:no-repeat;background-size:80%}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer{display:flex;flex-direction:row;justify-content:space-between;gap:2rem;border-bottom:1px solid #e4e4e4;padding-bottom:4rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal{display:flex;flex-direction:column;gap:2.2rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal .m-row,.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal .m-row label{display:flex;flex-direction:row;gap:1rem;align-items:center}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal .m-row small{background-color:transparent;width:5px;height:5px;border:1px solid #ff4338;border-radius:100%;margin-right:3.5px;margin-left:2.5px}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal .m-row span{font-family:jokker,sans-serif;font-weight:400;font-size:1.3rem;line-height:24px;color:#515050b2;line-height:1.4}.mdl-md004 .mdl-container .m-right .m-form-container form .m-note{font-family:jokker,sans-serif;font-weight:400;font-size:1.3rem;line-height:24px;color:#515050b2}.mdl-md004 .mdl-container .m-right .m-form-container .m-img{display:none;width:85%;align-self:center}.mdl-md004 .mdl-container .m-right .m-form-container .m-img img{width:100%;height:100%;object-fit:cover}@media (max-width: 1366px){.mdl-md004 .m-float{left:-23rem}.mdl-md004 .mdl-container .m-left{top:25rem}}@media (max-width: 1080px){.mdl-md004{margin-bottom:12rem}.mdl-md004 .m-float{bottom:-4rem}.mdl-md004 .mdl-container{flex-direction:column;gap:2rem}.mdl-md004 .mdl-container .m-left{width:100%;position:relative;top:auto}.mdl-md004 .mdl-container .m-left .m-img{display:none}.mdl-md004 .mdl-container .m-right{width:100%}.mdl-md004 .mdl-container .m-right .m-form-container .m-title{text-align:start}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer{flex-wrap:wrap}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer button{margin:2rem auto 0}.mdl-md004 .mdl-container .m-right .m-form-container .m-img{display:block}}@media (max-width: 540px){.mdl-md004{margin-bottom:4rem}.mdl-md004 .m-float{height:27rem;left:-19rem;bottom:0}.mdl-md004 .mdl-container .m-right .m-form-container{gap:3rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-inputs-container{width:96%;align-self:end}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input{width:100%!important}.mdl-md004 .mdl-container .m-right .m-form-container .m-img{width:100%;height:40rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: BabylonLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href", "modalClick", "clickPopup", "disablePointerNone"], outputs: ["anchorClicked"] }] }); }
67
68
  }
68
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LisC3TxtImgCtComponent, decorators: [{
69
70
  type: Component,
70
- args: [{ selector: 'lis-c3-txt-img-ct', standalone: true, imports: [CommonModule], template: "@if (contactInfo) {\n <section class=\"mdl-md004\">\n @if (multimedia) {\n <img\n class=\"m-float\"\n [src]=\"\n multimedia.staticImagenes?.[0]?.img?.src ??\n '/assets/babylon/svg/others/mosaico.png'\n \"\n [alt]=\"multimedia.staticImagenes?.[0]?.img?.alt ?? 'alegria'\"\n loading=\"lazy\"\n />\n }\n <div class=\"mdl-container\">\n <div class=\"m-left\">\n @if (contactInfo.title) {\n <h2 class=\"m-title\">{{ contactInfo.title }}</h2>\n }\n @if (multimedia?.imagenes?.[0]; as img) {\n <div class=\"m-img\">\n <img\n [src]=\"img.img?.src\"\n [alt]=\"img.img?.alt\"\n loading=\"lazy\"\n />\n </div>\n }\n </div>\n\n <div class=\"m-right\">\n <div class=\"m-form-container\">\n @if (contactInfo.description) {\n <div class=\"m-title\">\n {{ contactInfo.description }}\n </div>\n }\n\n <form (submit)=\"handleSubmit($event)\" novalidate>\n <div class=\"m-inputs-container\">\n @if (hotels?.length) {\n <div class=\"m-input\">\n <!-- clase:full para q sea largo el input -->\n <select name=\"hotelId\" required>\n <option selected disabled value=\"\">\n @if (contactInfo.hotelDropTitle) {\n {{ contactInfo.hotelDropTitle }}\n }\n </option>\n\n @for (h of sortedHotels; track h.id) {\n <option [value]=\"h.id\">\n {{ h.name }}\n </option>\n }\n </select>\n\n <svg\n width=\"11\"\n height=\"6\"\n viewBox=\"0 0 11 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.87252 5.756L0.258221 1.41563C0.0922871 1.25955 -0.000596046 1.04818 3.8147e-06 0.82802C0.000602722 0.607855 0.094636 0.39693 0.261417 0.241647C0.428199 0.0863637 0.654065 -0.000558332 0.88933 2.69906e-06C1.12459 0.000563731 1.34999 0.0885619 1.51592 0.244639L5.48813 4.00549L9.48408 0.247203C9.65001 0.0911261 9.87541 0.00312796 10.1107 0.00256693C10.3459 0.0020059 10.5718 0.088928 10.7386 0.244211C10.9054 0.399495 10.9994 0.610419 11 0.830584C11.0006 1.05075 10.9077 1.26212 10.7418 1.4182L6.12931 5.75685C5.96252 5.9127 5.73641 6.00016 5.50072 6C5.26503 5.99984 5.03906 5.91207 4.87252 5.756Z\"\n fill=\"#515050\"\n />\n </svg>\n </div>\n }\n @if (consultTypes?.length) {\n <div class=\"m-input\">\n <select name=\"consultType\" required>\n <option selected disabled value=\"\">\n @if (contactInfo.dropdownTitle) {\n {{ contactInfo.dropdownTitle }}\n }\n </option>\n\n @for (\n opt of consultTypes;\n track $index\n ) {\n <option [value]=\"opt.consultTypeId\">\n {{ opt.name }}\n </option>\n }\n </select>\n\n <svg\n width=\"11\"\n height=\"6\"\n viewBox=\"0 0 11 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.87252 5.756L0.258221 1.41563C0.0922871 1.25955 -0.000596046 1.04818 3.8147e-06 0.82802C0.000602722 0.607855 0.094636 0.39693 0.261417 0.241647C0.428199 0.0863637 0.654065 -0.000558332 0.88933 2.69906e-06C1.12459 0.000563731 1.34999 0.0885619 1.51592 0.244639L5.48813 4.00549L9.48408 0.247203C9.65001 0.0911261 9.87541 0.00312796 10.1107 0.00256693C10.3459 0.0020059 10.5718 0.088928 10.7386 0.244211C10.9054 0.399495 10.9994 0.610419 11 0.830584C11.0006 1.05075 10.9077 1.26212 10.7418 1.4182L6.12931 5.75685C5.96252 5.9127 5.73641 6.00016 5.50072 6C5.26503 5.99984 5.03906 5.91207 4.87252 5.756Z\"\n fill=\"#515050\"\n />\n </svg>\n </div>\n }\n <!-- Name -->\n @if (contactInfo.inputName) {\n <div class=\"m-input\">\n <span>{{ contactInfo.inputName }}</span>\n <input\n [attr.name]=\"'nombre'\"\n [type]=\"'text'\"\n [required]=\"true\"\n placeholder=\"\"\n minlength=\"2\"\n />\n <svg\n width=\"12\"\n height=\"14\"\n viewBox=\"0 0 12 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <path\n d=\"M11.0253 9.12893C10.4087 8.51049 9.58738 8.16992 8.71198 8.16992H3.26716C2.39299 8.16992 1.57169 8.51049 0.953871 9.12893C0.335435 9.74675 -0.00452016 10.5681 -0.00390542 11.4422V12.8033C-0.00390542 13.1063 0.241993 13.3529 0.545679 13.3529C0.848134 13.3529 1.09465 13.107 1.09465 12.8033V11.4422C1.09465 10.8619 1.32087 10.3154 1.73153 9.90474C2.14033 9.4947 2.68623 9.26848 3.26778 9.26848H8.71321C9.29415 9.26848 9.84004 9.49409 10.2495 9.90474C10.6601 10.3142 10.8857 10.8607 10.8857 11.4422V12.8033C10.8857 13.1063 11.1316 13.3529 11.4353 13.3529C11.7378 13.3529 11.9843 13.107 11.9843 12.8033V11.4422C11.9843 10.5681 11.6437 9.74675 11.0253 9.12893Z\"\n fill=\"#515050\"\n />\n <path\n d=\"M5.98982 6.54337C7.7941 6.54337 9.2615 5.07597 9.2615 3.27168C9.2615 1.4674 7.7941 0 5.98982 0C4.18554 0 2.71875 1.4674 2.71875 3.27168C2.71875 5.07597 4.18554 6.54337 5.98982 6.54337ZM5.98982 1.09794C7.18858 1.09794 8.16357 2.07293 8.16357 3.27168C8.16357 4.47044 7.18858 5.44543 5.98982 5.44543C4.79168 5.44543 3.81669 4.47044 3.81669 3.27168C3.81669 2.07293 4.79168 1.09794 5.98982 1.09794Z\"\n fill=\"#515050\"\n />\n </g>\n </svg>\n </div>\n }\n <!-- Code -->\n @if (contactInfo.inputSurnames) {\n <div class=\"m-input\">\n <span>{{ contactInfo.inputSurnames }}</span>\n <input\n [attr.name]=\"'surname'\"\n [type]=\"'text'\"\n [required]=\"true\"\n placeholder=\"\"\n minlength=\"2\"\n />\n <svg\n width=\"12\"\n height=\"14\"\n viewBox=\"0 0 12 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <path\n d=\"M11.0253 9.12893C10.4087 8.51049 9.58738 8.16992 8.71198 8.16992H3.26716C2.39299 8.16992 1.57169 8.51049 0.953871 9.12893C0.335435 9.74675 -0.00452016 10.5681 -0.00390542 11.4422V12.8033C-0.00390542 13.1063 0.241993 13.3529 0.545679 13.3529C0.848134 13.3529 1.09465 13.107 1.09465 12.8033V11.4422C1.09465 10.8619 1.32087 10.3154 1.73153 9.90474C2.14033 9.4947 2.68623 9.26848 3.26778 9.26848H8.71321C9.29415 9.26848 9.84004 9.49409 10.2495 9.90474C10.6601 10.3142 10.8857 10.8607 10.8857 11.4422V12.8033C10.8857 13.1063 11.1316 13.3529 11.4353 13.3529C11.7378 13.3529 11.9843 13.107 11.9843 12.8033V11.4422C11.9843 10.5681 11.6437 9.74675 11.0253 9.12893Z\"\n fill=\"#515050\"\n />\n <path\n d=\"M5.98982 6.54337C7.7941 6.54337 9.2615 5.07597 9.2615 3.27168C9.2615 1.4674 7.7941 0 5.98982 0C4.18554 0 2.71875 1.4674 2.71875 3.27168C2.71875 5.07597 4.18554 6.54337 5.98982 6.54337ZM5.98982 1.09794C7.18858 1.09794 8.16357 2.07293 8.16357 3.27168C8.16357 4.47044 7.18858 5.44543 5.98982 5.44543C4.79168 5.44543 3.81669 4.47044 3.81669 3.27168C3.81669 2.07293 4.79168 1.09794 5.98982 1.09794Z\"\n fill=\"#515050\"\n />\n </g>\n </svg>\n </div>\n }\n <!-- Email -->\n @if (contactInfo.inputEmail) {\n <div class=\"m-input\">\n <span>{{ contactInfo.inputEmail }}</span>\n <input\n [attr.name]=\"'email'\"\n [type]=\"'email'\"\n [required]=\"true\"\n placeholder=\"\"\n pattern=\"^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\"\n />\n <svg\n width=\"16\"\n height=\"13\"\n viewBox=\"0 0 16 13\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.7149 12.7352H2.28514C1.67446 12.7352 1.10053 12.4976 0.669461 12.0657C0.237581 11.6338 0 11.0599 0 10.4492V2.29411C0 2.28758 0 2.28023 0 2.2737C0.00326564 1.66793 0.240847 1.09889 0.669461 0.669461C1.10053 0.237581 1.67446 0 2.28514 0H13.7149C14.3255 0 14.8995 0.237581 15.3305 0.669461C15.7592 1.09889 15.9967 1.66793 16 2.2737C16 2.28023 16 2.28758 16 2.29411V10.4492C16 11.0599 15.7624 11.6338 15.3305 12.0657C14.8995 12.4976 14.3255 12.7352 13.7149 12.7352ZM1.30544 3.50484V10.4484C1.30544 10.7064 1.40993 10.9587 1.5928 11.1407C1.77813 11.326 2.02387 11.4281 2.28593 11.4281H13.7157C13.9728 11.4281 14.2259 11.3236 14.4088 11.1407C14.5917 10.9587 14.6962 10.7064 14.6962 10.4484V3.50484L8.36331 7.7265C8.14451 7.87345 7.85793 7.87345 7.63913 7.7265L1.30544 3.50484ZM1.35686 1.96999L8 6.39901L14.6431 1.96999C14.595 1.82957 14.5158 1.70058 14.408 1.59282C14.2251 1.40994 13.9728 1.30544 13.7149 1.30544H2.28514C2.02389 1.30544 1.77733 1.40749 1.59201 1.59282C1.48424 1.70058 1.40503 1.82957 1.35686 1.96999Z\"\n fill=\"#515050\"\n />\n </svg>\n </div>\n }\n <!-- Telf -->\n @if (contactInfo.inputPhone) {\n <div class=\"m-input\">\n <span>{{ contactInfo.inputPhone }}</span>\n <input\n [attr.name]=\"'phone'\"\n [type]=\"'tel'\"\n [required]=\"true\"\n placeholder=\"\"\n pattern=\"^[0-9+\\-\\s()]{7,}$\"\n />\n <svg\n width=\"12\"\n height=\"14\"\n viewBox=\"0 0 12 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <path\n d=\"M11.0253 9.12893C10.4087 8.51049 9.58738 8.16992 8.71198 8.16992H3.26716C2.39299 8.16992 1.57169 8.51049 0.953871 9.12893C0.335435 9.74675 -0.00452016 10.5681 -0.00390542 11.4422V12.8033C-0.00390542 13.1063 0.241993 13.3529 0.545679 13.3529C0.848134 13.3529 1.09465 13.107 1.09465 12.8033V11.4422C1.09465 10.8619 1.32087 10.3154 1.73153 9.90474C2.14033 9.4947 2.68623 9.26848 3.26778 9.26848H8.71321C9.29415 9.26848 9.84004 9.49409 10.2495 9.90474C10.6601 10.3142 10.8857 10.8607 10.8857 11.4422V12.8033C10.8857 13.1063 11.1316 13.3529 11.4353 13.3529C11.7378 13.3529 11.9843 13.107 11.9843 12.8033V11.4422C11.9843 10.5681 11.6437 9.74675 11.0253 9.12893Z\"\n fill=\"#515050\"\n />\n <path\n d=\"M5.98982 6.54337C7.7941 6.54337 9.2615 5.07597 9.2615 3.27168C9.2615 1.4674 7.7941 0 5.98982 0C4.18554 0 2.71875 1.4674 2.71875 3.27168C2.71875 5.07597 4.18554 6.54337 5.98982 6.54337ZM5.98982 1.09794C7.18858 1.09794 8.16357 2.07293 8.16357 3.27168C8.16357 4.47044 7.18858 5.44543 5.98982 5.44543C4.79168 5.44543 3.81669 4.47044 3.81669 3.27168C3.81669 2.07293 4.79168 1.09794 5.98982 1.09794Z\"\n fill=\"#515050\"\n />\n </g>\n </svg>\n </div>\n }\n\n <div class=\"m-input\">\n @if (contactInfo.inputMessage) {\n <span>{{ contactInfo.inputMessage }}</span>\n <textarea\n rows=\"14\"\n [placeholder]=\"\n contactInfo.inputMessagePlaceHolder ??\n ''\n \"\n [attr.name]=\"'mensaje'\"\n required\n minlength=\"10\"\n ></textarea>\n }\n </div>\n </div>\n\n <div class=\"m-footer\">\n <div class=\"m-legal\">\n <div class=\"m-row\">\n <small></small>\n @if (contactInfo.errorRequired) {\n <span>{{\n contactInfo.errorRequired\n }}</span>\n }\n <!-- @if (submitAttempted && !isFormValid) {\n <span>{{\n contactInfo.errorRequired\n }}</span>*\n\n @if (submitError) {\n <span>{{ submitError }}</span>\n } -->\n </div>\n @if (contactInfo.conditions) {\n <div class=\"m-row\">\n <label>\n <input\n type=\"checkbox\"\n [attr.name]=\"'checkbox'\"\n [required]=\"true\"\n />\n <span>{{\n contactInfo.conditions\n }}</span>\n </label>\n </div>\n }\n @if (contactInfo.conditions2) {\n <div class=\"m-row\">\n <label>\n <input\n type=\"checkbox\"\n [attr.name]=\"'checkbox2'\"\n [required]=\"false\"\n />\n <span>{{\n contactInfo.conditions2\n }}</span>\n </label>\n </div>\n }\n </div>\n @if (buttons?.[0]; as btn) {\n <button\n type=\"submit\"\n class=\"m-button-sm\"\n [disabled]=\"isSubmitting\"\n >\n <span>{{ btn?.label }}</span>\n </button>\n }\n </div>\n\n @if (contactInfo.note) {\n <div class=\"m-note\">\n {{ contactInfo.note }}\n </div>\n }\n </form>\n\n @if (multimedia?.imagenes?.[0]; as img) {\n <div class=\"m-img\">\n <img\n [src]=\"img.img?.src\"\n [alt]=\"img.img?.alt\"\n loading=\"lazy\"\n />\n </div>\n }\n </div>\n </div>\n </div>\n </section>\n}\n", styles: ["@charset \"UTF-8\";html{overflow-x:unset}.mdl-md004{position:relative}.mdl-md004 .m-float{position:absolute;left:-10rem;bottom:8rem;z-index:9}.mdl-md004 select{-webkit-appearance:none;appearance:none;background:transparent}.mdl-md004 select option{font-family:var(--font-text);font-size:1.4rem;font-weight:var(--w_text);color:var(--cl_dropdown-text)}.mdl-md004 .mdl-container{display:flex;flex-direction:row;gap:9rem;max-width:116.9rem;padding:18.4rem 0 8rem;position:relative}.mdl-md004 .mdl-container .m-left{width:calc(42% - 4.5rem);display:flex;flex-direction:column;gap:6rem;position:sticky;top:26.5rem;height:max-content}.mdl-md004 .mdl-container .m-left .m-title{font-family:jokker,sans-serif;font-weight:300;font-size:4.4rem;line-height:5.8rem}@media (max-width: 1366px){.mdl-md004 .mdl-container .m-left .m-title{font-size:3.6rem;line-height:4.8rem}}@media (max-width: 540px){.mdl-md004 .mdl-container .m-left .m-title{font-size:3rem;line-height:4rem}}@media (max-width: 375px){.mdl-md004 .mdl-container .m-left .m-title{font-size:2.4rem;line-height:3rem}}.mdl-md004 .mdl-container .m-left .m-title{color:#515050}.mdl-md004 .mdl-container .m-left .m-img{height:66rem}.mdl-md004 .mdl-container .m-left .m-img img{width:100%;height:100%;object-fit:cover}.mdl-md004 .mdl-container .m-right{width:calc(58% - 4.5rem)}.mdl-md004 .mdl-container .m-right .m-form-container{display:flex;flex-direction:column;gap:6rem}.mdl-md004 .mdl-container .m-right .m-form-container .m-title{color:#515050b2;text-align:end;font-family:jokker,sans-serif;font-weight:300;font-size:3.2rem;line-height:4.6rem}@media (max-width: 1366px){.mdl-md004 .mdl-container .m-right .m-form-container .m-title{font-size:2.8rem;line-height:3.8rem}}@media (max-width: 1080px){.mdl-md004 .mdl-container .m-right .m-form-container .m-title{font-size:3.2rem;line-height:4.6rem}}@media (max-width: 540px){.mdl-md004 .mdl-container .m-right .m-form-container .m-title{font-size:2.8rem;line-height:3.8rem}}@media (max-width: 375px){.mdl-md004 .mdl-container .m-right .m-form-container .m-title{font-size:2.2rem;line-height:3rem}}.mdl-md004 .mdl-container .m-right .m-form-container form{display:flex;flex-direction:column;gap:3rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-inputs-container{display:flex;flex-wrap:wrap;flex-direction:row;gap:2.5rem 3rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input{font-family:jokker,sans-serif;font-weight:400;font-size:1.3rem;color:#515050;width:calc(50% - 1.7rem);border:1px solid #e4e4e4;border-radius:2px;position:relative;display:flex;flex-direction:row;align-items:center;justify-content:space-between;cursor:pointer}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:hover svg path{transition:all .3s ease;fill:#ff4338}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input.full,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea){width:100%}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(input[required]):after,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(select[required]):after{content:\"\";position:absolute;left:-13px;background-color:transparent;width:5px;height:5px;border:1px solid #ff4338;border-radius:100%}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea[required]):after{content:\"\";position:absolute;left:-13px;top:2.5rem;background-color:transparent;width:5px;height:5px;border:1px solid #ff4338;border-radius:100%}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(input:focus) span,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(input:not(:placeholder-shown)) span,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea:focus) span,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea:not(:placeholder-shown)) span{transform:translateY(-170%);font-size:1rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea) span{top:2rem;transform:none}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea):has(textarea:focus) span,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea):has(textarea:not(:placeholder-shown)) span{transform:translateY(-100%)}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input select{width:100%;background-color:transparent;font-family:jokker,sans-serif;font-weight:400;font-size:1.3rem;color:#515050}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea{padding:3.3rem 2rem 1rem;resize:none}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input::placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input::-webkit-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input:-ms-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input::-ms-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea::placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea::-webkit-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea:-ms-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea::-ms-input-placeholder{color:transparent}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input select{padding:2.3rem 2rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input svg{position:absolute;top:50%;transform:translateY(-60%);right:2rem;pointer-events:none}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input span{position:absolute;top:50%;left:2rem;transform:translateY(-50%);transition:all .3s ease;pointer-events:none}.mdl-md004 .mdl-container .m-right .m-form-container form input[type=checkbox]{appearance:none;width:1.5rem;height:1.5rem;accent-color:#fff;border:1px solid #e4e4e4;border-radius:2px}.mdl-md004 .mdl-container .m-right .m-form-container form input[type=checkbox]:checked{background-image:url(/assets/babylon/svg/icons/input-check.svg);background-position:center;background-size:cover;background-repeat:no-repeat;background-size:80%}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer{display:flex;flex-direction:row;justify-content:space-between;gap:2rem;border-bottom:1px solid #e4e4e4;padding-bottom:4rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal{display:flex;flex-direction:column;gap:2.2rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal .m-row,.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal .m-row label{display:flex;flex-direction:row;gap:1rem;align-items:center}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal .m-row small{background-color:transparent;width:5px;height:5px;border:1px solid #ff4338;border-radius:100%;margin-right:3.5px;margin-left:2.5px}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal .m-row span{font-family:jokker,sans-serif;font-weight:400;font-size:1.3rem;line-height:24px;color:#515050b2;line-height:1.4}.mdl-md004 .mdl-container .m-right .m-form-container form .m-note{font-family:jokker,sans-serif;font-weight:400;font-size:1.3rem;line-height:24px;color:#515050b2}.mdl-md004 .mdl-container .m-right .m-form-container .m-img{display:none;width:85%;align-self:center}.mdl-md004 .mdl-container .m-right .m-form-container .m-img img{width:100%;height:100%;object-fit:cover}@media (max-width: 1366px){.mdl-md004 .m-float{left:-23rem}.mdl-md004 .mdl-container .m-left{top:25rem}}@media (max-width: 1080px){.mdl-md004{margin-bottom:12rem}.mdl-md004 .m-float{bottom:-4rem}.mdl-md004 .mdl-container{flex-direction:column;gap:2rem}.mdl-md004 .mdl-container .m-left{width:100%;position:relative;top:auto}.mdl-md004 .mdl-container .m-left .m-img{display:none}.mdl-md004 .mdl-container .m-right{width:100%}.mdl-md004 .mdl-container .m-right .m-form-container .m-title{text-align:start}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer{flex-wrap:wrap}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer button{margin:2rem auto 0}.mdl-md004 .mdl-container .m-right .m-form-container .m-img{display:block}}@media (max-width: 540px){.mdl-md004{margin-bottom:4rem}.mdl-md004 .m-float{height:27rem;left:-19rem;bottom:0}.mdl-md004 .mdl-container .m-right .m-form-container{gap:3rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-inputs-container{width:96%;align-self:end}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input{width:100%!important}.mdl-md004 .mdl-container .m-right .m-form-container .m-img{width:100%;height:40rem}}\n"] }]
71
+ args: [{ selector: 'lis-c3-txt-img-ct', standalone: true, imports: [CommonModule, BabylonLinkTypeDirective], template: "@if (contactInfo) {\n <section class=\"mdl-md004\">\n @if (multimedia) {\n <img\n class=\"m-float\"\n [src]=\"\n multimedia.staticImagenes?.[0]?.img?.src ??\n '/assets/babylon/svg/others/mosaico.png'\n \"\n [alt]=\"multimedia.staticImagenes?.[0]?.img?.alt ?? 'alegria'\"\n loading=\"lazy\"\n />\n }\n <div class=\"mdl-container\">\n <div class=\"m-left\">\n @if (contactInfo.title) {\n <h2 class=\"m-title\">{{ contactInfo.title }}</h2>\n }\n @if (multimedia?.imagenes?.[0]; as img) {\n <div class=\"m-img\">\n <img\n [src]=\"img.img?.src\"\n [alt]=\"img.img?.alt\"\n loading=\"lazy\"\n />\n </div>\n }\n </div>\n\n <div class=\"m-right\">\n <div class=\"m-form-container\">\n @if (contactInfo.description) {\n <div class=\"m-title\">\n {{ contactInfo.description }}\n </div>\n }\n\n <form (submit)=\"handleSubmit($event)\" novalidate>\n <div class=\"m-inputs-container\">\n @if (hotels?.length) {\n <div class=\"m-input\">\n <!-- clase:full para q sea largo el input -->\n <select name=\"hotelId\" required>\n <option selected disabled value=\"\">\n @if (contactInfo.hotelDropTitle) {\n {{ contactInfo.hotelDropTitle }}\n }\n </option>\n\n @for (h of sortedHotels; track h.id) {\n <option [value]=\"h.id\">\n {{ h.name }}\n </option>\n }\n </select>\n\n <svg\n width=\"11\"\n height=\"6\"\n viewBox=\"0 0 11 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.87252 5.756L0.258221 1.41563C0.0922871 1.25955 -0.000596046 1.04818 3.8147e-06 0.82802C0.000602722 0.607855 0.094636 0.39693 0.261417 0.241647C0.428199 0.0863637 0.654065 -0.000558332 0.88933 2.69906e-06C1.12459 0.000563731 1.34999 0.0885619 1.51592 0.244639L5.48813 4.00549L9.48408 0.247203C9.65001 0.0911261 9.87541 0.00312796 10.1107 0.00256693C10.3459 0.0020059 10.5718 0.088928 10.7386 0.244211C10.9054 0.399495 10.9994 0.610419 11 0.830584C11.0006 1.05075 10.9077 1.26212 10.7418 1.4182L6.12931 5.75685C5.96252 5.9127 5.73641 6.00016 5.50072 6C5.26503 5.99984 5.03906 5.91207 4.87252 5.756Z\"\n fill=\"#515050\"\n />\n </svg>\n </div>\n }\n @if (consultTypes?.length) {\n <div class=\"m-input\">\n <select name=\"consultType\" required>\n <option selected disabled value=\"\">\n @if (contactInfo.dropdownTitle) {\n {{ contactInfo.dropdownTitle }}\n }\n </option>\n\n @for (\n opt of consultTypes;\n track $index\n ) {\n <option [value]=\"opt.consultTypeId\">\n {{ opt.name }}\n </option>\n }\n </select>\n\n <svg\n width=\"11\"\n height=\"6\"\n viewBox=\"0 0 11 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.87252 5.756L0.258221 1.41563C0.0922871 1.25955 -0.000596046 1.04818 3.8147e-06 0.82802C0.000602722 0.607855 0.094636 0.39693 0.261417 0.241647C0.428199 0.0863637 0.654065 -0.000558332 0.88933 2.69906e-06C1.12459 0.000563731 1.34999 0.0885619 1.51592 0.244639L5.48813 4.00549L9.48408 0.247203C9.65001 0.0911261 9.87541 0.00312796 10.1107 0.00256693C10.3459 0.0020059 10.5718 0.088928 10.7386 0.244211C10.9054 0.399495 10.9994 0.610419 11 0.830584C11.0006 1.05075 10.9077 1.26212 10.7418 1.4182L6.12931 5.75685C5.96252 5.9127 5.73641 6.00016 5.50072 6C5.26503 5.99984 5.03906 5.91207 4.87252 5.756Z\"\n fill=\"#515050\"\n />\n </svg>\n </div>\n }\n <!-- Name -->\n @if (contactInfo.inputName) {\n <div class=\"m-input\">\n <span>{{ contactInfo.inputName }}</span>\n <input\n [attr.name]=\"'nombre'\"\n [type]=\"'text'\"\n [required]=\"true\"\n placeholder=\"\"\n minlength=\"2\"\n />\n <svg\n width=\"12\"\n height=\"14\"\n viewBox=\"0 0 12 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <path\n d=\"M11.0253 9.12893C10.4087 8.51049 9.58738 8.16992 8.71198 8.16992H3.26716C2.39299 8.16992 1.57169 8.51049 0.953871 9.12893C0.335435 9.74675 -0.00452016 10.5681 -0.00390542 11.4422V12.8033C-0.00390542 13.1063 0.241993 13.3529 0.545679 13.3529C0.848134 13.3529 1.09465 13.107 1.09465 12.8033V11.4422C1.09465 10.8619 1.32087 10.3154 1.73153 9.90474C2.14033 9.4947 2.68623 9.26848 3.26778 9.26848H8.71321C9.29415 9.26848 9.84004 9.49409 10.2495 9.90474C10.6601 10.3142 10.8857 10.8607 10.8857 11.4422V12.8033C10.8857 13.1063 11.1316 13.3529 11.4353 13.3529C11.7378 13.3529 11.9843 13.107 11.9843 12.8033V11.4422C11.9843 10.5681 11.6437 9.74675 11.0253 9.12893Z\"\n fill=\"#515050\"\n />\n <path\n d=\"M5.98982 6.54337C7.7941 6.54337 9.2615 5.07597 9.2615 3.27168C9.2615 1.4674 7.7941 0 5.98982 0C4.18554 0 2.71875 1.4674 2.71875 3.27168C2.71875 5.07597 4.18554 6.54337 5.98982 6.54337ZM5.98982 1.09794C7.18858 1.09794 8.16357 2.07293 8.16357 3.27168C8.16357 4.47044 7.18858 5.44543 5.98982 5.44543C4.79168 5.44543 3.81669 4.47044 3.81669 3.27168C3.81669 2.07293 4.79168 1.09794 5.98982 1.09794Z\"\n fill=\"#515050\"\n />\n </g>\n </svg>\n </div>\n }\n <!-- Code -->\n @if (contactInfo.inputSurnames) {\n <div class=\"m-input\">\n <span>{{ contactInfo.inputSurnames }}</span>\n <input\n [attr.name]=\"'surname'\"\n [type]=\"'text'\"\n [required]=\"true\"\n placeholder=\"\"\n minlength=\"2\"\n />\n <svg\n width=\"12\"\n height=\"14\"\n viewBox=\"0 0 12 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <path\n d=\"M11.0253 9.12893C10.4087 8.51049 9.58738 8.16992 8.71198 8.16992H3.26716C2.39299 8.16992 1.57169 8.51049 0.953871 9.12893C0.335435 9.74675 -0.00452016 10.5681 -0.00390542 11.4422V12.8033C-0.00390542 13.1063 0.241993 13.3529 0.545679 13.3529C0.848134 13.3529 1.09465 13.107 1.09465 12.8033V11.4422C1.09465 10.8619 1.32087 10.3154 1.73153 9.90474C2.14033 9.4947 2.68623 9.26848 3.26778 9.26848H8.71321C9.29415 9.26848 9.84004 9.49409 10.2495 9.90474C10.6601 10.3142 10.8857 10.8607 10.8857 11.4422V12.8033C10.8857 13.1063 11.1316 13.3529 11.4353 13.3529C11.7378 13.3529 11.9843 13.107 11.9843 12.8033V11.4422C11.9843 10.5681 11.6437 9.74675 11.0253 9.12893Z\"\n fill=\"#515050\"\n />\n <path\n d=\"M5.98982 6.54337C7.7941 6.54337 9.2615 5.07597 9.2615 3.27168C9.2615 1.4674 7.7941 0 5.98982 0C4.18554 0 2.71875 1.4674 2.71875 3.27168C2.71875 5.07597 4.18554 6.54337 5.98982 6.54337ZM5.98982 1.09794C7.18858 1.09794 8.16357 2.07293 8.16357 3.27168C8.16357 4.47044 7.18858 5.44543 5.98982 5.44543C4.79168 5.44543 3.81669 4.47044 3.81669 3.27168C3.81669 2.07293 4.79168 1.09794 5.98982 1.09794Z\"\n fill=\"#515050\"\n />\n </g>\n </svg>\n </div>\n }\n <!-- Email -->\n @if (contactInfo.inputEmail) {\n <div class=\"m-input\">\n <span>{{ contactInfo.inputEmail }}</span>\n <input\n [attr.name]=\"'email'\"\n [type]=\"'email'\"\n [required]=\"true\"\n placeholder=\"\"\n pattern=\"^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\"\n />\n <svg\n width=\"16\"\n height=\"13\"\n viewBox=\"0 0 16 13\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.7149 12.7352H2.28514C1.67446 12.7352 1.10053 12.4976 0.669461 12.0657C0.237581 11.6338 0 11.0599 0 10.4492V2.29411C0 2.28758 0 2.28023 0 2.2737C0.00326564 1.66793 0.240847 1.09889 0.669461 0.669461C1.10053 0.237581 1.67446 0 2.28514 0H13.7149C14.3255 0 14.8995 0.237581 15.3305 0.669461C15.7592 1.09889 15.9967 1.66793 16 2.2737C16 2.28023 16 2.28758 16 2.29411V10.4492C16 11.0599 15.7624 11.6338 15.3305 12.0657C14.8995 12.4976 14.3255 12.7352 13.7149 12.7352ZM1.30544 3.50484V10.4484C1.30544 10.7064 1.40993 10.9587 1.5928 11.1407C1.77813 11.326 2.02387 11.4281 2.28593 11.4281H13.7157C13.9728 11.4281 14.2259 11.3236 14.4088 11.1407C14.5917 10.9587 14.6962 10.7064 14.6962 10.4484V3.50484L8.36331 7.7265C8.14451 7.87345 7.85793 7.87345 7.63913 7.7265L1.30544 3.50484ZM1.35686 1.96999L8 6.39901L14.6431 1.96999C14.595 1.82957 14.5158 1.70058 14.408 1.59282C14.2251 1.40994 13.9728 1.30544 13.7149 1.30544H2.28514C2.02389 1.30544 1.77733 1.40749 1.59201 1.59282C1.48424 1.70058 1.40503 1.82957 1.35686 1.96999Z\"\n fill=\"#515050\"\n />\n </svg>\n </div>\n }\n <!-- Telf -->\n @if (contactInfo.inputPhone) {\n <div class=\"m-input\">\n <span>{{ contactInfo.inputPhone }}</span>\n <input\n [attr.name]=\"'phone'\"\n [type]=\"'tel'\"\n [required]=\"true\"\n placeholder=\"\"\n pattern=\"^[0-9+\\-\\s()]{7,}$\"\n />\n <svg\n width=\"12\"\n height=\"14\"\n viewBox=\"0 0 12 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g>\n <path\n d=\"M11.0253 9.12893C10.4087 8.51049 9.58738 8.16992 8.71198 8.16992H3.26716C2.39299 8.16992 1.57169 8.51049 0.953871 9.12893C0.335435 9.74675 -0.00452016 10.5681 -0.00390542 11.4422V12.8033C-0.00390542 13.1063 0.241993 13.3529 0.545679 13.3529C0.848134 13.3529 1.09465 13.107 1.09465 12.8033V11.4422C1.09465 10.8619 1.32087 10.3154 1.73153 9.90474C2.14033 9.4947 2.68623 9.26848 3.26778 9.26848H8.71321C9.29415 9.26848 9.84004 9.49409 10.2495 9.90474C10.6601 10.3142 10.8857 10.8607 10.8857 11.4422V12.8033C10.8857 13.1063 11.1316 13.3529 11.4353 13.3529C11.7378 13.3529 11.9843 13.107 11.9843 12.8033V11.4422C11.9843 10.5681 11.6437 9.74675 11.0253 9.12893Z\"\n fill=\"#515050\"\n />\n <path\n d=\"M5.98982 6.54337C7.7941 6.54337 9.2615 5.07597 9.2615 3.27168C9.2615 1.4674 7.7941 0 5.98982 0C4.18554 0 2.71875 1.4674 2.71875 3.27168C2.71875 5.07597 4.18554 6.54337 5.98982 6.54337ZM5.98982 1.09794C7.18858 1.09794 8.16357 2.07293 8.16357 3.27168C8.16357 4.47044 7.18858 5.44543 5.98982 5.44543C4.79168 5.44543 3.81669 4.47044 3.81669 3.27168C3.81669 2.07293 4.79168 1.09794 5.98982 1.09794Z\"\n fill=\"#515050\"\n />\n </g>\n </svg>\n </div>\n }\n\n <div class=\"m-input\">\n @if (contactInfo.inputMessage) {\n <span>{{ contactInfo.inputMessage }}</span>\n <textarea\n rows=\"14\"\n [placeholder]=\"\n contactInfo.inputMessagePlaceHolder ??\n ''\n \"\n [attr.name]=\"'mensaje'\"\n required\n minlength=\"10\"\n ></textarea>\n }\n </div>\n </div>\n\n <div class=\"m-footer\">\n <div class=\"m-legal\">\n <div class=\"m-row\">\n <small></small>\n @if (contactInfo.errorRequired) {\n <span>{{\n contactInfo.errorRequired\n }}</span>\n }\n <!-- @if (submitAttempted && !isFormValid) {\n <span>{{\n contactInfo.errorRequired\n }}</span>*\n\n @if (submitError) {\n <span>{{ submitError }}</span>\n } -->\n </div>\n @if (contactInfo.conditions) {\n <div class=\"m-row\">\n <label>\n <input\n type=\"checkbox\"\n [attr.name]=\"'checkbox'\"\n [required]=\"true\"\n />\n @if (buttons?.[0]; as btn) {\n <a\n [href]=\"btn.url\"\n [linkType]=\"btn.linkType\"\n >\n <span>{{\n contactInfo.conditions\n }}</span>\n </a>\n } @else {\n <span>{{\n contactInfo.conditions\n }}</span>\n }\n </label>\n </div>\n }\n @if (contactInfo.conditions2) {\n <div class=\"m-row\">\n <label>\n <input\n type=\"checkbox\"\n [attr.name]=\"'checkbox2'\"\n [required]=\"false\"\n />\n <span>{{\n contactInfo.conditions2\n }}</span>\n </label>\n </div>\n }\n </div>\n @if (buttons?.[0]; as btn) {\n <button\n type=\"submit\"\n class=\"m-button-sm\"\n [disabled]=\"isSubmitting\"\n >\n <span>{{ btn?.label }}</span>\n </button>\n }\n </div>\n\n @if (contactInfo.note) {\n <div class=\"m-note\">\n {{ contactInfo.note }}\n </div>\n }\n </form>\n\n @if (multimedia?.imagenes?.[0]; as img) {\n <div class=\"m-img\">\n <img\n [src]=\"img.img?.src\"\n [alt]=\"img.img?.alt\"\n loading=\"lazy\"\n />\n </div>\n }\n </div>\n </div>\n </div>\n </section>\n}\n", styles: ["@charset \"UTF-8\";html{overflow-x:unset}.mdl-md004{position:relative}.mdl-md004 .m-float{position:absolute;left:-10rem;bottom:8rem;z-index:9}.mdl-md004 select{-webkit-appearance:none;appearance:none;background:transparent}.mdl-md004 select option{font-family:var(--font-text);font-size:1.4rem;font-weight:var(--w_text);color:var(--cl_dropdown-text)}.mdl-md004 .mdl-container{display:flex;flex-direction:row;gap:9rem;max-width:116.9rem;padding:18.4rem 0 8rem;position:relative}.mdl-md004 .mdl-container .m-left{width:calc(42% - 4.5rem);display:flex;flex-direction:column;gap:6rem;position:sticky;top:26.5rem;height:max-content}.mdl-md004 .mdl-container .m-left .m-title{font-family:jokker,sans-serif;font-weight:300;font-size:4.4rem;line-height:5.8rem}@media (max-width: 1366px){.mdl-md004 .mdl-container .m-left .m-title{font-size:3.6rem;line-height:4.8rem}}@media (max-width: 540px){.mdl-md004 .mdl-container .m-left .m-title{font-size:3rem;line-height:4rem}}@media (max-width: 375px){.mdl-md004 .mdl-container .m-left .m-title{font-size:2.4rem;line-height:3rem}}.mdl-md004 .mdl-container .m-left .m-title{color:#515050}.mdl-md004 .mdl-container .m-left .m-img{height:66rem}.mdl-md004 .mdl-container .m-left .m-img img{width:100%;height:100%;object-fit:cover}.mdl-md004 .mdl-container .m-right{width:calc(58% - 4.5rem)}.mdl-md004 .mdl-container .m-right .m-form-container{display:flex;flex-direction:column;gap:6rem}.mdl-md004 .mdl-container .m-right .m-form-container .m-title{color:#515050b2;text-align:end;font-family:jokker,sans-serif;font-weight:300;font-size:3.2rem;line-height:4.6rem}@media (max-width: 1366px){.mdl-md004 .mdl-container .m-right .m-form-container .m-title{font-size:2.8rem;line-height:3.8rem}}@media (max-width: 1080px){.mdl-md004 .mdl-container .m-right .m-form-container .m-title{font-size:3.2rem;line-height:4.6rem}}@media (max-width: 540px){.mdl-md004 .mdl-container .m-right .m-form-container .m-title{font-size:2.8rem;line-height:3.8rem}}@media (max-width: 375px){.mdl-md004 .mdl-container .m-right .m-form-container .m-title{font-size:2.2rem;line-height:3rem}}.mdl-md004 .mdl-container .m-right .m-form-container form{display:flex;flex-direction:column;gap:3rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-inputs-container{display:flex;flex-wrap:wrap;flex-direction:row;gap:2.5rem 3rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input{font-family:jokker,sans-serif;font-weight:400;font-size:1.3rem;color:#515050;width:calc(50% - 1.7rem);border:1px solid #e4e4e4;border-radius:2px;position:relative;display:flex;flex-direction:row;align-items:center;justify-content:space-between;cursor:pointer}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:hover svg path{transition:all .3s ease;fill:#ff4338}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input.full,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea){width:100%}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(input[required]):after,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(select[required]):after{content:\"\";position:absolute;left:-13px;background-color:transparent;width:5px;height:5px;border:1px solid #ff4338;border-radius:100%}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea[required]):after{content:\"\";position:absolute;left:-13px;top:2.5rem;background-color:transparent;width:5px;height:5px;border:1px solid #ff4338;border-radius:100%}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(input:focus) span,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(input:not(:placeholder-shown)) span,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea:focus) span,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea:not(:placeholder-shown)) span{transform:translateY(-170%);font-size:1rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea) span{top:2rem;transform:none}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea):has(textarea:focus) span,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input:has(textarea):has(textarea:not(:placeholder-shown)) span{transform:translateY(-100%)}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input select{width:100%;background-color:transparent;font-family:jokker,sans-serif;font-weight:400;font-size:1.3rem;color:#515050}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea{padding:3.3rem 2rem 1rem;resize:none}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input::placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input::-webkit-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input:-ms-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input input::-ms-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea::placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea::-webkit-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea:-ms-input-placeholder,.mdl-md004 .mdl-container .m-right .m-form-container form .m-input textarea::-ms-input-placeholder{color:transparent}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input select{padding:2.3rem 2rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input svg{position:absolute;top:50%;transform:translateY(-60%);right:2rem;pointer-events:none}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input span{position:absolute;top:50%;left:2rem;transform:translateY(-50%);transition:all .3s ease;pointer-events:none}.mdl-md004 .mdl-container .m-right .m-form-container form input[type=checkbox]{appearance:none;width:1.5rem;height:1.5rem;accent-color:#fff;border:1px solid #e4e4e4;border-radius:2px}.mdl-md004 .mdl-container .m-right .m-form-container form input[type=checkbox]:checked{background-image:url(/assets/babylon/svg/icons/input-check.svg);background-position:center;background-size:cover;background-repeat:no-repeat;background-size:80%}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer{display:flex;flex-direction:row;justify-content:space-between;gap:2rem;border-bottom:1px solid #e4e4e4;padding-bottom:4rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal{display:flex;flex-direction:column;gap:2.2rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal .m-row,.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal .m-row label{display:flex;flex-direction:row;gap:1rem;align-items:center}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal .m-row small{background-color:transparent;width:5px;height:5px;border:1px solid #ff4338;border-radius:100%;margin-right:3.5px;margin-left:2.5px}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer .m-legal .m-row span{font-family:jokker,sans-serif;font-weight:400;font-size:1.3rem;line-height:24px;color:#515050b2;line-height:1.4}.mdl-md004 .mdl-container .m-right .m-form-container form .m-note{font-family:jokker,sans-serif;font-weight:400;font-size:1.3rem;line-height:24px;color:#515050b2}.mdl-md004 .mdl-container .m-right .m-form-container .m-img{display:none;width:85%;align-self:center}.mdl-md004 .mdl-container .m-right .m-form-container .m-img img{width:100%;height:100%;object-fit:cover}@media (max-width: 1366px){.mdl-md004 .m-float{left:-23rem}.mdl-md004 .mdl-container .m-left{top:25rem}}@media (max-width: 1080px){.mdl-md004{margin-bottom:12rem}.mdl-md004 .m-float{bottom:-4rem}.mdl-md004 .mdl-container{flex-direction:column;gap:2rem}.mdl-md004 .mdl-container .m-left{width:100%;position:relative;top:auto}.mdl-md004 .mdl-container .m-left .m-img{display:none}.mdl-md004 .mdl-container .m-right{width:100%}.mdl-md004 .mdl-container .m-right .m-form-container .m-title{text-align:start}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer{flex-wrap:wrap}.mdl-md004 .mdl-container .m-right .m-form-container form .m-footer button{margin:2rem auto 0}.mdl-md004 .mdl-container .m-right .m-form-container .m-img{display:block}}@media (max-width: 540px){.mdl-md004{margin-bottom:4rem}.mdl-md004 .m-float{height:27rem;left:-19rem;bottom:0}.mdl-md004 .mdl-container .m-right .m-form-container{gap:3rem}.mdl-md004 .mdl-container .m-right .m-form-container form .m-inputs-container{width:96%;align-self:end}.mdl-md004 .mdl-container .m-right .m-form-container form .m-input{width:100%!important}.mdl-md004 .mdl-container .m-right .m-form-container .m-img{width:100%;height:40rem}}\n"] }]
71
72
  }], propDecorators: { content: [{
72
73
  type: Input
73
74
  }], texts: [{
@@ -85,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
85
86
  }], formSubmit: [{
86
87
  type: Output
87
88
  }] } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzLWMzLXR4dC1pbWctY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZXJuYWwvY29yZS9saXMtYzMtdHh0LWltZy1jdC9saXMtYzMtdHh0LWltZy1jdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL2xpcy1jMy10eHQtaW1nLWN0L2xpcy1jMy10eHQtaW1nLWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBU3ZFLE9BQU8sY0FBYyxNQUFNLGtDQUFrQyxDQUFDOztBQWE5RCxNQUFNLE9BQU8sc0JBQXNCO0lBUG5DO1FBUXFCLG9CQUFlLEdBQzVCLGNBQXNDLENBQUM7UUFFbEMsWUFBTyxHQUF5QixJQUFJLENBQUMsZUFBZSxDQUFDO1FBUXBELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUVwRSxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFFbEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7S0FvRXZCO0lBbEVHLFlBQVksQ0FBQyxLQUFhO1FBQ3RCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBWTtRQUNyQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFFeEIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQWdDLENBQUM7UUFDcEQsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBRWxCLDJEQUEyRDtRQUMzRCxnREFBZ0Q7UUFDaEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsNERBQTREO1lBQzVELElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE9BQU87U0FDVjtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUIsb0JBQW9CO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLGNBQWM7UUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBRU8sWUFBWSxDQUFDLElBQXFCO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBDLE1BQU0sT0FBTyxHQUE2QixFQUFFLENBQUM7UUFDN0MsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM1QixvQkFBb0I7WUFDcEIsTUFBTSxDQUFDLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUUzRCwrQ0FBK0M7WUFDL0MsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFXLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQVEsQ0FBQzthQUMzQjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsb0RBQW9EO1FBQ3BELE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBUyxDQUFDO1FBRXpELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUMvQixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ2pCLENBQUMsQ0FBTSxFQUFFLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FDdEQsQ0FBQztJQUNOLENBQUM7K0dBckZRLHNCQUFzQjttR0FBdEIsc0JBQXNCLDhSQ3ZCbkMsK3hwQkE4VEEsbTRSRDNTYyxZQUFZOzs0RkFJYixzQkFBc0I7a0JBUGxDLFNBQVM7K0JBQ0ksbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQzs4QkFRZCxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBCYWJ5bG9uQnV0dG9uSSxcbiAgICBCYWJ5bG9uQ29udGFjdEluZm9JLFxuICAgIEJhYnlsb25NdWx0aW1lZGlhSSxcbiAgICBCYWJ5bG9uVGV4dEluZm9JLFxufSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvbnN1bHRJIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9iYWJ5bG9uLWNvbnN1bHQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhYnlsb25Ib3RlbEdsb2JhbEl0ZW0gfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzL2JhYnlsb24taG90ZWwuaW50ZXJmYWNlJztcbmltcG9ydCBkZWZhdWx0Q29udGVudCBmcm9tICcuL2xpcy1jMy10eHQtaW1nLWN0LmNvbnRlbnQuanNvbic7XG5pbXBvcnQge1xuICAgIExpc0MzVHh0SW1nQ3RDb250ZW50LFxuICAgIExpc0MzVHh0SW1nQ3RGb3JtUGF5bG9hZCxcbn0gZnJvbSAnLi9saXMtYzMtdHh0LWltZy1jdC5pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaXMtYzMtdHh0LWltZy1jdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGlzLWMzLXR4dC1pbWctY3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9saXMtYzMtdHh0LWltZy1jdC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIExpc0MzVHh0SW1nQ3RDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmFsbGJhY2tDb250ZW50OiBMaXNDM1R4dEltZ0N0Q29udGVudCA9XG4gICAgICAgIGRlZmF1bHRDb250ZW50IGFzIExpc0MzVHh0SW1nQ3RDb250ZW50O1xuXG4gICAgQElucHV0KCkgY29udGVudDogTGlzQzNUeHRJbWdDdENvbnRlbnQgPSB0aGlzLmZhbGxiYWNrQ29udGVudDtcblxuICAgIEBJbnB1dCgpIHRleHRzPzogQmFieWxvblRleHRJbmZvSTtcbiAgICBASW5wdXQoKSBtdWx0aW1lZGlhPzogQmFieWxvbk11bHRpbWVkaWFJO1xuICAgIEBJbnB1dCgpIGNvbnRhY3RJbmZvPzogQmFieWxvbkNvbnRhY3RJbmZvSTtcbiAgICBASW5wdXQoKSBjb25zdWx0VHlwZXM/OiBDb25zdWx0SVtdO1xuICAgIEBJbnB1dCgpIGhvdGVscz86IEJhYnlsb25Ib3RlbEdsb2JhbEl0ZW1bXTtcbiAgICBASW5wdXQoKSBidXR0b25zPzogQmFieWxvbkJ1dHRvbklbXTtcbiAgICBAT3V0cHV0KCkgZm9ybVN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzQzNUeHRJbWdDdEZvcm1QYXlsb2FkPigpO1xuXG4gICAgc3VibWl0QXR0ZW1wdGVkID0gZmFsc2U7XG4gICAgaXNTdWJtaXR0aW5nID0gZmFsc2U7XG4gICAgc3VibWl0RXJyb3I6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgaXNGb3JtVmFsaWQgPSBmYWxzZTtcblxuICAgIHRyYWNrQnlJbmRleChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIGhhbmRsZVN1Ym1pdChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB0aGlzLnN1Ym1pdEF0dGVtcHRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuc3VibWl0RXJyb3IgPSBudWxsO1xuXG4gICAgICAgIGNvbnN0IGZvcm0gPSBldmVudC50YXJnZXQgYXMgSFRNTEZvcm1FbGVtZW50IHwgbnVsbDtcbiAgICAgICAgaWYgKCFmb3JtKSByZXR1cm47XG5cbiAgICAgICAgLy8gRnVlcnphIGEgcXVlIGVsIG5hdmVnYWRvciBjYWxjdWxlIHZhbGlkaXR5IGNvcnJlY3RhbWVudGVcbiAgICAgICAgLy8gKHkgbWFycXVlIDppbnZhbGlkIHNpIHRpZW5lcyBlc3RpbG9zIG5hdGl2b3MpXG4gICAgICAgIHRoaXMuaXNGb3JtVmFsaWQgPSBmb3JtLmNoZWNrVmFsaWRpdHkoKTtcblxuICAgICAgICBpZiAoIXRoaXMuaXNGb3JtVmFsaWQpIHtcbiAgICAgICAgICAgIC8vIFNpIHF1aWVyZXMgcXVlIGVsIG5hdmVnYWRvciDigJxlbmZvcXVl4oCdIGVsIHByaW1lciBpbnbDoWxpZG86XG4gICAgICAgICAgICBmb3JtLnJlcG9ydFZhbGlkaXR5Py4oKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBheWxvYWQgPSB0aGlzLmJ1aWxkUGF5bG9hZChmb3JtKTtcblxuICAgICAgICB0aGlzLmlzU3VibWl0dGluZyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5mb3JtU3VibWl0LmVtaXQocGF5bG9hZCk7XG5cbiAgICAgICAgLy8gVVg6IMOpeGl0byArIHJlc2V0XG4gICAgICAgIGZvcm0ucmVzZXQoKTtcblxuICAgICAgICAvLyByZXNldCBmbGFnc1xuICAgICAgICB0aGlzLmlzU3VibWl0dGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzRm9ybVZhbGlkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3VibWl0QXR0ZW1wdGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidWlsZFBheWxvYWQoZm9ybTogSFRNTEZvcm1FbGVtZW50KTogTGlzQzNUeHRJbWdDdEZvcm1QYXlsb2FkIHtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoZm9ybSk7XG5cbiAgICAgICAgY29uc3QgcGF5bG9hZDogTGlzQzNUeHRJbWdDdEZvcm1QYXlsb2FkID0ge307XG4gICAgICAgIGZvcm1EYXRhLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICAgIC8vIG5vcm1hbGl6YSBzdHJpbmdzXG4gICAgICAgICAgICBjb25zdCB2ID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlLnRyaW0oKSA6IHZhbHVlO1xuXG4gICAgICAgICAgICAvLyBjaGVja2JveCAtPiBib29sZWFuIChGb3JtRGF0YSBkZXZ1ZWx2ZSBcIm9uXCIpXG4gICAgICAgICAgICBpZiAodiA9PT0gJ29uJykge1xuICAgICAgICAgICAgICAgIHBheWxvYWRba2V5XSA9IHRydWUgYXMgYW55O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXlsb2FkW2tleV0gPSB2IGFzIGFueTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRXh0cmEgw7p0aWw6IGd1YXJkYXIgdGltZXN0YW1wIHkgb3JpZ2VuIHNpIHF1aWVyZXNcbiAgICAgICAgcGF5bG9hZFsnc3VibWl0dGVkQXQnXSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSBhcyBhbnk7XG5cbiAgICAgICAgcmV0dXJuIHBheWxvYWQ7XG4gICAgfVxuXG4gICAgZ2V0IHNvcnRlZEhvdGVscygpOiBCYWJ5bG9uSG90ZWxHbG9iYWxJdGVtW10ge1xuICAgICAgICBjb25zdCBsaXN0ID0gdGhpcy5ob3RlbHMgPz8gW107XG4gICAgICAgIHJldHVybiBbLi4ubGlzdF0uc29ydChcbiAgICAgICAgICAgIChhOiBhbnksIGI6IGFueSkgPT4gKGEub3JkZXIgPz8gMCkgLSAoYi5vcmRlciA/PyAwKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIkBpZiAoY29udGFjdEluZm8pIHtcbiAgICA8c2VjdGlvbiBjbGFzcz1cIm1kbC1tZDAwNFwiPlxuICAgICAgICBAaWYgKG11bHRpbWVkaWEpIHtcbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm0tZmxvYXRcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiXG4gICAgICAgICAgICAgICAgICAgIG11bHRpbWVkaWEuc3RhdGljSW1hZ2VuZXM/LlswXT8uaW1nPy5zcmMgPz9cbiAgICAgICAgICAgICAgICAgICAgJy9hc3NldHMvYmFieWxvbi9zdmcvb3RoZXJzL21vc2FpY28ucG5nJ1xuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW2FsdF09XCJtdWx0aW1lZGlhLnN0YXRpY0ltYWdlbmVzPy5bMF0/LmltZz8uYWx0ID8/ICdhbGVncmlhJ1wiXG4gICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwibWRsLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tbGVmdFwiPlxuICAgICAgICAgICAgICAgIEBpZiAoY29udGFjdEluZm8udGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwibS10aXRsZVwiPnt7IGNvbnRhY3RJbmZvLnRpdGxlIH19PC9oMj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChtdWx0aW1lZGlhPy5pbWFnZW5lcz8uWzBdOyBhcyBpbWcpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0taW1nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpbWcuaW1nPy5zcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiaW1nLmltZz8uYWx0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tcmlnaHRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbnRhY3RJbmZvLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbnRhY3RJbmZvLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIDxmb3JtIChzdWJtaXQpPVwiaGFuZGxlU3VibWl0KCRldmVudClcIiBub3ZhbGlkYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0taW5wdXRzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaG90ZWxzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0taW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gY2xhc2U6ZnVsbCAgcGFyYSBxIHNlYSBsYXJnbyBlbCBpbnB1dCAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgbmFtZT1cImhvdGVsSWRcIiByZXF1aXJlZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkIGRpc2FibGVkIHZhbHVlPVwiXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoY29udGFjdEluZm8uaG90ZWxEcm9wVGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbnRhY3RJbmZvLmhvdGVsRHJvcFRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGggb2Ygc29ydGVkSG90ZWxzOyB0cmFjayBoLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cImguaWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGgubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTEgNlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNC44NzI1MiA1Ljc1NkwwLjI1ODIyMSAxLjQxNTYzQzAuMDkyMjg3MSAxLjI1OTU1IC0wLjAwMDU5NjA0NiAxLjA0ODE4IDMuODE0N2UtMDYgMC44MjgwMkMwLjAwMDYwMjcyMiAwLjYwNzg1NSAwLjA5NDYzNiAwLjM5NjkzIDAuMjYxNDE3IDAuMjQxNjQ3QzAuNDI4MTk5IDAuMDg2MzYzNyAwLjY1NDA2NSAtMC4wMDA1NTgzMzIgMC44ODkzMyAyLjY5OTA2ZS0wNkMxLjEyNDU5IDAuMDAwNTYzNzMxIDEuMzQ5OTkgMC4wODg1NjE5IDEuNTE1OTIgMC4yNDQ2MzlMNS40ODgxMyA0LjAwNTQ5TDkuNDg0MDggMC4yNDcyMDNDOS42NTAwMSAwLjA5MTEyNjEgOS44NzU0MSAwLjAwMzEyNzk2IDEwLjExMDcgMC4wMDI1NjY5M0MxMC4zNDU5IDAuMDAyMDA1OSAxMC41NzE4IDAuMDg4OTI4IDEwLjczODYgMC4yNDQyMTFDMTAuOTA1NCAwLjM5OTQ5NSAxMC45OTk0IDAuNjEwNDE5IDExIDAuODMwNTg0QzExLjAwMDYgMS4wNTA3NSAxMC45MDc3IDEuMjYyMTIgMTAuNzQxOCAxLjQxODJMNi4xMjkzMSA1Ljc1Njg1QzUuOTYyNTIgNS45MTI3IDUuNzM2NDEgNi4wMDAxNiA1LjUwMDcyIDZDNS4yNjUwMyA1Ljk5OTg0IDUuMDM5MDYgNS45MTIwNyA0Ljg3MjUyIDUuNzU2WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNTE1MDUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbnN1bHRUeXBlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9XCJjb25zdWx0VHlwZVwiIHJlcXVpcmVkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQgZGlzYWJsZWQgdmFsdWU9XCJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjb250YWN0SW5mby5kcm9wZG93blRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb250YWN0SW5mby5kcm9wZG93blRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHQgb2YgY29uc3VsdFR5cGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayAkaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwib3B0LmNvbnN1bHRUeXBlSWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9wdC5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxMSA2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00Ljg3MjUyIDUuNzU2TDAuMjU4MjIxIDEuNDE1NjNDMC4wOTIyODcxIDEuMjU5NTUgLTAuMDAwNTk2MDQ2IDEuMDQ4MTggMy44MTQ3ZS0wNiAwLjgyODAyQzAuMDAwNjAyNzIyIDAuNjA3ODU1IDAuMDk0NjM2IDAuMzk2OTMgMC4yNjE0MTcgMC4yNDE2NDdDMC40MjgxOTkgMC4wODYzNjM3IDAuNjU0MDY1IC0wLjAwMDU1ODMzMiAwLjg4OTMzIDIuNjk5MDZlLTA2QzEuMTI0NTkgMC4wMDA1NjM3MzEgMS4zNDk5OSAwLjA4ODU2MTkgMS41MTU5MiAwLjI0NDYzOUw1LjQ4ODEzIDQuMDA1NDlMOS40ODQwOCAwLjI0NzIwM0M5LjY1MDAxIDAuMDkxMTI2MSA5Ljg3NTQxIDAuMDAzMTI3OTYgMTAuMTEwNyAwLjAwMjU2NjkzQzEwLjM0NTkgMC4wMDIwMDU5IDEwLjU3MTggMC4wODg5MjggMTAuNzM4NiAwLjI0NDIxMUMxMC45MDU0IDAuMzk5NDk1IDEwLjk5OTQgMC42MTA0MTkgMTEgMC44MzA1ODRDMTEuMDAwNiAxLjA1MDc1IDEwLjkwNzcgMS4yNjIxMiAxMC43NDE4IDEuNDE4Mkw2LjEyOTMxIDUuNzU2ODVDNS45NjI1MiA1LjkxMjcgNS43MzY0MSA2LjAwMDE2IDUuNTAwNzIgNkM1LjI2NTAzIDUuOTk5ODQgNS4wMzkwNiA1LjkxMjA3IDQuODcyNTIgNS43NTZaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM1MTUwNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gTmFtZSAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbnRhY3RJbmZvLmlucHV0TmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1pbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY29udGFjdEluZm8uaW5wdXROYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIubmFtZV09XCInbm9tYnJlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmxlbmd0aD1cIjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxMiAxNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS4wMjUzIDkuMTI4OTNDMTAuNDA4NyA4LjUxMDQ5IDkuNTg3MzggOC4xNjk5MiA4LjcxMTk4IDguMTY5OTJIMy4yNjcxNkMyLjM5Mjk5IDguMTY5OTIgMS41NzE2OSA4LjUxMDQ5IDAuOTUzODcxIDkuMTI4OTNDMC4zMzU0MzUgOS43NDY3NSAtMC4wMDQ1MjAxNiAxMC41NjgxIC0wLjAwMzkwNTQyIDExLjQ0MjJWMTIuODAzM0MtMC4wMDM5MDU0MiAxMy4xMDYzIDAuMjQxOTkzIDEzLjM1MjkgMC41NDU2NzkgMTMuMzUyOUMwLjg0ODEzNCAxMy4zNTI5IDEuMDk0NjUgMTMuMTA3IDEuMDk0NjUgMTIuODAzM1YxMS40NDIyQzEuMDk0NjUgMTAuODYxOSAxLjMyMDg3IDEwLjMxNTQgMS43MzE1MyA5LjkwNDc0QzIuMTQwMzMgOS40OTQ3IDIuNjg2MjMgOS4yNjg0OCAzLjI2Nzc4IDkuMjY4NDhIOC43MTMyMUM5LjI5NDE1IDkuMjY4NDggOS44NDAwNCA5LjQ5NDA5IDEwLjI0OTUgOS45MDQ3NEMxMC42NjAxIDEwLjMxNDIgMTAuODg1NyAxMC44NjA3IDEwLjg4NTcgMTEuNDQyMlYxMi44MDMzQzEwLjg4NTcgMTMuMTA2MyAxMS4xMzE2IDEzLjM1MjkgMTEuNDM1MyAxMy4zNTI5QzExLjczNzggMTMuMzUyOSAxMS45ODQzIDEzLjEwNyAxMS45ODQzIDEyLjgwMzNWMTEuNDQyMkMxMS45ODQzIDEwLjU2ODEgMTEuNjQzNyA5Ljc0Njc1IDExLjAyNTMgOS4xMjg5M1pcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM1MTUwNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk01Ljk4OTgyIDYuNTQzMzdDNy43OTQxIDYuNTQzMzcgOS4yNjE1IDUuMDc1OTcgOS4yNjE1IDMuMjcxNjhDOS4yNjE1IDEuNDY3NCA3Ljc5NDEgMCA1Ljk4OTgyIDBDNC4xODU1NCAwIDIuNzE4NzUgMS40Njc0IDIuNzE4NzUgMy4yNzE2OEMyLjcxODc1IDUuMDc1OTcgNC4xODU1NCA2LjU0MzM3IDUuOTg5ODIgNi41NDMzN1pNNS45ODk4MiAxLjA5Nzk0QzcuMTg4NTggMS4wOTc5NCA4LjE2MzU3IDIuMDcyOTMgOC4xNjM1NyAzLjI3MTY4QzguMTYzNTcgNC40NzA0NCA3LjE4ODU4IDUuNDQ1NDMgNS45ODk4MiA1LjQ0NTQzQzQuNzkxNjggNS40NDU0MyAzLjgxNjY5IDQuNDcwNDQgMy44MTY2OSAzLjI3MTY4QzMuODE2NjkgMi4wNzI5MyA0Ljc5MTY4IDEuMDk3OTQgNS45ODk4MiAxLjA5Nzk0WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzUxNTA1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIENvZGUgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjb250YWN0SW5mby5pbnB1dFN1cm5hbWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBjb250YWN0SW5mby5pbnB1dFN1cm5hbWVzIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIubmFtZV09XCInc3VybmFtZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5sZW5ndGg9XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTIgMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEuMDI1MyA5LjEyODkzQzEwLjQwODcgOC41MTA0OSA5LjU4NzM4IDguMTY5OTIgOC43MTE5OCA4LjE2OTkySDMuMjY3MTZDMi4zOTI5OSA4LjE2OTkyIDEuNTcxNjkgOC41MTA0OSAwLjk1Mzg3MSA5LjEyODkzQzAuMzM1NDM1IDkuNzQ2NzUgLTAuMDA0NTIwMTYgMTAuNTY4MSAtMC4wMDM5MDU0MiAxMS40NDIyVjEyLjgwMzNDLTAuMDAzOTA1NDIgMTMuMTA2MyAwLjI0MTk5MyAxMy4zNTI5IDAuNTQ1Njc5IDEzLjM1MjlDMC44NDgxMzQgMTMuMzUyOSAxLjA5NDY1IDEzLjEwNyAxLjA5NDY1IDEyLjgwMzNWMTEuNDQyMkMxLjA5NDY1IDEwLjg2MTkgMS4zMjA4NyAxMC4zMTU0IDEuNzMxNTMgOS45MDQ3NEMyLjE0MDMzIDkuNDk0NyAyLjY4NjIzIDkuMjY4NDggMy4yNjc3OCA5LjI2ODQ4SDguNzEzMjFDOS4yOTQxNSA5LjI2ODQ4IDkuODQwMDQgOS40OTQwOSAxMC4yNDk1IDkuOTA0NzRDMTAuNjYwMSAxMC4zMTQyIDEwLjg4NTcgMTAuODYwNyAxMC44ODU3IDExLjQ0MjJWMTIuODAzM0MxMC44ODU3IDEzLjEwNjMgMTEuMTMxNiAxMy4zNTI5IDExLjQzNTMgMTMuMzUyOUMxMS43Mzc4IDEzLjM1MjkgMTEuOTg0MyAxMy4xMDcgMTEuOTg0MyAxMi44MDMzVjExLjQ0MjJDMTEuOTg0MyAxMC41NjgxIDExLjY0MzcgOS43NDY3NSAxMS4wMjUzIDkuMTI4OTNaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNTE1MDUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNS45ODk4MiA2LjU0MzM3QzcuNzk0MSA2LjU0MzM3IDkuMjYxNSA1LjA3NTk3IDkuMjYxNSAzLjI3MTY4QzkuMjYxNSAxLjQ2NzQgNy43OTQxIDAgNS45ODk4MiAwQzQuMTg1NTQgMCAyLjcxODc1IDEuNDY3NCAyLjcxODc1IDMuMjcxNjhDMi43MTg3NSA1LjA3NTk3IDQuMTg1NTQgNi41NDMzNyA1Ljk4OTgyIDYuNTQzMzdaTTUuOTg5ODIgMS4wOTc5NEM3LjE4ODU4IDEuMDk3OTQgOC4xNjM1NyAyLjA3MjkzIDguMTYzNTcgMy4yNzE2OEM4LjE2MzU3IDQuNDcwNDQgNy4xODg1OCA1LjQ0NTQzIDUuOTg5ODIgNS40NDU0M0M0Ljc5MTY4IDUuNDQ1NDMgMy44MTY2OSA0LjQ3MDQ0IDMuODE2NjkgMy4yNzE2OEMzLjgxNjY5IDIuMDcyOTMgNC43OTE2OCAxLjA5Nzk0IDUuOTg5ODIgMS4wOTc5NFpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM1MTUwNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBFbWFpbCAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbnRhY3RJbmZvLmlucHV0RW1haWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0taW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGNvbnRhY3RJbmZvLmlucHV0RW1haWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cIidlbWFpbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidlbWFpbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybj1cIl5bXlxcc0BdK0BbXlxcc0BdK1xcLlteXFxzQF17Mix9JFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjEzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDEzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy43MTQ5IDEyLjczNTJIMi4yODUxNEMxLjY3NDQ2IDEyLjczNTIgMS4xMDA1MyAxMi40OTc2IDAuNjY5NDYxIDEyLjA2NTdDMC4yMzc1ODEgMTEuNjMzOCAwIDExLjA1OTkgMCAxMC40NDkyVjIuMjk0MTFDMCAyLjI4NzU4IDAgMi4yODAyMyAwIDIuMjczN0MwLjAwMzI2NTY0IDEuNjY3OTMgMC4yNDA4NDcgMS4wOTg4OSAwLjY2OTQ2MSAwLjY2OTQ2MUMxLjEwMDUzIDAuMjM3NTgxIDEuNjc0NDYgMCAyLjI4NTE0IDBIMTMuNzE0OUMxNC4zMjU1IDAgMTQuODk5NSAwLjIzNzU4MSAxNS4zMzA1IDAuNjY5NDYxQzE1Ljc1OTIgMS4wOTg4OSAxNS45OTY3IDEuNjY3OTMgMTYgMi4yNzM3QzE2IDIuMjgwMjMgMTYgMi4yODc1OCAxNiAyLjI5NDExVjEwLjQ0OTJDMTYgMTEuMDU5OSAxNS43NjI0IDExLjYzMzggMTUuMzMwNSAxMi4wNjU3QzE0Ljg5OTUgMTIuNDk3NiAxNC4zMjU1IDEyLjczNTIgMTMuNzE0OSAxMi43MzUyWk0xLjMwNTQ0IDMuNTA0ODRWMTAuNDQ4NEMxLjMwNTQ0IDEwLjcwNjQgMS40MDk5MyAxMC45NTg3IDEuNTkyOCAxMS4xNDA3QzEuNzc4MTMgMTEuMzI2IDIuMDIzODcgMTEuNDI4MSAyLjI4NTkzIDExLjQyODFIMTMuNzE1N0MxMy45NzI4IDExLjQyODEgMTQuMjI1OSAxMS4zMjM2IDE0LjQwODggMTEuMTQwN0MxNC41OTE3IDEwLjk1ODcgMTQuNjk2MiAxMC43MDY0IDE0LjY5NjIgMTAuNDQ4NFYzLjUwNDg0TDguMzYzMzEgNy43MjY1QzguMTQ0NTEgNy44NzM0NSA3Ljg1NzkzIDcuODczNDUgNy42MzkxMyA3LjcyNjVMMS4zMDU0NCAzLjUwNDg0Wk0xLjM1Njg2IDEuOTY5OTlMOCA2LjM5OTAxTDE0LjY0MzEgMS45Njk5OUMxNC41OTUgMS44Mjk1NyAxNC41MTU4IDEuNzAwNTggMTQuNDA4IDEuNTkyODJDMTQuMjI1MSAxLjQwOTk0IDEzLjk3MjggMS4zMDU0NCAxMy43MTQ5IDEuMzA1NDRIMi4yODUxNEMyLjAyMzg5IDEuMzA1NDQgMS43NzczMyAxLjQwNzQ5IDEuNTkyMDEgMS41OTI4MkMxLjQ4NDI0IDEuNzAwNTggMS40MDUwMyAxLjgyOTU3IDEuMzU2ODYgMS45Njk5OVpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzUxNTA1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBUZWxmIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoY29udGFjdEluZm8uaW5wdXRQaG9uZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1pbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY29udGFjdEluZm8uaW5wdXRQaG9uZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLm5hbWVdPVwiJ3Bob25lJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ3RlbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybj1cIl5bMC05K1xcLVxccygpXXs3LH0kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTIgMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEuMDI1MyA5LjEyODkzQzEwLjQwODcgOC41MTA0OSA5LjU4NzM4IDguMTY5OTIgOC43MTE5OCA4LjE2OTkySDMuMjY3MTZDMi4zOTI5OSA4LjE2OTkyIDEuNTcxNjkgOC41MTA0OSAwLjk1Mzg3MSA5LjEyODkzQzAuMzM1NDM1IDkuNzQ2NzUgLTAuMDA0NTIwMTYgMTAuNTY4MSAtMC4wMDM5MDU0MiAxMS40NDIyVjEyLjgwMzNDLTAuMDAzOTA1NDIgMTMuMTA2MyAwLjI0MTk5MyAxMy4zNTI5IDAuNTQ1Njc5IDEzLjM1MjlDMC44NDgxMzQgMTMuMzUyOSAxLjA5NDY1IDEzLjEwNyAxLjA5NDY1IDEyLjgwMzNWMTEuNDQyMkMxLjA5NDY1IDEwLjg2MTkgMS4zMjA4NyAxMC4zMTU0IDEuNzMxNTMgOS45MDQ3NEMyLjE0MDMzIDkuNDk0NyAyLjY4NjIzIDkuMjY4NDggMy4yNjc3OCA5LjI2ODQ4SDguNzEzMjFDOS4yOTQxNSA5LjI2ODQ4IDkuODQwMDQgOS40OTQwOSAxMC4yNDk1IDkuOTA0NzRDMTAuNjYwMSAxMC4zMTQyIDEwLjg4NTcgMTAuODYwNyAxMC44ODU3IDExLjQ0MjJWMTIuODAzM0MxMC44ODU3IDEzLjEwNjMgMTEuMTMxNiAxMy4zNTI5IDExLjQzNTMgMTMuMzUyOUMxMS43Mzc4IDEzLjM1MjkgMTEuOTg0MyAxMy4xMDcgMTEuOTg0MyAxMi44MDMzVjExLjQ0MjJDMTEuOTg0MyAxMC41NjgxIDExLjY0MzcgOS43NDY3NSAxMS4wMjUzIDkuMTI4OTNaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNTE1MDUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNS45ODk4MiA2LjU0MzM3QzcuNzk0MSA2LjU0MzM3IDkuMjYxNSA1LjA3NTk3IDkuMjYxNSAzLjI3MTY4QzkuMjYxNSAxLjQ2NzQgNy43OTQxIDAgNS45ODk4MiAwQzQuMTg1NTQgMCAyLjcxODc1IDEuNDY3NCAyLjcxODc1IDMuMjcxNjhDMi43MTg3NSA1LjA3NTk3IDQuMTg1NTQgNi41NDMzNyA1Ljk4OTgyIDYuNTQzMzdaTTUuOTg5ODIgMS4wOTc5NEM3LjE4ODU4IDEuMDk3OTQgOC4xNjM1NyAyLjA3MjkzIDguMTYzNTcgMy4yNzE2OEM4LjE2MzU3IDQuNDcwNDQgNy4xODg1OCA1LjQ0NTQzIDUuOTg5ODIgNS40NDU0M0M0Ljc5MTY4IDUuNDQ1NDMgMy44MTY2OSA0LjQ3MDQ0IDMuODE2NjkgMy4yNzE2OEMzLjgxNjY5IDIuMDcyOTMgNC43OTE2OCAxLjA5Nzk0IDUuOTg5ODIgMS4wOTc5NFpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM1MTUwNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1pbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbnRhY3RJbmZvLmlucHV0TWVzc2FnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY29udGFjdEluZm8uaW5wdXRNZXNzYWdlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz1cIjE0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhY3RJbmZvLmlucHV0TWVzc2FnZVBsYWNlSG9sZGVyID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cIidtZW5zYWplJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5sZW5ndGg9XCIxMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvb3RlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWxlZ2FsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsPjwvc21hbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbnRhY3RJbmZvLmVycm9yUmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWN0SW5mby5lcnJvclJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tICAgICAgQGlmIChzdWJtaXRBdHRlbXB0ZWQgJiYgIWlzRm9ybVZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFjdEluZm8uZXJyb3JSZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPipcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzdWJtaXRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHN1Ym1pdEVycm9yIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoY29udGFjdEluZm8uY29uZGl0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cIidjaGVja2JveCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFjdEluZm8uY29uZGl0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjb250YWN0SW5mby5jb25kaXRpb25zMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cIidjaGVja2JveDInXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWN0SW5mby5jb25kaXRpb25zMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGJ1dHRvbnM/LlswXTsgYXMgYnRuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLWJ1dHRvbi1zbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNTdWJtaXR0aW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYnRuPy5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoY29udGFjdEluZm8ubm90ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLW5vdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY29udGFjdEluZm8ubm90ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChtdWx0aW1lZGlhPy5pbWFnZW5lcz8uWzBdOyBhcyBpbWcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWltZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpbWcuaW1nPy5zcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cImltZy5pbWc/LmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG59XG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzLWMzLXR4dC1pbWctY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZXJuYWwvY29yZS9saXMtYzMtdHh0LWltZy1jdC9saXMtYzMtdHh0LWltZy1jdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9leHRlcm5hbC9jb3JlL2xpcy1jMy10eHQtaW1nLWN0L2xpcy1jMy10eHQtaW1nLWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBU2hHLE9BQU8sY0FBYyxNQUFNLGtDQUFrQyxDQUFDOztBQWE5RCxNQUFNLE9BQU8sc0JBQXNCO0lBUG5DO1FBUXFCLG9CQUFlLEdBQzVCLGNBQXNDLENBQUM7UUFFbEMsWUFBTyxHQUF5QixJQUFJLENBQUMsZUFBZSxDQUFDO1FBUXBELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUVwRSxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFFbEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7S0FvRXZCO0lBbEVHLFlBQVksQ0FBQyxLQUFhO1FBQ3RCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBWTtRQUNyQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFFeEIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQWdDLENBQUM7UUFDcEQsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBRWxCLDJEQUEyRDtRQUMzRCxnREFBZ0Q7UUFDaEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsNERBQTREO1lBQzVELElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE9BQU87U0FDVjtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUIsb0JBQW9CO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLGNBQWM7UUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBRU8sWUFBWSxDQUFDLElBQXFCO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBDLE1BQU0sT0FBTyxHQUE2QixFQUFFLENBQUM7UUFDN0MsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM1QixvQkFBb0I7WUFDcEIsTUFBTSxDQUFDLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUUzRCwrQ0FBK0M7WUFDL0MsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFXLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQVEsQ0FBQzthQUMzQjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsb0RBQW9EO1FBQ3BELE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBUyxDQUFDO1FBRXpELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUMvQixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ2pCLENBQUMsQ0FBTSxFQUFFLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FDdEQsQ0FBQztJQUNOLENBQUM7K0dBckZRLHNCQUFzQjttR0FBdEIsc0JBQXNCLDhSQ3hCbkMsODlxQkF5VUEsbTRSRHJUYyxZQUFZLCtCQUFFLHdCQUF3Qjs7NEZBSXZDLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDSSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHdCQUF3QixDQUFDOzhCQVF4QyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcy9saW5rLXR5cGUvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICAgIEJhYnlsb25CdXR0b25JLFxuICAgIEJhYnlsb25Db250YWN0SW5mb0ksXG4gICAgQmFieWxvbk11bHRpbWVkaWFJLFxuICAgIEJhYnlsb25UZXh0SW5mb0ksXG59IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ29uc3VsdEkgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzL2JhYnlsb24tY29uc3VsdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmFieWxvbkhvdGVsR2xvYmFsSXRlbSB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1ob3RlbC5pbnRlcmZhY2UnO1xuaW1wb3J0IGRlZmF1bHRDb250ZW50IGZyb20gJy4vbGlzLWMzLXR4dC1pbWctY3QuY29udGVudC5qc29uJztcbmltcG9ydCB7XG4gICAgTGlzQzNUeHRJbWdDdENvbnRlbnQsXG4gICAgTGlzQzNUeHRJbWdDdEZvcm1QYXlsb2FkLFxufSBmcm9tICcuL2xpcy1jMy10eHQtaW1nLWN0LmludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpcy1jMy10eHQtaW1nLWN0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpcy1jMy10eHQtaW1nLWN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vbGlzLWMzLXR4dC1pbWctY3QuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBMaXNDM1R4dEltZ0N0Q29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZhbGxiYWNrQ29udGVudDogTGlzQzNUeHRJbWdDdENvbnRlbnQgPVxuICAgICAgICBkZWZhdWx0Q29udGVudCBhcyBMaXNDM1R4dEltZ0N0Q29udGVudDtcblxuICAgIEBJbnB1dCgpIGNvbnRlbnQ6IExpc0MzVHh0SW1nQ3RDb250ZW50ID0gdGhpcy5mYWxsYmFja0NvbnRlbnQ7XG5cbiAgICBASW5wdXQoKSB0ZXh0cz86IEJhYnlsb25UZXh0SW5mb0k7XG4gICAgQElucHV0KCkgbXVsdGltZWRpYT86IEJhYnlsb25NdWx0aW1lZGlhSTtcbiAgICBASW5wdXQoKSBjb250YWN0SW5mbz86IEJhYnlsb25Db250YWN0SW5mb0k7XG4gICAgQElucHV0KCkgY29uc3VsdFR5cGVzPzogQ29uc3VsdElbXTtcbiAgICBASW5wdXQoKSBob3RlbHM/OiBCYWJ5bG9uSG90ZWxHbG9iYWxJdGVtW107XG4gICAgQElucHV0KCkgYnV0dG9ucz86IEJhYnlsb25CdXR0b25JW107XG4gICAgQE91dHB1dCgpIGZvcm1TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPExpc0MzVHh0SW1nQ3RGb3JtUGF5bG9hZD4oKTtcblxuICAgIHN1Ym1pdEF0dGVtcHRlZCA9IGZhbHNlO1xuICAgIGlzU3VibWl0dGluZyA9IGZhbHNlO1xuICAgIHN1Ym1pdEVycm9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIGlzRm9ybVZhbGlkID0gZmFsc2U7XG5cbiAgICB0cmFja0J5SW5kZXgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICBoYW5kbGVTdWJtaXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgdGhpcy5zdWJtaXRBdHRlbXB0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnN1Ym1pdEVycm9yID0gbnVsbDtcblxuICAgICAgICBjb25zdCBmb3JtID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxGb3JtRWxlbWVudCB8IG51bGw7XG4gICAgICAgIGlmICghZm9ybSkgcmV0dXJuO1xuXG4gICAgICAgIC8vIEZ1ZXJ6YSBhIHF1ZSBlbCBuYXZlZ2Fkb3IgY2FsY3VsZSB2YWxpZGl0eSBjb3JyZWN0YW1lbnRlXG4gICAgICAgIC8vICh5IG1hcnF1ZSA6aW52YWxpZCBzaSB0aWVuZXMgZXN0aWxvcyBuYXRpdm9zKVxuICAgICAgICB0aGlzLmlzRm9ybVZhbGlkID0gZm9ybS5jaGVja1ZhbGlkaXR5KCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzRm9ybVZhbGlkKSB7XG4gICAgICAgICAgICAvLyBTaSBxdWllcmVzIHF1ZSBlbCBuYXZlZ2Fkb3Ig4oCcZW5mb3F1ZeKAnSBlbCBwcmltZXIgaW52w6FsaWRvOlxuICAgICAgICAgICAgZm9ybS5yZXBvcnRWYWxpZGl0eT8uKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5idWlsZFBheWxvYWQoZm9ybSk7XG5cbiAgICAgICAgdGhpcy5pc1N1Ym1pdHRpbmcgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuZm9ybVN1Ym1pdC5lbWl0KHBheWxvYWQpO1xuXG4gICAgICAgIC8vIFVYOiDDqXhpdG8gKyByZXNldFxuICAgICAgICBmb3JtLnJlc2V0KCk7XG5cbiAgICAgICAgLy8gcmVzZXQgZmxhZ3NcbiAgICAgICAgdGhpcy5pc1N1Ym1pdHRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc0Zvcm1WYWxpZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN1Ym1pdEF0dGVtcHRlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRQYXlsb2FkKGZvcm06IEhUTUxGb3JtRWxlbWVudCk6IExpc0MzVHh0SW1nQ3RGb3JtUGF5bG9hZCB7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKGZvcm0pO1xuXG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IExpc0MzVHh0SW1nQ3RGb3JtUGF5bG9hZCA9IHt9O1xuICAgICAgICBmb3JtRGF0YS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICAvLyBub3JtYWxpemEgc3RyaW5nc1xuICAgICAgICAgICAgY29uc3QgdiA9IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS50cmltKCkgOiB2YWx1ZTtcblxuICAgICAgICAgICAgLy8gY2hlY2tib3ggLT4gYm9vbGVhbiAoRm9ybURhdGEgZGV2dWVsdmUgXCJvblwiKVxuICAgICAgICAgICAgaWYgKHYgPT09ICdvbicpIHtcbiAgICAgICAgICAgICAgICBwYXlsb2FkW2tleV0gPSB0cnVlIGFzIGFueTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGF5bG9hZFtrZXldID0gdiBhcyBhbnk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEV4dHJhIMO6dGlsOiBndWFyZGFyIHRpbWVzdGFtcCB5IG9yaWdlbiBzaSBxdWllcmVzXG4gICAgICAgIHBheWxvYWRbJ3N1Ym1pdHRlZEF0J10gPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkgYXMgYW55O1xuXG4gICAgICAgIHJldHVybiBwYXlsb2FkO1xuICAgIH1cblxuICAgIGdldCBzb3J0ZWRIb3RlbHMoKTogQmFieWxvbkhvdGVsR2xvYmFsSXRlbVtdIHtcbiAgICAgICAgY29uc3QgbGlzdCA9IHRoaXMuaG90ZWxzID8/IFtdO1xuICAgICAgICByZXR1cm4gWy4uLmxpc3RdLnNvcnQoXG4gICAgICAgICAgICAoYTogYW55LCBiOiBhbnkpID0+IChhLm9yZGVyID8/IDApIC0gKGIub3JkZXIgPz8gMClcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCJAaWYgKGNvbnRhY3RJbmZvKSB7XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJtZGwtbWQwMDRcIj5cbiAgICAgICAgQGlmIChtdWx0aW1lZGlhKSB7XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtLWZsb2F0XCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cIlxuICAgICAgICAgICAgICAgICAgICBtdWx0aW1lZGlhLnN0YXRpY0ltYWdlbmVzPy5bMF0/LmltZz8uc3JjID8/XG4gICAgICAgICAgICAgICAgICAgICcvYXNzZXRzL2JhYnlsb24vc3ZnL290aGVycy9tb3NhaWNvLnBuZydcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFthbHRdPVwibXVsdGltZWRpYS5zdGF0aWNJbWFnZW5lcz8uWzBdPy5pbWc/LmFsdCA/PyAnYWxlZ3JpYSdcIlxuICAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1kbC1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWxlZnRcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGNvbnRhY3RJbmZvLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIm0tdGl0bGVcIj57eyBjb250YWN0SW5mby50aXRsZSB9fTwvaDI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAobXVsdGltZWRpYT8uaW1hZ2VuZXM/LlswXTsgYXMgaW1nKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWltZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaW1nLmltZz8uc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cImltZy5pbWc/LmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChjb250YWN0SW5mby5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb250YWN0SW5mby5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSAoc3VibWl0KT1cImhhbmRsZVN1Ym1pdCgkZXZlbnQpXCIgbm92YWxpZGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWlucHV0cy1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGhvdGVscz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIGNsYXNlOmZ1bGwgIHBhcmEgcSBzZWEgbGFyZ28gZWwgaW5wdXQgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9XCJob3RlbElkXCIgcmVxdWlyZWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZCBkaXNhYmxlZCB2YWx1ZT1cIlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbnRhY3RJbmZvLmhvdGVsRHJvcFRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb250YWN0SW5mby5ob3RlbERyb3BUaXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChoIG9mIHNvcnRlZEhvdGVsczsgdHJhY2sgaC5pZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJoLmlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBoLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjExXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDExIDZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTQuODcyNTIgNS43NTZMMC4yNTgyMjEgMS40MTU2M0MwLjA5MjI4NzEgMS4yNTk1NSAtMC4wMDA1OTYwNDYgMS4wNDgxOCAzLjgxNDdlLTA2IDAuODI4MDJDMC4wMDA2MDI3MjIgMC42MDc4NTUgMC4wOTQ2MzYgMC4zOTY5MyAwLjI2MTQxNyAwLjI0MTY0N0MwLjQyODE5OSAwLjA4NjM2MzcgMC42NTQwNjUgLTAuMDAwNTU4MzMyIDAuODg5MzMgMi42OTkwNmUtMDZDMS4xMjQ1OSAwLjAwMDU2MzczMSAxLjM0OTk5IDAuMDg4NTYxOSAxLjUxNTkyIDAuMjQ0NjM5TDUuNDg4MTMgNC4wMDU0OUw5LjQ4NDA4IDAuMjQ3MjAzQzkuNjUwMDEgMC4wOTExMjYxIDkuODc1NDEgMC4wMDMxMjc5NiAxMC4xMTA3IDAuMDAyNTY2OTNDMTAuMzQ1OSAwLjAwMjAwNTkgMTAuNTcxOCAwLjA4ODkyOCAxMC43Mzg2IDAuMjQ0MjExQzEwLjkwNTQgMC4zOTk0OTUgMTAuOTk5NCAwLjYxMDQxOSAxMSAwLjgzMDU4NEMxMS4wMDA2IDEuMDUwNzUgMTAuOTA3NyAxLjI2MjEyIDEwLjc0MTggMS40MTgyTDYuMTI5MzEgNS43NTY4NUM1Ljk2MjUyIDUuOTEyNyA1LjczNjQxIDYuMDAwMTYgNS41MDA3MiA2QzUuMjY1MDMgNS45OTk4NCA1LjAzOTA2IDUuOTEyMDcgNC44NzI1MiA1Ljc1NlpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzUxNTA1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjb25zdWx0VHlwZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1pbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBuYW1lPVwiY29uc3VsdFR5cGVcIiByZXF1aXJlZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkIGRpc2FibGVkIHZhbHVlPVwiXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoY29udGFjdEluZm8uZHJvcGRvd25UaXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY29udGFjdEluZm8uZHJvcGRvd25UaXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0IG9mIGNvbnN1bHRUeXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgJGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm9wdC5jb25zdWx0VHlwZUlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcHQubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTEgNlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNC44NzI1MiA1Ljc1NkwwLjI1ODIyMSAxLjQxNTYzQzAuMDkyMjg3MSAxLjI1OTU1IC0wLjAwMDU5NjA0NiAxLjA0ODE4IDMuODE0N2UtMDYgMC44MjgwMkMwLjAwMDYwMjcyMiAwLjYwNzg1NSAwLjA5NDYzNiAwLjM5NjkzIDAuMjYxNDE3IDAuMjQxNjQ3QzAuNDI4MTk5IDAuMDg2MzYzNyAwLjY1NDA2NSAtMC4wMDA1NTgzMzIgMC44ODkzMyAyLjY5OTA2ZS0wNkMxLjEyNDU5IDAuMDAwNTYzNzMxIDEuMzQ5OTkgMC4wODg1NjE5IDEuNTE1OTIgMC4yNDQ2MzlMNS40ODgxMyA0LjAwNTQ5TDkuNDg0MDggMC4yNDcyMDNDOS42NTAwMSAwLjA5MTEyNjEgOS44NzU0MSAwLjAwMzEyNzk2IDEwLjExMDcgMC4wMDI1NjY5M0MxMC4zNDU5IDAuMDAyMDA1OSAxMC41NzE4IDAuMDg4OTI4IDEwLjczODYgMC4yNDQyMTFDMTAuOTA1NCAwLjM5OTQ5NSAxMC45OTk0IDAuNjEwNDE5IDExIDAuODMwNTg0QzExLjAwMDYgMS4wNTA3NSAxMC45MDc3IDEuMjYyMTIgMTAuNzQxOCAxLjQxODJMNi4xMjkzMSA1Ljc1Njg1QzUuOTYyNTIgNS45MTI3IDUuNzM2NDEgNi4wMDAxNiA1LjUwMDcyIDZDNS4yNjUwMyA1Ljk5OTg0IDUuMDM5MDYgNS45MTIwNyA0Ljg3MjUyIDUuNzU2WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNTE1MDUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIE5hbWUgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjb250YWN0SW5mby5pbnB1dE5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0taW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGNvbnRhY3RJbmZvLmlucHV0TmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLm5hbWVdPVwiJ25vbWJyZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5sZW5ndGg9XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTIgMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEuMDI1MyA5LjEyODkzQzEwLjQwODcgOC41MTA0OSA5LjU4NzM4IDguMTY5OTIgOC43MTE5OCA4LjE2OTkySDMuMjY3MTZDMi4zOTI5OSA4LjE2OTkyIDEuNTcxNjkgOC41MTA0OSAwLjk1Mzg3MSA5LjEyODkzQzAuMzM1NDM1IDkuNzQ2NzUgLTAuMDA0NTIwMTYgMTAuNTY4MSAtMC4wMDM5MDU0MiAxMS40NDIyVjEyLjgwMzNDLTAuMDAzOTA1NDIgMTMuMTA2MyAwLjI0MTk5MyAxMy4zNTI5IDAuNTQ1Njc5IDEzLjM1MjlDMC44NDgxMzQgMTMuMzUyOSAxLjA5NDY1IDEzLjEwNyAxLjA5NDY1IDEyLjgwMzNWMTEuNDQyMkMxLjA5NDY1IDEwLjg2MTkgMS4zMjA4NyAxMC4zMTU0IDEuNzMxNTMgOS45MDQ3NEMyLjE0MDMzIDkuNDk0NyAyLjY4NjIzIDkuMjY4NDggMy4yNjc3OCA5LjI2ODQ4SDguNzEzMjFDOS4yOTQxNSA5LjI2ODQ4IDkuODQwMDQgOS40OTQwOSAxMC4yNDk1IDkuOTA0NzRDMTAuNjYwMSAxMC4zMTQyIDEwLjg4NTcgMTAuODYwNyAxMC44ODU3IDExLjQ0MjJWMTIuODAzM0MxMC44ODU3IDEzLjEwNjMgMTEuMTMxNiAxMy4zNTI5IDExLjQzNTMgMTMuMzUyOUMxMS43Mzc4IDEzLjM1MjkgMTEuOTg0MyAxMy4xMDcgMTEuOTg0MyAxMi44MDMzVjExLjQ0MjJDMTEuOTg0MyAxMC41NjgxIDExLjY0MzcgOS43NDY3NSAxMS4wMjUzIDkuMTI4OTNaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNTE1MDUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNS45ODk4MiA2LjU0MzM3QzcuNzk0MSA2LjU0MzM3IDkuMjYxNSA1LjA3NTk3IDkuMjYxNSAzLjI3MTY4QzkuMjYxNSAxLjQ2NzQgNy43OTQxIDAgNS45ODk4MiAwQzQuMTg1NTQgMCAyLjcxODc1IDEuNDY3NCAyLjcxODc1IDMuMjcxNjhDMi43MTg3NSA1LjA3NTk3IDQuMTg1NTQgNi41NDMzNyA1Ljk4OTgyIDYuNTQzMzdaTTUuOTg5ODIgMS4wOTc5NEM3LjE4ODU4IDEuMDk3OTQgOC4xNjM1NyAyLjA3MjkzIDguMTYzNTcgMy4yNzE2OEM4LjE2MzU3IDQuNDcwNDQgNy4xODg1OCA1LjQ0NTQzIDUuOTg5ODIgNS40NDU0M0M0Ljc5MTY4IDUuNDQ1NDMgMy44MTY2OSA0LjQ3MDQ0IDMuODE2NjkgMy4yNzE2OEMzLjgxNjY5IDIuMDcyOTMgNC43OTE2OCAxLjA5Nzk0IDUuOTg5ODIgMS4wOTc5NFpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM1MTUwNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBDb2RlIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoY29udGFjdEluZm8uaW5wdXRTdXJuYW1lcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1pbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY29udGFjdEluZm8uaW5wdXRTdXJuYW1lcyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLm5hbWVdPVwiJ3N1cm5hbWUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlubGVuZ3RoPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDEyIDE0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjAyNTMgOS4xMjg5M0MxMC40MDg3IDguNTEwNDkgOS41ODczOCA4LjE2OTkyIDguNzExOTggOC4xNjk5MkgzLjI2NzE2QzIuMzkyOTkgOC4xNjk5MiAxLjU3MTY5IDguNTEwNDkgMC45NTM4NzEgOS4xMjg5M0MwLjMzNTQzNSA5Ljc0Njc1IC0wLjAwNDUyMDE2IDEwLjU2ODEgLTAuMDAzOTA1NDIgMTEuNDQyMlYxMi44MDMzQy0wLjAwMzkwNTQyIDEzLjEwNjMgMC4yNDE5OTMgMTMuMzUyOSAwLjU0NTY3OSAxMy4zNTI5QzAuODQ4MTM0IDEzLjM1MjkgMS4wOTQ2NSAxMy4xMDcgMS4wOTQ2NSAxMi44MDMzVjExLjQ0MjJDMS4wOTQ2NSAxMC44NjE5IDEuMzIwODcgMTAuMzE1NCAxLjczMTUzIDkuOTA0NzRDMi4xNDAzMyA5LjQ5NDcgMi42ODYyMyA5LjI2ODQ4IDMuMjY3NzggOS4yNjg0OEg4LjcxMzIxQzkuMjk0MTUgOS4yNjg0OCA5Ljg0MDA0IDkuNDk0MDkgMTAuMjQ5NSA5LjkwNDc0QzEwLjY2MDEgMTAuMzE0MiAxMC44ODU3IDEwLjg2MDcgMTAuODg1NyAxMS40NDIyVjEyLjgwMzNDMTAuODg1NyAxMy4xMDYzIDExLjEzMTYgMTMuMzUyOSAxMS40MzUzIDEzLjM1MjlDMTEuNzM3OCAxMy4zNTI5IDExLjk4NDMgMTMuMTA3IDExLjk4NDMgMTIuODAzM1YxMS40NDIyQzExLjk4NDMgMTAuNTY4MSAxMS42NDM3IDkuNzQ2NzUgMTEuMDI1MyA5LjEyODkzWlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzUxNTA1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTUuOTg5ODIgNi41NDMzN0M3Ljc5NDEgNi41NDMzNyA5LjI2MTUgNS4wNzU5NyA5LjI2MTUgMy4yNzE2OEM5LjI2MTUgMS40Njc0IDcuNzk0MSAwIDUuOTg5ODIgMEM0LjE4NTU0IDAgMi43MTg3NSAxLjQ2NzQgMi43MTg3NSAzLjI3MTY4QzIuNzE4NzUgNS4wNzU5NyA0LjE4NTU0IDYuNTQzMzcgNS45ODk4MiA2LjU0MzM3Wk01Ljk4OTgyIDEuMDk3OTRDNy4xODg1OCAxLjA5Nzk0IDguMTYzNTcgMi4wNzI5MyA4LjE2MzU3IDMuMjcxNjhDOC4xNjM1NyA0LjQ3MDQ0IDcuMTg4NTggNS40NDU0MyA1Ljk4OTgyIDUuNDQ1NDNDNC43OTE2OCA1LjQ0NTQzIDMuODE2NjkgNC40NzA0NCAzLjgxNjY5IDMuMjcxNjhDMy44MTY2OSAyLjA3MjkzIDQuNzkxNjggMS4wOTc5NCA1Ljk4OTgyIDEuMDk3OTRaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNTE1MDUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRW1haWwgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjb250YWN0SW5mby5pbnB1dEVtYWlsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBjb250YWN0SW5mby5pbnB1dEVtYWlsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIubmFtZV09XCInZW1haWwnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInZW1haWwnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm49XCJeW15cXHNAXStAW15cXHNAXStcXC5bXlxcc0BdezIsfSRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuNzE0OSAxMi43MzUySDIuMjg1MTRDMS42NzQ0NiAxMi43MzUyIDEuMTAwNTMgMTIuNDk3NiAwLjY2OTQ2MSAxMi4wNjU3QzAuMjM3NTgxIDExLjYzMzggMCAxMS4wNTk5IDAgMTAuNDQ5MlYyLjI5NDExQzAgMi4yODc1OCAwIDIuMjgwMjMgMCAyLjI3MzdDMC4wMDMyNjU2NCAxLjY2NzkzIDAuMjQwODQ3IDEuMDk4ODkgMC42Njk0NjEgMC42Njk0NjFDMS4xMDA1MyAwLjIzNzU4MSAxLjY3NDQ2IDAgMi4yODUxNCAwSDEzLjcxNDlDMTQuMzI1NSAwIDE0Ljg5OTUgMC4yMzc1ODEgMTUuMzMwNSAwLjY2OTQ2MUMxNS43NTkyIDEuMDk4ODkgMTUuOTk2NyAxLjY2NzkzIDE2IDIuMjczN0MxNiAyLjI4MDIzIDE2IDIuMjg3NTggMTYgMi4yOTQxMVYxMC40NDkyQzE2IDExLjA1OTkgMTUuNzYyNCAxMS42MzM4IDE1LjMzMDUgMTIuMDY1N0MxNC44OTk1IDEyLjQ5NzYgMTQuMzI1NSAxMi43MzUyIDEzLjcxNDkgMTIuNzM1MlpNMS4zMDU0NCAzLjUwNDg0VjEwLjQ0ODRDMS4zMDU0NCAxMC43MDY0IDEuNDA5OTMgMTAuOTU4NyAxLjU5MjggMTEuMTQwN0MxLjc3ODEzIDExLjMyNiAyLjAyMzg3IDExLjQyODEgMi4yODU5MyAxMS40MjgxSDEzLjcxNTdDMTMuOTcyOCAxMS40MjgxIDE0LjIyNTkgMTEuMzIzNiAxNC40MDg4IDExLjE0MDdDMTQuNTkxNyAxMC45NTg3IDE0LjY5NjIgMTAuNzA2NCAxNC42OTYyIDEwLjQ0ODRWMy41MDQ4NEw4LjM2MzMxIDcuNzI2NUM4LjE0NDUxIDcuODczNDUgNy44NTc5MyA3Ljg3MzQ1IDcuNjM5MTMgNy43MjY1TDEuMzA1NDQgMy41MDQ4NFpNMS4zNTY4NiAxLjk2OTk5TDggNi4zOTkwMUwxNC42NDMxIDEuOTY5OTlDMTQuNTk1IDEuODI5NTcgMTQuNTE1OCAxLjcwMDU4IDE0LjQwOCAxLjU5MjgyQzE0LjIyNTEgMS40MDk5NCAxMy45NzI4IDEuMzA1NDQgMTMuNzE0OSAxLjMwNTQ0SDIuMjg1MTRDMi4wMjM4OSAxLjMwNTQ0IDEuNzc3MzMgMS40MDc0OSAxLjU5MjAxIDEuNTkyODJDMS40ODQyNCAxLjcwMDU4IDEuNDA1MDMgMS44Mjk1NyAxLjM1Njg2IDEuOTY5OTlaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM1MTUwNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVGVsZiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbnRhY3RJbmZvLmlucHV0UGhvbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0taW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGNvbnRhY3RJbmZvLmlucHV0UGhvbmUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cIidwaG9uZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIid0ZWwnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm49XCJeWzAtOStcXC1cXHMoKV17Nyx9JFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDEyIDE0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjAyNTMgOS4xMjg5M0MxMC40MDg3IDguNTEwNDkgOS41ODczOCA4LjE2OTkyIDguNzExOTggOC4xNjk5MkgzLjI2NzE2QzIuMzkyOTkgOC4xNjk5MiAxLjU3MTY5IDguNTEwNDkgMC45NTM4NzEgOS4xMjg5M0MwLjMzNTQzNSA5Ljc0Njc1IC0wLjAwNDUyMDE2IDEwLjU2ODEgLTAuMDAzOTA1NDIgMTEuNDQyMlYxMi44MDMzQy0wLjAwMzkwNTQyIDEzLjEwNjMgMC4yNDE5OTMgMTMuMzUyOSAwLjU0NTY3OSAxMy4zNTI5QzAuODQ4MTM0IDEzLjM1MjkgMS4wOTQ2NSAxMy4xMDcgMS4wOTQ2NSAxMi44MDMzVjExLjQ0MjJDMS4wOTQ2NSAxMC44NjE5IDEuMzIwODcgMTAuMzE1NCAxLjczMTUzIDkuOTA0NzRDMi4xNDAzMyA5LjQ5NDcgMi42ODYyMyA5LjI2ODQ4IDMuMjY3NzggOS4yNjg0OEg4LjcxMzIxQzkuMjk0MTUgOS4yNjg0OCA5Ljg0MDA0IDkuNDk0MDkgMTAuMjQ5NSA5LjkwNDc0QzEwLjY2MDEgMTAuMzE0MiAxMC44ODU3IDEwLjg2MDcgMTAuODg1NyAxMS40NDIyVjEyLjgwMzNDMTAuODg1NyAxMy4xMDYzIDExLjEzMTYgMTMuMzUyOSAxMS40MzUzIDEzLjM1MjlDMTEuNzM3OCAxMy4zNTI5IDExLjk4NDMgMTMuMTA3IDExLjk4NDMgMTIuODAzM1YxMS40NDIyQzExLjk4NDMgMTAuNTY4MSAxMS42NDM3IDkuNzQ2NzUgMTEuMDI1MyA5LjEyODkzWlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzUxNTA1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTUuOTg5ODIgNi41NDMzN0M3Ljc5NDEgNi41NDMzNyA5LjI2MTUgNS4wNzU5NyA5LjI2MTUgMy4yNzE2OEM5LjI2MTUgMS40Njc0IDcuNzk0MSAwIDUuOTg5ODIgMEM0LjE4NTU0IDAgMi43MTg3NSAxLjQ2NzQgMi43MTg3NSAzLjI3MTY4QzIuNzE4NzUgNS4wNzU5NyA0LjE4NTU0IDYuNTQzMzcgNS45ODk4MiA2LjU0MzM3Wk01Ljk4OTgyIDEuMDk3OTRDNy4xODg1OCAxLjA5Nzk0IDguMTYzNTcgMi4wNzI5MyA4LjE2MzU3IDMuMjcxNjhDOC4xNjM1NyA0LjQ3MDQ0IDcuMTg4NTggNS40NDU0MyA1Ljk4OTgyIDUuNDQ1NDNDNC43OTE2OCA1LjQ0NTQzIDMuODE2NjkgNC40NzA0NCAzLjgxNjY5IDMuMjcxNjhDMy44MTY2OSAyLjA3MjkzIDQuNzkxNjggMS4wOTc5NCA1Ljk4OTgyIDEuMDk3OTRaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNTE1MDUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0taW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjb250YWN0SW5mby5pbnB1dE1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGNvbnRhY3RJbmZvLmlucHV0TWVzc2FnZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9XCIxNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWN0SW5mby5pbnB1dE1lc3NhZ2VQbGFjZUhvbGRlciA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIubmFtZV09XCInbWVuc2FqZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlubGVuZ3RoPVwiMTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb290ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1sZWdhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbD48L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjb250YWN0SW5mby5lcnJvclJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFjdEluZm8uZXJyb3JSZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAgICAgIEBpZiAoc3VibWl0QXR0ZW1wdGVkICYmICFpc0Zvcm1WYWxpZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhY3RJbmZvLmVycm9yUmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj4qXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc3VibWl0RXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBzdWJtaXRFcnJvciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbnRhY3RJbmZvLmNvbmRpdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIubmFtZV09XCInY2hlY2tib3gnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChidXR0b25zPy5bMF07IGFzIGJ0bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJidG4udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiYnRuLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWN0SW5mby5jb25kaXRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWN0SW5mby5jb25kaXRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbnRhY3RJbmZvLmNvbmRpdGlvbnMyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLm5hbWVdPVwiJ2NoZWNrYm94MidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhY3RJbmZvLmNvbmRpdGlvbnMyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYnV0dG9ucz8uWzBdOyBhcyBidG4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0tYnV0dG9uLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1N1Ym1pdHRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBidG4/LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjb250YWN0SW5mby5ub3RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tbm90ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb250YWN0SW5mby5ub3RlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cblxuICAgICAgICAgICAgICAgICAgICBAaWYgKG11bHRpbWVkaWE/LmltYWdlbmVzPy5bMF07IGFzIGltZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0taW1nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImltZy5pbWc/LnNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiaW1nLmltZz8uYWx0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cbn1cbiJdfQ==