@sunbird-cb/utils 1.0.19-ang-13-16 → 1.0.20-ang-13-16

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 (163) hide show
  1. package/esm2022/lib/components/image-crop/image-crop.component.mjs +172 -0
  2. package/esm2022/lib/components/image-crop/image-crop.module.mjs +55 -0
  3. package/esm2022/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.mjs +87 -0
  4. package/esm2022/lib/directives/class-change-on-scroll/class-change-on-scroll.module.mjs +20 -0
  5. package/{esm2015/lib/directives/default-thumbnail/default-thumbnail.directive.js → esm2022/lib/directives/default-thumbnail/default-thumbnail.directive.mjs} +4 -4
  6. package/esm2022/lib/directives/default-thumbnail/default-thumbnail.module.mjs +20 -0
  7. package/{esm2015/lib/directives/image-responsive/image-responsive.directive.js → esm2022/lib/directives/image-responsive/image-responsive.directive.mjs} +4 -4
  8. package/esm2022/lib/directives/image-responsive/image-responsive.module.mjs +20 -0
  9. package/{esm2015/lib/directives/in-view-port/in-view-port.directive.js → esm2022/lib/directives/in-view-port/in-view-port.directive.mjs} +4 -4
  10. package/esm2022/lib/directives/in-view-port/in-view-port.module.mjs +20 -0
  11. package/esm2022/lib/directives/navigation/navigation.directive.mjs +43 -0
  12. package/esm2022/lib/directives/navigation/navigation.module.mjs +20 -0
  13. package/{esm2015/lib/directives/permission/permission.directive.js → esm2022/lib/directives/permission/permission.directive.mjs} +4 -4
  14. package/esm2022/lib/directives/permission/permission.module.mjs +20 -0
  15. package/esm2022/lib/helpers/horizontal-scroller/horizontal-scroller.component.mjs +96 -0
  16. package/esm2022/lib/helpers/horizontal-scroller/horizontal-scroller.module.mjs +32 -0
  17. package/esm2022/lib/helpers/logout/logout.component.mjs +44 -0
  18. package/esm2022/lib/helpers/logout/logout.module.mjs +27 -0
  19. package/esm2022/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.mjs +18 -0
  20. package/{esm2015/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.js → esm2022/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.mjs} +4 -4
  21. package/esm2022/lib/pipes/pipe-count-transform/pipe-count-transform.module.mjs +20 -0
  22. package/{esm2015/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.js → esm2022/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.mjs} +4 -4
  23. package/esm2022/lib/pipes/pipe-date-concat/pipe-date-concat.module.mjs +20 -0
  24. package/{esm2015/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.js → esm2022/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.mjs} +4 -4
  25. package/esm2022/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.mjs +20 -0
  26. package/{esm2015/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.js → esm2022/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.mjs} +4 -4
  27. package/esm2022/lib/pipes/pipe-filter/pipe-filter.module.mjs +20 -0
  28. package/{esm2015/lib/pipes/pipe-filter/pipe-filter.pipe.js → esm2022/lib/pipes/pipe-filter/pipe-filter.pipe.mjs} +4 -4
  29. package/esm2022/lib/pipes/pipe-filter-search/pipe-filter-search.module.mjs +20 -0
  30. package/{esm2015/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.js → esm2022/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.mjs} +4 -4
  31. package/esm2022/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.mjs +20 -0
  32. package/{esm2015/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.js → esm2022/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.mjs} +4 -4
  33. package/esm2022/lib/pipes/pipe-limit-to/pipe-limit-to.module.mjs +20 -0
  34. package/{esm2015/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.js → esm2022/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.mjs} +4 -4
  35. package/esm2022/lib/pipes/pipe-list-filter/pipe-list-filter.module.mjs +20 -0
  36. package/{esm2015/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.js → esm2022/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.mjs} +4 -4
  37. package/esm2022/lib/pipes/pipe-name-transform/pipe-name-transform.module.mjs +20 -0
  38. package/{esm2015/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.js → esm2022/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.mjs} +4 -4
  39. package/esm2022/lib/pipes/pipe-order-by/pipe-order-by.module.mjs +20 -0
  40. package/{esm2015/lib/pipes/pipe-order-by/pipe-order-by.pipe.js → esm2022/lib/pipes/pipe-order-by/pipe-order-by.pipe.mjs} +4 -4
  41. package/esm2022/lib/pipes/pipe-partial-content/pipe-partial-content.module.mjs +20 -0
  42. package/{esm2015/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.js → esm2022/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.mjs} +4 -4
  43. package/esm2022/lib/pipes/pipe-relative-time/pipe-relative-time.module.mjs +20 -0
  44. package/{esm2015/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.js → esm2022/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.mjs} +4 -4
  45. package/esm2022/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.mjs +20 -0
  46. package/{esm2015/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.js → esm2022/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.mjs} +4 -4
  47. package/{esm2015/lib/resolvers/explore-detail.resolver.js → esm2022/lib/resolvers/explore-detail.resolver.mjs} +4 -4
  48. package/{esm2015/lib/resolvers/marketing-offering.resolve.js → esm2022/lib/resolvers/marketing-offering.resolve.mjs} +4 -4
  49. package/{esm2015/lib/resolvers/page.resolver.js → esm2022/lib/resolvers/page.resolver.mjs} +4 -4
  50. package/esm2022/lib/services/auth-keycloak.service.mjs +52 -0
  51. package/esm2022/lib/services/auth-microsoft.service.mjs +173 -0
  52. package/{esm2015/lib/services/configurations.service.js → esm2022/lib/services/configurations.service.mjs} +4 -4
  53. package/esm2022/lib/services/event.service.mjs +204 -0
  54. package/{esm2015/lib/services/logger.service.js → esm2022/lib/services/logger.service.mjs} +4 -4
  55. package/esm2022/lib/services/subapplication-respond.service.mjs +76 -0
  56. package/esm2022/lib/services/telemetry.service.mjs +502 -0
  57. package/esm2022/lib/services/user-preference.service.mjs +92 -0
  58. package/{esm2015/lib/services/utility.service.js → esm2022/lib/services/utility.service.mjs} +4 -4
  59. package/{esm2015/lib/services/value.service.js → esm2022/lib/services/value.service.mjs} +4 -4
  60. package/esm2022/lib/services/widget-content.service.mjs +182 -0
  61. package/{fesm2015/sunbird-cb-utils.js → fesm2022/sunbird-cb-utils.mjs} +573 -545
  62. package/fesm2022/sunbird-cb-utils.mjs.map +1 -0
  63. package/lib/components/image-crop/image-crop.component.d.ts +3 -3
  64. package/lib/components/image-crop/image-crop.component.d.ts.map +1 -1
  65. package/lib/components/image-crop/image-crop.module.d.ts +6 -6
  66. package/lib/components/image-crop/image-crop.module.d.ts.map +1 -1
  67. package/lib/constants/misc.constants.d.ts +2 -2
  68. package/lib/constants/misc.constants.d.ts.map +1 -1
  69. package/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.d.ts +1 -1
  70. package/lib/directives/default-thumbnail/default-thumbnail.directive.d.ts +1 -1
  71. package/lib/directives/image-responsive/image-responsive.directive.d.ts +1 -1
  72. package/lib/directives/in-view-port/in-view-port.directive.d.ts +1 -1
  73. package/lib/directives/navigation/navigation.directive.d.ts +1 -1
  74. package/lib/directives/permission/permission.directive.d.ts +1 -1
  75. package/lib/helpers/horizontal-scroller/horizontal-scroller.component.d.ts +1 -1
  76. package/lib/helpers/horizontal-scroller/horizontal-scroller.module.d.ts +3 -3
  77. package/lib/helpers/logout/logout.component.d.ts +2 -2
  78. package/lib/helpers/logout/logout.component.d.ts.map +1 -1
  79. package/lib/helpers/logout/logout.module.d.ts +3 -3
  80. package/lib/helpers/logout/logout.module.d.ts.map +1 -1
  81. package/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.d.ts +1 -1
  82. package/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.d.ts +1 -1
  83. package/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.d.ts +1 -1
  84. package/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.d.ts +1 -1
  85. package/lib/pipes/pipe-filter/pipe-filter.pipe.d.ts +1 -1
  86. package/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.d.ts +1 -1
  87. package/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.d.ts +1 -1
  88. package/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.d.ts +1 -1
  89. package/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.d.ts +1 -1
  90. package/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.d.ts +1 -1
  91. package/lib/pipes/pipe-order-by/pipe-order-by.pipe.d.ts +5 -5
  92. package/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.d.ts +1 -1
  93. package/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.d.ts +1 -1
  94. package/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.d.ts +1 -1
  95. package/lib/resolvers/explore-detail.resolver.d.ts +2 -2
  96. package/lib/resolvers/explore-detail.resolver.d.ts.map +1 -1
  97. package/lib/resolvers/marketing-offering.resolve.d.ts +2 -2
  98. package/lib/resolvers/marketing-offering.resolve.d.ts.map +1 -1
  99. package/lib/resolvers/page.resolver.d.ts +2 -2
  100. package/lib/resolvers/page.resolver.d.ts.map +1 -1
  101. package/lib/services/widget-resolver.model.d.ts +1 -1
  102. package/lib/services/widget-resolver.model.d.ts.map +1 -1
  103. package/package.json +26 -18
  104. package/sunbird-cb-utils-1.0.20-ang-13-16.tgz +0 -0
  105. package/bundles/sunbird-cb-utils.umd.js +0 -4785
  106. package/bundles/sunbird-cb-utils.umd.js.map +0 -1
  107. package/esm2015/lib/components/image-crop/image-crop.component.js +0 -166
  108. package/esm2015/lib/components/image-crop/image-crop.module.js +0 -58
  109. package/esm2015/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.js +0 -87
  110. package/esm2015/lib/directives/class-change-on-scroll/class-change-on-scroll.module.js +0 -22
  111. package/esm2015/lib/directives/default-thumbnail/default-thumbnail.module.js +0 -22
  112. package/esm2015/lib/directives/image-responsive/image-responsive.module.js +0 -22
  113. package/esm2015/lib/directives/in-view-port/in-view-port.module.js +0 -22
  114. package/esm2015/lib/directives/navigation/navigation.directive.js +0 -43
  115. package/esm2015/lib/directives/navigation/navigation.module.js +0 -22
  116. package/esm2015/lib/directives/permission/permission.module.js +0 -22
  117. package/esm2015/lib/helpers/horizontal-scroller/horizontal-scroller.component.js +0 -100
  118. package/esm2015/lib/helpers/horizontal-scroller/horizontal-scroller.module.js +0 -34
  119. package/esm2015/lib/helpers/logout/logout.component.js +0 -48
  120. package/esm2015/lib/helpers/logout/logout.module.js +0 -30
  121. package/esm2015/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.js +0 -18
  122. package/esm2015/lib/pipes/pipe-count-transform/pipe-count-transform.module.js +0 -22
  123. package/esm2015/lib/pipes/pipe-date-concat/pipe-date-concat.module.js +0 -22
  124. package/esm2015/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.js +0 -22
  125. package/esm2015/lib/pipes/pipe-filter/pipe-filter.module.js +0 -22
  126. package/esm2015/lib/pipes/pipe-filter-search/pipe-filter-search.module.js +0 -22
  127. package/esm2015/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.js +0 -22
  128. package/esm2015/lib/pipes/pipe-limit-to/pipe-limit-to.module.js +0 -22
  129. package/esm2015/lib/pipes/pipe-list-filter/pipe-list-filter.module.js +0 -22
  130. package/esm2015/lib/pipes/pipe-name-transform/pipe-name-transform.module.js +0 -22
  131. package/esm2015/lib/pipes/pipe-order-by/pipe-order-by.module.js +0 -22
  132. package/esm2015/lib/pipes/pipe-partial-content/pipe-partial-content.module.js +0 -22
  133. package/esm2015/lib/pipes/pipe-relative-time/pipe-relative-time.module.js +0 -22
  134. package/esm2015/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.js +0 -22
  135. package/esm2015/lib/services/auth-keycloak.service.js +0 -57
  136. package/esm2015/lib/services/auth-microsoft.service.js +0 -184
  137. package/esm2015/lib/services/event.service.js +0 -199
  138. package/esm2015/lib/services/subapplication-respond.service.js +0 -70
  139. package/esm2015/lib/services/telemetry.service.js +0 -434
  140. package/esm2015/lib/services/user-preference.service.js +0 -82
  141. package/esm2015/lib/services/widget-content.service.js +0 -182
  142. package/fesm2015/sunbird-cb-utils.js.map +0 -1
  143. package/sunbird-cb-utils-1.0.19-ang-13-16.tgz +0 -0
  144. /package/{esm2015/lib/constants/features.enum.js → esm2022/lib/constants/features.enum.mjs} +0 -0
  145. /package/{esm2015/lib/constants/instances.enum.js → esm2022/lib/constants/instances.enum.mjs} +0 -0
  146. /package/{esm2015/lib/constants/misc.constants.js → esm2022/lib/constants/misc.constants.mjs} +0 -0
  147. /package/{esm2015/lib/helpers/functions/getStringifiedQueryParams.js → esm2022/lib/helpers/functions/getStringifiedQueryParams.mjs} +0 -0
  148. /package/{esm2015/lib/models/contentRating.model.js → esm2022/lib/models/contentRating.model.mjs} +0 -0
  149. /package/{esm2015/lib/resolvers/page.constant.js → esm2022/lib/resolvers/page.constant.mjs} +0 -0
  150. /package/{esm2015/lib/resolvers/page.model.js → esm2022/lib/resolvers/page.model.mjs} +0 -0
  151. /package/{esm2015/lib/resolvers/resolver.model.js → esm2022/lib/resolvers/resolver.model.mjs} +0 -0
  152. /package/{esm2015/lib/services/card-content.model.js → esm2022/lib/services/card-content.model.mjs} +0 -0
  153. /package/{esm2015/lib/services/configurations.model.js → esm2022/lib/services/configurations.model.mjs} +0 -0
  154. /package/{esm2015/lib/services/content-strip-multiple.model.js → esm2022/lib/services/content-strip-multiple.model.mjs} +0 -0
  155. /package/{esm2015/lib/services/event.model.js → esm2022/lib/services/event.model.mjs} +0 -0
  156. /package/{esm2015/lib/services/ms-office.model.js → esm2022/lib/services/ms-office.model.mjs} +0 -0
  157. /package/{esm2015/lib/services/user-preference.model.js → esm2022/lib/services/user-preference.model.mjs} +0 -0
  158. /package/{esm2015/lib/services/widget-content.model.js → esm2022/lib/services/widget-content.model.mjs} +0 -0
  159. /package/{esm2015/lib/services/widget-resolver.model.js → esm2022/lib/services/widget-resolver.model.mjs} +0 -0
  160. /package/{esm2015/lib/services/widget-search.model.js → esm2022/lib/services/widget-search.model.mjs} +0 -0
  161. /package/{esm2015/public-api.js → esm2022/public-api.mjs} +0 -0
  162. /package/{esm2015/sunbird-cb-utils.js → esm2022/sunbird-cb-utils.mjs} +0 -0
  163. /package/{sunbird-cb-utils.d.ts → index.d.ts} +0 -0
