@pepperi-addons/ngx-lib 0.4.2-scroll.7 → 0.5.0-ng15.1

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 (508) hide show
  1. package/address/address.component.d.ts +1 -1
  2. package/attachment/attachment.component.d.ts +2 -1
  3. package/bread-crumbs/bread-crumbs.component.d.ts +1 -1
  4. package/bread-crumbs/bread-crumbs.model.d.ts +1 -1
  5. package/button/button.component.d.ts +1 -1
  6. package/carousel/carousel-item.directive.d.ts +1 -1
  7. package/carousel/carousel.component.d.ts +1 -1
  8. package/checkbox/checkbox.component.d.ts +2 -1
  9. package/chips/chips.component.d.ts +4 -5
  10. package/chips/chips.component.theme.scss +15 -5
  11. package/chips/chips.model.d.ts +2 -2
  12. package/chips/chips.service.d.ts +0 -3
  13. package/color/color-picker.component.d.ts +1 -1
  14. package/color/color-picker.component.theme.scss +2 -1
  15. package/color/color.component.d.ts +1 -1
  16. package/color/color.model.d.ts +1 -1
  17. package/core/clipboard/clipboard.directive.d.ts +1 -1
  18. package/core/common/directives/auto-width.directive.d.ts +1 -1
  19. package/core/common/directives/base-destroyer.directive.d.ts +10 -0
  20. package/core/common/directives/button-blur.directive.d.ts +1 -1
  21. package/core/common/directives/button-loader.directive.d.ts +1 -1
  22. package/core/common/directives/data-qa.directive.d.ts +1 -1
  23. package/core/common/directives/div-loader.directive.d.ts +1 -1
  24. package/core/common/directives/menu-blur.directive.d.ts +1 -1
  25. package/core/common/directives/prevent-multi-click.directive.d.ts +1 -1
  26. package/core/common/directives/print.directive.d.ts +1 -1
  27. package/core/common/directives/public-api.d.ts +1 -0
  28. package/core/common/pipes/common-pipes.d.ts +2 -2
  29. package/core/common/services/addon.service.d.ts +6 -4
  30. package/core/common/services/file.service.d.ts +1 -1
  31. package/core/common/services/utilities.service.d.ts +4 -4
  32. package/core/customization/customization.model.d.ts +15 -12
  33. package/core/customization/customization.service.d.ts +4 -0
  34. package/core/layout/layout.service.d.ts +1 -1
  35. package/core/layout/rtl.directive.d.ts +2 -2
  36. package/core/portal/attach.directive.d.ts +1 -1
  37. package/core/portal/target.directive.d.ts +1 -1
  38. package/date/date.component.d.ts +4 -2
  39. package/dialog/default-dialog.component.d.ts +1 -1
  40. package/dialog/dialog.component.d.ts +1 -1
  41. package/dialog/dialog.model.d.ts +2 -2
  42. package/draggable-items/draggable-item/draggable-item.component.d.ts +16 -2
  43. package/draggable-items/draggable-items.component.d.ts +4 -7
  44. package/draggable-items/draggable-items.model.d.ts +2 -2
  45. package/draggable-items/draggable-items.module.d.ts +4 -3
  46. package/esm2020/address/address.component.mjs +16 -16
  47. package/esm2020/address/address.module.mjs +5 -5
  48. package/esm2020/attachment/attachment.component.mjs +58 -49
  49. package/esm2020/attachment/attachment.module.mjs +5 -5
  50. package/esm2020/bread-crumbs/bread-crumbs.component.mjs +15 -15
  51. package/esm2020/bread-crumbs/bread-crumbs.module.mjs +5 -5
  52. package/esm2020/button/button.component.mjs +23 -23
  53. package/esm2020/button/button.module.mjs +5 -5
  54. package/esm2020/carousel/carousel-item.directive.mjs +9 -9
  55. package/esm2020/carousel/carousel.component.mjs +52 -52
  56. package/esm2020/carousel/carousel.module.mjs +5 -5
  57. package/esm2020/checkbox/checkbox.component.mjs +40 -31
  58. package/esm2020/checkbox/checkbox.module.mjs +5 -5
  59. package/esm2020/chips/chips.component.mjs +26 -28
  60. package/esm2020/chips/chips.module.mjs +5 -5
  61. package/esm2020/chips/chips.service.mjs +5 -14
  62. package/esm2020/color/color-picker.component.mjs +5 -5
  63. package/esm2020/color/color.component.mjs +4 -4
  64. package/esm2020/color/color.module.mjs +5 -5
  65. package/esm2020/core/clipboard/clipboard.directive.mjs +4 -4
  66. package/esm2020/core/clipboard/clipboard.service.mjs +4 -4
  67. package/esm2020/core/common/directives/auto-width.directive.mjs +4 -4
  68. package/esm2020/core/common/directives/base-destroyer.directive.mjs +22 -0
  69. package/esm2020/core/common/directives/button-blur.directive.mjs +4 -4
  70. package/esm2020/core/common/directives/button-loader.directive.mjs +10 -10
  71. package/esm2020/core/common/directives/data-qa.directive.mjs +4 -4
  72. package/esm2020/core/common/directives/div-loader.directive.mjs +4 -4
  73. package/esm2020/core/common/directives/menu-blur.directive.mjs +4 -4
  74. package/esm2020/core/common/directives/prevent-multi-click.directive.mjs +4 -4
  75. package/esm2020/core/common/directives/print.directive.mjs +4 -4
  76. package/esm2020/core/common/directives/public-api.mjs +2 -1
  77. package/esm2020/core/common/pipes/common-pipes.mjs +35 -35
  78. package/esm2020/core/common/pipes/date-ago.pipe.mjs +4 -4
  79. package/esm2020/core/common/services/addon.service.mjs +36 -12
  80. package/esm2020/core/common/services/color.service.mjs +4 -4
  81. package/esm2020/core/common/services/cookie.service.mjs +4 -4
  82. package/esm2020/core/common/services/data-convertor.service.mjs +6 -6
  83. package/esm2020/core/common/services/file.service.mjs +4 -4
  84. package/esm2020/core/common/services/jwt-helper.service.mjs +4 -4
  85. package/esm2020/core/common/services/session.service.mjs +4 -4
  86. package/esm2020/core/common/services/translate.service.mjs +4 -4
  87. package/esm2020/core/common/services/utilities.service.mjs +10 -10
  88. package/esm2020/core/common/services/validator.service.mjs +4 -4
  89. package/esm2020/core/common/services/window-scrolling.service.mjs +4 -4
  90. package/esm2020/core/customization/customization.model.mjs +40 -11
  91. package/esm2020/core/customization/customization.service.mjs +22 -4
  92. package/esm2020/core/http/interceptors/error.interceptor.mjs +4 -4
  93. package/esm2020/core/http/interceptors/loader.interceptor.mjs +4 -4
  94. package/esm2020/core/http/interceptors/profiler.interceptor.mjs +4 -4
  95. package/esm2020/core/http/services/http.service.mjs +4 -4
  96. package/esm2020/core/http/services/loader.service.mjs +9 -9
  97. package/esm2020/core/layout/layout.service.mjs +12 -12
  98. package/esm2020/core/layout/rtl.directive.mjs +7 -7
  99. package/esm2020/core/portal/attach.directive.mjs +4 -4
  100. package/esm2020/core/portal/portal.service.mjs +4 -4
  101. package/esm2020/core/portal/target.directive.mjs +4 -4
  102. package/esm2020/core/scroll-to/scroll-to.service.mjs +4 -4
  103. package/esm2020/date/date.component.mjs +81 -59
  104. package/esm2020/date/date.model.mjs +7 -7
  105. package/esm2020/date/date.module.mjs +5 -5
  106. package/esm2020/dialog/default-dialog.component.mjs +4 -4
  107. package/esm2020/dialog/dialog.component.mjs +4 -4
  108. package/esm2020/dialog/dialog.module.mjs +5 -5
  109. package/esm2020/dialog/dialog.service.mjs +4 -4
  110. package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +46 -6
  111. package/esm2020/draggable-items/draggable-items.component.mjs +21 -29
  112. package/esm2020/draggable-items/draggable-items.module.mjs +9 -5
  113. package/esm2020/field-title/field-title.component.mjs +8 -5
  114. package/esm2020/field-title/field-title.module.mjs +5 -5
  115. package/esm2020/files-uploader/files-uploader.component.mjs +12 -12
  116. package/esm2020/files-uploader/files-uploader.module.mjs +5 -5
  117. package/esm2020/form/field-generator.component.mjs +5 -5
  118. package/esm2020/form/form.component.mjs +29 -27
  119. package/esm2020/form/form.module.mjs +5 -5
  120. package/esm2020/form/indicators.component.mjs +4 -4
  121. package/esm2020/form/internal-button.component.mjs +17 -17
  122. package/esm2020/form/internal-carusel.component.mjs +18 -18
  123. package/esm2020/form/internal-carusel.service.mjs +4 -4
  124. package/esm2020/form/internal-field-generator.component.mjs +5 -5
  125. package/esm2020/form/internal-form.component.mjs +29 -27
  126. package/esm2020/form/internal-list.component.mjs +7 -7
  127. package/esm2020/form/internal-menu.component.mjs +4 -4
  128. package/esm2020/form/internal-page.component.mjs +4 -4
  129. package/esm2020/form/internal-page.service.mjs +4 -4
  130. package/esm2020/group-buttons/group-buttons.component.mjs +5 -5
  131. package/esm2020/group-buttons/group-buttons.module.mjs +5 -5
  132. package/esm2020/icon/icon-registry.service.mjs +4 -4
  133. package/esm2020/icon/icon.component.mjs +11 -11
  134. package/esm2020/icon/icon.module.mjs +5 -5
  135. package/esm2020/icon/icon.service.mjs +4 -4
  136. package/esm2020/image/image.component.mjs +52 -43
  137. package/esm2020/image/image.module.mjs +5 -5
  138. package/esm2020/image/image.service.mjs +4 -4
  139. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +26 -25
  140. package/esm2020/images-filmstrip/images-filmstrip.module.mjs +5 -5
  141. package/esm2020/link/link.component.mjs +59 -50
  142. package/esm2020/link/link.module.mjs +5 -5
  143. package/esm2020/link/link.pipes.mjs +4 -4
  144. package/esm2020/list/list-actions.component.mjs +6 -6
  145. package/esm2020/list/list-carousel.component.mjs +20 -20
  146. package/esm2020/list/list-chooser.component.mjs +6 -6
  147. package/esm2020/list/list-pager.component.mjs +12 -12
  148. package/esm2020/list/list-sorting.component.mjs +6 -6
  149. package/esm2020/list/list-total.component.mjs +9 -6
  150. package/esm2020/list/list-views.component.mjs +6 -6
  151. package/esm2020/list/list.component.mjs +135 -83
  152. package/esm2020/list/list.module.mjs +5 -5
  153. package/esm2020/list/list.pipes.mjs +7 -7
  154. package/esm2020/list/virtual-scroller.mjs +58 -58
  155. package/esm2020/menu/menu-item.component.mjs +5 -5
  156. package/esm2020/menu/menu.component.mjs +11 -11
  157. package/esm2020/menu/menu.module.mjs +5 -5
  158. package/esm2020/ngx-lib.module.mjs +5 -5
  159. package/esm2020/page-layout/page-layout.component.mjs +4 -4
  160. package/esm2020/page-layout/page-layout.module.mjs +5 -5
  161. package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +4 -4
  162. package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +4 -4
  163. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +17 -17
  164. package/esm2020/profile-data-views-list/profile-data-views-list.module.mjs +5 -5
  165. package/esm2020/quantity-selector/quantity-selector-validation.directive.mjs +4 -4
  166. package/esm2020/quantity-selector/quantity-selector.component.mjs +102 -89
  167. package/esm2020/quantity-selector/quantity-selector.module.mjs +5 -5
  168. package/esm2020/quantity-selector/quantity-selector.pipes.mjs +4 -4
  169. package/esm2020/query-builder/common/services/output-query.service.mjs +4 -4
  170. package/esm2020/query-builder/common/services/query-structure.service.mjs +14 -5
  171. package/esm2020/query-builder/common/services/type-convertor.service.mjs +10 -10
  172. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +24 -22
  173. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +4 -4
  174. package/esm2020/query-builder/query-builder.component.mjs +19 -19
  175. package/esm2020/query-builder/query-builder.module.mjs +5 -5
  176. package/esm2020/query-builder/query-builder.service.mjs +4 -4
  177. package/esm2020/remote-loader/addon-block-loader.component.mjs +45 -35
  178. package/esm2020/remote-loader/addon-block-loader.service.mjs +8 -5
  179. package/esm2020/remote-loader/remote-loader-element.component.mjs +81 -26
  180. package/esm2020/remote-loader/remote-loader.component.mjs +13 -13
  181. package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
  182. package/esm2020/remote-loader/remote-loader.module.mjs +5 -5
  183. package/esm2020/remote-loader/remote-loader.service.mjs +38 -15
  184. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +47 -38
  185. package/esm2020/rich-html-textarea/rich-html-textarea.module.mjs +5 -5
  186. package/esm2020/search/search.component.mjs +35 -35
  187. package/esm2020/search/search.module.mjs +5 -5
  188. package/esm2020/select/select.component.mjs +89 -45
  189. package/esm2020/select/select.module.mjs +5 -5
  190. package/esm2020/select-panel/select-panel.component.mjs +26 -26
  191. package/esm2020/select-panel/select-panel.module.mjs +5 -5
  192. package/esm2020/separator/separator.component.mjs +16 -16
  193. package/esm2020/separator/separator.module.mjs +5 -5
  194. package/esm2020/side-bar/side-bar.component.mjs +29 -15
  195. package/esm2020/side-bar/side-bar.module.mjs +5 -5
  196. package/esm2020/signature/signature-dialog.component.mjs +4 -4
  197. package/esm2020/signature/signature.component.mjs +40 -31
  198. package/esm2020/signature/signature.module.mjs +5 -5
  199. package/esm2020/size-detector/size-detector.component.mjs +15 -13
  200. package/esm2020/size-detector/size-detector.module.mjs +5 -5
  201. package/esm2020/skeleton-loader/skeleton-loader.component.mjs +5 -5
  202. package/esm2020/skeleton-loader/skeleton-loader.module.mjs +5 -5
  203. package/esm2020/slider/slider.component.mjs +21 -21
  204. package/esm2020/slider/slider.module.mjs +5 -5
  205. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +4 -4
  206. package/esm2020/smart-filters/common/filter-actions.component.mjs +4 -4
  207. package/esm2020/smart-filters/common/model/base-filter-component.mjs +28 -34
  208. package/esm2020/smart-filters/common/model/field.mjs +7 -7
  209. package/esm2020/smart-filters/common/model/operator.mjs +6 -4
  210. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +4 -4
  211. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +5 -5
  212. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +4 -4
  213. package/esm2020/smart-filters/smart-filters.component.mjs +19 -19
  214. package/esm2020/smart-filters/smart-filters.module.mjs +5 -5
  215. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +29 -9
  216. package/esm2020/snack-bar/default-snack-bar.component.mjs +4 -4
  217. package/esm2020/snack-bar/snack-bar.component.mjs +4 -4
  218. package/esm2020/snack-bar/snack-bar.module.mjs +5 -5
  219. package/esm2020/snack-bar/snack-bar.service.mjs +4 -4
  220. package/esm2020/textarea/textarea.component.mjs +40 -31
  221. package/esm2020/textarea/textarea.module.mjs +5 -5
  222. package/esm2020/textbox/textbox-validation.directive.mjs +5 -5
  223. package/esm2020/textbox/textbox.component.mjs +152 -116
  224. package/esm2020/textbox/textbox.module.mjs +5 -5
  225. package/esm2020/textbox-icon/textbox-icon.component.mjs +4 -4
  226. package/esm2020/textbox-icon/textbox-icon.module.mjs +5 -5
  227. package/esm2020/top-bar/top-bar.component.mjs +5 -5
  228. package/esm2020/top-bar/top-bar.module.mjs +5 -5
  229. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +19 -19
  230. package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  231. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +61 -52
  232. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  233. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs +18 -18
  234. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +1 -1
  235. package/fesm2015/pepperi-addons-ngx-lib-button.mjs +26 -26
  236. package/fesm2015/pepperi-addons-ngx-lib-button.mjs.map +1 -1
  237. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +63 -63
  238. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
  239. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +43 -34
  240. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  241. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +33 -44
  242. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  243. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +11 -11
  244. package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  245. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +91 -68
  246. package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  247. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +13 -13
  248. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
  249. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +75 -40
  250. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  251. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +11 -8
  252. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  253. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +15 -15
  254. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
  255. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +122 -118
  256. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  257. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +8 -8
  258. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  259. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +20 -20
  260. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  261. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +58 -49
  262. package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  263. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +29 -28
  264. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  265. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +65 -56
  266. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  267. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +261 -204
  268. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  269. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +18 -18
  270. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  271. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +7 -7
  272. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  273. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +26 -26
  274. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  275. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +110 -97
  276. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  277. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +75 -65
  278. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  279. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +197 -108
  280. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  281. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +50 -41
  282. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  283. package/fesm2015/pepperi-addons-ngx-lib-search.mjs +38 -38
  284. package/fesm2015/pepperi-addons-ngx-lib-search.mjs.map +1 -1
  285. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +29 -29
  286. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  287. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +92 -48
  288. package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  289. package/fesm2015/pepperi-addons-ngx-lib-separator.mjs +19 -19
  290. package/fesm2015/pepperi-addons-ngx-lib-separator.mjs.map +1 -1
  291. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +32 -18
  292. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  293. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +46 -37
  294. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  295. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +18 -16
  296. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  297. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +8 -8
  298. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
  299. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +24 -24
  300. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  301. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +105 -89
  302. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  303. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +13 -13
  304. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
  305. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +43 -34
  306. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  307. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +7 -7
  308. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  309. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +161 -124
  310. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  311. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +8 -8
  312. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
  313. package/fesm2015/pepperi-addons-ngx-lib.mjs +282 -190
  314. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  315. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +19 -19
  316. package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  317. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +61 -52
  318. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  319. package/fesm2020/pepperi-addons-ngx-lib-bread-crumbs.mjs +18 -18
  320. package/fesm2020/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +1 -1
  321. package/fesm2020/pepperi-addons-ngx-lib-button.mjs +26 -26
  322. package/fesm2020/pepperi-addons-ngx-lib-button.mjs.map +1 -1
  323. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs +63 -63
  324. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
  325. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +43 -34
  326. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  327. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +33 -44
  328. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  329. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +11 -11
  330. package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  331. package/fesm2020/pepperi-addons-ngx-lib-date.mjs +90 -68
  332. package/fesm2020/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  333. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +13 -13
  334. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
  335. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +74 -39
  336. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  337. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +11 -8
  338. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  339. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +15 -15
  340. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
  341. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +122 -118
  342. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  343. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +8 -8
  344. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  345. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +20 -20
  346. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  347. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +58 -49
  348. package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  349. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +29 -28
  350. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  351. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +65 -56
  352. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  353. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +259 -204
  354. package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  355. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +18 -18
  356. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  357. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +7 -7
  358. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  359. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +26 -26
  360. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  361. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +110 -97
  362. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  363. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +75 -65
  364. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  365. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +184 -93
  366. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  367. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +50 -41
  368. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  369. package/fesm2020/pepperi-addons-ngx-lib-search.mjs +38 -38
  370. package/fesm2020/pepperi-addons-ngx-lib-search.mjs.map +1 -1
  371. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +29 -29
  372. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  373. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +92 -48
  374. package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  375. package/fesm2020/pepperi-addons-ngx-lib-separator.mjs +19 -19
  376. package/fesm2020/pepperi-addons-ngx-lib-separator.mjs.map +1 -1
  377. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +32 -18
  378. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  379. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +46 -37
  380. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  381. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +18 -16
  382. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  383. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +8 -8
  384. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
  385. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +24 -24
  386. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  387. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +105 -89
  388. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  389. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs +13 -13
  390. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
  391. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +43 -34
  392. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  393. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +7 -7
  394. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  395. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +160 -124
  396. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  397. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +8 -8
  398. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
  399. package/fesm2020/pepperi-addons-ngx-lib.mjs +281 -190
  400. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  401. package/field-title/field-title.component.d.ts +2 -1
  402. package/files-uploader/files-uploader.component.d.ts +1 -1
  403. package/form/field-generator.component.d.ts +1 -1
  404. package/form/form.component.d.ts +1 -1
  405. package/form/indicators.component.d.ts +1 -1
  406. package/form/internal-button.component.d.ts +1 -1
  407. package/form/internal-carusel.component.d.ts +1 -1
  408. package/form/internal-field-generator.component.d.ts +1 -1
  409. package/form/internal-form.component.d.ts +1 -1
  410. package/form/internal-list.component.d.ts +2 -2
  411. package/form/internal-menu.component.d.ts +1 -1
  412. package/form/internal-page.component.d.ts +1 -1
  413. package/group-buttons/group-buttons.component.d.ts +2 -2
  414. package/icon/icon-generated.model.d.ts +2 -2
  415. package/icon/icon.component.d.ts +1 -1
  416. package/image/image.component.d.ts +2 -1
  417. package/image/image.component.theme.scss +4 -2
  418. package/images-filmstrip/images-filmstrip.component.d.ts +1 -1
  419. package/link/link.component.d.ts +2 -1
  420. package/list/list-actions.component.d.ts +1 -1
  421. package/list/list-carousel.component.d.ts +2 -2
  422. package/list/list-chooser.component.d.ts +1 -1
  423. package/list/list-pager.component.d.ts +1 -1
  424. package/list/list-sorting.component.d.ts +1 -1
  425. package/list/list-total.component.d.ts +2 -1
  426. package/list/list-views.component.d.ts +2 -2
  427. package/list/list.component.d.ts +8 -5
  428. package/list/list.model.d.ts +6 -6
  429. package/list/virtual-scroller.d.ts +2 -2
  430. package/menu/menu-item.component.d.ts +1 -1
  431. package/menu/menu.component.d.ts +1 -1
  432. package/menu/menu.model.d.ts +3 -3
  433. package/package.json +1 -1
  434. package/page-layout/page-layout.component.d.ts +1 -1
  435. package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +1 -1
  436. package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +1 -1
  437. package/profile-data-views-list/profile-data-views-list.component.d.ts +1 -1
  438. package/quantity-selector/quantity-selector-validation.directive.d.ts +1 -1
  439. package/quantity-selector/quantity-selector.component.d.ts +8 -9
  440. package/quantity-selector/quantity-selector.component.theme.scss +12 -6
  441. package/query-builder/common/model/operator.d.ts +1 -1
  442. package/query-builder/query-builder-item/query-builder-item.component.d.ts +4 -2
  443. package/query-builder/query-builder-section/query-builder-section.component.d.ts +1 -1
  444. package/query-builder/query-builder.component.d.ts +1 -1
  445. package/remote-loader/addon-block-loader.component.d.ts +4 -2
  446. package/remote-loader/remote-loader-element.component.d.ts +9 -2
  447. package/remote-loader/remote-loader.component.d.ts +1 -1
  448. package/remote-loader/remote-loader.model.d.ts +3 -2
  449. package/remote-loader/remote-loader.service.d.ts +2 -0
  450. package/rich-html-textarea/rich-html-textarea.component.d.ts +2 -1
  451. package/rich-html-textarea/rich-html-textarea.component.theme.scss +6 -3
  452. package/search/search.component.d.ts +1 -1
  453. package/search/search.model.d.ts +4 -4
  454. package/select/select.component.d.ts +9 -1
  455. package/select/select.component.theme.scss +22 -11
  456. package/select-panel/select-panel.component.d.ts +1 -1
  457. package/select-panel/select-panel.component.theme.scss +0 -2
  458. package/separator/separator.component.d.ts +1 -1
  459. package/side-bar/side-bar.component.d.ts +4 -1
  460. package/side-bar/side-bar.model.d.ts +1 -1
  461. package/signature/signature-dialog.component.d.ts +1 -1
  462. package/signature/signature.component.d.ts +2 -1
  463. package/size-detector/size-detector.component.d.ts +1 -1
  464. package/skeleton-loader/skeleton-loader.component.d.ts +2 -2
  465. package/slider/slider.component.d.ts +1 -1
  466. package/slider/slider.component.theme.scss +15 -5
  467. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +3 -1
  468. package/smart-filters/common/filter-actions.component.d.ts +1 -1
  469. package/smart-filters/common/model/base-filter-component.d.ts +3 -5
  470. package/smart-filters/common/model/operator.d.ts +2 -0
  471. package/smart-filters/common/model/type.d.ts +4 -4
  472. package/smart-filters/date-filter/date-filter.component.d.ts +3 -1
  473. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +3 -1
  474. package/smart-filters/number-filter/number-filter.component.d.ts +3 -1
  475. package/smart-filters/smart-filters.component.d.ts +1 -1
  476. package/smart-filters/text-filter/text-filter.component.d.ts +4 -1
  477. package/snack-bar/default-snack-bar.component.d.ts +1 -1
  478. package/snack-bar/snack-bar.component.d.ts +1 -1
  479. package/src/assets/i18n/ar.ngx-lib.json +180 -0
  480. package/src/assets/i18n/de.ngx-lib.json +104 -5
  481. package/src/assets/i18n/en.ngx-lib.json +4 -3
  482. package/src/assets/i18n/es.ngx-lib.json +113 -11
  483. package/src/assets/i18n/fr.ngx-lib.json +105 -4
  484. package/src/assets/i18n/he.ngx-lib.json +105 -4
  485. package/src/assets/i18n/it.ngx-lib.json +114 -13
  486. package/src/assets/i18n/ja.ngx-lib.json +105 -4
  487. package/src/assets/i18n/pl.ngx-lib.json +105 -4
  488. package/src/assets/i18n/pt.ngx-lib.json +105 -4
  489. package/src/assets/i18n/sr.ngx-lib.json +180 -0
  490. package/src/assets/i18n/zh.ngx-lib.json +105 -2
  491. package/src/core/style/abstracts/mixins.scss +88 -30
  492. package/src/core/style/abstracts/variables.scss +9 -0
  493. package/src/core/style/base/Spacing.stories.mdx +22 -22
  494. package/src/core/style/base/base.scss +215 -115
  495. package/src/core/style/components/button.scss +41 -19
  496. package/src/core/style/components/checkbox.scss +132 -128
  497. package/src/core/style/components/file.scss +13 -9
  498. package/src/core/style/components/general.scss +149 -65
  499. package/src/core/style/components/radio-button.scss +50 -23
  500. package/src/core/style/components/textarea.scss +69 -30
  501. package/textarea/textarea.component.d.ts +2 -1
  502. package/textbox/textbox-validation.directive.d.ts +1 -1
  503. package/textbox/textbox.component.d.ts +2 -1
  504. package/textbox-icon/textbox-icon.component.d.ts +1 -1
  505. package/theming-offline.scss +2 -1
  506. package/theming.scss +2 -1
  507. package/top-bar/top-bar.component.d.ts +1 -1
  508. package/top-bar/top-bar.model.d.ts +1 -1
