simpo-component-library 3.6.918 → 3.6.920

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 (201) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/components/delete-hover-element/delete-hover-element.component.mjs +3 -3
  3. package/esm2022/lib/components/document/document.component.mjs +3 -3
  4. package/esm2022/lib/components/image-loading/image-loading.component.mjs +3 -3
  5. package/esm2022/lib/components/payment-details/payment-details.component.mjs +3 -3
  6. package/esm2022/lib/constants/business.constant.mjs +1 -1
  7. package/esm2022/lib/directive/alignment.directive.mjs +1 -1
  8. package/esm2022/lib/directive/background-directive.mjs +16 -5
  9. package/esm2022/lib/directive/blur-content.directive.mjs +1 -1
  10. package/esm2022/lib/directive/borderlessImage.directive.mjs +1 -1
  11. package/esm2022/lib/directive/button-directive.directive.mjs +1 -1
  12. package/esm2022/lib/directive/color.directive.mjs +1 -1
  13. package/esm2022/lib/directive/column-directive.directive.mjs +1 -1
  14. package/esm2022/lib/directive/container-alignment.directive.mjs +1 -1
  15. package/esm2022/lib/directive/container-fir.directive.mjs +1 -1
  16. package/esm2022/lib/directive/content-title-spacing.directive.mjs +1 -1
  17. package/esm2022/lib/directive/contenteditable.directive.mjs +1 -1
  18. package/esm2022/lib/directive/corner-directive.mjs +1 -1
  19. package/esm2022/lib/directive/height.directive.mjs +1 -1
  20. package/esm2022/lib/directive/hover-animation.directive.mjs +1 -1
  21. package/esm2022/lib/directive/hoverborder.directive.mjs +1 -1
  22. package/esm2022/lib/directive/icon-directive.directive.mjs +1 -1
  23. package/esm2022/lib/directive/image-container.directive.mjs +1 -1
  24. package/esm2022/lib/directive/letters-only.directive.mjs +1 -1
  25. package/esm2022/lib/directive/numbers-only.directive.mjs +1 -1
  26. package/esm2022/lib/directive/position-layout-directive.directive.mjs +1 -1
  27. package/esm2022/lib/directive/set-dynamic-background.directive.mjs +1 -1
  28. package/esm2022/lib/directive/spacing-horizontal.directive.mjs +1 -1
  29. package/esm2022/lib/directive/spacing.directive.mjs +1 -1
  30. package/esm2022/lib/directive/text-background-directive.directive.mjs +1 -1
  31. package/esm2022/lib/directive/text-size.directive.mjs +1 -1
  32. package/esm2022/lib/directive/translate-onhover.directive.mjs +1 -1
  33. package/esm2022/lib/directive/wrap-containers.directive.mjs +1 -1
  34. package/esm2022/lib/ecommerce/sections/address/address.component.mjs +1 -1
  35. package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +3 -3
  36. package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +3 -3
  37. package/esm2022/lib/ecommerce/sections/checkout/checkout.component.mjs +3 -3
  38. package/esm2022/lib/ecommerce/sections/checkout/checkout.modal.mjs +1 -1
  39. package/esm2022/lib/ecommerce/sections/customer-review/customer-review.component.mjs +3 -3
  40. package/esm2022/lib/ecommerce/sections/customer-review/customer-review.model.mjs +1 -1
  41. package/esm2022/lib/ecommerce/sections/enrollment-form/enrollment-form.component.mjs +3 -3
  42. package/esm2022/lib/ecommerce/sections/enrollment-form/enrollment-form.model.mjs +1 -1
  43. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +3 -3
  44. package/esm2022/lib/ecommerce/sections/featured-category/featured-collection.component.mjs +3 -3
  45. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +9 -9
  46. package/esm2022/lib/ecommerce/sections/item-varient/item-varient.component.mjs +3 -3
  47. package/esm2022/lib/ecommerce/sections/new-collection/new-collection.component.mjs +3 -3
  48. package/esm2022/lib/ecommerce/sections/new-collection/new-collection.modal.mjs +1 -1
  49. package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +3 -3
  50. package/esm2022/lib/ecommerce/sections/pagnination/pagnination.component.mjs +3 -3
  51. package/esm2022/lib/ecommerce/sections/passbook-transactions/passbook-transactions.component.mjs +3 -3
  52. package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.component.mjs +3 -3
  53. package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.model.mjs +1 -1
  54. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +3 -3
  55. package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +3 -3
  56. package/esm2022/lib/ecommerce/sections/product-list/product-list.modal.mjs +1 -1
  57. package/esm2022/lib/ecommerce/sections/refer-earn/refer-earn.component.mjs +1 -1
  58. package/esm2022/lib/ecommerce/sections/returns-calculator/returns-calculator.component.mjs +1 -1
  59. package/esm2022/lib/ecommerce/sections/returns-calculator/returns-calculator.model.mjs +1 -1
  60. package/esm2022/lib/ecommerce/sections/scheme-details/scheme-details.component.mjs +3 -3
  61. package/esm2022/lib/ecommerce/sections/scheme-selection/scheme-selection.component.mjs +3 -3
  62. package/esm2022/lib/ecommerce/sections/schemes/schemes.component.model.mjs +1 -1
  63. package/esm2022/lib/ecommerce/sections/small-product-listing/small-product-listing.component.mjs +3 -3
  64. package/esm2022/lib/ecommerce/sections/store-list/store-list.component.mjs +3 -3
  65. package/esm2022/lib/ecommerce/sections/store-list/store-list.modal.mjs +1 -1
  66. package/esm2022/lib/ecommerce/sections/store-page/store-page.component.mjs +3 -3
  67. package/esm2022/lib/ecommerce/sections/store-page/store-page.model.mjs +1 -1
  68. package/esm2022/lib/ecommerce/sections/user-basic-info/user-basic-info.component.mjs +3 -3
  69. package/esm2022/lib/ecommerce/sections/user-profile/user-profile.modal.mjs +1 -1
  70. package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.component.mjs +3 -3
  71. package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.model.mjs +1 -1
  72. package/esm2022/lib/ecommerce/styles/BaseCollection.modal.mjs +1 -1
  73. package/esm2022/lib/ecommerce/styles/Collection.modal.mjs +1 -1
  74. package/esm2022/lib/ecommerce/styles/PincodeLocation.model.mjs +1 -1
  75. package/esm2022/lib/ecommerce/styles/PincodeLocationInter.model.mjs +1 -1
  76. package/esm2022/lib/ecommerce/styles/cart.modal.mjs +1 -1
  77. package/esm2022/lib/ecommerce/styles/category.modal.mjs +1 -1
  78. package/esm2022/lib/ecommerce/styles/order.modal.mjs +1 -1
  79. package/esm2022/lib/ecommerce/styles/product.modal.mjs +1 -1
  80. package/esm2022/lib/ecommerce/styles/review.modal.mjs +1 -1
  81. package/esm2022/lib/ecommerce/styles/user.modal.mjs +1 -1
  82. package/esm2022/lib/elements/address-list/address-list.component.mjs +3 -3
  83. package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +3 -3
  84. package/esm2022/lib/elements/button/button.component.mjs +3 -3
  85. package/esm2022/lib/elements/button/button.model.mjs +1 -1
  86. package/esm2022/lib/elements/card-skeleton-loader/card-skeleton-loader.component.mjs +3 -3
  87. package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +3 -3
  88. package/esm2022/lib/elements/heading-element/heading-element.component.mjs +3 -3
  89. package/esm2022/lib/elements/index.mjs +1 -1
  90. package/esm2022/lib/elements/list-home-appointment/list-home-appointment.component.mjs +3 -3
  91. package/esm2022/lib/elements/media-selector/media-selector.component.mjs +1 -1
  92. package/esm2022/lib/elements/portfolio/portfolio.component.mjs +3 -3
  93. package/esm2022/lib/elements/property/property.component.mjs +3 -3
  94. package/esm2022/lib/elements/schedule-video-call/schedule-video-call.component.mjs +1 -1
  95. package/esm2022/lib/elements/simpo-button/simpo-button.component.mjs +3 -3
  96. package/esm2022/lib/elements/svg-divider/svg-divider.component.mjs +3 -3
  97. package/esm2022/lib/elements/text/text.component.mjs +3 -3
  98. package/esm2022/lib/elements/text-editor/text-editor.component.mjs +3 -3
  99. package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +3 -3
  100. package/esm2022/lib/pipes/amount.pipe.mjs +1 -1
  101. package/esm2022/lib/sections/add-new-section/add-new-section.component.mjs +3 -3
  102. package/esm2022/lib/sections/appointment-form/appointment-booking/appointment-booking/appointment-booking.component.mjs +1 -1
  103. package/esm2022/lib/sections/appointment-form/appointment-form.component.mjs +1 -1
  104. package/esm2022/lib/sections/appointment-form/appointment-form.model.mjs +1 -1
  105. package/esm2022/lib/sections/banner-carousel/banner-carousel.model.mjs +1 -1
  106. package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +1 -1
  107. package/esm2022/lib/sections/blog-list/blog-list.model.mjs +1 -1
  108. package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +1 -1
  109. package/esm2022/lib/sections/choose-us-section/choose-us-section.model.mjs +1 -1
  110. package/esm2022/lib/sections/contact-us/contact-us.component.mjs +10 -3
  111. package/esm2022/lib/sections/countdown-banner/countdown-banner.component.mjs +3 -3
  112. package/esm2022/lib/sections/faq-section/faq-section.component.mjs +1 -1
  113. package/esm2022/lib/sections/faq-section/faq-section.modal.mjs +1 -1
  114. package/esm2022/lib/sections/features-section/features-section.model.mjs +1 -1
  115. package/esm2022/lib/sections/footer/footer.component.mjs +3 -3
  116. package/esm2022/lib/sections/header-section/header-section.component.mjs +3 -3
  117. package/esm2022/lib/sections/header-section/header-section.model.mjs +1 -1
  118. package/esm2022/lib/sections/header-text/header-text.model.mjs +1 -1
  119. package/esm2022/lib/sections/image-background/image-background/image-background.component.mjs +1 -1
  120. package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +1 -1
  121. package/esm2022/lib/sections/image-carousel-section/image-carousel.model.mjs +1 -1
  122. package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +1 -1
  123. package/esm2022/lib/sections/image-section/image-section.component.mjs +1 -1
  124. package/esm2022/lib/sections/image-section/image-section.model.mjs +1 -1
  125. package/esm2022/lib/sections/location-section/location-section.component.mjs +1 -1
  126. package/esm2022/lib/sections/location-section/location-section.modal.mjs +1 -1
  127. package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +3 -3
  128. package/esm2022/lib/sections/logo-showcase/logo-showcase.modal.mjs +1 -1
  129. package/esm2022/lib/sections/moving-text/moving-text.component.mjs +3 -3
  130. package/esm2022/lib/sections/moving-text/moving-text.modal.mjs +1 -1
  131. package/esm2022/lib/sections/new-services/new-services.component.mjs +1 -1
  132. package/esm2022/lib/sections/new-services/new-services.model.mjs +1 -1
  133. package/esm2022/lib/sections/new-testimonials/new-testimonials.component.mjs +1 -1
  134. package/esm2022/lib/sections/new-testimonials/new-testimonials.model.mjs +1 -1
  135. package/esm2022/lib/sections/news-letter-component/news-letter-component.component.mjs +1 -1
  136. package/esm2022/lib/sections/news-letter-component/news-letter.modal.mjs +1 -1
  137. package/esm2022/lib/sections/overlapping-image/overlapping-image.component.mjs +1 -1
  138. package/esm2022/lib/sections/pricing-section/pricing-section.modal.mjs +1 -1
  139. package/esm2022/lib/sections/process-modern/process-modern.component.mjs +1 -1
  140. package/esm2022/lib/sections/process-modern/process-modern.model.mjs +1 -1
  141. package/esm2022/lib/sections/process-section/process-section.modal.mjs +1 -1
  142. package/esm2022/lib/sections/product-info-section/product-info-section.component.mjs +1 -1
  143. package/esm2022/lib/sections/property-component/property-component.component.mjs +3 -3
  144. package/esm2022/lib/sections/property-component/property-component.modal.mjs +1 -1
  145. package/esm2022/lib/sections/property-list/property-list.component.mjs +3 -3
  146. package/esm2022/lib/sections/property-list/property-list.modal.mjs +1 -1
  147. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +1 -1
  148. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.model.mjs +1 -1
  149. package/esm2022/lib/sections/registration-form/registration-form.component.mjs +3 -3
  150. package/esm2022/lib/sections/registration-form/registrationForm.model.mjs +1 -1
  151. package/esm2022/lib/sections/scheme-detail/scheme-detail.component.mjs +1 -1
  152. package/esm2022/lib/sections/scheme-detail/scheme-detail.modal.mjs +1 -1
  153. package/esm2022/lib/sections/skeleton-loader-section/skeleton-loader-section.component.mjs +3 -3
  154. package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +1 -1
  155. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +1 -1
  156. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.model.mjs +1 -1
  157. package/esm2022/lib/sections/testimonial-masonry/testimonial-masonry.component.mjs +1 -1
  158. package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +1 -1
  159. package/esm2022/lib/sections/testimonial-section/testimonial-section.model.mjs +1 -1
  160. package/esm2022/lib/sections/testimonial-slider/testimonial-slider.component.mjs +1 -1
  161. package/esm2022/lib/sections/testimonial-video/testimonial-video.component.mjs +1 -1
  162. package/esm2022/lib/sections/testimonial-video/testimonial-video.model.mjs +1 -1
  163. package/esm2022/lib/sections/text-section/text-section.model.mjs +1 -1
  164. package/esm2022/lib/sections/usp-video-section/usp-video-section.component.mjs +3 -3
  165. package/esm2022/lib/sections/usp-video-section/usp-video-section.model.mjs +1 -1
  166. package/esm2022/lib/sections/video-carousel-section/video-carousel-section.component.mjs +1 -1
  167. package/esm2022/lib/sections/video-grid-section/video-grid-section.component.mjs +3 -3
  168. package/esm2022/lib/sections/video-section/video-section.component.mjs +3 -3
  169. package/esm2022/lib/sections/video-section/video-section.model.mjs +1 -1
  170. package/esm2022/lib/sections/view-blog/view-blog.component.mjs +1 -1
  171. package/esm2022/lib/services/endUser.service.mjs +1 -1
  172. package/esm2022/lib/services/image-upload-service.service.mjs +1 -1
  173. package/esm2022/lib/services/rest.service.mjs +2 -2
  174. package/esm2022/lib/styles/index.mjs +1 -1
  175. package/esm2022/lib/tokens/api-token.mjs +1 -1
  176. package/fesm2022/simpo-component-library.mjs +133 -116
  177. package/fesm2022/simpo-component-library.mjs.map +1 -1
  178. package/lib/components/input-fields/input-fields.component.d.ts +1 -1
  179. package/lib/directive/background-directive.d.ts +3 -2
  180. package/lib/directive/button-directive.directive.d.ts +1 -1
  181. package/lib/directive/color.directive.d.ts +1 -1
  182. package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +1 -1
  183. package/lib/ecommerce/sections/new-collection/new-collection.component.d.ts +1 -1
  184. package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +2 -2
  185. package/lib/ecommerce/sections/product-list/product-list.component.d.ts +1 -1
  186. package/lib/ecommerce/sections/store-list/store-list.component.d.ts +1 -1
  187. package/lib/ecommerce/sections/store-page/store-page.component.d.ts +1 -1
  188. package/lib/elements/pricing-s1/pricing-s1.component.d.ts +1 -1
  189. package/lib/sections/banner-carousel/banner-carousel.component.d.ts +2 -2
  190. package/lib/sections/banner-grid-section/banner-grid-section.component.d.ts +1 -1
  191. package/lib/sections/carousel-banner/carousel-banner.component.d.ts +1 -1
  192. package/lib/sections/contact-us/contact-us.component.d.ts +4 -3
  193. package/lib/sections/header-section/header-section.component.d.ts +1 -1
  194. package/lib/sections/image-section/image-section.component.d.ts +2 -2
  195. package/lib/sections/logo-showcase/logo-showcase.component.d.ts +2 -2
  196. package/lib/sections/moving-text/moving-text.component.d.ts +1 -1
  197. package/lib/sections/new-testimonials/new-testimonials.component.d.ts +1 -1
  198. package/lib/sections/pricing-section/pricing-section.component.d.ts +2 -2
  199. package/package.json +1 -1
  200. package/simpo-component-library-3.6.920.tgz +0 -0
  201. package/simpo-component-library-3.6.918.tgz +0 -0
@@ -138,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
138
138
  type: HostListener,
139
139
  args: ["window: resize", ["$event"]]