@@ -0,0 +1,92 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { debounceTime, retry, catchError } from 'rxjs/operators';
3
+ import { of } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common/http";
6
+ import * as i2 from "./configurations.service";
7
+ const endpoints = {
8
+ userPref: '/apis/protected/v8/user/preference',
9
+ };
10
+ export class UserPreferenceService {
11
+ constructor(http, configurationSvc) {
12
+ this.http = http;
13
+ this.configurationSvc = configurationSvc;
14
+ }
15
+ initialize() {
16
+ this.configurationSvc.prefChangeNotifier
17
+ .pipe(debounceTime(250))
18
+ .subscribe((changedUserPref) => {
19
+ if (this.configurationSvc.isAuthenticated) {
20
+ this.saveUserPreference(changedUserPref);
21
+ }
22
+ });
23
+ }
24
+ async fetchUserPreference() {
25
+ const pref = await this.http.get(endpoints.userPref).toPromise();
26
+ return pref;
27
+ }
28
+ async saveUserPreference(changedUserPref) {
29
+ try {
30
+ if (!changedUserPref) {
31
+ return false;
32
+ }
33
+ const newUserPref = {
34
+ ...this.configurationSvc.userPreference,
35
+ pinnedApps: (changedUserPref && changedUserPref.pinnedApps) ||
36
+ (this.configurationSvc.userPreference &&
37
+ this.configurationSvc.userPreference.pinnedApps) ||
38
+ '',
39
+ isDarkMode: this.configurationSvc.isDarkMode,
40
+ isRTL: this.configurationSvc.isRTL,
41
+ selectedTheme: (this.configurationSvc.activeThemeObject &&
42
+ this.configurationSvc.activeThemeObject.themeClass) ||
43
+ '',
44
+ selectedFont: (this.configurationSvc.activeFontObject &&
45
+ this.configurationSvc.activeFontObject.fontClass) ||
46
+ '',
47
+ selectedLangGroup: (this.configurationSvc.userPreference &&
48
+ this.configurationSvc.userPreference.selectedLangGroup) ||
49
+ '',
50
+ selectedLocale: (this.configurationSvc.userPreference &&
51
+ this.configurationSvc.userPreference.selectedLocale) ||
52
+ '',
53
+ colorPallet: (this.configurationSvc.userPreference &&
54
+ this.configurationSvc.userPreference.colorPallet) ||
55
+ [],
56
+ defaultCardType: (this.configurationSvc.userPreference &&
57
+ this.configurationSvc.userPreference.defaultCardType) ||
58
+ '',
59
+ completedActivity: (this.configurationSvc.userPreference &&
60
+ this.configurationSvc.userPreference.completedActivity) ||
61
+ [],
62
+ ...(changedUserPref || {}),
63
+ completedTour: this.configurationSvc.completedTour,
64
+ profileSettings: (this.configurationSvc.userPreference &&
65
+ this.configurationSvc.userPreference.profileSettings) ||
66
+ this.configurationSvc.profileSettings,
67
+ };
68
+ const oldUserPref = this.configurationSvc.userPreference;
69
+ this.configurationSvc.userPreference = newUserPref;
70
+ await this.http
71
+ .put(endpoints.userPref, newUserPref)
72
+ .pipe(retry(3), catchError(err => {
73
+ this.configurationSvc.userPreference = oldUserPref;
74
+ return of(err);
75
+ }))
76
+ .toPromise();
77
+ return true;
78
+ }
79
+ catch (err) {
80
+ return false;
81
+ }
82
+ }
83
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserPreferenceService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigurationsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
84
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserPreferenceService, providedIn: 'root' }); }
85
+ }
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserPreferenceService, decorators: [{
87
+ type: Injectable,
88
+ args: [{
89
+ providedIn: 'root',
90
+ }]
91
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ConfigurationsService }]; } });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcmVmZXJlbmNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdXRpbHMvc3JjL2xpYi9zZXJ2aWNlcy91c2VyLXByZWZlcmVuY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBSTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2hFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7Ozs7QUFDekIsTUFBTSxTQUFTLEdBQUc7SUFDaEIsUUFBUSxFQUFFLG9DQUFvQztDQUMvQyxDQUFBO0FBSUQsTUFBTSxPQUFPLHFCQUFxQjtJQUdoQyxZQUFvQixJQUFnQixFQUFVLGdCQUF1QztRQUFqRSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF1QjtJQUFJLENBQUM7SUFFMUYsVUFBVTtRQUNSLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0I7YUFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN2QixTQUFTLENBQUMsQ0FBQyxlQUEwQyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUE7YUFDekM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxLQUFLLENBQUMsbUJBQW1CO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWtCLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUNqRixPQUFPLElBQUksQ0FBQTtJQUNi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LE9BQU8sR0FBRyxFQUFFO1lBQ1osT0FBTyxLQUFLLENBQUE7U0FDYjtJQUNILENBQUM7K0dBckZVLHFCQUFxQjttSEFBckIscUJBQXFCLGNBRnBCLE1BQU07OzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBJVXNlclByZWZlcmVuY2UgfSBmcm9tICcuL3VzZXItcHJlZmVyZW5jZS5tb2RlbCdcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9ucy5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHJldHJ5LCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcydcclxuY29uc3QgZW5kcG9pbnRzID0ge1xyXG4gIHVzZXJQcmVmOiAnL2FwaXMvcHJvdGVjdGVkL3Y4L3VzZXIvcHJlZmVyZW5jZScsXHJcbn1cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJQcmVmZXJlbmNlU2VydmljZSB7XHJcbiAgLy8gZG8gY2hhbmdlcyBpbiB0aGUgYmFja2VuZCBhbmQgdXBkYXRlIHRoZSBzdG9yZVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgY29uZmlndXJhdGlvblN2YzogQ29uZmlndXJhdGlvbnNTZXJ2aWNlKSB7IH1cclxuXHJcbiAgaW5pdGlhbGl6ZSgpIHtcclxuICAgIHRoaXMuY29uZmlndXJhdGlvblN2Yy5wcmVmQ2hhbmdlTm90aWZpZXJcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDI1MCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZWRVc2VyUHJlZj86IFBhcnRpYWw8SVVzZXJQcmVmZXJlbmNlPikgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb25TdmMuaXNBdXRoZW50aWNhdGVkKSB7XHJcbiAgICAgICAgICB0aGlzLnNhdmVVc2VyUHJlZmVyZW5jZShjaGFuZ2VkVXNlclByZWYpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgZmV0Y2hVc2VyUHJlZmVyZW5jZSgpOiBQcm9taXNlPElVc2VyUHJlZmVyZW5jZT4ge1xyXG4gICAgY29uc3QgcHJlZiA9IGF3YWl0IHRoaXMuaHR0cC5nZXQ8SVVzZXJQcmVmZXJlbmNlPihlbmRwb2ludHMudXNlclByZWYpLnRvUHJvbWlzZSgpXHJcbiAgICByZXR1cm4gcHJlZlxyXG4gIH1cclxuXHJcbiAgYXN5bmMgc2F2ZVVzZXJQcmVmZXJlbmNlKGNoYW5nZWRVc2VyUHJlZj86IFBhcnRpYWw8SVVzZXJQcmVmZXJlbmNlPik6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKCFjaGFuZ2VkVXNlclByZWYpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2VcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBuZXdVc2VyUHJlZjogSVVzZXJQcmVmZXJlbmNlID0ge1xyXG4gICAgICAgIC4uLnRoaXMuY29uZmlndXJhdGlvblN2Yy51c2VyUHJlZmVyZW5jZSxcclxuICAgICAgICBwaW5uZWRBcHBzOlxyXG4gICAgICAgICAgKGNoYW5nZWRVc2VyUHJlZiAmJiBjaGFuZ2VkVXNlclByZWYucGlubmVkQXBwcykgfHxcclxuICAgICAgICAgICh0aGlzLmNvbmZpZ3VyYXRpb25TdmMudXNlclByZWZlcmVuY2UgJiZcclxuICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU3ZjLnVzZXJQcmVmZXJlbmNlLnBpbm5lZEFwcHMpIHx8XHJcbiAgICAgICAgICAnJyxcclxuICAgICAgICBpc0RhcmtNb2RlOiB0aGlzLmNvbmZpZ3VyYXRpb25TdmMuaXNEYXJrTW9kZSxcclxuICAgICAgICBpc1JUTDogdGhpcy5jb25maWd1cmF0aW9uU3ZjLmlzUlRMLFxyXG4gICAgICAgIHNlbGVjdGVkVGhlbWU6XHJcbiAgICAgICAgICAodGhpcy5jb25maWd1cmF0aW9uU3ZjLmFjdGl2ZVRoZW1lT2JqZWN0ICYmXHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvblN2Yy5hY3RpdmVUaGVtZU9iamVjdC50aGVtZUNsYXNzKSB8fFxyXG4gICAgICAgICAgJycsXHJcbiAgICAgICAgc2VsZWN0ZWRGb250OlxyXG4gICAgICAgICAgKHRoaXMuY29uZmlndXJhdGlvblN2Yy5hY3RpdmVGb250T2JqZWN0ICYmXHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvblN2Yy5hY3RpdmVGb250T2JqZWN0LmZvbnRDbGFzcykgfHxcclxuICAgICAgICAgICcnLFxyXG4gICAgICAgIHNlbGVjdGVkTGFuZ0dyb3VwOlxyXG4gICAgICAgICAgKHRoaXMuY29uZmlndXJhdGlvblN2Yy51c2VyUHJlZmVyZW5jZSAmJlxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25TdmMudXNlclByZWZlcmVuY2Uuc2VsZWN0ZWRMYW5nR3JvdXApIHx8XHJcbiAgICAgICAgICAnJyxcclxuICAgICAgICBzZWxlY3RlZExvY2FsZTpcclxuICAgICAgICAgICh0aGlzLmNvbmZpZ3VyYXRpb25TdmMudXNlclByZWZlcmVuY2UgJiZcclxuICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU3ZjLnVzZXJQcmVmZXJlbmNlLnNlbGVjdGVkTG9jYWxlKSB8fFxyXG4gICAgICAgICAgJycsXHJcbiAgICAgICAgY29sb3JQYWxsZXQ6XHJcbiAgICAgICAgICAodGhpcy5jb25maWd1cmF0aW9uU3ZjLnVzZXJQcmVmZXJlbmNlICYmXHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvblN2Yy51c2VyUHJlZmVyZW5jZS5jb2xvclBhbGxldCkgfHxcclxuICAgICAgICAgIFtdLFxyXG4gICAgICAgIGRlZmF1bHRDYXJkVHlwZTpcclxuICAgICAgICAgICh0aGlzLmNvbmZpZ3VyYXRpb25TdmMudXNlclByZWZlcmVuY2UgJiZcclxuICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU3ZjLnVzZXJQcmVmZXJlbmNlLmRlZmF1bHRDYXJkVHlwZSkgfHxcclxuICAgICAgICAgICcnLFxyXG4gICAgICAgIGNvbXBsZXRlZEFjdGl2aXR5OlxyXG4gICAgICAgICAgKHRoaXMuY29uZmlndXJhdGlvblN2Yy51c2VyUHJlZmVyZW5jZSAmJlxyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25TdmMudXNlclByZWZlcmVuY2UuY29tcGxldGVkQWN0aXZpdHkpIHx8XHJcbiAgICAgICAgICBbXSxcclxuICAgICAgICAuLi4oY2hhbmdlZFVzZXJQcmVmIHx8IHt9KSxcclxuICAgICAgICBjb21wbGV0ZWRUb3VyOiB0aGlzLmNvbmZpZ3VyYXRpb25TdmMuY29tcGxldGVkVG91cixcclxuICAgICAgICBwcm9maWxlU2V0dGluZ3M6XHJcbiAgICAgICAgICAodGhpcy5jb25maWd1cmF0aW9uU3ZjLnVzZXJQcmVmZXJlbmNlICYmXHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvblN2Yy51c2VyUHJlZmVyZW5jZS5wcm9maWxlU2V0dGluZ3MpIHx8XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25TdmMucHJvZmlsZVNldHRpbmdzLFxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG9sZFVzZXJQcmVmOiBJVXNlclByZWZlcmVuY2UgfCBudWxsID0gdGhpcy5jb25maWd1cmF0aW9uU3ZjLnVzZXJQcmVmZXJlbmNlXHJcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvblN2Yy51c2VyUHJlZmVyZW5jZSA9IG5ld1VzZXJQcmVmXHJcbiAgICAgIGF3YWl0IHRoaXMuaHR0cFxyXG4gICAgICAgIC5wdXQoZW5kcG9pbnRzLnVzZXJQcmVmLCBuZXdVc2VyUHJlZilcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHJldHJ5KDMpLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25TdmMudXNlclByZWZlcmVuY2UgPSBvbGRVc2VyUHJlZlxyXG4gICAgICAgICAgICByZXR1cm4gb2YoZXJyKVxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -110,13 +110,13 @@ export class UtilityService {
110
110
  });
