@eui/ecl 18.0.0-next.2 → 18.0.0-next.21

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 (554) hide show
  1. package/assets/i18n-ecl/bg.json +1 -1
  2. package/assets/i18n-ecl/cs.json +1 -1
  3. package/assets/i18n-ecl/da.json +1 -1
  4. package/assets/i18n-ecl/de.json +1 -1
  5. package/assets/i18n-ecl/el.json +1 -1
  6. package/assets/i18n-ecl/en.json +1 -1
  7. package/assets/i18n-ecl/es.json +1 -1
  8. package/assets/i18n-ecl/et.json +1 -1
  9. package/assets/i18n-ecl/fi.json +1 -1
  10. package/assets/i18n-ecl/fr.json +1 -1
  11. package/assets/i18n-ecl/ga.json +1 -1
  12. package/assets/i18n-ecl/hr.json +1 -1
  13. package/assets/i18n-ecl/hu.json +1 -1
  14. package/assets/i18n-ecl/it.json +1 -1
  15. package/assets/i18n-ecl/lt.json +1 -1
  16. package/assets/i18n-ecl/lv.json +1 -1
  17. package/assets/i18n-ecl/mt.json +1 -1
  18. package/assets/i18n-ecl/nl.json +1 -1
  19. package/assets/i18n-ecl/pl.json +1 -1
  20. package/assets/i18n-ecl/pt.json +1 -1
  21. package/assets/i18n-ecl/ro.json +1 -1
  22. package/assets/i18n-ecl/sk.json +1 -1
  23. package/assets/i18n-ecl/sl.json +1 -1
  24. package/assets/i18n-ecl/sv.json +1 -1
  25. package/docs/classes/{EclMessageCloseEvent.html → EclNotificationCloseEvent.html} +3 -3
  26. package/docs/components/EclAccordionComponent.html +2 -2
  27. package/docs/components/EclAccordionItemComponent.html +2 -2
  28. package/docs/components/EclAppComponent.html +2 -2
  29. package/docs/components/EclBannerComponent.html +2 -2
  30. package/docs/components/EclBlockquoteComponent.html +2 -2
  31. package/docs/components/EclBreadcrumbComponent.html +2 -2
  32. package/docs/components/EclBreadcrumbSegmentComponent.html +3 -3
  33. package/docs/components/EclButtonComponent.html +2 -2
  34. package/docs/components/EclCardBodyComponent.html +2 -2
  35. package/docs/components/EclCardComponent.html +2 -2
  36. package/docs/components/EclCarouselComponent.html +71 -26
  37. package/docs/components/EclCarouselItemComponent.html +2 -2
  38. package/docs/components/EclCategoryFilterComponent.html +2 -2
  39. package/docs/components/EclCategoryFilterItemComponent.html +2 -2
  40. package/docs/components/EclCategoryFilterListComponent.html +2 -2
  41. package/docs/components/EclCheckboxHelpComponent.html +2 -2
  42. package/docs/components/EclCheckboxLabelComponent.html +2 -2
  43. package/docs/components/EclContentBlockComponent.html +2 -2
  44. package/docs/components/EclContentItemComponent.html +2 -2
  45. package/docs/components/EclDateBlockComponent.html +2 -2
  46. package/docs/components/EclDescriptionListDefinitionComponent.html +2 -2
  47. package/docs/components/EclExpandableComponent.html +2 -2
  48. package/docs/components/EclFactFiguresComponent.html +2 -2
  49. package/docs/components/EclFactFiguresDescriptionComponent.html +2 -2
  50. package/docs/components/EclFactFiguresItemComponent.html +2 -2
  51. package/docs/components/EclFactFiguresTitleComponent.html +2 -2
  52. package/docs/components/EclFactFiguresValueComponent.html +2 -2
  53. package/docs/components/EclFactFiguresViewAllComponent.html +2 -2
  54. package/docs/components/EclFeaturedComponent.html +7 -7
  55. package/docs/components/EclFeaturedItemComponent.html +3 -3
  56. package/docs/components/EclFeaturedItemDescriptionComponent.html +2 -2
  57. package/docs/components/{EclListIllustrationImageComponent.html → EclFeaturedItemFooterComponent.html} +21 -193
  58. package/docs/components/EclFileComponent.html +80 -274
  59. package/docs/components/EclFileItemComponent.html +10 -253
  60. package/docs/components/EclFileItemsComponent.html +4 -4
  61. package/docs/components/EclFileTaxonomyComponent.html +2 -2
  62. package/docs/components/EclFormGroupComponent.html +2 -2
  63. package/docs/components/EclFormLabelComponent.html +2 -2
  64. package/docs/components/EclGalleryComponent.html +2 -2
  65. package/docs/components/EclGalleryFooterComponent.html +2 -2
  66. package/docs/components/EclGalleryItemComponent.html +2 -2
  67. package/docs/components/EclIconComponent.html +98 -34
  68. package/docs/components/EclInpageNavigationComponent.html +2 -2
  69. package/docs/components/EclInpageNavigationItemComponent.html +2 -2
  70. package/docs/components/EclListIllustrationComponent.html +4 -4
  71. package/docs/components/EclListIllustrationItemComponent.html +2 -2
  72. package/docs/components/{EclSpinnerComponent.html → EclLoadingIndicatorComponent.html} +13 -13
  73. package/docs/components/EclMediaContainerComponent.html +11 -161
  74. package/docs/components/EclMenuComponent.html +2 -2
  75. package/docs/components/EclMenuItemComponent.html +2 -2
  76. package/docs/components/EclMenuMegaComponent.html +2 -2
  77. package/docs/components/EclMenuMegaItemComponent.html +2 -2
  78. package/docs/components/EclModalBodyComponent.html +2 -2
  79. package/docs/components/EclModalComponent.html +2 -2
  80. package/docs/components/EclModalFooterComponent.html +2 -2
  81. package/docs/components/EclModalHeaderComponent.html +123 -3
  82. package/docs/components/EclMultiselectComponent.html +2 -2
  83. package/docs/components/EclMultiselectDropdownComponent.html +2 -2
  84. package/docs/components/EclMultiselectInputComponent.html +2 -2
  85. package/docs/components/EclMultiselectOptgroupComponent.html +2 -2
  86. package/docs/components/EclMultiselectOptionComponent.html +2 -2
  87. package/docs/components/EclNavigationListComponent.html +2 -2
  88. package/docs/components/EclNavigationListImageComponent.html +2 -2
  89. package/docs/components/EclNavigationListItemComponent.html +2 -2
  90. package/docs/components/EclNewsTickerComponent.html +6 -8
  91. package/docs/components/EclNewsTickerItemComponent.html +2 -2
  92. package/docs/components/{EclMessageComponent.html → EclNotificationComponent.html} +103 -48
  93. package/docs/components/EclPageHeaderComponent.html +2 -2
  94. package/docs/components/EclPageHeaderDescriptionContainerComponent.html +2 -2
  95. package/docs/components/EclPaginationComponent.html +2 -2
  96. package/docs/components/EclPaginationItemComponent.html +2 -2
  97. package/docs/components/EclPopoverComponent.html +265 -77
  98. package/docs/components/EclRadioHelpComponent.html +2 -2
  99. package/docs/components/EclRadioLabelComponent.html +2 -2
  100. package/docs/components/EclRangeValueComponent.html +2 -2
  101. package/docs/components/EclRatingFieldComponent.html +2 -2
  102. package/docs/components/EclSearchFormComponent.html +2 -2
  103. package/docs/components/EclSelectContainerComponent.html +2 -2
  104. package/docs/components/EclSiteFooterComponent.html +2 -2
  105. package/docs/components/EclSiteFooterFixedContentECComponent.html +2 -2
  106. package/docs/components/EclSiteFooterFixedContentEUComponent.html +2 -2
  107. package/docs/components/EclSiteHeaderActionComponent.html +2 -2
  108. package/docs/components/EclSiteHeaderBannerTopComponent.html +2 -2
  109. package/docs/components/EclSiteHeaderComponent.html +2 -2
  110. package/docs/components/EclSiteHeaderEnvironmentComponent.html +2 -2
  111. package/docs/components/EclSiteHeaderLanguageComponent.html +2 -2
  112. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +2 -2
  113. package/docs/components/EclSiteHeaderLoginComponent.html +2 -2
  114. package/docs/components/EclSiteHeaderMessageComponent.html +2 -2
  115. package/docs/components/EclSiteHeaderSearchComponent.html +2 -2
  116. package/docs/components/EclSocialMediaFollowComponent.html +3 -3
  117. package/docs/components/EclSocialMediaFollowItemComponent.html +28 -4
  118. package/docs/components/EclSocialMediaShareComponent.html +2 -2
  119. package/docs/components/EclSocialMediaShareItemComponent.html +2 -2
  120. package/docs/components/EclStickyContainerComponent.html +77 -4
  121. package/docs/components/EclTabComponent.html +2 -2
  122. package/docs/components/EclTabLabelComponent.html +2 -2
  123. package/docs/components/EclTabMoreComponent.html +2 -2
  124. package/docs/components/EclTableSortButtonComponent.html +72 -27
  125. package/docs/components/EclTabsComponent.html +2 -2
  126. package/docs/components/EclTagComponent.html +54 -7
  127. package/docs/components/EclTimelineComponent.html +2 -2
  128. package/docs/components/EclTimelineItemComponent.html +2 -2
  129. package/docs/components/EclTimelineItemTogglerComponent.html +2 -2
  130. package/docs/dependencies.html +32 -50
  131. package/docs/directives/EclFeaturedItemFooterLinkDirective.html +492 -0
  132. package/docs/directives/{EclMessageTitleDirective.html → EclFeaturedItemFooterPictureDirective.html} +4 -4
  133. package/docs/directives/EclFileTitleDirective.html +511 -0
  134. package/docs/directives/EclFileTranslationDownloadDirective.html +492 -0
  135. package/docs/directives/EclLinkDirective.html +46 -61
  136. package/docs/directives/EclListIllustrationImageDirective.html +1 -1
  137. package/docs/directives/{EclSpinnerLabelDirective.html → EclLoadingIndicatorLabelDirective.html} +4 -4
  138. package/docs/directives/{EclPopoverItemDirective.html → EclLoadingIndicatorOverlayDirective.html} +4 -4
  139. package/docs/directives/EclMediaContainerItemDirective.html +0 -76
  140. package/docs/directives/{EclPopoverLinkDirective.html → EclNotificationTitleDirective.html} +4 -4
  141. package/docs/directives/EclTableDirective.html +1 -1
  142. package/docs/directives/EclTableHeaderDirective.html +32 -1
  143. package/docs/directives/{EclPopoverListDirective.html → EclTagSetDirective.html} +4 -4
  144. package/docs/index.html +2 -2
  145. package/docs/js/menu-wc.js +177 -136
  146. package/docs/js/menu-wc_es5.js +1 -1
  147. package/docs/js/search/search_index.js +2 -2
  148. package/docs/miscellaneous/variables.html +40 -56
  149. package/docs/modules/EclAllModule.html +12 -12
  150. package/docs/modules/EclFeaturedModule.html +32 -8
  151. package/docs/modules/{EclMessageComponentModule.html → EclLoadingIndicatorComponentModule.html} +13 -7
  152. package/docs/modules/{EclSpinnerComponentModule.html → EclNotificationComponentModule.html} +7 -7
  153. package/docs/modules/EclTagComponentModule.html +6 -0
  154. package/docs/modules.html +18 -18
  155. package/esm2022/lib/components/ecl-accordion/ecl-accordion-item.component.mjs +4 -4
  156. package/esm2022/lib/components/ecl-accordion/ecl-accordion.component.mjs +4 -4
  157. package/esm2022/lib/components/ecl-accordion/ecl-accordion.module.mjs +4 -4
  158. package/esm2022/lib/components/ecl-app/ecl-app.component.mjs +4 -4
  159. package/esm2022/lib/components/ecl-app/ecl-app.module.mjs +4 -4
  160. package/esm2022/lib/components/ecl-banner/ecl-banner-credit.directive.mjs +3 -3
  161. package/esm2022/lib/components/ecl-banner/ecl-banner-description.directive.mjs +6 -6
  162. package/esm2022/lib/components/ecl-banner/ecl-banner-picture.directive.mjs +6 -6
  163. package/esm2022/lib/components/ecl-banner/ecl-banner-title.directive.mjs +6 -6
  164. package/esm2022/lib/components/ecl-banner/ecl-banner.component.mjs +4 -4
  165. package/esm2022/lib/components/ecl-banner/ecl-banner.module.mjs +4 -4
  166. package/esm2022/lib/components/ecl-base.directive.mjs +3 -3
  167. package/esm2022/lib/components/ecl-blockquote/ecl-blockquote-picture.directive.mjs +6 -6
  168. package/esm2022/lib/components/ecl-blockquote/ecl-blockquote.component.mjs +3 -3
  169. package/esm2022/lib/components/ecl-blockquote/ecl-blockquote.module.mjs +4 -4
  170. package/esm2022/lib/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.mjs +5 -5
  171. package/esm2022/lib/components/ecl-breadcrumb/ecl-breadcrumb.component.mjs +4 -4
  172. package/esm2022/lib/components/ecl-breadcrumb/ecl-breadcrumb.module.mjs +4 -4
  173. package/esm2022/lib/components/ecl-button/ecl-button-label.directive.mjs +3 -3
  174. package/esm2022/lib/components/ecl-button/ecl-button.component.mjs +4 -4
  175. package/esm2022/lib/components/ecl-button/ecl-button.module.mjs +4 -4
  176. package/esm2022/lib/components/ecl-card/ecl-card-body.component.mjs +3 -3
  177. package/esm2022/lib/components/ecl-card/ecl-card-picture.directive.mjs +6 -6
  178. package/esm2022/lib/components/ecl-card/ecl-card.component.mjs +4 -4
  179. package/esm2022/lib/components/ecl-card/ecl-card.module.mjs +4 -4
  180. package/esm2022/lib/components/ecl-carousel/ecl-carousel-item.component.mjs +3 -3
  181. package/esm2022/lib/components/ecl-carousel/ecl-carousel.component.mjs +4 -6
  182. package/esm2022/lib/components/ecl-carousel/ecl-carousel.module.mjs +4 -4
  183. package/esm2022/lib/components/ecl-category-filter/ecl-category-filter/ecl-category-filter.component.mjs +4 -4
  184. package/esm2022/lib/components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-item.component.mjs +4 -4
  185. package/esm2022/lib/components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-list.component.mjs +4 -4
  186. package/esm2022/lib/components/ecl-category-filter/ecl-category-filter.module.mjs +4 -4
  187. package/esm2022/lib/components/ecl-checkbox/ecl-checkbox-help.component.mjs +3 -3
  188. package/esm2022/lib/components/ecl-checkbox/ecl-checkbox-input.directive.mjs +4 -4
  189. package/esm2022/lib/components/ecl-checkbox/ecl-checkbox-label.component.mjs +3 -3
  190. package/esm2022/lib/components/ecl-checkbox/ecl-checkbox.directive.mjs +4 -4
  191. package/esm2022/lib/components/ecl-checkbox/ecl-checkbox.module.mjs +4 -4
  192. package/esm2022/lib/components/ecl-content-block/ecl-content-block-elements.directive.mjs +51 -51
  193. package/esm2022/lib/components/ecl-content-block/ecl-content-block.component.mjs +3 -3
  194. package/esm2022/lib/components/ecl-content-block/ecl-content-block.module.mjs +4 -4
  195. package/esm2022/lib/components/ecl-content-item/ecl-content-item-image.directive.mjs +6 -6
  196. package/esm2022/lib/components/ecl-content-item/ecl-content-item.component.mjs +4 -4
  197. package/esm2022/lib/components/ecl-content-item/ecl-content-item.module.mjs +4 -4
  198. package/esm2022/lib/components/ecl-date-block/ecl-date-block.component.mjs +4 -4
  199. package/esm2022/lib/components/ecl-date-block/ecl-date-block.module.mjs +4 -4
  200. package/esm2022/lib/components/ecl-date-picker/ecl-date-picker.directive.mjs +4 -4
  201. package/esm2022/lib/components/ecl-date-picker/ecl-date-picker.module.mjs +4 -4
  202. package/esm2022/lib/components/ecl-expandable/ecl-expandable.component.mjs +4 -4
  203. package/esm2022/lib/components/ecl-expandable/ecl-expandable.module.mjs +4 -4
  204. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-description.component.mjs +4 -4
  205. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-item.component.mjs +9 -9
  206. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-title.component.mjs +4 -4
  207. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-value.component.mjs +4 -4
  208. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures-view-all.component.mjs +8 -8
  209. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures.component.mjs +7 -7
  210. package/esm2022/lib/components/ecl-fact-figures/ecl-fact-figures.module.mjs +5 -5
  211. package/esm2022/lib/components/ecl-featured/ecl-featured-item-description.component.mjs +3 -3
  212. package/esm2022/lib/components/ecl-featured/ecl-featured-item-footer.component.mjs +19 -0
  213. package/esm2022/lib/components/ecl-featured/ecl-featured-item-link.directive.mjs +37 -4
  214. package/esm2022/lib/components/ecl-featured/ecl-featured-item.component.mjs +5 -6
  215. package/esm2022/lib/components/ecl-featured/ecl-featured.component.mjs +11 -16
  216. package/esm2022/lib/components/ecl-featured/ecl-featured.module.mjs +18 -8
  217. package/esm2022/lib/components/ecl-featured/index.mjs +2 -1
  218. package/esm2022/lib/components/ecl-feedback-message/ecl-feedback-message.directive.mjs +4 -4
  219. package/esm2022/lib/components/ecl-feedback-message/ecl-feedback-message.module.mjs +4 -4
  220. package/esm2022/lib/components/ecl-file/ecl-file-download.directive.mjs +21 -4
  221. package/esm2022/lib/components/ecl-file/ecl-file-item/ecl-file-item.component.mjs +7 -44
  222. package/esm2022/lib/components/ecl-file/ecl-file-items/ecl-file-items.component.mjs +12 -20
  223. package/esm2022/lib/components/ecl-file/ecl-file-picture.directive.mjs +27 -8
  224. package/esm2022/lib/components/ecl-file/ecl-file-taxonomy/ecl-file-taxonomy.component.mjs +3 -3
  225. package/esm2022/lib/components/ecl-file/ecl-file.component.mjs +22 -60
  226. package/esm2022/lib/components/ecl-file/ecl-file.module.mjs +13 -7
  227. package/esm2022/lib/components/ecl-file/index.mjs +1 -2
  228. package/esm2022/lib/components/ecl-file-upload/ecl-file-upload.directive.mjs +4 -4
  229. package/esm2022/lib/components/ecl-file-upload/ecl-file-upload.module.mjs +4 -4
  230. package/esm2022/lib/components/ecl-form-group/ecl-form-group.component.mjs +3 -3
  231. package/esm2022/lib/components/ecl-form-group/ecl-form-group.module.mjs +4 -4
  232. package/esm2022/lib/components/ecl-form-label/ecl-form-label.component.mjs +3 -3
  233. package/esm2022/lib/components/ecl-form-label/ecl-form-label.module.mjs +4 -4
  234. package/esm2022/lib/components/ecl-gallery/ecl-gallery-footer.component.mjs +3 -3
  235. package/esm2022/lib/components/ecl-gallery/ecl-gallery-item.component.mjs +3 -3
  236. package/esm2022/lib/components/ecl-gallery/ecl-gallery-media.directive.mjs +7 -7
  237. package/esm2022/lib/components/ecl-gallery/ecl-gallery.component.mjs +4 -4
  238. package/esm2022/lib/components/ecl-gallery/ecl-gallery.module.mjs +4 -4
  239. package/esm2022/lib/components/ecl-help-block/ecl-help-block.directive.mjs +3 -3
  240. package/esm2022/lib/components/ecl-help-block/ecl-help-block.module.mjs +4 -4
  241. package/esm2022/lib/components/ecl-icon/ecl-icon.component.mjs +25 -42
  242. package/esm2022/lib/components/ecl-icon/ecl-icon.module.mjs +4 -4
  243. package/esm2022/lib/components/ecl-inpage-navigation/ecl-inpage-navigation-item.component.mjs +3 -3
  244. package/esm2022/lib/components/ecl-inpage-navigation/ecl-inpage-navigation.component.mjs +4 -4
  245. package/esm2022/lib/components/ecl-inpage-navigation/ecl-inpage-navigation.module.mjs +4 -4
  246. package/esm2022/lib/components/ecl-label/ecl-label.directive.mjs +3 -3
  247. package/esm2022/lib/components/ecl-label/ecl-label.module.mjs +4 -4
  248. package/esm2022/lib/components/ecl-link/ecl-link-label.directive.mjs +4 -4
  249. package/esm2022/lib/components/ecl-link/ecl-link.directive.mjs +33 -67
  250. package/esm2022/lib/components/ecl-link/ecl-link.module.mjs +4 -4
  251. package/esm2022/lib/components/ecl-list/ecl-description-list-definition/ecl-description-list-definition.component.mjs +4 -4
  252. package/esm2022/lib/components/ecl-list/ecl-description-list-definition-item.directive.mjs +6 -6
  253. package/esm2022/lib/components/ecl-list/ecl-list.directive.mjs +19 -19
  254. package/esm2022/lib/components/ecl-list/ecl-list.module.mjs +4 -4
  255. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration-icon.directive.mjs +3 -3
  256. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration-item.component.mjs +3 -3
  257. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration-picture.directive.mjs +10 -15
  258. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration.component.mjs +9 -17
  259. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration.module.mjs +5 -9
  260. package/esm2022/lib/components/ecl-list-illustration/index.mjs +1 -2
  261. package/esm2022/lib/components/ecl-loading-indicator/ecl-loading-indicator-label.directive.mjs +19 -0
  262. package/esm2022/lib/components/ecl-loading-indicator/ecl-loading-indicator-overlay.directive.mjs +20 -0
  263. package/esm2022/lib/components/ecl-loading-indicator/ecl-loading-indicator.component.mjs +43 -0
  264. package/esm2022/lib/components/ecl-loading-indicator/ecl-loading-indicator.module.mjs +21 -0
  265. package/esm2022/lib/components/ecl-loading-indicator/index.mjs +5 -0
  266. package/esm2022/lib/components/ecl-media-container/ecl-media-container-iframe.directive.mjs +4 -4
  267. package/esm2022/lib/components/ecl-media-container/ecl-media-container-item.directive.mjs +5 -16
  268. package/esm2022/lib/components/ecl-media-container/ecl-media-container-picture.directive.mjs +3 -3
  269. package/esm2022/lib/components/ecl-media-container/ecl-media-container.component.mjs +9 -32
  270. package/esm2022/lib/components/ecl-media-container/ecl-media-container.module.mjs +4 -4
  271. package/esm2022/lib/components/ecl-menu/ecl-menu/ecl-menu-item.component.mjs +4 -4
  272. package/esm2022/lib/components/ecl-menu/ecl-menu/ecl-menu.component.mjs +4 -4
  273. package/esm2022/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega-item.component.mjs +4 -4
  274. package/esm2022/lib/components/ecl-menu/ecl-menu-mega/ecl-menu-mega.component.mjs +4 -4
  275. package/esm2022/lib/components/ecl-menu/ecl-menu.module.mjs +4 -4
  276. package/esm2022/lib/components/ecl-modal/ecl-modal-body-fixed.directive.mjs +3 -3
  277. package/esm2022/lib/components/ecl-modal/ecl-modal-body.component.mjs +3 -3
  278. package/esm2022/lib/components/ecl-modal/ecl-modal-close.directive.mjs +3 -3
  279. package/esm2022/lib/components/ecl-modal/ecl-modal-footer.component.mjs +4 -4
  280. package/esm2022/lib/components/ecl-modal/ecl-modal-header.component.mjs +21 -11
  281. package/esm2022/lib/components/ecl-modal/ecl-modal-trigger.directive.mjs +3 -3
  282. package/esm2022/lib/components/ecl-modal/ecl-modal.component.mjs +4 -4
  283. package/esm2022/lib/components/ecl-modal/ecl-modal.module.mjs +4 -4
  284. package/esm2022/lib/components/ecl-multiselect/boldText.pipe.mjs +4 -4
  285. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-dropdown/ecl-multiselect-dropdown.component.mjs +4 -4
  286. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.mjs +4 -4
  287. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-optgroup/ecl-multiselect-optgroup.component.mjs +3 -3
  288. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-option/ecl-multiselect-option.component.mjs +3 -3
  289. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-option.directive.mjs +3 -3
  290. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect.component.mjs +4 -4
  291. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect.module.mjs +4 -4
  292. package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list-image/ecl-navigation-list-image.component.mjs +3 -3
  293. package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list-item.component.mjs +4 -4
  294. package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list-picture.directive.mjs +6 -6
  295. package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list.component.mjs +3 -3
  296. package/esm2022/lib/components/ecl-navigation-list/ecl-navigation-list.module.mjs +4 -4
  297. package/esm2022/lib/components/ecl-news-ticker/ecl-news-ticker-item.component.mjs +4 -4
  298. package/esm2022/lib/components/ecl-news-ticker/ecl-news-ticker.component.mjs +14 -21
  299. package/esm2022/lib/components/ecl-news-ticker/ecl-news-ticker.module.mjs +4 -4
  300. package/esm2022/lib/components/ecl-notification/ecl-notification-title.directive.mjs +20 -0
  301. package/esm2022/lib/components/ecl-notification/ecl-notification.component.mjs +82 -0
  302. package/esm2022/lib/components/ecl-notification/ecl-notification.module.mjs +23 -0
  303. package/esm2022/lib/components/ecl-notification/index.mjs +4 -0
  304. package/esm2022/lib/components/ecl-page-header/ecl-page-header-background.directive.mjs +6 -6
  305. package/esm2022/lib/components/ecl-page-header/ecl-page-header-description/ecl-page-header-description.component.mjs +4 -4
  306. package/esm2022/lib/components/ecl-page-header/ecl-page-header-description.directive.mjs +9 -9
  307. package/esm2022/lib/components/ecl-page-header/ecl-page-header-meta.directive.mjs +6 -6
  308. package/esm2022/lib/components/ecl-page-header/ecl-page-header-title.directive.mjs +3 -3
  309. package/esm2022/lib/components/ecl-page-header/ecl-page-header.component.mjs +4 -4
  310. package/esm2022/lib/components/ecl-page-header/ecl-page-header.module.mjs +4 -4
  311. package/esm2022/lib/components/ecl-pagination/ecl-pagination-item.component.mjs +4 -4
  312. package/esm2022/lib/components/ecl-pagination/ecl-pagination.component.mjs +4 -4
  313. package/esm2022/lib/components/ecl-pagination/ecl-pagination.module.mjs +4 -4
  314. package/esm2022/lib/components/ecl-popover/ecl-popover-content.directive.mjs +3 -3
  315. package/esm2022/lib/components/ecl-popover/ecl-popover-toggle.directive.mjs +4 -4
  316. package/esm2022/lib/components/ecl-popover/ecl-popover.component.mjs +178 -37
  317. package/esm2022/lib/components/ecl-popover/ecl-popover.module.mjs +11 -20
  318. package/esm2022/lib/components/ecl-popover/index.mjs +1 -2
  319. package/esm2022/lib/components/ecl-radio/ecl-radio-help.component.mjs +3 -3
  320. package/esm2022/lib/components/ecl-radio/ecl-radio-input.directive.mjs +4 -4
  321. package/esm2022/lib/components/ecl-radio/ecl-radio-label.component.mjs +3 -3
  322. package/esm2022/lib/components/ecl-radio/ecl-radio.directive.mjs +4 -4
  323. package/esm2022/lib/components/ecl-radio/ecl-radio.module.mjs +4 -4
  324. package/esm2022/lib/components/ecl-range/ecl-range-value.component.mjs +3 -3
  325. package/esm2022/lib/components/ecl-range/ecl-range.directive.mjs +4 -4
  326. package/esm2022/lib/components/ecl-range/ecl-range.module.mjs +4 -4
  327. package/esm2022/lib/components/ecl-rating-field/ecl-rating-field.component.mjs +3 -3
  328. package/esm2022/lib/components/ecl-rating-field/ecl-rating-field.module.mjs +4 -4
  329. package/esm2022/lib/components/ecl-search-form/ecl-search-form.component.mjs +3 -3
  330. package/esm2022/lib/components/ecl-search-form/ecl-search-form.module.mjs +4 -4
  331. package/esm2022/lib/components/ecl-select/ecl-select-container.component.mjs +3 -3
  332. package/esm2022/lib/components/ecl-select/ecl-select.directive.mjs +4 -4
  333. package/esm2022/lib/components/ecl-select/ecl-select.module.mjs +4 -4
  334. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ec/ecl-site-footer-fixed-content.mjs +3 -3
  335. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-column.directive.mjs +9 -9
  336. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-description.directive.mjs +3 -3
  337. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-link.directive.mjs +15 -15
  338. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-list.directive.mjs +15 -15
  339. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-section.directive.mjs +3 -3
  340. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/ecl-site-footer-title.directive.mjs +6 -6
  341. package/esm2022/lib/components/ecl-site-footer/ecl-footer-elements/eu/ecl-site-footer-fixed-content.mjs +4 -4
  342. package/esm2022/lib/components/ecl-site-footer/ecl-site-footer.component.mjs +3 -3
  343. package/esm2022/lib/components/ecl-site-footer/ecl-site-footer.module.mjs +4 -4
  344. package/esm2022/lib/components/ecl-site-header/action/ecl-site-header-action.component.mjs +3 -3
  345. package/esm2022/lib/components/ecl-site-header/banner-top/ecl-site-header-banner-top.component.mjs +3 -3
  346. package/esm2022/lib/components/ecl-site-header/cta/ecl-site-header-cta.directive.mjs +3 -3
  347. package/esm2022/lib/components/ecl-site-header/ecl-site-header-environment/ecl-site-header-environment.component.mjs +4 -4
  348. package/esm2022/lib/components/ecl-site-header/ecl-site-header.component.mjs +4 -4
  349. package/esm2022/lib/components/ecl-site-header/ecl-site-header.module.mjs +4 -4
  350. package/esm2022/lib/components/ecl-site-header/language/ecl-site-header-language-popover.component.mjs +3 -3
  351. package/esm2022/lib/components/ecl-site-header/language/ecl-site-header-language.component.mjs +4 -4
  352. package/esm2022/lib/components/ecl-site-header/login/ecl-site-header-login-details.directive.mjs +6 -6
  353. package/esm2022/lib/components/ecl-site-header/login/ecl-site-header-login.component.mjs +4 -4
  354. package/esm2022/lib/components/ecl-site-header/message/ecl-site-header-message.component.mjs +3 -3
  355. package/esm2022/lib/components/ecl-site-header/search/ecl-site-header-search.component.mjs +3 -3
  356. package/esm2022/lib/components/ecl-social-media-follow/ecl-social-media-follow-item.component.mjs +14 -10
  357. package/esm2022/lib/components/ecl-social-media-follow/ecl-social-media-follow-link.directive.mjs +4 -4
  358. package/esm2022/lib/components/ecl-social-media-follow/ecl-social-media-follow.component.mjs +7 -12
  359. package/esm2022/lib/components/ecl-social-media-follow/ecl-social-media-follow.module.mjs +7 -6
  360. package/esm2022/lib/components/ecl-social-media-share/ecl-social-media-share-item.component.mjs +4 -4
  361. package/esm2022/lib/components/ecl-social-media-share/ecl-social-media-share-link.directive.mjs +4 -4
  362. package/esm2022/lib/components/ecl-social-media-share/ecl-social-media-share.component.mjs +3 -3
  363. package/esm2022/lib/components/ecl-social-media-share/ecl-social-media-share.module.mjs +4 -4
  364. package/esm2022/lib/components/ecl-sticky-container/ecl-sticky-container.component.mjs +43 -20
  365. package/esm2022/lib/components/ecl-sticky-container/ecl-sticky-container.module.mjs +4 -4
  366. package/esm2022/lib/components/ecl-table/ecl-table-sort-button.component.mjs +10 -9
  367. package/esm2022/lib/components/ecl-table/ecl-table.directive.mjs +37 -36
  368. package/esm2022/lib/components/ecl-table/ecl-table.module.mjs +4 -4
  369. package/esm2022/lib/components/ecl-tabs/ecl-tab-label.component.mjs +3 -3
  370. package/esm2022/lib/components/ecl-tabs/ecl-tab-more.component.mjs +3 -3
  371. package/esm2022/lib/components/ecl-tabs/ecl-tab.component.mjs +4 -4
  372. package/esm2022/lib/components/ecl-tabs/ecl-tabs.component.mjs +4 -4
  373. package/esm2022/lib/components/ecl-tabs/ecl-tabs.module.mjs +4 -4
  374. package/esm2022/lib/components/ecl-tag/ecl-tag-set.directive.mjs +20 -0
  375. package/esm2022/lib/components/ecl-tag/ecl-tag.component.mjs +18 -10
  376. package/esm2022/lib/components/ecl-tag/ecl-tag.module.mjs +9 -8
  377. package/esm2022/lib/components/ecl-tag/index.mjs +2 -1
  378. package/esm2022/lib/components/ecl-text-area/ecl-text-area.directive.mjs +4 -4
  379. package/esm2022/lib/components/ecl-text-area/ecl-text-area.module.mjs +4 -4
  380. package/esm2022/lib/components/ecl-text-input/ecl-text-input.directive.mjs +4 -4
  381. package/esm2022/lib/components/ecl-text-input/ecl-text-input.module.mjs +4 -4
  382. package/esm2022/lib/components/ecl-timeline/ecl-timeline-item-label.directive.mjs +3 -3
  383. package/esm2022/lib/components/ecl-timeline/ecl-timeline-item-title.directive.mjs +3 -3
  384. package/esm2022/lib/components/ecl-timeline/ecl-timeline-item-toggler.component.mjs +3 -3
  385. package/esm2022/lib/components/ecl-timeline/ecl-timeline-item.component.mjs +4 -4
  386. package/esm2022/lib/components/ecl-timeline/ecl-timeline.component.mjs +4 -4
  387. package/esm2022/lib/components/ecl-timeline/ecl-timeline.module.mjs +4 -4
  388. package/esm2022/lib/components/index.mjs +3 -3
  389. package/esm2022/lib/model/ecl-dom.event.mjs +1 -1
  390. package/esm2022/lib/services/ecl-default-language.service.mjs +4 -4
  391. package/esm2022/lib/services/ecl-rtl.service.mjs +4 -4
  392. package/esm2022/lib/services/ecl-theme.service.mjs +4 -4
  393. package/esm2022/lib/shared/ecl-all.module.mjs +15 -15
  394. package/esm2022/lib/utils/directives/ecl-click-outside/ecl-click-outside.directive.mjs +4 -4
  395. package/esm2022/lib/utils/directives/ecl-hidden/ecl-hidden.directive.mjs +3 -3
  396. package/esm2022/lib/utils/directives/ecl-hidden/ecl-hidden.module.mjs +4 -4
  397. package/esm2022/lib/utils/dom/dom-helpers.mjs +1 -1
  398. package/fesm2022/eui-ecl.mjs +5342 -5372
  399. package/fesm2022/eui-ecl.mjs.map +4 -4
  400. package/lib/components/ecl-accordion/ecl-accordion-item.component.d.ts.map +1 -1
  401. package/lib/components/ecl-banner/ecl-banner.component.d.ts.map +1 -1
  402. package/lib/components/ecl-base.directive.d.ts.map +1 -1
  403. package/lib/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.d.ts.map +1 -1
  404. package/lib/components/ecl-breadcrumb/ecl-breadcrumb.component.d.ts.map +1 -1
  405. package/lib/components/ecl-button/ecl-button.component.d.ts.map +1 -1
  406. package/lib/components/ecl-carousel/ecl-carousel-item.component.d.ts.map +1 -1
  407. package/lib/components/ecl-carousel/ecl-carousel.component.d.ts +2 -2
  408. package/lib/components/ecl-carousel/ecl-carousel.component.d.ts.map +1 -1
  409. package/lib/components/ecl-expandable/ecl-expandable.component.d.ts.map +1 -1
  410. package/lib/components/ecl-fact-figures/ecl-fact-figures-description.component.d.ts.map +1 -1
  411. package/lib/components/ecl-fact-figures/ecl-fact-figures-item.component.d.ts +2 -2
  412. package/lib/components/ecl-fact-figures/ecl-fact-figures-item.component.d.ts.map +1 -1
  413. package/lib/components/ecl-fact-figures/ecl-fact-figures-title.component.d.ts.map +1 -1
  414. package/lib/components/ecl-fact-figures/ecl-fact-figures-value.component.d.ts.map +1 -1
  415. package/lib/components/ecl-fact-figures/ecl-fact-figures-view-all.component.d.ts +1 -1
  416. package/lib/components/ecl-fact-figures/ecl-fact-figures-view-all.component.d.ts.map +1 -1
  417. package/lib/components/ecl-fact-figures/ecl-fact-figures.component.d.ts +1 -1
  418. package/lib/components/ecl-fact-figures/ecl-fact-figures.component.d.ts.map +1 -1
  419. package/lib/components/ecl-fact-figures/ecl-fact-figures.module.d.ts.map +1 -1
  420. package/lib/components/ecl-featured/ecl-featured-item-footer.component.d.ts +8 -0
  421. package/lib/components/ecl-featured/ecl-featured-item-footer.component.d.ts.map +1 -0
  422. package/lib/components/ecl-featured/ecl-featured-item-link.directive.d.ts +10 -0
  423. package/lib/components/ecl-featured/ecl-featured-item-link.directive.d.ts.map +1 -1
  424. package/lib/components/ecl-featured/ecl-featured.component.d.ts +3 -2
  425. package/lib/components/ecl-featured/ecl-featured.component.d.ts.map +1 -1
  426. package/lib/components/ecl-featured/ecl-featured.module.d.ts +5 -4
  427. package/lib/components/ecl-featured/ecl-featured.module.d.ts.map +1 -1
  428. package/lib/components/ecl-featured/index.d.ts +1 -0
  429. package/lib/components/ecl-featured/index.d.ts.map +1 -1
  430. package/lib/components/ecl-file/ecl-file-download.directive.d.ts +5 -0
  431. package/lib/components/ecl-file/ecl-file-download.directive.d.ts.map +1 -1
  432. package/lib/components/ecl-file/ecl-file-item/ecl-file-item.component.d.ts +4 -15
  433. package/lib/components/ecl-file/ecl-file-item/ecl-file-item.component.d.ts.map +1 -1
  434. package/lib/components/ecl-file/ecl-file-items/ecl-file-items.component.d.ts +3 -2
  435. package/lib/components/ecl-file/ecl-file-items/ecl-file-items.component.d.ts.map +1 -1
  436. package/lib/components/ecl-file/ecl-file-picture.directive.d.ts +6 -0
  437. package/lib/components/ecl-file/ecl-file-picture.directive.d.ts.map +1 -1
  438. package/lib/components/ecl-file/ecl-file.component.d.ts +9 -22
  439. package/lib/components/ecl-file/ecl-file.component.d.ts.map +1 -1
  440. package/lib/components/ecl-file/ecl-file.module.d.ts +1 -1
  441. package/lib/components/ecl-file/ecl-file.module.d.ts.map +1 -1
  442. package/lib/components/ecl-file/index.d.ts +0 -1
  443. package/lib/components/ecl-file/index.d.ts.map +1 -1
  444. package/lib/components/ecl-icon/ecl-icon.component.d.ts +11 -10
  445. package/lib/components/ecl-icon/ecl-icon.component.d.ts.map +1 -1
  446. package/lib/components/ecl-link/ecl-link-label.directive.d.ts.map +1 -1
  447. package/lib/components/ecl-link/ecl-link.directive.d.ts +11 -10
  448. package/lib/components/ecl-link/ecl-link.directive.d.ts.map +1 -1
  449. package/lib/components/ecl-list/ecl-list.directive.d.ts.map +1 -1
  450. package/lib/components/ecl-list-illustration/ecl-list-illustration-picture.directive.d.ts +2 -1
  451. package/lib/components/ecl-list-illustration/ecl-list-illustration-picture.directive.d.ts.map +1 -1
  452. package/lib/components/ecl-list-illustration/ecl-list-illustration.component.d.ts +4 -2
  453. package/lib/components/ecl-list-illustration/ecl-list-illustration.component.d.ts.map +1 -1
  454. package/lib/components/ecl-list-illustration/ecl-list-illustration.module.d.ts +6 -7
  455. package/lib/components/ecl-list-illustration/ecl-list-illustration.module.d.ts.map +1 -1
  456. package/lib/components/ecl-list-illustration/index.d.ts +0 -1
  457. package/lib/components/ecl-list-illustration/index.d.ts.map +1 -1
  458. package/lib/components/ecl-loading-indicator/ecl-loading-indicator-label.directive.d.ts +7 -0
  459. package/lib/components/ecl-loading-indicator/ecl-loading-indicator-label.directive.d.ts.map +1 -0
  460. package/lib/components/ecl-loading-indicator/ecl-loading-indicator-overlay.directive.d.ts +8 -0
  461. package/lib/components/ecl-loading-indicator/ecl-loading-indicator-overlay.directive.d.ts.map +1 -0
  462. package/lib/components/ecl-loading-indicator/ecl-loading-indicator.component.d.ts +14 -0
  463. package/lib/components/ecl-loading-indicator/ecl-loading-indicator.component.d.ts.map +1 -0
  464. package/lib/components/ecl-loading-indicator/ecl-loading-indicator.module.d.ts +12 -0
  465. package/lib/components/ecl-loading-indicator/ecl-loading-indicator.module.d.ts.map +1 -0
  466. package/lib/components/ecl-loading-indicator/index.d.ts +5 -0
  467. package/lib/components/ecl-loading-indicator/index.d.ts.map +1 -0
  468. package/lib/components/ecl-media-container/ecl-media-container-item.directive.d.ts +1 -8
  469. package/lib/components/ecl-media-container/ecl-media-container-item.directive.d.ts.map +1 -1
  470. package/lib/components/ecl-media-container/ecl-media-container.component.d.ts +2 -23
  471. package/lib/components/ecl-media-container/ecl-media-container.component.d.ts.map +1 -1
  472. package/lib/components/ecl-modal/ecl-modal-body.component.d.ts.map +1 -1
  473. package/lib/components/ecl-modal/ecl-modal-header.component.d.ts +4 -0
  474. package/lib/components/ecl-modal/ecl-modal-header.component.d.ts.map +1 -1
  475. package/lib/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.d.ts +4 -4
  476. package/lib/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.d.ts.map +1 -1
  477. package/lib/components/ecl-news-ticker/ecl-news-ticker.component.d.ts +4 -3
  478. package/lib/components/ecl-news-ticker/ecl-news-ticker.component.d.ts.map +1 -1
  479. package/lib/components/ecl-notification/ecl-notification-title.directive.d.ts +8 -0
  480. package/lib/components/ecl-notification/ecl-notification-title.directive.d.ts.map +1 -0
  481. package/lib/components/ecl-notification/ecl-notification.component.d.ts +26 -0
  482. package/lib/components/ecl-notification/ecl-notification.component.d.ts.map +1 -0
  483. package/lib/components/ecl-notification/ecl-notification.module.d.ts +14 -0
  484. package/lib/components/ecl-notification/ecl-notification.module.d.ts.map +1 -0
  485. package/lib/components/ecl-notification/index.d.ts +4 -0
  486. package/lib/components/ecl-notification/index.d.ts.map +1 -0
  487. package/lib/components/ecl-popover/ecl-popover.component.d.ts +29 -6
  488. package/lib/components/ecl-popover/ecl-popover.component.d.ts.map +1 -1
  489. package/lib/components/ecl-popover/ecl-popover.module.d.ts +5 -5
  490. package/lib/components/ecl-popover/ecl-popover.module.d.ts.map +1 -1
  491. package/lib/components/ecl-popover/index.d.ts +0 -1
  492. package/lib/components/ecl-popover/index.d.ts.map +1 -1
  493. package/lib/components/ecl-social-media-follow/ecl-social-media-follow-item.component.d.ts +2 -1
  494. package/lib/components/ecl-social-media-follow/ecl-social-media-follow-item.component.d.ts.map +1 -1
  495. package/lib/components/ecl-social-media-follow/ecl-social-media-follow.component.d.ts +2 -1
  496. package/lib/components/ecl-social-media-follow/ecl-social-media-follow.component.d.ts.map +1 -1
  497. package/lib/components/ecl-social-media-follow/ecl-social-media-follow.module.d.ts +4 -3
  498. package/lib/components/ecl-social-media-follow/ecl-social-media-follow.module.d.ts.map +1 -1
  499. package/lib/components/ecl-sticky-container/ecl-sticky-container.component.d.ts +14 -2
  500. package/lib/components/ecl-sticky-container/ecl-sticky-container.component.d.ts.map +1 -1
  501. package/lib/components/ecl-table/ecl-table-sort-button.component.d.ts +2 -2
  502. package/lib/components/ecl-table/ecl-table-sort-button.component.d.ts.map +1 -1
  503. package/lib/components/ecl-table/ecl-table.directive.d.ts +7 -4
  504. package/lib/components/ecl-table/ecl-table.directive.d.ts.map +1 -1
  505. package/lib/components/ecl-tag/ecl-tag-set.directive.d.ts +8 -0
  506. package/lib/components/ecl-tag/ecl-tag-set.directive.d.ts.map +1 -0
  507. package/lib/components/ecl-tag/ecl-tag.component.d.ts +6 -7
  508. package/lib/components/ecl-tag/ecl-tag.component.d.ts.map +1 -1
  509. package/lib/components/ecl-tag/ecl-tag.module.d.ts +4 -3
  510. package/lib/components/ecl-tag/ecl-tag.module.d.ts.map +1 -1
  511. package/lib/components/ecl-tag/index.d.ts +1 -0
  512. package/lib/components/ecl-tag/index.d.ts.map +1 -1
  513. package/lib/components/index.d.ts +2 -2
  514. package/lib/components/index.d.ts.map +1 -1
  515. package/lib/services/ecl-default-language.service.d.ts +2 -1
  516. package/lib/services/ecl-default-language.service.d.ts.map +1 -1
  517. package/lib/services/ecl-theme.service.d.ts +1 -1
  518. package/lib/services/ecl-theme.service.d.ts.map +1 -1
  519. package/lib/shared/ecl-all.module.d.ts +20 -20
  520. package/package.json +1 -1
  521. package/docs/classes/EclFileDownloadEvent.html +0 -367
  522. package/esm2022/lib/components/ecl-file/ecl-file-item/ecl-file-download.event.mjs +0 -8
  523. package/esm2022/lib/components/ecl-list-illustration/ecl-list-illustration-image/ecl-list-illustration-image.component.mjs +0 -53
  524. package/esm2022/lib/components/ecl-message/ecl-message-title.directive.mjs +0 -20
  525. package/esm2022/lib/components/ecl-message/ecl-message.component.mjs +0 -88
  526. package/esm2022/lib/components/ecl-message/ecl-message.module.mjs +0 -22
  527. package/esm2022/lib/components/ecl-message/index.mjs +0 -4
  528. package/esm2022/lib/components/ecl-popover/ecl-popover-list.directive.mjs +0 -52
  529. package/esm2022/lib/components/ecl-spinner/ecl-spinner-label.directive.mjs +0 -19
  530. package/esm2022/lib/components/ecl-spinner/ecl-spinner.component.mjs +0 -51
  531. package/esm2022/lib/components/ecl-spinner/ecl-spinner.module.mjs +0 -20
  532. package/esm2022/lib/components/ecl-spinner/index.mjs +0 -4
  533. package/lib/components/ecl-file/ecl-file-item/ecl-file-download.event.d.ts +0 -6
  534. package/lib/components/ecl-file/ecl-file-item/ecl-file-download.event.d.ts.map +0 -1
  535. package/lib/components/ecl-list-illustration/ecl-list-illustration-image/ecl-list-illustration-image.component.d.ts +0 -17
  536. package/lib/components/ecl-list-illustration/ecl-list-illustration-image/ecl-list-illustration-image.component.d.ts.map +0 -1
  537. package/lib/components/ecl-message/ecl-message-title.directive.d.ts +0 -8
  538. package/lib/components/ecl-message/ecl-message-title.directive.d.ts.map +0 -1
  539. package/lib/components/ecl-message/ecl-message.component.d.ts +0 -21
  540. package/lib/components/ecl-message/ecl-message.component.d.ts.map +0 -1
  541. package/lib/components/ecl-message/ecl-message.module.d.ts +0 -13
  542. package/lib/components/ecl-message/ecl-message.module.d.ts.map +0 -1
  543. package/lib/components/ecl-message/index.d.ts +0 -4
  544. package/lib/components/ecl-message/index.d.ts.map +0 -1
  545. package/lib/components/ecl-popover/ecl-popover-list.directive.d.ts +0 -18
  546. package/lib/components/ecl-popover/ecl-popover-list.directive.d.ts.map +0 -1
  547. package/lib/components/ecl-spinner/ecl-spinner-label.directive.d.ts +0 -7
  548. package/lib/components/ecl-spinner/ecl-spinner-label.directive.d.ts.map +0 -1
  549. package/lib/components/ecl-spinner/ecl-spinner.component.d.ts +0 -12
  550. package/lib/components/ecl-spinner/ecl-spinner.component.d.ts.map +0 -1
  551. package/lib/components/ecl-spinner/ecl-spinner.module.d.ts +0 -11
  552. package/lib/components/ecl-spinner/ecl-spinner.module.d.ts.map +0 -1
  553. package/lib/components/ecl-spinner/index.d.ts +0 -4
  554. package/lib/components/ecl-spinner/index.d.ts.map +0 -1
