geonetwork-ui 2.7.0-dev.d500b08cc → 2.7.0-dev.dadaab772

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 (118) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +4 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +5 -1
  3. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +28 -4
  4. package/esm2022/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.mjs +1 -1
  5. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +5 -1
  6. package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
  7. package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +10 -2
  8. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  9. package/esm2022/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.mjs +80 -0
  10. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +3 -3
  11. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +1 -3
  12. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +31 -12
  13. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +73 -26
  14. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +4 -2
  15. package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +4 -3
  16. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +4 -4
  17. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +21 -43
  18. package/esm2022/libs/ui/map/src/lib/components/map-legend/map-legend.component.mjs +2 -2
  19. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +3 -1
  20. package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
  21. package/esm2022/libs/util/shared/src/index.mjs +2 -2
  22. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +12 -2
  23. package/esm2022/libs/util/shared/src/lib/record/index.mjs +3 -0
  24. package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +45 -0
  25. package/esm2022/libs/util/shared/src/lib/record/record.util.mjs +56 -0
  26. package/esm2022/translations/de.json +9 -1
  27. package/esm2022/translations/en.json +9 -1
  28. package/esm2022/translations/es.json +9 -1
  29. package/esm2022/translations/fr.json +10 -2
  30. package/esm2022/translations/it.json +9 -1
  31. package/esm2022/translations/nl.json +9 -1
  32. package/esm2022/translations/pt.json +9 -1
  33. package/esm2022/translations/sk.json +9 -1
  34. package/fesm2022/geonetwork-ui.mjs +379 -101
  35. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  36. package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +1 -1
  37. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  38. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +2 -0
  39. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  40. package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts +1 -0
  41. package/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.d.ts.map +1 -1
  42. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  43. package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -0
  44. package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
  45. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +3 -2
  46. package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
  47. package/libs/feature/editor/src/index.d.ts +1 -0
  48. package/libs/feature/editor/src/index.d.ts.map +1 -1
  49. package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts +19 -0
  50. package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts.map +1 -0
  51. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  52. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +8 -4
  53. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  54. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +12 -5
  55. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  56. package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
  57. package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -1
  58. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
  59. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +7 -6
  60. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  61. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  62. package/libs/util/app-config/src/lib/model.d.ts +1 -0
  63. package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
  64. package/libs/util/shared/src/index.d.ts +1 -1
  65. package/libs/util/shared/src/index.d.ts.map +1 -1
  66. package/libs/util/shared/src/lib/links/link-utils.d.ts +2 -1
  67. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  68. package/libs/util/shared/src/lib/record/index.d.ts +3 -0
  69. package/libs/util/shared/src/lib/record/index.d.ts.map +1 -0
  70. package/libs/util/shared/src/lib/record/quality-score.util.d.ts +13 -0
  71. package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -0
  72. package/libs/util/shared/src/lib/record/record.util.d.ts +3 -0
  73. package/libs/util/shared/src/lib/record/record.util.d.ts.map +1 -0
  74. package/package.json +1 -1
  75. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/status.mapper.ts +3 -0
  76. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.ts +3 -0
  77. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +4 -0
  78. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +36 -4
  79. package/src/libs/common/domain/src/lib/model/dataviz/dataviz-configuration.model.ts +1 -0
  80. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +4 -0
  81. package/src/libs/common/domain/src/lib/platform.service.interface.ts +2 -0
  82. package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +0 -3
  83. package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +10 -1
  84. package/src/libs/feature/editor/src/index.ts +1 -0
  85. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.css +0 -0
  86. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.html +37 -0
  87. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.ts +90 -0
  88. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +2 -1
  89. package/src/libs/feature/editor/src/lib/fields.config.ts +0 -2
  90. package/src/libs/feature/record/src/lib/data-view/data-view.component.html +2 -0
  91. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +34 -15
  92. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +5 -2
  93. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +67 -22
  94. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +5 -1
  95. package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +6 -1
  96. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +1 -0
  97. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +5 -1
  98. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +1 -0
  99. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +21 -54
  100. package/src/libs/ui/map/src/lib/components/map-legend/map-legend.component.ts +1 -1
  101. package/src/libs/util/app-config/src/lib/app-config.ts +2 -0
  102. package/src/libs/util/app-config/src/lib/model.ts +1 -0
  103. package/src/libs/util/shared/src/index.ts +1 -1
  104. package/src/libs/util/shared/src/lib/links/link-utils.ts +11 -1
  105. package/src/libs/util/shared/src/lib/record/index.ts +2 -0
  106. package/src/libs/util/shared/src/lib/record/quality-score.util.ts +69 -0
  107. package/src/libs/util/shared/src/lib/{record.util.ts → record/record.util.ts} +1 -1
  108. package/translations/de.json +9 -1
  109. package/translations/en.json +9 -1
  110. package/translations/es.json +9 -1
  111. package/translations/fr.json +10 -2
  112. package/translations/it.json +9 -1
  113. package/translations/nl.json +9 -1
  114. package/translations/pt.json +9 -1
  115. package/translations/sk.json +9 -1
  116. package/esm2022/libs/util/shared/src/lib/record.util.mjs +0 -56
  117. package/libs/util/shared/src/lib/record.util.d.ts +0 -3
  118. package/libs/util/shared/src/lib/record.util.d.ts.map +0 -1
@@ -163,9 +163,13 @@ export class Gn4PlatformService {
163
163
  ...(Array.isArray(onlines) ? onlines : []),
164
164
  ...(Array.isArray(thumbnails) ? thumbnails : []),
165
165
  ].map((resource) => Object.values(resource.url)[0]);
166
- const fileToDelete = attachments
167
- .filter((attachment) => !urlsToKeep.includes(attachment.url))
168
- .map((attachment) => attachment.filename);
166
+ const fileToDelete = attachments.reduce((acc, attachment) => {
167
+ if (!urlsToKeep.includes(attachment.url) &&
168
+ attachment.filename !== 'datavizConfig.json') {
169
+ acc.push(attachment.filename);
170
+ }
171
+ return acc;
172
+ }, []);
169
173
  return fileToDelete;
170
174
  }), mergeMap((filesToDelete) => filesToDelete.length
171
175
  ? forkJoin(filesToDelete.map((filename) => this.recordsApiService.delResource(record.uniqueIdentifier, filename))).pipe(map(() => undefined))
@@ -203,6 +207,26 @@ export class Gn4PlatformService {
203
207
  return throwError(() => new Error(error.error?.message ?? error.message));
204
208
  }));
205
209
  }
