@sunbird-cb/utils 1.0.19-ang-9-12 → 1.0.19

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 (389) hide show
  1. package/bundles/sunbird-cb-utils.umd.js +2971 -2006
  2. package/bundles/sunbird-cb-utils.umd.js.map +1 -1
  3. package/bundles/sunbird-cb-utils.umd.min.js +16 -0
  4. package/bundles/sunbird-cb-utils.umd.min.js.map +1 -0
  5. package/esm2015/lib/components/image-crop/image-crop.component.js +48 -13
  6. package/esm2015/lib/components/image-crop/image-crop.module.js +2 -8
  7. package/esm2015/lib/constants/features.enum.js +555 -555
  8. package/esm2015/lib/constants/instances.enum.js +5 -5
  9. package/esm2015/lib/constants/misc.constants.js +1 -2
  10. package/esm2015/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.js +21 -11
  11. package/esm2015/lib/directives/class-change-on-scroll/class-change-on-scroll.module.js +1 -1
  12. package/esm2015/lib/directives/default-thumbnail/default-thumbnail.directive.js +7 -1
  13. package/esm2015/lib/directives/default-thumbnail/default-thumbnail.module.js +1 -1
  14. package/esm2015/lib/directives/image-responsive/image-responsive.directive.js +11 -3
  15. package/esm2015/lib/directives/image-responsive/image-responsive.module.js +1 -1
  16. package/esm2015/lib/directives/in-view-port/in-view-port.directive.js +11 -5
  17. package/esm2015/lib/directives/in-view-port/in-view-port.module.js +1 -1
  18. package/esm2015/lib/directives/navigation/navigation.directive.js +6 -1
  19. package/esm2015/lib/directives/navigation/navigation.module.js +1 -1
  20. package/esm2015/lib/directives/permission/permission.directive.js +1 -1
  21. package/esm2015/lib/directives/permission/permission.module.js +1 -1
  22. package/esm2015/lib/helpers/functions/getStringifiedQueryParams.js +4 -4
  23. package/esm2015/lib/helpers/horizontal-scroller/horizontal-scroller.component.js +20 -11
  24. package/esm2015/lib/helpers/horizontal-scroller/horizontal-scroller.module.js +2 -4
  25. package/esm2015/lib/helpers/logout/logout.component.js +13 -4
  26. package/esm2015/lib/helpers/logout/logout.module.js +2 -3
  27. package/esm2015/lib/models/contentRating.model.js +12 -2
  28. package/esm2015/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.js +1 -1
  29. package/esm2015/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.js +7 -1
  30. package/esm2015/lib/pipes/pipe-count-transform/pipe-count-transform.module.js +1 -1
  31. package/esm2015/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.js +1 -1
  32. package/esm2015/lib/pipes/pipe-date-concat/pipe-date-concat.module.js +1 -1
  33. package/esm2015/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.js +11 -1
  34. package/esm2015/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.js +1 -1
  35. package/esm2015/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.js +1 -1
  36. package/esm2015/lib/pipes/pipe-filter/pipe-filter.module.js +1 -1
  37. package/esm2015/lib/pipes/pipe-filter/pipe-filter.pipe.js +3 -3
  38. package/esm2015/lib/pipes/pipe-filter-search/pipe-filter-search.module.js +1 -1
  39. package/esm2015/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.js +5 -5
  40. package/esm2015/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.js +1 -1
  41. package/esm2015/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.js +1 -1
  42. package/esm2015/lib/pipes/pipe-limit-to/pipe-limit-to.module.js +1 -1
  43. package/esm2015/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.js +1 -1
  44. package/esm2015/lib/pipes/pipe-list-filter/pipe-list-filter.module.js +1 -1
  45. package/esm2015/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.js +4 -4
  46. package/esm2015/lib/pipes/pipe-name-transform/pipe-name-transform.module.js +1 -1
  47. package/esm2015/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.js +7 -1
  48. package/esm2015/lib/pipes/pipe-order-by/pipe-order-by.module.js +1 -1
  49. package/esm2015/lib/pipes/pipe-order-by/pipe-order-by.pipe.js +4 -1
  50. package/esm2015/lib/pipes/pipe-partial-content/pipe-partial-content.module.js +1 -1
  51. package/esm2015/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.js +1 -1
  52. package/esm2015/lib/pipes/pipe-relative-time/pipe-relative-time.module.js +1 -1
  53. package/esm2015/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.js +1 -1
  54. package/esm2015/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.js +1 -1
  55. package/esm2015/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.js +4 -1
  56. package/esm2015/lib/resolvers/explore-detail.resolver.js +19 -12
  57. package/esm2015/lib/resolvers/marketing-offering.resolve.js +10 -7
  58. package/esm2015/lib/resolvers/page.constant.js +1 -1
  59. package/esm2015/lib/resolvers/page.model.js +47 -2
  60. package/esm2015/lib/resolvers/page.resolver.js +18 -12
  61. package/esm2015/lib/resolvers/resolver.model.js +6 -2
  62. package/esm2015/lib/services/auth-keycloak.service.js +33 -20
  63. package/esm2015/lib/services/auth-microsoft.service.js +17 -9
  64. package/esm2015/lib/services/card-content.model.js +22 -1
  65. package/esm2015/lib/services/configurations.model.js +508 -2
  66. package/esm2015/lib/services/configurations.service.js +50 -2
  67. package/esm2015/lib/services/content-strip-multiple.model.js +75 -2
  68. package/esm2015/lib/services/event.model.js +109 -1
  69. package/esm2015/lib/services/event.service.js +17 -4
  70. package/esm2015/lib/services/logger.service.js +13 -5
  71. package/esm2015/lib/services/ms-office.model.js +8 -2
  72. package/esm2015/lib/services/subapplication-respond.service.js +21 -8
  73. package/esm2015/lib/services/telemetry.service.js +59 -48
  74. package/esm2015/lib/services/user-preference.model.js +38 -2
  75. package/esm2015/lib/services/user-preference.service.js +15 -11
  76. package/esm2015/lib/services/utility.service.js +26 -9
  77. package/esm2015/lib/services/value.service.js +9 -4
  78. package/esm2015/lib/services/widget-content.model.js +236 -1
  79. package/esm2015/lib/services/widget-content.service.js +19 -15
  80. package/esm2015/lib/services/widget-resolver.model.js +57 -2
  81. package/esm2015/lib/services/widget-search.model.js +126 -2
  82. package/esm2015/public-api.js +68 -74
  83. package/esm2015/sunbird-cb-utils.js +8 -2
  84. package/esm5/lib/components/image-crop/image-crop.component.js +200 -0
  85. package/esm5/lib/components/image-crop/image-crop.module.js +31 -0
  86. package/esm5/lib/constants/features.enum.js +555 -0
  87. package/esm5/lib/constants/instances.enum.js +5 -0
  88. package/esm5/lib/constants/misc.constants.js +1 -0
  89. package/esm5/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.js +105 -0
  90. package/esm5/lib/directives/class-change-on-scroll/class-change-on-scroll.module.js +19 -0
  91. package/esm5/lib/directives/default-thumbnail/default-thumbnail.directive.js +40 -0
  92. package/esm5/lib/directives/default-thumbnail/default-thumbnail.module.js +19 -0
  93. package/esm5/lib/directives/image-responsive/image-responsive.directive.js +95 -0
  94. package/esm5/lib/directives/image-responsive/image-responsive.module.js +19 -0
  95. package/esm5/lib/directives/in-view-port/in-view-port.directive.js +73 -0
  96. package/esm5/lib/directives/in-view-port/in-view-port.module.js +19 -0
  97. package/esm5/lib/directives/navigation/navigation.directive.js +41 -0
  98. package/esm5/lib/directives/navigation/navigation.module.js +19 -0
  99. package/esm5/lib/directives/permission/permission.directive.js +14 -0
  100. package/esm5/lib/directives/permission/permission.module.js +19 -0
  101. package/esm5/lib/helpers/functions/getStringifiedQueryParams.js +9 -0
  102. package/esm5/lib/helpers/horizontal-scroller/horizontal-scroller.component.js +103 -0
  103. package/esm5/lib/helpers/horizontal-scroller/horizontal-scroller.module.js +23 -0
  104. package/esm5/lib/helpers/logout/logout.component.js +63 -0
  105. package/esm5/lib/helpers/logout/logout.module.js +22 -0
  106. package/esm5/lib/models/contentRating.model.js +12 -0
  107. package/esm5/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.js +17 -0
  108. package/esm5/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.js +63 -0
  109. package/esm5/lib/pipes/pipe-count-transform/pipe-count-transform.module.js +19 -0
  110. package/esm5/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.js +37 -0
  111. package/esm5/lib/pipes/pipe-date-concat/pipe-date-concat.module.js +19 -0
  112. package/esm5/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.js +45 -0
  113. package/esm5/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.js +19 -0
  114. package/esm5/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.js +64 -0
  115. package/esm5/lib/pipes/pipe-filter/pipe-filter.module.js +19 -0
  116. package/esm5/lib/pipes/pipe-filter/pipe-filter.pipe.js +20 -0
  117. package/esm5/lib/pipes/pipe-filter-search/pipe-filter-search.module.js +19 -0
  118. package/esm5/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.js +38 -0
  119. package/esm5/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.js +19 -0
  120. package/esm5/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.js +16 -0
  121. package/esm5/lib/pipes/pipe-limit-to/pipe-limit-to.module.js +19 -0
  122. package/esm5/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.js +30 -0
  123. package/esm5/lib/pipes/pipe-list-filter/pipe-list-filter.module.js +19 -0
  124. package/esm5/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.js +21 -0
  125. package/esm5/lib/pipes/pipe-name-transform/pipe-name-transform.module.js +19 -0
  126. package/esm5/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.js +35 -0
  127. package/esm5/lib/pipes/pipe-order-by/pipe-order-by.module.js +19 -0
  128. package/esm5/lib/pipes/pipe-order-by/pipe-order-by.pipe.js +18 -0
  129. package/esm5/lib/pipes/pipe-partial-content/pipe-partial-content.module.js +19 -0
  130. package/esm5/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.js +34 -0
  131. package/esm5/lib/pipes/pipe-relative-time/pipe-relative-time.module.js +19 -0
  132. package/esm5/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.js +21 -0
  133. package/esm5/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.js +19 -0
  134. package/esm5/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.js +38 -0
  135. package/esm5/lib/resolvers/explore-detail.resolver.js +93 -0
  136. package/esm5/lib/resolvers/marketing-offering.resolve.js +43 -0
  137. package/esm5/lib/resolvers/page.constant.js +4 -0
  138. package/esm5/lib/resolvers/page.model.js +47 -0
  139. package/esm5/lib/resolvers/page.resolver.js +98 -0
  140. package/esm5/lib/resolvers/resolver.model.js +6 -0
  141. package/esm5/lib/services/auth-keycloak.service.js +316 -0
  142. package/esm5/lib/services/auth-microsoft.service.js +251 -0
  143. package/esm5/lib/services/card-content.model.js +32 -0
  144. package/esm5/lib/services/configurations.model.js +508 -0
  145. package/esm5/lib/services/configurations.service.js +114 -0
  146. package/esm5/lib/services/content-strip-multiple.model.js +75 -0
  147. package/esm5/lib/services/event.model.js +229 -0
  148. package/esm5/lib/services/event.service.js +216 -0
  149. package/esm5/lib/services/logger.service.js +73 -0
  150. package/esm5/lib/services/ms-office.model.js +8 -0
  151. package/esm5/lib/services/subapplication-respond.service.js +230 -0
  152. package/esm5/lib/services/telemetry.service.js +484 -0
  153. package/esm5/lib/services/user-preference.model.js +38 -0
  154. package/esm5/lib/services/user-preference.service.js +109 -0
  155. package/esm5/lib/services/utility.service.js +178 -0
  156. package/esm5/lib/services/value.service.js +33 -0
  157. package/esm5/lib/services/widget-content.model.js +342 -0
  158. package/esm5/lib/services/widget-content.service.js +214 -0
  159. package/esm5/lib/services/widget-resolver.model.js +57 -0
  160. package/esm5/lib/services/widget-search.model.js +126 -0
  161. package/esm5/public-api.js +68 -0
  162. package/esm5/sunbird-cb-utils.js +8 -0
  163. package/fesm2015/sunbird-cb-utils.js +2011 -788
  164. package/fesm2015/sunbird-cb-utils.js.map +1 -1
  165. package/fesm5/sunbird-cb-utils.js +5605 -0
  166. package/fesm5/sunbird-cb-utils.js.map +1 -0
  167. package/lib/components/image-crop/image-crop.component.d.ts +0 -1
  168. package/lib/components/image-crop/image-crop.module.d.ts +0 -1
  169. package/lib/constants/features.enum.d.ts +0 -1
  170. package/lib/constants/instances.enum.d.ts +0 -1
  171. package/lib/constants/misc.constants.d.ts +0 -1
  172. package/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.d.ts +3 -4
  173. package/lib/directives/class-change-on-scroll/class-change-on-scroll.module.d.ts +0 -1
  174. package/lib/directives/default-thumbnail/default-thumbnail.directive.d.ts +0 -1
  175. package/lib/directives/default-thumbnail/default-thumbnail.module.d.ts +0 -1
  176. package/lib/directives/image-responsive/image-responsive.directive.d.ts +0 -1
  177. package/lib/directives/image-responsive/image-responsive.module.d.ts +0 -1
  178. package/lib/directives/in-view-port/in-view-port.directive.d.ts +0 -1
  179. package/lib/directives/in-view-port/in-view-port.module.d.ts +0 -1
  180. package/lib/directives/navigation/navigation.directive.d.ts +0 -1
  181. package/lib/directives/navigation/navigation.module.d.ts +0 -1
  182. package/lib/directives/permission/permission.directive.d.ts +0 -1
  183. package/lib/directives/permission/permission.module.d.ts +0 -1
  184. package/lib/helpers/functions/getStringifiedQueryParams.d.ts +0 -1
  185. package/lib/helpers/horizontal-scroller/horizontal-scroller.component.d.ts +0 -1
  186. package/lib/helpers/horizontal-scroller/horizontal-scroller.module.d.ts +0 -1
  187. package/lib/helpers/logout/logout.component.d.ts +2 -3
  188. package/lib/helpers/logout/logout.module.d.ts +0 -1
  189. package/lib/models/contentRating.model.d.ts +0 -1
  190. package/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.d.ts +0 -1
  191. package/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.d.ts +0 -1
  192. package/lib/pipes/pipe-count-transform/pipe-count-transform.module.d.ts +0 -1
  193. package/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.d.ts +0 -1
  194. package/lib/pipes/pipe-date-concat/pipe-date-concat.module.d.ts +0 -1
  195. package/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.d.ts +0 -1
  196. package/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.d.ts +0 -1
  197. package/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.d.ts +0 -1
  198. package/lib/pipes/pipe-filter/pipe-filter.module.d.ts +0 -1
  199. package/lib/pipes/pipe-filter/pipe-filter.pipe.d.ts +0 -1
  200. package/lib/pipes/pipe-filter-search/pipe-filter-search.module.d.ts +0 -1
  201. package/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.d.ts +0 -1
  202. package/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.d.ts +0 -1
  203. package/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.d.ts +0 -1
  204. package/lib/pipes/pipe-limit-to/pipe-limit-to.module.d.ts +0 -1
  205. package/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.d.ts +0 -1
  206. package/lib/pipes/pipe-list-filter/pipe-list-filter.module.d.ts +0 -1
  207. package/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.d.ts +0 -1
  208. package/lib/pipes/pipe-name-transform/pipe-name-transform.module.d.ts +0 -1
  209. package/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.d.ts +0 -1
  210. package/lib/pipes/pipe-order-by/pipe-order-by.module.d.ts +0 -1
  211. package/lib/pipes/pipe-order-by/pipe-order-by.pipe.d.ts +4 -5
  212. package/lib/pipes/pipe-partial-content/pipe-partial-content.module.d.ts +0 -1
  213. package/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.d.ts +0 -1
  214. package/lib/pipes/pipe-relative-time/pipe-relative-time.module.d.ts +0 -1
  215. package/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.d.ts +0 -1
  216. package/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.d.ts +0 -1
  217. package/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.d.ts +0 -1
  218. package/lib/resolvers/explore-detail.resolver.d.ts +0 -1
  219. package/lib/resolvers/marketing-offering.resolve.d.ts +0 -1
  220. package/lib/resolvers/page.constant.d.ts +0 -1
  221. package/lib/resolvers/page.model.d.ts +1 -2
  222. package/lib/resolvers/page.resolver.d.ts +0 -1
  223. package/lib/resolvers/resolver.model.d.ts +0 -1
  224. package/lib/services/auth-keycloak.service.d.ts +9 -10
  225. package/lib/services/auth-microsoft.service.d.ts +2 -3
  226. package/lib/services/card-content.model.d.ts +0 -1
  227. package/lib/services/configurations.model.d.ts +24 -27
  228. package/lib/services/configurations.service.d.ts +0 -1
  229. package/lib/services/content-strip-multiple.model.d.ts +6 -8
  230. package/lib/services/event.model.d.ts +1 -2
  231. package/lib/services/event.service.d.ts +0 -1
  232. package/lib/services/logger.service.d.ts +4 -5
  233. package/lib/services/ms-office.model.d.ts +0 -1
  234. package/lib/services/subapplication-respond.service.d.ts +0 -1
  235. package/lib/services/telemetry.service.d.ts +2 -3
  236. package/lib/services/user-preference.model.d.ts +0 -1
  237. package/lib/services/user-preference.service.d.ts +0 -1
  238. package/lib/services/utility.service.d.ts +7 -8
  239. package/lib/services/value.service.d.ts +0 -1
  240. package/lib/services/widget-content.model.d.ts +19 -21
  241. package/lib/services/widget-content.service.d.ts +0 -1
  242. package/lib/services/widget-resolver.model.d.ts +0 -1
  243. package/lib/services/widget-search.model.d.ts +0 -1
  244. package/package.json +17 -14
  245. package/public-api.d.ts +0 -7
  246. package/sunbird-cb-utils.d.ts +6 -1
  247. package/sunbird-cb-utils.metadata.json +1 -1
  248. package/lib/components/image-crop/image-crop.component.d.ts.map +0 -1
  249. package/lib/components/image-crop/image-crop.component.ngfactory.d.ts.map +0 -1
  250. package/lib/components/image-crop/image-crop.component.scss.shim.ngstyle.d.ts.map +0 -1
  251. package/lib/components/image-crop/image-crop.module.d.ts.map +0 -1
  252. package/lib/components/image-crop/image-crop.module.ngfactory.d.ts.map +0 -1
  253. package/lib/constants/features.enum.d.ts.map +0 -1
  254. package/lib/constants/instances.enum.d.ts.map +0 -1
  255. package/lib/constants/misc.constants.d.ts.map +0 -1
  256. package/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.d.ts.map +0 -1
  257. package/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.ngfactory.d.ts.map +0 -1
  258. package/lib/directives/class-change-on-scroll/class-change-on-scroll.module.d.ts.map +0 -1
  259. package/lib/directives/class-change-on-scroll/class-change-on-scroll.module.ngfactory.d.ts.map +0 -1
  260. package/lib/directives/default-thumbnail/default-thumbnail.directive.d.ts.map +0 -1
  261. package/lib/directives/default-thumbnail/default-thumbnail.directive.ngfactory.d.ts.map +0 -1
  262. package/lib/directives/default-thumbnail/default-thumbnail.module.d.ts.map +0 -1
  263. package/lib/directives/default-thumbnail/default-thumbnail.module.ngfactory.d.ts.map +0 -1
  264. package/lib/directives/image-responsive/image-responsive.directive.d.ts.map +0 -1
  265. package/lib/directives/image-responsive/image-responsive.directive.ngfactory.d.ts.map +0 -1
  266. package/lib/directives/image-responsive/image-responsive.module.d.ts.map +0 -1
  267. package/lib/directives/image-responsive/image-responsive.module.ngfactory.d.ts.map +0 -1
  268. package/lib/directives/in-view-port/in-view-port.directive.d.ts.map +0 -1
  269. package/lib/directives/in-view-port/in-view-port.directive.ngfactory.d.ts.map +0 -1
  270. package/lib/directives/in-view-port/in-view-port.module.d.ts.map +0 -1
  271. package/lib/directives/in-view-port/in-view-port.module.ngfactory.d.ts.map +0 -1
  272. package/lib/directives/navigation/navigation.directive.d.ts.map +0 -1
  273. package/lib/directives/navigation/navigation.directive.ngfactory.d.ts.map +0 -1
  274. package/lib/directives/navigation/navigation.module.d.ts.map +0 -1
  275. package/lib/directives/navigation/navigation.module.ngfactory.d.ts.map +0 -1
  276. package/lib/directives/permission/permission.directive.d.ts.map +0 -1
  277. package/lib/directives/permission/permission.directive.ngfactory.d.ts.map +0 -1
  278. package/lib/directives/permission/permission.module.d.ts.map +0 -1
  279. package/lib/directives/permission/permission.module.ngfactory.d.ts.map +0 -1
  280. package/lib/helpers/functions/getStringifiedQueryParams.d.ts.map +0 -1
  281. package/lib/helpers/horizontal-scroller/horizontal-scroller.component.d.ts.map +0 -1
  282. package/lib/helpers/horizontal-scroller/horizontal-scroller.component.ngfactory.d.ts.map +0 -1
  283. package/lib/helpers/horizontal-scroller/horizontal-scroller.component.scss.shim.ngstyle.d.ts.map +0 -1
  284. package/lib/helpers/horizontal-scroller/horizontal-scroller.module.d.ts.map +0 -1
  285. package/lib/helpers/horizontal-scroller/horizontal-scroller.module.ngfactory.d.ts.map +0 -1
  286. package/lib/helpers/logout/logout.component.d.ts.map +0 -1
  287. package/lib/helpers/logout/logout.component.ngfactory.d.ts.map +0 -1
  288. package/lib/helpers/logout/logout.component.scss.shim.ngstyle.d.ts.map +0 -1
  289. package/lib/helpers/logout/logout.module.d.ts.map +0 -1
  290. package/lib/helpers/logout/logout.module.ngfactory.d.ts.map +0 -1
  291. package/lib/models/contentRating.model.d.ts.map +0 -1
  292. package/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.d.ts.map +0 -1
  293. package/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.ngfactory.d.ts.map +0 -1
  294. package/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.d.ts.map +0 -1
  295. package/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.ngfactory.d.ts.map +0 -1
  296. package/lib/pipes/pipe-count-transform/pipe-count-transform.module.d.ts.map +0 -1
  297. package/lib/pipes/pipe-count-transform/pipe-count-transform.module.ngfactory.d.ts.map +0 -1
  298. package/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.d.ts.map +0 -1
  299. package/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.ngfactory.d.ts.map +0 -1
  300. package/lib/pipes/pipe-date-concat/pipe-date-concat.module.d.ts.map +0 -1
  301. package/lib/pipes/pipe-date-concat/pipe-date-concat.module.ngfactory.d.ts.map +0 -1
  302. package/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.d.ts.map +0 -1
  303. package/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.ngfactory.d.ts.map +0 -1
  304. package/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.d.ts.map +0 -1
  305. package/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.ngfactory.d.ts.map +0 -1
  306. package/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.d.ts.map +0 -1
  307. package/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.ngfactory.d.ts.map +0 -1
  308. package/lib/pipes/pipe-filter/pipe-filter.module.d.ts.map +0 -1
  309. package/lib/pipes/pipe-filter/pipe-filter.module.ngfactory.d.ts.map +0 -1
  310. package/lib/pipes/pipe-filter/pipe-filter.pipe.d.ts.map +0 -1
  311. package/lib/pipes/pipe-filter/pipe-filter.pipe.ngfactory.d.ts.map +0 -1
  312. package/lib/pipes/pipe-filter-search/pipe-filter-search.module.d.ts.map +0 -1
  313. package/lib/pipes/pipe-filter-search/pipe-filter-search.module.ngfactory.d.ts.map +0 -1
  314. package/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.d.ts.map +0 -1
  315. package/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.ngfactory.d.ts.map +0 -1
  316. package/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.d.ts.map +0 -1
  317. package/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.ngfactory.d.ts.map +0 -1
  318. package/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.d.ts.map +0 -1
  319. package/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.ngfactory.d.ts.map +0 -1
  320. package/lib/pipes/pipe-limit-to/pipe-limit-to.module.d.ts.map +0 -1
  321. package/lib/pipes/pipe-limit-to/pipe-limit-to.module.ngfactory.d.ts.map +0 -1
  322. package/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.d.ts.map +0 -1
  323. package/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.ngfactory.d.ts.map +0 -1
  324. package/lib/pipes/pipe-list-filter/pipe-list-filter.module.d.ts.map +0 -1
  325. package/lib/pipes/pipe-list-filter/pipe-list-filter.module.ngfactory.d.ts.map +0 -1
  326. package/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.d.ts.map +0 -1
  327. package/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.ngfactory.d.ts.map +0 -1
  328. package/lib/pipes/pipe-name-transform/pipe-name-transform.module.d.ts.map +0 -1
  329. package/lib/pipes/pipe-name-transform/pipe-name-transform.module.ngfactory.d.ts.map +0 -1
  330. package/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.d.ts.map +0 -1
  331. package/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.ngfactory.d.ts.map +0 -1
  332. package/lib/pipes/pipe-order-by/pipe-order-by.module.d.ts.map +0 -1
  333. package/lib/pipes/pipe-order-by/pipe-order-by.module.ngfactory.d.ts.map +0 -1
  334. package/lib/pipes/pipe-order-by/pipe-order-by.pipe.d.ts.map +0 -1
  335. package/lib/pipes/pipe-order-by/pipe-order-by.pipe.ngfactory.d.ts.map +0 -1
  336. package/lib/pipes/pipe-partial-content/pipe-partial-content.module.d.ts.map +0 -1
  337. package/lib/pipes/pipe-partial-content/pipe-partial-content.module.ngfactory.d.ts.map +0 -1
  338. package/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.d.ts.map +0 -1
  339. package/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.ngfactory.d.ts.map +0 -1
  340. package/lib/pipes/pipe-relative-time/pipe-relative-time.module.d.ts.map +0 -1
  341. package/lib/pipes/pipe-relative-time/pipe-relative-time.module.ngfactory.d.ts.map +0 -1
  342. package/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.d.ts.map +0 -1
  343. package/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.ngfactory.d.ts.map +0 -1
  344. package/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.d.ts.map +0 -1
  345. package/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.ngfactory.d.ts.map +0 -1
  346. package/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.d.ts.map +0 -1
  347. package/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.ngfactory.d.ts.map +0 -1
  348. package/lib/resolvers/explore-detail.resolver.d.ts.map +0 -1
  349. package/lib/resolvers/explore-detail.resolver.ngfactory.d.ts.map +0 -1
  350. package/lib/resolvers/marketing-offering.resolve.d.ts.map +0 -1
  351. package/lib/resolvers/marketing-offering.resolve.ngfactory.d.ts.map +0 -1
  352. package/lib/resolvers/page.constant.d.ts.map +0 -1
  353. package/lib/resolvers/page.model.d.ts.map +0 -1
  354. package/lib/resolvers/page.resolver.d.ts.map +0 -1
  355. package/lib/resolvers/page.resolver.ngfactory.d.ts.map +0 -1
  356. package/lib/resolvers/resolver.model.d.ts.map +0 -1
  357. package/lib/services/auth-keycloak.service.d.ts.map +0 -1
  358. package/lib/services/auth-keycloak.service.ngfactory.d.ts.map +0 -1
  359. package/lib/services/auth-microsoft.service.d.ts.map +0 -1
  360. package/lib/services/auth-microsoft.service.ngfactory.d.ts.map +0 -1
  361. package/lib/services/card-content.model.d.ts.map +0 -1
  362. package/lib/services/configurations.model.d.ts.map +0 -1
  363. package/lib/services/configurations.service.d.ts.map +0 -1
  364. package/lib/services/configurations.service.ngfactory.d.ts.map +0 -1
  365. package/lib/services/content-strip-multiple.model.d.ts.map +0 -1
  366. package/lib/services/event.model.d.ts.map +0 -1
  367. package/lib/services/event.service.d.ts.map +0 -1
  368. package/lib/services/event.service.ngfactory.d.ts.map +0 -1
  369. package/lib/services/logger.service.d.ts.map +0 -1
  370. package/lib/services/logger.service.ngfactory.d.ts.map +0 -1
  371. package/lib/services/ms-office.model.d.ts.map +0 -1
  372. package/lib/services/subapplication-respond.service.d.ts.map +0 -1
  373. package/lib/services/subapplication-respond.service.ngfactory.d.ts.map +0 -1
  374. package/lib/services/telemetry.service.d.ts.map +0 -1
  375. package/lib/services/telemetry.service.ngfactory.d.ts.map +0 -1
  376. package/lib/services/user-preference.model.d.ts.map +0 -1
  377. package/lib/services/user-preference.service.d.ts.map +0 -1
  378. package/lib/services/user-preference.service.ngfactory.d.ts.map +0 -1
  379. package/lib/services/utility.service.d.ts.map +0 -1
  380. package/lib/services/utility.service.ngfactory.d.ts.map +0 -1
  381. package/lib/services/value.service.d.ts.map +0 -1
  382. package/lib/services/value.service.ngfactory.d.ts.map +0 -1
  383. package/lib/services/widget-content.model.d.ts.map +0 -1
  384. package/lib/services/widget-content.service.d.ts.map +0 -1
  385. package/lib/services/widget-content.service.ngfactory.d.ts.map +0 -1
  386. package/lib/services/widget-resolver.model.d.ts.map +0 -1
  387. package/lib/services/widget-search.model.d.ts.map +0 -1
  388. package/public-api.d.ts.map +0 -1
  389. package/sunbird-cb-utils.d.ts.map +0 -1