@@ -534,13 +534,13 @@ export class EclMenuComponent extends ECLBaseDirective {
534
534
  this.isMobileBreakpoint = result.matches;
535
535
  });
536
536
  }
537
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: EclMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.IterableDiffers }, { token: i1.BreakpointObserver }, { token: i0.Renderer2 }, { token: i2.EclRtlService }], target: i0.ɵɵFactoryTarget.Component }); }
538
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.1", type: EclMenuComponent, selector: "ecl-menu", inputs: { group: "group", maxLines: "maxLines" }, outputs: { menuItemSelect: "menuItemSelect" }, host: { listeners: { "keydown": "keyEvent($event)", "window:resize": "onResize()" }, properties: { "class": "this.cssClasses", "attr.aria-expanded": "this.isHamburgerMenuOpened", "attr.role": "this.role", "class.ecl-menu--forced-mobile": "this.isMobileBreakpoint", "class.ecl-menu--forced-close": "this.isMenuHidden" } }, queries: [{ propertyName: "eclRootMenuItems", predicate: EclMenuItemComponent }], viewQueries: [{ propertyName: "innerSection", first: true, predicate: ["innerSection"], descendants: true }, { propertyName: "itemsList", first: true, predicate: ["itemsList"], descendants: true }, { propertyName: "btnPrevious", first: true, predicate: ["btnPrevious"], descendants: true }, { propertyName: "btnNext", first: true, predicate: ["btnNext"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-menu__overlay\" (click)=\"onOverlayClick()\"></div>\n<div class=\"ecl-container ecl-menu__container\">\n <a eclLink href=\"#\" variant=\"standalone\" class=\"ecl-menu__open\" (click)=\"onMenuOpenClick($event)\">\n <ecl-icon icon=\"hamburger\" size=\"s\"></ecl-icon> {{ 'ecl.menu.MENU' | translate }}\n </a>\n\n <section\n class=\"ecl-menu__inner\"\n #innerSection\n [class.ecl-menu__inner--expanded]=\"isMenuExpandedInMobile\"\n [class.ecl-menu__inner--has-overflow]=\"hasOverflow\">\n <header class=\"ecl-menu__inner-header\">\n <button\n eclButton\n variant=\"ghost\"\n class=\"ecl-menu__close\"\n containerStyleClass=\"ecl-menu__close-container\"\n (click)=\"onMenuCloseClick($event)\">\n <ecl-icon icon=\"close-filled\" size=\"s\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n </button>\n\n <div class=\"ecl-menu__title\">{{ 'ecl.menu.MENU' | translate }}</div>\n\n <button eclButton variant=\"ghost\" class=\"ecl-menu__back\" (click)=\"onMenuBackClick($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.BACK' | translate }}</span>\n </button>\n </header>\n <button\n eclButton\n #btnPrevious\n tabindex=\"-1\"\n variant=\"ghost\"\n class=\"ecl-menu__item ecl-menu__items-previous\"\n [class.ecl-menu__item--current]=\"isPrevBtnCurrentClass\"\n [style.display]=\"isShowPrevBtn ? 'block' : 'none'\"\n (click)=\"onPrevBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.PREVIOUS' | translate }}</span>\n </button>\n <button\n eclButton\n #btnNext\n variant=\"ghost\"\n tabindex=\"-1\"\n class=\"ecl-menu__item ecl-menu__items-next\"\n [class.ecl-menu__item--current]=\"!isPrevBtnCurrentClass\"\n [style.display]=\"isShowNextBtn ? 'block' : 'none'\"\n (click)=\"onNextBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.NEXT' | translate }}</span>\n </button>\n <ul class=\"ecl-menu__list\" #itemsList [style.right]=\"menuListStyleRight\" [style.left]=\"menuListStyleLeft\">\n <ng-content></ng-content>\n </ul>\n </section>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i3.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "containerStyleClass"] }, { kind: "directive", type: i4.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i5.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "directive", type: i6.EclLinkDirective, selector: "[eclLink]", inputs: ["variant", "isNegative", "isNoVisited"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
537
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EclMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.IterableDiffers }, { token: i1.BreakpointObserver }, { token: i0.Renderer2 }, { token: i2.EclRtlService }], target: i0.ɵɵFactoryTarget.Component }); }
538
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.3", type: EclMenuComponent, selector: "ecl-menu", inputs: { group: "group", maxLines: "maxLines" }, outputs: { menuItemSelect: "menuItemSelect" }, host: { listeners: { "keydown": "keyEvent($event)", "window:resize": "onResize()" }, properties: { "class": "this.cssClasses", "attr.aria-expanded": "this.isHamburgerMenuOpened", "attr.role": "this.role", "class.ecl-menu--forced-mobile": "this.isMobileBreakpoint", "class.ecl-menu--forced-close": "this.isMenuHidden" } }, queries: [{ propertyName: "eclRootMenuItems", predicate: EclMenuItemComponent }], viewQueries: [{ propertyName: "innerSection", first: true, predicate: ["innerSection"], descendants: true }, { propertyName: "itemsList", first: true, predicate: ["itemsList"], descendants: true }, { propertyName: "btnPrevious", first: true, predicate: ["btnPrevious"], descendants: true }, { propertyName: "btnNext", first: true, predicate: ["btnNext"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-menu__overlay\" (click)=\"onOverlayClick()\"></div>\n<div class=\"ecl-container ecl-menu__container\">\n <a eclLink href=\"#\" variant=\"standalone\" class=\"ecl-menu__open\" (click)=\"onMenuOpenClick($event)\">\n <ecl-icon icon=\"hamburger\" size=\"s\"></ecl-icon> {{ 'ecl.menu.MENU' | translate }}\n </a>\n\n <section\n class=\"ecl-menu__inner\"\n #innerSection\n [class.ecl-menu__inner--expanded]=\"isMenuExpandedInMobile\"\n [class.ecl-menu__inner--has-overflow]=\"hasOverflow\">\n <header class=\"ecl-menu__inner-header\">\n <button\n eclButton\n variant=\"ghost\"\n class=\"ecl-menu__close\"\n containerStyleClass=\"ecl-menu__close-container\"\n (click)=\"onMenuCloseClick($event)\">\n <ecl-icon icon=\"close-filled\" size=\"s\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n </button>\n\n <div class=\"ecl-menu__title\">{{ 'ecl.menu.MENU' | translate }}</div>\n\n <button eclButton variant=\"ghost\" class=\"ecl-menu__back\" (click)=\"onMenuBackClick($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.BACK' | translate }}</span>\n </button>\n </header>\n <button\n eclButton\n #btnPrevious\n tabindex=\"-1\"\n variant=\"ghost\"\n class=\"ecl-menu__item ecl-menu__items-previous\"\n [class.ecl-menu__item--current]=\"isPrevBtnCurrentClass\"\n [style.display]=\"isShowPrevBtn ? 'block' : 'none'\"\n (click)=\"onPrevBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.PREVIOUS' | translate }}</span>\n </button>\n <button\n eclButton\n #btnNext\n variant=\"ghost\"\n tabindex=\"-1\"\n class=\"ecl-menu__item ecl-menu__items-next\"\n [class.ecl-menu__item--current]=\"!isPrevBtnCurrentClass\"\n [style.display]=\"isShowNextBtn ? 'block' : 'none'\"\n (click)=\"onNextBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.NEXT' | translate }}</span>\n </button>\n <ul class=\"ecl-menu__list\" #itemsList [style.right]=\"menuListStyleRight\" [style.left]=\"menuListStyleLeft\">\n <ng-content></ng-content>\n </ul>\n </section>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i3.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "containerStyleClass"] }, { kind: "directive", type: i4.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i5.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "ariaHidden", "focusable"] }, { kind: "directive", type: i6.EclLinkDirective, selector: "[eclLink]", inputs: ["isInverted", "isHiddenLabel", "isNoVisited", "variant"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
539
539
  }