140
140
  }] } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFxLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9mYXEtc2VjdGlvbi9mYXEtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2ZhcS1zZWN0aW9uL2ZhcS1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxlQUFl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QUNuQix5QkFBeUI7d0JBQ3pCLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLHFCQUFxQjt3QkFDckIsOEJBQThCO3dCQUM5QixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsMEJBQTBCO3dCQUMxQixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsZ0JBQWdCO3dCQUNoQixnQ0FBZ0M7d0JBQ2hDLGdDQUFnQzt3QkFDaEMscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3dCQUNoQiwwQkFBMEI7d0JBQzFCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3FCQUNyQjtrRkFLUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBMENOLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGQVFDb250ZW50TW9kYWwsIEZBUVNlY3Rpb25Nb2RhbCwgRkFRU3R5bGVzTW9kZWwgfSBmcm9tICcuL2ZhcS1zZWN0aW9uLm1vZGFsJztcclxuaW1wb3J0IHsgU2ltcG9FbGVtZW50c01vZHVsZSB9IGZyb20gJy4vLi4vLi4vZWxlbWVudHMvaW5kZXgnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xyXG5pbXBvcnQgeyBBbmltYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYW5pbWF0aW9uLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJhbm5lckNvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYmFubmVyLWNvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJvcmRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ib3JkZXItZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2J1dHRvbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29sdW1uRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbHVtbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29udGFpbmVyRml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRhaW5lci1maXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgc2ltcG9Db25ldGVuQWxpZ25tZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtYWxpZ25tZW50LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvcm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb3JuZXItZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9Gb290ZXJMYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvZm9vdGVyLWxheW91dC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEltYWdlRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2ltYWdlLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL292ZXJsYXktZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUG9zaXRpb25MYXlvdXREaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvcG9zaXRpb24tbGF5b3V0LWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS90ZXh0LWJhY2tncm91bmQtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uL0Jhc2VTZWN0aW9uJztcclxuaW1wb3J0IHsgQ29udGVudFRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtdGl0bGUtc3BhY2luZy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTUEFDSU5HIH0gZnJvbSAnLi4vLi4vc3R5bGVzL2luZGV4JztcclxuaW1wb3J0IHsgT2JqZWN0UG9zaXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtcG9zaXRpb24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZE1vZGVsLCBMYXlPdXRNb2RlbCB9IGZyb20gJy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IFNpbXBvQ29udGFpbmVyQWxpZ21lbnQgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGFpbmVyLWFsaWdubWVudC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IFNhbml0aXplSHRtbFBpcGUgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zYW5pdGl6ZUh0bWwnO1xyXG5pbXBvcnQgeyBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWhvcml6b250YWwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU3ZnRGl2aWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL3N2Zy1kaXZpZGVyL3N2Zy1kaXZpZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbWFnZUVkaXRvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9pbWFnZS1lZGl0b3IuZGlyZWN0aXZlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tZmFxLXNlY3Rpb24nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgU2ltcG9FbGVtZW50c01vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcclxuICAgIE1hdEljb24sXHJcbiAgICBUZXh0RWRpdG9yQ29tcG9uZW50LFxyXG5cclxuICAgIC8vZGlyZWN0aXZlXHJcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXHJcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxyXG4gICAgQmFubmVyQ29udGVudEZpdERpcmVjdGl2ZSxcclxuICAgIEJvcmRlckRpcmVjdGl2ZSxcclxuICAgIEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIENvbHVtbkRpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIENvbnRhaW5lckZpdERpcmVjdGl2ZSxcclxuICAgIHNpbXBvQ29uZXRlbkFsaWdubWVudERpcmVjdGl2ZSxcclxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBDb3JuZXJEaXJlY3RpdmUsXHJcbiAgICBTaW1wb0Zvb3RlckxheW91dERpcmVjdGl2ZSxcclxuICAgIEhvdmVyRGlyZWN0aXZlLFxyXG4gICAgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBPdmVybGF5RGlyZWN0aXZlLFxyXG4gICAgUG9zaXRpb25MYXlvdXREaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIENvbnRlbnRUaXRsZURpcmVjdGl2ZSxcclxuICAgIE9iamVjdFBvc2l0aW9uRGlyZWN0aXZlLFxyXG4gICAgU2ltcG9Db250YWluZXJBbGlnbWVudCxcclxuICAgIFNhbml0aXplSHRtbFBpcGUsXHJcbiAgICBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSxcclxuICAgIFN2Z0RpdmlkZXJDb21wb25lbnQsXHJcbiAgICBJbWFnZUVkaXRvckRpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhcS1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZmFxLXNlY3Rpb24uY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEZhcVNlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiB7XHJcbiAgQElucHV0KCkgZGF0YT86IEZBUVNlY3Rpb25Nb2RhbDtcclxuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBuZXh0Q29tcG9uZW50Q29sb3I/OiBCYWNrZ3JvdW5kTW9kZWw7XHJcbiAgY29udGVudD86IEZBUUNvbnRlbnRNb2RhbDtcclxuICBzdHlsZT86IEZBUVN0eWxlc01vZGVsO1xyXG5cclxuICB1bkNvbGxhcHNlZExpc3Q6IG51bWJlcltdID0gW107XHJcbiAgc2NyZWVuV2lkdGg6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuZ2V0U2NyZWVuU2l6ZSgpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcclxuXHJcbiAgICB0aGlzLnN0eWxlID0gdGhpcy5kYXRhPy5zdHlsZXM7XHJcbiAgICB0aGlzLmRlbGV0ZVNlbGVjdGVkID0gdGhpcy5kZWxldGVcclxuICB9XHJcbiAgZ2V0IGhlYWRpbmdTcGFjZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0eWxlPy5sYXlvdXQuaGVhZGluZ1NwYWNpbmcgYXMgU1BBQ0lORztcclxuICB9XHJcbiAgZ2V0IHN0eWxlc0xheW91dCgpIHtcclxuICAgIHJldHVybiB7IC4uLnRoaXMuc3R5bGU/LmxheW91dCB9IGFzIExheU91dE1vZGVsO1xyXG4gIH1cclxuICB0b2dnbGVDb250ZW50KGlkeDogbnVtYmVyKSB7XHJcblxyXG4gICAgLy8gdGhpcy51bkNvbGxhcHNlZExpc3QucHVzaChpZHgpO1xyXG4gICAgaWYgKHRoaXMudW5Db2xsYXBzZWRMaXN0LmluY2x1ZGVzKGlkeCkpIHtcclxuICAgICAgdGhpcy51bkNvbGxhcHNlZExpc3QgPSB0aGlzLnVuQ29sbGFwc2VkTGlzdC5maWx0ZXIoKGluZGV4OiBudW1iZXIpID0+IGlkeCAhPSBpbmRleCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy51bkNvbGxhcHNlZExpc3QgPSBbXTtcclxuICAgICAgdGhpcy51bkNvbGxhcHNlZExpc3QucHVzaChpZHgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBlZGl0U2VjdGlvbigpIHtcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7IGRhdGE6IHRoaXMuZGF0YSB9KTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OiByZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIGdldFNjcmVlblNpemUoKSB7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0TGF5b3V0KCkge1xyXG4gICAgaWYgKHRoaXMuc3R5bGU/LmxheW91dD8uYWxpZ24gPT0gJ2xlZnQnKVxyXG4gICAgICByZXR1cm4gJ2p1c3RpZnktY29udGVudC1zdGFydCdcclxuICAgIGlmICh0aGlzLnN0eWxlPy5sYXlvdXQ/LmFsaWduID09ICdjZW50ZXInKVxyXG4gICAgICByZXR1cm4gJ2p1c3RpZnktY29udGVudC1jZW50ZXInXHJcbiAgICBpZiAodGhpcy5zdHlsZT8ubGF5b3V0Py5hbGlnbiA9PSAncmlnaHQnKVxyXG4gICAgICByZXR1cm4gJ2p1c3RpZnktY29udGVudC1lbmQnXHJcbiAgICByZXR1cm4gJ2p1c3RpZnktY29udGVudC1jZW50ZXInXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8c2VjdGlvbiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlPy5iYWNrZ3JvdW5kXCIgY2xhc3M9XCJ0b3RhbC1jb250YWluZXJcIiBzaW1wb0hvdmVyXHJcbiAgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCIgW2F0dHIuc3R5bGVdPVwiY3VzdG9tQ2xhc3NcIj5cclxuICA8ZGl2IGNsYXNzPVwiY29sLXh4bC04IHB5LTUgdy0xMDBcIiAjbWFpbkNvbnRhaW5lciBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9PdmVybGF5XT1cInN0eWxlPy5iYWNrZ3JvdW5kXCJcclxuICAgIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIiBbc2ltcG9Cb3JkZXJdPVwic3R5bGU/LmJvcmRlclwiIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZT8uYW5pbWF0aW9uXCI+XHJcblxyXG4gICAgPGRpdiBbc2ltcG9Qb3NpdGlvbkxheW91dERpcmVjdGl2ZV09XCJzdHlsZT8ucG9zaXRpb25MYXlvdXRcIiBjbGFzcz1cInJvd1wiIFtpZF09XCJkYXRhPy5pZFwiXHJcbiAgICAgIFtzaW1wb0xheW91dF09XCJzdHlsZT8ubGF5b3V0XCIgW3NpbXBvQ29udGFpbmVyQWxpZ25tZW50XT1cInN0eWxlc0xheW91dFwiIFtjbGFzc109XCJnZXRMYXlvdXQoKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkIGZsZXgtY29sIGN1cnNvci1wb2ludGVyIG14LTBcIiBbY2xhc3MuY29sLWxnLTldPVwiIWNvbnRlbnQ/LmltYWdlPy5zaG93SW1hZ2VcIiBbY2xhc3MuY29sLW1kLTldPVwiIWNvbnRlbnQ/LmltYWdlPy5zaG93SW1hZ2VcIiBbY2xhc3MuY29sLWxnLTZdPVwiY29udGVudD8uaW1hZ2U/LnNob3dJbWFnZVwiIFtjbGFzcy5jb2wtbWQtNl09XCJjb250ZW50Py5pbWFnZT8uc2hvd0ltYWdlXCI+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdGV4dCBvZiBkYXRhPy5jb250ZW50Py5pbnB1dFRleHQ7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cInctMTAwXCIgW3NpbXBvQ29udGVudFRpdGxlU3BhY2VdPVwiaGVhZGluZ1NwYWNlXCI+XHJcbiAgICAgICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwidGV4dC52YWx1ZVwiIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiIFtpbnB1dFRleHRJbmRleF09XCJpXCIgW2lzUlRFXT1cInRleHQuaXNSVEVcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW1EYXRhIG9mIGNvbnRlbnQ/Lmxpc3RJdGVtPy5kYXRhOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJkYXRhIGRhdGEtMSB3LTEwMCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJcclxuICAgIHVuQ29sbGFwc2VkTGlzdC5pbmNsdWRlcyhpKSAmJiBkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudEJhY2tncm91bmRUeXBlID09ICdHcmFkaWVudCdcclxuICAgICAgPyB7IGJhY2tncm91bmQ6ICdsaW5lYXItZ3JhZGllbnQoOTBkZWcsICcgKyBkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yICsgJywgJyArIGRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uc2Vjb25kYXJ5QWNjZW50Q29sb3IgKyAnKScgfVxyXG4gICAgICA6ICAgICB1bkNvbGxhcHNlZExpc3QuaW5jbHVkZXMoaSkgJiYgZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRCYWNrZ3JvdW5kVHlwZSA9PSAnU29saWQnID9cclxueyBiYWNrZ3JvdW5kIDogZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvcn0gOiB7fVxyXG4gIFwiPlxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7YWxpZ24taXRlbXM6IGNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGN1cnNvcjogcG9pbnRlcjtcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInF1ZXN0aW9uXCI+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwiaGVhZGluZy1tZWRpdW0gIHBvc2l0aW9uLXJlbGF0aXZlIGNvbnRlbnQtc2lkZSBtYi0wIHRleHQtc3RhcnQgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIiBbbmdDbGFzc109XCJ7J2Z3LTYwMCc6dW5Db2xsYXBzZWRMaXN0LmluY2x1ZGVzKGkpfVwiIChjbGljayk9XCJ0b2dnbGVDb250ZW50KGkpXCI+XHJcbiAgICAgICAgICAgICAgPCEtLSA8c3BhbiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiID4gLS0+XHJcbiAgICAgICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cIml0ZW1EYXRhLmlucHV0VGV4dFswXS52YWx1ZVwiIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiIFtpbnB1dFRleHRJbmRleF09XCIwXCIgW2l0ZW1JbmRleF09XCJpXCIgW2lzUlRFXT1cIml0ZW1EYXRhLmlucHV0VGV4dFswXT8uaXNSVEVcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgICAgICAgICAgIDwhLS0gPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJ1bkNvbGxhcHNlZExpc3QuaW5jbHVkZXMoaSlcIlxyXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnbGVmdCcgOiBzdHlsZT8ubGF5b3V0Py5hbGlnbiA9PSAncmlnaHQnID8gMCA6ICcnLCAncmlnaHQnIDogc3R5bGU/LmxheW91dD8uYWxpZ24gIT09ICdyaWdodCcgPyAwIDogJyd9XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ29udGVudChpKVwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiIXVuQ29sbGFwc2VkTGlzdC5pbmNsdWRlcyhpKVwiXHJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwieydsZWZ0JyA6IHN0eWxlPy5sYXlvdXQ/LmFsaWduID09ICdyaWdodCcgPyAwIDogJycsICdyaWdodCcgOiBzdHlsZT8ubGF5b3V0Py5hbGlnbiAhPT0gJ3JpZ2h0JyA/IDAgOiAnJ31cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDb250ZW50KGkpXCI+YWRkPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJvZHktbGFyZ2UgZGVzYyBtdWx0aS1jb2xsYXBzZSB0ZXh0LXN0YXJ0IGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydjb2xsYXBzZSc6ICF1bkNvbGxhcHNlZExpc3QuaW5jbHVkZXMoaSl9XCI+XHJcbiAgICAgICAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJpdGVtRGF0YS5pbnB1dFRleHRbMV0udmFsdWVcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIiBbaW5wdXRUZXh0SW5kZXhdPVwiMVwiIFtpdGVtSW5kZXhdPVwiaVwiIFtpc1JURV09XCJpdGVtRGF0YS5pbnB1dFRleHRbMV0/LmlzUlRFXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMCBjb2wtc20tNiBjb2wtbWQtNiBjb2wtbGctNiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgKm5nSWY9XCJjb250ZW50Py5pbWFnZT8uc2hvd0ltYWdlXCI+XHJcbiAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwiY29udGVudD8uaW1hZ2U/LnVybFwiIFtzaW1wb0ltYWdlRGlyZWN0aXZlXT1cInN0eWxlPy5pbWFnZVwiIFtpZF09XCJkYXRhPy5pZFwiXHJcbiAgICAgICAgICBbc2ltcG9PYmplY3RQb3NpdGlvbl09XCJjb250ZW50Py5pbWFnZT8ucG9zaXRpb25cIiBbc2ltcG9Db3JuZXJdPVwic3R5bGU/LmNvcm5lcnNcIlxyXG4gICAgICAgICAgW2NsYXNzXT1cImRhdGE/LmlkKyhjb250ZW50Py5pbWFnZT8uaWQgfHwgJycpXCIgY2xhc3M9XCJkLWJsb2NrIG14LWxnLWF1dG8gaW1nLWZsdWlkXCJcclxuICAgICAgICAgIFthbHRdPVwiY29udGVudD8uaW1hZ2U/LmFsdFRleHRcIiBsb2FkaW5nPVwibGF6eVwiIFthcHBJbWFnZUVkaXRvcl09XCJlZGl0IHx8IGZhbHNlXCIgW2ltYWdlRGF0YV09XCJjb250ZW50Py5pbWFnZVwiXHJcbiAgICAgICAgICBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgY2xhc3M9XCJoLTEwMCB3LTEwMFwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZGV2aWRlcj8uZGlzcGxheVwiPlxyXG4gICAgPHNpbXBvLXN2Zy1kaXZpZGVyIFtkaXZpZGVyVHlwZV09XCJzdHlsZT8uZGV2aWRlcj8uZGV2aWRlclR5cGVcIlxyXG4gICAgICBbY29sb3JdPVwibmV4dENvbXBvbmVudENvbG9yPy5jb2xvclwiPjwvc2ltcG8tc3ZnLWRpdmlkZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxyXG4gICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cclxuICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cclxuICA8L2Rpdj5cclxuPC9zZWN0aW9uPiJdfQ==
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFxLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9mYXEtc2VjdGlvbi9mYXEtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2ZhcS1zZWN0aW9uL2ZhcS1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxlQUFl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QUNuQix5QkFBeUI7d0JBQ3pCLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLHFCQUFxQjt3QkFDckIsOEJBQThCO3dCQUM5QixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsMEJBQTBCO3dCQUMxQixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsZ0JBQWdCO3dCQUNoQixnQ0FBZ0M7d0JBQ2hDLGdDQUFnQzt3QkFDaEMscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3dCQUNoQiwwQkFBMEI7d0JBQzFCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3FCQUNyQjtrRkFLUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBMENOLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkFRQ29udGVudE1vZGFsLCBGQVFTZWN0aW9uTW9kYWwsIEZBUVN0eWxlc01vZGVsIH0gZnJvbSAnLi9mYXEtc2VjdGlvbi5tb2RhbCc7XG5pbXBvcnQgeyBTaW1wb0VsZW1lbnRzTW9kdWxlIH0gZnJvbSAnLi8uLi8uLi9lbGVtZW50cy9pbmRleCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2luZGV4JztcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFubmVyQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYW5uZXItY29udGVudC1maXQtZGlyZWN0aXZlJztcbmltcG9ydCB7IEJvcmRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ib3JkZXItZGlyZWN0aXZlJztcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9idXR0b24tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29sdW1uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29udGFpbmVyRml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRhaW5lci1maXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IHNpbXBvQ29uZXRlbkFsaWdubWVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWFsaWdubWVudC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29ybmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2ltcG9Gb290ZXJMYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvZm9vdGVyLWxheW91dC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL292ZXJsYXktZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvc2l0aW9uTGF5b3V0RGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3Bvc2l0aW9uLWxheW91dC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3RleHQtYmFja2dyb3VuZC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi9CYXNlU2VjdGlvbic7XG5pbXBvcnQgeyBDb250ZW50VGl0bGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC10aXRsZS1zcGFjaW5nLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTUEFDSU5HIH0gZnJvbSAnLi4vLi4vc3R5bGVzL2luZGV4JztcbmltcG9ydCB7IE9iamVjdFBvc2l0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2ltYWdlLXBvc2l0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcbmltcG9ydCB7IFNpbXBvQ29udGFpbmVyQWxpZ21lbnQgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGFpbmVyLWFsaWdubWVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgU2FuaXRpemVIdG1sUGlwZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Nhbml0aXplSHRtbCc7XG5pbXBvcnQgeyBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWhvcml6b250YWwuZGlyZWN0aXZlJztcbmltcG9ydCB7IFN2Z0RpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9zdmctZGl2aWRlci9zdmctZGl2aWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbWFnZUVkaXRvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9pbWFnZS1lZGl0b3IuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ltcG8tZmFxLXNlY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgU2ltcG9FbGVtZW50c01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcbiAgICBNYXRJY29uLFxuICAgIFRleHRFZGl0b3JDb21wb25lbnQsXG5cbiAgICAvL2RpcmVjdGl2ZVxuICAgIEFuaW1hdGlvbkRpcmVjdGl2ZSxcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxuICAgIEJhbm5lckNvbnRlbnRGaXREaXJlY3RpdmUsXG4gICAgQm9yZGVyRGlyZWN0aXZlLFxuICAgIEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSxcbiAgICBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUsXG4gICAgQ29udGFpbmVyRml0RGlyZWN0aXZlLFxuICAgIHNpbXBvQ29uZXRlbkFsaWdubWVudERpcmVjdGl2ZSxcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxuICAgIENvcm5lckRpcmVjdGl2ZSxcbiAgICBTaW1wb0Zvb3RlckxheW91dERpcmVjdGl2ZSxcbiAgICBIb3ZlckRpcmVjdGl2ZSxcbiAgICBJbWFnZURpcmVjdGl2ZURpcmVjdGl2ZSxcbiAgICBPdmVybGF5RGlyZWN0aXZlLFxuICAgIFBvc2l0aW9uTGF5b3V0RGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIENvbnRlbnRUaXRsZURpcmVjdGl2ZSxcbiAgICBPYmplY3RQb3NpdGlvbkRpcmVjdGl2ZSxcbiAgICBTaW1wb0NvbnRhaW5lckFsaWdtZW50LFxuICAgIFNhbml0aXplSHRtbFBpcGUsXG4gICAgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUsXG4gICAgU3ZnRGl2aWRlckNvbXBvbmVudCxcbiAgICBJbWFnZUVkaXRvckRpcmVjdGl2ZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vZmFxLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZmFxLXNlY3Rpb24uY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgRmFxU2VjdGlvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIHtcbiAgQElucHV0KCkgZGF0YT86IEZBUVNlY3Rpb25Nb2RhbDtcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xuICBASW5wdXQoKSBjdXN0b21DbGFzcz86IHN0cmluZztcblxuICBASW5wdXQoKSBuZXh0Q29tcG9uZW50Q29sb3I/OiBCYWNrZ3JvdW5kTW9kZWw7XG4gIGNvbnRlbnQ/OiBGQVFDb250ZW50TW9kYWw7XG4gIHN0eWxlPzogRkFRU3R5bGVzTW9kZWw7XG5cbiAgdW5Db2xsYXBzZWRMaXN0OiBudW1iZXJbXSA9IFtdO1xuICBzY3JlZW5XaWR0aDogbnVtYmVyID0gMDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZ2V0U2NyZWVuU2l6ZSgpO1xuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcblxuICAgIHRoaXMuc3R5bGUgPSB0aGlzLmRhdGE/LnN0eWxlcztcbiAgICB0aGlzLmRlbGV0ZVNlbGVjdGVkID0gdGhpcy5kZWxldGVcbiAgfVxuICBnZXQgaGVhZGluZ1NwYWNlKCkge1xuICAgIHJldHVybiB0aGlzLnN0eWxlPy5sYXlvdXQuaGVhZGluZ1NwYWNpbmcgYXMgU1BBQ0lORztcbiAgfVxuICBnZXQgc3R5bGVzTGF5b3V0KCkge1xuICAgIHJldHVybiB7IC4uLnRoaXMuc3R5bGU/LmxheW91dCB9IGFzIExheU91dE1vZGVsO1xuICB9XG4gIHRvZ2dsZUNvbnRlbnQoaWR4OiBudW1iZXIpIHtcblxuICAgIC8vIHRoaXMudW5Db2xsYXBzZWRMaXN0LnB1c2goaWR4KTtcbiAgICBpZiAodGhpcy51bkNvbGxhcHNlZExpc3QuaW5jbHVkZXMoaWR4KSkge1xuICAgICAgdGhpcy51bkNvbGxhcHNlZExpc3QgPSB0aGlzLnVuQ29sbGFwc2VkTGlzdC5maWx0ZXIoKGluZGV4OiBudW1iZXIpID0+IGlkeCAhPSBpbmRleCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy51bkNvbGxhcHNlZExpc3QgPSBbXTtcbiAgICAgIHRoaXMudW5Db2xsYXBzZWRMaXN0LnB1c2goaWR4KTtcbiAgICB9XG4gIH1cbiAgZWRpdFNlY3Rpb24oKSB7XG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoeyBkYXRhOiB0aGlzLmRhdGEgfSk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6IHJlc2l6ZVwiLCBbXCIkZXZlbnRcIl0pXG4gIGdldFNjcmVlblNpemUoKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgfVxuICB9XG5cbiAgZ2V0TGF5b3V0KCkge1xuICAgIGlmICh0aGlzLnN0eWxlPy5sYXlvdXQ/LmFsaWduID09ICdsZWZ0JylcbiAgICAgIHJldHVybiAnanVzdGlmeS1jb250ZW50LXN0YXJ0J1xuICAgIGlmICh0aGlzLnN0eWxlPy5sYXlvdXQ/LmFsaWduID09ICdjZW50ZXInKVxuICAgICAgcmV0dXJuICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJ1xuICAgIGlmICh0aGlzLnN0eWxlPy5sYXlvdXQ/LmFsaWduID09ICdyaWdodCcpXG4gICAgICByZXR1cm4gJ2p1c3RpZnktY29udGVudC1lbmQnXG4gICAgcmV0dXJuICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJ1xuICB9XG5cbn1cbiIsIjxzZWN0aW9uIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGU/LmJhY2tncm91bmRcIiBjbGFzcz1cInRvdGFsLWNvbnRhaW5lclwiIHNpbXBvSG92ZXJcclxuICAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wteHhsLTggcHktNSB3LTEwMFwiICNtYWluQ29udGFpbmVyIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb092ZXJsYXldPVwic3R5bGU/LmJhY2tncm91bmRcIlxyXG4gICAgW3NwYWNpbmdIb3Jpem9udGFsXT1cInN0eWxlc0xheW91dFwiIFtzaW1wb0JvcmRlcl09XCJzdHlsZT8uYm9yZGVyXCIgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlPy5hbmltYXRpb25cIj5cclxuXHJcbiAgICA8ZGl2IFtzaW1wb1Bvc2l0aW9uTGF5b3V0RGlyZWN0aXZlXT1cInN0eWxlPy5wb3NpdGlvbkxheW91dFwiIGNsYXNzPVwicm93XCIgW2lkXT1cImRhdGE/LmlkXCJcclxuICAgICAgW3NpbXBvTGF5b3V0XT1cInN0eWxlPy5sYXlvdXRcIiBbc2ltcG9Db250YWluZXJBbGlnbm1lbnRdPVwic3R5bGVzTGF5b3V0XCIgW2NsYXNzXT1cImdldExheW91dCgpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQgZmxleC1jb2wgY3Vyc29yLXBvaW50ZXIgbXgtMFwiIFtjbGFzcy5jb2wtbGctOV09XCIhY29udGVudD8uaW1hZ2U/LnNob3dJbWFnZVwiIFtjbGFzcy5jb2wtbWQtOV09XCIhY29udGVudD8uaW1hZ2U/LnNob3dJbWFnZVwiIFtjbGFzcy5jb2wtbGctNl09XCJjb250ZW50Py5pbWFnZT8uc2hvd0ltYWdlXCIgW2NsYXNzLmNvbC1tZC02XT1cImNvbnRlbnQ/LmltYWdlPy5zaG93SW1hZ2VcIj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0ZXh0IG9mIGRhdGE/LmNvbnRlbnQ/LmlucHV0VGV4dDsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwidy0xMDBcIiBbc2ltcG9Db250ZW50VGl0bGVTcGFjZV09XCJoZWFkaW5nU3BhY2VcIj5cclxuICAgICAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJ0ZXh0LnZhbHVlXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2lucHV0VGV4dEluZGV4XT1cImlcIiBbaXNSVEVdPVwidGV4dC5pc1JURVwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbURhdGEgb2YgY29udGVudD8ubGlzdEl0ZW0/LmRhdGE7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cImRhdGEgZGF0YS0xIHctMTAwIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cIlxyXG4gICAgdW5Db2xsYXBzZWRMaXN0LmluY2x1ZGVzKGkpICYmIGRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50QmFja2dyb3VuZFR5cGUgPT0gJ0dyYWRpZW50J1xyXG4gICAgICA/IHsgYmFja2dyb3VuZDogJ2xpbmVhci1ncmFkaWVudCg5MGRlZywgJyArIGRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IgKyAnLCAnICsgZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5zZWNvbmRhcnlBY2NlbnRDb2xvciArICcpJyB9XHJcbiAgICAgIDogICAgIHVuQ29sbGFwc2VkTGlzdC5pbmNsdWRlcyhpKSAmJiBkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudEJhY2tncm91bmRUeXBlID09ICdTb2xpZCcgP1xyXG57IGJhY2tncm91bmQgOiBkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yfSA6IHt9XHJcbiAgXCI+XHJcbiAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDthbGlnbi1pdGVtczogY2VudGVyO2p1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgY3Vyc29yOiBwb2ludGVyO1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwicXVlc3Rpb25cIj5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJoZWFkaW5nLW1lZGl1bSAgcG9zaXRpb24tcmVsYXRpdmUgY29udGVudC1zaWRlIG1iLTAgdGV4dC1zdGFydCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiIFtuZ0NsYXNzXT1cInsnZnctNjAwJzp1bkNvbGxhcHNlZExpc3QuaW5jbHVkZXMoaSl9XCIgKGNsaWNrKT1cInRvZ2dsZUNvbnRlbnQoaSlcIj5cclxuICAgICAgICAgICAgICA8IS0tIDxzcGFuIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCIgPiAtLT5cclxuICAgICAgICAgICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwiaXRlbURhdGEuaW5wdXRUZXh0WzBdLnZhbHVlXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2lucHV0VGV4dEluZGV4XT1cIjBcIiBbaXRlbUluZGV4XT1cImlcIiBbaXNSVEVdPVwiaXRlbURhdGEuaW5wdXRUZXh0WzBdPy5pc1JURVwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XHJcbiAgICAgICAgICAgICAgPCEtLSA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInVuQ29sbGFwc2VkTGlzdC5pbmNsdWRlcyhpKVwiXHJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwieydsZWZ0JyA6IHN0eWxlPy5sYXlvdXQ/LmFsaWduID09ICdyaWdodCcgPyAwIDogJycsICdyaWdodCcgOiBzdHlsZT8ubGF5b3V0Py5hbGlnbiAhPT0gJ3JpZ2h0JyA/IDAgOiAnJ31cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDb250ZW50KGkpXCI+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhdW5Db2xsYXBzZWRMaXN0LmluY2x1ZGVzKGkpXCJcclxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7J2xlZnQnIDogc3R5bGU/LmxheW91dD8uYWxpZ24gPT0gJ3JpZ2h0JyA/IDAgOiAnJywgJ3JpZ2h0JyA6IHN0eWxlPy5sYXlvdXQ/LmFsaWduICE9PSAncmlnaHQnID8gMCA6ICcnfVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvbnRlbnQoaSlcIj5hZGQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9keS1sYXJnZSBkZXNjIG11bHRpLWNvbGxhcHNlIHRleHQtc3RhcnQgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J2NvbGxhcHNlJzogIXVuQ29sbGFwc2VkTGlzdC5pbmNsdWRlcyhpKX1cIj5cclxuICAgICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cIml0ZW1EYXRhLmlucHV0VGV4dFsxXS52YWx1ZVwiIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiIFtpbnB1dFRleHRJbmRleF09XCIxXCIgW2l0ZW1JbmRleF09XCJpXCIgW2lzUlRFXT1cIml0ZW1EYXRhLmlucHV0VGV4dFsxXT8uaXNSVEVcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEwIGNvbC1zbS02IGNvbC1tZC02IGNvbC1sZy02IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiAqbmdJZj1cImNvbnRlbnQ/LmltYWdlPy5zaG93SW1hZ2VcIj5cclxuICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJjb250ZW50Py5pbWFnZT8udXJsXCIgW3NpbXBvSW1hZ2VEaXJlY3RpdmVdPVwic3R5bGU/LmltYWdlXCIgW2lkXT1cImRhdGE/LmlkXCJcclxuICAgICAgICAgIFtzaW1wb09iamVjdFBvc2l0aW9uXT1cImNvbnRlbnQ/LmltYWdlPy5wb3NpdGlvblwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiXHJcbiAgICAgICAgICBbY2xhc3NdPVwiZGF0YT8uaWQrKGNvbnRlbnQ/LmltYWdlPy5pZCB8fCAnJylcIiBjbGFzcz1cImQtYmxvY2sgbXgtbGctYXV0byBpbWctZmx1aWRcIlxyXG4gICAgICAgICAgW2FsdF09XCJjb250ZW50Py5pbWFnZT8uYWx0VGV4dFwiIGxvYWRpbmc9XCJsYXp5XCIgW2FwcEltYWdlRWRpdG9yXT1cImVkaXQgfHwgZmFsc2VcIiBbaW1hZ2VEYXRhXT1cImNvbnRlbnQ/LmltYWdlXCJcclxuICAgICAgICAgIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIiBjbGFzcz1cImgtMTAwIHctMTAwXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5kZXZpZGVyPy5kaXNwbGF5XCI+XHJcbiAgICA8c2ltcG8tc3ZnLWRpdmlkZXIgW2RpdmlkZXJUeXBlXT1cInN0eWxlPy5kZXZpZGVyPy5kZXZpZGVyVHlwZVwiXHJcbiAgICAgIFtjb2xvcl09XCJuZXh0Q29tcG9uZW50Q29sb3I/LmNvbG9yXCI+PC9zaW1wby1zdmctZGl2aWRlcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XHJcbiAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwic2hvd0RlbGV0ZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZGVsZXRlfVwiPlxyXG4gICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxyXG4gIDwvZGl2PlxyXG48L3NlY3Rpb24+Il19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFxLXNlY3Rpb24ubW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2ZhcS1zZWN0aW9uL2ZhcS1zZWN0aW9uLm1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgIEJ1dHRvblN0eWxlTW9kZWwsIElucHV0VGV4dE1vZGVsLCBMaXN0SXRlbU1vZGFsLCBTdHlsZXNNb2RlbCxJbWFnZSxQb3NpdGlvbkxheW91dE1vZGFsLEltYWdlU3R5bGUgfSBmcm9tICcuLy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7Q29ybmVycyxBbGlnbkNvbnRlbnR9IGZyb20gXCIuLy4uLy4uL3N0eWxlcy9pbmRleFwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGQVFTZWN0aW9uTW9kYWwge1xyXG4gIGlkOiBzdHJpbmcsXHJcbiAgc2VjdGlvblR5cGU6IHN0cmluZyxcclxuICBzZWN0aW9uTmFtZTogc3RyaW5nLFxyXG4gIGNvbnRlbnQ6IEZBUUNvbnRlbnRNb2RhbDtcclxuICBzdHlsZXM6IEZBUVN0eWxlc01vZGVsO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZBUUNvbnRlbnRNb2RhbCB7XHJcbiAgaW5wdXRUZXh0IDogW0lucHV0VGV4dE1vZGVsXVxyXG4gIGltYWdlOkltYWdlTW9kZWw7XHJcbiAgbGlzdEl0ZW06IExpc3RJdGVtTW9kYWw8RkFRSXRlbU1vZGFsPjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlTW9kZWwgZXh0ZW5kcyBJbWFnZXtcclxuICBzaG93SW1hZ2U6Ym9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZBUVN0eWxlc01vZGVsIGV4dGVuZHMgU3R5bGVzTW9kZWx7XHJcbiAgYnV0dG9uIDogQnV0dG9uU3R5bGVNb2RlbDtcclxuICBjb3JuZXJzOiBDb3JuZXJzO1xyXG4gIHBvc2l0aW9uTGF5b3V0OiBQb3NpdGlvbkxheW91dE1vZGFsO1xyXG4gIGltYWdlOiBJbWFnZVN0eWxlO1xyXG4gIGNvbnRlbnRBbGlnbm1lbnQ6IEFsaWduQ29udGVudDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGQVFJdGVtTW9kYWwge1xyXG4gIGlucHV0VGV4dDogSW5wdXRUZXh0TW9kZWxbXTtcclxufSJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFxLXNlY3Rpb24ubW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2ZhcS1zZWN0aW9uL2ZhcS1zZWN0aW9uLm1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7ICBCdXR0b25TdHlsZU1vZGVsLCBJbnB1dFRleHRNb2RlbCwgTGlzdEl0ZW1Nb2RhbCwgU3R5bGVzTW9kZWwsSW1hZ2UsUG9zaXRpb25MYXlvdXRNb2RhbCxJbWFnZVN0eWxlIH0gZnJvbSAnLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xuaW1wb3J0IHtDb3JuZXJzLEFsaWduQ29udGVudH0gZnJvbSBcIi4vLi4vLi4vc3R5bGVzL2luZGV4XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRkFRU2VjdGlvbk1vZGFsIHtcbiAgaWQ6IHN0cmluZyxcbiAgc2VjdGlvblR5cGU6IHN0cmluZyxcbiAgc2VjdGlvbk5hbWU6IHN0cmluZyxcbiAgY29udGVudDogRkFRQ29udGVudE1vZGFsO1xuICBzdHlsZXM6IEZBUVN0eWxlc01vZGVsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZBUUNvbnRlbnRNb2RhbCB7XG4gIGlucHV0VGV4dCA6IFtJbnB1dFRleHRNb2RlbF1cbiAgaW1hZ2U6SW1hZ2VNb2RlbDtcbiAgbGlzdEl0ZW06IExpc3RJdGVtTW9kYWw8RkFRSXRlbU1vZGFsPjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VNb2RlbCBleHRlbmRzIEltYWdle1xuICBzaG93SW1hZ2U6Ym9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZBUVN0eWxlc01vZGVsIGV4dGVuZHMgU3R5bGVzTW9kZWx7XG4gIGJ1dHRvbiA6IEJ1dHRvblN0eWxlTW9kZWw7XG4gIGNvcm5lcnM6IENvcm5lcnM7XG4gIHBvc2l0aW9uTGF5b3V0OiBQb3NpdGlvbkxheW91dE1vZGFsO1xuICBpbWFnZTogSW1hZ2VTdHlsZTtcbiAgY29udGVudEFsaWdubWVudDogQWxpZ25Db250ZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZBUUl0ZW1Nb2RhbCB7XG4gIGlucHV0VGV4dDogSW5wdXRUZXh0TW9kZWxbXTtcbn0iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZXMtc2VjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvZmVhdHVyZXMtc2VjdGlvbi9mZWF0dXJlcy1zZWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JuZXJzLCBJbWFnZUZpdCwgSW1hZ2VSYXRpbywgUmVkaXJlY3Rpb25MaW5rVHlwZSwgVGV4dFBvc2l0aW9uIH0gZnJvbSBcIi4vLi4vLi4vc3R5bGVzL2luZGV4XCI7XHJcbmltcG9ydCB7IEFjdGlvbk1vZGVsLCBJbWFnZSwgSW1hZ2VTdHlsZSwgSW5wdXRUZXh0TW9kZWwsIExpc3RJdGVtTW9kYWwsIFBvc2l0aW9uTGF5b3V0TW9kYWwsIFN0eWxlc01vZGVsIH0gZnJvbSBcIi4vLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsXCI7XHJcbmltcG9ydCB7IENBUkRfU0laRSAsIExBWU9VVFBPU0lUSU9OLCBUQUJfU1RZTElORyB9IGZyb20gXCIuLy4uLy4uL3N0eWxlcy90eXBlc1wiO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZVNlY3Rpb25Nb2RlbCB7XHJcbiAgaWQ6IHN0cmluZyxcclxuICBzZWN0aW9uVHlwZTogc3RyaW5nLFxyXG4gIHNlY3Rpb25OYW1lOiBzdHJpbmcsXHJcbiAgY29udGVudDogRmVhdHVyZUNvbnRlbnRNb2RlbDtcclxuICBzdHlsZXM6IEZlYXR1cmVTdHlsZXNNb2RlbFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVDb250ZW50TW9kZWwge1xyXG4gIGlucHV0VGV4dCA6IFtJbnB1dFRleHRNb2RlbF0sXHJcbiAgbGlzdEl0ZW06IExpc3RJdGVtTW9kYWw8RmVhdHVyZUl0ZW1Nb2RlbD5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlU3R5bGVzTW9kZWwgZXh0ZW5kcyBTdHlsZXNNb2RlbCB7XHJcbiAgY29ybmVyczogQ29ybmVyc1xyXG4gIGltYWdlOiBJbWFnZVN0eWxlO1xyXG4gIGZ1bGxXaWR0aDogYm9vbGVhbjtcclxuICBpbnZlcnRJbWFnZTogYm9vbGVhbjtcclxuICBwb3NpdGlvbkxheW91dDogUG9zaXRpb25MYXlvdXRNb2RhbDtcclxuICB0YWJTdHlsaW5nIDogVEFCX1NUWUxJTkc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUl0ZW1Nb2RlbCB7XHJcbiAgaW1hZ2U6IEltYWdlO1xyXG4gIGlucHV0VGV4dDogSW5wdXRUZXh0TW9kZWxbXTtcclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZXMtc2VjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvZmVhdHVyZXMtc2VjdGlvbi9mZWF0dXJlcy1zZWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JuZXJzLCBJbWFnZUZpdCwgSW1hZ2VSYXRpbywgUmVkaXJlY3Rpb25MaW5rVHlwZSwgVGV4dFBvc2l0aW9uIH0gZnJvbSBcIi4vLi4vLi4vc3R5bGVzL2luZGV4XCI7XG5pbXBvcnQgeyBBY3Rpb25Nb2RlbCwgSW1hZ2UsIEltYWdlU3R5bGUsIElucHV0VGV4dE1vZGVsLCBMaXN0SXRlbU1vZGFsLCBQb3NpdGlvbkxheW91dE1vZGFsLCBTdHlsZXNNb2RlbCB9IGZyb20gXCIuLy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbFwiO1xuaW1wb3J0IHsgQ0FSRF9TSVpFICwgTEFZT1VUUE9TSVRJT04sIFRBQl9TVFlMSU5HIH0gZnJvbSBcIi4vLi4vLi4vc3R5bGVzL3R5cGVzXCI7XG5cblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlU2VjdGlvbk1vZGVsIHtcbiAgaWQ6IHN0cmluZyxcbiAgc2VjdGlvblR5cGU6IHN0cmluZyxcbiAgc2VjdGlvbk5hbWU6IHN0cmluZyxcbiAgY29udGVudDogRmVhdHVyZUNvbnRlbnRNb2RlbDtcbiAgc3R5bGVzOiBGZWF0dXJlU3R5bGVzTW9kZWxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlQ29udGVudE1vZGVsIHtcbiAgaW5wdXRUZXh0IDogW0lucHV0VGV4dE1vZGVsXSxcbiAgbGlzdEl0ZW06IExpc3RJdGVtTW9kYWw8RmVhdHVyZUl0ZW1Nb2RlbD5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlU3R5bGVzTW9kZWwgZXh0ZW5kcyBTdHlsZXNNb2RlbCB7XG4gIGNvcm5lcnM6IENvcm5lcnNcbiAgaW1hZ2U6IEltYWdlU3R5bGU7XG4gIGZ1bGxXaWR0aDogYm9vbGVhbjtcbiAgaW52ZXJ0SW1hZ2U6IGJvb2xlYW47XG4gIHBvc2l0aW9uTGF5b3V0OiBQb3NpdGlvbkxheW91dE1vZGFsO1xuICB0YWJTdHlsaW5nIDogVEFCX1NUWUxJTkc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUl0ZW1Nb2RlbCB7XG4gIGltYWdlOiBJbWFnZTtcbiAgaW5wdXRUZXh0OiBJbnB1dFRleHRNb2RlbFtdO1xufVxuIl19
@@ -121,7 +121,7 @@ export class FooterComponent extends BaseSection {
121
121
  this.router.navigate(['/list'], { queryParams: { category: categoryName.replaceAll(" ", '_'), pageNo: 1 } });
122
122
  }
