@fundamental-ngx/core 0.42.0-rc.9 → 0.42.0

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 (446) hide show
  1. package/alert/alert.module.d.ts +1 -1
  2. package/avatar/avatar.component.d.ts +2 -4
  3. package/avatar-group/directives/avatar-group-focusable-avatar.directive.d.ts +2 -6
  4. package/avatar-group/directives/avatar-group-overflow-button.directive.d.ts +2 -4
  5. package/bar/bar.component.d.ts +2 -4
  6. package/busy-indicator/busy-indicator-extended/busy-indicator-extended.directive.d.ts +2 -4
  7. package/button/button.component.d.ts +2 -6
  8. package/card/card-content.component.d.ts +2 -4
  9. package/card/card-counter.directive.d.ts +2 -4
  10. package/card/card-header.component.d.ts +2 -4
  11. package/card/card-loader.component.d.ts +2 -4
  12. package/card/card-second-subtitle.directive.d.ts +2 -4
  13. package/card/card-subtitle.directive.d.ts +2 -4
  14. package/card/card-title.directive.d.ts +2 -4
  15. package/card/card.component.d.ts +3 -5
  16. package/card/kpi/card-kpi-analytics-content.directive.d.ts +2 -4
  17. package/card/kpi/card-kpi-analytics-label.directive.d.ts +2 -4
  18. package/card/kpi/card-kpi-analytics.directive.d.ts +2 -4
  19. package/card/kpi/card-kpi-header.component.d.ts +2 -4
  20. package/card/kpi/card-kpi-scale-icon.directive.d.ts +2 -4
  21. package/card/kpi/card-kpi-scale-text.directive.d.ts +2 -4
  22. package/card/kpi/card-kpi-value.directive.d.ts +2 -4
  23. package/combobox/combobox.module.d.ts +2 -1
  24. package/dialog/base/dialog-base.class.d.ts +2 -2
  25. package/dialog/dialog-body/dialog-body.component.d.ts +2 -4
  26. package/dialog/dialog-container/dialog-container.component.d.ts +0 -2
  27. package/dialog/dialog-service/dialog.service.d.ts +4 -0
  28. package/dialog/dialog.component.d.ts +0 -2
  29. package/dynamic-page/dynamic-page-content/dynamic-page-content.component.d.ts +4 -6
  30. package/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.d.ts +2 -4
  31. package/dynamic-side-content/dynamic-side-content.component.d.ts +3 -5
  32. package/esm2020/alert/alert.module.mjs +5 -5
  33. package/esm2020/avatar/avatar.component.mjs +6 -10
  34. package/esm2020/avatar-group/directives/avatar-group-focusable-avatar.directive.mjs +4 -12
  35. package/esm2020/avatar-group/directives/avatar-group-overflow-body.directive.mjs +2 -2
  36. package/esm2020/avatar-group/directives/avatar-group-overflow-button.directive.mjs +3 -7
  37. package/esm2020/bar/bar.component.mjs +3 -7
  38. package/esm2020/breadcrumb/breadcrumb-item.component.mjs +2 -2
  39. package/esm2020/breadcrumb/breadcrumb.component.mjs +2 -2
  40. package/esm2020/busy-indicator/busy-indicator-extended/busy-indicator-extended.directive.mjs +4 -8
  41. package/esm2020/button/button.component.mjs +3 -9
  42. package/esm2020/card/card-content.component.mjs +3 -7
  43. package/esm2020/card/card-counter.directive.mjs +3 -7
  44. package/esm2020/card/card-header.component.mjs +4 -8
  45. package/esm2020/card/card-loader.component.mjs +3 -7
  46. package/esm2020/card/card-second-subtitle.directive.mjs +3 -7
  47. package/esm2020/card/card-subtitle.directive.mjs +3 -7
  48. package/esm2020/card/card-title.directive.mjs +3 -7
  49. package/esm2020/card/card.component.mjs +3 -7
  50. package/esm2020/card/kpi/card-kpi-analytics-content.directive.mjs +3 -7
  51. package/esm2020/card/kpi/card-kpi-analytics-label.directive.mjs +3 -7
  52. package/esm2020/card/kpi/card-kpi-analytics.directive.mjs +3 -7
  53. package/esm2020/card/kpi/card-kpi-header.component.mjs +3 -7
  54. package/esm2020/card/kpi/card-kpi-scale-icon.directive.mjs +3 -7
  55. package/esm2020/card/kpi/card-kpi-scale-text.directive.mjs +3 -7
  56. package/esm2020/card/kpi/card-kpi-value.directive.mjs +3 -7
  57. package/esm2020/checkbox/checkbox/checkbox.component.mjs +5 -5
  58. package/esm2020/combobox/combobox.component.mjs +5 -4
  59. package/esm2020/combobox/combobox.module.mjs +8 -4
  60. package/esm2020/content-density/services/content-density-observer.service.mjs +3 -3
  61. package/esm2020/datetime-picker/datetime-picker.component.mjs +7 -4
  62. package/esm2020/dialog/base/dialog-base.class.mjs +4 -4
  63. package/esm2020/dialog/dialog-body/dialog-body.component.mjs +3 -7
  64. package/esm2020/dialog/dialog-container/dialog-container.component.mjs +1 -5
  65. package/esm2020/dialog/dialog-service/dialog.service.mjs +10 -2
  66. package/esm2020/dialog/dialog.component.mjs +3 -7
  67. package/esm2020/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +4 -8
  68. package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.mjs +5 -9
  69. package/esm2020/dynamic-side-content/dynamic-side-content.component.mjs +3 -7
  70. package/esm2020/facets/content/facet-content.component.mjs +4 -8
  71. package/esm2020/facets/facet/facet.component.mjs +13 -19
  72. package/esm2020/feed-input/directives/feed-input-avatar.directive.mjs +3 -7
  73. package/esm2020/feed-list-item/components/item/feed-list-item.component.mjs +3 -7
  74. package/esm2020/feed-list-item/components/list/feed-list.component.mjs +3 -7
  75. package/esm2020/form/form-control/form-control.component.mjs +3 -7
  76. package/esm2020/form/form-group/form-group.component.mjs +3 -7
  77. package/esm2020/form/form-message/form-message.component.mjs +3 -7
  78. package/esm2020/grid-list/components/grid-list-item/grid-list-item.component.mjs +3 -3
  79. package/esm2020/icon/icon.component.mjs +3 -7
  80. package/esm2020/illustrated-message/illustrated-message.component.mjs +3 -7
  81. package/esm2020/info-label/info-label.component.mjs +3 -7
  82. package/esm2020/inline-help/inline-help.directive.mjs +26 -15
  83. package/esm2020/input-group/input-group-directives.mjs +6 -14
  84. package/esm2020/input-group/input-group.component.mjs +2 -2
  85. package/esm2020/layout-grid/directives/layout-grid-col.directive.mjs +3 -7
  86. package/esm2020/layout-grid/layout-grid.component.mjs +3 -7
  87. package/esm2020/layout-panel/layout-panel-footer/layout-panel-footer.component.mjs +3 -7
  88. package/esm2020/link/link.component.mjs +9 -13
  89. package/esm2020/list/directives/list-icon.directive.mjs +3 -7
  90. package/esm2020/list/directives/list-navigation-item-text.directive.mjs +3 -7
  91. package/esm2020/list/list-message.directive.mjs +3 -7
  92. package/esm2020/menu/menu-mobile/menu-mobile.component.mjs +2 -2
  93. package/esm2020/message-box/message-box-container/message-box-container.component.mjs +1 -5
  94. package/esm2020/message-box/message-box.component.mjs +1 -5
  95. package/esm2020/message-page/message-page.component.mjs +3 -7
  96. package/esm2020/message-strip/alert/default-config.mjs +11 -0
  97. package/esm2020/message-strip/alert/index.mjs +6 -0
  98. package/esm2020/message-strip/alert/message-strip-alert/message-strip-alert.component.mjs +68 -0
  99. package/esm2020/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.mjs +57 -0
  100. package/esm2020/message-strip/alert/message-strip-alert-container-footer/message-strip-alert-container-footer.component.mjs +65 -0
  101. package/esm2020/message-strip/alert/message-strip-alert.position.mjs +2 -0
  102. package/esm2020/message-strip/alert/message-strip-alert.ref.mjs +3 -0
  103. package/esm2020/message-strip/alert/message-strip-alert.service.mjs +195 -0
  104. package/esm2020/message-strip/alert/message-strip-configuration-type.mjs +2 -0
  105. package/esm2020/message-strip/alert/open-message-strip-alert.config.mjs +2 -0
  106. package/esm2020/message-strip/alert/tokens.mjs +14 -0
  107. package/esm2020/message-strip/auto-dismiss-message-strip.directive.mjs +98 -0
  108. package/esm2020/message-strip/fundamental-ngx-core-message-strip.mjs +2 -2
  109. package/esm2020/message-strip/index.mjs +6 -0
  110. package/esm2020/message-strip/message-strip-type.mjs +2 -0
  111. package/esm2020/message-strip/message-strip.component.mjs +16 -20
  112. package/esm2020/message-strip/message-strip.module.mjs +6 -9
  113. package/esm2020/multi-combobox/multi-combobox.component.mjs +6 -6
  114. package/esm2020/multi-input/multi-input.component.mjs +33 -19
  115. package/esm2020/notification/directives/notification-indicator.directive.mjs +3 -7
  116. package/esm2020/notification/notification-group/notification-group.component.mjs +3 -7
  117. package/esm2020/notification/notification-utils/notification-group-base.mjs +2 -2
  118. package/esm2020/object-marker/object-marker.component.mjs +3 -7
  119. package/esm2020/object-number/object-number.component.mjs +3 -7
  120. package/esm2020/object-status/object-status.component.mjs +3 -7
  121. package/esm2020/panel/panel.component.mjs +3 -7
  122. package/esm2020/product-switch/product-switch-body/product-switch-body.component.mjs +1 -1
  123. package/esm2020/radio/radio-button/radio-button.component.mjs +2 -2
  124. package/esm2020/rating-indicator/components/rating-indicator.component.mjs +3 -7
  125. package/esm2020/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.mjs +4 -8
  126. package/esm2020/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.mjs +3 -7
  127. package/esm2020/segmented-button/segmented-button.component.mjs +4 -4
  128. package/esm2020/select/select.component.mjs +3 -3
  129. package/esm2020/slider/slider.component.mjs +3 -7
  130. package/esm2020/status-indicator/status-indicator.component.mjs +4 -8
  131. package/esm2020/table/directives/table-cell.directive.mjs +31 -26
  132. package/esm2020/table/directives/table-icon.directive.mjs +3 -9
  133. package/esm2020/table/directives/table-row.directive.mjs +34 -19
  134. package/esm2020/table/table-wrapper.component.mjs +2 -2
  135. package/esm2020/table/table.component.mjs +1 -1
  136. package/esm2020/tabs/tab-item/tab-item.directive.mjs +3 -7
  137. package/esm2020/tabs/tab-nav/tab-nav.component.mjs +3 -9
  138. package/esm2020/tabs/tab-utils/tab-directives.mjs +3 -9
  139. package/esm2020/tile/directives/numeric-content.directives.mjs +14 -34
  140. package/esm2020/tile/directives/tile.directives.mjs +9 -21
  141. package/esm2020/tile/tile.component.mjs +2 -2
  142. package/esm2020/token/token-input.directive.mjs +3 -7
  143. package/esm2020/token/tokenizer.component.mjs +20 -22
  144. package/esm2020/toolbar/toolbar.component.mjs +2 -2
  145. package/esm2020/tree/components/tree-item/tree-item.component.mjs +1 -1
  146. package/esm2020/tree/models/base-tree-item.class.mjs +2 -6
  147. package/esm2020/tree/tree.component.mjs +3 -7
  148. package/esm2020/upload-collection/upload-collection-item.directive.mjs +2 -2
  149. package/esm2020/wizard/wizard.component.mjs +2 -2
  150. package/facets/content/facet-content.component.d.ts +2 -4
  151. package/facets/facet/facet.component.d.ts +2 -6
  152. package/feed-input/directives/feed-input-avatar.directive.d.ts +2 -4
  153. package/feed-list-item/components/item/feed-list-item.component.d.ts +2 -4
  154. package/feed-list-item/components/list/feed-list.component.d.ts +2 -4
  155. package/fesm2015/fundamental-ngx-core-alert.mjs +4 -4
  156. package/fesm2015/fundamental-ngx-core-alert.mjs.map +1 -1
  157. package/fesm2015/fundamental-ngx-core-avatar-group.mjs +6 -18
  158. package/fesm2015/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  159. package/fesm2015/fundamental-ngx-core-avatar.mjs +5 -9
  160. package/fesm2015/fundamental-ngx-core-avatar.mjs.map +1 -1
  161. package/fesm2015/fundamental-ngx-core-bar.mjs +2 -6
  162. package/fesm2015/fundamental-ngx-core-bar.mjs.map +1 -1
  163. package/fesm2015/fundamental-ngx-core-breadcrumb.mjs +2 -2
  164. package/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  165. package/fesm2015/fundamental-ngx-core-busy-indicator.mjs +3 -7
  166. package/fesm2015/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
  167. package/fesm2015/fundamental-ngx-core-button.mjs +2 -8
  168. package/fesm2015/fundamental-ngx-core-button.mjs.map +1 -1
  169. package/fesm2015/fundamental-ngx-core-card.mjs +31 -91
  170. package/fesm2015/fundamental-ngx-core-card.mjs.map +1 -1
  171. package/fesm2015/fundamental-ngx-core-checkbox.mjs +4 -4
  172. package/fesm2015/fundamental-ngx-core-checkbox.mjs.map +1 -1
  173. package/fesm2015/fundamental-ngx-core-combobox.mjs +10 -5
  174. package/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
  175. package/fesm2015/fundamental-ngx-core-content-density.mjs +2 -2
  176. package/fesm2015/fundamental-ngx-core-content-density.mjs.map +1 -1
  177. package/fesm2015/fundamental-ngx-core-datetime-picker.mjs +6 -3
  178. package/fesm2015/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  179. package/fesm2015/fundamental-ngx-core-dialog.mjs +16 -21
  180. package/fesm2015/fundamental-ngx-core-dialog.mjs.map +1 -1
  181. package/fesm2015/fundamental-ngx-core-dynamic-page.mjs +7 -15
  182. package/fesm2015/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  183. package/fesm2015/fundamental-ngx-core-dynamic-side-content.mjs +2 -6
  184. package/fesm2015/fundamental-ngx-core-dynamic-side-content.mjs.map +1 -1
  185. package/fesm2015/fundamental-ngx-core-facets.mjs +15 -25
  186. package/fesm2015/fundamental-ngx-core-facets.mjs.map +1 -1
  187. package/fesm2015/fundamental-ngx-core-feed-input.mjs +2 -6
  188. package/fesm2015/fundamental-ngx-core-feed-input.mjs.map +1 -1
  189. package/fesm2015/fundamental-ngx-core-feed-list-item.mjs +4 -12
  190. package/fesm2015/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
  191. package/fesm2015/fundamental-ngx-core-form.mjs +6 -18
  192. package/fesm2015/fundamental-ngx-core-form.mjs.map +1 -1
  193. package/fesm2015/fundamental-ngx-core-grid-list.mjs +2 -2
  194. package/fesm2015/fundamental-ngx-core-grid-list.mjs.map +1 -1
  195. package/fesm2015/fundamental-ngx-core-icon.mjs +2 -6
  196. package/fesm2015/fundamental-ngx-core-icon.mjs.map +1 -1
  197. package/fesm2015/fundamental-ngx-core-illustrated-message.mjs +2 -6
  198. package/fesm2015/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
  199. package/fesm2015/fundamental-ngx-core-info-label.mjs +2 -6
  200. package/fesm2015/fundamental-ngx-core-info-label.mjs.map +1 -1
  201. package/fesm2015/fundamental-ngx-core-inline-help.mjs +24 -13
  202. package/fesm2015/fundamental-ngx-core-inline-help.mjs.map +1 -1
  203. package/fesm2015/fundamental-ngx-core-input-group.mjs +6 -14
  204. package/fesm2015/fundamental-ngx-core-input-group.mjs.map +1 -1
  205. package/fesm2015/fundamental-ngx-core-layout-grid.mjs +4 -12
  206. package/fesm2015/fundamental-ngx-core-layout-grid.mjs.map +1 -1
  207. package/fesm2015/fundamental-ngx-core-layout-panel.mjs +2 -6
  208. package/fesm2015/fundamental-ngx-core-layout-panel.mjs.map +1 -1
  209. package/fesm2015/fundamental-ngx-core-link.mjs +8 -12
  210. package/fesm2015/fundamental-ngx-core-link.mjs.map +1 -1
  211. package/fesm2015/fundamental-ngx-core-list.mjs +6 -18
  212. package/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
  213. package/fesm2015/fundamental-ngx-core-menu.mjs +1 -1
  214. package/fesm2015/fundamental-ngx-core-menu.mjs.map +1 -1
  215. package/fesm2015/fundamental-ngx-core-message-box.mjs +0 -8
  216. package/fesm2015/fundamental-ngx-core-message-box.mjs.map +1 -1
  217. package/fesm2015/fundamental-ngx-core-message-page.mjs +2 -6
  218. package/fesm2015/fundamental-ngx-core-message-page.mjs.map +1 -1
  219. package/fesm2015/fundamental-ngx-core-message-strip.mjs +488 -28
  220. package/fesm2015/fundamental-ngx-core-message-strip.mjs.map +1 -1
  221. package/fesm2015/fundamental-ngx-core-multi-combobox.mjs +5 -5
  222. package/fesm2015/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  223. package/fesm2015/fundamental-ngx-core-multi-input.mjs +33 -17
  224. package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
  225. package/fesm2015/fundamental-ngx-core-notification.mjs +5 -13
  226. package/fesm2015/fundamental-ngx-core-notification.mjs.map +1 -1
  227. package/fesm2015/fundamental-ngx-core-object-marker.mjs +2 -6
  228. package/fesm2015/fundamental-ngx-core-object-marker.mjs.map +1 -1
  229. package/fesm2015/fundamental-ngx-core-object-number.mjs +2 -6
  230. package/fesm2015/fundamental-ngx-core-object-number.mjs.map +1 -1
  231. package/fesm2015/fundamental-ngx-core-object-status.mjs +2 -6
  232. package/fesm2015/fundamental-ngx-core-object-status.mjs.map +1 -1
  233. package/fesm2015/fundamental-ngx-core-panel.mjs +2 -6
  234. package/fesm2015/fundamental-ngx-core-panel.mjs.map +1 -1
  235. package/fesm2015/fundamental-ngx-core-product-switch.mjs +1 -1
  236. package/fesm2015/fundamental-ngx-core-product-switch.mjs.map +1 -1
  237. package/fesm2015/fundamental-ngx-core-radio.mjs +1 -1
  238. package/fesm2015/fundamental-ngx-core-radio.mjs.map +1 -1
  239. package/fesm2015/fundamental-ngx-core-rating-indicator.mjs +2 -6
  240. package/fesm2015/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  241. package/fesm2015/fundamental-ngx-core-resizable-card-layout.mjs +5 -13
  242. package/fesm2015/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
  243. package/fesm2015/fundamental-ngx-core-segmented-button.mjs +3 -3
  244. package/fesm2015/fundamental-ngx-core-segmented-button.mjs.map +1 -1
  245. package/fesm2015/fundamental-ngx-core-select.mjs +2 -2
  246. package/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
  247. package/fesm2015/fundamental-ngx-core-slider.mjs +2 -6
  248. package/fesm2015/fundamental-ngx-core-slider.mjs.map +1 -1
  249. package/fesm2015/fundamental-ngx-core-status-indicator.mjs +3 -7
  250. package/fesm2015/fundamental-ngx-core-status-indicator.mjs.map +1 -1
  251. package/fesm2015/fundamental-ngx-core-table.mjs +64 -48
  252. package/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
  253. package/fesm2015/fundamental-ngx-core-tabs.mjs +6 -22
  254. package/fesm2015/fundamental-ngx-core-tabs.mjs.map +1 -1
  255. package/fesm2015/fundamental-ngx-core-tile.mjs +22 -54
  256. package/fesm2015/fundamental-ngx-core-tile.mjs.map +1 -1
  257. package/fesm2015/fundamental-ngx-core-token.mjs +22 -28
  258. package/fesm2015/fundamental-ngx-core-token.mjs.map +1 -1
  259. package/fesm2015/fundamental-ngx-core-toolbar.mjs +1 -1
  260. package/fesm2015/fundamental-ngx-core-toolbar.mjs.map +1 -1
  261. package/fesm2015/fundamental-ngx-core-tree.mjs +3 -11
  262. package/fesm2015/fundamental-ngx-core-tree.mjs.map +1 -1
  263. package/fesm2015/fundamental-ngx-core-upload-collection.mjs +1 -1
  264. package/fesm2015/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  265. package/fesm2015/fundamental-ngx-core-wizard.mjs +1 -1
  266. package/fesm2015/fundamental-ngx-core-wizard.mjs.map +1 -1
  267. package/fesm2020/fundamental-ngx-core-alert.mjs +4 -4
  268. package/fesm2020/fundamental-ngx-core-alert.mjs.map +1 -1
  269. package/fesm2020/fundamental-ngx-core-avatar-group.mjs +6 -18
  270. package/fesm2020/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  271. package/fesm2020/fundamental-ngx-core-avatar.mjs +5 -9
  272. package/fesm2020/fundamental-ngx-core-avatar.mjs.map +1 -1
  273. package/fesm2020/fundamental-ngx-core-bar.mjs +2 -6
  274. package/fesm2020/fundamental-ngx-core-bar.mjs.map +1 -1
  275. package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +2 -2
  276. package/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  277. package/fesm2020/fundamental-ngx-core-busy-indicator.mjs +3 -7
  278. package/fesm2020/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
  279. package/fesm2020/fundamental-ngx-core-button.mjs +2 -8
  280. package/fesm2020/fundamental-ngx-core-button.mjs.map +1 -1
  281. package/fesm2020/fundamental-ngx-core-card.mjs +31 -91
  282. package/fesm2020/fundamental-ngx-core-card.mjs.map +1 -1
  283. package/fesm2020/fundamental-ngx-core-checkbox.mjs +4 -4
  284. package/fesm2020/fundamental-ngx-core-checkbox.mjs.map +1 -1
  285. package/fesm2020/fundamental-ngx-core-combobox.mjs +10 -5
  286. package/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
  287. package/fesm2020/fundamental-ngx-core-content-density.mjs +2 -2
  288. package/fesm2020/fundamental-ngx-core-content-density.mjs.map +1 -1
  289. package/fesm2020/fundamental-ngx-core-datetime-picker.mjs +6 -3
  290. package/fesm2020/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  291. package/fesm2020/fundamental-ngx-core-dialog.mjs +16 -21
  292. package/fesm2020/fundamental-ngx-core-dialog.mjs.map +1 -1
  293. package/fesm2020/fundamental-ngx-core-dynamic-page.mjs +7 -15
  294. package/fesm2020/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  295. package/fesm2020/fundamental-ngx-core-dynamic-side-content.mjs +2 -6
  296. package/fesm2020/fundamental-ngx-core-dynamic-side-content.mjs.map +1 -1
  297. package/fesm2020/fundamental-ngx-core-facets.mjs +15 -25
  298. package/fesm2020/fundamental-ngx-core-facets.mjs.map +1 -1
  299. package/fesm2020/fundamental-ngx-core-feed-input.mjs +2 -6
  300. package/fesm2020/fundamental-ngx-core-feed-input.mjs.map +1 -1
  301. package/fesm2020/fundamental-ngx-core-feed-list-item.mjs +4 -12
  302. package/fesm2020/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
  303. package/fesm2020/fundamental-ngx-core-form.mjs +6 -18
  304. package/fesm2020/fundamental-ngx-core-form.mjs.map +1 -1
  305. package/fesm2020/fundamental-ngx-core-grid-list.mjs +2 -2
  306. package/fesm2020/fundamental-ngx-core-grid-list.mjs.map +1 -1
  307. package/fesm2020/fundamental-ngx-core-icon.mjs +2 -6
  308. package/fesm2020/fundamental-ngx-core-icon.mjs.map +1 -1
  309. package/fesm2020/fundamental-ngx-core-illustrated-message.mjs +2 -6
  310. package/fesm2020/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
  311. package/fesm2020/fundamental-ngx-core-info-label.mjs +2 -6
  312. package/fesm2020/fundamental-ngx-core-info-label.mjs.map +1 -1
  313. package/fesm2020/fundamental-ngx-core-inline-help.mjs +24 -13
  314. package/fesm2020/fundamental-ngx-core-inline-help.mjs.map +1 -1
  315. package/fesm2020/fundamental-ngx-core-input-group.mjs +6 -14
  316. package/fesm2020/fundamental-ngx-core-input-group.mjs.map +1 -1
  317. package/fesm2020/fundamental-ngx-core-layout-grid.mjs +4 -12
  318. package/fesm2020/fundamental-ngx-core-layout-grid.mjs.map +1 -1
  319. package/fesm2020/fundamental-ngx-core-layout-panel.mjs +2 -6
  320. package/fesm2020/fundamental-ngx-core-layout-panel.mjs.map +1 -1
  321. package/fesm2020/fundamental-ngx-core-link.mjs +8 -12
  322. package/fesm2020/fundamental-ngx-core-link.mjs.map +1 -1
  323. package/fesm2020/fundamental-ngx-core-list.mjs +6 -18
  324. package/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
  325. package/fesm2020/fundamental-ngx-core-menu.mjs +1 -1
  326. package/fesm2020/fundamental-ngx-core-menu.mjs.map +1 -1
  327. package/fesm2020/fundamental-ngx-core-message-box.mjs +0 -8
  328. package/fesm2020/fundamental-ngx-core-message-box.mjs.map +1 -1
  329. package/fesm2020/fundamental-ngx-core-message-page.mjs +2 -6
  330. package/fesm2020/fundamental-ngx-core-message-page.mjs.map +1 -1
  331. package/fesm2020/fundamental-ngx-core-message-strip.mjs +493 -28
  332. package/fesm2020/fundamental-ngx-core-message-strip.mjs.map +1 -1
  333. package/fesm2020/fundamental-ngx-core-multi-combobox.mjs +5 -5
  334. package/fesm2020/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  335. package/fesm2020/fundamental-ngx-core-multi-input.mjs +31 -17
  336. package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
  337. package/fesm2020/fundamental-ngx-core-notification.mjs +5 -13
  338. package/fesm2020/fundamental-ngx-core-notification.mjs.map +1 -1
  339. package/fesm2020/fundamental-ngx-core-object-marker.mjs +2 -6
  340. package/fesm2020/fundamental-ngx-core-object-marker.mjs.map +1 -1
  341. package/fesm2020/fundamental-ngx-core-object-number.mjs +2 -6
  342. package/fesm2020/fundamental-ngx-core-object-number.mjs.map +1 -1
  343. package/fesm2020/fundamental-ngx-core-object-status.mjs +2 -6
  344. package/fesm2020/fundamental-ngx-core-object-status.mjs.map +1 -1
  345. package/fesm2020/fundamental-ngx-core-panel.mjs +2 -6
  346. package/fesm2020/fundamental-ngx-core-panel.mjs.map +1 -1
  347. package/fesm2020/fundamental-ngx-core-product-switch.mjs +1 -1
  348. package/fesm2020/fundamental-ngx-core-product-switch.mjs.map +1 -1
  349. package/fesm2020/fundamental-ngx-core-radio.mjs +1 -1
  350. package/fesm2020/fundamental-ngx-core-radio.mjs.map +1 -1
  351. package/fesm2020/fundamental-ngx-core-rating-indicator.mjs +2 -6
  352. package/fesm2020/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  353. package/fesm2020/fundamental-ngx-core-resizable-card-layout.mjs +5 -13
  354. package/fesm2020/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
  355. package/fesm2020/fundamental-ngx-core-segmented-button.mjs +3 -3
  356. package/fesm2020/fundamental-ngx-core-segmented-button.mjs.map +1 -1
  357. package/fesm2020/fundamental-ngx-core-select.mjs +2 -2
  358. package/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
  359. package/fesm2020/fundamental-ngx-core-slider.mjs +2 -6
  360. package/fesm2020/fundamental-ngx-core-slider.mjs.map +1 -1
  361. package/fesm2020/fundamental-ngx-core-status-indicator.mjs +3 -7
  362. package/fesm2020/fundamental-ngx-core-status-indicator.mjs.map +1 -1
  363. package/fesm2020/fundamental-ngx-core-table.mjs +64 -48
  364. package/fesm2020/fundamental-ngx-core-table.mjs.map +1 -1
  365. package/fesm2020/fundamental-ngx-core-tabs.mjs +6 -22
  366. package/fesm2020/fundamental-ngx-core-tabs.mjs.map +1 -1
  367. package/fesm2020/fundamental-ngx-core-tile.mjs +22 -54
  368. package/fesm2020/fundamental-ngx-core-tile.mjs.map +1 -1
  369. package/fesm2020/fundamental-ngx-core-token.mjs +21 -27
  370. package/fesm2020/fundamental-ngx-core-token.mjs.map +1 -1
  371. package/fesm2020/fundamental-ngx-core-toolbar.mjs +1 -1
  372. package/fesm2020/fundamental-ngx-core-toolbar.mjs.map +1 -1
  373. package/fesm2020/fundamental-ngx-core-tree.mjs +3 -11
  374. package/fesm2020/fundamental-ngx-core-tree.mjs.map +1 -1
  375. package/fesm2020/fundamental-ngx-core-upload-collection.mjs +1 -1
  376. package/fesm2020/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  377. package/fesm2020/fundamental-ngx-core-wizard.mjs +1 -1
  378. package/fesm2020/fundamental-ngx-core-wizard.mjs.map +1 -1
  379. package/form/form-control/form-control.component.d.ts +2 -4
  380. package/form/form-group/form-group.component.d.ts +2 -4
  381. package/form/form-message/form-message.component.d.ts +2 -4
  382. package/fundamental-ngx-core-v0.42.0.tgz +0 -0
  383. package/icon/icon.component.d.ts +2 -4
  384. package/illustrated-message/illustrated-message.component.d.ts +2 -4
  385. package/info-label/info-label.component.d.ts +2 -4
  386. package/inline-help/inline-help.directive.d.ts +9 -3
  387. package/input-group/input-group-directives.d.ts +5 -9
  388. package/layout-grid/directives/layout-grid-col.directive.d.ts +2 -4
  389. package/layout-grid/layout-grid.component.d.ts +2 -4
  390. package/layout-panel/layout-panel-footer/layout-panel-footer.component.d.ts +4 -6
  391. package/link/link.component.d.ts +2 -4
  392. package/list/directives/list-icon.directive.d.ts +4 -5
  393. package/list/directives/list-navigation-item-text.directive.d.ts +2 -4
  394. package/list/list-message.directive.d.ts +2 -4
  395. package/message-box/message-box-container/message-box-container.component.d.ts +0 -2
  396. package/message-box/message-box.component.d.ts +0 -2
  397. package/message-page/message-page.component.d.ts +2 -4
  398. package/message-strip/alert/default-config.d.ts +5 -0
  399. package/message-strip/alert/index.d.ts +9 -0
  400. package/message-strip/alert/message-strip-alert/message-strip-alert.component.d.ts +52 -0
  401. package/message-strip/alert/message-strip-alert-container/message-strip-alert-container.component.d.ts +28 -0
  402. package/message-strip/alert/message-strip-alert-container-footer/message-strip-alert-container-footer.component.d.ts +36 -0
  403. package/message-strip/alert/message-strip-alert.position.d.ts +3 -0
  404. package/message-strip/alert/message-strip-alert.ref.d.ts +14 -0
  405. package/message-strip/alert/message-strip-alert.service.d.ts +52 -0
  406. package/message-strip/alert/message-strip-configuration-type.d.ts +15 -0
  407. package/message-strip/alert/open-message-strip-alert.config.d.ts +22 -0
  408. package/message-strip/alert/tokens.d.ts +20 -0
  409. package/message-strip/auto-dismiss-message-strip.directive.d.ts +35 -0
  410. package/message-strip/index.d.ts +5 -5
  411. package/message-strip/message-strip-type.d.ts +2 -0
  412. package/message-strip/message-strip.component.d.ts +6 -9
  413. package/message-strip/message-strip.module.d.ts +2 -4
  414. package/multi-combobox/multi-combobox.component.d.ts +1 -1
  415. package/multi-input/multi-input.component.d.ts +10 -6
  416. package/notification/directives/notification-indicator.directive.d.ts +2 -4
  417. package/notification/notification-group/notification-group.component.d.ts +2 -4
  418. package/object-marker/object-marker.component.d.ts +2 -4
  419. package/object-number/object-number.component.d.ts +2 -4
  420. package/object-status/object-status.component.d.ts +2 -4
  421. package/package.json +3 -3
  422. package/panel/panel.component.d.ts +2 -4
  423. package/radio/radio-button/radio-button.component.d.ts +1 -1
  424. package/rating-indicator/components/rating-indicator.component.d.ts +2 -4
  425. package/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.d.ts +2 -4
  426. package/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.d.ts +2 -4
  427. package/schematics/add-dependencies/index.js +4 -4
  428. package/slider/slider.component.d.ts +2 -4
  429. package/status-indicator/status-indicator.component.d.ts +2 -4
  430. package/table/directives/table-cell.directive.d.ts +6 -12
  431. package/table/directives/table-icon.directive.d.ts +2 -6
  432. package/table/directives/table-row.directive.d.ts +10 -10
  433. package/tabs/tab-item/tab-item.directive.d.ts +2 -4
  434. package/tabs/tab-nav/tab-nav.component.d.ts +4 -8
  435. package/tabs/tab-utils/tab-directives.d.ts +2 -6
  436. package/tile/directives/numeric-content.directives.d.ts +10 -20
  437. package/tile/directives/tile.directives.d.ts +6 -12
  438. package/tile/tile.component.d.ts +1 -1
  439. package/token/token-input.directive.d.ts +2 -4
  440. package/token/tokenizer.component.d.ts +2 -4
  441. package/toolbar/toolbar.component.d.ts +1 -1
  442. package/tree/models/base-tree-item.class.d.ts +1 -3
  443. package/tree/tree.component.d.ts +1 -3
  444. package/esm2020/message-strip/public_api.mjs +0 -3
  445. package/fundamental-ngx-core-v0.42.0-rc.9.tgz +0 -0
  446. package/message-strip/public_api.d.ts +0 -2