540
540
  __decorate([
541
541
  coerceNumber
542
542
  ], EclMenuComponent.prototype, "maxLines", void 0);
543
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: EclMenuComponent, decorators: [{
543
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EclMenuComponent, decorators: [{
544
544
  type: Component,
545
545
  args: [{ selector: 'ecl-menu', template: "<div class=\"ecl-menu__overlay\" (click)=\"onOverlayClick()\"></div>\n<div class=\"ecl-container ecl-menu__container\">\n <a eclLink href=\"#\" variant=\"standalone\" class=\"ecl-menu__open\" (click)=\"onMenuOpenClick($event)\">\n <ecl-icon icon=\"hamburger\" size=\"s\"></ecl-icon> {{ 'ecl.menu.MENU' | translate }}\n </a>\n\n <section\n class=\"ecl-menu__inner\"\n #innerSection\n [class.ecl-menu__inner--expanded]=\"isMenuExpandedInMobile\"\n [class.ecl-menu__inner--has-overflow]=\"hasOverflow\">\n <header class=\"ecl-menu__inner-header\">\n <button\n eclButton\n variant=\"ghost\"\n class=\"ecl-menu__close\"\n containerStyleClass=\"ecl-menu__close-container\"\n (click)=\"onMenuCloseClick($event)\">\n <ecl-icon icon=\"close-filled\" size=\"s\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n </button>\n\n <div class=\"ecl-menu__title\">{{ 'ecl.menu.MENU' | translate }}</div>\n\n <button eclButton variant=\"ghost\" class=\"ecl-menu__back\" (click)=\"onMenuBackClick($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>{{ 'ecl.common.BACK' | translate }}</span>\n </button>\n </header>\n <button\n eclButton\n #btnPrevious\n tabindex=\"-1\"\n variant=\"ghost\"\n class=\"ecl-menu__item ecl-menu__items-previous\"\n [class.ecl-menu__item--current]=\"isPrevBtnCurrentClass\"\n [style.display]=\"isShowPrevBtn ? 'block' : 'none'\"\n (click)=\"onPrevBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.PREVIOUS' | translate }}</span>\n </button>\n <button\n eclButton\n #btnNext\n variant=\"ghost\"\n tabindex=\"-1\"\n class=\"ecl-menu__item ecl-menu__items-next\"\n [class.ecl-menu__item--current]=\"!isPrevBtnCurrentClass\"\n [style.display]=\"isShowNextBtn ? 'block' : 'none'\"\n (click)=\"onNextBtnClick()\">\n <ecl-icon icon=\"corner-arrow\" size=\"s\" transform=\"rotate-90\"></ecl-icon>\n <span eclButtonLabel class=\"ecl-u-sr-only\">{{ 'ecl.common.NEXT' | translate }}</span>\n </button>\n <ul class=\"ecl-menu__list\" #itemsList [style.right]=\"menuListStyleRight\" [style.left]=\"menuListStyleLeft\">\n <ng-content></ng-content>\n </ul>\n </section>\n</div>\n", styles: [":host{display:block}\n"] }]
546
546
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.IterableDiffers }, { type: i1.BreakpointObserver }, { type: i0.Renderer2 }, { type: i2.EclRtlService }], propDecorators: { group: [{
@@ -586,4 +586,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1",
586
586
  type: HostListener,
587
587
  args: ['window:resize']
588
588
  }] } });