210
+ getFileContent(url) {
211
+ return this.httpClient.get(url.toString(), { responseType: 'text' }).pipe(map((text) => {
212
+ const parsed = JSON.parse(text);
213
+ if (typeof parsed === 'object') {
214
+ return parsed;
215
+ }
216
+ const decoded = this.decodeBase64(parsed);
217
+ return JSON.parse(decoded);
218
+ }));
219
+ }
220
+ decodeBase64(base64) {
221
+ const text = atob(base64);
222
+ const length = text.length;
223
+ const bytes = new Uint8Array(length);
224
+ for (let i = 0; i < length; i++) {
225
+ bytes[i] = text.charCodeAt(i);
226
+ }
227
+ const decoder = new TextDecoder();
228
+ return decoder.decode(bytes);
229
+ }
206
230
  attachFileToRecord(recordUuid, file, removeDuplicate = false) {
207
231
  return this.getRecordAttachments(recordUuid).pipe(map((recordAttachments) => recordAttachments.map((r) => r.fileName)), switchMap((fileNames) => {
208
232
  const fileName = file.name;
@@ -225,4 +249,4 @@ export class Gn4PlatformService {
225
249
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4PlatformService, decorators: [{
226
250
  type: Injectable
227
251
  }], ctorParameters: () => [{ type: i1.SiteApiService }, { type: i1.MeApiService }, { type: i1.UsersApiService }, { type: i2.Gn4PlatformMapper }, { type: i1.ToolsApiService }, { type: i1.RegistriesApiService }, { type: i3.TranslateService }, { type: i1.UserfeedbackApiService }, { type: i4.HttpClient }, { type: i1.RecordsApiService }] });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ240LXBsYXRmb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L3BsYXRmb3JtL2duNC1wbGF0Zm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ04sR0FBRyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUNMLFlBQVksRUFDWixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxlQUFlLEVBQ2Ysc0JBQXNCLEVBQ3RCLGVBQWUsR0FDaEIsTUFBTSwrQ0FBK0MsQ0FBQTtBQVl0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFNaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFDL0UsT0FBTyxFQUNMLGFBQWEsRUFDYixRQUFRLEVBRVIsRUFBRSxFQUNGLFNBQVMsRUFDVCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTs7Ozs7O0FBRTNFLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQTtBQUc3QixNQUFNLE9BQU8sa0JBQWtCO0lBOEM3QixJQUFZLEtBQUs7UUFDZixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxn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QUFJLENBQUMsRUFBRSxDQUFDO2dCQUNyRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDbEUsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDYixNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtvQkFDaEUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQTtnQkFDOUMsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUE7Z0JBQzlELE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2dCQUNyRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBQzlDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQzsrR0F2V1Usa0JBQWtCO21IQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIGNhdGNoRXJyb3IsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBtZXJnZU1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQge1xuICBNZUFwaVNlcnZpY2UsXG4gIFJlY29yZHNBcGlTZXJ2aWNlLFxuICBSZWdpc3RyaWVzQXBpU2VydmljZSxcbiAgU2l0ZUFwaVNlcnZpY2UsXG4gIFRvb2xzQXBpU2VydmljZSxcbiAgVXNlcmZlZWRiYWNrQXBpU2VydmljZSxcbiAgVXNlcnNBcGlTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL2duNC9zcmMnXG5pbXBvcnQge1xuICBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gIFVwbG9hZEV2ZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9wbGF0Zm9ybS5zZXJ2aWNlLmludGVyZmFjZSdcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3VzZXIvdXNlci5tb2RlbCdcbmltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIEtleXdvcmQsXG4gIE9yZ2FuaXphdGlvbixcbiAgVXNlckZlZWRiYWNrLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBHbjRQbGF0Zm9ybU1hcHBlciB9IGZyb20gJy4vZ240LXBsYXRmb3JtLm1hcHBlcidcbmltcG9ydCB7IGx0ciB9IGZyb20gJ3NlbXZlcidcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7XG4gIEtleXdvcmRBcGlSZXNwb25zZSxcbiAgVGhlc2F1cnVzQXBpUmVzcG9uc2UsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMnXG5pbXBvcnQgeyBLZXl3b3JkVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3RoZXNhdXJ1cydcbmltcG9ydCB7IG5vRHVwbGljYXRlRmlsZU5hbWUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7XG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZvcmtKb2luLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgc3dpdGNoTWFwLFxuICB0aHJvd0Vycm9yLFxufSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBnZXRMYW5nM0Zyb21MYW5nMiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9pMThuL3NyYydcblxuY29uc3QgbWluQXBpVmVyc2lvbiA9ICc0LjIuMidcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEduNFBsYXRmb3JtU2VydmljZSBpbXBsZW1lbnRzIFBsYXRmb3JtU2VydmljZUludGVyZmFjZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHlwZSA9ICdHZW9OZXR3b3JrJ1xuICBwcml2YXRlIHJlYWRvbmx5IG1lJDogT2JzZXJ2YWJsZTxVc2VyTW9kZWw+XG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlcnMkOiBPYnNlcnZhYmxlPFVzZXJNb2RlbFtdPlxuICBwcml2YXRlIHJlYWRvbmx5IGlzVXNlckFub255bW91cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cblxuICBwcml2YXRlIGtleVRyYW5zbGF0aW9ucyQgPSB0aGlzLnRvb2xzQXBpU2VydmljZVxuICAgIC5nZXRUcmFuc2xhdGlvbnNQYWNrYWdlMSgnZ251aScpXG4gICAgLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdFcnJvciB3aGlsZSBsb2FkaW5nIGdudWkgbGFuZ3VhZ2UgcGFja2FnZScpXG4gICAgICAgIHJldHVybiBvZih7fSlcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApXG5cbiAgcHJpdmF0ZSBzZXR0aW5ncyQgPSBvZih0cnVlKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnNpdGVBcGlTZXJ2aWNlLmdldFNpdGVPclBvcnRhbERlc2NyaXB0aW9uKCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBwcml2YXRlIHJlYWRvbmx5IGFwaVZlcnNpb24kID0gdGhpcy5zZXR0aW5ncyQucGlwZShcbiAgICBtYXAoKGluZm8pID0+IGluZm9bJ3N5c3RlbS9wbGF0Zm9ybS92ZXJzaW9uJ10gYXMgc3RyaW5nKSxcbiAgICB0YXAoKHZlcnNpb24pID0+IHtcbiAgICAgIGlmIChsdHIodmVyc2lvbiwgbWluQXBpVmVyc2lvbikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBHbjQgQVBJIHZlcnNpb24gaXMgbm90IGNvbXBhdGlibGUuXFxuTWluaW11bTogJHttaW5BcGlWZXJzaW9ufVxcbllvdXIgdmVyc2lvbjogJHt2ZXJzaW9ufWBcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBwcml2YXRlIHJlYWRvbmx5IGFsbG93RWRpdEhhcnZlc3RlZE1kJCA9IHRoaXMuc2V0dGluZ3MkLnBpcGUoXG4gICAgbWFwKChpbmZvKSA9PiB7XG4gICAgICByZXR1cm4gaW5mb1snc3lzdGVtL2hhcnZlc3Rlci9lbmFibGVFZGl0aW5nJ10gYXMgYm9vbGVhblxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICAvKipcbiAgICogQSBtYXAgb2YgYWxyZWFkeSBsb2FkZWQgdGhlc2F1cmkgKGdyb3VwcyBvZiBrZXl3b3Jkcyk7IHRoZSBrZXkgaXMgYSBVUklcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUga2V5d29yZHNCeVRoZXNhdXJpOiBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPEtleXdvcmRbXT4+ID0ge31cblxuICBwcml2YXRlIGdldCBsYW5nMygpIHtcbiAgICByZXR1cm4gZ2V0TGFuZzNGcm9tTGFuZzIodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nKVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzaXRlQXBpU2VydmljZTogU2l0ZUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZUFwaTogTWVBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlcnNBcGk6IFVzZXJzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIG1hcHBlcjogR240UGxhdGZvcm1NYXBwZXIsXG4gICAgcHJpdmF0ZSB0b29sc0FwaVNlcnZpY2U6IFRvb2xzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJlZ2lzdHJpZXNBcGlTZXJ2aWNlOiBSZWdpc3RyaWVzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyZmVlZGJhY2tBcGlTZXJ2aWNlOiBVc2VyZmVlZGJhY2tBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHJlY29yZHNBcGlTZXJ2aWNlOiBSZWNvcmRzQXBpU2VydmljZVxuICApIHtcbiAgICB0aGlzLm1lJCA9IHRoaXMubWVBcGkuZ2V0TWUoKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChhcGlVc2VyKSA9PiB0aGlzLm1hcHBlci51c2VyRnJvbU1lQXBpKGFwaVVzZXIpKSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSlcbiAgICApXG5cbiAgICB0aGlzLmlzVXNlckFub255bW91cyQgPSB0aGlzLm1lJC5waXBlKFxuICAgICAgbWFwKCh1c2VyKSA9PiAhdXNlciB8fCAhKCdpZCcgaW4gdXNlcikpXG4gICAgKVxuXG4gICAgdGhpcy51c2VycyQgPSB0aGlzLnVzZXJzQXBpLmdldFVzZXJzKCkucGlwZShcbiAgICAgIG1hcCgodXNlcnMpID0+IHVzZXJzLm1hcCgodXNlcikgPT4gdGhpcy5tYXBwZXIudXNlckZyb21BcGkodXNlcikpKSxcbiAgICAgIHNoYXJlUmVwbGF5KClcbiAgICApXG4gIH1cblxuICBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHlwZVxuICB9XG5cbiAgZ2V0QXBpVmVyc2lvbigpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmFwaVZlcnNpb24kXG4gIH1cblxuICBnZXRBbGxvd0VkaXRIYXJ2ZXN0ZWRNZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5hbGxvd0VkaXRIYXJ2ZXN0ZWRNZCRcbiAgfVxuXG4gIGdldE1lKCk6IE9ic2VydmFibGU8VXNlck1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMubWUkXG4gIH1cblxuICBpc0Fub255bW91cygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5pc1VzZXJBbm9ueW1vdXMkXG4gIH1cblxuICBnZXRPcmdhbml6YXRpb25zKCk6IE9ic2VydmFibGU8T3JnYW5pemF0aW9uW10+IHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBnZXRVc2Vyc0J5T3JnYW5pemF0aW9uKG9yZ2FuaXNhdGlvbjogT3JnYW5pemF0aW9uKTogT2JzZXJ2YWJsZTxVc2VyTW9kZWxbXT4ge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIGdldFVzZXJzKCk6IE9ic2VydmFibGU8VXNlck1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy51c2VycyRcbiAgfVxuXG4gIHRyYW5zbGF0ZUtleShrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgLy8gaWYgdGhlIGtleSBpcyBhIFVSSSwgdXNlIHRoZSByZWdpc3RyaWVzIEFQSSB0byBsb29rIGZvciB0aGUgdHJhbnNsYXRpb25cbiAgICBpZiAoa2V5Lm1hdGNoKC9eaHR0cHM/OlxcL1xcLy8pKSB7XG4gICAgICAvLyB0aGUgdGhlc2F1cnVzIFVSSSBpcyBpbmZlcnJlZCBieSByZW1vdmluZyBhIHBhcnQgb2YgdGhlIGtleXdvcmQgVVJJXG4gICAgICAvLyB0aGlzIGlzIG5vdCBleGFjdCBzY2llbmNlIGJ1dCBpdCdzIE9LLCB3ZSdsbCBzdGlsbCBlbmQgdXAgbG9hZGluZyBhIGJ1bmNoIG9mIGtleXdvcmRzIGF0IG9uY2UgYW55d2F5XG4gICAgICBjb25zdCB0aGVzYXVydXNVcmkgPSBrZXkucmVwbGFjZSgvXFwvKFteL10rKSQvLCAnLycpXG4gICAgICByZXR1cm4gdGhpcy5nZXRLZXl3b3Jkc0J5VXJpKHRoZXNhdXJ1c1VyaSkucGlwZShcbiAgICAgICAgbWFwKCh0aGVzYXVydXMpID0+IHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhlc2F1cnVzKSB7XG4gICAgICAgICAgICBpZiAoaXRlbS5rZXkgPT09IGtleSkgcmV0dXJuIGl0ZW0ubGFiZWxcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGtleVxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5rZXlUcmFuc2xhdGlvbnMkLnBpcGUobWFwKCh0cmFuc2xhdGlvbnMpID0+IHRyYW5zbGF0aW9uc1trZXldKSlcbiAgfVxuXG4gIHByaXZhdGUgYWxsVGhlc2F1cnVzJCA9IHRoaXMuaHR0cENsaWVudFxuICAgIC5nZXQoXG4gICAgICBgJHt0aGlzLnJlZ2lzdHJpZXNBcGlTZXJ2aWNlLmNvbmZpZ3VyYXRpb24uYmFzZVBhdGh9L3RoZXNhdXJ1cz9fY29udGVudF90eXBlPWpzb25gXG4gICAgKVxuICAgIC5waXBlKFxuICAgICAgbWFwKCh0aGVzYXVydXMpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoZXNhdXJ1c1swXSBhcyBUaGVzYXVydXNBcGlSZXNwb25zZVtdXG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKVxuXG4gIHNlYXJjaEtleXdvcmRzKFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAga2V5d29yZFR5cGVzOiBLZXl3b3JkVHlwZVtdXG4gICk6IE9ic2VydmFibGU8S2V5d29yZFtdPiB7XG4gICAgY29uc3Qga2V5d29yZHMkOiBPYnNlcnZhYmxlPEtleXdvcmRBcGlSZXNwb25zZVtdPiA9IHRoaXMuYWxsVGhlc2F1cnVzJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh0aGVzYXVydXMpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRUaGVzYXVyaSA9IFtdXG4gICAgICAgIGtleXdvcmRUeXBlcy5tYXAoKGtleXdvcmRUeXBlKSA9PiB7XG4gICAgICAgICAgc2VsZWN0ZWRUaGVzYXVyaS5wdXNoKFxuICAgICAgICAgICAgLi4udGhlc2F1cnVzLmZpbHRlcigodGhlcykgPT4gdGhlcy5kbmFtZSA9PT0ga2V5d29yZFR5cGUpXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuXG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJpZXNBcGlTZXJ2aWNlLnNlYXJjaEtleXdvcmRzKFxuICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgIHRoaXMubGFuZzMsXG4gICAgICAgICAgMTAsXG4gICAgICAgICAgMCxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIHNlbGVjdGVkVGhlc2F1cmkubWFwKCh0aGVzKSA9PiB0aGVzLmtleSksXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBgKiR7cXVlcnl9KmBcbiAgICAgICAgKSBhcyBPYnNlcnZhYmxlPEtleXdvcmRBcGlSZXNwb25zZVtdPlxuICAgICAgfSlcbiAgICApXG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChba2V5d29yZHMkLCB0aGlzLmFsbFRoZXNhdXJ1cyRdKS5waXBlKFxuICAgICAgbWFwKChba2V5d29yZHMsIHRoZXNhdXJ1c10pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwcGVyLmtleXdvcmRzRnJvbUFwaShrZXl3b3JkcywgdGhlc2F1cnVzLCB0aGlzLmxhbmczKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRLZXl3b3Jkc0J5VXJpKHVyaTogc3RyaW5nKTogT2JzZXJ2YWJsZTxLZXl3b3JkW10+IHtcbiAgICBpZiAodGhpcy5rZXl3b3Jkc0J5VGhlc2F1cmlbdXJpXSkge1xuICAgICAgcmV0dXJuIHRoaXMua2V5d29yZHNCeVRoZXNhdXJpW3VyaV1cbiAgICB9XG4gICAgY29uc3Qga2V5d29yZHMkID0gdGhpcy5yZWdpc3RyaWVzQXBpU2VydmljZS5zZWFyY2hLZXl3b3JkcyhcbiAgICAgIG51bGwsXG4gICAgICB0aGlzLmxhbmczLFxuICAgICAgMTAwMCxcbiAgICAgIDAsXG4gICAgICBudWxsLFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICBgJHt1cml9KmBcbiAgICApIGFzIE9ic2VydmFibGU8S2V5d29yZEFwaVJlc3BvbnNlW10+XG5cbiAgICB0aGlzLmtleXdvcmRzQnlUaGVzYXVyaVt1cmldID0gY29tYmluZUxhdGVzdChbXG4gICAgICBrZXl3b3JkcyQsXG4gICAgICB0aGlzLmFsbFRoZXNhdXJ1cyQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2tleXdvcmRzLCB0aGVzYXVydXNdKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcHBlci5rZXl3b3Jkc0Zyb21BcGkoa2V5d29yZHMsIHRoZXNhdXJ1cywgdGhpcy5sYW5nMylcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApXG5cbiAgICByZXR1cm4gdGhpcy5rZXl3b3Jkc0J5VGhlc2F1cmlbdXJpXVxuICB9XG5cbiAgc2VhcmNoS2V5d29yZHNJblRoZXNhdXJ1cyhxdWVyeTogc3RyaW5nLCB0aGVzYXVydXNJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxsVGhlc2F1cnVzJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh0aGVzYXVyaSkgPT4ge1xuICAgICAgICBjb25zdCBzdHJpcHBlZFRoZXNhdXJ1c0lkID0gdGhlc2F1cnVzSWQucmVwbGFjZShcbiAgICAgICAgICAnZ2VvbmV0d29yay50aGVzYXVydXMuJyxcbiAgICAgICAgICAnJ1xuICAgICAgICApXG4gICAgICAgIGlmICghdGhlc2F1cmkuZmluZCgodGhlcykgPT4gdGhlcy5rZXkgPT09IHN0cmlwcGVkVGhlc2F1cnVzSWQpKVxuICAgICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cmllc0FwaVNlcnZpY2VcbiAgICAgICAgICAuc2VhcmNoS2V5d29yZHMoXG4gICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgIHRoaXMubGFuZzMsXG4gICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIFtzdHJpcHBlZFRoZXNhdXJ1c0lkXSxcbiAgICAgICAgICAgIG51bGxcbiAgICAgICAgICApXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGtleXdvcmRzOiBLZXl3b3JkQXBpUmVzcG9uc2VbXSkgPT5cbiAgICAgICAgICAgICAgdGhpcy5tYXBwZXIua2V5d29yZHNGcm9tQXBpKGtleXdvcmRzLCB0aGVzYXVyaSwgdGhpcy5sYW5nMylcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldFVzZXJGZWVkYmFja3ModXVpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxVc2VyRmVlZGJhY2tbXT4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJmZWVkYmFja0FwaVNlcnZpY2UuZ2V0VXNlckNvbW1lbnRzKHV1aWQpLnBpcGUoXG4gICAgICBtYXAoKHVzZXJGZWVkYmFja3MpID0+XG4gICAgICAgIHVzZXJGZWVkYmFja3MubWFwKHRoaXMubWFwcGVyLnVzZXJGZWVkYmFja3NGcm9tQXBpKVxuICAgICAgKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIHVzZXIgZmVlZGJhY2tzOicsIGVycm9yKVxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBwb3N0VXNlckZlZWRiYWNrcyh1c2VyRmVlZGJhY2s6IFVzZXJGZWVkYmFjayk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IG1hcHBlZFVzZXJGZWVkQmFjayA9IHRoaXMubWFwcGVyLnVzZXJGZWVkYmFja3NUb0FwaSh1c2VyRmVlZGJhY2spXG4gICAgcmV0dXJuIHRoaXMudXNlcmZlZWRiYWNrQXBpU2VydmljZS5uZXdVc2VyRmVlZGJhY2sobWFwcGVkVXNlckZlZWRCYWNrKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHVuZGVmaW5lZCksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwb3N0aW5nIHVzZXIgZmVlZGJhY2s6JywgZXJyb3IpXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldFJlY29yZEF0dGFjaG1lbnRzKHJlY29yZFV1aWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlLmdldEFsbFJlc291cmNlcyhyZWNvcmRVdWlkKS5waXBlKFxuICAgICAgbWFwKChyZXNvdXJjZXMpID0+XG4gICAgICAgIHJlc291cmNlcy5tYXAoKHIpID0+ICh7XG4gICAgICAgICAgdXJsOiBuZXcgVVJMKHIudXJsKSxcbiAgICAgICAgICBmaWxlTmFtZTogci5maWxlbmFtZSxcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKVxuICB9XG5cbiAgY2xlYW5SZWNvcmRBdHRhY2htZW50cyhyZWNvcmQ6IENhdGFsb2dSZWNvcmQpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlLmdldEFzc29jaWF0ZWRSZXNvdXJjZXMocmVjb3JkLnVuaXF1ZUlkZW50aWZpZXIpLFxuICAgICAgdGhpcy5yZWNvcmRzQXBpU2VydmljZS5nZXRBbGxSZXNvdXJjZXMocmVjb3JkLnVuaXF1ZUlkZW50aWZpZXIpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFthc3NvY2lhdGVkLCBhdHRhY2htZW50c10pID0+IHtcbiAgICAgICAgY29uc3QgeyBvbmxpbmVzID0gW10sIHRodW1ibmFpbHMgPSBbXSB9ID0gYXNzb2NpYXRlZFxuXG4gICAgICAgIGNvbnN0IHVybHNUb0tlZXAgPSBbXG4gICAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkob25saW5lcykgPyBvbmxpbmVzIDogW10pLFxuICAgICAgICAgIC4uLihBcnJheS5pc0FycmF5KHRodW1ibmFpbHMpID8gdGh1bWJuYWlscyA6IFtdKSxcbiAgICAgICAgXS5tYXAoKHJlc291cmNlKSA9PiBPYmplY3QudmFsdWVzKHJlc291cmNlLnVybClbMF0pXG5cbiAgICAgICAgY29uc3QgZmlsZVRvRGVsZXRlID0gYXR0YWNobWVudHNcbiAgICAgICAgICAuZmlsdGVyKChhdHRhY2htZW50KSA9PiAhdXJsc1RvS2VlcC5pbmNsdWRlcyhhdHRhY2htZW50LnVybCkpXG4gICAgICAgICAgLm1hcCgoYXR0YWNobWVudCkgPT4gYXR0YWNobWVudC5maWxlbmFtZSlcblxuICAgICAgICByZXR1cm4gZmlsZVRvRGVsZXRlXG4gICAgICB9KSxcbiAgICAgIG1lcmdlTWFwKChmaWxlc1RvRGVsZXRlKSA9PlxuICAgICAgICBmaWxlc1RvRGVsZXRlLmxlbmd0aFxuICAgICAgICAgID8gZm9ya0pvaW4oXG4gICAgICAgICAgICAgIGZpbGVzVG9EZWxldGUubWFwKChmaWxlbmFtZSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlLmRlbFJlc291cmNlKFxuICAgICAgICAgICAgICAgICAgcmVjb3JkLnVuaXF1ZUlkZW50aWZpZXIsXG4gICAgICAgICAgICAgICAgICBmaWxlbmFtZVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKS5waXBlKG1hcCgoKSA9PiB1bmRlZmluZWQpKVxuICAgICAgICAgIDogb2YodW5kZWZpbmVkKVxuICAgICAgKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHdoaWxlIGNsZWFuaW5nIGF0dGFjaG1lbnRzOicsIGVycm9yKVxuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBwcml2YXRlIHVwbG9hZEZpbGUocmVjb3JkVXVpZDogc3RyaW5nLCBmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxVcGxvYWRFdmVudD4ge1xuICAgIGxldCBzaXplQnl0ZXMgPSAtMVxuICAgIHJldHVybiB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlXG4gICAgICAucHV0UmVzb3VyY2UocmVjb3JkVXVpZCwgZmlsZSwgJ3B1YmxpYycsIHVuZGVmaW5lZCwgJ2V2ZW50cycsIHRydWUpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKSB7XG4gICAgICAgICAgICBzaXplQnl0ZXMgPSBldmVudC50b3RhbFxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3Byb2dyZXNzJyxcbiAgICAgICAgICAgICAgcHJvZ3Jlc3M6IGV2ZW50LnRvdGFsXG4gICAgICAgICAgICAgICAgPyBNYXRoLnJvdW5kKCgxMDAgKiBldmVudC5sb2FkZWQpIC8gZXZlbnQudG90YWwpXG4gICAgICAgICAgICAgICAgOiAwLFxuICAgICAgICAgICAgfSBhcyBVcGxvYWRFdmVudFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICBhdHRhY2htZW50OiB7XG4gICAgICAgICAgICAgICAgdXJsOiBuZXcgVVJMKGV2ZW50LmJvZHkudXJsKSxcbiAgICAgICAgICAgICAgICBmaWxlTmFtZTogZXZlbnQuYm9keS5maWxlbmFtZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgc2l6ZUJ5dGVzLFxuICAgICAgICAgICAgfSBhcyBVcGxvYWRFdmVudFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgIH0pLFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiAhIWV2ZW50KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihcbiAgICAgICAgICAgICgpID0+IG5ldyBFcnJvcihlcnJvci5lcnJvcj8ubWVzc2FnZSA/PyBlcnJvci5tZXNzYWdlKVxuICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICAgIClcbiAgfVxuXG4gIGF0dGFjaEZpbGVUb1JlY29yZChcbiAgICByZWNvcmRVdWlkOiBzdHJpbmcsXG4gICAgZmlsZTogRmlsZSxcbiAgICByZW1vdmVEdXBsaWNhdGUgPSBmYWxzZVxuICApOiBPYnNlcnZhYmxlPFVwbG9hZEV2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVjb3JkQXR0YWNobWVudHMocmVjb3JkVXVpZCkucGlwZShcbiAgICAgIG1hcCgocmVjb3JkQXR0YWNobWVudHMpID0+IHJlY29yZEF0dGFjaG1lbnRzLm1hcCgocikgPT4gci5maWxlTmFtZSkpLFxuICAgICAgc3dpdGNoTWFwKChmaWxlTmFtZXMpID0+IHtcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBmaWxlLm5hbWVcblxuICAgICAgICBpZiAocmVtb3ZlRHVwbGljYXRlICYmIGZpbGVOYW1lcy5pbmNsdWRlcyhmaWxlLm5hbWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZGVsUmVzb3VyY2UocmVjb3JkVXVpZCwgZmlsZU5hbWUpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBmaWxlQ29weSA9IG5ldyBGaWxlKFtmaWxlXSwgZmlsZU5hbWUsIHsgdHlwZTogZmlsZS50eXBlIH0pXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnVwbG9hZEZpbGUocmVjb3JkVXVpZCwgZmlsZUNvcHkpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBmaW5hbEZpbGVOYW1lID0gbm9EdXBsaWNhdGVGaWxlTmFtZShmaWxlTmFtZSwgZmlsZU5hbWVzKVxuICAgICAgICAgIGNvbnN0IGZpbGVDb3B5ID0gbmV3IEZpbGUoW2ZpbGVdLCBmaW5hbEZpbGVOYW1lLCB7IHR5cGU6IGZpbGUudHlwZSB9KVxuICAgICAgICAgIHJldHVybiB0aGlzLnVwbG9hZEZpbGUocmVjb3JkVXVpZCwgZmlsZUNvcHkpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG4iXX0=
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ240LXBsYXRmb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L3BsYXRmb3JtL2duNC1wbGF0Zm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ04sR0FBRyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUNMLFlBQVksRUFDWixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxlQUFlLEVBQ2Ysc0JBQXNCLEVBQ3RCLGVBQWUsR0FDaEIsTUFBTSwrQ0FBK0MsQ0FBQTtBQVl0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFNaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFDL0UsT0FBTyxFQUNMLGFBQWEsRUFDYixRQUFRLEVBRVIsRUFBRSxFQUNGLFNBQVMsRUFDVCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTs7Ozs7O0FBRzNFLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQTtBQUc3QixNQUFNLE9BQU8sa0JBQWtCO0lBOEM3QixJQUFZLEtBQUs7UUFDZixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxn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LElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDckQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ2xFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ2IsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7b0JBQ2hFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUE7Z0JBQzlDLENBQUMsQ0FBQyxDQUNILENBQUE7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFBO2dCQUM5RCxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtnQkFDckUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUM5QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7K0dBdFlVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgbWVyZ2VNYXAsXG4gIHNoYXJlUmVwbGF5LFxuICB0YXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHtcbiAgTWVBcGlTZXJ2aWNlLFxuICBSZWNvcmRzQXBpU2VydmljZSxcbiAgUmVnaXN0cmllc0FwaVNlcnZpY2UsXG4gIFNpdGVBcGlTZXJ2aWNlLFxuICBUb29sc0FwaVNlcnZpY2UsXG4gIFVzZXJmZWVkYmFja0FwaVNlcnZpY2UsXG4gIFVzZXJzQXBpU2VydmljZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9nbjQvc3JjJ1xuaW1wb3J0IHtcbiAgUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlLFxuICBVcGxvYWRFdmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvcGxhdGZvcm0uc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC91c2VyL3VzZXIubW9kZWwnXG5pbXBvcnQge1xuICBDYXRhbG9nUmVjb3JkLFxuICBLZXl3b3JkLFxuICBPcmdhbml6YXRpb24sXG4gIFVzZXJGZWVkYmFjayxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgR240UGxhdGZvcm1NYXBwZXIgfSBmcm9tICcuL2duNC1wbGF0Zm9ybS5tYXBwZXInXG5pbXBvcnQgeyBsdHIgfSBmcm9tICdzZW12ZXInXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQge1xuICBLZXl3b3JkQXBpUmVzcG9uc2UsXG4gIFRoZXNhdXJ1c0FwaVJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjJ1xuaW1wb3J0IHsgS2V5d29yZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC90aGVzYXVydXMnXG5pbXBvcnQgeyBub0R1cGxpY2F0ZUZpbGVOYW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQge1xuICBjb21iaW5lTGF0ZXN0LFxuICBmb3JrSm9pbixcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN3aXRjaE1hcCxcbiAgdGhyb3dFcnJvcixcbn0gZnJvbSAncnhqcydcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgZ2V0TGFuZzNGcm9tTGFuZzIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMnXG5pbXBvcnQgeyBEYXRhdml6Q29uZmlnTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9kYXRhdml6L2RhdGF2aXotY29uZmlndXJhdGlvbi5tb2RlbCdcblxuY29uc3QgbWluQXBpVmVyc2lvbiA9ICc0LjIuMidcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEduNFBsYXRmb3JtU2VydmljZSBpbXBsZW1lbnRzIFBsYXRmb3JtU2VydmljZUludGVyZmFjZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHlwZSA9ICdHZW9OZXR3b3JrJ1xuICBwcml2YXRlIHJlYWRvbmx5IG1lJDogT2JzZXJ2YWJsZTxVc2VyTW9kZWw+XG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlcnMkOiBPYnNlcnZhYmxlPFVzZXJNb2RlbFtdPlxuICBwcml2YXRlIHJlYWRvbmx5IGlzVXNlckFub255bW91cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cblxuICBwcml2YXRlIGtleVRyYW5zbGF0aW9ucyQgPSB0aGlzLnRvb2xzQXBpU2VydmljZVxuICAgIC5nZXRUcmFuc2xhdGlvbnNQYWNrYWdlMSgnZ251aScpXG4gICAgLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdFcnJvciB3aGlsZSBsb2FkaW5nIGdudWkgbGFuZ3VhZ2UgcGFja2FnZScpXG4gICAgICAgIHJldHVybiBvZih7fSlcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApXG5cbiAgcHJpdmF0ZSBzZXR0aW5ncyQgPSBvZih0cnVlKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnNpdGVBcGlTZXJ2aWNlLmdldFNpdGVPclBvcnRhbERlc2NyaXB0aW9uKCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBwcml2YXRlIHJlYWRvbmx5IGFwaVZlcnNpb24kID0gdGhpcy5zZXR0aW5ncyQucGlwZShcbiAgICBtYXAoKGluZm8pID0+IGluZm9bJ3N5c3RlbS9wbGF0Zm9ybS92ZXJzaW9uJ10gYXMgc3RyaW5nKSxcbiAgICB0YXAoKHZlcnNpb24pID0+IHtcbiAgICAgIGlmIChsdHIodmVyc2lvbiwgbWluQXBpVmVyc2lvbikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBHbjQgQVBJIHZlcnNpb24gaXMgbm90IGNvbXBhdGlibGUuXFxuTWluaW11bTogJHttaW5BcGlWZXJzaW9ufVxcbllvdXIgdmVyc2lvbjogJHt2ZXJzaW9ufWBcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBwcml2YXRlIHJlYWRvbmx5IGFsbG93RWRpdEhhcnZlc3RlZE1kJCA9IHRoaXMuc2V0dGluZ3MkLnBpcGUoXG4gICAgbWFwKChpbmZvKSA9PiB7XG4gICAgICByZXR1cm4gaW5mb1snc3lzdGVtL2hhcnZlc3Rlci9lbmFibGVFZGl0aW5nJ10gYXMgYm9vbGVhblxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICAvKipcbiAgICogQSBtYXAgb2YgYWxyZWFkeSBsb2FkZWQgdGhlc2F1cmkgKGdyb3VwcyBvZiBrZXl3b3Jkcyk7IHRoZSBrZXkgaXMgYSBVUklcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUga2V5d29yZHNCeVRoZXNhdXJpOiBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPEtleXdvcmRbXT4+ID0ge31cblxuICBwcml2YXRlIGdldCBsYW5nMygpIHtcbiAgICByZXR1cm4gZ2V0TGFuZzNGcm9tTGFuZzIodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nKVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzaXRlQXBpU2VydmljZTogU2l0ZUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZUFwaTogTWVBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlcnNBcGk6IFVzZXJzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIG1hcHBlcjogR240UGxhdGZvcm1NYXBwZXIsXG4gICAgcHJpdmF0ZSB0b29sc0FwaVNlcnZpY2U6IFRvb2xzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJlZ2lzdHJpZXNBcGlTZXJ2aWNlOiBSZWdpc3RyaWVzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyZmVlZGJhY2tBcGlTZXJ2aWNlOiBVc2VyZmVlZGJhY2tBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHJlY29yZHNBcGlTZXJ2aWNlOiBSZWNvcmRzQXBpU2VydmljZVxuICApIHtcbiAgICB0aGlzLm1lJCA9IHRoaXMubWVBcGkuZ2V0TWUoKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChhcGlVc2VyKSA9PiB0aGlzLm1hcHBlci51c2VyRnJvbU1lQXBpKGFwaVVzZXIpKSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSlcbiAgICApXG5cbiAgICB0aGlzLmlzVXNlckFub255bW91cyQgPSB0aGlzLm1lJC5waXBlKFxuICAgICAgbWFwKCh1c2VyKSA9PiAhdXNlciB8fCAhKCdpZCcgaW4gdXNlcikpXG4gICAgKVxuXG4gICAgdGhpcy51c2VycyQgPSB0aGlzLnVzZXJzQXBpLmdldFVzZXJzKCkucGlwZShcbiAgICAgIG1hcCgodXNlcnMpID0+IHVzZXJzLm1hcCgodXNlcikgPT4gdGhpcy5tYXBwZXIudXNlckZyb21BcGkodXNlcikpKSxcbiAgICAgIHNoYXJlUmVwbGF5KClcbiAgICApXG4gIH1cblxuICBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHlwZVxuICB9XG5cbiAgZ2V0QXBpVmVyc2lvbigpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmFwaVZlcnNpb24kXG4gIH1cblxuICBnZXRBbGxvd0VkaXRIYXJ2ZXN0ZWRNZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5hbGxvd0VkaXRIYXJ2ZXN0ZWRNZCRcbiAgfVxuXG4gIGdldE1lKCk6IE9ic2VydmFibGU8VXNlck1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMubWUkXG4gIH1cblxuICBpc0Fub255bW91cygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5pc1VzZXJBbm9ueW1vdXMkXG4gIH1cblxuICBnZXRPcmdhbml6YXRpb25zKCk6IE9ic2VydmFibGU8T3JnYW5pemF0aW9uW10+IHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBnZXRVc2Vyc0J5T3JnYW5pemF0aW9uKG9yZ2FuaXNhdGlvbjogT3JnYW5pemF0aW9uKTogT2JzZXJ2YWJsZTxVc2VyTW9kZWxbXT4ge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIGdldFVzZXJzKCk6IE9ic2VydmFibGU8VXNlck1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy51c2VycyRcbiAgfVxuXG4gIHRyYW5zbGF0ZUtleShrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgLy8gaWYgdGhlIGtleSBpcyBhIFVSSSwgdXNlIHRoZSByZWdpc3RyaWVzIEFQSSB0byBsb29rIGZvciB0aGUgdHJhbnNsYXRpb25cbiAgICBpZiAoa2V5Lm1hdGNoKC9eaHR0cHM/OlxcL1xcLy8pKSB7XG4gICAgICAvLyB0aGUgdGhlc2F1cnVzIFVSSSBpcyBpbmZlcnJlZCBieSByZW1vdmluZyBhIHBhcnQgb2YgdGhlIGtleXdvcmQgVVJJXG4gICAgICAvLyB0aGlzIGlzIG5vdCBleGFjdCBzY2llbmNlIGJ1dCBpdCdzIE9LLCB3ZSdsbCBzdGlsbCBlbmQgdXAgbG9hZGluZyBhIGJ1bmNoIG9mIGtleXdvcmRzIGF0IG9uY2UgYW55d2F5XG4gICAgICBjb25zdCB0aGVzYXVydXNVcmkgPSBrZXkucmVwbGFjZSgvXFwvKFteL10rKSQvLCAnLycpXG4gICAgICByZXR1cm4gdGhpcy5nZXRLZXl3b3Jkc0J5VXJpKHRoZXNhdXJ1c1VyaSkucGlwZShcbiAgICAgICAgbWFwKCh0aGVzYXVydXMpID0+IHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhlc2F1cnVzKSB7XG4gICAgICAgICAgICBpZiAoaXRlbS5rZXkgPT09IGtleSkgcmV0dXJuIGl0ZW0ubGFiZWxcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGtleVxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5rZXlUcmFuc2xhdGlvbnMkLnBpcGUobWFwKCh0cmFuc2xhdGlvbnMpID0+IHRyYW5zbGF0aW9uc1trZXldKSlcbiAgfVxuXG4gIHByaXZhdGUgYWxsVGhlc2F1cnVzJCA9IHRoaXMuaHR0cENsaWVudFxuICAgIC5nZXQoXG4gICAgICBgJHt0aGlzLnJlZ2lzdHJpZXNBcGlTZXJ2aWNlLmNvbmZpZ3VyYXRpb24uYmFzZVBhdGh9L3RoZXNhdXJ1cz9fY29udGVudF90eXBlPWpzb25gXG4gICAgKVxuICAgIC5waXBlKFxuICAgICAgbWFwKCh0aGVzYXVydXMpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoZXNhdXJ1c1swXSBhcyBUaGVzYXVydXNBcGlSZXNwb25zZVtdXG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKVxuXG4gIHNlYXJjaEtleXdvcmRzKFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAga2V5d29yZFR5cGVzOiBLZXl3b3JkVHlwZVtdXG4gICk6IE9ic2VydmFibGU8S2V5d29yZFtdPiB7XG4gICAgY29uc3Qga2V5d29yZHMkOiBPYnNlcnZhYmxlPEtleXdvcmRBcGlSZXNwb25zZVtdPiA9IHRoaXMuYWxsVGhlc2F1cnVzJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh0aGVzYXVydXMpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRUaGVzYXVyaSA9IFtdXG4gICAgICAgIGtleXdvcmRUeXBlcy5tYXAoKGtleXdvcmRUeXBlKSA9PiB7XG4gICAgICAgICAgc2VsZWN0ZWRUaGVzYXVyaS5wdXNoKFxuICAgICAgICAgICAgLi4udGhlc2F1cnVzLmZpbHRlcigodGhlcykgPT4gdGhlcy5kbmFtZSA9PT0ga2V5d29yZFR5cGUpXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuXG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJpZXNBcGlTZXJ2aWNlLnNlYXJjaEtleXdvcmRzKFxuICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgIHRoaXMubGFuZzMsXG4gICAgICAgICAgMTAsXG4gICAgICAgICAgMCxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIHNlbGVjdGVkVGhlc2F1cmkubWFwKCh0aGVzKSA9PiB0aGVzLmtleSksXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBgKiR7cXVlcnl9KmBcbiAgICAgICAgKSBhcyBPYnNlcnZhYmxlPEtleXdvcmRBcGlSZXNwb25zZVtdPlxuICAgICAgfSlcbiAgICApXG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChba2V5d29yZHMkLCB0aGlzLmFsbFRoZXNhdXJ1cyRdKS5waXBlKFxuICAgICAgbWFwKChba2V5d29yZHMsIHRoZXNhdXJ1c10pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwcGVyLmtleXdvcmRzRnJvbUFwaShrZXl3b3JkcywgdGhlc2F1cnVzLCB0aGlzLmxhbmczKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRLZXl3b3Jkc0J5VXJpKHVyaTogc3RyaW5nKTogT2JzZXJ2YWJsZTxLZXl3b3JkW10+IHtcbiAgICBpZiAodGhpcy5rZXl3b3Jkc0J5VGhlc2F1cmlbdXJpXSkge1xuICAgICAgcmV0dXJuIHRoaXMua2V5d29yZHNCeVRoZXNhdXJpW3VyaV1cbiAgICB9XG4gICAgY29uc3Qga2V5d29yZHMkID0gdGhpcy5yZWdpc3RyaWVzQXBpU2VydmljZS5zZWFyY2hLZXl3b3JkcyhcbiAgICAgIG51bGwsXG4gICAgICB0aGlzLmxhbmczLFxuICAgICAgMTAwMCxcbiAgICAgIDAsXG4gICAgICBudWxsLFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICBgJHt1cml9KmBcbiAgICApIGFzIE9ic2VydmFibGU8S2V5d29yZEFwaVJlc3BvbnNlW10+XG5cbiAgICB0aGlzLmtleXdvcmRzQnlUaGVzYXVyaVt1cmldID0gY29tYmluZUxhdGVzdChbXG4gICAgICBrZXl3b3JkcyQsXG4gICAgICB0aGlzLmFsbFRoZXNhdXJ1cyQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2tleXdvcmRzLCB0aGVzYXVydXNdKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcHBlci5rZXl3b3Jkc0Zyb21BcGkoa2V5d29yZHMsIHRoZXNhdXJ1cywgdGhpcy5sYW5nMylcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApXG5cbiAgICByZXR1cm4gdGhpcy5rZXl3b3Jkc0J5VGhlc2F1cmlbdXJpXVxuICB9XG5cbiAgc2VhcmNoS2V5d29yZHNJblRoZXNhdXJ1cyhxdWVyeTogc3RyaW5nLCB0aGVzYXVydXNJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxsVGhlc2F1cnVzJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh0aGVzYXVyaSkgPT4ge1xuICAgICAgICBjb25zdCBzdHJpcHBlZFRoZXNhdXJ1c0lkID0gdGhlc2F1cnVzSWQucmVwbGFjZShcbiAgICAgICAgICAnZ2VvbmV0d29yay50aGVzYXVydXMuJyxcbiAgICAgICAgICAnJ1xuICAgICAgICApXG4gICAgICAgIGlmICghdGhlc2F1cmkuZmluZCgodGhlcykgPT4gdGhlcy5rZXkgPT09IHN0cmlwcGVkVGhlc2F1cnVzSWQpKVxuICAgICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cmllc0FwaVNlcnZpY2VcbiAgICAgICAgICAuc2VhcmNoS2V5d29yZHMoXG4gICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgIHRoaXMubGFuZzMsXG4gICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIFtzdHJpcHBlZFRoZXNhdXJ1c0lkXSxcbiAgICAgICAgICAgIG51bGxcbiAgICAgICAgICApXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGtleXdvcmRzOiBLZXl3b3JkQXBpUmVzcG9uc2VbXSkgPT5cbiAgICAgICAgICAgICAgdGhpcy5tYXBwZXIua2V5d29yZHNGcm9tQXBpKGtleXdvcmRzLCB0aGVzYXVyaSwgdGhpcy5sYW5nMylcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldFVzZXJGZWVkYmFja3ModXVpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxVc2VyRmVlZGJhY2tbXT4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJmZWVkYmFja0FwaVNlcnZpY2UuZ2V0VXNlckNvbW1lbnRzKHV1aWQpLnBpcGUoXG4gICAgICBtYXAoKHVzZXJGZWVkYmFja3MpID0+XG4gICAgICAgIHVzZXJGZWVkYmFja3MubWFwKHRoaXMubWFwcGVyLnVzZXJGZWVkYmFja3NGcm9tQXBpKVxuICAgICAgKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIHVzZXIgZmVlZGJhY2tzOicsIGVycm9yKVxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBwb3N0VXNlckZlZWRiYWNrcyh1c2VyRmVlZGJhY2s6IFVzZXJGZWVkYmFjayk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IG1hcHBlZFVzZXJGZWVkQmFjayA9IHRoaXMubWFwcGVyLnVzZXJGZWVkYmFja3NUb0FwaSh1c2VyRmVlZGJhY2spXG4gICAgcmV0dXJuIHRoaXMudXNlcmZlZWRiYWNrQXBpU2VydmljZS5uZXdVc2VyRmVlZGJhY2sobWFwcGVkVXNlckZlZWRCYWNrKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHVuZGVmaW5lZCksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwb3N0aW5nIHVzZXIgZmVlZGJhY2s6JywgZXJyb3IpXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldFJlY29yZEF0dGFjaG1lbnRzKHJlY29yZFV1aWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlLmdldEFsbFJlc291cmNlcyhyZWNvcmRVdWlkKS5waXBlKFxuICAgICAgbWFwKChyZXNvdXJjZXMpID0+XG4gICAgICAgIHJlc291cmNlcy5tYXAoKHIpID0+ICh7XG4gICAgICAgICAgdXJsOiBuZXcgVVJMKHIudXJsKSxcbiAgICAgICAgICBmaWxlTmFtZTogci5maWxlbmFtZSxcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKVxuICB9XG5cbiAgY2xlYW5SZWNvcmRBdHRhY2htZW50cyhyZWNvcmQ6IENhdGFsb2dSZWNvcmQpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnJlY29yZHNBcGlTZXJ2aWNlLmdldEFzc29jaWF0ZWRSZXNvdXJjZXMocmVjb3JkLnVuaXF1ZUlkZW50aWZpZXIpLFxuICAgICAgdGhpcy5yZWNvcmRzQXBpU2VydmljZS5nZXRBbGxSZXNvdXJjZXMocmVjb3JkLnVuaXF1ZUlkZW50aWZpZXIpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFthc3NvY2lhdGVkLCBhdHRhY2htZW50c10pID0+IHtcbiAgICAgICAgY29uc3QgeyBvbmxpbmVzID0gW10sIHRodW1ibmFpbHMgPSBbXSB9ID0gYXNzb2NpYXRlZFxuXG4gICAgICAgIGNvbnN0IHVybHNUb0tlZXAgPSBbXG4gICAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkob25saW5lcykgPyBvbmxpbmVzIDogW10pLFxuICAgICAgICAgIC4uLihBcnJheS5pc0FycmF5KHRodW1ibmFpbHMpID8gdGh1bWJuYWlscyA6IFtdKSxcbiAgICAgICAgXS5tYXAoKHJlc291cmNlKSA9PiBPYmplY3QudmFsdWVzKHJlc291cmNlLnVybClbMF0pXG4gICAgICAgIGNvbnN0IGZpbGVUb0RlbGV0ZSA9IGF0dGFjaG1lbnRzLnJlZHVjZTxzdHJpbmdbXT4oKGFjYywgYXR0YWNobWVudCkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICF1cmxzVG9LZWVwLmluY2x1ZGVzKGF0dGFjaG1lbnQudXJsKSAmJlxuICAgICAgICAgICAgYXR0YWNobWVudC5maWxlbmFtZSAhPT0gJ2RhdGF2aXpDb25maWcuanNvbidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGFjYy5wdXNoKGF0dGFjaG1lbnQuZmlsZW5hbWUpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY2NcbiAgICAgICAgfSwgW10pXG5cbiAgICAgICAgcmV0dXJuIGZpbGVUb0RlbGV0ZVxuICAgICAgfSksXG4gICAgICBtZXJnZU1hcCgoZmlsZXNUb0RlbGV0ZSkgPT5cbiAgICAgICAgZmlsZXNUb0RlbGV0ZS5sZW5ndGhcbiAgICAgICAgICA/IGZvcmtKb2luKFxuICAgICAgICAgICAgICBmaWxlc1RvRGVsZXRlLm1hcCgoZmlsZW5hbWUpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5yZWNvcmRzQXBpU2VydmljZS5kZWxSZXNvdXJjZShcbiAgICAgICAgICAgICAgICAgIHJlY29yZC51bmlxdWVJZGVudGlmaWVyLFxuICAgICAgICAgICAgICAgICAgZmlsZW5hbWVcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICkucGlwZShtYXAoKCkgPT4gdW5kZWZpbmVkKSlcbiAgICAgICAgICA6IG9mKHVuZGVmaW5lZClcbiAgICAgICksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciB3aGlsZSBjbGVhbmluZyBhdHRhY2htZW50czonLCBlcnJvcilcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSB1cGxvYWRGaWxlKHJlY29yZFV1aWQ6IHN0cmluZywgZmlsZTogRmlsZSk6IE9ic2VydmFibGU8VXBsb2FkRXZlbnQ+IHtcbiAgICBsZXQgc2l6ZUJ5dGVzID0gLTFcbiAgICByZXR1cm4gdGhpcy5yZWNvcmRzQXBpU2VydmljZVxuICAgICAgLnB1dFJlc291cmNlKHJlY29yZFV1aWQsIGZpbGUsICdwdWJsaWMnLCB1bmRlZmluZWQsICdldmVudHMnLCB0cnVlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcykge1xuICAgICAgICAgICAgc2l6ZUJ5dGVzID0gZXZlbnQudG90YWxcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdwcm9ncmVzcycsXG4gICAgICAgICAgICAgIHByb2dyZXNzOiBldmVudC50b3RhbFxuICAgICAgICAgICAgICAgID8gTWF0aC5yb3VuZCgoMTAwICogZXZlbnQubG9hZGVkKSAvIGV2ZW50LnRvdGFsKVxuICAgICAgICAgICAgICAgIDogMCxcbiAgICAgICAgICAgIH0gYXMgVXBsb2FkRXZlbnRcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgYXR0YWNobWVudDoge1xuICAgICAgICAgICAgICAgIHVybDogbmV3IFVSTChldmVudC5ib2R5LnVybCksXG4gICAgICAgICAgICAgICAgZmlsZU5hbWU6IGV2ZW50LmJvZHkuZmlsZW5hbWUsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHNpemVCeXRlcyxcbiAgICAgICAgICAgIH0gYXMgVXBsb2FkRXZlbnRcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9KSxcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gISFldmVudCksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoXG4gICAgICAgICAgICAoKSA9PiBuZXcgRXJyb3IoZXJyb3IuZXJyb3I/Lm1lc3NhZ2UgPz8gZXJyb3IubWVzc2FnZSlcbiAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgICApXG4gIH1cblxuICBnZXRGaWxlQ29udGVudCh1cmw6IFVSTCB8IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodXJsLnRvU3RyaW5nKCksIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSkucGlwZShcbiAgICAgIG1hcCgodGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHRleHQpXG5cbiAgICAgICAgaWYgKHR5cGVvZiBwYXJzZWQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgcmV0dXJuIHBhcnNlZFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVjb2RlZCA9IHRoaXMuZGVjb2RlQmFzZTY0KHBhcnNlZClcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGVjb2RlZClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZGVjb2RlQmFzZTY0KGJhc2U2NCkge1xuICAgIGNvbnN0IHRleHQgPSBhdG9iKGJhc2U2NClcbiAgICBjb25zdCBsZW5ndGggPSB0ZXh0Lmxlbmd0aFxuICAgIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkobGVuZ3RoKVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIGJ5dGVzW2ldID0gdGV4dC5jaGFyQ29kZUF0KGkpXG4gICAgfVxuICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKVxuICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShieXRlcylcbiAgfVxuXG4gIGF0dGFjaEZpbGVUb1JlY29yZChcbiAgICByZWNvcmRVdWlkOiBzdHJpbmcsXG4gICAgZmlsZTogRmlsZSxcbiAgICByZW1vdmVEdXBsaWNhdGUgPSBmYWxzZVxuICApOiBPYnNlcnZhYmxlPFVwbG9hZEV2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVjb3JkQXR0YWNobWVudHMocmVjb3JkVXVpZCkucGlwZShcbiAgICAgIG1hcCgocmVjb3JkQXR0YWNobWVudHMpID0+IHJlY29yZEF0dGFjaG1lbnRzLm1hcCgocikgPT4gci5maWxlTmFtZSkpLFxuICAgICAgc3dpdGNoTWFwKChmaWxlTmFtZXMpID0+IHtcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBmaWxlLm5hbWVcblxuICAgICAgICBpZiAocmVtb3ZlRHVwbGljYXRlICYmIGZpbGVOYW1lcy5pbmNsdWRlcyhmaWxlLm5hbWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZGVsUmVzb3VyY2UocmVjb3JkVXVpZCwgZmlsZU5hbWUpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBmaWxlQ29weSA9IG5ldyBGaWxlKFtmaWxlXSwgZmlsZU5hbWUsIHsgdHlwZTogZmlsZS50eXBlIH0pXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnVwbG9hZEZpbGUocmVjb3JkVXVpZCwgZmlsZUNvcHkpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBmaW5hbEZpbGVOYW1lID0gbm9EdXBsaWNhdGVGaWxlTmFtZShmaWxlTmFtZSwgZmlsZU5hbWVzKVxuICAgICAgICAgIGNvbnN0IGZpbGVDb3B5ID0gbmV3IEZpbGUoW2ZpbGVdLCBmaW5hbEZpbGVOYW1lLCB7IHR5cGU6IGZpbGUudHlwZSB9KVxuICAgICAgICAgIHJldHVybiB0aGlzLnVwbG9hZEZpbGUocmVjb3JkVXVpZCwgZmlsZUNvcHkpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG4iXX0=
@@ -6,4 +6,4 @@ export const CHART_TYPE_VALUES = [
6
6
  'scatter',
7
7
  'pie',
8
8
  ];
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXZpei1jb25maWd1cmF0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvZGF0YXZpei9kYXRhdml6LWNvbmZpZ3VyYXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsS0FBSztJQUNMLGdCQUFnQjtJQUNoQixNQUFNO0lBQ04sbUJBQW1CO0lBQ25CLFNBQVM7SUFDVCxLQUFLO0NBQ0csQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB9IGZyb20gJy4uL3JlY29yZCdcblxuZXhwb3J0IHR5cGUgQWdncmVnYXRpb25UeXBlcyA9ICdjb3VudCcgfCAnc3VtJyB8ICdtaW4nIHwgJ21heCcgfCAnYXZlcmFnZSdcblxuZXhwb3J0IGNvbnN0IENIQVJUX1RZUEVfVkFMVUVTID0gW1xuICAnYmFyJyxcbiAgJ2Jhci1ob3Jpem9udGFsJyxcbiAgJ2xpbmUnLFxuICAnbGluZS1pbnRlcnBvbGF0ZWQnLFxuICAnc2NhdHRlcicsXG4gICdwaWUnLFxuXSBhcyBjb25zdFxuXG5leHBvcnQgdHlwZSBJbnB1dENoYXJ0VHlwZSA9ICh0eXBlb2YgQ0hBUlRfVFlQRV9WQUxVRVMpW251bWJlcl1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhdml6Q2hhcnRDb25maWdNb2RlbCB7XG4gIHhQcm9wZXJ0eTogc3RyaW5nXG4gIHlQcm9wZXJ0eTogc3RyaW5nXG4gIGFnZ3JlZ2F0aW9uOiBBZ2dyZWdhdGlvblR5cGVzXG4gIGNoYXJ0VHlwZTogSW5wdXRDaGFydFR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhdml6Q29uZmlnTW9kZWwge1xuICB2aWV3OiBzdHJpbmdcbiAgc291cmNlOiBEYXRhc2V0T25saW5lUmVzb3VyY2VcbiAgY2hhcnRDb25maWc/OiBEYXRhdml6Q2hhcnRDb25maWdNb2RlbFxufVxuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXZpei1jb25maWd1cmF0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvZGF0YXZpei9kYXRhdml6LWNvbmZpZ3VyYXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsS0FBSztJQUNMLGdCQUFnQjtJQUNoQixNQUFNO0lBQ04sbUJBQW1CO0lBQ25CLFNBQVM7SUFDVCxLQUFLO0NBQ0csQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB9IGZyb20gJy4uL3JlY29yZCdcblxuZXhwb3J0IHR5cGUgQWdncmVnYXRpb25UeXBlcyA9ICdjb3VudCcgfCAnc3VtJyB8ICdtaW4nIHwgJ21heCcgfCAnYXZlcmFnZSdcblxuZXhwb3J0IGNvbnN0IENIQVJUX1RZUEVfVkFMVUVTID0gW1xuICAnYmFyJyxcbiAgJ2Jhci1ob3Jpem9udGFsJyxcbiAgJ2xpbmUnLFxuICAnbGluZS1pbnRlcnBvbGF0ZWQnLFxuICAnc2NhdHRlcicsXG4gICdwaWUnLFxuXSBhcyBjb25zdFxuXG5leHBvcnQgdHlwZSBJbnB1dENoYXJ0VHlwZSA9ICh0eXBlb2YgQ0hBUlRfVFlQRV9WQUxVRVMpW251bWJlcl1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhdml6Q2hhcnRDb25maWdNb2RlbCB7XG4gIHhQcm9wZXJ0eTogc3RyaW5nXG4gIHlQcm9wZXJ0eTogc3RyaW5nXG4gIGFnZ3JlZ2F0aW9uOiBBZ2dyZWdhdGlvblR5cGVzXG4gIGNoYXJ0VHlwZTogSW5wdXRDaGFydFR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhdml6Q29uZmlnTW9kZWwge1xuICB2aWV3OiBzdHJpbmdcbiAgc291cmNlOiBEYXRhc2V0T25saW5lUmVzb3VyY2VcbiAgY2hhcnRDb25maWc/OiBEYXRhdml6Q2hhcnRDb25maWdNb2RlbFxuICBzdHlsZVRNU0luZGV4OiBudW1iZXJcbn1cbiJdfQ==
@@ -40,11 +40,15 @@ marker('domain.record.status.ongoing');
40
40
  marker('domain.record.status.under_development');
41
41
  marker('domain.record.status.deprecated');
42
42
  marker('domain.record.status.removed');
43
+ marker('domain.record.status.planned');
44
+ marker('domain.record.status.required');
43
45
  export const RecordStatusValues = [
44
46
  'completed',
45
47
  'ongoing',
46
48
  'under_development',
47
49
  'deprecated',
48
50
  'removed',
51
+ 'planned',
52
+ 'required',
49
53
  ];
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQvbWV0YWRhdGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBZ0JoRSxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQTtBQUMvQyxNQUFNLENBQUMsMENBQTBDLENBQUMsQ0FBQTtBQUNsRCxNQUFNLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtBQUNoRCxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQTtBQUNqRCxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQTtBQUNqRCxNQUFNLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtBQUVoRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUN2QyxTQUFTO0lBQ1QsWUFBWTtJQUNaLFVBQVU7SUFDVixXQUFXO0lBQ1gsV0FBVztJQUNYLFVBQVU7SUFDVixPQUFPO0lBQ1AsUUFBUTtJQUNSLGFBQWE7SUFDYixhQUFhO0lBQ2IsU0FBUztJQUNULFdBQVc7SUFDWCxZQUFZO0lBQ1osVUFBVTtJQUNWLFlBQVk7Q0FDSixDQUFBO0FBSVYsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLENBQUE7QUFDM0MsTUFBTSxDQUFDLG9DQUFvQyxDQUFDLENBQUE7QUFDNUMsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUE7QUFDN0MsTUFBTSxDQUFDLG9DQUFvQyxDQUFDLENBQUE7QUFFNUMsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUE7QUFDN0MsTUFBTSxDQUFDLHNDQUFzQyxDQUFDLENBQUE7QUFDOUMsTUFBTSxDQUFDLDJDQUEyQyxDQUFDLENBQUE7QUFDbkQsTUFBTSxDQUFDLHVDQUF1QyxDQUFDLENBQUE7QUFDL0MsTUFBTSxDQUFDLHlDQUF5QyxDQUFDLENBQUE7QUFDakQsTUFBTSxDQUFDLDBDQUEwQyxDQUFDLENBQUE7QUFDbEQsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLENBQUE7QUFDaEQsTUFBTSxDQUFDLDJDQUEyQyxDQUFDLENBQUE7QUFDbkQsTUFBTSxDQUFDLDBDQUEwQyxDQUFDLENBQUE7QUFVbEQsTUFBTSxDQUFDLGdDQUFnQyxDQUFDLENBQUE7QUFDeEMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7QUFDdEMsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLENBQUE7QUFDaEQsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLENBQUE7QUFDekMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7QUFFdEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsV0FBVztJQUNYLFNBQVM7SUFDVCxtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLFNBQVM7Q0FDVixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHR5cGUgeyBJbmRpdmlkdWFsIH0gZnJvbSAnLi9jb250YWN0Lm1vZGVsJ1xuaW1wb3J0IHR5cGUgeyBPcmdhbml6YXRpb24gfSBmcm9tICcuL29yZ2FuaXphdGlvbi5tb2RlbCdcbmltcG9ydCB0eXBlIHsgR2VvbWV0cnkgfSBmcm9tICdnZW9qc29uJ1xuaW1wb3J0IHsgS2V5d29yZFR5cGUsIFRoZXNhdXJ1c01vZGVsIH0gZnJvbSAnLi4vdGhlc2F1cnVzJ1xuaW1wb3J0IHtcbiAgQ29uc3RyYWludFRyYW5zbGF0aW9ucyxcbiAgS2V5d29yZFRyYW5zbGF0aW9ucyxcbiAgTGFuZ3VhZ2VDb2RlLFxuICBPbmxpbmVSZXNvdXJjZVRyYW5zbGF0aW9ucyxcbiAgUmVjb3JkVHJhbnNsYXRpb25zLFxuICBTcGF0aWFsRXh0ZW50VHJhbnNsYXRpb25zLFxufSBmcm9tICcuL3RyYW5zbGF0aW9uLm1vZGVsJ1xuXG50eXBlIFV1aWQgPSBzdHJpbmdcblxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS51bmtub3duJylcbm1hcmtlcignZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kubm90UGxhbm5lZCcpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LmFzTmVlZGVkJylcbm1hcmtlcignZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kuaXJyZWd1bGFyJylcbm1hcmtlcignZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kuY29udGludWFsJylcbm1hcmtlcignZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kucGVyaW9kaWMnKVxuXG5leHBvcnQgY29uc3QgdXBkYXRlRnJlcXVlbmN5Q29kZVZhbHVlcyA9IFtcbiAgJ3Vua25vd24nLFxuICAnbm90UGxhbm5lZCcsXG4gICdhc05lZWRlZCcsXG4gICdpcnJlZ3VsYXInLFxuICAnY29udGludWFsJyxcbiAgJ3BlcmlvZGljJyxcbiAgJ2RhaWx5JyxcbiAgJ3dlZWtseScsXG4gICdmb3J0bmlnaHRseScsXG4gICdzZW1pbW9udGhseScsXG4gICdtb250aGx5JyxcbiAgJ3F1YXJ0ZXJseScsXG4gICdiaWFubnVhbGx5JyxcbiAgJ2FubnVhbGx5JyxcbiAgJ2JpZW5uaWFsbHknLFxuXSBhcyBjb25zdFxuXG5leHBvcnQgdHlwZSBVcGRhdGVGcmVxdWVuY3lDb2RlID0gKHR5cGVvZiB1cGRhdGVGcmVxdWVuY3lDb2RlVmFsdWVzKVtudW1iZXJdXG5cbm1hcmtlcignZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kuZGF5Jylcbm1hcmtlcignZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kud2VlaycpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5Lm1vbnRoJylcbm1hcmtlcignZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kueWVhcicpXG5cbm1hcmtlcignZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kuZGFpbHknKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS53ZWVrbHknKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5mb3J0bmlnaHRseScpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5Lm1vbnRobHknKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5xdWFydGVybHknKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5iaWFubnVhbGx5Jylcbm1hcmtlcignZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kuYW5udWFsbHknKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5zZW1pbW9udGhseScpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LmJpZW5uaWFsbHknKVxuXG5leHBvcnQgdHlwZSBVcGRhdGVGcmVxdWVuY3lDdXN0b20gPSB7XG4gIHVwZGF0ZWRUaW1lczogbnVtYmVyIC8vIHRoaXMgc2hvdWxkIGJlIGFuIGludGVnZXJcbiAgcGVyOiAnZGF5JyB8ICd3ZWVrJyB8ICdtb250aCcgfCAneWVhcidcbn1cbmV4cG9ydCB0eXBlIFVwZGF0ZUZyZXF1ZW5jeSA9IFVwZGF0ZUZyZXF1ZW5jeUNvZGUgfCBVcGRhdGVGcmVxdWVuY3lDdXN0b21cblxuZXhwb3J0IHR5cGUgUmVjb3JkS2luZCA9ICdkYXRhc2V0JyB8ICdzZXJ2aWNlJyB8ICdyZXVzZSdcblxubWFya2VyKCdkb21haW4ucmVjb3JkLnN0YXR1cy5jb21wbGV0ZWQnKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnN0YXR1cy5vbmdvaW5nJylcbm1hcmtlcignZG9tYWluLnJlY29yZC5zdGF0dXMudW5kZXJfZGV2ZWxvcG1lbnQnKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnN0YXR1cy5kZXByZWNhdGVkJylcbm1hcmtlcignZG9tYWluLnJlY29yZC5zdGF0dXMucmVtb3ZlZCcpXG5cbmV4cG9ydCBjb25zdCBSZWNvcmRTdGF0dXNWYWx1ZXMgPSBbXG4gICdjb21wbGV0ZWQnLFxuICAnb25nb2luZycsXG4gICd1bmRlcl9kZXZlbG9wbWVudCcsXG4gICdkZXByZWNhdGVkJyxcbiAgJ3JlbW92ZWQnLFxuXVxuZXhwb3J0IHR5cGUgUmVjb3JkU3RhdHVzID0gKHR5cGVvZiBSZWNvcmRTdGF0dXNWYWx1ZXMpW251bWJlcl1cblxuZXhwb3J0IHR5cGUgQ29uc3RyYWludCA9IHtcbiAgdGV4dDogc3RyaW5nXG4gIHVybD86IFVSTFxuXG4gIHRyYW5zbGF0aW9ucz86IENvbnN0cmFpbnRUcmFuc2xhdGlvbnNcbn1cblxuZXhwb3J0IHR5cGUgU3BhdGlhbFJlcHJlc2VudGF0aW9uVHlwZSA9XG4gIHwgJ2dyaWQnXG4gIHwgJ3ZlY3RvcidcbiAgfCAndGluJ1xuICB8ICd0YWJsZSdcbiAgfCAncG9pbnQnXG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5d29yZCB7XG4gIGtleT86IHN0cmluZ1xuICBsYWJlbDogc3RyaW5nXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIHR5cGU6IEtleXdvcmRUeXBlXG4gIHRoZXNhdXJ1cz86IFRoZXNhdXJ1c01vZGVsXG4gIGJib3g/OiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXVxuXG4gIHRyYW5zbGF0aW9ucz86IEtleXdvcmRUcmFuc2xhdGlvbnNcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlUmVjb3JkIHtcbiAgdW5pcXVlSWRlbnRpZmllcjogVXVpZFxuICBvd25lck9yZ2FuaXphdGlvbjogT3JnYW5pemF0aW9uXG4gIGNvbnRhY3RzOiBBcnJheTxJbmRpdmlkdWFsPlxuICB0aXRsZTogc3RyaW5nXG4gIGFic3RyYWN0OiBzdHJpbmdcbiAgcmVjb3JkQ3JlYXRlZD86IERhdGVcbiAgcmVjb3JkUHVibGlzaGVkPzogRGF0ZVxuICByZWNvcmRVcGRhdGVkOiBEYXRlXG4gIGtpbmQ6IFJlY29yZEtpbmRcbiAgdG9waWNzOiBBcnJheTxzdHJpbmc+IC8vIFRPRE86IGhhbmRsZSBjb2RlbGlzdHNcbiAga2V5d29yZHM6IEFycmF5PEtleXdvcmQ+XG4gIGxpY2Vuc2VzOiBBcnJheTxDb25zdHJhaW50PlxuICBsZWdhbENvbnN0cmFpbnRzOiBBcnJheTxDb25zdHJhaW50PlxuICBzZWN1cml0eUNvbnN0cmFpbnRzOiBBcnJheTxDb25zdHJhaW50PlxuICBvdGhlckNvbnN0cmFpbnRzOiBBcnJheTxDb25zdHJhaW50PlxuICBvdmVydmlld3M6IEFycmF5PEdyYXBoaWNPdmVydmlldz5cbiAgZXh0cmFzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgbGFuZGluZ1BhZ2U/OiBVUkxcbiAgdXBkYXRlRnJlcXVlbmN5PzogVXBkYXRlRnJlcXVlbmN5XG5cbiAgLy8gaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgcmVzb3VyY2UgKGRhdGFzZXQsIHNlcnZpY2UpXG4gIHJlc291cmNlSWRlbnRpZmllcj86IHN0cmluZ1xuICBjb250YWN0c0ZvclJlc291cmNlOiBBcnJheTxJbmRpdmlkdWFsPlxuICByZXNvdXJjZUNyZWF0ZWQ/OiBEYXRlXG4gIHJlc291cmNlUHVibGlzaGVkPzogRGF0ZVxuICByZXNvdXJjZVVwZGF0ZWQ/OiBEYXRlXG5cbiAgLy8gbXVsdGlsaW5ndWFsIHN1cHBvcnRcbiAgZGVmYXVsdExhbmd1YWdlOiBMYW5ndWFnZUNvZGVcbiAgb3RoZXJMYW5ndWFnZXM6IEFycmF5PExhbmd1YWdlQ29kZT4gLy8gdGhpcyBzaG91bGQgaW5jbHVkZSBhbGwgbm9uLWRlZmF1bHQgbGFuZ3VhZ2VzIHByZXNlbnQgaW4gdGhlIG1ldGFkYXRhLCBldmVuIGlmIGluY29tcGxldGVseSB0cmFuc2xhdGVkXG5cbiAgdHJhbnNsYXRpb25zPzogUmVjb3JkVHJhbnNsYXRpb25zXG5cbiAgLy8gdG8gYWRkOiBjYW5vbmljYWwgdXJsXG4gIC8vIHRvIGFkZDogc291cmNlIGNhdGFsb2cgKD8/KVxuICAvLyB0byBhZGQ6IGlzIG9wZW4gZGF0YSA/XG59XG5cbi8vIFRPRE86IGhhbmRsZSBhY3R1YWwgY29kZWxpc3RzXG5leHBvcnQgdHlwZSBTZXJ2aWNlUHJvdG9jb2wgPVxuICB8ICd3bXMnXG4gIHwgJ3dmcydcbiAgfCAnd3BzJ1xuICB8ICd3bXRzJ1xuICB8ICdlc3JpUmVzdCdcbiAgfCAnb2djRmVhdHVyZXMnXG4gIHwgJ0dQRkRMJ1xuICB8ICd0bXMnXG4gIHwgJ21hcGxpYnJlLXN0eWxlJ1xuICB8ICdvdGhlcidcblxuZXhwb3J0IHR5cGUgT25saW5lUmVzb3VyY2VUeXBlID0gJ3NlcnZpY2UnIHwgJ2Rvd25sb2FkJyB8ICdsaW5rJyB8ICdlbmRwb2ludCdcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbiB7XG4gIHR5cGU6ICdzZXJ2aWNlJ1xuICB1cmw6IFVSTFxuICBhY2Nlc3NTZXJ2aWNlUHJvdG9jb2w6IFNlcnZpY2VQcm90b2NvbFxuICBpZGVudGlmaWVySW5TZXJ2aWNlPzogc3RyaW5nIC8vIHNob3VsZCB3ZSBrZWVwIHRoZSBpZGVudGlmaWVySW5TZXJ2aWNlPyByZWFkLXdyaXRlIGR1cGxpY2F0ZSB3aXRoIG5hbWVcbiAgbmFtZT86IHN0cmluZ1xuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICB0cmFuc2xhdGlvbnM/OiBPbmxpbmVSZXNvdXJjZVRyYW5zbGF0aW9uc1xuICBhY2Nlc3NSZXN0cmljdGVkPzogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbiB7XG4gIHR5cGU6ICdkb3dubG9hZCdcbiAgdXJsOiBVUkxcbiAgbWltZVR5cGU/OiBzdHJpbmdcbiAgc2l6ZUJ5dGVzPzogbnVtYmVyXG4gIC8vIHJlbW92ZWQgYmVjYXVzZSB3aGF0J3MgdGhlIHVzZT8gZW5jb2RpbmcgY2FuIGJlIGV4cG9zZWQgYnkgdGhlIGZpbGUgc2VydmVyIG9yXG4gIC8vIGV2ZW4gZm91bmQgb3V0IGJ5IHRyaWFsIGFuZCBlcnJvcjsgYmVzaWRlcyB3ZSBjYW4gcmVhc29uYWJseSBleHBlY3QgdW5pY29kZSBvciBpc28gbW9zdCBvZiB0aGUgdGltZVxuICAvLyB0ZXh0RW5jb2Rpbmc/OiBzdHJpbmdcbiAgbmFtZT86IHN0cmluZ1xuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICBhY2Nlc3NTZXJ2aWNlUHJvdG9jb2w/OiBTZXJ2aWNlUHJvdG9jb2xcbiAgdHJhbnNsYXRpb25zPzogT25saW5lUmVzb3VyY2VUcmFuc2xhdGlvbnNcbiAgYWNjZXNzUmVzdHJpY3RlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmxpbmVMaW5rUmVzb3VyY2Uge1xuICB0eXBlOiAnbGluaydcbiAgdXJsOiBVUkxcbiAgbmFtZT86IHN0cmluZ1xuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICB0cmFuc2xhdGlvbnM/OiBPbmxpbmVSZXNvdXJjZVRyYW5zbGF0aW9uc1xuICBtaW1lVHlwZT86IHN0cmluZ1xuICBhY2Nlc3NSZXN0cmljdGVkPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBEYXRhc2V0T25saW5lUmVzb3VyY2UgPSAoXG4gIHwgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgfCBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb25cbiAgfCBPbmxpbmVMaW5rUmVzb3VyY2VcbikgJiB7XG4gIHR5cGU6IE9ubGluZVJlc291cmNlVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyYXBoaWNPdmVydmlldyB7XG4gIHVybDogVVJMXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXNldFNwYXRpYWxFeHRlbnQge1xuICBiYm94PzogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl1cbiAgZ2VvbWV0cnk/OiBHZW9tZXRyeVxuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICB0cmFuc2xhdGlvbnM/OiBTcGF0aWFsRXh0ZW50VHJhbnNsYXRpb25zXG59XG5cbi8qKlxuICogUGVyaW9kIGlmIGJvdGggc3RhcnQgYW5kIGVuZCBhcmUgcHJvdmlkZWRcbiAqIEluc3RhbnQgaWYgb25seSBzdGFydCBpcyBwcm92aWRlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFzZXRUZW1wb3JhbEV4dGVudCB7XG4gIHN0YXJ0OiBEYXRlXG4gIGVuZD86IERhdGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhc2V0UmVjb3JkIGV4dGVuZHMgQmFzZVJlY29yZCB7XG4gIGtpbmQ6ICdkYXRhc2V0J1xuICBzdGF0dXM6IFJlY29yZFN0YXR1c1xuICBsaW5lYWdlOiBzdHJpbmcgLy8gRXhwbGFuYXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGlzIHJlY29yZCAoZS5nOiBob3csIHdoeSlcIlxuICBvbmxpbmVSZXNvdXJjZXM6IEFycmF5PERhdGFzZXRPbmxpbmVSZXNvdXJjZT5cbiAgc3BhdGlhbEV4dGVudHM6IEFycmF5PERhdGFzZXRTcGF0aWFsRXh0ZW50PlxuICB0ZW1wb3JhbEV4dGVudHM6IEFycmF5PERhdGFzZXRUZW1wb3JhbEV4dGVudD5cbiAgc3BhdGlhbFJlcHJlc2VudGF0aW9uPzogU3BhdGlhbFJlcHJlc2VudGF0aW9uVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VFbmRwb2ludCB7XG4gIHVybDogVVJMXG4gIGFjY2Vzc1NlcnZpY2VQcm90b2NvbDogU2VydmljZVByb3RvY29sXG4gIHR5cGU6ICdlbmRwb2ludCdcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgdHJhbnNsYXRpb25zPzogT25saW5lUmVzb3VyY2VUcmFuc2xhdGlvbnNcbn1cblxuZXhwb3J0IHR5cGUgU2VydmljZU9ubGluZVJlc291cmNlID0gKFNlcnZpY2VFbmRwb2ludCB8IE9ubGluZUxpbmtSZXNvdXJjZSkgJiB7XG4gIHR5cGU6IE9ubGluZVJlc291cmNlVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VSZWNvcmQgZXh0ZW5kcyBCYXNlUmVjb3JkIHtcbiAga2luZDogJ3NlcnZpY2UnXG4gIG9ubGluZVJlc291cmNlczogQXJyYXk8U2VydmljZU9ubGluZVJlc291cmNlPlxuICBzcGF0aWFsRXh0ZW50czogQXJyYXk8RGF0YXNldFNwYXRpYWxFeHRlbnQ+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmV1c2VSZWNvcmQgZXh0ZW5kcyBCYXNlUmVjb3JkIHtcbiAga2luZDogJ3JldXNlJ1xuICBsaW5lYWdlOiBzdHJpbmcgLy8gRXhwbGFuYXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGlzIHJlY29yZCAoZS5nOiBob3csIHdoeSlcIlxuICBvbmxpbmVSZXNvdXJjZXM6IEFycmF5PE9ubGluZUxpbmtSZXNvdXJjZT5cbiAgcmV1c2VUeXBlOiBSZXVzZVR5cGVcbiAgc3BhdGlhbEV4dGVudHM6IEFycmF5PERhdGFzZXRTcGF0aWFsRXh0ZW50PlxuICB0ZW1wb3JhbEV4dGVudHM6IEFycmF5PERhdGFzZXRUZW1wb3JhbEV4dGVudD5cbn1cblxuZXhwb3J0IHR5cGUgRGF0YXNldEZlYXR1cmVDYXRhbG9nID0ge1xuICBmZWF0dXJlVHlwZXM6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmdcbiAgICBkZWZpbml0aW9uOiBzdHJpbmdcbiAgICBhdHRyaWJ1dGVzOiBEYXRhc2V0RmVhdHVyZUF0dHJpYnV0ZVtdXG4gIH0+XG59XG5leHBvcnQgaW50ZXJmYWNlIERhdGFzZXRGZWF0dXJlQXR0cmlidXRlVmFsdWUge1xuICBjb2RlPzogc3RyaW5nXG4gIGRlZmluaXRpb24/OiBzdHJpbmdcbiAgbGFiZWw/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXNldEZlYXR1cmVBdHRyaWJ1dGUge1xuICBuYW1lOiBzdHJpbmdcbiAgZGVmaW5pdGlvbjogc3RyaW5nXG4gIHR5cGU6IHN0cmluZ1xuICBjb2RlOiBzdHJpbmdcbiAgdmFsdWVzPzogQXJyYXk8RGF0YXNldEZlYXR1cmVBdHRyaWJ1dGVWYWx1ZT5cbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXNldEZlYXR1cmVUeXBlIHtcbiAgYWxpYXNlczogc3RyaW5nXG4gIGNvZGU6IHN0cmluZ1xuICBpc0Fic3RyYWN0OiBzdHJpbmdcbiAgdHlwZU5hbWU6IHN0cmluZ1xuICBkZWZpbml0aW9uOiBzdHJpbmdcbiAgYXR0cmlidXRlVGFibGU6IEFycmF5PERhdGFzZXRGZWF0dXJlQXR0cmlidXRlPlxufVxuXG5leHBvcnQgdHlwZSBSZXVzZVR5cGUgPSAnYXBwbGljYXRpb24nIHwgJ21hcCcgfCAnb3RoZXInXG5cbmV4cG9ydCB0eXBlIE9ubGluZVJlc291cmNlID0gRGF0YXNldE9ubGluZVJlc291cmNlIHwgU2VydmljZU9ubGluZVJlc291cmNlXG5cbmV4cG9ydCB0eXBlIENhdGFsb2dSZWNvcmQgPSBEYXRhc2V0UmVjb3JkIHwgUmV1c2VSZWNvcmQgfCBTZXJ2aWNlUmVjb3JkXG5cbmV4cG9ydCB0eXBlIENhdGFsb2dSZWNvcmRLZXlzID1cbiAgfCBrZXlvZiBEYXRhc2V0UmVjb3JkXG4gIHwga2V5b2YgUmV1c2VSZWNvcmRcbiAgfCBrZXlvZiBTZXJ2aWNlUmVjb3JkXG4iXX0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQvbWV0YWRhdGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBZ0JoRSxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQTtBQUMvQyxNQUFNLENBQUMsMENBQTBDLENBQUMsQ0FBQTtBQUNsRCxNQUFNLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtBQUNoRCxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQTtBQUNqRCxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQTtBQUNqRCxNQUFNLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtBQUVoRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUN2QyxTQUFTO0lBQ1QsWUFBWTtJQUNaLFVBQVU7SUFDVixXQUFXO0lBQ1gsV0FBVztJQUNYLFVBQVU7SUFDVixPQUFPO0lBQ1AsUUFBUTtJQUNSLGFBQWE7SUFDYixhQUFhO0lBQ2IsU0FBUztJQUNULFdBQVc7SUFDWCxZQUFZO0lBQ1osVUFBVTtJQUNWLFlBQVk7Q0FDSixDQUFBO0FBSVYsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLENBQUE7QUFDM0MsTUFBTSxDQUFDLG9DQUFvQyxDQUFDLENBQUE7QUFDNUMsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUE7QUFDN0MsTUFBTSxDQUFDLG9DQUFvQyxDQUFDLENBQUE7QUFFNUMsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUE7QUFDN0MsTUFBTSxDQUFDLHNDQUFzQyxDQUFDLENBQUE7QUFDOUMsTUFBTSxDQUFDLDJDQUEyQyxDQUFDLENBQUE7QUFDbkQsTUFBTSxDQUFDLHVDQUF1QyxDQUFDLENBQUE7QUFDL0MsTUFBTSxDQUFDLHlDQUF5QyxDQUFDLENBQUE7QUFDakQsTUFBTSxDQUFDLDBDQUEwQyxDQUFDLENBQUE7QUFDbEQsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLENBQUE7QUFDaEQsTUFBTSxDQUFDLDJDQUEyQyxDQUFDLENBQUE7QUFDbkQsTUFBTSxDQUFDLDBDQUEwQyxDQUFDLENBQUE7QUFVbEQsTUFBTSxDQUFDLGdDQUFnQyxDQUFDLENBQUE7QUFDeEMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7QUFDdEMsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLENBQUE7QUFDaEQsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLENBQUE7QUFDekMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7QUFDdEMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7QUFDdEMsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUE7QUFFdkMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsV0FBVztJQUNYLFNBQVM7SUFDVCxtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLFNBQVM7SUFDVCxTQUFTO0lBQ1QsVUFBVTtDQUNYLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQgdHlwZSB7IEluZGl2aWR1YWwgfSBmcm9tICcuL2NvbnRhY3QubW9kZWwnXG5pbXBvcnQgdHlwZSB7IE9yZ2FuaXphdGlvbiB9IGZyb20gJy4vb3JnYW5pemF0aW9uLm1vZGVsJ1xuaW1wb3J0IHR5cGUgeyBHZW9tZXRyeSB9IGZyb20gJ2dlb2pzb24nXG5pbXBvcnQgeyBLZXl3b3JkVHlwZSwgVGhlc2F1cnVzTW9kZWwgfSBmcm9tICcuLi90aGVzYXVydXMnXG5pbXBvcnQge1xuICBDb25zdHJhaW50VHJhbnNsYXRpb25zLFxuICBLZXl3b3JkVHJhbnNsYXRpb25zLFxuICBMYW5ndWFnZUNvZGUsXG4gIE9ubGluZVJlc291cmNlVHJhbnNsYXRpb25zLFxuICBSZWNvcmRUcmFuc2xhdGlvbnMsXG4gIFNwYXRpYWxFeHRlbnRUcmFuc2xhdGlvbnMsXG59IGZyb20gJy4vdHJhbnNsYXRpb24ubW9kZWwnXG5cbnR5cGUgVXVpZCA9IHN0cmluZ1xuXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LnVua25vd24nKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5ub3RQbGFubmVkJylcbm1hcmtlcignZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kuYXNOZWVkZWQnKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5pcnJlZ3VsYXInKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5jb250aW51YWwnKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5wZXJpb2RpYycpXG5cbmV4cG9ydCBjb25zdCB1cGRhdGVGcmVxdWVuY3lDb2RlVmFsdWVzID0gW1xuICAndW5rbm93bicsXG4gICdub3RQbGFubmVkJyxcbiAgJ2FzTmVlZGVkJyxcbiAgJ2lycmVndWxhcicsXG4gICdjb250aW51YWwnLFxuICAncGVyaW9kaWMnLFxuICAnZGFpbHknLFxuICAnd2Vla2x5JyxcbiAgJ2ZvcnRuaWdodGx5JyxcbiAgJ3NlbWltb250aGx5JyxcbiAgJ21vbnRobHknLFxuICAncXVhcnRlcmx5JyxcbiAgJ2JpYW5udWFsbHknLFxuICAnYW5udWFsbHknLFxuICAnYmllbm5pYWxseScsXG5dIGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZUZyZXF1ZW5jeUNvZGUgPSAodHlwZW9mIHVwZGF0ZUZyZXF1ZW5jeUNvZGVWYWx1ZXMpW251bWJlcl1cblxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5kYXknKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS53ZWVrJylcbm1hcmtlcignZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kubW9udGgnKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS55ZWFyJylcblxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5kYWlseScpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LndlZWtseScpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LmZvcnRuaWdodGx5Jylcbm1hcmtlcignZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kubW9udGhseScpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LnF1YXJ0ZXJseScpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LmJpYW5udWFsbHknKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5hbm51YWxseScpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LnNlbWltb250aGx5Jylcbm1hcmtlcignZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kuYmllbm5pYWxseScpXG5cbmV4cG9ydCB0eXBlIFVwZGF0ZUZyZXF1ZW5jeUN1c3RvbSA9IHtcbiAgdXBkYXRlZFRpbWVzOiBudW1iZXIgLy8gdGhpcyBzaG91bGQgYmUgYW4gaW50ZWdlclxuICBwZXI6ICdkYXknIHwgJ3dlZWsnIHwgJ21vbnRoJyB8ICd5ZWFyJ1xufVxuZXhwb3J0IHR5cGUgVXBkYXRlRnJlcXVlbmN5ID0gVXBkYXRlRnJlcXVlbmN5Q29kZSB8IFVwZGF0ZUZyZXF1ZW5jeUN1c3RvbVxuXG5leHBvcnQgdHlwZSBSZWNvcmRLaW5kID0gJ2RhdGFzZXQnIHwgJ3NlcnZpY2UnIHwgJ3JldXNlJ1xuXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQuc3RhdHVzLmNvbXBsZXRlZCcpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQuc3RhdHVzLm9uZ29pbmcnKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnN0YXR1cy51bmRlcl9kZXZlbG9wbWVudCcpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQuc3RhdHVzLmRlcHJlY2F0ZWQnKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnN0YXR1cy5yZW1vdmVkJylcbm1hcmtlcignZG9tYWluLnJlY29yZC5zdGF0dXMucGxhbm5lZCcpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQuc3RhdHVzLnJlcXVpcmVkJylcblxuZXhwb3J0IGNvbnN0IFJlY29yZFN0YXR1c1ZhbHVlcyA9IFtcbiAgJ2NvbXBsZXRlZCcsXG4gICdvbmdvaW5nJyxcbiAgJ3VuZGVyX2RldmVsb3BtZW50JyxcbiAgJ2RlcHJlY2F0ZWQnLFxuICAncmVtb3ZlZCcsXG4gICdwbGFubmVkJyxcbiAgJ3JlcXVpcmVkJyxcbl1cbmV4cG9ydCB0eXBlIFJlY29yZFN0YXR1cyA9ICh0eXBlb2YgUmVjb3JkU3RhdHVzVmFsdWVzKVtudW1iZXJdXG5cbmV4cG9ydCB0eXBlIENvbnN0cmFpbnQgPSB7XG4gIHRleHQ6IHN0cmluZ1xuICB1cmw/OiBVUkxcblxuICB0cmFuc2xhdGlvbnM/OiBDb25zdHJhaW50VHJhbnNsYXRpb25zXG59XG5cbmV4cG9ydCB0eXBlIFNwYXRpYWxSZXByZXNlbnRhdGlvblR5cGUgPVxuICB8ICdncmlkJ1xuICB8ICd2ZWN0b3InXG4gIHwgJ3RpbidcbiAgfCAndGFibGUnXG4gIHwgJ3BvaW50J1xuXG5leHBvcnQgaW50ZXJmYWNlIEtleXdvcmQge1xuICBrZXk/OiBzdHJpbmdcbiAgbGFiZWw6IHN0cmluZ1xuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICB0eXBlOiBLZXl3b3JkVHlwZVxuICB0aGVzYXVydXM/OiBUaGVzYXVydXNNb2RlbFxuICBiYm94PzogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl1cblxuICB0cmFuc2xhdGlvbnM/OiBLZXl3b3JkVHJhbnNsYXRpb25zXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZVJlY29yZCB7XG4gIHVuaXF1ZUlkZW50aWZpZXI6IFV1aWRcbiAgb3duZXJPcmdhbml6YXRpb246IE9yZ2FuaXphdGlvblxuICBjb250YWN0czogQXJyYXk8SW5kaXZpZHVhbD5cbiAgdGl0bGU6IHN0cmluZ1xuICBhYnN0cmFjdDogc3RyaW5nXG4gIHJlY29yZENyZWF0ZWQ/OiBEYXRlXG4gIHJlY29yZFB1Ymxpc2hlZD86IERhdGVcbiAgcmVjb3JkVXBkYXRlZDogRGF0ZVxuICBraW5kOiBSZWNvcmRLaW5kXG4gIHRvcGljczogQXJyYXk8c3RyaW5nPiAvLyBUT0RPOiBoYW5kbGUgY29kZWxpc3RzXG4gIGtleXdvcmRzOiBBcnJheTxLZXl3b3JkPlxuICBsaWNlbnNlczogQXJyYXk8Q29uc3RyYWludD5cbiAgbGVnYWxDb25zdHJhaW50czogQXJyYXk8Q29uc3RyYWludD5cbiAgc2VjdXJpdHlDb25zdHJhaW50czogQXJyYXk8Q29uc3RyYWludD5cbiAgb3RoZXJDb25zdHJhaW50czogQXJyYXk8Q29uc3RyYWludD5cbiAgb3ZlcnZpZXdzOiBBcnJheTxHcmFwaGljT3ZlcnZpZXc+XG4gIGV4dHJhcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGxhbmRpbmdQYWdlPzogVVJMXG4gIHVwZGF0ZUZyZXF1ZW5jeT86IFVwZGF0ZUZyZXF1ZW5jeVxuXG4gIC8vIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gdGhlIHJlc291cmNlIChkYXRhc2V0LCBzZXJ2aWNlKVxuICByZXNvdXJjZUlkZW50aWZpZXI/OiBzdHJpbmdcbiAgY29udGFjdHNGb3JSZXNvdXJjZTogQXJyYXk8SW5kaXZpZHVhbD5cbiAgcmVzb3VyY2VDcmVhdGVkPzogRGF0ZVxuICByZXNvdXJjZVB1Ymxpc2hlZD86IERhdGVcbiAgcmVzb3VyY2VVcGRhdGVkPzogRGF0ZVxuXG4gIC8vIG11bHRpbGluZ3VhbCBzdXBwb3J0XG4gIGRlZmF1bHRMYW5ndWFnZTogTGFuZ3VhZ2VDb2RlXG4gIG90aGVyTGFuZ3VhZ2VzOiBBcnJheTxMYW5ndWFnZUNvZGU+IC8vIHRoaXMgc2hvdWxkIGluY2x1ZGUgYWxsIG5vbi1kZWZhdWx0IGxhbmd1YWdlcyBwcmVzZW50IGluIHRoZSBtZXRhZGF0YSwgZXZlbiBpZiBpbmNvbXBsZXRlbHkgdHJhbnNsYXRlZFxuXG4gIHRyYW5zbGF0aW9ucz86IFJlY29yZFRyYW5zbGF0aW9uc1xuXG4gIC8vIHRvIGFkZDogY2Fub25pY2FsIHVybFxuICAvLyB0byBhZGQ6IHNvdXJjZSBjYXRhbG9nICg/PylcbiAgLy8gdG8gYWRkOiBpcyBvcGVuIGRhdGEgP1xufVxuXG4vLyBUT0RPOiBoYW5kbGUgYWN0dWFsIGNvZGVsaXN0c1xuZXhwb3J0IHR5cGUgU2VydmljZVByb3RvY29sID1cbiAgfCAnd21zJ1xuICB8ICd3ZnMnXG4gIHwgJ3dwcydcbiAgfCAnd210cydcbiAgfCAnZXNyaVJlc3QnXG4gIHwgJ29nY0ZlYXR1cmVzJ1xuICB8ICdHUEZETCdcbiAgfCAndG1zJ1xuICB8ICdtYXBsaWJyZS1zdHlsZSdcbiAgfCAnb3RoZXInXG5cbmV4cG9ydCB0eXBlIE9ubGluZVJlc291cmNlVHlwZSA9ICdzZXJ2aWNlJyB8ICdkb3dubG9hZCcgfCAnbGluaycgfCAnZW5kcG9pbnQnXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24ge1xuICB0eXBlOiAnc2VydmljZSdcbiAgdXJsOiBVUkxcbiAgYWNjZXNzU2VydmljZVByb3RvY29sOiBTZXJ2aWNlUHJvdG9jb2xcbiAgaWRlbnRpZmllckluU2VydmljZT86IHN0cmluZyAvLyBzaG91bGQgd2Uga2VlcCB0aGUgaWRlbnRpZmllckluU2VydmljZT8gcmVhZC13cml0ZSBkdXBsaWNhdGUgd2l0aCBuYW1lXG4gIG5hbWU/OiBzdHJpbmdcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgdHJhbnNsYXRpb25zPzogT25saW5lUmVzb3VyY2VUcmFuc2xhdGlvbnNcbiAgYWNjZXNzUmVzdHJpY3RlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24ge1xuICB0eXBlOiAnZG93bmxvYWQnXG4gIHVybDogVVJMXG4gIG1pbWVUeXBlPzogc3RyaW5nXG4gIHNpemVCeXRlcz86IG51bWJlclxuICAvLyByZW1vdmVkIGJlY2F1c2Ugd2hhdCdzIHRoZSB1c2U/IGVuY29kaW5nIGNhbiBiZSBleHBvc2VkIGJ5IHRoZSBmaWxlIHNlcnZlciBvclxuICAvLyBldmVuIGZvdW5kIG91dCBieSB0cmlhbCBhbmQgZXJyb3I7IGJlc2lkZXMgd2UgY2FuIHJlYXNvbmFibHkgZXhwZWN0IHVuaWNvZGUgb3IgaXNvIG1vc3Qgb2YgdGhlIHRpbWVcbiAgLy8gdGV4dEVuY29kaW5nPzogc3RyaW5nXG4gIG5hbWU/OiBzdHJpbmdcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgYWNjZXNzU2VydmljZVByb3RvY29sPzogU2VydmljZVByb3RvY29sXG4gIHRyYW5zbGF0aW9ucz86IE9ubGluZVJlc291cmNlVHJhbnNsYXRpb25zXG4gIGFjY2Vzc1Jlc3RyaWN0ZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25saW5lTGlua1Jlc291cmNlIHtcbiAgdHlwZTogJ2xpbmsnXG4gIHVybDogVVJMXG4gIG5hbWU/OiBzdHJpbmdcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgdHJhbnNsYXRpb25zPzogT25saW5lUmVzb3VyY2VUcmFuc2xhdGlvbnNcbiAgbWltZVR5cGU/OiBzdHJpbmdcbiAgYWNjZXNzUmVzdHJpY3RlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgRGF0YXNldE9ubGluZVJlc291cmNlID0gKFxuICB8IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uXG4gIHwgRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uXG4gIHwgT25saW5lTGlua1Jlc291cmNlXG4pICYge1xuICB0eXBlOiBPbmxpbmVSZXNvdXJjZVR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcmFwaGljT3ZlcnZpZXcge1xuICB1cmw6IFVSTFxuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFzZXRTcGF0aWFsRXh0ZW50IHtcbiAgYmJveD86IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdXG4gIGdlb21ldHJ5PzogR2VvbWV0cnlcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgdHJhbnNsYXRpb25zPzogU3BhdGlhbEV4dGVudFRyYW5zbGF0aW9uc1xufVxuXG4vKipcbiAqIFBlcmlvZCBpZiBib3RoIHN0YXJ0IGFuZCBlbmQgYXJlIHByb3ZpZGVkXG4gKiBJbnN0YW50IGlmIG9ubHkgc3RhcnQgaXMgcHJvdmlkZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhc2V0VGVtcG9yYWxFeHRlbnQge1xuICBzdGFydDogRGF0ZVxuICBlbmQ/OiBEYXRlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXNldFJlY29yZCBleHRlbmRzIEJhc2VSZWNvcmQge1xuICBraW5kOiAnZGF0YXNldCdcbiAgc3RhdHVzOiBSZWNvcmRTdGF0dXNcbiAgbGluZWFnZTogc3RyaW5nIC8vIEV4cGxhbmF0aW9uIG9mIHRoZSBvcmlnaW4gb2YgdGhpcyByZWNvcmQgKGUuZzogaG93LCB3aHkpXCJcbiAgb25saW5lUmVzb3VyY2VzOiBBcnJheTxEYXRhc2V0T25saW5lUmVzb3VyY2U+XG4gIHNwYXRpYWxFeHRlbnRzOiBBcnJheTxEYXRhc2V0U3BhdGlhbEV4dGVudD5cbiAgdGVtcG9yYWxFeHRlbnRzOiBBcnJheTxEYXRhc2V0VGVtcG9yYWxFeHRlbnQ+XG4gIHNwYXRpYWxSZXByZXNlbnRhdGlvbj86IFNwYXRpYWxSZXByZXNlbnRhdGlvblR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlRW5kcG9pbnQge1xuICB1cmw6IFVSTFxuICBhY2Nlc3NTZXJ2aWNlUHJvdG9jb2w6IFNlcnZpY2VQcm90b2NvbFxuICB0eXBlOiAnZW5kcG9pbnQnXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIHRyYW5zbGF0aW9ucz86IE9ubGluZVJlc291cmNlVHJhbnNsYXRpb25zXG59XG5cbmV4cG9ydCB0eXBlIFNlcnZpY2VPbmxpbmVSZXNvdXJjZSA9IChTZXJ2aWNlRW5kcG9pbnQgfCBPbmxpbmVMaW5rUmVzb3VyY2UpICYge1xuICB0eXBlOiBPbmxpbmVSZXNvdXJjZVR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlUmVjb3JkIGV4dGVuZHMgQmFzZVJlY29yZCB7XG4gIGtpbmQ6ICdzZXJ2aWNlJ1xuICBvbmxpbmVSZXNvdXJjZXM6IEFycmF5PFNlcnZpY2VPbmxpbmVSZXNvdXJjZT5cbiAgc3BhdGlhbEV4dGVudHM6IEFycmF5PERhdGFzZXRTcGF0aWFsRXh0ZW50PlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJldXNlUmVjb3JkIGV4dGVuZHMgQmFzZVJlY29yZCB7XG4gIGtpbmQ6ICdyZXVzZSdcbiAgbGluZWFnZTogc3RyaW5nIC8vIEV4cGxhbmF0aW9uIG9mIHRoZSBvcmlnaW4gb2YgdGhpcyByZWNvcmQgKGUuZzogaG93LCB3aHkpXCJcbiAgb25saW5lUmVzb3VyY2VzOiBBcnJheTxPbmxpbmVMaW5rUmVzb3VyY2U+XG4gIHJldXNlVHlwZTogUmV1c2VUeXBlXG4gIHNwYXRpYWxFeHRlbnRzOiBBcnJheTxEYXRhc2V0U3BhdGlhbEV4dGVudD5cbiAgdGVtcG9yYWxFeHRlbnRzOiBBcnJheTxEYXRhc2V0VGVtcG9yYWxFeHRlbnQ+XG59XG5cbmV4cG9ydCB0eXBlIERhdGFzZXRGZWF0dXJlQ2F0YWxvZyA9IHtcbiAgZmVhdHVyZVR5cGVzOiBBcnJheTx7XG4gICAgbmFtZTogc3RyaW5nXG4gICAgZGVmaW5pdGlvbjogc3RyaW5nXG4gICAgYXR0cmlidXRlczogRGF0YXNldEZlYXR1cmVBdHRyaWJ1dGVbXVxuICB9PlxufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhc2V0RmVhdHVyZUF0dHJpYnV0ZVZhbHVlIHtcbiAgY29kZT86IHN0cmluZ1xuICBkZWZpbml0aW9uPzogc3RyaW5nXG4gIGxhYmVsPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIERhdGFzZXRGZWF0dXJlQXR0cmlidXRlIHtcbiAgbmFtZTogc3RyaW5nXG4gIGRlZmluaXRpb246IHN0cmluZ1xuICB0eXBlOiBzdHJpbmdcbiAgY29kZTogc3RyaW5nXG4gIHZhbHVlcz86IEFycmF5PERhdGFzZXRGZWF0dXJlQXR0cmlidXRlVmFsdWU+XG59XG5leHBvcnQgaW50ZXJmYWNlIERhdGFzZXRGZWF0dXJlVHlwZSB7XG4gIGFsaWFzZXM6IHN0cmluZ1xuICBjb2RlOiBzdHJpbmdcbiAgaXNBYnN0cmFjdDogc3RyaW5nXG4gIHR5cGVOYW1lOiBzdHJpbmdcbiAgZGVmaW5pdGlvbjogc3RyaW5nXG4gIGF0dHJpYnV0ZVRhYmxlOiBBcnJheTxEYXRhc2V0RmVhdHVyZUF0dHJpYnV0ZT5cbn1cblxuZXhwb3J0IHR5cGUgUmV1c2VUeXBlID0gJ2FwcGxpY2F0aW9uJyB8ICdtYXAnIHwgJ290aGVyJ1xuXG5leHBvcnQgdHlwZSBPbmxpbmVSZXNvdXJjZSA9IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB8IFNlcnZpY2VPbmxpbmVSZXNvdXJjZVxuXG5leHBvcnQgdHlwZSBDYXRhbG9nUmVjb3JkID0gRGF0YXNldFJlY29yZCB8IFJldXNlUmVjb3JkIHwgU2VydmljZVJlY29yZFxuXG5leHBvcnQgdHlwZSBDYXRhbG9nUmVjb3JkS2V5cyA9XG4gIHwga2V5b2YgRGF0YXNldFJlY29yZFxuICB8IGtleW9mIFJldXNlUmVjb3JkXG4gIHwga2V5b2YgU2VydmljZVJlY29yZFxuIl19
@@ -1,3 +1,3 @@
1
1
  export class PlatformServiceInterface {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0uc2VydmljZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9wbGF0Zm9ybS5zZXJ2aWNlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQkEsTUFBTSxPQUFnQix3QkFBd0I7Q0FvQzdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB0eXBlIHsgVXNlck1vZGVsIH0gZnJvbSAnLi9tb2RlbC91c2VyL3VzZXIubW9kZWwnXG5pbXBvcnQgdHlwZSB7IE9yZ2FuaXphdGlvbiB9IGZyb20gJy4vbW9kZWwvcmVjb3JkL29yZ2FuaXphdGlvbi5tb2RlbCdcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQsIEtleXdvcmQsIFVzZXJGZWVkYmFjayB9IGZyb20gJy4vbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgS2V5d29yZFR5cGUgfSBmcm9tICcuL21vZGVsL3RoZXNhdXJ1cydcblxuZXhwb3J0IGludGVyZmFjZSBSZWNvcmRBdHRhY2htZW50IHtcbiAgdXJsOiBVUkxcbiAgZmlsZU5hbWU6IHN0cmluZ1xufVxuZXhwb3J0IHR5cGUgVXBsb2FkRXZlbnQgPVxuICB8IHtcbiAgICAgIHR5cGU6ICdwcm9ncmVzcydcbiAgICAgIHByb2dyZXNzOiBudW1iZXIgLy8gaW4gcGVyY2VudFxuICAgIH1cbiAgfCB7XG4gICAgICB0eXBlOiAnc3VjY2VzcydcbiAgICAgIGF0dGFjaG1lbnQ6IFJlY29yZEF0dGFjaG1lbnRcbiAgICAgIHNpemVCeXRlczogbnVtYmVyXG4gICAgfVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlIHtcbiAgYWJzdHJhY3QgZ2V0VHlwZSgpOiBzdHJpbmdcbiAgYWJzdHJhY3QgZ2V0QXBpVmVyc2lvbigpOiBPYnNlcnZhYmxlPHN0cmluZz5cblxuICBhYnN0cmFjdCBnZXRNZSgpOiBPYnNlcnZhYmxlPFVzZXJNb2RlbD5cbiAgYWJzdHJhY3QgaXNBbm9ueW1vdXMoKTogT2JzZXJ2YWJsZTxib29sZWFuPlxuICBhYnN0cmFjdCBnZXRVc2VycygpOiBPYnNlcnZhYmxlPFVzZXJNb2RlbFtdPlxuICBhYnN0cmFjdCBnZXRVc2Vyc0J5T3JnYW5pemF0aW9uKFxuICAgIG9yZ2FuaXNhdGlvbjogT3JnYW5pemF0aW9uXG4gICk6IE9ic2VydmFibGU8VXNlck1vZGVsW10+XG4gIGFic3RyYWN0IGdldE9yZ2FuaXphdGlvbnMoKTogT2JzZXJ2YWJsZTxPcmdhbml6YXRpb25bXT5cblxuICBhYnN0cmFjdCB0cmFuc2xhdGVLZXkoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz5cblxuICBhYnN0cmFjdCBzZWFyY2hLZXl3b3JkcyhcbiAgICBxdWVyeTogc3RyaW5nLFxuICAgIGtleXdvcmRUeXBlczogS2V5d29yZFR5cGVbXVxuICApOiBPYnNlcnZhYmxlPEtleXdvcmRbXT5cbiAgYWJzdHJhY3QgZ2V0S2V5d29yZHNCeVVyaSh1cmk6IHN0cmluZyk6IE9ic2VydmFibGU8S2V5d29yZFtdPlxuICBhYnN0cmFjdCBzZWFyY2hLZXl3b3Jkc0luVGhlc2F1cnVzKFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgdGhlc2F1cnVzSWQ6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPEtleXdvcmRbXT5cblxuICBhYnN0cmFjdCBnZXRVc2VyRmVlZGJhY2tzKHJlY29yZFV1aWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlckZlZWRiYWNrW10+XG4gIGFic3RyYWN0IHBvc3RVc2VyRmVlZGJhY2tzKHJlY29yZFV1aWQ6IFVzZXJGZWVkYmFjayk6IE9ic2VydmFibGU8dm9pZD5cblxuICBhYnN0cmFjdCBnZXRSZWNvcmRBdHRhY2htZW50cyhcbiAgICByZWNvcmRVdWlkOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxSZWNvcmRBdHRhY2htZW50W10+XG4gIGFic3RyYWN0IGNsZWFuUmVjb3JkQXR0YWNobWVudHMocmVjb3JkVXVpZDogQ2F0YWxvZ1JlY29yZCk6IE9ic2VydmFibGU8dm9pZD5cbiAgYWJzdHJhY3QgYXR0YWNoRmlsZVRvUmVjb3JkKFxuICAgIHJlY29yZFV1aWQ6IHN0cmluZyxcbiAgICBmaWxlOiBGaWxlLFxuICAgIHJlbW92ZUR1cGxpY2F0ZT86IGJvb2xlYW5cbiAgKTogT2JzZXJ2YWJsZTxVcGxvYWRFdmVudD5cbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0uc2VydmljZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9wbGF0Zm9ybS5zZXJ2aWNlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQkEsTUFBTSxPQUFnQix3QkFBd0I7Q0FxQzdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB0eXBlIHsgVXNlck1vZGVsIH0gZnJvbSAnLi9tb2RlbC91c2VyL3VzZXIubW9kZWwnXG5pbXBvcnQgdHlwZSB7IE9yZ2FuaXphdGlvbiB9IGZyb20gJy4vbW9kZWwvcmVjb3JkL29yZ2FuaXphdGlvbi5tb2RlbCdcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQsIEtleXdvcmQsIFVzZXJGZWVkYmFjayB9IGZyb20gJy4vbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgS2V5d29yZFR5cGUgfSBmcm9tICcuL21vZGVsL3RoZXNhdXJ1cydcbmltcG9ydCB7IERhdGF2aXpDb25maWdNb2RlbCB9IGZyb20gJy4vbW9kZWwvZGF0YXZpei9kYXRhdml6LWNvbmZpZ3VyYXRpb24ubW9kZWwnXG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3JkQXR0YWNobWVudCB7XG4gIHVybDogVVJMXG4gIGZpbGVOYW1lOiBzdHJpbmdcbn1cbmV4cG9ydCB0eXBlIFVwbG9hZEV2ZW50ID1cbiAgfCB7XG4gICAgICB0eXBlOiAncHJvZ3Jlc3MnXG4gICAgICBwcm9ncmVzczogbnVtYmVyIC8vIGluIHBlcmNlbnRcbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogJ3N1Y2Nlc3MnXG4gICAgICBhdHRhY2htZW50OiBSZWNvcmRBdHRhY2htZW50XG4gICAgICBzaXplQnl0ZXM6IG51bWJlclxuICAgIH1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBsYXRmb3JtU2VydmljZUludGVyZmFjZSB7XG4gIGFic3RyYWN0IGdldFR5cGUoKTogc3RyaW5nXG4gIGFic3RyYWN0IGdldEFwaVZlcnNpb24oKTogT2JzZXJ2YWJsZTxzdHJpbmc+XG5cbiAgYWJzdHJhY3QgZ2V0TWUoKTogT2JzZXJ2YWJsZTxVc2VyTW9kZWw+XG4gIGFic3RyYWN0IGlzQW5vbnltb3VzKCk6IE9ic2VydmFibGU8Ym9vbGVhbj5cbiAgYWJzdHJhY3QgZ2V0VXNlcnMoKTogT2JzZXJ2YWJsZTxVc2VyTW9kZWxbXT5cbiAgYWJzdHJhY3QgZ2V0VXNlcnNCeU9yZ2FuaXphdGlvbihcbiAgICBvcmdhbmlzYXRpb246IE9yZ2FuaXphdGlvblxuICApOiBPYnNlcnZhYmxlPFVzZXJNb2RlbFtdPlxuICBhYnN0cmFjdCBnZXRPcmdhbml6YXRpb25zKCk6IE9ic2VydmFibGU8T3JnYW5pemF0aW9uW10+XG5cbiAgYWJzdHJhY3QgdHJhbnNsYXRlS2V5KGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+XG5cbiAgYWJzdHJhY3Qgc2VhcmNoS2V5d29yZHMoXG4gICAgcXVlcnk6IHN0cmluZyxcbiAgICBrZXl3b3JkVHlwZXM6IEtleXdvcmRUeXBlW11cbiAgKTogT2JzZXJ2YWJsZTxLZXl3b3JkW10+XG4gIGFic3RyYWN0IGdldEtleXdvcmRzQnlVcmkodXJpOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEtleXdvcmRbXT5cbiAgYWJzdHJhY3Qgc2VhcmNoS2V5d29yZHNJblRoZXNhdXJ1cyhcbiAgICBxdWVyeTogc3RyaW5nLFxuICAgIHRoZXNhdXJ1c0lkOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxLZXl3b3JkW10+XG5cbiAgYWJzdHJhY3QgZ2V0VXNlckZlZWRiYWNrcyhyZWNvcmRVdWlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXJGZWVkYmFja1tdPlxuICBhYnN0cmFjdCBwb3N0VXNlckZlZWRiYWNrcyhyZWNvcmRVdWlkOiBVc2VyRmVlZGJhY2spOiBPYnNlcnZhYmxlPHZvaWQ+XG5cbiAgYWJzdHJhY3QgZ2V0UmVjb3JkQXR0YWNobWVudHMoXG4gICAgcmVjb3JkVXVpZDogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8UmVjb3JkQXR0YWNobWVudFtdPlxuICBhYnN0cmFjdCBjbGVhblJlY29yZEF0dGFjaG1lbnRzKHJlY29yZFV1aWQ6IENhdGFsb2dSZWNvcmQpOiBPYnNlcnZhYmxlPHZvaWQ+XG4gIGFic3RyYWN0IGF0dGFjaEZpbGVUb1JlY29yZChcbiAgICByZWNvcmRVdWlkOiBzdHJpbmcsXG4gICAgZmlsZTogRmlsZSxcbiAgICByZW1vdmVEdXBsaWNhdGU/OiBib29sZWFuXG4gICk6IE9ic2VydmFibGU8VXBsb2FkRXZlbnQ+XG4gIGFic3RyYWN0IGdldEZpbGVDb250ZW50KHVybDogVVJMKTogT2JzZXJ2YWJsZTxhbnk+XG59XG4iXX0=
@@ -45,6 +45,12 @@ export class ChartViewComponent {
45
45
  set chartType(value) {
46
46
  this.chartType$.next(value);
47
47
  }
48
+ set userChartConfig(config) {
49
+ this.aggregation$.next(config.aggregation);
50
+ this.xProperty$.next(config.xProperty);
51
+ this.yProperty$.next(config.yProperty);
52
+ this.chartType$.next(config.chartType);
53
+ }
48
54
  get aggregationChoices() {
49
55
  if (!this.yProperty$.value) {
50
56
  return [{ label: 'chart.aggregation.count', value: 'count' }];
@@ -205,7 +211,7 @@ export class ChartViewComponent {
205
211
  this.changeDetector.detectChanges();
206
212
  }
207
213
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartViewComponent, deps: [{ token: i1.DataService }, { token: i0.ChangeDetectorRef }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
208
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ChartViewComponent, isStandalone: true, selector: "gn-ui-chart-view", inputs: { featureCatalog: "featureCatalog", cacheActive: "cacheActive", link: "link", aggregation: "aggregation", xProperty: "xProperty", yProperty: "yProperty", chartType: "chartType" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div\n class=\"flex flex-col space-y-2 sm:flex-row sm:space-y-0 sm:space-x-2 justify-between text-[13px]\"\n >\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"typeChoices\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"chartType$.next($event)\"\n [selected]=\"chartType$.value\"\n [title]=\"'chart.dropdown.type' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"xChoices$ | async\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"xProperty$.next($event)\"\n [selected]=\"xProperty$.value\"\n [title]=\"'chart.dropdown.xProperty' | translate\"\n ></gn-ui-dropdown-selector>\n <ng-container *ngIf=\"yChoices$ | async as yChoices\">\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n *ngIf=\"!isCountAggregation\"\n [choices]=\"yChoices\"\n (selectValue)=\"yProperty$.next($event)\"\n [selected]=\"yProperty$.value\"\n [title]=\"'chart.dropdown.yProperty' | translate\"\n class=\"select-y-prop\"\n ></gn-ui-dropdown-selector>\n </ng-container>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"aggregationChoices\"\n class=\"aggregation-choices\"\n (selectValue)=\"aggregation$.next($event)\"\n [selected]=\"aggregation$.value\"\n [title]=\"'chart.dropdown.aggregation' | translate\"\n ></gn-ui-dropdown-selector>\n </div>\n <div\n class=\"relative h-full mt-2 bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-chart\n *ngIf=\"!error\"\n [data]=\"chartData$ | async\"\n [type]=\"chartType$.value\"\n [prettyLabel]=\"prettyLabel$ | async\"\n [labelProperty]=\"labelProperty\"\n [valueProperty]=\"valueProperty\"\n ></gn-ui-chart>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'chart.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: ChartComponent, selector: "gn-ui-chart", inputs: ["data", "labelProperty", "prettyLabel", "valueProperty", "secondaryValueProperty", "type"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
214
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ChartViewComponent, isStandalone: true, selector: "gn-ui-chart-view", inputs: { featureCatalog: "featureCatalog", cacheActive: "cacheActive", link: "link", aggregation: "aggregation", xProperty: "xProperty", yProperty: "yProperty", chartType: "chartType", userChartConfig: "userChartConfig" }, outputs: { chartConfig$: "chartConfig$" }, ngImport: i0, template: "<div class=\"w-full h-full flex flex-col\">\n <div\n class=\"flex flex-col space-y-2 sm:flex-row sm:space-y-0 sm:space-x-2 justify-between text-[13px]\"\n >\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"typeChoices\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"chartType$.next($event)\"\n [selected]=\"chartType$.value\"\n [title]=\"'chart.dropdown.type' | translate\"\n ></gn-ui-dropdown-selector>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"xChoices$ | async\"\n [extraBtnClass]=\"'secondary min-w-full'\"\n (selectValue)=\"xProperty$.next($event)\"\n [selected]=\"xProperty$.value\"\n [title]=\"'chart.dropdown.xProperty' | translate\"\n ></gn-ui-dropdown-selector>\n <ng-container *ngIf=\"yChoices$ | async as yChoices\">\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n *ngIf=\"!isCountAggregation\"\n [choices]=\"yChoices\"\n (selectValue)=\"yProperty$.next($event)\"\n [selected]=\"yProperty$.value\"\n [title]=\"'chart.dropdown.yProperty' | translate\"\n class=\"select-y-prop\"\n ></gn-ui-dropdown-selector>\n </ng-container>\n <gn-ui-dropdown-selector\n class=\"basis-1/4\"\n [choices]=\"aggregationChoices\"\n class=\"aggregation-choices\"\n (selectValue)=\"aggregation$.next($event)\"\n [selected]=\"aggregation$.value\"\n [title]=\"'chart.dropdown.aggregation' | translate\"\n ></gn-ui-dropdown-selector>\n </div>\n <div\n class=\"relative h-full mt-2 bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-chart\n *ngIf=\"!error\"\n [data]=\"chartData$ | async\"\n [type]=\"chartType$.value\"\n [prettyLabel]=\"prettyLabel$ | async\"\n [labelProperty]=\"labelProperty\"\n [valueProperty]=\"valueProperty\"\n ></gn-ui-chart>\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'chart.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: ChartComponent, selector: "gn-ui-chart", inputs: ["data", "labelProperty", "prettyLabel", "valueProperty", "secondaryValueProperty", "type"] }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
209
215
  }
210
216
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartViewComponent, decorators: [{
211
217
  type: Component,
@@ -231,7 +237,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
231
237
  type: Input
232
238
  }], chartType: [{
233
239
  type: Input
240
+ }], userChartConfig: [{
241
+ type: Input
234
242
  }], chartConfig$: [{
235
243
  type: Output
236
244
  }] } });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZGF0YXZpei9zcmMvbGliL2NoYXJ0LXZpZXcvY2hhcnQtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZGF0YXZpei9zcmMvbGliL2NoYXJ0LXZpZXcvY2hhcnQtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDaEUsT0FBTyxFQUVMLFVBQVUsRUFFVixxQkFBcUIsR0FFdEIsTUFBTSw4Q0FBOEMsQ0FBQTtBQUNyRCxPQUFPLEVBRUwseUJBQXlCLEdBQzFCLE1BQU0sc0NBQXNDLENBQUE7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBQ3hFLE9BQU8sRUFDTCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEdBQUcsRUFDSCxXQUFXLEVBQ1gsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFNckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDdEUsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixtQkFBbUIsR0FDcEIs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QUFjLDZKQUNkLG9CQUFvQixvRkFDcEIsbUJBQW1CLCtGQUNuQixhQUFhOzs0RkFJSixrQkFBa0I7a0JBZjlCLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsWUFBWTt3QkFDWix5QkFBeUI7d0JBQ3pCLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGFBQWE7cUJBQ2QsY0FDVyxJQUFJOytJQU1ILGNBQWM7c0JBQTFCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFDTyxJQUFJO3NCQUFoQixLQUFLO2dCQVFPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBS08sU0FBUztzQkFBckIsS0FBSztnQkFLTyxTQUFTO3NCQUFyQixLQUFLO2dCQUtPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBS0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgQmFzZVJlYWRlcixcbiAgRmV0Y2hFcnJvcixcbiAgRmllbGRBZ2dyZWdhdGlvbixcbiAgZ2V0SnNvbkRhdGFJdGVtc1Byb3h5LFxuICBQcm9wZXJ0eUluZm8sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9kYXRhLWZldGNoZXIvc3JjJ1xuaW1wb3J0IHtcbiAgRHJvcGRvd25DaG9pY2UsXG4gIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgRU1QVFksIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZmlsdGVyLFxuICBtYXAsXG4gIHNoYXJlUmVwbGF5LFxuICBzdGFydFdpdGgsXG4gIHN3aXRjaE1hcCxcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9kYXRhLnNlcnZpY2UnXG5pbXBvcnQgeyBJbnB1dENoYXJ0VHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL2RhdGF2aXovZGF0YXZpei1jb25maWd1cmF0aW9uLm1vZGVsJ1xuaW1wb3J0IHtcbiAgRGF0YXNldEZlYXR1cmVDYXRhbG9nLFxuICBEYXRhc2V0T25saW5lUmVzb3VyY2UsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2RhdGF2aXovc3JjJ1xuaW1wb3J0IHtcbiAgTG9hZGluZ01hc2tDb21wb25lbnQsXG4gIFBvcHVwQWxlcnRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvd2lkZ2V0cy9zcmMnXG5cbm1hcmtlcignY2hhcnQudHlwZS5iYXInKVxubWFya2VyKCdjaGFydC50eXBlLmJhckhvcml6b250YWwnKVxubWFya2VyKCdjaGFydC50eXBlLmxpbmUnKVxubWFya2VyKCdjaGFydC50eXBlLmxpbmVTbW9vdGgnKVxubWFya2VyKCdjaGFydC50eXBlLnBpZScpXG5cbm1hcmtlcignY2hhcnQuYWdncmVnYXRpb24uc3VtJylcbm1hcmtlcignY2hhcnQuYWdncmVnYXRpb24ubWF4Jylcbm1hcmtlcignY2hhcnQuYWdncmVnYXRpb24ubWluJylcbm1hcmtlcignY2hhcnQuYWdncmVnYXRpb24uYXZlcmFnZScpXG5tYXJrZXIoJ2NoYXJ0LmFnZ3JlZ2F0aW9uLmNvdW50JylcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktY2hhcnQtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFydC12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hhcnQtdmlldy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG4gICAgQ2hhcnRDb21wb25lbnQsXG4gICAgTG9hZGluZ01hc2tDb21wb25lbnQsXG4gICAgUG9wdXBBbGVydENvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFydFZpZXdDb21wb25lbnQge1xuICBwdWJsaWMgZmVhdHVyZUNhdGFsb2ckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhc2V0RmVhdHVyZUNhdGFsb2cgfCBudWxsPihcbiAgICBudWxsXG4gIClcbiAgQElucHV0KCkgc2V0IGZlYXR1cmVDYXRhbG9nKHZhbHVlOiBEYXRhc2V0RmVhdHVyZUNhdGFsb2cpIHtcbiAgICB0aGlzLmZlYXR1cmVDYXRhbG9nJC5uZXh0KHZhbHVlKVxuICB9XG4gIEBJbnB1dCgpIGNhY2hlQWN0aXZlID0gdHJ1ZVxuICBASW5wdXQoKSBzZXQgbGluayh2YWx1ZTogRGF0YXNldE9ubGluZVJlc291cmNlKSB7XG4gICAgdGhpcy5jdXJyZW50TGluayQubmV4dCh2YWx1ZSlcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuYWdncmVnYXRpb24kLm5leHQoJ3N1bScpXG4gICAgfVxuICB9XG4gIHByaXZhdGUgY3VycmVudExpbmskID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhc2V0T25saW5lUmVzb3VyY2U+KG51bGwpXG5cbiAgQElucHV0KCkgc2V0IGFnZ3JlZ2F0aW9uKHZhbHVlOiBGaWVsZEFnZ3JlZ2F0aW9uWzBdKSB7XG4gICAgdGhpcy5hZ2dyZWdhdGlvbiQubmV4dCh2YWx1ZSlcbiAgfVxuICBhZ2dyZWdhdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpZWxkQWdncmVnYXRpb25bMF0+KCdzdW0nKVxuXG4gIEBJbnB1dCgpIHNldCB4UHJvcGVydHkodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMueFByb3BlcnR5JC5uZXh0KHZhbHVlKVxuICB9XG4gIHhQcm9wZXJ0eSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4odW5kZWZpbmVkKVxuXG4gIEBJbnB1dCgpIHNldCB5UHJvcGVydHkodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMueVByb3BlcnR5JC5uZXh0KHZhbHVlKVxuICB9XG4gIHlQcm9wZXJ0eSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4odW5kZWZpbmVkKVxuXG4gIEBJbnB1dCgpIHNldCBjaGFydFR5cGUodmFsdWU6IElucHV0Q2hhcnRUeXBlKSB7XG4gICAgdGhpcy5jaGFydFR5cGUkLm5leHQodmFsdWUpXG4gIH1cbiAgY2hhcnRUeXBlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SW5wdXRDaGFydFR5cGU+KCdiYXInKVxuXG4gIEBPdXRwdXQoKSBjaGFydENvbmZpZyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLnhQcm9wZXJ0eSQucGlwZShmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSksXG4gICAgdGhpcy55UHJvcGVydHkkLnBpcGUoZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCkpLFxuICAgIHRoaXMuYWdncmVnYXRpb24kLFxuICAgIHRoaXMuY2hhcnRUeXBlJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFt4UHJvcGVydHksIHlQcm9wZXJ0eSwgYWdncmVnYXRpb24sIGNoYXJ0VHlwZV0pID0+ICh7XG4gICAgICBhZ2dyZWdhdGlvbixcbiAgICAgIHhQcm9wZXJ0eSxcbiAgICAgIHlQcm9wZXJ0eSxcbiAgICAgIGNoYXJ0VHlwZSxcbiAgICB9KSlcbiAgKVxuXG4gIGxvYWRpbmcgPSBmYWxzZVxuICBlcnJvciA9IG51bGxcbiAgZXJyb3JJbmZvID0gbnVsbFxuXG4gIHR5cGVDaG9pY2VzOiBEcm9wZG93bkNob2ljZVtdID0gW1xuICAgIHsgbGFiZWw6ICdjaGFydC50eXBlLmJhcicsIHZhbHVlOiAnYmFyJyB9LFxuICAgIHsgbGFiZWw6ICdjaGFydC50eXBlLmJhckhvcml6b250YWwnLCB2YWx1ZTogJ2Jhci1ob3Jpem9udGFsJyB9LFxuICAgIHsgbGFiZWw6ICdjaGFydC50eXBlLmxpbmUnLCB2YWx1ZTogJ2xpbmUnIH0sXG4gICAgeyBsYWJlbDogJ2NoYXJ0LnR5cGUubGluZVNtb290aCcsIHZhbHVlOiAnbGluZS1pbnRlcnBvbGF0ZWQnIH0sXG4gICAgeyBsYWJlbDogJ2NoYXJ0LnR5cGUucGllJywgdmFsdWU6ICdwaWUnIH0sXG4gIF1cblxuICBnZXQgYWdncmVnYXRpb25DaG9pY2VzKCkge1xuICAgIGlmICghdGhpcy55UHJvcGVydHkkLnZhbHVlKSB7XG4gICAgICByZXR1cm4gW3sgbGFiZWw6ICdjaGFydC5hZ2dyZWdhdGlvbi5jb3VudCcsIHZhbHVlOiAnY291bnQnIH1dXG4gICAgfVxuICAgIHJldHVybiBbXG4gICAgICB7IGxhYmVsOiAnY2hhcnQuYWdncmVnYXRpb24uc3VtJywgdmFsdWU6ICdzdW0nIH0sXG4gICAgICB7IGxhYmVsOiAnY2hhcnQuYWdncmVnYXRpb24ubWF4JywgdmFsdWU6ICdtYXgnIH0sXG4gICAgICB7IGxhYmVsOiAnY2hhcnQuYWdncmVnYXRpb24ubWluJywgdmFsdWU6ICdtaW4nIH0sXG4gICAgICB7IGxhYmVsOiAnY2hhcnQuYWdncmVnYXRpb24uYXZlcmFnZScsIHZhbHVlOiAnYXZlcmFnZScgfSxcbiAgICAgIHsgbGFiZWw6ICdjaGFydC5hZ2dyZWdhdGlvbi5jb3VudCcsIHZhbHVlOiAnY291bnQnIH0sXG4gICAgXSBhcyBEcm9wZG93bkNob2ljZVtdXG4gIH1cblxuICBkYXRhc2V0JDogT2JzZXJ2YWJsZTxCYXNlUmVhZGVyPiA9IHRoaXMuY3VycmVudExpbmskLnBpcGUoXG4gICAgZmlsdGVyKChsaW5rKSA9PiAhIWxpbmspLFxuICAgIHN3aXRjaE1hcCgobGluaykgPT4ge1xuICAgICAgdGhpcy5lcnJvciA9IG51bGxcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWVcbiAgICAgIGlmIChsaW5rLmFjY2Vzc1Jlc3RyaWN0ZWQpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVFcnJvcignZGF0YXNldC5lcnJvci5yZXN0cmljdGVkQWNjZXNzJylcbiAgICAgICAgcmV0dXJuIEVNUFRZXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5nZXREYXRhc2V0KGxpbmssIHRoaXMuY2FjaGVBY3RpdmUpLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcilcbiAgICAgICAgICByZXR1cm4gRU1QVFlcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG4gIHByb3BlcnRpZXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5kYXRhc2V0JCwgdGhpcy5mZWF0dXJlQ2F0YWxvZyRdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW2RhdGFzZXQsIGNhdGFsb2ddKSA9PiB0aGlzLnNldFByb3BlcnRpZXMoZGF0YXNldCwgY2F0YWxvZykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcbiAgeUNob2ljZXMkID0gdGhpcy5wcm9wZXJ0aWVzJC5waXBlKFxuICAgIG1hcCgocHJvcGVydGllcykgPT5cbiAgICAgIHByb3BlcnRpZXNcbiAgICAgICAgLmZpbHRlcigocHJvcCkgPT4gcHJvcC50eXBlID09PSAnbnVtYmVyJyB8fCBwcm9wLnR5cGUgPT09ICdkYXRlJylcbiAgICAgICAgLm1hcCgocHJvcCkgPT4gKHsgdmFsdWU6IHByb3AubmFtZSwgbGFiZWw6IHByb3AubGFiZWwgfHwgcHJvcC5uYW1lIH0pKVxuICAgICksXG4gICAgdGFwKChjaG9pY2VzKSA9PiB7XG4gICAgICBpZiAoIWNob2ljZXMuZmluZCgoY2hvaWNlKSA9PiBjaG9pY2UudmFsdWUgPT09IHRoaXMueVByb3BlcnR5JC52YWx1ZSkpIHtcbiAgICAgICAgY29uc3QgbmV3UHJvcCA9IGNob2ljZXNbMF0/LnZhbHVlIHx8ICcnXG4gICAgICAgIGlmICghbmV3UHJvcCAmJiB0aGlzLmFnZ3JlZ2F0aW9uJC52YWx1ZSAhPT0gJ2NvdW50Jykge1xuICAgICAgICAgIHRoaXMuYWdncmVnYXRpb24kLm5leHQoJ2NvdW50JylcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnlQcm9wZXJ0eSQubmV4dChuZXdQcm9wKVxuICAgICAgfVxuICAgIH0pXG4gIClcbiAgeENob2ljZXMkID0gdGhpcy5wcm9wZXJ0aWVzJC5waXBlKFxuICAgIG1hcCgocHJvcGVydGllcykgPT5cbiAgICAgIHByb3BlcnRpZXNcbiAgICAgICAgLmZpbHRlcigocHJvcCkgPT4gcHJvcC50eXBlID09PSAnc3RyaW5nJylcbiAgICAgICAgLm1hcCgocHJvcCkgPT4gKHtcbiAgICAgICAgICB2YWx1ZTogcHJvcC5uYW1lLFxuICAgICAgICAgIGxhYmVsOiBwcm9wLmxhYmVsIHx8IHByb3AubmFtZSxcbiAgICAgICAgfSkpXG4gICAgKSxcbiAgICB0YXAoKGNob2ljZXMpID0+IHtcbiAgICAgIGlmICghY2hvaWNlcy5maW5kKChjaG9pY2UpID0+IGNob2ljZS52YWx1ZSA9PT0gdGhpcy54UHJvcGVydHkkLnZhbHVlKSkge1xuICAgICAgICB0aGlzLnhQcm9wZXJ0eSQubmV4dChjaG9pY2VzWzBdPy52YWx1ZSB8fCAnJylcbiAgICAgIH1cbiAgICB9KVxuICApXG5cbiAgY2hhcnREYXRhJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuZGF0YXNldCQsXG4gICAgdGhpcy54UHJvcGVydHkkLnBpcGUoZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCkpLFxuICAgIHRoaXMueVByb3BlcnR5JC5waXBlKGZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB1bmRlZmluZWQpKSxcbiAgICB0aGlzLmFnZ3JlZ2F0aW9uJCxcbiAgXSkucGlwZShcbiAgICBmaWx0ZXIoKFtfLCB4LCB5XSkgPT4gISF4IHx8ICEheSksXG4gICAgc3dpdGNoTWFwKChbZGF0YXNldCwgeFByb3AsIHlQcm9wLCBhZ2dyZWdhdGlvbl0pID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkQWdnOiBGaWVsZEFnZ3JlZ2F0aW9uID1cbiAgICAgICAgYWdncmVnYXRpb24gPT09ICdjb3VudCcgPyBbJ2NvdW50J10gOiBbYWdncmVnYXRpb24sIHlQcm9wXVxuICAgICAgcmV0dXJuIGRhdGFzZXRcbiAgICAgICAgLmdyb3VwQnkoWydkaXN0aW5jdCcsIHhQcm9wXSlcbiAgICAgICAgLmFnZ3JlZ2F0ZShmaWVsZEFnZylcbiAgICAgICAgLnJlYWQoKVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcilcbiAgICAgICAgICByZXR1cm4gW11cbiAgICAgICAgfSlcbiAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXG4gICAgICAgIH0pXG4gICAgfSksXG4gICAgbWFwKGdldEpzb25EYXRhSXRlbXNQcm94eSksXG4gICAgc3RhcnRXaXRoKFtdKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgcHJldHR5TGFiZWwkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5hZ2dyZWdhdGlvbiQsXG4gICAgdGhpcy5wcm9wZXJ0aWVzJCxcbiAgICB0aGlzLnlQcm9wZXJ0eSQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbYWdncmVnYXRpb24sIHByb3BlcnRpZXMsIHlQcm9wZXJ0eV0pID0+IHtcbiAgICAgIGlmIChhZ2dyZWdhdGlvbiA9PT0gJ2NvdW50JykgcmV0dXJuICdjb3VudCgpJ1xuICAgICAgY29uc3QgcHJvcCA9IHByb3BlcnRpZXMuZmluZCgocCkgPT4gcC5uYW1lID09PSB5UHJvcGVydHkpXG4gICAgICByZXR1cm4gcHJvcCA/IGAke2FnZ3JlZ2F0aW9ufSgke3Byb3AubGFiZWx9KWAgOiAnJ1xuICAgIH0pXG4gIClcblxuICBnZXQgbGFiZWxQcm9wZXJ0eSgpIHtcbiAgICBpZiAoIXRoaXMueFByb3BlcnR5JC52YWx1ZSkgcmV0dXJuICcnXG4gICAgcmV0dXJuIGBkaXN0aW5jdCgke3RoaXMueFByb3BlcnR5JC52YWx1ZX0pYFxuICB9XG4gIGdldCB2YWx1ZVByb3BlcnR5KCkge1xuICAgIGlmICh0aGlzLmlzQ291bnRBZ2dyZWdhdGlvbikgcmV0dXJuICdjb3VudCgpJ1xuICAgIHJldHVybiBgJHt0aGlzLmFnZ3JlZ2F0aW9uJC52YWx1ZX0oJHt0aGlzLnlQcm9wZXJ0eSQudmFsdWV9KWBcbiAgfVxuICBnZXQgaXNDb3VudEFnZ3JlZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmFnZ3JlZ2F0aW9uJC52YWx1ZSA9PT0gJ2NvdW50J1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBzZXRQcm9wZXJ0aWVzKFxuICAgIGRhdGFzZXQ6IEJhc2VSZWFkZXIsXG4gICAgY2F0YWxvZzogRGF0YXNldEZlYXR1cmVDYXRhbG9nXG4gICk6IFByb21pc2U8UHJvcGVydHlJbmZvW10+IHtcbiAgICByZXR1cm4gZGF0YXNldC5wcm9wZXJ0aWVzXG4gICAgICAudGhlbigocHJvcGVydGllcykgPT4ge1xuICAgICAgICByZXR1cm4gcHJvcGVydGllcy5tYXAoKHApID0+IHtcbiAgICAgICAgICBpZiAoY2F0YWxvZykge1xuICAgICAgICAgICAgY29uc3QgZmVhdHVyZUF0dHJpYnV0ZXMgPSBjYXRhbG9nPy5mZWF0dXJlVHlwZXNbMF0/LmF0dHJpYnV0ZXMgPz8gW11cbiAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nQXR0cmlidXRlID0gZmVhdHVyZUF0dHJpYnV0ZXMuZmluZChcbiAgICAgICAgICAgICAgKGF0dHIpID0+IGF0dHIubmFtZSA9PT0gcC5sYWJlbFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKG1hdGNoaW5nQXR0cmlidXRlPy5jb2RlKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7IC4uLnAsIGxhYmVsOiBtYXRjaGluZ0F0dHJpYnV0ZS5jb2RlIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBwXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKVxuICAgICAgICByZXR1cm4gW11cbiAgICAgIH0pXG4gIH1cbiAgaGFuZGxlRXJyb3IoZXJyb3I6IEZldGNoRXJyb3IgfCBFcnJvciB8IHN0cmluZykge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEZldGNoRXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgYGRhdGFzZXQuZXJyb3IuJHtlcnJvci50eXBlfWAsXG4gICAgICAgIHtcbiAgICAgICAgICBpbmZvOiBlcnJvci5pbmZvLFxuICAgICAgICB9XG4gICAgICApXG4gICAgICBjb25zb2xlLndhcm4oZXJyb3IubWVzc2FnZSlcbiAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChlcnJvci5tZXNzYWdlKVxuICAgICAgY29uc29sZS53YXJuKGVycm9yLnN0YWNrIHx8IGVycm9yKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZXJyb3IpXG4gICAgICBjb25zb2xlLndhcm4oZXJyb3IpXG4gICAgfVxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInctZnVsbCBoLWZ1bGwgZmxleCBmbGV4LWNvbFwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHNwYWNlLXktMiBzbTpmbGV4LXJvdyBzbTpzcGFjZS15LTAgc206c3BhY2UteC0yIGp1c3RpZnktYmV0d2VlbiB0ZXh0LVsxM3B4XVwiXG4gID5cbiAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgIGNsYXNzPVwiYmFzaXMtMS80XCJcbiAgICAgIFtjaG9pY2VzXT1cInR5cGVDaG9pY2VzXCJcbiAgICAgIFtleHRyYUJ0bkNsYXNzXT1cIidzZWNvbmRhcnkgbWluLXctZnVsbCdcIlxuICAgICAgKHNlbGVjdFZhbHVlKT1cImNoYXJ0VHlwZSQubmV4dCgkZXZlbnQpXCJcbiAgICAgIFtzZWxlY3RlZF09XCJjaGFydFR5cGUkLnZhbHVlXCJcbiAgICAgIFt0aXRsZV09XCInY2hhcnQuZHJvcGRvd24udHlwZScgfCB0cmFuc2xhdGVcIlxuICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgY2xhc3M9XCJiYXNpcy0xLzRcIlxuICAgICAgW2Nob2ljZXNdPVwieENob2ljZXMkIHwgYXN5bmNcIlxuICAgICAgW2V4dHJhQnRuQ2xhc3NdPVwiJ3NlY29uZGFyeSBtaW4tdy1mdWxsJ1wiXG4gICAgICAoc2VsZWN0VmFsdWUpPVwieFByb3BlcnR5JC5uZXh0KCRldmVudClcIlxuICAgICAgW3NlbGVjdGVkXT1cInhQcm9wZXJ0eSQudmFsdWVcIlxuICAgICAgW3RpdGxlXT1cIidjaGFydC5kcm9wZG93bi54UHJvcGVydHknIHwgdHJhbnNsYXRlXCJcbiAgICA+PC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwieUNob2ljZXMkIHwgYXN5bmMgYXMgeUNob2ljZXNcIj5cbiAgICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgICBjbGFzcz1cImJhc2lzLTEvNFwiXG4gICAgICAgICpuZ0lmPVwiIWlzQ291bnRBZ2dyZWdhdGlvblwiXG4gICAgICAgIFtjaG9pY2VzXT1cInlDaG9pY2VzXCJcbiAgICAgICAgKHNlbGVjdFZhbHVlKT1cInlQcm9wZXJ0eSQubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgW3NlbGVjdGVkXT1cInlQcm9wZXJ0eSQudmFsdWVcIlxuICAgICAgICBbdGl0bGVdPVwiJ2NoYXJ0LmRyb3Bkb3duLnlQcm9wZXJ0eScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBjbGFzcz1cInNlbGVjdC15LXByb3BcIlxuICAgICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICBjbGFzcz1cImJhc2lzLTEvNFwiXG4gICAgICBbY2hvaWNlc109XCJhZ2dyZWdhdGlvbkNob2ljZXNcIlxuICAgICAgY2xhc3M9XCJhZ2dyZWdhdGlvbi1jaG9pY2VzXCJcbiAgICAgIChzZWxlY3RWYWx1ZSk9XCJhZ2dyZWdhdGlvbiQubmV4dCgkZXZlbnQpXCJcbiAgICAgIFtzZWxlY3RlZF09XCJhZ2dyZWdhdGlvbiQudmFsdWVcIlxuICAgICAgW3RpdGxlXT1cIidjaGFydC5kcm9wZG93bi5hZ2dyZWdhdGlvbicgfCB0cmFuc2xhdGVcIlxuICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicmVsYXRpdmUgaC1mdWxsIG10LTIgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLWxnIG92ZXJmbG93LWhpZGRlblwiXG4gID5cbiAgICA8Z24tdWktY2hhcnRcbiAgICAgICpuZ0lmPVwiIWVycm9yXCJcbiAgICAgIFtkYXRhXT1cImNoYXJ0RGF0YSQgfCBhc3luY1wiXG4gICAgICBbdHlwZV09XCJjaGFydFR5cGUkLnZhbHVlXCJcbiAgICAgIFtwcmV0dHlMYWJlbF09XCJwcmV0dHlMYWJlbCQgfCBhc3luY1wiXG4gICAgICBbbGFiZWxQcm9wZXJ0eV09XCJsYWJlbFByb3BlcnR5XCJcbiAgICAgIFt2YWx1ZVByb3BlcnR5XT1cInZhbHVlUHJvcGVydHlcIlxuICAgID48L2duLXVpLWNoYXJ0PlxuICAgIDxnbi11aS1sb2FkaW5nLW1hc2tcbiAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgICBjbGFzcz1cImFic29sdXRlIGluc2V0LTBcIlxuICAgICAgW21lc3NhZ2VdPVwiJ2NoYXJ0LmxvYWRpbmcuZGF0YScgfCB0cmFuc2xhdGVcIlxuICAgID48L2duLXVpLWxvYWRpbmctbWFzaz5cbiAgICA8Z24tdWktcG9wdXAtYWxlcnRcbiAgICAgICpuZ0lmPVwiZXJyb3JcIlxuICAgICAgdHlwZT1cIndhcm5pbmdcIlxuICAgICAgaWNvbj1cIm1hdEVycm9yT3V0bGluZU91dGxpbmVcIlxuICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBtLTIgaW5zZXQtMFwiXG4gICAgPlxuICAgICAgPHNwYW4+e3sgZXJyb3IgfX08L3NwYW4+XG4gICAgPC9nbi11aS1wb3B1cC1hbGVydD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZGF0YXZpei9zcmMvbGliL2NoYXJ0LXZpZXcvY2hhcnQtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZGF0YXZpei9zcmMvbGliL2NoYXJ0LXZpZXcvY2hhcnQtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDaEUsT0FBTyxFQUVMLFVBQVUsRUFFVixxQkFBcUIsR0FFdEIsTUFBTSw4Q0FBOEMsQ0FBQTtBQUNyRCxPQUFPLEVBRUwseUJBQXlCLEdBQzFCLE1BQU0sc0NBQXNDLENBQUE7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBQ3hFLE9BQU8sRUFDTCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEdBQUcsRUFDSCxXQUFXLEVBQ1gsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFTckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDdEUsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixtQkFBbUIsR0FDcEIs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QUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDakQsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNyQixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUNyQyxDQUFDOytHQTNPVSxrQkFBa0I7bUdBQWxCLGtCQUFrQix1VkN6RS9CLDh4RUFrRUEseURERkksWUFBWSx3TEFDWix5QkFBeUIscU5BQ3pCLGNBQWMsNkpBQ2Qsb0JBQW9CLG9GQUNwQixtQkFBbUIsK0ZBQ25CLGFBQWE7OzRGQUlKLGtCQUFrQjtrQkFmOUIsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxZQUFZO3dCQUNaLHlCQUF5Qjt3QkFDekIsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsYUFBYTtxQkFDZCxjQUNXLElBQUk7K0lBTUgsY0FBYztzQkFBMUIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNPLElBQUk7c0JBQWhCLEtBQUs7Z0JBUU8sV0FBVztzQkFBdkIsS0FBSztnQkFLTyxTQUFTO3NCQUFyQixLQUFLO2dCQUtPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBS08sU0FBUztzQkFBckIsS0FBSztnQkFLTyxlQUFlO3NCQUEzQixLQUFLO2dCQU1JLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7XG4gIEJhc2VSZWFkZXIsXG4gIEZldGNoRXJyb3IsXG4gIEZpZWxkQWdncmVnYXRpb24sXG4gIGdldEpzb25EYXRhSXRlbXNQcm94eSxcbiAgUHJvcGVydHlJbmZvLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvZGF0YS1mZXRjaGVyL3NyYydcbmltcG9ydCB7XG4gIERyb3Bkb3duQ2hvaWNlLFxuICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIEVNUFRZLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7XG4gIGNhdGNoRXJyb3IsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBzaGFyZVJlcGxheSxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvZGF0YS5zZXJ2aWNlJ1xuaW1wb3J0IHtcbiAgRGF0YXZpekNoYXJ0Q29uZmlnTW9kZWwsXG4gIElucHV0Q2hhcnRUeXBlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9kYXRhdml6L2RhdGF2aXotY29uZmlndXJhdGlvbi5tb2RlbCdcbmltcG9ydCB7XG4gIERhdGFzZXRGZWF0dXJlQ2F0YWxvZyxcbiAgRGF0YXNldE9ubGluZVJlc291cmNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IENoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9kYXRhdml6L3NyYydcbmltcG9ydCB7XG4gIExvYWRpbmdNYXNrQ29tcG9uZW50LFxuICBQb3B1cEFsZXJ0Q29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuXG5tYXJrZXIoJ2NoYXJ0LnR5cGUuYmFyJylcbm1hcmtlcignY2hhcnQudHlwZS5iYXJIb3Jpem9udGFsJylcbm1hcmtlcignY2hhcnQudHlwZS5saW5lJylcbm1hcmtlcignY2hhcnQudHlwZS5saW5lU21vb3RoJylcbm1hcmtlcignY2hhcnQudHlwZS5waWUnKVxuXG5tYXJrZXIoJ2NoYXJ0LmFnZ3JlZ2F0aW9uLnN1bScpXG5tYXJrZXIoJ2NoYXJ0LmFnZ3JlZ2F0aW9uLm1heCcpXG5tYXJrZXIoJ2NoYXJ0LmFnZ3JlZ2F0aW9uLm1pbicpXG5tYXJrZXIoJ2NoYXJ0LmFnZ3JlZ2F0aW9uLmF2ZXJhZ2UnKVxubWFya2VyKCdjaGFydC5hZ2dyZWdhdGlvbi5jb3VudCcpXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWNoYXJ0LXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoYXJ0LXZpZXcuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICAgIENoYXJ0Q29tcG9uZW50LFxuICAgIExvYWRpbmdNYXNrQ29tcG9uZW50LFxuICAgIFBvcHVwQWxlcnRDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRWaWV3Q29tcG9uZW50IHtcbiAgcHVibGljIGZlYXR1cmVDYXRhbG9nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0YXNldEZlYXR1cmVDYXRhbG9nIHwgbnVsbD4oXG4gICAgbnVsbFxuICApXG4gIEBJbnB1dCgpIHNldCBmZWF0dXJlQ2F0YWxvZyh2YWx1ZTogRGF0YXNldEZlYXR1cmVDYXRhbG9nKSB7XG4gICAgdGhpcy5mZWF0dXJlQ2F0YWxvZyQubmV4dCh2YWx1ZSlcbiAgfVxuICBASW5wdXQoKSBjYWNoZUFjdGl2ZSA9IHRydWVcbiAgQElucHV0KCkgc2V0IGxpbmsodmFsdWU6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSkge1xuICAgIHRoaXMuY3VycmVudExpbmskLm5leHQodmFsdWUpXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmFnZ3JlZ2F0aW9uJC5uZXh0KCdzdW0nKVxuICAgIH1cbiAgfVxuICBwcml2YXRlIGN1cnJlbnRMaW5rJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0YXNldE9ubGluZVJlc291cmNlPihudWxsKVxuXG4gIEBJbnB1dCgpIHNldCBhZ2dyZWdhdGlvbih2YWx1ZTogRmllbGRBZ2dyZWdhdGlvblswXSkge1xuICAgIHRoaXMuYWdncmVnYXRpb24kLm5leHQodmFsdWUpXG4gIH1cbiAgYWdncmVnYXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWVsZEFnZ3JlZ2F0aW9uWzBdPignc3VtJylcblxuICBASW5wdXQoKSBzZXQgeFByb3BlcnR5KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnhQcm9wZXJ0eSQubmV4dCh2YWx1ZSlcbiAgfVxuICB4UHJvcGVydHkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KHVuZGVmaW5lZClcblxuICBASW5wdXQoKSBzZXQgeVByb3BlcnR5KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnlQcm9wZXJ0eSQubmV4dCh2YWx1ZSlcbiAgfVxuICB5UHJvcGVydHkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KHVuZGVmaW5lZClcblxuICBASW5wdXQoKSBzZXQgY2hhcnRUeXBlKHZhbHVlOiBJbnB1dENoYXJ0VHlwZSkge1xuICAgIHRoaXMuY2hhcnRUeXBlJC5uZXh0KHZhbHVlKVxuICB9XG4gIGNoYXJ0VHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElucHV0Q2hhcnRUeXBlPignYmFyJylcblxuICBASW5wdXQoKSBzZXQgdXNlckNoYXJ0Q29uZmlnKGNvbmZpZzogRGF0YXZpekNoYXJ0Q29uZmlnTW9kZWwpIHtcbiAgICB0aGlzLmFnZ3JlZ2F0aW9uJC5uZXh0KGNvbmZpZy5hZ2dyZWdhdGlvbilcbiAgICB0aGlzLnhQcm9wZXJ0eSQubmV4dChjb25maWcueFByb3BlcnR5KVxuICAgIHRoaXMueVByb3BlcnR5JC5uZXh0KGNvbmZpZy55UHJvcGVydHkpXG4gICAgdGhpcy5jaGFydFR5cGUkLm5leHQoY29uZmlnLmNoYXJ0VHlwZSlcbiAgfVxuICBAT3V0cHV0KCkgY2hhcnRDb25maWckID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy54UHJvcGVydHkkLnBpcGUoZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCkpLFxuICAgIHRoaXMueVByb3BlcnR5JC5waXBlKGZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB1bmRlZmluZWQpKSxcbiAgICB0aGlzLmFnZ3JlZ2F0aW9uJCxcbiAgICB0aGlzLmNoYXJ0VHlwZSQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbeFByb3BlcnR5LCB5UHJvcGVydHksIGFnZ3JlZ2F0aW9uLCBjaGFydFR5cGVdKSA9PiAoe1xuICAgICAgYWdncmVnYXRpb24sXG4gICAgICB4UHJvcGVydHksXG4gICAgICB5UHJvcGVydHksXG4gICAgICBjaGFydFR5cGUsXG4gICAgfSkpXG4gIClcblxuICBsb2FkaW5nID0gZmFsc2VcbiAgZXJyb3IgPSBudWxsXG4gIGVycm9ySW5mbyA9IG51bGxcblxuICB0eXBlQ2hvaWNlczogRHJvcGRvd25DaG9pY2VbXSA9IFtcbiAgICB7IGxhYmVsOiAnY2hhcnQudHlwZS5iYXInLCB2YWx1ZTogJ2JhcicgfSxcbiAgICB7IGxhYmVsOiAnY2hhcnQudHlwZS5iYXJIb3Jpem9udGFsJywgdmFsdWU6ICdiYXItaG9yaXpvbnRhbCcgfSxcbiAgICB7IGxhYmVsOiAnY2hhcnQudHlwZS5saW5lJywgdmFsdWU6ICdsaW5lJyB9LFxuICAgIHsgbGFiZWw6ICdjaGFydC50eXBlLmxpbmVTbW9vdGgnLCB2YWx1ZTogJ2xpbmUtaW50ZXJwb2xhdGVkJyB9LFxuICAgIHsgbGFiZWw6ICdjaGFydC50eXBlLnBpZScsIHZhbHVlOiAncGllJyB9LFxuICBdXG5cbiAgZ2V0IGFnZ3JlZ2F0aW9uQ2hvaWNlcygpIHtcbiAgICBpZiAoIXRoaXMueVByb3BlcnR5JC52YWx1ZSkge1xuICAgICAgcmV0dXJuIFt7IGxhYmVsOiAnY2hhcnQuYWdncmVnYXRpb24uY291bnQnLCB2YWx1ZTogJ2NvdW50JyB9XVxuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgeyBsYWJlbDogJ2NoYXJ0LmFnZ3JlZ2F0aW9uLnN1bScsIHZhbHVlOiAnc3VtJyB9LFxuICAgICAgeyBsYWJlbDogJ2NoYXJ0LmFnZ3JlZ2F0aW9uLm1heCcsIHZhbHVlOiAnbWF4JyB9LFxuICAgICAgeyBsYWJlbDogJ2NoYXJ0LmFnZ3JlZ2F0aW9uLm1pbicsIHZhbHVlOiAnbWluJyB9LFxuICAgICAgeyBsYWJlbDogJ2NoYXJ0LmFnZ3JlZ2F0aW9uLmF2ZXJhZ2UnLCB2YWx1ZTogJ2F2ZXJhZ2UnIH0sXG4gICAgICB7IGxhYmVsOiAnY2hhcnQuYWdncmVnYXRpb24uY291bnQnLCB2YWx1ZTogJ2NvdW50JyB9LFxuICAgIF0gYXMgRHJvcGRvd25DaG9pY2VbXVxuICB9XG5cbiAgZGF0YXNldCQ6IE9ic2VydmFibGU8QmFzZVJlYWRlcj4gPSB0aGlzLmN1cnJlbnRMaW5rJC5waXBlKFxuICAgIGZpbHRlcigobGluaykgPT4gISFsaW5rKSxcbiAgICBzd2l0Y2hNYXAoKGxpbmspID0+IHtcbiAgICAgIHRoaXMuZXJyb3IgPSBudWxsXG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlXG4gICAgICBpZiAobGluay5hY2Nlc3NSZXN0cmljdGVkKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoJ2RhdGFzZXQuZXJyb3IucmVzdHJpY3RlZEFjY2VzcycpXG4gICAgICAgIHJldHVybiBFTVBUWVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuZ2V0RGF0YXNldChsaW5rLCB0aGlzLmNhY2hlQWN0aXZlKS5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpXG4gICAgICAgICAgcmV0dXJuIEVNUFRZXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuICBwcm9wZXJ0aWVzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZGF0YXNldCQsIHRoaXMuZmVhdHVyZUNhdGFsb2ckXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFtkYXRhc2V0LCBjYXRhbG9nXSkgPT4gdGhpcy5zZXRQcm9wZXJ0aWVzKGRhdGFzZXQsIGNhdGFsb2cpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG4gIHlDaG9pY2VzJCA9IHRoaXMucHJvcGVydGllcyQucGlwZShcbiAgICBtYXAoKHByb3BlcnRpZXMpID0+XG4gICAgICBwcm9wZXJ0aWVzXG4gICAgICAgIC5maWx0ZXIoKHByb3ApID0+IHByb3AudHlwZSA9PT0gJ251bWJlcicgfHwgcHJvcC50eXBlID09PSAnZGF0ZScpXG4gICAgICAgIC5tYXAoKHByb3ApID0+ICh7IHZhbHVlOiBwcm9wLm5hbWUsIGxhYmVsOiBwcm9wLmxhYmVsIHx8IHByb3AubmFtZSB9KSlcbiAgICApLFxuICAgIHRhcCgoY2hvaWNlcykgPT4ge1xuICAgICAgaWYgKCFjaG9pY2VzLmZpbmQoKGNob2ljZSkgPT4gY2hvaWNlLnZhbHVlID09PSB0aGlzLnlQcm9wZXJ0eSQudmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IG5ld1Byb3AgPSBjaG9pY2VzWzBdPy52YWx1ZSB8fCAnJ1xuICAgICAgICBpZiAoIW5ld1Byb3AgJiYgdGhpcy5hZ2dyZWdhdGlvbiQudmFsdWUgIT09ICdjb3VudCcpIHtcbiAgICAgICAgICB0aGlzLmFnZ3JlZ2F0aW9uJC5uZXh0KCdjb3VudCcpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy55UHJvcGVydHkkLm5leHQobmV3UHJvcClcbiAgICAgIH1cbiAgICB9KVxuICApXG4gIHhDaG9pY2VzJCA9IHRoaXMucHJvcGVydGllcyQucGlwZShcbiAgICBtYXAoKHByb3BlcnRpZXMpID0+XG4gICAgICBwcm9wZXJ0aWVzXG4gICAgICAgIC5maWx0ZXIoKHByb3ApID0+IHByb3AudHlwZSA9PT0gJ3N0cmluZycpXG4gICAgICAgIC5tYXAoKHByb3ApID0+ICh7XG4gICAgICAgICAgdmFsdWU6IHByb3AubmFtZSxcbiAgICAgICAgICBsYWJlbDogcHJvcC5sYWJlbCB8fCBwcm9wLm5hbWUsXG4gICAgICAgIH0pKVxuICAgICksXG4gICAgdGFwKChjaG9pY2VzKSA9PiB7XG4gICAgICBpZiAoIWNob2ljZXMuZmluZCgoY2hvaWNlKSA9PiBjaG9pY2UudmFsdWUgPT09IHRoaXMueFByb3BlcnR5JC52YWx1ZSkpIHtcbiAgICAgICAgdGhpcy54UHJvcGVydHkkLm5leHQoY2hvaWNlc1swXT8udmFsdWUgfHwgJycpXG4gICAgICB9XG4gICAgfSlcbiAgKVxuXG4gIGNoYXJ0RGF0YSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmRhdGFzZXQkLFxuICAgIHRoaXMueFByb3BlcnR5JC5waXBlKGZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB1bmRlZmluZWQpKSxcbiAgICB0aGlzLnlQcm9wZXJ0eSQucGlwZShmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSksXG4gICAgdGhpcy5hZ2dyZWdhdGlvbiQsXG4gIF0pLnBpcGUoXG4gICAgZmlsdGVyKChbXywgeCwgeV0pID0+ICEheCB8fCAhIXkpLFxuICAgIHN3aXRjaE1hcCgoW2RhdGFzZXQsIHhQcm9wLCB5UHJvcCwgYWdncmVnYXRpb25dKSA9PiB7XG4gICAgICBjb25zdCBmaWVsZEFnZzogRmllbGRBZ2dyZWdhdGlvbiA9XG4gICAgICAgIGFnZ3JlZ2F0aW9uID09PSAnY291bnQnID8gWydjb3VudCddIDogW2FnZ3JlZ2F0aW9uLCB5UHJvcF1cbiAgICAgIHJldHVybiBkYXRhc2V0XG4gICAgICAgIC5ncm91cEJ5KFsnZGlzdGluY3QnLCB4UHJvcF0pXG4gICAgICAgIC5hZ2dyZWdhdGUoZmllbGRBZ2cpXG4gICAgICAgIC5yZWFkKClcbiAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpXG4gICAgICAgICAgcmV0dXJuIFtdXG4gICAgICAgIH0pXG4gICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgICAgICB9KVxuICAgIH0pLFxuICAgIG1hcChnZXRKc29uRGF0YUl0ZW1zUHJveHkpLFxuICAgIHN0YXJ0V2l0aChbXSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIHByZXR0eUxhYmVsJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuYWdncmVnYXRpb24kLFxuICAgIHRoaXMucHJvcGVydGllcyQsXG4gICAgdGhpcy55UHJvcGVydHkkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW2FnZ3JlZ2F0aW9uLCBwcm9wZXJ0aWVzLCB5UHJvcGVydHldKSA9PiB7XG4gICAgICBpZiAoYWdncmVnYXRpb24gPT09ICdjb3VudCcpIHJldHVybiAnY291bnQoKSdcbiAgICAgIGNvbnN0IHByb3AgPSBwcm9wZXJ0aWVzLmZpbmQoKHApID0+IHAubmFtZSA9PT0geVByb3BlcnR5KVxuICAgICAgcmV0dXJuIHByb3AgPyBgJHthZ2dyZWdhdGlvbn0oJHtwcm9wLmxhYmVsfSlgIDogJydcbiAgICB9KVxuICApXG5cbiAgZ2V0IGxhYmVsUHJvcGVydHkoKSB7XG4gICAgaWYgKCF0aGlzLnhQcm9wZXJ0eSQudmFsdWUpIHJldHVybiAnJ1xuICAgIHJldHVybiBgZGlzdGluY3QoJHt0aGlzLnhQcm9wZXJ0eSQudmFsdWV9KWBcbiAgfVxuICBnZXQgdmFsdWVQcm9wZXJ0eSgpIHtcbiAgICBpZiAodGhpcy5pc0NvdW50QWdncmVnYXRpb24pIHJldHVybiAnY291bnQoKSdcbiAgICByZXR1cm4gYCR7dGhpcy5hZ2dyZWdhdGlvbiQudmFsdWV9KCR7dGhpcy55UHJvcGVydHkkLnZhbHVlfSlgXG4gIH1cbiAgZ2V0IGlzQ291bnRBZ2dyZWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5hZ2dyZWdhdGlvbiQudmFsdWUgPT09ICdjb3VudCdcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG5cbiAgc2V0UHJvcGVydGllcyhcbiAgICBkYXRhc2V0OiBCYXNlUmVhZGVyLFxuICAgIGNhdGFsb2c6IERhdGFzZXRGZWF0dXJlQ2F0YWxvZ1xuICApOiBQcm9taXNlPFByb3BlcnR5SW5mb1tdPiB7XG4gICAgcmV0dXJuIGRhdGFzZXQucHJvcGVydGllc1xuICAgICAgLnRoZW4oKHByb3BlcnRpZXMpID0+IHtcbiAgICAgICAgcmV0dXJuIHByb3BlcnRpZXMubWFwKChwKSA9PiB7XG4gICAgICAgICAgaWYgKGNhdGFsb2cpIHtcbiAgICAgICAgICAgIGNvbnN0IGZlYXR1cmVBdHRyaWJ1dGVzID0gY2F0YWxvZz8uZmVhdHVyZVR5cGVzWzBdPy5hdHRyaWJ1dGVzID8/IFtdXG4gICAgICAgICAgICBjb25zdCBtYXRjaGluZ0F0dHJpYnV0ZSA9IGZlYXR1cmVBdHRyaWJ1dGVzLmZpbmQoXG4gICAgICAgICAgICAgIChhdHRyKSA9PiBhdHRyLm5hbWUgPT09IHAubGFiZWxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGlmIChtYXRjaGluZ0F0dHJpYnV0ZT8uY29kZSkge1xuICAgICAgICAgICAgICByZXR1cm4geyAuLi5wLCBsYWJlbDogbWF0Y2hpbmdBdHRyaWJ1dGUuY29kZSB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcFxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcilcbiAgICAgICAgcmV0dXJuIFtdXG4gICAgICB9KVxuICB9XG4gIGhhbmRsZUVycm9yKGVycm9yOiBGZXRjaEVycm9yIHwgRXJyb3IgfCBzdHJpbmcpIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBGZXRjaEVycm9yKSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgIGBkYXRhc2V0LmVycm9yLiR7ZXJyb3IudHlwZX1gLFxuICAgICAgICB7XG4gICAgICAgICAgaW5mbzogZXJyb3IuaW5mbyxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgY29uc29sZS53YXJuKGVycm9yLm1lc3NhZ2UpXG4gICAgfSBlbHNlIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZXJyb3IubWVzc2FnZSlcbiAgICAgIGNvbnNvbGUud2FybihlcnJvci5zdGFjayB8fCBlcnJvcilcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lcnJvciA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGVycm9yKVxuICAgICAgY29uc29sZS53YXJuKGVycm9yKVxuICAgIH1cbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIGZsZXggZmxleC1jb2xcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBzcGFjZS15LTIgc206ZmxleC1yb3cgc206c3BhY2UteS0wIHNtOnNwYWNlLXgtMiBqdXN0aWZ5LWJldHdlZW4gdGV4dC1bMTNweF1cIlxuICA+XG4gICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICBjbGFzcz1cImJhc2lzLTEvNFwiXG4gICAgICBbY2hvaWNlc109XCJ0eXBlQ2hvaWNlc1wiXG4gICAgICBbZXh0cmFCdG5DbGFzc109XCInc2Vjb25kYXJ5IG1pbi13LWZ1bGwnXCJcbiAgICAgIChzZWxlY3RWYWx1ZSk9XCJjaGFydFR5cGUkLm5leHQoJGV2ZW50KVwiXG4gICAgICBbc2VsZWN0ZWRdPVwiY2hhcnRUeXBlJC52YWx1ZVwiXG4gICAgICBbdGl0bGVdPVwiJ2NoYXJ0LmRyb3Bkb3duLnR5cGUnIHwgdHJhbnNsYXRlXCJcbiAgICA+PC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cbiAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgIGNsYXNzPVwiYmFzaXMtMS80XCJcbiAgICAgIFtjaG9pY2VzXT1cInhDaG9pY2VzJCB8IGFzeW5jXCJcbiAgICAgIFtleHRyYUJ0bkNsYXNzXT1cIidzZWNvbmRhcnkgbWluLXctZnVsbCdcIlxuICAgICAgKHNlbGVjdFZhbHVlKT1cInhQcm9wZXJ0eSQubmV4dCgkZXZlbnQpXCJcbiAgICAgIFtzZWxlY3RlZF09XCJ4UHJvcGVydHkkLnZhbHVlXCJcbiAgICAgIFt0aXRsZV09XCInY2hhcnQuZHJvcGRvd24ueFByb3BlcnR5JyB8IHRyYW5zbGF0ZVwiXG4gICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInlDaG9pY2VzJCB8IGFzeW5jIGFzIHlDaG9pY2VzXCI+XG4gICAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgICAgY2xhc3M9XCJiYXNpcy0xLzRcIlxuICAgICAgICAqbmdJZj1cIiFpc0NvdW50QWdncmVnYXRpb25cIlxuICAgICAgICBbY2hvaWNlc109XCJ5Q2hvaWNlc1wiXG4gICAgICAgIChzZWxlY3RWYWx1ZSk9XCJ5UHJvcGVydHkkLm5leHQoJGV2ZW50KVwiXG4gICAgICAgIFtzZWxlY3RlZF09XCJ5UHJvcGVydHkkLnZhbHVlXCJcbiAgICAgICAgW3RpdGxlXT1cIidjaGFydC5kcm9wZG93bi55UHJvcGVydHknIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgY2xhc3M9XCJzZWxlY3QteS1wcm9wXCJcbiAgICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgY2xhc3M9XCJiYXNpcy0xLzRcIlxuICAgICAgW2Nob2ljZXNdPVwiYWdncmVnYXRpb25DaG9pY2VzXCJcbiAgICAgIGNsYXNzPVwiYWdncmVnYXRpb24tY2hvaWNlc1wiXG4gICAgICAoc2VsZWN0VmFsdWUpPVwiYWdncmVnYXRpb24kLm5leHQoJGV2ZW50KVwiXG4gICAgICBbc2VsZWN0ZWRdPVwiYWdncmVnYXRpb24kLnZhbHVlXCJcbiAgICAgIFt0aXRsZV09XCInY2hhcnQuZHJvcGRvd24uYWdncmVnYXRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICA+PC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInJlbGF0aXZlIGgtZnVsbCBtdC0yIGJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW5cIlxuICA+XG4gICAgPGduLXVpLWNoYXJ0XG4gICAgICAqbmdJZj1cIiFlcnJvclwiXG4gICAgICBbZGF0YV09XCJjaGFydERhdGEkIHwgYXN5bmNcIlxuICAgICAgW3R5cGVdPVwiY2hhcnRUeXBlJC52YWx1ZVwiXG4gICAgICBbcHJldHR5TGFiZWxdPVwicHJldHR5TGFiZWwkIHwgYXN5bmNcIlxuICAgICAgW2xhYmVsUHJvcGVydHldPVwibGFiZWxQcm9wZXJ0eVwiXG4gICAgICBbdmFsdWVQcm9wZXJ0eV09XCJ2YWx1ZVByb3BlcnR5XCJcbiAgICA+PC9nbi11aS1jaGFydD5cbiAgICA8Z24tdWktbG9hZGluZy1tYXNrXG4gICAgICAqbmdJZj1cImxvYWRpbmdcIlxuICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wXCJcbiAgICAgIFttZXNzYWdlXT1cIidjaGFydC5sb2FkaW5nLmRhdGEnIHwgdHJhbnNsYXRlXCJcbiAgICA+PC9nbi11aS1sb2FkaW5nLW1hc2s+XG4gICAgPGduLXVpLXBvcHVwLWFsZXJ0XG4gICAgICAqbmdJZj1cImVycm9yXCJcbiAgICAgIHR5cGU9XCJ3YXJuaW5nXCJcbiAgICAgIGljb249XCJtYXRFcnJvck91dGxpbmVPdXRsaW5lXCJcbiAgICAgIGNsYXNzPVwiYWJzb2x1dGUgbS0yIGluc2V0LTBcIlxuICAgID5cbiAgICAgIDxzcGFuPnt7IGVycm9yIH19PC9zcGFuPlxuICAgIDwvZ24tdWktcG9wdXAtYWxlcnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -9,4 +9,5 @@ export * from './lib/components/import-record/import-record.component';
9
9
  export * from './lib/components/record-form/record-form.component';
10
10
  export * from './lib/components/record-form/form-field';
11
11
  export * from './lib/components/multilingual-panel/multilingual-panel.component';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsNEJBQTRCLENBQUE7QUFDMUMsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsd0RBQXdELENBQUE7QUFDdEUsY0FBYyxvREFBb0QsQ0FBQTtBQUNsRSxjQUFjLHlDQUF5QyxDQUFBO0FBQ3ZELGNBQWMsa0VBQWtFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi8rc3RhdGUvZWRpdG9yLmZhY2FkZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliLytzdGF0ZS9lZGl0b3IubW9kZWxzJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvK3N0YXRlL2VkaXRvci5zZWxlY3RvcnMnXG5leHBvcnQgKiBmcm9tICcuL2xpYi8rc3RhdGUvZWRpdG9yLnJlZHVjZXInXG5leHBvcnQgKiBmcm9tICcuL2xpYi8rc3RhdGUvZWRpdG9yLmFjdGlvbnMnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mZWF0dXJlLWVkaXRvci5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9lZGl0b3Iuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaW1wb3J0LXJlY29yZC9pbXBvcnQtcmVjb3JkLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcmVjb3JkLWZvcm0vcmVjb3JkLWZvcm0uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tdWx0aWxpbmd1YWwtcGFuZWwvbXVsdGlsaW5ndWFsLXBhbmVsLmNvbXBvbmVudCdcbiJdfQ==
12
+ export * from './lib/components/metadata-quality-panel/metadata-quality-panel.component';
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsNEJBQTRCLENBQUE7QUFDMUMsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsd0RBQXdELENBQUE7QUFDdEUsY0FBYyxvREFBb0QsQ0FBQTtBQUNsRSxjQUFjLHlDQUF5QyxDQUFBO0FBQ3ZELGNBQWMsa0VBQWtFLENBQUE7QUFDaEYsY0FBYywwRUFBMEUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliLytzdGF0ZS9lZGl0b3IuZmFjYWRlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvK3N0YXRlL2VkaXRvci5tb2RlbHMnXG5leHBvcnQgKiBmcm9tICcuL2xpYi8rc3RhdGUvZWRpdG9yLnNlbGVjdG9ycydcbmV4cG9ydCAqIGZyb20gJy4vbGliLytzdGF0ZS9lZGl0b3IucmVkdWNlcidcbmV4cG9ydCAqIGZyb20gJy4vbGliLytzdGF0ZS9lZGl0b3IuYWN0aW9ucydcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZlYXR1cmUtZWRpdG9yLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2VkaXRvci5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbXBvcnQtcmVjb3JkL2ltcG9ydC1yZWNvcmQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9yZWNvcmQtZm9ybS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3JlY29yZC1mb3JtL2Zvcm0tZmllbGQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL211bHRpbGluZ3VhbC1wYW5lbC9tdWx0aWxpbmd1YWwtcGFuZWwuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tZXRhZGF0YS1xdWFsaXR5LXBhbmVsL21ldGFkYXRhLXF1YWxpdHktcGFuZWwuY29tcG9uZW50J1xuIl19