@@ -1,7 +1,6 @@
1
1
  import { Injectable, Optional } from '@angular/core';
2
2
  import { createCustomElement } from '@angular/elements';
3
3
  import { Router } from '@angular/router';
4
- import { connectRouter } from '@angular-architects/module-federation-tools';
5
4
  import * as i0 from "@angular/core";
6
5
  import * as i1 from "./session.service";
7
6
  import * as i2 from "../../http/services/http.service";
@@ -13,12 +12,16 @@ import * as i6 from "@angular/router";
13
12
  This service is the webapp api for addon usege.
14
13
  */
15
14
  export class PepAddonService {
16
- constructor(sessionService, httpService, loaderService, translateService, fileService, route) {
15
+ get devServer() {
16
+ return this.route ? this.route.snapshot.queryParamMap.get('devServer') === 'true' : false;
17
+ }
18
+ constructor(sessionService, httpService, loaderService, translateService, fileService, router, route) {
17
19
  this.sessionService = sessionService;
18
20
  this.httpService = httpService;
19
21
  this.loaderService = loaderService;
20
22
  this.translateService = translateService;
21
23
  this.fileService = fileService;
24
+ this.router = router;
22
25
  this.route = route;
23
26
  this.PAGES_ADDON_UUID = '50062e0c-9967-4ed4-9102-f2bc50602d41';
24
27
  // private readonly ADDON_ASSETS_PATH_KEY = 'AddonAssetsPath';
@@ -27,9 +30,6 @@ export class PepAddonService {
27
30
  this.ADDON_API_ASYNC_RELATIVE_PATH = `${this.ADDON_API_RELATIVE_PATH}/async`;
28
31
  //
29
32
  }
30
- get devServer() {
31
- return this.route ? this.route.snapshot.queryParamMap.get('devServer') === 'true' : false;
32
- }
33
33
  getAddonBaseRelativePath(isAsync = false) {
34
34
  return isAsync
35
35
  ? this.ADDON_API_ASYNC_RELATIVE_PATH
@@ -168,10 +168,32 @@ export class PepAddonService {
168
168
  // Fix internal routing bug.
169
169
  connectInternalRouter(elementName) {
170
170
  const customElementObject = PepAddonService._customElementsMap.get(elementName);
171
- const router = customElementObject?.injector.get(Router);
171
+ let router = customElementObject?.injector.get(Router);
172
+ // This cause a refresh (everithing is loading twice) when reloading the page...
173
+ // But if we remove this the first navigation is clear all history cause the router is not connected.
174
+ if (!router) {
175
+ router = this.router;
176
+ }
172
177
  if (router) {
173
178
  const useHash = location.href.includes('#');
174
- connectRouter(router, useHash);
179
+ this.connectRouter(router, useHash);
180
+ }
181
+ }
182
+ connectRouter(router, useHash = false) {
183
+ let url;
184
+ if (!useHash) {
185
+ url = `${location.pathname.substr(1)}${location.search}`;
186
+ router.navigateByUrl(url);
187
+ window.addEventListener('popstate', () => {
188
+ router.navigateByUrl(url);
189
+ });
190
+ }
191
+ else {
192
+ url = `${location.hash.substr(1)}${location.search}`;
193
+ router.navigateByUrl(url);
194
+ window.addEventListener('hashchange', () => {
195
+ router.navigateByUrl(url);
196
+ });
175
197
  }
176
198
  }
177
199
  static createMultiTranslateLoader(addonUUID, addonService, libsName = ['ngx-lib']) {
@@ -190,14 +212,16 @@ export class PepAddonService {
190
212
  }
191
213
  }
192
214
  PepAddonService._customElementsMap = new Map();
193
- PepAddonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, deps: [{ token: i1.PepSessionService }, { token: i2.PepHttpService }, { token: i3.PepLoaderService }, { token: i4.PepTranslateService }, { token: i5.PepFileService }, { token: i6.ActivatedRoute, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
194
- PepAddonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, providedIn: 'root' });
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, decorators: [{
215
+ PepAddonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepAddonService, deps: [{ token: i1.PepSessionService }, { token: i2.PepHttpService }, { token: i3.PepLoaderService }, { token: i4.PepTranslateService }, { token: i5.PepFileService }, { token: i6.Router, optional: true }, { token: i6.ActivatedRoute, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
216
+ PepAddonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepAddonService, providedIn: 'root' });
217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepAddonService, decorators: [{
196
218
  type: Injectable,
197
219
  args: [{
198
220
  providedIn: 'root',
199
221
  }]
200
- }], ctorParameters: function () { return [{ type: i1.PepSessionService }, { type: i2.PepHttpService }, { type: i3.PepLoaderService }, { type: i4.PepTranslateService }, { type: i5.PepFileService }, { type: i6.ActivatedRoute, decorators: [{
222
+ }], ctorParameters: function () { return [{ type: i1.PepSessionService }, { type: i2.PepHttpService }, { type: i3.PepLoaderService }, { type: i4.PepTranslateService }, { type: i5.PepFileService }, { type: i6.Router, decorators: [{
223
+ type: Optional
224
+ }] }, { type: i6.ActivatedRoute, decorators: [{
201
225
  type: Optional
202
226
  }] }]; } });
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL2FkZG9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxRQUFRLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFrQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVV6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7Ozs7O0FBRTVFOztFQUVFO0FBSUYsTUFBTSxPQUFPLGVBQWU7SUFheEIsWUFDWSxjQUFpQyxFQUNqQyxXQUEyQixFQUMzQixhQUErQixFQUNoQyxnQkFBcUMsRUFDckMsV0FBMkIsRUFDZCxLQUFxQjtRQUxqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBbEI1QixxQkFBZ0IsR0FBRyxzQ0FBc0MsQ0FBQztRQUMzRSw4REFBOEQ7UUFDN0Msc0NBQWlDLEdBQUcsNEJBQTRCLENBQUM7UUFDakUsNEJBQXVCLEdBQUcsYUFBYSxDQUFDO1FBQ3hDLGtDQUE2QixHQUFHLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixRQUFRLENBQUM7UUFnQnJGLEVBQUU7SUFDTixDQUFDO0lBYkQsSUFBWSxTQUFTO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFB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eyBJbmplY3RhYmxlLCBJbmplY3RvciwgT3B0aW9uYWwsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZUN1c3RvbUVsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9lbGVtZW50cyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFBlcFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVwRmlsZVNlcnZpY2UgfSBmcm9tICcuL2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBQZXBIdHRwU2VydmljZSB9IGZyb20gJy4uLy4uL2h0dHAvc2VydmljZXMvaHR0cC5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcExvYWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9odHRwL3NlcnZpY2VzL2xvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJVHJhbnNsYXRpb25SZXNvdXJjZSB9IGZyb20gJ25neC10cmFuc2xhdGUtbXVsdGktaHR0cC1sb2FkZXInO1xuaW1wb3J0IHsgUGVwVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4vdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgY29ubmVjdFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyLWFyY2hpdGVjdHMvbW9kdWxlLWZlZGVyYXRpb24tdG9vbHMnO1xuXG4vKlxuICAgIFRoaXMgc2VydmljZSBpcyB0aGUgd2ViYXBwIGFwaSBmb3IgYWRkb24gdXNlZ2UuXG4qL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGVwQWRkb25TZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IFBBR0VTX0FERE9OX1VVSUQgPSAnNTAwNjJlMGMtOTk2Ny00ZWQ0LTkxMDItZjJiYzUwNjAyZDQxJztcbiAgICAvLyBwcml2YXRlIHJlYWRvbmx5IEFERE9OX0FTU0VUU19QQVRIX0tFWSA9ICdBZGRvbkFzc2V0c1BhdGgnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQURET05TX0RJQ1RJT05BUllfQVNTRVRTX1BBVEhfS0VZID0gJ0FkZG9uc0RpY3Rpb25hcnlBc3NldHNQYXRoJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IEFERE9OX0FQSV9SRUxBVElWRV9QQVRIID0gJy9hZGRvbnMvYXBpJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IEFERE9OX0FQSV9BU1lOQ19SRUxBVElWRV9QQVRIID0gYCR7dGhpcy5BRERPTl9BUElfUkVMQVRJVkVfUEFUSH0vYXN5bmNgO1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgX2N1c3RvbUVsZW1lbnRzTWFwOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcCgpO1xuXG4gICAgcHJpdmF0ZSBnZXQgZGV2U2VydmVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZSA/IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ2RldlNlcnZlcicpID09PSAndHJ1ZScgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZTogUGVwU2Vzc2lvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaHR0cFNlcnZpY2U6IFBlcEh0dHBTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGxvYWRlclNlcnZpY2U6IFBlcExvYWRlclNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyB0cmFuc2xhdGVTZXJ2aWNlOiBQZXBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZmlsZVNlcnZpY2U6IFBlcEZpbGVTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICApIHtcbiAgICAgICAgLy9cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFkZG9uQmFzZVJlbGF0aXZlUGF0aChpc0FzeW5jID0gZmFsc2UpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXNBc3luY1xuICAgICAgICAgICAgPyB0aGlzLkFERE9OX0FQSV9BU1lOQ19SRUxBVElWRV9QQVRIXG4gICAgICAgICAgICA6IHRoaXMuQURET05fQVBJX1JFTEFUSVZFX1BBVEg7XG4gICAgfVxuXG4gICAgZ2V0QWRkb25TdGF0aWNGb2xkZXIoYWRkb25VVUlEOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAvLyBpZiAoYWRkb25VVUlELmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGFkZG9uc0RpY3Rpb25hcnkgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldE9iamVjdCh0aGlzLkFERE9OU19ESUNUSU9OQVJZX0FTU0VUU19QQVRIX0tFWSk7XG4gICAgICAgICAgICByZXR1cm4gYWRkb25zRGljdGlvbmFyeSAmJiBhZGRvbnNEaWN0aW9uYXJ5W2FkZG9uVVVJRF0gPyBhZGRvbnNEaWN0aW9uYXJ5W2FkZG9uVVVJRF0gOiAnJztcbiAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHJldHVybiB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldE9iamVjdCh0aGlzLkFERE9OX0FTU0VUU19QQVRIX0tFWSkgfHwgJyc7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBzZXRBZGRvblN0YXRpY0ZvbGRlcihwYXRoOiBzdHJpbmcsIGFkZG9uVVVJRDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIC8vIGlmIChhZGRvblVVSUQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgYWRkb25zRGljdGlvbmFyeSA9IHRoaXMuc2Vzc2lvblNlcnZpY2UuZ2V0T2JqZWN0KHRoaXMuQURET05TX0RJQ1RJT05BUllfQVNTRVRTX1BBVEhfS0VZKSA/PyB7fTtcbiAgICAgICAgICAgIGFkZG9uc0RpY3Rpb25hcnlbYWRkb25VVUlEXSA9IHBhdGg7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb25TZXJ2aWNlLnNldE9iamVjdCh0aGlzLkFERE9OU19ESUNUSU9OQVJZX0FTU0VUU19QQVRIX0tFWSwgYWRkb25zRGljdGlvbmFyeSk7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gdGhpcy5zZXNzaW9uU2VydmljZS5zZXRPYmplY3QodGhpcy5BRERPTl9BU1NFVFNfUEFUSF9LRVksIHBhdGgpO1xuICAgICAgICAvLyB9XG4gICAgfVxuXG4gICAgZ2V0U2VydmVyQmFzZVVybChhZGRvblVVSUQ6IHN0cmluZywgZmlsZU5hbWUgPSAnJywgaXNBc3luYyA9IGZhbHNlLCBsb2NhbGhvc3RQb3J0ID0gNDUwMCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGZpbGVUb0FkZCA9IGZpbGVOYW1lLmxlbmd0aCA+IDAgPyBgLyR7ZmlsZU5hbWV9YCA6ICcnO1xuICAgICAgICBcbiAgICAgICAgLy8gRm9yIGRldlNlcnZlciBydW4gc2VydmVyIG9uIGxvY2FsaG9zdC5cbiAgICAgICAgaWYodGhpcy5kZXZTZXJ2ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBgaHR0cDovL2xvY2FsaG9zdDoke2xvY2FsaG9zdFBvcnR9JHtmaWxlVG9BZGR9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldFBhcGlCYXNlVXJsKCk7XG4gICAgICAgICAgICByZXR1cm4gYCR7YmFzZVVybH0ke3RoaXMuZ2V0QWRkb25CYXNlUmVsYXRpdmVQYXRoKGlzQXN5bmMpfS8ke2FkZG9uVVVJRH0ke2ZpbGVUb0FkZH1gO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QWRkb25BcGlDYWxsKFxuICAgICAgICBhZGRvblVVSUQ6IHN0cmluZyxcbiAgICAgICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGh0dHBPcHRpb25zID0ge30sXG4gICAgICAgIGlzQXN5bmMgPSBmYWxzZVxuICAgICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIC8vIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldFBhcGlBcGlDYWxsKFxuICAgICAgICAvLyAgICAgYCR7dGhpcy5nZXRBZGRvbkJhc2VSZWxhdGl2ZVBhdGgoXG4gICAgICAgIC8vICAgICAgICAgaXNBc3luY1xuICAgICAgICAvLyAgICAgKX0vJHthZGRvblVVSUR9LyR7ZmlsZU5hbWV9LyR7ZnVuY3Rpb25OYW1lfWAsXG4gICAgICAgIC8vICAgICBodHRwT3B0aW9uc1xuICAgICAgICAvLyApO1xuXG4gICAgICAgIGNvbnN0IHBhcGlCYXNlVXJsID0gdGhpcy5nZXRTZXJ2ZXJCYXNlVXJsKGFkZG9uVVVJRCwgZmlsZU5hbWUsIGlzQXN5bmMpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXRIdHRwQ2FsbChgJHtwYXBpQmFzZVVybH0vJHtmdW5jdGlvbk5hbWV9YCwgaHR0cE9wdGlvbnMpO1xuICAgIH1cblxuICAgIHBvc3RBZGRvbkFwaUNhbGwoXG4gICAgICAgIGFkZG9uVVVJRDogc3RyaW5nLFxuICAgICAgICBmaWxlTmFtZTogc3RyaW5nLFxuICAgICAgICBmdW5jdGlvbk5hbWU6IHN0cmluZyxcbiAgICAgICAgYm9keSA9IHt9LFxuICAgICAgICBodHRwT3B0aW9ucyA9IHt9LFxuICAgICAgICBpc0FzeW5jID0gZmFsc2VcbiAgICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICAvLyByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0UGFwaUFwaUNhbGwoXG4gICAgICAgIC8vICAgICBgJHt0aGlzLmdldEFkZG9uQmFzZVJlbGF0aXZlUGF0aChcbiAgICAgICAgLy8gICAgICAgICBpc0FzeW5jXG4gICAgICAgIC8vICAgICApfS8ke2FkZG9uVVVJRH0vJHtmaWxlTmFtZX0vJHtmdW5jdGlvbk5hbWV9YCxcbiAgICAgICAgLy8gICAgIGJvZHksXG4gICAgICAgIC8vICAgICBodHRwT3B0aW9uc1xuICAgICAgICAvLyApO1xuXG4gICAgICAgIGNvbnN0IHBhcGlCYXNlVXJsID0gdGhpcy5nZXRTZXJ2ZXJCYXNlVXJsKGFkZG9uVVVJRCwgZmlsZU5hbWUsIGlzQXN5bmMpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0SHR0cENhbGwoYCR7cGFwaUJhc2VVcmx9LyR7ZnVuY3Rpb25OYW1lfWAsIGJvZHksIGh0dHBPcHRpb25zKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRBZGRvbkNQSUNhbGwoXG4gICAgICAgIGFkZG9uVVVJRDogc3RyaW5nLFxuICAgICAgICB1cmw6IHN0cmluZ1xuICAgICkge1xuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmVtaXRFdmVudChcIkFkZG9uQVBJXCIsIHtcbiAgICAgICAgICAgIEFkZG9uVVVJRDogYWRkb25VVUlELFxuICAgICAgICAgICAgUmVsYXRpdmVVUkw6IHVybCxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAocmVzLlN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJlcy5WYWx1ZSlcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXMuVmFsdWUpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBwb3N0QWRkb25DUElDYWxsKFxuICAgICAgICBhZGRvblVVSUQ6IHN0cmluZyxcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIGJvZHk6IGFueVxuICAgICkge1xuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmVtaXRFdmVudChcIkFkZG9uQVBJXCIsIHtcbiAgICAgICAgICAgIEFkZG9uVVVJRDogYWRkb25VVUlELFxuICAgICAgICAgICAgUmVsYXRpdmVVUkw6IHVybCxcbiAgICAgICAgICAgIE1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgQm9keTogYm9keVxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChyZXMuU3VjY2Vzcykge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmVzLlZhbHVlKVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlcy5WYWx1ZSlcbiAgICAgICAgfVxuICAgIH0gICBcblxuICAgIGVtaXRFdmVudChldmVudEtleTogc3RyaW5nLCBldmVudERhdGE6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnZW1pdC1ldmVudCcsIHtcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRLZXksXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50RGF0YTogZXZlbnREYXRhLFxuICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uOiByZXNvbHZlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gVE9ETzogbmVlZCB0byBjaGVrIHRoaXMgaWYgdGhlIGxvYWRlciBpcyB3b3JraW5nLlxuICAgIGZldGNoKGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdD86IFJlcXVlc3RJbml0KTogUHJvbWlzZTxSZXNwb25zZT4ge1xuICAgICAgICB0aGlzLmxvYWRlclNlcnZpY2Uuc2hvdygpO1xuXG4gICAgICAgIHJldHVybiB3aW5kb3cuZmV0Y2goaW5wdXQsIGluaXQpLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkZXJTZXJ2aWNlLmhpZGUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0Tmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZShhZGRvblVVSUQ6IHN0cmluZywgbGliTmFtZSA9ICduZ3gtbGliJyk6IElUcmFuc2xhdGlvblJlc291cmNlIHtcbiAgICAgICAgY29uc3QgYWRkb25TdGF0aWNGb2xkZXIgPSB0aGlzLmdldEFkZG9uU3RhdGljRm9sZGVyKGFkZG9uVVVJRCk7XG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uc1BhdGg6IHN0cmluZyA9IHRoaXMuZmlsZVNlcnZpY2UuZ2V0QXNzZXRzVHJhbnNsYXRpb25zUGF0aChhZGRvblN0YXRpY0ZvbGRlciwgbGliTmFtZSk7XG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uc1N1ZmZpeDogc3RyaW5nID0gdGhpcy5maWxlU2VydmljZS5nZXRBc3NldHNUcmFuc2xhdGlvbnNTdWZmaXgobGliTmFtZSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByZWZpeDogdHJhbnNsYXRpb25zUGF0aCxcbiAgICAgICAgICAgIHN1ZmZpeDogdHJhbnNsYXRpb25zU3VmZml4LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldEFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZShhZGRvblVVSUQ6IHN0cmluZyk6IElUcmFuc2xhdGlvblJlc291cmNlIHtcbiAgICAgICAgY29uc3QgYWRkb25TdGF0aWNGb2xkZXIgPSB0aGlzLmdldEFkZG9uU3RhdGljRm9sZGVyKGFkZG9uVVVJRCk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRTdWJGb2xkZXIgPSAnYXNzZXRzL2kxOG4vJztcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJlZml4OiBhZGRvblN0YXRpY0ZvbGRlci5sZW5ndGggPiAwID8gYCR7YWRkb25TdGF0aWNGb2xkZXJ9JHtkZWZhdWx0U3ViRm9sZGVyfWAgOiBgLyR7ZGVmYXVsdFN1YkZvbGRlcn1gLFxuICAgICAgICAgICAgc3VmZml4OiAnLmpzb24nLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHNldERlZmF1bHRUcmFuc2xhdGVMYW5nKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgdXJsTGFuZ1BhcmFtID0gJ3VzZXJMYW5nJykge1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc2V0RGVmYXVsdFRyYW5zbGF0ZUxhbmcodHJhbnNsYXRlLCB1cmxMYW5nUGFyYW0pO1xuICAgIH1cblxuICAgIGdldFBhZ2VzQWRkb25VVUlEKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5QQUdFU19BRERPTl9VVUlEO1xuICAgIH1cblxuICAgIHNldFNoZWxsUm91dGVyRGF0YShkYXRhOiB7IGFkZFBhZGRpbmc/OiBib29sZWFuLCBzaG93U2lkZWJhcj86IGJvb2xlYW4sIHNob3dIZWFkZXI/OiBib29sZWFuIH0pIHtcbiAgICAgICAgY29uc3QgZXZlbnREYXRhID0ge1xuICAgICAgICAgICAgZGV0YWlsOiBkYXRhLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGN1c3RvbUV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdzZXQtcm91dGVyLWRhdGEnLCBldmVudERhdGEpO1xuICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChjdXN0b21FdmVudCk7XG4gICAgfVxuXG4gICAgZGVmaW5lQ3VzdG9tRWxlbWVudChlbGVtZW50TmFtZTogc3RyaW5nLCBjb21wb25lbnQ6IFR5cGU8YW55PiwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIGlmICghY3VzdG9tRWxlbWVudHMuZ2V0KGVsZW1lbnROYW1lKSkgeyAgXG4gICAgICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoZWxlbWVudE5hbWUsIGNyZWF0ZUN1c3RvbUVsZW1lbnQoY29tcG9uZW50LCB7aW5qZWN0b3I6IGluamVjdG9yfSkpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBTZXQgdGhlIGVsZW1lbnROYW1lIGluIHRoZSBfY3VzdG9tRWxlbWVudHNNYXAgKEZpeCBpbnRlcm5hbCByb3V0aW5nIGJ1ZykuXG4gICAgICAgICAgICBQZXBBZGRvblNlcnZpY2UuX2N1c3RvbUVsZW1lbnRzTWFwLnNldChlbGVtZW50TmFtZSwge2luamVjdG9yOiBpbmplY3Rvcn0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRml4IGludGVybmFsIHJvdXRpbmcgYnVnLlxuICAgIGNvbm5lY3RJbnRlcm5hbFJvdXRlcihlbGVtZW50TmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUVsZW1lbnRPYmplY3QgPSBQZXBBZGRvblNlcnZpY2UuX2N1c3RvbUVsZW1lbnRzTWFwLmdldChlbGVtZW50TmFtZSk7XG4gICAgICAgIGNvbnN0IHJvdXRlciA9IGN1c3RvbUVsZW1lbnRPYmplY3Q/LmluamVjdG9yLmdldChSb3V0ZXIpO1xuXG4gICAgICAgIGlmIChyb3V0ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHVzZUhhc2ggPSBsb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCcjJyk7XG4gICAgICAgICAgICBjb25uZWN0Um91dGVyKHJvdXRlciwgdXNlSGFzaCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZU11bHRpVHJhbnNsYXRlTG9hZGVyKFxuICAgICAgICBhZGRvblVVSUQ6IHN0cmluZyxcbiAgICAgICAgYWRkb25TZXJ2aWNlOiBQZXBBZGRvblNlcnZpY2UsXG4gICAgICAgIGxpYnNOYW1lID0gWyduZ3gtbGliJ10sXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IG5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2VzID0gW107XG5cbiAgICAgICAgaWYgKGxpYnNOYW1lPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGlic05hbWUubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGliTmFtZSA9IGxpYnNOYW1lW2luZGV4XTtcbiAgICAgICAgICAgICAgICBuZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlcy5wdXNoKGFkZG9uU2VydmljZS5nZXROZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlKGFkZG9uVVVJRCwgbGliTmFtZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYWRkb25UcmFuc2xhdGlvblJlc291cmNlID0gYWRkb25TZXJ2aWNlLmdldEFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZShhZGRvblVVSUQpO1xuXG4gICAgICAgIHJldHVybiBhZGRvblNlcnZpY2UudHJhbnNsYXRlU2VydmljZS5jcmVhdGVNdWx0aVRyYW5zbGF0ZUxvYWRlcihbXG4gICAgICAgICAgICAuLi5uZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlcyxcbiAgICAgICAgICAgIGFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZVxuICAgICAgICBdKTtcbiAgICB9XG59XG4iXX0=
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL2FkZG9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxRQUFRLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFrQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7QUFZekQ7O0VBRUU7QUFJRixNQUFNLE9BQU8sZUFBZTtJQVN4QixJQUFXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzlGLENBQUM7SUFFRCxZQUNZLGNBQWlDLEVBQ2pDLFdBQTJCLEVBQzNCLGFBQStCLEVBQ2hDLGdCQUFxQyxFQUNyQyxXQUEyQixFQUNkLE1BQWMsRUFDZCxLQUFxQjtRQU5qQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUNkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQW5CNUIscUJBQWdCLEdBQUcsc0NBQXNDLENBQUM7UUFDM0UsOERBQThEO1FBQzdDLHNDQUFpQyxHQUFHLDRCQUE0QixDQUFDO1FBQ2pFLDRCQUF1QixHQUFHLGFBQWEsQ0FBQztRQUN4Qyxr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QywwQkFBMEIsQ0FDcEMsU0FBaUIsRUFDakIsWUFBNkIsRUFDN0IsUUFBUSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBRXRCLE1BQU0sMEJBQTBCLEdBQUcsRUFBRSxDQUFDO1FBRXRDLElBQUksUUFBUSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEIsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ2xELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUNsRztTQUNKO1FBRUQsTUFBTSx3QkFBd0IsR0FBRyxZQUFZLENBQUMsMkJBQTJCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFckYsT0FBTyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsMEJBQTBCLENBQUM7WUFDNUQsR0FBRywwQkFBMEI7WUFDN0Isd0JBQXdCO1NBQzNCLENBQUMsQ0FBQztJQUNQLENBQUM7O0FBN1BjLGtDQUFrQixHQUFxQixJQUFJLEdBQUcsRUFBRSxDQUFDOzZHQVB2RCxlQUFlO2lIQUFmLGVBQWUsY0FGWixNQUFNOzRGQUVULGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFvQlEsUUFBUTs7MEJBQ1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBPcHRpb25hbCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY3JlYXRlQ3VzdG9tRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2VsZW1lbnRzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUGVwU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24uc2VydmljZSc7XG5pbXBvcnQgeyBQZXBGaWxlU2VydmljZSB9IGZyb20gJy4vZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaHR0cC9zZXJ2aWNlcy9odHRwLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVwTG9hZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2h0dHAvc2VydmljZXMvbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IElUcmFuc2xhdGlvblJlc291cmNlIH0gZnJvbSAnbmd4LXRyYW5zbGF0ZS1tdWx0aS1odHRwLWxvYWRlcic7XG5pbXBvcnQgeyBQZXBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBjb25uZWN0Um91dGVyIH0gZnJvbSAnQGFuZ3VsYXItYXJjaGl0ZWN0cy9tb2R1bGUtZmVkZXJhdGlvbi10b29scyc7XG5cbi8qXG4gICAgVGhpcyBzZXJ2aWNlIGlzIHRoZSB3ZWJhcHAgYXBpIGZvciBhZGRvbiB1c2VnZS5cbiovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBBZGRvblNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgUEFHRVNfQURET05fVVVJRCA9ICc1MDA2MmUwYy05OTY3LTRlZDQtOTEwMi1mMmJjNTA2MDJkNDEnO1xuICAgIC8vIHByaXZhdGUgcmVhZG9ubHkgQURET05fQVNTRVRTX1BBVEhfS0VZID0gJ0FkZG9uQXNzZXRzUGF0aCc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBBRERPTlNfRElDVElPTkFSWV9BU1NFVFNfUEFUSF9LRVkgPSAnQWRkb25zRGljdGlvbmFyeUFzc2V0c1BhdGgnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQURET05fQVBJX1JFTEFUSVZFX1BBVEggPSAnL2FkZG9ucy9hcGknO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQURET05fQVBJX0FTWU5DX1JFTEFUSVZFX1BBVEggPSBgJHt0aGlzLkFERE9OX0FQSV9SRUxBVElWRV9QQVRIfS9hc3luY2A7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBfY3VzdG9tRWxlbWVudHNNYXA6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwKCk7XG5cbiAgICBwdWJsaWMgZ2V0IGRldlNlcnZlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGUgPyB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdkZXZTZXJ2ZXInKSA9PT0gJ3RydWUnIDogZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvblNlcnZpY2U6IFBlcFNlc3Npb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBQZXBIdHRwU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsb2FkZXJTZXJ2aWNlOiBQZXBMb2FkZXJTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgdHJhbnNsYXRlU2VydmljZTogUGVwVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHVibGljIGZpbGVTZXJ2aWNlOiBQZXBGaWxlU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgKSB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBZGRvbkJhc2VSZWxhdGl2ZVBhdGgoaXNBc3luYyA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGlzQXN5bmNcbiAgICAgICAgICAgID8gdGhpcy5BRERPTl9BUElfQVNZTkNfUkVMQVRJVkVfUEFUSFxuICAgICAgICAgICAgOiB0aGlzLkFERE9OX0FQSV9SRUxBVElWRV9QQVRIO1xuICAgIH1cblxuICAgIGdldEFkZG9uU3RhdGljRm9sZGVyKGFkZG9uVVVJRDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgLy8gaWYgKGFkZG9uVVVJRC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBhZGRvbnNEaWN0aW9uYXJ5ID0gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRPYmplY3QodGhpcy5BRERPTlNfRElDVElPTkFSWV9BU1NFVFNfUEFUSF9LRVkpO1xuICAgICAgICAgICAgcmV0dXJuIGFkZG9uc0RpY3Rpb25hcnkgJiYgYWRkb25zRGljdGlvbmFyeVthZGRvblVVSURdID8gYWRkb25zRGljdGlvbmFyeVthZGRvblVVSURdIDogJyc7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyByZXR1cm4gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRPYmplY3QodGhpcy5BRERPTl9BU1NFVFNfUEFUSF9LRVkpIHx8ICcnO1xuICAgICAgICAvLyB9XG4gICAgfVxuXG4gICAgc2V0QWRkb25TdGF0aWNGb2xkZXIocGF0aDogc3RyaW5nLCBhZGRvblVVSUQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAvLyBpZiAoYWRkb25VVUlELmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGFkZG9uc0RpY3Rpb25hcnkgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldE9iamVjdCh0aGlzLkFERE9OU19ESUNUSU9OQVJZX0FTU0VUU19QQVRIX0tFWSkgPz8ge307XG4gICAgICAgICAgICBhZGRvbnNEaWN0aW9uYXJ5W2FkZG9uVVVJRF0gPSBwYXRoO1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uU2VydmljZS5zZXRPYmplY3QodGhpcy5BRERPTlNfRElDVElPTkFSWV9BU1NFVFNfUEFUSF9LRVksIGFkZG9uc0RpY3Rpb25hcnkpO1xuICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvblNlcnZpY2Uuc2V0T2JqZWN0KHRoaXMuQURET05fQVNTRVRTX1BBVEhfS0VZLCBwYXRoKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIGdldFNlcnZlckJhc2VVcmwoYWRkb25VVUlEOiBzdHJpbmcsIGZpbGVOYW1lID0gJycsIGlzQXN5bmMgPSBmYWxzZSwgbG9jYWxob3N0UG9ydCA9IDQ1MDApOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmaWxlVG9BZGQgPSBmaWxlTmFtZS5sZW5ndGggPiAwID8gYC8ke2ZpbGVOYW1lfWAgOiAnJztcbiAgICAgICAgXG4gICAgICAgIC8vIEZvciBkZXZTZXJ2ZXIgcnVuIHNlcnZlciBvbiBsb2NhbGhvc3QuXG4gICAgICAgIGlmKHRoaXMuZGV2U2VydmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gYGh0dHA6Ly9sb2NhbGhvc3Q6JHtsb2NhbGhvc3RQb3J0fSR7ZmlsZVRvQWRkfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRQYXBpQmFzZVVybCgpO1xuICAgICAgICAgICAgcmV0dXJuIGAke2Jhc2VVcmx9JHt0aGlzLmdldEFkZG9uQmFzZVJlbGF0aXZlUGF0aChpc0FzeW5jKX0vJHthZGRvblVVSUR9JHtmaWxlVG9BZGR9YDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEFkZG9uQXBpQ2FsbChcbiAgICAgICAgYWRkb25VVUlEOiBzdHJpbmcsXG4gICAgICAgIGZpbGVOYW1lOiBzdHJpbmcsXG4gICAgICAgIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICAgICAgICBodHRwT3B0aW9ucyA9IHt9LFxuICAgICAgICBpc0FzeW5jID0gZmFsc2VcbiAgICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICAvLyByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXRQYXBpQXBpQ2FsbChcbiAgICAgICAgLy8gICAgIGAke3RoaXMuZ2V0QWRkb25CYXNlUmVsYXRpdmVQYXRoKFxuICAgICAgICAvLyAgICAgICAgIGlzQXN5bmNcbiAgICAgICAgLy8gICAgICl9LyR7YWRkb25VVUlEfS8ke2ZpbGVOYW1lfS8ke2Z1bmN0aW9uTmFtZX1gLFxuICAgICAgICAvLyAgICAgaHR0cE9wdGlvbnNcbiAgICAgICAgLy8gKTtcblxuICAgICAgICBjb25zdCBwYXBpQmFzZVVybCA9IHRoaXMuZ2V0U2VydmVyQmFzZVVybChhZGRvblVVSUQsIGZpbGVOYW1lLCBpc0FzeW5jKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0SHR0cENhbGwoYCR7cGFwaUJhc2VVcmx9LyR7ZnVuY3Rpb25OYW1lfWAsIGh0dHBPcHRpb25zKTtcbiAgICB9XG5cbiAgICBwb3N0QWRkb25BcGlDYWxsKFxuICAgICAgICBhZGRvblVVSUQ6IHN0cmluZyxcbiAgICAgICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGJvZHkgPSB7fSxcbiAgICAgICAgaHR0cE9wdGlvbnMgPSB7fSxcbiAgICAgICAgaXNBc3luYyA9IGZhbHNlXG4gICAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgLy8gcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdFBhcGlBcGlDYWxsKFxuICAgICAgICAvLyAgICAgYCR7dGhpcy5nZXRBZGRvbkJhc2VSZWxhdGl2ZVBhdGgoXG4gICAgICAgIC8vICAgICAgICAgaXNBc3luY1xuICAgICAgICAvLyAgICAgKX0vJHthZGRvblVVSUR9LyR7ZmlsZU5hbWV9LyR7ZnVuY3Rpb25OYW1lfWAsXG4gICAgICAgIC8vICAgICBib2R5LFxuICAgICAgICAvLyAgICAgaHR0cE9wdGlvbnNcbiAgICAgICAgLy8gKTtcblxuICAgICAgICBjb25zdCBwYXBpQmFzZVVybCA9IHRoaXMuZ2V0U2VydmVyQmFzZVVybChhZGRvblVVSUQsIGZpbGVOYW1lLCBpc0FzeW5jKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdEh0dHBDYWxsKGAke3BhcGlCYXNlVXJsfS8ke2Z1bmN0aW9uTmFtZX1gLCBib2R5LCBodHRwT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0QWRkb25DUElDYWxsKFxuICAgICAgICBhZGRvblVVSUQ6IHN0cmluZyxcbiAgICAgICAgdXJsOiBzdHJpbmdcbiAgICApIHtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5lbWl0RXZlbnQoXCJBZGRvbkFQSVwiLCB7XG4gICAgICAgICAgICBBZGRvblVVSUQ6IGFkZG9uVVVJRCxcbiAgICAgICAgICAgIFJlbGF0aXZlVVJMOiB1cmwsXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKHJlcy5TdWNjZXNzKSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXMuVmFsdWUpXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzLlZhbHVlKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgcG9zdEFkZG9uQ1BJQ2FsbChcbiAgICAgICAgYWRkb25VVUlEOiBzdHJpbmcsXG4gICAgICAgIHVybDogc3RyaW5nLFxuICAgICAgICBib2R5OiBhbnlcbiAgICApIHtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5lbWl0RXZlbnQoXCJBZGRvbkFQSVwiLCB7XG4gICAgICAgICAgICBBZGRvblVVSUQ6IGFkZG9uVVVJRCxcbiAgICAgICAgICAgIFJlbGF0aXZlVVJMOiB1cmwsXG4gICAgICAgICAgICBNZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIEJvZHk6IGJvZHlcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAocmVzLlN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJlcy5WYWx1ZSlcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXMuVmFsdWUpXG4gICAgICAgIH1cbiAgICB9ICAgXG5cbiAgICBlbWl0RXZlbnQoZXZlbnRLZXk6IHN0cmluZywgZXZlbnREYXRhOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2VtaXQtZXZlbnQnLCB7XG4gICAgICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50S2V5LFxuICAgICAgICAgICAgICAgICAgICBldmVudERhdGE6IGV2ZW50RGF0YSxcbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbjogcmVzb2x2ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8vIFRPRE86IG5lZWQgdG8gY2hlayB0aGlzIGlmIHRoZSBsb2FkZXIgaXMgd29ya2luZy5cbiAgICBmZXRjaChpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ/OiBSZXF1ZXN0SW5pdCk6IFByb21pc2U8UmVzcG9uc2U+IHtcbiAgICAgICAgdGhpcy5sb2FkZXJTZXJ2aWNlLnNob3coKTtcblxuICAgICAgICByZXR1cm4gd2luZG93LmZldGNoKGlucHV0LCBpbml0KS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGVyU2VydmljZS5oaWRlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldE5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2UoYWRkb25VVUlEOiBzdHJpbmcsIGxpYk5hbWUgPSAnbmd4LWxpYicpOiBJVHJhbnNsYXRpb25SZXNvdXJjZSB7XG4gICAgICAgIGNvbnN0IGFkZG9uU3RhdGljRm9sZGVyID0gdGhpcy5nZXRBZGRvblN0YXRpY0ZvbGRlcihhZGRvblVVSUQpO1xuICAgICAgICBjb25zdCB0cmFuc2xhdGlvbnNQYXRoOiBzdHJpbmcgPSB0aGlzLmZpbGVTZXJ2aWNlLmdldEFzc2V0c1RyYW5zbGF0aW9uc1BhdGgoYWRkb25TdGF0aWNGb2xkZXIsIGxpYk5hbWUpO1xuICAgICAgICBjb25zdCB0cmFuc2xhdGlvbnNTdWZmaXg6IHN0cmluZyA9IHRoaXMuZmlsZVNlcnZpY2UuZ2V0QXNzZXRzVHJhbnNsYXRpb25zU3VmZml4KGxpYk5hbWUpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcmVmaXg6IHRyYW5zbGF0aW9uc1BhdGgsXG4gICAgICAgICAgICBzdWZmaXg6IHRyYW5zbGF0aW9uc1N1ZmZpeCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXRBZGRvblRyYW5zbGF0aW9uUmVzb3VyY2UoYWRkb25VVUlEOiBzdHJpbmcpOiBJVHJhbnNsYXRpb25SZXNvdXJjZSB7XG4gICAgICAgIGNvbnN0IGFkZG9uU3RhdGljRm9sZGVyID0gdGhpcy5nZXRBZGRvblN0YXRpY0ZvbGRlcihhZGRvblVVSUQpO1xuICAgICAgICBjb25zdCBkZWZhdWx0U3ViRm9sZGVyID0gJ2Fzc2V0cy9pMThuLyc7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByZWZpeDogYWRkb25TdGF0aWNGb2xkZXIubGVuZ3RoID4gMCA/IGAke2FkZG9uU3RhdGljRm9sZGVyfSR7ZGVmYXVsdFN1YkZvbGRlcn1gIDogYC8ke2RlZmF1bHRTdWJGb2xkZXJ9YCxcbiAgICAgICAgICAgIHN1ZmZpeDogJy5qc29uJyxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzZXREZWZhdWx0VHJhbnNsYXRlTGFuZyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHVybExhbmdQYXJhbSA9ICd1c2VyTGFuZycpIHtcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNldERlZmF1bHRUcmFuc2xhdGVMYW5nKHRyYW5zbGF0ZSwgdXJsTGFuZ1BhcmFtKTtcbiAgICB9XG5cbiAgICBnZXRQYWdlc0FkZG9uVVVJRCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuUEFHRVNfQURET05fVVVJRDtcbiAgICB9XG5cbiAgICBzZXRTaGVsbFJvdXRlckRhdGEoZGF0YTogeyBhZGRQYWRkaW5nPzogYm9vbGVhbiwgc2hvd1NpZGViYXI/OiBib29sZWFuLCBzaG93SGVhZGVyPzogYm9vbGVhbiB9KSB7XG4gICAgICAgIGNvbnN0IGV2ZW50RGF0YSA9IHtcbiAgICAgICAgICAgIGRldGFpbDogZGF0YSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBjdXN0b21FdmVudCA9IG5ldyBDdXN0b21FdmVudCgnc2V0LXJvdXRlci1kYXRhJywgZXZlbnREYXRhKTtcbiAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQoY3VzdG9tRXZlbnQpO1xuICAgIH1cblxuICAgIGRlZmluZUN1c3RvbUVsZW1lbnQoZWxlbWVudE5hbWU6IHN0cmluZywgY29tcG9uZW50OiBUeXBlPGFueT4sIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBpZiAoIWN1c3RvbUVsZW1lbnRzLmdldChlbGVtZW50TmFtZSkpIHsgIFxuICAgICAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKGVsZW1lbnROYW1lLCBjcmVhdGVDdXN0b21FbGVtZW50KGNvbXBvbmVudCwge2luamVjdG9yOiBpbmplY3Rvcn0pKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLy8gU2V0IHRoZSBlbGVtZW50TmFtZSBpbiB0aGUgX2N1c3RvbUVsZW1lbnRzTWFwIChGaXggaW50ZXJuYWwgcm91dGluZyBidWcpLlxuICAgICAgICAgICAgUGVwQWRkb25TZXJ2aWNlLl9jdXN0b21FbGVtZW50c01hcC5zZXQoZWxlbWVudE5hbWUsIHtpbmplY3RvcjogaW5qZWN0b3J9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpeCBpbnRlcm5hbCByb3V0aW5nIGJ1Zy5cbiAgICBjb25uZWN0SW50ZXJuYWxSb3V0ZXIoZWxlbWVudE5hbWU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBjdXN0b21FbGVtZW50T2JqZWN0ID0gUGVwQWRkb25TZXJ2aWNlLl9jdXN0b21FbGVtZW50c01hcC5nZXQoZWxlbWVudE5hbWUpO1xuICAgICAgICBsZXQgcm91dGVyID0gY3VzdG9tRWxlbWVudE9iamVjdD8uaW5qZWN0b3IuZ2V0KFJvdXRlcik7XG5cbiAgICAgICAgLy8gVGhpcyBjYXVzZSBhIHJlZnJlc2ggKGV2ZXJpdGhpbmcgaXMgbG9hZGluZyB0d2ljZSkgd2hlbiByZWxvYWRpbmcgdGhlIHBhZ2UuLi5cbiAgICAgICAgLy8gQnV0IGlmIHdlIHJlbW92ZSB0aGlzIHRoZSBmaXJzdCBuYXZpZ2F0aW9uIGlzIGNsZWFyIGFsbCBoaXN0b3J5IGNhdXNlIHRoZSByb3V0ZXIgaXMgbm90IGNvbm5lY3RlZC5cbiAgICAgICAgaWYgKCFyb3V0ZXIpIHtcbiAgICAgICAgICAgIHJvdXRlciA9IHRoaXMucm91dGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJvdXRlcikge1xuICAgICAgICAgICAgY29uc3QgdXNlSGFzaCA9IGxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJyMnKTtcbiAgICAgICAgICAgIHRoaXMuY29ubmVjdFJvdXRlcihyb3V0ZXIsIHVzZUhhc2gpO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgY29ubmVjdFJvdXRlcihyb3V0ZXIsIHVzZUhhc2ggPSBmYWxzZSkge1xuICAgICAgICBsZXQgdXJsO1xuICAgICAgICBpZiAoIXVzZUhhc2gpIHtcbiAgICAgICAgICAgIHVybCA9IGAke2xvY2F0aW9uLnBhdGhuYW1lLnN1YnN0cigxKX0ke2xvY2F0aW9uLnNlYXJjaH1gO1xuICAgICAgICAgICAgcm91dGVyLm5hdmlnYXRlQnlVcmwodXJsKTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsICgpID0+IHtcbiAgICAgICAgICAgICAgICByb3V0ZXIubmF2aWdhdGVCeVVybCh1cmwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB1cmwgPSBgJHtsb2NhdGlvbi5oYXNoLnN1YnN0cigxKX0ke2xvY2F0aW9uLnNlYXJjaH1gO1xuICAgICAgICAgICAgcm91dGVyLm5hdmlnYXRlQnlVcmwodXJsKTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdoYXNoY2hhbmdlJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlTXVsdGlUcmFuc2xhdGVMb2FkZXIoXG4gICAgICAgIGFkZG9uVVVJRDogc3RyaW5nLFxuICAgICAgICBhZGRvblNlcnZpY2U6IFBlcEFkZG9uU2VydmljZSxcbiAgICAgICAgbGlic05hbWUgPSBbJ25neC1saWInXSxcbiAgICApIHtcbiAgICAgICAgY29uc3Qgbmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZXMgPSBbXTtcblxuICAgICAgICBpZiAobGlic05hbWU/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsaWJzTmFtZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaWJOYW1lID0gbGlic05hbWVbaW5kZXhdO1xuICAgICAgICAgICAgICAgIG5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2VzLnB1c2goYWRkb25TZXJ2aWNlLmdldE5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2UoYWRkb25VVUlELCBsaWJOYW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhZGRvblRyYW5zbGF0aW9uUmVzb3VyY2UgPSBhZGRvblNlcnZpY2UuZ2V0QWRkb25UcmFuc2xhdGlvblJlc291cmNlKGFkZG9uVVVJRCk7XG5cbiAgICAgICAgcmV0dXJuIGFkZG9uU2VydmljZS50cmFuc2xhdGVTZXJ2aWNlLmNyZWF0ZU11bHRpVHJhbnNsYXRlTG9hZGVyKFtcbiAgICAgICAgICAgIC4uLm5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2VzLFxuICAgICAgICAgICAgYWRkb25UcmFuc2xhdGlvblJlc291cmNlXG4gICAgICAgIF0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -374,12 +374,12 @@ export class PepColorService {
374
374
  return (hsp > 127.5) ? 'light' : 'dark';
375
375
  }
376
376
  }
377
- PepColorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepColorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
378
- PepColorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepColorService, providedIn: 'root' });
379
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepColorService, decorators: [{
377
+ PepColorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepColorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
378
+ PepColorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepColorService, providedIn: 'root' });
379
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepColorService, decorators: [{
380
380
  type: Injectable,
381
381
  args: [{
382
382
  providedIn: 'root',
383
383
  }]
384
384
  }] });
385
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL2NvbG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFzQjNDLE1BQU0sT0FBTyxlQUFlO0lBSDVCO1FBSWEsZ0JBQVcsR0FBRyxlQUFlLENBQUM7UUFDOUIsZ0NBQTJCLEdBQUcsa0JBQWtCLENBQUM7UUFDakQsMENBQXFDLEdBQUcsbUJBQW1CLENBQUM7UUFDNUQsOEJBQXlCLEdBQUcsa0JBQWtCLENBQUM7UUFDL0Msd0NBQW1DLEdBQUcsbUJBQW1CLENBQUM7S0ErZHRFO0lBN2RXLFFBQVEsQ0FBQyxJQUFZLEVBQUUsSUFBWTtRQUN2QyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFdEQsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ1QsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztTQUNwQztRQUVELE9BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLGdDQUFnQyxDQUNwQyxlQUF1QixFQUN2QixVQUFrQixFQUNsQixhQUFxQjtRQUVyQixNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUs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QUNOLElBQUksQ0FBQyxDQUFDO1FBQ04sSUFBSSxDQUFDLENBQUM7UUFFTixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2QsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNUO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNkLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDVDtRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDZCxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ1Q7UUFFRCxDQUFDLElBQUksRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1AsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3BCO1FBRUQsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVQLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0QyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1AsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNOLENBQUMsR0FBRyxD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Q0FBQyxDQUFDLENBQ2xCLENBQUM7UUFFRixvRUFBb0U7UUFDcEUsT0FBTyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDNUMsQ0FBQzs7NEdBbmVRLGVBQWU7Z0hBQWYsZUFBZSxjQUZaLE1BQU07MkZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcFJnYkNvbG9yIHtcbiAgICByPzogYW55O1xuICAgIGc/OiBhbnk7XG4gICAgYj86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGVwSHNsQ29sb3Ige1xuICAgIGg/OiBhbnk7XG4gICAgcz86IGFueTtcbiAgICBsPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQZXBDbG9zZXN0Q29sb3Ige1xuICAgIGNvbG9yOiBzdHJpbmc7XG4gICAgbGlnaHRuZXNzOiBudW1iZXI7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcENvbG9yU2VydmljZSB7XG4gICAgcmVhZG9ubHkgRkxPQVRfUkVHRVggPSAvXlxcZCsoXFwuXFxkKyk/JC87XG4gICAgcmVhZG9ubHkgVEhSRUVfRElHSVRfSEVYX0NPTE9SX1JFR0VYID0gL15bMC05YS1mQS1GXXszfSQvO1xuICAgIHJlYWRvbmx5IFRIUkVFX0RJR0lUX0hFWF9DT0xPUl9XSVRIX0hBU0hfUkVHRVggPSAvXiNbMC05YS1mQS1GXXszfSQvO1xuICAgIHJlYWRvbmx5IFNJWF9ESUdJVF9IRVhfQ09MT1JfUkVHRVggPSAvXlswLTlhLWZBLUZdezZ9JC87XG4gICAgcmVhZG9ubHkgU0lYX0RJR0lUX0hFWF9DT0xPUl9XSVRIX0hBU0hfUkVHRVggPSAvXiNbMC05YS1mQS1GXXs2fSQvO1xuXG4gICAgcHJpdmF0ZSBjb250cmFzdChzdHIxOiBzdHJpbmcsIHN0cjI6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IEwxID0gdGhpcy5yZWxhdGl2ZUx1bWluYW5jZSh0aGlzLmhleDJyZ2Ioc3RyMSkpO1xuICAgICAgICBjb25zdCBMMiA9IHRoaXMucmVsYXRpdmVMdW1pbmFuY2UodGhpcy5oZXgycmdiKHN0cjIpKTtcblxuICAgICAgICBpZiAoTDEgPCBMMikge1xuICAgICAgICAgICAgcmV0dXJuIChMMiArIDAuMDUpIC8gKEwxICsgMC4wNSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKEwxICsgMC4wNSkgLyAoTDIgKyAwLjA1KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRDbG9zZXN0QWNjZXNzaWJsZURhcmtlckNvbG9yKFxuICAgICAgICBhZGp1c3RhYmxlQ29sb3I6IHN0cmluZyxcbiAgICAgICAgb3RoZXJDb2xvcjogc3RyaW5nLFxuICAgICAgICBjb250cmFzdFJhdGlvOiBudW1iZXJcbiAgICApOiBJUGVwQ2xvc2VzdENvbG9yIHtcbiAgICAgICAgY29uc3QgeyBoLCBzLCBsIH0gPSB0aGlzLmhleDJoc2woYWRqdXN0YWJsZUNvbG9yKTtcblxuICAgICAgICBpZiAodGhpcy5jb250cmFzdChhZGp1c3RhYmxlQ29sb3IsIG90aGVyQ29sb3IpID49IGNvbnRyYXN0UmF0aW8pIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFkanVzdGFibGVDb2xvcixcbiAgICAgICAgICAgICAgICBsaWdodG5lc3M6IGwsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG1pbkNvbG9yID0gdGhpcy5oc2wyaGV4KHsgaCwgcywgbDogMCB9KTtcblxuICAgICAgICBpZiAodGhpcy5jb250cmFzdChtaW5Db2xvciwgb3RoZXJDb2xvcikgPCBjb250cmFzdFJhdGlvKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBtaW4gPSAwO1xuICAgICAgICBsZXQgbWF4ID0gbDtcbiAgICAgICAgbGV0IG1heENvbG9yID0gdGhpcy5oc2wyaGV4KHsgaCwgcywgbCB9KTtcbiAgICAgICAgbGV0IGxhc3RNaW5Db2xvcjtcbiAgICAgICAgbGV0IGxhc3RNYXhDb2xvcjtcbiAgICAgICAgbGV0IGxUZW1wO1xuXG4gICAgICAgIHdoaWxlIChtaW5Db2xvciAhPT0gbGFzdE1pbkNvbG9yIHx8IG1heENvbG9yICE9PSBsYXN0TWF4Q29sb3IpIHtcbiAgICAgICAgICAgIGxhc3RNaW5Db2xvciA9IG1pbkNvbG9yO1xuICAgICAgICAgICAgbGFzdE1heENvbG9yID0gbWF4Q29sb3I7XG5cbiAgICAgICAgICAgIGxUZW1wID0gKG1pbiArIG1heCkgLyAyO1xuICAgICAgICAgICAgYWRqdXN0YWJsZUNvbG9yID0gdGhpcy5oc2wyaGV4KHsgaCwgcywgbDogbFRlbXAgfSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRyYXN0KGFkanVzdGFibGVDb2xvciwgb3RoZXJDb2xvcikgPCBjb250cmFzdFJhdGlvKSB7XG4gICAgICAgICAgICAgICAgbWF4ID0gbFRlbXA7XG4gICAgICAgICAgICAgICAgbWF4Q29sb3IgPSB0aGlzLmhzbDJoZXgoeyBoLCBzLCBsOiBsVGVtcCB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbWluID0gbFRlbXA7XG4gICAgICAgICAgICAgICAgbWluQ29sb3IgPSB0aGlzLmhzbDJoZXgoeyBoLCBzLCBsOiBsVGVtcCB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb2xvcjogbWluQ29sb3IsXG4gICAgICAgICAgICBsaWdodG5lc3M6IG1pbixcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRDbG9zZXN0QWNjZXNzaWJsZUxpZ2h0ZXJDb2xvcihcbiAgICAgICAgYWRqdXN0YWJsZUNvbG9yOiBzdHJpbmcsXG4gICAgICAgIG90aGVyQ29sb3I6IHN0cmluZyxcbiAgICAgICAgY29udHJhc3RSYXRpbzogbnVtYmVyXG4gICAgKTogSVBlcENsb3Nlc3RDb2xvciB7XG4gICAgICAgIGNvbnN0IHsgaCwgcywgbCB9ID0gdGhpcy5oZXgyaHNsKGFkanVzdGFibGVDb2xvcik7XG5cbiAgICAgICAgaWYgKHRoaXMuY29udHJhc3QoYWRqdXN0YWJsZUNvbG9yLCBvdGhlckNvbG9yKSA+PSBjb250cmFzdFJhdGlvKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhZGp1c3RhYmxlQ29sb3IsXG4gICAgICAgICAgICAgICAgbGlnaHRuZXNzOiBsLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBtYXhDb2xvciA9IHRoaXMuaHNsMmhleCh7IGgsIHMsIGw6IDEwMCB9KTtcblxuICAgICAgICBpZiAodGhpcy5jb250cmFzdChtYXhDb2xvciwgb3RoZXJDb2xvcikgPCBjb250cmFzdFJhdGlvKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBtaW4gPSBsO1xuICAgICAgICBsZXQgbWF4ID0gMTAwO1xuICAgICAgICBsZXQgbWluQ29sb3IgPSB0aGlzLmhzbDJoZXgoeyBoLCBzLCBsIH0pO1xuICAgICAgICBsZXQgbGFzdE1pbkNvbG9yO1xuICAgICAgICBsZXQgbGFzdE1heENvbG9yO1xuICAgICAgICBsZXQgbFRlbXA7XG5cbiAgICAgICAgd2hpbGUgKG1pbkNvbG9yICE9PSBsYXN0TWluQ29sb3IgfHwgbWF4Q29sb3IgIT09IGxhc3RNYXhDb2xvcikge1xuICAgICAgICAgICAgbGFzdE1pbkNvbG9yID0gbWluQ29sb3I7XG4gICAgICAgICAgICBsYXN0TWF4Q29sb3IgPSBtYXhDb2xvcjtcblxuICAgICAgICAgICAgbFRlbXAgPSAobWluICsgbWF4KSAvIDI7XG4gICAgICAgICAgICBhZGp1c3RhYmxlQ29sb3IgPSB0aGlzLmhzbDJoZXgoeyBoLCBzLCBsOiBsVGVtcCB9KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuY29udHJhc3QoYWRqdXN0YWJsZUNvbG9yLCBvdGhlckNvbG9yKSA8IGNvbnRyYXN0UmF0aW8pIHtcbiAgICAgICAgICAgICAgICBtaW4gPSBsVGVtcDtcbiAgICAgICAgICAgICAgICBtaW5Db2xvciA9IHRoaXMuaHNsMmhleCh7IGgsIHMsIGw6IGxUZW1wIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtYXggPSBsVGVtcDtcbiAgICAgICAgICAgICAgICBtYXhDb2xvciA9IHRoaXMuaHNsMmhleCh7IGgsIHMsIGw6IGxUZW1wIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXhDb2xvcixcbiAgICAgICAgICAgIGxpZ2h0bmVzczogbWF4LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgaGV4IHN0cmluZyB0byA2IGRpZ2l0cyBoZXggc3RyaW5nLlxuICAgICAqIEBwYXJhbSBzdHIgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqL1xuICAgIGhleDJzaXhEaWdpdEhleChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICghc3RyKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0ciA9IHN0ci50cmltKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuU0lYX0RJR0lUX0hFWF9DT0xPUl9XSVRIX0hBU0hfUkVHRVgudGVzdChzdHIpKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuU0lYX0RJR0lUX0hFWF9DT0xPUl9SRUdFWC50ZXN0KHN0cikpIHtcbiAgICAgICAgICAgIHJldHVybiAnIycgKyBzdHI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5USFJFRV9ESUdJVF9IRVhfQ09MT1JfV0lUSF9IQVNIX1JFR0VYLnRlc3Qoc3RyKSkge1xuICAgICAgICAgICAgcmV0dXJuICcjJyArIHN0clsxXSArIHN0clsxXSArIHN0clsyXSArIHN0clsyXSArIHN0clszXSArIHN0clszXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLlRIUkVFX0RJR0lUX0hFWF9DT0xPUl9SRUdFWC50ZXN0KHN0cikpIHtcbiAgICAgICAgICAgIHJldHVybiAnIycgKyBzdHJbMF0gKyBzdHJbMF0gKyBzdHJbMV0gKyBzdHJbMV0gKyBzdHJbMl0gKyBzdHJbMl07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IHJnYiBjb2xvciB0byA2IGRpZ2l0cyBoZXggc3RyaW5nLlxuICAgICAqIEBwYXJhbSBjb2xvciBUaGUgcmdiIGNvbG9yIHRvIGNvbnZlcnQuXG4gICAgICovXG4gICAgcmdiMnNpeERpZ2l0SGV4KGNvbG9yOiBJUGVwUmdiQ29sb3IpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWNvbG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbG9yLnIgPSBjb2xvci5yLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgY29sb3IuZyA9IGNvbG9yLmcudG9TdHJpbmcoMTYpO1xuICAgICAgICBjb2xvci5iID0gY29sb3IuYi50b1N0cmluZygxNik7XG5cbiAgICAgICAgaWYgKGNvbG9yLnIubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBjb2xvci5yID0gJzAnICsgY29sb3IucjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb2xvci5nLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgY29sb3IuZyA9ICcwJyArIGNvbG9yLmc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29sb3IuYi5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIGNvbG9yLmIgPSAnMCcgKyBjb2xvci5iO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICcjJyArIGNvbG9yLnIgKyBjb2xvci5nICsgY29sb3IuYjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGhleCBzdHJpbmcgdG8gcmdiIGNvbG9yLlxuICAgICAqIEBwYXJhbSBzdHIgVGhlIGhleCBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKi9cbiAgICBoZXgycmdiKHN0cjogc3RyaW5nKTogSVBlcFJnYkNvbG9yIHtcbiAgICAgICAgaWYgKCFzdHIpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2l4RGlnaXRIZXggPSB0aGlzLmhleDJzaXhEaWdpdEhleChzdHIpO1xuXG4gICAgICAgIGlmIChzaXhEaWdpdEhleCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcjogcGFyc2VJbnQoc2l4RGlnaXRIZXguc2xpY2UoMSwgMyksIDE2KSxcbiAgICAgICAgICAgIGc6IHBhcnNlSW50KHNpeERpZ2l0SGV4LnNsaWNlKDMsIDUpLCAxNiksXG4gICAgICAgICAgICBiOiBwYXJzZUludChzaXhEaWdpdEhleC5zbGljZSg1LCA3KSwgMTYpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJnYlN0cmluZzJoc2woc3RyOiBzdHJpbmcpOiBJUGVwSHNsQ29sb3Ige1xuICAgICAgICBpZiAoIXN0cikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzZXAgPSBzdHIuaW5kZXhPZignLCcpID4gLTEgPyAnLCcgOiAnICc7XG4gICAgICAgIGNvbnN0IHJnYkFyciA9IHN0ci5zdWJzdHIoNCkuc3BsaXQoJyknKVswXS5zcGxpdChzZXApO1xuXG4gICAgICAgIGNvbnN0IHIgPSByZ2JBcnJbMF07XG4gICAgICAgIGNvbnN0IGcgPSByZ2JBcnJbMV0uc3Vic3RyKDAsIHJnYkFyclsxXS5sZW5ndGgpLnRyaW0oKTtcbiAgICAgICAgY29uc3QgYiA9IHJnYkFyclsyXS5zdWJzdHIoMCwgcmdiQXJyWzJdLmxlbmd0aCkudHJpbSgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnJnYjJoc2woeyByLCBnLCBiIH0pO1xuICAgIH1cblxuICAgIHJnYjJoc2woeyByLCBnLCBiIH06IElQZXBSZ2JDb2xvcik6IElQZXBIc2xDb2xvciB7XG4gICAgICAgIHIgLz0gMjU1O1xuICAgICAgICBnIC89IDI1NTtcbiAgICAgICAgYiAvPSAyNTU7XG5cbiAgICAgICAgLy8gRmluZCBncmVhdGVzdCBhbmQgc21hbGxlc3QgY2hhbm5lbCB2YWx1ZXNcbiAgICAgICAgY29uc3QgY21pbiA9IE1hdGgubWluKHIsIGcsIGIpO1xuICAgICAgICBjb25zdCBjbWF4ID0gTWF0aC5tYXgociwgZywgYik7XG4gICAgICAgIGNvbnN0IGRlbHRhID0gY21heCAtIGNtaW47XG5cbiAgICAgICAgbGV0IGggPSAwO1xuICAgICAgICBsZXQgcyA9IDA7XG4gICAgICAgIGxldCBsID0gMDtcblxuICAgICAgICBpZiAoZGVsdGEgPT09IDApIHtcbiAgICAgICAgICAgIGggPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKGNtYXggPT09IHIpIHtcbiAgICAgICAgICAgIGggPSAoKGcgLSBiKSAvIGRlbHRhKSAlIDY7XG4gICAgICAgIH0gZWxzZSBpZiAoY21heCA9PT0gZykge1xuICAgICAgICAgICAgaCA9IChiIC0gcikgLyBkZWx0YSArIDI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBoID0gKHIgLSBnKSAvIGRlbHRhICsgNDtcbiAgICAgICAgfVxuXG4gICAgICAgIGggPSBNYXRoLnJvdW5kKGggKiA2MCk7XG5cbiAgICAgICAgaWYgKGggPCAwKSB7XG4gICAgICAgICAgICBoICs9IDM2MDtcbiAgICAgICAgfVxuXG4gICAgICAgIGwgPSAoY21heCArIGNtaW4pIC8gMjtcbiAgICAgICAgcyA9IGRlbHRhID09PSAwID8gMCA6IGRlbHRhIC8gKDEgLSBNYXRoLmFicygyICogbCAtIDEpKTtcbiAgICAgICAgcyA9ICsocyAqIDEwMCkudG9GaXhlZCgxKTtcbiAgICAgICAgbCA9ICsobCAqIDEwMCkudG9GaXhlZCgxKTtcblxuICAgICAgICByZXR1cm4geyBoLCBzLCBsIH07XG4gICAgfVxuXG4gICAgaHNsU3RyaW5nMmhzbChzdHI6IHN0cmluZyk6IElQZXBIc2xDb2xvciB7XG4gICAgICAgIGlmICghc3RyKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlcCA9IHN0ci5pbmRleE9mKCcsJykgPiAtMSA/ICcsJyA6ICcgJztcbiAgICAgICAgY29uc3QgaHNsQXJyID0gc3RyLnN1YnN0cig0KS5zcGxpdCgnKScpWzBdLnNwbGl0KHNlcCk7XG5cbiAgICAgICAgbGV0IGg6IGFueSA9IGhzbEFyclswXTtcbiAgICAgICAgbGV0IHMgPSBoc2xBcnJbMV0uc3Vic3RyKDAsIGhzbEFyclsxXS5sZW5ndGgpLnRyaW0oKTtcbiAgICAgICAgbGV0IGwgPSBoc2xBcnJbMl0uc3Vic3RyKDAsIGhzbEFyclsyXS5sZW5ndGgpLnRyaW0oKTtcblxuICAgICAgICAvLyBTdHJpcCBsYWJlbCBhbmQgY29udmVydCB0byBkZWdyZWVzIChpZiBuZWNlc3NhcnkpXG4gICAgICAgIGlmIChoLmluZGV4T2YoJ2RlZycpID4gLTEpIHtcbiAgICAgICAgICAgIGggPSBoLnN1YnN0cigwLCBoLmxlbmd0aCAtIDMpO1xuICAgICAgICB9IGVsc2UgaWYgKGguaW5kZXhPZigncmFkJykgPiAtMSkge1xuICAgICAgICAgICAgaCA9IE1hdGgucm91bmQoaC5zdWJzdHIoMCwgaC5sZW5ndGggLSAzKSAqICgxODAgLyBNYXRoLlBJKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaC5pbmRleE9mKCd0dXJuJykgPiAtMSkge1xuICAgICAgICAgICAgaCA9IE1hdGgucm91bmQoaC5zdWJzdHIoMCwgaC5sZW5ndGggLSA0KSAqIDM2MCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBLZWVwIGh1ZSBmcmFjdGlvbiBvZiAzNjAgaWYgZW5kaW5nIHVwIG92ZXJcbiAgICAgICAgaWYgKGggPj0gMzYwKSB7XG4gICAgICAgICAgICBoICU9IDM2MDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgJVxuICAgICAgICBpZiAocy5pbmRleE9mKCclJykgPiAtMSkge1xuICAgICAgICAgICAgcyA9IHMucmVwbGFjZSgvJS9nLCAnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZW1vdmUgdGhlICVcbiAgICAgICAgaWYgKGwuaW5kZXhPZignJScpID4gLTEpIHtcbiAgICAgICAgICAgIGwgPSBsLnJlcGxhY2UoLyUvZywgJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHsgaCwgcywgbCB9O1xuICAgIH1cblxuICAgIGhzbDJyZ2IoeyBoLCBzLCBsIH06IElQZXBIc2xDb2xvcik6IElQZXBSZ2JDb2xvciB7XG4gICAgICAgIGxldCByO1xuICAgICAgICBsZXQgZztcbiAgICAgICAgbGV0IGI7XG5cbiAgICAgICAgaWYgKCFpc0Zpbml0ZShoKSkge1xuICAgICAgICAgICAgaCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzRmluaXRlKHMpKSB7XG4gICAgICAgICAgICBzID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNGaW5pdGUobCkpIHtcbiAgICAgICAgICAgIGwgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaCAvPSA2MDtcblxuICAgICAgICBpZiAoaCA8IDApIHtcbiAgICAgICAgICAgIGggPSA2IC0gKC1oICUgNik7XG4gICAgICAgIH1cblxuICAgICAgICBoICU9IDY7XG5cbiAgICAgICAgcyA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIHMgLyAxMDApKTtcbiAgICAgICAgbCA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIGwgLyAxMDApKTtcblxuICAgICAgICBjb25zdCBjID0gKDEgLSBNYXRoLmFicygyICogbCAtIDEpKSAqIHM7XG4gICAgICAgIGNvbnN0IHggPSBjICogKDEgLSBNYXRoLmFicygoaCAlIDIpIC0gMSkpO1xuXG4gICAgICAgIGlmIChoIDwgMSkge1xuICAgICAgICAgICAgciA9IGM7XG4gICAgICAgICAgICBnID0geDtcbiAgICAgICAgICAgIGIgPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCAyKSB7XG4gICAgICAgICAgICByID0geDtcbiAgICAgICAgICAgIGcgPSBjO1xuICAgICAgICAgICAgYiA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoaCA8IDMpIHtcbiAgICAgICAgICAgIHIgPSAwO1xuICAgICAgICAgICAgZyA9IGM7XG4gICAgICAgICAgICBiID0geDtcbiAgICAgICAgfSBlbHNlIGlmIChoIDwgNCkge1xuICAgICAgICAgICAgciA9IDA7XG4gICAgICAgICAgICBnID0geDtcbiAgICAgICAgICAgIGIgPSBjO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCA1KSB7XG4gICAgICAgICAgICByID0geDtcbiAgICAgICAgICAgIGcgPSAwO1xuICAgICAgICAgICAgYiA9IGM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByID0gYztcbiAgICAgICAgICAgIGcgPSAwO1xuICAgICAgICAgICAgYiA9IHg7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtID0gbCAtIGMgLyAyO1xuICAgICAgICByID0gTWF0aC5yb3VuZCgociArIG0pICogMjU1KTtcbiAgICAgICAgZyA9IE1hdGgucm91bmQoKGcgKyBtKSAqIDI1NSk7XG4gICAgICAgIGIgPSBNYXRoLnJvdW5kKChiICsgbSkgKiAyNTUpO1xuXG4gICAgICAgIHJldHVybiB7IHIsIGcsIGIgfTtcbiAgICB9XG5cbiAgICBoZXgyaHNsKHN0cjogc3RyaW5nKTogSVBlcEhzbENvbG9yIHtcbiAgICAgICAgaWYgKCFzdHIpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2l4RGlnaXRIZXggPSB0aGlzLmhleDJzaXhEaWdpdEhleChzdHIpO1xuXG4gICAgICAgIGlmIChzaXhEaWdpdEhleCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZ2IgPSB0aGlzLmhleDJyZ2Ioc2l4RGlnaXRIZXgpO1xuXG4gICAgICAgIGlmIChyZ2IgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmdiMmhzbChyZ2IpO1xuICAgIH1cblxuICAgIGhzbDJoZXgoaHNsOiBJUGVwSHNsQ29sb3IpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWhzbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZ2IgPSB0aGlzLmhzbDJyZ2IoaHNsKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5yZ2Iyc2l4RGlnaXRIZXgocmdiKTtcbiAgICB9XG5cbiAgICByZWxhdGl2ZUx1bWluYW5jZSh7IHIsIGcsIGIgfTogSVBlcFJnYkNvbG9yKTogbnVtYmVyIHtcbiAgICAgICAgW3IsIGcsIGJdID0gW3IsIGcsIGJdLm1hcCgoYykgPT4ge1xuICAgICAgICAgICAgYyA9IGMgLyAyNTU7XG5cbiAgICAgICAgICAgIGlmIChjIDw9IDAuMDM5MjgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYyAvIDEyLjkyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gTWF0aC5wb3coKGMgKyAwLjA1NSkgLyAxLjA1NSwgMi40KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIDAuMjEyNiAqIHIgKyAwLjcxNTIgKiBnICsgMC4wNzIyICogYjtcbiAgICB9XG5cbiAgICBmaW5kQ2xvc2VzdEFjY2Vzc2libGVDb2xvcihcbiAgICAgICAgYWRqdXN0YWJsZUNvbG9yOiBzdHJpbmcsXG4gICAgICAgIG90aGVyQ29sb3I6IHN0cmluZyxcbiAgICAgICAgY29udHJhc3RSYXRpbzogbnVtYmVyXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgY2xvc2VzdERhcmtlckNvbG9yOiBJUGVwQ2xvc2VzdENvbG9yID0gdGhpcy5maW5kQ2xvc2VzdEFjY2Vzc2libGVEYXJrZXJDb2xvcihcbiAgICAgICAgICAgIGFkanVzdGFibGVDb2xvcixcbiAgICAgICAgICAgIG90aGVyQ29sb3IsXG4gICAgICAgICAgICBjb250cmFzdFJhdGlvXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGNsb3Nlc3RMaWdodGVyQ29sb3I6IElQZXBDbG9zZXN0Q29sb3IgPSB0aGlzLmZpbmRDbG9zZXN0QWNjZXNzaWJsZUxpZ2h0ZXJDb2xvcihcbiAgICAgICAgICAgIGFkanVzdGFibGVDb2xvcixcbiAgICAgICAgICAgIG90aGVyQ29sb3IsXG4gICAgICAgICAgICBjb250cmFzdFJhdGlvXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGNsb3Nlc3REYXJrZXJDb2xvciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGNsb3Nlc3RMaWdodGVyQ29sb3IgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGNsb3Nlc3RMaWdodGVyQ29sb3IuY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2xvc2VzdExpZ2h0ZXJDb2xvciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGNsb3Nlc3REYXJrZXJDb2xvci5jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgbCB9ID0gdGhpcy5oZXgyaHNsKGFkanVzdGFibGVDb2xvcik7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgY2xvc2VzdExpZ2h0ZXJDb2xvci5saWdodG5lc3MgLSBsIDxcbiAgICAgICAgICAgIGwgLSBjbG9zZXN0RGFya2VyQ29sb3IubGlnaHRuZXNzXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIGNsb3Nlc3RMaWdodGVyQ29sb3IuY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xvc2VzdERhcmtlckNvbG9yLmNvbG9yO1xuICAgIH1cblxuICAgIGNvbnZlcnRIc2xUb1N0cmluZ0hzbChoc2w6IElQZXBIc2xDb2xvcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAnaHNsKCcgK1xuICAgICAgICAgICAgKGhzbC5oIDwgMCA/IGhzbC5oICsgMzYwIDogaHNsLmgpICtcbiAgICAgICAgICAgICcsICcgK1xuICAgICAgICAgICAgaHNsLnMgK1xuICAgICAgICAgICAgJyUsICcgK1xuICAgICAgICAgICAgaHNsLmwgK1xuICAgICAgICAgICAgJyUpJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGxpZ2h0T3JEYXJrKGNvbG9yOiBhbnkpOiAnbGlnaHQnIHwgJ2RhcmsnIHtcbiAgICAgICAgbGV0IHIgPSB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBnID0gdW5kZWZpbmVkO1xuICAgICAgICBsZXQgYiA9IHVuZGVmaW5lZDtcblxuICAgICAgICAvLyBDaGVjayB0aGUgZm9ybWF0IG9mIHRoZSBjb2xvciwgSEVYIG9yIFJHQj9cbiAgICAgICAgaWYgKGNvbG9yLm1hdGNoKC9ecmdiLykpIHtcbiAgICAgICAgICAgIC8vIElmIEhFWCAtLT4gc3RvcmUgdGhlIHJlZCwgZ3JlZW4sIGJsdWUgdmFsdWVzIGluIHNlcGFyYXRlIHZhcmlhYmxlc1xuICAgICAgICAgICAgY29sb3IgPSBjb2xvci5tYXRjaCgvXnJnYmE/XFwoKFxcZCspLFxccyooXFxkKyksXFxzKihcXGQrKSg/OixcXHMqKFxcZCsoPzpcXC5cXGQrKT8pKT9cXCkkLyk7XG4gICAgICBcbiAgICAgICAgICAgIHIgPSBjb2xvclsxXTtcbiAgICAgICAgICAgIGcgPSBjb2xvclsyXTtcbiAgICAgICAgICAgIGIgPSBjb2xvclszXTtcbiAgICAgICAgfSBcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBJZiBSR0IgLS0+IENvbnZlcnQgaXQgdG8gSEVYOiBodHRwOi8vZ2lzdC5naXRodWIuY29tLzk4MzY2MVxuICAgICAgICAgICAgY29sb3IgPSArKFwiMHhcIiArIGNvbG9yLnNsaWNlKDEpLnJlcGxhY2UoIFxuICAgICAgICAgICAgICAgIGNvbG9yLmxlbmd0aCA8IDUgJiYgLy4vZywgJyQmJCYnXG4gICAgICAgICAgICApKTtcbiAgICAgICAgXG4gICAgICAgICAgICByID0gY29sb3IgPj4gMTY7XG4gICAgICAgICAgICBnID0gY29sb3IgPj4gOCAmIDI1NTtcbiAgICAgICAgICAgIGIgPSBjb2xvciAmIDI1NTtcbiAgICAgICAgfVxuICAgICAgXG4gICAgICAgIC8vIEhTUCAoSGlnaGx5IFNlbnNpdGl2ZSBQb28pIGVxdWF0aW9uIGZyb20gaHR0cDovL2FsaWVucnlkZXJmbGV4LmNvbS9oc3AuaHRtbFxuICAgICAgICBjb25zdCBoc3AgPSBNYXRoLnNxcnQoXG4gICAgICAgICAgICAwLjI5OSAqIChyICogcikgK1xuICAgICAgICAgICAgMC41ODcgKiAoZyAqIGcpICtcbiAgICAgICAgICAgIDAuMTE0ICogKGIgKiBiKVxuICAgICAgICApO1xuICAgICAgXG4gICAgICAgIC8vIFVzaW5nIHRoZSBIU1AgdmFsdWUsIGRldGVybWluZSB3aGV0aGVyIHRoZSBjb2xvciBpcyBsaWdodCBvciBkYXJrXG4gICAgICAgIHJldHVybiAoaHNwID4gMTI3LjUpID8gJ2xpZ2h0JyA6ICdkYXJrJztcbiAgICB9XG59XG4iXX0=
385
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL2NvbG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFzQjNDLE1BQU0sT0FBTyxlQUFlO0lBSDVCO1FBSWEsZ0JBQVcsR0FBRyxlQUFlLENBQUM7UUFDOUIsZ0NBQTJCLEdBQUcsa0JBQWtCLENBQUM7UUFDakQsMENBQXFDLEdBQUcsbUJBQW1CLENBQUM7UUFDNUQsOEJBQXlCLEdBQUcsa0JBQWtCLENBQUM7UUFDL0Msd0NBQW1DLEdBQUcsbUJBQW1CLENBQUM7S0ErZHRFO0lBN2RXLFFBQVEsQ0FBQyxJQUFZLEVBQUUsSUFBWTtRQUN2QyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFdEQsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ1QsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztTQUNwQztRQUVELE9BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLGdDQUFnQyxDQUNwQyxlQUF1QixFQUN2QixVQUFrQixFQUNsQixhQUFxQjtRQUVyQixNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUs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QUNOLElBQUksQ0FBQyxDQUFDO1FBQ04sSUFBSSxDQUFDLENBQUM7UUFFTixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2QsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNUO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNkLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDVDtRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDZCxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ1Q7UUFFRCxDQUFDLElBQUksRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1AsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3BCO1FBRUQsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVQLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0QyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1AsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNOLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDTixDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ1Q7YUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDZCxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ04sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNOLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDVDthQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNkLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDTixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ04sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNUO2FBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2QsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNOLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDTixDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ1Q7YUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDZCxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ04sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNOLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDVDthQUFNO1lBQ0gsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNOLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDTixDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ1Q7UUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQixDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUU5QixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVc7UUFDZixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ04sT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFOUMsSUFBSSxXQUFXLEtBQUssSUFBSSxFQUFFO1lBQ3RCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXRDLElBQUksR0FBRyxLQUFLLElBQUksRUFBRTtZQUNkLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFpQjtRQUNyQixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ04sT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFOUIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFnQjtRQUN2QyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzVCLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBRVosSUFBSSxDQUFDLElBQUksT0FBTyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQzthQUNwQjtZQUVELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sR0FBRyxDQUFDLEdBQUcsTUFBTSxHQUFHLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCwwQkFBMEIsQ0FDdEIsZUFBdUIsRUFDdkIsVUFBa0IsRUFDbEIsYUFBcUI7UUFFckIsTUFBTSxrQkFBa0IsR0FBcUIsSUFBSSxDQUFDLGdDQUFnQyxDQUM5RSxlQUFlLEVBQ2YsVUFBVSxFQUNWLGFBQWEsQ0FDaEIsQ0FBQztRQUNGLE1BQU0sbUJBQW1CLEdBQXFCLElBQUksQ0FBQyxpQ0FBaUMsQ0FDaEYsZUFBZSxFQUNmLFVBQVUsRUFDVixhQUFhLENBQ2hCLENBQUM7UUFFRixJQUFJLGtCQUFrQixLQUFLLElBQUksRUFBRTtZQUM3QixJQUFJLG1CQUFtQixLQUFLLElBQUksRUFBRTtnQkFDOUIsT0FBTyxJQUFJLENBQUM7YUFDZjtZQUVELE9BQU8sbUJBQW1CLENBQUMsS0FBSyxDQUFDO1NBQ3BDO1FBRUQsSUFBSSxtQkFBbUIsS0FBSyxJQUFJLEVBQUU7WUFDOUIsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7U0FDbkM7UUFFRCxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUU1QyxJQUNJLG1CQUFtQixDQUFDLFNBQVMsR0FBRyxDQUFDO1lBQ2pDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLEVBQ2xDO1lBQ0UsT0FBTyxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7U0FDcEM7UUFFRCxPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsR0FBaUI7UUFDbkMsT0FBTyxDQUNILE1BQU07WUFDTixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqQyxJQUFJO1lBQ0osR0FBRyxDQUFDLENBQUM7WUFDTCxLQUFLO1lBQ0wsR0FBRyxDQUFDLENBQUM7WUFDTCxJQUFJLENBQ1AsQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNsQixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUM7UUFDbEIsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUVsQiw2Q0FBNkM7UUFDN0MsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3JCLHFFQUFxRTtZQUNyRSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO1lBRWxGLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDYixDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2IsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNoQjthQUNJO1lBQ0QsOERBQThEO1lBQzlELEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUNuQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsTUFBTSxDQUNuQyxDQUFDLENBQUM7WUFFSCxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNoQixDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDckIsQ0FBQyxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUM7U0FDbkI7UUFFRCw4RUFBOEU7UUFDOUUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FDakIsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNmLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZixLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ2xCLENBQUM7UUFFRixvRUFBb0U7UUFDcEUsT0FBTyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDNUMsQ0FBQzs7NkdBbmVRLGVBQWU7aUhBQWYsZUFBZSxjQUZaLE1BQU07NEZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcFJnYkNvbG9yIHtcbiAgICByPzogYW55O1xuICAgIGc/OiBhbnk7XG4gICAgYj86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGVwSHNsQ29sb3Ige1xuICAgIGg/OiBhbnk7XG4gICAgcz86IGFueTtcbiAgICBsPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQZXBDbG9zZXN0Q29sb3Ige1xuICAgIGNvbG9yOiBzdHJpbmc7XG4gICAgbGlnaHRuZXNzOiBudW1iZXI7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcENvbG9yU2VydmljZSB7XG4gICAgcmVhZG9ubHkgRkxPQVRfUkVHRVggPSAvXlxcZCsoXFwuXFxkKyk/JC87XG4gICAgcmVhZG9ubHkgVEhSRUVfRElHSVRfSEVYX0NPTE9SX1JFR0VYID0gL15bMC05YS1mQS1GXXszfSQvO1xuICAgIHJlYWRvbmx5IFRIUkVFX0RJR0lUX0hFWF9DT0xPUl9XSVRIX0hBU0hfUkVHRVggPSAvXiNbMC05YS1mQS1GXXszfSQvO1xuICAgIHJlYWRvbmx5IFNJWF9ESUdJVF9IRVhfQ09MT1JfUkVHRVggPSAvXlswLTlhLWZBLUZdezZ9JC87XG4gICAgcmVhZG9ubHkgU0lYX0RJR0lUX0hFWF9DT0xPUl9XSVRIX0hBU0hfUkVHRVggPSAvXiNbMC05YS1mQS1GXXs2fSQvO1xuXG4gICAgcHJpdmF0ZSBjb250cmFzdChzdHIxOiBzdHJpbmcsIHN0cjI6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IEwxID0gdGhpcy5yZWxhdGl2ZUx1bWluYW5jZSh0aGlzLmhleDJyZ2Ioc3RyMSkpO1xuICAgICAgICBjb25zdCBMMiA9IHRoaXMucmVsYXRpdmVMdW1pbmFuY2UodGhpcy5oZXgycmdiKHN0cjIpKTtcblxuICAgICAgICBpZiAoTDEgPCBMMikge1xuICAgICAgICAgICAgcmV0dXJuIChMMiArIDAuMDUpIC8gKEwxICsgMC4wNSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKEwxICsgMC4wNSkgLyAoTDIgKyAwLjA1KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRDbG9zZXN0QWNjZXNzaWJsZURhcmtlckNvbG9yKFxuICAgICAgICBhZGp1c3RhYmxlQ29sb3I6IHN0cmluZyxcbiAgICAgICAgb3RoZXJDb2xvcjogc3RyaW5nLFxuICAgICAgICBjb250cmFzdFJhdGlvOiBudW1iZXJcbiAgICApOiBJUGVwQ2xvc2VzdENvbG9yIHtcbiAgICAgICAgY29uc3QgeyBoLCBzLCBsIH0gPSB0aGlzLmhleDJoc2woYWRqdXN0YWJsZUNvbG9yKTtcblxuICAgICAgICBpZiAodGhpcy5jb250cmFzdChhZGp1c3RhYmxlQ29sb3IsIG90aGVyQ29sb3IpID49IGNvbnRyYXN0UmF0aW8pIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFkanVzdGFibGVDb2xvcixcbiAgICAgICAgICAgICAgICBsaWdodG5lc3M6IGwsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG1pbkNvbG9yID0gdGhpcy5oc2wyaGV4KHsgaCwgcywgbDogMCB9KTtcblxuICAgICAgICBpZiAodGhpcy5jb250cmFzdChtaW5Db2xvciwgb3RoZXJDb2xvcikgPCBjb250cmFzdFJhdGlvKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBtaW4gPSAwO1xuICAgICAgICBsZXQgbWF4ID0gbDtcbiAgICAgICAgbGV0IG1heENvbG9yID0gdGhpcy5oc2wyaGV4KHsgaCwgcywgbCB9KTtcbiAgICAgICAgbGV0IGxhc3RNaW5Db2xvcjtcbiAgICAgICAgbGV0IGxhc3RNYXhDb2xvcjtcbiAgICAgICAgbGV0IGxUZW1wO1xuXG4gICAgICAgIHdoaWxlIChtaW5Db2xvciAhPT0gbGFzdE1pbkNvbG9yIHx8IG1heENvbG9yICE9PSBsYXN0TWF4Q29sb3IpIHtcbiAgICAgICAgICAgIGxhc3RNaW5Db2xvciA9IG1pbkNvbG9yO1xuICAgICAgICAgICAgbGFzdE1heENvbG9yID0gbWF4Q29sb3I7XG5cbiAgICAgICAgICAgIGxUZW1wID0gKG1pbiArIG1heCkgLyAyO1xuICAgICAgICAgICAgYWRqdXN0YWJsZUNvbG9yID0gdGhpcy5oc2wyaGV4KHsgaCwgcywgbDogbFRlbXAgfSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRyYXN0KGFkanVzdGFibGVDb2xvciwgb3RoZXJDb2xvcikgPCBjb250cmFzdFJhdGlvKSB7XG4gICAgICAgICAgICAgICAgbWF4ID0gbFRlbXA7XG4gICAgICAgICAgICAgICAgbWF4Q29sb3IgPSB0aGlzLmhzbDJoZXgoeyBoLCBzLCBsOiBsVGVtcCB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbWluID0gbFRlbXA7XG4gICAgICAgICAgICAgICAgbWluQ29sb3IgPSB0aGlzLmhzbDJoZXgoeyBoLCBzLCBsOiBsVGVtcCB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb2xvcjogbWluQ29sb3IsXG4gICAgICAgICAgICBsaWdodG5lc3M6IG1pbixcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRDbG9zZXN0QWNjZXNzaWJsZUxpZ2h0ZXJDb2xvcihcbiAgICAgICAgYWRqdXN0YWJsZUNvbG9yOiBzdHJpbmcsXG4gICAgICAgIG90aGVyQ29sb3I6IHN0cmluZyxcbiAgICAgICAgY29udHJhc3RSYXRpbzogbnVtYmVyXG4gICAgKTogSVBlcENsb3Nlc3RDb2xvciB7XG4gICAgICAgIGNvbnN0IHsgaCwgcywgbCB9ID0gdGhpcy5oZXgyaHNsKGFkanVzdGFibGVDb2xvcik7XG5cbiAgICAgICAgaWYgKHRoaXMuY29udHJhc3QoYWRqdXN0YWJsZUNvbG9yLCBvdGhlckNvbG9yKSA+PSBjb250cmFzdFJhdGlvKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhZGp1c3RhYmxlQ29sb3IsXG4gICAgICAgICAgICAgICAgbGlnaHRuZXNzOiBsLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBtYXhDb2xvciA9IHRoaXMuaHNsMmhleCh7IGgsIHMsIGw6IDEwMCB9KTtcblxuICAgICAgICBpZiAodGhpcy5jb250cmFzdChtYXhDb2xvciwgb3RoZXJDb2xvcikgPCBjb250cmFzdFJhdGlvKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBtaW4gPSBsO1xuICAgICAgICBsZXQgbWF4ID0gMTAwO1xuICAgICAgICBsZXQgbWluQ29sb3IgPSB0aGlzLmhzbDJoZXgoeyBoLCBzLCBsIH0pO1xuICAgICAgICBsZXQgbGFzdE1pbkNvbG9yO1xuICAgICAgICBsZXQgbGFzdE1heENvbG9yO1xuICAgICAgICBsZXQgbFRlbXA7XG5cbiAgICAgICAgd2hpbGUgKG1pbkNvbG9yICE9PSBsYXN0TWluQ29sb3IgfHwgbWF4Q29sb3IgIT09IGxhc3RNYXhDb2xvcikge1xuICAgICAgICAgICAgbGFzdE1pbkNvbG9yID0gbWluQ29sb3I7XG4gICAgICAgICAgICBsYXN0TWF4Q29sb3IgPSBtYXhDb2xvcjtcblxuICAgICAgICAgICAgbFRlbXAgPSAobWluICsgbWF4KSAvIDI7XG4gICAgICAgICAgICBhZGp1c3RhYmxlQ29sb3IgPSB0aGlzLmhzbDJoZXgoeyBoLCBzLCBsOiBsVGVtcCB9KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuY29udHJhc3QoYWRqdXN0YWJsZUNvbG9yLCBvdGhlckNvbG9yKSA8IGNvbnRyYXN0UmF0aW8pIHtcbiAgICAgICAgICAgICAgICBtaW4gPSBsVGVtcDtcbiAgICAgICAgICAgICAgICBtaW5Db2xvciA9IHRoaXMuaHNsMmhleCh7IGgsIHMsIGw6IGxUZW1wIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtYXggPSBsVGVtcDtcbiAgICAgICAgICAgICAgICBtYXhDb2xvciA9IHRoaXMuaHNsMmhleCh7IGgsIHMsIGw6IGxUZW1wIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXhDb2xvcixcbiAgICAgICAgICAgIGxpZ2h0bmVzczogbWF4LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgaGV4IHN0cmluZyB0byA2IGRpZ2l0cyBoZXggc3RyaW5nLlxuICAgICAqIEBwYXJhbSBzdHIgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqL1xuICAgIGhleDJzaXhEaWdpdEhleChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICghc3RyKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0ciA9IHN0ci50cmltKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuU0lYX0RJR0lUX0hFWF9DT0xPUl9XSVRIX0hBU0hfUkVHRVgudGVzdChzdHIpKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuU0lYX0RJR0lUX0hFWF9DT0xPUl9SRUdFWC50ZXN0KHN0cikpIHtcbiAgICAgICAgICAgIHJldHVybiAnIycgKyBzdHI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5USFJFRV9ESUdJVF9IRVhfQ09MT1JfV0lUSF9IQVNIX1JFR0VYLnRlc3Qoc3RyKSkge1xuICAgICAgICAgICAgcmV0dXJuICcjJyArIHN0clsxXSArIHN0clsxXSArIHN0clsyXSArIHN0clsyXSArIHN0clszXSArIHN0clszXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLlRIUkVFX0RJR0lUX0hFWF9DT0xPUl9SRUdFWC50ZXN0KHN0cikpIHtcbiAgICAgICAgICAgIHJldHVybiAnIycgKyBzdHJbMF0gKyBzdHJbMF0gKyBzdHJbMV0gKyBzdHJbMV0gKyBzdHJbMl0gKyBzdHJbMl07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IHJnYiBjb2xvciB0byA2IGRpZ2l0cyBoZXggc3RyaW5nLlxuICAgICAqIEBwYXJhbSBjb2xvciBUaGUgcmdiIGNvbG9yIHRvIGNvbnZlcnQuXG4gICAgICovXG4gICAgcmdiMnNpeERpZ2l0SGV4KGNvbG9yOiBJUGVwUmdiQ29sb3IpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWNvbG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbG9yLnIgPSBjb2xvci5yLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgY29sb3IuZyA9IGNvbG9yLmcudG9TdHJpbmcoMTYpO1xuICAgICAgICBjb2xvci5iID0gY29sb3IuYi50b1N0cmluZygxNik7XG5cbiAgICAgICAgaWYgKGNvbG9yLnIubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBjb2xvci5yID0gJzAnICsgY29sb3IucjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb2xvci5nLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgY29sb3IuZyA9ICcwJyArIGNvbG9yLmc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29sb3IuYi5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIGNvbG9yLmIgPSAnMCcgKyBjb2xvci5iO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICcjJyArIGNvbG9yLnIgKyBjb2xvci5nICsgY29sb3IuYjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGhleCBzdHJpbmcgdG8gcmdiIGNvbG9yLlxuICAgICAqIEBwYXJhbSBzdHIgVGhlIGhleCBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKi9cbiAgICBoZXgycmdiKHN0cjogc3RyaW5nKTogSVBlcFJnYkNvbG9yIHtcbiAgICAgICAgaWYgKCFzdHIpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2l4RGlnaXRIZXggPSB0aGlzLmhleDJzaXhEaWdpdEhleChzdHIpO1xuXG4gICAgICAgIGlmIChzaXhEaWdpdEhleCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcjogcGFyc2VJbnQoc2l4RGlnaXRIZXguc2xpY2UoMSwgMyksIDE2KSxcbiAgICAgICAgICAgIGc6IHBhcnNlSW50KHNpeERpZ2l0SGV4LnNsaWNlKDMsIDUpLCAxNiksXG4gICAgICAgICAgICBiOiBwYXJzZUludChzaXhEaWdpdEhleC5zbGljZSg1LCA3KSwgMTYpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJnYlN0cmluZzJoc2woc3RyOiBzdHJpbmcpOiBJUGVwSHNsQ29sb3Ige1xuICAgICAgICBpZiAoIXN0cikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzZXAgPSBzdHIuaW5kZXhPZignLCcpID4gLTEgPyAnLCcgOiAnICc7XG4gICAgICAgIGNvbnN0IHJnYkFyciA9IHN0ci5zdWJzdHIoNCkuc3BsaXQoJyknKVswXS5zcGxpdChzZXApO1xuXG4gICAgICAgIGNvbnN0IHIgPSByZ2JBcnJbMF07XG4gICAgICAgIGNvbnN0IGcgPSByZ2JBcnJbMV0uc3Vic3RyKDAsIHJnYkFyclsxXS5sZW5ndGgpLnRyaW0oKTtcbiAgICAgICAgY29uc3QgYiA9IHJnYkFyclsyXS5zdWJzdHIoMCwgcmdiQXJyWzJdLmxlbmd0aCkudHJpbSgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnJnYjJoc2woeyByLCBnLCBiIH0pO1xuICAgIH1cblxuICAgIHJnYjJoc2woeyByLCBnLCBiIH06IElQZXBSZ2JDb2xvcik6IElQZXBIc2xDb2xvciB7XG4gICAgICAgIHIgLz0gMjU1O1xuICAgICAgICBnIC89IDI1NTtcbiAgICAgICAgYiAvPSAyNTU7XG5cbiAgICAgICAgLy8gRmluZCBncmVhdGVzdCBhbmQgc21hbGxlc3QgY2hhbm5lbCB2YWx1ZXNcbiAgICAgICAgY29uc3QgY21pbiA9IE1hdGgubWluKHIsIGcsIGIpO1xuICAgICAgICBjb25zdCBjbWF4ID0gTWF0aC5tYXgociwgZywgYik7XG4gICAgICAgIGNvbnN0IGRlbHRhID0gY21heCAtIGNtaW47XG5cbiAgICAgICAgbGV0IGggPSAwO1xuICAgICAgICBsZXQgcyA9IDA7XG4gICAgICAgIGxldCBsID0gMDtcblxuICAgICAgICBpZiAoZGVsdGEgPT09IDApIHtcbiAgICAgICAgICAgIGggPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKGNtYXggPT09IHIpIHtcbiAgICAgICAgICAgIGggPSAoKGcgLSBiKSAvIGRlbHRhKSAlIDY7XG4gICAgICAgIH0gZWxzZSBpZiAoY21heCA9PT0gZykge1xuICAgICAgICAgICAgaCA9IChiIC0gcikgLyBkZWx0YSArIDI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBoID0gKHIgLSBnKSAvIGRlbHRhICsgNDtcbiAgICAgICAgfVxuXG4gICAgICAgIGggPSBNYXRoLnJvdW5kKGggKiA2MCk7XG5cbiAgICAgICAgaWYgKGggPCAwKSB7XG4gICAgICAgICAgICBoICs9IDM2MDtcbiAgICAgICAgfVxuXG4gICAgICAgIGwgPSAoY21heCArIGNtaW4pIC8gMjtcbiAgICAgICAgcyA9IGRlbHRhID09PSAwID8gMCA6IGRlbHRhIC8gKDEgLSBNYXRoLmFicygyICogbCAtIDEpKTtcbiAgICAgICAgcyA9ICsocyAqIDEwMCkudG9GaXhlZCgxKTtcbiAgICAgICAgbCA9ICsobCAqIDEwMCkudG9GaXhlZCgxKTtcblxuICAgICAgICByZXR1cm4geyBoLCBzLCBsIH07XG4gICAgfVxuXG4gICAgaHNsU3RyaW5nMmhzbChzdHI6IHN0cmluZyk6IElQZXBIc2xDb2xvciB7XG4gICAgICAgIGlmICghc3RyKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlcCA9IHN0ci5pbmRleE9mKCcsJykgPiAtMSA/ICcsJyA6ICcgJztcbiAgICAgICAgY29uc3QgaHNsQXJyID0gc3RyLnN1YnN0cig0KS5zcGxpdCgnKScpWzBdLnNwbGl0KHNlcCk7XG5cbiAgICAgICAgbGV0IGg6IGFueSA9IGhzbEFyclswXTtcbiAgICAgICAgbGV0IHMgPSBoc2xBcnJbMV0uc3Vic3RyKDAsIGhzbEFyclsxXS5sZW5ndGgpLnRyaW0oKTtcbiAgICAgICAgbGV0IGwgPSBoc2xBcnJbMl0uc3Vic3RyKDAsIGhzbEFyclsyXS5sZW5ndGgpLnRyaW0oKTtcblxuICAgICAgICAvLyBTdHJpcCBsYWJlbCBhbmQgY29udmVydCB0byBkZWdyZWVzIChpZiBuZWNlc3NhcnkpXG4gICAgICAgIGlmIChoLmluZGV4T2YoJ2RlZycpID4gLTEpIHtcbiAgICAgICAgICAgIGggPSBoLnN1YnN0cigwLCBoLmxlbmd0aCAtIDMpO1xuICAgICAgICB9IGVsc2UgaWYgKGguaW5kZXhPZigncmFkJykgPiAtMSkge1xuICAgICAgICAgICAgaCA9IE1hdGgucm91bmQoaC5zdWJzdHIoMCwgaC5sZW5ndGggLSAzKSAqICgxODAgLyBNYXRoLlBJKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaC5pbmRleE9mKCd0dXJuJykgPiAtMSkge1xuICAgICAgICAgICAgaCA9IE1hdGgucm91bmQoaC5zdWJzdHIoMCwgaC5sZW5ndGggLSA0KSAqIDM2MCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBLZWVwIGh1ZSBmcmFjdGlvbiBvZiAzNjAgaWYgZW5kaW5nIHVwIG92ZXJcbiAgICAgICAgaWYgKGggPj0gMzYwKSB7XG4gICAgICAgICAgICBoICU9IDM2MDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgJVxuICAgICAgICBpZiAocy5pbmRleE9mKCclJykgPiAtMSkge1xuICAgICAgICAgICAgcyA9IHMucmVwbGFjZSgvJS9nLCAnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZW1vdmUgdGhlICVcbiAgICAgICAgaWYgKGwuaW5kZXhPZignJScpID4gLTEpIHtcbiAgICAgICAgICAgIGwgPSBsLnJlcGxhY2UoLyUvZywgJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHsgaCwgcywgbCB9O1xuICAgIH1cblxuICAgIGhzbDJyZ2IoeyBoLCBzLCBsIH06IElQZXBIc2xDb2xvcik6IElQZXBSZ2JDb2xvciB7XG4gICAgICAgIGxldCByO1xuICAgICAgICBsZXQgZztcbiAgICAgICAgbGV0IGI7XG5cbiAgICAgICAgaWYgKCFpc0Zpbml0ZShoKSkge1xuICAgICAgICAgICAgaCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzRmluaXRlKHMpKSB7XG4gICAgICAgICAgICBzID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNGaW5pdGUobCkpIHtcbiAgICAgICAgICAgIGwgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaCAvPSA2MDtcblxuICAgICAgICBpZiAoaCA8IDApIHtcbiAgICAgICAgICAgIGggPSA2IC0gKC1oICUgNik7XG4gICAgICAgIH1cblxuICAgICAgICBoICU9IDY7XG5cbiAgICAgICAgcyA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIHMgLyAxMDApKTtcbiAgICAgICAgbCA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIGwgLyAxMDApKTtcblxuICAgICAgICBjb25zdCBjID0gKDEgLSBNYXRoLmFicygyICogbCAtIDEpKSAqIHM7XG4gICAgICAgIGNvbnN0IHggPSBjICogKDEgLSBNYXRoLmFicygoaCAlIDIpIC0gMSkpO1xuXG4gICAgICAgIGlmIChoIDwgMSkge1xuICAgICAgICAgICAgciA9IGM7XG4gICAgICAgICAgICBnID0geDtcbiAgICAgICAgICAgIGIgPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCAyKSB7XG4gICAgICAgICAgICByID0geDtcbiAgICAgICAgICAgIGcgPSBjO1xuICAgICAgICAgICAgYiA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoaCA8IDMpIHtcbiAgICAgICAgICAgIHIgPSAwO1xuICAgICAgICAgICAgZyA9IGM7XG4gICAgICAgICAgICBiID0geDtcbiAgICAgICAgfSBlbHNlIGlmIChoIDwgNCkge1xuICAgICAgICAgICAgciA9IDA7XG4gICAgICAgICAgICBnID0geDtcbiAgICAgICAgICAgIGIgPSBjO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCA1KSB7XG4gICAgICAgICAgICByID0geDtcbiAgICAgICAgICAgIGcgPSAwO1xuICAgICAgICAgICAgYiA9IGM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByID0gYztcbiAgICAgICAgICAgIGcgPSAwO1xuICAgICAgICAgICAgYiA9IHg7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtID0gbCAtIGMgLyAyO1xuICAgICAgICByID0gTWF0aC5yb3VuZCgociArIG0pICogMjU1KTtcbiAgICAgICAgZyA9IE1hdGgucm91bmQoKGcgKyBtKSAqIDI1NSk7XG4gICAgICAgIGIgPSBNYXRoLnJvdW5kKChiICsgbSkgKiAyNTUpO1xuXG4gICAgICAgIHJldHVybiB7IHIsIGcsIGIgfTtcbiAgICB9XG5cbiAgICBoZXgyaHNsKHN0cjogc3RyaW5nKTogSVBlcEhzbENvbG9yIHtcbiAgICAgICAgaWYgKCFzdHIpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2l4RGlnaXRIZXggPSB0aGlzLmhleDJzaXhEaWdpdEhleChzdHIpO1xuXG4gICAgICAgIGlmIChzaXhEaWdpdEhleCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZ2IgPSB0aGlzLmhleDJyZ2Ioc2l4RGlnaXRIZXgpO1xuXG4gICAgICAgIGlmIChyZ2IgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmdiMmhzbChyZ2IpO1xuICAgIH1cblxuICAgIGhzbDJoZXgoaHNsOiBJUGVwSHNsQ29sb3IpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWhzbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZ2IgPSB0aGlzLmhzbDJyZ2IoaHNsKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5yZ2Iyc2l4RGlnaXRIZXgocmdiKTtcbiAgICB9XG5cbiAgICByZWxhdGl2ZUx1bWluYW5jZSh7IHIsIGcsIGIgfTogSVBlcFJnYkNvbG9yKTogbnVtYmVyIHtcbiAgICAgICAgW3IsIGcsIGJdID0gW3IsIGcsIGJdLm1hcCgoYykgPT4ge1xuICAgICAgICAgICAgYyA9IGMgLyAyNTU7XG5cbiAgICAgICAgICAgIGlmIChjIDw9IDAuMDM5MjgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYyAvIDEyLjkyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gTWF0aC5wb3coKGMgKyAwLjA1NSkgLyAxLjA1NSwgMi40KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIDAuMjEyNiAqIHIgKyAwLjcxNTIgKiBnICsgMC4wNzIyICogYjtcbiAgICB9XG5cbiAgICBmaW5kQ2xvc2VzdEFjY2Vzc2libGVDb2xvcihcbiAgICAgICAgYWRqdXN0YWJsZUNvbG9yOiBzdHJpbmcsXG4gICAgICAgIG90aGVyQ29sb3I6IHN0cmluZyxcbiAgICAgICAgY29udHJhc3RSYXRpbzogbnVtYmVyXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgY2xvc2VzdERhcmtlckNvbG9yOiBJUGVwQ2xvc2VzdENvbG9yID0gdGhpcy5maW5kQ2xvc2VzdEFjY2Vzc2libGVEYXJrZXJDb2xvcihcbiAgICAgICAgICAgIGFkanVzdGFibGVDb2xvcixcbiAgICAgICAgICAgIG90aGVyQ29sb3IsXG4gICAgICAgICAgICBjb250cmFzdFJhdGlvXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGNsb3Nlc3RMaWdodGVyQ29sb3I6IElQZXBDbG9zZXN0Q29sb3IgPSB0aGlzLmZpbmRDbG9zZXN0QWNjZXNzaWJsZUxpZ2h0ZXJDb2xvcihcbiAgICAgICAgICAgIGFkanVzdGFibGVDb2xvcixcbiAgICAgICAgICAgIG90aGVyQ29sb3IsXG4gICAgICAgICAgICBjb250cmFzdFJhdGlvXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGNsb3Nlc3REYXJrZXJDb2xvciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGNsb3Nlc3RMaWdodGVyQ29sb3IgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGNsb3Nlc3RMaWdodGVyQ29sb3IuY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2xvc2VzdExpZ2h0ZXJDb2xvciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGNsb3Nlc3REYXJrZXJDb2xvci5jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgbCB9ID0gdGhpcy5oZXgyaHNsKGFkanVzdGFibGVDb2xvcik7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgY2xvc2VzdExpZ2h0ZXJDb2xvci5saWdodG5lc3MgLSBsIDxcbiAgICAgICAgICAgIGwgLSBjbG9zZXN0RGFya2VyQ29sb3IubGlnaHRuZXNzXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIGNsb3Nlc3RMaWdodGVyQ29sb3IuY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xvc2VzdERhcmtlckNvbG9yLmNvbG9yO1xuICAgIH1cblxuICAgIGNvbnZlcnRIc2xUb1N0cmluZ0hzbChoc2w6IElQZXBIc2xDb2xvcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAnaHNsKCcgK1xuICAgICAgICAgICAgKGhzbC5oIDwgMCA/IGhzbC5oICsgMzYwIDogaHNsLmgpICtcbiAgICAgICAgICAgICcsICcgK1xuICAgICAgICAgICAgaHNsLnMgK1xuICAgICAgICAgICAgJyUsICcgK1xuICAgICAgICAgICAgaHNsLmwgK1xuICAgICAgICAgICAgJyUpJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGxpZ2h0T3JEYXJrKGNvbG9yOiBhbnkpOiAnbGlnaHQnIHwgJ2RhcmsnIHtcbiAgICAgICAgbGV0IHIgPSB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBnID0gdW5kZWZpbmVkO1xuICAgICAgICBsZXQgYiA9IHVuZGVmaW5lZDtcblxuICAgICAgICAvLyBDaGVjayB0aGUgZm9ybWF0IG9mIHRoZSBjb2xvciwgSEVYIG9yIFJHQj9cbiAgICAgICAgaWYgKGNvbG9yLm1hdGNoKC9ecmdiLykpIHtcbiAgICAgICAgICAgIC8vIElmIEhFWCAtLT4gc3RvcmUgdGhlIHJlZCwgZ3JlZW4sIGJsdWUgdmFsdWVzIGluIHNlcGFyYXRlIHZhcmlhYmxlc1xuICAgICAgICAgICAgY29sb3IgPSBjb2xvci5tYXRjaCgvXnJnYmE/XFwoKFxcZCspLFxccyooXFxkKyksXFxzKihcXGQrKSg/OixcXHMqKFxcZCsoPzpcXC5cXGQrKT8pKT9cXCkkLyk7XG4gICAgICBcbiAgICAgICAgICAgIHIgPSBjb2xvclsxXTtcbiAgICAgICAgICAgIGcgPSBjb2xvclsyXTtcbiAgICAgICAgICAgIGIgPSBjb2xvclszXTtcbiAgICAgICAgfSBcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBJZiBSR0IgLS0+IENvbnZlcnQgaXQgdG8gSEVYOiBodHRwOi8vZ2lzdC5naXRodWIuY29tLzk4MzY2MVxuICAgICAgICAgICAgY29sb3IgPSArKFwiMHhcIiArIGNvbG9yLnNsaWNlKDEpLnJlcGxhY2UoIFxuICAgICAgICAgICAgICAgIGNvbG9yLmxlbmd0aCA8IDUgJiYgLy4vZywgJyQmJCYnXG4gICAgICAgICAgICApKTtcbiAgICAgICAgXG4gICAgICAgICAgICByID0gY29sb3IgPj4gMTY7XG4gICAgICAgICAgICBnID0gY29sb3IgPj4gOCAmIDI1NTtcbiAgICAgICAgICAgIGIgPSBjb2xvciAmIDI1NTtcbiAgICAgICAgfVxuICAgICAgXG4gICAgICAgIC8vIEhTUCAoSGlnaGx5IFNlbnNpdGl2ZSBQb28pIGVxdWF0aW9uIGZyb20gaHR0cDovL2FsaWVucnlkZXJmbGV4LmNvbS9oc3AuaHRtbFxuICAgICAgICBjb25zdCBoc3AgPSBNYXRoLnNxcnQoXG4gICAgICAgICAgICAwLjI5OSAqIChyICogcikgK1xuICAgICAgICAgICAgMC41ODcgKiAoZyAqIGcpICtcbiAgICAgICAgICAgIDAuMTE0ICogKGIgKiBiKVxuICAgICAgICApO1xuICAgICAgXG4gICAgICAgIC8vIFVzaW5nIHRoZSBIU1AgdmFsdWUsIGRldGVybWluZSB3aGV0aGVyIHRoZSBjb2xvciBpcyBsaWdodCBvciBkYXJrXG4gICAgICAgIHJldHVybiAoaHNwID4gMTI3LjUpID8gJ2xpZ2h0JyA6ICdkYXJrJztcbiAgICB9XG59XG4iXX0=
@@ -134,9 +134,9 @@ export class PepCookieService {
134
134
  }
135
135
  }
136
136
  }
137
- PepCookieService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepCookieService, deps: [{ token: DOCUMENT, optional: true }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
138
- PepCookieService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepCookieService, providedIn: 'root' });
139
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepCookieService, decorators: [{
137
+ PepCookieService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepCookieService, deps: [{ token: DOCUMENT, optional: true }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
138
+ PepCookieService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepCookieService, providedIn: 'root' });
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepCookieService, decorators: [{
140
140
  type: Injectable,
141
141
  args: [{
142
142
  providedIn: 'root',
@@ -150,4 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
150
150
  type: Inject,
151
151
  args: [PLATFORM_ID]
152
152
  }] }]; } });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NyYy9jb3JlL2NvbW1vbi9zZXJ2aWNlcy9jb29raWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUNWLE1BQU0sRUFDTixXQUFXLEVBRVgsUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLOUQsTUFBTSxPQUFPLGdCQUFnQjtJQUd6QixZQUMwQyxRQUFhLEVBQ3RCLFVBQStCO1FBRHRCLGFBQVEsR0FBUixRQUFRLENBQUs7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFFNUQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLElBQVk7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzVCLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhDLE1BQU0sTUFBTSxHQUFXLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsTUFBTSxNQUFNLEdBQVksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTFELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxHQUFHLENBQUMsSUFBWTtRQUNaLElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDL0MsSUFBSSxHQUFHLGtCQUFr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QyxNQUFNO1lBQ0osK0NBQStDO1lBQy9DLE9BQU8sbUJBQW1CLENBQUM7U0FDOUI7SUFDTCxDQUFDOzs2R0F0TVEsZ0JBQWdCLGtCQUlELFFBQVEsNkJBQ3BCLFdBQVc7aUhBTGQsZ0JBQWdCLGNBRmIsTUFBTTsyRkFFVCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFLUSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVE7OzBCQUMzQixNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEluamVjdGFibGUsXG4gICAgSW5qZWN0LFxuICAgIFBMQVRGT1JNX0lELFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcENvb2tpZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRJc0FjY2Vzc2libGU6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55LFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IEluamVjdGlvblRva2VuPGFueT5cbiAgICApIHtcbiAgICAgICAgdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG5hbWUgQ29va2llIG5hbWVcbiAgICAgKiBAcmV0dXJucyBib29sZWFuIC0gd2hldGhlciBjb29raWUgd2l0aCBzcGVjaWZpZWQgbmFtZSBleGlzdHNcbiAgICAgKi9cbiAgICBjaGVjayhuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpO1xuXG4gICAgICAgIGNvbnN0IHJlZ0V4cDogUmVnRXhwID0gdGhpcy5nZXRDb29raWVSZWdFeHAobmFtZSk7XG4gICAgICAgIGNvbnN0IGV4aXN0czogYm9vbGVhbiA9IHJlZ0V4cC50ZXN0KHRoaXMuZG9jdW1lbnQuY29va2llKTtcblxuICAgICAgICByZXR1cm4gZXhpc3RzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBuYW1lIENvb2tpZSBuYW1lXG4gICAgICogQHJldHVybnMgcHJvcGVydHkgdmFsdWVcbiAgICAgKi9cbiAgICBnZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnRJc0FjY2Vzc2libGUgJiYgdGhpcy5jaGVjayhuYW1lKSkge1xuICAgICAgICAgICAgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTtcblxuICAgICAgICAgICAgY29uc3QgcmVnRXhwOiBSZWdFeHAgPSB0aGlzLmdldENvb2tpZVJlZ0V4cChuYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogUmVnRXhwRXhlY0FycmF5ID0gcmVnRXhwLmV4ZWModGhpcy5kb2N1bWVudC5jb29raWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zYWZlRGVjb2RlVVJJQ29tcG9uZW50KHJlc3VsdFsxXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBhbGwgdGhlIGNvb2tpZXMgaW4ganNvblxuICAgICAqL1xuICAgIGdldEFsbCgpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb29raWVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgICAgIGNvbnN0IGRvY3VtZW50OiBhbnkgPSB0aGlzLmRvY3VtZW50O1xuXG4gICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgJiYgZG9jdW1lbnQuY29va2llICE9PSAnJykge1xuICAgICAgICAgICAgZG9jdW1lbnQuY29va2llLnNwbGl0KCc7JykuZm9yRWFjaCgoY3VycmVudENvb2tpZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtjb29raWVOYW1lLCBjb29raWVWYWx1ZV0gPSBjdXJyZW50Q29va2llLnNwbGl0KCc9Jyk7XG4gICAgICAgICAgICAgICAgY29va2llc1tcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zYWZlRGVjb2RlVVJJQ29tcG9uZW50KGNvb2tpZU5hbWUucmVwbGFjZSgvXiAvLCAnJykpXG4gICAgICAgICAgICAgICAgXSA9IHRoaXMuc2FmZURlY29kZVVSSUNvbXBvbmVudChjb29raWVWYWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb29raWVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBuYW1lICAgICBDb29raWUgbmFtZVxuICAgICAqIEBwYXJhbSB2YWx1ZSAgICBDb29raWUgdmFsdWVcbiAgICAgKiBAcGFyYW0gZXhwaXJlcyAgTnVtYmVyIG9mIGRheXMgdW50aWwgdGhlIGNvb2tpZXMgZXhwaXJlcyBvciBhbiBhY3R1YWwgYERhdGVgXG4gICAgICogQHBhcmFtIHBhdGggICAgIENvb2tpZSBwYXRoXG4gICAgICogQHBhcmFtIGRvbWFpbiAgIENvb2tpZSBkb21haW5cbiAgICAgKiBAcGFyYW0gc2VjdXJlICAgU2VjdXJlIGZsYWdcbiAgICAgKiBAcGFyYW0gc2FtZVNpdGUgT1dBU1Agc2FtZXNpdGUgdG9rZW4gYExheGAsIGBOb25lYCwgb3IgYFN0cmljdGAuIERlZmF1bHRzIHRvIGBMYXhgXG4gICAgICovXG4gICAgc2V0KFxuICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgICAgIGV4cGlyZXM/OiBudW1iZXIgfCBEYXRlLFxuICAgICAgICBwYXRoPzogc3RyaW5nLFxuICAgICAgICBkb21haW4/OiBzdHJpbmcsXG4gICAgICAgIHNlY3VyZT86IGJvb2xlYW4sXG4gICAgICAgIHNhbWVTaXRlOiAnTGF4JyB8ICdOb25lJyB8ICdTdHJpY3QnID0gJ0xheCdcbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY29va2llU3RyaW5nOiBzdHJpbmcgPVxuICAgICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKSArICc7JztcblxuICAgICAgICBpZiAoZXhwaXJlcykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHBpcmVzID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVFeHBpcmVzOiBEYXRlID0gbmV3IERhdGUoXG4gICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgZXhwaXJlcyAqIDEwMDAgKiA2MCAqIDYwICogMjRcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgY29va2llU3RyaW5nICs9ICdleHBpcmVzPScgKyBkYXRlRXhwaXJlcy50b1VUQ1N0cmluZygpICsgJzsnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb29raWVTdHJpbmcgKz0gJ2V4cGlyZXM9JyArIGV4cGlyZXMudG9VVENTdHJpbmcoKSArICc7JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgICAgICBjb29raWVTdHJpbmcgKz0gJ3BhdGg9JyArIHBhdGggKyAnOyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZG9tYWluKSB7XG4gICAgICAgICAgICBjb29raWVTdHJpbmcgKz0gJ2RvbWFpbj0nICsgZG9tYWluICsgJzsnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNlY3VyZSA9PT0gZmFsc2UgJiYgc2FtZVNpdGUgPT09ICdOb25lJykge1xuICAgICAgICAgICAgc2VjdXJlID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZWN1cmUpIHtcbiAgICAgICAgICAgIGNvb2tpZVN0cmluZyArPSAnc2VjdXJlOyc7XG4gICAgICAgIH1cblxuICAgICAgICBjb29raWVTdHJpbmcgKz0gJ3NhbWVTaXRlPScgKyBzYW1lU2l0ZSArICc7JztcblxuICAgICAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZVN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gbmFtZSAgIENvb2tpZSBuYW1lXG4gICAgICogQHBhcmFtIHBhdGggICBDb29raWUgcGF0aFxuICAgICAqIEBwYXJhbSBkb21haW4gQ29va2llIGRvbWFpblxuICAgICAqL1xuICAgIGRlbGV0ZShcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBwYXRoPzogc3RyaW5nLFxuICAgICAgICBkb21haW4/OiBzdHJpbmcsXG4gICAgICAgIHNlY3VyZT86IGJvb2xlYW4sXG4gICAgICAgIHNhbWVTaXRlOiAnTGF4JyB8ICdOb25lJyB8ICdTdHJpY3QnID0gJ0xheCdcbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldChcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAnJyxcbiAgICAgICAgICAgIG5ldyBEYXRlKCdUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAxIEdNVCcpLFxuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIGRvbWFpbixcbiAgICAgICAgICAgIHNlY3VyZSxcbiAgICAgICAgICAgIHNhbWVTaXRlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHBhdGggICBDb29raWUgcGF0aFxuICAgICAqIEBwYXJhbSBkb21haW4gQ29va2llIGRvbWFpblxuICAgICAqL1xuICAgIGRlbGV0ZUFsbChcbiAgICAgICAgcGF0aD86IHN0cmluZyxcbiAgICAgICAgZG9tYWluPzogc3RyaW5nLFxuICAgICAgICBzZWN1cmU/OiBib29sZWFuLFxuICAgICAgICBzYW1lU2l0ZTogJ0xheCcgfCAnTm9uZScgfCAnU3RyaWN0JyA9ICdMYXgnXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29va2llczogYW55ID0gdGhpcy5nZXRBbGwoKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGNvb2tpZU5hbWUgaW4gY29va2llcykge1xuICAgICAgICAgICAgaWYgKGNvb2tpZXMuaGFzT3duUHJvcGVydHkoY29va2llTmFtZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZShjb29raWVOYW1lLCBwYXRoLCBkb21haW4sIHNlY3VyZSwgc2FtZVNpdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG5hbWUgQ29va2llIG5hbWVcbiAgICAgKiBAcmV0dXJucyBwcm9wZXJ0eSBSZWdFeHBcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldENvb2tpZVJlZ0V4cChuYW1lOiBzdHJpbmcpOiBSZWdFeHAge1xuICAgICAgICBjb25zdCBlc2NhcGVkTmFtZTogc3RyaW5nID0gbmFtZS5yZXBsYWNlKFxuICAgICAgICAgICAgLyhbXFxbXFxdXFx7XFx9XFwoXFwpXFx8XFw9XFw7XFwrXFw/XFwsXFwuXFwqXFxeXFwkXSkvZ2ksXG4gICAgICAgICAgICAnXFxcXCQxJ1xuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgJyg/Ol4nICsgZXNjYXBlZE5hbWUgKyAnfDtcXFxccyonICsgZXNjYXBlZE5hbWUgKyAnKT0oLio/KSg/Ojt8JCknLFxuICAgICAgICAgICAgJ2cnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzYWZlRGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZWRVUklDb21wb25lbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZWRVUklDb21wb25lbnQpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIHByb2JhYmx5IGl0IGlzIG5vdCB1cmkgZW5jb2RlZC4gcmV0dXJuIGFzIGlzXG4gICAgICAgICAgICByZXR1cm4gZW5jb2RlZFVSSUNvbXBvbmVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NyYy9jb3JlL2NvbW1vbi9zZXJ2aWNlcy9jb29raWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUNWLE1BQU0sRUFDTixXQUFXLEVBRVgsUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLOUQsTUFBTSxPQUFPLGdCQUFnQjtJQUd6QixZQUMwQyxRQUFhLEVBQ3RCLFVBQStCO1FBRHRCLGFBQVEsR0FBUixRQUFRLENBQUs7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFFNUQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLElBQVk7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzVCLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhDLE1BQU0sTUFBTSxHQUFXLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsTUFBTSxNQUFNLEdBQVksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTFELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxHQUFHLENBQUMsSUFBWTtRQUNaLElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDL0MsSUFBSSxHQUFHLGtCQUFr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QyxNQUFNO1lBQ0osK0NBQStDO1lBQy9DLE9BQU8sbUJBQW1CLENBQUM7U0FDOUI7SUFDTCxDQUFDOzs4R0F0TVEsZ0JBQWdCLGtCQUlELFFBQVEsNkJBQ3BCLFdBQVc7a0hBTGQsZ0JBQWdCLGNBRmIsTUFBTTs0RkFFVCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFLUSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVE7OzBCQUMzQixNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEluamVjdGFibGUsXG4gICAgSW5qZWN0LFxuICAgIFBMQVRGT1JNX0lELFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcENvb2tpZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRJc0FjY2Vzc2libGU6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55LFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IEluamVjdGlvblRva2VuPGFueT5cbiAgICApIHtcbiAgICAgICAgdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG5hbWUgQ29va2llIG5hbWVcbiAgICAgKiBAcmV0dXJucyBib29sZWFuIC0gd2hldGhlciBjb29raWUgd2l0aCBzcGVjaWZpZWQgbmFtZSBleGlzdHNcbiAgICAgKi9cbiAgICBjaGVjayhuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpO1xuXG4gICAgICAgIGNvbnN0IHJlZ0V4cDogUmVnRXhwID0gdGhpcy5nZXRDb29raWVSZWdFeHAobmFtZSk7XG4gICAgICAgIGNvbnN0IGV4aXN0czogYm9vbGVhbiA9IHJlZ0V4cC50ZXN0KHRoaXMuZG9jdW1lbnQuY29va2llKTtcblxuICAgICAgICByZXR1cm4gZXhpc3RzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBuYW1lIENvb2tpZSBuYW1lXG4gICAgICogQHJldHVybnMgcHJvcGVydHkgdmFsdWVcbiAgICAgKi9cbiAgICBnZXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnRJc0FjY2Vzc2libGUgJiYgdGhpcy5jaGVjayhuYW1lKSkge1xuICAgICAgICAgICAgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTtcblxuICAgICAgICAgICAgY29uc3QgcmVnRXhwOiBSZWdFeHAgPSB0aGlzLmdldENvb2tpZVJlZ0V4cChuYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogUmVnRXhwRXhlY0FycmF5ID0gcmVnRXhwLmV4ZWModGhpcy5kb2N1bWVudC5jb29raWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zYWZlRGVjb2RlVVJJQ29tcG9uZW50KHJlc3VsdFsxXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBhbGwgdGhlIGNvb2tpZXMgaW4ganNvblxuICAgICAqL1xuICAgIGdldEFsbCgpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb29raWVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgICAgIGNvbnN0IGRvY3VtZW50OiBhbnkgPSB0aGlzLmRvY3VtZW50O1xuXG4gICAgICAgIGlmIChkb2N1bWVudC5jb29raWUgJiYgZG9jdW1lbnQuY29va2llICE9PSAnJykge1xuICAgICAgICAgICAgZG9jdW1lbnQuY29va2llLnNwbGl0KCc7JykuZm9yRWFjaCgoY3VycmVudENvb2tpZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtjb29raWVOYW1lLCBjb29raWVWYWx1ZV0gPSBjdXJyZW50Q29va2llLnNwbGl0KCc9Jyk7XG4gICAgICAgICAgICAgICAgY29va2llc1tcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zYWZlRGVjb2RlVVJJQ29tcG9uZW50KGNvb2tpZU5hbWUucmVwbGFjZSgvXiAvLCAnJykpXG4gICAgICAgICAgICAgICAgXSA9IHRoaXMuc2FmZURlY29kZVVSSUNvbXBvbmVudChjb29raWVWYWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb29raWVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBuYW1lICAgICBDb29raWUgbmFtZVxuICAgICAqIEBwYXJhbSB2YWx1ZSAgICBDb29raWUgdmFsdWVcbiAgICAgKiBAcGFyYW0gZXhwaXJlcyAgTnVtYmVyIG9mIGRheXMgdW50aWwgdGhlIGNvb2tpZXMgZXhwaXJlcyBvciBhbiBhY3R1YWwgYERhdGVgXG4gICAgICogQHBhcmFtIHBhdGggICAgIENvb2tpZSBwYXRoXG4gICAgICogQHBhcmFtIGRvbWFpbiAgIENvb2tpZSBkb21haW5cbiAgICAgKiBAcGFyYW0gc2VjdXJlICAgU2VjdXJlIGZsYWdcbiAgICAgKiBAcGFyYW0gc2FtZVNpdGUgT1dBU1Agc2FtZXNpdGUgdG9rZW4gYExheGAsIGBOb25lYCwgb3IgYFN0cmljdGAuIERlZmF1bHRzIHRvIGBMYXhgXG4gICAgICovXG4gICAgc2V0KFxuICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgICAgIGV4cGlyZXM/OiBudW1iZXIgfCBEYXRlLFxuICAgICAgICBwYXRoPzogc3RyaW5nLFxuICAgICAgICBkb21haW4/OiBzdHJpbmcsXG4gICAgICAgIHNlY3VyZT86IGJvb2xlYW4sXG4gICAgICAgIHNhbWVTaXRlOiAnTGF4JyB8ICdOb25lJyB8ICdTdHJpY3QnID0gJ0xheCdcbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY29va2llU3RyaW5nOiBzdHJpbmcgPVxuICAgICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKSArICc7JztcblxuICAgICAgICBpZiAoZXhwaXJlcykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHBpcmVzID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVFeHBpcmVzOiBEYXRlID0gbmV3IERhdGUoXG4gICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgZXhwaXJlcyAqIDEwMDAgKiA2MCAqIDYwICogMjRcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgY29va2llU3RyaW5nICs9ICdleHBpcmVzPScgKyBkYXRlRXhwaXJlcy50b1VUQ1N0cmluZygpICsgJzsnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb29raWVTdHJpbmcgKz0gJ2V4cGlyZXM9JyArIGV4cGlyZXMudG9VVENTdHJpbmcoKSArICc7JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgICAgICBjb29raWVTdHJpbmcgKz0gJ3BhdGg9JyArIHBhdGggKyAnOyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZG9tYWluKSB7XG4gICAgICAgICAgICBjb29raWVTdHJpbmcgKz0gJ2RvbWFpbj0nICsgZG9tYWluICsgJzsnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNlY3VyZSA9PT0gZmFsc2UgJiYgc2FtZVNpdGUgPT09ICdOb25lJykge1xuICAgICAgICAgICAgc2VjdXJlID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZWN1cmUpIHtcbiAgICAgICAgICAgIGNvb2tpZVN0cmluZyArPSAnc2VjdXJlOyc7XG4gICAgICAgIH1cblxuICAgICAgICBjb29raWVTdHJpbmcgKz0gJ3NhbWVTaXRlPScgKyBzYW1lU2l0ZSArICc7JztcblxuICAgICAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZVN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gbmFtZSAgIENvb2tpZSBuYW1lXG4gICAgICogQHBhcmFtIHBhdGggICBDb29raWUgcGF0aFxuICAgICAqIEBwYXJhbSBkb21haW4gQ29va2llIGRvbWFpblxuICAgICAqL1xuICAgIGRlbGV0ZShcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBwYXRoPzogc3RyaW5nLFxuICAgICAgICBkb21haW4/OiBzdHJpbmcsXG4gICAgICAgIHNlY3VyZT86IGJvb2xlYW4sXG4gICAgICAgIHNhbWVTaXRlOiAnTGF4JyB8ICdOb25lJyB8ICdTdHJpY3QnID0gJ0xheCdcbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldChcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAnJyxcbiAgICAgICAgICAgIG5ldyBEYXRlKCdUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAxIEdNVCcpLFxuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIGRvbWFpbixcbiAgICAgICAgICAgIHNlY3VyZSxcbiAgICAgICAgICAgIHNhbWVTaXRlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHBhdGggICBDb29raWUgcGF0aFxuICAgICAqIEBwYXJhbSBkb21haW4gQ29va2llIGRvbWFpblxuICAgICAqL1xuICAgIGRlbGV0ZUFsbChcbiAgICAgICAgcGF0aD86IHN0cmluZyxcbiAgICAgICAgZG9tYWluPzogc3RyaW5nLFxuICAgICAgICBzZWN1cmU/OiBib29sZWFuLFxuICAgICAgICBzYW1lU2l0ZTogJ0xheCcgfCAnTm9uZScgfCAnU3RyaWN0JyA9ICdMYXgnXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29va2llczogYW55ID0gdGhpcy5nZXRBbGwoKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGNvb2tpZU5hbWUgaW4gY29va2llcykge1xuICAgICAgICAgICAgaWYgKGNvb2tpZXMuaGFzT3duUHJvcGVydHkoY29va2llTmFtZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZShjb29raWVOYW1lLCBwYXRoLCBkb21haW4sIHNlY3VyZSwgc2FtZVNpdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG5hbWUgQ29va2llIG5hbWVcbiAgICAgKiBAcmV0dXJucyBwcm9wZXJ0eSBSZWdFeHBcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldENvb2tpZVJlZ0V4cChuYW1lOiBzdHJpbmcpOiBSZWdFeHAge1xuICAgICAgICBjb25zdCBlc2NhcGVkTmFtZTogc3RyaW5nID0gbmFtZS5yZXBsYWNlKFxuICAgICAgICAgICAgLyhbXFxbXFxdXFx7XFx9XFwoXFwpXFx8XFw9XFw7XFwrXFw/XFwsXFwuXFwqXFxeXFwkXSkvZ2ksXG4gICAgICAgICAgICAnXFxcXCQxJ1xuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgJyg/Ol4nICsgZXNjYXBlZE5hbWUgKyAnfDtcXFxccyonICsgZXNjYXBlZE5hbWUgKyAnKT0oLio/KSg/Ojt8JCknLFxuICAgICAgICAgICAgJ2cnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzYWZlRGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZWRVUklDb21wb25lbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZWRVUklDb21wb25lbnQpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIHByb2JhYmx5IGl0IGlzIG5vdCB1cmkgZW5jb2RlZC4gcmV0dXJuIGFzIGlzXG4gICAgICAgICAgICByZXR1cm4gZW5jb2RlZFVSSUNvbXBvbmVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -88,13 +88,13 @@ export class PepDataConvertorService {
88
88
  dataField.Enabled = field.Enabled === false ? false : true;
89
89
  dataField.FieldType = field.FieldType;
90
90
  dataField.FormattedValue =
91
- field.FormattedValue || field.Value.toString();
91
+ field.FormattedValue || field.Value;
92
92
  dataField.GroupFields = null;
93
93
  dataField.NotificationInfo = '';
94
94
  dataField.OptionalValues = field.OptionalValues;
95
95
  dataField.ReferenceObjectSubType = '';
96
96
  dataField.TextColor = '';
97
- dataField.Value = field.Value.toString();
97
+ dataField.Value = field.Value;
98
98
  dataField.Visible = true;
99
99
  return dataField;
100
100
  }