589
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC1tZW51L2VjbC1tZW51L2VjbC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS9lY2wtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFzQixXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBR0gsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBTUwsTUFBTSxFQUdOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUM5QixPQUFPLEVBQWMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTVELE9BQU8sRUFBeUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5SSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQWN6QyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZ0JBQWdCO0lBWWxELElBQ0ksVUFBVTtRQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixJQUFJLENB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QzdDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzt3SUFsbUJRLGdCQUFnQjs0SEFBaEIsZ0JBQWdCLG9mQUlSLG9CQUFvQiw2YUNoRHpDLG12RkEwREE7O0FEWjJCO0lBQXRCLFlBQVk7a0RBQXVCO2tHQUYzQixnQkFBZ0I7a0JBWDVCLFNBQVM7K0JBQ0ksVUFBVTtrTUFXWCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ2lCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRW1CLGdCQUFnQjtzQkFBdEQsZUFBZTt1QkFBQyxvQkFBb0I7Z0JBQ1YsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUNELFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDSSxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0YsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUVWLGNBQWM7c0JBQXZCLE1BQU07Z0JBR0gsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBS2UscUJBQXFCO3NCQUF2RCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDUCxJQUFJO3NCQUE3QixXQUFXO3VCQUFDLFdBQVc7Z0JBQ3NCLGtCQUFrQjtzQkFBL0QsV0FBVzt1QkFBQywrQkFBK0I7Z0JBQ0MsWUFBWTtzQkFBeEQsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBaUMzQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVVuQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIEl0ZXJhYmxlQ2hhbmdlcyxcbiAgICBJdGVyYWJsZURpZmZlcixcbiAgICBJdGVyYWJsZURpZmZlcnMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlTnVtYmVyIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCBIYW1tZXIgZnJvbSAnaGFtbWVyanMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1lcmdlV2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRWNsTWVudUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lY2wtbWVudS1pdGVtLm1vZGVsJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWNsLWJ1dHRvbic7XG5pbXBvcnQgeyBFY2xNZW51SXRlbUNhcmV0RXZlbnQsIEVjbE1lbnVJdGVtSG92ZXJFdmVudCwgRWNsTWVudUl0ZW1LZXlkb3duRXZlbnQsIEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQgfSBmcm9tICcuLi9jb21tb24vZWNsLW1lbnUtaXRlbS5ldmVudCc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZWNsLW1lbnUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2V5Q29kZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEVjbFJ0bFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWNsLW1lbnUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xNZW51Q29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKSBncm91cCA9ICcxJztcbiAgICBAY29lcmNlTnVtYmVyIEBJbnB1dCgpIG1heExpbmVzID0gMDtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oRWNsTWVudUl0ZW1Db21wb25lbnQpIGVjbFJvb3RNZW51SXRlbXM6IFF1ZXJ5TGlzdDxFY2xNZW51SXRlbUNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgnaW5uZXJTZWN0aW9uJykgaW5uZXJTZWN0aW9uOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2l0ZW1zTGlzdCcpIGl0ZW1zTGlzdDogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdidG5QcmV2aW91cycpIGJ0blByZXZpb3VzOiBFY2xCdXR0b25Db21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgnYnRuTmV4dCcpIGJ0bk5leHQ6IEVjbEJ1dHRvbkNvbXBvbmVudDtcblxuICAgIEBPdXRwdXQoKSBtZW51SXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1TZWxlY3RFdmVudD4oKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLW1lbnUnKSwgJ2VjbC1tZW51LS10cmFuc2l0aW9uJywgYGVjbC1tZW51LS1ncm91cCR7dGhpcy5ncm91cH1gXS5qb2luKCcgJyk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZXhwYW5kZWQnKSBpc0hhbWJ1cmdlck1lbnVPcGVuZWQgPSBmYWxzZTtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIHJvbGUgPSAnbmF2aWdhdGlvbic7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtbWVudS0tZm9yY2VkLW1vYmlsZScpIGlzTW9iaWxlQnJlYWtwb2ludCA9IGZhbHNlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnUtLWZvcmNlZC1jbG9zZScpIGlzTWVudUhpZGRlbiA9IGZhbHNlO1xuXG4gICAgaGFzT3ZlcmZsb3cgPSBmYWxzZTtcbiAgICBpc1Nob3dQcmV2QnRuID0gZmFsc2U7XG4gICAgaXNTaG93TmV4dEJ0biA9IGZhbHNlO1xuICAgIGlzUHJldkJ0bkN1cnJlbnRDbGFzcyA9IGZhbHNlO1xuICAgIG1lbnVMaXN0U3R5bGVSaWdodCA9ICdhdXRvJztcbiAgICBtZW51TGlzdFN0eWxlTGVmdCA9ICdhdXRvJztcblxuICAgIHByaXZhdGUgY3VycmVudEl0ZW06IEVjbE1lbnVJdGVtO1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgZGlmZmVyOiBJdGVyYWJsZURpZmZlcjxFY2xNZW51SXRlbUNvbXBvbmVudD47XG4gICAgcHJpdmF0ZSBkaWZmOiBJdGVyYWJsZUNoYW5nZXM8RWNsTWVudUl0ZW1Db21wb25lbnQ+O1xuICAgIHByaXZhdGUgaXNSdGwgPSBmYWxzZTtcbiAgICBwcml2YXRlIHRvdGFsSXRlbXNXaWR0aCA9IDA7XG4gICAgcHJpdmF0ZSBvZmZzZXRMZWZ0ID0gMDtcbiAgICBwcml2YXRlIGxhc3RWaXNpYmxlSXRlbTogRWNsTWVudUl0ZW1Db21wb25lbnQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBoYW1tZXJ0aW1lID0gbmV3IEhhbW1lcihkb2N1bWVudCwgeyBpbnB1dENsYXNzOiBIYW1tZXIuVG91Y2hJbnB1dCB9KTtcbiAgICBwcml2YXRlIHJlc2l6ZVRpbWVyOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBUSU1FT1VUX0lOVEVSVkFMID0gMTUwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLFxuICAgICAgICBwcml2YXRlIGNka0JyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZWNsUnRsU2VydmljZTogRWNsUnRsU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5kaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZChbXSkuY3JlYXRlKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAga2V5RXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VSb290TWVudSgpO1xuICAgICAgICAgICAgdGhpcy5oaWRlTWVudSgpO1xuICAgICAgICAgICAgdGhpcy5jbG9zZUhhbWJ1cmdlck1lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICAgIG9uUmVzaXplKCk6IHZvaWQge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lcik7XG4gICAgICAgIHRoaXMucmVzaXplVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZWNsLW1lbnUtLXRyYW5zaXRpb24nKTtcbiAgICAgICAgICAgIHRoaXMudG90YWxJdGVtc1dpZHRoID0gMDtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tNZW51SXRlbXNXaWR0aCgpO1xuICAgICAgICAgICAgdGhpcy5jaGVja01lbnVPdmVyZmxvdygpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdlY2wtbWVudS0tdHJhbnNpdGlvbicpO1xuICAgICAgICB9LCB0aGlzLlRJTUVPVVRfSU5URVJWQUwpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhhbmRsZVJ0bENoYW5nZVN0YXRlKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZUJyZWFrcG9pbnRDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZVN3aXBlR2VzdHVyZXMoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZVJvb3RNZW51SXRlbXNDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lcik7XG4gICAgICAgIHRoaXMucmVzaXplVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tNZW51SXRlbXNXaWR0aCgpO1xuICAgICAgICAgICAgdGhpcy5jaGVja01lbnVPdmVyZmxvdygpO1xuICAgICAgICB9LCB0aGlzLlRJTUVPVVRfSU5URVJWQUwpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcblxuICAgICAgICB0aGlzLmhhbW1lcnRpbWUub2ZmKCdzd2lwZWxlZnQnKTtcbiAgICAgICAgdGhpcy5oYW1tZXJ0aW1lLm9mZignc3dpcGVyaWdodCcpO1xuICAgIH1cblxuICAgIG9uU3dpcGVMZWZ0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc01vYmlsZUJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkhhbWJ1cmdlck1lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU3dpcGVSaWdodCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25PdmVybGF5Q2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2VIYW1idXJnZXJNZW51KCk7XG4gICAgfVxuXG4gICAgb25NZW51T3BlbkNsaWNrKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5IYW1idXJnZXJNZW51KCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uTWVudUNsb3NlQ2xpY2soZXZ0OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2VIYW1idXJnZXJNZW51KCk7XG4gICAgICAgIHRoaXMuY2xvc2VSb290TWVudSgpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbk1lbnVCYWNrQ2xpY2soZXZ0OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2VSb290TWVudSgpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvblByZXZCdG5DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zbGlkZU1lbnVJbml0aWFsU3RhdGUoKTtcbiAgICAgICAgdGhpcy5yZWZyZXNoRGlzcGxheSgpO1xuICAgIH1cblxuICAgIG9uTmV4dEJ0bkNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzU2hvd1ByZXZCdG4gPSB0cnVlO1xuICAgICAgICB0aGlzLmlzU2hvd05leHRCdG4gPSBmYWxzZTtcblxuICAgICAgICBpZiAodGhpcy5pc1J0bCkge1xuICAgICAgICAgICAgdGhpcy5zaG93TmV4dFNsaWRlUnRsKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNob3dOZXh0U2xpZGVMdHIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVmcmVzaERpc3BsYXkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNsaWRlTWVudUluaXRpYWxTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vZmZzZXRMZWZ0ID0gMDtcbiAgICAgICAgaWYgKHRoaXMuaXNSdGwpIHtcbiAgICAgICAgICAgIHRoaXMubWVudUxpc3RTdHlsZVJpZ2h0ID0gJzBweCc7XG4gICAgICAgICAgICB0aGlzLm1lbnVMaXN0U3R5bGVMZWZ0ID0gJ2F1dG8nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tZW51TGlzdFN0eWxlTGVmdCA9ICcwcHgnO1xuICAgICAgICAgICAgdGhpcy5tZW51TGlzdFN0eWxlUmlnaHQgPSAnYXV0byc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzU2hvd1ByZXZCdG4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1Nob3dOZXh0QnRuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3dOZXh0U2xpZGVMdHIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGJ0bk9mZnNldFdpZHRoID0gdGhpcy5idG5OZXh0LmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIHRoaXMub2Zmc2V0TGVmdCA9XG4gICAgICAgICAgICB0aGlzLmxhc3RWaXNpYmxlSXRlbS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgLVxuICAgICAgICAgICAgdGhpcy5pdGVtc0xpc3QubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC1cbiAgICAgICAgICAgIGJ0bk9mZnNldFdpZHRoO1xuXG4gICAgICAgIHRoaXMubWVudUxpc3RTdHlsZUxlZnQgPSBgLSR7dGhpcy5vZmZzZXRMZWZ0fXB4YDtcbiAgICAgICAgdGhpcy5tZW51TGlzdFN0eWxlUmlnaHQgPSAnYXV0byc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93TmV4dFNsaWRlUnRsKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBidG5PZmZzZXRXaWR0aCA9IHRoaXMuYnRuTmV4dC5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICB0aGlzLm9mZnNldExlZnQgPVxuICAgICAgICAgICAgdGhpcy5pdGVtc0xpc3QubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCAtXG4gICAgICAgICAgICB0aGlzLmxhc3RWaXNpYmxlSXRlbS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IC1cbiAgICAgICAgICAgIGJ0bk9mZnNldFdpZHRoO1xuXG4gICAgICAgIHRoaXMubWVudUxpc3RTdHlsZVJpZ2h0ID0gYC0ke3RoaXMub2Zmc2V0TGVmdH1weGA7XG4gICAgICAgIHRoaXMubWVudUxpc3RTdHlsZUxlZnQgPSAnYXV0byc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWZyZXNoRGlzcGxheSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uY2hlY2tNZW51SXRlbSh0aGlzLm1heExpbmVzLCB0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCk7XG4gICAgICAgICAgICBpdGVtLmlzVmlzaWJsZSA9ICFpdGVtLmlzVmlzaWJsZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja01lbnVPdmVyZmxvdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oYXNPdmVyZmxvdyA9IHRoaXMudG90YWxJdGVtc1dpZHRoID4gdGhpcy5pbm5lclNlY3Rpb24ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgaWYgKCF0aGlzLmhhc092ZXJmbG93IHx8IHRoaXMuaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0T3ZlcmZsb3dWYWx1ZXMoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0Q2xhc3NGb3JQcmV2TmV4dEJ1dHRvbnMoKTtcbiAgICAgICAgdGhpcy5yZXNldFZpc2liaWxpdHlJbmRpY2F0b3IoKTtcblxuICAgICAgICBpZiAodGhpcy5vZmZzZXRMZWZ0ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZU92ZXJmbG93RW5kKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZU92ZXJmbG93QmVnaW5uaW5nKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1hbmFnZU92ZXJmbG93QmVnaW5uaW5nKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1J0bCkge1xuICAgICAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zXG4gICAgICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgKGl0ZW0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQgPD1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5uZXJTZWN0aW9uLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlbCkgPT4gKGVsLmlzVmlzaWJsZSA9IHRydWUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIChpdGVtKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgPj0gdGhpcy5pbm5lclNlY3Rpb24ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZWwpID0+IChlbC5pc1Zpc2libGUgPSB0cnVlKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1hbmFnZU92ZXJmbG93RW5kKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzU2hvd05leHRCdG4gPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5pc1J0bCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuZWNsUm9vdE1lbnVJdGVtcykge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCA8IHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RWaXNpYmxlSXRlbSA9IGl0ZW07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpdGVtLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5lY2xSb290TWVudUl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCA+IHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0VmlzaWJsZUl0ZW0gPSBpdGVtO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaXRlbS5pc1Zpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldFZpc2liaWxpdHlJbmRpY2F0b3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS5pc1Zpc2libGUgPSBmYWxzZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRPdmVyZmxvd1ZhbHVlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1Nob3dQcmV2QnRuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNTaG93TmV4dEJ0biA9IGZhbHNlO1xuICAgICAgICB0aGlzLmhhc092ZXJmbG93ID0gZmFsc2U7XG4gICAgICAgIHRoaXMubWVudUxpc3RTdHlsZUxlZnQgPSAnMHB4JztcbiAgICAgICAgdGhpcy5vZmZzZXRMZWZ0ID0gMDtcbiAgICAgICAgdGhpcy50b3RhbEl0ZW1zV2lkdGggPSAwO1xuICAgICAgICB0aGlzLmxhc3RWaXNpYmxlSXRlbSA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDbGFzc0ZvclByZXZOZXh0QnV0dG9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SXRlbSA9IHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLmlzQ3VycmVudCk7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRJdGVtKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50SXRlbS5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzUHJldkJ0bkN1cnJlbnRDbGFzcyA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNQcmV2QnRuQ3VycmVudENsYXNzID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrTWVudUl0ZW1zV2lkdGgoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmNoZWNrTWVudUl0ZW0odGhpcy5tYXhMaW5lcywgdGhpcy5pc01vYmlsZUJyZWFrcG9pbnQpO1xuICAgICAgICAgICAgdGhpcy50b3RhbEl0ZW1zV2lkdGggKz0gaXRlbS5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzTWVudUV4cGFuZGVkSW5Nb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCAmJiB0aGlzLmlzQW55Um9vdE1lbnVJdGVtRXhwYW5kZWQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQW55Um9vdE1lbnVJdGVtRXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVjbFJvb3RNZW51SXRlbXMuc29tZSgoaXRlbSkgPT4gaXRlbS5pc0V4cGFuZGVkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZVJvb3RNZW51SXRlbXNDaGFuZ2VzT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPFF1ZXJ5TGlzdDxFY2xNZW51SXRlbUNvbXBvbmVudD4+IHtcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuZWNsUm9vdE1lbnVJdGVtcykucGlwZShtZXJnZVdpdGgodGhpcy5lY2xSb290TWVudUl0ZW1zLmNoYW5nZXMpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25NZW51SXRlbUNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlmZiA9IHRoaXMuZGlmZmVyLmRpZmYodGhpcy5lY2xSb290TWVudUl0ZW1zKTtcblxuICAgICAgICBpZiAoIXRoaXMuZGlmZikge1xuICAgICAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zLmZvckVhY2goKHJvb3RJdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0TWVudUl0ZW1FdmVudHMocm9vdEl0ZW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpZmYuZm9yRWFjaEFkZGVkSXRlbSgoY2hhbmdlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0TWVudUl0ZW1FdmVudHMoY2hhbmdlLml0ZW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbm5lY3RNZW51SXRlbUV2ZW50cyhpdGVtOiBFY2xNZW51SXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpdGVtLm1lbnVJdGVtU2VsZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblJvb3RNZW51SXRlbVNlbGVjdGVkKGV2dCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdGVtLm1lbnVJdGVtSG92ZXIucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uUm9vdE1lbnVJdGVtSG92ZXJlZChldnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXRlbS5tZW51SXRlbUhvdmVyT3V0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblJvb3RNZW51SXRlbUhvdmVyZWRPdXQoZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0ZW0ubWVudUl0ZW1DYXJldC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Sb290TWVudUl0ZW1DYXJldChldnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXRlbS5tZW51TWVnYUl0ZW1TZWxlY3QucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uTWVudU1lZ2FJdGVtU2VsZWN0ZWQoaXRlbSwgZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0ZW0ubWVudUl0ZW1Gb2N1cy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Sb290TWVudUl0ZW1Gb2N1c2VkKGl0ZW0pO1xuICAgICAgICB9KTtcbiAgICAgICAgaXRlbS5tZW51SXRlbUtleWRvd24ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uUm9vdE1lbnVJdGVtS2V5ZG93bihpdGVtLCBldnQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUm9vdE1lbnVJdGVtRm9jdXNlZChpdGVtOiBFY2xNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZmluZEluZGV4SW5BcnJheShpdGVtKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNNb3ZlUHJldk92ZXJmbG93KGluZGV4KSl7XG4gICAgICAgICAgICB0aGlzLm9uUHJldkJ0bkNsaWNrKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc01vdmVOZXh0T3ZlcmZsb3coaW5kZXgpKXtcbiAgICAgICAgICAgIHRoaXMub25OZXh0QnRuQ2xpY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb290TWVudUl0ZW1LZXlkb3duKGl0ZW06IEVjbE1lbnVJdGVtLCBldnQ6IEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmRvbUV2ZW50LmtleSkge1xuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkFSUk9XX0RPV046IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uUm9vdE1lbnVJdGVtRW50ZXIoaXRlbSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuQVJST1dfUklHSFQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTmV4dE1lbnVJdGVtRm9jdXMoaXRlbSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuQVJST1dfVVA6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uUHJldk1lbnVJdGVtRm9jdXMoaXRlbSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuQVJST1dfTEVGVDoge1xuICAgICAgICAgICAgICAgIHRoaXMub25QcmV2TWVudUl0ZW1Gb2N1cyhpdGVtKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5FTlRFUjoge1xuICAgICAgICAgICAgICAgIHRoaXMub25Sb290TWVudUl0ZW1FbnRlcihpdGVtKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5FU0NBUEU6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uUm9vdE1lbnVJdGVtRXNjYXBlKGl0ZW0sIGV2dC5kb21FdmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUm9vdE1lbnVJdGVtRXNjYXBlKGl0ZW06IEVjbE1lbnVJdGVtLCBldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChpdGVtLmlzSG92ZXJlZCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51KCk7XG4gICAgICAgIH1cbiAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25QcmV2TWVudUl0ZW1Gb2N1cyhpdGVtOiBFY2xNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZmluZEluZGV4SW5BcnJheShpdGVtKTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmdldFJvb3RNZW51SXRlbXNBcnJheSgpW2luZGV4IC0gMV0ub25Gb2N1c0Zyb21OZXh0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTmV4dE1lbnVJdGVtRm9jdXMoaXRlbTogRWNsTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbmRJbmRleEluQXJyYXkoaXRlbSk7XG4gICAgICAgIGlmIChpbmRleCAhPT0gdGhpcy5nZXRSb290TWVudUl0ZW1zQXJyYXkoKS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICB0aGlzLmdldFJvb3RNZW51SXRlbXNBcnJheSgpW2luZGV4ICsgMV0ub25Gb2N1c0Zyb21QcmV2KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRJbmRleEluQXJyYXkoaXRlbTogRWNsTWVudUl0ZW0pOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRSb290TWVudUl0ZW1zQXJyYXkoKS5maW5kSW5kZXgoZWwgPT4gaXRlbSA9PT0gZWwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNNb3ZlTmV4dE92ZXJmbG93KGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmdldFJvb3RNZW51SXRlbXNBcnJheSgpW2luZGV4XS5pc1Zpc2libGUgJiYgdGhpcy5pc1Nob3dOZXh0QnRuO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNNb3ZlUHJldk92ZXJmbG93KGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmdldFJvb3RNZW51SXRlbXNBcnJheSgpW2luZGV4XS5pc1Zpc2libGUgJiYgdGhpcy5pc1Nob3dQcmV2QnRuO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb290TWVudUl0ZW1TZWxlY3RlZChldnQ6IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdGVkUm9vdE1lbnVJdGVtOiBFY2xNZW51SXRlbSA9IGV2dC5tZW51SXRlbTtcblxuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgdGhpcy5kZXNlbGVjdEFsbFJvb3RNZW51SXRlbXMoKTtcbiAgICAgICAgdGhpcy5kZXNlbGVjdEFsbFN1Ym1lbnVzSXRlbXMoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RNZW51SXRlbShyZXF1ZXN0ZWRSb290TWVudUl0ZW0pO1xuICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuICAgICAgICBpZiAodGhpcy5oYXNPdmVyZmxvdykge1xuICAgICAgICAgICAgdGhpcy5tYW5hZ2VQcmV2TmV4dEJ1dHRvbnNDbGFzc09uSXRlbVNlbGVjdGVkKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZW5kTWVudUl0ZW1TZWxlY3RFdmVudChldnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFuYWdlUHJldk5leHRCdXR0b25zQ2xhc3NPbkl0ZW1TZWxlY3RlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTaG93TmV4dEJ0bikge1xuICAgICAgICAgICAgdGhpcy5pc1ByZXZCdG5DdXJyZW50Q2xhc3MgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc1ByZXZCdG5DdXJyZW50Q2xhc3MgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb290TWVudUl0ZW1Ib3ZlcmVkKGV2dDogRWNsTWVudUl0ZW1Ib3ZlckV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlblN1Ym1lbnUoZXZ0Lm1lbnVJdGVtKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUm9vdE1lbnVJdGVtRW50ZXIoaXRlbTogRWNsTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnVCdXRPbmVJdGVtKGl0ZW0pO1xuICAgICAgICAgICAgdGhpcy50b2dnbGVFeHBhbmRlZEZvck1lbnVJdGVtKGl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFpdGVtLmlzSG92ZXJlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlblN1Ym1lbnUoaXRlbSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VSb290TWVudSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuU3VibWVudShpdGVtOiBFY2xNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICBpZiAoaXRlbS5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc01vYmlsZUJyZWFrcG9pbnQgJiYgKGl0ZW0gYXMgRWNsTWVudUl0ZW1Db21wb25lbnQpLnN1Ym1lbnUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrTWVnYU1lbnUoaXRlbSBhcyBFY2xNZW51SXRlbUNvbXBvbmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpdGVtLmlzSG92ZXJlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnVCdXRPbmVJdGVtKGl0ZW0pO1xuICAgICAgICAgICAgdGhpcy5zaG93TWVudSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSb290TWVudUl0ZW1zQXJyYXkoKTogRWNsTWVudUl0ZW1Db21wb25lbnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVjbFJvb3RNZW51SXRlbXMudG9BcnJheSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tNZWdhTWVudShtZW51SXRlbTogRWNsTWVudUl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKG1lbnVJdGVtLmlzRnVsbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNSdGwpIHtcbiAgICAgICAgICAgICAgICBtZW51SXRlbS5zdWJtZW51Lm9mZnNldFJpZ2h0ID0gdGhpcy5vZmZzZXRMZWZ0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtZW51SXRlbS5zdWJtZW51Lm9mZnNldExlZnQgPSB0aGlzLm9mZnNldExlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGVja0Vub3VnaFNwYWNlRm9yTWVnYU1lbnUobWVudUl0ZW0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tFbm91Z2hTcGFjZUZvck1lZ2FNZW51KG1lbnVJdGVtOiBFY2xNZW51SXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBtZWdhQm91bmRpbmcgPSBtZW51SXRlbS5zdWJtZW51LmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckJvdW5kaW5nID0gdGhpcy5pbm5lclNlY3Rpb24ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgbWVudUl0ZW1Cb3VuZGluZyA9IG1lbnVJdGVtLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgY29uc3QgbWVnYVdpZHRoID0gbWVnYUJvdW5kaW5nLndpZHRoO1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IGNvbnRhaW5lckJvdW5kaW5nLndpZHRoO1xuICAgICAgICBjb25zdCBtZW51SXRlbVBvc2l0aW9uID0gbWVudUl0ZW1Cb3VuZGluZy5sZWZ0IC0gY29udGFpbmVyQm91bmRpbmcubGVmdDtcblxuICAgICAgICBpZiAobWVudUl0ZW1Qb3NpdGlvbiArIG1lZ2FXaWR0aCA+IGNvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgICAgICBtZW51SXRlbS5zdWJtZW51LmlzUnRsRGlzcGxheSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZW51SXRlbS5zdWJtZW51LmlzUnRsRGlzcGxheSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblJvb3RNZW51SXRlbUhvdmVyZWRPdXQoZXZ0OiBFY2xNZW51SXRlbUhvdmVyRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUm9vdE1lbnVJdGVtQ2FyZXQoZXZ0OiBFY2xNZW51SXRlbUNhcmV0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdGVkUm9vdE1lbnVJdGVtOiBFY2xNZW51SXRlbSA9IGV2dC5tZW51SXRlbTtcblxuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnVCdXRPbmVJdGVtKHJlcXVlc3RlZFJvb3RNZW51SXRlbSk7XG4gICAgICAgIHRoaXMudG9nZ2xlRXhwYW5kZWRGb3JNZW51SXRlbShyZXF1ZXN0ZWRSb290TWVudUl0ZW0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25NZW51TWVnYUl0ZW1TZWxlY3RlZChyb290TWVudUl0ZW06IEVjbE1lbnVJdGVtLCBldnQ6IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdGVkU3VibWVudUl0ZW0gPSBldnQubWVudUl0ZW07XG5cbiAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51KCk7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RBbGxSb290TWVudUl0ZW1zKCk7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RBbGxTdWJtZW51c0l0ZW1zKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0TWVudUl0ZW0ocm9vdE1lbnVJdGVtKTtcbiAgICAgICAgdGhpcy5zZWxlY3RNZW51SXRlbShyZXF1ZXN0ZWRTdWJtZW51SXRlbSk7XG4gICAgICAgIHRoaXMuY2xvc2VIYW1idXJnZXJNZW51KCk7XG4gICAgICAgIGlmICh0aGlzLmhhc092ZXJmbG93KSB7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZVByZXZOZXh0QnV0dG9uc0NsYXNzT25JdGVtU2VsZWN0ZWQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbmRNZW51SXRlbVNlbGVjdEV2ZW50KGV2dCk7XG5cbiAgICAgICAgdGhpcy5oaWRlTWVudSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzZWxlY3RBbGxSb290TWVudUl0ZW1zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc2VsZWN0TWVudUl0ZW1zKHRoaXMuZWNsUm9vdE1lbnVJdGVtcy50b0FycmF5KCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzZWxlY3RBbGxTdWJtZW51c0l0ZW1zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXMuZm9yRWFjaCgocm9vdEl0ZW0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVzZWxlY3RNZW51SXRlbXMocm9vdEl0ZW0uY2hpbGRyZW4pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc2VsZWN0TWVudUl0ZW1zKGl0ZW1zOiBBcnJheTxFY2xNZW51SXRlbT4pOiB2b2lkIHtcbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgICAgICAgIGl0LmlzQ3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdE1lbnVJdGVtKGl0ZW06IEVjbE1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIGl0ZW0uaXNDdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jdXJyZW50SXRlbSA9IGl0ZW07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoaWRlTWVudSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc01lbnVIaWRkZW4gPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd01lbnUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNNZW51SGlkZGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZVJvb3RNZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXMuZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgICAgICAgIGl0LmlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGl0LmlzSG92ZXJlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlUm9vdE1lbnVCdXRPbmVJdGVtKGl0ZW06IEVjbE1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtc1xuICAgICAgICAgICAgLmZpbHRlcigoaXQpID0+IGl0ICE9PSBpdGVtKVxuICAgICAgICAgICAgLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgICAgICAgICAgaXQuaXNFeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGl0LmlzSG92ZXJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVSdGxDaGFuZ2VTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xSdGxTZXJ2aWNlLmN1cnJlbnRSdGxTdGF0ZSQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocnRsU3RhdGUpID0+IHtcbiAgICAgICAgICAgIGlmIChydGxTdGF0ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuaXNSdGwgIT09IHJ0bFN0YXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1J0bCA9IHJ0bFN0YXRlO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc092ZXJmbG93KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVNZW51SW5pdGlhbFN0YXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja01lbnVPdmVyZmxvdygpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdG9nZ2xlRXhwYW5kZWRGb3JNZW51SXRlbShpdGVtOiBFY2xNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICBpdGVtLmlzRXhwYW5kZWQgPSAhaXRlbS5pc0V4cGFuZGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3BlbkhhbWJ1cmdlck1lbnUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNIYW1idXJnZXJNZW51T3BlbmVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlSGFtYnVyZ2VyTWVudSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0hhbWJ1cmdlck1lbnVPcGVuZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbmRNZW51SXRlbVNlbGVjdEV2ZW50KGV2dDogRWNsTWVudUl0ZW1TZWxlY3RFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVJdGVtU2VsZWN0Lm5leHQobmV3IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQoZXZ0Lm1lbnVJdGVtLCBldnQuZG9tRXZlbnQpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9ic2VydmVSb290TWVudUl0ZW1zQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWZmID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLmVjbFJvb3RNZW51SXRlbXMpO1xuICAgICAgICB0aGlzLmNyZWF0ZVJvb3RNZW51SXRlbXNDaGFuZ2VzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUodGhpcy5vbk1lbnVJdGVtQ2hhbmdlcy5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9ic2VydmVTd2lwZUdlc3R1cmVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhhbW1lcnRpbWUub24oJ3N3aXBlbGVmdCcsIHRoaXMub25Td2lwZUxlZnQuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMuaGFtbWVydGltZS5vbignc3dpcGVyaWdodCcsIHRoaXMub25Td2lwZVJpZ2h0LmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb2JzZXJ2ZUJyZWFrcG9pbnRDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNka0JyZWFrcG9pbnRPYnNlcnZlclxuICAgICAgICAgICAgLm9ic2VydmUoW0JyZWFrcG9pbnRzLkhhbmRzZXQsIEJyZWFrcG9pbnRzLlRhYmxldCwgQnJlYWtwb2ludHMuU21hbGxdKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc01vYmlsZUJyZWFrcG9pbnQgPSByZXN1bHQubWF0Y2hlcztcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJlY2wtbWVudV9fb3ZlcmxheVwiIChjbGljayk9XCJvbk92ZXJsYXlDbGljaygpXCI+PC9kaXY+XG48ZGl2IGNsYXNzPVwiZWNsLWNvbnRhaW5lciBlY2wtbWVudV9fY29udGFpbmVyXCI+XG4gICAgPGEgZWNsTGluayBocmVmPVwiI1wiIHZhcmlhbnQ9XCJzdGFuZGFsb25lXCIgY2xhc3M9XCJlY2wtbWVudV9fb3BlblwiIChjbGljayk9XCJvbk1lbnVPcGVuQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICA8ZWNsLWljb24gaWNvbj1cImhhbWJ1cmdlclwiIHNpemU9XCJzXCI+PC9lY2wtaWNvbj4ge3sgJ2VjbC5tZW51Lk1FTlUnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9hPlxuXG4gICAgPHNlY3Rpb25cbiAgICAgICAgY2xhc3M9XCJlY2wtbWVudV9faW5uZXJcIlxuICAgICAgICAjaW5uZXJTZWN0aW9uXG4gICAgICAgIFtjbGFzcy5lY2wtbWVudV9faW5uZXItLWV4cGFuZGVkXT1cImlzTWVudUV4cGFuZGVkSW5Nb2JpbGVcIlxuICAgICAgICBbY2xhc3MuZWNsLW1lbnVfX2lubmVyLS1oYXMtb3ZlcmZsb3ddPVwiaGFzT3ZlcmZsb3dcIj5cbiAgICAgICAgPGhlYWRlciBjbGFzcz1cImVjbC1tZW51X19pbm5lci1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBlY2xCdXR0b25cbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWNsLW1lbnVfX2Nsb3NlXCJcbiAgICAgICAgICAgICAgICBjb250YWluZXJTdHlsZUNsYXNzPVwiZWNsLW1lbnVfX2Nsb3NlLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTWVudUNsb3NlQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDxlY2wtaWNvbiBpY29uPVwiY2xvc2UtZmlsbGVkXCIgc2l6ZT1cInNcIj48L2VjbC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGVjbEJ1dHRvbkxhYmVsPnt7ICdlY2wuY29tbW9uLkNMT1NFJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWNsLW1lbnVfX3RpdGxlXCI+e3sgJ2VjbC5tZW51Lk1FTlUnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG5cbiAgICAgICAgICAgIDxidXR0b24gZWNsQnV0dG9uIHZhcmlhbnQ9XCJnaG9zdFwiIGNsYXNzPVwiZWNsLW1lbnVfX2JhY2tcIiAoY2xpY2spPVwib25NZW51QmFja0NsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJzXCIgdHJhbnNmb3JtPVwicm90YXRlLTI3MFwiPjwvZWNsLWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gZWNsQnV0dG9uTGFiZWw+e3sgJ2VjbC5jb21tb24uQkFDSycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGVjbEJ1dHRvblxuICAgICAgICAgICAgI2J0blByZXZpb3VzXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICBjbGFzcz1cImVjbC1tZW51X19pdGVtIGVjbC1tZW51X19pdGVtcy1wcmV2aW91c1wiXG4gICAgICAgICAgICBbY2xhc3MuZWNsLW1lbnVfX2l0ZW0tLWN1cnJlbnRdPVwiaXNQcmV2QnRuQ3VycmVudENsYXNzXCJcbiAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzU2hvd1ByZXZCdG4gPyAnYmxvY2snIDogJ25vbmUnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblByZXZCdG5DbGljaygpXCI+XG4gICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJzXCIgdHJhbnNmb3JtPVwicm90YXRlLTI3MFwiPjwvZWNsLWljb24+XG4gICAgICAgICAgICA8c3BhbiBlY2xCdXR0b25MYWJlbCBjbGFzcz1cImVjbC11LXNyLW9ubHlcIj57eyAnZWNsLmNvbW1vbi5QUkVWSU9VUycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBlY2xCdXR0b25cbiAgICAgICAgICAgICNidG5OZXh0XG4gICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICBjbGFzcz1cImVjbC1tZW51X19pdGVtIGVjbC1tZW51X19pdGVtcy1uZXh0XCJcbiAgICAgICAgICAgIFtjbGFzcy5lY2wtbWVudV9faXRlbS0tY3VycmVudF09XCIhaXNQcmV2QnRuQ3VycmVudENsYXNzXCJcbiAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzU2hvd05leHRCdG4gPyAnYmxvY2snIDogJ25vbmUnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbk5leHRCdG5DbGljaygpXCI+XG4gICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJzXCIgdHJhbnNmb3JtPVwicm90YXRlLTkwXCI+PC9lY2wtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGVjbEJ1dHRvbkxhYmVsIGNsYXNzPVwiZWNsLXUtc3Itb25seVwiPnt7ICdlY2wuY29tbW9uLk5FWFQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPHVsIGNsYXNzPVwiZWNsLW1lbnVfX2xpc3RcIiAjaXRlbXNMaXN0IFtzdHlsZS5yaWdodF09XCJtZW51TGlzdFN0eWxlUmlnaHRcIiBbc3R5bGUubGVmdF09XCJtZW51TGlzdFN0eWxlTGVmdFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L3VsPlxuICAgIDwvc2VjdGlvbj5cbjwvZGl2PlxuIl19
589
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC1tZW51L2VjbC1tZW51L2VjbC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS9lY2wtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFzQixXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBR0gsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBTUwsTUFBTSxFQUdOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUM5QixPQUFPLEVBQWMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTVELE9BQU8sRUFBeUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5SSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQWN6QyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZ0JBQWdCO0lBWWxELElBQ0ksVUFBVTtRQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixJQUFJLENB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QTVCLFNBQVM7dUJBQUMsU0FBUztnQkFFVixjQUFjO3NCQUF2QixNQUFNO2dCQUdILFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPO2dCQUtlLHFCQUFxQjtzQkFBdkQsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBQ1AsSUFBSTtzQkFBN0IsV0FBVzt1QkFBQyxXQUFXO2dCQUNzQixrQkFBa0I7c0JBQS9ELFdBQVc7dUJBQUMsK0JBQStCO2dCQUNDLFlBQVk7c0JBQXhELFdBQVc7dUJBQUMsOEJBQThCO2dCQWlDM0MsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFVbkMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBJdGVyYWJsZUNoYW5nZXMsXG4gICAgSXRlcmFibGVEaWZmZXIsXG4gICAgSXRlcmFibGVEaWZmZXJzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZU51bWJlciB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgSGFtbWVyIGZyb20gJ2hhbW1lcmpzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtZXJnZVdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZWNsLW1lbnUtaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VjbC1idXR0b24nO1xuaW1wb3J0IHsgRWNsTWVudUl0ZW1DYXJldEV2ZW50LCBFY2xNZW51SXRlbUhvdmVyRXZlbnQsIEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50LCBFY2xNZW51SXRlbVNlbGVjdEV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL2VjbC1tZW51LWl0ZW0uZXZlbnQnO1xuaW1wb3J0IHsgRWNsTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2VjbC1tZW51LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEtleUNvZGUgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBFY2xSdGxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWNsTWVudUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgZ3JvdXAgPSAnMSc7XG4gICAgQGNvZXJjZU51bWJlciBASW5wdXQoKSBtYXhMaW5lcyA9IDA7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKEVjbE1lbnVJdGVtQ29tcG9uZW50KSBlY2xSb290TWVudUl0ZW1zOiBRdWVyeUxpc3Q8RWNsTWVudUl0ZW1Db21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2lubmVyU2VjdGlvbicpIGlubmVyU2VjdGlvbjogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdpdGVtc0xpc3QnKSBpdGVtc0xpc3Q6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnYnRuUHJldmlvdXMnKSBidG5QcmV2aW91czogRWNsQnV0dG9uQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ2J0bk5leHQnKSBidG5OZXh0OiBFY2xCdXR0b25Db21wb25lbnQ7XG5cbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQ+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW3N1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1tZW51JyksICdlY2wtbWVudS0tdHJhbnNpdGlvbicsIGBlY2wtbWVudS0tZ3JvdXAke3RoaXMuZ3JvdXB9YF0uam9pbignICcpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWV4cGFuZGVkJykgaXNIYW1idXJnZXJNZW51T3BlbmVkID0gZmFsc2U7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ25hdmlnYXRpb24nO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnUtLWZvcmNlZC1tb2JpbGUnKSBpc01vYmlsZUJyZWFrcG9pbnQgPSBmYWxzZTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmVjbC1tZW51LS1mb3JjZWQtY2xvc2UnKSBpc01lbnVIaWRkZW4gPSBmYWxzZTtcblxuICAgIGhhc092ZXJmbG93ID0gZmFsc2U7XG4gICAgaXNTaG93UHJldkJ0biA9IGZhbHNlO1xuICAgIGlzU2hvd05leHRCdG4gPSBmYWxzZTtcbiAgICBpc1ByZXZCdG5DdXJyZW50Q2xhc3MgPSBmYWxzZTtcbiAgICBtZW51TGlzdFN0eWxlUmlnaHQgPSAnYXV0byc7XG4gICAgbWVudUxpc3RTdHlsZUxlZnQgPSAnYXV0byc7XG5cbiAgICBwcml2YXRlIGN1cnJlbnRJdGVtOiBFY2xNZW51SXRlbTtcbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIGRpZmZlcjogSXRlcmFibGVEaWZmZXI8RWNsTWVudUl0ZW1Db21wb25lbnQ+O1xuICAgIHByaXZhdGUgZGlmZjogSXRlcmFibGVDaGFuZ2VzPEVjbE1lbnVJdGVtQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIGlzUnRsID0gZmFsc2U7XG4gICAgcHJpdmF0ZSB0b3RhbEl0ZW1zV2lkdGggPSAwO1xuICAgIHByaXZhdGUgb2Zmc2V0TGVmdCA9IDA7XG4gICAgcHJpdmF0ZSBsYXN0VmlzaWJsZUl0ZW06IEVjbE1lbnVJdGVtQ29tcG9uZW50O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFtbWVydGltZSA9IG5ldyBIYW1tZXIoZG9jdW1lbnQsIHsgaW5wdXRDbGFzczogSGFtbWVyLlRvdWNoSW5wdXQgfSk7XG4gICAgcHJpdmF0ZSByZXNpemVUaW1lcjogbnVtYmVyO1xuICAgIHByaXZhdGUgVElNRU9VVF9JTlRFUlZBTCA9IDE1MDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICAgICAgcHJpdmF0ZSBjZGtCcmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGVjbFJ0bFNlcnZpY2U6IEVjbFJ0bFNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZGlmZmVyID0gdGhpcy5kaWZmZXJzLmZpbmQoW10pLmNyZWF0ZSgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGtleUV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgICAgIHRoaXMuaGlkZU1lbnUoKTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VIYW1idXJnZXJNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgICBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplVGltZXIpO1xuICAgICAgICB0aGlzLnJlc2l6ZVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2VjbC1tZW51LS10cmFuc2l0aW9uJyk7XG4gICAgICAgICAgICB0aGlzLnRvdGFsSXRlbXNXaWR0aCA9IDA7XG4gICAgICAgICAgICB0aGlzLmNoZWNrTWVudUl0ZW1zV2lkdGgoKTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tNZW51T3ZlcmZsb3coKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZWNsLW1lbnUtLXRyYW5zaXRpb24nKTtcbiAgICAgICAgfSwgdGhpcy5USU1FT1VUX0lOVEVSVkFMKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oYW5kbGVSdGxDaGFuZ2VTdGF0ZSgpO1xuICAgICAgICB0aGlzLm9ic2VydmVCcmVha3BvaW50Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLm9ic2VydmVTd2lwZUdlc3R1cmVzKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9ic2VydmVSb290TWVudUl0ZW1zQ2hhbmdlcygpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplVGltZXIpO1xuICAgICAgICB0aGlzLnJlc2l6ZVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrTWVudUl0ZW1zV2lkdGgoKTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tNZW51T3ZlcmZsb3coKTtcbiAgICAgICAgfSwgdGhpcy5USU1FT1VUX0lOVEVSVkFMKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgdGhpcy5oYW1tZXJ0aW1lLm9mZignc3dpcGVsZWZ0Jyk7XG4gICAgICAgIHRoaXMuaGFtbWVydGltZS5vZmYoJ3N3aXBlcmlnaHQnKTtcbiAgICB9XG5cbiAgICBvblN3aXBlTGVmdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5IYW1idXJnZXJNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblN3aXBlUmlnaHQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZUhhbWJ1cmdlck1lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uT3ZlcmxheUNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuICAgIH1cblxuICAgIG9uTWVudU9wZW5DbGljayhldnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuSGFtYnVyZ2VyTWVudSgpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbk1lbnVDbG9zZUNsaWNrKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25NZW51QmFja0NsaWNrKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25QcmV2QnRuQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2xpZGVNZW51SW5pdGlhbFN0YXRlKCk7XG4gICAgICAgIHRoaXMucmVmcmVzaERpc3BsYXkoKTtcbiAgICB9XG5cbiAgICBvbk5leHRCdG5DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1Nob3dQcmV2QnRuID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc1Nob3dOZXh0QnRuID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNSdGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd05leHRTbGlkZVJ0bCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zaG93TmV4dFNsaWRlTHRyKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlZnJlc2hEaXNwbGF5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzbGlkZU1lbnVJbml0aWFsU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2Zmc2V0TGVmdCA9IDA7XG4gICAgICAgIGlmICh0aGlzLmlzUnRsKSB7XG4gICAgICAgICAgICB0aGlzLm1lbnVMaXN0U3R5bGVSaWdodCA9ICcwcHgnO1xuICAgICAgICAgICAgdGhpcy5tZW51TGlzdFN0eWxlTGVmdCA9ICdhdXRvJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubWVudUxpc3RTdHlsZUxlZnQgPSAnMHB4JztcbiAgICAgICAgICAgIHRoaXMubWVudUxpc3RTdHlsZVJpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc1Nob3dQcmV2QnRuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNTaG93TmV4dEJ0biA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93TmV4dFNsaWRlTHRyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBidG5PZmZzZXRXaWR0aCA9IHRoaXMuYnRuTmV4dC5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICB0aGlzLm9mZnNldExlZnQgPVxuICAgICAgICAgICAgdGhpcy5sYXN0VmlzaWJsZUl0ZW0uZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC1cbiAgICAgICAgICAgIHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCAtXG4gICAgICAgICAgICBidG5PZmZzZXRXaWR0aDtcblxuICAgICAgICB0aGlzLm1lbnVMaXN0U3R5bGVMZWZ0ID0gYC0ke3RoaXMub2Zmc2V0TGVmdH1weGA7XG4gICAgICAgIHRoaXMubWVudUxpc3RTdHlsZVJpZ2h0ID0gJ2F1dG8nO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd05leHRTbGlkZVJ0bCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYnRuT2Zmc2V0V2lkdGggPSB0aGlzLmJ0bk5leHQuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgdGhpcy5vZmZzZXRMZWZ0ID1cbiAgICAgICAgICAgIHRoaXMuaXRlbXNMaXN0Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQgLVxuICAgICAgICAgICAgdGhpcy5sYXN0VmlzaWJsZUl0ZW0uZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCAtXG4gICAgICAgICAgICBidG5PZmZzZXRXaWR0aDtcblxuICAgICAgICB0aGlzLm1lbnVMaXN0U3R5bGVSaWdodCA9IGAtJHt0aGlzLm9mZnNldExlZnR9cHhgO1xuICAgICAgICB0aGlzLm1lbnVMaXN0U3R5bGVMZWZ0ID0gJ2F1dG8nO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVmcmVzaERpc3BsYXkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmNoZWNrTWVudUl0ZW0odGhpcy5tYXhMaW5lcywgdGhpcy5pc01vYmlsZUJyZWFrcG9pbnQpO1xuICAgICAgICAgICAgaXRlbS5pc1Zpc2libGUgPSAhaXRlbS5pc1Zpc2libGU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tNZW51T3ZlcmZsb3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzT3ZlcmZsb3cgPSB0aGlzLnRvdGFsSXRlbXNXaWR0aCA+IHRoaXMuaW5uZXJTZWN0aW9uLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIGlmICghdGhpcy5oYXNPdmVyZmxvdyB8fCB0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy5yZXNldE92ZXJmbG93VmFsdWVzKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldENsYXNzRm9yUHJldk5leHRCdXR0b25zKCk7XG4gICAgICAgIHRoaXMucmVzZXRWaXNpYmlsaXR5SW5kaWNhdG9yKCk7XG5cbiAgICAgICAgaWYgKHRoaXMub2Zmc2V0TGVmdCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5tYW5hZ2VPdmVyZmxvd0VuZCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tYW5hZ2VPdmVyZmxvd0JlZ2lubmluZygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYW5hZ2VPdmVyZmxvd0JlZ2lubmluZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNSdGwpIHtcbiAgICAgICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIChpdGVtKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IDw9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlubmVyU2VjdGlvbi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0LFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZWwpID0+IChlbC5pc1Zpc2libGUgPSB0cnVlKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAoaXRlbSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ID49IHRoaXMuaW5uZXJTZWN0aW9uLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmZvckVhY2goKGVsKSA9PiAoZWwuaXNWaXNpYmxlID0gdHJ1ZSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYW5hZ2VPdmVyZmxvd0VuZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1Nob3dOZXh0QnRuID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuaXNSdGwpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLmVjbFJvb3RNZW51SXRlbXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgPCB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0VmlzaWJsZUl0ZW0gPSBpdGVtO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaXRlbS5pc1Zpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuZWNsUm9vdE1lbnVJdGVtcykge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQgPiB0aGlzLml0ZW1zTGlzdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFzdFZpc2libGVJdGVtID0gaXRlbTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGl0ZW0uaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRWaXNpYmlsaXR5SW5kaWNhdG9yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gKGl0ZW0uaXNWaXNpYmxlID0gZmFsc2UpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0T3ZlcmZsb3dWYWx1ZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTaG93UHJldkJ0biA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzU2hvd05leHRCdG4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5oYXNPdmVyZmxvdyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1lbnVMaXN0U3R5bGVMZWZ0ID0gJzBweCc7XG4gICAgICAgIHRoaXMub2Zmc2V0TGVmdCA9IDA7XG4gICAgICAgIHRoaXMudG90YWxJdGVtc1dpZHRoID0gMDtcbiAgICAgICAgdGhpcy5sYXN0VmlzaWJsZUl0ZW0gPSBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q2xhc3NGb3JQcmV2TmV4dEJ1dHRvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW0gPSB0aGlzLmVjbFJvb3RNZW51SXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS5pc0N1cnJlbnQpO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50SXRlbSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEl0ZW0uaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1ByZXZCdG5DdXJyZW50Q2xhc3MgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzUHJldkJ0bkN1cnJlbnRDbGFzcyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja01lbnVJdGVtc1dpZHRoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaXRlbS5jaGVja01lbnVJdGVtKHRoaXMubWF4TGluZXMsIHRoaXMuaXNNb2JpbGVCcmVha3BvaW50KTtcbiAgICAgICAgICAgIHRoaXMudG90YWxJdGVtc1dpZHRoICs9IGl0ZW0uZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc01lbnVFeHBhbmRlZEluTW9iaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vYmlsZUJyZWFrcG9pbnQgJiYgdGhpcy5pc0FueVJvb3RNZW51SXRlbUV4cGFuZGVkKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0FueVJvb3RNZW51SXRlbUV4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lY2xSb290TWVudUl0ZW1zLnNvbWUoKGl0ZW0pID0+IGl0ZW0uaXNFeHBhbmRlZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVSb290TWVudUl0ZW1zQ2hhbmdlc09ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxRdWVyeUxpc3Q8RWNsTWVudUl0ZW1Db21wb25lbnQ+PiB7XG4gICAgICAgIHJldHVybiBvZih0aGlzLmVjbFJvb3RNZW51SXRlbXMpLnBpcGUobWVyZ2VXaXRoKHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5jaGFuZ2VzKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTWVudUl0ZW1DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpZmYgPSB0aGlzLmRpZmZlci5kaWZmKHRoaXMuZWNsUm9vdE1lbnVJdGVtcyk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmRpZmYpIHtcbiAgICAgICAgICAgIHRoaXMuZWNsUm9vdE1lbnVJdGVtcy5mb3JFYWNoKChyb290SXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdE1lbnVJdGVtRXZlbnRzKHJvb3RJdGVtKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kaWZmLmZvckVhY2hBZGRlZEl0ZW0oKGNoYW5nZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdE1lbnVJdGVtRXZlbnRzKGNoYW5nZS5pdGVtKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb25uZWN0TWVudUl0ZW1FdmVudHMoaXRlbTogRWNsTWVudUl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaXRlbS5tZW51SXRlbVNlbGVjdC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Sb290TWVudUl0ZW1TZWxlY3RlZChldnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgaXRlbS5tZW51SXRlbUhvdmVyLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblJvb3RNZW51SXRlbUhvdmVyZWQoZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0ZW0ubWVudUl0ZW1Ib3Zlck91dC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25Sb290TWVudUl0ZW1Ib3ZlcmVkT3V0KGV2dCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdGVtLm1lbnVJdGVtQ2FyZXQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uUm9vdE1lbnVJdGVtQ2FyZXQoZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0ZW0ubWVudU1lZ2FJdGVtU2VsZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbk1lbnVNZWdhSXRlbVNlbGVjdGVkKGl0ZW0sIGV2dCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdGVtLm1lbnVJdGVtRm9jdXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uUm9vdE1lbnVJdGVtRm9jdXNlZChpdGVtKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0ZW0ubWVudUl0ZW1LZXlkb3duLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblJvb3RNZW51SXRlbUtleWRvd24oaXRlbSwgZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblJvb3RNZW51SXRlbUZvY3VzZWQoaXRlbTogRWNsTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbmRJbmRleEluQXJyYXkoaXRlbSk7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZUJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VSb290TWVudSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzTW92ZVByZXZPdmVyZmxvdyhpbmRleCkpe1xuICAgICAgICAgICAgdGhpcy5vblByZXZCdG5DbGljaygpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNNb3ZlTmV4dE92ZXJmbG93KGluZGV4KSl7XG4gICAgICAgICAgICB0aGlzLm9uTmV4dEJ0bkNsaWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUm9vdE1lbnVJdGVtS2V5ZG93bihpdGVtOiBFY2xNZW51SXRlbSwgZXZ0OiBFY2xNZW51SXRlbUtleWRvd25FdmVudCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKGV2dC5kb21FdmVudC5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5BUlJPV19ET1dOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblJvb3RNZW51SXRlbUVudGVyKGl0ZW0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkFSUk9XX1JJR0hUOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbk5leHRNZW51SXRlbUZvY3VzKGl0ZW0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkFSUk9XX1VQOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblByZXZNZW51SXRlbUZvY3VzKGl0ZW0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkFSUk9XX0xFRlQ6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uUHJldk1lbnVJdGVtRm9jdXMoaXRlbSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuRU5URVI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uUm9vdE1lbnVJdGVtRW50ZXIoaXRlbSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuRVNDQVBFOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblJvb3RNZW51SXRlbUVzY2FwZShpdGVtLCBldnQuZG9tRXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblJvb3RNZW51SXRlbUVzY2FwZShpdGVtOiBFY2xNZW51SXRlbSwgZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoaXRlbS5pc0hvdmVyZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VSb290TWVudSgpO1xuICAgICAgICB9XG4gICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUHJldk1lbnVJdGVtRm9jdXMoaXRlbTogRWNsTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbmRJbmRleEluQXJyYXkoaXRlbSk7XG4gICAgICAgIGlmIChpbmRleCAhPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5nZXRSb290TWVudUl0ZW1zQXJyYXkoKVtpbmRleCAtIDFdLm9uRm9jdXNGcm9tTmV4dCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk5leHRNZW51SXRlbUZvY3VzKGl0ZW06IEVjbE1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5maW5kSW5kZXhJbkFycmF5KGl0ZW0pO1xuICAgICAgICBpZiAoaW5kZXggIT09IHRoaXMuZ2V0Um9vdE1lbnVJdGVtc0FycmF5KCkubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgdGhpcy5nZXRSb290TWVudUl0ZW1zQXJyYXkoKVtpbmRleCArIDFdLm9uRm9jdXNGcm9tUHJldigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kSW5kZXhJbkFycmF5KGl0ZW06IEVjbE1lbnVJdGVtKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Um9vdE1lbnVJdGVtc0FycmF5KCkuZmluZEluZGV4KGVsID0+IGl0ZW0gPT09IGVsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTW92ZU5leHRPdmVyZmxvdyhpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5nZXRSb290TWVudUl0ZW1zQXJyYXkoKVtpbmRleF0uaXNWaXNpYmxlICYmIHRoaXMuaXNTaG93TmV4dEJ0bjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTW92ZVByZXZPdmVyZmxvdyhpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5nZXRSb290TWVudUl0ZW1zQXJyYXkoKVtpbmRleF0uaXNWaXNpYmxlICYmIHRoaXMuaXNTaG93UHJldkJ0bjtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUm9vdE1lbnVJdGVtU2VsZWN0ZWQoZXZ0OiBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RlZFJvb3RNZW51SXRlbTogRWNsTWVudUl0ZW0gPSBldnQubWVudUl0ZW07XG5cbiAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51KCk7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RBbGxSb290TWVudUl0ZW1zKCk7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RBbGxTdWJtZW51c0l0ZW1zKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0TWVudUl0ZW0ocmVxdWVzdGVkUm9vdE1lbnVJdGVtKTtcbiAgICAgICAgdGhpcy5jbG9zZUhhbWJ1cmdlck1lbnUoKTtcbiAgICAgICAgaWYgKHRoaXMuaGFzT3ZlcmZsb3cpIHtcbiAgICAgICAgICAgIHRoaXMubWFuYWdlUHJldk5leHRCdXR0b25zQ2xhc3NPbkl0ZW1TZWxlY3RlZCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VuZE1lbnVJdGVtU2VsZWN0RXZlbnQoZXZ0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hbmFnZVByZXZOZXh0QnV0dG9uc0NsYXNzT25JdGVtU2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzU2hvd05leHRCdG4pIHtcbiAgICAgICAgICAgIHRoaXMuaXNQcmV2QnRuQ3VycmVudENsYXNzID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNQcmV2QnRuQ3VycmVudENsYXNzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUm9vdE1lbnVJdGVtSG92ZXJlZChldnQ6IEVjbE1lbnVJdGVtSG92ZXJFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5TdWJtZW51KGV2dC5tZW51SXRlbSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblJvb3RNZW51SXRlbUVudGVyKGl0ZW06IEVjbE1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51QnV0T25lSXRlbShpdGVtKTtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlRXhwYW5kZWRGb3JNZW51SXRlbShpdGVtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghaXRlbS5pc0hvdmVyZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5TdWJtZW51KGl0ZW0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlUm9vdE1lbnUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb3BlblN1Ym1lbnUoaXRlbTogRWNsTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaWYgKGl0ZW0uaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGVCcmVha3BvaW50ICYmIChpdGVtIGFzIEVjbE1lbnVJdGVtQ29tcG9uZW50KS5zdWJtZW51KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja01lZ2FNZW51KGl0ZW0gYXMgRWNsTWVudUl0ZW1Db21wb25lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaXRlbS5pc0hvdmVyZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51QnV0T25lSXRlbShpdGVtKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd01lbnUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Um9vdE1lbnVJdGVtc0FycmF5KCk6IEVjbE1lbnVJdGVtQ29tcG9uZW50W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5lY2xSb290TWVudUl0ZW1zLnRvQXJyYXkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrTWVnYU1lbnUobWVudUl0ZW06IEVjbE1lbnVJdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChtZW51SXRlbS5pc0Z1bGwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzUnRsKSB7XG4gICAgICAgICAgICAgICAgbWVudUl0ZW0uc3VibWVudS5vZmZzZXRSaWdodCA9IHRoaXMub2Zmc2V0TGVmdDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbWVudUl0ZW0uc3VibWVudS5vZmZzZXRMZWZ0ID0gdGhpcy5vZmZzZXRMZWZ0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2hlY2tFbm91Z2hTcGFjZUZvck1lZ2FNZW51KG1lbnVJdGVtKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrRW5vdWdoU3BhY2VGb3JNZWdhTWVudShtZW51SXRlbTogRWNsTWVudUl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbWVnYUJvdW5kaW5nID0gbWVudUl0ZW0uc3VibWVudS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBjb250YWluZXJCb3VuZGluZyA9IHRoaXMuaW5uZXJTZWN0aW9uLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IG1lbnVJdGVtQm91bmRpbmcgPSBtZW51SXRlbS5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIGNvbnN0IG1lZ2FXaWR0aCA9IG1lZ2FCb3VuZGluZy53aWR0aDtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSBjb250YWluZXJCb3VuZGluZy53aWR0aDtcbiAgICAgICAgY29uc3QgbWVudUl0ZW1Qb3NpdGlvbiA9IG1lbnVJdGVtQm91bmRpbmcubGVmdCAtIGNvbnRhaW5lckJvdW5kaW5nLmxlZnQ7XG5cbiAgICAgICAgaWYgKG1lbnVJdGVtUG9zaXRpb24gKyBtZWdhV2lkdGggPiBjb250YWluZXJXaWR0aCkge1xuICAgICAgICAgICAgbWVudUl0ZW0uc3VibWVudS5pc1J0bERpc3BsYXkgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWVudUl0ZW0uc3VibWVudS5pc1J0bERpc3BsYXkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25Sb290TWVudUl0ZW1Ib3ZlcmVkT3V0KGV2dDogRWNsTWVudUl0ZW1Ib3ZlckV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc01vYmlsZUJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VSb290TWVudSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblJvb3RNZW51SXRlbUNhcmV0KGV2dDogRWNsTWVudUl0ZW1DYXJldEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RlZFJvb3RNZW51SXRlbTogRWNsTWVudUl0ZW0gPSBldnQubWVudUl0ZW07XG5cbiAgICAgICAgdGhpcy5jbG9zZVJvb3RNZW51QnV0T25lSXRlbShyZXF1ZXN0ZWRSb290TWVudUl0ZW0pO1xuICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkRm9yTWVudUl0ZW0ocmVxdWVzdGVkUm9vdE1lbnVJdGVtKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTWVudU1lZ2FJdGVtU2VsZWN0ZWQocm9vdE1lbnVJdGVtOiBFY2xNZW51SXRlbSwgZXZ0OiBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RlZFN1Ym1lbnVJdGVtID0gZXZ0Lm1lbnVJdGVtO1xuXG4gICAgICAgIHRoaXMuY2xvc2VSb290TWVudSgpO1xuICAgICAgICB0aGlzLmRlc2VsZWN0QWxsUm9vdE1lbnVJdGVtcygpO1xuICAgICAgICB0aGlzLmRlc2VsZWN0QWxsU3VibWVudXNJdGVtcygpO1xuICAgICAgICB0aGlzLnNlbGVjdE1lbnVJdGVtKHJvb3RNZW51SXRlbSk7XG4gICAgICAgIHRoaXMuc2VsZWN0TWVudUl0ZW0ocmVxdWVzdGVkU3VibWVudUl0ZW0pO1xuICAgICAgICB0aGlzLmNsb3NlSGFtYnVyZ2VyTWVudSgpO1xuICAgICAgICBpZiAodGhpcy5oYXNPdmVyZmxvdykge1xuICAgICAgICAgICAgdGhpcy5tYW5hZ2VQcmV2TmV4dEJ1dHRvbnNDbGFzc09uSXRlbVNlbGVjdGVkKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZW5kTWVudUl0ZW1TZWxlY3RFdmVudChldnQpO1xuXG4gICAgICAgIHRoaXMuaGlkZU1lbnUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc2VsZWN0QWxsUm9vdE1lbnVJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXNlbGVjdE1lbnVJdGVtcyh0aGlzLmVjbFJvb3RNZW51SXRlbXMudG9BcnJheSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc2VsZWN0QWxsU3VibWVudXNJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zLmZvckVhY2goKHJvb3RJdGVtKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRlc2VsZWN0TWVudUl0ZW1zKHJvb3RJdGVtLmNoaWxkcmVuKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXNlbGVjdE1lbnVJdGVtcyhpdGVtczogQXJyYXk8RWNsTWVudUl0ZW0+KTogdm9pZCB7XG4gICAgICAgIGl0ZW1zLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgICAgICBpdC5pc0N1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3RNZW51SXRlbShpdGVtOiBFY2xNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICBpdGVtLmlzQ3VycmVudCA9IHRydWU7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW0gPSBpdGVtO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGlkZU1lbnUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNNZW51SGlkZGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3dNZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzTWVudUhpZGRlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2VSb290TWVudSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xSb290TWVudUl0ZW1zLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgICAgICBpdC5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgICAgICBpdC5pc0hvdmVyZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZVJvb3RNZW51QnV0T25lSXRlbShpdGVtOiBFY2xNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjbFJvb3RNZW51SXRlbXNcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0KSA9PiBpdCAhPT0gaXRlbSlcbiAgICAgICAgICAgIC5mb3JFYWNoKChpdCkgPT4ge1xuICAgICAgICAgICAgICAgIGl0LmlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpdC5pc0hvdmVyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlUnRsQ2hhbmdlU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNsUnRsU2VydmljZS5jdXJyZW50UnRsU3RhdGUkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJ0bFN0YXRlKSA9PiB7XG4gICAgICAgICAgICBpZiAocnRsU3RhdGUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmlzUnRsICE9PSBydGxTdGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNSdGwgPSBydGxTdGF0ZTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNPdmVyZmxvdykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNsaWRlTWVudUluaXRpYWxTdGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2hlY2tNZW51T3ZlcmZsb3coKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRvZ2dsZUV4cGFuZGVkRm9yTWVudUl0ZW0oaXRlbTogRWNsTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaXRlbS5pc0V4cGFuZGVkID0gIWl0ZW0uaXNFeHBhbmRlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9wZW5IYW1idXJnZXJNZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzSGFtYnVyZ2VyTWVudU9wZW5lZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZUhhbWJ1cmdlck1lbnUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNIYW1idXJnZXJNZW51T3BlbmVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZW5kTWVudUl0ZW1TZWxlY3RFdmVudChldnQ6IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbVNlbGVjdC5uZXh0KG5ldyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KGV2dC5tZW51SXRlbSwgZXZ0LmRvbUV2ZW50KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlUm9vdE1lbnVJdGVtc0NoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlmZiA9IHRoaXMuZGlmZmVyLmRpZmYodGhpcy5lY2xSb290TWVudUl0ZW1zKTtcbiAgICAgICAgdGhpcy5jcmVhdGVSb290TWVudUl0ZW1zQ2hhbmdlc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHRoaXMub25NZW51SXRlbUNoYW5nZXMuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlU3dpcGVHZXN0dXJlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oYW1tZXJ0aW1lLm9uKCdzd2lwZWxlZnQnLCB0aGlzLm9uU3dpcGVMZWZ0LmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLmhhbW1lcnRpbWUub24oJ3N3aXBlcmlnaHQnLCB0aGlzLm9uU3dpcGVSaWdodC5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9ic2VydmVCcmVha3BvaW50Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZGtCcmVha3BvaW50T2JzZXJ2ZXJcbiAgICAgICAgICAgIC5vYnNlcnZlKFtCcmVha3BvaW50cy5IYW5kc2V0LCBCcmVha3BvaW50cy5UYWJsZXQsIEJyZWFrcG9pbnRzLlNtYWxsXSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNNb2JpbGVCcmVha3BvaW50ID0gcmVzdWx0Lm1hdGNoZXM7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZWNsLW1lbnVfX292ZXJsYXlcIiAoY2xpY2spPVwib25PdmVybGF5Q2xpY2soKVwiPjwvZGl2PlxuPGRpdiBjbGFzcz1cImVjbC1jb250YWluZXIgZWNsLW1lbnVfX2NvbnRhaW5lclwiPlxuICAgIDxhIGVjbExpbmsgaHJlZj1cIiNcIiB2YXJpYW50PVwic3RhbmRhbG9uZVwiIGNsYXNzPVwiZWNsLW1lbnVfX29wZW5cIiAoY2xpY2spPVwib25NZW51T3BlbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgPGVjbC1pY29uIGljb249XCJoYW1idXJnZXJcIiBzaXplPVwic1wiPjwvZWNsLWljb24+IHt7ICdlY2wubWVudS5NRU5VJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYT5cblxuICAgIDxzZWN0aW9uXG4gICAgICAgIGNsYXNzPVwiZWNsLW1lbnVfX2lubmVyXCJcbiAgICAgICAgI2lubmVyU2VjdGlvblxuICAgICAgICBbY2xhc3MuZWNsLW1lbnVfX2lubmVyLS1leHBhbmRlZF09XCJpc01lbnVFeHBhbmRlZEluTW9iaWxlXCJcbiAgICAgICAgW2NsYXNzLmVjbC1tZW51X19pbm5lci0taGFzLW92ZXJmbG93XT1cImhhc092ZXJmbG93XCI+XG4gICAgICAgIDxoZWFkZXIgY2xhc3M9XCJlY2wtbWVudV9faW5uZXItaGVhZGVyXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZWNsQnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImVjbC1tZW51X19jbG9zZVwiXG4gICAgICAgICAgICAgICAgY29udGFpbmVyU3R5bGVDbGFzcz1cImVjbC1tZW51X19jbG9zZS1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk1lbnVDbG9zZUNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNsb3NlLWZpbGxlZFwiIHNpemU9XCJzXCI+PC9lY2wtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBlY2xCdXR0b25MYWJlbD57eyAnZWNsLmNvbW1vbi5DTE9TRScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVjbC1tZW51X190aXRsZVwiPnt7ICdlY2wubWVudS5NRU5VJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuXG4gICAgICAgICAgICA8YnV0dG9uIGVjbEJ1dHRvbiB2YXJpYW50PVwiZ2hvc3RcIiBjbGFzcz1cImVjbC1tZW51X19iYWNrXCIgKGNsaWNrKT1cIm9uTWVudUJhY2tDbGljaygkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPGVjbC1pY29uIGljb249XCJjb3JuZXItYXJyb3dcIiBzaXplPVwic1wiIHRyYW5zZm9ybT1cInJvdGF0ZS0yNzBcIj48L2VjbC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGVjbEJ1dHRvbkxhYmVsPnt7ICdlY2wuY29tbW9uLkJBQ0snIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvaGVhZGVyPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBlY2xCdXR0b25cbiAgICAgICAgICAgICNidG5QcmV2aW91c1xuICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgY2xhc3M9XCJlY2wtbWVudV9faXRlbSBlY2wtbWVudV9faXRlbXMtcHJldmlvdXNcIlxuICAgICAgICAgICAgW2NsYXNzLmVjbC1tZW51X19pdGVtLS1jdXJyZW50XT1cImlzUHJldkJ0bkN1cnJlbnRDbGFzc1wiXG4gICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJpc1Nob3dQcmV2QnRuID8gJ2Jsb2NrJyA6ICdub25lJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25QcmV2QnRuQ2xpY2soKVwiPlxuICAgICAgICAgICAgPGVjbC1pY29uIGljb249XCJjb3JuZXItYXJyb3dcIiBzaXplPVwic1wiIHRyYW5zZm9ybT1cInJvdGF0ZS0yNzBcIj48L2VjbC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gZWNsQnV0dG9uTGFiZWwgY2xhc3M9XCJlY2wtdS1zci1vbmx5XCI+e3sgJ2VjbC5jb21tb24uUFJFVklPVVMnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgZWNsQnV0dG9uXG4gICAgICAgICAgICAjYnRuTmV4dFxuICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgY2xhc3M9XCJlY2wtbWVudV9faXRlbSBlY2wtbWVudV9faXRlbXMtbmV4dFwiXG4gICAgICAgICAgICBbY2xhc3MuZWNsLW1lbnVfX2l0ZW0tLWN1cnJlbnRdPVwiIWlzUHJldkJ0bkN1cnJlbnRDbGFzc1wiXG4gICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJpc1Nob3dOZXh0QnRuID8gJ2Jsb2NrJyA6ICdub25lJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25OZXh0QnRuQ2xpY2soKVwiPlxuICAgICAgICAgICAgPGVjbC1pY29uIGljb249XCJjb3JuZXItYXJyb3dcIiBzaXplPVwic1wiIHRyYW5zZm9ybT1cInJvdGF0ZS05MFwiPjwvZWNsLWljb24+XG4gICAgICAgICAgICA8c3BhbiBlY2xCdXR0b25MYWJlbCBjbGFzcz1cImVjbC11LXNyLW9ubHlcIj57eyAnZWNsLmNvbW1vbi5ORVhUJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDx1bCBjbGFzcz1cImVjbC1tZW51X19saXN0XCIgI2l0ZW1zTGlzdCBbc3R5bGUucmlnaHRdPVwibWVudUxpc3RTdHlsZVJpZ2h0XCIgW3N0eWxlLmxlZnRdPVwibWVudUxpc3RTdHlsZUxlZnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC91bD5cbiAgICA8L3NlY3Rpb24+XG48L2Rpdj5cbiJdfQ==
@@ -52,13 +52,13 @@ export class EclMenuMegaItemComponent extends ECLBaseDirective {
52
52
  }