123
123
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FooterComponent, deps: [{ token: i1.EventsService }, { token: i2.RestService }, { token: i3.MatDialog }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Component }); }
124
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FooterComponent, isStandalone: true, selector: "simpo-footer", inputs: { data: "data", index: "index", edit: "edit", delete: "delete" }, host: { listeners: { "window:resize": "getScreenSize($event)" } }, usesInheritance: true, ngImport: i0, template: "<section class=\"total-container\" simpoHover (hovering)=\"showEditTabs($event)\" [spacingHorizontal]=\"stylesLayout\"\r\n [simpoBackground]=\"style?.background\" [simpoLayout]=\"style?.layout\" [id]=\"data?.id\">\r\n <div>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer1'\">\r\n <ng-container *ngTemplateOutlet=\"Footer1\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer2'\">\r\n <ng-container *ngTemplateOutlet=\"Footer2\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer3'\">\r\n <ng-container *ngTemplateOutlet=\"Footer3\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer4'\">\r\n <ng-container *ngTemplateOutlet=\"Footer4\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"content?.textDescription?.display\">\r\n <ng-container *ngTemplateOutlet=\"textDescription\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"content?.popularSearches\">\r\n <ng-container *ngTemplateOutlet=\"popularSearches\"></ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n</section>\r\n\r\n<ng-template #Footer1>\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-md-4\">\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-8\">\r\n <div class=\"row\">\r\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <hr *ngIf=\"content?.displayBranding\">\r\n <div *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #Footer2>\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-md-3\">\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-9\">\r\n <div class=\"row\">\r\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <hr *ngIf=\"content?.displayBranding\">\r\n <div *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #Footer3>\r\n <div class=\"row\" [class.align-items-start]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\r\n </div>\r\n <hr>\r\n <div class=\"row justify-content-between\">\r\n <div class=\"col-md-4\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\"\r\n [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #Footer4>\r\n <div class=\"row align-items-center\">\r\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\r\n </div>\r\n <hr>\r\n <div class=\"row justify-content-between\">\r\n <div class=\"col-md-4\">\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #logoSection>\r\n <div class=\"d-flex\" [class.justify-content-center]=\"screenWidth < 475\">\r\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\r\n *ngIf=\"!content?.logo?.isImage || !content?.logo?.image?.url\" (click)=\"navigateToHome()\">\r\n <div *ngIf=\"content?.logo?.text?.isIcon && content?.logo?.text?.url\">\r\n <img loading=\"lazy\" [src]=\"content?.logo?.text?.url\" alt=\"logo\" [width]=\"content?.logo?.size\" loading=\"lazy\"\r\n (click)=\"navigateToHome()\">\r\n </div>\r\n <div class=\"heading-small\" *ngIf=\"content?.logo?.text?.isText\" [simpoColor]=\"style?.background?.color\"\r\n (click)=\"navigateToHome()\">\r\n <b [ngStyle]=\"{'font-family': content?.logo?.text?.fontFamily}\">{{content?.siteName?.value}}</b>\r\n </div>\r\n </div>\r\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\r\n *ngIf=\"content?.logo?.isImage && content?.logo?.image?.url\" (click)=\"navigateToHome()\">\r\n <img loading=\"lazy\" [src]=\"content?.logo?.image?.url\" alt=\"logo\"\r\n [style.width.%]=\"screenWidth > 475 || (content?.logo?.size || 10) < 50 ? content?.logo?.size : ((content?.logo?.size || 10) - 10)\"\r\n loading=\"lazy\">\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #descSection>\r\n <ng-container *ngIf=\"content?.additionalDetails as textItem\">\r\n <simpo-text-editor [(value)]=\"textItem.value \" [editable]=\"edit || false\" [sectionId]=\"data?.id\"\r\n [label]=\"content?.additionalDetails?.label || ''\"></simpo-text-editor>\r\n </ng-container>\r\n <!-- <div class=\"description\" [innerHTML]=\"content?.additionalDetails?.value ?? '' | sanitizeHtml\"></div> -->\r\n</ng-template>\r\n\r\n<ng-template #socialIcons>\r\n <div class=\"d-flex align-items-start align-items-lg-center flex-column flex-lg-row gap-lg-0 gap-3\"\r\n [ngClass]=\"content?.socialLinks?.display ? 'justify-content-between' : 'justify-content-end'\">\r\n <div class=\"d-flex mt-0 gap-1\" *ngIf=\"content?.socialLinks?.display\">\r\n <ng-container *ngFor=\"let item of content?.socialLinks?.channels\">\r\n <div class=\"icons\">\r\n <simpo-socia-icons [iconColor]=\"data?.styles?.background?.accentColor\" [socialIconData]=\"item\"\r\n [color]=\"style?.background?.color\" [sectionId]=\"data?.id\"></simpo-socia-icons>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #branding>\r\n <div class=\"heading-small text-center branding-text\">Built By <a class=\"branding-text fw-600\"\r\n href=\"https://simpo.ai\" target=\"_blank\">Simpo.ai</a></div>\r\n</ng-template>\r\n\r\n<ng-template #pagesHorizontal>\r\n <div class=\"col-md-3 mb-3 pageType\" *ngFor=\"let page of pages\" [class.w-50]=\"screenWidth < 475\"\r\n [class.text-center]=\"screenWidth < 475\" (click)=\"redirectToPage(page)\" [style.color]=\"style?.background?.accentColor\">\r\n {{page.pageName}}\r\n </div>\r\n</ng-template>\r\n\r\n<!-- <ng-template #pagesVertical>\r\n <div class=\"page-container col-md-3 mb-3\" [class.w-50]=\"screenWidth < 475\">\r\n <div class=\"pageType mb-3\">{{pageLink}}</div>\r\n <ng-container *ngFor=\"let page of pages\">\r\n <div class=\"pages mb-2\" (click)=\"redirectToPage(page)\">{{page?.pageName}}</div>\r\n </ng-container>\r\n </div>\r\n</ng-template> -->\r\n\r\n<ng-template #foldersVertical>\r\n <div class=\"page-container col-md-3 mb-3\" *ngFor=\"let folder of content?.folder;let folderIndex = index\"\r\n [class.w-50]=\"screenWidth < 475\">\r\n <simpo-text-editor [(value)]=\"folder.label\" [editable]=\"edit || false\" [sectionId]=\"data?.id\"></simpo-text-editor>\r\n <div class=\"mt-15\">\r\n <ng-container *ngFor=\"let page of folder.links;let linkIndex = index\">\r\n <div class=\"folder-page\" [ngClass]=\"{'hoverWhenEditable' : edit}\">\r\n <div class=\"pages mb-2\" (click)=\"redirectTo(page)\" [style.color]=\"style?.background?.accentColor\">\r\n {{page.label}}</div>\r\n <mat-icon (click)=\"deleteFolderLinks(folderIndex, linkIndex)\"\r\n [style.color]=\"style?.background?.accentColor\">delete</mat-icon>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"edit ? addLinks : null; context: {data: folderIndex}\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\" *ngIf=\"(content?.folder?.length || 0) < 4\" [class.w-50]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"edit ? addFolder : null\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #addLinks let-folderIndex=\"data\">\r\n <div class=\"addLinks\" (click)=\"createNewLink(folderIndex)\">\r\n <mat-icon>add</mat-icon>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #addFolder>\r\n <div class=\"addLinks h-100\" (click)=\"createNewFolder()\">\r\n <mat-icon>add</mat-icon>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #popularSearches>\r\n <div class=\"popular-searches mt-4\">\r\n <div class=\"popular-searches-title mb-2\">Popular Searches</div>\r\n <hr class=\"mb-4\">\r\n <ng-container *ngFor=\"let category of popularSearchedCategories; let last = last\">\r\n <div class=\"popular-category mb-4\">\r\n <div class=\"category-heading mb-2\" (click)=\"redirectToCategory(category.categoryName)\">{{category.categoryName}}\r\n </div>\r\n <div class=\"category-links d-flex flex-wrap gap-2\">\r\n <ng-container *ngFor=\"let collection of category.collectionIds; let last = last\">\r\n <span class=\"popular-link\"\r\n (click)=\"redirectToCollection(collection.refName,category.categoryName)\">{{collection.refName}}</span>\r\n <span *ngIf=\"!last\" class=\"separator\">|</span>\r\n </ng-container>\r\n </div>\r\n <hr *ngIf=\"!last\">\r\n </div>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #textDescription>\r\n <div class=\"text-description mt-2\">\r\n <ng-container *ngIf=\"content?.textDescription as textDesc\">\r\n <simpo-text-editor [(value)]=\"textDesc.content\" [editable]=\"edit || false\"\r\n [sectionId]=\"data?.id\"></simpo-text-editor>\r\n </ng-container>\r\n </div>\r\n <hr>\r\n</ng-template>", styles: [".total-container{height:auto;position:relative}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.pageType{font-size:.9rem;font-weight:600;line-height:22px}.pages{font-size:.9rem;font-weight:400;line-height:22px;cursor:pointer;color:#87769d}.branding-text{font-size:16px;font-weight:400;line-height:22px;text-decoration:unset}.fw-600{font-weight:600!important}.w-50{width:50%!important}.w-30{width:30%!important}.align-items-start{align-items:start!important}.mt-15{margin-top:15px}.folder-page{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.folder-page mat-icon{font-size:17px;display:flex;align-items:center;justify-content:center;display:none}.hoverWhenEditable:hover{border:1px solid #E9E9E9;border-radius:5px;cursor:pointer}.hoverWhenEditable:hover mat-icon{display:inline}.addLinks{padding-bottom:8px;padding-top:9px;border:1px dashed;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:5px}.addLinks mat-icon{border:1px solid rgb(219,223,225);display:flex;border-radius:100%;align-items:center;justify-content:center;font-size:16px;color:#dbdfe1}.fs-21{font-size:21px}.popular-searches-title{font-size:1.2rem;font-weight:500}.category-heading{font-size:1rem;font-weight:500;text-transform:capitalize}.category-links{font-size:.9rem;line-height:1.6}.popular-link{cursor:pointer;transition:color .3s ease}.popular-link:hover{text-decoration:underline}.separator{font-weight:300;margin:0 4px}.popular-category:last-child{border-bottom:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ColorDirective, selector: "[simpoColor]", inputs: ["simpoColor"] }, { kind: "component", type: SociaIconsComponent, selector: "simpo-socia-icons", inputs: ["socialIconData", "color", "sectionId", "iconColor"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i6.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i7.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type:
124
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FooterComponent, isStandalone: true, selector: "simpo-footer", inputs: { data: "data", index: "index", edit: "edit", delete: "delete" }, host: { listeners: { "window:resize": "getScreenSize($event)" } }, usesInheritance: true, ngImport: i0, template: "<section class=\"total-container\" simpoHover (hovering)=\"showEditTabs($event)\" [spacingHorizontal]=\"stylesLayout\"\n [simpoBackground]=\"style?.background\" [simpoLayout]=\"style?.layout\" [id]=\"data?.id\">\n <div>\n <ng-container *ngIf=\"style?.footerType == 'Footer1'\">\n <ng-container *ngTemplateOutlet=\"Footer1\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"style?.footerType == 'Footer2'\">\n <ng-container *ngTemplateOutlet=\"Footer2\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"style?.footerType == 'Footer3'\">\n <ng-container *ngTemplateOutlet=\"Footer3\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"style?.footerType == 'Footer4'\">\n <ng-container *ngTemplateOutlet=\"Footer4\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"content?.textDescription?.display\">\n <ng-container *ngTemplateOutlet=\"textDescription\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"content?.popularSearches\">\n <ng-container *ngTemplateOutlet=\"popularSearches\"></ng-container>\n </ng-container>\n </div>\n\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n\n</section>\n\n<ng-template #Footer1>\n <div class=\"row align-items-center\">\n <div class=\"col-md-4\">\n <div>\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\n </div>\n <div>\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\n </div>\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\n </div>\n </div>\n <div class=\"col-md-8\">\n <div class=\"row\">\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\n </div>\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\n </div>\n </div>\n </div>\n <hr *ngIf=\"content?.displayBranding\">\n <div *ngIf=\"content?.displayBranding\">\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #Footer2>\n <div class=\"row align-items-center\">\n <div class=\"col-md-3\">\n <div>\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\n </div>\n <div>\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\n </div>\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\n </div>\n </div>\n <div class=\"col-md-9\">\n <div class=\"row\">\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\n </div>\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\n </div>\n </div>\n </div>\n <hr *ngIf=\"content?.displayBranding\">\n <div *ngIf=\"content?.displayBranding\">\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #Footer3>\n <div class=\"row\" [class.align-items-start]=\"screenWidth < 475\">\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\n </div>\n <hr>\n <div class=\"row justify-content-between\">\n <div class=\"col-md-4\" [class.w-30]=\"screenWidth < 475\">\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\n </div>\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\"\n [class.w-30]=\"screenWidth < 475\">\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\n </div>\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\" [class.w-30]=\"screenWidth < 475\">\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\n </div>\n </div>\n\n</ng-template>\n\n<ng-template #Footer4>\n <div class=\"row align-items-center\">\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\n </div>\n <hr>\n <div class=\"row justify-content-between\">\n <div class=\"col-md-4\">\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\n </div>\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\">\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\n </div>\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\">\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\n </div>\n </div>\n\n</ng-template>\n\n<ng-template #logoSection>\n <div class=\"d-flex\" [class.justify-content-center]=\"screenWidth < 475\">\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\n *ngIf=\"!content?.logo?.isImage || !content?.logo?.image?.url\" (click)=\"navigateToHome()\">\n <div *ngIf=\"content?.logo?.text?.isIcon && content?.logo?.text?.url\">\n <img loading=\"lazy\" [src]=\"content?.logo?.text?.url\" alt=\"logo\" [width]=\"content?.logo?.size\" loading=\"lazy\"\n (click)=\"navigateToHome()\">\n </div>\n <div class=\"heading-small\" *ngIf=\"content?.logo?.text?.isText\" [simpoColor]=\"style?.background?.color\"\n (click)=\"navigateToHome()\">\n <b [ngStyle]=\"{'font-family': content?.logo?.text?.fontFamily}\">{{content?.siteName?.value}}</b>\n </div>\n </div>\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\n *ngIf=\"content?.logo?.isImage && content?.logo?.image?.url\" (click)=\"navigateToHome()\">\n <img loading=\"lazy\" [src]=\"content?.logo?.image?.url\" alt=\"logo\"\n [style.width.%]=\"screenWidth > 475 || (content?.logo?.size || 10) < 50 ? content?.logo?.size : ((content?.logo?.size || 10) - 10)\"\n loading=\"lazy\">\n </div>\n </div>\n</ng-template>\n\n<ng-template #descSection>\n <ng-container *ngIf=\"content?.additionalDetails as textItem\">\n <simpo-text-editor [(value)]=\"textItem.value \" [editable]=\"edit || false\" [sectionId]=\"data?.id\"\n [label]=\"content?.additionalDetails?.label || ''\"></simpo-text-editor>\n </ng-container>\n <!-- <div class=\"description\" [innerHTML]=\"content?.additionalDetails?.value ?? '' | sanitizeHtml\"></div> -->\n</ng-template>\n\n<ng-template #socialIcons>\n <div class=\"d-flex align-items-start align-items-lg-center flex-column flex-lg-row gap-lg-0 gap-3\"\n [ngClass]=\"content?.socialLinks?.display ? 'justify-content-between' : 'justify-content-end'\">\n <div class=\"d-flex mt-0 gap-1\" *ngIf=\"content?.socialLinks?.display\">\n <ng-container *ngFor=\"let item of content?.socialLinks?.channels\">\n <div class=\"icons\">\n <simpo-socia-icons [iconColor]=\"data?.styles?.background?.accentColor\" [socialIconData]=\"item\"\n [color]=\"style?.background?.color\" [sectionId]=\"data?.id\"></simpo-socia-icons>\n </div>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #branding>\n <div class=\"heading-small text-center branding-text\">Built By <a class=\"branding-text fw-600\"\n href=\"https://simpo.ai\" target=\"_blank\">Simpo.ai</a></div>\n</ng-template>\n\n<ng-template #pagesHorizontal>\n <div class=\"col-md-3 mb-3 pageType\" *ngFor=\"let page of pages\" [class.w-50]=\"screenWidth < 475\"\n [class.text-center]=\"screenWidth < 475\" (click)=\"redirectToPage(page)\" [style.color]=\"style?.background?.accentColor\">\n {{page.pageName}}\n </div>\n</ng-template>\n\n<!-- <ng-template #pagesVertical>\n <div class=\"page-container col-md-3 mb-3\" [class.w-50]=\"screenWidth < 475\">\n <div class=\"pageType mb-3\">{{pageLink}}</div>\n <ng-container *ngFor=\"let page of pages\">\n <div class=\"pages mb-2\" (click)=\"redirectToPage(page)\">{{page?.pageName}}</div>\n </ng-container>\n </div>\n</ng-template> -->\n\n<ng-template #foldersVertical>\n <div class=\"page-container col-md-3 mb-3\" *ngFor=\"let folder of content?.folder;let folderIndex = index\"\n [class.w-50]=\"screenWidth < 475\">\n <simpo-text-editor [(value)]=\"folder.label\" [editable]=\"edit || false\" [sectionId]=\"data?.id\"></simpo-text-editor>\n <div class=\"mt-15\">\n <ng-container *ngFor=\"let page of folder.links;let linkIndex = index\">\n <div class=\"folder-page\" [ngClass]=\"{'hoverWhenEditable' : edit}\">\n <div class=\"pages mb-2\" (click)=\"redirectTo(page)\" [style.color]=\"style?.background?.accentColor\">\n {{page.label}}</div>\n <mat-icon (click)=\"deleteFolderLinks(folderIndex, linkIndex)\"\n [style.color]=\"style?.background?.accentColor\">delete</mat-icon>\n </div>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"edit ? addLinks : null; context: {data: folderIndex}\"></ng-container>\n </div>\n </div>\n <div class=\"col-md-3\" *ngIf=\"(content?.folder?.length || 0) < 4\" [class.w-50]=\"screenWidth < 475\">\n <ng-container *ngTemplateOutlet=\"edit ? addFolder : null\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #addLinks let-folderIndex=\"data\">\n <div class=\"addLinks\" (click)=\"createNewLink(folderIndex)\">\n <mat-icon>add</mat-icon>\n </div>\n</ng-template>\n\n<ng-template #addFolder>\n <div class=\"addLinks h-100\" (click)=\"createNewFolder()\">\n <mat-icon>add</mat-icon>\n </div>\n</ng-template>\n\n<ng-template #popularSearches>\n <div class=\"popular-searches mt-4\">\n <div class=\"popular-searches-title mb-2\">Popular Searches</div>\n <hr class=\"mb-4\">\n <ng-container *ngFor=\"let category of popularSearchedCategories; let last = last\">\n <div class=\"popular-category mb-4\">\n <div class=\"category-heading mb-2\" (click)=\"redirectToCategory(category.categoryName)\">{{category.categoryName}}\n </div>\n <div class=\"category-links d-flex flex-wrap gap-2\">\n <ng-container *ngFor=\"let collection of category.collectionIds; let last = last\">\n <span class=\"popular-link\"\n (click)=\"redirectToCollection(collection.refName,category.categoryName)\">{{collection.refName}}</span>\n <span *ngIf=\"!last\" class=\"separator\">|</span>\n </ng-container>\n </div>\n <hr *ngIf=\"!last\">\n </div>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #textDescription>\n <div class=\"text-description mt-2\">\n <ng-container *ngIf=\"content?.textDescription as textDesc\">\n <simpo-text-editor [(value)]=\"textDesc.content\" [editable]=\"edit || false\"\n [sectionId]=\"data?.id\"></simpo-text-editor>\n </ng-container>\n </div>\n <hr>\n</ng-template>", styles: [".total-container{height:auto;position:relative}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.pageType{font-size:.9rem;font-weight:600;line-height:22px}.pages{font-size:.9rem;font-weight:400;line-height:22px;cursor:pointer;color:#87769d}.branding-text{font-size:16px;font-weight:400;line-height:22px;text-decoration:unset}.fw-600{font-weight:600!important}.w-50{width:50%!important}.w-30{width:30%!important}.align-items-start{align-items:start!important}.mt-15{margin-top:15px}.folder-page{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.folder-page mat-icon{font-size:17px;display:flex;align-items:center;justify-content:center;display:none}.hoverWhenEditable:hover{border:1px solid #E9E9E9;border-radius:5px;cursor:pointer}.hoverWhenEditable:hover mat-icon{display:inline}.addLinks{padding-bottom:8px;padding-top:9px;border:1px dashed;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:5px}.addLinks mat-icon{border:1px solid rgb(219,223,225);display:flex;border-radius:100%;align-items:center;justify-content:center;font-size:16px;color:#dbdfe1}.fs-21{font-size:21px}.popular-searches-title{font-size:1.2rem;font-weight:500}.category-heading{font-size:1rem;font-weight:500;text-transform:capitalize}.category-links{font-size:.9rem;line-height:1.6}.popular-link{cursor:pointer;transition:color .3s ease}.popular-link:hover{text-decoration:underline}.separator{font-weight:300;margin:0 4px}.popular-category:last-child{border-bottom:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ColorDirective, selector: "[simpoColor]", inputs: ["simpoColor"] }, { kind: "component", type: SociaIconsComponent, selector: "simpo-socia-icons", inputs: ["socialIconData", "color", "sectionId", "iconColor"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i6.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i7.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type:
125
125
  //directives
126
126
  SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "isRTE", "sectionId", "label", "type", "inputTextIndex", "itemIndex"], outputs: ["valueChange"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }] }); }