@@ -111,12 +111,12 @@ export class PepDataConvertorService {
111
111
  return layout;
112
112
  }
113
113
  }
114
- PepDataConvertorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepDataConvertorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
115
- PepDataConvertorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepDataConvertorService, providedIn: 'root' });
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepDataConvertorService, decorators: [{
114
+ PepDataConvertorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepDataConvertorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
115
+ PepDataConvertorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepDataConvertorService, providedIn: 'root' });
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepDataConvertorService, decorators: [{
117
117
  type: Injectable,
118
118
  args: [{
119
119
  providedIn: 'root',
120
120
  }]
121
121
  }] });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb252ZXJ0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL2RhdGEtY29udmVydG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsV0FBVyxFQUNYLGNBQWMsRUFDZCxTQUFTLEVBQ1QsY0FBYyxFQUNkLGtCQUFrQixFQUVsQixnQkFBZ0IsR0FDbkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRW5ELE1BQU0sT0FBTyxZQUFZO0lBY3JCLFlBQ0ksVUFXSSxFQUFFO1FBRU4sSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1FBQzlELElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQztDQUNKO0FBQ0QsTUFBTSxPQUFPLFVBQVU7Q0FNdEI7QUFLRCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLFlBQVksQ0FBQyxRQUFvQjtRQUM3QixNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBRWxDLElBQUksUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzlCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDOUIsU0FBUyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7WUFDN0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ3BCLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUM5RCxDQUFDO1NBQ0w7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsZUFBZSxDQUFDLFFBQW9CO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDckMsT0FBTyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDakIsT0FBTyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUM5QixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ2hELENBQUM7UUFFRixPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsZUFBZSxDQUNYLFNBQXVCLEVBQ3ZCLE9BQU8sR0FBRyxFQUFFO1FBRVosTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQWtCLENBQUM7UUFFekMsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN0QixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztnQkFDakIsT0FBTyxDQUFDLEdBQUcsR0FBRyxPQUFPO29CQUNqQixDQUFDLENBQUMsT0FBTztvQkFDVCxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUk7d0JBQ04sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJO3dCQUNWLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzVCLElBQUksR0FBRyxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUU7b0JBQzFCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2lCQUM5QjtnQkFDRCxJQUFJLEdBQUcsQ0FBQyxzQkFBc0IsS0FBSyxLQUFLLEVBQUU7b0JBQ3RDLE9BQU8sQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7aUJBQzFDO2dCQUNELElBQUksR0FBRyxDQUFDLFVBQVUsRUFBRTtvQkFDaEIsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7aUJBQzdCO2dCQUNELEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDekIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNoRCxDQUFDO2dCQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkIsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFtQjtRQUNqQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQzFDLFlBQVksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUNyQyxZQUFZLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFFekMsWUFBWSxDQUFDLE1BQU0sR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUNsQyxDQUFDLEVBQUUsQ0FBQztZQUNKLEtBQUssRUFBRSxDQUFDO1lBQ1IsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLENBQUMsRUFBRSxDQUFDO1lBQ0osTUFBTSxFQUFFLENBQUM7WUFDVCxVQUFVLEVBQUUsQ0FBQztTQUNoQixDQUFDLENBQUM7UUFFSCxZQUFZLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDakMsWUFBWSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDL0QsWUFBWSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQzdDLFlBQVksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUM7UUFDMUQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFtQjtRQUM1QixNQUFNLFNBQVMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDM0MsU0FBUyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO1FBQ2xELFNBQVMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUNsQyxTQUFTLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMzRCxTQUFTLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDdEMsU0FBUyxDQUFDLGNBQWM7WUFDcEIsS0FBSyxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25ELFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzdCLFNBQVMsQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDaEMsU0FBUyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBQ2hELFNBQVMsQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7UUFDdEMsU0FBUyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDekIsU0FBUyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxjQUFjLENBQ1YsQ0FBUyxFQUNULEtBQWEsRUFDYixVQUFrQixFQUNsQixDQUFTLEVBQ1QsTUFBYyxFQUNkLFVBQWtCLEVBQ2xCLFVBQWtCO1FBRWxCLE1BQU0sTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDO1lBQzNCLENBQUMsRUFBRSxDQUFDO1lBQ0osS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsVUFBVTtZQUN0QixDQUFDLEVBQUUsQ0FBQztZQUNKLE1BQU0sRUFBRSxNQUFNO1lBQ2QsVUFBVSxFQUFFLFVBQVU7WUFDdEIsVUFBVSxFQUFFLFVBQVU7U0FDekIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7b0hBekhRLHVCQUF1Qjt3SEFBdkIsdUJBQXVCLGNBRnBCLE1BQU07MkZBRVQsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRmllbGRMYXlvdXQsXG4gICAgT2JqZWN0c0RhdGFSb3csXG4gICAgVUlDb250cm9sLFxuICAgIFVJQ29udHJvbEZpZWxkLFxuICAgIE9iamVjdHNEYXRhUm93Q2VsbCxcbiAgICBGSUVMRF9UWVBFLFxuICAgIFhfQUxJR05NRU5UX1RZUEUsXG59IGZyb20gJy4uL21vZGVsL3dhcGkubW9kZWwnO1xuaW1wb3J0IHsgUGVwR3VpZCB9IGZyb20gJy4uL21vZGVsL3V0aWxpdGllcy5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBQZXBGaWVsZERhdGEge1xuICAgIEFwaU5hbWU6IHN0cmluZztcbiAgICBFbmFibGVkPzogYm9vbGVhbjtcbiAgICBWYWx1ZTogc3RyaW5nO1xuICAgIEZvcm1hdHRlZFZhbHVlPzogc3RyaW5nO1xuICAgIEZpZWxkVHlwZTogRklFTERfVFlQRTtcbiAgICBSZWFkT25seT86IGJvb2xlYW47XG4gICAgQ29sdW1uV2lkdGg6IG51bWJlcjtcbiAgICBDb2x1bW5XaWR0aFR5cGU/OiBudW1iZXI7XG4gICAgWEFsaWdubWVudDogWF9BTElHTk1FTlRfVFlQRTtcbiAgICBUaXRsZTogc3RyaW5nO1xuICAgIEFkZGl0aW9uYWxWYWx1ZT86IHN0cmluZztcbiAgICBPcHRpb25hbFZhbHVlcz86IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBBcGlOYW1lPzogc3RyaW5nO1xuICAgICAgICAgICAgRW5hYmxlZD86IGJvb2xlYW47XG4gICAgICAgICAgICBWYWx1ZT86IHN0cmluZztcbiAgICAgICAgICAgIEZvcm1hdHRlZFZhbHVlPzogc3RyaW5nO1xuICAgICAgICAgICAgRmllbGRUeXBlPzogRklFTERfVFlQRTtcbiAgICAgICAgICAgIFJlYWRPbmx5PzogYm9vbGVhbjtcbiAgICAgICAgICAgIENvbHVtbldpZHRoPzogbnVtYmVyO1xuICAgICAgICAgICAgQ29sdW1uV2lkdGhUeXBlPzogbnVtYmVyO1xuICAgICAgICAgICAgWEFsaWdubWVudD86IFhfQUxJR05NRU5UX1RZUEU7XG4gICAgICAgICAgICBUaXRsZT86IHN0cmluZztcbiAgICAgICAgfSA9IHt9XG4gICAgKSB7XG4gICAgICAgIHRoaXMuQXBpTmFtZSA9IG9wdGlvbnMuQXBpTmFtZTtcbiAgICAgICAgdGhpcy5FbmFibGVkID0gISFvcHRpb25zLkVuYWJsZWQ7XG4gICAgICAgIHRoaXMuVmFsdWUgPSBvcHRpb25zLlZhbHVlO1xuICAgICAgICB0aGlzLkZvcm1hdHRlZFZhbHVlID0gb3B0aW9ucy5Gb3JtYXR0ZWRWYWx1ZSB8fCAnJztcbiAgICAgICAgdGhpcy5GaWVsZFR5cGUgPSBvcHRpb25zLkZpZWxkVHlwZTtcbiAgICAgICAgdGhpcy5SZWFkT25seSA9ICEhb3B0aW9ucy5SZWFkT25seTtcbiAgICAgICAgdGhpcy5Db2x1bW5XaWR0aCA9IG9wdGlvbnMuQ29sdW1uV2lkdGg7XG4gICAgICAgIHRoaXMuQ29sdW1uV2lkdGhUeXBlID0gb3B0aW9ucy5Db2x1bW5XaWR0aFR5cGU7XG4gICAgICAgIHRoaXMuWEFsaWdubWVudCA9IG9wdGlvbnMuWEFsaWdubWVudCB8fCBYX0FMSUdOTUVOVF9UWVBFLkxlZnQ7XG4gICAgICAgIHRoaXMuVGl0bGUgPSBvcHRpb25zLlRpdGxlIHx8ICcnO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBQZXBSb3dEYXRhIHtcbiAgICBVVUlEPzogc3RyaW5nO1xuICAgIElzRWRpdGFibGU/OiBib29sZWFuO1xuICAgIElzU2VsZWN0ZWQ/OiBib29sZWFuO1xuICAgIElzU2VsZWN0YWJsZUZvckFjdGlvbnM/OiBib29sZWFuO1xuICAgIEZpZWxkczogUGVwRmllbGREYXRhW107XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcERhdGFDb252ZXJ0b3JTZXJ2aWNlIHtcbiAgICBnZXRVaUNvbnRyb2woZm9ybURhdGE6IFBlcFJvd0RhdGEpOiBVSUNvbnRyb2wge1xuICAgICAgICBjb25zdCB1aUNvbnRyb2wgPSBuZXcgVUlDb250cm9sKCk7XG5cbiAgICAgICAgaWYgKGZvcm1EYXRhPy5GaWVsZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHVpUm93ID0gZm9ybURhdGEuRmllbGRzO1xuICAgICAgICAgICAgdWlDb250cm9sLkNvbnRyb2xGaWVsZHMgPSBbXTtcbiAgICAgICAgICAgIHVpUm93LmZvckVhY2goKGZpZWxkKSA9PlxuICAgICAgICAgICAgICAgIHVpQ29udHJvbC5Db250cm9sRmllbGRzLnB1c2godGhpcy5zZXRVSUNvbnRyb2xGaWVsZChmaWVsZCkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVpQ29udHJvbDtcbiAgICB9XG5cbiAgICBjb252ZXJ0Rm9ybURhdGEoZm9ybURhdGE6IFBlcFJvd0RhdGEpOiBPYmplY3RzRGF0YVJvdyB7XG4gICAgICAgIGNvbnN0IHJvd0RhdGEgPSBuZXcgT2JqZWN0c0RhdGFSb3coKTtcbiAgICAgICAgcm93RGF0YS5GaWVsZHMgPSBbXTtcbiAgICAgICAgcm93RGF0YS5UeXBlID0gMDtcbiAgICAgICAgcm93RGF0YS5VSUQgPSBQZXBHdWlkLm5ld0d1aWQoKTtcbiAgICAgICAgZm9ybURhdGEuRmllbGRzLmZvckVhY2goKGZpZWxkKSA9PlxuICAgICAgICAgICAgcm93RGF0YS5GaWVsZHMucHVzaCh0aGlzLnNldERhdGFGaWVsZChmaWVsZCkpXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHJvd0RhdGE7XG4gICAgfVxuXG4gICAgY29udmVydExpc3REYXRhKFxuICAgICAgICB0YWJsZURhdGE6IFBlcFJvd0RhdGFbXSxcbiAgICAgICAgcm93VVVJRCA9ICcnXG4gICAgKTogQXJyYXk8T2JqZWN0c0RhdGFSb3c+IHtcbiAgICAgICAgY29uc3Qgcm93cyA9IG5ldyBBcnJheTxPYmplY3RzRGF0YVJvdz4oKTtcblxuICAgICAgICBpZiAodGFibGVEYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRhYmxlRGF0YS5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3dEYXRhID0gbmV3IE9iamVjdHNEYXRhUm93KCk7XG4gICAgICAgICAgICAgICAgcm93RGF0YS5GaWVsZHMgPSBbXTtcbiAgICAgICAgICAgICAgICByb3dEYXRhLlR5cGUgPSAwO1xuICAgICAgICAgICAgICAgIHJvd0RhdGEuVUlEID0gcm93VVVJRFxuICAgICAgICAgICAgICAgICAgICA/IHJvd1VVSURcbiAgICAgICAgICAgICAgICAgICAgOiByb3cuVVVJRFxuICAgICAgICAgICAgICAgICAgICAgICAgPyByb3cuVVVJRFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBQZXBHdWlkLm5ld0d1aWQoKTtcbiAgICAgICAgICAgICAgICBpZiAocm93LklzRWRpdGFibGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvd0RhdGEuSXNFZGl0YWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocm93LklzU2VsZWN0YWJsZUZvckFjdGlvbnMgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvd0RhdGEuSXNTZWxlY3RhYmxlRm9yQWN0aW9ucyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocm93LklzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcm93RGF0YS5Jc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcm93LkZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT5cbiAgICAgICAgICAgICAgICAgICAgcm93RGF0YS5GaWVsZHMucHVzaCh0aGlzLnNldERhdGFGaWVsZChmaWVsZCkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByb3dzLnB1c2gocm93RGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByb3dzO1xuICAgIH1cblxuICAgIHNldFVJQ29udHJvbEZpZWxkKGZpZWxkOiBQZXBGaWVsZERhdGEpOiBVSUNvbnRyb2xGaWVsZCB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xGaWVsZCA9IG5ldyBVSUNvbnRyb2xGaWVsZCgpO1xuICAgICAgICBjb250cm9sRmllbGQuQXBpTmFtZSA9IGZpZWxkLkFwaU5hbWU7XG4gICAgICAgIGNvbnRyb2xGaWVsZC5GaWVsZFR5cGUgPSBmaWVsZC5GaWVsZFR5cGU7XG5cbiAgICAgICAgY29udHJvbEZpZWxkLkxheW91dCA9IG5ldyBGaWVsZExheW91dCh7XG4gICAgICAgICAgICBYOiAxLFxuICAgICAgICAgICAgV2lkdGg6IDEsXG4gICAgICAgICAgICBYQWxpZ25tZW50OiBmaWVsZC5YQWxpZ25tZW50LFxuICAgICAgICAgICAgWTogMSxcbiAgICAgICAgICAgIEhlaWdodDogMSxcbiAgICAgICAgICAgIFlBbGlnbm1lbnQ6IDEsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnRyb2xGaWVsZC5UaXRsZSA9IGZpZWxkLlRpdGxlO1xuICAgICAgICBjb250cm9sRmllbGQuUmVhZE9ubHkgPSBmaWVsZC5SZWFkT25seSA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgY29udHJvbEZpZWxkLkNvbHVtbldpZHRoID0gZmllbGQuQ29sdW1uV2lkdGg7XG4gICAgICAgIGNvbnRyb2xGaWVsZC5Db2x1bW5XaWR0aFR5cGUgPSBmaWVsZC5Db2x1bW5XaWR0aFR5cGUgfHwgMTtcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xGaWVsZDtcbiAgICB9XG5cbiAgICBzZXREYXRhRmllbGQoZmllbGQ6IFBlcEZpZWxkRGF0YSk6IE9iamVjdHNEYXRhUm93Q2VsbCB7XG4gICAgICAgIGNvbnN0IGRhdGFGaWVsZCA9IG5ldyBPYmplY3RzRGF0YVJvd0NlbGwoKTtcbiAgICAgICAgZGF0YUZpZWxkLkFkZGl0aW9uYWxWYWx1ZSA9IGZpZWxkLkFkZGl0aW9uYWxWYWx1ZTtcbiAgICAgICAgZGF0YUZpZWxkLkFwaU5hbWUgPSBmaWVsZC5BcGlOYW1lO1xuICAgICAgICBkYXRhRmllbGQuRW5hYmxlZCA9IGZpZWxkLkVuYWJsZWQgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICBkYXRhRmllbGQuRmllbGRUeXBlID0gZmllbGQuRmllbGRUeXBlO1xuICAgICAgICBkYXRhRmllbGQuRm9ybWF0dGVkVmFsdWUgPVxuICAgICAgICAgICAgZmllbGQuRm9ybWF0dGVkVmFsdWUgfHwgZmllbGQuVmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgZGF0YUZpZWxkLkdyb3VwRmllbGRzID0gbnVsbDtcbiAgICAgICAgZGF0YUZpZWxkLk5vdGlmaWNhdGlvbkluZm8gPSAnJztcbiAgICAgICAgZGF0YUZpZWxkLk9wdGlvbmFsVmFsdWVzID0gZmllbGQuT3B0aW9uYWxWYWx1ZXM7XG4gICAgICAgIGRhdGFGaWVsZC5SZWZlcmVuY2VPYmplY3RTdWJUeXBlID0gJyc7XG4gICAgICAgIGRhdGFGaWVsZC5UZXh0Q29sb3IgPSAnJztcbiAgICAgICAgZGF0YUZpZWxkLlZhbHVlID0gZmllbGQuVmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgZGF0YUZpZWxkLlZpc2libGUgPSB0cnVlO1xuICAgICAgICByZXR1cm4gZGF0YUZpZWxkO1xuICAgIH1cblxuICAgIHNldEZpZWxkTGF5b3V0KFxuICAgICAgICB4OiBudW1iZXIsXG4gICAgICAgIHdpZHRoOiBudW1iZXIsXG4gICAgICAgIHhBbGlnbm1lbnQ6IG51bWJlcixcbiAgICAgICAgeTogbnVtYmVyLFxuICAgICAgICBoZWlnaHQ6IG51bWJlcixcbiAgICAgICAgeUFsaWdubWVudDogbnVtYmVyLFxuICAgICAgICBsaW5lTnVtYmVyOiBudW1iZXJcbiAgICApOiBGaWVsZExheW91dCB7XG4gICAgICAgIGNvbnN0IGxheW91dCA9IG5ldyBGaWVsZExheW91dCh7XG4gICAgICAgICAgICBYOiB4LFxuICAgICAgICAgICAgV2lkdGg6IHdpZHRoLFxuICAgICAgICAgICAgWEFsaWdubWVudDogeEFsaWdubWVudCxcbiAgICAgICAgICAgIFk6IHksXG4gICAgICAgICAgICBIZWlnaHQ6IGhlaWdodCxcbiAgICAgICAgICAgIFlBbGlnbm1lbnQ6IHlBbGlnbm1lbnQsXG4gICAgICAgICAgICBMaW5lTnVtYmVyOiBsaW5lTnVtYmVyLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbGF5b3V0O1xuICAgIH1cbn1cbiJdfQ==
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb252ZXJ0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL2RhdGEtY29udmVydG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsV0FBVyxFQUNYLGNBQWMsRUFDZCxTQUFTLEVBQ1QsY0FBYyxFQUNkLGtCQUFrQixFQUVsQixnQkFBZ0IsR0FDbkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRW5ELE1BQU0sT0FBTyxZQUFZO0lBY3JCLFlBQ0ksVUFXSSxFQUFFO1FBRU4sSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1FBQzlELElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQztDQUNKO0FBQ0QsTUFBTSxPQUFPLFVBQVU7Q0FNdEI7QUFLRCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLFlBQVksQ0FBQyxRQUFvQjtRQUM3QixNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBRWxDLElBQUksUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzlCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDOUIsU0FBUyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7WUFDN0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ3BCLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUM5RCxDQUFDO1NBQ0w7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsZUFBZSxDQUFDLFFBQW9CO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDckMsT0FBTyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDakIsT0FBTyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUM5QixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ2hELENBQUM7UUFFRixPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsZUFBZSxDQUNYLFNBQXVCLEVBQ3ZCLE9BQU8sR0FBRyxFQUFFO1FBRVosTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQWtCLENBQUM7UUFFekMsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN0QixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztnQkFDakIsT0FBTyxDQUFDLEdBQUcsR0FBRyxPQUFPO29CQUNqQixDQUFDLENBQUMsT0FBTztvQkFDVCxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUk7d0JBQ04sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJO3dCQUNWLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzVCLElBQUksR0FBRyxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUU7b0JBQzFCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2lCQUM5QjtnQkFDRCxJQUFJLEdBQUcsQ0FBQyxzQkFBc0IsS0FBSyxLQUFLLEVBQUU7b0JBQ3RDLE9BQU8sQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7aUJBQzFDO2dCQUNELElBQUksR0FBRyxDQUFDLFVBQVUsRUFBRTtvQkFDaEIsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7aUJBQzdCO2dCQUNELEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDekIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNoRCxDQUFDO2dCQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkIsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFtQjtRQUNqQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQzFDLFlBQVksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUNyQyxZQUFZLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFFekMsWUFBWSxDQUFDLE1BQU0sR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUNsQyxDQUFDLEVBQUUsQ0FBQztZQUNKLEtBQUssRUFBRSxDQUFDO1lBQ1IsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLENBQUMsRUFBRSxDQUFDO1lBQ0osTUFBTSxFQUFFLENBQUM7WUFDVCxVQUFVLEVBQUUsQ0FBQztTQUNoQixDQUFDLENBQUM7UUFFSCxZQUFZLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDakMsWUFBWSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDL0QsWUFBWSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQzdDLFlBQVksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUM7UUFDMUQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFtQjtRQUM1QixNQUFNLFNBQVMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDM0MsU0FBUyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO1FBQ2xELFNBQVMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUNsQyxTQUFTLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMzRCxTQUFTLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDdEMsU0FBUyxDQUFDLGNBQWM7WUFDcEIsS0FBSyxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3hDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzdCLFNBQVMsQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDaEMsU0FBUyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBQ2hELFNBQVMsQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7UUFDdEMsU0FBUyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDekIsU0FBUyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzlCLFNBQVMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxjQUFjLENBQ1YsQ0FBUyxFQUNULEtBQWEsRUFDYixVQUFrQixFQUNsQixDQUFTLEVBQ1QsTUFBYyxFQUNkLFVBQWtCLEVBQ2xCLFVBQWtCO1FBRWxCLE1BQU0sTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDO1lBQzNCLENBQUMsRUFBRSxDQUFDO1lBQ0osS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsVUFBVTtZQUN0QixDQUFDLEVBQUUsQ0FBQztZQUNKLE1BQU0sRUFBRSxNQUFNO1lBQ2QsVUFBVSxFQUFFLFVBQVU7WUFDdEIsVUFBVSxFQUFFLFVBQVU7U0FDekIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7cUhBekhRLHVCQUF1Qjt5SEFBdkIsdUJBQXVCLGNBRnBCLE1BQU07NEZBRVQsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRmllbGRMYXlvdXQsXG4gICAgT2JqZWN0c0RhdGFSb3csXG4gICAgVUlDb250cm9sLFxuICAgIFVJQ29udHJvbEZpZWxkLFxuICAgIE9iamVjdHNEYXRhUm93Q2VsbCxcbiAgICBGSUVMRF9UWVBFLFxuICAgIFhfQUxJR05NRU5UX1RZUEUsXG59IGZyb20gJy4uL21vZGVsL3dhcGkubW9kZWwnO1xuaW1wb3J0IHsgUGVwR3VpZCB9IGZyb20gJy4uL21vZGVsL3V0aWxpdGllcy5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBQZXBGaWVsZERhdGEge1xuICAgIEFwaU5hbWU6IHN0cmluZztcbiAgICBFbmFibGVkPzogYm9vbGVhbjtcbiAgICBWYWx1ZTogc3RyaW5nO1xuICAgIEZvcm1hdHRlZFZhbHVlPzogc3RyaW5nO1xuICAgIEZpZWxkVHlwZTogRklFTERfVFlQRTtcbiAgICBSZWFkT25seT86IGJvb2xlYW47XG4gICAgQ29sdW1uV2lkdGg6IG51bWJlcjtcbiAgICBDb2x1bW5XaWR0aFR5cGU/OiBudW1iZXI7XG4gICAgWEFsaWdubWVudDogWF9BTElHTk1FTlRfVFlQRTtcbiAgICBUaXRsZTogc3RyaW5nO1xuICAgIEFkZGl0aW9uYWxWYWx1ZT86IHN0cmluZztcbiAgICBPcHRpb25hbFZhbHVlcz86IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBBcGlOYW1lPzogc3RyaW5nO1xuICAgICAgICAgICAgRW5hYmxlZD86IGJvb2xlYW47XG4gICAgICAgICAgICBWYWx1ZT86IHN0cmluZztcbiAgICAgICAgICAgIEZvcm1hdHRlZFZhbHVlPzogc3RyaW5nO1xuICAgICAgICAgICAgRmllbGRUeXBlPzogRklFTERfVFlQRTtcbiAgICAgICAgICAgIFJlYWRPbmx5PzogYm9vbGVhbjtcbiAgICAgICAgICAgIENvbHVtbldpZHRoPzogbnVtYmVyO1xuICAgICAgICAgICAgQ29sdW1uV2lkdGhUeXBlPzogbnVtYmVyO1xuICAgICAgICAgICAgWEFsaWdubWVudD86IFhfQUxJR05NRU5UX1RZUEU7XG4gICAgICAgICAgICBUaXRsZT86IHN0cmluZztcbiAgICAgICAgfSA9IHt9XG4gICAgKSB7XG4gICAgICAgIHRoaXMuQXBpTmFtZSA9IG9wdGlvbnMuQXBpTmFtZTtcbiAgICAgICAgdGhpcy5FbmFibGVkID0gISFvcHRpb25zLkVuYWJsZWQ7XG4gICAgICAgIHRoaXMuVmFsdWUgPSBvcHRpb25zLlZhbHVlO1xuICAgICAgICB0aGlzLkZvcm1hdHRlZFZhbHVlID0gb3B0aW9ucy5Gb3JtYXR0ZWRWYWx1ZSB8fCAnJztcbiAgICAgICAgdGhpcy5GaWVsZFR5cGUgPSBvcHRpb25zLkZpZWxkVHlwZTtcbiAgICAgICAgdGhpcy5SZWFkT25seSA9ICEhb3B0aW9ucy5SZWFkT25seTtcbiAgICAgICAgdGhpcy5Db2x1bW5XaWR0aCA9IG9wdGlvbnMuQ29sdW1uV2lkdGg7XG4gICAgICAgIHRoaXMuQ29sdW1uV2lkdGhUeXBlID0gb3B0aW9ucy5Db2x1bW5XaWR0aFR5cGU7XG4gICAgICAgIHRoaXMuWEFsaWdubWVudCA9IG9wdGlvbnMuWEFsaWdubWVudCB8fCBYX0FMSUdOTUVOVF9UWVBFLkxlZnQ7XG4gICAgICAgIHRoaXMuVGl0bGUgPSBvcHRpb25zLlRpdGxlIHx8ICcnO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBQZXBSb3dEYXRhIHtcbiAgICBVVUlEPzogc3RyaW5nO1xuICAgIElzRWRpdGFibGU/OiBib29sZWFuO1xuICAgIElzU2VsZWN0ZWQ/OiBib29sZWFuO1xuICAgIElzU2VsZWN0YWJsZUZvckFjdGlvbnM/OiBib29sZWFuO1xuICAgIEZpZWxkczogUGVwRmllbGREYXRhW107XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcERhdGFDb252ZXJ0b3JTZXJ2aWNlIHtcbiAgICBnZXRVaUNvbnRyb2woZm9ybURhdGE6IFBlcFJvd0RhdGEpOiBVSUNvbnRyb2wge1xuICAgICAgICBjb25zdCB1aUNvbnRyb2wgPSBuZXcgVUlDb250cm9sKCk7XG5cbiAgICAgICAgaWYgKGZvcm1EYXRhPy5GaWVsZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHVpUm93ID0gZm9ybURhdGEuRmllbGRzO1xuICAgICAgICAgICAgdWlDb250cm9sLkNvbnRyb2xGaWVsZHMgPSBbXTtcbiAgICAgICAgICAgIHVpUm93LmZvckVhY2goKGZpZWxkKSA9PlxuICAgICAgICAgICAgICAgIHVpQ29udHJvbC5Db250cm9sRmllbGRzLnB1c2godGhpcy5zZXRVSUNvbnRyb2xGaWVsZChmaWVsZCkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVpQ29udHJvbDtcbiAgICB9XG5cbiAgICBjb252ZXJ0Rm9ybURhdGEoZm9ybURhdGE6IFBlcFJvd0RhdGEpOiBPYmplY3RzRGF0YVJvdyB7XG4gICAgICAgIGNvbnN0IHJvd0RhdGEgPSBuZXcgT2JqZWN0c0RhdGFSb3coKTtcbiAgICAgICAgcm93RGF0YS5GaWVsZHMgPSBbXTtcbiAgICAgICAgcm93RGF0YS5UeXBlID0gMDtcbiAgICAgICAgcm93RGF0YS5VSUQgPSBQZXBHdWlkLm5ld0d1aWQoKTtcbiAgICAgICAgZm9ybURhdGEuRmllbGRzLmZvckVhY2goKGZpZWxkKSA9PlxuICAgICAgICAgICAgcm93RGF0YS5GaWVsZHMucHVzaCh0aGlzLnNldERhdGFGaWVsZChmaWVsZCkpXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHJvd0RhdGE7XG4gICAgfVxuXG4gICAgY29udmVydExpc3REYXRhKFxuICAgICAgICB0YWJsZURhdGE6IFBlcFJvd0RhdGFbXSxcbiAgICAgICAgcm93VVVJRCA9ICcnXG4gICAgKTogQXJyYXk8T2JqZWN0c0RhdGFSb3c+IHtcbiAgICAgICAgY29uc3Qgcm93cyA9IG5ldyBBcnJheTxPYmplY3RzRGF0YVJvdz4oKTtcblxuICAgICAgICBpZiAodGFibGVEYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRhYmxlRGF0YS5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3dEYXRhID0gbmV3IE9iamVjdHNEYXRhUm93KCk7XG4gICAgICAgICAgICAgICAgcm93RGF0YS5GaWVsZHMgPSBbXTtcbiAgICAgICAgICAgICAgICByb3dEYXRhLlR5cGUgPSAwO1xuICAgICAgICAgICAgICAgIHJvd0RhdGEuVUlEID0gcm93VVVJRFxuICAgICAgICAgICAgICAgICAgICA/IHJvd1VVSURcbiAgICAgICAgICAgICAgICAgICAgOiByb3cuVVVJRFxuICAgICAgICAgICAgICAgICAgICAgICAgPyByb3cuVVVJRFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBQZXBHdWlkLm5ld0d1aWQoKTtcbiAgICAgICAgICAgICAgICBpZiAocm93LklzRWRpdGFibGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvd0RhdGEuSXNFZGl0YWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocm93LklzU2VsZWN0YWJsZUZvckFjdGlvbnMgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvd0RhdGEuSXNTZWxlY3RhYmxlRm9yQWN0aW9ucyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocm93LklzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcm93RGF0YS5Jc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcm93LkZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT5cbiAgICAgICAgICAgICAgICAgICAgcm93RGF0YS5GaWVsZHMucHVzaCh0aGlzLnNldERhdGFGaWVsZChmaWVsZCkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByb3dzLnB1c2gocm93RGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByb3dzO1xuICAgIH1cblxuICAgIHNldFVJQ29udHJvbEZpZWxkKGZpZWxkOiBQZXBGaWVsZERhdGEpOiBVSUNvbnRyb2xGaWVsZCB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xGaWVsZCA9IG5ldyBVSUNvbnRyb2xGaWVsZCgpO1xuICAgICAgICBjb250cm9sRmllbGQuQXBpTmFtZSA9IGZpZWxkLkFwaU5hbWU7XG4gICAgICAgIGNvbnRyb2xGaWVsZC5GaWVsZFR5cGUgPSBmaWVsZC5GaWVsZFR5cGU7XG5cbiAgICAgICAgY29udHJvbEZpZWxkLkxheW91dCA9IG5ldyBGaWVsZExheW91dCh7XG4gICAgICAgICAgICBYOiAxLFxuICAgICAgICAgICAgV2lkdGg6IDEsXG4gICAgICAgICAgICBYQWxpZ25tZW50OiBmaWVsZC5YQWxpZ25tZW50LFxuICAgICAgICAgICAgWTogMSxcbiAgICAgICAgICAgIEhlaWdodDogMSxcbiAgICAgICAgICAgIFlBbGlnbm1lbnQ6IDEsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnRyb2xGaWVsZC5UaXRsZSA9IGZpZWxkLlRpdGxlO1xuICAgICAgICBjb250cm9sRmllbGQuUmVhZE9ubHkgPSBmaWVsZC5SZWFkT25seSA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgY29udHJvbEZpZWxkLkNvbHVtbldpZHRoID0gZmllbGQuQ29sdW1uV2lkdGg7XG4gICAgICAgIGNvbnRyb2xGaWVsZC5Db2x1bW5XaWR0aFR5cGUgPSBmaWVsZC5Db2x1bW5XaWR0aFR5cGUgfHwgMTtcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xGaWVsZDtcbiAgICB9XG5cbiAgICBzZXREYXRhRmllbGQoZmllbGQ6IFBlcEZpZWxkRGF0YSk6IE9iamVjdHNEYXRhUm93Q2VsbCB7XG4gICAgICAgIGNvbnN0IGRhdGFGaWVsZCA9IG5ldyBPYmplY3RzRGF0YVJvd0NlbGwoKTtcbiAgICAgICAgZGF0YUZpZWxkLkFkZGl0aW9uYWxWYWx1ZSA9IGZpZWxkLkFkZGl0aW9uYWxWYWx1ZTtcbiAgICAgICAgZGF0YUZpZWxkLkFwaU5hbWUgPSBmaWVsZC5BcGlOYW1lO1xuICAgICAgICBkYXRhRmllbGQuRW5hYmxlZCA9IGZpZWxkLkVuYWJsZWQgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICBkYXRhRmllbGQuRmllbGRUeXBlID0gZmllbGQuRmllbGRUeXBlO1xuICAgICAgICBkYXRhRmllbGQuRm9ybWF0dGVkVmFsdWUgPVxuICAgICAgICAgICAgZmllbGQuRm9ybWF0dGVkVmFsdWUgfHwgZmllbGQuVmFsdWU7XG4gICAgICAgIGRhdGFGaWVsZC5Hcm91cEZpZWxkcyA9IG51bGw7XG4gICAgICAgIGRhdGFGaWVsZC5Ob3RpZmljYXRpb25JbmZvID0gJyc7XG4gICAgICAgIGRhdGFGaWVsZC5PcHRpb25hbFZhbHVlcyA9IGZpZWxkLk9wdGlvbmFsVmFsdWVzO1xuICAgICAgICBkYXRhRmllbGQuUmVmZXJlbmNlT2JqZWN0U3ViVHlwZSA9ICcnO1xuICAgICAgICBkYXRhRmllbGQuVGV4dENvbG9yID0gJyc7XG4gICAgICAgIGRhdGFGaWVsZC5WYWx1ZSA9IGZpZWxkLlZhbHVlO1xuICAgICAgICBkYXRhRmllbGQuVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIHJldHVybiBkYXRhRmllbGQ7XG4gICAgfVxuXG4gICAgc2V0RmllbGRMYXlvdXQoXG4gICAgICAgIHg6IG51bWJlcixcbiAgICAgICAgd2lkdGg6IG51bWJlcixcbiAgICAgICAgeEFsaWdubWVudDogbnVtYmVyLFxuICAgICAgICB5OiBudW1iZXIsXG4gICAgICAgIGhlaWdodDogbnVtYmVyLFxuICAgICAgICB5QWxpZ25tZW50OiBudW1iZXIsXG4gICAgICAgIGxpbmVOdW1iZXI6IG51bWJlclxuICAgICk6IEZpZWxkTGF5b3V0IHtcbiAgICAgICAgY29uc3QgbGF5b3V0ID0gbmV3IEZpZWxkTGF5b3V0KHtcbiAgICAgICAgICAgIFg6IHgsXG4gICAgICAgICAgICBXaWR0aDogd2lkdGgsXG4gICAgICAgICAgICBYQWxpZ25tZW50OiB4QWxpZ25tZW50LFxuICAgICAgICAgICAgWTogeSxcbiAgICAgICAgICAgIEhlaWdodDogaGVpZ2h0LFxuICAgICAgICAgICAgWUFsaWdubWVudDogeUFsaWdubWVudCxcbiAgICAgICAgICAgIExpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBsYXlvdXQ7XG4gICAgfVxufVxuIl19