53
53
  this.menuItemKeydown.next(new EclMenuItemKeydownEvent(this, evt));
54
54
  }
55
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: EclMenuMegaItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
56
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.1", type: EclMenuMegaItemComponent, selector: "ecl-menu-mega-item", inputs: { id: "id", label: "label", routerLink: "routerLink", queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", href: "href", target: "target", isCurrent: "isCurrent" }, outputs: { menuItemSelect: "menuItemSelect", menuItemKeydown: "menuItemKeydown" }, host: { listeners: { "click": "onHostClick($event)" }, properties: { "class.ecl-menu__subitem": "this.cmpClass", "attr.role": "this.role", "class.ecl-menu__subitem--current": "this.isCurrent" } }, queries: [{ propertyName: "iconComponents", predicate: i0.forwardRef(() => EclIconComponent) }], viewQueries: [{ propertyName: "megaMenuLink", first: true, predicate: ["megaMenuLink"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<a #megaMenuLink\n *ngIf=\"href\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<a #megaMenuLink\n *ngIf=\"!href\"\n tabindex=\"0\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{display:list-item}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
55
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EclMenuMegaItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
56
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.3", type: EclMenuMegaItemComponent, selector: "ecl-menu-mega-item", inputs: { id: "id", label: "label", routerLink: "routerLink", queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", href: "href", target: "target", isCurrent: "isCurrent" }, outputs: { menuItemSelect: "menuItemSelect", menuItemKeydown: "menuItemKeydown" }, host: { listeners: { "click": "onHostClick($event)" }, properties: { "class.ecl-menu__subitem": "this.cmpClass", "attr.role": "this.role", "class.ecl-menu__subitem--current": "this.isCurrent" } }, queries: [{ propertyName: "iconComponents", predicate: i0.forwardRef(() => EclIconComponent) }], viewQueries: [{ propertyName: "megaMenuLink", first: true, predicate: ["megaMenuLink"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<a #megaMenuLink\n *ngIf=\"href\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<a #megaMenuLink\n *ngIf=\"!href\"\n tabindex=\"0\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{display:list-item}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
57
57
  }
58
58
  __decorate([
59
59
  coerceBoolean
60
60
  ], EclMenuMegaItemComponent.prototype, "isCurrent", void 0);
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: EclMenuMegaItemComponent, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EclMenuMegaItemComponent, decorators: [{
62
62
  type: Component,
63
63
  args: [{ selector: 'ecl-menu-mega-item', template: "<a #megaMenuLink\n *ngIf=\"href\"\n [href]=\"href\"\n [target]=\"target\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<a #megaMenuLink\n *ngIf=\"!href\"\n tabindex=\"0\"\n [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-menu__sublink\"\n [class.ecl-menu__sublink--current]=\"isCurrent\"\n (click)=\"onItemClick($event)\"\n (keydown)=\"onKeydown($event)\">\n {{ label }}\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host{display:list-item}\n"] }]
64
64
  }], propDecorators: { id: [{
@@ -100,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1",
100
100
  type: HostListener,
101
101
  args: ['click', ['$event']]
102
102
  }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtbWVnYS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS1tZWdhL2VjbC1tZW51LW1lZ2EtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUtbWVnYS9lY2wtbWVudS1tZWdhLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUlWLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQWE5QyxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0JBQWdCO0lBWDlEOztRQWNJLDhEQUE4RDtRQUNyRCxlQUFVLEdBQW1CLElBQUksQ0FBQztRQUNsQyxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFDbEMsd0JBQW1CLEdBQXdCLElBQUksQ0FBQztRQUNoRCxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNtQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQzlCLFNBQUksR0FBRyxVQUFVLENBQUM7UUFPbEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUM1RCxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUEyQixDQUFDO1FBRXhFLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFbEIsYUFBUSxHQUF1QixFQUFFLENBQUM7S0FtQ3JDO0lBakNHLGVBQWU7UUFDWCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUNoQyxHQUFHLENBQUMsS0FBSyxHQUFHLHdCQUF3QixDQUFDO2dCQUN6QyxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQVU7UUFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsR0FBaUIsQ0FBQyxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWixHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBR0QsV0FBVyxDQUFDLEdBQWU7UUFDdkIsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFVO1FBQ2hCLElBQUssR0FBcUIsQ0FBQyxPQUFPLEtBQUssS0FBSyxFQUFFO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekI7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLHVCQUF1QixDQUFDLElBQUksRUFBRSxHQUFvQixDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO3dJQXpEUSx3QkFBd0I7NEhBQXhCLHdCQUF3Qixxa0JBY0MsZ0JBQWdCLG1LQy9DdEQseTBCQTZCQTs7QURnQjZFO0lBQXhFLGFBQWE7MkRBQW9GO2tHQVp6Rix3QkFBd0I7a0JBWHBDLFNBQVM7K0JBQ0ksb0JBQW9COzhCQVdyQixFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDa0MsUUFBUTtzQkFBL0MsV0FBVzt1QkFBQyx5QkFBeUI7Z0JBQ1osSUFBSTtzQkFBN0IsV0FBVzt1QkFBQyxXQUFXO2dCQUVpRCxTQUFTO3NCQUFsRSxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLGtDQUFrQztnQkFFbEIsY0FBYztzQkFBbEUsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3hCLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFFZixjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBMEJQLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgZm9yd2FyZFJlZixcbiAgICBRdWVyeUxpc3QsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2VjbC1tZW51LWl0ZW0ubW9kZWwnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50LCBFY2xNZW51SXRlbVNlbGVjdEV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL2VjbC1tZW51LWl0ZW0uZXZlbnQnO1xuaW1wb3J0IHsgRWNsSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VjbC1pY29uJztcbmltcG9ydCB7IFBhcmFtcywgUXVlcnlQYXJhbXNIYW5kbGluZyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWNsLW1lbnUtbWVnYS1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLW1lbnUtbWVnYS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xNZW51TWVnYUl0ZW1Db21wb25lbnQgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgRWNsTWVudUl0ZW0sIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBJbnB1dCgpIHJvdXRlckxpbms6IHN0cmluZyB8IGFueVtdID0gbnVsbDtcbiAgICBASW5wdXQoKSBxdWVyeVBhcmFtczogUGFyYW1zIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgcXVlcnlQYXJhbXNIYW5kbGluZzogUXVlcnlQYXJhbXNIYW5kbGluZyA9IG51bGw7XG4gICAgQElucHV0KCkgaHJlZiA9ICcnO1xuICAgIEBJbnB1dCgpIHRhcmdldCA9ICcnO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnVfX3N1Yml0ZW0nKSBjbXBDbGFzcyA9IHRydWU7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ2xpc3RpdGVtJztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBjb2VyY2VCb29sZWFuIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnVfX3N1Yml0ZW0tLWN1cnJlbnQnKSBpc0N1cnJlbnQ6IGJvb2xlYW4gfCBhbnk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRWNsSWNvbkNvbXBvbmVudCkpIGljb25Db21wb25lbnRzOiBRdWVyeUxpc3Q8RWNsSWNvbkNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgnbWVnYU1lbnVMaW5rJykgbWVnYU1lbnVMaW5rOiBFbGVtZW50UmVmXG5cbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIG1lbnVJdGVtS2V5ZG93biA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1LZXlkb3duRXZlbnQ+KCk7XG5cbiAgICBoYXNDaGlsZHJlbiA9IGZhbHNlO1xuICAgIGlzRXhwYW5kZWQgPSB0cnVlO1xuXG4gICAgY2hpbGRyZW46IEFycmF5PEVjbE1lbnVJdGVtPiA9IFtdO1xuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pY29uQ29tcG9uZW50cykge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pY29uQ29tcG9uZW50cy5mb3JFYWNoKChpY24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWNuLmNsYXNzID0gJ2VjbC1tZW51X19zdWJsaW5rLWljb24nO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkl0ZW1DbGljayhldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudUl0ZW1TZWxlY3QubmV4dChuZXcgRWNsTWVudUl0ZW1TZWxlY3RFdmVudCh0aGlzLCBldnQgYXMgTW91c2VFdmVudCkpO1xuXG4gICAgICAgIGlmICghdGhpcy5ocmVmKSB7XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbkhvc3RDbGljayhldnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVnYU1lbnVMaW5rLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvbktleWRvd24oZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoKGV2dCBhcyBLZXlib2FyZEV2ZW50KS5rZXlDb2RlID09PSBFTlRFUikge1xuICAgICAgICAgICAgdGhpcy5vbkl0ZW1DbGljayhldnQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWVudUl0ZW1LZXlkb3duLm5leHQobmV3IEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50KHRoaXMsIGV2dCBhcyBLZXlib2FyZEV2ZW50KSk7XG4gICAgfVxufVxuIiwiPGEgICNtZWdhTWVudUxpbmtcbiAgICAqbmdJZj1cImhyZWZcIlxuICAgIFtocmVmXT1cImhyZWZcIlxuICAgIFt0YXJnZXRdPVwidGFyZ2V0XCJcbiAgICBjbGFzcz1cImVjbC1tZW51X19zdWJsaW5rXCJcbiAgICBbY2xhc3MuZWNsLW1lbnVfX3N1YmxpbmstLWN1cnJlbnRdPVwiaXNDdXJyZW50XCJcbiAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIj5cbiAgICB7eyBsYWJlbCB9fVxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG48L2E+XG5cbjxhICAjbWVnYU1lbnVMaW5rXG4gICAgKm5nSWY9XCIhaHJlZlwiXG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgICBbcm91dGVyTGlua109XCJyb3V0ZXJMaW5rXCJcbiAgICBbcXVlcnlQYXJhbXNdPVwicXVlcnlQYXJhbXNcIlxuICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cInF1ZXJ5UGFyYW1zSGFuZGxpbmdcIlxuICAgIGNsYXNzPVwiZWNsLW1lbnVfX3N1YmxpbmtcIlxuICAgIFtjbGFzcy5lY2wtbWVudV9fc3VibGluay0tY3VycmVudF09XCJpc0N1cnJlbnRcIlxuICAgIChjbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiPlxuICAgIHt7IGxhYmVsIH19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvYT5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtbWVnYS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS1tZWdhL2VjbC1tZW51LW1lZ2EtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUtbWVnYS9lY2wtbWVudS1tZWdhLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUlWLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQWE5QyxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0JBQWdCO0lBWDlEOztRQWNJLDhEQUE4RDtRQUNyRCxlQUFVLEdBQW1CLElBQUksQ0FBQztRQUNsQyxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFDbEMsd0JBQW1CLEdBQXdCLElBQUksQ0FBQztRQUNoRCxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNtQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQzlCLFNBQUksR0FBRyxVQUFVLENBQUM7UUFPbEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUM1RCxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUEyQixDQUFDO1FBRXhFLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFbEIsYUFBUSxHQUF1QixFQUFFLENBQUM7S0FtQ3JDO0lBakNHLGVBQWU7UUFDWCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ2hDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLENBQUM7Z0JBQ3pDLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFVO1FBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksc0JBQXNCLENBQUMsSUFBSSxFQUFFLEdBQWlCLENBQUMsQ0FBQyxDQUFDO1FBRTlFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDYixHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNMLENBQUM7SUFHRCxXQUFXLENBQUMsR0FBZTtRQUN2QixHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVU7UUFDaEIsSUFBSyxHQUFxQixDQUFDLE9BQU8sS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLHVCQUF1QixDQUFDLElBQUksRUFBRSxHQUFvQixDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO3dJQXpEUSx3QkFBd0I7NEhBQXhCLHdCQUF3Qixxa0JBY0MsZ0JBQWdCLG1LQy9DdEQseTBCQTZCQTs7QURnQjZFO0lBQXhFLGFBQWE7MkRBQW9GO2tHQVp6Rix3QkFBd0I7a0JBWHBDLFNBQVM7K0JBQ0ksb0JBQW9COzhCQVdyQixFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDa0MsUUFBUTtzQkFBL0MsV0FBVzt1QkFBQyx5QkFBeUI7Z0JBQ1osSUFBSTtzQkFBN0IsV0FBVzt1QkFBQyxXQUFXO2dCQUVpRCxTQUFTO3NCQUFsRSxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLGtDQUFrQztnQkFFbEIsY0FBYztzQkFBbEUsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3hCLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFFZixjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBMEJQLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgZm9yd2FyZFJlZixcbiAgICBRdWVyeUxpc3QsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2VjbC1tZW51LWl0ZW0ubW9kZWwnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50LCBFY2xNZW51SXRlbVNlbGVjdEV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL2VjbC1tZW51LWl0ZW0uZXZlbnQnO1xuaW1wb3J0IHsgRWNsSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VjbC1pY29uJztcbmltcG9ydCB7IFBhcmFtcywgUXVlcnlQYXJhbXNIYW5kbGluZyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWNsLW1lbnUtbWVnYS1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLW1lbnUtbWVnYS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xNZW51TWVnYUl0ZW1Db21wb25lbnQgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgRWNsTWVudUl0ZW0sIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBJbnB1dCgpIHJvdXRlckxpbms6IHN0cmluZyB8IGFueVtdID0gbnVsbDtcbiAgICBASW5wdXQoKSBxdWVyeVBhcmFtczogUGFyYW1zIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgcXVlcnlQYXJhbXNIYW5kbGluZzogUXVlcnlQYXJhbXNIYW5kbGluZyA9IG51bGw7XG4gICAgQElucHV0KCkgaHJlZiA9ICcnO1xuICAgIEBJbnB1dCgpIHRhcmdldCA9ICcnO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnVfX3N1Yml0ZW0nKSBjbXBDbGFzcyA9IHRydWU7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ2xpc3RpdGVtJztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBjb2VyY2VCb29sZWFuIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnVfX3N1Yml0ZW0tLWN1cnJlbnQnKSBpc0N1cnJlbnQ6IGJvb2xlYW4gfCBhbnk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRWNsSWNvbkNvbXBvbmVudCkpIGljb25Db21wb25lbnRzOiBRdWVyeUxpc3Q8RWNsSWNvbkNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgnbWVnYU1lbnVMaW5rJykgbWVnYU1lbnVMaW5rOiBFbGVtZW50UmVmXG5cbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIG1lbnVJdGVtS2V5ZG93biA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1LZXlkb3duRXZlbnQ+KCk7XG5cbiAgICBoYXNDaGlsZHJlbiA9IGZhbHNlO1xuICAgIGlzRXhwYW5kZWQgPSB0cnVlO1xuXG4gICAgY2hpbGRyZW46IEFycmF5PEVjbE1lbnVJdGVtPiA9IFtdO1xuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pY29uQ29tcG9uZW50cykge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pY29uQ29tcG9uZW50cy5mb3JFYWNoKChpY24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWNuLmNsYXNzID0gJ2VjbC1tZW51X19zdWJsaW5rLWljb24nO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkl0ZW1DbGljayhldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudUl0ZW1TZWxlY3QubmV4dChuZXcgRWNsTWVudUl0ZW1TZWxlY3RFdmVudCh0aGlzLCBldnQgYXMgTW91c2VFdmVudCkpO1xuXG4gICAgICAgIGlmICghdGhpcy5ocmVmKSB7XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbkhvc3RDbGljayhldnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVnYU1lbnVMaW5rLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvbktleWRvd24oZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoKGV2dCBhcyBLZXlib2FyZEV2ZW50KS5rZXlDb2RlID09PSBFTlRFUikge1xuICAgICAgICAgICAgdGhpcy5vbkl0ZW1DbGljayhldnQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWVudUl0ZW1LZXlkb3duLm5leHQobmV3IEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50KHRoaXMsIGV2dCBhcyBLZXlib2FyZEV2ZW50KSk7XG4gICAgfVxufVxuIiwiPGEgICNtZWdhTWVudUxpbmtcbiAgICAqbmdJZj1cImhyZWZcIlxuICAgIFtocmVmXT1cImhyZWZcIlxuICAgIFt0YXJnZXRdPVwidGFyZ2V0XCJcbiAgICBjbGFzcz1cImVjbC1tZW51X19zdWJsaW5rXCJcbiAgICBbY2xhc3MuZWNsLW1lbnVfX3N1YmxpbmstLWN1cnJlbnRdPVwiaXNDdXJyZW50XCJcbiAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIj5cbiAgICB7eyBsYWJlbCB9fVxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG48L2E+XG5cbjxhICAjbWVnYU1lbnVMaW5rXG4gICAgKm5nSWY9XCIhaHJlZlwiXG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgICBbcm91dGVyTGlua109XCJyb3V0ZXJMaW5rXCJcbiAgICBbcXVlcnlQYXJhbXNdPVwicXVlcnlQYXJhbXNcIlxuICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cInF1ZXJ5UGFyYW1zSGFuZGxpbmdcIlxuICAgIGNsYXNzPVwiZWNsLW1lbnVfX3N1YmxpbmtcIlxuICAgIFtjbGFzcy5lY2wtbWVudV9fc3VibGluay0tY3VycmVudF09XCJpc0N1cnJlbnRcIlxuICAgIChjbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiPlxuICAgIHt7IGxhYmVsIH19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbjwvYT5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -124,13 +124,13 @@ export class EclMenuMegaComponent extends ECLBaseDirective {
124
124
  getMegaMenuItemsArray() {
125
125
  return this.eclMenuMegaItems.toArray();
126
126
  }
127
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: EclMenuMegaComponent, deps: [{ token: i0.IterableDiffers }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
128
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.1", type: EclMenuMegaComponent, selector: "ecl-menu-mega", inputs: { isRtl: "isRtl" }, outputs: { menuItemSelect: "menuItemSelect", menuMegaItemParentFocus: "menuMegaItemParentFocus" }, host: { properties: { "class.ecl-menu__mega--rtl": "this.isRtlDisplay", "style.left.px": "this.offsetLeft", "style.right.px": "this.offsetRight", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclMenuMegaItems", predicate: EclMenuMegaItemComponent }], usesInheritance: true, ngImport: i0, template: "<ul class=\"ecl-menu__sublist\">\n <ng-content></ng-content>\n</ul>\n" }); }
127
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EclMenuMegaComponent, deps: [{ token: i0.IterableDiffers }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
128
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.3", type: EclMenuMegaComponent, selector: "ecl-menu-mega", inputs: { isRtl: "isRtl" }, outputs: { menuItemSelect: "menuItemSelect", menuMegaItemParentFocus: "menuMegaItemParentFocus" }, host: { properties: { "class.ecl-menu__mega--rtl": "this.isRtlDisplay", "style.left.px": "this.offsetLeft", "style.right.px": "this.offsetRight", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclMenuMegaItems", predicate: EclMenuMegaItemComponent }], usesInheritance: true, ngImport: i0, template: "<ul class=\"ecl-menu__sublist\">\n <ng-content></ng-content>\n</ul>\n" }); }
129
129
  }