111
111
  return data;
112
112
  }
113
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UtilityService, deps: [{ token: i1.HttpClient }, { token: i2.Platform }, { token: i3.Router }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable }); }
114
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UtilityService, providedIn: 'root' }); }
113
115
  }
114
- UtilityService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UtilityService, deps: [{ token: i1.HttpClient }, { token: i2.Platform }, { token: i3.Router }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
115
- UtilityService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UtilityService, providedIn: 'root' });
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UtilityService, decorators: [{
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UtilityService, decorators: [{
117
117
  type: Injectable,
118
118
  args: [{
119
119
  providedIn: 'root',
120
120
  }]
121
121
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.Platform }, { type: i3.Router }, { type: i3.ActivatedRoute }]; } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3V0aWxzL3NyYy9saWIvc2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFVLGFBQWEsRUFBMEMsTUFBTSxpQkFBaUIsQ0FBQTs7Ozs7QUFRL0YsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUE7QUFTNUIsTUFBTSxPQUFPLGNBQWM7SUFFekIsWUFDVSxJQUFnQixFQUNoQixRQUFrQixFQUNsQixNQUFjLEVBQ2QsS0FBcUI7UUFIckIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUwvQixxQkFBZ0IsR0FBVSxFQUFFLENBQUE7UUFRMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDMUMsSUFBSSxLQUFLLFlBQVksYUFBYSxFQUFFO2dCQUdsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQTtnQkFHcEMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUE7Z0JBQzNDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUE7YUFDN0M7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxRQUFnQyxFQUFFLFVBQXlDO1FBQ25HLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFO2dCQUVuQixJQUFJLENBQUMsZ0JBQWdCLENB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QyxJQUFTO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUE7SUFDOUIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE1BQU0sSUFBSSxHQUFtQztZQUMzQyxNQUFNLEVBQUUsRUFBRTtZQUNWLE1BQU0sRUFBRSxFQUFFO1NBQ1gsQ0FBQTtRQUdELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRTtZQUNwQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFBO2FBQzVDO1lBQ0QsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO2dCQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQTthQUN4QjtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDOzs0R0E3SFUsY0FBYztnSEFBZCxjQUFjLGNBRmIsTUFBTTs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJ1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kLCBBY3RpdmF0ZWRSb3V0ZSwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcclxuaW1wb3J0IHsgV3NFdmVudHMgfSBmcm9tICcuL2V2ZW50Lm1vZGVsJ1xyXG5pbnRlcmZhY2UgSVdpbmRvd01vYmlsZUFwcE1vZGlmaWVkIGV4dGVuZHMgV2luZG93IHtcclxuICBhcHBSZWY/OiBhbnlcclxuICB3ZWJraXQ/OiBhbnlcclxufVxyXG5kZWNsYXJlIHZhciB3aW5kb3c6IElXaW5kb3dNb2JpbGVBcHBNb2RpZmllZFxyXG5cclxuY29uc3QgUkFORE9NX0lEX1BFUl9VU0VSID0gMFxyXG5pbnRlcmZhY2UgSVJlY3Vyc2l2ZURhdGEge1xyXG4gIGlkZW50aWZpZXI6IHN0cmluZ1xyXG4gIGNoaWxkcmVuOiBudWxsIHwgSVJlY3Vyc2l2ZURhdGFbXVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXRpbGl0eVNlcnZpY2Uge1xyXG4gIGN1cnJlbnRSb3V0ZURhdGE6IGFueVtdID0gW11cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgLy8gcHJpdmF0ZSBldmVudHM6IEV2ZW50U2VydmljZSxcclxuICApIHtcclxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xyXG4gICAgICAgIC8vIGxldCBzbmFwc2hvdCA9IHRoaXMucm91dGVyLnJvdXRlclN0YXRlLmZpcnN0Q2hpbGQodGhpcy5hY3RpdmF0ZWRSb3V0ZSkuc25hcHNob3RcclxuICAgICAgICAvLyBjb25zb2xlLmxvZygndGhpcy5yb3V0ZS5zbmFwc2hvdCA6OiAnLCB0aGlzLnJvdXRlLnNuYXBzaG90KVxyXG4gICAgICAgIGNvbnN0IHNuYXBzaG90ID0gdGhpcy5yb3V0ZS5zbmFwc2hvdFxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdyb290LnNuYXBzaG90LnJvb3QuZmlyc3RDaGlsZCAnLCBzbmFwc2hvdC5yb290LmZpcnN0Q2hpbGQpXHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2ZpcnN0Q2hpbGQgJywgc25hcHNob3QuZmlyc3RDaGlsZClcclxuICAgICAgICBjb25zdCBmaXJzdENoaWxkID0gc25hcHNob3Qucm9vdC5maXJzdENoaWxkXHJcbiAgICAgICAgdGhpcy5nZXRDaGlsZFJvdXRlRGF0YShzbmFwc2hvdCwgZmlyc3RDaGlsZClcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q2hpbGRSb3V0ZURhdGEoc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGZpcnN0Q2hpbGQ6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsKSB7XHJcbiAgICBpZiAoZmlyc3RDaGlsZCkge1xyXG4gICAgICBpZiAoZmlyc3RDaGlsZC5kYXRhKSB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2ZpcnN0Q2hpbGQuZGF0YScsIGZpcnN0Q2hpbGQuZGF0YSlcclxuICAgICAgICB0aGlzLmN1cnJlbnRSb3V0ZURhdGEucHVzaChmaXJzdENoaWxkLmRhdGEpXHJcbiAgICAgIH1cclxuICAgICAgaWYgKGZpcnN0Q2hpbGQuZmlyc3RDaGlsZCkge1xyXG4gICAgICAgIHRoaXMuZ2V0Q2hpbGRSb3V0ZURhdGEoc25hcHNob3QsIGZpcnN0Q2hpbGQuZmlyc3RDaGlsZClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHJhbmRvbUlkKCkge1xyXG4gICAgcmV0dXJuIFJBTkRPTV9JRF9QRVJfVVNFUiArIDFcclxuICB9XHJcblxyXG4gIGdldEpzb248VD4odXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHVybClcclxuICB9XHJcblxyXG4gIGdldExlYWZOb2RlczxUIGV4dGVuZHMgSVJlY3Vyc2l2ZURhdGE+KG5vZGU6IFQsIG5vZGVzOiBUW10pOiBUW10ge1xyXG4gICAgaWYgKChub2RlLmNoaWxkcmVuIHx8IFtdKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgbm9kZXMucHVzaChub2RlKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcclxuICAgICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgdGhpcy5nZXRMZWFmTm9kZXMoY2hpbGQsIG5vZGVzKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBub2Rlc1xyXG4gIH1cclxuICBnZXRQYXRoPFQgZXh0ZW5kcyBJUmVjdXJzaXZlRGF0YT4obm9kZTogVCwgaWQ6IHN0cmluZyk6IFRbXSB7XHJcbiAgICBjb25zdCBwYXRoOiBUW10gPSBbXVxyXG4gICAgdGhpcy5oYXNQYXRoKG5vZGUsIHBhdGgsIGlkKVxyXG4gICAgcmV0dXJuIHBhdGhcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzUGF0aDxUIGV4dGVuZHMgSVJlY3Vyc2l2ZURhdGE+KG5vZGU6IFQsIHBhdGhBcnI6IFRbXSwgaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKG5vZGUgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHBhdGhBcnIucHVzaChub2RlKVxyXG4gICAgaWYgKG5vZGUuaWRlbnRpZmllciA9PT0gaWQpIHtcclxuICAgICAgcmV0dXJuIHRydWVcclxuICAgIH1cclxuICAgIGNvbnN0IGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbiB8fCBbXVxyXG4gICAgaWYgKGNoaWxkcmVuLnNvbWUodSA9PiB0aGlzLmhhc1BhdGgodSwgcGF0aEFyciwgaWQpKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgfVxyXG4gICAgcGF0aEFyci5wb3AoKVxyXG4gICAgcmV0dXJuIGZhbHNlXHJcbiAgfVxyXG5cclxuICBnZXQgaXNNb2JpbGUoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5pc0lvcyB8fCB0aGlzLmlzQW5kcm9pZCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlXHJcbiAgfVxyXG5cclxuICBnZXQgaXNJb3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybS5JT1NcclxuICB9XHJcblxyXG4gIGdldCBpc0FuZHJvaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybS5BTkRST0lEXHJcbiAgfVxyXG4gIGdldCBpc0FuZHJvaWRBcHAoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQm9vbGVhbih3aW5kb3cuYXBwUmVmKVxyXG4gIH1cclxuXHJcbiAgZ2V0IGlPc0FwcFJlZigpIHtcclxuICAgIGlmIChcclxuICAgICAgd2luZG93LndlYmtpdCAmJlxyXG4gICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycyAmJlxyXG4gICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5hcHBSZWZcclxuICAgICkge1xyXG4gICAgICByZXR1cm4gd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuYXBwUmVmXHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbFxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFJvdXRlRGF0YShkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuY3VycmVudFJvdXRlRGF0YSA9IGRhdGFcclxuICB9XHJcblxyXG4gIGdldCByb3V0ZURhdGEoKTogV3NFdmVudHMuSVRlbGVtZXRyeVBhZ2VDb250ZXh0IHtcclxuICAgIGNvbnN0IGRhdGE6IFdzRXZlbnRzLklUZWxlbWV0cnlQYWdlQ29udGV4dCA9IHtcclxuICAgICAgbW9kdWxlOiAnJyxcclxuICAgICAgcGFnZUlkOiAnJyxcclxuICAgIH1cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxyXG4gICAgLy8gY29uc29sZS5sb2coJ0ZpbmFsIGN1cnJlbnREYXRhUm91dGUgZ2V0IHJvdXRlRGF0YSgpJywgdGhpcy5jdXJyZW50Um91dGVEYXRhKVxyXG4gICAgdGhpcy5jdXJyZW50Um91dGVEYXRhLm1hcCgocmQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmQucGFnZUlkKSB7XHJcbiAgICAgICAgZGF0YS5wYWdlSWQgPSBgJHtkYXRhLnBhZ2VJZH0vJHtyZC5wYWdlSWR9YFxyXG4gICAgICB9XHJcbiAgICAgIGlmIChyZC5tb2R1bGUpIHtcclxuICAgICAgICBkYXRhLm1vZHVsZSA9IHJkLm1vZHVsZVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIGRhdGFcclxuICB9XHJcbn1cclxuIl19
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3V0aWxzL3NyYy9saWIvc2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFVLGFBQWEsRUFBMEMsTUFBTSxpQkFBaUIsQ0FBQTs7Ozs7QUFRL0YsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUE7QUFTNUIsTUFBTSxPQUFPLGNBQWM7SUFFekIsWUFDVSxJQUFnQixFQUNoQixRQUFrQixFQUNsQixNQUFjLEVBQ2QsS0FBcUI7UUFIckIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUwvQixxQkFBZ0IsR0FBVSxFQUFFLENBQUE7UUFRMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDMUMsSUFBSSxLQUFLLFlBQVksYUFBYSxFQUFFO2dCQUdsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQTtnQkFHcEMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUE7Z0JBQzNDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUE7YUFDN0M7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxRQUFnQyxFQUFFLFVBQXlDO1FBQ25HLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFO2dCQUVuQixJQUFJLENBQUMsZ0JBQWdCLENB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QyxJQUFTO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUE7SUFDOUIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE1BQU0sSUFBSSxHQUFtQztZQUMzQyxNQUFNLEVBQUUsRUFBRTtZQUNWLE1BQU0sRUFBRSxFQUFFO1NBQ1gsQ0FBQTtRQUdELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRTtZQUNwQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFBO2FBQzVDO1lBQ0QsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO2dCQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQTthQUN4QjtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDOytHQTdIVSxjQUFjO21IQUFkLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJ1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kLCBBY3RpdmF0ZWRSb3V0ZSwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcclxuaW1wb3J0IHsgV3NFdmVudHMgfSBmcm9tICcuL2V2ZW50Lm1vZGVsJ1xyXG5pbnRlcmZhY2UgSVdpbmRvd01vYmlsZUFwcE1vZGlmaWVkIGV4dGVuZHMgV2luZG93IHtcclxuICBhcHBSZWY/OiBhbnlcclxuICB3ZWJraXQ/OiBhbnlcclxufVxyXG5kZWNsYXJlIHZhciB3aW5kb3c6IElXaW5kb3dNb2JpbGVBcHBNb2RpZmllZFxyXG5cclxuY29uc3QgUkFORE9NX0lEX1BFUl9VU0VSID0gMFxyXG5pbnRlcmZhY2UgSVJlY3Vyc2l2ZURhdGEge1xyXG4gIGlkZW50aWZpZXI6IHN0cmluZ1xyXG4gIGNoaWxkcmVuOiBudWxsIHwgSVJlY3Vyc2l2ZURhdGFbXVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXRpbGl0eVNlcnZpY2Uge1xyXG4gIGN1cnJlbnRSb3V0ZURhdGE6IGFueVtdID0gW11cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgLy8gcHJpdmF0ZSBldmVudHM6IEV2ZW50U2VydmljZSxcclxuICApIHtcclxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xyXG4gICAgICAgIC8vIGxldCBzbmFwc2hvdCA9IHRoaXMucm91dGVyLnJvdXRlclN0YXRlLmZpcnN0Q2hpbGQodGhpcy5hY3RpdmF0ZWRSb3V0ZSkuc25hcHNob3RcclxuICAgICAgICAvLyBjb25zb2xlLmxvZygndGhpcy5yb3V0ZS5zbmFwc2hvdCA6OiAnLCB0aGlzLnJvdXRlLnNuYXBzaG90KVxyXG4gICAgICAgIGNvbnN0IHNuYXBzaG90ID0gdGhpcy5yb3V0ZS5zbmFwc2hvdFxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdyb290LnNuYXBzaG90LnJvb3QuZmlyc3RDaGlsZCAnLCBzbmFwc2hvdC5yb290LmZpcnN0Q2hpbGQpXHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2ZpcnN0Q2hpbGQgJywgc25hcHNob3QuZmlyc3RDaGlsZClcclxuICAgICAgICBjb25zdCBmaXJzdENoaWxkID0gc25hcHNob3Qucm9vdC5maXJzdENoaWxkXHJcbiAgICAgICAgdGhpcy5nZXRDaGlsZFJvdXRlRGF0YShzbmFwc2hvdCwgZmlyc3RDaGlsZClcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q2hpbGRSb3V0ZURhdGEoc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGZpcnN0Q2hpbGQ6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsKSB7XHJcbiAgICBpZiAoZmlyc3RDaGlsZCkge1xyXG4gICAgICBpZiAoZmlyc3RDaGlsZC5kYXRhKSB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2ZpcnN0Q2hpbGQuZGF0YScsIGZpcnN0Q2hpbGQuZGF0YSlcclxuICAgICAgICB0aGlzLmN1cnJlbnRSb3V0ZURhdGEucHVzaChmaXJzdENoaWxkLmRhdGEpXHJcbiAgICAgIH1cclxuICAgICAgaWYgKGZpcnN0Q2hpbGQuZmlyc3RDaGlsZCkge1xyXG4gICAgICAgIHRoaXMuZ2V0Q2hpbGRSb3V0ZURhdGEoc25hcHNob3QsIGZpcnN0Q2hpbGQuZmlyc3RDaGlsZClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHJhbmRvbUlkKCkge1xyXG4gICAgcmV0dXJuIFJBTkRPTV9JRF9QRVJfVVNFUiArIDFcclxuICB9XHJcblxyXG4gIGdldEpzb248VD4odXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHVybClcclxuICB9XHJcblxyXG4gIGdldExlYWZOb2RlczxUIGV4dGVuZHMgSVJlY3Vyc2l2ZURhdGE+KG5vZGU6IFQsIG5vZGVzOiBUW10pOiBUW10ge1xyXG4gICAgaWYgKChub2RlLmNoaWxkcmVuIHx8IFtdKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgbm9kZXMucHVzaChub2RlKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcclxuICAgICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgdGhpcy5nZXRMZWFmTm9kZXMoY2hpbGQsIG5vZGVzKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBub2Rlc1xyXG4gIH1cclxuICBnZXRQYXRoPFQgZXh0ZW5kcyBJUmVjdXJzaXZlRGF0YT4obm9kZTogVCwgaWQ6IHN0cmluZyk6IFRbXSB7XHJcbiAgICBjb25zdCBwYXRoOiBUW10gPSBbXVxyXG4gICAgdGhpcy5oYXNQYXRoKG5vZGUsIHBhdGgsIGlkKVxyXG4gICAgcmV0dXJuIHBhdGhcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzUGF0aDxUIGV4dGVuZHMgSVJlY3Vyc2l2ZURhdGE+KG5vZGU6IFQsIHBhdGhBcnI6IFRbXSwgaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKG5vZGUgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHBhdGhBcnIucHVzaChub2RlKVxyXG4gICAgaWYgKG5vZGUuaWRlbnRpZmllciA9PT0gaWQpIHtcclxuICAgICAgcmV0dXJuIHRydWVcclxuICAgIH1cclxuICAgIGNvbnN0IGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbiB8fCBbXVxyXG4gICAgaWYgKGNoaWxkcmVuLnNvbWUodSA9PiB0aGlzLmhhc1BhdGgodSwgcGF0aEFyciwgaWQpKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgfVxyXG4gICAgcGF0aEFyci5wb3AoKVxyXG4gICAgcmV0dXJuIGZhbHNlXHJcbiAgfVxyXG5cclxuICBnZXQgaXNNb2JpbGUoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5pc0lvcyB8fCB0aGlzLmlzQW5kcm9pZCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlXHJcbiAgfVxyXG5cclxuICBnZXQgaXNJb3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybS5JT1NcclxuICB9XHJcblxyXG4gIGdldCBpc0FuZHJvaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybS5BTkRST0lEXHJcbiAgfVxyXG4gIGdldCBpc0FuZHJvaWRBcHAoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQm9vbGVhbih3aW5kb3cuYXBwUmVmKVxyXG4gIH1cclxuXHJcbiAgZ2V0IGlPc0FwcFJlZigpIHtcclxuICAgIGlmIChcclxuICAgICAgd2luZG93LndlYmtpdCAmJlxyXG4gICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycyAmJlxyXG4gICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5hcHBSZWZcclxuICAgICkge1xyXG4gICAgICByZXR1cm4gd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuYXBwUmVmXHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbFxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFJvdXRlRGF0YShkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuY3VycmVudFJvdXRlRGF0YSA9IGRhdGFcclxuICB9XHJcblxyXG4gIGdldCByb3V0ZURhdGEoKTogV3NFdmVudHMuSVRlbGVtZXRyeVBhZ2VDb250ZXh0IHtcclxuICAgIGNvbnN0IGRhdGE6IFdzRXZlbnRzLklUZWxlbWV0cnlQYWdlQ29udGV4dCA9IHtcclxuICAgICAgbW9kdWxlOiAnJyxcclxuICAgICAgcGFnZUlkOiAnJyxcclxuICAgIH1cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxyXG4gICAgLy8gY29uc29sZS5sb2coJ0ZpbmFsIGN1cnJlbnREYXRhUm91dGUgZ2V0IHJvdXRlRGF0YSgpJywgdGhpcy5jdXJyZW50Um91dGVEYXRhKVxyXG4gICAgdGhpcy5jdXJyZW50Um91dGVEYXRhLm1hcCgocmQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmQucGFnZUlkKSB7XHJcbiAgICAgICAgZGF0YS5wYWdlSWQgPSBgJHtkYXRhLnBhZ2VJZH0vJHtyZC5wYWdlSWR9YFxyXG4gICAgICB9XHJcbiAgICAgIGlmIChyZC5tb2R1bGUpIHtcclxuICAgICAgICBkYXRhLm1vZHVsZSA9IHJkLm1vZHVsZVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIGRhdGFcclxuICB9XHJcbn1cclxuIl19
@@ -13,13 +13,13 @@ export class ValueService {
13
13
  .observe([Breakpoints.XSmall, Breakpoints.Small])
14
14
  .pipe(map((res) => res.matches));
15
15
  }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ValueService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable }); }