@@ -153,7 +153,7 @@ export class ToolbarComponent {
153
153
  this._cd.detectChanges();
154
154
  }
155
155
  /** @hidden */
156
- elementRef() {
156
+ get elementRef() {
157
157
  return this.toolbar;
158
158
  }
159
159
  /** @hidden */
@@ -338,4 +338,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
338
338
  type: ContentChild,
339
339
  args: [TitleToken]
340
340
  }], buildComponentCssClass: [] } });
341
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBSUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFxQixNQUFNLDhCQUE4QixDQUFDO0FBRTVGLE9BQU8sRUFDSCxhQUFhLEVBRWIsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUV2QixxQkFBcUIsRUFDeEIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUNILGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsK0JBQStCLEVBQ2xDLE1BQU0sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7QUFFNUQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLE1BQU0sY0FBYyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsY0FBYyxDQUFDO0FBQy9DLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxD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Z0JBQWdCO2tCQWI1QixTQUFTOytCQUNJLFlBQVksaUJBR1AsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUCwrQkFBK0IsQ0FBQzs0QkFDNUIscUJBQXFCLEVBQUUsa0JBQWtCLENBQUMsT0FBTzt5QkFDcEQsQ0FBQzt3QkFDRixnQkFBZ0I7cUJBQ25COzswQkFvSEksUUFBUTs7MEJBQUksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx5QkFBeUI7NENBN0c3RCxPQUFPO3NCQUROLEtBQUs7Z0JBTU4sS0FBSztzQkFESixLQUFLO2dCQU9GLGNBQWM7c0JBRGpCLEtBQUs7Z0JBZU4sTUFBTTtzQkFETCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBT04sTUFBTTtzQkFETCxLQUFLO2dCQU9OLFdBQVc7c0JBRFYsS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLE9BQU87c0JBRE4sU0FBUzt1QkFBQyxTQUFTO2dCQUtwQixZQUFZO3NCQURYLFNBQVM7dUJBQUMsY0FBYztnQkFLekIsWUFBWTtzQkFEWCxlQUFlO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7Z0JBSzFDLGNBQWM7c0JBRGpCLFlBQVk7dUJBQUMsVUFBVTtnQkErSXhCLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3B0aW9uYWwsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNraXBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERZTkFNSUNfUEFHRV9IRUFERVJfVE9LRU4sIER5bmFtaWNQYWdlSGVhZGVyIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5cbmltcG9ydCB7XG4gICAgYXBwbHlDc3NDbGFzcyxcbiAgICBDc3NDbGFzc0J1aWxkZXIsXG4gICAgRGVzdHJveWVkU2VydmljZSxcbiAgICBPVkVSRkxPV19QUklPUklUWV9TQ09SRSxcbiAgICBPdmVyZmxvd1ByaW9yaXR5LFxuICAgIFJlc2l6ZU9ic2VydmVyU2VydmljZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRpdGxlVG9rZW4gfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdGl0bGUnO1xuaW1wb3J0IHtcbiAgICBDb250ZW50RGVuc2l0eU1vZGUsXG4gICAgQ29udGVudERlbnNpdHlPYnNlcnZlcixcbiAgICBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgVG9vbGJhckl0ZW0gfSBmcm9tICcuL2Fic3RyYWN0LXRvb2xiYXItaXRlbS5jbGFzcyc7XG5cbmNvbnN0IEVMRU1FTlRfTUFSR0lOID0gODtcbmNvbnN0IE9WRVJGTE9XX1NQQUNFID0gNTAgKyAyICogRUxFTUVOVF9NQVJHSU47XG5jb25zdCBNQVhfQ09OVEVOVF9TSVpFID0gOTk5OTk5OTk7XG5cbmV4cG9ydCB0eXBlIFRvb2xiYXJUeXBlID0gJ3NvbGlkJyB8ICd0cmFuc3BhcmVudCcgfCAnYXV0bycgfCAnaW5mbyc7XG5cbmV4cG9ydCBjb25zdCBlbnVtIE92ZXJmbG93UHJpb3JpdHlFbnVtIHtcbiAgICBBTFdBWVMgPSAnYWx3YXlzJyxcbiAgICBORVZFUiA9ICduZXZlcicsXG4gICAgTE9XID0gJ2xvdycsXG4gICAgSElHSCA9ICdoaWdoJyxcbiAgICBESVNBUFBFQVIgPSAnZGlzYXBwZWFyJ1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXRvb2xiYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycyh7XG4gICAgICAgICAgICBkZWZhdWx0Q29udGVudERlbnNpdHk6IENvbnRlbnREZW5zaXR5TW9kZS5DT01QQUNUXG4gICAgICAgIH0pLFxuICAgICAgICBEZXN0cm95ZWRTZXJ2aWNlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgQ3NzQ2xhc3NCdWlsZGVyLCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgSUQgb2YgdGhlIHRvb2xiYXIgdGl0bGVcbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGl0bGVJZDogc3RyaW5nO1xuXG4gICAgLyoqIFByb3BlcnR5IGFsbG93cyB1c2VyIHRvIHBhc3MgYWRkaXRpb25hbCBjbGFzc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xhc3M6IHN0cmluZztcblxuICAgIC8qKiBEZXRlcm1pbmVzIGlmIG92ZXJmbG93IGJ1dHRvbiBzaG91bGQgYmUgdmlzaWJsZVxuICAgICAqIERlZmF1bHQgdmFsdWU6IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgc2hvdWxkT3ZlcmZsb3codmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Nob3VsZE92ZXJmbG93ID0gdmFsO1xuICAgICAgICB0aGlzLnNob3VsZE92ZXJmbG93JC5uZXh0KHZhbCk7XG4gICAgfVxuXG4gICAgZ2V0IHNob3VsZE92ZXJmbG93KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2hvdWxkT3ZlcmZsb3c7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZXMgdGhlIHR5cGUgb2YgdG9vbGJhclxuICAgICAqIEF2YWlsYWJsZSBvcHRpb25zOiAnc29saWQnIHwgJ3RyYW5zcGFyZW50JyB8ICdhdXRvJyB8ICdpbmZvJ1xuICAgICAqIERlZmF1bHQgdmFsdWU6ICdzb2xpZCdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZkVHlwZTogVG9vbGJhclR5cGUgPSAnc29saWQnO1xuICAgIC8qKiBAZGVwcmVjYXRlZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGFzVGl0bGUgPSBmYWxzZTtcblxuICAgIC8qKiBUaGUgdGl0bGUgZm9yIHRoZSB0b29sYmFyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGl0bGU6IHN0cmluZztcblxuICAgIC8qKiBEZXRlcm1pbmVzIGlmIHRvb2xiYXIgc2hvdWxkIGhhcyBhY3RpdmUgc3RhdGUgKG9ubHkgd2hlbiBmZFR5cGUgPT0gJ2luZm8nKVxuICAgICAqIERlZmF1bHQgdmFsdWU6IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhY3RpdmUgPSBmYWxzZTtcblxuICAgIC8qKiBEZXRlcm1pbmVzIGlmIHRvb2xiYXIgc2hvdWxkIGNsZWFyIGJvcmRlciBib3R0b21cbiAgICAgKiBEZWZhdWx0IHZhbHVlOiBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xlYXJCb3JkZXIgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIGFsbCBpdGVtcyBzaG91bGQgYmUgaW5zaWRlIG92ZXJmbG93ICovXG4gICAgQElucHV0KClcbiAgICBmb3JjZU92ZXJmbG93ID0gZmFsc2U7XG5cbiAgICAvKiogVGFiaW5kZXggb2YgdGhlIHRvb2xiYXIgZWxlbWVudCwgdG8gYmUgdXNlZCB3aGVuIGZkVHlwZT1cImluZm9cIiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGFiaW5kZXggPSAtMTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgndG9vbGJhcicpXG4gICAgdG9vbGJhcjogRWxlbWVudFJlZjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgndGl0bGVFbGVtZW50JylcbiAgICB0aXRsZUVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEhlYWRFbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IFRvb2xiYXJJdGVtKSlcbiAgICB0b29sYmFySXRlbXM6IFF1ZXJ5TGlzdDxUb29sYmFySXRlbT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoVGl0bGVUb2tlbilcbiAgICBzZXQgdGl0bGVDb21wb25lbnQodGl0bGU6IFRpdGxlVG9rZW4gfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX3RpdGxlQ29tcG9uZW50JC5uZXh0KHRpdGxlKTtcbiAgICB9XG5cbiAgICBnZXQgdGl0bGVDb21wb25lbnQoKTogVGl0bGVUb2tlbiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGl0bGVDb21wb25lbnQkLnZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb3ZlcmZsb3dJdGVtcyQ6IE9ic2VydmFibGU8VG9vbGJhckl0ZW1bXT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG92ZXJmbG93bkl0ZW1zOiBUb29sYmFySXRlbVtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RpdGxlQ29tcG9uZW50JDogQmVoYXZpb3JTdWJqZWN0PFRpdGxlVG9rZW4gfCBudWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGl0bGVUb2tlbiB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZWZyZXNoT3ZlcmZsb3ckID0gbmV3IEJlaGF2aW9yU3ViamVjdDx2b2lkPih1bmRlZmluZWQpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGdldCBfdG9vbGJhcldpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAodGhpcy50b29sYmFyLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmNsaWVudFdpZHRoIC0gT1ZFUkZMT1dfU1BBQ0U7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zaG91bGRPdmVyZmxvdyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbml0aWFsaXNlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHNob3VsZE92ZXJmbG93JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICByZWFkb25seSBfY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQ6IERlc3Ryb3llZFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXJTZXJ2aWNlOiBSZXNpemVPYnNlcnZlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBJbmplY3QoRFlOQU1JQ19QQUdFX0hFQURFUl9UT0tFTikgcHJpdmF0ZSBfZHluYW1pY1BhZ2VIZWFkZXI/OiBEeW5hbWljUGFnZUhlYWRlclxuICAgICkge1xuICAgICAgICBfY29udGVudERlbnNpdHlPYnNlcnZlci5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdmVyZmxvd0l0ZW1zJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlclNlcnZpY2Uub2JzZXJ2ZSh0aGlzLnRvb2xiYXIubmF0aXZlRWxlbWVudCkucGlwZShtYXAoKCkgPT4gdGhpcy5fdG9vbGJhcldpZHRoKSksXG4gICAgICAgICAgICB0aGlzLnRvb2xiYXJJdGVtcy5jaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMudG9vbGJhckl0ZW1zKSxcbiAgICAgICAgICAgICAgICBtYXAoKHRvb2xiYXJJdGVtcykgPT4gdG9vbGJhckl0ZW1zLnRvQXJyYXkoKSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0aGlzLl90aXRsZUNvbXBvbmVudCQucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHRpdGxlQ29tcG9uZW50KTogSFRNTEVsZW1lbnQgfCBudWxsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aXRsZUNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGl0bGVFbGVtZW50Py5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aXRsZUNvbXBvbmVudC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0aGlzLnNob3VsZE92ZXJmbG93JCxcbiAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hPdmVyZmxvdyRcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW3Rvb2xiYXJXaWR0aCwgdG9vbGJhckl0ZW1zLCB0aXRsZUVsZW1lbnQsIHNob3VsZE92ZXJmbG93XSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzaG91bGRPdmVyZmxvdykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBfc29ydGVkQnlQcmlvcml0eUFuZEdyb3VwSXRlbXMgPSB0aGlzLl9nZXRTb3J0ZWRCeVByaW9yaXR5QW5kR3JvdXBJdGVtcyh0b29sYmFySXRlbXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvdmVyZmxvd0l0ZW1zOiBUb29sYmFySXRlbVtdID0gW107XG4gICAgICAgICAgICAgICAgICAgIF9zb3J0ZWRCeVByaW9yaXR5QW5kR3JvdXBJdGVtcy5yZWR1Y2UoKF9jb250ZW50V2lkdGgsIHRvb2xiYXJJdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtV2lkdGggPSB0b29sYmFySXRlbS53aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1Qcmlvcml0eSA9IHRvb2xiYXJJdGVtLnByaW9yaXR5O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2hvdWxkSXRlbUJlUmVtb3ZlZEJ5V2lkdGggPSBpdGVtV2lkdGggKyBfY29udGVudFdpZHRoID4gdG9vbGJhcldpZHRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2hvdWxkQWx3YXlzQmVJbk92ZXJmbG93ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtUHJpb3JpdHkgPT09IE92ZXJmbG93UHJpb3JpdHlFbnVtLkFMV0FZUyB8fCB0aGlzLmZvcmNlT3ZlcmZsb3c7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaG91bGROZXZlckJlSW5PdmVyZmxvdyA9IGl0ZW1Qcmlvcml0eSA9PT0gT3ZlcmZsb3dQcmlvcml0eUVudW0uTkVWRVI7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHNob3VsZEl0ZW1CZVJlbW92ZWRCeVdpZHRoICYmICFzaG91bGROZXZlckJlSW5PdmVyZmxvdykgfHwgc2hvdWxkQWx3YXlzQmVJbk92ZXJmbG93KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dJdGVtcy5wdXNoKHRvb2xiYXJJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2hvdWxkQWx3YXlzQmVJbk92ZXJmbG93ID8gX2NvbnRlbnRXaWR0aCA6IE1BWF9DT05URU5UX1NJWkU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfY29udGVudFdpZHRoICsgaXRlbVdpZHRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LCB0aXRsZUVsZW1lbnQ/LmNsaWVudFdpZHRoIHx8IDApO1xuICAgICAgICAgICAgICAgICAgICAvLyBIaWRlIG9ycGhhbnNcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB0b29sYmFySXRlbSBvZiBvdmVyZmxvd0l0ZW1zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBncm91cGVkQ29sbGVjdGlvbiA9IHRoaXMuX2dldEdyb3VwZWRDb2xsZWN0aW9uKHRvb2xiYXJJdGVtcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBncm91cGVkQ29sbGVjdGlvblByaW9yaXRpZXMgPSB0aGlzLl9nZXRHcm91cGVkQ29sbGVjdGlvblByaW9yaXR5KGdyb3VwZWRDb2xsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gdG9vbGJhckl0ZW0uZ3JvdXA7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtUHJpb3JpdHkgPSB0b29sYmFySXRlbS5wcmlvcml0eTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChncm91cCAhPT0gMCAmJiBpdGVtUHJpb3JpdHkgIT09IE92ZXJmbG93UHJpb3JpdHlFbnVtLkRJU0FQUEVBUikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1zRnJvbUN1cnJlbnRHcm91cCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2dldEVsZW1lbnRzRnJvbUN1cnJlbnRHcm91cChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBlZENvbGxlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cGVkQ29sbGVjdGlvblByaW9yaXRpZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtc0Zyb21DdXJyZW50R3JvdXAuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3ZlcmZsb3dJdGVtcy5pbmRleE9mKGkpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3dJdGVtcy5wdXNoKGkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG92ZXJmbG93SXRlbXMuc29ydCgoYSwgYikgPT4gdGhpcy5fc29ydFByaW9yaXRpZXMoYS5wcmlvcml0eSwgYi5wcmlvcml0eSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5vdmVyZmxvd0l0ZW1zJC5zdWJzY3JpYmUoKGl0ZW1zKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm92ZXJmbG93bkl0ZW1zID0gaXRlbXM7XG4gICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9pbml0aWFsaXNlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudGl0bGVDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudGl0bGVDb21wb25lbnQuZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdmZC10b29sYmFyX190aXRsZScpO1xuICAgICAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQ2hhbmdlIGRldGVjdGlvbiByZWZlcmVuY2UgKi9cbiAgICBkZXRlY3RDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBlbGVtZW50UmVmKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sYmFyO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQGFwcGx5Q3NzQ2xhc3NcbiAgICBidWlsZENvbXBvbmVudENzc0NsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdmZC10b29sYmFyJyxcbiAgICAgICAgICAgIGBmZC10b29sYmFyLS0ke3RoaXMuZmRUeXBlfWAsXG4gICAgICAgICAgICBgJHt0aGlzLmFjdGl2ZSAmJiB0aGlzLmZkVHlwZSA9PT0gJ2luZm8nID8gJ2ZkLXRvb2xiYXItLWFjdGl2ZScgOiAnJ31gLFxuICAgICAgICAgICAgYCR7dGhpcy5oYXNUaXRsZSB8fCB0aGlzLnRpdGxlIHx8IHRoaXMudGl0bGVDb21wb25lbnQgPyAnZmQtdG9vbGJhci0tdGl0bGUnIDogJyd9YCxcbiAgICAgICAgICAgIGAke3RoaXMuY2xlYXJCb3JkZXIgPyAnZmQtdG9vbGJhci0tY2xlYXInIDogJyd9YCxcbiAgICAgICAgICAgIGAke3RoaXMuX2R5bmFtaWNQYWdlSGVhZGVyID8gJ2ZkLWR5bmFtaWMtcGFnZV9fdG9vbGJhcicgOiAnJ31gXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyaW5nIGNvbGxhcHNpYmxlIHRvb2xiYXIgICovXG4gICAgdXBkYXRlQ29sbGFwc2libGVJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVmcmVzaE92ZXJmbG93JC5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gR2V0IGdyb3VwIG51bWJlciB3aXRoIHRoZSBsb3dlc3QgcHJpb3JpdHkuXG4gICAgICogIFVzZXMgZm9yIGRldGVjdGluZyBhIGdyb3VwIG9mIGVsZW1lbnRzIHdoaWNoIHdvdWxkIGJlIGhpZGRlbiBmcm9tIHRoZSB0b29sYmFyLlxuICAgICAqICAqL1xuICAgIHByaXZhdGUgX2dldExvd2VzdFByaW9yaXR5RnJvbUdyb3VwKFxuICAgICAgICBpdGVtR3JvdXA6IG51bWJlcixcbiAgICAgICAgZ3JvdXBlZENvbGxlY3Rpb25Qcmlvcml0eT86IFJlY29yZDxudW1iZXIsIE92ZXJmbG93UHJpb3JpdHk+XG4gICAgKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcHJpb3JpdHkgPSBncm91cGVkQ29sbGVjdGlvblByaW9yaXR5O1xuICAgICAgICBpZiAoIXByaW9yaXR5IHx8ICFPVkVSRkxPV19QUklPUklUWV9TQ09SRS5nZXQocHJpb3JpdHlbaXRlbUdyb3VwXSkpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtR3JvdXA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBncm91cHMgPSBPYmplY3Qua2V5cyhwcmlvcml0eSk7XG5cbiAgICAgICAgcmV0dXJuIGdyb3Vwcy5yZWR1Y2UoKGxvd2VzdEdyb3VwLCBjdXJyZW50R3JvdXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvd2VzdEdyb3VwUHJpb3JpdHkgPSBwcmlvcml0eVtsb3dlc3RHcm91cF07XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50R3JvdXBQcmlvcml0eSA9IHByaW9yaXR5W2N1cnJlbnRHcm91cF07XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgT1ZFUkZMT1dfUFJJT1JJVFlfU0NPUkUuZ2V0KGN1cnJlbnRHcm91cFByaW9yaXR5KSEgPCBPVkVSRkxPV19QUklPUklUWV9TQ09SRS5nZXQobG93ZXN0R3JvdXBQcmlvcml0eSkhXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gK2N1cnJlbnRHcm91cDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGxvd2VzdEdyb3VwO1xuICAgICAgICB9LCBpdGVtR3JvdXAgYXMgbnVtYmVyKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEVsZW1lbnRzRnJvbUN1cnJlbnRHcm91cChcbiAgICAgICAgaXRlbUdyb3VwOiBudW1iZXIsXG4gICAgICAgIGdyb3VwZWRDb2xsZWN0aW9uPzogUmVjb3JkPG51bWJlciwgVG9vbGJhckl0ZW1bXT4sXG4gICAgICAgIGdyb3VwZWRDb2xsZWN0aW9uUHJpb3JpdHk/OiBSZWNvcmQ8bnVtYmVyLCBPdmVyZmxvd1ByaW9yaXR5PlxuICAgICk6IFRvb2xiYXJJdGVtW10ge1xuICAgICAgICBjb25zdCBsb3dlc3RQcmlvcml0eUZyb21Hcm91cCA9IHRoaXMuX2dldExvd2VzdFByaW9yaXR5RnJvbUdyb3VwKGl0ZW1Hcm91cCwgZ3JvdXBlZENvbGxlY3Rpb25Qcmlvcml0eSk7XG4gICAgICAgIGlmICghZ3JvdXBlZENvbGxlY3Rpb24gfHwgIWdyb3VwZWRDb2xsZWN0aW9uUHJpb3JpdHkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaXRlbXNUb1JlbW92ZSA9IGdyb3VwZWRDb2xsZWN0aW9uW2xvd2VzdFByaW9yaXR5RnJvbUdyb3VwXTtcblxuICAgICAgICBkZWxldGUgZ3JvdXBlZENvbGxlY3Rpb25bbG93ZXN0UHJpb3JpdHlGcm9tR3JvdXBdO1xuICAgICAgICBkZWxldGUgZ3JvdXBlZENvbGxlY3Rpb25Qcmlvcml0eVtsb3dlc3RQcmlvcml0eUZyb21Hcm91cF07XG5cbiAgICAgICAgaWYgKGxvd2VzdFByaW9yaXR5RnJvbUdyb3VwICE9PSBpdGVtR3JvdXApIHtcbiAgICAgICAgICAgIGl0ZW1zVG9SZW1vdmUgPSBbLi4uaXRlbXNUb1JlbW92ZSwgLi4uZ3JvdXBlZENvbGxlY3Rpb25baXRlbUdyb3VwXV07XG4gICAgICAgICAgICBkZWxldGUgZ3JvdXBlZENvbGxlY3Rpb25baXRlbUdyb3VwXTtcbiAgICAgICAgICAgIGRlbGV0ZSBncm91cGVkQ29sbGVjdGlvblByaW9yaXR5W2l0ZW1Hcm91cF07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbXNUb1JlbW92ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBHZXQgdGhlIG9iamVjdCB3aXRoIGdyb3VwZWQgYXJyYXlzIG9mIGVsZW1lbnRzLiAqL1xuICAgIHByaXZhdGUgX2dldEdyb3VwZWRDb2xsZWN0aW9uKHRvb2xiYXJJdGVtczogVG9vbGJhckl0ZW1bXSk6IFJlY29yZDxudW1iZXIsIFRvb2xiYXJJdGVtW10+IHtcbiAgICAgICAgcmV0dXJuIHRvb2xiYXJJdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXRlbVByaW8gPSBpdGVtLnByaW9yaXR5O1xuICAgICAgICAgICAgY29uc3QgaXRlbUdyb3VwID0gaXRlbS5ncm91cDtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBpdGVtUHJpbyA9PT0gT3ZlcmZsb3dQcmlvcml0eUVudW0uTkVWRVIgfHxcbiAgICAgICAgICAgICAgICBpdGVtUHJpbyA9PT0gT3ZlcmZsb3dQcmlvcml0eUVudW0uQUxXQVlTIHx8XG4gICAgICAgICAgICAgICAgaXRlbUdyb3VwID09PSAwXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFhY2NbaXRlbUdyb3VwXSkge1xuICAgICAgICAgICAgICAgIGFjY1tpdGVtR3JvdXBdID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhY2NbaXRlbUdyb3VwXS5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEdldCB0aGUgb2JqZWN0IHdpdGggdGhlIGhpZ2hlc3QgcHJpb3JpdHkgZm9yIGVhY2ggZ3JvdXAgb2YgZWxlbWVudHMuICovXG4gICAgcHJpdmF0ZSBfZ2V0R3JvdXBlZENvbGxlY3Rpb25Qcmlvcml0eShcbiAgICAgICAgZ3JvdXBlZENvbGxlY3Rpb246IFJlY29yZDxudW1iZXIsIFRvb2xiYXJJdGVtW10+XG4gICAgKTogUmVjb3JkPG51bWJlciwgT3ZlcmZsb3dQcmlvcml0eT4ge1xuICAgICAgICBjb25zdCBncm91cHMgPSBPYmplY3Qua2V5cyhncm91cGVkQ29sbGVjdGlvbik7XG5cbiAgICAgICAgcmV0dXJuIGdyb3Vwcy5yZWR1Y2UoKGFjYywgaXRlbUdyb3VwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzb3J0ZWRQcmlvcml0aWVzID0gZ3JvdXBlZENvbGxlY3Rpb24hW2l0ZW1Hcm91cF1cbiAgICAgICAgICAgICAgICAubWFwKChpKSA9PiBpLnByaW9yaXR5KVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKHByaW8pID0+IHByaW8gIT09IE92ZXJmbG93UHJpb3JpdHlFbnVtLkFMV0FZUyAmJiBwcmlvICE9PSBPdmVyZmxvd1ByaW9yaXR5RW51bS5ORVZFUilcbiAgICAgICAgICAgICAgICAuc29ydCh0aGlzLl9zb3J0UHJpb3JpdGllcyk7XG5cbiAgICAgICAgICAgIGFjY1tpdGVtR3JvdXBdID0gc29ydGVkUHJpb3JpdGllc1swXTtcblxuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFNvcnQgcHJpb3JpdGllcyBvZiBlbGVtZW50cy9ncm91cHMuICovXG4gICAgcHJpdmF0ZSBfc29ydFByaW9yaXRpZXMoYTogT3ZlcmZsb3dQcmlvcml0eSwgYjogT3ZlcmZsb3dQcmlvcml0eSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBPVkVSRkxPV19QUklPUklUWV9TQ09SRS5nZXQoYikhIC0gT1ZFUkZMT1dfUFJJT1JJVFlfU0NPUkUuZ2V0KGEpITtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBTb3J0IGJ5IGdyb3VwIGFuZCBwcmlvcml0eSBhbmQgaW5pdGlhbCBwb3NpdGlvbiAqL1xuICAgIHByaXZhdGUgX2dldFNvcnRlZEJ5UHJpb3JpdHlBbmRHcm91cEl0ZW1zKHRvb2xiYXJJdGVtczogVG9vbGJhckl0ZW1bXSk6IFRvb2xiYXJJdGVtW10ge1xuICAgICAgICBjb25zdCBub3RTb3J0ZWQgPSB0b29sYmFySXRlbXMubWFwKChlbGVtZW50LCBpbmRleCkgPT4gKHsgZWxlbWVudCwgaW5kZXggfSkpO1xuXG4gICAgICAgIGNvbnN0IGdyb3VwcyA9IG5vdFNvcnRlZC5yZWR1Y2UoKGdyLCBpdGVtKSA9PiB7XG4gICAgICAgICAgICBsZXQgZ3JvdXBJZCA9IGl0ZW0uZWxlbWVudC5ncm91cDtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1QcmlvID0gaXRlbS5lbGVtZW50LnByaW9yaXR5O1xuICAgICAgICAgICAgaWYgKGl0ZW1QcmlvID09PSBPdmVyZmxvd1ByaW9yaXR5RW51bS5ORVZFUiB8fCBpdGVtUHJpbyA9PT0gT3ZlcmZsb3dQcmlvcml0eUVudW0uQUxXQVlTKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBJZCA9IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghZ3JbZ3JvdXBJZF0pIHtcbiAgICAgICAgICAgICAgICBncltncm91cElkXSA9IFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBncltncm91cElkXS5wdXNoKGl0ZW0pO1xuXG4gICAgICAgICAgICByZXR1cm4gZ3I7XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICBjb25zdCBncm91cElkcyA9IE9iamVjdC5rZXlzKGdyb3VwcylcbiAgICAgICAgICAgIC5tYXAoKGcpID0+IHBhcnNlSW50KGcsIDEwKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKGcpID0+IGcgIT09IDApO1xuXG4gICAgICAgIHJldHVybiBncm91cElkc1xuICAgICAgICAgICAgLm1hcCgoZykgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBtaW5JbmRleCA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xuICAgICAgICAgICAgICAgIGxldCBtYXhQcmlvcml0eSA9IDA7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGdyb3Vwc1tnXSkge1xuICAgICAgICAgICAgICAgICAgICBtaW5JbmRleCA9IE1hdGgubWluKG1pbkluZGV4LCBpdGVtLmluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgbWF4UHJpb3JpdHkgPSBNYXRoLm1heChcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heFByaW9yaXR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgT1ZFUkZMT1dfUFJJT1JJVFlfU0NPUkUuZ2V0KGl0ZW0uZWxlbWVudC5wcmlvcml0eSkgPz8gLUluZmluaXR5XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZ3JvdXA6IGdyb3Vwc1tnXS5tYXAoKHsgZWxlbWVudCB9KSA9PiBlbGVtZW50KSwgbWluSW5kZXgsIG1heFByaW9yaXR5IH07XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNvbmNhdChcbiAgICAgICAgICAgICAgICAhZ3JvdXBzWzBdXG4gICAgICAgICAgICAgICAgICAgID8gW11cbiAgICAgICAgICAgICAgICAgICAgOiBncm91cHNbMF0ubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cDogW2l0ZW0uZWxlbWVudF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1heFByaW9yaXR5OiBPVkVSRkxPV19QUklPUklUWV9TQ09SRS5nZXQoaXRlbS5lbGVtZW50LnByaW9yaXR5KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWluSW5kZXg6IGl0ZW0uaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBiLm1heFByaW9yaXR5IC0gYS5tYXhQcmlvcml0eSB8fCBhLm1pbkluZGV4IC0gYi5taW5JbmRleClcbiAgICAgICAgICAgIC5yZWR1Y2UoKGFyciwgaSkgPT4gYXJyLmNvbmNhdChpLmdyb3VwKSwgW10pO1xuICAgIH1cbn1cbiIsIjxkaXYgI3Rvb2xiYXIgW3RhYmluZGV4XT1cInRhYmluZGV4XCIgW2NsYXNzLmZkLXRvb2xiYXItLWNvenldPVwiX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXIuaXNDb3p5JCB8IGFzeW5jXCI+XG4gICAgPGg0ICpuZ0lmPVwidGl0bGVcIiBjbGFzcz1cImZkLXRpdGxlIGZkLXRpdGxlLS1oNCBmZC10b29sYmFyX190aXRsZVwiIFtpZF09XCJ0aXRsZUlkXCIgI3RpdGxlRWxlbWVudD57eyB0aXRsZSB9fTwvaDQ+XG5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3ZlcmZsb3duSXRlbXMubGVuZ3RoID4gMFwiPlxuICAgICAgICA8ZmQtdG9vbGJhci1zcGFjZXI+PC9mZC10b29sYmFyLXNwYWNlcj5cbiAgICAgICAgPGZkLXRvb2xiYXItc2VwYXJhdG9yPjwvZmQtdG9vbGJhci1zZXBhcmF0b3I+XG4gICAgICAgIDxmZC1wb3BvdmVyIHBsYWNlbWVudD1cImJvdHRvbS1lbmRcIiBbbm9BcnJvd109XCJ0cnVlXCIgY2xhc3M9XCJmZC1wb3BvdmVyXCI+XG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiTW9yZVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJNb3JlXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwib3ZlcmZsb3dcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxuXG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC10b29sYmFyX19vdmVyZmxvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvdmVyZmxvd2VkSXRlbSBvZiBvdmVyZmxvd25JdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkay1keW5hbWljLXBvcnRhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkb21FbGVtZW50XT1cIm92ZXJmbG93ZWRJdGVtLmVsZW1lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIm92ZXJmbG93ZWRJdGVtLnByaW9yaXR5ID09PSAnZGlzYXBwZWFyJyA/ICdub25lJyA6ICdmbGV4J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmZsZXgtZGlyZWN0aW9uXT1cIm92ZXJmbG93ZWRJdGVtLnByaW9yaXR5ID09PSAnZGlzYXBwZWFyJyA/IHVuZGVmaW5lZCA6ICdjb2x1bW4nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmRrLWR5bmFtaWMtcG9ydGFsPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICA8L2ZkLXBvcG92ZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
341
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBSUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFxQixNQUFNLDhCQUE4QixDQUFDO0FBRTVGLE9BQU8sRUFDSCxhQUFhLEVBRWIsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUV2QixxQkFBcUIsRUFDeEIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUNILGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsK0JBQStCLEVBQ2xDLE1BQU0sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7QUFFNUQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLE1BQU0sY0FBYyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsY0FBYyxDQUFDO0FBQy9DLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxD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QWhPUSxnQkFBZ0I7a0JBYjVCLFNBQVM7K0JBQ0ksWUFBWSxpQkFHUCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQLCtCQUErQixDQUFDOzRCQUM1QixxQkFBcUIsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO3lCQUNwRCxDQUFDO3dCQUNGLGdCQUFnQjtxQkFDbkI7OzBCQW9ISSxRQUFROzswQkFBSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHlCQUF5Qjs0Q0E3RzdELE9BQU87c0JBRE4sS0FBSztnQkFNTixLQUFLO3NCQURKLEtBQUs7Z0JBT0YsY0FBYztzQkFEakIsS0FBSztnQkFlTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFPTixNQUFNO3NCQURMLEtBQUs7Z0JBT04sV0FBVztzQkFEVixLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sT0FBTztzQkFETixTQUFTO3VCQUFDLFNBQVM7Z0JBS3BCLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxjQUFjO2dCQUt6QixZQUFZO3NCQURYLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQztnQkFLMUMsY0FBYztzQkFEakIsWUFBWTt1QkFBQyxVQUFVO2dCQStJeEIsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPcHRpb25hbCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2tpcFNlbGYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRFlOQU1JQ19QQUdFX0hFQURFUl9UT0tFTiwgRHluYW1pY1BhZ2VIZWFkZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkJztcblxuaW1wb3J0IHtcbiAgICBhcHBseUNzc0NsYXNzLFxuICAgIENzc0NsYXNzQnVpbGRlcixcbiAgICBEZXN0cm95ZWRTZXJ2aWNlLFxuICAgIE9WRVJGTE9XX1BSSU9SSVRZX1NDT1JFLFxuICAgIE92ZXJmbG93UHJpb3JpdHksXG4gICAgUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGl0bGVUb2tlbiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90aXRsZSc7XG5pbXBvcnQge1xuICAgIENvbnRlbnREZW5zaXR5TW9kZSxcbiAgICBDb250ZW50RGVuc2l0eU9ic2VydmVyLFxuICAgIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnNcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBUb29sYmFySXRlbSB9IGZyb20gJy4vYWJzdHJhY3QtdG9vbGJhci1pdGVtLmNsYXNzJztcblxuY29uc3QgRUxFTUVOVF9NQVJHSU4gPSA4O1xuY29uc3QgT1ZFUkZMT1dfU1BBQ0UgPSA1MCArIDIgKiBFTEVNRU5UX01BUkdJTjtcbmNvbnN0IE1BWF9DT05URU5UX1NJWkUgPSA5OTk5OTk5OTtcblxuZXhwb3J0IHR5cGUgVG9vbGJhclR5cGUgPSAnc29saWQnIHwgJ3RyYW5zcGFyZW50JyB8ICdhdXRvJyB8ICdpbmZvJztcblxuZXhwb3J0IGNvbnN0IGVudW0gT3ZlcmZsb3dQcmlvcml0eUVudW0ge1xuICAgIEFMV0FZUyA9ICdhbHdheXMnLFxuICAgIE5FVkVSID0gJ25ldmVyJyxcbiAgICBMT1cgPSAnbG93JyxcbiAgICBISUdIID0gJ2hpZ2gnLFxuICAgIERJU0FQUEVBUiA9ICdkaXNhcHBlYXInXG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtdG9vbGJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Rvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Rvb2xiYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzKHtcbiAgICAgICAgICAgIGRlZmF1bHRDb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHlNb2RlLkNPTVBBQ1RcbiAgICAgICAgfSksXG4gICAgICAgIERlc3Ryb3llZFNlcnZpY2VcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlclZpZXdDaGVja2VkLCBDc3NDbGFzc0J1aWxkZXIsIEFmdGVyQ29udGVudEluaXQge1xuICAgIC8qKlxuICAgICAqIFRoZSBJRCBvZiB0aGUgdG9vbGJhciB0aXRsZVxuICAgICAqICovXG4gICAgQElucHV0KClcbiAgICB0aXRsZUlkOiBzdHJpbmc7XG5cbiAgICAvKiogUHJvcGVydHkgYWxsb3dzIHVzZXIgdG8gcGFzcyBhZGRpdGlvbmFsIGNsYXNzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjbGFzczogc3RyaW5nO1xuXG4gICAgLyoqIERldGVybWluZXMgaWYgb3ZlcmZsb3cgYnV0dG9uIHNob3VsZCBiZSB2aXNpYmxlXG4gICAgICogRGVmYXVsdCB2YWx1ZTogZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBzaG91bGRPdmVyZmxvdyh2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2hvdWxkT3ZlcmZsb3cgPSB2YWw7XG4gICAgICAgIHRoaXMuc2hvdWxkT3ZlcmZsb3ckLm5leHQodmFsKTtcbiAgICB9XG5cbiAgICBnZXQgc2hvdWxkT3ZlcmZsb3coKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG91bGRPdmVyZmxvdztcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiB0b29sYmFyXG4gICAgICogQXZhaWxhYmxlIG9wdGlvbnM6ICdzb2xpZCcgfCAndHJhbnNwYXJlbnQnIHwgJ2F1dG8nIHwgJ2luZm8nXG4gICAgICogRGVmYXVsdCB2YWx1ZTogJ3NvbGlkJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmRUeXBlOiBUb29sYmFyVHlwZSA9ICdzb2xpZCc7XG4gICAgLyoqIEBkZXByZWNhdGVkICovXG4gICAgQElucHV0KClcbiAgICBoYXNUaXRsZSA9IGZhbHNlO1xuXG4gICAgLyoqIFRoZSB0aXRsZSBmb3IgdGhlIHRvb2xiYXIuICovXG4gICAgQElucHV0KClcbiAgICB0aXRsZTogc3RyaW5nO1xuXG4gICAgLyoqIERldGVybWluZXMgaWYgdG9vbGJhciBzaG91bGQgaGFzIGFjdGl2ZSBzdGF0ZSAob25seSB3aGVuIGZkVHlwZSA9PSAnaW5mbycpXG4gICAgICogRGVmYXVsdCB2YWx1ZTogZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgLyoqIERldGVybWluZXMgaWYgdG9vbGJhciBzaG91bGQgY2xlYXIgYm9yZGVyIGJvdHRvbVxuICAgICAqIERlZmF1bHQgdmFsdWU6IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjbGVhckJvcmRlciA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgYWxsIGl0ZW1zIHNob3VsZCBiZSBpbnNpZGUgb3ZlcmZsb3cgKi9cbiAgICBASW5wdXQoKVxuICAgIGZvcmNlT3ZlcmZsb3cgPSBmYWxzZTtcblxuICAgIC8qKiBUYWJpbmRleCBvZiB0aGUgdG9vbGJhciBlbGVtZW50LCB0byBiZSB1c2VkIHdoZW4gZmRUeXBlPVwiaW5mb1wiICovXG4gICAgQElucHV0KClcbiAgICB0YWJpbmRleCA9IC0xO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCd0b29sYmFyJylcbiAgICB0b29sYmFyOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCd0aXRsZUVsZW1lbnQnKVxuICAgIHRpdGxlRWxlbWVudDogRWxlbWVudFJlZjxIVE1MSGVhZEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gVG9vbGJhckl0ZW0pKVxuICAgIHRvb2xiYXJJdGVtczogUXVlcnlMaXN0PFRvb2xiYXJJdGVtPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChUaXRsZVRva2VuKVxuICAgIHNldCB0aXRsZUNvbXBvbmVudCh0aXRsZTogVGl0bGVUb2tlbiB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fdGl0bGVDb21wb25lbnQkLm5leHQodGl0bGUpO1xuICAgIH1cblxuICAgIGdldCB0aXRsZUNvbXBvbmVudCgpOiBUaXRsZVRva2VuIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aXRsZUNvbXBvbmVudCQudmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvdmVyZmxvd0l0ZW1zJDogT2JzZXJ2YWJsZTxUb29sYmFySXRlbVtdPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb3ZlcmZsb3duSXRlbXM6IFRvb2xiYXJJdGVtW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdGl0bGVDb21wb25lbnQkOiBCZWhhdmlvclN1YmplY3Q8VGl0bGVUb2tlbiB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUaXRsZVRva2VuIHwgbnVsbD4obnVsbCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3JlZnJlc2hPdmVyZmxvdyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KHVuZGVmaW5lZCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF90b29sYmFyV2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnRvb2xiYXIubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuY2xpZW50V2lkdGggLSBPVkVSRkxPV19TUEFDRTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Nob3VsZE92ZXJmbG93ID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2luaXRpYWxpc2VkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgc2hvdWxkT3ZlcmZsb3ckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHJlYWRvbmx5IF9jb250ZW50RGVuc2l0eU9ic2VydmVyOiBDb250ZW50RGVuc2l0eU9ic2VydmVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JDogRGVzdHJveWVkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZXNpemVPYnNlcnZlclNlcnZpY2U6IFJlc2l6ZU9ic2VydmVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEluamVjdChEWU5BTUlDX1BBR0VfSEVBREVSX1RPS0VOKSBwcml2YXRlIF9keW5hbWljUGFnZUhlYWRlcj86IER5bmFtaWNQYWdlSGVhZGVyXG4gICAgKSB7XG4gICAgICAgIF9jb250ZW50RGVuc2l0eU9ic2VydmVyLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm92ZXJmbG93SXRlbXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyU2VydmljZS5vYnNlcnZlKHRoaXMudG9vbGJhci5uYXRpdmVFbGVtZW50KS5waXBlKG1hcCgoKSA9PiB0aGlzLl90b29sYmFyV2lkdGgpKSxcbiAgICAgICAgICAgIHRoaXMudG9vbGJhckl0ZW1zLmNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgodGhpcy50b29sYmFySXRlbXMpLFxuICAgICAgICAgICAgICAgIG1hcCgodG9vbGJhckl0ZW1zKSA9PiB0b29sYmFySXRlbXMudG9BcnJheSgpKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRoaXMuX3RpdGxlQ29tcG9uZW50JC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgodGl0bGVDb21wb25lbnQpOiBIVE1MRWxlbWVudCB8IG51bGwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRpdGxlQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50aXRsZUVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRpdGxlQ29tcG9uZW50LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRoaXMuc2hvdWxkT3ZlcmZsb3ckLFxuICAgICAgICAgICAgdGhpcy5fcmVmcmVzaE92ZXJmbG93JFxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbdG9vbGJhcldpZHRoLCB0b29sYmFySXRlbXMsIHRpdGxlRWxlbWVudCwgc2hvdWxkT3ZlcmZsb3ddKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNob3VsZE92ZXJmbG93KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IF9zb3J0ZWRCeVByaW9yaXR5QW5kR3JvdXBJdGVtcyA9IHRoaXMuX2dldFNvcnRlZEJ5UHJpb3JpdHlBbmRHcm91cEl0ZW1zKHRvb2xiYXJJdGVtcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG92ZXJmbG93SXRlbXM6IFRvb2xiYXJJdGVtW10gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgX3NvcnRlZEJ5UHJpb3JpdHlBbmRHcm91cEl0ZW1zLnJlZHVjZSgoX2NvbnRlbnRXaWR0aCwgdG9vbGJhckl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1XaWR0aCA9IHRvb2xiYXJJdGVtLndpZHRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbVByaW9yaXR5ID0gdG9vbGJhckl0ZW0ucHJpb3JpdHk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaG91bGRJdGVtQmVSZW1vdmVkQnlXaWR0aCA9IGl0ZW1XaWR0aCArIF9jb250ZW50V2lkdGggPiB0b29sYmFyV2lkdGg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaG91bGRBbHdheXNCZUluT3ZlcmZsb3cgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1Qcmlvcml0eSA9PT0gT3ZlcmZsb3dQcmlvcml0eUVudW0uQUxXQVlTIHx8IHRoaXMuZm9yY2VPdmVyZmxvdztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZE5ldmVyQmVJbk92ZXJmbG93ID0gaXRlbVByaW9yaXR5ID09PSBPdmVyZmxvd1ByaW9yaXR5RW51bS5ORVZFUjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoc2hvdWxkSXRlbUJlUmVtb3ZlZEJ5V2lkdGggJiYgIXNob3VsZE5ldmVyQmVJbk92ZXJmbG93KSB8fCBzaG91bGRBbHdheXNCZUluT3ZlcmZsb3cpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvd0l0ZW1zLnB1c2godG9vbGJhckl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzaG91bGRBbHdheXNCZUluT3ZlcmZsb3cgPyBfY29udGVudFdpZHRoIDogTUFYX0NPTlRFTlRfU0laRTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZW50V2lkdGggKyBpdGVtV2lkdGg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sIHRpdGxlRWxlbWVudD8uY2xpZW50V2lkdGggfHwgMCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIEhpZGUgb3JwaGFuc1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHRvb2xiYXJJdGVtIG9mIG92ZXJmbG93SXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwZWRDb2xsZWN0aW9uID0gdGhpcy5fZ2V0R3JvdXBlZENvbGxlY3Rpb24odG9vbGJhckl0ZW1zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwZWRDb2xsZWN0aW9uUHJpb3JpdGllcyA9IHRoaXMuX2dldEdyb3VwZWRDb2xsZWN0aW9uUHJpb3JpdHkoZ3JvdXBlZENvbGxlY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSB0b29sYmFySXRlbS5ncm91cDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1Qcmlvcml0eSA9IHRvb2xiYXJJdGVtLnByaW9yaXR5O1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdyb3VwICE9PSAwICYmIGl0ZW1Qcmlvcml0eSAhPT0gT3ZlcmZsb3dQcmlvcml0eUVudW0uRElTQVBQRUFSKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbXNGcm9tQ3VycmVudEdyb3VwID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2V0RWxlbWVudHNGcm9tQ3VycmVudEdyb3VwKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cGVkQ29sbGVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwZWRDb2xsZWN0aW9uUHJpb3JpdGllc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHx8IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zRnJvbUN1cnJlbnRHcm91cC5mb3JFYWNoKChpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvdmVyZmxvd0l0ZW1zLmluZGV4T2YoaSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvd0l0ZW1zLnB1c2goaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3ZlcmZsb3dJdGVtcy5zb3J0KChhLCBiKSA9PiB0aGlzLl9zb3J0UHJpb3JpdGllcyhhLnByaW9yaXR5LCBiLnByaW9yaXR5KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLm92ZXJmbG93SXRlbXMkLnN1YnNjcmliZSgoaXRlbXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmZsb3duSXRlbXMgPSBpdGVtcztcbiAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpc2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aXRsZUNvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy50aXRsZUNvbXBvbmVudC5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2ZkLXRvb2xiYXJfX3RpdGxlJyk7XG4gICAgICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBDaGFuZ2UgZGV0ZWN0aW9uIHJlZmVyZW5jZSAqL1xuICAgIGRldGVjdENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBlbGVtZW50UmVmKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sYmFyO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQGFwcGx5Q3NzQ2xhc3NcbiAgICBidWlsZENvbXBvbmVudENzc0NsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdmZC10b29sYmFyJyxcbiAgICAgICAgICAgIGBmZC10b29sYmFyLS0ke3RoaXMuZmRUeXBlfWAsXG4gICAgICAgICAgICBgJHt0aGlzLmFjdGl2ZSAmJiB0aGlzLmZkVHlwZSA9PT0gJ2luZm8nID8gJ2ZkLXRvb2xiYXItLWFjdGl2ZScgOiAnJ31gLFxuICAgICAgICAgICAgYCR7dGhpcy5oYXNUaXRsZSB8fCB0aGlzLnRpdGxlIHx8IHRoaXMudGl0bGVDb21wb25lbnQgPyAnZmQtdG9vbGJhci0tdGl0bGUnIDogJyd9YCxcbiAgICAgICAgICAgIGAke3RoaXMuY2xlYXJCb3JkZXIgPyAnZmQtdG9vbGJhci0tY2xlYXInIDogJyd9YCxcbiAgICAgICAgICAgIGAke3RoaXMuX2R5bmFtaWNQYWdlSGVhZGVyID8gJ2ZkLWR5bmFtaWMtcGFnZV9fdG9vbGJhcicgOiAnJ31gXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyaW5nIGNvbGxhcHNpYmxlIHRvb2xiYXIgICovXG4gICAgdXBkYXRlQ29sbGFwc2libGVJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVmcmVzaE92ZXJmbG93JC5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gR2V0IGdyb3VwIG51bWJlciB3aXRoIHRoZSBsb3dlc3QgcHJpb3JpdHkuXG4gICAgICogIFVzZXMgZm9yIGRldGVjdGluZyBhIGdyb3VwIG9mIGVsZW1lbnRzIHdoaWNoIHdvdWxkIGJlIGhpZGRlbiBmcm9tIHRoZSB0b29sYmFyLlxuICAgICAqICAqL1xuICAgIHByaXZhdGUgX2dldExvd2VzdFByaW9yaXR5RnJvbUdyb3VwKFxuICAgICAgICBpdGVtR3JvdXA6IG51bWJlcixcbiAgICAgICAgZ3JvdXBlZENvbGxlY3Rpb25Qcmlvcml0eT86IFJlY29yZDxudW1iZXIsIE92ZXJmbG93UHJpb3JpdHk+XG4gICAgKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcHJpb3JpdHkgPSBncm91cGVkQ29sbGVjdGlvblByaW9yaXR5O1xuICAgICAgICBpZiAoIXByaW9yaXR5IHx8ICFPVkVSRkxPV19QUklPUklUWV9TQ09SRS5nZXQocHJpb3JpdHlbaXRlbUdyb3VwXSkpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtR3JvdXA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBncm91cHMgPSBPYmplY3Qua2V5cyhwcmlvcml0eSk7XG5cbiAgICAgICAgcmV0dXJuIGdyb3Vwcy5yZWR1Y2UoKGxvd2VzdEdyb3VwLCBjdXJyZW50R3JvdXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvd2VzdEdyb3VwUHJpb3JpdHkgPSBwcmlvcml0eVtsb3dlc3RHcm91cF07XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50R3JvdXBQcmlvcml0eSA9IHByaW9yaXR5W2N1cnJlbnRHcm91cF07XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgT1ZFUkZMT1dfUFJJT1JJVFlfU0NPUkUuZ2V0KGN1cnJlbnRHcm91cFByaW9yaXR5KSEgPCBPVkVSRkxPV19QUklPUklUWV9TQ09SRS5nZXQobG93ZXN0R3JvdXBQcmlvcml0eSkhXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gK2N1cnJlbnRHcm91cDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGxvd2VzdEdyb3VwO1xuICAgICAgICB9LCBpdGVtR3JvdXAgYXMgbnVtYmVyKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEVsZW1lbnRzRnJvbUN1cnJlbnRHcm91cChcbiAgICAgICAgaXRlbUdyb3VwOiBudW1iZXIsXG4gICAgICAgIGdyb3VwZWRDb2xsZWN0aW9uPzogUmVjb3JkPG51bWJlciwgVG9vbGJhckl0ZW1bXT4sXG4gICAgICAgIGdyb3VwZWRDb2xsZWN0aW9uUHJpb3JpdHk/OiBSZWNvcmQ8bnVtYmVyLCBPdmVyZmxvd1ByaW9yaXR5PlxuICAgICk6IFRvb2xiYXJJdGVtW10ge1xuICAgICAgICBjb25zdCBsb3dlc3RQcmlvcml0eUZyb21Hcm91cCA9IHRoaXMuX2dldExvd2VzdFByaW9yaXR5RnJvbUdyb3VwKGl0ZW1Hcm91cCwgZ3JvdXBlZENvbGxlY3Rpb25Qcmlvcml0eSk7XG4gICAgICAgIGlmICghZ3JvdXBlZENvbGxlY3Rpb24gfHwgIWdyb3VwZWRDb2xsZWN0aW9uUHJpb3JpdHkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaXRlbXNUb1JlbW92ZSA9IGdyb3VwZWRDb2xsZWN0aW9uW2xvd2VzdFByaW9yaXR5RnJvbUdyb3VwXTtcblxuICAgICAgICBkZWxldGUgZ3JvdXBlZENvbGxlY3Rpb25bbG93ZXN0UHJpb3JpdHlGcm9tR3JvdXBdO1xuICAgICAgICBkZWxldGUgZ3JvdXBlZENvbGxlY3Rpb25Qcmlvcml0eVtsb3dlc3RQcmlvcml0eUZyb21Hcm91cF07XG5cbiAgICAgICAgaWYgKGxvd2VzdFByaW9yaXR5RnJvbUdyb3VwICE9PSBpdGVtR3JvdXApIHtcbiAgICAgICAgICAgIGl0ZW1zVG9SZW1vdmUgPSBbLi4uaXRlbXNUb1JlbW92ZSwgLi4uZ3JvdXBlZENvbGxlY3Rpb25baXRlbUdyb3VwXV07XG4gICAgICAgICAgICBkZWxldGUgZ3JvdXBlZENvbGxlY3Rpb25baXRlbUdyb3VwXTtcbiAgICAgICAgICAgIGRlbGV0ZSBncm91cGVkQ29sbGVjdGlvblByaW9yaXR5W2l0ZW1Hcm91cF07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbXNUb1JlbW92ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBHZXQgdGhlIG9iamVjdCB3aXRoIGdyb3VwZWQgYXJyYXlzIG9mIGVsZW1lbnRzLiAqL1xuICAgIHByaXZhdGUgX2dldEdyb3VwZWRDb2xsZWN0aW9uKHRvb2xiYXJJdGVtczogVG9vbGJhckl0ZW1bXSk6IFJlY29yZDxudW1iZXIsIFRvb2xiYXJJdGVtW10+IHtcbiAgICAgICAgcmV0dXJuIHRvb2xiYXJJdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXRlbVByaW8gPSBpdGVtLnByaW9yaXR5O1xuICAgICAgICAgICAgY29uc3QgaXRlbUdyb3VwID0gaXRlbS5ncm91cDtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBpdGVtUHJpbyA9PT0gT3ZlcmZsb3dQcmlvcml0eUVudW0uTkVWRVIgfHxcbiAgICAgICAgICAgICAgICBpdGVtUHJpbyA9PT0gT3ZlcmZsb3dQcmlvcml0eUVudW0uQUxXQVlTIHx8XG4gICAgICAgICAgICAgICAgaXRlbUdyb3VwID09PSAwXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFhY2NbaXRlbUdyb3VwXSkge1xuICAgICAgICAgICAgICAgIGFjY1tpdGVtR3JvdXBdID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhY2NbaXRlbUdyb3VwXS5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEdldCB0aGUgb2JqZWN0IHdpdGggdGhlIGhpZ2hlc3QgcHJpb3JpdHkgZm9yIGVhY2ggZ3JvdXAgb2YgZWxlbWVudHMuICovXG4gICAgcHJpdmF0ZSBfZ2V0R3JvdXBlZENvbGxlY3Rpb25Qcmlvcml0eShcbiAgICAgICAgZ3JvdXBlZENvbGxlY3Rpb246IFJlY29yZDxudW1iZXIsIFRvb2xiYXJJdGVtW10+XG4gICAgKTogUmVjb3JkPG51bWJlciwgT3ZlcmZsb3dQcmlvcml0eT4ge1xuICAgICAgICBjb25zdCBncm91cHMgPSBPYmplY3Qua2V5cyhncm91cGVkQ29sbGVjdGlvbik7XG5cbiAgICAgICAgcmV0dXJuIGdyb3Vwcy5yZWR1Y2UoKGFjYywgaXRlbUdyb3VwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzb3J0ZWRQcmlvcml0aWVzID0gZ3JvdXBlZENvbGxlY3Rpb24hW2l0ZW1Hcm91cF1cbiAgICAgICAgICAgICAgICAubWFwKChpKSA9PiBpLnByaW9yaXR5KVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKHByaW8pID0+IHByaW8gIT09IE92ZXJmbG93UHJpb3JpdHlFbnVtLkFMV0FZUyAmJiBwcmlvICE9PSBPdmVyZmxvd1ByaW9yaXR5RW51bS5ORVZFUilcbiAgICAgICAgICAgICAgICAuc29ydCh0aGlzLl9zb3J0UHJpb3JpdGllcyk7XG5cbiAgICAgICAgICAgIGFjY1tpdGVtR3JvdXBdID0gc29ydGVkUHJpb3JpdGllc1swXTtcblxuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFNvcnQgcHJpb3JpdGllcyBvZiBlbGVtZW50cy9ncm91cHMuICovXG4gICAgcHJpdmF0ZSBfc29ydFByaW9yaXRpZXMoYTogT3ZlcmZsb3dQcmlvcml0eSwgYjogT3ZlcmZsb3dQcmlvcml0eSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBPVkVSRkxPV19QUklPUklUWV9TQ09SRS5nZXQoYikhIC0gT1ZFUkZMT1dfUFJJT1JJVFlfU0NPUkUuZ2V0KGEpITtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBTb3J0IGJ5IGdyb3VwIGFuZCBwcmlvcml0eSBhbmQgaW5pdGlhbCBwb3NpdGlvbiAqL1xuICAgIHByaXZhdGUgX2dldFNvcnRlZEJ5UHJpb3JpdHlBbmRHcm91cEl0ZW1zKHRvb2xiYXJJdGVtczogVG9vbGJhckl0ZW1bXSk6IFRvb2xiYXJJdGVtW10ge1xuICAgICAgICBjb25zdCBub3RTb3J0ZWQgPSB0b29sYmFySXRlbXMubWFwKChlbGVtZW50LCBpbmRleCkgPT4gKHsgZWxlbWVudCwgaW5kZXggfSkpO1xuXG4gICAgICAgIGNvbnN0IGdyb3VwcyA9IG5vdFNvcnRlZC5yZWR1Y2UoKGdyLCBpdGVtKSA9PiB7XG4gICAgICAgICAgICBsZXQgZ3JvdXBJZCA9IGl0ZW0uZWxlbWVudC5ncm91cDtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1QcmlvID0gaXRlbS5lbGVtZW50LnByaW9yaXR5O1xuICAgICAgICAgICAgaWYgKGl0ZW1QcmlvID09PSBPdmVyZmxvd1ByaW9yaXR5RW51bS5ORVZFUiB8fCBpdGVtUHJpbyA9PT0gT3ZlcmZsb3dQcmlvcml0eUVudW0uQUxXQVlTKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBJZCA9IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghZ3JbZ3JvdXBJZF0pIHtcbiAgICAgICAgICAgICAgICBncltncm91cElkXSA9IFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBncltncm91cElkXS5wdXNoKGl0ZW0pO1xuXG4gICAgICAgICAgICByZXR1cm4gZ3I7XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICBjb25zdCBncm91cElkcyA9IE9iamVjdC5rZXlzKGdyb3VwcylcbiAgICAgICAgICAgIC5tYXAoKGcpID0+IHBhcnNlSW50KGcsIDEwKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKGcpID0+IGcgIT09IDApO1xuXG4gICAgICAgIHJldHVybiBncm91cElkc1xuICAgICAgICAgICAgLm1hcCgoZykgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBtaW5JbmRleCA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xuICAgICAgICAgICAgICAgIGxldCBtYXhQcmlvcml0eSA9IDA7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGdyb3Vwc1tnXSkge1xuICAgICAgICAgICAgICAgICAgICBtaW5JbmRleCA9IE1hdGgubWluKG1pbkluZGV4LCBpdGVtLmluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgbWF4UHJpb3JpdHkgPSBNYXRoLm1heChcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heFByaW9yaXR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgT1ZFUkZMT1dfUFJJT1JJVFlfU0NPUkUuZ2V0KGl0ZW0uZWxlbWVudC5wcmlvcml0eSkgPz8gLUluZmluaXR5XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZ3JvdXA6IGdyb3Vwc1tnXS5tYXAoKHsgZWxlbWVudCB9KSA9PiBlbGVtZW50KSwgbWluSW5kZXgsIG1heFByaW9yaXR5IH07XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNvbmNhdChcbiAgICAgICAgICAgICAgICAhZ3JvdXBzWzBdXG4gICAgICAgICAgICAgICAgICAgID8gW11cbiAgICAgICAgICAgICAgICAgICAgOiBncm91cHNbMF0ubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cDogW2l0ZW0uZWxlbWVudF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1heFByaW9yaXR5OiBPVkVSRkxPV19QUklPUklUWV9TQ09SRS5nZXQoaXRlbS5lbGVtZW50LnByaW9yaXR5KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWluSW5kZXg6IGl0ZW0uaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBiLm1heFByaW9yaXR5IC0gYS5tYXhQcmlvcml0eSB8fCBhLm1pbkluZGV4IC0gYi5taW5JbmRleClcbiAgICAgICAgICAgIC5yZWR1Y2UoKGFyciwgaSkgPT4gYXJyLmNvbmNhdChpLmdyb3VwKSwgW10pO1xuICAgIH1cbn1cbiIsIjxkaXYgI3Rvb2xiYXIgW3RhYmluZGV4XT1cInRhYmluZGV4XCIgW2NsYXNzLmZkLXRvb2xiYXItLWNvenldPVwiX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXIuaXNDb3p5JCB8IGFzeW5jXCI+XG4gICAgPGg0ICpuZ0lmPVwidGl0bGVcIiBjbGFzcz1cImZkLXRpdGxlIGZkLXRpdGxlLS1oNCBmZC10b29sYmFyX190aXRsZVwiIFtpZF09XCJ0aXRsZUlkXCIgI3RpdGxlRWxlbWVudD57eyB0aXRsZSB9fTwvaDQ+XG5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3ZlcmZsb3duSXRlbXMubGVuZ3RoID4gMFwiPlxuICAgICAgICA8ZmQtdG9vbGJhci1zcGFjZXI+PC9mZC10b29sYmFyLXNwYWNlcj5cbiAgICAgICAgPGZkLXRvb2xiYXItc2VwYXJhdG9yPjwvZmQtdG9vbGJhci1zZXBhcmF0b3I+XG4gICAgICAgIDxmZC1wb3BvdmVyIHBsYWNlbWVudD1cImJvdHRvbS1lbmRcIiBbbm9BcnJvd109XCJ0cnVlXCIgY2xhc3M9XCJmZC1wb3BvdmVyXCI+XG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiTW9yZVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJNb3JlXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwib3ZlcmZsb3dcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxuXG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC10b29sYmFyX19vdmVyZmxvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvdmVyZmxvd2VkSXRlbSBvZiBvdmVyZmxvd25JdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkay1keW5hbWljLXBvcnRhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkb21FbGVtZW50XT1cIm92ZXJmbG93ZWRJdGVtLmVsZW1lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIm92ZXJmbG93ZWRJdGVtLnByaW9yaXR5ID09PSAnZGlzYXBwZWFyJyA/ICdub25lJyA6ICdmbGV4J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmZsZXgtZGlyZWN0aW9uXT1cIm92ZXJmbG93ZWRJdGVtLnByaW9yaXR5ID09PSAnZGlzYXBwZWFyJyA/IHVuZGVmaW5lZCA6ICdjb2x1bW4nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmRrLWR5bmFtaWMtcG9ydGFsPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICA8L2ZkLXBvcG92ZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -293,4 +293,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
293
293
  type: ContentChildren,