127
127
  }
@@ -141,7 +141,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
141
141
  ContentFitDirective,
142
142
  TextEditorComponent,
143
143
  HoverDirective
144
- ], template: "<section class=\"total-container\" simpoHover (hovering)=\"showEditTabs($event)\" [spacingHorizontal]=\"stylesLayout\"\r\n [simpoBackground]=\"style?.background\" [simpoLayout]=\"style?.layout\" [id]=\"data?.id\">\r\n <div>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer1'\">\r\n <ng-container *ngTemplateOutlet=\"Footer1\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer2'\">\r\n <ng-container *ngTemplateOutlet=\"Footer2\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer3'\">\r\n <ng-container *ngTemplateOutlet=\"Footer3\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer4'\">\r\n <ng-container *ngTemplateOutlet=\"Footer4\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"content?.textDescription?.display\">\r\n <ng-container *ngTemplateOutlet=\"textDescription\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"content?.popularSearches\">\r\n <ng-container *ngTemplateOutlet=\"popularSearches\"></ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n</section>\r\n\r\n<ng-template #Footer1>\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-md-4\">\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-8\">\r\n <div class=\"row\">\r\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <hr *ngIf=\"content?.displayBranding\">\r\n <div *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #Footer2>\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-md-3\">\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-9\">\r\n <div class=\"row\">\r\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <hr *ngIf=\"content?.displayBranding\">\r\n <div *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #Footer3>\r\n <div class=\"row\" [class.align-items-start]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\r\n </div>\r\n <hr>\r\n <div class=\"row justify-content-between\">\r\n <div class=\"col-md-4\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\"\r\n [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #Footer4>\r\n <div class=\"row align-items-center\">\r\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\r\n </div>\r\n <hr>\r\n <div class=\"row justify-content-between\">\r\n <div class=\"col-md-4\">\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #logoSection>\r\n <div class=\"d-flex\" [class.justify-content-center]=\"screenWidth < 475\">\r\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\r\n *ngIf=\"!content?.logo?.isImage || !content?.logo?.image?.url\" (click)=\"navigateToHome()\">\r\n <div *ngIf=\"content?.logo?.text?.isIcon && content?.logo?.text?.url\">\r\n <img loading=\"lazy\" [src]=\"content?.logo?.text?.url\" alt=\"logo\" [width]=\"content?.logo?.size\" loading=\"lazy\"\r\n (click)=\"navigateToHome()\">\r\n </div>\r\n <div class=\"heading-small\" *ngIf=\"content?.logo?.text?.isText\" [simpoColor]=\"style?.background?.color\"\r\n (click)=\"navigateToHome()\">\r\n <b [ngStyle]=\"{'font-family': content?.logo?.text?.fontFamily}\">{{content?.siteName?.value}}</b>\r\n </div>\r\n </div>\r\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\r\n *ngIf=\"content?.logo?.isImage && content?.logo?.image?.url\" (click)=\"navigateToHome()\">\r\n <img loading=\"lazy\" [src]=\"content?.logo?.image?.url\" alt=\"logo\"\r\n [style.width.%]=\"screenWidth > 475 || (content?.logo?.size || 10) < 50 ? content?.logo?.size : ((content?.logo?.size || 10) - 10)\"\r\n loading=\"lazy\">\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #descSection>\r\n <ng-container *ngIf=\"content?.additionalDetails as textItem\">\r\n <simpo-text-editor [(value)]=\"textItem.value \" [editable]=\"edit || false\" [sectionId]=\"data?.id\"\r\n [label]=\"content?.additionalDetails?.label || ''\"></simpo-text-editor>\r\n </ng-container>\r\n <!-- <div class=\"description\" [innerHTML]=\"content?.additionalDetails?.value ?? '' | sanitizeHtml\"></div> -->\r\n</ng-template>\r\n\r\n<ng-template #socialIcons>\r\n <div class=\"d-flex align-items-start align-items-lg-center flex-column flex-lg-row gap-lg-0 gap-3\"\r\n [ngClass]=\"content?.socialLinks?.display ? 'justify-content-between' : 'justify-content-end'\">\r\n <div class=\"d-flex mt-0 gap-1\" *ngIf=\"content?.socialLinks?.display\">\r\n <ng-container *ngFor=\"let item of content?.socialLinks?.channels\">\r\n <div class=\"icons\">\r\n <simpo-socia-icons [iconColor]=\"data?.styles?.background?.accentColor\" [socialIconData]=\"item\"\r\n [color]=\"style?.background?.color\" [sectionId]=\"data?.id\"></simpo-socia-icons>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #branding>\r\n <div class=\"heading-small text-center branding-text\">Built By <a class=\"branding-text fw-600\"\r\n href=\"https://simpo.ai\" target=\"_blank\">Simpo.ai</a></div>\r\n</ng-template>\r\n\r\n<ng-template #pagesHorizontal>\r\n <div class=\"col-md-3 mb-3 pageType\" *ngFor=\"let page of pages\" [class.w-50]=\"screenWidth < 475\"\r\n [class.text-center]=\"screenWidth < 475\" (click)=\"redirectToPage(page)\" [style.color]=\"style?.background?.accentColor\">\r\n {{page.pageName}}\r\n </div>\r\n</ng-template>\r\n\r\n<!-- <ng-template #pagesVertical>\r\n <div class=\"page-container col-md-3 mb-3\" [class.w-50]=\"screenWidth < 475\">\r\n <div class=\"pageType mb-3\">{{pageLink}}</div>\r\n <ng-container *ngFor=\"let page of pages\">\r\n <div class=\"pages mb-2\" (click)=\"redirectToPage(page)\">{{page?.pageName}}</div>\r\n </ng-container>\r\n </div>\r\n</ng-template> -->\r\n\r\n<ng-template #foldersVertical>\r\n <div class=\"page-container col-md-3 mb-3\" *ngFor=\"let folder of content?.folder;let folderIndex = index\"\r\n [class.w-50]=\"screenWidth < 475\">\r\n <simpo-text-editor [(value)]=\"folder.label\" [editable]=\"edit || false\" [sectionId]=\"data?.id\"></simpo-text-editor>\r\n <div class=\"mt-15\">\r\n <ng-container *ngFor=\"let page of folder.links;let linkIndex = index\">\r\n <div class=\"folder-page\" [ngClass]=\"{'hoverWhenEditable' : edit}\">\r\n <div class=\"pages mb-2\" (click)=\"redirectTo(page)\" [style.color]=\"style?.background?.accentColor\">\r\n {{page.label}}</div>\r\n <mat-icon (click)=\"deleteFolderLinks(folderIndex, linkIndex)\"\r\n [style.color]=\"style?.background?.accentColor\">delete</mat-icon>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"edit ? addLinks : null; context: {data: folderIndex}\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\" *ngIf=\"(content?.folder?.length || 0) < 4\" [class.w-50]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"edit ? addFolder : null\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #addLinks let-folderIndex=\"data\">\r\n <div class=\"addLinks\" (click)=\"createNewLink(folderIndex)\">\r\n <mat-icon>add</mat-icon>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #addFolder>\r\n <div class=\"addLinks h-100\" (click)=\"createNewFolder()\">\r\n <mat-icon>add</mat-icon>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #popularSearches>\r\n <div class=\"popular-searches mt-4\">\r\n <div class=\"popular-searches-title mb-2\">Popular Searches</div>\r\n <hr class=\"mb-4\">\r\n <ng-container *ngFor=\"let category of popularSearchedCategories; let last = last\">\r\n <div class=\"popular-category mb-4\">\r\n <div class=\"category-heading mb-2\" (click)=\"redirectToCategory(category.categoryName)\">{{category.categoryName}}\r\n </div>\r\n <div class=\"category-links d-flex flex-wrap gap-2\">\r\n <ng-container *ngFor=\"let collection of category.collectionIds; let last = last\">\r\n <span class=\"popular-link\"\r\n (click)=\"redirectToCollection(collection.refName,category.categoryName)\">{{collection.refName}}</span>\r\n <span *ngIf=\"!last\" class=\"separator\">|</span>\r\n </ng-container>\r\n </div>\r\n <hr *ngIf=\"!last\">\r\n </div>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #textDescription>\r\n <div class=\"text-description mt-2\">\r\n <ng-container *ngIf=\"content?.textDescription as textDesc\">\r\n <simpo-text-editor [(value)]=\"textDesc.content\" [editable]=\"edit || false\"\r\n [sectionId]=\"data?.id\"></simpo-text-editor>\r\n </ng-container>\r\n </div>\r\n <hr>\r\n</ng-template>", styles: [".total-container{height:auto;position:relative}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.pageType{font-size:.9rem;font-weight:600;line-height:22px}.pages{font-size:.9rem;font-weight:400;line-height:22px;cursor:pointer;color:#87769d}.branding-text{font-size:16px;font-weight:400;line-height:22px;text-decoration:unset}.fw-600{font-weight:600!important}.w-50{width:50%!important}.w-30{width:30%!important}.align-items-start{align-items:start!important}.mt-15{margin-top:15px}.folder-page{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.folder-page mat-icon{font-size:17px;display:flex;align-items:center;justify-content:center;display:none}.hoverWhenEditable:hover{border:1px solid #E9E9E9;border-radius:5px;cursor:pointer}.hoverWhenEditable:hover mat-icon{display:inline}.addLinks{padding-bottom:8px;padding-top:9px;border:1px dashed;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:5px}.addLinks mat-icon{border:1px solid rgb(219,223,225);display:flex;border-radius:100%;align-items:center;justify-content:center;font-size:16px;color:#dbdfe1}.fs-21{font-size:21px}.popular-searches-title{font-size:1.2rem;font-weight:500}.category-heading{font-size:1rem;font-weight:500;text-transform:capitalize}.category-links{font-size:.9rem;line-height:1.6}.popular-link{cursor:pointer;transition:color .3s ease}.popular-link:hover{text-decoration:underline}.separator{font-weight:300;margin:0 4px}.popular-category:last-child{border-bottom:none}\n"] }]
144
+ ], template: "<section class=\"total-container\" simpoHover (hovering)=\"showEditTabs($event)\" [spacingHorizontal]=\"stylesLayout\"\n [simpoBackground]=\"style?.background\" [simpoLayout]=\"style?.layout\" [id]=\"data?.id\">\n <div>\n <ng-container *ngIf=\"style?.footerType == 'Footer1'\">\n <ng-container *ngTemplateOutlet=\"Footer1\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"style?.footerType == 'Footer2'\">\n <ng-container *ngTemplateOutlet=\"Footer2\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"style?.footerType == 'Footer3'\">\n <ng-container *ngTemplateOutlet=\"Footer3\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"style?.footerType == 'Footer4'\">\n <ng-container *ngTemplateOutlet=\"Footer4\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"content?.textDescription?.display\">\n <ng-container *ngTemplateOutlet=\"textDescription\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"content?.popularSearches\">\n <ng-container *ngTemplateOutlet=\"popularSearches\"></ng-container>\n </ng-container>\n </div>\n\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n\n</section>\n\n<ng-template #Footer1>\n <div class=\"row align-items-center\">\n <div class=\"col-md-4\">\n <div>\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\n </div>\n <div>\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\n </div>\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\n </div>\n </div>\n <div class=\"col-md-8\">\n <div class=\"row\">\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\n </div>\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\n </div>\n </div>\n </div>\n <hr *ngIf=\"content?.displayBranding\">\n <div *ngIf=\"content?.displayBranding\">\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #Footer2>\n <div class=\"row align-items-center\">\n <div class=\"col-md-3\">\n <div>\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\n </div>\n <div>\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\n </div>\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\n </div>\n </div>\n <div class=\"col-md-9\">\n <div class=\"row\">\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\n </div>\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\n </div>\n </div>\n </div>\n <hr *ngIf=\"content?.displayBranding\">\n <div *ngIf=\"content?.displayBranding\">\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #Footer3>\n <div class=\"row\" [class.align-items-start]=\"screenWidth < 475\">\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\n </div>\n <hr>\n <div class=\"row justify-content-between\">\n <div class=\"col-md-4\" [class.w-30]=\"screenWidth < 475\">\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\n </div>\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\"\n [class.w-30]=\"screenWidth < 475\">\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\n </div>\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\" [class.w-30]=\"screenWidth < 475\">\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\n </div>\n </div>\n\n</ng-template>\n\n<ng-template #Footer4>\n <div class=\"row align-items-center\">\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\n </div>\n <hr>\n <div class=\"row justify-content-between\">\n <div class=\"col-md-4\">\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\n </div>\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\">\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\n </div>\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\">\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\n </div>\n </div>\n\n</ng-template>\n\n<ng-template #logoSection>\n <div class=\"d-flex\" [class.justify-content-center]=\"screenWidth < 475\">\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\n *ngIf=\"!content?.logo?.isImage || !content?.logo?.image?.url\" (click)=\"navigateToHome()\">\n <div *ngIf=\"content?.logo?.text?.isIcon && content?.logo?.text?.url\">\n <img loading=\"lazy\" [src]=\"content?.logo?.text?.url\" alt=\"logo\" [width]=\"content?.logo?.size\" loading=\"lazy\"\n (click)=\"navigateToHome()\">\n </div>\n <div class=\"heading-small\" *ngIf=\"content?.logo?.text?.isText\" [simpoColor]=\"style?.background?.color\"\n (click)=\"navigateToHome()\">\n <b [ngStyle]=\"{'font-family': content?.logo?.text?.fontFamily}\">{{content?.siteName?.value}}</b>\n </div>\n </div>\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\n *ngIf=\"content?.logo?.isImage && content?.logo?.image?.url\" (click)=\"navigateToHome()\">\n <img loading=\"lazy\" [src]=\"content?.logo?.image?.url\" alt=\"logo\"\n [style.width.%]=\"screenWidth > 475 || (content?.logo?.size || 10) < 50 ? content?.logo?.size : ((content?.logo?.size || 10) - 10)\"\n loading=\"lazy\">\n </div>\n </div>\n</ng-template>\n\n<ng-template #descSection>\n <ng-container *ngIf=\"content?.additionalDetails as textItem\">\n <simpo-text-editor [(value)]=\"textItem.value \" [editable]=\"edit || false\" [sectionId]=\"data?.id\"\n [label]=\"content?.additionalDetails?.label || ''\"></simpo-text-editor>\n </ng-container>\n <!-- <div class=\"description\" [innerHTML]=\"content?.additionalDetails?.value ?? '' | sanitizeHtml\"></div> -->\n</ng-template>\n\n<ng-template #socialIcons>\n <div class=\"d-flex align-items-start align-items-lg-center flex-column flex-lg-row gap-lg-0 gap-3\"\n [ngClass]=\"content?.socialLinks?.display ? 'justify-content-between' : 'justify-content-end'\">\n <div class=\"d-flex mt-0 gap-1\" *ngIf=\"content?.socialLinks?.display\">\n <ng-container *ngFor=\"let item of content?.socialLinks?.channels\">\n <div class=\"icons\">\n <simpo-socia-icons [iconColor]=\"data?.styles?.background?.accentColor\" [socialIconData]=\"item\"\n [color]=\"style?.background?.color\" [sectionId]=\"data?.id\"></simpo-socia-icons>\n </div>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #branding>\n <div class=\"heading-small text-center branding-text\">Built By <a class=\"branding-text fw-600\"\n href=\"https://simpo.ai\" target=\"_blank\">Simpo.ai</a></div>\n</ng-template>\n\n<ng-template #pagesHorizontal>\n <div class=\"col-md-3 mb-3 pageType\" *ngFor=\"let page of pages\" [class.w-50]=\"screenWidth < 475\"\n [class.text-center]=\"screenWidth < 475\" (click)=\"redirectToPage(page)\" [style.color]=\"style?.background?.accentColor\">\n {{page.pageName}}\n </div>\n</ng-template>\n\n<!-- <ng-template #pagesVertical>\n <div class=\"page-container col-md-3 mb-3\" [class.w-50]=\"screenWidth < 475\">\n <div class=\"pageType mb-3\">{{pageLink}}</div>\n <ng-container *ngFor=\"let page of pages\">\n <div class=\"pages mb-2\" (click)=\"redirectToPage(page)\">{{page?.pageName}}</div>\n </ng-container>\n </div>\n</ng-template> -->\n\n<ng-template #foldersVertical>\n <div class=\"page-container col-md-3 mb-3\" *ngFor=\"let folder of content?.folder;let folderIndex = index\"\n [class.w-50]=\"screenWidth < 475\">\n <simpo-text-editor [(value)]=\"folder.label\" [editable]=\"edit || false\" [sectionId]=\"data?.id\"></simpo-text-editor>\n <div class=\"mt-15\">\n <ng-container *ngFor=\"let page of folder.links;let linkIndex = index\">\n <div class=\"folder-page\" [ngClass]=\"{'hoverWhenEditable' : edit}\">\n <div class=\"pages mb-2\" (click)=\"redirectTo(page)\" [style.color]=\"style?.background?.accentColor\">\n {{page.label}}</div>\n <mat-icon (click)=\"deleteFolderLinks(folderIndex, linkIndex)\"\n [style.color]=\"style?.background?.accentColor\">delete</mat-icon>\n </div>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"edit ? addLinks : null; context: {data: folderIndex}\"></ng-container>\n </div>\n </div>\n <div class=\"col-md-3\" *ngIf=\"(content?.folder?.length || 0) < 4\" [class.w-50]=\"screenWidth < 475\">\n <ng-container *ngTemplateOutlet=\"edit ? addFolder : null\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #addLinks let-folderIndex=\"data\">\n <div class=\"addLinks\" (click)=\"createNewLink(folderIndex)\">\n <mat-icon>add</mat-icon>\n </div>\n</ng-template>\n\n<ng-template #addFolder>\n <div class=\"addLinks h-100\" (click)=\"createNewFolder()\">\n <mat-icon>add</mat-icon>\n </div>\n</ng-template>\n\n<ng-template #popularSearches>\n <div class=\"popular-searches mt-4\">\n <div class=\"popular-searches-title mb-2\">Popular Searches</div>\n <hr class=\"mb-4\">\n <ng-container *ngFor=\"let category of popularSearchedCategories; let last = last\">\n <div class=\"popular-category mb-4\">\n <div class=\"category-heading mb-2\" (click)=\"redirectToCategory(category.categoryName)\">{{category.categoryName}}\n </div>\n <div class=\"category-links d-flex flex-wrap gap-2\">\n <ng-container *ngFor=\"let collection of category.collectionIds; let last = last\">\n <span class=\"popular-link\"\n (click)=\"redirectToCollection(collection.refName,category.categoryName)\">{{collection.refName}}</span>\n <span *ngIf=\"!last\" class=\"separator\">|</span>\n </ng-container>\n </div>\n <hr *ngIf=\"!last\">\n </div>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #textDescription>\n <div class=\"text-description mt-2\">\n <ng-container *ngIf=\"content?.textDescription as textDesc\">\n <simpo-text-editor [(value)]=\"textDesc.content\" [editable]=\"edit || false\"\n [sectionId]=\"data?.id\"></simpo-text-editor>\n </ng-container>\n </div>\n <hr>\n</ng-template>", styles: [".total-container{height:auto;position:relative}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.pageType{font-size:.9rem;font-weight:600;line-height:22px}.pages{font-size:.9rem;font-weight:400;line-height:22px;cursor:pointer;color:#87769d}.branding-text{font-size:16px;font-weight:400;line-height:22px;text-decoration:unset}.fw-600{font-weight:600!important}.w-50{width:50%!important}.w-30{width:30%!important}.align-items-start{align-items:start!important}.mt-15{margin-top:15px}.folder-page{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.folder-page mat-icon{font-size:17px;display:flex;align-items:center;justify-content:center;display:none}.hoverWhenEditable:hover{border:1px solid #E9E9E9;border-radius:5px;cursor:pointer}.hoverWhenEditable:hover mat-icon{display:inline}.addLinks{padding-bottom:8px;padding-top:9px;border:1px dashed;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:5px}.addLinks mat-icon{border:1px solid rgb(219,223,225);display:flex;border-radius:100%;align-items:center;justify-content:center;font-size:16px;color:#dbdfe1}.fs-21{font-size:21px}.popular-searches-title{font-size:1.2rem;font-weight:500}.category-heading{font-size:1rem;font-weight:500;text-transform:capitalize}.category-links{font-size:.9rem;line-height:1.6}.popular-link{cursor:pointer;transition:color .3s ease}.popular-link:hover{text-decoration:underline}.separator{font-weight:300;margin:0 4px}.popular-category:last-child{border-bottom:none}\n"] }]
145
145
  }], ctorParameters: () => [{ type: i1.EventsService }, { type: i2.RestService }, { type: i3.MatDialog }, { type: i4.Router }], propDecorators: { data: [{
146
146
  type: Input
147
147
  }], index: [{
@@ -154,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
154
154
  type: HostListener,
155
155
  args: ['window:resize', ['$event']]
156
156
  }] } });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFVLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFHNUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZGLE9BQU8sV0FBVyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFhLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxt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QVksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0csQ0FBQzsrR0EzSFUsZUFBZTttR0FBZixlQUFlLDRPQy9DNUIseWdYQThQYyx5b0REak9WLFlBQVksMGxCQUNaLGNBQWMsaUZBQ2QsbUJBQW1CLDRIQUNuQixXQUFXLDhCQUNYLG9CQUFvQixtV0FDcEIsYUFBYSxtTEFDYixlQUFlO2dCQUVmLFlBQVk7Z0JBQ1osMEJBQTBCLDJHQUMxQixtQkFBbUIsMEdBQ25CLG1CQUFtQixtRkFDbkIsbUJBQW1CLDZMQUNuQixjQUFjOzs0RkFLTCxlQUFlO2tCQXRCM0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLGVBQWU7d0JBRWYsWUFBWTt3QkFDWiwwQkFBMEI7d0JBQzFCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGNBQWM7cUJBQ2Y7eUpBS1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQThCTixhQUFhO3NCQURaLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBOZ1pvbmUsIFBMQVRGT1JNX0lELCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb290ZXJDb250ZW50TW9kZWwsIEZvb3RlclNlY3Rpb25Nb2RlbCwgRm9vdGVyU3R5bGVzTW9kZWwgfSBmcm9tICcuL2Zvb3Rlci5tb2RhbCc7XHJcbmltcG9ydCB7IEJ1dHRvbiwgTGF5T3V0TW9kZWwgfSBmcm9tICcuLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBDb2xvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb2xvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU29jaWFJY29uc0NvbXBvbmVudCB9IGZyb20gJy4vLi4vLi4vZWxlbWVudHMvc29jaWEtaWNvbnMvc29jaWEtaWNvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2FuaXRpemVIdG1sUGlwZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Nhbml0aXplSHRtbCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTcGFjaW5nQXJvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3NwYWNpbmctYXJvdW5kLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWhvcml6b250YWwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uL0Jhc2VTZWN0aW9uJztcclxuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTGlua0VkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL2xpbmstZWRpdG9yL2xpbmstZWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1mb290ZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQ29sb3JEaXJlY3RpdmUsXHJcbiAgICBTb2NpYUljb25zQ29tcG9uZW50LFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXREaWFsb2dNb2R1bGUsXHJcblxyXG4gICAgLy9kaXJlY3RpdmVzXHJcbiAgICBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSxcclxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgVGV4dEVkaXRvckNvbXBvbmVudCxcclxuICAgIEhvdmVyRGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZm9vdGVyLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb290ZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiB7XHJcbiAgQElucHV0KCkgZGF0YT86IEZvb3RlclNlY3Rpb25Nb2RlbDtcclxuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgZGVsZXRlPyA9IGZhbHNlO1xyXG5cclxuICBjb250ZW50PzogRm9vdGVyQ29udGVudE1vZGVsO1xyXG4gIHN0eWxlPzogRm9vdGVyU3R5bGVzTW9kZWw7XHJcbiAgbGlua0VkaXRvclN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgZm9vdGVyVHlwZTogc3RyaW5nID0gXCIxXCI7XHJcbiAgc2NyZWVuV2lkdGg6IG51bWJlciA9IDQ3NTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1hdERpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmdldFNjcmVlblNpemUoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zdHlsZSA9IHRoaXMuZGF0YT8uc3R5bGVzO1xyXG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xyXG4gICAgdGhpcy5nZXRQb3B1bGFyU2VhcmNoZXMoKVxyXG4gICAgdGhpcy5nZXRQYWdlcygpXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMubGlua0VkaXRvclN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgZ2V0U2NyZWVuU2l6ZShldmVudD86IG51bWJlcikge1xyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBzdHlsZXNMYXlvdXQoKSB7XHJcbiAgICByZXR1cm4geyAuLi50aGlzLnN0eWxlPy5sYXlvdXQgfSBhcyBMYXlPdXRNb2RlbDtcclxuICB9XHJcblxyXG4gIHBhZ2VMaW5rOiBzdHJpbmcgPSBcIlBhZ2VzXCJcclxuICBwYWdlczogYW55ID0gW11cclxuXHJcbiAgZGVsZXRlRm9sZGVyTGlua3MoZm9sZGVySW5kZXg6IG51bWJlciwgbGlua0luZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuY29udGVudD8uZm9sZGVyW2ZvbGRlckluZGV4XS5saW5rcy5zcGxpY2UobGlua0luZGV4LCAxKTtcclxuICAgIGlmICgodGhpcy5jb250ZW50Py5mb2xkZXI/Lltmb2xkZXJJbmRleF0/LmxpbmtzPy5sZW5ndGggfHwgMCkgPD0gMCkge1xyXG4gICAgICB0aGlzLmNvbnRlbnQ/LmZvbGRlci5zcGxpY2UoZm9sZGVySW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZWRpdExpbmtzKCkge1xyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3RUbyhsaW5rOiBCdXR0b24pIHtcclxuICAgIGlmICh0aGlzLmVkaXQpIHtcclxuICAgICAgdGhpcy5tYXREaWFsb2cub3BlbihMaW5rRWRpdG9yQ29tcG9uZW50LCB7IHBhbmVsQ2xhc3M6ICdsaW5rLWVkaXRvcicsIGRhdGE6IHsgbGlua0RhdGE6IGxpbmssIHR5cGU6IFwiTElOS1wiIH0gfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5idXR0b25SZWRpcmVjdGlvbi5lbWl0KHsgZGF0YTogbGluayB9KTtcclxuICB9XHJcblxyXG4gIGdldFBhZ2VzKCkge1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRUZW1wbGF0ZSgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5wYWdlcyA9IHJlcy5kYXRhXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3RUb1BhZ2UocGFnZURhdGE6IGFueSkge1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIGxhYmVsOiBwYWdlRGF0YS5wYWdlTmFtZSxcclxuICAgICAgcmVkaXJlY3Rpb25Vcmw6IHBhZ2VEYXRhLnBhdGgsXHJcbiAgICAgIHBhZ2VJZDogcGFnZURhdGEuaWQsXHJcbiAgICAgIHN0YXR1czogdHJ1ZSxcclxuICAgIH1cclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5wYWdlUmVkaXJlY3Rpb25CdXR0b24uZW1pdCh7IGRhdGE6IGRhdGEgfSlcclxuICB9XHJcblxyXG4gIGNyZWF0ZU5ld0xpbmsoZm9sZGVySW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc3QgZWRpdG9yQ29tcG9uZW50ID0gdGhpcy5tYXREaWFsb2cub3BlbihMaW5rRWRpdG9yQ29tcG9uZW50LCB7IHBhbmVsQ2xhc3M6ICdsaW5rLWVkaXRvcicsIGRhdGE6IHsgdHlwZTogXCJMSU5LXCIgfSB9KTtcclxuICAgIHRoaXMubGlua0VkaXRvclN1YnNjcmlwdGlvbiA9IGVkaXRvckNvbXBvbmVudC5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcy5saW5rKSB7XHJcbiAgICAgICAgdGhpcy5jb250ZW50Py5mb2xkZXJbZm9sZGVySW5kZXhdLmxpbmtzLnB1c2gocmVzLmxpbmspO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlTmV3Rm9sZGVyKCkge1xyXG4gICAgY29uc3QgZWRpdG9yQ29tcG9uZW50ID0gdGhpcy5tYXREaWFsb2cub3BlbihMaW5rRWRpdG9yQ29tcG9uZW50LCB7IHBhbmVsQ2xhc3M6ICdsaW5rLWVkaXRvcicsIGRhdGE6IHsgdHlwZTogXCJMSU5LXCIgfSB9KTtcclxuICAgIGVkaXRvckNvbXBvbmVudC5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcy5saW5rKSB7XHJcbiAgICAgICAgbGV0IGZvbGRlciA9IHtcclxuICAgICAgICAgIGxhYmVsOiBcIkFkZCBmb2xkZXIgbmFtZVwiLFxyXG4gICAgICAgICAgbGlua3M6IFtyZXMubGlua11cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuY29udGVudCAmJiAhdGhpcy5jb250ZW50Py5mb2xkZXIpXHJcbiAgICAgICAgICB0aGlzLmNvbnRlbnQuZm9sZGVyID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuY29udGVudD8uZm9sZGVyLnB1c2goZm9sZGVyKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5hdmlnYXRlVG9Ib21lKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10pXHJcbiAgfVxyXG5cclxuICBwb3B1bGFyU2VhcmNoZWRDYXRlZ29yaWVzOiBhbnlbXSA9IFtdO1xyXG4gIGdldFBvcHVsYXJTZWFyY2hlcygpIHtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0UG9wdWxhclNlYXJjaGVzKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnBvcHVsYXJTZWFyY2hlZENhdGVnb3JpZXMgPSByZXNcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICByZWRpcmVjdFRvQ29sbGVjdGlvbihjb2xsZWN0aW9uTmFtZTogc3RyaW5nLCBjYXRlZ29yeU5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbGlzdCddLCB7IHF1ZXJ5UGFyYW1zOiB7IGNhdGVnb3J5OiBjYXRlZ29yeU5hbWUucmVwbGFjZUFsbChcIiBcIiwgJ18nKSwgY29sbGVjdGlvbnM6IGNvbGxlY3Rpb25OYW1lPy5yZXBsYWNlQWxsKFwiIFwiLCAnXycpLCBwYWdlTm86IDEgfSB9KTtcclxuICB9XHJcblxyXG4gIHJlZGlyZWN0VG9DYXRlZ29yeShjYXRlZ29yeU5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbGlzdCddLCB7IHF1ZXJ5UGFyYW1zOiB7IGNhdGVnb3J5OiBjYXRlZ29yeU5hbWUucmVwbGFjZUFsbChcIiBcIiwgJ18nKSwgcGFnZU5vOiAxIH0gfSk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8c2VjdGlvbiBjbGFzcz1cInRvdGFsLWNvbnRhaW5lclwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCIgW3NwYWNpbmdIb3Jpem9udGFsXT1cInN0eWxlc0xheW91dFwiXHJcbiAgW3NpbXBvQmFja2dyb3VuZF09XCJzdHlsZT8uYmFja2dyb3VuZFwiIFtzaW1wb0xheW91dF09XCJzdHlsZT8ubGF5b3V0XCIgW2lkXT1cImRhdGE/LmlkXCI+XHJcbiAgPGRpdj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZm9vdGVyVHlwZSA9PSAnRm9vdGVyMSdcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIkZvb3RlcjFcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5mb290ZXJUeXBlID09ICdGb290ZXIyJ1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiRm9vdGVyMlwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGU/LmZvb3RlclR5cGUgPT0gJ0Zvb3RlcjMnXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJGb290ZXIzXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZm9vdGVyVHlwZSA9PSAnRm9vdGVyNCdcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIkZvb3RlcjRcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnQ/LnRleHREZXNjcmlwdGlvbj8uZGlzcGxheVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGV4dERlc2NyaXB0aW9uXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50Py5wb3B1bGFyU2VhcmNoZXNcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBvcHVsYXJTZWFyY2hlc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cclxuICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG48L3NlY3Rpb24+XHJcblxyXG48bmctdGVtcGxhdGUgI0Zvb3RlcjE+XHJcbiAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGVzY1NlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJjb250ZW50Py5zb2NpYWxMaW5rcz8uZGlzcGxheSAmJiBzY3JlZW5XaWR0aCA+IDQ3NVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb2NpYWxJY29uc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC04XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9sZGVyc1ZlcnRpY2FsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGVudD8uc29jaWFsTGlua3M/LmRpc3BsYXkgJiYgc2NyZWVuV2lkdGggPCA0NzVcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvY2lhbEljb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGhyICpuZ0lmPVwiY29udGVudD8uZGlzcGxheUJyYW5kaW5nXCI+XHJcbiAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXlCcmFuZGluZ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJyYW5kaW5nXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI0Zvb3RlcjI+XHJcbiAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGVzY1NlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJjb250ZW50Py5zb2NpYWxMaW5rcz8uZGlzcGxheSAmJiBzY3JlZW5XaWR0aCA+IDQ3NVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb2NpYWxJY29uc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnZXNIb3Jpem9udGFsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGVudD8uc29jaWFsTGlua3M/LmRpc3BsYXkgJiYgc2NyZWVuV2lkdGggPCA0NzVcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvY2lhbEljb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGhyICpuZ0lmPVwiY29udGVudD8uZGlzcGxheUJyYW5kaW5nXCI+XHJcbiAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXlCcmFuZGluZ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJyYW5kaW5nXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI0Zvb3RlcjM+XHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiIFtjbGFzcy5hbGlnbi1pdGVtcy1zdGFydF09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvbGRlcnNWZXJ0aWNhbFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxocj5cclxuICA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIiBbY2xhc3Mudy0zMF09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9nb1NlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLXN0YXJ0XCIgKm5nSWY9XCJjb250ZW50Py5zb2NpYWxMaW5rcz8uZGlzcGxheVwiXHJcbiAgICAgIFtjbGFzcy53LTMwXT1cInNjcmVlbldpZHRoIDwgNDc1XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb2NpYWxJY29uc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIiAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXlCcmFuZGluZ1wiIFtjbGFzcy53LTMwXT1cInNjcmVlbldpZHRoIDwgNDc1XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJicmFuZGluZ1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNGb290ZXI0PlxyXG4gIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnZXNIb3Jpem9udGFsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPGhyPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9nb1NlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLXN0YXJ0XCIgKm5nSWY9XCJjb250ZW50Py5zb2NpYWxMaW5rcz8uZGlzcGxheVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic29jaWFsSWNvbnNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCIgKm5nSWY9XCJjb250ZW50Py5kaXNwbGF5QnJhbmRpbmdcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJyYW5kaW5nXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2xvZ29TZWN0aW9uPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBbY2xhc3MuanVzdGlmeS1jb250ZW50LWNlbnRlcl09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBhbGlnbi1pdGVtcy1sZy1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgbWItNFwiXHJcbiAgICAgICpuZ0lmPVwiIWNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgfHwgIWNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIiAoY2xpY2spPVwibmF2aWdhdGVUb0hvbWUoKVwiPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGVudD8ubG9nbz8udGV4dD8uaXNJY29uICYmIGNvbnRlbnQ/LmxvZ28/LnRleHQ/LnVybFwiPlxyXG4gICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBbc3JjXT1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LnVybFwiIGFsdD1cImxvZ29cIiBbd2lkdGhdPVwiY29udGVudD8ubG9nbz8uc2l6ZVwiIGxvYWRpbmc9XCJsYXp5XCJcclxuICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvSG9tZSgpXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1zbWFsbFwiICpuZ0lmPVwiY29udGVudD8ubG9nbz8udGV4dD8uaXNUZXh0XCIgW3NpbXBvQ29sb3JdPVwic3R5bGU/LmJhY2tncm91bmQ/LmNvbG9yXCJcclxuICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb0hvbWUoKVwiPlxyXG4gICAgICAgIDxiIFtuZ1N0eWxlXT1cInsnZm9udC1mYW1pbHknOiBjb250ZW50Py5sb2dvPy50ZXh0Py5mb250RmFtaWx5fVwiPnt7Y29udGVudD8uc2l0ZU5hbWU/LnZhbHVlfX08L2I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWl0ZW1zLWxnLWNlbnRlciBjdXJzb3ItcG9pbnRlciBtYi00XCJcclxuICAgICAgKm5nSWY9XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIGNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIiAoY2xpY2spPVwibmF2aWdhdGVUb0hvbWUoKVwiPlxyXG4gICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgYWx0PVwibG9nb1wiXHJcbiAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwic2NyZWVuV2lkdGggPiA0NzUgfHwgKGNvbnRlbnQ/LmxvZ28/LnNpemUgfHwgMTApIDwgNTAgPyBjb250ZW50Py5sb2dvPy5zaXplIDogKChjb250ZW50Py5sb2dvPy5zaXplIHx8IDEwKSAtIDEwKVwiXHJcbiAgICAgICAgbG9hZGluZz1cImxhenlcIj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZXNjU2VjdGlvbj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudD8uYWRkaXRpb25hbERldGFpbHMgYXMgdGV4dEl0ZW1cIj5cclxuICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJ0ZXh0SXRlbS52YWx1ZSBcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICBbbGFiZWxdPVwiY29udGVudD8uYWRkaXRpb25hbERldGFpbHM/LmxhYmVsIHx8ICcnXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8IS0tIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiIFtpbm5lckhUTUxdPVwiY29udGVudD8uYWRkaXRpb25hbERldGFpbHM/LnZhbHVlID8/ICcnIHwgc2FuaXRpemVIdG1sXCI+PC9kaXY+IC0tPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNzb2NpYWxJY29ucz5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLXN0YXJ0IGFsaWduLWl0ZW1zLWxnLWNlbnRlciBmbGV4LWNvbHVtbiBmbGV4LWxnLXJvdyBnYXAtbGctMCBnYXAtM1wiXHJcbiAgICBbbmdDbGFzc109XCJjb250ZW50Py5zb2NpYWxMaW5rcz8uZGlzcGxheSA/ICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbicgOiAnanVzdGlmeS1jb250ZW50LWVuZCdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtMCBnYXAtMVwiICpuZ0lmPVwiY29udGVudD8uc29jaWFsTGlua3M/LmRpc3BsYXlcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb250ZW50Py5zb2NpYWxMaW5rcz8uY2hhbm5lbHNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbnNcIj5cclxuICAgICAgICAgIDxzaW1wby1zb2NpYS1pY29ucyBbaWNvbkNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiBbc29jaWFsSWNvbkRhdGFdPVwiaXRlbVwiXHJcbiAgICAgICAgICAgIFtjb2xvcl09XCJzdHlsZT8uYmFja2dyb3VuZD8uY29sb3JcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCI+PC9zaW1wby1zb2NpYS1pY29ucz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYnJhbmRpbmc+XHJcbiAgPGRpdiBjbGFzcz1cImhlYWRpbmctc21hbGwgdGV4dC1jZW50ZXIgIGJyYW5kaW5nLXRleHRcIj5CdWlsdCBCeSA8YSBjbGFzcz1cImJyYW5kaW5nLXRleHQgZnctNjAwXCJcclxuICAgICAgaHJlZj1cImh0dHBzOi8vc2ltcG8uYWlcIiB0YXJnZXQ9XCJfYmxhbmtcIj5TaW1wby5haTwvYT48L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcGFnZXNIb3Jpem9udGFsPlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBtYi0zIHBhZ2VUeXBlXCIgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZXNcIiBbY2xhc3Mudy01MF09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiXHJcbiAgICBbY2xhc3MudGV4dC1jZW50ZXJdPVwic2NyZWVuV2lkdGggPCA0NzVcIiAoY2xpY2spPVwicmVkaXJlY3RUb1BhZ2UocGFnZSlcIiBbc3R5bGUuY29sb3JdPVwic3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+XHJcbiAgICB7e3BhZ2UucGFnZU5hbWV9fVxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSA8bmctdGVtcGxhdGUgI3BhZ2VzVmVydGljYWw+XHJcbiAgPGRpdiBjbGFzcz1cInBhZ2UtY29udGFpbmVyIGNvbC1tZC0zIG1iLTNcIiBbY2xhc3Mudy01MF09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInBhZ2VUeXBlIG1iLTNcIj57e3BhZ2VMaW5rfX08L2Rpdj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZXNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBhZ2VzIG1iLTJcIiAoY2xpY2spPVwicmVkaXJlY3RUb1BhZ2UocGFnZSlcIj57e3BhZ2U/LnBhZ2VOYW1lfX08L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiAtLT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZm9sZGVyc1ZlcnRpY2FsPlxyXG4gIDxkaXYgY2xhc3M9XCJwYWdlLWNvbnRhaW5lciBjb2wtbWQtMyBtYi0zXCIgKm5nRm9yPVwibGV0IGZvbGRlciBvZiBjb250ZW50Py5mb2xkZXI7bGV0IGZvbGRlckluZGV4ID0gaW5kZXhcIlxyXG4gICAgW2NsYXNzLnctNTBdPVwic2NyZWVuV2lkdGggPCA0NzVcIj5cclxuICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJmb2xkZXIubGFiZWxcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgPGRpdiBjbGFzcz1cIm10LTE1XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgZm9sZGVyLmxpbmtzO2xldCBsaW5rSW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb2xkZXItcGFnZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJXaGVuRWRpdGFibGUnIDogZWRpdH1cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWdlcyBtYi0yXCIgKGNsaWNrKT1cInJlZGlyZWN0VG8ocGFnZSlcIiBbc3R5bGUuY29sb3JdPVwic3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+XHJcbiAgICAgICAgICAgIHt7cGFnZS5sYWJlbH19PC9kaXY+XHJcbiAgICAgICAgICA8bWF0LWljb24gKGNsaWNrKT1cImRlbGV0ZUZvbGRlckxpbmtzKGZvbGRlckluZGV4LCBsaW5rSW5kZXgpXCJcclxuICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInN0eWxlPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPmRlbGV0ZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWRpdCA/IGFkZExpbmtzIDogbnVsbDsgY29udGV4dDoge2RhdGE6IGZvbGRlckluZGV4fVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCIoY29udGVudD8uZm9sZGVyPy5sZW5ndGggfHwgMCkgPCA0XCIgW2NsYXNzLnctNTBdPVwic2NyZWVuV2lkdGggPCA0NzVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlZGl0ID8gYWRkRm9sZGVyIDogbnVsbFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNhZGRMaW5rcyBsZXQtZm9sZGVySW5kZXg9XCJkYXRhXCI+XHJcbiAgPGRpdiBjbGFzcz1cImFkZExpbmtzXCIgKGNsaWNrKT1cImNyZWF0ZU5ld0xpbmsoZm9sZGVySW5kZXgpXCI+XHJcbiAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYWRkRm9sZGVyPlxyXG4gIDxkaXYgY2xhc3M9XCJhZGRMaW5rcyBoLTEwMFwiIChjbGljayk9XCJjcmVhdGVOZXdGb2xkZXIoKVwiPlxyXG4gICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3BvcHVsYXJTZWFyY2hlcz5cclxuICA8ZGl2IGNsYXNzPVwicG9wdWxhci1zZWFyY2hlcyBtdC00XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicG9wdWxhci1zZWFyY2hlcy10aXRsZSBtYi0yXCI+UG9wdWxhciBTZWFyY2hlczwvZGl2PlxyXG4gICAgPGhyIGNsYXNzPVwibWItNFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2F0ZWdvcnkgb2YgcG9wdWxhclNlYXJjaGVkQ2F0ZWdvcmllczsgbGV0IGxhc3QgPSBsYXN0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwb3B1bGFyLWNhdGVnb3J5IG1iLTRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktaGVhZGluZyBtYi0yXCIgKGNsaWNrKT1cInJlZGlyZWN0VG9DYXRlZ29yeShjYXRlZ29yeS5jYXRlZ29yeU5hbWUpXCI+e3tjYXRlZ29yeS5jYXRlZ29yeU5hbWV9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1saW5rcyBkLWZsZXggZmxleC13cmFwIGdhcC0yXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2xsZWN0aW9uIG9mIGNhdGVnb3J5LmNvbGxlY3Rpb25JZHM7IGxldCBsYXN0ID0gbGFzdFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBvcHVsYXItbGlua1wiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZGlyZWN0VG9Db2xsZWN0aW9uKGNvbGxlY3Rpb24ucmVmTmFtZSxjYXRlZ29yeS5jYXRlZ29yeU5hbWUpXCI+e3tjb2xsZWN0aW9uLnJlZk5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhbGFzdFwiIGNsYXNzPVwic2VwYXJhdG9yXCI+fDwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxociAqbmdJZj1cIiFsYXN0XCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3RleHREZXNjcmlwdGlvbj5cclxuICA8ZGl2IGNsYXNzPVwidGV4dC1kZXNjcmlwdGlvbiBtdC0yXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudD8udGV4dERlc2NyaXB0aW9uIGFzIHRleHREZXNjXCI+XHJcbiAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJ0ZXh0RGVzYy5jb250ZW50XCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIlxyXG4gICAgICAgIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPGhyPlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFVLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFHNUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZGLE9BQU8sV0FBVyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFhLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxt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QVksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0csQ0FBQzsrR0EzSFUsZUFBZTttR0FBZixlQUFlLDRPQy9DNUIsNmdXQThQYyx5b0REak9WLFlBQVksMGxCQUNaLGNBQWMsaUZBQ2QsbUJBQW1CLDRIQUNuQixXQUFXLDhCQUNYLG9CQUFvQixtV0FDcEIsYUFBYSxtTEFDYixlQUFlO2dCQUVmLFlBQVk7Z0JBQ1osMEJBQTBCLDJHQUMxQixtQkFBbUIsMEdBQ25CLG1CQUFtQixtRkFDbkIsbUJBQW1CLDZMQUNuQixjQUFjOzs0RkFLTCxlQUFlO2tCQXRCM0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLGVBQWU7d0JBRWYsWUFBWTt3QkFDWiwwQkFBMEI7d0JBQzFCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGNBQWM7cUJBQ2Y7eUpBS1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQThCTixhQUFhO3NCQURaLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBOZ1pvbmUsIFBMQVRGT1JNX0lELCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9vdGVyQ29udGVudE1vZGVsLCBGb290ZXJTZWN0aW9uTW9kZWwsIEZvb3RlclN0eWxlc01vZGVsIH0gZnJvbSAnLi9mb290ZXIubW9kYWwnO1xuaW1wb3J0IHsgQnV0dG9uLCBMYXlPdXRNb2RlbCB9IGZyb20gJy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBDb2xvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb2xvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTb2NpYUljb25zQ29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi9lbGVtZW50cy9zb2NpYS1pY29ucy9zb2NpYS1pY29ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2FuaXRpemVIdG1sUGlwZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Nhbml0aXplSHRtbCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNwYWNpbmdBcm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvc3BhY2luZy1hcm91bmQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvc3BhY2luZy1ob3Jpem9udGFsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi9CYXNlU2VjdGlvbic7XG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IExpbmtFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9saW5rLWVkaXRvci9saW5rLWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLWZvb3RlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ29sb3JEaXJlY3RpdmUsXG4gICAgU29jaWFJY29uc0NvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcblxuICAgIC8vZGlyZWN0aXZlc1xuICAgIFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlLFxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcbiAgICBUZXh0RWRpdG9yQ29tcG9uZW50LFxuICAgIEhvdmVyRGlyZWN0aXZlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9mb290ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZm9vdGVyLmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIEZvb3RlckNvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIHtcbiAgQElucHV0KCkgZGF0YT86IEZvb3RlclNlY3Rpb25Nb2RlbDtcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgZGVsZXRlPyA9IGZhbHNlO1xuXG4gIGNvbnRlbnQ/OiBGb290ZXJDb250ZW50TW9kZWw7XG4gIHN0eWxlPzogRm9vdGVyU3R5bGVzTW9kZWw7XG4gIGxpbmtFZGl0b3JTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgZm9vdGVyVHlwZTogc3RyaW5nID0gXCIxXCI7XG4gIHNjcmVlbldpZHRoOiBudW1iZXIgPSA0NzU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWF0RGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmdldFNjcmVlblNpemUoKTtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3R5bGUgPSB0aGlzLmRhdGE/LnN0eWxlcztcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmRhdGE/LmNvbnRlbnQ7XG4gICAgdGhpcy5nZXRQb3B1bGFyU2VhcmNoZXMoKVxuICAgIHRoaXMuZ2V0UGFnZXMoKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5saW5rRWRpdG9yU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpXG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgZ2V0U2NyZWVuU2l6ZShldmVudD86IG51bWJlcikge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzdHlsZXNMYXlvdXQoKSB7XG4gICAgcmV0dXJuIHsgLi4udGhpcy5zdHlsZT8ubGF5b3V0IH0gYXMgTGF5T3V0TW9kZWw7XG4gIH1cblxuICBwYWdlTGluazogc3RyaW5nID0gXCJQYWdlc1wiXG4gIHBhZ2VzOiBhbnkgPSBbXVxuXG4gIGRlbGV0ZUZvbGRlckxpbmtzKGZvbGRlckluZGV4OiBudW1iZXIsIGxpbmtJbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5jb250ZW50Py5mb2xkZXJbZm9sZGVySW5kZXhdLmxpbmtzLnNwbGljZShsaW5rSW5kZXgsIDEpO1xuICAgIGlmICgodGhpcy5jb250ZW50Py5mb2xkZXI/Lltmb2xkZXJJbmRleF0/LmxpbmtzPy5sZW5ndGggfHwgMCkgPD0gMCkge1xuICAgICAgdGhpcy5jb250ZW50Py5mb2xkZXIuc3BsaWNlKGZvbGRlckluZGV4LCAxKTtcbiAgICB9XG4gIH1cblxuICBlZGl0TGlua3MoKSB7XG4gIH1cblxuICByZWRpcmVjdFRvKGxpbms6IEJ1dHRvbikge1xuICAgIGlmICh0aGlzLmVkaXQpIHtcbiAgICAgIHRoaXMubWF0RGlhbG9nLm9wZW4oTGlua0VkaXRvckNvbXBvbmVudCwgeyBwYW5lbENsYXNzOiAnbGluay1lZGl0b3InLCBkYXRhOiB7IGxpbmtEYXRhOiBsaW5rLCB0eXBlOiBcIkxJTktcIiB9IH0pO1xuICAgIH1cbiAgICBlbHNlXG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuYnV0dG9uUmVkaXJlY3Rpb24uZW1pdCh7IGRhdGE6IGxpbmsgfSk7XG4gIH1cblxuICBnZXRQYWdlcygpIHtcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldFRlbXBsYXRlKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgdGhpcy5wYWdlcyA9IHJlcy5kYXRhXG4gICAgfSlcbiAgfVxuXG4gIHJlZGlyZWN0VG9QYWdlKHBhZ2VEYXRhOiBhbnkpIHtcbiAgICBsZXQgZGF0YSA9IHtcbiAgICAgIGxhYmVsOiBwYWdlRGF0YS5wYWdlTmFtZSxcbiAgICAgIHJlZGlyZWN0aW9uVXJsOiBwYWdlRGF0YS5wYXRoLFxuICAgICAgcGFnZUlkOiBwYWdlRGF0YS5pZCxcbiAgICAgIHN0YXR1czogdHJ1ZSxcbiAgICB9XG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnBhZ2VSZWRpcmVjdGlvbkJ1dHRvbi5lbWl0KHsgZGF0YTogZGF0YSB9KVxuICB9XG5cbiAgY3JlYXRlTmV3TGluayhmb2xkZXJJbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgZWRpdG9yQ29tcG9uZW50ID0gdGhpcy5tYXREaWFsb2cub3BlbihMaW5rRWRpdG9yQ29tcG9uZW50LCB7IHBhbmVsQ2xhc3M6ICdsaW5rLWVkaXRvcicsIGRhdGE6IHsgdHlwZTogXCJMSU5LXCIgfSB9KTtcbiAgICB0aGlzLmxpbmtFZGl0b3JTdWJzY3JpcHRpb24gPSBlZGl0b3JDb21wb25lbnQuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICBpZiAocmVzLmxpbmspIHtcbiAgICAgICAgdGhpcy5jb250ZW50Py5mb2xkZXJbZm9sZGVySW5kZXhdLmxpbmtzLnB1c2gocmVzLmxpbmspO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBjcmVhdGVOZXdGb2xkZXIoKSB7XG4gICAgY29uc3QgZWRpdG9yQ29tcG9uZW50ID0gdGhpcy5tYXREaWFsb2cub3BlbihMaW5rRWRpdG9yQ29tcG9uZW50LCB7IHBhbmVsQ2xhc3M6ICdsaW5rLWVkaXRvcicsIGRhdGE6IHsgdHlwZTogXCJMSU5LXCIgfSB9KTtcbiAgICBlZGl0b3JDb21wb25lbnQuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICBpZiAocmVzLmxpbmspIHtcbiAgICAgICAgbGV0IGZvbGRlciA9IHtcbiAgICAgICAgICBsYWJlbDogXCJBZGQgZm9sZGVyIG5hbWVcIixcbiAgICAgICAgICBsaW5rczogW3Jlcy5saW5rXVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnQgJiYgIXRoaXMuY29udGVudD8uZm9sZGVyKVxuICAgICAgICAgIHRoaXMuY29udGVudC5mb2xkZXIgPSBbXTtcblxuICAgICAgICB0aGlzLmNvbnRlbnQ/LmZvbGRlci5wdXNoKGZvbGRlcik7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG5hdmlnYXRlVG9Ib21lKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdKVxuICB9XG5cbiAgcG9wdWxhclNlYXJjaGVkQ2F0ZWdvcmllczogYW55W10gPSBbXTtcbiAgZ2V0UG9wdWxhclNlYXJjaGVzKCkge1xuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0UG9wdWxhclNlYXJjaGVzKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgdGhpcy5wb3B1bGFyU2VhcmNoZWRDYXRlZ29yaWVzID0gcmVzXG4gICAgfSlcbiAgfVxuXG4gIHJlZGlyZWN0VG9Db2xsZWN0aW9uKGNvbGxlY3Rpb25OYW1lOiBzdHJpbmcsIGNhdGVnb3J5TmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbGlzdCddLCB7IHF1ZXJ5UGFyYW1zOiB7IGNhdGVnb3J5OiBjYXRlZ29yeU5hbWUucmVwbGFjZUFsbChcIiBcIiwgJ18nKSwgY29sbGVjdGlvbnM6IGNvbGxlY3Rpb25OYW1lPy5yZXBsYWNlQWxsKFwiIFwiLCAnXycpLCBwYWdlTm86IDEgfSB9KTtcbiAgfVxuXG4gIHJlZGlyZWN0VG9DYXRlZ29yeShjYXRlZ29yeU5hbWU6IHN0cmluZykge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xpc3QnXSwgeyBxdWVyeVBhcmFtczogeyBjYXRlZ29yeTogY2F0ZWdvcnlOYW1lLnJlcGxhY2VBbGwoXCIgXCIsICdfJyksIHBhZ2VObzogMSB9IH0pO1xuICB9XG5cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwidG90YWwtY29udGFpbmVyXCIgc2ltcG9Ib3ZlciAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCJcbiAgW3NpbXBvQmFja2dyb3VuZF09XCJzdHlsZT8uYmFja2dyb3VuZFwiIFtzaW1wb0xheW91dF09XCJzdHlsZT8ubGF5b3V0XCIgW2lkXT1cImRhdGE/LmlkXCI+XG4gIDxkaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5mb290ZXJUeXBlID09ICdGb290ZXIxJ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIkZvb3RlcjFcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGU/LmZvb3RlclR5cGUgPT0gJ0Zvb3RlcjInXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiRm9vdGVyMlwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZm9vdGVyVHlwZSA9PSAnRm9vdGVyMydcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJGb290ZXIzXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5mb290ZXJUeXBlID09ICdGb290ZXI0J1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIkZvb3RlcjRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudD8udGV4dERlc2NyaXB0aW9uPy5kaXNwbGF5XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGV4dERlc2NyaXB0aW9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnQ/LnBvcHVsYXJTZWFyY2hlc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBvcHVsYXJTZWFyY2hlc1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XG4gICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwic2hvd0RlbGV0ZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZGVsZXRlfVwiPlxuICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cbiAgPC9kaXY+XG5cbjwvc2VjdGlvbj5cblxuPG5nLXRlbXBsYXRlICNGb290ZXIxPlxuICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvZ29TZWN0aW9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZXNjU2VjdGlvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGVudD8uc29jaWFsTGlua3M/LmRpc3BsYXkgJiYgc2NyZWVuV2lkdGggPiA0NzVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvY2lhbEljb25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLThcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvbGRlcnNWZXJ0aWNhbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGVudD8uc29jaWFsTGlua3M/LmRpc3BsYXkgJiYgc2NyZWVuV2lkdGggPCA0NzVcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb2NpYWxJY29uc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8aHIgKm5nSWY9XCJjb250ZW50Py5kaXNwbGF5QnJhbmRpbmdcIj5cbiAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXlCcmFuZGluZ1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJicmFuZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjRm9vdGVyMj5cbiAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGVzY1NlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LnNvY2lhbExpbmtzPy5kaXNwbGF5ICYmIHNjcmVlbldpZHRoID4gNDc1XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb2NpYWxJY29uc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlc0hvcml6b250YWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LnNvY2lhbExpbmtzPy5kaXNwbGF5ICYmIHNjcmVlbldpZHRoIDwgNDc1XCIgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic29jaWFsSWNvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGhyICpuZ0lmPVwiY29udGVudD8uZGlzcGxheUJyYW5kaW5nXCI+XG4gIDxkaXYgKm5nSWY9XCJjb250ZW50Py5kaXNwbGF5QnJhbmRpbmdcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnJhbmRpbmdcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI0Zvb3RlcjM+XG4gIDxkaXYgY2xhc3M9XCJyb3dcIiBbY2xhc3MuYWxpZ24taXRlbXMtc3RhcnRdPVwic2NyZWVuV2lkdGggPCA0NzVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9sZGVyc1ZlcnRpY2FsXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8aHI+XG4gIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIiBbY2xhc3Mudy0zMF09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvZ29TZWN0aW9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLXN0YXJ0XCIgKm5nSWY9XCJjb250ZW50Py5zb2NpYWxMaW5rcz8uZGlzcGxheVwiXG4gICAgICBbY2xhc3Mudy0zMF09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvY2lhbEljb25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCIgKm5nSWY9XCJjb250ZW50Py5kaXNwbGF5QnJhbmRpbmdcIiBbY2xhc3Mudy0zMF09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJyYW5kaW5nXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI0Zvb3RlcjQ+XG4gIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VzSG9yaXpvbnRhbFwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGhyPlxuICA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9nb1NlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtc3RhcnRcIiAqbmdJZj1cImNvbnRlbnQ/LnNvY2lhbExpbmtzPy5kaXNwbGF5XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic29jaWFsSWNvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIiAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXlCcmFuZGluZ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJyYW5kaW5nXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xvZ29TZWN0aW9uPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgW2NsYXNzLmp1c3RpZnktY29udGVudC1jZW50ZXJdPVwic2NyZWVuV2lkdGggPCA0NzVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWl0ZW1zLWxnLWNlbnRlciBjdXJzb3ItcG9pbnRlciBtYi00XCJcbiAgICAgICpuZ0lmPVwiIWNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgfHwgIWNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIiAoY2xpY2spPVwibmF2aWdhdGVUb0hvbWUoKVwiPlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LmlzSWNvbiAmJiBjb250ZW50Py5sb2dvPy50ZXh0Py51cmxcIj5cbiAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwiY29udGVudD8ubG9nbz8udGV4dD8udXJsXCIgYWx0PVwibG9nb1wiIFt3aWR0aF09XCJjb250ZW50Py5sb2dvPy5zaXplXCIgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvSG9tZSgpXCI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLXNtYWxsXCIgKm5nSWY9XCJjb250ZW50Py5sb2dvPy50ZXh0Py5pc1RleHRcIiBbc2ltcG9Db2xvcl09XCJzdHlsZT8uYmFja2dyb3VuZD8uY29sb3JcIlxuICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb0hvbWUoKVwiPlxuICAgICAgICA8YiBbbmdTdHlsZV09XCJ7J2ZvbnQtZmFtaWx5JzogY29udGVudD8ubG9nbz8udGV4dD8uZm9udEZhbWlseX1cIj57e2NvbnRlbnQ/LnNpdGVOYW1lPy52YWx1ZX19PC9iPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBhbGlnbi1pdGVtcy1sZy1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgbWItNFwiXG4gICAgICAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgJiYgY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiIChjbGljayk9XCJuYXZpZ2F0ZVRvSG9tZSgpXCI+XG4gICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgYWx0PVwibG9nb1wiXG4gICAgICAgIFtzdHlsZS53aWR0aC4lXT1cInNjcmVlbldpZHRoID4gNDc1IHx8IChjb250ZW50Py5sb2dvPy5zaXplIHx8IDEwKSA8IDUwID8gY29udGVudD8ubG9nbz8uc2l6ZSA6ICgoY29udGVudD8ubG9nbz8uc2l6ZSB8fCAxMCkgLSAxMClcIlxuICAgICAgICBsb2FkaW5nPVwibGF6eVwiPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVzY1NlY3Rpb24+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50Py5hZGRpdGlvbmFsRGV0YWlscyBhcyB0ZXh0SXRlbVwiPlxuICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJ0ZXh0SXRlbS52YWx1ZSBcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIlxuICAgICAgW2xhYmVsXT1cImNvbnRlbnQ/LmFkZGl0aW9uYWxEZXRhaWxzPy5sYWJlbCB8fCAnJ1wiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XG4gIDwvbmctY29udGFpbmVyPlxuICA8IS0tIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiIFtpbm5lckhUTUxdPVwiY29udGVudD8uYWRkaXRpb25hbERldGFpbHM/LnZhbHVlID8/ICcnIHwgc2FuaXRpemVIdG1sXCI+PC9kaXY+IC0tPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzb2NpYWxJY29ucz5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBhbGlnbi1pdGVtcy1sZy1jZW50ZXIgZmxleC1jb2x1bW4gZmxleC1sZy1yb3cgZ2FwLWxnLTAgZ2FwLTNcIlxuICAgIFtuZ0NsYXNzXT1cImNvbnRlbnQ/LnNvY2lhbExpbmtzPy5kaXNwbGF5ID8gJ2p1c3RpZnktY29udGVudC1iZXR3ZWVuJyA6ICdqdXN0aWZ5LWNvbnRlbnQtZW5kJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtMCBnYXAtMVwiICpuZ0lmPVwiY29udGVudD8uc29jaWFsTGlua3M/LmRpc3BsYXlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29udGVudD8uc29jaWFsTGlua3M/LmNoYW5uZWxzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uc1wiPlxuICAgICAgICAgIDxzaW1wby1zb2NpYS1pY29ucyBbaWNvbkNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiBbc29jaWFsSWNvbkRhdGFdPVwiaXRlbVwiXG4gICAgICAgICAgICBbY29sb3JdPVwic3R5bGU/LmJhY2tncm91bmQ/LmNvbG9yXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiPjwvc2ltcG8tc29jaWEtaWNvbnM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNicmFuZGluZz5cbiAgPGRpdiBjbGFzcz1cImhlYWRpbmctc21hbGwgdGV4dC1jZW50ZXIgIGJyYW5kaW5nLXRleHRcIj5CdWlsdCBCeSA8YSBjbGFzcz1cImJyYW5kaW5nLXRleHQgZnctNjAwXCJcbiAgICAgIGhyZWY9XCJodHRwczovL3NpbXBvLmFpXCIgdGFyZ2V0PVwiX2JsYW5rXCI+U2ltcG8uYWk8L2E+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3BhZ2VzSG9yaXpvbnRhbD5cbiAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIG1iLTMgcGFnZVR5cGVcIiAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlc1wiIFtjbGFzcy53LTUwXT1cInNjcmVlbldpZHRoIDwgNDc1XCJcbiAgICBbY2xhc3MudGV4dC1jZW50ZXJdPVwic2NyZWVuV2lkdGggPCA0NzVcIiAoY2xpY2spPVwicmVkaXJlY3RUb1BhZ2UocGFnZSlcIiBbc3R5bGUuY29sb3JdPVwic3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+XG4gICAge3twYWdlLnBhZ2VOYW1lfX1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIDxuZy10ZW1wbGF0ZSAjcGFnZXNWZXJ0aWNhbD5cbiAgPGRpdiBjbGFzcz1cInBhZ2UtY29udGFpbmVyIGNvbC1tZC0zIG1iLTNcIiBbY2xhc3Mudy01MF09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxuICAgIDxkaXYgY2xhc3M9XCJwYWdlVHlwZSBtYi0zXCI+e3twYWdlTGlua319PC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInBhZ2VzIG1iLTJcIiAoY2xpY2spPVwicmVkaXJlY3RUb1BhZ2UocGFnZSlcIj57e3BhZ2U/LnBhZ2VOYW1lfX08L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiAtLT5cblxuPG5nLXRlbXBsYXRlICNmb2xkZXJzVmVydGljYWw+XG4gIDxkaXYgY2xhc3M9XCJwYWdlLWNvbnRhaW5lciBjb2wtbWQtMyBtYi0zXCIgKm5nRm9yPVwibGV0IGZvbGRlciBvZiBjb250ZW50Py5mb2xkZXI7bGV0IGZvbGRlckluZGV4ID0gaW5kZXhcIlxuICAgIFtjbGFzcy53LTUwXT1cInNjcmVlbldpZHRoIDwgNDc1XCI+XG4gICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cImZvbGRlci5sYWJlbFwiIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XG4gICAgPGRpdiBjbGFzcz1cIm10LTE1XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwYWdlIG9mIGZvbGRlci5saW5rcztsZXQgbGlua0luZGV4ID0gaW5kZXhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvbGRlci1wYWdlXCIgW25nQ2xhc3NdPVwieydob3ZlcldoZW5FZGl0YWJsZScgOiBlZGl0fVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWdlcyBtYi0yXCIgKGNsaWNrKT1cInJlZGlyZWN0VG8ocGFnZSlcIiBbc3R5bGUuY29sb3JdPVwic3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+XG4gICAgICAgICAgICB7e3BhZ2UubGFiZWx9fTwvZGl2PlxuICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiZGVsZXRlRm9sZGVyTGlua3MoZm9sZGVySW5kZXgsIGxpbmtJbmRleClcIlxuICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInN0eWxlPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWRpdCA/IGFkZExpbmtzIDogbnVsbDsgY29udGV4dDoge2RhdGE6IGZvbGRlckluZGV4fVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCIoY29udGVudD8uZm9sZGVyPy5sZW5ndGggfHwgMCkgPCA0XCIgW2NsYXNzLnctNTBdPVwic2NyZWVuV2lkdGggPCA0NzVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWRpdCA/IGFkZEZvbGRlciA6IG51bGxcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2FkZExpbmtzIGxldC1mb2xkZXJJbmRleD1cImRhdGFcIj5cbiAgPGRpdiBjbGFzcz1cImFkZExpbmtzXCIgKGNsaWNrKT1cImNyZWF0ZU5ld0xpbmsoZm9sZGVySW5kZXgpXCI+XG4gICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNhZGRGb2xkZXI+XG4gIDxkaXYgY2xhc3M9XCJhZGRMaW5rcyBoLTEwMFwiIChjbGljayk9XCJjcmVhdGVOZXdGb2xkZXIoKVwiPlxuICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcG9wdWxhclNlYXJjaGVzPlxuICA8ZGl2IGNsYXNzPVwicG9wdWxhci1zZWFyY2hlcyBtdC00XCI+XG4gICAgPGRpdiBjbGFzcz1cInBvcHVsYXItc2VhcmNoZXMtdGl0bGUgbWItMlwiPlBvcHVsYXIgU2VhcmNoZXM8L2Rpdj5cbiAgICA8aHIgY2xhc3M9XCJtYi00XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2F0ZWdvcnkgb2YgcG9wdWxhclNlYXJjaGVkQ2F0ZWdvcmllczsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicG9wdWxhci1jYXRlZ29yeSBtYi00XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1oZWFkaW5nIG1iLTJcIiAoY2xpY2spPVwicmVkaXJlY3RUb0NhdGVnb3J5KGNhdGVnb3J5LmNhdGVnb3J5TmFtZSlcIj57e2NhdGVnb3J5LmNhdGVnb3J5TmFtZX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktbGlua3MgZC1mbGV4IGZsZXgtd3JhcCBnYXAtMlwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbGxlY3Rpb24gb2YgY2F0ZWdvcnkuY29sbGVjdGlvbklkczsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBvcHVsYXItbGlua1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJyZWRpcmVjdFRvQ29sbGVjdGlvbihjb2xsZWN0aW9uLnJlZk5hbWUsY2F0ZWdvcnkuY2F0ZWdvcnlOYW1lKVwiPnt7Y29sbGVjdGlvbi5yZWZOYW1lfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFsYXN0XCIgY2xhc3M9XCJzZXBhcmF0b3JcIj58PC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGhyICpuZ0lmPVwiIWxhc3RcIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGV4dERlc2NyaXB0aW9uPlxuICA8ZGl2IGNsYXNzPVwidGV4dC1kZXNjcmlwdGlvbiBtdC0yXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnQ/LnRleHREZXNjcmlwdGlvbiBhcyB0ZXh0RGVzY1wiPlxuICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cInRleHREZXNjLmNvbnRlbnRcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiXG4gICAgICAgIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGhyPlxuPC9uZy10ZW1wbGF0ZT4iXX0=