17
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ValueService, providedIn: 'root' }); }
16
18
  }
17
- ValueService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ValueService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
18
- ValueService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ValueService, providedIn: 'root' });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ValueService, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ValueService, decorators: [{
20
20
  type: Injectable,
21
21
  args: [{
22
22
  providedIn: 'root',
23
23
  }]
24
24
  }], ctorParameters: function () { return [{ type: i1.BreakpointObserver }]; } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi91dGlscy9zcmMvbGliL3NlcnZpY2VzL3ZhbHVlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUxQyxPQUFPLEVBQXNCLFdBQVcsRUFBbUIsTUFBTSxxQkFBcUIsQ0FBQTtBQUN0RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQUtwQyxNQUFNLE9BQU8sWUFBWTtJQUV2QixZQUNVLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBR3pDLGNBQVMsR0FBd0IsSUFBSSxDQUFDLGtCQUFrQjthQUM1RCxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQzVDLGdCQUFXLEdBQXdCLElBQUksQ0FBQyxrQkFBa0I7YUFDOUQsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDaEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBUC9DLENBQUM7OzBHQUpNLFlBQVk7OEdBQVosWUFBWSxjQUZYLE1BQU07NEZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMsIEJyZWFrcG9pbnRTdGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnXHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbHVlU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcixcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgaXNYU21hbGwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJcclxuICAgIC5vYnNlcnZlKFtCcmVha3BvaW50cy5YU21hbGxdKVxyXG4gICAgLnBpcGUobWFwKChyZXM6IEJyZWFrcG9pbnRTdGF0ZSkgPT4gcmVzLm1hdGNoZXMpKVxyXG4gIHB1YmxpYyBpc0x0TWVkaXVtJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyXHJcbiAgICAub2JzZXJ2ZShbQnJlYWtwb2ludHMuWFNtYWxsLCBCcmVha3BvaW50cy5TbWFsbF0pXHJcbiAgICAucGlwZShtYXAoKHJlczogQnJlYWtwb2ludFN0YXRlKSA9PiByZXMubWF0Y2hlcykpXHJcblxyXG59XHJcbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi91dGlscy9zcmMvbGliL3NlcnZpY2VzL3ZhbHVlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUxQyxPQUFPLEVBQXNCLFdBQVcsRUFBbUIsTUFBTSxxQkFBcUIsQ0FBQTtBQUN0RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQUtwQyxNQUFNLE9BQU8sWUFBWTtJQUV2QixZQUNVLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBR3pDLGNBQVMsR0FBd0IsSUFBSSxDQUFDLGtCQUFrQjthQUM1RCxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQzVDLGdCQUFXLEdBQXdCLElBQUksQ0FBQyxrQkFBa0I7YUFDOUQsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDaEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBUC9DLENBQUM7K0dBSk0sWUFBWTttSEFBWixZQUFZLGNBRlgsTUFBTTs7NEZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMsIEJyZWFrcG9pbnRTdGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnXHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbHVlU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcixcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgaXNYU21hbGwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJcclxuICAgIC5vYnNlcnZlKFtCcmVha3BvaW50cy5YU21hbGxdKVxyXG4gICAgLnBpcGUobWFwKChyZXM6IEJyZWFrcG9pbnRTdGF0ZSkgPT4gcmVzLm1hdGNoZXMpKVxyXG4gIHB1YmxpYyBpc0x0TWVkaXVtJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyXHJcbiAgICAub2JzZXJ2ZShbQnJlYWtwb2ludHMuWFNtYWxsLCBCcmVha3BvaW50cy5TbWFsbF0pXHJcbiAgICAucGlwZShtYXAoKHJlczogQnJlYWtwb2ludFN0YXRlKSA9PiByZXMubWF0Y2hlcykpXHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,182 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ import { catchError, retry } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common/http";