@@ -24,7 +24,7 @@ export class TelemetryService {
24
24
  const instanceConfig = this.configSvc.instanceConfig;
25
25
  if (instanceConfig) {
26
26
  this.telemetryConfig = instanceConfig.telemetryConfig;
27
- this.telemetryConfig = Object.assign(Object.assign({}, this.telemetryConfig), { pdata: Object.assign(Object.assign({}, this.telemetryConfig.pdata), { id: `${environment.name}.${this.telemetryConfig.pdata.id}` }), uid: this.configSvc.userProfile && this.configSvc.userProfile.userId, channel: this.rootOrgId || this.telemetryConfig.channel, sid: this.getTelemetrySessionId });
27
+ this.telemetryConfig = Object.assign({}, this.telemetryConfig, { pdata: Object.assign({}, this.telemetryConfig.pdata, { id: `${environment.name}.${this.telemetryConfig.pdata.id}` }), uid: this.configSvc.userProfile && this.configSvc.userProfile.userId, channel: this.rootOrgId || this.telemetryConfig.channel, sid: this.getTelemetrySessionId });
28
28
  this.pData = this.telemetryConfig.pdata;
29
29
  this.addPlayerListener();
30
30
  this.addCustomEventListener();
@@ -58,7 +58,7 @@ export class TelemetryService {
58
58
  : '',
59
59
  duration: 1,
60
60
  }, {
61
- context: Object.assign({ pdata: Object.assign(Object.assign({}, this.pData), { id: this.pData.id }) }, (pageContext && pageContext.module ? { env: pageContext.module } : null)),
61
+ context: Object.assign({ pdata: Object.assign({}, this.pData, { id: this.pData.id }) }, (pageContext && pageContext.module ? { env: pageContext.module } : null)),
62
62
  object: Object.assign({}, (data) && data),
63
63
  });
64
64
  }
@@ -79,7 +79,7 @@ export class TelemetryService {
79
79
  pageContext.pageId
80
80
  : '',
81
81
  }, {
82
- context: Object.assign({ pdata: Object.assign(Object.assign({}, this.pData), { id: this.pData.id }) }, (pageContext && pageContext.module ? { env: pageContext.module } : null)),
82
+ context: Object.assign({ pdata: Object.assign({}, this.pData, { id: this.pData.id }) }, (pageContext && pageContext.module ? { env: pageContext.module } : null)),
83
83
  object: Object.assign({}, (data) && data),
84
84
  });
85
85
  }
@@ -97,7 +97,7 @@ export class TelemetryService {
97
97
  duration: '',
98
98
  }, {
99
99
  context: {
100
- pdata: Object.assign(Object.assign({}, this.pData), { id: this.pData.id }),
100
+ pdata: Object.assign({}, this.pData, { id: this.pData.id }),
101
101
  },
102
102
  });
103
103
  }