130
130
  __decorate([
131
131
  coerceBoolean
132
132
  ], EclMenuMegaComponent.prototype, "isRtl", void 0);
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: EclMenuMegaComponent, decorators: [{
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EclMenuMegaComponent, decorators: [{
134
134
  type: Component,
135
135
  args: [{ selector: 'ecl-menu-mega', template: "<ul class=\"ecl-menu__sublist\">\n <ng-content></ng-content>\n</ul>\n" }]
136
136
  }], ctorParameters: () => [{ type: i0.IterableDiffers }, { type: i0.ElementRef }], propDecorators: { isRtl: [{
@@ -155,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1",
155
155
  type: HostBinding,
156
156
  args: ['class']
157
157
  }] } });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtbWVnYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUtbWVnYS9lY2wtbWVudS1tZWdhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS1tZWdhL2VjbC1tZW51LW1lZ2EuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGVBQWUsRUFJZixNQUFNLEVBQ04sWUFBWSxFQUlaLFdBQVcsR0FFZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBMkIsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFNekMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQWlCdEQsSUFDSSxVQUFVO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBTUQsWUFDWSxPQUF3QixFQUN6QixFQUFjO1FBRXJCLEtBQUssRUFBRSxDQUFDO1FBSEEsWUFBTyxH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d0lBOUlRLG9CQUFvQjs0SEFBcEIsb0JBQW9CLHVZQVNaLHdCQUF3QixvRENyQzdDLDBFQUdBOztBRDhCNEI7SUFBdkIsYUFBYTttREFBdUM7a0dBTDVDLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDSSxlQUFlOzZHQVFELEtBQUs7c0JBQWIsS0FBSztnQkFFcUIsWUFBWTtzQkFBckQsV0FBVzt1QkFBQywyQkFBMkI7Z0JBRUcsZ0JBQWdCO3NCQUExRCxlQUFlO3VCQUFDLHdCQUF3QjtnQkFFL0IsY0FBYztzQkFBdkIsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBRXVCLFVBQVU7c0JBQXZDLFdBQVc7dUJBQUMsZUFBZTtnQkFDRyxXQUFXO3NCQUF6QyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFHekIsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgUXVlcnlMaXN0LFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSXRlcmFibGVEaWZmZXIsXG4gICAgSXRlcmFibGVDaGFuZ2VzLFxuICAgIEl0ZXJhYmxlRGlmZmVycyxcbiAgICBIb3N0QmluZGluZyxcbiAgICBFbGVtZW50UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZWNsLW1lbnUtbWVnYS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBvZiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsLCBtZXJnZVdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFY2xNZW51SXRlbUtleWRvd25FdmVudCwgRWNsTWVudUl0ZW1TZWxlY3RFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9lY2wtbWVudS1pdGVtLmV2ZW50JztcbmltcG9ydCB7IEVjbE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZWNsLW1lbnUtaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW4gfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgS2V5Q29kZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtbWVudS1tZWdhJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLW1lbnUtbWVnYS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEVjbE1lbnVNZWdhQ29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVG8gYmUgcmVtb3ZlZCBpbiAxOCB2ZXJzaW9uLiBObyBhbHRlcm5hdGl2ZSwgc2hvdWxkIG5vdCBiZSB1c2VkLlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQGNvZXJjZUJvb2xlYW4gQElucHV0KCkgaXNSdGw6IGJvb2xlYW4gfCBhbnkgPSBmYWxzZTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLW1lbnVfX21lZ2EtLXJ0bCcpIGlzUnRsRGlzcGxheTogYm9vbGVhbiB8IGFueSA9IGZhbHNlO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihFY2xNZW51TWVnYUl0ZW1Db21wb25lbnQpIGVjbE1lbnVNZWdhSXRlbXM6IFF1ZXJ5TGlzdDxFY2xNZW51TWVnYUl0ZW1Db21wb25lbnQ+O1xuXG4gICAgQE91dHB1dCgpIG1lbnVJdGVtU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNZW51SXRlbVNlbGVjdEV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBtZW51TWVnYUl0ZW1QYXJlbnRGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1TZWxlY3RFdmVudD4oKTtcbiAgICBcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmxlZnQucHgnKSBvZmZzZXRMZWZ0OiBudW1iZXIgfCBudWxsO1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUucmlnaHQucHgnKSBvZmZzZXRSaWdodDogbnVtYmVyIHwgbnVsbDtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLW1lbnVfX21lZ2EnKV0uam9pbignICcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGlmZmVyOiBJdGVyYWJsZURpZmZlcjxFY2xNZW51TWVnYUl0ZW1Db21wb25lbnQ+O1xuICAgIHByaXZhdGUgZGlmZjogSXRlcmFibGVDaGFuZ2VzPEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudD47XG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBkaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMsXG4gICAgICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5kaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZChbXSkuY3JlYXRlKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpZmYgPSB0aGlzLmRpZmZlci5kaWZmKHRoaXMuZWNsTWVudU1lZ2FJdGVtcyk7XG4gICAgICAgIHRoaXMuY3JlYXRlQ29udGVudENoaWxkcmVuTWVudU9ic2VydmFibGUoKS5zdWJzY3JpYmUodGhpcy5vbk1lbnVJdGVtQ2hhbmdlcy5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgc2VsZWN0Rmlyc3RTdWJJdGVtKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5lY2xNZW51TWVnYUl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZWNsTWVudU1lZ2FJdGVtcy5maXJzdC5vbkZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUNvbnRlbnRDaGlsZHJlbk1lbnVPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8UXVlcnlMaXN0PEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudD4+IHtcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuZWNsTWVudU1lZ2FJdGVtcykucGlwZShtZXJnZVdpdGgodGhpcy5lY2xNZW51TWVnYUl0ZW1zLmNoYW5nZXMpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25NZW51SXRlbUNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlmZiA9IHRoaXMuZGlmZmVyLmRpZmYodGhpcy5lY2xNZW51TWVnYUl0ZW1zKTtcblxuICAgICAgICBpZiAoIXRoaXMuZGlmZikge1xuICAgICAgICAgICAgdGhpcy5lY2xNZW51TWVnYUl0ZW1zLmZvckVhY2goKHJvb3RJdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0TWVudUl0ZW1FdmVudHMocm9vdEl0ZW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpZmYuZm9yRWFjaEFkZGVkSXRlbSgoY2hhbmdlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0TWVudUl0ZW1FdmVudHMoY2hhbmdlLml0ZW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbm5lY3RNZW51SXRlbUV2ZW50cyhpdGVtOiBFY2xNZW51TWVnYUl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaXRlbS5tZW51SXRlbVNlbGVjdC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldnQ6IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25NZW51SXRlbVNlbGVjdGVkKGl0ZW0sIGV2dCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpdGVtLm1lbnVJdGVtS2V5ZG93bi5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldnQ6IEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uTWVudUl0ZW1LZXlkb3duKGl0ZW0sIGV2dCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25NZW51SXRlbUtleWRvd24oaXRlbTogRWNsTWVudU1lZ2FJdGVtQ29tcG9uZW50LCBldnQ6IEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmRvbUV2ZW50LmtleSkge1xuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkFSUk9XX0RPV046IHtcbiAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTmV4dE1lbnVJdGVtRm9jdXMoaXRlbSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuQVJST1dfVVA6IHtcbiAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uUHJldk1lbnVJdGVtRm9jdXMoaXRlbSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuRVNDQVBFOiB7XG4gICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51TWVnYUl0ZW1QYXJlbnRGb2N1cy5uZXh0KG5ldyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KGl0ZW0pKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2VNZW51TWVnYUl0ZW1zQXJyYXkoKTogRWNsTWVudU1lZ2FJdGVtQ29tcG9uZW50W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5lY2xNZW51TWVnYUl0ZW1zLnRvQXJyYXkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uUHJldk1lbnVJdGVtRm9jdXMoaXRlbTogRWNsTWVudU1lZ2FJdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZU1lbnVNZWdhSXRlbXNBcnJheSgpLmZpbmRJbmRleChlbCA9PiBpdGVtID09PSBlbCk7XG4gICAgICAgIGlmIChpbmRleCAhPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5nZXRNZWdhTWVudUl0ZW1zQXJyYXkoKVtpbmRleCAtIDFdLm9uRm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubWVudU1lZ2FJdGVtUGFyZW50Rm9jdXMubmV4dChuZXcgRWNsTWVudUl0ZW1TZWxlY3RFdmVudChpdGVtKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTmV4dE1lbnVJdGVtRm9jdXMoaXRlbTogRWNsTWVudU1lZ2FJdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZU1lbnVNZWdhSXRlbXNBcnJheSgpLmZpbmRJbmRleChlbCA9PiBpdGVtID09PSBlbCk7XG4gICAgICAgIGlmIChpbmRleCAhPT0gdGhpcy5nZXRNZWdhTWVudUl0ZW1zQXJyYXkoKS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICB0aGlzLmdldE1lZ2FNZW51SXRlbXNBcnJheSgpW2luZGV4ICsgMV0ub25Gb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk1lbnVJdGVtU2VsZWN0ZWQoaXRlbTogRWNsTWVudUl0ZW0sIGV2dDogRWNsTWVudUl0ZW1TZWxlY3RFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc2VsZWN0QWxsTWVudUl0ZW1zKHRoaXMuZWNsTWVudU1lZ2FJdGVtcy50b0FycmF5KCkpO1xuICAgICAgICB0aGlzLnNlbGVjdE1lbnVJdGVtKGl0ZW0pO1xuICAgICAgICB0aGlzLnNlbmRNZW51SXRlbVNlbGVjdEV2ZW50KGV2dCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3RNZW51SXRlbShpdGVtOiBFY2xNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICBpdGVtLmlzQ3VycmVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXNlbGVjdEFsbE1lbnVJdGVtcyhpdGVtczogQXJyYXk8RWNsTWVudUl0ZW0+KTogdm9pZCB7XG4gICAgICAgIGl0ZW1zLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgICAgICBpdC5pc0N1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZW5kTWVudUl0ZW1TZWxlY3RFdmVudChldnQ6IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbVNlbGVjdC5uZXh0KG5ldyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KGV2dC5tZW51SXRlbSwgZXZ0LmRvbUV2ZW50KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNZWdhTWVudUl0ZW1zQXJyYXkoKTogRWNsTWVudU1lZ2FJdGVtQ29tcG9uZW50W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5lY2xNZW51TWVnYUl0ZW1zLnRvQXJyYXkoKTtcbiAgICB9XG59XG4iLCI8dWwgY2xhc3M9XCJlY2wtbWVudV9fc3VibGlzdFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvdWw+XG4iXX0=
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtbWVnYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUtbWVnYS9lY2wtbWVudS1tZWdhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbWVudS9lY2wtbWVudS1tZWdhL2VjbC1tZW51LW1lZ2EuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGVBQWUsRUFJZixNQUFNLEVBQ04sWUFBWSxFQUlaLFdBQVcsR0FFZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBMkIsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFNekMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQWlCdEQsSUFDSSxVQUFVO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBTUQsWUFDWSxPQUF3QixFQUN6QixFQUFjO1FBRXJCLEtBQUssRUFBRSxDQUFDO1FBSEEsWUFBTyxH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QUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFTyxxQkFBcUI7UUFDekIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0MsQ0FBQzt3SUE5SVEsb0JBQW9COzRIQUFwQixvQkFBb0IsdVlBU1osd0JBQXdCLG9EQ3JDN0MsMEVBR0E7O0FEOEI0QjtJQUF2QixhQUFhO21EQUF1QztrR0FMNUMsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNJLGVBQWU7NkdBUUQsS0FBSztzQkFBYixLQUFLO2dCQUVxQixZQUFZO3NCQUFyRCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFFRyxnQkFBZ0I7c0JBQTFELGVBQWU7dUJBQUMsd0JBQXdCO2dCQUUvQixjQUFjO3NCQUF2QixNQUFNO2dCQUNHLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFFdUIsVUFBVTtzQkFBdkMsV0FBVzt1QkFBQyxlQUFlO2dCQUNHLFdBQVc7c0JBQXpDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUd6QixVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJdGVyYWJsZURpZmZlcixcbiAgICBJdGVyYWJsZUNoYW5nZXMsXG4gICAgSXRlcmFibGVEaWZmZXJzLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWNsTWVudU1lZ2FJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9lY2wtbWVudS1tZWdhLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFN1YmplY3QsIG9mLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwsIG1lcmdlV2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50LCBFY2xNZW51SXRlbVNlbGVjdEV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL2VjbC1tZW51LWl0ZW0uZXZlbnQnO1xuaW1wb3J0IHsgRWNsTWVudUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lY2wtbWVudS1pdGVtLm1vZGVsJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBLZXlDb2RlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1tZW51LW1lZ2EnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtbWVudS1tZWdhLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRWNsTWVudU1lZ2FDb21wb25lbnQgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBUbyBiZSByZW1vdmVkIGluIDE4IHZlcnNpb24uIE5vIGFsdGVybmF0aXZlLCBzaG91bGQgbm90IGJlIHVzZWQuXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBAY29lcmNlQm9vbGVhbiBASW5wdXQoKSBpc1J0bDogYm9vbGVhbiB8IGFueSA9IGZhbHNlO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtbWVudV9fbWVnYS0tcnRsJykgaXNSdGxEaXNwbGF5OiBib29sZWFuIHwgYW55ID0gZmFsc2U7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudCkgZWNsTWVudU1lZ2FJdGVtczogUXVlcnlMaXN0PEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudD47XG5cbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIG1lbnVNZWdhSXRlbVBhcmVudEZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNZW51SXRlbVNlbGVjdEV2ZW50PigpO1xuICAgIFxuICAgIEBIb3N0QmluZGluZygnc3R5bGUubGVmdC5weCcpIG9mZnNldExlZnQ6IG51bWJlciB8IG51bGw7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5yaWdodC5weCcpIG9mZnNldFJpZ2h0OiBudW1iZXIgfCBudWxsO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtbWVudV9fbWVnYScpXS5qb2luKCcgJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudD47XG4gICAgcHJpdmF0ZSBkaWZmOiBJdGVyYWJsZUNoYW5nZXM8RWNsTWVudU1lZ2FJdGVtQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICAgICAgcHVibGljIGVsOiBFbGVtZW50UmVmLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmRpZmZlciA9IHRoaXMuZGlmZmVycy5maW5kKFtdKS5jcmVhdGUoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlmZiA9IHRoaXMuZGlmZmVyLmRpZmYodGhpcy5lY2xNZW51TWVnYUl0ZW1zKTtcbiAgICAgICAgdGhpcy5jcmVhdGVDb250ZW50Q2hpbGRyZW5NZW51T2JzZXJ2YWJsZSgpLnN1YnNjcmliZSh0aGlzLm9uTWVudUl0ZW1DaGFuZ2VzLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBzZWxlY3RGaXJzdFN1Ykl0ZW0oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmVjbE1lbnVNZWdhSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5lY2xNZW51TWVnYUl0ZW1zLmZpcnN0Lm9uRm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ29udGVudENoaWxkcmVuTWVudU9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxRdWVyeUxpc3Q8RWNsTWVudU1lZ2FJdGVtQ29tcG9uZW50Pj4ge1xuICAgICAgICByZXR1cm4gb2YodGhpcy5lY2xNZW51TWVnYUl0ZW1zKS5waXBlKG1lcmdlV2l0aCh0aGlzLmVjbE1lbnVNZWdhSXRlbXMuY2hhbmdlcyksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk1lbnVJdGVtQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWZmID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLmVjbE1lbnVNZWdhSXRlbXMpO1xuXG4gICAgICAgIGlmICghdGhpcy5kaWZmKSB7XG4gICAgICAgICAgICB0aGlzLmVjbE1lbnVNZWdhSXRlbXMuZm9yRWFjaCgocm9vdEl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RNZW51SXRlbUV2ZW50cyhyb290SXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlmZi5mb3JFYWNoQWRkZWRJdGVtKChjaGFuZ2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RNZW51SXRlbUV2ZW50cyhjaGFuZ2UuaXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY29ubmVjdE1lbnVJdGVtRXZlbnRzKGl0ZW06IEVjbE1lbnVNZWdhSXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpdGVtLm1lbnVJdGVtU2VsZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dDogRWNsTWVudUl0ZW1TZWxlY3RFdmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbk1lbnVJdGVtU2VsZWN0ZWQoaXRlbSwgZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0ZW0ubWVudUl0ZW1LZXlkb3duLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2dDogRWNsTWVudUl0ZW1LZXlkb3duRXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25NZW51SXRlbUtleWRvd24oaXRlbSwgZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbk1lbnVJdGVtS2V5ZG93bihpdGVtOiBFY2xNZW51TWVnYUl0ZW1Db21wb25lbnQsIGV2dDogRWNsTWVudUl0ZW1LZXlkb3duRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoIChldnQuZG9tRXZlbnQua2V5KSB7XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuQVJST1dfRE9XTjoge1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMub25OZXh0TWVudUl0ZW1Gb2N1cyhpdGVtKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5BUlJPV19VUDoge1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMub25QcmV2TWVudUl0ZW1Gb2N1cyhpdGVtKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5FU0NBUEU6IHtcbiAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVNZWdhSXRlbVBhcmVudEZvY3VzLm5leHQobmV3IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQoaXRlbSkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZU1lbnVNZWdhSXRlbXNBcnJheSgpOiBFY2xNZW51TWVnYUl0ZW1Db21wb25lbnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVjbE1lbnVNZWdhSXRlbXMudG9BcnJheSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25QcmV2TWVudUl0ZW1Gb2N1cyhpdGVtOiBFY2xNZW51TWVnYUl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmdlTWVudU1lZ2FJdGVtc0FycmF5KCkuZmluZEluZGV4KGVsID0+IGl0ZW0gPT09IGVsKTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmdldE1lZ2FNZW51SXRlbXNBcnJheSgpW2luZGV4IC0gMV0ub25Gb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tZW51TWVnYUl0ZW1QYXJlbnRGb2N1cy5uZXh0KG5ldyBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KGl0ZW0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25OZXh0TWVudUl0ZW1Gb2N1cyhpdGVtOiBFY2xNZW51TWVnYUl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmdlTWVudU1lZ2FJdGVtc0FycmF5KCkuZmluZEluZGV4KGVsID0+IGl0ZW0gPT09IGVsKTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSB0aGlzLmdldE1lZ2FNZW51SXRlbXNBcnJheSgpLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0TWVnYU1lbnVJdGVtc0FycmF5KClbaW5kZXggKyAxXS5vbkZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTWVudUl0ZW1TZWxlY3RlZChpdGVtOiBFY2xNZW51SXRlbSwgZXZ0OiBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzZWxlY3RBbGxNZW51SXRlbXModGhpcy5lY2xNZW51TWVnYUl0ZW1zLnRvQXJyYXkoKSk7XG4gICAgICAgIHRoaXMuc2VsZWN0TWVudUl0ZW0oaXRlbSk7XG4gICAgICAgIHRoaXMuc2VuZE1lbnVJdGVtU2VsZWN0RXZlbnQoZXZ0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdE1lbnVJdGVtKGl0ZW06IEVjbE1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIGl0ZW0uaXNDdXJyZW50ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc2VsZWN0QWxsTWVudUl0ZW1zKGl0ZW1zOiBBcnJheTxFY2xNZW51SXRlbT4pOiB2b2lkIHtcbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgICAgICAgIGl0LmlzQ3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbmRNZW51SXRlbVNlbGVjdEV2ZW50KGV2dDogRWNsTWVudUl0ZW1TZWxlY3RFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVJdGVtU2VsZWN0Lm5leHQobmV3IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQoZXZ0Lm1lbnVJdGVtLCBldnQuZG9tRXZlbnQpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1lZ2FNZW51SXRlbXNBcnJheSgpOiBFY2xNZW51TWVnYUl0ZW1Db21wb25lbnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVjbE1lbnVNZWdhSXRlbXMudG9BcnJheSgpO1xuICAgIH1cbn1cbiIsIjx1bCBjbGFzcz1cImVjbC1tZW51X19zdWJsaXN0XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC91bD5cbiJdfQ==
@@ -13,15 +13,15 @@ import { RouterModule } from '@angular/router';
13
13
  import * as i0 from "@angular/core";
