@sunbird-cb/utils-v2 0.0.1-dummy-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 (208) hide show
  1. package/README.md +24 -0
  2. package/esm2022/lib/components/image-crop/image-crop.component.mjs +172 -0
  3. package/esm2022/lib/components/image-crop/image-crop.module.mjs +55 -0
  4. package/esm2022/lib/constants/features.enum.mjs +555 -0
  5. package/esm2022/lib/constants/instances.enum.mjs +5 -0
  6. package/esm2022/lib/constants/misc.constants.mjs +2 -0
  7. package/esm2022/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.mjs +87 -0
  8. package/esm2022/lib/directives/class-change-on-scroll/class-change-on-scroll.module.mjs +20 -0
  9. package/esm2022/lib/directives/default-thumbnail/default-thumbnail.directive.mjs +40 -0
  10. package/esm2022/lib/directives/default-thumbnail/default-thumbnail.module.mjs +20 -0
  11. package/esm2022/lib/directives/image-responsive/image-responsive.directive.mjs +86 -0
  12. package/esm2022/lib/directives/image-responsive/image-responsive.module.mjs +20 -0
  13. package/esm2022/lib/directives/in-view-port/in-view-port.directive.mjs +62 -0
  14. package/esm2022/lib/directives/in-view-port/in-view-port.module.mjs +20 -0
  15. package/esm2022/lib/directives/navigation/navigation.directive.mjs +43 -0
  16. package/esm2022/lib/directives/navigation/navigation.module.mjs +20 -0
  17. package/esm2022/lib/directives/permission/permission.directive.mjs +14 -0
  18. package/esm2022/lib/directives/permission/permission.module.mjs +20 -0
  19. package/esm2022/lib/helpers/functions/getStringifiedQueryParams.mjs +9 -0
  20. package/esm2022/lib/helpers/horizontal-scroller/horizontal-scroller.component.mjs +96 -0
  21. package/esm2022/lib/helpers/horizontal-scroller/horizontal-scroller.module.mjs +32 -0
  22. package/esm2022/lib/helpers/horizontal-scroller-v2/horizontal-scroller-v2.component.mjs +186 -0
  23. package/esm2022/lib/helpers/horizontal-scroller-v2/horizontal-scroller-v2.module.mjs +32 -0
  24. package/esm2022/lib/helpers/logout/logout.component.mjs +75 -0
  25. package/esm2022/lib/helpers/logout/logout.module.mjs +31 -0
  26. package/esm2022/lib/models/profile-v3.models.mjs +2 -0
  27. package/esm2022/lib/pipes/pipe-certificate-image-URL/pipe-certimage-URL.module.mjs +20 -0
  28. package/esm2022/lib/pipes/pipe-certificate-image-URL/pipe-certimage-URL.pipe.mjs +117 -0
  29. package/esm2022/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.mjs +18 -0
  30. package/esm2022/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.mjs +57 -0
  31. package/esm2022/lib/pipes/pipe-count-transform/pipe-count-transform.module.mjs +20 -0
  32. package/esm2022/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.mjs +37 -0
  33. package/esm2022/lib/pipes/pipe-coursename/PipeCourseNameModule.mjs +20 -0
  34. package/esm2022/lib/pipes/pipe-coursename/pipe-coursename.pipe.mjs +17 -0
  35. package/esm2022/lib/pipes/pipe-date-concat/pipe-date-concat.module.mjs +20 -0
  36. package/esm2022/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.mjs +36 -0
  37. package/esm2022/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.mjs +20 -0
  38. package/esm2022/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.mjs +86 -0
  39. package/esm2022/lib/pipes/pipe-email/pipe-email.module.mjs +20 -0
  40. package/esm2022/lib/pipes/pipe-email/pipe-email.pipe.mjs +16 -0
  41. package/esm2022/lib/pipes/pipe-filter/pipe-filter.module.mjs +20 -0
  42. package/esm2022/lib/pipes/pipe-filter/pipe-filter.pipe.mjs +20 -0
  43. package/esm2022/lib/pipes/pipe-filter-search/pipe-filter-search.module.mjs +20 -0
  44. package/esm2022/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.mjs +42 -0
  45. package/esm2022/lib/pipes/pipe-filter-v2/pipe-filter-v2.module.mjs +20 -0
  46. package/esm2022/lib/pipes/pipe-filter-v2/pipe-filter-v2.pipe.mjs +25 -0
  47. package/esm2022/lib/pipes/pipe-filter-v3/pipe-filter-v3.module.mjs +20 -0
  48. package/esm2022/lib/pipes/pipe-filter-v3/pipe-filter-v3.pipe.mjs +27 -0
  49. package/esm2022/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.mjs +20 -0
  50. package/esm2022/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.mjs +16 -0
  51. package/esm2022/lib/pipes/pipe-limit-to/pipe-limit-to.module.mjs +20 -0
  52. package/esm2022/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.mjs +29 -0
  53. package/esm2022/lib/pipes/pipe-list-filter/pipe-list-filter.module.mjs +20 -0
  54. package/esm2022/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.mjs +21 -0
  55. package/esm2022/lib/pipes/pipe-name-transform/pipe-name-transform.module.mjs +20 -0
  56. package/esm2022/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.mjs +26 -0
  57. package/esm2022/lib/pipes/pipe-nic-relative/pipe-nic-relative.module.mjs +20 -0
  58. package/esm2022/lib/pipes/pipe-nic-relative/pipe-nic-relative.pipe.mjs +40 -0
  59. package/esm2022/lib/pipes/pipe-order-by/pipe-order-by.module.mjs +20 -0
  60. package/esm2022/lib/pipes/pipe-order-by/pipe-order-by.pipe.mjs +17 -0
  61. package/esm2022/lib/pipes/pipe-ordinal/pipe-ordinal.module.mjs +20 -0
  62. package/esm2022/lib/pipes/pipe-ordinal/pipe-ordinal.pipe.mjs +21 -0
  63. package/esm2022/lib/pipes/pipe-partial-content/pipe-partial-content.module.mjs +20 -0
  64. package/esm2022/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.mjs +22 -0
  65. package/esm2022/lib/pipes/pipe-public-URL/pipe-public-URL.module.mjs +20 -0
  66. package/esm2022/lib/pipes/pipe-public-URL/pipe-public-URL.pipe.mjs +27 -0
  67. package/esm2022/lib/pipes/pipe-relative-time/pipe-relative-time.module.mjs +20 -0
  68. package/esm2022/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.mjs +20 -0
  69. package/esm2022/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.mjs +20 -0
  70. package/esm2022/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.mjs +33 -0
  71. package/esm2022/lib/resolvers/explore-detail.resolver.mjs +76 -0
  72. package/esm2022/lib/resolvers/marketing-offering.resolve.mjs +35 -0
  73. package/esm2022/lib/resolvers/module-name.resolver.mjs +36 -0
  74. package/esm2022/lib/resolvers/page-name.resolver.mjs +33 -0
  75. package/esm2022/lib/resolvers/page.constant.mjs +4 -0
  76. package/esm2022/lib/resolvers/page.model.mjs +2 -0
  77. package/esm2022/lib/resolvers/page.resolver.mjs +82 -0
  78. package/esm2022/lib/resolvers/resolver.model.mjs +2 -0
  79. package/esm2022/lib/services/auth-keycloak.service.mjs +109 -0
  80. package/esm2022/lib/services/auth-microsoft.service.mjs +173 -0
  81. package/esm2022/lib/services/card-content.model.mjs +11 -0
  82. package/esm2022/lib/services/configurations.model.mjs +2 -0
  83. package/esm2022/lib/services/configurations.service.mjs +82 -0
  84. package/esm2022/lib/services/content-strip-multiple.model.mjs +2 -0
  85. package/esm2022/lib/services/event.model.mjs +145 -0
  86. package/esm2022/lib/services/event.service.mjs +294 -0
  87. package/esm2022/lib/services/logger.service.mjs +45 -0
  88. package/esm2022/lib/services/ms-office.model.mjs +2 -0
  89. package/esm2022/lib/services/multilingual-translations.service.mjs +121 -0
  90. package/esm2022/lib/services/nps-grid.service.mjs +38 -0
  91. package/esm2022/lib/services/subapplication-respond.service.mjs +206 -0
  92. package/esm2022/lib/services/telemetry.service.mjs +694 -0
  93. package/esm2022/lib/services/user-preference.model.mjs +2 -0
  94. package/esm2022/lib/services/user-preference.service.mjs +92 -0
  95. package/esm2022/lib/services/utility.service.mjs +122 -0
  96. package/esm2022/lib/services/value.service.mjs +25 -0
  97. package/esm2022/lib/services/widget-content.model.mjs +144 -0
  98. package/esm2022/lib/services/widget-content.service.mjs +194 -0
  99. package/esm2022/lib/services/widget-resolver.model.mjs +2 -0
  100. package/esm2022/lib/services/widget-search.model.mjs +2 -0
  101. package/esm2022/lib/services-new/widget-enroll.service.mjs +34 -0
  102. package/esm2022/public-api.mjs +97 -0
  103. package/esm2022/sunbird-cb-utils-v2.mjs +2 -0
  104. package/fesm2022/sunbird-cb-utils-v2.mjs +5358 -0
  105. package/fesm2022/sunbird-cb-utils-v2.mjs.map +1 -0
  106. package/index.d.ts +2 -0
  107. package/lib/components/image-crop/image-crop.component.d.ts +59 -0
  108. package/lib/components/image-crop/image-crop.module.d.ts +16 -0
  109. package/lib/constants/features.enum.d.ts +553 -0
  110. package/lib/constants/instances.enum.d.ts +3 -0
  111. package/lib/constants/misc.constants.d.ts +2 -0
  112. package/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.d.ts +21 -0
  113. package/lib/directives/class-change-on-scroll/class-change-on-scroll.module.d.ts +8 -0
  114. package/lib/directives/default-thumbnail/default-thumbnail.directive.d.ts +12 -0
  115. package/lib/directives/default-thumbnail/default-thumbnail.module.d.ts +8 -0
  116. package/lib/directives/image-responsive/image-responsive.directive.d.ts +20 -0
  117. package/lib/directives/image-responsive/image-responsive.module.d.ts +8 -0
  118. package/lib/directives/in-view-port/in-view-port.directive.d.ts +14 -0
  119. package/lib/directives/in-view-port/in-view-port.module.d.ts +8 -0
  120. package/lib/directives/navigation/navigation.directive.d.ts +12 -0
  121. package/lib/directives/navigation/navigation.module.d.ts +8 -0
  122. package/lib/directives/permission/permission.directive.d.ts +6 -0
  123. package/lib/directives/permission/permission.module.d.ts +8 -0
  124. package/lib/helpers/functions/getStringifiedQueryParams.d.ts +3 -0
  125. package/lib/helpers/horizontal-scroller/horizontal-scroller.component.d.ts +21 -0
  126. package/lib/helpers/horizontal-scroller/horizontal-scroller.module.d.ts +11 -0
  127. package/lib/helpers/horizontal-scroller-v2/horizontal-scroller-v2.component.d.ts +39 -0
  128. package/lib/helpers/horizontal-scroller-v2/horizontal-scroller-v2.module.d.ts +11 -0
  129. package/lib/helpers/logout/logout.component.d.ts +23 -0
  130. package/lib/helpers/logout/logout.module.d.ts +11 -0
  131. package/lib/models/profile-v3.models.d.ts +91 -0
  132. package/lib/pipes/pipe-certificate-image-URL/pipe-certimage-URL.module.d.ts +8 -0
  133. package/lib/pipes/pipe-certificate-image-URL/pipe-certimage-URL.pipe.d.ts +9 -0
  134. package/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.d.ts +8 -0
  135. package/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.d.ts +13 -0
  136. package/lib/pipes/pipe-count-transform/pipe-count-transform.module.d.ts +8 -0
  137. package/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.d.ts +7 -0
  138. package/lib/pipes/pipe-coursename/PipeCourseNameModule.d.ts +8 -0
  139. package/lib/pipes/pipe-coursename/pipe-coursename.pipe.d.ts +7 -0
  140. package/lib/pipes/pipe-date-concat/pipe-date-concat.module.d.ts +8 -0
  141. package/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.d.ts +16 -0
  142. package/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.d.ts +8 -0
  143. package/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.d.ts +9 -0
  144. package/lib/pipes/pipe-email/pipe-email.module.d.ts +8 -0
  145. package/lib/pipes/pipe-email/pipe-email.pipe.d.ts +7 -0
  146. package/lib/pipes/pipe-filter/pipe-filter.module.d.ts +8 -0
  147. package/lib/pipes/pipe-filter/pipe-filter.pipe.d.ts +7 -0
  148. package/lib/pipes/pipe-filter-search/pipe-filter-search.module.d.ts +8 -0
  149. package/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.d.ts +7 -0
  150. package/lib/pipes/pipe-filter-v2/pipe-filter-v2.module.d.ts +8 -0
  151. package/lib/pipes/pipe-filter-v2/pipe-filter-v2.pipe.d.ts +7 -0
  152. package/lib/pipes/pipe-filter-v3/pipe-filter-v3.module.d.ts +8 -0
  153. package/lib/pipes/pipe-filter-v3/pipe-filter-v3.pipe.d.ts +7 -0
  154. package/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.d.ts +8 -0
  155. package/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.d.ts +7 -0
  156. package/lib/pipes/pipe-limit-to/pipe-limit-to.module.d.ts +8 -0
  157. package/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.d.ts +7 -0
  158. package/lib/pipes/pipe-list-filter/pipe-list-filter.module.d.ts +8 -0
  159. package/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.d.ts +7 -0
  160. package/lib/pipes/pipe-name-transform/pipe-name-transform.module.d.ts +8 -0
  161. package/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.d.ts +12 -0
  162. package/lib/pipes/pipe-nic-relative/pipe-nic-relative.module.d.ts +8 -0
  163. package/lib/pipes/pipe-nic-relative/pipe-nic-relative.pipe.d.ts +10 -0
  164. package/lib/pipes/pipe-order-by/pipe-order-by.module.d.ts +8 -0
  165. package/lib/pipes/pipe-order-by/pipe-order-by.pipe.d.ts +12 -0
  166. package/lib/pipes/pipe-ordinal/pipe-ordinal.module.d.ts +8 -0
  167. package/lib/pipes/pipe-ordinal/pipe-ordinal.pipe.d.ts +7 -0
  168. package/lib/pipes/pipe-partial-content/pipe-partial-content.module.d.ts +8 -0
  169. package/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.d.ts +7 -0
  170. package/lib/pipes/pipe-public-URL/pipe-public-URL.module.d.ts +8 -0
  171. package/lib/pipes/pipe-public-URL/pipe-public-URL.pipe.d.ts +9 -0
  172. package/lib/pipes/pipe-relative-time/pipe-relative-time.module.d.ts +8 -0
  173. package/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.d.ts +7 -0
  174. package/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.d.ts +8 -0
  175. package/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.d.ts +10 -0
  176. package/lib/resolvers/explore-detail.resolver.d.ts +19 -0
  177. package/lib/resolvers/marketing-offering.resolve.d.ts +13 -0
  178. package/lib/resolvers/module-name.resolver.d.ts +9 -0
  179. package/lib/resolvers/page-name.resolver.d.ts +8 -0
  180. package/lib/resolvers/page.constant.d.ts +1 -0
  181. package/lib/resolvers/page.model.d.ts +41 -0
  182. package/lib/resolvers/page.resolver.d.ts +20 -0
  183. package/lib/resolvers/resolver.model.d.ts +4 -0
  184. package/lib/services/auth-keycloak.service.d.ts +21 -0
  185. package/lib/services/auth-microsoft.service.d.ts +33 -0
  186. package/lib/services/card-content.model.d.ts +29 -0
  187. package/lib/services/configurations.model.d.ts +526 -0
  188. package/lib/services/configurations.service.d.ts +77 -0
  189. package/lib/services/content-strip-multiple.model.d.ts +80 -0
  190. package/lib/services/event.model.d.ts +221 -0
  191. package/lib/services/event.service.d.ts +39 -0
  192. package/lib/services/logger.service.d.ts +18 -0
  193. package/lib/services/ms-office.model.d.ts +6 -0
  194. package/lib/services/multilingual-translations.service.d.ts +23 -0
  195. package/lib/services/nps-grid.service.d.ts +15 -0
  196. package/lib/services/subapplication-respond.service.d.ts +26 -0
  197. package/lib/services/telemetry.service.d.ts +59 -0
  198. package/lib/services/user-preference.model.d.ts +34 -0
  199. package/lib/services/user-preference.service.d.ts +14 -0
  200. package/lib/services/utility.service.d.ts +34 -0
  201. package/lib/services/value.service.d.ts +11 -0
  202. package/lib/services/widget-content.model.d.ts +356 -0
  203. package/lib/services/widget-content.service.d.ts +53 -0
  204. package/lib/services/widget-resolver.model.d.ts +48 -0
  205. package/lib/services/widget-search.model.d.ts +114 -0
  206. package/lib/services-new/widget-enroll.service.d.ts +14 -0
  207. package/package.json +38 -0
  208. package/public-api.d.ts +96 -0