294
294
  args: [BaseTreeItem]
295
295
  }] } });
296
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3RyZWUvY29tcG9uZW50cy90cmVlLWl0ZW0vdHJlZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3RyZWUvY29tcG9uZW50cy90cmVlLWl0ZW0vdHJlZS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkYsT0FBTyxFQUNILGdCQUFnQixFQUNoQiw0QkFBNEIsRUFFNUIsdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQixNQUFNLEVBQ1QsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc5RixPQUFPLEVBQUUsV0FBVyxFQUFzQixNQUFNLG9CQUFvQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7QUF3QmpFLE1BQU0sT0FBTyxpQkFDVCxTQUFRLFlBQWtCO0lBdkI5Qjs7UUErQkk7O1dBRUc7UUFFSCxPQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7UUF3QmQ7O1dBRUc7UUFFSCxnQkFBVyxHQUFHLEtBQUssQ0FBQztR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Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGFTb3VyY2UsIERhdGFTb3VyY2VEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9kYXRhLXNvdXJjZSc7XG5pbXBvcnQge1xuICAgIERlc3Ryb3llZFNlcnZpY2UsXG4gICAgRkRLX1NFTEVDVEFCTEVfSVRFTV9QUk9WSURFUixcbiAgICBOdWxsYWJsZSxcbiAgICBTZWxlY3RhYmxlSXRlbURpcmVjdGl2ZSxcbiAgICBTZWxlY3RhYmxlSXRlbVRva2VuLFxuICAgIHV1aWR2NFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBzdGFydFdpdGgsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGZFRyZWVBY2NlcHRhYmxlRGF0YVNvdXJjZSwgRmRUcmVlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGEtc291cmNlL3RyZWUtZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHsgVHJlZUl0ZW0sIFRyZWVJdGVtU3RhdGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJlZS1pdGVtJztcbmltcG9ydCB7IFRyZWVTZXJ2aWNlLCBTZWxlY3Rpb25Nb2RlTW9kZWwgfSBmcm9tICcuLi8uLi90cmVlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZVRyZWVJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Jhc2UtdHJlZS1pdGVtLmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC10cmVlLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90cmVlLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtEYXRhU291cmNlRGlyZWN0aXZlXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmQtdHJlZV9faXRlbScsXG4gICAgICAgIHJvbGU6ICdwcmVzZW50YXRpb24nXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgRGVzdHJveWVkU2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRLX1NFTEVDVEFCTEVfSVRFTV9QUk9WSURFUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUcmVlSXRlbUNvbXBvbmVudFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBCYXNlVHJlZUl0ZW0sXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVHJlZUl0ZW1Db21wb25lbnRcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVHJlZUl0ZW1Db21wb25lbnQ8VCBleHRlbmRzIFRyZWVJdGVtID0gVHJlZUl0ZW0sIFAgPSBhbnk+XG4gICAgZXh0ZW5kcyBCYXNlVHJlZUl0ZW08VCwgUD5cbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2VsZWN0YWJsZUl0ZW1Ub2tlbjxIVE1MRWxlbWVudCwgUD4+LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAgIC8qKlxuICAgICAqIFRyZWUgaXRlbSB2YWx1ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHZhbHVlOiBQO1xuICAgIC8qKlxuICAgICAqIFRyZWUgaXRlbSBJRC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGlkID0gdXVpZHY0KCk7XG5cbiAgICAvKipcbiAgICAgKiBUcmVlIGl0ZW0gYXJpYSBsYWJlbC5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbCcpXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRyZWUgaXRlbSBwYXJlbnQgSUQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgcGFyZW50SWQodmFsdWU6IE51bGxhYmxlPHN0cmluZz4pIHtcbiAgICAgICAgdGhpcy5fcGFyZW50SWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50SWQoKTogTnVsbGFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnRJZCB8fCB0aGlzLl9wYXJlbnRUcmVlSXRlbT8uaWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wYXJlbnRJZDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHRyZWUgaXRlbSBpcyBuYXZpZ2F0YWJsZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG5hdmlnYXRhYmxlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBUcmVlIGl0ZW0gc3RhdGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGF0ZTogTnVsbGFibGU8VHJlZUl0ZW1TdGF0ZT47XG5cbiAgICAvKipcbiAgICAgKiBUcmVlIGl0ZW0gY2hpbGQgbm9kZXMgZGF0YSBzb3VyY2UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjaGlsZE5vZGVzOiBGZFRyZWVBY2NlcHRhYmxlRGF0YVNvdXJjZTxUPiA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byB3cmFwIGNvbnRlbnQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB3cmFwQ29udGVudCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVHJlZSBpdGVtIGxldmVsLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGV2ZWwnKVxuICAgIHNldCBsZXZlbCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2xldmVsID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGxldmVsKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sZXZlbCB8fCAodGhpcy5fcGFyZW50VHJlZUl0ZW0gIT09IG51bGwgPyB0aGlzLl9wYXJlbnRUcmVlSXRlbS5sZXZlbCArIDEgOiAxKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xldmVsOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0cmVlIGl0ZW0gaXMgZXhwYW5kZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZXhwYW5kZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9leHBhbmRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3RyZWVTZXJ2aWNlLmFkZEV4cGFuZGFibGVJdGVtKHRoaXMuaWQsIHRoaXMubGV2ZWwsIHZhbHVlKTtcbiAgICAgICAgdGhpcy5fZXhwYW5kZWQgPSB2YWx1ZTtcblxuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RyZWVTZXJ2aWNlLmRldGVjdENoYW5nZXMubmV4dCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFTb3VyY2VEaXJlY3RpdmUuZGF0YVNvdXJjZVByb3ZpZGVyPy5tYXRjaCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuID0gW107XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuTG9hZGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl90cmVlU2VydmljZS5kZXRlY3RDaGFuZ2VzLm5leHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXhwYW5kZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9leHBhbmRlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFdoZXRoZXIgdGhlIHRyZWUgaXRlbSBzaG91bGQgaGF2ZSBhIG5hdmlnYXRpb24gaW5kaWNhdG9yLlxuICAgICAqL1xuICAgIF9uYXZpZ2F0aW9uSW5kaWNhdG9yID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdXNlciBjbGlja3Mgb24gdHJlZSBpdGVtLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHRyZWVJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGBleHBhbmRlZGAgc3RhdGUgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBleHBhbmRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBTZWxlY3Rpb24gc3RhdGUuXG4gICAgICovXG4gICAgX3NlbGVjdGlvblN0YXRlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNoaWxkcmVuOiBUW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY2hpbGRyZW5Mb2FkZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NlbGVjdGlvbk1vZGVsOiBOdWxsYWJsZTxTZWxlY3Rpb25Nb2RlTW9kZWw+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHRyZWUgaXRlbSBoYXMgYW55IHR5cGUgb2YgY2hpbGQgbm9kZXMuICovXG4gICAgZ2V0IGhhc0NoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmNoaWxkTm9kZXMgfHwgdGhpcy5oYXNQcm9qZWN0ZWRDaGlsZHJlbjtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgdHJlZSBpdGVtIGhhcyBjb250ZW50LXByb2plY3RlZCBjaGlsZCBub2Rlcy4gKi9cbiAgICBnZXQgaGFzUHJvamVjdGVkQ2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm9qZWN0ZWRUcmVlSXRlbXMgJiYgdGhpcy5fcHJvamVjdGVkVHJlZUl0ZW1zLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHRyZWUgaXRlbSBoYXMgZGF0YSBzb3VyY2UgY2hpbGRyZW4uICovXG4gICAgZ2V0IGhhc0RzQ2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kc0NoaWxkcmVuTnVtYmVyID4gMDtcbiAgICB9XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIF9jb250YWluZXJUYWJJbmRleCA9IDA7XG5cbiAgICAvKiogVHJlZSBpdGVtIGZvY3VzYWJsZSBjb250YWluZXIuICovXG4gICAgQFZpZXdDaGlsZCgnaXRlbUNvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIGl0ZW1Db250YWluZXI6IE51bGxhYmxlPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PjtcblxuICAgIC8qKiBTZWxlY3RhYmxlIGl0ZW0uICovXG4gICAgQFZpZXdDaGlsZChTZWxlY3RhYmxlSXRlbURpcmVjdGl2ZSlcbiAgICBzZWxlY3RhYmxlTGlzdEl0ZW06IFNlbGVjdGFibGVJdGVtVG9rZW47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oQmFzZVRyZWVJdGVtKVxuICAgIF9wcm9qZWN0ZWRUcmVlSXRlbXM6IFF1ZXJ5TGlzdDxCYXNlVHJlZUl0ZW0+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGl0ZW0gaXMgYWNjZXNzaWJsZSB2aWEga2V5Ym9hcmQuICovXG4gICAgZ2V0IGtleWJvYXJkQWNjZXNzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudFRyZWVJdGVtID09PSBudWxsXG4gICAgICAgICAgICA/IHRydWVcbiAgICAgICAgICAgIDogdGhpcy5fcGFyZW50VHJlZUl0ZW0ua2V5Ym9hcmRBY2Nlc3NpYmxlICYmIHRoaXMuX3BhcmVudFRyZWVJdGVtLmV4cGFuZGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldFNpemU6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jdXJyZW50UG9zaXRpb246IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RvdGFsQ2hpbGRyZW5Mb2FkZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZHNDaGlsZHJlbk51bWJlciA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NsaWNrZWQkID0gbmV3IFN1YmplY3Q8TW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgICAvKiogQ2xpY2tlZCBiZWhhdmlvciBpbXBsZW1lbnRhdGlvbi4gKi9cbiAgICBjbGlja2VkID0gdGhpcy5fY2xpY2tlZCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RyZWVTZXJ2aWNlID0gaW5qZWN0KFRyZWVTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGF0YVNvdXJjZURpcmVjdGl2ZSA9IGluamVjdDxEYXRhU291cmNlRGlyZWN0aXZlPFQsIEZkVHJlZURhdGFTb3VyY2U8VD4+PihEYXRhU291cmNlRGlyZWN0aXZlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBpbmplY3QoRGVzdHJveWVkU2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudFRyZWVJdGVtID0gaW5qZWN0KFRyZWVJdGVtQ29tcG9uZW50LCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICBza2lwU2VsZjogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJlZVNlcnZpY2Uuc2VsZWN0aW9uTW9kZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgobW9kZWwpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsID0gbW9kZWw7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl90cmVlU2VydmljZS5uYXZpZ2F0aW9uSW5kaWNhdG9yLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbmF2aWdhdGlvbkluZGljYXRvciA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZGF0YVNvdXJjZURpcmVjdGl2ZS5kYXRhU291cmNlID0gdGhpcy5jaGlsZE5vZGVzIGFzIERhdGFTb3VyY2U7XG4gICAgICAgIHRoaXMuX3RyZWVTZXJ2aWNlLmFkZEV4cGFuZGFibGVJdGVtKHRoaXMuaWQsIHRoaXMubGV2ZWwsIHRoaXMuZXhwYW5kZWQpO1xuXG4gICAgICAgIHRoaXMuX2RhdGFTb3VyY2VEaXJlY3RpdmUuZGF0YVNvdXJjZVByb3ZpZGVyXG4gICAgICAgICAgICA/LmdldFRvdGFsSXRlbXMoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHRvdGFsSXRlbXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kc0NoaWxkcmVuTnVtYmVyID0gdG90YWxJdGVtcztcbiAgICAgICAgICAgICAgICB0aGlzLl90b3RhbENoaWxkcmVuTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZGF0YVNvdXJjZURpcmVjdGl2ZS5kYXRhU291cmNlUHJvdmlkZXI/LmRhdGFSZWNlaXZlZFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChyZWNlaXZlZCkgPT4gcmVjZWl2ZWQpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9kYXRhU291cmNlRGlyZWN0aXZlLmRhdGFDaGFuZ2VkJCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hpbGRyZW4gPSB0aGlzLl90cmVlU2VydmljZS5ub3JtYWxpemVUcmVlSXRlbXMoZGF0YSwgdGhpcy5pZCwgdGhpcy5sZXZlbCArIDEpIGFzIFRbXTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoaWxkcmVuTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdHJlZVNlcnZpY2UuZGV0ZWN0Q2hhbmdlcy5uZXh0KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcHJvamVjdGVkVHJlZUl0ZW1zLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aChudWxsKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcHJvamVjdGVkVHJlZUl0ZW1zLmZvckVhY2goKHRyZWVJdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0cmVlSXRlbS5zZXRQb3NpdGlvbih0aGlzLl9wcm9qZWN0ZWRUcmVlSXRlbXMubGVuZ3RoLCBpbmRleCArIDEpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJlZVNlcnZpY2UucmVtb3ZlRXhwYW5kYWJsZUl0ZW0odGhpcy5pZCwgdGhpcy5sZXZlbCEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgaXRlbSBpbiB0aGUgc2V0LlxuICAgICAqIEBwYXJhbSB0b3RhbEl0ZW1zIFRvdGFsIGl0ZW1zIGFtb3VudCBpbiB0aGUgc2V0LlxuICAgICAqIEBwYXJhbSBjdXJyZW50SW5kZXggQ3VycmVudCBpdGVtIHBvc2l0aW9uIGluIHRoZSBzZXQuXG4gICAgICovXG4gICAgc2V0UG9zaXRpb24odG90YWxJdGVtczogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXRTaXplID0gdG90YWxJdGVtcztcbiAgICAgICAgdGhpcy5fY3VycmVudFBvc2l0aW9uID0gY3VycmVudEluZGV4O1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdG8gZm9jdXMgb24gdGhlIHRyZWUgaXRlbS4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pdGVtQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCBmb3Igc2V0dGluZyB0aGUgZm9jdXNhYmxlIHRhYmluZGV4LiAqL1xuICAgIHNldENvbnRhaW5lclRhYkluZGV4KHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyVGFiSW5kZXggPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RvZ2dsZUV4cGFuZFN0YXRlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIC8vIERvIG5vdCBidWJibGUgdXAgdG8gc2VsZWN0aW9uIGNoYW5nZSBldmVudC5cbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZDtcbiAgICAgICAgdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KHRoaXMuZXhwYW5kZWQpO1xuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25DbGljayhldmVudDogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5fY2xpY2tlZCQubmV4dChldmVudCk7XG4gICAgICAgIHRoaXMudHJlZUl0ZW1DbGljay5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXRTZWxlY3RlZChzZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3Rpb25TdGF0ZSA9IHNlbGVjdGVkO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZkLXRyZWVfX2l0ZW0tY29udGFpbmVyXCJcbiAgICBbYXR0ci50YWJpbmRleF09XCJfY29udGFpbmVyVGFiSW5kZXhcIlxuICAgIChmZGtDbGlja2VkKT1cIl9vbkNsaWNrKCRldmVudClcIlxuICAgIGZka1NlbGVjdGFibGVJdGVtXG4gICAgKHNlbGVjdGVkKT1cIl9zZXRTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiY2hpbGRyZW4ubGVuZ3RoID4gMCB8fCBoYXNQcm9qZWN0ZWRDaGlsZHJlblwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgW2F0dHIuYXJpYS1zZXRzaXplXT1cIl9zZXRTaXplXCJcbiAgICBbYXR0ci5hcmlhLXBvc2luc2V0XT1cIl9jdXJyZW50UG9zaXRpb25cIlxuICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgW2F0dHIuYXJpYS1sZXZlbF09XCJsZXZlbFwiXG4gICAgI2l0ZW1Db250YWluZXJcbiAgICBbbmdDbGFzc109XCJbXG4gICAgICAgIHN0YXRlID8gJ2hhcy1oaWdobGlnaHQtaW5kaWNhdG9yIGhhcy1oaWdobGlnaHQtaW5kaWNhdG9yLS0nICsgc3RhdGUgOiAnJyxcbiAgICAgICAgbmF2aWdhdGFibGUgPyAnZmQtdHJlZV9faXRlbS1jb250YWluZXItLWFjdGl2ZScgOiAnJyxcbiAgICAgICAgd3JhcENvbnRlbnQgPyAnZmQtdHJlZV9fY29udGVudC0td3JhcCcgOiAnJ1xuICAgIF1cIlxuPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfc2VsZWN0aW9uTW9kZWw/LnBsYWNlbWVudCA9PT0gJ2xlZnQnXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3Rpb25cIj48L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNDaGlsZHJlblwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCJoYXNEc0NoaWxkcmVuIHx8IGhhc1Byb2plY3RlZENoaWxkcmVuXCJcbiAgICAgICAgICAgIChjbGljayk9XCJfdG9nZ2xlRXhwYW5kU3RhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICBjbGFzcz1cImZkLXRyZWVfX2V4cGFuZGVyXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiKGV4cGFuZGVkID8gJ2NvcmVUcmVlLmNvbGxhcHNlJyA6ICdjb3JlVHJlZS5leHBhbmQnKSB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtjbGFzcy5pcy1leHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxmZC1pY29uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC10cmVlX19pY29uXCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZXhwYW5kZWQgPyAnbmF2aWdhdGlvbi1kb3duLWFycm93JyA6ICduYXZpZ2F0aW9uLXJpZ2h0LWFycm93J1wiXG4gICAgICAgICAgICA+PC9mZC1pY29uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC10cmVlX19leHBhbmRlciBmZC10cmVlX19leHBhbmRlci0tbG9hZGluZ1wiICpuZ0lmPVwiIV90b3RhbENoaWxkcmVuTG9hZGVkXCI+XG4gICAgICAgICAgICA8ZmQtc2tlbGV0b24gdHlwZT1cInJlY3RhbmdsZVwiIHdpZHRoPVwiMXJlbVwiIGhlaWdodD1cIjFyZW1cIj48L2ZkLXNrZWxldG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9zZWxlY3Rpb25Nb2RlbD8ucGxhY2VtZW50ID09PSAnYWZ0ZXJFeHBhbmQnXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VsZWN0aW9uXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGRpdiBjbGFzcz1cImZkLXRyZWVfX2NvbnRlbnRcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZkVHJlZUl0ZW1JY29uXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZkVHJlZUl0ZW1UZXh0XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZmRUcmVlSXRlbUJ1dHRvbl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9zZWxlY3Rpb25Nb2RlbD8ucGxhY2VtZW50ID09PSAncmlnaHQnXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3Rpb25cIj48L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxmZC1pY29uXG4gICAgICAgIGdseXBoPVwic2xpbS1hcnJvdy1yaWdodFwiXG4gICAgICAgIGNsYXNzPVwiZmQtdHJlZV9faWNvbiBmZC10cmVlX19pY29uLS1uYXZpZ2F0aW9uXCJcbiAgICAgICAgKm5nSWY9XCJuYXZpZ2F0YWJsZSAmJiBfbmF2aWdhdGlvbkluZGljYXRvclwiXG4gICAgPjwvZmQtaWNvbj5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiaGFzUHJvamVjdGVkQ2hpbGRyZW4gJiYgZXhwYW5kZWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmQtdHJlZVwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZC10cmVlLWl0ZW1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNzZWxlY3Rpb24+XG4gICAgPGRpdiBjbGFzcz1cImZkLWZvcm0taXRlbVwiPlxuICAgICAgICA8ZmQtY2hlY2tib3hcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiX3NlbGVjdGlvblN0YXRlXCJcbiAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICBbc3RhbmRhbG9uZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIHRhYkluZGV4VmFsdWU9XCItMVwiXG4gICAgICAgICAgICAqbmdJZj1cIl9zZWxlY3Rpb25Nb2RlbD8ubW9kZSA9PT0gJ211bHRpcGxlJ1wiXG4gICAgICAgID48L2ZkLWNoZWNrYm94PlxuICAgICAgICA8ZmQtcmFkaW8tYnV0dG9uXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIl9zZWxlY3Rpb25TdGF0ZVwiXG4gICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwiX3NlbGVjdGlvblN0YXRlXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgICAgICAgW3N0YW5kYWxvbmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICB0YWJJbmRleFZhbHVlPVwiLTFcIlxuICAgICAgICAgICAgKm5nSWY9XCJfc2VsZWN0aW9uTW9kZWw/Lm1vZGUgPT09ICdzaW5nbGUnXCJcbiAgICAgICAgPjwvZmQtcmFkaW8tYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
296
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3RyZWUvY29tcG9uZW50cy90cmVlLWl0ZW0vdHJlZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3RyZWUvY29tcG9uZW50cy90cmVlLWl0ZW0vdHJlZS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkYsT0FBTyxFQUNILGdCQUFnQixFQUNoQiw0QkFBNEIsRUFFNUIsdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQixNQUFNLEVBQ1QsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc5RixPQUFPLEVBQUUsV0FBVyxFQUFzQixNQUFNLG9CQUFvQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7QUF3QmpFLE1BQU0sT0FBTyxpQkFDVCxTQUFRLFlBQWtCO0lBdkI5Qjs7UUErQkk7O1dBRUc7UUFFSCxPQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7UUF3QmQ7O1dBRUc7UUFFSCxnQkFBVyxHQUFHLEtBQUssQ0FBQztR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Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGFTb3VyY2UsIERhdGFTb3VyY2VEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9kYXRhLXNvdXJjZSc7XG5pbXBvcnQge1xuICAgIERlc3Ryb3llZFNlcnZpY2UsXG4gICAgRkRLX1NFTEVDVEFCTEVfSVRFTV9QUk9WSURFUixcbiAgICBOdWxsYWJsZSxcbiAgICBTZWxlY3RhYmxlSXRlbURpcmVjdGl2ZSxcbiAgICBTZWxlY3RhYmxlSXRlbVRva2VuLFxuICAgIHV1aWR2NFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBzdGFydFdpdGgsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGZFRyZWVBY2NlcHRhYmxlRGF0YVNvdXJjZSwgRmRUcmVlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGEtc291cmNlL3RyZWUtZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHsgVHJlZUl0ZW0sIFRyZWVJdGVtU3RhdGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJlZS1pdGVtJztcbmltcG9ydCB7IFRyZWVTZXJ2aWNlLCBTZWxlY3Rpb25Nb2RlTW9kZWwgfSBmcm9tICcuLi8uLi90cmVlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZVRyZWVJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Jhc2UtdHJlZS1pdGVtLmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC10cmVlLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90cmVlLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtEYXRhU291cmNlRGlyZWN0aXZlXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmQtdHJlZV9faXRlbScsXG4gICAgICAgIHJvbGU6ICdwcmVzZW50YXRpb24nXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgRGVzdHJveWVkU2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRLX1NFTEVDVEFCTEVfSVRFTV9QUk9WSURFUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUcmVlSXRlbUNvbXBvbmVudFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBCYXNlVHJlZUl0ZW0sXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVHJlZUl0ZW1Db21wb25lbnRcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVHJlZUl0ZW1Db21wb25lbnQ8VCBleHRlbmRzIFRyZWVJdGVtID0gVHJlZUl0ZW0sIFAgPSBhbnk+XG4gICAgZXh0ZW5kcyBCYXNlVHJlZUl0ZW08VCwgUD5cbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2VsZWN0YWJsZUl0ZW1Ub2tlbjxIVE1MRWxlbWVudCwgUD4+LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAgIC8qKlxuICAgICAqIFRyZWUgaXRlbSB2YWx1ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHZhbHVlOiBQO1xuICAgIC8qKlxuICAgICAqIFRyZWUgaXRlbSBJRC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGlkID0gdXVpZHY0KCk7XG5cbiAgICAvKipcbiAgICAgKiBUcmVlIGl0ZW0gYXJpYSBsYWJlbC5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbCcpXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRyZWUgaXRlbSBwYXJlbnQgSUQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgcGFyZW50SWQodmFsdWU6IE51bGxhYmxlPHN0cmluZz4pIHtcbiAgICAgICAgdGhpcy5fcGFyZW50SWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50SWQoKTogTnVsbGFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnRJZCB8fCB0aGlzLl9wYXJlbnRUcmVlSXRlbT8uaWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wYXJlbnRJZDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHRyZWUgaXRlbSBpcyBuYXZpZ2F0YWJsZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG5hdmlnYXRhYmxlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBUcmVlIGl0ZW0gc3RhdGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGF0ZTogTnVsbGFibGU8VHJlZUl0ZW1TdGF0ZT47XG5cbiAgICAvKipcbiAgICAgKiBUcmVlIGl0ZW0gY2hpbGQgbm9kZXMgZGF0YSBzb3VyY2UuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjaGlsZE5vZGVzOiBGZFRyZWVBY2NlcHRhYmxlRGF0YVNvdXJjZTxUPiA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byB3cmFwIGNvbnRlbnQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB3cmFwQ29udGVudCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVHJlZSBpdGVtIGxldmVsLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGV2ZWwnKVxuICAgIHNldCBsZXZlbCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2xldmVsID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGxldmVsKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sZXZlbCB8fCAodGhpcy5fcGFyZW50VHJlZUl0ZW0gIT09IG51bGwgPyB0aGlzLl9wYXJlbnRUcmVlSXRlbS5sZXZlbCArIDEgOiAxKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xldmVsOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0cmVlIGl0ZW0gaXMgZXhwYW5kZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZXhwYW5kZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9leHBhbmRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3RyZWVTZXJ2aWNlLmFkZEV4cGFuZGFibGVJdGVtKHRoaXMuaWQsIHRoaXMubGV2ZWwsIHZhbHVlKTtcbiAgICAgICAgdGhpcy5fZXhwYW5kZWQgPSB2YWx1ZTtcblxuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RyZWVTZXJ2aWNlLmRldGVjdENoYW5nZXMubmV4dCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFTb3VyY2VEaXJlY3RpdmUuZGF0YVNvdXJjZVByb3ZpZGVyPy5tYXRjaCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuID0gW107XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuTG9hZGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl90cmVlU2VydmljZS5kZXRlY3RDaGFuZ2VzLm5leHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXhwYW5kZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9leHBhbmRlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFdoZXRoZXIgdGhlIHRyZWUgaXRlbSBzaG91bGQgaGF2ZSBhIG5hdmlnYXRpb24gaW5kaWNhdG9yLlxuICAgICAqL1xuICAgIF9uYXZpZ2F0aW9uSW5kaWNhdG9yID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdXNlciBjbGlja3Mgb24gdHJlZSBpdGVtLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHRyZWVJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGBleHBhbmRlZGAgc3RhdGUgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBleHBhbmRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBTZWxlY3Rpb24gc3RhdGUuXG4gICAgICovXG4gICAgX3NlbGVjdGlvblN0YXRlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNoaWxkcmVuOiBUW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY2hpbGRyZW5Mb2FkZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NlbGVjdGlvbk1vZGVsOiBOdWxsYWJsZTxTZWxlY3Rpb25Nb2RlTW9kZWw+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHRyZWUgaXRlbSBoYXMgYW55IHR5cGUgb2YgY2hpbGQgbm9kZXMuICovXG4gICAgZ2V0IGhhc0NoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmNoaWxkTm9kZXMgfHwgdGhpcy5oYXNQcm9qZWN0ZWRDaGlsZHJlbjtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgdHJlZSBpdGVtIGhhcyBjb250ZW50LXByb2plY3RlZCBjaGlsZCBub2Rlcy4gKi9cbiAgICBnZXQgaGFzUHJvamVjdGVkQ2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm9qZWN0ZWRUcmVlSXRlbXMgJiYgdGhpcy5fcHJvamVjdGVkVHJlZUl0ZW1zLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHRyZWUgaXRlbSBoYXMgZGF0YSBzb3VyY2UgY2hpbGRyZW4uICovXG4gICAgZ2V0IGhhc0RzQ2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kc0NoaWxkcmVuTnVtYmVyID4gMDtcbiAgICB9XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIF9jb250YWluZXJUYWJJbmRleCA9IDA7XG5cbiAgICAvKiogVHJlZSBpdGVtIGZvY3VzYWJsZSBjb250YWluZXIuICovXG4gICAgQFZpZXdDaGlsZCgnaXRlbUNvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIGl0ZW1Db250YWluZXI6IE51bGxhYmxlPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PjtcblxuICAgIC8qKiBTZWxlY3RhYmxlIGl0ZW0uICovXG4gICAgQFZpZXdDaGlsZChTZWxlY3RhYmxlSXRlbURpcmVjdGl2ZSlcbiAgICBzZWxlY3RhYmxlTGlzdEl0ZW06IFNlbGVjdGFibGVJdGVtVG9rZW47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oQmFzZVRyZWVJdGVtKVxuICAgIF9wcm9qZWN0ZWRUcmVlSXRlbXM6IFF1ZXJ5TGlzdDxCYXNlVHJlZUl0ZW0+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGl0ZW0gaXMgYWNjZXNzaWJsZSB2aWEga2V5Ym9hcmQuICovXG4gICAgZ2V0IGtleWJvYXJkQWNjZXNzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudFRyZWVJdGVtID09PSBudWxsXG4gICAgICAgICAgICA/IHRydWVcbiAgICAgICAgICAgIDogdGhpcy5fcGFyZW50VHJlZUl0ZW0ua2V5Ym9hcmRBY2Nlc3NpYmxlICYmIHRoaXMuX3BhcmVudFRyZWVJdGVtLmV4cGFuZGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldFNpemU6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jdXJyZW50UG9zaXRpb246IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RvdGFsQ2hpbGRyZW5Mb2FkZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZHNDaGlsZHJlbk51bWJlciA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NsaWNrZWQkID0gbmV3IFN1YmplY3Q8TW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgICAvKiogQ2xpY2tlZCBiZWhhdmlvciBpbXBsZW1lbnRhdGlvbi4gKi9cbiAgICBjbGlja2VkID0gdGhpcy5fY2xpY2tlZCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RyZWVTZXJ2aWNlID0gaW5qZWN0KFRyZWVTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGF0YVNvdXJjZURpcmVjdGl2ZSA9IGluamVjdDxEYXRhU291cmNlRGlyZWN0aXZlPFQsIEZkVHJlZURhdGFTb3VyY2U8VD4+PihEYXRhU291cmNlRGlyZWN0aXZlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBpbmplY3QoRGVzdHJveWVkU2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudFRyZWVJdGVtID0gaW5qZWN0KFRyZWVJdGVtQ29tcG9uZW50LCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICBza2lwU2VsZjogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJlZVNlcnZpY2Uuc2VsZWN0aW9uTW9kZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgobW9kZWwpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsID0gbW9kZWw7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl90cmVlU2VydmljZS5uYXZpZ2F0aW9uSW5kaWNhdG9yLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbmF2aWdhdGlvbkluZGljYXRvciA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZGF0YVNvdXJjZURpcmVjdGl2ZS5kYXRhU291cmNlID0gdGhpcy5jaGlsZE5vZGVzIGFzIERhdGFTb3VyY2U8VCwgRmRUcmVlRGF0YVNvdXJjZTxUPj47XG4gICAgICAgIHRoaXMuX3RyZWVTZXJ2aWNlLmFkZEV4cGFuZGFibGVJdGVtKHRoaXMuaWQsIHRoaXMubGV2ZWwsIHRoaXMuZXhwYW5kZWQpO1xuXG4gICAgICAgIHRoaXMuX2RhdGFTb3VyY2VEaXJlY3RpdmUuZGF0YVNvdXJjZVByb3ZpZGVyXG4gICAgICAgICAgICA/LmdldFRvdGFsSXRlbXMoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHRvdGFsSXRlbXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kc0NoaWxkcmVuTnVtYmVyID0gdG90YWxJdGVtcztcbiAgICAgICAgICAgICAgICB0aGlzLl90b3RhbENoaWxkcmVuTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZGF0YVNvdXJjZURpcmVjdGl2ZS5kYXRhU291cmNlUHJvdmlkZXI/LmRhdGFSZWNlaXZlZFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChyZWNlaXZlZCkgPT4gcmVjZWl2ZWQpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9kYXRhU291cmNlRGlyZWN0aXZlLmRhdGFDaGFuZ2VkJCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hpbGRyZW4gPSB0aGlzLl90cmVlU2VydmljZS5ub3JtYWxpemVUcmVlSXRlbXMoZGF0YSwgdGhpcy5pZCwgdGhpcy5sZXZlbCArIDEpIGFzIFRbXTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoaWxkcmVuTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdHJlZVNlcnZpY2UuZGV0ZWN0Q2hhbmdlcy5uZXh0KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcHJvamVjdGVkVHJlZUl0ZW1zLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aChudWxsKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcHJvamVjdGVkVHJlZUl0ZW1zLmZvckVhY2goKHRyZWVJdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0cmVlSXRlbS5zZXRQb3NpdGlvbih0aGlzLl9wcm9qZWN0ZWRUcmVlSXRlbXMubGVuZ3RoLCBpbmRleCArIDEpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJlZVNlcnZpY2UucmVtb3ZlRXhwYW5kYWJsZUl0ZW0odGhpcy5pZCwgdGhpcy5sZXZlbCEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgaXRlbSBpbiB0aGUgc2V0LlxuICAgICAqIEBwYXJhbSB0b3RhbEl0ZW1zIFRvdGFsIGl0ZW1zIGFtb3VudCBpbiB0aGUgc2V0LlxuICAgICAqIEBwYXJhbSBjdXJyZW50SW5kZXggQ3VycmVudCBpdGVtIHBvc2l0aW9uIGluIHRoZSBzZXQuXG4gICAgICovXG4gICAgc2V0UG9zaXRpb24odG90YWxJdGVtczogbnVtYmVyLCBjdXJyZW50SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXRTaXplID0gdG90YWxJdGVtcztcbiAgICAgICAgdGhpcy5fY3VycmVudFBvc2l0aW9uID0gY3VycmVudEluZGV4O1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdG8gZm9jdXMgb24gdGhlIHRyZWUgaXRlbS4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pdGVtQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCBmb3Igc2V0dGluZyB0aGUgZm9jdXNhYmxlIHRhYmluZGV4LiAqL1xuICAgIHNldENvbnRhaW5lclRhYkluZGV4KHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyVGFiSW5kZXggPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RvZ2dsZUV4cGFuZFN0YXRlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIC8vIERvIG5vdCBidWJibGUgdXAgdG8gc2VsZWN0aW9uIGNoYW5nZSBldmVudC5cbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZDtcbiAgICAgICAgdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KHRoaXMuZXhwYW5kZWQpO1xuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25DbGljayhldmVudDogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5fY2xpY2tlZCQubmV4dChldmVudCk7XG4gICAgICAgIHRoaXMudHJlZUl0ZW1DbGljay5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXRTZWxlY3RlZChzZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3Rpb25TdGF0ZSA9IHNlbGVjdGVkO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZkLXRyZWVfX2l0ZW0tY29udGFpbmVyXCJcbiAgICBbYXR0ci50YWJpbmRleF09XCJfY29udGFpbmVyVGFiSW5kZXhcIlxuICAgIChmZGtDbGlja2VkKT1cIl9vbkNsaWNrKCRldmVudClcIlxuICAgIGZka1NlbGVjdGFibGVJdGVtXG4gICAgKHNlbGVjdGVkKT1cIl9zZXRTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiY2hpbGRyZW4ubGVuZ3RoID4gMCB8fCBoYXNQcm9qZWN0ZWRDaGlsZHJlblwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgW2F0dHIuYXJpYS1zZXRzaXplXT1cIl9zZXRTaXplXCJcbiAgICBbYXR0ci5hcmlhLXBvc2luc2V0XT1cIl9jdXJyZW50UG9zaXRpb25cIlxuICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgW2F0dHIuYXJpYS1sZXZlbF09XCJsZXZlbFwiXG4gICAgI2l0ZW1Db250YWluZXJcbiAgICBbbmdDbGFzc109XCJbXG4gICAgICAgIHN0YXRlID8gJ2hhcy1oaWdobGlnaHQtaW5kaWNhdG9yIGhhcy1oaWdobGlnaHQtaW5kaWNhdG9yLS0nICsgc3RhdGUgOiAnJyxcbiAgICAgICAgbmF2aWdhdGFibGUgPyAnZmQtdHJlZV9faXRlbS1jb250YWluZXItLWFjdGl2ZScgOiAnJyxcbiAgICAgICAgd3JhcENvbnRlbnQgPyAnZmQtdHJlZV9fY29udGVudC0td3JhcCcgOiAnJ1xuICAgIF1cIlxuPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfc2VsZWN0aW9uTW9kZWw/LnBsYWNlbWVudCA9PT0gJ2xlZnQnXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3Rpb25cIj48L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNDaGlsZHJlblwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCJoYXNEc0NoaWxkcmVuIHx8IGhhc1Byb2plY3RlZENoaWxkcmVuXCJcbiAgICAgICAgICAgIChjbGljayk9XCJfdG9nZ2xlRXhwYW5kU3RhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICBjbGFzcz1cImZkLXRyZWVfX2V4cGFuZGVyXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiKGV4cGFuZGVkID8gJ2NvcmVUcmVlLmNvbGxhcHNlJyA6ICdjb3JlVHJlZS5leHBhbmQnKSB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtjbGFzcy5pcy1leHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxmZC1pY29uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC10cmVlX19pY29uXCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZXhwYW5kZWQgPyAnbmF2aWdhdGlvbi1kb3duLWFycm93JyA6ICduYXZpZ2F0aW9uLXJpZ2h0LWFycm93J1wiXG4gICAgICAgICAgICA+PC9mZC1pY29uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC10cmVlX19leHBhbmRlciBmZC10cmVlX19leHBhbmRlci0tbG9hZGluZ1wiICpuZ0lmPVwiIV90b3RhbENoaWxkcmVuTG9hZGVkXCI+XG4gICAgICAgICAgICA8ZmQtc2tlbGV0b24gdHlwZT1cInJlY3RhbmdsZVwiIHdpZHRoPVwiMXJlbVwiIGhlaWdodD1cIjFyZW1cIj48L2ZkLXNrZWxldG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9zZWxlY3Rpb25Nb2RlbD8ucGxhY2VtZW50ID09PSAnYWZ0ZXJFeHBhbmQnXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VsZWN0aW9uXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGRpdiBjbGFzcz1cImZkLXRyZWVfX2NvbnRlbnRcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZkVHJlZUl0ZW1JY29uXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZkVHJlZUl0ZW1UZXh0XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZmRUcmVlSXRlbUJ1dHRvbl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9zZWxlY3Rpb25Nb2RlbD8ucGxhY2VtZW50ID09PSAncmlnaHQnXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3Rpb25cIj48L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxmZC1pY29uXG4gICAgICAgIGdseXBoPVwic2xpbS1hcnJvdy1yaWdodFwiXG4gICAgICAgIGNsYXNzPVwiZmQtdHJlZV9faWNvbiBmZC10cmVlX19pY29uLS1uYXZpZ2F0aW9uXCJcbiAgICAgICAgKm5nSWY9XCJuYXZpZ2F0YWJsZSAmJiBfbmF2aWdhdGlvbkluZGljYXRvclwiXG4gICAgPjwvZmQtaWNvbj5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiaGFzUHJvamVjdGVkQ2hpbGRyZW4gJiYgZXhwYW5kZWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmQtdHJlZVwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZC10cmVlLWl0ZW1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNzZWxlY3Rpb24+XG4gICAgPGRpdiBjbGFzcz1cImZkLWZvcm0taXRlbVwiPlxuICAgICAgICA8ZmQtY2hlY2tib3hcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiX3NlbGVjdGlvblN0YXRlXCJcbiAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICBbc3RhbmRhbG9uZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIHRhYkluZGV4VmFsdWU9XCItMVwiXG4gICAgICAgICAgICAqbmdJZj1cIl9zZWxlY3Rpb25Nb2RlbD8ubW9kZSA9PT0gJ211bHRpcGxlJ1wiXG4gICAgICAgID48L2ZkLWNoZWNrYm94PlxuICAgICAgICA8ZmQtcmFkaW8tYnV0dG9uXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIl9zZWxlY3Rpb25TdGF0ZVwiXG4gICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwiX3NlbGVjdGlvblN0YXRlXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgICAgICAgW3N0YW5kYWxvbmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICB0YWJJbmRleFZhbHVlPVwiLTFcIlxuICAgICAgICAgICAgKm5nSWY9XCJfc2VsZWN0aW9uTW9kZWw/Lm1vZGUgPT09ICdzaW5nbGUnXCJcbiAgICAgICAgPjwvZmQtcmFkaW8tYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -5,21 +5,17 @@ export class BaseTreeItem {
5
5
  /** @hidden */
6
6
  constructor() {
7
7
  /** @hidden */
8
- this._elementRef = inject(ElementRef);
8
+ this.elementRef = inject(ElementRef);
9
9
  /** @hidden */
10
10
  this._treeItemDir = inject(TreeItemDirective, {
11
11
  optional: true
12
12
  });
13
13
  this._treeItemDir?.setTreeItem(this);
14
14
  }
15
- /** @hidden */
16
- elementRef() {
17
- return this._elementRef;
18
- }
19
15
  }