14
14
  const COMPONENTS = [EclMenuComponent, EclMenuItemComponent, EclMenuMegaComponent, EclMenuMegaItemComponent];
15
15
  export class EclMenuComponentModule {
16
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: EclMenuComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
17
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-next.1", ngImport: i0, type: EclMenuComponentModule, declarations: [EclMenuComponent, EclMenuItemComponent, EclMenuMegaComponent, EclMenuMegaItemComponent], imports: [EclButtonComponentModule,
16
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EclMenuComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
17
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-next.3", ngImport: i0, type: EclMenuComponentModule, declarations: [EclMenuComponent, EclMenuItemComponent, EclMenuMegaComponent, EclMenuMegaItemComponent], imports: [EclButtonComponentModule,
18
18
  EclIconComponentModule,
19
19
  EclLinkDirectiveModule,
20
20
  CommonModule,
21
21
  RouterModule,
22
22
  LayoutModule,
23
23
  TranslateModule], exports: [EclMenuComponent, EclMenuItemComponent, EclMenuMegaComponent, EclMenuMegaItemComponent] }); }
24
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: EclMenuComponentModule, imports: [EclButtonComponentModule,
24
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EclMenuComponentModule, imports: [EclButtonComponentModule,
25
25
  EclIconComponentModule,
26
26
  EclLinkDirectiveModule,
27
27
  CommonModule,
@@ -29,7 +29,7 @@ export class EclMenuComponentModule {
29
29
  LayoutModule,
30
30
  TranslateModule] }); }
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: EclMenuComponentModule, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EclMenuComponentModule, decorators: [{
33
33
  type: NgModule,
34
34
  args: [{
35
35
  imports: [
@@ -6,10 +6,10 @@ export class EclModalBodyFixedContentDirective extends ECLBaseDirective {
6
6
  super(...arguments);
7
7
  this.className = true;
8
8
  }
9
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: EclModalBodyFixedContentDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
10
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.1", type: EclModalBodyFixedContentDirective, selector: "[eclModalBodyFixedContent]", host: { properties: { "class.ecl-modal__body-fixed": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
9
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EclModalBodyFixedContentDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
10
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: EclModalBodyFixedContentDirective, selector: "[eclModalBodyFixedContent]", host: { properties: { "class.ecl-modal__body-fixed": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: EclModalBodyFixedContentDirective, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EclModalBodyFixedContentDirective, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: '[eclModalBodyFixedContent]',
@@ -13,10 +13,10 @@ export class EclModalBodyComponent extends ECLBaseDirective {
13
13
  this.isScrollable ? 'ecl-modal__body--has-scroll' : '',
14
14
  ].join(' ').trim();
15
15
  }
16
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: EclModalBodyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
17
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-next.1", type: EclModalBodyComponent, selector: "[eclModalBody]", inputs: { isScrollable: ["isScrollable", "isScrollable", booleanAttribute] }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "@if (isScrollable) {\n<div class=\"ecl-modal__body-scroll\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n<div class=\"ecl-modal__body-overflow\" aria-hidden=\"true\"></div>\n<ng-content select=\"[eclModalBodyFixedContent]\"></ng-content>\n} @else {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
16
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EclModalBodyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
17
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-next.3", type: EclModalBodyComponent, selector: "[eclModalBody]", inputs: { isScrollable: ["isScrollable", "isScrollable", booleanAttribute] }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "@if (isScrollable) {\n<div class=\"ecl-modal__body-scroll\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n<div class=\"ecl-modal__body-overflow\" aria-hidden=\"true\"></div>\n<ng-content select=\"[eclModalBodyFixedContent]\"></ng-content>\n} @else {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: EclModalBodyComponent, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EclModalBodyComponent, decorators: [{
20
20
  type: Component,
21
21
  args: [{ selector: '[eclModalBody]', template: "@if (isScrollable) {\n<div class=\"ecl-modal__body-scroll\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n<div class=\"ecl-modal__body-overflow\" aria-hidden=\"true\"></div>\n<ng-content select=\"[eclModalBodyFixedContent]\"></ng-content>\n} @else {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>" }]
22
22
  }], propDecorators: { isScrollable: [{
@@ -9,10 +9,10 @@ export class EclModalCloseDirective extends ECLBaseDirective {
9
9
  onClick(evt) {
10
10
  this.modalClose.next(null);
11
11
  }
12
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: EclModalCloseDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
13
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.1", type: EclModalCloseDirective, selector: "[eclModalClose]", inputs: { eclModalResult: ["eclModalClose", "eclModalResult"], eclModalRole: "eclModalRole" }, outputs: { modalClose: "modalClose" }, host: { listeners: { "click": "onClick($event)" } }, usesInheritance: true, ngImport: i0 }); }
12
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EclModalCloseDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
13
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: EclModalCloseDirective, selector: "[eclModalClose]", inputs: { eclModalResult: ["eclModalClose", "eclModalResult"], eclModalRole: "eclModalRole" }, outputs: { modalClose: "modalClose" }, host: { listeners: { "click": "onClick($event)" } }, usesInheritance: true, ngImport: i0 }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: EclModalCloseDirective, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: EclModalCloseDirective, decorators: [{
16
16
  type: Directive,
17
17
  args: [{
18
18
  selector: '[eclModalClose]',