@@ -130,7 +130,7 @@ export class TelemetryService {
130
130
  if (page.objectId) {
131
131
  const config = {
132
132
  context: {
133
- pdata: Object.assign(Object.assign({}, this.pData), { id: this.pData.id }),
133
+ pdata: Object.assign({}, this.pData, { id: this.pData.id }),
134
134
  env: page.module || (this.telemetryConfig && this.telemetryConfig.env),
135
135
  },
136
136
  object: Object.assign({ id: page.objectId }, ((data) ? data.object : {})),
@@ -140,7 +140,7 @@ export class TelemetryService {
140
140
  else {
141
141
  $t.impression(edata, {
142
142
  context: {
143
- pdata: Object.assign(Object.assign({}, this.pData), { id: this.pData.id }),
143
+ pdata: Object.assign({}, this.pData, { id: this.pData.id }),
144
144
  env: page.module || '',
145
145
  },
146
146
  object: Object.assign({}, ((data) ? data.object : {})),
@@ -158,14 +158,14 @@ export class TelemetryService {
158
158
  if (this.externalApps[impressionData.subApplicationName]) {
159
159
  const externalConfig = page.objectId ? {
160
160
  context: {
161
- pdata: Object.assign(Object.assign({}, this.pData), { id: this.externalApps[impressionData.subApplicationName] }),
161
+ pdata: Object.assign({}, this.pData, { id: this.externalApps[impressionData.subApplicationName] }),
162
162
  },
163
163
  object: {
164
164
  id: page.objectId,
165
165
  },
166
166
  } : {
167
167
  context: {
168
- pdata: Object.assign(Object.assign({}, this.pData), { id: this.externalApps[impressionData.subApplicationName] }),
168
+ pdata: Object.assign({}, this.pData, { id: this.externalApps[impressionData.subApplicationName] }),
169
169
  },
170
170
  };
171
171
  $t.impression(impressionData.data, externalConfig);
@@ -177,27 +177,27 @@ export class TelemetryService {
177
177
  }
178
178
  addCustomImpressionListener() {
179
179
  this.eventsSvc.events$
180
- .pipe(filter((event) => event &&
180
+ .pipe(filter(((event) => event &&
181
181
  event.data &&
182
182
  event.eventType === WsEvents.WsEventType.Telemetry &&
183
- event.data.eventSubType === WsEvents.EnumTelemetrySubType.Impression))
184
- .subscribe(event => {
183
+ event.data.eventSubType === WsEvents.EnumTelemetrySubType.Impression)))
184
+ .subscribe((event => {
185
185
  try {
186
186
  this.impression(event.data);
187
187
  }
188
188
  catch (e) {
189
189
  console.log('Error in telemetry impression', e);
190
190
  }
191
- });
191
+ }));
192
192
  }
193
193
  addTimeSpentListener() {
194
194
  this.eventsSvc.events$
195
- .pipe(filter(event => event &&
195
+ .pipe(filter((event => event &&
196
196
  event.eventType === WsEvents.WsEventType.Telemetry &&
197
197
  event.data.type === WsEvents.WsTimeSpentType.Page &&
198
198
  event.data.mode &&
199
- event.data))
200
- .subscribe(event => {
199
+ event.data)))
200
+ .subscribe((event => {
201
201
  if (event.data.state === WsEvents.EnumTelemetrySubType.Loaded) {
202
202
  this.start({
203
203
  type: event.data.type || WsEvents.WsTimeSpentType.Player,
@@ -210,13 +210,13 @@ export class TelemetryService {
210
210
  mode: event.data.mode || WsEvents.WsTimeSpentMode.Play,
211
211
  }, {}, event.pageContext);
212
212
  }
213
- });
213
+ }));
214
214
  }
215
215
  addCustomEventListener() {
216
216
  this.eventsSvc.events$
217
- .pipe(filter(event => event &&
218
- event.eventType === WsEvents.WsEventType.Telemetry))
219
- .subscribe(event => {
217
+ .pipe(filter((event => event &&
218
+ event.eventType === WsEvents.WsEventType.Telemetry)))
219
+ .subscribe((event => {
220
220
  if (event.data.state === WsEvents.EnumTelemetrySubType.Loaded &&
221
221
  event.data.type !== WsEvents.WsTimeSpentType.Player) {
222
222
  this.start({
@@ -231,16 +231,16 @@ export class TelemetryService {
231
231
  mode: event.data.mode || WsEvents.WsTimeSpentMode.Play,
232
232
  }, event.data.object, event.pageContext);
233
233
  }
234
- });
234
+ }));
235
235
  }
236
236
  addPlayerListener() {
237
237
  this.eventsSvc.events$
238
- .pipe(filter(event => event &&
238
+ .pipe(filter((event => event &&
239
239
  event.eventType === WsEvents.WsEventType.Telemetry &&
240
240
  event.data.type === WsEvents.WsTimeSpentType.Player &&
241
241
  event.data.mode &&
242
- event.data))
243
- .subscribe(event => {
242
+ event.data)))
243
+ .subscribe((event => {
244
244
  const content = event.data.content;
245
245
  if (event.data.state === WsEvents.EnumTelemetrySubType.Loaded &&
246
246
  (!content ||
@@ -262,20 +262,20 @@ export class TelemetryService {
262
262
  mode: event.data.mode || WsEvents.WsTimeSpentMode.Play,
263
263
  }, event.data.object, event.pageContext);
264
264
  }
265
- });
265
+ }));
266
266
  }
267
267
  addInteractListener() {
268
268
  this.eventsSvc.events$
269
- .pipe(filter((event) => event &&
269
+ .pipe(filter(((event) => event &&
270
270
  event.data &&
271
271
  event.eventType === WsEvents.WsEventType.Telemetry &&
272
- event.data.eventSubType === WsEvents.EnumTelemetrySubType.Interact))
273
- .subscribe(event => {
272
+ event.data.eventSubType === WsEvents.EnumTelemetrySubType.Interact)))
273
+ .subscribe((event => {
274
274
  const page = this.getPageDetails();
275
275
  if (typeof event.from === 'string' && this.externalApps[event.from]) {
276
276
  const externalConfig = {
277
277
  context: {
278
- pdata: Object.assign(Object.assign({}, this.pData), { id: this.externalApps[event.from] }),
278
+ pdata: Object.assign({}, this.pData, { id: this.externalApps[event.from] }),
279
279
  },
280
280
  };
281
281
  try {
@@ -295,7 +295,7 @@ export class TelemetryService {
295
295
  : '',
296
296
  pageid: event.data.pageContext && event.data.pageContext.pageId || page.pageid,
297
297
  }, {
298
- context: Object.assign({ pdata: Object.assign(Object.assign({}, this.pData), { id: this.pData.id }) }, (event.data.pageContext && event.data.pageContext.module ? { env: event.data.pageContext.module } : null)),
298
+ context: Object.assign({ pdata: Object.assign({}, this.pData, { id: this.pData.id }) }, (event.data.pageContext && event.data.pageContext.module ? { env: event.data.pageContext.module } : null)),
299
299
  object: Object.assign({}, event.data.object),
300
300
  });
301
301
  }
@@ -303,15 +303,15 @@ export class TelemetryService {
303
303
  console.log('Error in telemetry interact', e);
304
304
  }
305
305
  }
306
- });
306
+ }));
307
307
  }
308
308
  addFeedbackListener() {
309
309
  this.eventsSvc.events$
310
- .pipe(filter((event) => event &&
310
+ .pipe(filter(((event) => event &&
311
311
  event.data &&
312
312
  event.eventType === WsEvents.WsEventType.Telemetry &&
313
- event.data.eventSubType === WsEvents.EnumTelemetrySubType.Feedback))
314
- .subscribe(event => {
313
+ event.data.eventSubType === WsEvents.EnumTelemetrySubType.Feedback)))
314
+ .subscribe((event => {
315
315
  const page = this.getPageDetails();
316
316
  try {
317
317
  $t.feedback({
@@ -321,7 +321,7 @@ export class TelemetryService {
321
321
  pageid: page.pageid,
322
322
  }, {
323
323
  context: {
324
- pdata: Object.assign(Object.assign({}, this.pData), { id: this.pData.id }),
324
+ pdata: Object.assign({}, this.pData, { id: this.pData.id }),
325
325
  },
326
326
  object: {
327
327
  id: event.data.object.contentId || event.data.object.id || '',
@@ -334,19 +334,19 @@ export class TelemetryService {
334
334
  catch (e) {
335
335
  console.log('Error in telemetry interact', e);
336
336
  }
337
- });
337
+ }));
338
338
  }
339
339
  addHearbeatListener() {
340
340
  this.eventsSvc.events$
341
- .pipe(filter((event) => event &&
341
+ .pipe(filter(((event) => event &&
342
342
  event.data &&
343
343
  event.eventType === WsEvents.WsEventType.Telemetry &&
344
- event.data.eventSubType === WsEvents.EnumTelemetrySubType.HeartBeat))
345
- .subscribe(event => {
344
+ event.data.eventSubType === WsEvents.EnumTelemetrySubType.HeartBeat)))
345
+ .subscribe((event => {
346
346
  if (typeof event.from === 'string' && this.externalApps[event.from]) {
347
347
  const externalConfig = {
348
348
  context: {
349
- pdata: Object.assign(Object.assign({}, this.pData), { id: this.externalApps[event.from] }),
349
+ pdata: Object.assign({}, this.pData, { id: this.externalApps[event.from] }),
350
350
  },
351
351
  };
352
352
  try {
@@ -363,7 +363,7 @@ export class TelemetryService {
363
363
  id: event.data.id,
364
364
  }, {
365
365
  context: {
366
- pdata: Object.assign(Object.assign({}, this.pData), { id: this.pData.id }),
366
+ pdata: Object.assign({}, this.pData, { id: this.pData.id }),
367
367
  },
368
368
  });
369
369
  }
@@ -371,15 +371,15 @@ export class TelemetryService {
371
371
  console.log('Error in telemetry heartbeat', e);
372
372
  }
373
373
  }
374
- });
374
+ }));
375
375
  }
376
376
  addSearchListener() {
377
377
  this.eventsSvc.events$
378
- .pipe(filter((event) => event &&
378
+ .pipe(filter(((event) => event &&
379
379
  event.data &&
380
380
  event.eventType === WsEvents.WsEventType.Telemetry &&
381
- event.data.eventSubType === WsEvents.EnumTelemetrySubType.Search))
382
- .subscribe(event => {
381
+ event.data.eventSubType === WsEvents.EnumTelemetrySubType.Search)))
382
+ .subscribe((event => {
383
383
  try {
384
384
  $t.search({
385
385
  query: event.data.query,
@@ -387,14 +387,14 @@ export class TelemetryService {
387
387
  size: event.data.size,
388
388
  }, {
389
389
  context: {
390
- pdata: Object.assign(Object.assign({}, this.pData), { id: this.pData.id }),
390
+ pdata: Object.assign({}, this.pData, { id: this.pData.id }),
391
391
  },
392
392
  });
393
393
  }
394
394
  catch (e) {
395
395
  console.log('Error in telemetry search', e);
396
396
  }
397
- });
397
+ }));
398
398
  }
399
399
  getPageDetails() {
400
400
  const path = window.location.pathname.replace('/', '');
@@ -423,7 +423,6 @@ export class TelemetryService {
423
423
  return null;
424
424
  }
425
425
  }
426
- TelemetryService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TelemetryService_Factory() { return new TelemetryService(i0.ɵɵinject("environment"), i0.ɵɵinject(i1.ConfigurationsService), i0.ɵɵinject(i2.EventService), i0.ɵɵinject(i3.LoggerService)); }, token: TelemetryService, providedIn: "root" });
427
426
  TelemetryService.decorators = [
428
427
  { type: Injectable, args: [{
429
428
  providedIn: 'root',
@@ -435,4 +434,16 @@ TelemetryService.ctorParameters = () => [
435
434
  { type: EventService },
436
435
  { type: LoggerService }
437
436
  ];
438
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsZW1ldHJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdXRpbHMvc3JjL2xpYi9zZXJ2aWNlcy90ZWxlbWV0cnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHdkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFBOzs7OztBQVFoRCxNQUFNLE9BQU8sZ0JBQWdCO0lBVTNCLFlBQ3lCLFdBQWdCLEVBQy9CLFNBQWdDLEVBQ2hDLFNBQXVCLEVBRXZCLE1BQXFCO1FBSHJCLGNBQVMsR0FBVCxTQUFTLENBQXVCO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFFdkIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQWQvQixnQkFBVyxHQUFrQixJQUFJLENBQUE7UUFDakMsb0JBQWUsR0FBNkMsSUFBSSxDQUFBO1FBQ2hFLFVBQUssR0FBUSxJQUFJLENBQUE7UUFDakIsaUJBQVksR0FBRyxFQUFFLENBQUE7UUFHakIsaUJBQVksR0FBUTtZQUNsQixJQUFJLEVBQUUsYUFBYTtTQUNwQixDQUFBO1FBUUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUE7UUFDOUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUE7UUFDcEQsSUFBSSxjQUFjLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENB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Q0FBQTtJQUNILENBQUM7SUFFRCw0QkFBNEIsQ0FBQyxRQUFrQjtRQUU3QyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3RDLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFNUMsSUFBSSxNQUFNLEtBQUssQ0FBQyxDQUFDLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFBO1NBQ1o7UUFFRCxJQUFJLE1BQU0sS0FBSyxDQUFDLENBQUMsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDakQsT0FBTyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFBO1NBQzVCO1FBRUQsSUFBSSxTQUFTLEtBQUssQ0FBQyxDQUFDLElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZELE9BQU8sUUFBUSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQTtTQUMvQjtRQUVELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQzs7OztZQTFtQkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7NENBWUksTUFBTSxTQUFDLGFBQWE7WUF0QmhCLHFCQUFxQjtZQUVyQixZQUFZO1lBQ1osYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG4vLyBpbXBvcnQgeyBBdXRoS2V5Y2xvYWtTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLWtleWNsb2FrLnNlcnZpY2UnXHJcbmltcG9ydCB7IE5zSW5zdGFuY2VDb25maWcgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb25zLm1vZGVsJ1xyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc1NlcnZpY2UgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb25zLnNlcnZpY2UnXHJcbmltcG9ydCB7IFdzRXZlbnRzIH0gZnJvbSAnLi9ldmVudC5tb2RlbCdcclxuaW1wb3J0IHsgRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9ldmVudC5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi9sb2dnZXIuc2VydmljZSdcclxuaW1wb3J0IHsgTnNDb250ZW50IH0gZnJvbSAnLi93aWRnZXQtY29udGVudC5tb2RlbCdcclxuXHJcbmRlY2xhcmUgdmFyICR0OiBhbnlcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZWxlbWV0cnlTZXJ2aWNlIHtcclxuICBwcmV2aW91c1VybDogc3RyaW5nIHwgbnVsbCA9IG51bGxcclxuICB0ZWxlbWV0cnlDb25maWc6IE5zSW5zdGFuY2VDb25maWcuSVRlbGVtZXRyeUNvbmZpZyB8IG51bGwgPSBudWxsXHJcbiAgcERhdGE6IGFueSA9IG51bGxcclxuICBjb250ZXh0Q2RhdGEgPSBbXVxyXG4gIGVudmlyb25tZW50OiBhbnlcclxuXHJcbiAgZXh0ZXJuYWxBcHBzOiBhbnkgPSB7XHJcbiAgICBSQkNQOiAncmJjcC13ZWItdWknLFxyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgZW52aXJvbm1lbnQ6IGFueSxcclxuICAgIHByaXZhdGUgY29uZmlnU3ZjOiBDb25maWd1cmF0aW9uc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGV2ZW50c1N2YzogRXZlbnRTZXJ2aWNlLFxyXG4gICAgLy8gcHJpdmF0ZSBhdXRoU3ZjOiBBdXRoS2V5Y2xvYWtTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICB0aGlzLmVudmlyb25tZW50ID0gZW52aXJvbm1lbnRcclxuICAgIGNvbnN0IGluc3RhbmNlQ29uZmlnID0gdGhpcy5jb25maWdTdmMuaW5zdGFuY2VDb25maWdcclxuICAgIGlmIChpbnN0YW5jZUNvbmZpZykge1xyXG4gICAgICB0aGlzLnRlbGVtZXRyeUNvbmZpZyA9IGluc3RhbmNlQ29uZmlnLnRlbGVtZXRyeUNvbmZpZ1xyXG4gICAgICB0aGlzLnRlbGVtZXRyeUNvbmZpZyA9IHtcclxuICAgICAgICAuLi50aGlzLnRlbGVtZXRyeUNvbmZpZyxcclxuICAgICAgICBwZGF0YToge1xyXG4gICAgICAgICAgLi4udGhpcy50ZWxlbWV0cnlDb25maWcucGRhdGEsXHJcbiAgICAgICAgICAvLyBwaWQ6IG5hdmlnYXRvci51c2VyQWdlbnQsXHJcbiAgICAgICAgICBpZDogYCR7ZW52aXJvbm1lbnQubmFtZX0uJHt0aGlzLnRlbGVtZXRyeUNvbmZpZy5wZGF0YS5pZH1gLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdWlkOiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZSAmJiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VySWQsXHJcbiAgICAgICAgLy8gYXV0aHRva2VuOiB0aGlzLmF1dGhTdmMudG9rZW4sXHJcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1ub24tbnVsbC1hc3NlcnRpb25cclxuICAgICAgICBjaGFubmVsOiB0aGlzLnJvb3RPcmdJZCB8fCB0aGlzLnRlbGVtZXRyeUNvbmZpZy5jaGFubmVsLFxyXG4gICAgICAgIHNpZDogdGhpcy5nZXRUZWxlbWV0cnlTZXNzaW9uSWQsXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5wRGF0YSA9IHRoaXMudGVsZW1ldHJ5Q29uZmlnLnBkYXRhXHJcbiAgICAgIHRoaXMuYWRkUGxheWVyTGlzdGVuZXIoKVxyXG4gICAgICB0aGlzLmFkZEN1c3RvbUV2ZW50TGlzdGVuZXIoKVxyXG4gICAgICB0aGlzLmFkZEludGVyYWN0TGlzdGVuZXIoKVxyXG4gICAgICB0aGlzLmFkZEZlZWRiYWNrTGlzdGVuZXIoKVxyXG4gICAgICB0aGlzLmFkZFRpbWVTcGVudExpc3RlbmVyKClcclxuICAgICAgdGhpcy5hZGRTZWFyY2hMaXN0ZW5lcigpXHJcbiAgICAgIHRoaXMuYWRkSGVhcmJlYXRMaXN0ZW5lcigpXHJcbiAgICAgIHRoaXMuYWRkQ3VzdG9tSW1wcmVzc2lvbkxpc3RlbmVyKClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBnZXRUZWxlbWV0cnlTZXNzaW9uSWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGVsZW1ldHJ5U2Vzc2lvbklkJykgfHwgJydcclxuICB9XHJcblxyXG4gIGdldCByb290T3JnSWQoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZ1N2YyAmJiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZSAmJiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS5yb290T3JnSWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnJvb3RPcmdJZFxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG5cclxuICBzdGFydChlZGF0YTogYW55LCBkYXRhOiBhbnksIHBhZ2VDb250ZXh0PzogV3NFdmVudHMuSVRlbGVtZXRyeVBhZ2VDb250ZXh0KSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAodGhpcy50ZWxlbWV0cnlDb25maWcpIHtcclxuICAgICAgICAkdC5zdGFydChcclxuICAgICAgICAgIHRoaXMudGVsZW1ldHJ5Q29uZmlnLFxyXG4gICAgICAgICAgKHBhZ2VDb250ZXh0ICYmIHBhZ2VDb250ZXh0LnBhZ2VJZCkgP1xyXG4gICAgICAgICAgICBwYWdlQ29udGV4dC5wYWdlSWRcclxuICAgICAgICAgICAgOiAnJyxcclxuICAgICAgICAgICcxLjAnLFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICAvLyBpZCxcclxuICAgICAgICAgICAgdHlwZTogZWRhdGEudHlwZSxcclxuICAgICAgICAgICAgbW9kZTogZWRhdGEubW9kZSxcclxuICAgICAgICAgICAgcGFnZWlkOiAocGFnZUNvbnRleHQgJiYgcGFnZUNvbnRleHQucGFnZUlkKSA/XHJcbiAgICAgICAgICAgICAgcGFnZUNvbnRleHQucGFnZUlkXHJcbiAgICAgICAgICAgICAgOiAnJyxcclxuICAgICAgICAgICAgZHVyYXRpb246IDEsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgcGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIC4uLnRoaXMucERhdGEsXHJcbiAgICAgICAgICAgICAgICBpZDogdGhpcy5wRGF0YS5pZCxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIC4uLihwYWdlQ29udGV4dCAmJiBwYWdlQ29udGV4dC5tb2R1bGUgPyB7IGVudjogcGFnZUNvbnRleHQubW9kdWxlIH0gOiBudWxsKSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb2JqZWN0OiB7XHJcbiAgICAgICAgICAgICAgLi4uKGRhdGEpICYmIGRhdGEsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdFcnJvciBJbml0aWFsaXppbmcgVGVsZW1ldHJ5LiBDb25maWcgbWlzc2luZy4nKVxyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxyXG4gICAgICBjb25zb2xlLmxvZygnRXJyb3IgaW4gdGVsZW1ldHJ5IHN0YXJ0JywgZSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGVuZChlZGF0YTogYW55LCBkYXRhOiBhbnksIHBhZ2VDb250ZXh0PzogV3NFdmVudHMuSVRlbGVtZXRyeVBhZ2VDb250ZXh0KSB7XHJcbiAgICB0cnkge1xyXG4gICAgICAkdC5lbmQoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZTogZWRhdGEudHlwZSxcclxuICAgICAgICAgIG1vZGU6IGVkYXRhLm1vZGUsXHJcbiAgICAgICAgICBwYWdlaWQ6IChwYWdlQ29udGV4dCAmJiBwYWdlQ29udGV4dC5wYWdlSWQpID9cclxuICAgICAgICAgICAgcGFnZUNvbnRleHQucGFnZUlkXHJcbiAgICAgICAgICAgIDogJycsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgIHBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgLi4udGhpcy5wRGF0YSxcclxuICAgICAgICAgICAgICBpZDogdGhpcy5wRGF0YS5pZCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLi4uKHBhZ2VDb250ZXh0ICYmIHBhZ2VDb250ZXh0Lm1vZHVsZSA/IHsgZW52OiBwYWdlQ29udGV4dC5tb2R1bGUgfSA6IG51bGwpLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9iamVjdDoge1xyXG4gICAgICAgICAgICAuLi4oZGF0YSkgJiYgZGF0YSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgKVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWNvbnNvbGVcclxuICAgICAgY29uc29sZS5sb2coJ0Vycm9yIGluIHRlbGVtZXRyeSBlbmQnLCBlKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXVkaXQodHlwZTogc3RyaW5nLCBwcm9wczogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgICR0LmF1ZGl0KFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHR5cGUsXHJcbiAgICAgICAgICBwcm9wcyxcclxuICAgICAgICAgIC8vIGRhdGEsXHJcbiAgICAgICAgICBzdGF0ZTogZGF0YSwgLy8gT3B0aW9uYWwuIEN1cnJlbnQgU3RhdGVcclxuICAgICAgICAgIHByZXZzdGF0ZTogJycsIC8vIE9wdGlvbmFsLiBQcmV2aW91cyBTdGF0ZVxyXG4gICAgICAgICAgZHVyYXRpb246ICcnLCAvLyBPcHRpb25hbC5cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgcGRhdGE6IHtcclxuICAgICAgICAgICAgICAuLi50aGlzLnBEYXRhLFxyXG4gICAgICAgICAgICAgIGlkOiB0aGlzLnBEYXRhLmlkLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICApXHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxyXG4gICAgICBjb25zb2xlLmxvZygnRXJyb3IgaW4gdGVsZW1ldHJ5IGF1ZGl0JywgZSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhlYXJ0YmVhdCh0eXBlOiBzdHJpbmcsIGlkOiBzdHJpbmcpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgICR0LmhlYXJ0YmVhdCh7XHJcbiAgICAgICAgaWQsXHJcbiAgICAgICAgLy8gbW9kZSxcclxuICAgICAgICB0eXBlLFxyXG4gICAgICB9KVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWNvbnNvbGVcclxuICAgICAgY29uc29sZS5sb2coJ0Vycm9yIGluIHRlbGVtZXRyeSBoZWFydGJlYXQnLCBlKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW1wcmVzc2lvbihkYXRhPzogYW55KSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBwYWdlID0gdGhpcy5nZXRQYWdlRGV0YWlscygpXHJcbiAgICAgIGlmIChkYXRhICYmIGRhdGEucGFnZUNvbnRleHQpIHtcclxuICAgICAgICAvLyBwYWdlLnBhZ2VpZCA9IGRhdGEucGFnZUNvbnRleHQucGFnZUlkXHJcbiAgICAgICAgcGFnZS5tb2R1bGUgPSBkYXRhLnBhZ2VDb250ZXh0Lm1vZHVsZVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGVkYXRhID0ge1xyXG4gICAgICAgIHBhZ2VpZDogcGFnZS5wYWdlaWQsIC8vIFJlcXVpcmVkLiBVbmlxdWUgcGFnZSBpZFxyXG4gICAgICAgIHR5cGU6IHBhZ2UucGFnZVVybFBhcnRzWzBdLCAvLyBSZXF1aXJlZC4gSW1wcmVzc2lvbiB0eXBlIChsaXN0LCBkZXRhaWwsIHZpZXcsIGVkaXQsIHdvcmtmbG93LCBzZWFyY2gpXHJcbiAgICAgICAgdXJpOiBwYWdlLnBhZ2VVcmwsXHJcbiAgICAgIH1cclxuICAgICAgaWYgKHBhZ2Uub2JqZWN0SWQpIHtcclxuICAgICAgICBjb25zdCBjb25maWcgPSB7XHJcbiAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgIHBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgLi4udGhpcy5wRGF0YSxcclxuICAgICAgICAgICAgICBpZDogdGhpcy5wRGF0YS5pZCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZW52OiBwYWdlLm1vZHVsZSB8fCAodGhpcy50ZWxlbWV0cnlDb25maWcgJiYgdGhpcy50ZWxlbWV0cnlDb25maWcuZW52KSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvYmplY3Q6IHtcclxuICAgICAgICAgICAgaWQ6IHBhZ2Uub2JqZWN0SWQsXHJcbiAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBvdmVycmlkZSBhYm92ZSBpZCBpZiB0aGUgZGF0YSBoYXMgb2JqZWN0IGluIGl0LlxyXG4gICAgICAgICAgICAuLi4oKGRhdGEpID8gZGF0YS5vYmplY3QgOiB7fSksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH1cclxuICAgICAgICAkdC5pbXByZXNzaW9uKGVkYXRhLCBjb25maWcpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgJHQuaW1wcmVzc2lvbihlZGF0YSwge1xyXG4gICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICBwZGF0YToge1xyXG4gICAgICAgICAgICAgIC4uLnRoaXMucERhdGEsXHJcbiAgICAgICAgICAgICAgaWQ6IHRoaXMucERhdGEuaWQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVudjogcGFnZS5tb2R1bGUgfHwgJycsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb2JqZWN0OiB7XHJcbiAgICAgICAgICAgIC4uLigoZGF0YSkgPyBkYXRhLm9iamVjdCA6IHt9KSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnByZXZpb3VzVXJsID0gcGFnZS5wYWdlVXJsXHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxyXG4gICAgICBjb25zb2xlLmxvZygnRXJyb3IgaW4gdGVsZW1ldHJ5IGltcHJlc3Npb24nLCBlKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXh0ZXJuYWxJbXByZXNzaW9uKGltcHJlc3Npb25EYXRhOiBhbnkpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHBhZ2UgPSB0aGlzLmdldFBhZ2VEZXRhaWxzKClcclxuICAgICAgaWYgKHRoaXMuZXh0ZXJuYWxBcHBzW2ltcHJlc3Npb25EYXRhLnN1YkFwcGxpY2F0aW9uTmFtZV0pIHtcclxuICAgICAgICBjb25zdCBleHRlcm5hbENvbmZpZyA9IHBhZ2Uub2JqZWN0SWQgPyB7XHJcbiAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgIHBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgLi4udGhpcy5wRGF0YSxcclxuICAgICAgICAgICAgICBpZDogdGhpcy5leHRlcm5hbEFwcHNbaW1wcmVzc2lvbkRhdGEuc3ViQXBwbGljYXRpb25OYW1lXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvYmplY3Q6IHtcclxuICAgICAgICAgICAgaWQ6IHBhZ2Uub2JqZWN0SWQsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0gOiB7XHJcbiAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgIHBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgLi4udGhpcy5wRGF0YSxcclxuICAgICAgICAgICAgICBpZDogdGhpcy5leHRlcm5hbEFwcHNbaW1wcmVzc2lvbkRhdGEuc3ViQXBwbGljYXRpb25OYW1lXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfVxyXG4gICAgICAgICR0LmltcHJlc3Npb24oaW1wcmVzc2lvbkRhdGEuZGF0YSwgZXh0ZXJuYWxDb25maWcpXHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25zb2xlXHJcbiAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBpbiB0ZWxlbWV0cnkgZXh0ZXJuYWxJbXByZXNzaW9uJywgZSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZEN1c3RvbUltcHJlc3Npb25MaXN0ZW5lcigpIHtcclxuICAgIHRoaXMuZXZlbnRzU3ZjLmV2ZW50cyRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgKGV2ZW50OiBXc0V2ZW50cy5Xc0V2ZW50VGVsZW1ldHJ5SW1wcmVzc2lvbikgPT5cclxuICAgICAgICAgICAgZXZlbnQgJiZcclxuICAgICAgICAgICAgZXZlbnQuZGF0YSAmJlxyXG4gICAgICAgICAgICBldmVudC5ldmVudFR5cGUgPT09IFdzRXZlbnRzLldzRXZlbnRUeXBlLlRlbGVtZXRyeSAmJlxyXG4gICAgICAgICAgICBldmVudC5kYXRhLmV2ZW50U3ViVHlwZSA9PT0gV3NFdmVudHMuRW51bVRlbGVtZXRyeVN1YlR5cGUuSW1wcmVzc2lvbixcclxuICAgICAgICApLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnZXZlbnQuZGF0YTo6JywgZXZlbnQuZGF0YSlcclxuICAgICAgICAgIHRoaXMuaW1wcmVzc2lvbihldmVudC5kYXRhKVxyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxyXG4gICAgICAgICAgY29uc29sZS5sb2coJ0Vycm9yIGluIHRlbGVtZXRyeSBpbXByZXNzaW9uJywgZSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBhZGRUaW1lU3BlbnRMaXN0ZW5lcigpIHtcclxuICAgIHRoaXMuZXZlbnRzU3ZjLmV2ZW50cyRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgZXZlbnQgPT5cclxuICAgICAgICAgICAgZXZlbnQgJiZcclxuICAgICAgICAgICAgZXZlbnQuZXZlbnRUeXBlID09PSBXc0V2ZW50cy5Xc0V2ZW50VHlwZS5UZWxlbWV0cnkgJiZcclxuICAgICAgICAgICAgZXZlbnQuZGF0YS50eXBlID09PSBXc0V2ZW50cy5Xc1RpbWVTcGVudFR5cGUuUGFnZSAmJlxyXG4gICAgICAgICAgICBldmVudC5kYXRhLm1vZGUgJiZcclxuICAgICAgICAgICAgZXZlbnQuZGF0YSxcclxuICAgICAgICApLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgIGlmIChldmVudC5kYXRhLnN0YXRlID09PSBXc0V2ZW50cy5FbnVtVGVsZW1ldHJ5U3ViVHlwZS5Mb2FkZWQpIHtcclxuICAgICAgICAgIHRoaXMuc3RhcnQoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBldmVudC5kYXRhLnR5cGUgfHwgV3NFdmVudHMuV3NUaW1lU3BlbnRUeXBlLlBsYXllcixcclxuICAgICAgICAgICAgICBtb2RlOiBldmVudC5kYXRhLm1vZGUgfHwgV3NFdmVudHMuV3NUaW1lU3BlbnRNb2RlLlBsYXksXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICBldmVudC5wYWdlQ29udGV4dFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZXZlbnQuZGF0YS5zdGF0ZSA9PT0gV3NFdmVudHMuRW51bVRlbGVtZXRyeVN1YlR5cGUuVW5sb2FkZWQpIHtcclxuICAgICAgICAgIHRoaXMuZW5kKHtcclxuICAgICAgICAgICAgdHlwZTogZXZlbnQuZGF0YS50eXBlIHx8IFdzRXZlbnRzLldzVGltZVNwZW50VHlwZS5QbGF5ZXIsXHJcbiAgICAgICAgICAgIG1vZGU6IGV2ZW50LmRhdGEubW9kZSB8fCBXc0V2ZW50cy5Xc1RpbWVTcGVudE1vZGUuUGxheSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICB7fSxcclxuICAgICAgICAgICAgICAgICAgIGV2ZW50LnBhZ2VDb250ZXh0XHJcbiAgICAgICAgICApXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgYWRkQ3VzdG9tRXZlbnRMaXN0ZW5lcigpIHtcclxuICAgIHRoaXMuZXZlbnRzU3ZjLmV2ZW50cyRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgZXZlbnQgPT5cclxuICAgICAgICAgICAgZXZlbnQgJiZcclxuICAgICAgICAgICAgZXZlbnQuZXZlbnRUeXBlID09PSBXc0V2ZW50cy5Xc0V2ZW50VHlwZS5UZWxlbWV0cnlcclxuICAgICAgICApLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGV2ZW50LmRhdGEuc3RhdGUgPT09IFdzRXZlbnRzLkVudW1UZWxlbWV0cnlTdWJUeXBlLkxvYWRlZCAmJlxyXG4gICAgICAgICAgZXZlbnQuZGF0YS50eXBlICE9PSBXc0V2ZW50cy5Xc1RpbWVTcGVudFR5cGUuUGxheWVyXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnN0YXJ0KFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogZXZlbnQuZGF0YS50eXBlLFxyXG4gICAgICAgICAgICAgIG1vZGU6IGV2ZW50LmRhdGEubW9kZSB8fCBXc0V2ZW50cy5Xc1RpbWVTcGVudE1vZGUuUGxheSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXZlbnQuZGF0YS5vYmplY3QsXHJcbiAgICAgICAgICAgIGV2ZW50LnBhZ2VDb250ZXh0XHJcbiAgICAgICAgICApXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGV2ZW50LmRhdGEuc3RhdGUgPT09IFdzRXZlbnRzLkVudW1UZWxlbWV0cnlTdWJUeXBlLlVubG9hZGVkICYmXHJcbiAgICAgICAgICBldmVudC5kYXRhLnR5cGUgIT09IFdzRXZlbnRzLldzVGltZVNwZW50VHlwZS5QbGF5ZXJcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMuZW5kKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogZXZlbnQuZGF0YS50eXBlIHx8IFdzRXZlbnRzLldzVGltZVNwZW50VHlwZS5QbGF5ZXIsXHJcbiAgICAgICAgICAgICAgbW9kZTogZXZlbnQuZGF0YS5tb2RlIHx8IFdzRXZlbnRzLldzVGltZVNwZW50TW9kZS5QbGF5LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBldmVudC5kYXRhLm9iamVjdCxcclxuICAgICAgICAgICAgZXZlbnQucGFnZUNvbnRleHRcclxuICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG4gIGFkZFBsYXllckxpc3RlbmVyKCkge1xyXG4gICAgdGhpcy5ldmVudHNTdmMuZXZlbnRzJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoXHJcbiAgICAgICAgICBldmVudCA9PlxyXG4gICAgICAgICAgICBldmVudCAmJlxyXG4gICAgICAgICAgICBldmVudC5ldmVudFR5cGUgPT09IFdzRXZlbnRzLldzRXZlbnRUeXBlLlRlbGVtZXRyeSAmJlxyXG4gICAgICAgICAgICBldmVudC5kYXRhLnR5cGUgPT09IFdzRXZlbnRzLldzVGltZVNwZW50VHlwZS5QbGF5ZXIgJiZcclxuICAgICAgICAgICAgZXZlbnQuZGF0YS5tb2RlICYmXHJcbiAgICAgICAgICAgIGV2ZW50LmRhdGEsXHJcbiAgICAgICAgKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICBjb25zdCBjb250ZW50OiBOc0NvbnRlbnQuSUNvbnRlbnQgfCBudWxsID0gZXZlbnQuZGF0YS5jb250ZW50XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZXZlbnQuZGF0YS5zdGF0ZSA9PT0gV3NFdmVudHMuRW51bVRlbGVtZXRyeVN1YlR5cGUuTG9hZGVkICYmXHJcbiAgICAgICAgICAoIWNvbnRlbnQgfHxcclxuICAgICAgICAgICAgKGNvbnRlbnQuaXNJZnJhbWVTdXBwb3J0ZWQgfHwgJycpLnRvTG93ZXJDYXNlKCkgPT09ICdtYXliZScgfHxcclxuICAgICAgICAgICAgKGNvbnRlbnQuaXNJZnJhbWVTdXBwb3J0ZWQgfHwgJycpLnRvTG93ZXJDYXNlKCkgPT09ICd5ZXMnIHx8XHJcbiAgICAgICAgICAgIChjb250ZW50Lm1pbWVUeXBlID09PSAnYXBwbGljYXRpb24vcGRmJyB8fCAnYXBwbGljYXRpb24vanNvbicpKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy5zdGFydChcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IGV2ZW50LmRhdGEudHlwZSB8fCBXc0V2ZW50cy5Xc1RpbWVTcGVudFR5cGUuUGxheWVyLFxyXG4gICAgICAgICAgICAgIG1vZGU6IGV2ZW50LmRhdGEubW9kZSB8fCBXc0V2ZW50cy5Xc1RpbWVTcGVudE1vZGUuUGxheSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXZlbnQuZGF0YS5vYmplY3QsXHJcbiAgICAgICAgICAgIGV2ZW50LnBhZ2VDb250ZXh0XHJcblxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBldmVudC5kYXRhLnN0YXRlID09PSBXc0V2ZW50cy5FbnVtVGVsZW1ldHJ5U3ViVHlwZS5VbmxvYWRlZCAmJlxyXG4gICAgICAgICAgKCFjb250ZW50IHx8XHJcbiAgICAgICAgICAgIChjb250ZW50LmlzSWZyYW1lU3VwcG9ydGVkIHx8ICcnKS50b0xvd2VyQ2FzZSgpID09PSAnbWF5YmUnIHx8XHJcbiAgICAgICAgICAgIChjb250ZW50LmlzSWZyYW1lU3VwcG9ydGVkIHx8ICcnKS50b0xvd2VyQ2FzZSgpID09PSAneWVzJyB8fFxyXG4gICAgICAgICAgICAoY29udGVudC5taW1lVHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3BkZicgfHwgJ2FwcGxpY2F0aW9uL2pzb24nKSlcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMuZW5kKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogZXZlbnQuZGF0YS50eXBlIHx8IFdzRXZlbnRzLldzVGltZVNwZW50VHlwZS5QbGF5ZXIsXHJcbiAgICAgICAgICAgICAgbW9kZTogZXZlbnQuZGF0YS5tb2RlIHx8IFdzRXZlbnRzLldzVGltZVNwZW50TW9kZS5QbGF5LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBldmVudC5kYXRhLm9iamVjdCxcclxuICAgICAgICAgICAgZXZlbnQucGFnZUNvbnRleHRcclxuICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBhZGRJbnRlcmFjdExpc3RlbmVyKCkge1xyXG4gICAgdGhpcy5ldmVudHNTdmMuZXZlbnRzJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoXHJcbiAgICAgICAgICAoZXZlbnQ6IFdzRXZlbnRzLldzRXZlbnRUZWxlbWV0cnlJbnRlcmFjdCkgPT5cclxuICAgICAgICAgICAgZXZlbnQgJiZcclxuICAgICAgICAgICAgZXZlbnQuZGF0YSAmJlxyXG4gICAgICAgICAgICBldmVudC5ldmVudFR5cGUgPT09IFdzRXZlbnRzLldzRXZlbnRUeXBlLlRlbGVtZXRyeSAmJlxyXG4gICAgICAgICAgICBldmVudC5kYXRhLmV2ZW50U3ViVHlwZSA9PT0gV3NFdmVudHMuRW51bVRlbGVtZXRyeVN1YlR5cGUuSW50ZXJhY3QsXHJcbiAgICAgICAgKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICBjb25zdCBwYWdlID0gdGhpcy5nZXRQYWdlRGV0YWlscygpXHJcbiAgICAgICAgaWYgKHR5cGVvZiBldmVudC5mcm9tID09PSAnc3RyaW5nJyAmJiB0aGlzLmV4dGVybmFsQXBwc1tldmVudC5mcm9tXSkge1xyXG4gICAgICAgICAgY29uc3QgZXh0ZXJuYWxDb25maWcgPSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICBwZGF0YToge1xyXG4gICAgICAgICAgICAgICAgLi4udGhpcy5wRGF0YSxcclxuICAgICAgICAgICAgICAgIGlkOiB0aGlzLmV4dGVybmFsQXBwc1tldmVudC5mcm9tXSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgJHQuaW50ZXJhY3QoZXZlbnQuZGF0YSwgZXh0ZXJuYWxDb25maWcpXHJcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnRXJyb3IgaW4gdGVsZW1ldHJ5IGludGVyYWN0JywgZSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gbGV0IGludGVyYWN0aWRcclxuICAgICAgICAgIC8vIGlmIChldmVudC5kYXRhLmVkYXRhLnR5cGUgPT09ICdnb2FsJykge1xyXG4gICAgICAgICAgLy8gICBpbnRlcmFjdGlkID0gcGFnZS5wYWdlVXJsUGFydHNbNF1cclxuICAgICAgICAgIC8vIH1cclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICR0LmludGVyYWN0KFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IGV2ZW50LmRhdGEuZWRhdGEudHlwZSxcclxuICAgICAgICAgICAgICAgIHN1YnR5cGU6IGV2ZW50LmRhdGEuZWRhdGEuc3ViVHlwZSxcclxuICAgICAgICAgICAgICAgIC8vIG9iamVjdDogZXZlbnQuZGF0YS5vYmplY3QsXHJcbiAgICAgICAgICAgICAgICBpZDogKGV2ZW50LmRhdGEuZWRhdGEgJiYgZXZlbnQuZGF0YS5lZGF0YS5pZCkgP1xyXG4gICAgICAgICAgICAgICAgICBldmVudC5kYXRhLmVkYXRhLmlkXHJcbiAgICAgICAgICAgICAgICAgIDogJycsXHJcbiAgICAgICAgICAgICAgICBwYWdlaWQ6IGV2ZW50LmRhdGEucGFnZUNvbnRleHQgJiYgZXZlbnQuZGF0YS5wYWdlQ29udGV4dC5wYWdlSWQgfHwgcGFnZS5wYWdlaWQsXHJcbiAgICAgICAgICAgICAgICAvLyB0YXJnZXQ6IHsgcGFnZSB9LFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgICBwZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMucERhdGEsXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHRoaXMucERhdGEuaWQsXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIC4uLihldmVudC5kYXRhLnBhZ2VDb250ZXh0ICYmIGV2ZW50LmRhdGEucGFnZUNvbnRleHQubW9kdWxlID8geyBlbnY6IGV2ZW50LmRhdGEucGFnZUNvbnRleHQubW9kdWxlIH0gOiBudWxsKSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBvYmplY3Q6IHtcclxuICAgICAgICAgICAgICAgICAgLi4uZXZlbnQuZGF0YS5vYmplY3QsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnRXJyb3IgaW4gdGVsZW1ldHJ5IGludGVyYWN0JywgZSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBhZGRGZWVkYmFja0xpc3RlbmVyKCkge1xyXG4gICAgdGhpcy5ldmVudHNTdmMuZXZlbnRzJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoXHJcbiAgICAgICAgICAoZXZlbnQ6IFdzRXZlbnRzLldzRXZlbnRUZWxlbWV0cnlGZWVkYmFjaykgPT5cclxuICAgICAgICAgICAgZXZlbnQgJiZcclxuICAgICAgICAgICAgZXZlbnQuZGF0YSAmJlxyXG4gICAgICAgICAgICBldmVudC5ldmVudFR5cGUgPT09IFdzRXZlbnRzLldzRXZlbnRUeXBlLlRlbGVtZXRyeSAmJlxyXG4gICAgICAgICAgICBldmVudC5kYXRhLmV2ZW50U3ViVHlwZSA9PT0gV3NFdmVudHMuRW51bVRlbGVtZXRyeVN1YlR5cGUuRmVlZGJhY2ssXHJcbiAgICAgICAgKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICBjb25zdCBwYWdlID0gdGhpcy5nZXRQYWdlRGV0YWlscygpXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICR0LmZlZWRiYWNrKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgcmF0aW5nOiBldmVudC5kYXRhLm9iamVjdC5yYXRpbmcgfHwgMCxcclxuICAgICAgICAgICAgICBjb21tZW50aWQ6IGV2ZW50LmRhdGEub2JqZWN0LmNvbW1lbnRpZCB8fCAnJyxcclxuICAgICAgICAgICAgICBjb21tZW50dHh0OiBldmVudC5kYXRhLm9iamVjdC5jb21tZW50dHh0IHx8ICcnLFxyXG4gICAgICAgICAgICAgIHBhZ2VpZDogcGFnZS5wYWdlaWQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICBwZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAuLi50aGlzLnBEYXRhLFxyXG4gICAgICAgICAgICAgICAgICBpZDogdGhpcy5wRGF0YS5pZCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBvYmplY3Q6IHtcclxuICAgICAgICAgICAgICAgIGlkOiBldmVudC5kYXRhLm9iamVjdC5jb250ZW50SWQgfHwgZXZlbnQuZGF0YS5vYmplY3QuaWQgfHwgJycsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBldmVudC5kYXRhLmVkYXRhLnR5cGUgfHwgJycsXHJcbiAgICAgICAgICAgICAgICB2ZXI6IGAkeyhldmVudC5kYXRhLm9iamVjdC52ZXJzaW9uIHx8ICcxJyl9JHsnJ31gLFxyXG4gICAgICAgICAgICAgICAgcm9sbHVwOiB7fSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxyXG4gICAgICAgICAgY29uc29sZS5sb2coJ0Vycm9yIGluIHRlbGVtZXRyeSBpbnRlcmFjdCcsIGUpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgYWRkSGVhcmJlYXRMaXN0ZW5lcigpIHtcclxuICAgIHRoaXMuZXZlbnRzU3ZjLmV2ZW50cyRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgKGV2ZW50OiBXc0V2ZW50cy5Xc0V2ZW50VGVsZW1ldHJ5SGVhcnRCZWF0KSA9PlxyXG4gICAgICAgICAgICBldmVudCAmJlxyXG4gICAgICAgICAgICBldmVudC5kYXRhICYmXHJcbiAgICAgICAgICAgIGV2ZW50LmV2ZW50VHlwZSA9PT0gV3NFdmVudHMuV3NFdmVudFR5cGUuVGVsZW1ldHJ5ICYmXHJcbiAgICAgICAgICAgIGV2ZW50LmRhdGEuZXZlbnRTdWJUeXBlID09PSBXc0V2ZW50cy5FbnVtVGVsZW1ldHJ5U3ViVHlwZS5IZWFydEJlYXQsXHJcbiAgICAgICAgKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICBpZiAodHlwZW9mIGV2ZW50LmZyb20gPT09ICdzdHJpbmcnICYmIHRoaXMuZXh0ZXJuYWxBcHBzW2V2ZW50LmZyb21dKSB7XHJcbiAgICAgICAgICBjb25zdCBleHRlcm5hbENvbmZpZyA9IHtcclxuICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgIHBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAuLi50aGlzLnBEYXRhLFxyXG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuZXh0ZXJuYWxBcHBzW2V2ZW50LmZyb21dLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAkdC5oZWFydGJlYXQoZXZlbnQuZGF0YSwgZXh0ZXJuYWxDb25maWcpXHJcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnRXJyb3IgaW4gdGVsZW1ldHJ5IGhlYXJ0YmVhdCcsIGUpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICR0LmhlYXJ0YmVhdChcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBldmVudC5kYXRhLnR5cGUsXHJcbiAgICAgICAgICAgICAgICAvLyBzdWJ0eXBlOiBldmVudC5kYXRhLmV2ZW50U3ViVHlwZSxcclxuICAgICAgICAgICAgICAgIGlkOiBldmVudC5kYXRhLmlkLFxyXG4gICAgICAgICAgICAgICAgLy8gbWltZVR5cGU6IGV2ZW50LmRhdGEubWltZVR5cGUsXHJcbiAgICAgICAgICAgICAgICAvLyBtb2RlOiBldmVudC5kYXRhLm1vZGUsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgIHBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5wRGF0YSxcclxuICAgICAgICAgICAgICAgICAgICBpZDogdGhpcy5wRGF0YS5pZCxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25zb2xlXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBpbiB0ZWxlbWV0cnkgaGVhcnRiZWF0JywgZSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBhZGRTZWFyY2hMaXN0ZW5lcigpIHtcclxuICAgIHRoaXMuZXZlbnRzU3ZjLmV2ZW50cyRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgKGV2ZW50OiBXc0V2ZW50cy5Xc0V2ZW50VGVsZW1ldHJ5U2VhcmNoKSA9PlxyXG4gICAgICAgICAgICBldmVudCAmJlxyXG4gICAgICAgICAgICBldmVudC5kYXRhICYmXHJcbiAgICAgICAgICAgIGV2ZW50LmV2ZW50VHlwZSA9PT0gV3NFdmVudHMuV3NFdmVudFR5cGUuVGVsZW1ldHJ5ICYmXHJcbiAgICAgICAgICAgIGV2ZW50LmRhdGEuZXZlbnRTdWJUeXBlID09PSBXc0V2ZW50cy5FbnVtVGVsZW1ldHJ5U3ViVHlwZS5TZWFyY2gsXHJcbiAgICAgICAgKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgJHQuc2VhcmNoKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgcXVlcnk6IGV2ZW50LmRhdGEucXVlcnksXHJcbiAgICAgICAgICAgICAgZmlsdGVyczogZXZlbnQuZGF0YS5maWx0ZXJzLFxyXG4gICAgICAgICAgICAgIHNpemU6IGV2ZW50LmRhdGEuc2l6ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgIHBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgIC4uLnRoaXMucERhdGEsXHJcbiAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLnBEYXRhLmlkLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxyXG4gICAgICAgICAgY29uc29sZS5sb2coJ0Vycm9yIGluIHRlbGVtZXRyeSBzZWFyY2gnLCBlKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGdldFBhZ2VEZXRhaWxzKCkge1xyXG4gICAgY29uc3QgcGF0aCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKCcvJywgJycpXHJcbiAgICBjb25zdCB1cmwgPSBwYXRoICsgd2luZG93LmxvY2F0aW9uLnNlYXJjaFxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcGFnZWlkOiBwYXRoLFxyXG4gICAgICBwYWdlVXJsOiB1cmwsXHJcbiAgICAgIHBhZ2VVcmxQYXJ0czogcGF0aC5zcGxpdCgnLycpLFxyXG4gICAgICByZWZmZXJVcmw6IHRoaXMucHJldmlvdXNVcmwsXHJcbiAgICAgIG9iamVjdElkOiB0aGlzLmV4dHJhY3RDb250ZW50SWRGcm9tVXJsUGFydHMocGF0aC5zcGxpdCgnLycpKSxcclxuICAgICAgbW9kdWxlOiAnJyxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV4dHJhY3RDb250ZW50SWRGcm9tVXJsUGFydHModXJsUGFydHM6IHN0cmluZ1tdKSB7XHJcbiAgICAvLyBUT0RPOiBwaWNrIHRvYyBhbmQgdmlld2VyIHVybCBmcm9tIHNvbWUgY29uZmlndXJhdGlvblxyXG4gICAgY29uc3QgdG9jSWR4ID0gdXJsUGFydHMuaW5kZXhPZigndG9jJylcclxuICAgIGNvbnN0IHZpZXdlcklkeCA9IHVybFBhcnRzLmluZGV4T2YoJ3ZpZXdlcicpXHJcblxyXG4gICAgaWYgKHRvY0lkeCA9PT0gLTEgJiYgdmlld2VySWR4ID09PSAtMSkge1xyXG4gICAgICByZXR1cm4gbnVsbFxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0b2NJZHggIT09IC0xICYmIHRvY0lkeCA8IHVybFBhcnRzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgcmV0dXJuIHVybFBhcnRzW3RvY0lkeCArIDFdIC8vIGUuZy4gdXJsIC9hcHAvdG9jLzxjb250ZW50X2lkPlxyXG4gICAgfVxyXG5cclxuICAgIGlmICh2aWV3ZXJJZHggIT09IC0xICYmIHZpZXdlcklkeCA8IHVybFBhcnRzLmxlbmd0aCAtIDIpIHtcclxuICAgICAgcmV0dXJuIHVybFBhcnRzW3ZpZXdlcklkeCArIDJdIC8vIGUuZy4gdXJsIC9hcHAvdmlld2VyLzxjb250ZW50X3R5cGU+Lzxjb250ZW50X2lkPlxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsXHJcbiAgfVxyXG59XHJcbiJdfQ==
437
+ /** @nocollapse */ TelemetryService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function TelemetryService_Factory() { return new TelemetryService(i0.ɵɵinject("environment"), i0.ɵɵinject(i1.ConfigurationsService), i0.ɵɵinject(i2.EventService), i0.ɵɵinject(i3.LoggerService)); }, token: TelemetryService, providedIn: "root" });
438
+ if (false) {
439
+ TelemetryService.prototype.previousUrl;
440
+ TelemetryService.prototype.telemetryConfig;
441
+ TelemetryService.prototype.pData;
442
+ TelemetryService.prototype.contextCdata;
443
+ TelemetryService.prototype.environment;
444
+ TelemetryService.prototype.externalApps;
445
+ TelemetryService.prototype.configSvc;
446
+ TelemetryService.prototype.eventsSvc;
447
+ TelemetryService.prototype.logger;
448
+ }
449
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsZW1ldHJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3VuYmlyZC1jYi91dGlscy8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy90ZWxlbWV0cnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHdkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFBOzs7OztBQVFoRCxNQUFNLE9BQU8sZ0JBQWdCO0lBVTNCLFlBQ3lCLFdBQWdCLEVBQy9CLFNBQWdDLEVBQ2hDLFNBQXVCLEVBRXZCLE1BQXFCO1FBSHJCLGNBQVMsR0FBVCxTQUFTLENBQXVCO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFFdkIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQWQvQixnQkFBVyxHQUFrQixJQUFJLENBQUE7UUFDakMsb0JBQWUsR0FBNkMsSUFBSSxDQUFBO1FBQ2hFLFVBQUssR0FBUSxJQUFJLENBQUE7UUFDakIsaUJBQVksR0FBRyxFQUFFLENBQUE7UUFHakIsaUJBQVksR0FBUTtZQUNsQixJQUFJLEVBQUUsYUFBYTtTQUNwQixDQUFBO1FBUUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUE7Y0FDeEIsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYztRQUNwRCxJQUFJLGNBQWMsRUFBRTtZQUNsQixJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQyxlQUFlLENBQUE7WUFDckQsSUFBSSxDQUFDLGVBQWUs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QUFDLENBQUMsSUFBSSxTQUFTLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUVELElBQUksTUFBTSxLQUFLLENBQUMsQ0FBQyxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqRCxPQUFPLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7U0FDNUI7UUFFRCxJQUFJLFNBQVMsS0FBSyxDQUFDLENBQUMsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkQsT0FBTyxRQUFRLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFBO1NBQy9CO1FBRUQsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDOzs7WUExbUJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OzRDQVlJLE1BQU0sU0FBQyxhQUFhO1lBdEJoQixxQkFBcUI7WUFFckIsWUFBWTtZQUNaLGFBQWE7Ozs7SUFTcEIsdUNBQWlDO0lBQ2pDLDJDQUFnRTtJQUNoRSxpQ0FBaUI7SUFDakIsd0NBQWlCO0lBQ2pCLHVDQUFnQjtJQUVoQix3Q0FFQztJQUdDLHFDQUF3QztJQUN4QyxxQ0FBK0I7SUFFL0Isa0NBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbi8vIGltcG9ydCB7IEF1dGhLZXljbG9ha1NlcnZpY2UgfSBmcm9tICcuL2F1dGgta2V5Y2xvYWsuc2VydmljZSdcclxuaW1wb3J0IHsgTnNJbnN0YW5jZUNvbmZpZyB9IGZyb20gJy4vY29uZmlndXJhdGlvbnMubW9kZWwnXHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zU2VydmljZSB9IGZyb20gJy4vY29uZmlndXJhdGlvbnMuc2VydmljZSdcclxuaW1wb3J0IHsgV3NFdmVudHMgfSBmcm9tICcuL2V2ZW50Lm1vZGVsJ1xyXG5pbXBvcnQgeyBFdmVudFNlcnZpY2UgfSBmcm9tICcuL2V2ZW50LnNlcnZpY2UnXHJcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuL2xvZ2dlci5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBOc0NvbnRlbnQgfSBmcm9tICcuL3dpZGdldC1jb250ZW50Lm1vZGVsJ1xyXG5cclxuZGVjbGFyZSB2YXIgJHQ6IGFueVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRlbGVtZXRyeVNlcnZpY2Uge1xyXG4gIHByZXZpb3VzVXJsOiBzdHJpbmcgfCBudWxsID0gbnVsbFxyXG4gIHRlbGVtZXRyeUNvbmZpZzogTnNJbnN0YW5jZUNvbmZpZy5JVGVsZW1ldHJ5Q29uZmlnIHwgbnVsbCA9IG51bGxcclxuICBwRGF0YTogYW55ID0gbnVsbFxyXG4gIGNvbnRleHRDZGF0YSA9IFtdXHJcbiAgZW52aXJvbm1lbnQ6IGFueVxyXG5cclxuICBleHRlcm5hbEFwcHM6IGFueSA9IHtcclxuICAgIFJCQ1A6ICdyYmNwLXdlYi11aScsXHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBlbnZpcm9ubWVudDogYW55LFxyXG4gICAgcHJpdmF0ZSBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgZXZlbnRzU3ZjOiBFdmVudFNlcnZpY2UsXHJcbiAgICAvLyBwcml2YXRlIGF1dGhTdmM6IEF1dGhLZXljbG9ha1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcclxuICApIHtcclxuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudFxyXG4gICAgY29uc3QgaW5zdGFuY2VDb25maWcgPSB0aGlzLmNvbmZpZ1N2Yy5pbnN0YW5jZUNvbmZpZ1xyXG4gICAgaWYgKGluc3RhbmNlQ29uZmlnKSB7XHJcbiAgICAgIHRoaXMudGVsZW1ldHJ5Q29uZmlnID0gaW5zdGFuY2VDb25maWcudGVsZW1ldHJ5Q29uZmlnXHJcbiAgICAgIHRoaXMudGVsZW1ldHJ5Q29uZmlnID0ge1xyXG4gICAgICAgIC4uLnRoaXMudGVsZW1ldHJ5Q29uZmlnLFxyXG4gICAgICAgIHBkYXRhOiB7XHJcbiAgICAgICAgICAuLi50aGlzLnRlbGVtZXRyeUNvbmZpZy5wZGF0YSxcclxuICAgICAgICAgIC8vIHBpZDogbmF2aWdhdG9yLnVzZXJBZ2VudCxcclxuICAgICAgICAgIGlkOiBgJHtlbnZpcm9ubWVudC5uYW1lfS4ke3RoaXMudGVsZW1ldHJ5Q29uZmlnLnBkYXRhLmlkfWAsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB1aWQ6IHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlICYmIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnVzZXJJZCxcclxuICAgICAgICAvLyBhdXRodG9rZW46IHRoaXMuYXV0aFN2Yy50b2tlbixcclxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgICAgIGNoYW5uZWw6IHRoaXMucm9vdE9yZ0lkIHx8IHRoaXMudGVsZW1ldHJ5Q29uZmlnLmNoYW5uZWwsXHJcbiAgICAgICAgc2lkOiB0aGlzLmdldFRlbGVtZXRyeVNlc3Npb25JZCxcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnBEYXRhID0gdGhpcy50ZWxlbWV0cnlDb25maWcucGRhdGFcclxuICAgICAgdGhpcy5hZGRQbGF5ZXJMaXN0ZW5lcigpXHJcbiAgICAgIHRoaXMuYWRkQ3VzdG9tRXZlbnRMaXN0ZW5lcigpXHJcbiAgICAgIHRoaXMuYWRkSW50ZXJhY3RMaXN0ZW5lcigpXHJcbiAgICAgIHRoaXMuYWRkRmVlZGJhY2tMaXN0ZW5lcigpXHJcbiAgICAgIHRoaXMuYWRkVGltZVNwZW50TGlzdGVuZXIoKVxyXG4gICAgICB0aGlzLmFkZFNlYXJjaExpc3RlbmVyKClcclxuICAgICAgdGhpcy5hZGRIZWFyYmVhdExpc3RlbmVyKClcclxuICAgICAgdGhpcy5hZGRDdXN0b21JbXByZXNzaW9uTGlzdGVuZXIoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGdldFRlbGVtZXRyeVNlc3Npb25JZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0ZWxlbWV0cnlTZXNzaW9uSWQnKSB8fCAnJ1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJvb3RPcmdJZCgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnU3ZjICYmIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlICYmIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnJvb3RPcmdJZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUucm9vdE9yZ0lkXHJcbiAgICB9XHJcbiAgICByZXR1cm4gJydcclxuICB9XHJcblxyXG4gIHN0YXJ0KGVkYXRhOiBhbnksIGRhdGE6IGFueSwgcGFnZUNvbnRleHQ/OiBXc0V2ZW50cy5JVGVsZW1ldHJ5UGFnZUNvbnRleHQpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICh0aGlzLnRlbGVtZXRyeUNvbmZpZykge1xyXG4gICAgICAgICR0LnN0YXJ0KFxyXG4gICAgICAgICAgdGhpcy50ZWxlbWV0cnlDb25maWcsXHJcbiAgICAgICAgICAocGFnZUNvbnRleHQgJiYgcGFnZUNvbnRleHQucGFnZUlkKSA/XHJcbiAgICAgICAgICAgIHBhZ2VDb250ZXh0LnBhZ2VJZFxyXG4gICAgICAgICAgICA6ICcnLFxyXG4gICAgICAgICAgJzEuMCcsXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vIGlkLFxyXG4gICAgICAgICAgICB0eXBlOiBlZGF0YS50eXBlLFxyXG4gICAgICAgICAgICBtb2RlOiBlZGF0YS5tb2RlLFxyXG4gICAgICAgICAgICBwYWdlaWQ6IChwYWdlQ29udGV4dCAmJiBwYWdlQ29udGV4dC5wYWdlSWQpID9cclxuICAgICAgICAgICAgICBwYWdlQ29udGV4dC5wYWdlSWRcclxuICAgICAgICAgICAgICA6ICcnLFxyXG4gICAgICAgICAgICBkdXJhdGlvbjogMSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICBwZGF0YToge1xyXG4gICAgICAgICAgICAgICAgLi4udGhpcy5wRGF0YSxcclxuICAgICAgICAgICAgICAgIGlkOiB0aGlzLnBEYXRhLmlkLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgLi4uKHBhZ2VDb250ZXh0ICYmIHBhZ2VDb250ZXh0Lm1vZHVsZSA/IHsgZW52OiBwYWdlQ29udGV4dC5tb2R1bGUgfSA6IG51bGwpLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBvYmplY3Q6IHtcclxuICAgICAgICAgICAgICAuLi4oZGF0YSkgJiYgZGF0YSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH1cclxuICAgICAgICApXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0Vycm9yIEluaXRpYWxpemluZyBUZWxlbWV0cnkuIENvbmZpZyBtaXNzaW5nLicpXHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25zb2xlXHJcbiAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBpbiB0ZWxlbWV0cnkgc3RhcnQnLCBlKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZW5kKGVkYXRhOiBhbnksIGRhdGE6IGFueSwgcGFnZUNvbnRleHQ/OiBXc0V2ZW50cy5JVGVsZW1ldHJ5UGFnZUNvbnRleHQpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgICR0LmVuZChcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0eXBlOiBlZGF0YS50eXBlLFxyXG4gICAgICAgICAgbW9kZTogZWRhdGEubW9kZSxcclxuICAgICAgICAgIHBhZ2VpZDogKHBhZ2VDb250ZXh0ICYmIHBhZ2VDb250ZXh0LnBhZ2VJZCkgP1xyXG4gICAgICAgICAgICBwYWdlQ29udGV4dC5wYWdlSWRcclxuICAgICAgICAgICAgOiAnJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgcGRhdGE6IHtcclxuICAgICAgICAgICAgICAuLi50aGlzLnBEYXRhLFxyXG4gICAgICAgICAgICAgIGlkOiB0aGlzLnBEYXRhLmlkLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAuLi4ocGFnZUNvbnRleHQgJiYgcGFnZUNvbnRleHQubW9kdWxlID8geyBlbnY6IHBhZ2VDb250ZXh0Lm1vZHVsZSB9IDogbnVsbCksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb2JqZWN0OiB7XHJcbiAgICAgICAgICAgIC4uLihkYXRhKSAmJiBkYXRhLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICApXHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxyXG4gICAgICBjb25zb2xlLmxvZygnRXJyb3IgaW4gdGVsZW1ldHJ5IGVuZCcsIGUpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhdWRpdCh0eXBlOiBzdHJpbmcsIHByb3BzOiBzdHJpbmcsIGRhdGE6IGFueSkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgJHQuYXVkaXQoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZSxcclxuICAgICAgICAgIHByb3BzLFxyXG4gICAgICAgICAgLy8gZGF0YSxcclxuICAgICAgICAgIHN0YXRlOiBkYXRhLCAvLyBPcHRpb25hbC4gQ3VycmVudCBTdGF0ZVxyXG4gICAgICAgICAgcHJldnN0YXRlOiAnJywgLy8gT3B0aW9uYWwuIFByZXZpb3VzIFN0YXRlXHJcbiAgICAgICAgICBkdXJhdGlvbjogJycsIC8vIE9wdGlvbmFsLlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICBwZGF0YToge1xyXG4gICAgICAgICAgICAgIC4uLnRoaXMucERhdGEsXHJcbiAgICAgICAgICAgICAgaWQ6IHRoaXMucERhdGEuaWQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIClcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25zb2xlXHJcbiAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBpbiB0ZWxlbWV0cnkgYXVkaXQnLCBlKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGVhcnRiZWF0KHR5cGU6IHN0cmluZywgaWQ6IHN0cmluZykge1xyXG4gICAgdHJ5IHtcclxuICAgICAgJHQuaGVhcnRiZWF0KHtcclxuICAgICAgICBpZCxcclxuICAgICAgICAvLyBtb2RlLFxyXG4gICAgICAgIHR5cGUsXHJcbiAgICAgIH0pXHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxyXG4gICAgICBjb25zb2xlLmxvZygnRXJyb3IgaW4gdGVsZW1ldHJ5IGhlYXJ0YmVhdCcsIGUpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbXByZXNzaW9uKGRhdGE/OiBhbnkpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHBhZ2UgPSB0aGlzLmdldFBhZ2VEZXRhaWxzKClcclxuICAgICAgaWYgKGRhdGEgJiYgZGF0YS5wYWdlQ29udGV4dCkge1xyXG4gICAgICAgIC8vIHBhZ2UucGFnZWlkID0gZGF0YS5wYWdlQ29udGV4dC5wYWdlSWRcclxuICAgICAgICBwYWdlLm1vZHVsZSA9IGRhdGEucGFnZUNvbnRleHQubW9kdWxlXHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZWRhdGEgPSB7XHJcbiAgICAgICAgcGFnZWlkOiBwYWdlLnBhZ2VpZCwgLy8gUmVxdWlyZWQuIFVuaXF1ZSBwYWdlIGlkXHJcbiAgICAgICAgdHlwZTogcGFnZS5wYWdlVXJsUGFydHNbMF0sIC8vIFJlcXVpcmVkLiBJbXByZXNzaW9uIHR5cGUgKGxpc3QsIGRldGFpbCwgdmlldywgZWRpdCwgd29ya2Zsb3csIHNlYXJjaClcclxuICAgICAgICB1cmk6IHBhZ2UucGFnZVVybCxcclxuICAgICAgfVxyXG4gICAgICBpZiAocGFnZS5vYmplY3RJZCkge1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcclxuICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgcGRhdGE6IHtcclxuICAgICAgICAgICAgICAuLi50aGlzLnBEYXRhLFxyXG4gICAgICAgICAgICAgIGlkOiB0aGlzLnBEYXRhLmlkLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlbnY6IHBhZ2UubW9kdWxlIHx8ICh0aGlzLnRlbGVtZXRyeUNvbmZpZyAmJiB0aGlzLnRlbGVtZXRyeUNvbmZpZy5lbnYpLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9iamVjdDoge1xyXG4gICAgICAgICAgICBpZDogcGFnZS5vYmplY3RJZCxcclxuICAgICAgICAgICAgLy8gVGhpcyB3aWxsIG92ZXJyaWRlIGFib3ZlIGlkIGlmIHRoZSBkYXRhIGhhcyBvYmplY3QgaW4gaXQuXHJcbiAgICAgICAgICAgIC4uLigoZGF0YSkgPyBkYXRhLm9iamVjdCA6IHt9KSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfVxyXG4gICAgICAgICR0LmltcHJlc3Npb24oZWRhdGEsIGNvbmZpZylcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAkdC5pbXByZXNzaW9uKGVkYXRhLCB7XHJcbiAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgIHBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgLi4udGhpcy5wRGF0YSxcclxuICAgICAgICAgICAgICBpZDogdGhpcy5wRGF0YS5pZCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZW52OiBwYWdlLm1vZHVsZSB8fCAnJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvYmplY3Q6IHtcclxuICAgICAgICAgICAgLi4uKChkYXRhKSA/IGRhdGEub2JqZWN0IDoge30pLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucHJldmlvdXNVcmwgPSBwYWdlLnBhZ2VVcmxcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25zb2xlXHJcbiAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBpbiB0ZWxlbWV0cnkgaW1wcmVzc2lvbicsIGUpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleHRlcm5hbEltcHJlc3Npb24oaW1wcmVzc2lvbkRhdGE6IGFueSkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcGFnZSA9IHRoaXMuZ2V0UGFnZURldGFpbHMoKVxyXG4gICAgICBpZiAodGhpcy5leHRlcm5hbEFwcHNbaW1wcmVzc2lvbkRhdGEuc3ViQXBwbGljYXRpb25OYW1lXSkge1xyXG4gICAgICAgIGNvbnN0IGV4dGVybmFsQ29uZmlnID0gcGFnZS5vYmplY3RJZCA/IHtcclxuICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgcGRhdGE6IHtcclxuICAgICAgICAgICAgICAuLi50aGlzLnBEYXRhLFxyXG4gICAgICAgICAgICAgIGlkOiB0aGlzLmV4dGVybmFsQXBwc1tpbXByZXNzaW9uRGF0YS5zdWJBcHBsaWNhdGlvbk5hbWVdLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9iamVjdDoge1xyXG4gICAgICAgICAgICBpZDogcGFnZS5vYmplY3RJZCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSA6IHtcclxuICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgcGRhdGE6IHtcclxuICAgICAgICAgICAgICAuLi50aGlzLnBEYXRhLFxyXG4gICAgICAgICAgICAgIGlkOiB0aGlzLmV4dGVybmFsQXBwc1tpbXByZXNzaW9uRGF0YS5zdWJBcHBsaWNhdGlvbk5hbWVdLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9XHJcbiAgICAgICAgJHQuaW1wcmVzc2lvbihpbXByZXNzaW9uRGF0YS5kYXRhLCBleHRlcm5hbENvbmZpZylcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWNvbnNvbGVcclxuICAgICAgY29uc29sZS5sb2coJ0Vycm9yIGluIHRlbGVtZXRyeSBleHRlcm5hbEltcHJlc3Npb24nLCBlKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkQ3VzdG9tSW1wcmVzc2lvbkxpc3RlbmVyKCkge1xyXG4gICAgdGhpcy5ldmVudHNTdmMuZXZlbnRzJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoXHJcbiAgICAgICAgICAoZXZlbnQ6IFdzRXZlbnRzLldzRXZlbnRUZWxlbWV0cnlJbXByZXNzaW9uKSA9PlxyXG4gICAgICAgICAgICBldmVudCAmJlxyXG4gICAgICAgICAgICBldmVudC5kYXRhICYmXHJcbiAgICAgICAgICAgIGV2ZW50LmV2ZW50VHlwZSA9PT0gV3NFdmVudHMuV3NFdmVudFR5cGUuVGVsZW1ldHJ5ICYmXHJcbiAgICAgICAgICAgIGV2ZW50LmRhdGEuZXZlbnRTdWJUeXBlID09PSBXc0V2ZW50cy5FbnVtVGVsZW1ldHJ5U3ViVHlwZS5JbXByZXNzaW9uLFxyXG4gICAgICAgICksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdldmVudC5kYXRhOjonLCBldmVudC5kYXRhKVxyXG4gICAgICAgICAgdGhpcy5pbXByZXNzaW9uKGV2ZW50LmRhdGEpXHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25zb2xlXHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnRXJyb3IgaW4gdGVsZW1ldHJ5IGltcHJlc3Npb24nLCBlKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGFkZFRpbWVTcGVudExpc3RlbmVyKCkge1xyXG4gICAgdGhpcy5ldmVudHNTdmMuZXZlbnRzJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoXHJcbiAgICAgICAgICBldmVudCA9PlxyXG4gICAgICAgICAgICBldmVudCAmJlxyXG4gICAgICAgICAgICBldmVudC5ldmVudFR5cGUgPT09IFdzRXZlbnRzLldzRXZlbnRUeXBlLlRlbGVtZXRyeSAmJlxyXG4gICAgICAgICAgICBldmVudC5kYXRhLnR5cGUgPT09IFdzRXZlbnRzLldzVGltZVNwZW50VHlwZS5QYWdlICYmXHJcbiAgICAgICAgICAgIGV2ZW50LmRhdGEubW9kZSAmJlxyXG4gICAgICAgICAgICBldmVudC5kYXRhLFxyXG4gICAgICAgICksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmRhdGEuc3RhdGUgPT09IFdzRXZlbnRzLkVudW1UZWxlbWV0cnlTdWJUeXBlLkxvYWRlZCkge1xyXG4gICAgICAgICAgdGhpcy5zdGFydChcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IGV2ZW50LmRhdGEudHlwZSB8fCBXc0V2ZW50cy5Xc1RpbWVTcGVudFR5cGUuUGxheWVyLFxyXG4gICAgICAgICAgICAgIG1vZGU6IGV2ZW50LmRhdGEubW9kZSB8fCBXc0V2ZW50cy5Xc1RpbWVTcGVudE1vZGUuUGxheSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge30sXHJcbiAgICAgICAgICAgIGV2ZW50LnBhZ2VDb250ZXh0XHJcbiAgICAgICAgICApXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChldmVudC5kYXRhLnN0YXRlID09PSBXc0V2ZW50cy5FbnVtVGVsZW1ldHJ5U3ViVHlwZS5VbmxvYWRlZCkge1xyXG4gICAgICAgICAgdGhpcy5lbmQoe1xyXG4gICAgICAgICAgICB0eXBlOiBldmVudC5kYXRhLnR5cGUgfHwgV3NFdmVudHMuV3NUaW1lU3BlbnRUeXBlLlBsYXllcixcclxuICAgICAgICAgICAgbW9kZTogZXZlbnQuZGF0YS5tb2RlIHx8IFdzRXZlbnRzLldzVGltZVNwZW50TW9kZS5QbGF5LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICAgICAgICAgZXZlbnQucGFnZUNvbnRleHRcclxuICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBhZGRDdXN0b21FdmVudExpc3RlbmVyKCkge1xyXG4gICAgdGhpcy5ldmVudHNTdmMuZXZlbnRzJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoXHJcbiAgICAgICAgICBldmVudCA9PlxyXG4gICAgICAgICAgICBldmVudCAmJlxyXG4gICAgICAgICAgICBldmVudC5ldmVudFR5cGUgPT09IFdzRXZlbnRzLldzRXZlbnRUeXBlLlRlbGVtZXRyeVxyXG4gICAgICAgICksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZXZlbnQuZGF0YS5zdGF0ZSA9PT0gV3NFdmVudHMuRW51bVRlbGVtZXRyeVN1YlR5cGUuTG9hZGVkICYmXHJcbiAgICAgICAgICBldmVudC5kYXRhLnR5cGUgIT09IFdzRXZlbnRzLldzVGltZVNwZW50VHlwZS5QbGF5ZXJcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMuc3RhcnQoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBldmVudC5kYXRhLnR5cGUsXHJcbiAgICAgICAgICAgICAgbW9kZTogZXZlbnQuZGF0YS5tb2RlIHx8IFdzRXZlbnRzLldzVGltZVNwZW50TW9kZS5QbGF5LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBldmVudC5kYXRhLm9iamVjdCxcclxuICAgICAgICAgICAgZXZlbnQucGFnZUNvbnRleHRcclxuICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZXZlbnQuZGF0YS5zdGF0ZSA9PT0gV3NFdmVudHMuRW51bVRlbGVtZXRyeVN1YlR5cGUuVW5sb2FkZWQgJiZcclxuICAgICAgICAgIGV2ZW50LmRhdGEudHlwZSAhPT0gV3NFdmVudHMuV3NUaW1lU3BlbnRUeXBlLlBsYXllclxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy5lbmQoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBldmVudC5kYXRhLnR5cGUgfHwgV3NFdmVudHMuV3NUaW1lU3BlbnRUeXBlLlBsYXllcixcclxuICAgICAgICAgICAgICBtb2RlOiBldmVudC5kYXRhLm1vZGUgfHwgV3NFdmVudHMuV3NUaW1lU3BlbnRNb2RlLlBsYXksXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGV2ZW50LmRhdGEub2JqZWN0LFxyXG4gICAgICAgICAgICBldmVudC5wYWdlQ29udGV4dFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcbiAgYWRkUGxheWVyTGlzdGVuZXIoKSB7XHJcbiAgICB0aGlzLmV2ZW50c1N2Yy5ldmVudHMkXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbHRlcihcclxuICAgICAgICAgIGV2ZW50ID0+XHJcbiAgICAgICAgICAgIGV2ZW50ICYmXHJcbiAgICAgICAgICAgIGV2ZW50LmV2ZW50VHlwZSA9PT0gV3NFdmVudHMuV3NFdmVudFR5cGUuVGVsZW1ldHJ5ICYmXHJcbiAgICAgICAgICAgIGV2ZW50LmRhdGEudHlwZSA9PT0gV3NFdmVudHMuV3NUaW1lU3BlbnRUeXBlLlBsYXllciAmJlxyXG4gICAgICAgICAgICBldmVudC5kYXRhLm1vZGUgJiZcclxuICAgICAgICAgICAgZXZlbnQuZGF0YSxcclxuICAgICAgICApLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnQ6IE5zQ29udGVudC5JQ29udGVudCB8IG51bGwgPSBldmVudC5kYXRhLmNvbnRlbnRcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBldmVudC5kYXRhLnN0YXRlID09PSBXc0V2ZW50cy5FbnVtVGVsZW1ldHJ5U3ViVHlwZS5Mb2FkZWQgJiZcclxuICAgICAgICAgICghY29udGVudCB8fFxyXG4gICAgICAgICAgICAoY29udGVudC5pc0lmcmFtZVN1cHBvcnRlZCB8fCAnJykudG9Mb3dlckNhc2UoKSA9PT0gJ21heWJlJyB8fFxyXG4gICAgICAgICAgICAoY29udGVudC5pc0lmcmFtZVN1cHBvcnRlZCB8fCAnJykudG9Mb3dlckNhc2UoKSA9PT0gJ3llcycgfHxcclxuICAgICAgICAgICAgKGNvbnRlbnQubWltZVR5cGUgPT09ICdhcHBsaWNhdGlvbi9wZGYnIHx8ICdhcHBsaWNhdGlvbi9qc29uJykpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnN0YXJ0KFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogZXZlbnQuZGF0YS50eXBlIHx8IFdzRXZlbnRzLldzVGltZVNwZW50VHlwZS5QbGF5ZXIsXHJcbiAgICAgICAgICAgICAgbW9kZTogZXZlbnQuZGF0YS5tb2RlIHx8IFdzRXZlbnRzLldzVGltZVNwZW50TW9kZS5QbGF5LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBldmVudC5kYXRhLm9iamVjdCxcclxuICAgICAgICAgICAgZXZlbnQucGFnZUNvbnRleHRcclxuXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGV2ZW50LmRhdGEuc3RhdGUgPT09IFdzRXZlbnRzLkVudW1UZWxlbWV0cnlTdWJUeXBlLlVubG9hZGVkICYmXHJcbiAgICAgICAgICAoIWNvbnRlbnQgfHxcclxuICAgICAgICAgICAgKGNvbnRlbnQuaXNJZnJhbWVTdXBwb3J0ZWQgfHwgJycpLnRvTG93ZXJDYXNlKCkgPT09ICdtYXliZScgfHxcclxuICAgICAgICAgICAgKGNvbnRlbnQuaXNJZnJhbWVTdXBwb3J0ZWQgfHwgJycpLnRvTG93ZXJDYXNlKCkgPT09ICd5ZXMnIHx8XHJcbiAgICAgICAgICAgIChjb250ZW50Lm1pbWVUeXBlID09PSAnYXBwbGljYXRpb24vcGRmJyB8fCAnYXBwbGljYXRpb24vanNvbicpKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy5lbmQoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBldmVudC5kYXRhLnR5cGUgfHwgV3NFdmVudHMuV3NUaW1lU3BlbnRUeXBlLlBsYXllcixcclxuICAgICAgICAgICAgICBtb2RlOiBldmVudC5kYXRhLm1vZGUgfHwgV3NFdmVudHMuV3NUaW1lU3BlbnRNb2RlLlBsYXksXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGV2ZW50LmRhdGEub2JqZWN0LFxyXG4gICAgICAgICAgICBldmVudC5wYWdlQ29udGV4dFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGFkZEludGVyYWN0TGlzdGVuZXIoKSB7XHJcbiAgICB0aGlzLmV2ZW50c1N2Yy5ldmVudHMkXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbHRlcihcclxuICAgICAgICAgIChldmVudDogV3NFdmVudHMuV3NFdmVudFRlbGVtZXRyeUludGVyYWN0KSA9PlxyXG4gICAgICAgICAgICBldmVudCAmJlxyXG4gICAgICAgICAgICBldmVudC5kYXRhICYmXHJcbiAgICAgICAgICAgIGV2ZW50LmV2ZW50VHlwZSA9PT0gV3NFdmVudHMuV3NFdmVudFR5cGUuVGVsZW1ldHJ5ICYmXHJcbiAgICAgICAgICAgIGV2ZW50LmRhdGEuZXZlbnRTdWJUeXBlID09PSBXc0V2ZW50cy5FbnVtVGVsZW1ldHJ5U3ViVHlwZS5JbnRlcmFjdCxcclxuICAgICAgICApLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgIGNvbnN0IHBhZ2UgPSB0aGlzLmdldFBhZ2VEZXRhaWxzKClcclxuICAgICAgICBpZiAodHlwZW9mIGV2ZW50LmZyb20gPT09ICdzdHJpbmcnICYmIHRoaXMuZXh0ZXJuYWxBcHBzW2V2ZW50LmZyb21dKSB7XHJcbiAgICAgICAgICBjb25zdCBleHRlcm5hbENvbmZpZyA9IHtcclxuICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgIHBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAuLi50aGlzLnBEYXRhLFxyXG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuZXh0ZXJuYWxBcHBzW2V2ZW50LmZyb21dLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAkdC5pbnRlcmFjdChldmVudC5kYXRhLCBleHRlcm5hbENvbmZpZylcclxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25zb2xlXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBpbiB0ZWxlbWV0cnkgaW50ZXJhY3QnLCBlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBsZXQgaW50ZXJhY3RpZFxyXG4gICAgICAgICAgLy8gaWYgKGV2ZW50LmRhdGEuZWRhdGEudHlwZSA9PT0gJ2dvYWwnKSB7XHJcbiAgICAgICAgICAvLyAgIGludGVyYWN0aWQgPSBwYWdlLnBhZ2VVcmxQYXJ0c1s0XVxyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgJHQuaW50ZXJhY3QoXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogZXZlbnQuZGF0YS5lZGF0YS50eXBlLFxyXG4gICAgICAgICAgICAgICAgc3VidHlwZTogZXZlbnQuZGF0YS5lZGF0YS5zdWJUeXBlLFxyXG4gICAgICAgICAgICAgICAgLy8gb2JqZWN0OiBldmVudC5kYXRhLm9iamVjdCxcclxuICAgICAgICAgICAgICAgIGlkOiAoZXZlbnQuZGF0YS5lZGF0YSAmJiBldmVudC5kYXRhLmVkYXRhLmlkKSA/XHJcbiAgICAgICAgICAgICAgICAgIGV2ZW50LmRhdGEuZWRhdGEuaWRcclxuICAgICAgICAgICAgICAgICAgOiAnJyxcclxuICAgICAgICAgICAgICAgIHBhZ2VpZDogZXZlbnQuZGF0YS5wYWdlQ29udGV4dCAmJiBldmVudC5kYXRhLnBhZ2VDb250ZXh0LnBhZ2VJZCB8fCBwYWdlLnBhZ2VpZCxcclxuICAgICAgICAgICAgICAgIC8vIHRhcmdldDogeyBwYWdlIH0sXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgIHBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5wRGF0YSxcclxuICAgICAgICAgICAgICAgICAgICBpZDogdGhpcy5wRGF0YS5pZCxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgLi4uKGV2ZW50LmRhdGEucGFnZUNvbnRleHQgJiYgZXZlbnQuZGF0YS5wYWdlQ29udGV4dC5tb2R1bGUgPyB7IGVudjogZXZlbnQuZGF0YS5wYWdlQ29udGV4dC5tb2R1bGUgfSA6IG51bGwpLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIG9iamVjdDoge1xyXG4gICAgICAgICAgICAgICAgICAuLi5ldmVudC5kYXRhLm9iamVjdCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25zb2xlXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBpbiB0ZWxlbWV0cnkgaW50ZXJhY3QnLCBlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGFkZEZlZWRiYWNrTGlzdGVuZXIoKSB7XHJcbiAgICB0aGlzLmV2ZW50c1N2Yy5ldmVudHMkXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbHRlcihcclxuICAgICAgICAgIChldmVudDogV3NFdmVudHMuV3NFdmVudFRlbGVtZXRyeUZlZWRiYWNrKSA9PlxyXG4gICAgICAgICAgICBldmVudCAmJlxyXG4gICAgICAgICAgICBldmVudC5kYXRhICYmXHJcbiAgICAgICAgICAgIGV2ZW50LmV2ZW50VHlwZSA9PT0gV3NFdmVudHMuV3NFdmVudFR5cGUuVGVsZW1ldHJ5ICYmXHJcbiAgICAgICAgICAgIGV2ZW50LmRhdGEuZXZlbnRTdWJUeXBlID09PSBXc0V2ZW50cy5FbnVtVGVsZW1ldHJ5U3ViVHlwZS5GZWVkYmFjayxcclxuICAgICAgICApLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgIGNvbnN0IHBhZ2UgPSB0aGlzLmdldFBhZ2VEZXRhaWxzKClcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgJHQuZmVlZGJhY2soXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICByYXRpbmc6IGV2ZW50LmRhdGEub2JqZWN0LnJhdGluZyB8fCAwLFxyXG4gICAgICAgICAgICAgIGNvbW1lbnRpZDogZXZlbnQuZGF0YS5vYmplY3QuY29tbWVudGlkIHx8ICcnLFxyXG4gICAgICAgICAgICAgIGNvbW1lbnR0eHQ6IGV2ZW50LmRhdGEub2JqZWN0LmNvbW1lbnR0eHQgfHwgJycsXHJcbiAgICAgICAgICAgICAgcGFnZWlkOiBwYWdlLnBhZ2VpZCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgIHBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgIC4uLnRoaXMucERhdGEsXHJcbiAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLnBEYXRhLmlkLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIG9iamVjdDoge1xyXG4gICAgICAgICAgICAgICAgaWQ6IGV2ZW50LmRhdGEub2JqZWN0LmNvbnRlbnRJZCB8fCBldmVudC5kYXRhLm9iamVjdC5pZCB8fCAnJyxcclxuICAgICAgICAgICAgICAgIHR5cGU6IGV2ZW50LmRhdGEuZWRhdGEudHlwZSB8fCAnJyxcclxuICAgICAgICAgICAgICAgIHZlcjogYCR7KGV2ZW50LmRhdGEub2JqZWN0LnZlcnNpb24gfHwgJzEnKX0keycnfWAsXHJcbiAgICAgICAgICAgICAgICByb2xsdXA6IHt9LFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25zb2xlXHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnRXJyb3IgaW4gdGVsZW1ldHJ5IGludGVyYWN0JywgZSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBhZGRIZWFyYmVhdExpc3RlbmVyKCkge1xyXG4gICAgdGhpcy5ldmVudHNTdmMuZXZlbnRzJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoXHJcbiAgICAgICAgICAoZXZlbnQ6IFdzRXZlbnRzLldzRXZlbnRUZWxlbWV0cnlIZWFydEJlYXQpID0+XHJcbiAgICAgICAgICAgIGV2ZW50ICYmXHJcbiAgICAgICAgICAgIGV2ZW50LmRhdGEgJiZcclxuICAgICAgICAgICAgZXZlbnQuZXZlbnRUeXBlID09PSBXc0V2ZW50cy5Xc0V2ZW50VHlwZS5UZWxlbWV0cnkgJiZcclxuICAgICAgICAgICAgZXZlbnQuZGF0YS5ldmVudFN1YlR5cGUgPT09IFdzRXZlbnRzLkVudW1UZWxlbWV0cnlTdWJUeXBlLkhlYXJ0QmVhdCxcclxuICAgICAgICApLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgIGlmICh0eXBlb2YgZXZlbnQuZnJvbSA9PT0gJ3N0cmluZycgJiYgdGhpcy5leHRlcm5hbEFwcHNbZXZlbnQuZnJvbV0pIHtcclxuICAgICAgICAgIGNvbnN0IGV4dGVybmFsQ29uZmlnID0ge1xyXG4gICAgICAgICAgICBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgcGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIC4uLnRoaXMucERhdGEsXHJcbiAgICAgICAgICAgICAgICBpZDogdGhpcy5leHRlcm5hbEFwcHNbZXZlbnQuZnJvbV0sXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICR0LmhlYXJ0YmVhdChldmVudC5kYXRhLCBleHRlcm5hbENvbmZpZylcclxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25zb2xlXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBpbiB0ZWxlbWV0cnkgaGVhcnRiZWF0JywgZSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgJHQuaGVhcnRiZWF0KFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IGV2ZW50LmRhdGEudHlwZSxcclxuICAgICAgICAgICAgICAgIC8vIHN1YnR5cGU6IGV2ZW50LmRhdGEuZXZlbnRTdWJUeXBlLFxyXG4gICAgICAgICAgICAgICAgaWQ6IGV2ZW50LmRhdGEuaWQsXHJcbiAgICAgICAgICAgICAgICAvLyBtaW1lVHlwZTogZXZlbnQuZGF0YS5taW1lVHlwZSxcclxuICAgICAgICAgICAgICAgIC8vIG1vZGU6IGV2ZW50LmRhdGEubW9kZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgcGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnBEYXRhLFxyXG4gICAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLnBEYXRhLmlkLFxyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWNvbnNvbGVcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ0Vycm9yIGluIHRlbGVtZXRyeSBoZWFydGJlYXQnLCBlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGFkZFNlYXJjaExpc3RlbmVyKCkge1xyXG4gICAgdGhpcy5ldmVudHNTdmMuZXZlbnRzJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoXHJcbiAgICAgICAgICAoZXZlbnQ6IFdzRXZlbnRzLldzRXZlbnRUZWxlbWV0cnlTZWFyY2gpID0+XHJcbiAgICAgICAgICAgIGV2ZW50ICYmXHJcbiAgICAgICAgICAgIGV2ZW50LmRhdGEgJiZcclxuICAgICAgICAgICAgZXZlbnQuZXZlbnRUeXBlID09PSBXc0V2ZW50cy5Xc0V2ZW50VHlwZS5UZWxlbWV0cnkgJiZcclxuICAgICAgICAgICAgZXZlbnQuZGF0YS5ldmVudFN1YlR5cGUgPT09IFdzRXZlbnRzLkVudW1UZWxlbWV0cnlTdWJUeXBlLlNlYXJjaCxcclxuICAgICAgICApLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAkdC5zZWFyY2goXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBxdWVyeTogZXZlbnQuZGF0YS5xdWVyeSxcclxuICAgICAgICAgICAgICBmaWx0ZXJzOiBldmVudC5kYXRhLmZpbHRlcnMsXHJcbiAgICAgICAgICAgICAgc2l6ZTogZXZlbnQuZGF0YS5zaXplLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgcGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgLi4udGhpcy5wRGF0YSxcclxuICAgICAgICAgICAgICAgICAgaWQ6IHRoaXMucERhdGEuaWQsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25zb2xlXHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnRXJyb3IgaW4gdGVsZW1ldHJ5IHNlYXJjaCcsIGUpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0UGFnZURldGFpbHMoKSB7XHJcbiAgICBjb25zdCBwYXRoID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoJy8nLCAnJylcclxuICAgIGNvbnN0IHVybCA9IHBhdGggKyB3aW5kb3cubG9jYXRpb24uc2VhcmNoXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBwYWdlaWQ6IHBhdGgsXHJcbiAgICAgIHBhZ2VVcmw6IHVybCxcclxuICAgICAgcGFnZVVybFBhcnRzOiBwYXRoLnNwbGl0KCcvJyksXHJcbiAgICAgIHJlZmZlclVybDogdGhpcy5wcmV2aW91c1VybCxcclxuICAgICAgb2JqZWN0SWQ6IHRoaXMuZXh0cmFjdENvbnRlbnRJZEZyb21VcmxQYXJ0cyhwYXRoLnNwbGl0KCcvJykpLFxyXG4gICAgICBtb2R1bGU6ICcnLFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXh0cmFjdENvbnRlbnRJZEZyb21VcmxQYXJ0cyh1cmxQYXJ0czogc3RyaW5nW10pIHtcclxuICAgIC8vIFRPRE86IHBpY2sgdG9jIGFuZCB2aWV3ZXIgdXJsIGZyb20gc29tZSBjb25maWd1cmF0aW9uXHJcbiAgICBjb25zdCB0b2NJZHggPSB1cmxQYXJ0cy5pbmRleE9mKCd0b2MnKVxyXG4gICAgY29uc3Qgdmlld2VySWR4ID0gdXJsUGFydHMuaW5kZXhPZigndmlld2VyJylcclxuXHJcbiAgICBpZiAodG9jSWR4ID09PSAtMSAmJiB2aWV3ZXJJZHggPT09IC0xKSB7XHJcbiAgICAgIHJldHVybiBudWxsXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRvY0lkeCAhPT0gLTEgJiYgdG9jSWR4IDwgdXJsUGFydHMubGVuZ3RoIC0gMSkge1xyXG4gICAgICByZXR1cm4gdXJsUGFydHNbdG9jSWR4ICsgMV0gLy8gZS5nLiB1cmwgL2FwcC90b2MvPGNvbnRlbnRfaWQ+XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHZpZXdlcklkeCAhPT0gLTEgJiYgdmlld2VySWR4IDwgdXJsUGFydHMubGVuZ3RoIC0gMikge1xyXG4gICAgICByZXR1cm4gdXJsUGFydHNbdmlld2VySWR4ICsgMl0gLy8gZS5nLiB1cmwgL2FwcC92aWV3ZXIvPGNvbnRlbnRfdHlwZT4vPGNvbnRlbnRfaWQ+XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGxcclxuICB9XHJcbn1cclxuIl19
@@ -1,2 +1,38 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcmVmZXJlbmNlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3V0aWxzL3NyYy9saWIvc2VydmljZXMvdXNlci1wcmVmZXJlbmNlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElVc2VyUHJlZmVyZW5jZSB7XHJcbiAgc2VsZWN0ZWRUaGVtZTogc3RyaW5nXHJcbiAgc2VsZWN0ZWRGb250OiBzdHJpbmdcclxuICBzZWxlY3RlZExvY2FsZTogc3RyaW5nXHJcbiAgaXNEYXJrTW9kZTogYm9vbGVhblxyXG4gIGlzSW50cmFuZXRBbGxvd2VkPzogYm9vbGVhblxyXG4gIGlzUlRMOiBib29sZWFuXHJcbiAgY29sb3JQYWxsZXQ6IHN0cmluZ1tdXHJcbiAgZGVmYXVsdENhcmRUeXBlOiBzdHJpbmdcclxuICBwaW5uZWRBcHBzOiBzdHJpbmdcclxuICBzZWxlY3RlZExhbmdHcm91cD86IHN0cmluZ1xyXG4gIGNvbXBsZXRlZEFjdGl2aXR5OiBzdHJpbmdbXVxyXG4gIGNvbXBsZXRlZFRvdXI/OiBib29sZWFuXHJcbiAgcHJvZmlsZVNldHRpbmdzOiBzdHJpbmdbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElQcm9maWxlIHtcclxuICBzaG93UHJvZmlsZVBpY3R1cmU6IGJvb2xlYW5cclxuICBzaG93VXNlckludGVyZXN0OiBib29sZWFuXHJcbiAgc2hvd0tiRm9sbG93ZWQ6IGJvb2xlYW5cclxuICBzaG93UGxheWxpc3Q6IGJvb2xlYW5cclxuICBzaG93QXV0aG9yZWRCeU1lOiBib29sZWFuXHJcbiAgc2hvd1Jldmlld2VkQnlNZTogYm9vbGVhblxyXG4gIHNob3dCYWRnZURldGFpbHM6IGJvb2xlYW5cclxuICBzaG93QmxvZ3M6IGJvb2xlYW5cclxuICBzaG93UW5BOiBib29sZWFuXHJcbiAgLy8gc2hvd0xlYXJuaW5nVGltZTogYm9vbGVhblxyXG4gIC8vIHNob3dMZWFybmluZ1BvaW50czogYm9vbGVhblxyXG4gIC8vIHNob3dMYXN0Vmlld2VkOiBib29sZWFuXHJcbiAgLy8gc2hvd0dvYWxzOiBib29sZWFuXHJcbiAgLy8gc2hvd1RvcGljc0ZvbGxvd2VkOiBib29sZWFuXHJcbiAgLy8gc2hvd0Fzc2Vzc21lbnREZXRhaWxzOiBib29sZWFuXHJcbiAgLy8gc2hvd0NlcnRpZmljYXRpb25EZXRhaWxzOiBib29sZWFuXHJcbiAgLy8gc2hvd1VzZXJTa2lsbHM6IGJvb2xlYW5cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIElQb3J0YWxVcmxzIHtcclxuICBpZ290OiBzdHJpbmcsXHJcbiAgc3B2OiBzdHJpbmcsXHJcbiAgbWRvOiBzdHJpbmcsXHJcbiAgY2JjOiBzdHJpbmcsXHJcbiAgY2JwOiBzdHJpbmcsXHJcbiAgZnJhYzogc3RyaW5nXHJcbn1cclxuIl19
1
+ export function IUserPreference() { }
2
+ if (false) {
3
+ IUserPreference.prototype.selectedTheme;
4
+ IUserPreference.prototype.selectedFont;
5
+ IUserPreference.prototype.selectedLocale;
6
+ IUserPreference.prototype.isDarkMode;
7
+ IUserPreference.prototype.isIntranetAllowed;
8
+ IUserPreference.prototype.isRTL;
9
+ IUserPreference.prototype.colorPallet;
10
+ IUserPreference.prototype.defaultCardType;
11
+ IUserPreference.prototype.pinnedApps;
12
+ IUserPreference.prototype.selectedLangGroup;
13
+ IUserPreference.prototype.completedActivity;
14
+ IUserPreference.prototype.completedTour;
15
+ IUserPreference.prototype.profileSettings;
16
+ }
17
+ export function IProfile() { }
18
+ if (false) {
19
+ IProfile.prototype.showProfilePicture;
20
+ IProfile.prototype.showUserInterest;
21
+ IProfile.prototype.showKbFollowed;
22
+ IProfile.prototype.showPlaylist;
23
+ IProfile.prototype.showAuthoredByMe;
24
+ IProfile.prototype.showReviewedByMe;
25
+ IProfile.prototype.showBadgeDetails;
26
+ IProfile.prototype.showBlogs;
27
+ IProfile.prototype.showQnA;
28
+ }
29
+ export function IPortalUrls() { }
30
+ if (false) {
31
+ IPortalUrls.prototype.igot;
32
+ IPortalUrls.prototype.spv;
33
+ IPortalUrls.prototype.mdo;
34
+ IPortalUrls.prototype.cbc;
35
+ IPortalUrls.prototype.cbp;
36
+ IPortalUrls.prototype.frac;
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcmVmZXJlbmNlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN1bmJpcmQtY2IvdXRpbHMvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvdXNlci1wcmVmZXJlbmNlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFDQWNDOztJQWJDLHdDQUFxQjtJQUNyQix1Q0FBb0I7SUFDcEIseUNBQXNCO0lBQ3RCLHFDQUFtQjtJQUNuQiw0Q0FBMkI7SUFDM0IsZ0NBQWM7SUFDZCxzQ0FBcUI7SUFDckIsMENBQXVCO0lBQ3ZCLHFDQUFrQjtJQUNsQiw0Q0FBMEI7SUFDMUIsNENBQTJCO0lBQzNCLHdDQUF1QjtJQUN2QiwwQ0FBeUI7O0FBRzNCLDhCQWtCQzs7SUFqQkMsc0NBQTJCO0lBQzNCLG9DQUF5QjtJQUN6QixrQ0FBdUI7SUFDdkIsZ0NBQXFCO0lBQ3JCLG9DQUF5QjtJQUN6QixvQ0FBeUI7SUFDekIsb0NBQXlCO0lBQ3pCLDZCQUFrQjtJQUNsQiwyQkFBZ0I7O0FBVWxCLGlDQU9DOztJQU5DLDJCQUFhO0lBQ2IsMEJBQVk7SUFDWiwwQkFBWTtJQUNaLDBCQUFZO0lBQ1osMEJBQVk7SUFDWiwyQkFBWSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSVVzZXJQcmVmZXJlbmNlIHtcclxuICBzZWxlY3RlZFRoZW1lOiBzdHJpbmdcclxuICBzZWxlY3RlZEZvbnQ6IHN0cmluZ1xyXG4gIHNlbGVjdGVkTG9jYWxlOiBzdHJpbmdcclxuICBpc0RhcmtNb2RlOiBib29sZWFuXHJcbiAgaXNJbnRyYW5ldEFsbG93ZWQ/OiBib29sZWFuXHJcbiAgaXNSVEw6IGJvb2xlYW5cclxuICBjb2xvclBhbGxldDogc3RyaW5nW11cclxuICBkZWZhdWx0Q2FyZFR5cGU6IHN0cmluZ1xyXG4gIHBpbm5lZEFwcHM6IHN0cmluZ1xyXG4gIHNlbGVjdGVkTGFuZ0dyb3VwPzogc3RyaW5nXHJcbiAgY29tcGxldGVkQWN0aXZpdHk6IHN0cmluZ1tdXHJcbiAgY29tcGxldGVkVG91cj86IGJvb2xlYW5cclxuICBwcm9maWxlU2V0dGluZ3M6IHN0cmluZ1tdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVByb2ZpbGUge1xyXG4gIHNob3dQcm9maWxlUGljdHVyZTogYm9vbGVhblxyXG4gIHNob3dVc2VySW50ZXJlc3Q6IGJvb2xlYW5cclxuICBzaG93S2JGb2xsb3dlZDogYm9vbGVhblxyXG4gIHNob3dQbGF5bGlzdDogYm9vbGVhblxyXG4gIHNob3dBdXRob3JlZEJ5TWU6IGJvb2xlYW5cclxuICBzaG93UmV2aWV3ZWRCeU1lOiBib29sZWFuXHJcbiAgc2hvd0JhZGdlRGV0YWlsczogYm9vbGVhblxyXG4gIHNob3dCbG9nczogYm9vbGVhblxyXG4gIHNob3dRbkE6IGJvb2xlYW5cclxuICAvLyBzaG93TGVhcm5pbmdUaW1lOiBib29sZWFuXHJcbiAgLy8gc2hvd0xlYXJuaW5nUG9pbnRzOiBib29sZWFuXHJcbiAgLy8gc2hvd0xhc3RWaWV3ZWQ6IGJvb2xlYW5cclxuICAvLyBzaG93R29hbHM6IGJvb2xlYW5cclxuICAvLyBzaG93VG9waWNzRm9sbG93ZWQ6IGJvb2xlYW5cclxuICAvLyBzaG93QXNzZXNzbWVudERldGFpbHM6IGJvb2xlYW5cclxuICAvLyBzaG93Q2VydGlmaWNhdGlvbkRldGFpbHM6IGJvb2xlYW5cclxuICAvLyBzaG93VXNlclNraWxsczogYm9vbGVhblxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSVBvcnRhbFVybHMge1xyXG4gIGlnb3Q6IHN0cmluZyxcclxuICBzcHY6IHN0cmluZyxcclxuICBtZG86IHN0cmluZyxcclxuICBjYmM6IHN0cmluZyxcclxuICBjYnA6IHN0cmluZyxcclxuICBmcmFjOiBzdHJpbmdcclxufVxyXG4iXX0=