@@ -0,0 +1,109 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ReplaySubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ import * as i2 from "./configurations.service";
6
+ import * as i3 from "./auth-microsoft.service";
7
+ const storage = localStorage;
8
+ const storageKey = 'kc';
9
+ export class AuthKeycloakService {
10
+ constructor(http, configSvc, msAuthSvc) {
11
+ this.http = http;
12
+ this.configSvc = configSvc;
13
+ this.msAuthSvc = msAuthSvc;
14
+ this.loginChangeSubject = new ReplaySubject(1);
15
+ this.loginChangeSubject.subscribe((isLoggedIn) => {
16
+ this.configSvc.isAuthenticated = isLoggedIn;
17
+ if (isLoggedIn &&
18
+ this.configSvc.instanceConfig &&
19
+ Boolean(this.configSvc.instanceConfig.disablePidCheck)) {
20
+ this.configSvc.userProfile = {
21
+ email: '',
22
+ userName: '',
23
+ userId: '',
24
+ };
25
+ }
26
+ });
27
+ }
28
+ get isLoggedIn$() {
29
+ return this.loginChangeSubject.asObservable();
30
+ }
31
+ async initAuth() {
32
+ if (!this.configSvc.instanceConfig) {
33
+ return false;
34
+ }
35
+ const instanceConfig = this.configSvc.instanceConfig;
36
+ if (instanceConfig.microsoft.isConfigured) {
37
+ this.msAuthSvc.init({ microsoft: instanceConfig.microsoft });
38
+ }
39
+ try {
40
+ this.setupGlobalAuthResponder();
41
+ this.addKeycloakEventListener();
42
+ return true;
43
+ }
44
+ catch (err) {
45
+ return false;
46
+ }
47
+ }
48
+ loginV2(_idpHint = 'E', redirectUrl = this.defaultRedirectUrl) {
49
+ if (this.configSvc.instanceConfig) {
50
+ window.location.href = this.configSvc.instanceConfig.keycloak.url + redirectUrl;
51
+ return Promise.resolve();
52
+ }
53
+ return Promise.reject();
54
+ }
55
+ async logout(redirectUrl = this.defaultRedirectUrl) {
56
+ if (storage.getItem('telemetrySessionId')) {
57
+ storage.removeItem('telemetrySessionId');
58
+ }
59
+ try {
60
+ sessionStorage.clear();
61
+ localStorage.clear();
62
+ }
63
+ catch {
64
+ }
65
+ storage.removeItem(storageKey);
66
+ window.location.href = `${redirectUrl}apis/reset`;
67
+ }
68
+ async force_logout() {
69
+ if (storage.getItem('telemetrySessionId')) {
70
+ storage.removeItem('telemetrySessionId');
71
+ }
72
+ else {
73
+ storage.removeItem(storageKey);
74
+ await this.http.get('/apis/reset').toPromise();
75
+ await this.http.get('https://admin-test.ecornell.com/saml/logout.do').toPromise();
76
+ }
77
+ try {
78
+ sessionStorage.clear();
79
+ localStorage.clear();
80
+ }
81
+ catch {
82
+ }
83
+ storage.removeItem(storageKey);
84
+ await this.http.get('/apis/reset').toPromise();
85
+ await this.http.get('https://admin-test.ecornell.com/saml/logout.do').toPromise();
86
+ }
87
+ addKeycloakEventListener() {
88
+ }
89
+ setupGlobalAuthResponder() {
90
+ }
91
+ get defaultRedirectUrl() {
92
+ try {
93
+ const baseUrl = document.baseURI;
94
+ return baseUrl || location.origin;
95
+ }
96
+ catch (error) {
97
+ return location.origin;
98
+ }
99
+ }
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthKeycloakService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigurationsService }, { token: i3.AuthMicrosoftService }], target: i0.ɵɵFactoryTarget.Injectable }); }
101
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthKeycloakService, providedIn: 'root' }); }
102
+ }
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthKeycloakService, decorators: [{
104
+ type: Injectable,
105
+ args: [{
106
+ providedIn: 'root',
107
+ }]
108
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ConfigurationsService }, { type: i3.AuthMicrosoftService }]; } });
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1rZXljbG9hay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3V0aWxzLXYyL3NyYy9saWIvc2VydmljZXMvYXV0aC1rZXljbG9hay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQTs7Ozs7QUFZcEMsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFBO0FBQzVCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQTtBQU12QixNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQ1UsSUFBZ0IsRUFDaEIsU0FBZ0MsRUFFaEMsU0FBK0I7UUFIL0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUVoQyxjQUFTLEdBQVQsU0FBUyxDQUFzQjtRQUxqQyx1QkFBa0IsR0FBRyxJQUFJLGFBQWEsQ0FBVSxDQUFDLENBQUMsQ0FBQTtRQU94RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBbUIsRUFBRSxFQUFFO1lBQ3hELElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQTtZQUMzQyxJQUNFLFVBQVU7Z0JBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjO2dCQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEVBQ3REO2dCQUNBLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHO29CQUMzQixLQUFLLEVBQUUsRUFBRTtvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWixNQUFNLEVBQUUsRUFBRTtpQkFDWCxDQUFBO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFHRCxJQUFJLFdB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TSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQTtZQUNoQyxPQUFPLE9BQU8sSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFBO1NBQ2xDO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUE7U0FDdkI7SUFDSCxDQUFDOytHQTNRVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuLy8gaW1wb3J0IHsgS2V5Y2xvYWtFdmVudCwgS2V5Y2xvYWtFdmVudFR5cGUsIEtleWNsb2FrSW5pdE9wdGlvbnMsIEtleWNsb2FrU2VydmljZSB9IGZyb20gJ2tleWNsb2FrLWFuZ3VsYXInXHJcbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJ1xyXG4vLyBpbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgQXV0aE1pY3Jvc29mdFNlcnZpY2UgfSBmcm9tICcuL2F1dGgtbWljcm9zb2Z0LnNlcnZpY2UnXHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zU2VydmljZSB9IGZyb20gJy4vY29uZmlndXJhdGlvbnMuc2VydmljZSdcclxuXHJcbi8vIGludGVyZmFjZSBJUGFyc2VkVG9rZW4ge1xyXG4vLyAgIGVtYWlsPzogc3RyaW5nXHJcbi8vICAgZW5jRW1haWw/OiBzdHJpbmdcclxuLy8gICBuYW1lPzogc3RyaW5nXHJcbi8vICAgcHJlZmVycmVkX3VzZXJuYW1lPzogc3RyaW5nXHJcbi8vIH1cclxuXHJcbmNvbnN0IHN0b3JhZ2UgPSBsb2NhbFN0b3JhZ2VcclxuY29uc3Qgc3RvcmFnZUtleSA9ICdrYydcclxuLy8gY29uc3QgbG9nb3V0UmVkaXJlY3RVcmwgPSAnJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhLZXljbG9ha1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgbG9naW5DaGFuZ2VTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSlcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgY29uZmlnU3ZjOiBDb25maWd1cmF0aW9uc1NlcnZpY2UsXHJcbiAgICAvLyBwcml2YXRlIGtleWNsb2FrU3ZjOiBLZXljbG9ha1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1zQXV0aFN2YzogQXV0aE1pY3Jvc29mdFNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICB0aGlzLmxvZ2luQ2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKGlzTG9nZ2VkSW46IGJvb2xlYW4pID0+IHtcclxuICAgICAgdGhpcy5jb25maWdTdmMuaXNBdXRoZW50aWNhdGVkID0gaXNMb2dnZWRJblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgaXNMb2dnZWRJbiAmJlxyXG4gICAgICAgIHRoaXMuY29uZmlnU3ZjLmluc3RhbmNlQ29uZmlnICYmXHJcbiAgICAgICAgQm9vbGVhbih0aGlzLmNvbmZpZ1N2Yy5pbnN0YW5jZUNvbmZpZy5kaXNhYmxlUGlkQ2hlY2spXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlID0ge1xyXG4gICAgICAgICAgZW1haWw6ICcnLFxyXG4gICAgICAgICAgdXNlck5hbWU6ICcnLFxyXG4gICAgICAgICAgdXNlcklkOiAnJyxcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAvLyBHZXR0ZXJzXHJcbiAgZ2V0IGlzTG9nZ2VkSW4kKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubG9naW5DaGFuZ2VTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpXHJcbiAgfVxyXG4gIC8vIGdldCBpc0xvZ2dlZEluKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMua2V5Y2xvYWtTdmMuaXNMb2dnZWRJbigpXHJcbiAgLy8gfVxyXG4gIC8vIGdldCBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5rZXljbG9ha1N2Yy5nZXRLZXljbG9ha0luc3RhbmNlKCkuYXV0aGVudGljYXRlZFxyXG4gIC8vIH1cclxuICAvLyBnZXQgdG9rZW4oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmtleWNsb2FrU3ZjLmdldEtleWNsb2FrSW5zdGFuY2UoKS50b2tlblxyXG4gIC8vIH1cclxuICAvLyBnZXQgc2Vzc2lvbklkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5rZXljbG9ha1N2Yy5nZXRLZXljbG9ha0luc3RhbmNlKCkuc2Vzc2lvbklkXHJcbiAgLy8gfVxyXG4gIC8vIGdldCB1c2VySWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAvLyAgIGNvbnN0IGtjID0gdGhpcy5rZXljbG9ha1N2Yy5nZXRLZXljbG9ha0luc3RhbmNlKClcclxuICAvLyAgIGlmICgha2MpIHtcclxuICAvLyAgICAgcmV0dXJuXHJcbiAgLy8gICB9XHJcbiAgLy8gICByZXR1cm4gKGtjLnRva2VuUGFyc2VkICYmIGtjLnRva2VuUGFyc2VkLnN1YikgfHwgKGtjLmlkVG9rZW5QYXJzZWQgJiYga2MuaWRUb2tlblBhcnNlZC5zdWIpXHJcbiAgLy8gfVxyXG5cclxuICAvLyBnZXQgdXNlckVtYWlsKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgLy8gICBjb25zdCBrYyA9IHRoaXMua2V5Y2xvYWtTdmMuZ2V0S2V5Y2xvYWtJbnN0YW5jZSgpXHJcblxyXG4gIC8vICAgY29uc3QgdG9rZW5QYXJzZWQgPSBrYy50b2tlblBhcnNlZCBhcyBJUGFyc2VkVG9rZW5cclxuICAvLyAgIGNvbnN0IGlkVG9rZW5QYXJzZWQgPSBrYy5pZFRva2VuUGFyc2VkIGFzIElQYXJzZWRUb2tlblxyXG4gIC8vICAgcmV0dXJuIChcclxuICAvLyAgICAgKHRva2VuUGFyc2VkICYmIHRva2VuUGFyc2VkLmVtYWlsKSB8fFxyXG4gIC8vICAgICAoaWRUb2tlblBhcnNlZCAmJiBpZFRva2VuUGFyc2VkLmVtYWlsKSB8fFxyXG4gIC8vICAgICAoaWRUb2tlblBhcnNlZCAmJiBpZFRva2VuUGFyc2VkLmVuY0VtYWlsKSB8fFxyXG4gIC8vICAgICAodG9rZW5QYXJzZWQgJiYgdG9rZW5QYXJzZWQucHJlZmVycmVkX3VzZXJuYW1lKSB8fFxyXG4gIC8vICAgICAoaWRUb2tlblBhcnNlZCAmJiBpZFRva2VuUGFyc2VkLnByZWZlcnJlZF91c2VybmFtZSlcclxuICAvLyAgIClcclxuICAvLyB9XHJcblxyXG4gIC8vIGdldCB1c2VyTmFtZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gIC8vICAgY29uc3Qga2MgPSB0aGlzLmtleWNsb2FrU3ZjLmdldEtleWNsb2FrSW5zdGFuY2UoKVxyXG4gIC8vICAgcmV0dXJuIChcclxuICAvLyAgICAgKGtjLnRva2VuUGFyc2VkICYmIChrYy50b2tlblBhcnNlZCBhcyBJUGFyc2VkVG9rZW4pLm5hbWUpIHx8XHJcbiAgLy8gICAgIChrYy5pZFRva2VuUGFyc2VkICYmIChrYy5pZFRva2VuUGFyc2VkIGFzIElQYXJzZWRUb2tlbikubmFtZSlcclxuICAvLyAgIClcclxuICAvLyB9XHJcblxyXG4gIGFzeW5jIGluaXRBdXRoKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZ1N2Yy5pbnN0YW5jZUNvbmZpZykge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIGNvbnN0IGluc3RhbmNlQ29uZmlnID0gdGhpcy5jb25maWdTdmMuaW5zdGFuY2VDb25maWdcclxuICAgIGlmIChpbnN0YW5jZUNvbmZpZy5taWNyb3NvZnQuaXNDb25maWd1cmVkKSB7XHJcbiAgICAgIHRoaXMubXNBdXRoU3ZjLmluaXQoeyBtaWNyb3NvZnQ6IGluc3RhbmNlQ29uZmlnLm1pY3Jvc29mdCB9KVxyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgdGhpcy5zZXR1cEdsb2JhbEF1dGhSZXNwb25kZXIoKVxyXG4gICAgICB0aGlzLmFkZEtleWNsb2FrRXZlbnRMaXN0ZW5lcigpXHJcbiAgICAgIC8vIHJldHVybiBhd2FpdCB0aGlzLmtleWNsb2FrU3ZjLmluaXQoe1xyXG4gICAgICAvLyAgIGNvbmZpZzoge1xyXG4gICAgICAvLyAgICAgdXJsOiBpbnN0YW5jZUNvbmZpZy5rZXljbG9hay51cmwsXHJcbiAgICAgIC8vICAgICByZWFsbTogaW5zdGFuY2VDb25maWcua2V5Y2xvYWsucmVhbG0sXHJcbiAgICAgIC8vICAgICBjbGllbnRJZDogaW5zdGFuY2VDb25maWcua2V5Y2xvYWsuY2xpZW50SWQsXHJcbiAgICAgIC8vICAgfSxcclxuICAgICAgLy8gICBpbml0T3B0aW9uczoge1xyXG4gICAgICAvLyAgICAgLi4udGhpcy5nZXRTYXZlZEtjQ29uZmlnKCksXHJcbiAgICAgIC8vICAgICBvbkxvYWQ6IGluc3RhbmNlQ29uZmlnLmtleWNsb2FrLm9uTG9hZCB8fCAnY2hlY2stc3NvJyxcclxuICAgICAgLy8gICAgIGNoZWNrTG9naW5JZnJhbWU6IGZhbHNlLFxyXG4gICAgICAvLyAgIH0sXHJcbiAgICAgIC8vICAgZW5hYmxlQmVhcmVySW50ZXJjZXB0b3I6IHRydWUsXHJcbiAgICAgIC8vICAgbG9hZFVzZXJQcm9maWxlQXRTdGFydFVwOiBmYWxzZSxcclxuICAgICAgLy8gICBiZWFyZXJFeGNsdWRlZFVybHM6IGluc3RhbmNlQ29uZmlnLmtleWNsb2FrLmJlYXJlckV4Y2x1ZGVkVXJscyxcclxuICAgICAgLy8gfSlcclxuICAgICAgcmV0dXJuIHRydWVcclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIGxvZ2luKFxyXG4gIC8vICAgaWRwSGludDogJ0UnIHwgJ04nIHwgJ1MnID0gJ0UnLFxyXG4gIC8vICAgcmVkaXJlY3RVcmw6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFJlZGlyZWN0VXJsLFxyXG4gIC8vICk6IFByb21pc2U8dm9pZD4ge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMua2V5Y2xvYWtTdmMubG9naW4oe1xyXG4gIC8vICAgICBpZHBIaW50LFxyXG4gIC8vICAgICByZWRpcmVjdFVyaTogcmVkaXJlY3RVcmwsXHJcbiAgLy8gICB9KVxyXG4gIC8vIH1cclxuICBsb2dpblYyKFxyXG4gICAgX2lkcEhpbnQ6ICdFJyB8ICdOJyB8ICdTJyA9ICdFJyxcclxuICAgIHJlZGlyZWN0VXJsOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRSZWRpcmVjdFVybCxcclxuICApOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmNvbmZpZ1N2Yy5pbnN0YW5jZUNvbmZpZykge1xyXG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMuY29uZmlnU3ZjLmluc3RhbmNlQ29uZmlnLmtleWNsb2FrLnVybCArIHJlZGlyZWN0VXJsXHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KClcclxuICB9XHJcbiAgLy8gcmVnaXN0ZXIoXHJcbiAgLy8gICByZWRpcmVjdFVybDogc3RyaW5nID0gdGhpcy5kZWZhdWx0UmVkaXJlY3RVcmwsXHJcbiAgLy8gKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5rZXljbG9ha1N2Yy5yZWdpc3Rlcih7XHJcbiAgLy8gICAgIHJlZGlyZWN0VXJpOiByZWRpcmVjdFVybCxcclxuICAvLyAgIH0pXHJcbiAgLy8gfVxyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIHRoaXMgd2lsbCBiZSBkZXByaWNhdGVkXHJcbiAgICovXHJcbiAgYXN5bmMgbG9nb3V0KHJlZGlyZWN0VXJsID0gdGhpcy5kZWZhdWx0UmVkaXJlY3RVcmwpIHtcclxuICAgIGlmIChzdG9yYWdlLmdldEl0ZW0oJ3RlbGVtZXRyeVNlc3Npb25JZCcpKSB7XHJcbiAgICAgIHN0b3JhZ2UucmVtb3ZlSXRlbSgndGVsZW1ldHJ5U2Vzc2lvbklkJylcclxuICAgIH1cclxuICAgIHRyeSB7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLmNsZWFyKClcclxuICAgICAgbG9jYWxTdG9yYWdlLmNsZWFyKClcclxuICAgIH0gY2F0Y2gge1xyXG5cclxuICAgIH1cclxuICAgIHN0b3JhZ2UucmVtb3ZlSXRlbShzdG9yYWdlS2V5KVxyXG4gICAgLy8gYWxlcnQoYCR7cmVkaXJlY3RVcmx9YXBpcy9yZXNldGApXHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke3JlZGlyZWN0VXJsfWFwaXMvcmVzZXRgXHJcbiAgICAvLyB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICdodHRwOi8vbG9jYWxob3N0OjMwMDMvcmVzZXQnXHJcbiAgICAvLyAgYXdhaXQgdGhpcy5odHRwLmdldCgnL2FwaXMvcmVzZXQnKS50b1Byb21pc2UoKVxyXG4gICAgLy8gc2V0VGltZW91dCh3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke3JlZGlyZWN0VXJsfWFwaXMvcmVzZXRgLCAxMzAwMClcclxuICAgIC8vIGxvZ291dFJlZGlyZWN0VXJsID0gcmVkaXJlY3RVcmxcclxuICAgIC8vIGlmICh0aGlzLm1zQXV0aFN2Yy5pc0xvZ291dFJlcXVpcmVkKSB7XHJcbiAgICAvLyAgIHRoaXMua2V5Y2xvYWtTdmMubG9nb3V0KHRoaXMubXNBdXRoU3ZjLmxvZ291dFVybChyZWRpcmVjdFVybCkpXHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gdGhpcy5rZXljbG9ha1N2Yy5sb2dvdXQocmVkaXJlY3RVcmwpXHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gIGFzeW5jIGZvcmNlX2xvZ291dCgpIHtcclxuICAgIGlmIChzdG9yYWdlLmdldEl0ZW0oJ3RlbGVtZXRyeVNlc3Npb25JZCcpKSB7XHJcbiAgICAgIHN0b3JhZ2UucmVtb3ZlSXRlbSgndGVsZW1ldHJ5U2Vzc2lvbklkJylcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9wdWJsaWMvaG9tZSdcclxuICAgICAgc3RvcmFnZS5yZW1vdmVJdGVtKHN0b3JhZ2VLZXkpXHJcbiAgICAgIGF3YWl0IHRoaXMuaHR0cC5nZXQoJy9hcGlzL3Jlc2V0JykudG9Qcm9taXNlKClcclxuICAgICAgYXdhaXQgdGhpcy5odHRwLmdldCgnaHR0cHM6Ly9hZG1pbi10ZXN0LmVjb3JuZWxsLmNvbS9zYW1sL2xvZ291dC5kbycpLnRvUHJvbWlzZSgpXHJcbiAgICB9XHJcbiAgICB0cnkge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5jbGVhcigpXHJcbiAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpXHJcbiAgICB9IGNhdGNoIHtcclxuXHJcbiAgICB9XHJcbiAgICBzdG9yYWdlLnJlbW92ZUl0ZW0oc3RvcmFnZUtleSlcclxuICAgIGF3YWl0IHRoaXMuaHR0cC5nZXQoJy9hcGlzL3Jlc2V0JykudG9Qcm9taXNlKClcclxuICAgIGF3YWl0IHRoaXMuaHR0cC5nZXQoJ2h0dHBzOi8vYWRtaW4tdGVzdC5lY29ybmVsbC5jb20vc2FtbC9sb2dvdXQuZG8nKS50b1Byb21pc2UoKVxyXG4gIH1cclxuICBwcml2YXRlIGFkZEtleWNsb2FrRXZlbnRMaXN0ZW5lcigpIHtcclxuICAgIC8vIHRoaXMua2V5Y2xvYWtTdmMua2V5Y2xvYWtFdmVudHMkLnN1YnNjcmliZSgoZXZlbnQ6IEtleWNsb2FrRXZlbnQpID0+IHtcclxuICAgIC8vICAgc3dpdGNoIChldmVudC50eXBlKSB7XHJcbiAgICAvLyAgICAgY2FzZSBLZXljbG9ha0V2ZW50VHlwZS5PbkF1dGhFcnJvcjpcclxuICAgIC8vICAgICAgIHRoaXMubG9naW5DaGFuZ2VTdWJqZWN0Lm5leHQoZmFsc2UpXHJcbiAgICAvLyAgICAgICBicmVha1xyXG4gICAgLy8gICAgIGNhc2UgS2V5Y2xvYWtFdmVudFR5cGUuT25BdXRoTG9nb3V0OlxyXG4gICAgLy8gICAgICAgdGhpcy5sb2dpbkNoYW5nZVN1YmplY3QubmV4dChmYWxzZSlcclxuICAgIC8vICAgICAgIHN0b3JhZ2UucmVtb3ZlSXRlbShzdG9yYWdlS2V5KVxyXG4gICAgLy8gICAgICAgYnJlYWtcclxuICAgIC8vICAgICBjYXNlIEtleWNsb2FrRXZlbnRUeXBlLk9uQXV0aFJlZnJlc2hFcnJvcjpcclxuICAgIC8vICAgICAgIGJyZWFrXHJcbiAgICAvLyAgICAgY2FzZSBLZXljbG9ha0V2ZW50VHlwZS5PbkF1dGhSZWZyZXNoU3VjY2VzczpcclxuICAgIC8vICAgICAgIGJyZWFrXHJcbiAgICAvLyAgICAgY2FzZSBLZXljbG9ha0V2ZW50VHlwZS5PbkF1dGhTdWNjZXNzOlxyXG4gICAgLy8gICAgICAgYnJlYWtcclxuICAgIC8vICAgICBjYXNlIEtleWNsb2FrRXZlbnRUeXBlLk9uUmVhZHk6XHJcbiAgICAvLyAgICAgICB0aGlzLmxvZ2luQ2hhbmdlU3ViamVjdC5uZXh0KGV2ZW50LmFyZ3MpXHJcbiAgICAvLyAgICAgICBpZiAoZXZlbnQuYXJncykge1xyXG4gICAgLy8gICAgICAgICB0aGlzLnNhdmVLZXljbG9ha0NvbmZpZygpXHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgICBicmVha1xyXG4gICAgLy8gICAgIGNhc2UgS2V5Y2xvYWtFdmVudFR5cGUuT25Ub2tlbkV4cGlyZWQ6XHJcbiAgICAvLyAgICAgICB0aGlzLmtleWNsb2FrU3ZjLnVwZGF0ZVRva2VuKDYwKVxyXG4gICAgLy8gICAgICAgYnJlYWtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBHbG9iYWxBdXRoUmVzcG9uZGVyKCkge1xyXG4gICAgLy8gZnJvbUV2ZW50PE1lc3NhZ2VFdmVudD4od2luZG93LCAnbWVzc2FnZScpXHJcbiAgICAvLyAgIC5waXBlKFxyXG4gICAgLy8gICAgIGZpbHRlcihcclxuICAgIC8vICAgICAgIChldmVudDogTWVzc2FnZUV2ZW50KSA9PlxyXG4gICAgLy8gICAgICAgICBCb29sZWFuKGV2ZW50KSAmJlxyXG4gICAgLy8gICAgICAgICBCb29sZWFuKGV2ZW50LmRhdGEpICYmXHJcbiAgICAvLyAgICAgICAgIGV2ZW50LmRhdGEudHlwZSA9PT0gJ0FVVEhfUkVRVUVTVCcgJiZcclxuICAgIC8vICAgICAgICAgQm9vbGVhbihldmVudC5zb3VyY2UgJiYgdHlwZW9mIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSA9PT0gJ2Z1bmN0aW9uJyksXHJcbiAgICAvLyAgICAgKSxcclxuICAgIC8vICAgKVxyXG4gICAgLy8gICAuc3Vic2NyaWJlKGFzeW5jIChldmVudDogTWVzc2FnZUV2ZW50KSA9PiB7XHJcbiAgICAvLyAgICAgY29uc3QgY29udGVudFdpbmRvdyA9IGV2ZW50LnNvdXJjZSBhcyBXaW5kb3dcclxuICAgIC8vICAgICBjb25zdCB0b2tlbiA9IGF3YWl0IHRoaXMua2V5Y2xvYWtTdmMuZ2V0VG9rZW4oKVxyXG4gICAgLy8gICAgIGNvbnN0IHJlc3BvbnNlID0ge1xyXG4gICAgLy8gICAgICAgYXBwOiAnV0VCX1BPUlRBTCcsXHJcbiAgICAvLyAgICAgICB0eXBlOiAnQVVUSF9SRVNQT05TRScsXHJcbiAgICAvLyAgICAgICBzdGF0ZTogJ05PTkUnLFxyXG4gICAgLy8gICAgICAgcGx1Z2luOiAnTk9ORScsXHJcbiAgICAvLyAgICAgICBkYXRhOiB7XHJcbiAgICAvLyAgICAgICAgIHRva2VuLFxyXG4gICAgLy8gICAgICAgICBpZDogZXZlbnQuZGF0YSAmJiBldmVudC5kYXRhLmRhdGEgJiYgZXZlbnQuZGF0YS5kYXRhLmlkLFxyXG4gICAgLy8gICAgICAgfSxcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShyZXNwb25zZSwgJyonKVxyXG4gICAgLy8gICB9KVxyXG4gIH1cclxuXHJcbiAgLy8gVXRpbGl0eSBNZXRob2RzXHJcbiAgLy8gcHJpdmF0ZSBzYXZlS2V5Y2xvYWtDb25maWcoKSB7XHJcbiAgLy8gICAvLyBjb25zdCBrYyA9IHRoaXMua2V5Y2xvYWtTdmMuZ2V0S2V5Y2xvYWtJbnN0YW5jZSgpXHJcbiAgLy8gICAvLyBjb25zdCBrY0luaXRPcHRpb25zOiBLZXljbG9ha0luaXRPcHRpb25zID0ge1xyXG4gIC8vICAgLy8gICBpZFRva2VuOiBrYy5pZFRva2VuLFxyXG4gIC8vICAgLy8gICByZWZyZXNoVG9rZW46IGtjLnJlZnJlc2hUb2tlbixcclxuICAvLyAgIC8vICAgdGltZVNrZXc6IGtjLnRpbWVTa2V3LFxyXG4gIC8vICAgLy8gICB0b2tlbjoga2MudG9rZW4sXHJcbiAgLy8gICAvLyB9XHJcbiAgLy8gICAvLyBzdG9yYWdlLnNldEl0ZW0oc3RvcmFnZUtleSwgSlNPTi5zdHJpbmdpZnkoa2NJbml0T3B0aW9ucykpXHJcbiAgLy8gfVxyXG4gIC8vIHByaXZhdGUgZ2V0U2F2ZWRLY0NvbmZpZygpOiBLZXljbG9ha0luaXRPcHRpb25zIHtcclxuICAvLyAgIHRyeSB7XHJcbiAgLy8gICAgIC8vIGNvbnN0IGxhc3RTYXZlZCA9IEtFWUNMT0FLX1NUT1JBR0UuZ2V0SXRlbShrZXkpO1xyXG4gIC8vICAgICBjb25zdCBsYXN0U2F2ZWQgPSBzdG9yYWdlLmdldEl0ZW0oc3RvcmFnZUtleSlcclxuICAvLyAgICAgaWYgKGxhc3RTYXZlZCkge1xyXG4gIC8vICAgICAgIGNvbnN0IHByb2Nlc3NlZCA9IEpTT04ucGFyc2UobGFzdFNhdmVkKVxyXG4gIC8vICAgICAgIGlmIChcclxuICAvLyAgICAgICAgICdpZFRva2VuJyBpbiBwcm9jZXNzZWQgJiZcclxuICAvLyAgICAgICAgICdyZWZyZXNoVG9rZW4nIGluIHByb2Nlc3NlZCAmJlxyXG4gIC8vICAgICAgICAgJ3RpbWVTa2V3JyBpbiBwcm9jZXNzZWQgJiZcclxuICAvLyAgICAgICAgICd0b2tlbicgaW4gcHJvY2Vzc2VkXHJcbiAgLy8gICAgICAgKSB7XHJcbiAgLy8gICAgICAgICByZXR1cm4gcHJvY2Vzc2VkXHJcbiAgLy8gICAgICAgfVxyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9IGNhdGNoIChlKSB7IH1cclxuICAvLyAgIHJldHVybiB7fVxyXG4gIC8vIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgZGVmYXVsdFJlZGlyZWN0VXJsKCk6IHN0cmluZyB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBiYXNlVXJsID0gZG9jdW1lbnQuYmFzZVVSSVxyXG4gICAgICByZXR1cm4gYmFzZVVybCB8fCBsb2NhdGlvbi5vcmlnaW5cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHJldHVybiBsb2NhdGlvbi5vcmlnaW5cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,173 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./logger.service";
4
+ import * as i2 from "@angular/common/http";
5
+ const msTokenExpiryDuration = 600;
6
+ const storageKey = 'msLoginRequested';
7
+ const storage = localStorage;
8
+ const API_ENDPOINTS = {
9
+ sharePointToken: '/apis/protected/v8/user/token',
10
+ };
11
+ export class AuthMicrosoftService {
12
+ constructor(loggerSvc, http) {
13
+ this.loggerSvc = loggerSvc;
14
+ this.http = http;
15
+ this.msConfig = {
16
+ clientId: '',
17
+ tenant: '',
18
+ defaultEmailId: '',
19
+ validEmailExtensions: [],
20
+ isConfigured: false,
21
+ };
22
+ this.emailUsed = null;
23
+ this.code = null;
24
+ this.msToken = {
25
+ accessToken: '',
26
+ expiresOn: '',
27
+ resource: '',
28
+ tokenType: '',
29
+ };
30
+ }
31
+ get isLogoutRequired() {
32
+ return Boolean(this.msConfig.isConfigured && this.msConfig.clientId && this.emailUsed);
33
+ }
34
+ get loginUrl() {
35
+ if (this.msConfig.isConfigured && this.msConfig.clientId) {
36
+ const base = 'https://login.windows.net/common/oauth2/authorize';
37
+ const searchParam = new URLSearchParams({
38
+ response_type: 'code',
39
+ client_id: this.msConfig.clientId,
40
+ redirect_uri: window.location.href,
41
+ });
42
+ const fragment = location.search.substring(1);
43
+ if (fragment) {
44
+ return `${base}?${searchParam.toString()}#${fragment}`;
45
+ }
46
+ return `${base}?${searchParam.toString()}`;
47
+ }
48
+ return null;
49
+ }
50
+ logoutUrl(redirectUrl) {
51
+ if (this.isValidEmail(this.emailUsed || '')) {
52
+ return `https://login.microsoftonline.com/common/oauth2/logout?post_logout_redirect_uri=${redirectUrl}`;
53
+ }
54
+ return redirectUrl;
55
+ }
56
+ async init(config) {
57
+ if (!config || !config.microsoft || !config.microsoft.isConfigured) {
58
+ this.loggerSvc.warn('Empty/No Configuration passed, ignoring Microsoft Authentication');
59
+ }
60
+ this.msConfig = config.microsoft;
61
+ const queryParams = new URLSearchParams(location.search);
62
+ if (queryParams.has('code') && queryParams.has('session_state')) {
63
+ this.code = queryParams.get('code');
64
+ if (!this.code) {
65
+ return;
66
+ }
67
+ let url = location.origin + location.pathname;
68
+ await this.exchangeTokenForCode(this.code, url);
69
+ if (location.hash) {
70
+ url += location.hash.substring(1);
71
+ }
72
+ history.replaceState(null, '', url);
73
+ }
74
+ }
75
+ async login(email) {
76
+ if (!this.isValidEmail(email)) {
77
+ this.loggerSvc.warn(`Microsoft Login is not allowed for your emailId (${email})`);
78
+ return;
79
+ }
80
+ const loginUrl = this.loginUrl;
81
+ if (loginUrl) {
82
+ location.assign(loginUrl);
83
+ }
84
+ else {
85
+ this.loggerSvc.warn('Unable to identify Office Login URL, Ignoring login request');
86
+ }
87
+ }
88
+ async getToken(email) {
89
+ if (this.msToken &&
90
+ this.isValid(this.msToken.accessToken, this.msToken.expiresOn) &&
91
+ this.msToken.accessToken) {
92
+ return this.msToken.accessToken;
93
+ }
94
+ if (this.isValidEmail(email)) {
95
+ try {
96
+ this.msToken = await this.getTokenForEmail(email);
97
+ if (this.msToken.accessToken) {
98
+ this.emailUsed = email;
99
+ return this.msToken.accessToken;
100
+ }
101
+ }
102
+ catch (error) {
103
+ if (!this.code) {
104
+ this.login(email);
105
+ }
106
+ }
107
+ }
108
+ if (this.msConfig.defaultEmailId && this.isValidEmail(this.msConfig.defaultEmailId)) {
109
+ try {
110
+ this.msToken = await this.getTokenForEmail(this.msConfig.defaultEmailId);
111
+ if (this.msToken.accessToken) {
112
+ this.emailUsed = this.msConfig.defaultEmailId;
113
+ return this.msToken.accessToken;
114
+ }
115
+ }
116
+ catch (error) { }
117
+ }
118
+ throw new Error('UNABLE TO FETCH MS AUTH TOKEN');
119
+ }
120
+ loginForSSOEnabledEmbed(email) {
121
+ if (!this.isValidEmail(email)) {
122
+ this.loggerSvc.warn('SSO Login request Ignored. Invalid Email Id for SSO Enabled Content');
123
+ }
124
+ let msPrevTS = 0;
125
+ try {
126
+ msPrevTS = parseInt(storage.getItem(storageKey) || '0', 10);
127
+ }
128
+ catch (error) { }
129
+ if (!msPrevTS || (msPrevTS && (Date.now() - msPrevTS) / 1000 > msTokenExpiryDuration)) {
130
+ this.loggerSvc.info(`last login exceeded ${msTokenExpiryDuration} duration. Redirecting to O365 login`);
131
+ storage.setItem(storageKey, Date.now().toString());
132
+ this.login(email);
133
+ }
134
+ }
135
+ isValidEmail(email) {
136
+ return this.msConfig.validEmailExtensions.some(ext => email.endsWith(ext));
137
+ }
138
+ isValid(accessToken, expiresOn) {
139
+ if (accessToken && expiresOn) {
140
+ return true;
141
+ }
142
+ return false;
143
+ }
144
+ async exchangeTokenForCode(code, redirectUrl) {
145
+ const response = await this.http
146
+ .get(`${API_ENDPOINTS}?code=${code}&redirectUrl=${redirectUrl}`)
147
+ .toPromise();
148
+ return this.getInstanceFromResponse(response);
149
+ }
150
+ async getTokenForEmail(email) {
151
+ const response = await this.http
152
+ .get(`${API_ENDPOINTS.sharePointToken}?email=${email}`)
153
+ .toPromise();
154
+ return this.getInstanceFromResponse(response);
155
+ }
156
+ getInstanceFromResponse(token) {
157
+ return {
158
+ accessToken: token.accessToken,
159
+ expiresOn: token.expiresOn,
160
+ resource: token.resource,
161
+ tokenType: token.tokenType,
162
+ };
163
+ }
164
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthMicrosoftService, deps: [{ token: i1.LoggerService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
165
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthMicrosoftService, providedIn: 'root' }); }
166
+ }
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AuthMicrosoftService, decorators: [{
168
+ type: Injectable,
169
+ args: [{
170
+ providedIn: 'root',
171
+ }]
172
+ }], ctorParameters: function () { return [{ type: i1.LoggerService }, { type: i2.HttpClient }]; } });
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1taWNyb3NvZnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi91dGlscy12Mi9zcmMvbGliL3NlcnZpY2VzL2F1dGgtbWljcm9zb2Z0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7OztBQU8xQyxNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQTtBQUNqQyxNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQTtBQUNyQyxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUE7QUFFNUIsTUFBTSxhQUFhLEdBQUc7SUFDcEIsZUFBZSxFQUFFLCtCQUErQjtDQUNqRCxDQUFBO0FBSUQsTUFBTSxPQUFPLG9CQUFvQjtJQWlCL0IsWUFBb0IsU0FBd0IsRUFBVSxJQUFnQjtRQUFsRCxjQUFTLEdBQVQsU0FBUyxDQUFlO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBWTtRQWhCOUQsYUFBUSxHQUFnQztZQUM5QyxRQUFRLEVBQUUsRUFBRTtZQUNaLE1BQU0sRUFBRSxFQUFFO1lBQ1YsY0FBYyxFQUFFLEVBQUU7WUFDbEIsb0JBQW9CLEVBQUUsRUFBRTtZQUN4QixZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFBO1FBQ08sY0FBUyxHQUFrQixJQUFJLENBQUE7UUFDL0IsU0FBSSxHQUFrQixJQUFJLENBQUE7UUFDMUIsWUFBTyxHQUE0QjtZQUN6QyxXQUFXLEVBQUUsRUFBRTtZQUNmLFNBQVMsRUFBRSxFQUFFO1lBQ2IsUUFBUSxFQUFFLEVBQUU7WUFDWixTQUFTLEVBQUUsRUFBRTtTQUNkLENBQUE7SUFFeUUsQ0FBQztJQUUzRSxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxJQUFJLENB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bmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuL2xvZ2dlci5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBOc0luc3RhbmNlQ29uZmlnIH0gZnJvbSAnLi9jb25maWd1cmF0aW9ucy5tb2RlbCdcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBJV3NNc1Rva2VuTW9kZWxSZXNwb25zZSB9IGZyb20gJy4vbXMtb2ZmaWNlLm1vZGVsJ1xyXG4vLyBUT0RPOiBVc2UgYSB1cmwtc2VhcmNoLXBvbHlmaWxsIGlmIHRoZSBzaXRlIGRpZG5vdCB3b3JrIGluIElFIDExXHJcblxyXG5jb25zdCBtc1Rva2VuRXhwaXJ5RHVyYXRpb24gPSA2MDBcclxuY29uc3Qgc3RvcmFnZUtleSA9ICdtc0xvZ2luUmVxdWVzdGVkJ1xyXG5jb25zdCBzdG9yYWdlID0gbG9jYWxTdG9yYWdlXHJcblxyXG5jb25zdCBBUElfRU5EUE9JTlRTID0ge1xyXG4gIHNoYXJlUG9pbnRUb2tlbjogJy9hcGlzL3Byb3RlY3RlZC92OC91c2VyL3Rva2VuJyxcclxufVxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aE1pY3Jvc29mdFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgbXNDb25maWc6IE5zSW5zdGFuY2VDb25maWcuSU1pY3Jvc29mdCA9IHtcclxuICAgIGNsaWVudElkOiAnJyxcclxuICAgIHRlbmFudDogJycsXHJcbiAgICBkZWZhdWx0RW1haWxJZDogJycsXHJcbiAgICB2YWxpZEVtYWlsRXh0ZW5zaW9uczogW10sXHJcbiAgICBpc0NvbmZpZ3VyZWQ6IGZhbHNlLFxyXG4gIH1cclxuICBwcml2YXRlIGVtYWlsVXNlZDogc3RyaW5nIHwgbnVsbCA9IG51bGxcclxuICBwcml2YXRlIGNvZGU6IHN0cmluZyB8IG51bGwgPSBudWxsXHJcbiAgcHJpdmF0ZSBtc1Rva2VuOiBJV3NNc1Rva2VuTW9kZWxSZXNwb25zZSA9IHtcclxuICAgIGFjY2Vzc1Rva2VuOiAnJyxcclxuICAgIGV4cGlyZXNPbjogJycsXHJcbiAgICByZXNvdXJjZTogJycsXHJcbiAgICB0b2tlblR5cGU6ICcnLFxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2dnZXJTdmM6IExvZ2dlclNlcnZpY2UsIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkgeyB9XHJcblxyXG4gIGdldCBpc0xvZ291dFJlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5tc0NvbmZpZy5pc0NvbmZpZ3VyZWQgJiYgdGhpcy5tc0NvbmZpZy5jbGllbnRJZCAmJiB0aGlzLmVtYWlsVXNlZClcclxuICB9XHJcbiAgZ2V0IGxvZ2luVXJsKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgaWYgKHRoaXMubXNDb25maWcuaXNDb25maWd1cmVkICYmIHRoaXMubXNDb25maWcuY2xpZW50SWQpIHtcclxuICAgICAgY29uc3QgYmFzZSA9ICdodHRwczovL2xvZ2luLndpbmRvd3MubmV0L2NvbW1vbi9vYXV0aDIvYXV0aG9yaXplJ1xyXG4gICAgICBjb25zdCBzZWFyY2hQYXJhbSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xyXG4gICAgICAgIHJlc3BvbnNlX3R5cGU6ICdjb2RlJyxcclxuICAgICAgICBjbGllbnRfaWQ6IHRoaXMubXNDb25maWcuY2xpZW50SWQsXHJcbiAgICAgICAgcmVkaXJlY3RfdXJpOiB3aW5kb3cubG9jYXRpb24uaHJlZixcclxuICAgICAgfSlcclxuICAgICAgY29uc3QgZnJhZ21lbnQgPSBsb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpXHJcbiAgICAgIGlmIChmcmFnbWVudCkge1xyXG4gICAgICAgIHJldHVybiBgJHtiYXNlfT8ke3NlYXJjaFBhcmFtLnRvU3RyaW5nKCl9IyR7ZnJhZ21lbnR9YFxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBgJHtiYXNlfT8ke3NlYXJjaFBhcmFtLnRvU3RyaW5nKCl9YFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGxcclxuICB9XHJcbiAgbG9nb3V0VXJsKHJlZGlyZWN0VXJsOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmlzVmFsaWRFbWFpbCh0aGlzLmVtYWlsVXNlZCB8fCAnJykpIHtcclxuICAgICAgcmV0dXJuIGBodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vY29tbW9uL29hdXRoMi9sb2dvdXQ/cG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpPSR7cmVkaXJlY3RVcmx9YFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlZGlyZWN0VXJsXHJcbiAgfVxyXG5cclxuICAvLyBCZWhhdmlvciBNZXRob2RzXHJcblxyXG4gIGFzeW5jIGluaXQoY29uZmlnOiBQaWNrPE5zSW5zdGFuY2VDb25maWcuSUNvbmZpZywgJ21pY3Jvc29mdCc+KSB7XHJcbiAgICBpZiAoIWNvbmZpZyB8fCAhY29uZmlnLm1pY3Jvc29mdCB8fCAhY29uZmlnLm1pY3Jvc29mdC5pc0NvbmZpZ3VyZWQpIHtcclxuICAgICAgdGhpcy5sb2dnZXJTdmMud2FybignRW1wdHkvTm8gQ29uZmlndXJhdGlvbiBwYXNzZWQsIGlnbm9yaW5nIE1pY3Jvc29mdCBBdXRoZW50aWNhdGlvbicpXHJcbiAgICB9XHJcbiAgICB0aGlzLm1zQ29uZmlnID0gY29uZmlnLm1pY3Jvc29mdFxyXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaClcclxuICAgIGlmIChxdWVyeVBhcmFtcy5oYXMoJ2NvZGUnKSAmJiBxdWVyeVBhcmFtcy5oYXMoJ3Nlc3Npb25fc3RhdGUnKSkge1xyXG4gICAgICB0aGlzLmNvZGUgPSBxdWVyeVBhcmFtcy5nZXQoJ2NvZGUnKVxyXG4gICAgICBpZiAoIXRoaXMuY29kZSkge1xyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIGxldCB1cmwgPSBsb2NhdGlvbi5vcmlnaW4gKyBsb2NhdGlvbi5wYXRobmFtZVxyXG4gICAgICBhd2FpdCB0aGlzLmV4Y2hhbmdlVG9rZW5Gb3JDb2RlKHRoaXMuY29kZSwgdXJsKVxyXG4gICAgICBpZiAobG9jYXRpb24uaGFzaCkge1xyXG4gICAgICAgIHVybCArPSBsb2NhdGlvbi5oYXNoLnN1YnN0cmluZygxKVxyXG4gICAgICB9XHJcbiAgICAgIGhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsICcnLCB1cmwpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBsb2dpbihlbWFpbDogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNWYWxpZEVtYWlsKGVtYWlsKSkge1xyXG4gICAgICB0aGlzLmxvZ2dlclN2Yy53YXJuKGBNaWNyb3NvZnQgTG9naW4gaXMgbm90IGFsbG93ZWQgZm9yIHlvdXIgZW1haWxJZCAoJHtlbWFpbH0pYClcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBjb25zdCBsb2dpblVybCA9IHRoaXMubG9naW5VcmxcclxuICAgIGlmIChsb2dpblVybCkge1xyXG4gICAgICBsb2NhdGlvbi5hc3NpZ24obG9naW5VcmwpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvZ2dlclN2Yy53YXJuKCdVbmFibGUgdG8gaWRlbnRpZnkgT2ZmaWNlIExvZ2luIFVSTCwgSWdub3JpbmcgbG9naW4gcmVxdWVzdCcpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRUb2tlbihlbWFpbDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5tc1Rva2VuICYmXHJcbiAgICAgIHRoaXMuaXNWYWxpZCh0aGlzLm1zVG9rZW4uYWNjZXNzVG9rZW4sIHRoaXMubXNUb2tlbi5leHBpcmVzT24pICYmXHJcbiAgICAgIHRoaXMubXNUb2tlbi5hY2Nlc3NUb2tlblxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1zVG9rZW4uYWNjZXNzVG9rZW5cclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlzVmFsaWRFbWFpbChlbWFpbCkpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICB0aGlzLm1zVG9rZW4gPSBhd2FpdCB0aGlzLmdldFRva2VuRm9yRW1haWwoZW1haWwpXHJcbiAgICAgICAgaWYgKHRoaXMubXNUb2tlbi5hY2Nlc3NUb2tlbikge1xyXG4gICAgICAgICAgdGhpcy5lbWFpbFVzZWQgPSBlbWFpbFxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMubXNUb2tlbi5hY2Nlc3NUb2tlblxyXG4gICAgICAgIH1cclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY29kZSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dpbihlbWFpbClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1zQ29uZmlnLmRlZmF1bHRFbWFpbElkICYmIHRoaXMuaXNWYWxpZEVtYWlsKHRoaXMubXNDb25maWcuZGVmYXVsdEVtYWlsSWQpKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdGhpcy5tc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRUb2tlbkZvckVtYWlsKHRoaXMubXNDb25maWcuZGVmYXVsdEVtYWlsSWQpXHJcbiAgICAgICAgaWYgKHRoaXMubXNUb2tlbi5hY2Nlc3NUb2tlbikge1xyXG4gICAgICAgICAgdGhpcy5lbWFpbFVzZWQgPSB0aGlzLm1zQ29uZmlnLmRlZmF1bHRFbWFpbElkXHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5tc1Rva2VuLmFjY2Vzc1Rva2VuXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGNhdGNoIChlcnJvcikgeyB9XHJcbiAgICB9XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VOQUJMRSBUTyBGRVRDSCBNUyBBVVRIIFRPS0VOJylcclxuICB9XHJcblxyXG4gIGxvZ2luRm9yU1NPRW5hYmxlZEVtYmVkKGVtYWlsOiBzdHJpbmcpIHtcclxuICAgIGlmICghdGhpcy5pc1ZhbGlkRW1haWwoZW1haWwpKSB7XHJcbiAgICAgIHRoaXMubG9nZ2VyU3ZjLndhcm4oJ1NTTyBMb2dpbiByZXF1ZXN0IElnbm9yZWQuIEludmFsaWQgRW1haWwgSWQgZm9yIFNTTyBFbmFibGVkIENvbnRlbnQnKVxyXG4gICAgfVxyXG4gICAgbGV0IG1zUHJldlRTID0gMFxyXG4gICAgdHJ5IHtcclxuICAgICAgbXNQcmV2VFMgPSBwYXJzZUludChzdG9yYWdlLmdldEl0ZW0oc3RvcmFnZUtleSkgfHwgJzAnLCAxMClcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7IH1cclxuICAgIGlmICghbXNQcmV2VFMgfHwgKG1zUHJldlRTICYmIChEYXRlLm5vdygpIC0gbXNQcmV2VFMpIC8gMTAwMCA+IG1zVG9rZW5FeHBpcnlEdXJhdGlvbikpIHtcclxuICAgICAgdGhpcy5sb2dnZXJTdmMuaW5mbyhcclxuICAgICAgICBgbGFzdCBsb2dpbiBleGNlZWRlZCAke21zVG9rZW5FeHBpcnlEdXJhdGlvbn0gZHVyYXRpb24uIFJlZGlyZWN0aW5nIHRvIE8zNjUgbG9naW5gLFxyXG4gICAgICApXHJcbiAgICAgIHN0b3JhZ2Uuc2V0SXRlbShzdG9yYWdlS2V5LCBEYXRlLm5vdygpLnRvU3RyaW5nKCkpXHJcbiAgICAgIHRoaXMubG9naW4oZW1haWwpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc1ZhbGlkRW1haWwoZW1haWw6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMubXNDb25maWcudmFsaWRFbWFpbEV4dGVuc2lvbnMuc29tZShleHQgPT4gZW1haWwuZW5kc1dpdGgoZXh0KSlcclxuICB9XHJcblxyXG4gIGlzVmFsaWQoYWNjZXNzVG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZCwgZXhwaXJlc09uOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcclxuICAgIGlmIChhY2Nlc3NUb2tlbiAmJiBleHBpcmVzT24pIHtcclxuICAgICAgLy8gVE9ETzogSW1wbGVtZW50IGV4cGlyZWRPbiBhbmQgRGF0ZSBjb21wYXJpc29uIGJhc2VkIHZhbGlkaXR5XHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2VcclxuICB9XHJcblxyXG4gIGFzeW5jIGV4Y2hhbmdlVG9rZW5Gb3JDb2RlKGNvZGU6IHN0cmluZywgcmVkaXJlY3RVcmw6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PElXc01zVG9rZW5Nb2RlbFJlc3BvbnNlPihgJHtBUElfRU5EUE9JTlRTfT9jb2RlPSR7Y29kZX0mcmVkaXJlY3RVcmw9JHtyZWRpcmVjdFVybH1gKVxyXG4gICAgICAudG9Qcm9taXNlKClcclxuICAgIHJldHVybiB0aGlzLmdldEluc3RhbmNlRnJvbVJlc3BvbnNlKHJlc3BvbnNlKVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0VG9rZW5Gb3JFbWFpbChlbWFpbDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8SVdzTXNUb2tlbk1vZGVsUmVzcG9uc2U+KGAke0FQSV9FTkRQT0lOVFMuc2hhcmVQb2ludFRva2VufT9lbWFpbD0ke2VtYWlsfWApXHJcbiAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SW5zdGFuY2VGcm9tUmVzcG9uc2UocmVzcG9uc2UpXHJcbiAgfVxyXG5cclxuICBnZXRJbnN0YW5jZUZyb21SZXNwb25zZSh0b2tlbjogSVdzTXNUb2tlbk1vZGVsUmVzcG9uc2UpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFjY2Vzc1Rva2VuOiB0b2tlbi5hY2Nlc3NUb2tlbixcclxuICAgICAgZXhwaXJlc09uOiB0b2tlbi5leHBpcmVzT24sXHJcbiAgICAgIHJlc291cmNlOiB0b2tlbi5yZXNvdXJjZSxcclxuICAgICAgdG9rZW5UeXBlOiB0b2tlbi50b2tlblR5cGUsXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,11 @@
1
+ export var NsCardContent;
2
+ (function (NsCardContent) {
3
+ let EContentStatus;
4
+ (function (EContentStatus) {
5
+ EContentStatus["LIVE"] = "Live";
6
+ EContentStatus["EXPIRED"] = "Expired";
7
+ EContentStatus["DELETED"] = "Deleted";
8
+ EContentStatus["MARK_FOR_DELETION"] = "MarkedForDeletion";
9
+ })(EContentStatus = NsCardContent.EContentStatus || (NsCardContent.EContentStatus = {}));
10
+ })(NsCardContent || (NsCardContent = {}));
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1jb250ZW50Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3V0aWxzLXYyL3NyYy9saWIvc2VydmljZXMvY2FyZC1jb250ZW50Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sS0FBVyxhQUFhLENBbUM3QjtBQW5DRCxXQUFpQixhQUFhO0lBNkI1QixJQUFZLGNBS1g7SUFMRCxXQUFZLGNBQWM7UUFDeEIsK0JBQWEsQ0FBQTtRQUNiLHFDQUFtQixDQUFBO1FBQ25CLHFDQUFtQixDQUFBO1FBQ25CLHlEQUF1QyxDQUFBO0lBQ3pDLENBQUMsRUFMVyxjQUFjLEdBQWQsNEJBQWMsS0FBZCw0QkFBYyxRQUt6QjtBQUNILENBQUMsRUFuQ2dCLGFBQWEsS0FBYixhQUFhLFFBbUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5zQ29udGVudCB9IGZyb20gJy4uL3NlcnZpY2VzL3dpZGdldC1jb250ZW50Lm1vZGVsJ1xyXG5cclxuZXhwb3J0IG5hbWVzcGFjZSBOc0NhcmRDb250ZW50IHtcclxuICBleHBvcnQgaW50ZXJmYWNlIElDYXJkIHtcclxuICAgIGNvbnRlbnQ6IE5zQ29udGVudC5JQ29udGVudFxyXG4gICAgY2FyZFN1YlR5cGU6IFRDYXJkU3ViVHlwZVxyXG4gICAgY29udGV4dDogeyBwYWdlU2VjdGlvbjogc3RyaW5nOyBwb3NpdGlvbj86IG51bWJlciB9XHJcbiAgICBpbnRyYW5ldE1vZGU/OiAnZ3JleU91dCcgfCAnaGlkZSdcclxuICAgIGRlbGV0ZWRNb2RlPzogJ2dyZXlPdXQnIHwgJ2hpZGUnXHJcbiAgICBsaWtlcz86IG51bWJlclxyXG4gICAgY29udGVudFRhZ3M/OiBJQ29udGVudFRhZ3NcclxuICB9XHJcblxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgSUNvbnRlbnRUYWdzIHtcclxuICAgIGRheXNTcGFuPzogbnVtYmVyXHJcbiAgICBleGNsdWRlQ29udGVudFR5cGU/OiBOc0NvbnRlbnQuRUNvbnRlbnRUeXBlc1tdXHJcbiAgICBleGNsdWRlTWltZVR5cGU/OiBzdHJpbmdbXVxyXG4gICAgdGFnOiBzdHJpbmdcclxuICAgIGNyaXRlcmlhRmllbGQ/OiBzdHJpbmdcclxuICB9XHJcblxyXG4gIGV4cG9ydCB0eXBlIFRDYXJkU3ViVHlwZSA9XHJcbiAgICB8ICdzdGFuZGFyZCdcclxuICAgIHwgJ21pbmltYWwnXHJcbiAgICB8ICdzcGFjZS1zYXZpbmcnXHJcbiAgICB8ICdjYXJkLXVzZXItZGV0YWlscydcclxuICAgIHwgJ2Jhc2ljLWluZm8nXHJcbiAgICB8ICdiYXNpYy1kZXRhaWxzJ1xyXG4gICAgfCAnY2FyZC1kZXNjcmlwdGlvbi1iYWNrJ1xyXG4gICAgfCAnbmV0d29yay1jYXJkJ1xyXG5cclxuICBleHBvcnQgZW51bSBFQ29udGVudFN0YXR1cyB7XHJcbiAgICBMSVZFID0gJ0xpdmUnLFxyXG4gICAgRVhQSVJFRCA9ICdFeHBpcmVkJyxcclxuICAgIERFTEVURUQgPSAnRGVsZXRlZCcsXHJcbiAgICBNQVJLX0ZPUl9ERUxFVElPTiA9ICdNYXJrZWRGb3JEZWxldGlvbicsXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdXRpbHMtdjIvc3JjL2xpYi9zZXJ2aWNlcy9jb25maWd1cmF0aW9ucy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTnNQYWdlIH0gZnJvbSAnLi4vcmVzb2x2ZXJzL3BhZ2UubW9kZWwnXG5pbXBvcnQgeyBOc1dpZGdldFJlc29sdmVyIH0gZnJvbSAnLi93aWRnZXQtcmVzb2x2ZXIubW9kZWwnXG5leHBvcnQgbmFtZXNwYWNlIE5zSW5zdGFuY2VDb25maWcge1xuICBleHBvcnQgaW50ZXJmYWNlIElDb25maWcge1xuICAgIGF1dGhvcmluZzoge1xuICAgICAgZG9VbmlxdWVDaGVjazogYm9vbGVhblxuICAgICAgaXNNdWx0aVN0ZXBGbG93OiBib29sZWFuXG4gICAgICBhbGxvd0V4cGlyeTogYm9vbGVhblxuICAgICAgYWxsb3dSZXN0b3JlOiBib29sZWFuXG4gICAgICBhbGxvd1JldmlldzogYm9vbGVhblxuICAgICAgYWxsb3dQdWJsaXNoOiBib29sZWFuXG4gICAgICBhbGxvd1JlZG86IGJvb2xlYW5cbiAgICAgIG5ld0Rlc2lnbjogYm9vbGVhblxuICAgICAgYWxsb3dlZENvbnRlbnRUeXBlOiBzdHJpbmdbXVxuICAgICAgdXJsUGF0dGVybk1hdGNoaW5nOiB7XG4gICAgICAgIGFsbG93UmVwbGFjZTogYm9vbGVhblxuICAgICAgICBzb3VyY2U6IHN0cmluZ1xuICAgICAgICBwYXR0ZXJuOiBzdHJpbmdcbiAgICAgICAgYWxsb3dJZnJhbWU6IGJvb2xlYW5cbiAgICAgIH1bXVxuICAgIH1cbiAgICBhcHBTZXR1cDogYm9vbGVhblxuICAgIGNoYXRCb3RVcmw6IHN0cmluZ1xuICAgIGRlZmF1bHRGb250c2l6ZTogc3RyaW5nXG4gICAgZGVmYXVsdFRoZW1lQ2xhc3M6IHN0cmluZ1xuICAgIGRlZmF1bHRMb2NhbGU6IHN0cmluZ1xuICAgIGRpc2FibGVQaWRDaGVjaz86IGJvb2xlYW5cbiAgICBpc011bHRpbGluZ3VhbEVuYWJsZWQ/OiBib29sZWFuXG4gICAgZm9udFNpemVzOiBJRm9udFNpemVbXVxuICAgIGlzQ29udGVudERvd25sb2FkQXZhaWxhYmxlOiBib29sZWFuXG4gICAgaW5kZXhIdG1sTWV0YTogSUluZGV4SHRtbE1ldGFcbiAgICBrZXljbG9hazogSUtleWNsb2FrXG4gICAgbG9jYWxzOiBJTG9jYWxzQ29uZmlnW11cbiAgICBtaWNyb3NvZnQ6IElNaWNyb3NvZnRcbiAgICB0ZWxlbWV0cnlDb25maWc6IElUZWxlbWV0cnlDb25maWdcbiAgICB0aGVtZXM6IElUaGVtZVtdXG4gICAgbG9nb3M6IElMb2dvc1xuICAgIHNvdXJjZXM/OiBJU291cmNlTG9nb1tdXG4gICAgbWFpbElkczogSU1haWxJZHNcbiAgICBkZXRhaWxzOiBJRGV0YWlsc1xuICAgIHZhbGlkTWFpbElkRXh0ZW5zaW9uc0Zvck1haWxNZTogc3RyaW5nW11cbiAgICBvdmVycmlkZVRoZW1lQ2hhbmdlczogSU92ZXJyaWRlVGhlbWVDaGFuZ2VzXG4gICAgZGVmYXVsdEZlYXR1cmVDb25maWdzOiB7XG4gICAgICBlcnJvcjogc3RyaW5nXG4gICAgfVxuICAgIGJhY2tncm91bmRzOiB7XG4gICAgICBwcmltYXJ5TmF2QmFyOiBOc1BhZ2UuSU5hdkJhY2tncm91bmRcbiAgICAgIHBhZ2VOYXZCYXI6IE5zUGFnZS5JTmF2QmFja2dyb3VuZFxuICAgIH1cbiAgICBmZWF0dXJlZEFwcHM6IHN0cmluZ1tdXG4gICAgcHJpbWFyeU5hdkJhckNvbmZpZzogSVByaW1hcnlOYXZiYXJDb25maWdcbiAgICBvcmc6IHN0cmluZ1tdXG4gICAgcm9vdE9yZzogc3RyaW5nXG4gICAgaW50cmFuZXRJZnJhbWVVcmxzPzogc3RyaW5nW11cbiAgICBzaG93TmF2QmFySW5TZXR1cD86IGJvb2xlYW5cbiAgICBpbnRyYW5ldFVybFRvQ2hlY2s/OiBzdHJpbmdcbiAgICBpbnRyb1ZpZGVvOiBJUGF0aFxuICAgIHRvdXJWaWRlbzogSVBhdGhcbiAgICBpc0Rvd25sb2FkYWJsZVNvdXJjZT86IElQYXRoXG4gICAgaXNEb3dubG9hZGFibGVJb3NSZXNvdXJjZT86IElQYXRoXG4gICAgaXNEb3dubG9hZGFibGVBbmRyb2lkUmVzb3VyY2U/OiBJUGF0aFxuICAgIHNvdXJjZUZpZWxkc1VzZXJBdXRvY29tcGxldGU/OiBzdHJpbmdbXVxuICAgIGZvcmdvdFBhc3N3b3JkQ29uZmlnPzogSUZvcmdvdFBhc3N3b3JkXG4gICAgaHViczogSUh1YnNbXVxuICAgIGNvdXJzZUNvbnRlbnRQYXRoPzogc3RyaW5nXG4gICAgcG9ydGFsVXJsczogSVBvcnRhbFVybHMgfCB1bmRlZmluZWRcbiAgICBwb3NpdGlvbnM6IGFueVxuICAgIHdlYnNpdGVsYW5ndWFnZXM6IGFueVtdXG4gICAgcHJvZmlsZVRpbWVseU51ZGdlczogYW55LFxuICAgIG5wc0NhdGVnb3J5Pzogc3RyaW5nXG4gICAgY29tcGVudGVuY3k/OiBhbnlcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElQb3J0YWxVcmxzIHtcbiAgICBpZ290OiBzdHJpbmcsXG4gICAgc3B2OiBzdHJpbmcsXG4gICAgbWRvOiBzdHJpbmcsXG4gICAgY2JjOiBzdHJpbmcsXG4gICAgY2JwOiBzdHJpbmcsXG4gICAgZnJhYzogc3RyaW5nXG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBJRm9yZ290UGFzc3dvcmQge1xuICAgIGxvY2FsPzogc3RyaW5nXG4gICAgZW50ZXJwcmlzZT86IHN0cmluZ1xuICAgIHNvY2lhbD86IHN0cmluZ1xuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgSVNvdXJjZUxvZ28ge1xuICAgIHNvdXJjZU5hbWU/OiBzdHJpbmdcbiAgICBzb3VyY2VJZD86IHN0cmluZ1xuICAgIGxvZ28/OiBzdHJpbmdcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElQYXRoIHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmdcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElIdWJzIHtcbiAgICBhY3RpdmU6IGJvb2xlYW5cbiAgICBkZXNjOiBzdHJpbmdcbiAgICBodWJuYW1lOiBzdHJpbmdcbiAgICBpY29uOiBzdHJpbmdcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgb3JkZXI6IG51bWJlclxuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgSUluZGV4SHRtbE1ldGEge1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gICAgb3BlblNlYXJjaFVybD86IHN0cmluZ1xuICAgIHdlYm1hbmlmZXN0OiBzdHJpbmdcbiAgICB4SWNvbj86IHN0cmluZ1xuICAgIHBuZ0ljb24/OiBzdHJpbmdcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElGb250U2l6ZSB7XG4gICAgYmFzZUZvbnRTaXplOiBzdHJpbmdcbiAgICBmb250Q2xhc3M6IHN0cmluZ1xuICAgIHNjYWxlOiBudW1iZXJcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElLZXljbG9hayB7XG4gICAgZGVmYXVsdGlkcEhpbnQ6ICdFJyB8ICdOJyB8ICdTJ1xuICAgIGlzTG9naW5IaWRkZW46IGJvb2xlYW5cbiAgICBiZWFyZXJFeGNsdWRlZFVybHM6IHN0cmluZ1tdXG4gICAgY2xpZW50SWQ6IHN0cmluZ1xuICAgIGtleTogc3RyaW5nXG4gICAgcmVhbG06IHN0cmluZ1xuICAgIHVybDogc3RyaW5nXG4gICAgY2hhbmdlUGFzc3dvcmRVcmw/OiBzdHJpbmdcbiAgICBvbkxvYWQ/OiAnY2hlY2stc3NvJyB8ICdsb2dpbi1yZXF1aXJlZCdcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElMb2NhbHNDb25maWcge1xuICAgIGlzQXZhaWxhYmxlOiBib29sZWFuXG4gICAgaXNFbmFibGVkOiBib29sZWFuXG4gICAgbG9jYWxzOiBzdHJpbmdbXVxuICAgIHBhdGg6IHN0cmluZ1xuICAgIGlzUlRMOiBib29sZWFuXG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBJTWljcm9zb2Z0IHtcbiAgICBjbGllbnRJZDogc3RyaW5nXG4gICAgZGVmYXVsdEVtYWlsSWQ6IHN0cmluZ1xuICAgIHRlbmFudDogc3RyaW5nXG4gICAgdmFsaWRFbWFpbEV4dGVuc2lvbnM6IHN0cmluZ1tdXG4gICAgaXNDb25maWd1cmVkOiBib29sZWFuXG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBJVGhlbWUge1xuICAgIGNvbG9yOiBJVGhlbWVDb2xvclxuICAgIHRoZW1lRmlsZTogc3RyaW5nXG4gICAgdGhlbWVDbGFzczogc3RyaW5nXG4gICAgdGhlbWVOYW1lOiBzdHJpbmdcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgSVRoZW1lQ29sb3Ige1xuICAgIGFjY2VudDogc3RyaW5nXG4gICAgcHJpbWFyeTogc3RyaW5nXG4gICAgd2Fybjogc3RyaW5nXG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBJT3ZlcnJpZGVUaGVtZUNoYW5nZXMge1xuICAgIGlzRW5hYmxlZDogYm9vbGVhblxuICAgIGRlc2t0b3A6IElEZXNrdG9wXG4gICAgbVdlYjogSU1XZWJcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElEZXNrdG9wIHtcbiAgICBhbmltYXRpb25EdXJhdGlvbjogbnVtYmVyXG4gICAgbG9nb1VybDogc3RyaW5nXG4gICAgbG9nb1RleHQ6IHN0cmluZ1xuICAgIGxvZ29EaXNwbGF5VGltZTogbnVtYmVyXG4gICAgYmFja2dyb3VuZFRoZW1lOiBzdHJpbmdcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElNV2ViIHtcbiAgICBsb2dvVXJsOiBzdHJpbmdcbiAgICBsb2dvVGV4dDogc3RyaW5nXG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBJTG9nb3Mge1xuICAgIGFwcDogc3RyaW5nXG4gICAgYXBwVHJhbnNwYXJlbnQ6IHN0cmluZ1xuICAgIGFwcFNlY29uZGFyeTogc3RyaW5nXG4gICAgYWJvdXRGb290ZXI6IHN0cmluZ1xuICAgIGFib3V0SGVhZGVyOiBzdHJpbmdcbiAgICBhcHBCb3R0b21OYXY/OiBzdHJpbmdcbiAgICBjb21wYW55OiBzdHJpbmdcbiAgICBkZXZlbG9wZWRCeTogc3RyaW5nXG4gICAgcG93ZXJlZEJ5OiBzdHJpbmdcbiAgICBkZWZhdWx0Q29udGVudD86IHN0cmluZ1xuICAgIGRlZmF1bHRTb3VyY2VMb2dvPzogc3RyaW5nXG4gICAgbGFuZGluZ0xvZ286IHN0cmluZ1xuICAgIG5hdmJhckxvZ28/OiBzdHJpbmdcbiAgICBwbGF5TGlzdExvZ28/OiBzdHJpbmdcbiAgICB0aHVtcHNVcD86IHN0cmluZ1xuXG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBJTWFpbElkcyB7XG4gICAgY29udGFjdFVzOiBzdHJpbmdcbiAgICBkZWZhdWx0OiBzdHJpbmdcbiAgICBzdXBwb3J0OiBzdHJpbmdcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElEZXRhaWxzIHtcbiAgICBhcHBOYW1lOiBzdHJpbmdcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElQcmltYXJ5TmF2YmFyQ29uZmlnIHtcbiAgICBtZWRpdW1TY3JlZW46IElQcmltYXJ5TmF2QmFyU2NyZWVuXG4gICAgc21hbGxTY3JlZW46IElQcmltYXJ5TmF2QmFyU2NyZWVuXG4gIH1cbiAgaW50ZXJmYWNlIElQcmltYXJ5TmF2QmFyU2NyZWVuIHtcbiAgICBsZWZ0OiBJUHJpbWFyeU5hdkJhclNpZGVbXVxuICAgIHJpZ2h0OiBJUHJpbWFyeU5hdkJhclNpZGVbXVxuICB9XG4gIGludGVyZmFjZSBJUHJpbWFyeU5hdkJhclNpZGUge1xuICAgIHR5cGU6ICd3aWRnZXRCdXR0b24nIHwgJ2ZlYXR1cmVCdXR0b24nXG4gICAgY29uZmlnOiBOc1dpZGdldFJlc29sdmVyLklSZW5kZXJDb25maWdXaXRoQW55RGF0YSB8IE5zUGFnZS5JTmF2TGlua1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBJVGVsZW1ldHJ5Q29uZmlnIHtcbiAgICBwZGF0YToge1xuICAgICAgaWQ6IHN0cmluZ1xuICAgICAgdmVyOiBzdHJpbmdcbiAgICAgIHBpZDogc3RyaW5nXG4gICAgfVxuICAgIG9iamVjdDoge1xuICAgICAgdmVyOiBzdHJpbmdcbiAgICAgIGlkOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgICB9XG4gICAgdWlkOiBzdHJpbmcgfCBudWxsXG4gICAgYXV0aHRva2VuPzogc3RyaW5nXG4gICAgZW52OiBzdHJpbmdcbiAgICBjaGFubmVsOiBzdHJpbmdcbiAgICBiYXRjaHNpemU6IG51bWJlclxuICAgIGhvc3Q6IHN0cmluZ1xuICAgIGVuZHBvaW50OiBzdHJpbmdcbiAgICBhcGlzbHVnOiBzdHJpbmdcbiAgICBzaWQ6IHN0cmluZ1xuICAgIHB1YmxpY0VuZHBvaW50OiBzdHJpbmdcbiAgICBwcm90ZWN0ZWRFbmRwb2ludDogc3RyaW5nXG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBOc0FwcHNDb25maWcge1xuICBleHBvcnQgdHlwZSBUSWNvblR5cGUgPSAnbWF0LWljb24nIHwgJ3VybCdcblxuICBleHBvcnQgaW50ZXJmYWNlIElBcHBzQ29uZmlnIHtcbiAgICBncm91cHM6IElHcm91cFtdXG4gICAgZmVhdHVyZXM6IHsgW2lkOiBzdHJpbmddOiBJRmVhdHVyZSB9XG4gICAgdG91ckd1aWRlPzogc3RyaW5nW11bXVxuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBJR3JvdXAge1xuICAgIGlkOiBzdHJpbmdcbiAgICBpY29uVHlwZTogc3RyaW5nXG4gICAgaWNvbjogc3RyaW5nXG4gICAga2V5d29yZHM6IHN0cmluZ1tdXG4gICAgbmFtZTogc3RyaW5nXG4gICAgdG9vbFRpcDogc3RyaW5nXG4gICAgZmVhdHVyZUlkczogc3RyaW5nW11cbiAgICBzdHJpcEJhY2tncm91bmQ/OiBzdHJpbmdcbiAgICBoYXNSb2xlOiBzdHJpbmdbXVxuICB9XG5cbiAgLy8gZXhwb3J0IGludGVyZmFjZSBJR3JvdXBXaXRoRmVhdHVyZXMgZXh0ZW5kcyBJR3JvdXAge1xuICAvLyAgIGZlYXR1cmVzOiBJRmVhdHVyZVtdXG4gIC8vIH1cbiAgZXhwb3J0IGludGVyZmFjZSBJRmVhdHVyZSB7XG4gICAgbmFtZTogc3RyaW5nXG4gICAgaWQ6IHN0cmluZ1xuICAgIHVybDogc3RyaW5nXG4gICAgcGVybWlzc2lvbjogc3RyaW5nIHwgc3RyaW5nW10gfCB7IGFsbDogc3RyaW5nW107IHNvbWU6IHN0cmluZ1tdOyBub25lOiBzdHJpbmdbXSB9XG4gICAgaWNvblR5cGU6IFRJY29uVHlwZVxuICAgIGljb246IHN0cmluZ1xuICAgIGtleXdvcmRzOiBzdHJpbmdbXVxuICAgIHRvb2xUaXA6IHN0cmluZ1xuICAgIGFjY2Vzc0tleTogc3RyaW5nXG4gICAgc3RhdHVzPzogJ2Vhcmx5QWNjZXNzJyB8ICdsaXZlJyB8ICdhbHBoYScgfCAnYmV0YSdcbiAgICBzaG9ydE5hbWU6IHN0cmluZ1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gICAgYmFkZ2VFbmRwb2ludD86IHN0cmluZ1xuICAgIG1vYmlsZUFwcEZ1bmN0aW9uPzogc3RyaW5nXG4gICAgY29sb3I/OiBzdHJpbmdcbiAgICB0YXJnZXQ/OiBzdHJpbmdcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIE5zVXNlciB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgSVVzZXJQcm9maWxlIHtcbiAgICB1c2VySWQ6IHN0cmluZ1xuICAgIGVtYWlsPzogc3RyaW5nXG4gICAgZGVwYXJ0bWVudE5hbWU/OiBzdHJpbmdcbiAgICB1c2VyTmFtZT86IHN0cmluZ1xuICAgIGZpcnN0TmFtZT86IHN0cmluZ1xuICAgIHN1ck5hbWU/OiBzdHJpbmdcbiAgICBtaWRkbGVOYW1lPzogc3RyaW5nXG4gICAgbGFzdE5hbWU/OiBzdHJpbmdcbiAgICByb290T3JnSWQ/OiBzdHJpbmdcbiAgICByb290T3JnTmFtZT86IHN0cmluZ1xuICAgIHByb2ZpbGVJbWFnZT86IHN0cmluZ1xuICAgIGdpdmVuTmFtZT86IHN0cmluZ1xuICAgIGNvdW50cnk/OiBudWxsIHwgc3RyaW5nXG4gICAgdW5pdD86IHN0cmluZyB8IG51bGxcbiAgICBzb3VyY2VfcHJvZmlsZV9waWN0dXJlPzogbnVsbCB8IHN0cmluZ1xuICAgIGRlYWxlckNvZGU/OiBudWxsIHwgc3RyaW5nXG4gICAgaXNNYW5hZ2VyPzogYm9vbGVhblxuICAgIGNvbXBldGVuY2llcz86IGFueVxuICAgIHN5c3RlbVRvcGljcz86IGFueVxuICAgIGRlc2lyZWRUb3BpY3M/OiBhbnlcbiAgICBkZXNpcmVkQ29tcGV0ZW5jaWVzPzogYW55XG4gICAgdXNlclJvbGVzPzogYW55XG4gICAgcHJvZmlsZVVwZGF0ZUNvbXBsZXRpb24/OiBudW1iZXJcbiAgICBwcm9maWxlSW1hZ2VVcmw/OiBzdHJpbmdcbiAgICBwcm9mZXNzaW9uYWxEZXRhaWxzPzogYW55XG4gICAgd2ViUG9ydGFsTGFuZz86IGFueSxcbiAgICBkZXBhcnRtZW50SW1nPzogYW55XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIElOb2RlYmJVc2VyUHJvZmlsZSB7XG4gICAgdXNlcm5hbWU6IHN0cmluZ1xuICAgIGVtYWlsOiBzdHJpbmdcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgSVVzZXJQaWRQcm9maWxlIHtcbiAgICBraWRfdXBkYXRlZDogYm9vbGVhblxuICAgIHVzZXI6IElVc2VyXG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIElVc2VyUGlkUHJvZmlsZVYyIHtcbiAgICBraWRfdXBkYXRlZDogYm9vbGVhblxuICAgIHJlc3VsdDoge1xuICAgICAgcmVzcG9uc2U6IElVc2VyVjJcbiAgICB9XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIElVc2VyUGlkUHJvZmlsZVZlcjIge1xuICAgIHJlc3VsdDoge1xuICAgICAgVXNlclByb2ZpbGU6IElVc2VyVmVyMlxuICAgIH1cbiAgfVxuICBpbnRlcmZhY2UgSVNvdXJjZURhdGEge1xuICAgIEdJRDogc3RyaW5nXG4gICAgU05BTVBSRTogc3RyaW5nXG4gICAgU05BTUFERDogc3RyaW5nXG4gICAgTEFTVE5BTUU6IHN0cmluZ1xuICAgIFNOOiBzdHJpbmdcbiAgICBHSVZFTk5BTUU6IHN0cmluZ1xuICAgIE5JQ0tOQU1FOiBzdHJpbmdcbiAgICBQUkVGRVJSRURTTjogc3RyaW5nXG4gICAgUEVSU09OQUxUSVRMRTogc3RyaW5nXG4gICAgTU9CSUxFOiBzdHJpbmdcbiAgICBNQUlMOiBzdHJpbmdcbiAgICBERVBBUlRNRU5UVEVYVDogc3RyaW5nXG4gICAgQ09TVExPQ0FUSU9OVU5JVDogc3RyaW5nXG4gICAgQ09TVExPQ0FUSU9OOiBzdHJpbmdcbiAgICBPUkdJRDogc3RyaW5nXG4gICAgTUdNVFJFU1A6IHN0cmluZ1xuICAgIFVUQzogc3RyaW5nXG4gICAgQ05BTUVFTkc6IHN0cmluZ1xuICAgIExOQU1FSU5UOiBzdHJpbmdcbiAgICBVU0VSVFlQRTogc3RyaW5nXG4gICAgU1RBVFVTOiBzdHJpbmdcbiAgICBDT05UUkFDVFNUQVRVUzogc3RyaW5nXG4gIH1cblxuICBpbnRlcmZhY2UgSVVzZXIge1xuICAgIHdpZDogc3RyaW5nXG4gICAgcm9vdF9vcmc6IHN0cmluZ1xuICAgIG9yZzogc3RyaW5nXG4gICAgaXNfYWN0aXZlPzogYW55XG4gICAgYWNjb3VudF9leHBpcnlfZGF0ZT86IGFueVxuICAgIGtpZDogc3RyaW5nXG4gICAgaW1wb3J0ZWRfc291cmNlX25hbWU6IHN0cmluZ1xuICAgIHNvdXJjZV9pZDogc3RyaW5nXG4gICAgdXNlcm5hbWU/OiBhbnlcbiAgICBmaXJzdF9uYW1lOiBzdHJpbmdcbiAgICBsYXN0X25hbWU6IHN0cmluZ1xuICAgIG1pZGRsZV9uYW1lPzogYW55XG4gICAga25vd25fYXM6IHN0cmluZ1xuICAgIHNhbHV0YXRpb24/OiBhbnlcbiAgICBlbWFpbDogc3RyaW5nXG4gICAgZ2VuZGVyPzogYW55XG4gICAgZG9iPzogYW55XG4gICAgbGFuZ3VhZ2VzX2tub3duPzogYW55XG4gICAgcHJlZmVycmVkX2xhbmd1YWdlPzogYW55XG4gICAgc291cmNlX3Byb2ZpbGVfcGljdHVyZT86IGFueVxuICAgIHJlc2lkZW5jZV9jb3VudHJ5OiBzdHJpbmdcbiAgICByZXNpZGVuY2Vfc3RhdGU/OiBhbnlcbiAgICByZXNpZGVuY2VfY2l0eTogc3RyaW5nXG4gICAgY29udGFjdF9waG9uZV9udW1iZXJfb2ZmaWNlPzogYW55XG4gICAgY29udGFjdF9waG9uZV9udW1iZXJfaG9tZT86IGFueVxuICAgIGNvbnRhY3RfcGhvbmVfbnVtYmVyX3BlcnNvbmFsOiBzdHJpbmdcbiAgICBlbXBsb3llbWVudF9zdGF0dXM/OiBhbnlcbiAgICBjb250cmFjdF90eXBlPzogYW55XG4gICAgam9iX3RpdGxlPzogYW55XG4gICAgam9iX3JvbGU/OiBhbnlcbiAgICBkZXBhcnRtZW50X25hbWU6IHN0cmluZ1xuICAgIHVuaXRfbmFtZT86IGFueVxuICAgIG9yZ2FuaXphdGlvbl9sb2NhdGlvbl9jb3VudHJ5PzogYW55XG4gICAgb3JnYW5pemF0aW9uX2xvY2F0aW9uX3N0YXRlPzogYW55XG4gICAgb3JnYW5pemF0aW9uX2xvY2F0aW9uX2NpdHk/OiBhbnlcbiAgICB0aW1lX2luc2VydGVkOiBEYXRlXG4gICAgdGltZV91cGRhdGVkOiBEYXRlXG4gICAganNvbl91bm1hcHBlZF9maWVsZHM/OiBhbnlcbiAgICBzb3VyY2VfZGF0YTogSVNvdXJjZURhdGFcbiAgfVxuICBpbnRlcmZhY2UgSVJvb3RPcmcge1xuICAgIGRhdGVUaW1lOiBzdHJpbmdcbiAgICBwcmVmZXJyZWRMYW5ndWFnZTogc3RyaW5nXG4gICAga2V5czoge31cbiAgICBjaGFubmVsOiBzdHJpbmdcbiAgICBhcHByb3ZlZEJ5OiBzdHJpbmdcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nXG4gICAgdXBkYXRlZERhdGU6IHN0cmluZ1xuICAgIGFkZHJlc3NJZDogc3RyaW5nXG4gICAgb3JnVHlwZTogc3RyaW5nXG4gICAgcHJvdmlkZXI6IHN0cmluZ1xuICAgIG9yZ0NvZGU6IHN0cmluZ1xuICAgIGxvY2F0aW9uSWQ6IHN0cmluZ1xuICAgIHRoZW1lOiBzdHJpbmdcbiAgICBpZDogc3RyaW5nXG4gICAgaXNBcHByb3ZlZDogYm9vbGVhblxuICAgIGNvbW11bml0eUlkOiBzdHJpbmdcbiAgICBzbHVnOiBzdHJpbmdcbiAgICBlbWFpbDogc3RyaW5nXG4gICAgaXNTU09FbmFibGVkOiBib29sZWFuXG4gICAgdGh1bWJuYWlsOiBzdHJpbmdcbiAgICB1cGRhdGVkQnk6IHN0cmluZ1xuICAgIG9yZ05hbWU6IHN0cmluZ1xuICAgIGxvY2F0aW9uSWRzOiBbXVxuICAgIGV4dGVybmFsSWQ6IHN0cmluZ1xuICAgIGlzUm9vdE9yZzogYm9vbGVhblxuICAgIHJvb3RPcmdJZDogc3RyaW5nXG4gICAgaW1nVXJsOiBzdHJpbmdcbiAgICBhcHByb3ZlZERhdGU6IHN0cmluZ1xuICAgIG9yZ1R5cGVJZDogc3RyaW5nXG4gICAgaG9tZVVybDogc3RyaW5nXG4gICAgaXNEZWZhdWx0OiBib29sZWFuXG4gICAgY3JlYXRlZERhdGU6IHN0cmluZ1xuICAgIGNvbnRhY3REZXRhaWw6IHN0cmluZ1xuICAgIHBhcmVudE9yZ0lkOiBzdHJpbmdcbiAgICBjcmVhdGVkQnk6IHN0cmluZ1xuICAgIGhhc2hUYWdJZDogc3RyaW5nXG4gICAgbm9PZk1lbWJlcnM6IHN0cmluZ1xuICAgIHN0YXR1czogbnVtYmVyXG4gIH1cbiAgaW50ZXJmYWNlIElPcmcge1xuICAgIHVwZGF0ZWRCeTogc3RyaW5nXG4gICAgb3JnYW5pc2F0aW9uSWQ6IHN0cmluZ1xuICAgIG9yZ05hbWU6IHN0cmluZ1xuICAgIGFkZGVkQnlOYW1lOiBzdHJpbmdcbiAgICBhZGRlZEJ5OiBzdHJpbmdcbiAgICByb2xlczogc3RyaW5nW11cbiAgICBhcHByb3ZlZEJ5OiBzdHJpbmdcbiAgICB1cGRhdGVkRGF0ZTogc3RyaW5nXG4gICAgdXNlcklkOiBzdHJpbmdcbiAgICBhcHByb3ZhbGRhdGU6IHN0cmluZ1xuICAgIGlzRGVsZXRlZDogYm9vbGVhblxuICAgIHBhcmVudE9yZ0lkOiBzdHJpbmdcbiAgICBoYXNoVGFnSWQ6IHN0cmluZ1xuICAgIGlzUmVqZWN0ZWQ6IGJvb2xlYW5cbiAgICBwb3NpdGlvbjogc3RyaW5nXG4gICAgaWQ6IHN0cmluZ1xuICAgIG9yZ2pvaW5kYXRlOiBzdHJpbmdcbiAgICBpc0FwcHJvdmVkOiBib29sZWFuXG4gICAgb3JnTGVmdERhdGU6IHN0cmluZ1xuICB9XG4gIGludGVyZmFjZSBJVXNlclYyIHtcbiAgICBzdXJOYW1lOiBhbnlcbiAgICBtYXNrZWRQaG9uZTogc3RyaW5nXG4gICAgcm9vdE9yZ05hbWU6IHN0cmluZ1xuICAgIHN1YmplY3Q6IFtdXG4gICAgY2hhbm5lbDogc3RyaW5nXG4gICAgbGFuZ3VhZ2U6IFtdXG4gICAgdXBkYXRlZERhdGU6IHN0cmluZ1xuICAgIG1hbmFnZWRCeTogc3RyaW5nXG4gICAgZmxhZ3NWYWx1ZTogbnVtYmVyXG4gICAgaWQ6IHN0cmluZ1xuICAgIHJlY292ZXJ5RW1haWw6IHN0cmluZ1xuICAgIGlkZW50aWZpZXI6IHN0cmluZ1xuICAgIHRodW1ibmFpbDogc3RyaW5nXG4gICAgcHJvZmlsZVZpc2liaWxpdHk6IFtdXG4gICAgdXBkYXRlZEJ5OiBzdHJpbmdcbiAgICBhY2Nlc3Njb2RlOiBzdHJpbmdcbiAgICBsb2NhdGlvbklkczogW11cbiAgICBleHRlcm5hbElkczogW11cbiAgICByZWdpc3RyeUlkOiBzdHJpbmdcbiAgICByb290T3JnSWQ6IHN0cmluZ1xuICAgIHByZXZVc2VkRW1haWw6IHN0cmluZ1xuICAgIGZpcnN0TmFtZTogc3RyaW5nXG4gICAgdG5jQWNjZXB0ZWRPbjogc3RyaW5nXG4gICAgcGhvbmU6IHN0cmluZ1xuICAgIGRvYjogc3RyaW5nXG4gICAgZ3JhZGU6IFtdXG4gICAgY3VycmVudExvZ2luVGltZTogc3RyaW5nXG4gICAgdXNlclR5cGU6IHN0cmluZ1xuICAgIHN0YXR1czogbnVtYmVyXG4gICAgbGFzdE5hbWU6IHN0cmluZ1xuICAgIGdlbmRlcjogc3RyaW5nXG4gICAgcm9sZXM6IHN0cmluZ1tdXG4gICAgcHJldlVzZWRQaG9uZTogc3RyaW5nXG4gICAgc3RhdGVWYWxpZGF0ZWQ6IGJvb2xlYW5cbiAgICBpc0RlbGV0ZWQ6IGJvb2xlYW5cbiAgICBvcmdhbmlzYXRpb25zOiBJT3JnW11cbiAgICBjb3VudHJ5Q29kZTogc3RyaW5nXG4gICAgbWFza2VkRW1haWw6IHN0cmluZ1xuICAgIHRlbXBQYXNzd29yZDogc3RyaW5nXG4gICAgZW1haWw6IHN0cmluZ1xuICAgIHJvb3RPcmc6IElSb290T3JnXG4gICAgcHJvZmlsZVN1bW1hcnk6IHN0cmluZ1xuICAgIHBob25lVmVyaWZpZWQ6IGJvb2xlYW5cbiAgICByZWNvdmVyeVBob25lOiBzdHJpbmdcbiAgICB1c2VyTmFtZTogc3RyaW5nXG4gICAgdXNlcklkOiBzdHJpbmdcbiAgICBsYXN0TG9naW5UaW1lOiBzdHJpbmdcbiAgICBlbWFpbFZlcmlmaWVkOiB0cnVlXG4gICAgZnJhbWV3b3JrOiB7fVxuICAgIGNyZWF0ZWREYXRlOiBzdHJpbmdcbiAgICBjcmVhdGVkQnk6IHN0cmluZ1xuICAgIGxvY2F0aW9uOiBzdHJpbmdcbiAgICB0bmNBY2NlcHRlZFZlcnNpb246IHN0cmluZ1xuICB9XG5cbiAgaW50ZXJmYWNlIElVc2VyVmVyMiB7XG4gICAgJ2ZpcnN0bmFtZSc6IHN0cmluZyxcbiAgICAnbW90aGVyVG9uZ3VlJzogc3RyaW5nLFxuICAgICdzZWNvbmRhcnlFbWFpbCc6IHN0cmluZyxcbiAgICAnZ2VuZGVyJzogc3RyaW5nLFxuICAgICdAdHlwZSc6IHN0cmluZyxcbiAgICAnbW9iaWxlJzogbnVtYmVyLFxuICAgICdtaWRkbGVuYW1lJzogc3RyaW5nLFxuICAgICd0ZWxlcGhvbmUnOiBudW1iZXIsXG4gICAgJ29zaWQnOiBzdHJpbmcsXG4gICAgJ3ByaW1hcnlFbWFpbFR5cGUnOiBzdHJpbmcsXG4gICAgJ2tub3duTGFuZ3VhZ2VzJzogSUxhbmd1YWdlc1tdLFxuICAgICd3aWQnOiBzdHJpbmcsXG4gICAgJ25hdGlvbmFsaXR5Jzogc3RyaW5nLFxuICAgICdzdXJuYW1lJzogc3RyaW5nLFxuICAgICdkb2InOiBzdHJpbmcsXG4gICAgJ2NhdGVnb3J5Jzogc3RyaW5nLFxuICAgICdwcmltYXJ5RW1haWwnOiBzdHJpbmcsXG4gICAgJ21hcml0YWxTdGF0dXMnOiBzdHJpbmcsXG4gICAgJ3Jlc2lkZW5jZUFkZHJlc3MnOiBzdHJpbmcsXG4gICAgJ3Jlc3VsdCc6IGFueVxuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgSUxhbmd1YWdlcyB7XG4gICAgbmFtZTogc3RyaW5nXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,82 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class ConfigurationsService {
5
+ constructor() {
6
+ this.appSetup = true;
7
+ this.userUrl = '';
8
+ this.baseUrl = `assets/configurations`;
9
+ this.sitePath = `assets/configurations`;
10
+ this.hostPath = (window.location.host).replace(':', '_');
11
+ this.userRoles = null;
12
+ this.userGroups = null;
13
+ this.restrictedFeatures = null;
14
+ this.restrictedWidgets = null;
15
+ this.instanceConfig = null;
16
+ this.appsConfig = null;
17
+ this.rootOrg = null;
18
+ this.org = null;
19
+ this.activeOrg = '';
20
+ this.isProduction = false;
21
+ this.hasAcceptedTnc = false;
22
+ this.profileDetailsStatus = false;
23
+ this.isActive = true;
24
+ this.userPreference = null;
25
+ this.userProfile = null;
26
+ this.userProfileV2 = null;
27
+ this.nodebbUserProfile = null;
28
+ this.isAuthenticated = false;
29
+ this.isNewUser = false;
30
+ this.pinnedApps = new BehaviorSubject(new Set());
31
+ this.prefChangeNotifier = new ReplaySubject(1);
32
+ this.tourGuideNotifier = new ReplaySubject();
33
+ this.authChangeNotifier = new ReplaySubject(1);
34
+ this.updateProfile = new BehaviorSubject(false);
35
+ this.updateProfileObservable = this.updateProfile.asObservable();
36
+ this.updateTourGuide = new BehaviorSubject(true);
37
+ this.updateTourGuideObservable = this.updateTourGuide.asObservable();
38
+ this.updatePlatformRating = new BehaviorSubject({ bottom: '120px' });
39
+ this.updatePlatformRatingObservable$ = this.updatePlatformRating.asObservable();
40
+ this.languageTranslationFlag = new Subject();
41
+ this.activeThemeObject = null;
42
+ this.activeFontObject = null;
43
+ this.isDarkMode = false;
44
+ this.isIntranetAllowed = false;
45
+ this.isRTL = false;
46
+ this.activeLocale = null;
47
+ this.activeLocaleGroup = '';
48
+ this.completedActivity = null;
49
+ this.completedTour = false;
50
+ this.profileSettings = ['profilePicture', 'learningTime', 'learningPoints'];
51
+ this.primaryNavBar = {
52
+ color: 'primary',
53
+ };
54
+ this.pageNavBar = {
55
+ color: 'primary',
56
+ };
57
+ this.primaryNavBarConfig = null;
58
+ this.welcomeTabs = null;
59
+ this.compentency = null;
60
+ this.cstoken = '';
61
+ this.changeNavBarFullView = new Subject();
62
+ this.openExploreMenuForMWeb = new Subject();
63
+ }
64
+ updateGlobalProfile(state) {
65
+ this.updateProfile.next(state);
66
+ }
67
+ updateTourGuideMethod(state) {
68
+ this.updateTourGuide.next(state);
69
+ }
70
+ updatePlatformRatingMethod(state) {
71
+ this.updatePlatformRating.next(state);
72
+ }
73
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigurationsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
74
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigurationsService, providedIn: 'root' }); }
75
+ }
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigurationsService, decorators: [{
77
+ type: Injectable,
78
+ args: [{
79
+ providedIn: 'root',
80
+ }]
81
+ }], ctorParameters: function () { return []; } });
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi91dGlscy12Mi9zcmMvbGliL3NlcnZpY2VzL2NvbmZpZ3VyYXRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7O0FBZ0I5RCxNQUFNLE9BQU8scUJBQXFCO0lBRWhDO1FBT0EsYUFBUSxHQUFHLElBQUksQ0FBQTtRQUVmLFlBQU8sR0FBRyxFQUFFLENBQUE7UUFDWixZQUFPLEdBQUcsdUJBQXVCLENBQUE7UUFDakMsYUFBUSxHQUFHLHVCQUF1QixDQUFBO1FBQ2xDLGFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUVuRCxjQUFTLEdBQXVCLElBQUksQ0FBQTtRQUNwQyxlQUFVLEdBQXVCLElBQUksQ0FBQTtRQUNyQyx1QkFBa0IsR0FBdUIsSUFBSSxDQUFBO1FBQzdDLHNCQUFpQixHQUF1QixJQUFJLENBQUE7UUFDNUMsbUJBQWMsR0FBb0MsSUFBSSxDQUFBO1FBQ3RELGVBQVUsR0FBb0MsSUFBSSxDQUFBO1FBQ2xELFlBQU8sR0FBa0IsSUFBSSxDQUFBO1FBRTdCLFFBQUcsR0FBb0IsSUFBSSxDQUFBO1FBQzNCLGNBQVMsR0FBa0IsRUFBRSxDQUFBO1FBQzdCLGlCQUFZLEdBQUcsS0FBSyxDQUFBO1FBQ3BCLG1CQUFjLEdBQUcsS0FBSyxDQUFBO1FBQ3RCLHlCQUFvQixHQUFHLEtBQUssQ0FBQTtRQUM1QixhQUFRLEdBQUcsSUFBSSxDQUFBO1FBQ2YsbUJBQWMsR0FBMkIsSUFBSSxDQUFBO1FBQzdDLGdCQUFXLEdBQStCLElBQUksQ0FBQTtRQUM5QyxrQkFBYSxHQUErQixJQUFJLENBQUE7UUFDaEQsc0JBQWlCLEdBQXFDLElBQUksQ0FBQTtRQUcxRCxvQkFBZSxHQUFHLEtBQUssQ0FBQTtRQUN2QixjQUFTLEdBQUcsS0FBSyxDQUFBO1FBT2pCLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBYyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUE7UUFHeEQsdUJBQWtCLEdBQUcsSUFBSSxhQUFhLENBQTJCLENBQUMsQ0FBQyxDQUFBO1FBQ25FLHNCQUFpQixHQUFHLElBQUksYUFBYSxFQUFXLENBQUE7UUFDaEQsdUJBQWtCLEdBQUcsSUFBSSxhQUFhLENBQVUsQ0FBQyxDQUFDLENBQUE7UUFFMUMsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNsRCw0QkFBdUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFBO1FBRTNELG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDM0MsOEJBQXlCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUcvRCx5QkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBQy9ELG9DQUErQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUUxRSw0QkFBdUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO1FBR3ZDLHNCQUFpQixHQUFtQyxJQUFJLENBQUE7UUFDeEQscUJBQWdCLEdBQXNDLElBQUksQ0FBQTtRQUMxRCxlQUFVLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLHNCQUFpQixHQUFHLEtBQUssQ0FBQTtRQUN6QixVQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2IsaUJBQVksR0FBMEMsSUFBSSxDQUFBO1FBQzFELHNCQUFpQixHQUFHLEVBQUUsQ0FBQTtRQUN0QixzQkFBaUIsR0FBb0IsSUFBSSxDQUFBO1FBQ3pDLGtCQUFhLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLG9CQUFlLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtRQUV0RSxrQkFBYSxHQUFtQztZQUM5QyxLQUFLLEVBQUUsU0FBUztTQUNqQixDQUFBO1FBQ0QsZUFBVSxHQUFtQztZQUMzQyxLQUFLLEVBQUUsU0FBUztTQUNqQixDQUFBO1FBQ0Qsd0JBQW1CLEdBQWlELElBQUksQ0FBQTtRQVF4RSxnQkFBVyxHQUF1QyxJQUFJLENBQUE7UUFDdEQsZ0JBQVcsR0FBUSxJQUFJLENBQUE7UUFHdkIsWUFBTyxHQUFHLEVBQUUsQ0FBQTtRQUVaLHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7UUFDcEMsMkJBQXNCLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQTtJQXhGdEMsQ0FBQztJQXlGRCxtQkFBbUIsQ0FBQyxLQUFjO1FBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFjO1FBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxLQUFVO1FBQ25DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDdkMsQ0FBQzsrR0EzR1UscUJBQXFCO21IQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTlNQcm9maWxlRGF0YVYzIH0gZnJvbSAnLi4vbW9kZWxzL3Byb2ZpbGUtdjMubW9kZWxzJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbi8vIGltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCdcbmltcG9ydCB7IE5zUGFnZSB9IGZyb20gJy4uL3Jlc29sdmVycy9wYWdlLm1vZGVsJ1xuaW1wb3J0IHsgTnNBcHBzQ29uZmlnLCBOc0luc3RhbmNlQ29uZmlnLCBOc1VzZXIgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb25zLm1vZGVsJ1xuaW1wb3J0IHsgSVBvcnRhbFVybHMsIElVc2VyUHJlZmVyZW5jZSB9IGZyb20gJy4vdXNlci1wcmVmZXJlbmNlLm1vZGVsJ1xuXG4vLyBjb25zdCBpbnN0YW5jZUNvbmZpZ1BhdGg6IHN0cmluZyB8IG51bGwgPSB3aW5kb3cubG9jYXRpb24uaG9zdFxuLy8gY29uc3QgbG9jYXRpb25Ib3N0OiBzdHJpbmcgfCBudWxsID0gd2luZG93LmxvY2F0aW9uLmhvc3RcblxuLy8gaWYgKCFlbnZpcm9ubWVudC5wcm9kdWN0aW9uICYmIEJvb2xlYW4oZW52aXJvbm1lbnQuc2l0ZVBhdGgpKSB7XG4vLyAgIGxvY2F0aW9uSG9zdCA9IGVudmlyb25tZW50LnNpdGVQYXRoXG4vLyAgIGluc3RhbmNlQ29uZmlnUGF0aCA9IGVudmlyb25tZW50LnNpdGVQYXRoXG4vLyB9XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvbnNTZXJ2aWNlIHtcbiAgLy8gdXBkYXRlIGFzIHRoZSBzaW5nbGUgc291cmNlIG9mIHRydXRoXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIEBJbmplY3QoJ2VudicpIGVudjogYW55XG4gICAgLy8gaWYgKCFlbnYucHJvZHVjdGlvbiAmJiBCb29sZWFuKGVudi5zaXRlUGF0aCkpIHtcbiAgICAvLyAgIGxvY2F0aW9uSG9zdCA9IGVudi5zaXRlUGF0aFxuICAgIC8vICAgaW5zdGFuY2VDb25maWdQYXRoID0gZW52LnNpdGVQYXRoXG4gICAgLy8gfVxuICB9XG4gIGFwcFNldHVwID0gdHJ1ZVxuICAvLyBUaGUgdXJsIHRoZSB1c2VyIHRyaWVkIHRvIGFjY2VzcyB3aGlsZSBsYW5kaW5nIGluIHRoZSBhcHAgYmVmb3JlIGFjY2VwdGluZyB0bmNcbiAgdXNlclVybCA9ICcnXG4gIGJhc2VVcmwgPSBgYXNzZXRzL2NvbmZpZ3VyYXRpb25zYFxuICBzaXRlUGF0aCA9IGBhc3NldHMvY29uZmlndXJhdGlvbnNgXG4gIGhvc3RQYXRoID0gKHdpbmRvdy5sb2NhdGlvbi5ob3N0KS5yZXBsYWNlKCc6JywgJ18nKVxuXG4gIHVzZXJSb2xlczogU2V0PHN0cmluZz4gfCBudWxsID0gbnVsbFxuICB1c2VyR3JvdXBzOiBTZXQ8c3RyaW5nPiB8IG51bGwgPSBudWxsXG4gIHJlc3RyaWN0ZWRGZWF0dXJlczogU2V0PHN0cmluZz4gfCBudWxsID0gbnVsbFxuICByZXN0cmljdGVkV2lkZ2V0czogU2V0PHN0cmluZz4gfCBudWxsID0gbnVsbFxuICBpbnN0YW5jZUNvbmZpZzogTnNJbnN0YW5jZUNvbmZpZy5JQ29uZmlnIHwgbnVsbCA9IG51bGxcbiAgYXBwc0NvbmZpZzogTnNBcHBzQ29uZmlnLklBcHBzQ29uZmlnIHwgbnVsbCA9IG51bGxcbiAgcm9vdE9yZzogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgY291cnNlQ29udGVudFBhdGg/OiBzdHJpbmdcbiAgb3JnOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsXG4gIGFjdGl2ZU9yZzogc3RyaW5nIHwgbnVsbCA9ICcnXG4gIGlzUHJvZHVjdGlvbiA9IGZhbHNlXG4gIGhhc0FjY2VwdGVkVG5jID0gZmFsc2VcbiAgcHJvZmlsZURldGFpbHNTdGF0dXMgPSBmYWxzZVxuICBpc0FjdGl2ZSA9IHRydWVcbiAgdXNlclByZWZlcmVuY2U6IElVc2VyUHJlZmVyZW5jZSB8IG51bGwgPSBudWxsXG4gIHVzZXJQcm9maWxlOiBOc1VzZXIuSVVzZXJQcm9maWxlIHwgbnVsbCA9IG51bGxcbiAgdXNlclByb2ZpbGVWMjogTnNVc2VyLklVc2VyUHJvZmlsZSB8IG51bGwgPSBudWxsXG4gIG5vZGViYlVzZXJQcm9maWxlOiBOc1VzZXIuSU5vZGViYlVzZXJQcm9maWxlIHwgbnVsbCA9IG51bGxcbiAgLy8gY3JlYXRlZCB0byBzdG9yZSBjb21wbGV0ZSB1c2VyIGRldGFpbHMgc2VudCBieSBwaWRcbiAgdW5NYXBwZWRVc2VyOiBhbnlcbiAgaXNBdXRoZW50aWNhdGVkID0gZmFsc2VcbiAgaXNOZXdVc2VyID0gZmFsc2VcbiAgcG9ydGFsVXJsczogSVBvcnRhbFVybHMgfCB1bmRlZmluZWRcbiAgcG9zaXRpb25zOiBhbnlcbiAgb3ZlcnJpZGVUaGVtZUNoYW5nZXM6IGFueVxuICBwcm9maWxlVGltZWx5TnVkZ2VzOiBhbnlcblxuICAvLyBwaW5uZWRBcHBzXG4gIHBpbm5lZEFwcHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNldDxzdHJpbmc+PihuZXcgU2V0KCkpXG5cbiAgLy8gTm90aWZpZXJcbiAgcHJlZkNoYW5nZU5vdGlmaWVyID0gbmV3IFJlcGxheVN1YmplY3Q8UGFydGlhbDxJVXNlclByZWZlcmVuY2U+PigxKVxuICB0b3VyR3VpZGVOb3RpZmllciA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KClcbiAgYXV0aENoYW5nZU5vdGlmaWVyID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSlcblxuICBwcml2YXRlIHVwZGF0ZVByb2ZpbGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKVxuICB1cGRhdGVQcm9maWxlT2JzZXJ2YWJsZSA9IHRoaXMudXBkYXRlUHJvZmlsZS5hc09ic2VydmFibGUoKVxuXG4gIHVwZGF0ZVRvdXJHdWlkZSA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSlcbiAgdXBkYXRlVG91ckd1aWRlT2JzZXJ2YWJsZSA9IHRoaXMudXBkYXRlVG91ckd1aWRlLmFzT2JzZXJ2YWJsZSgpXG5cbiAgLy8gcGxhdGZvcm0gcmF0aW5nXG4gIHVwZGF0ZVBsYXRmb3JtUmF0aW5nID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7IGJvdHRvbTogJzEyMHB4JyB9KVxuICB1cGRhdGVQbGF0Zm9ybVJhdGluZ09ic2VydmFibGUkID0gdGhpcy51cGRhdGVQbGF0Zm9ybVJhdGluZy5hc09ic2VydmFibGUoKVxuXG4gIGxhbmd1YWdlVHJhbnNsYXRpb25GbGFnID0gbmV3IFN1YmplY3QoKVxuXG4gIC8vIFByZWZlcmVuY2UgUmVsYXRlZCBWYWx1ZXNcbiAgYWN0aXZlVGhlbWVPYmplY3Q6IE5zSW5zdGFuY2VDb25maWcuSVRoZW1lIHwgbnVsbCA9IG51bGxcbiAgYWN0aXZlRm9udE9iamVjdDogTnNJbnN0YW5jZUNvbmZpZy5JRm9udFNpemUgfCBudWxsID0gbnVsbFxuICBpc0RhcmtNb2RlID0gZmFsc2VcbiAgaXNJbnRyYW5ldEFsbG93ZWQgPSBmYWxzZVxuICBpc1JUTCA9IGZhbHNlXG4gIGFjdGl2ZUxvY2FsZTogTnNJbnN0YW5jZUNvbmZpZy5JTG9jYWxzQ29uZmlnIHwgbnVsbCA9IG51bGxcbiAgYWN0aXZlTG9jYWxlR3JvdXAgPSAnJ1xuICBjb21wbGV0ZWRBY3Rpdml0eTogc3RyaW5nW10gfCBudWxsID0gbnVsbFxuICBjb21wbGV0ZWRUb3VyID0gZmFsc2VcbiAgcHJvZmlsZVNldHRpbmdzID0gWydwcm9maWxlUGljdHVyZScsICdsZWFybmluZ1RpbWUnLCAnbGVhcm5pbmdQb2ludHMnXVxuXG4gIHByaW1hcnlOYXZCYXI6IFBhcnRpYWw8TnNQYWdlLklOYXZCYWNrZ3JvdW5kPiA9IHtcbiAgICBjb2xvcjogJ3ByaW1hcnknLFxuICB9XG4gIHBhZ2VOYXZCYXI6IFBhcnRpYWw8TnNQYWdlLklOYXZCYWNrZ3JvdW5kPiA9IHtcbiAgICBjb2xvcjogJ3ByaW1hcnknLFxuICB9XG4gIHByaW1hcnlOYXZCYXJDb25maWc6IE5zSW5zdGFuY2VDb25maWcuSVByaW1hcnlOYXZiYXJDb25maWcgfCBudWxsID0gbnVsbFxuICAvKiBmb3IgdGVtcCBGaXggKi9cbiAgLy8gc2V0QmFzZVVybCA9IChzaXRlUGF0aDogc3RyaW5nKSA9PiBgYXNzZXRzL2NvbmZpZ3VyYXRpb25zLyR7KHNpdGVQYXRoKS5yZXBsYWNlKCc6JywgJ18nKX1gXG4gIC8vIHNldFNpdGVQYXRoID0gKHNpdGVQYXRoOiBzdHJpbmcpID0+IGBhc3NldHMvY29uZmlndXJhdGlvbnMvJHsoc2l0ZVBhdGgpLnJlcGxhY2UoXG4gIC8vICAgJzonLFxuICAvLyAgICdfJyxcbiAgLy8gKX1gXG4gIC8vIHNldEhvc3RQYXRoID0gKHNpdGVQYXRoOiBzdHJpbmcpID0+IChzaXRlUGF0aCkucmVwbGFjZSgnOicsICdfJylcbiAgd2VsY29tZVRhYnM6IE5TUHJvZmlsZURhdGFWMy5JUHJvZmlsZVRhYiB8IG51bGwgPSBudWxsXG4gIGNvbXBlbnRlbmN5OiBhbnkgPSBudWxsXG5cbiAgLy8gdmFyaWFibGUgc2V0dGluZyBmb3IgY3NKd3RUb2tlblxuICBjc3Rva2VuID0gJydcblxuICBjaGFuZ2VOYXZCYXJGdWxsVmlldyA9IG5ldyBTdWJqZWN0KClcbiAgb3BlbkV4cGxvcmVNZW51Rm9yTVdlYiA9IG5ldyBTdWJqZWN0KClcbiAgdXBkYXRlR2xvYmFsUHJvZmlsZShzdGF0ZTogYm9vbGVhbikge1xuICAgIHRoaXMudXBkYXRlUHJvZmlsZS5uZXh0KHN0YXRlKVxuICB9XG5cbiAgdXBkYXRlVG91ckd1aWRlTWV0aG9kKHN0YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy51cGRhdGVUb3VyR3VpZGUubmV4dChzdGF0ZSlcbiAgfVxuXG4gIHVwZGF0ZVBsYXRmb3JtUmF0aW5nTWV0aG9kKHN0YXRlOiBhbnkpIHtcbiAgICB0aGlzLnVwZGF0ZVBsYXRmb3JtUmF0aW5nLm5leHQoc3RhdGUpXG4gIH1cblxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1zdHJpcC1tdWx0aXBsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi91dGlscy12Mi9zcmMvbGliL3NlcnZpY2VzL2NvbnRlbnQtc3RyaXAtbXVsdGlwbGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5TU2VhcmNoIH0gZnJvbSAnLi93aWRnZXQtc2VhcmNoLm1vZGVsJ1xyXG5pbXBvcnQgeyBOc0NvbnRlbnQgfSBmcm9tICcuL3dpZGdldC1jb250ZW50Lm1vZGVsJ1xyXG5pbXBvcnQgeyBOc0NhcmRDb250ZW50IH0gZnJvbSAnLi9jYXJkLWNvbnRlbnQubW9kZWwnXHJcbmltcG9ydCB7IE5zV2lkZ2V0UmVzb2x2ZXIgfSBmcm9tICcuL3dpZGdldC1yZXNvbHZlci5tb2RlbCdcclxuXHJcbmV4cG9ydCBuYW1lc3BhY2UgTnNDb250ZW50U3RyaXBNdWx0aXBsZSB7XHJcbiAgZXhwb3J0IGludGVyZmFjZSBJQ29udGVudFN0cmlwTXVsdGlwbGUge1xyXG4gICAgZXJyb3JXaWRnZXQ/OiBOc1dpZGdldFJlc29sdmVyLklSZW5kZXJDb25maWdXaXRoQW55RGF0YVxyXG4gICAgbG9hZGVyPzogYm9vbGVhblxyXG4gICAgbm9EYXRhV2lkZ2V0PzogTnNXaWRnZXRSZXNvbHZlci5JUmVuZGVyQ29uZmlnV2l0aEFueURhdGFcclxuICAgIHN0cmlwczogSUNvbnRlbnRTdHJpcFVuaXRbXVxyXG4gICAgaXNDaGFubmVsU3RyaXA/OiBib29sZWFuXHJcbiAgfVxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgSUNvbnRlbnRTdHJpcFVuaXQge1xyXG4gICAga2V5OiBzdHJpbmdcclxuICAgIHRpdGxlOiBzdHJpbmdcclxuICAgIG5hbWU/OiBzdHJpbmdcclxuICAgIG1vZGU/OiAnYWNjb3JkaW9uJ1xyXG4gICAgaW5mbz86IElTdHJpcEluZm9cclxuICAgIHByZVdpZGdldHM/OiBOc1dpZGdldFJlc29sdmVyLklSZW5kZXJDb25maWdXaXRoQW55RGF0YVtdXHJcbiAgICBwb3N0V2lkZ2V0cz86IE5zV2lkZ2V0UmVzb2x2ZXIuSVJlbmRlckNvbmZpZ1dpdGhBbnlEYXRhW11cclxuICAgIHN0cmlwQ29uZmlnPzogSVN0cmlwQ29uZmlnXHJcbiAgICBjYW5IaWRlU3RyaXA/OiBib29sZWFuXHJcbiAgICBmaWx0ZXJzPzogYW55W11cclxuICAgIHNlbGVjdEFsbD86IGJvb2xlYW4gfCBudWxsXHJcbiAgICByZXF1ZXN0Pzoge1xyXG4gICAgICBzZWFyY2g/OiBOU1NlYXJjaC5JU2VhcmNoUmVxdWVzdFxyXG4gICAgICBzZWFyY2hWNj86IE5TU2VhcmNoLklTZWFyY2hWNlJlcXVlc3RcclxuICAgICAgc2VhcmNoUmVnaW9uUmVjb21tZW5kYXRpb24/OiBOU1NlYXJjaC5JU2VhcmNoT3JnUmVnaW9uUmVjb21tZW5kYXRpb25SZXF1ZXN0XHJcbiAgICAgIGFwaT86IElTdHJpcFJlcXVlc3RBcGlcclxuICAgICAgaWRzPzogc3RyaW5nW11cclxuICAgIH1cclxuICAgIHNlYXJjaFY2VHlwZT86ICdLQicgfCAnQ29sbGVjdGlvbnMnIHwgJ3NlYXJjaFF1ZXJ5JyB8IG51bGxcclxuICAgIHN0cmlwQmFja2dyb3VuZD86IHN0cmluZ1xyXG4gICAgbm9EYXRhV2lkZ2V0PzogTnNXaWRnZXRSZXNvbHZlci5JUmVuZGVyQ29uZmlnV2l0aEFueURhdGFcclxuICAgIGxvYWRlcj86IGJvb2xlYW5cclxuICAgIGVycm9yV2lkZ2V0PzogTnNXaWRnZXRSZXNvbHZlci5JUmVuZGVyQ29uZmlnV2l0aEFueURhdGFcclxuICAgIHJlZnJlc2hFdmVudD86IFJlY29yZDwnZXZlbnRUeXBlJyB8ICdmcm9tJywgc3RyaW5nPlxyXG4gICAgZmV0Y2hMaWtlcz86IGJvb2xlYW5cclxuICB9XHJcbiAgZXhwb3J0IGludGVyZmFjZSBJU3RyaXBSZXF1ZXN0QXBpIHtcclxuICAgIHBhdGg6IHN0cmluZ1xyXG4gICAgcXVlcnlQYXJhbXM/OiB7XHJcbiAgICAgIHBhZ2VObz86IG51bWJlclxyXG4gICAgICBwYWdlU2l6ZT86IG51bWJlclxyXG4gICAgICBwYWdlU3RhdGU/OiBzdHJpbmdcclxuICAgICAgc291cmNlRmllbGRzPzogc3RyaW5nXHJcbiAgICB9XHJcbiAgfVxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgSVN0cmlwSW5mbyB7XHJcbiAgICBtb2RlOiAnYmVsb3cnIHwgJ3BvcHVwJyB8ICdtb2RhbCdcclxuICAgIHZpc2liaWxpdHlNb2RlPzogJ2hpZGRlbicgfCAndmlzaWJsZSdcclxuICAgIGljb246IHtcclxuICAgICAgaWNvbjogc3RyaW5nXHJcbiAgICAgIHNjYWxlOiBudW1iZXJcclxuICAgICAgc3R5bGU/OiBhbnkgLy8gYWRkZWQgZm9yIFVJXHJcbiAgICB9XHJcbiAgICB3aWRnZXQ6IE5zV2lkZ2V0UmVzb2x2ZXIuSVJlbmRlckNvbmZpZ1dpdGhBbnlEYXRhXHJcbiAgfVxyXG4gIGludGVyZmFjZSBJU3RyaXBDb25maWcge1xyXG4gICAgLy8gY2FyZCBzdWJUeXBlIGtleSBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgY29udGVudCBDYXJkIGRpc3BsYXkgdHlwZVxyXG4gICAgY2FyZFN1YlR5cGU6IE5zQ2FyZENvbnRlbnQuVENhcmRTdWJUeXBlXHJcbiAgICAvLyB0byBzaG93IHZpZXcgbW9yZSBjYXJkIGZvciBhIHNlYXJjaCBzdHJpcFxyXG4gICAgcG9zdENhcmRGb3JTZWFyY2g/OiBib29sZWFuXHJcbiAgICBpbnRyYW5ldE1vZGU/OiAnZ3JleU91dCcgfCAnaGlkZSdcclxuICAgIGRlbGV0ZWRNb2RlPzogJ2dyZXlPdXQnIHwgJ2hpZGUnXHJcbiAgICBjb250ZW50VGFncz86IElDb250ZW50VGFnc1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGludGVyZmFjZSBJQ29udGVudFRhZ3Mge1xyXG4gICAgZGF5c1NwYW4/OiBudW1iZXJcclxuICAgIGV4Y2x1ZGVDb250ZW50VHlwZT86IE5zQ29udGVudC5FQ29udGVudFR5cGVzW11cclxuICAgIGV4Y2x1ZGVNaW1lVHlwZT86IHN0cmluZ1tdXHJcbiAgICB0YWc6IHN0cmluZ1xyXG4gICAgY3JpdGVyaWFGaWVsZDogc3RyaW5nXHJcbiAgfVxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgSUNvbnRlbnRTdHJpcFJlc3BvbnNlQXBpIHtcclxuICAgIGNvbnRlbnRzOiBOc0NvbnRlbnQuSUNvbnRlbnRbXVxyXG4gICAgaGFzTW9yZT86IGJvb2xlYW5cclxuICAgIHBhZ2VTdGF0ZT86IHN0cmluZ1xyXG4gICAgdG90YWxIaXRzPzogbnVtYmVyXHJcbiAgfVxyXG59XHJcbiJdfQ==