6
+ import * as i2 from "./configurations.service";
7
+ const PROTECTED_SLAG_V8 = '/apis/protected/v8';
8
+ const API_END_POINTS = {
9
+ CONTENT: `${PROTECTED_SLAG_V8}/content`,
10
+ AUTHORING_CONTENT: `/apis/authApi/hierarchy`,
11
+ CONTENT_LIKES: `${PROTECTED_SLAG_V8}/content/likeCount`,
12
+ SET_S3_COOKIE: `${PROTECTED_SLAG_V8}/content/setCookie`,
13
+ SET_S3_IMAGE_COOKIE: `${PROTECTED_SLAG_V8}/content/setImageCookie`,
14
+ FETCH_MANIFEST: `${PROTECTED_SLAG_V8}/content/getWebModuleManifest`,
15
+ FETCH_WEB_MODULE_FILES: `${PROTECTED_SLAG_V8}/content/getWebModuleFiles`,
16
+ MULTIPLE_CONTENT: `${PROTECTED_SLAG_V8}/content/multiple`,
17
+ CONTENT_SEARCH_V5: `${PROTECTED_SLAG_V8}/content/searchV5`,
18
+ CONTENT_SEARCH_V6: `${PROTECTED_SLAG_V8}/content/searchV6`,
19
+ CONTENT_SEARCH_REGION_RECOMMENDATION: `${PROTECTED_SLAG_V8}/content/searchRegionRecommendation`,
20
+ CONTENT_HISTORY: `${PROTECTED_SLAG_V8}/user/history`,
21
+ USER_CONTINUE_LEARNING: `${PROTECTED_SLAG_V8}/user/history/continue`,
22
+ CONTENT_RATING: `${PROTECTED_SLAG_V8}/user/rating`,
23
+ CONTENT_RATING_V2: `${PROTECTED_SLAG_V8}/user/rating/content/average-ratingInfo`,
24
+ COLLECTION_HIERARCHY: (type, id) => `${PROTECTED_SLAG_V8}/content/collection/${type}/${id}`,
25
+ REGISTRATION_STATUS: `${PROTECTED_SLAG_V8}/admin/userRegistration/checkUserRegistrationContent`,
26
+ MARK_AS_COMPLETE_META: (contentId) => `${PROTECTED_SLAG_V8}/user/progress/${contentId}`,
27
+ };
28
+ export class WidgetContentService {
29
+ constructor(http, configSvc) {
30
+ this.http = http;
31
+ this.configSvc = configSvc;
32
+ }
33
+ fetchMarkAsCompleteMeta(identifier) {
34
+ const url = API_END_POINTS.MARK_AS_COMPLETE_META(identifier);
35
+ return this.http.get(url).toPromise();
36
+ }
37
+ fetchContent(contentId, hierarchyType = 'detail', additionalFields = []) {
38
+ const url = `${API_END_POINTS.CONTENT}/${contentId}?hierarchyType=${hierarchyType}`;
39
+ return this.http
40
+ .post(url, { additionalFields })
41
+ .pipe(retry(1));
42
+ }
43
+ fetchAuthoringContent(contentId) {
44
+ const url = `${API_END_POINTS.AUTHORING_CONTENT}/${contentId}`;
45
+ return this.http.get(url).pipe(retry(1));
46
+ }
47
+ fetchMultipleContent(ids) {
48
+ return this.http.get(`${API_END_POINTS.MULTIPLE_CONTENT}/${ids.join(',')}`);
49
+ }
50
+ fetchCollectionHierarchy(type, id, pageNumber = 0, pageSize = 1) {
51
+ return this.http.get(`${API_END_POINTS.COLLECTION_HIERARCHY(type, id)}?pageNumber=${pageNumber}&pageSize=${pageSize}`);
52
+ }
53
+ fetchContentLikes(contentIds) {
54
+ return this.http
55
+ .post(API_END_POINTS.CONTENT_LIKES, contentIds)
56
+ .toPromise();
57
+ }
58
+ fetchContentRatings(contentIds) {
59
+ return this.http
60
+ .post(`${API_END_POINTS.CONTENT_RATING}/rating`, contentIds)
61
+ .toPromise();
62
+ }
63
+ fetchContentRatingsV2(contentId) {
64
+ return this.http
65
+ .get(`${API_END_POINTS.CONTENT_RATING_V2}/${contentId}`);
66
+ }
67
+ fetchContentHistory(contentId) {
68
+ return this.http.get(`${API_END_POINTS.CONTENT_HISTORY}/${contentId}`);
69
+ }
70
+ async continueLearning(id, collectionId, collectionType) {
71
+ return new Promise(async (resolve) => {
72
+ if (collectionType &&
73
+ collectionType.toLowerCase() === 'playlist') {
74
+ const reqBody = {
75
+ contextPathId: collectionId ? collectionId : id,
76
+ resourceId: id,
77
+ data: JSON.stringify({
78
+ timestamp: Date.now(),
79
+ contextFullPath: [collectionId, id],
80
+ }),
81
+ dateAccessed: Date.now(),
82
+ contextType: 'playlist',
83
+ };
84
+ await this.saveContinueLearning(reqBody).toPromise().catch().finally(() => {
85
+ resolve(true);
86
+ });
87
+ }
88
+ else {
89
+ const reqBody = {
90
+ contextPathId: collectionId ? collectionId : id,
91
+ resourceId: id,
92
+ data: JSON.stringify({ timestamp: Date.now() }),
93
+ dateAccessed: Date.now(),
94
+ };
95
+ await this.saveContinueLearning(reqBody).toPromise().catch().finally(() => {
96
+ resolve(true);
97
+ });
98
+ }
99
+ });
100
+ }
101
+ saveContinueLearning(content) {
102
+ const url = API_END_POINTS.USER_CONTINUE_LEARNING;
103
+ return this.http.post(url, content);
104
+ }
105
+ setS3Cookie(contentId) {
106
+ return this.http
107
+ .post(API_END_POINTS.SET_S3_COOKIE, { contentId })
108
+ .pipe(catchError(_err => of(true)));
109
+ }
110
+ setS3ImageCookie() {
111
+ return this.http.post(API_END_POINTS.SET_S3_IMAGE_COOKIE, {}).pipe(catchError(_err => of(true)));
112
+ }
113
+ fetchManifest(url) {
114
+ return this.http.post(API_END_POINTS.FETCH_MANIFEST, { url });
115
+ }
116
+ fetchWebModuleContent(url) {
117
+ return this.http.get(`${API_END_POINTS.FETCH_WEB_MODULE_FILES}?url=${encodeURIComponent(url)}`);
118
+ }
119
+ search(req) {
120
+ req.query = req.query || '';
121
+ return this.http.post(API_END_POINTS.CONTENT_SEARCH_V5, {
122
+ request: req,
123
+ });
124
+ }
125
+ searchRegionRecommendation(req) {
126
+ req.query = req.query || '';
127
+ req.preLabelValue =
128
+ (req.preLabelValue || '') +
129
+ ((this.configSvc.userProfile && this.configSvc.userProfile.country) || '');
130
+ req.filters = {
131
+ ...req.filters,
132
+ labels: [req.preLabelValue || ''],
133
+ };
134
+ return this.http.post(API_END_POINTS.CONTENT_SEARCH_REGION_RECOMMENDATION, { request: req });
135
+ }
136
+ searchV6(req) {
137
+ req.query = req.query || '';
138
+ return this.http.post(API_END_POINTS.CONTENT_SEARCH_V6, req);
139
+ }
140
+ fetchContentRating(contentId) {
141
+ return this.http.get(`${API_END_POINTS.CONTENT_RATING}/${contentId}`);
142
+ }
143
+ deleteContentRating(contentId) {
144
+ return this.http.delete(`${API_END_POINTS.CONTENT_RATING}/${contentId}`);
145
+ }
146
+ addContentRating(contentId, data) {
147
+ return this.http.post(`${API_END_POINTS.CONTENT_RATING}/${contentId}`, data);
148
+ }
149
+ getFirstChildInHierarchy(content) {
150
+ if (!(content.children || []).length) {
151
+ return content;
152
+ }
153
+ if (content.contentType === 'Learning Path' &&
154
+ !(content.artifactUrl && content.artifactUrl.length)) {
155
+ const child = content.children[0];
156
+ return this.getFirstChildInHierarchy(child);
157
+ }
158
+ if (content.contentType === 'Resource' ||
159
+ content.contentType === 'Knowledge Artifact' ||
160
+ content.contentType === 'Learning Path') {
161
+ return content;
162
+ }
163
+ const firstChild = content.children[0];
164
+ const resultContent = this.getFirstChildInHierarchy(firstChild);
165
+ return resultContent;
166
+ }
167
+ getRegistrationStatus(source) {
168
+ return this.http.get(`${API_END_POINTS.REGISTRATION_STATUS}/${source}`).toPromise();
169
+ }
170
+ fetchConfig(url) {
171
+ return this.http.get(url);
172
+ }
173
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WidgetContentService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigurationsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
174
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WidgetContentService, providedIn: 'root' }); }
175
+ }
176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WidgetContentService, decorators: [{
177
+ type: Injectable,
178
+ args: [{
179
+ providedIn: 'root',
180
+ }]
181
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ConfigurationsService }]; } });
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbnRlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi91dGlscy9zcmMvbGliL3NlcnZpY2VzL3dpZGdldC1jb250ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7Ozs7QUFRbEQsTUFBTSxpQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQTtBQUU5QyxNQUFNLGNBQWMsR0FBRztJQUNyQixPQUFPLEVBQUUsR0FBRyxpQkFBaUIsVUFBVTtJQUN2QyxpQkFBaUIsRUFBRSx5QkFBeUI7SUFDNUMsYUFBYSxFQUFFLEdBQUcsaUJBQWlCLG9CQUFvQjtJQUN2RCxhQUFhLEVBQUUsR0FBRyxpQkFBaUIsb0JBQW9CO0lBQ3ZELG1CQUFtQixFQUFFLEdBQUcsaUJBQWlCLHlCQUF5QjtJQUNsRSxjQUFjLEVBQUUsR0FBRyxpQkFBaUIsK0JBQStCO0lBQ25FLHNCQUFzQixFQUFFLEdBQUcsaUJBQWlCLDRCQUE0QjtJQUN4RSxnQkFBZ0IsRUFBRSxHQUFHLGlCQUFpQixtQkFBbUI7SUFDekQsaUJBQWlCLEVBQUUsR0FBRyxpQkFBaUIsbUJBQW1CO0lBQzFELGlCQUFpQixFQUFFLEdBQUcsaUJBQWlCLG1CQUFtQjtJQUMxRCxvQ0FBb0MsRUFBRSxHQUFHLGlCQUFpQixxQ0FBcUM7SUFDL0YsZUFBZSxFQUFFLEdBQUcsaUJBQWlCLGVBQWU7SUFDcEQsc0JBQXNCLEVBQUUsR0FBRyxpQkFBaUIsd0JBQXdCO0lBQ3BFLGNBQWMsRUFBRSxHQUFHLGlCQUFpQixjQUFjO0lBQ2xELGlCQUFpQixFQUFFLEdBQUcsaUJBQWlCLHlD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UUFDL0QsT0FBTyxhQUFhLENBQUE7SUFDdEIsQ0FBQztJQUVELHFCQUFxQixDQUFDLE1BQWM7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLGNBQWMsQ0FBQyxtQkFBbUIsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQzFGLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBVztRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsQ0FBQyxDQUFBO0lBQ2hDLENBQUM7K0dBdExVLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IElDb250ZW50UmF0aW5nIH0gZnJvbSAnLi4vbW9kZWxzL2NvbnRlbnRSYXRpbmcubW9kZWwnXHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zU2VydmljZSB9IGZyb20gJy4vY29uZmlndXJhdGlvbnMuc2VydmljZSdcclxuaW1wb3J0IHsgTnNDb250ZW50U3RyaXBNdWx0aXBsZSB9IGZyb20gJy4vY29udGVudC1zdHJpcC1tdWx0aXBsZS5tb2RlbCdcclxuaW1wb3J0IHsgTnNDb250ZW50IH0gZnJvbSAnLi93aWRnZXQtY29udGVudC5tb2RlbCdcclxuaW1wb3J0IHsgTlNTZWFyY2ggfSBmcm9tICcuL3dpZGdldC1zZWFyY2gubW9kZWwnXHJcblxyXG4vLyBUT0RPOiBtb3ZlIHRoaXMgaW4gc29tZSBjb21tb24gcGxhY2VcclxuY29uc3QgUFJPVEVDVEVEX1NMQUdfVjggPSAnL2FwaXMvcHJvdGVjdGVkL3Y4J1xyXG5cclxuY29uc3QgQVBJX0VORF9QT0lOVFMgPSB7XHJcbiAgQ09OVEVOVDogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnRgLFxyXG4gIEFVVEhPUklOR19DT05URU5UOiBgL2FwaXMvYXV0aEFwaS9oaWVyYXJjaHlgLFxyXG4gIENPTlRFTlRfTElLRVM6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L2xpa2VDb3VudGAsXHJcbiAgU0VUX1MzX0NPT0tJRTogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvc2V0Q29va2llYCxcclxuICBTRVRfUzNfSU1BR0VfQ09PS0lFOiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9zZXRJbWFnZUNvb2tpZWAsXHJcbiAgRkVUQ0hfTUFOSUZFU1Q6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L2dldFdlYk1vZHVsZU1hbmlmZXN0YCxcclxuICBGRVRDSF9XRUJfTU9EVUxFX0ZJTEVTOiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9nZXRXZWJNb2R1bGVGaWxlc2AsXHJcbiAgTVVMVElQTEVfQ09OVEVOVDogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvbXVsdGlwbGVgLFxyXG4gIENPTlRFTlRfU0VBUkNIX1Y1OiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9zZWFyY2hWNWAsXHJcbiAgQ09OVEVOVF9TRUFSQ0hfVjY6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NlYXJjaFY2YCxcclxuICBDT05URU5UX1NFQVJDSF9SRUdJT05fUkVDT01NRU5EQVRJT046IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NlYXJjaFJlZ2lvblJlY29tbWVuZGF0aW9uYCxcclxuICBDT05URU5UX0hJU1RPUlk6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS91c2VyL2hpc3RvcnlgLFxyXG4gIFVTRVJfQ09OVElOVUVfTEVBUk5JTkc6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS91c2VyL2hpc3RvcnkvY29udGludWVgLFxyXG4gIENPTlRFTlRfUkFUSU5HOiBgJHtQUk9URUNURURfU0xBR19WOH0vdXNlci9yYXRpbmdgLFxyXG4gIENPTlRFTlRfUkFUSU5HX1YyOiBgJHtQUk9URUNURURfU0xBR19WOH0vdXNlci9yYXRpbmcvY29udGVudC9hdmVyYWdlLXJhdGluZ0luZm9gLFxyXG4gIENPTExFQ1RJT05fSElFUkFSQ0hZOiAodHlwZTogc3RyaW5nLCBpZDogc3RyaW5nKSA9PlxyXG4gICAgYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvY29sbGVjdGlvbi8ke3R5cGV9LyR7aWR9YCxcclxuICBSRUdJU1RSQVRJT05fU1RBVFVTOiBgJHtQUk9URUNURURfU0xBR19WOH0vYWRtaW4vdXNlclJlZ2lzdHJhdGlvbi9jaGVja1VzZXJSZWdpc3RyYXRpb25Db250ZW50YCxcclxuICBNQVJLX0FTX0NPTVBMRVRFX01FVEE6IChjb250ZW50SWQ6IHN0cmluZykgPT4gYCR7UFJPVEVDVEVEX1NMQUdfVjh9L3VzZXIvcHJvZ3Jlc3MvJHtjb250ZW50SWR9YCxcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFdpZGdldENvbnRlbnRTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgY29uZmlnU3ZjOiBDb25maWd1cmF0aW9uc1NlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBmZXRjaE1hcmtBc0NvbXBsZXRlTWV0YShpZGVudGlmaWVyOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gQVBJX0VORF9QT0lOVFMuTUFSS19BU19DT01QTEVURV9NRVRBKGlkZW50aWZpZXIpXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnRvUHJvbWlzZSgpXHJcbiAgfVxyXG5cclxuICBmZXRjaENvbnRlbnQoXHJcbiAgICBjb250ZW50SWQ6IHN0cmluZyxcclxuICAgIGhpZXJhcmNoeVR5cGU6ICdhbGwnIHwgJ21pbmltYWwnIHwgJ2RldGFpbCcgPSAnZGV0YWlsJyxcclxuICAgIGFkZGl0aW9uYWxGaWVsZHM6IHN0cmluZ1tdID0gW10sXHJcbiAgKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRlbnQ+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlR9LyR7Y29udGVudElkfT9oaWVyYXJjaHlUeXBlPSR7aGllcmFyY2h5VHlwZX1gXHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PE5zQ29udGVudC5JQ29udGVudD4odXJsLCB7IGFkZGl0aW9uYWxGaWVsZHMgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMSkpXHJcbiAgfVxyXG4gIGZldGNoQXV0aG9yaW5nQ29udGVudChjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250ZW50PiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHtBUElfRU5EX1BPSU5UUy5BVVRIT1JJTkdfQ09OVEVOVH0vJHtjb250ZW50SWR9YFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250ZW50Pih1cmwpLnBpcGUocmV0cnkoMSkpXHJcbiAgfVxyXG4gIGZldGNoTXVsdGlwbGVDb250ZW50KGlkczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGVudFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOc0NvbnRlbnQuSUNvbnRlbnRbXT4oXHJcbiAgICAgIGAke0FQSV9FTkRfUE9JTlRTLk1VTFRJUExFX0NPTlRFTlR9LyR7aWRzLmpvaW4oJywnKX1gLFxyXG4gICAgKVxyXG4gIH1cclxuICBmZXRjaENvbGxlY3Rpb25IaWVyYXJjaHkodHlwZTogc3RyaW5nLCBpZDogc3RyaW5nLCBwYWdlTnVtYmVyOiBudW1iZXIgPSAwLCBwYWdlU2l6ZTogbnVtYmVyID0gMSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb2xsZWN0aW9uSGllcmFyY2h5UmVzcG9uc2U+KFxyXG4gICAgICBgJHtBUElfRU5EX1BPSU5UUy5DT0xMRUNUSU9OX0hJRVJBUkNIWShcclxuICAgICAgICB0eXBlLFxyXG4gICAgICAgIGlkLFxyXG4gICAgICApfT9wYWdlTnVtYmVyPSR7cGFnZU51bWJlcn0mcGFnZVNpemU9JHtwYWdlU2l6ZX1gLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hDb250ZW50TGlrZXMoY29udGVudElkczogeyBjb250ZW50X2lkOiBzdHJpbmdbXSB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PHsgW2lkZW50aWZpZXI6IHN0cmluZ106IG51bWJlciB9PihBUElfRU5EX1BPSU5UUy5DT05URU5UX0xJS0VTLCBjb250ZW50SWRzKVxyXG4gICAgICAudG9Qcm9taXNlKClcclxuICB9XHJcbiAgZmV0Y2hDb250ZW50UmF0aW5ncyhjb250ZW50SWRzOiB7IGNvbnRlbnRJZHM6IHN0cmluZ1tdIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QoYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkd9L3JhdGluZ2AsIGNvbnRlbnRJZHMpXHJcbiAgICAgIC50b1Byb21pc2UoKVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hDb250ZW50UmF0aW5nc1YyKGNvbnRlbnRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8SUNvbnRlbnRSYXRpbmc+KGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlRfUkFUSU5HX1YyfS8ke2NvbnRlbnRJZH1gKVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hDb250ZW50SGlzdG9yeShjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YT4oXHJcbiAgICAgIGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlRfSElTVE9SWX0vJHtjb250ZW50SWR9YCxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGFzeW5jIGNvbnRpbnVlTGVhcm5pbmcoaWQ6IHN0cmluZywgY29sbGVjdGlvbklkPzogc3RyaW5nLCBjb2xsZWN0aW9uVHlwZT86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgcmVzb2x2ZSA9PiB7XHJcbiAgICAgIGlmIChjb2xsZWN0aW9uVHlwZSAmJlxyXG4gICAgICAgIGNvbGxlY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCkgPT09ICdwbGF5bGlzdCcpIHtcclxuICAgICAgICBjb25zdCByZXFCb2R5ID0ge1xyXG4gICAgICAgICAgY29udGV4dFBhdGhJZDogY29sbGVjdGlvbklkID8gY29sbGVjdGlvbklkIDogaWQsXHJcbiAgICAgICAgICByZXNvdXJjZUlkOiBpZCxcclxuICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgICBjb250ZXh0RnVsbFBhdGg6IFtjb2xsZWN0aW9uSWQsIGlkXSxcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgZGF0ZUFjY2Vzc2VkOiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgY29udGV4dFR5cGU6ICdwbGF5bGlzdCcsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZUNvbnRpbnVlTGVhcm5pbmcocmVxQm9keSkudG9Qcm9taXNlKCkuY2F0Y2goKS5maW5hbGx5KCgpID0+IHtcclxuICAgICAgICAgIHJlc29sdmUodHJ1ZSlcclxuICAgICAgICB9XHJcbiAgICAgICAgKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHJlcUJvZHkgPSB7XHJcbiAgICAgICAgICBjb250ZXh0UGF0aElkOiBjb2xsZWN0aW9uSWQgPyBjb2xsZWN0aW9uSWQgOiBpZCxcclxuICAgICAgICAgIHJlc291cmNlSWQ6IGlkLFxyXG4gICAgICAgICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoeyB0aW1lc3RhbXA6IERhdGUubm93KCkgfSksXHJcbiAgICAgICAgICBkYXRlQWNjZXNzZWQ6IERhdGUubm93KCksXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZUNvbnRpbnVlTGVhcm5pbmcocmVxQm9keSkudG9Qcm9taXNlKCkuY2F0Y2goKS5maW5hbGx5KCgpID0+IHtcclxuICAgICAgICAgIHJlc29sdmUodHJ1ZSlcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBzYXZlQ29udGludWVMZWFybmluZyhjb250ZW50OiBOc0NvbnRlbnQuSVZpZXdlckNvbnRpbnVlTGVhcm5pbmdSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IEFQSV9FTkRfUE9JTlRTLlVTRVJfQ09OVElOVUVfTEVBUk5JTkdcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgY29udGVudClcclxuICB9XHJcblxyXG4gIHNldFMzQ29va2llKFxyXG4gICAgY29udGVudElkOiBzdHJpbmcsXHJcbiAgICAvLyBfcGF0aDogc3RyaW5nLFxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KEFQSV9FTkRfUE9JTlRTLlNFVF9TM19DT09LSUUsIHsgY29udGVudElkIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IoX2VyciA9PiBvZih0cnVlKSkpXHJcbiAgfVxyXG5cclxuICBzZXRTM0ltYWdlQ29va2llKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoQVBJX0VORF9QT0lOVFMuU0VUX1MzX0lNQUdFX0NPT0tJRSwge30pLnBpcGUoY2F0Y2hFcnJvcihfZXJyID0+IG9mKHRydWUpKSlcclxuICB9XHJcblxyXG4gIGZldGNoTWFuaWZlc3QodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KEFQSV9FTkRfUE9JTlRTLkZFVENIX01BTklGRVNULCB7IHVybCB9KVxyXG4gIH1cclxuICBmZXRjaFdlYk1vZHVsZUNvbnRlbnQodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7QVBJX0VORF9QT0lOVFMuRkVUQ0hfV0VCX01PRFVMRV9GSUxFU30/dXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHVybCl9YClcclxuICB9XHJcbiAgc2VhcmNoKHJlcTogTlNTZWFyY2guSVNlYXJjaFJlcXVlc3QpOiBPYnNlcnZhYmxlPE5TU2VhcmNoLklTZWFyY2hBcGlSZXN1bHQ+IHtcclxuICAgIHJlcS5xdWVyeSA9IHJlcS5xdWVyeSB8fCAnJ1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE5TU2VhcmNoLklTZWFyY2hBcGlSZXN1bHQ+KEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfU0VBUkNIX1Y1LCB7XHJcbiAgICAgIHJlcXVlc3Q6IHJlcSxcclxuICAgIH0pXHJcbiAgfVxyXG4gIHNlYXJjaFJlZ2lvblJlY29tbWVuZGF0aW9uKFxyXG4gICAgcmVxOiBOU1NlYXJjaC5JU2VhcmNoT3JnUmVnaW9uUmVjb21tZW5kYXRpb25SZXF1ZXN0LFxyXG4gICk6IE9ic2VydmFibGU8TnNDb250ZW50U3RyaXBNdWx0aXBsZS5JQ29udGVudFN0cmlwUmVzcG9uc2VBcGk+IHtcclxuICAgIHJlcS5xdWVyeSA9IHJlcS5xdWVyeSB8fCAnJ1xyXG4gICAgcmVxLnByZUxhYmVsVmFsdWUgPVxyXG4gICAgICAocmVxLnByZUxhYmVsVmFsdWUgfHwgJycpICtcclxuICAgICAgKCh0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZSAmJiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS5jb3VudHJ5KSB8fCAnJylcclxuICAgIHJlcS5maWx0ZXJzID0ge1xyXG4gICAgICAuLi5yZXEuZmlsdGVycyxcclxuICAgICAgbGFiZWxzOiBbcmVxLnByZUxhYmVsVmFsdWUgfHwgJyddLFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE5zQ29udGVudFN0cmlwTXVsdGlwbGUuSUNvbnRlbnRTdHJpcFJlc3BvbnNlQXBpPihcclxuICAgICAgQVBJX0VORF9QT0lOVFMuQ09OVEVOVF9TRUFSQ0hfUkVHSU9OX1JFQ09NTUVOREFUSU9OLFxyXG4gICAgICB7IHJlcXVlc3Q6IHJlcSB9LFxyXG4gICAgKVxyXG4gIH1cclxuICBzZWFyY2hWNihyZXE6IE5TU2VhcmNoLklTZWFyY2hWNlJlcXVlc3QpOiBPYnNlcnZhYmxlPE5TU2VhcmNoLklTZWFyY2hWNkFwaVJlc3VsdD4ge1xyXG4gICAgcmVxLnF1ZXJ5ID0gcmVxLnF1ZXJ5IHx8ICcnXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TlNTZWFyY2guSVNlYXJjaFY2QXBpUmVzdWx0PihBUElfRU5EX1BPSU5UUy5DT05URU5UX1NFQVJDSF9WNiwgcmVxKVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hDb250ZW50UmF0aW5nKGNvbnRlbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IHJhdGluZzogbnVtYmVyIH0+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHsgcmF0aW5nOiBudW1iZXIgfT4oYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkd9LyR7Y29udGVudElkfWApXHJcbiAgfVxyXG4gIGRlbGV0ZUNvbnRlbnRSYXRpbmcoY29udGVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkd9LyR7Y29udGVudElkfWApXHJcbiAgfVxyXG4gIGFkZENvbnRlbnRSYXRpbmcoY29udGVudElkOiBzdHJpbmcsIGRhdGE6IHsgcmF0aW5nOiBudW1iZXIgfSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UX1JBVElOR30vJHtjb250ZW50SWR9YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldEZpcnN0Q2hpbGRJbkhpZXJhcmNoeShjb250ZW50OiBOc0NvbnRlbnQuSUNvbnRlbnQpOiBOc0NvbnRlbnQuSUNvbnRlbnQge1xyXG4gICAgaWYgKCEoY29udGVudC5jaGlsZHJlbiB8fCBbXSkubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBjb250ZW50XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIGNvbnRlbnQuY29udGVudFR5cGUgPT09ICdMZWFybmluZyBQYXRoJyAmJlxyXG4gICAgICAhKGNvbnRlbnQuYXJ0aWZhY3RVcmwgJiYgY29udGVudC5hcnRpZmFjdFVybC5sZW5ndGgpXHJcbiAgICApIHtcclxuICAgICAgY29uc3QgY2hpbGQgPSBjb250ZW50LmNoaWxkcmVuWzBdXHJcbiAgICAgIHJldHVybiB0aGlzLmdldEZpcnN0Q2hpbGRJbkhpZXJhcmNoeShjaGlsZClcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgY29udGVudC5jb250ZW50VHlwZSA9PT0gJ1Jlc291cmNlJyB8fFxyXG4gICAgICBjb250ZW50LmNvbnRlbnRUeXBlID09PSAnS25vd2xlZGdlIEFydGlmYWN0JyB8fFxyXG4gICAgICBjb250ZW50LmNvbnRlbnRUeXBlID09PSAnTGVhcm5pbmcgUGF0aCdcclxuICAgICkge1xyXG4gICAgICByZXR1cm4gY29udGVudFxyXG4gICAgfVxyXG4gICAgY29uc3QgZmlyc3RDaGlsZCA9IGNvbnRlbnQuY2hpbGRyZW5bMF1cclxuICAgIGNvbnN0IHJlc3VsdENvbnRlbnQgPSB0aGlzLmdldEZpcnN0Q2hpbGRJbkhpZXJhcmNoeShmaXJzdENoaWxkKVxyXG4gICAgcmV0dXJuIHJlc3VsdENvbnRlbnRcclxuICB9XHJcblxyXG4gIGdldFJlZ2lzdHJhdGlvblN0YXR1cyhzb3VyY2U6IHN0cmluZyk6IFByb21pc2U8eyBoYXNBY2Nlc3M6IGJvb2xlYW47IHJlZ2lzdHJhdGlvblVybD86IHN0cmluZyB9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLlJFR0lTVFJBVElPTl9TVEFUVVN9LyR7c291cmNlfWApLnRvUHJvbWlzZSgpXHJcbiAgfVxyXG5cclxuICBmZXRjaENvbmZpZyh1cmw6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55Pih1cmwpXHJcbiAgfVxyXG59XHJcbiJdfQ==