20
16
  BaseTreeItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BaseTreeItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
21
17
  BaseTreeItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: BaseTreeItem, ngImport: i0 });
22
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BaseTreeItem, decorators: [{
23
19
  type: Directive
24
20
  }], ctorParameters: function () { return []; } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS10cmVlLWl0ZW0uY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90cmVlL21vZGVscy9iYXNlLXRyZWUtaXRlbS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBSXRFLE1BQU0sT0FBZ0IsWUFBWTtJQThGOUIsY0FBYztJQUNkO1FBUkEsY0FBYztRQUNHLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWxELGNBQWM7UUFDRyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRTtZQUN0RCxRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7UUFHQyxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsY0FBYztJQUNkLFVBQVU7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQzs7eUdBdEdpQixZQUFZOzZGQUFaLFlBQVk7MkZBQVosWUFBWTtrQkFEakMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSwgU2VsZWN0YWJsZUl0ZW1Ub2tlbiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEZkVHJlZUFjY2VwdGFibGVEYXRhU291cmNlIH0gZnJvbSAnLi4vZGF0YS1zb3VyY2UvdHJlZS1kYXRhLXNvdXJjZSc7XG5pbXBvcnQgeyBUcmVlSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvdHJlZS1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUcmVlSXRlbSwgVHJlZUl0ZW1TdGF0ZSB9IGZyb20gJy4vdHJlZS1pdGVtJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVRyZWVJdGVtPFQgZXh0ZW5kcyBUcmVlSXRlbSA9IFRyZWVJdGVtLCBQID0gYW55PlxuICAgIGltcGxlbWVudHMgUGFydGlhbDxTZWxlY3RhYmxlSXRlbVRva2VuPEhUTUxFbGVtZW50LCBQPj5cbntcbiAgICAvKipcbiAgICAgKiBUcmVlIGl0ZW0gdmFsdWUuXG4gICAgICovXG4gICAgYWJzdHJhY3QgdmFsdWU6IFA7XG4gICAgLyoqXG4gICAgICogVHJlZSBpdGVtIElELlxuICAgICAqL1xuICAgIGFic3RyYWN0IGlkOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUcmVlIGl0ZW0gcGFyZW50IElELlxuICAgICAqL1xuICAgIGFic3RyYWN0IHBhcmVudElkOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgdHJlZSBpdGVtIGlzIG5hdmlnYXRhYmxlLlxuICAgICAqL1xuICAgIGFic3RyYWN0IG5hdmlnYXRhYmxlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogVHJlZSBpdGVtIHN0YXRlLlxuICAgICAqL1xuICAgIGFic3RyYWN0IHN0YXRlOiBOdWxsYWJsZTxUcmVlSXRlbVN0YXRlPjtcblxuICAgIC8qKlxuICAgICAqIFRyZWUgaXRlbSBjaGlsZCBub2RlcyBkYXRhIHNvdXJjZS5cbiAgICAgKi9cbiAgICBhYnN0cmFjdCBjaGlsZE5vZGVzOiBGZFRyZWVBY2NlcHRhYmxlRGF0YVNvdXJjZTxUPjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gd3JhcCBjb250ZW50LlxuICAgICAqL1xuICAgIGFic3RyYWN0IHdyYXBDb250ZW50OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgdHJlZSBpdGVtIGlzIGV4cGFuZGVkLlxuICAgICAqL1xuICAgIGFic3RyYWN0IGV4cGFuZGVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogVHJlZSBpdGVtIGxldmVsLlxuICAgICAqL1xuICAgIGFic3RyYWN0IGxldmVsOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBUcmVlIGl0ZW0gY2hpbGRyZW4uXG4gICAgICovXG4gICAgYWJzdHJhY3QgY2hpbGRyZW46IFRbXTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHRyZWUgaXRlbSBoYXMgY29udGVudCBwcm9qZWN0ZWQgY2hpbGQgbm9kZXMuXG4gICAgICovXG4gICAgYWJzdHJhY3QgaGFzUHJvamVjdGVkQ2hpbGRyZW46IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0cmVlIGl0ZW0gaGFzIGNvbnRlbnQgcHJvamVjdGVkIGNoaWxkIG5vZGVzIG9yIGRhdGEgc291cmNlIGZvciBjaGlsZHJlbi5cbiAgICAgKi9cbiAgICBhYnN0cmFjdCBoYXNDaGlsZHJlbjogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEZvY3VzYWJsZSB0cmVlIGl0ZW0gY29udGFpbmVyLlxuICAgICAqL1xuICAgIGFic3RyYWN0IGl0ZW1Db250YWluZXI6IE51bGxhYmxlPEVsZW1lbnRSZWY+O1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgdHJlZSBpdGVtIGlzIGtleWJvYXJkIG5hdmlnYXRhYmxlLlxuICAgICAqL1xuICAgIGFic3RyYWN0IGtleWJvYXJkQWNjZXNzaWJsZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRyZWUgaXRlbSBzZWxlY3RhYmxlIGl0ZW0uXG4gICAgICovXG4gICAgYWJzdHJhY3Qgc2VsZWN0YWJsZUxpc3RJdGVtOiBTZWxlY3RhYmxlSXRlbVRva2VuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgdHJlZSBpdGVtIGhhcyBEYXRhIFNvdXJjZSBjaGlsZHJlbi5cbiAgICAgKi9cbiAgICBhYnN0cmFjdCBoYXNEc0NoaWxkcmVuOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY2hpbGRyZW4gbm9kZXMgYmVpbmcgbG9hZGVkIGZyb20gdGhlIERhdGEgU291cmNlLlxuICAgICAqL1xuICAgIGFic3RyYWN0IGNoaWxkcmVuTG9hZGVkOiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF90cmVlSXRlbURpciA9IGluamVjdChUcmVlSXRlbURpcmVjdGl2ZSwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX3RyZWVJdGVtRGlyPy5zZXRUcmVlSXRlbSh0aGlzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGVsZW1lbnRSZWYoKTogRWxlbWVudFJlZiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdG8gZm9jdXMgb24gdGhlIHRyZWUgaXRlbS4gKi9cbiAgICBhYnN0cmFjdCBmb2N1cygpOiB2b2lkO1xuXG4gICAgLyoqIE1ldGhvZCB0byBzZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBpdGVtIGluIHNldC4gKi9cbiAgICBhYnN0cmFjdCBzZXRQb3NpdGlvbih0b3RhbEl0ZW1zQ291bnQ6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIpOiB2b2lkO1xuXG4gICAgLyoqIE1ldGhvZCBmb3Igc2V0dGluZyB0aGUgZm9jdXNhYmxlIHRhYmluZGV4LiAqL1xuICAgIGFic3RyYWN0IHNldENvbnRhaW5lclRhYkluZGV4KHZhbHVlOiBudW1iZXIpOiB2b2lkO1xufVxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS10cmVlLWl0ZW0uY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90cmVlL21vZGVscy9iYXNlLXRyZWUtaXRlbS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBSXRFLE1BQU0sT0FBZ0IsWUFBWTtJQThGOUIsY0FBYztJQUNkO1FBUkEsY0FBYztRQUNFLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFaEQsY0FBYztRQUNHLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixFQUFFO1lBQ3RELFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUdDLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7O3lHQWpHaUIsWUFBWTs2RkFBWixZQUFZOzJGQUFaLFlBQVk7a0JBRGpDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUsIFNlbGVjdGFibGVJdGVtVG9rZW4gfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBGZFRyZWVBY2NlcHRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4uL2RhdGEtc291cmNlL3RyZWUtZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHsgVHJlZUl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3RyZWUtaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVHJlZUl0ZW0sIFRyZWVJdGVtU3RhdGUgfSBmcm9tICcuL3RyZWUtaXRlbSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VUcmVlSXRlbTxUIGV4dGVuZHMgVHJlZUl0ZW0gPSBUcmVlSXRlbSwgUCA9IGFueT5cbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2VsZWN0YWJsZUl0ZW1Ub2tlbjxIVE1MRWxlbWVudCwgUD4+XG57XG4gICAgLyoqXG4gICAgICogVHJlZSBpdGVtIHZhbHVlLlxuICAgICAqL1xuICAgIGFic3RyYWN0IHZhbHVlOiBQO1xuICAgIC8qKlxuICAgICAqIFRyZWUgaXRlbSBJRC5cbiAgICAgKi9cbiAgICBhYnN0cmFjdCBpZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVHJlZSBpdGVtIHBhcmVudCBJRC5cbiAgICAgKi9cbiAgICBhYnN0cmFjdCBwYXJlbnRJZDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHRyZWUgaXRlbSBpcyBuYXZpZ2F0YWJsZS5cbiAgICAgKi9cbiAgICBhYnN0cmFjdCBuYXZpZ2F0YWJsZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRyZWUgaXRlbSBzdGF0ZS5cbiAgICAgKi9cbiAgICBhYnN0cmFjdCBzdGF0ZTogTnVsbGFibGU8VHJlZUl0ZW1TdGF0ZT47XG5cbiAgICAvKipcbiAgICAgKiBUcmVlIGl0ZW0gY2hpbGQgbm9kZXMgZGF0YSBzb3VyY2UuXG4gICAgICovXG4gICAgYWJzdHJhY3QgY2hpbGROb2RlczogRmRUcmVlQWNjZXB0YWJsZURhdGFTb3VyY2U8VD47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIHdyYXAgY29udGVudC5cbiAgICAgKi9cbiAgICBhYnN0cmFjdCB3cmFwQ29udGVudDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHRyZWUgaXRlbSBpcyBleHBhbmRlZC5cbiAgICAgKi9cbiAgICBhYnN0cmFjdCBleHBhbmRlZDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRyZWUgaXRlbSBsZXZlbC5cbiAgICAgKi9cbiAgICBhYnN0cmFjdCBsZXZlbDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVHJlZSBpdGVtIGNoaWxkcmVuLlxuICAgICAqL1xuICAgIGFic3RyYWN0IGNoaWxkcmVuOiBUW107XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0cmVlIGl0ZW0gaGFzIGNvbnRlbnQgcHJvamVjdGVkIGNoaWxkIG5vZGVzLlxuICAgICAqL1xuICAgIGFic3RyYWN0IGhhc1Byb2plY3RlZENoaWxkcmVuOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgdHJlZSBpdGVtIGhhcyBjb250ZW50IHByb2plY3RlZCBjaGlsZCBub2RlcyBvciBkYXRhIHNvdXJjZSBmb3IgY2hpbGRyZW4uXG4gICAgICovXG4gICAgYWJzdHJhY3QgaGFzQ2hpbGRyZW46IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBGb2N1c2FibGUgdHJlZSBpdGVtIGNvbnRhaW5lci5cbiAgICAgKi9cbiAgICBhYnN0cmFjdCBpdGVtQ29udGFpbmVyOiBOdWxsYWJsZTxFbGVtZW50UmVmPjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHRyZWUgaXRlbSBpcyBrZXlib2FyZCBuYXZpZ2F0YWJsZS5cbiAgICAgKi9cbiAgICBhYnN0cmFjdCBrZXlib2FyZEFjY2Vzc2libGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBUcmVlIGl0ZW0gc2VsZWN0YWJsZSBpdGVtLlxuICAgICAqL1xuICAgIGFic3RyYWN0IHNlbGVjdGFibGVMaXN0SXRlbTogU2VsZWN0YWJsZUl0ZW1Ub2tlbjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHRyZWUgaXRlbSBoYXMgRGF0YSBTb3VyY2UgY2hpbGRyZW4uXG4gICAgICovXG4gICAgYWJzdHJhY3QgaGFzRHNDaGlsZHJlbjogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNoaWxkcmVuIG5vZGVzIGJlaW5nIGxvYWRlZCBmcm9tIHRoZSBEYXRhIFNvdXJjZS5cbiAgICAgKi9cbiAgICBhYnN0cmFjdCBjaGlsZHJlbkxvYWRlZDogYm9vbGVhbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RyZWVJdGVtRGlyID0gaW5qZWN0KFRyZWVJdGVtRGlyZWN0aXZlLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5fdHJlZUl0ZW1EaXI/LnNldFRyZWVJdGVtKHRoaXMpO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdG8gZm9jdXMgb24gdGhlIHRyZWUgaXRlbS4gKi9cbiAgICBhYnN0cmFjdCBmb2N1cygpOiB2b2lkO1xuXG4gICAgLyoqIE1ldGhvZCB0byBzZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBpdGVtIGluIHNldC4gKi9cbiAgICBhYnN0cmFjdCBzZXRQb3NpdGlvbih0b3RhbEl0ZW1zQ291bnQ6IG51bWJlciwgY3VycmVudEluZGV4OiBudW1iZXIpOiB2b2lkO1xuXG4gICAgLyoqIE1ldGhvZCBmb3Igc2V0dGluZyB0aGUgZm9jdXNhYmxlIHRhYmluZGV4LiAqL1xuICAgIGFic3RyYWN0IHNldENvbnRhaW5lclRhYkluZGV4KHZhbHVlOiBudW1iZXIpOiB2b2lkO1xufVxuIl19