geonetwork-ui 2.7.0-dev.d51ff2ddf → 2.7.0-dev.da19181da

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 (122) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +4 -7
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +20 -20
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.mjs +3 -3
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +3 -3
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +3 -3
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -4
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +5 -5
  8. package/esm2022/libs/api/repository/src/index.mjs +2 -2
  9. package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +5 -5
  10. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +9 -10
  11. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +3 -3
  12. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +3 -3
  13. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -3
  14. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +3 -3
  15. package/esm2022/libs/api/repository/src/lib/metadata-language.token.mjs +3 -0
  16. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +11 -1
  17. package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +3 -3
  18. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.mjs +79 -0
  19. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +8 -3
  20. package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
  21. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +77 -1
  22. package/esm2022/libs/feature/router/src/lib/default/state/query-params.utils.mjs +4 -3
  23. package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +3 -2
  24. package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
  25. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +1 -4
  26. package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +7 -7
  27. package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +1 -6
  28. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -2
  29. package/esm2022/libs/util/app-config/src/lib/parse-utils.mjs +5 -4
  30. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +50 -9
  31. package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +9 -8
  32. package/esm2022/translations/de.json +52 -20
  33. package/esm2022/translations/en.json +53 -21
  34. package/esm2022/translations/es.json +39 -7
  35. package/esm2022/translations/fr.json +57 -25
  36. package/esm2022/translations/it.json +52 -20
  37. package/esm2022/translations/nl.json +39 -7
  38. package/esm2022/translations/pt.json +39 -7
  39. package/esm2022/translations/sk.json +43 -11
  40. package/fesm2022/geonetwork-ui.mjs +663 -653
  41. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  42. package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -1
  43. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +1 -1
  44. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  45. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +2 -2
  46. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  47. package/libs/api/repository/src/index.d.ts +1 -1
  48. package/libs/api/repository/src/index.d.ts.map +1 -1
  49. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +0 -1
  50. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  51. package/libs/api/repository/src/lib/metadata-language.token.d.ts +5 -0
  52. package/libs/api/repository/src/lib/metadata-language.token.d.ts.map +1 -0
  53. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +5 -1
  54. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  55. package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
  56. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts +28 -0
  57. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts.map +1 -0
  58. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +1 -0
  59. package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
  60. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
  61. package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
  62. package/libs/feature/editor/src/lib/fields.config.d.ts +8 -1
  63. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  64. package/libs/feature/router/src/lib/default/state/query-params.utils.d.ts.map +1 -1
  65. package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
  66. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +0 -1
  67. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  68. package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -1
  69. package/libs/util/app-config/src/lib/parse-utils.d.ts.map +1 -1
  70. package/libs/util/i18n/src/lib/language-codes.d.ts +91 -31
  71. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  72. package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -1
  73. package/package.json +11 -10
  74. package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +3 -6
  75. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +47 -22
  76. package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +2 -2
  77. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +2 -2
  78. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
  79. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +3 -3
  80. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +6 -6
  81. package/src/libs/api/repository/src/index.ts +1 -1
  82. package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -4
  83. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +15 -11
  84. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
  85. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +2 -2
  86. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +2 -2
  87. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +2 -2
  88. package/src/libs/api/repository/src/lib/metadata-language.token.ts +8 -0
  89. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +17 -1
  90. package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +2 -5
  91. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.css +0 -0
  92. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.html +20 -0
  93. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.ts +85 -0
  94. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +6 -0
  95. package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +5 -0
  96. package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
  97. package/src/libs/feature/editor/src/lib/fields.config.ts +85 -1
  98. package/src/libs/feature/router/src/lib/default/state/query-params.utils.ts +5 -2
  99. package/src/libs/feature/router/src/lib/default/state/router.facade.ts +2 -1
  100. package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -1
  101. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -4
  102. package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +6 -6
  103. package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +0 -6
  104. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -1
  105. package/src/libs/util/app-config/src/lib/parse-utils.ts +4 -7
  106. package/src/libs/util/i18n/src/lib/language-codes.ts +62 -11
  107. package/src/libs/util/shared/src/lib/record/quality-score.util.ts +13 -10
  108. package/translations/de.json +52 -20
  109. package/translations/en.json +53 -21
  110. package/translations/es.json +39 -7
  111. package/translations/fr.json +57 -25
  112. package/translations/it.json +52 -20
  113. package/translations/nl.json +39 -7
  114. package/translations/pt.json +39 -7
  115. package/translations/sk.json +43 -11
  116. package/esm2022/libs/api/repository/src/lib/metadata-language.mjs +0 -3
  117. package/esm2022/libs/util/app-config/src/lib/constants.mjs +0 -439
  118. package/libs/api/repository/src/lib/metadata-language.d.ts +0 -3
  119. package/libs/api/repository/src/lib/metadata-language.d.ts.map +0 -1
  120. package/libs/util/app-config/src/lib/constants.d.ts +0 -2
  121. package/libs/util/app-config/src/lib/constants.d.ts.map +0 -1
  122. package/src/libs/api/repository/src/lib/metadata-language.ts +0 -3
@@ -4,7 +4,7 @@ import { ElasticsearchService } from '../elasticsearch';
4
4
  import { getAsArray, getAsUrl, mapOrganization, selectFallback, selectField, selectTranslatedField, } from '../../../../../../../libs/api/metadata-converter/src';
5
5
  import { combineLatest, of, switchMap, takeLast } from 'rxjs';
6
6
  import { filter, map, shareReplay, startWith, tap, withLatestFrom, } from 'rxjs/operators';
7
- import { getLocalizedIndexKey } from '../../../../../../../libs/util/i18n/src';
7
+ import { toLang3 } from '../../../../../../../libs/util/i18n/src';
8
8
  import { PlatformServiceInterface } from '../../../../../../../libs/common/domain/src/lib/platform.service.interface';
9
9
  import { coerce, satisfies, valid } from 'semver';
10
10
  import { TranslateService } from '@ngx-translate/core';
@@ -44,7 +44,7 @@ export class OrganizationsFromMetadataService {
44
44
  }), shareReplay());
45
45
  }
46
46
  get langIndex() {
47
- return getLocalizedIndexKey(this.translateService.currentLang);
47
+ return `lang${toLang3(this.translateService.currentLang)}`;
48
48
  }
49
49
  equalsNormalizedStrings(str1, str2, replaceSpecialChars = true) {
50
50
  if (!str1 || !str2)
@@ -195,4 +195,4 @@ export class OrganizationsFromMetadataService {
195
195
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OrganizationsFromMetadataService, decorators: [{
196
196
  type: Injectable
197
197
  }], ctorParameters: () => [{ type: i1.ElasticsearchService }, { type: i2.SearchApiService }, { type: i2.GroupsApiService }, { type: i3.PlatformServiceInterface }, { type: i4.TranslateService }] });
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pemF0aW9ucy1mcm9tLW1ldGFkYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L29yZ2FuaXphdGlvbnMvb3JnYW5pemF0aW9ucy1mcm9tLW1ldGFkYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGdCQUFnQixHQUNqQixNQUFNLCtDQUErQyxDQUFBO0FBVXRELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3ZELE9BQU8sRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLGVBQWUsRUFFZixjQUFjLEVBQ2QsV0FBVyxFQUNYLHFCQUFxQixHQUV0QixNQUFNLHNEQUFzRCxDQUFBO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDekUsT0FBTyxFQUNMLE1BQU0sRUFDTixHQUFHLEVBQ0gsV0FBVyxFQUNYLFNBQVMsRUFDVCxHQUFHLEVBQ0gsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDOUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEVBQTRFLENBQUE7QUFDckgsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7Ozs7QUFFdEQsTUFBTSxTQUFTLEdBQUcsZ0NBQWdDLENBQUE7QUFxQmxELE1BQU0sT0FBTyxnQ0FBZ0M7SUEwRDNDLFlBQ1Us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QyxDQUFBO1lBQ0osTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxRQUFRLENBQUMsR0FBRyxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7WUFDcEUsT0FBTztnQkFDTCxHQUFHLE1BQU07Z0JBQ1QsaUJBQWlCLEVBQUU7b0JBQ2pCLE9BQU87b0JBQ1AsR0FBRyxpQkFBaUI7b0JBQ3BCLEdBQUcsa0JBQWtCO2lCQUN0QjthQUNGLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQzsrR0F6UlUsZ0NBQWdDO21IQUFoQyxnQ0FBZ0M7OzRGQUFoQyxnQ0FBZ0M7a0JBRDVDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIEdyb3VwQXBpTW9kZWwsXG4gIEdyb3Vwc0FwaVNlcnZpY2UsXG4gIFNlYXJjaEFwaVNlcnZpY2UsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3MvZ240L3NyYydcbmltcG9ydCB7XG4gIEZpZWxkRmlsdGVyQnlWYWx1ZXMsXG4gIEZpZWxkRmlsdGVycyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvc2VhcmNoJ1xuaW1wb3J0IHtcbiAgQ2F0YWxvZ1JlY29yZCxcbiAgT3JnYW5pemF0aW9uLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBPcmdhbml6YXRpb25zU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL29yZ2FuaXphdGlvbnMuc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBFbGFzdGljc2VhcmNoU2VydmljZSB9IGZyb20gJy4uL2VsYXN0aWNzZWFyY2gnXG5pbXBvcnQge1xuICBnZXRBc0FycmF5LFxuICBnZXRBc1VybCxcbiAgbWFwT3JnYW5pemF0aW9uLFxuICBNZXRhZGF0YU9iamVjdCxcbiAgc2VsZWN0RmFsbGJhY2ssXG4gIHNlbGVjdEZpZWxkLFxuICBzZWxlY3RUcmFuc2xhdGVkRmllbGQsXG4gIFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMnXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCB0YWtlTGFzdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBmaWx0ZXIsXG4gIG1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHN0YXJ0V2l0aCxcbiAgdGFwLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBnZXRMb2NhbGl6ZWRJbmRleEtleSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9pMThuL3NyYydcbmltcG9ydCB7IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL3BsYXRmb3JtLnNlcnZpY2UuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgY29lcmNlLCBzYXRpc2ZpZXMsIHZhbGlkIH0gZnJvbSAnc2VtdmVyJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5cbmNvbnN0IElNQUdFX1VSTCA9ICcvZ2VvbmV0d29yay9pbWFnZXMvaGFydmVzdGluZy8nXG5cbnR5cGUgRVNCdWNrZXQgPSB7XG4gIGtleTogc3RyaW5nXG4gIGRvY19jb3VudDogbnVtYmVyXG59XG5pbnRlcmZhY2UgT3JnYW5pemF0aW9uQWdnc0J1Y2tldCBleHRlbmRzIEVTQnVja2V0IHtcbiAgbWFpbDoge1xuICAgIGJ1Y2tldHM6IEVTQnVja2V0W11cbiAgfVxuICBsb2dvVXJsOiB7XG4gICAgYnVja2V0czogRVNCdWNrZXRbXVxuICB9XG59XG5pbnRlcmZhY2UgSW5jb21wbGV0ZU9yZ2FuaXphdGlvbiB7XG4gIG5hbWU6IHN0cmluZ1xuICBlbWFpbHM6IHN0cmluZ1tdXG4gIHJlY29yZENvdW50OiBudW1iZXJcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9yZ2FuaXphdGlvbnNGcm9tTWV0YWRhdGFTZXJ2aWNlXG4gIGltcGxlbWVudHMgT3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2VcbntcbiAgcHJpdmF0ZSBncm91cHMkOiBPYnNlcnZhYmxlPEdyb3VwQXBpTW9kZWxbXT4gPSBvZih0cnVlKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmdyb3Vwc0FwaVNlcnZpY2UuZ2V0R3JvdXBzKCkpLFxuICAgIHNoYXJlUmVwbGF5KClcbiAgKVxuICBwcml2YXRlIG9yZ2FuaXNhdGlvbnNBZ2dzJDogT2JzZXJ2YWJsZTxPcmdhbml6YXRpb25BZ2dzQnVja2V0W10+ID1cbiAgICB0aGlzLnBsYXRmb3JtU2VydmljZS5nZXRBcGlWZXJzaW9uKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodmVyc2lvbikgPT5cbiAgICAgICAgdGhpcy5zZWFyY2hBcGlTZXJ2aWNlLnNlYXJjaChcbiAgICAgICAgICAnYnVja2V0JyxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuZ2V0QWdncmVnYXRpb25TZWFyY2hSZXF1ZXN0KHZlcnNpb24pKVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgZmlsdGVyKChyZXNwb25zZSkgPT4gISFyZXNwb25zZS5hZ2dyZWdhdGlvbnMuY29udGFjdC5vcmcpLFxuICAgICAgdGFwKChyZXNwb25zZSkgPT5cbiAgICAgICAgcmVzcG9uc2UuYWdncmVnYXRpb25zLmNvbnRhY3Qub3JnLmJ1Y2tldHMuZm9yRWFjaChcbiAgICAgICAgICAocikgPT5cbiAgICAgICAgICAgIChyLmRvY19jb3VudCA9XG4gICAgICAgICAgICAgIHJlc3BvbnNlLmFnZ3JlZ2F0aW9ucy5vcmdGb3JSZXNvdXJjZS5idWNrZXRzLmZpbmQoXG4gICAgICAgICAgICAgICAgKG9yZykgPT4gb3JnLmtleSA9PT0gci5rZXlcbiAgICAgICAgICAgICAgKT8uZG9jX2NvdW50IHx8IHIuZG9jX2NvdW50KVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuYWdncmVnYXRpb25zLmNvbnRhY3Qub3JnLmJ1Y2tldHMpLFxuICAgICAgc2hhcmVSZXBsYXkoKVxuICAgIClcbiAgcHJpdmF0ZSBvcmdhbmlzYXRpb25zV2l0aG91dEdyb3VwcyQ6IE9ic2VydmFibGU8SW5jb21wbGV0ZU9yZ2FuaXphdGlvbltdPiA9XG4gICAgdGhpcy5vcmdhbmlzYXRpb25zQWdncyQucGlwZShcbiAgICAgIG1hcCgoYnVja2V0cykgPT5cbiAgICAgICAgYnVja2V0cy5tYXAoKGJ1Y2tldCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGxvZ29VcmwgPSBidWNrZXQubG9nb1VybC5idWNrZXRzPy5bMF0/LmtleVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYW1lOiBidWNrZXQua2V5LFxuICAgICAgICAgICAgZW1haWxzOiBidWNrZXQubWFpbC5idWNrZXRzXG4gICAgICAgICAgICAgIC5tYXAoKGJ1Y2tldCkgPT4gYnVja2V0LmtleSlcbiAgICAgICAgICAgICAgLmZpbHRlcigobWFpbCkgPT4gISFtYWlsKSxcbiAgICAgICAgICAgIHJlY29yZENvdW50OiBidWNrZXQuZG9jX2NvdW50LFxuICAgICAgICAgICAgLi4uKGxvZ29VcmwgJiYgeyBsb2dvVXJsOiBnZXRBc1VybChsb2dvVXJsKSB9KSxcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKVxuICBvcmdhbmlzYXRpb25zQ291bnQkID0gdGhpcy5vcmdhbmlzYXRpb25zQWdncyQucGlwZShcbiAgICBtYXAoKG9yZ2FuaXNhdGlvbnMpID0+IG9yZ2FuaXNhdGlvbnMubGVuZ3RoKVxuICApXG4gIG9yZ2FuaXNhdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5vcmdhbmlzYXRpb25zV2l0aG91dEdyb3VwcyQsXG4gICAgdGhpcy5ncm91cHMkLnBpcGUoc3RhcnRXaXRoKG51bGwpKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtvcmdhbmlzYXRpb25zLCBncm91cHNdKSA9PiB7XG4gICAgICByZXR1cm4gIWdyb3VwcyA/IG9yZ2FuaXNhdGlvbnMgOiB0aGlzLm1hcFdpdGhHcm91cHMob3JnYW5pc2F0aW9ucywgZ3JvdXBzKVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KClcbiAgKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZXNTZXJ2aWNlOiBFbGFzdGljc2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHNlYXJjaEFwaVNlcnZpY2U6IFNlYXJjaEFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBncm91cHNBcGlTZXJ2aWNlOiBHcm91cHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGxhdGZvcm1TZXJ2aWNlOiBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBwcml2YXRlIGdldCBsYW5nSW5kZXgoKSB7XG4gICAgcmV0dXJuIGdldExvY2FsaXplZEluZGV4S2V5KHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZylcbiAgfVxuXG4gIGVxdWFsc05vcm1hbGl6ZWRTdHJpbmdzKFxuICAgIHN0cjE6IHN0cmluZyxcbiAgICBzdHIyOiBzdHJpbmcsXG4gICAgcmVwbGFjZVNwZWNpYWxDaGFycyA9IHRydWVcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCFzdHIxIHx8ICFzdHIyKSByZXR1cm4gZmFsc2VcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5ub3JtYWxpemVTdHJpbmcoc3RyMSwgcmVwbGFjZVNwZWNpYWxDaGFycykgPT09XG4gICAgICB0aGlzLm5vcm1hbGl6ZVN0cmluZyhzdHIyLCByZXBsYWNlU3BlY2lhbENoYXJzKVxuICAgIClcbiAgfVxuXG4gIG5vcm1hbGl6ZVN0cmluZyhzdHI6IHN0cmluZywgcmVwbGFjZVNwZWNpYWxDaGFycyA9IHRydWUpOiBzdHJpbmcge1xuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZShzdHI6IHN0cmluZykge1xuICAgICAgcmV0dXJuIHN0clxuICAgICAgICAubm9ybWFsaXplKCdORkQnKSAvLyBkZWNvbXBvc2UgZ3JhcGhlbWVzIHRvIHJlbW92ZSBhY2NlbnRzIGZyb20gbGV0dGVyc1xuICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpIC8vIHJlbW92ZSBhY2NlbnQgY2hhcmFjdGVyc1xuICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgIH1cbiAgICBpZiAocmVwbGFjZVNwZWNpYWxDaGFycykge1xuICAgICAgcmV0dXJuIG5vcm1hbGl6ZShzdHIpLnJlcGxhY2UoL1teYS16MC05XS9nLCAnJykgLy8gcmVwbGFjZSBhbGwgZXhjZXB0IGxldHRlcnMgJiBudW1iZXJzXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBub3JtYWxpemUoc3RyKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWdncmVnYXRpb25TZWFyY2hSZXF1ZXN0KGduVmVyc2lvbjogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VtVmVyc2lvbiA9IHZhbGlkKGNvZXJjZShnblZlcnNpb24pKVxuICAgIHJldHVybiB0aGlzLmVzU2VydmljZS5nZXRTZWFyY2hSZXF1ZXN0Qm9keSh7XG4gICAgICBjb250YWN0OiB7XG4gICAgICAgIG5lc3RlZDoge1xuICAgICAgICAgIHBhdGg6ICdjb250YWN0Rm9yUmVzb3VyY2UnLFxuICAgICAgICB9LFxuICAgICAgICBhZ2dzOiB7XG4gICAgICAgICAgb3JnOiB7XG4gICAgICAgICAgICB0ZXJtczoge1xuICAgICAgICAgICAgICBmaWVsZDpcbiAgICAgICAgICAgICAgICBzZW1WZXJzaW9uID09PSAnNC4yLjInXG4gICAgICAgICAgICAgICAgICA/ICdjb250YWN0Rm9yUmVzb3VyY2Uub3JnYW5pc2F0aW9uJ1xuICAgICAgICAgICAgICAgICAgOiAnY29udGFjdEZvclJlc291cmNlLm9yZ2FuaXNhdGlvbk9iamVjdC5kZWZhdWx0LmtleXdvcmQnLFxuICAgICAgICAgICAgICBleGNsdWRlOiAnJyxcbiAgICAgICAgICAgICAgc2l6ZTogNTAwMCxcbiAgICAgICAgICAgICAgb3JkZXI6IHsgX2tleTogJ2FzYycgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhZ2dzOiB7XG4gICAgICAgICAgICAgIG1haWw6IHtcbiAgICAgICAgICAgICAgICB0ZXJtczoge1xuICAgICAgICAgICAgICAgICAgc2l6ZTogNTAsXG4gICAgICAgICAgICAgICAgICBleGNsdWRlOiAnJyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkOiBzYXRpc2ZpZXMoc2VtVmVyc2lvbiwgJzQuMi4yIC0gNC4yLjQnKVxuICAgICAgICAgICAgICAgICAgICA/ICdjb250YWN0Rm9yUmVzb3VyY2UuZW1haWwua2V5d29yZCdcbiAgICAgICAgICAgICAgICAgICAgOiAnY29udGFjdEZvclJlc291cmNlLmVtYWlsJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBsb2dvVXJsOiB7XG4gICAgICAgICAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICAgICAgICAgIHNpemU6IDEsXG4gICAgICAgICAgICAgICAgICBleGNsdWRlOiAnJyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkOiAnY29udGFjdEZvclJlc291cmNlLmxvZ28ua2V5d29yZCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBvcmdGb3JSZXNvdXJjZToge1xuICAgICAgICB0ZXJtczoge1xuICAgICAgICAgIHNpemU6IDUwMDAsXG4gICAgICAgICAgZXhjbHVkZTogJycsXG4gICAgICAgICAgZmllbGQ6XG4gICAgICAgICAgICBzZW1WZXJzaW9uID09PSAnNC4yLjInXG4gICAgICAgICAgICAgID8gJ09yZ0ZvclJlc291cmNlJ1xuICAgICAgICAgICAgICA6ICdPcmdGb3JSZXNvdXJjZU9iamVjdC5kZWZhdWx0JyxcbiAgICAgICAgICBvcmRlcjoge1xuICAgICAgICAgICAgX2tleTogJ2FzYycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgbWFwV2l0aEdyb3VwcyhcbiAgICBvcmdhbmlzYXRpb25zOiBJbmNvbXBsZXRlT3JnYW5pemF0aW9uW10sXG4gICAgZ3JvdXBzOiBHcm91cEFwaU1vZGVsW11cbiAgKTogT3JnYW5pemF0aW9uW10ge1xuICAgIHJldHVybiBvcmdhbmlzYXRpb25zLm1hcCgob3JnYW5pc2F0aW9uKSA9PiB7XG4gICAgICBjb25zdCBncm91cCA9XG4gICAgICAgIGdyb3Vwcy5maW5kKChncm91cCkgPT5cbiAgICAgICAgICB0aGlzLmVxdWFsc05vcm1hbGl6ZWRTdHJpbmdzKFxuICAgICAgICAgICAgZ3JvdXAubGFiZWxbJ2VuZyddID8gZ3JvdXAubGFiZWxbJ2VuZyddIDogZ3JvdXAubmFtZSxcbiAgICAgICAgICAgIG9yZ2FuaXNhdGlvbi5uYW1lXG4gICAgICAgICAgKVxuICAgICAgICApID8/XG4gICAgICAgIGdyb3Vwc1xuICAgICAgICAgIC5maWx0ZXIoKGdyb3VwKSA9PiAhIWdyb3VwLmVtYWlsKVxuICAgICAgICAgIC5maW5kKChncm91cCkgPT5cbiAgICAgICAgICAgIG9yZ2FuaXNhdGlvbi5lbWFpbHNcbiAgICAgICAgICAgICAgLm1hcCgobWFpbCkgPT4gdGhpcy5ub3JtYWxpemVTdHJpbmcobWFpbCwgZmFsc2UpKVxuICAgICAgICAgICAgICAuaW5jbHVkZXModGhpcy5ub3JtYWxpemVTdHJpbmcoZ3JvdXAuZW1haWwsIGZhbHNlKSlcbiAgICAgICAgICApXG4gICAgICBjb25zdCB7IGVtYWlscywgLi4uZnVsbE9yZyB9ID0gb3JnYW5pc2F0aW9uXG4gICAgICBpZiAoIWdyb3VwKSByZXR1cm4gZnVsbE9yZ1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZnVsbE9yZyxcbiAgICAgICAgZW1haWw6IGVtYWlsc1swXSxcbiAgICAgICAgLi4uKGdyb3VwLmRlc2NyaXB0aW9uICYmIHsgZGVzY3JpcHRpb246IGdyb3VwLmRlc2NyaXB0aW9uIH0pLFxuICAgICAgICAuLi4oZ3JvdXAubG9nbyAmJiB7IGxvZ29Vcmw6IGdldEFzVXJsKGAke0lNQUdFX1VSTH0ke2dyb3VwLmxvZ299YCkgfSksXG4gICAgICAgIC4uLihncm91cC53ZWJzaXRlICYmIHsgd2Vic2l0ZTogZ2V0QXNVcmwoZ3JvdXAud2Vic2l0ZSkgfSksXG4gICAgICAgIC4uLihncm91cC5lbWFpbCAmJiB7IGVtYWlsOiBncm91cC5lbWFpbCB9KSxcbiAgICAgIH0gYXMgT3JnYW5pemF0aW9uXG4gICAgfSlcbiAgfVxuXG4gIGdldEZpbHRlcnNGb3JPcmdzKG9yZ2FuaXNhdGlvbnM6IE9yZ2FuaXphdGlvbltdKTogT2JzZXJ2YWJsZTxGaWVsZEZpbHRlcnM+IHtcbiAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybVNlcnZpY2UuZ2V0QXBpVmVyc2lvbigpLnBpcGUoXG4gICAgICBtYXAoKGduVmVyc2lvbikgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBnblZlcnNpb24uc3RhcnRzV2l0aCgnNC4yLjInKVxuICAgICAgICAgID8gJ09yZ0ZvclJlc291cmNlJ1xuICAgICAgICAgIDogJ09yZ0ZvclJlc291cmNlT2JqZWN0LmRlZmF1bHQnXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgW2ZpZWxkTmFtZV06IG9yZ2FuaXNhdGlvbnMucmVkdWNlKFxuICAgICAgICAgICAgKHByZXYsIGN1cnIpID0+ICh7IC4uLnByZXYsIFtjdXJyLm5hbWVdOiB0cnVlIH0pLFxuICAgICAgICAgICAge31cbiAgICAgICAgICApLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldE9yZ3NGcm9tRmlsdGVycyhmaWx0ZXJzOiBGaWVsZEZpbHRlcnMpOiBPYnNlcnZhYmxlPE9yZ2FuaXphdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMucGxhdGZvcm1TZXJ2aWNlLmdldEFwaVZlcnNpb24oKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChnblZlcnNpb24pID0+IHtcbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gZ25WZXJzaW9uLnN0YXJ0c1dpdGgoJzQuMi4yJylcbiAgICAgICAgICA/ICdPcmdGb3JSZXNvdXJjZSdcbiAgICAgICAgICA6ICdPcmdGb3JSZXNvdXJjZU9iamVjdC5kZWZhdWx0J1xuXG4gICAgICAgIGlmICghKGZpZWxkTmFtZSBpbiBmaWx0ZXJzKSkgcmV0dXJuIG9mKFtdKVxuXG4gICAgICAgIHJldHVybiB0aGlzLm9yZ2FuaXNhdGlvbnMkLnBpcGUoXG4gICAgICAgICAgbWFwKChvcmdzOiBJbmNvbXBsZXRlT3JnYW5pemF0aW9uW10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9yZ05hbWVzID0gT2JqZWN0LmtleXMoXG4gICAgICAgICAgICAgIGZpbHRlcnNbZmllbGROYW1lXSBhcyBGaWVsZEZpbHRlckJ5VmFsdWVzXG4gICAgICAgICAgICApXG4gICAgICAgICAgICByZXR1cm4gb3JnTmFtZXMubWFwKChuYW1lKSA9PlxuICAgICAgICAgICAgICBvcmdzLmZpbmQoXG4gICAgICAgICAgICAgICAgKG9yZzogT3JnYW5pemF0aW9uIHwgSW5jb21wbGV0ZU9yZ2FuaXphdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgIG9yZy5uYW1lID09PSBuYW1lXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGFkZE9yZ2FuaXphdGlvblRvUmVjb3JkRnJvbVNvdXJjZShcbiAgICBzb3VyY2U6IE1ldGFkYXRhT2JqZWN0LFxuICAgIHJlY29yZDogQ2F0YWxvZ1JlY29yZFxuICApOiBPYnNlcnZhYmxlPENhdGFsb2dSZWNvcmQ+IHtcbiAgICBjb25zdCBjb250YWN0czogU291cmNlV2l0aFVua25vd25Qcm9wc1tdID0gZ2V0QXNBcnJheShcbiAgICAgIHNlbGVjdEZhbGxiYWNrKFxuICAgICAgICBzZWxlY3RUcmFuc2xhdGVkRmllbGQoc291cmNlLCAnY29udGFjdE9iamVjdCcsIHRoaXMubGFuZ0luZGV4KSxcbiAgICAgICAgc2VsZWN0RmllbGQoc291cmNlLCAnY29udGFjdCcpXG4gICAgICApXG4gICAgKVxuICAgIGNvbnN0IHJlc291cmNlQ29udGFjdHM6IFNvdXJjZVdpdGhVbmtub3duUHJvcHNbXSA9IGdldEFzQXJyYXkoXG4gICAgICBzZWxlY3RGYWxsYmFjayhcbiAgICAgICAgc2VsZWN0VHJhbnNsYXRlZEZpZWxkKFxuICAgICAgICAgIHNvdXJjZSxcbiAgICAgICAgICAnY29udGFjdEZvclJlc291cmNlT2JqZWN0JyxcbiAgICAgICAgICB0aGlzLmxhbmdJbmRleFxuICAgICAgICApLFxuICAgICAgICBzZWxlY3RGaWVsZChzb3VyY2UsICdjb250YWN0Rm9yUmVzb3VyY2UnKVxuICAgICAgKVxuICAgIClcbiAgICBjb25zdCBhbGxDb250YWN0T3JncyA9IHJlc291cmNlQ29udGFjdHNcbiAgICAgIC5jb25jYXQoY29udGFjdHMpXG4gICAgICAubWFwKChjb250YWN0KSA9PiBtYXBPcmdhbml6YXRpb24oY29udGFjdCwgdGhpcy5sYW5nSW5kZXgpKVxuXG4gICAgaWYgKCFhbGxDb250YWN0T3Jncy5sZW5ndGgpIHJldHVybiBvZihyZWNvcmQpXG5cbiAgICBjb25zdCBvd25lck9yZ2FuaXphdGlvbiA9IGFsbENvbnRhY3RPcmdzWzBdXG5cbiAgICAvLyByZWFkIHRoZSBvd25lciBncm91cCBhcyB3ZWxsIHRvIGhhdmUgYSBmYWxsYmFjayBsb2dvXG4gICAgY29uc3QgZ3JvdXBJZCA9IHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2dyb3VwT3duZXInKVxuICAgIGNvbnN0IGdyb3VwJCA9IHRoaXMuZ3JvdXBzJC5waXBlKFxuICAgICAgbWFwKChncm91cHMpID0+XG4gICAgICAgIGdyb3Vwcy5maW5kKChncm91cCkgPT4ge1xuICAgICAgICAgIHJldHVybiBncm91cC5pZCA9PT0gTnVtYmVyKGdyb3VwSWQpXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKVxuXG4gICAgcmV0dXJuIHRoaXMub3JnYW5pc2F0aW9ucyQucGlwZShcbiAgICAgIHRha2VMYXN0KDEpLFxuICAgICAgd2l0aExhdGVzdEZyb20oZ3JvdXAkKSxcbiAgICAgIG1hcCgoW29yZ2FuaXNhdGlvbnMsIGdyb3VwXTogW09yZ2FuaXphdGlvbltdLCBHcm91cEFwaU1vZGVsXSkgPT4ge1xuICAgICAgICBjb25zdCByZWNvcmRPcmdhbmlzYXRpb24gPSBvcmdhbmlzYXRpb25zLmZpbHRlcihcbiAgICAgICAgICAob3JnKSA9PiBvcmcubmFtZSA9PT0gb3duZXJPcmdhbml6YXRpb24ubmFtZVxuICAgICAgICApWzBdXG4gICAgICAgIGNvbnN0IGxvZ29VcmwgPSBncm91cD8ubG9nbyAmJiBnZXRBc1VybChgJHtJTUFHRV9VUkx9JHtncm91cC5sb2dvfWApXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucmVjb3JkLFxuICAgICAgICAgIG93bmVyT3JnYW5pemF0aW9uOiB7XG4gICAgICAgICAgICBsb2dvVXJsLFxuICAgICAgICAgICAgLi4ub3duZXJPcmdhbml6YXRpb24sXG4gICAgICAgICAgICAuLi5yZWNvcmRPcmdhbmlzYXRpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiJdfQ==
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pemF0aW9ucy1mcm9tLW1ldGFkYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L29yZ2FuaXphdGlvbnMvb3JnYW5pemF0aW9ucy1mcm9tLW1ldGFkYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGdCQUFnQixHQUNqQixNQUFNLCtDQUErQyxDQUFBO0FBVXRELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3ZELE9BQU8sRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLGVBQWUsRUFFZixjQUFjLEVBQ2QsV0FBVyxFQUNYLHFCQUFxQixHQUV0QixNQUFNLHNEQUFzRCxDQUFBO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDekUsT0FBTyxFQUNMLE1BQU0sRUFDTixHQUFHLEVBQ0gsV0FBVyxFQUNYLFNBQVMsRUFDVCxHQUFHLEVBQ0gsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQ2pFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRFQUE0RSxDQUFBO0FBQ3JILE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTs7Ozs7O0FBRXRELE1BQU0sU0FBUyxHQUFHLGdDQUFnQyxDQUFBO0FBcUJsRCxNQUFNLE9BQU8sZ0NBQWdDO0lBMEQzQyxZQUNVLFNB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QUMsQ0FBQyxDQUFBO1lBQ0osTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxRQUFRLENBQUMsR0FBRyxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7WUFDcEUsT0FBTztnQkFDTCxHQUFHLE1BQU07Z0JBQ1QsaUJBQWlCLEVBQUU7b0JBQ2pCLE9BQU87b0JBQ1AsR0FBRyxpQkFBaUI7b0JBQ3BCLEdBQUcsa0JBQWtCO2lCQUN0QjthQUNGLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQzsrR0F6UlUsZ0NBQWdDO21IQUFoQyxnQ0FBZ0M7OzRGQUFoQyxnQ0FBZ0M7a0JBRDVDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIEdyb3VwQXBpTW9kZWwsXG4gIEdyb3Vwc0FwaVNlcnZpY2UsXG4gIFNlYXJjaEFwaVNlcnZpY2UsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3MvZ240L3NyYydcbmltcG9ydCB7XG4gIEZpZWxkRmlsdGVyQnlWYWx1ZXMsXG4gIEZpZWxkRmlsdGVycyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvc2VhcmNoJ1xuaW1wb3J0IHtcbiAgQ2F0YWxvZ1JlY29yZCxcbiAgT3JnYW5pemF0aW9uLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBPcmdhbml6YXRpb25zU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL29yZ2FuaXphdGlvbnMuc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBFbGFzdGljc2VhcmNoU2VydmljZSB9IGZyb20gJy4uL2VsYXN0aWNzZWFyY2gnXG5pbXBvcnQge1xuICBnZXRBc0FycmF5LFxuICBnZXRBc1VybCxcbiAgbWFwT3JnYW5pemF0aW9uLFxuICBNZXRhZGF0YU9iamVjdCxcbiAgc2VsZWN0RmFsbGJhY2ssXG4gIHNlbGVjdEZpZWxkLFxuICBzZWxlY3RUcmFuc2xhdGVkRmllbGQsXG4gIFNvdXJjZVdpdGhVbmtub3duUHJvcHMsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMnXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCB0YWtlTGFzdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBmaWx0ZXIsXG4gIG1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHN0YXJ0V2l0aCxcbiAgdGFwLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyB0b0xhbmczIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjJ1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvcGxhdGZvcm0uc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBjb2VyY2UsIHNhdGlzZmllcywgdmFsaWQgfSBmcm9tICdzZW12ZXInXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuY29uc3QgSU1BR0VfVVJMID0gJy9nZW9uZXR3b3JrL2ltYWdlcy9oYXJ2ZXN0aW5nLydcblxudHlwZSBFU0J1Y2tldCA9IHtcbiAga2V5OiBzdHJpbmdcbiAgZG9jX2NvdW50OiBudW1iZXJcbn1cbmludGVyZmFjZSBPcmdhbml6YXRpb25BZ2dzQnVja2V0IGV4dGVuZHMgRVNCdWNrZXQge1xuICBtYWlsOiB7XG4gICAgYnVja2V0czogRVNCdWNrZXRbXVxuICB9XG4gIGxvZ29Vcmw6IHtcbiAgICBidWNrZXRzOiBFU0J1Y2tldFtdXG4gIH1cbn1cbmludGVyZmFjZSBJbmNvbXBsZXRlT3JnYW5pemF0aW9uIHtcbiAgbmFtZTogc3RyaW5nXG4gIGVtYWlsczogc3RyaW5nW11cbiAgcmVjb3JkQ291bnQ6IG51bWJlclxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT3JnYW5pemF0aW9uc0Zyb21NZXRhZGF0YVNlcnZpY2VcbiAgaW1wbGVtZW50cyBPcmdhbml6YXRpb25zU2VydmljZUludGVyZmFjZVxue1xuICBwcml2YXRlIGdyb3VwcyQ6IE9ic2VydmFibGU8R3JvdXBBcGlNb2RlbFtdPiA9IG9mKHRydWUpLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuZ3JvdXBzQXBpU2VydmljZS5nZXRHcm91cHMoKSksXG4gICAgc2hhcmVSZXBsYXkoKVxuICApXG4gIHByaXZhdGUgb3JnYW5pc2F0aW9uc0FnZ3MkOiBPYnNlcnZhYmxlPE9yZ2FuaXphdGlvbkFnZ3NCdWNrZXRbXT4gPVxuICAgIHRoaXMucGxhdGZvcm1TZXJ2aWNlLmdldEFwaVZlcnNpb24oKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh2ZXJzaW9uKSA9PlxuICAgICAgICB0aGlzLnNlYXJjaEFwaVNlcnZpY2Uuc2VhcmNoKFxuICAgICAgICAgICdidWNrZXQnLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5nZXRBZ2dyZWdhdGlvblNlYXJjaFJlcXVlc3QodmVyc2lvbikpXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICBmaWx0ZXIoKHJlc3BvbnNlKSA9PiAhIXJlc3BvbnNlLmFnZ3JlZ2F0aW9ucy5jb250YWN0Lm9yZyksXG4gICAgICB0YXAoKHJlc3BvbnNlKSA9PlxuICAgICAgICByZXNwb25zZS5hZ2dyZWdhdGlvbnMuY29udGFjdC5vcmcuYnVja2V0cy5mb3JFYWNoKFxuICAgICAgICAgIChyKSA9PlxuICAgICAgICAgICAgKHIuZG9jX2NvdW50ID1cbiAgICAgICAgICAgICAgcmVzcG9uc2UuYWdncmVnYXRpb25zLm9yZ0ZvclJlc291cmNlLmJ1Y2tldHMuZmluZChcbiAgICAgICAgICAgICAgICAob3JnKSA9PiBvcmcua2V5ID09PSByLmtleVxuICAgICAgICAgICAgICApPy5kb2NfY291bnQgfHwgci5kb2NfY291bnQpXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZS5hZ2dyZWdhdGlvbnMuY29udGFjdC5vcmcuYnVja2V0cyksXG4gICAgICBzaGFyZVJlcGxheSgpXG4gICAgKVxuICBwcml2YXRlIG9yZ2FuaXNhdGlvbnNXaXRob3V0R3JvdXBzJDogT2JzZXJ2YWJsZTxJbmNvbXBsZXRlT3JnYW5pemF0aW9uW10+ID1cbiAgICB0aGlzLm9yZ2FuaXNhdGlvbnNBZ2dzJC5waXBlKFxuICAgICAgbWFwKChidWNrZXRzKSA9PlxuICAgICAgICBidWNrZXRzLm1hcCgoYnVja2V0KSA9PiB7XG4gICAgICAgICAgY29uc3QgbG9nb1VybCA9IGJ1Y2tldC5sb2dvVXJsLmJ1Y2tldHM/LlswXT8ua2V5XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IGJ1Y2tldC5rZXksXG4gICAgICAgICAgICBlbWFpbHM6IGJ1Y2tldC5tYWlsLmJ1Y2tldHNcbiAgICAgICAgICAgICAgLm1hcCgoYnVja2V0KSA9PiBidWNrZXQua2V5KVxuICAgICAgICAgICAgICAuZmlsdGVyKChtYWlsKSA9PiAhIW1haWwpLFxuICAgICAgICAgICAgcmVjb3JkQ291bnQ6IGJ1Y2tldC5kb2NfY291bnQsXG4gICAgICAgICAgICAuLi4obG9nb1VybCAmJiB7IGxvZ29Vcmw6IGdldEFzVXJsKGxvZ29VcmwpIH0pLFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApXG4gIG9yZ2FuaXNhdGlvbnNDb3VudCQgPSB0aGlzLm9yZ2FuaXNhdGlvbnNBZ2dzJC5waXBlKFxuICAgIG1hcCgob3JnYW5pc2F0aW9ucykgPT4gb3JnYW5pc2F0aW9ucy5sZW5ndGgpXG4gIClcbiAgb3JnYW5pc2F0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm9yZ2FuaXNhdGlvbnNXaXRob3V0R3JvdXBzJCxcbiAgICB0aGlzLmdyb3VwcyQucGlwZShzdGFydFdpdGgobnVsbCkpLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW29yZ2FuaXNhdGlvbnMsIGdyb3Vwc10pID0+IHtcbiAgICAgIHJldHVybiAhZ3JvdXBzID8gb3JnYW5pc2F0aW9ucyA6IHRoaXMubWFwV2l0aEdyb3VwcyhvcmdhbmlzYXRpb25zLCBncm91cHMpXG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoKVxuICApXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlc1NlcnZpY2U6IEVsYXN0aWNzZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VhcmNoQXBpU2VydmljZTogU2VhcmNoQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGdyb3Vwc0FwaVNlcnZpY2U6IEdyb3Vwc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybVNlcnZpY2U6IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHByaXZhdGUgZ2V0IGxhbmdJbmRleCgpIHtcbiAgICByZXR1cm4gYGxhbmcke3RvTGFuZzModGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nKX1gXG4gIH1cblxuICBlcXVhbHNOb3JtYWxpemVkU3RyaW5ncyhcbiAgICBzdHIxOiBzdHJpbmcsXG4gICAgc3RyMjogc3RyaW5nLFxuICAgIHJlcGxhY2VTcGVjaWFsQ2hhcnMgPSB0cnVlXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICghc3RyMSB8fCAhc3RyMikgcmV0dXJuIGZhbHNlXG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMubm9ybWFsaXplU3RyaW5nKHN0cjEsIHJlcGxhY2VTcGVjaWFsQ2hhcnMpID09PVxuICAgICAgdGhpcy5ub3JtYWxpemVTdHJpbmcoc3RyMiwgcmVwbGFjZVNwZWNpYWxDaGFycylcbiAgICApXG4gIH1cblxuICBub3JtYWxpemVTdHJpbmcoc3RyOiBzdHJpbmcsIHJlcGxhY2VTcGVjaWFsQ2hhcnMgPSB0cnVlKTogc3RyaW5nIHtcbiAgICBmdW5jdGlvbiBub3JtYWxpemUoc3RyOiBzdHJpbmcpIHtcbiAgICAgIHJldHVybiBzdHJcbiAgICAgICAgLm5vcm1hbGl6ZSgnTkZEJykgLy8gZGVjb21wb3NlIGdyYXBoZW1lcyB0byByZW1vdmUgYWNjZW50cyBmcm9tIGxldHRlcnNcbiAgICAgICAgLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKSAvLyByZW1vdmUgYWNjZW50IGNoYXJhY3RlcnNcbiAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICB9XG4gICAgaWYgKHJlcGxhY2VTcGVjaWFsQ2hhcnMpIHtcbiAgICAgIHJldHVybiBub3JtYWxpemUoc3RyKS5yZXBsYWNlKC9bXmEtejAtOV0vZywgJycpIC8vIHJlcGxhY2UgYWxsIGV4Y2VwdCBsZXR0ZXJzICYgbnVtYmVyc1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbm9ybWFsaXplKHN0cilcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEFnZ3JlZ2F0aW9uU2VhcmNoUmVxdWVzdChnblZlcnNpb246IHN0cmluZykge1xuICAgIGNvbnN0IHNlbVZlcnNpb24gPSB2YWxpZChjb2VyY2UoZ25WZXJzaW9uKSlcbiAgICByZXR1cm4gdGhpcy5lc1NlcnZpY2UuZ2V0U2VhcmNoUmVxdWVzdEJvZHkoe1xuICAgICAgY29udGFjdDoge1xuICAgICAgICBuZXN0ZWQ6IHtcbiAgICAgICAgICBwYXRoOiAnY29udGFjdEZvclJlc291cmNlJyxcbiAgICAgICAgfSxcbiAgICAgICAgYWdnczoge1xuICAgICAgICAgIG9yZzoge1xuICAgICAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICAgICAgZmllbGQ6XG4gICAgICAgICAgICAgICAgc2VtVmVyc2lvbiA9PT0gJzQuMi4yJ1xuICAgICAgICAgICAgICAgICAgPyAnY29udGFjdEZvclJlc291cmNlLm9yZ2FuaXNhdGlvbidcbiAgICAgICAgICAgICAgICAgIDogJ2NvbnRhY3RGb3JSZXNvdXJjZS5vcmdhbmlzYXRpb25PYmplY3QuZGVmYXVsdC5rZXl3b3JkJyxcbiAgICAgICAgICAgICAgZXhjbHVkZTogJycsXG4gICAgICAgICAgICAgIHNpemU6IDUwMDAsXG4gICAgICAgICAgICAgIG9yZGVyOiB7IF9rZXk6ICdhc2MnIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWdnczoge1xuICAgICAgICAgICAgICBtYWlsOiB7XG4gICAgICAgICAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICAgICAgICAgIHNpemU6IDUwLFxuICAgICAgICAgICAgICAgICAgZXhjbHVkZTogJycsXG4gICAgICAgICAgICAgICAgICBmaWVsZDogc2F0aXNmaWVzKHNlbVZlcnNpb24sICc0LjIuMiAtIDQuMi40JylcbiAgICAgICAgICAgICAgICAgICAgPyAnY29udGFjdEZvclJlc291cmNlLmVtYWlsLmtleXdvcmQnXG4gICAgICAgICAgICAgICAgICAgIDogJ2NvbnRhY3RGb3JSZXNvdXJjZS5lbWFpbCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgbG9nb1VybDoge1xuICAgICAgICAgICAgICAgIHRlcm1zOiB7XG4gICAgICAgICAgICAgICAgICBzaXplOiAxLFxuICAgICAgICAgICAgICAgICAgZXhjbHVkZTogJycsXG4gICAgICAgICAgICAgICAgICBmaWVsZDogJ2NvbnRhY3RGb3JSZXNvdXJjZS5sb2dvLmtleXdvcmQnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgb3JnRm9yUmVzb3VyY2U6IHtcbiAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICBzaXplOiA1MDAwLFxuICAgICAgICAgIGV4Y2x1ZGU6ICcnLFxuICAgICAgICAgIGZpZWxkOlxuICAgICAgICAgICAgc2VtVmVyc2lvbiA9PT0gJzQuMi4yJ1xuICAgICAgICAgICAgICA/ICdPcmdGb3JSZXNvdXJjZSdcbiAgICAgICAgICAgICAgOiAnT3JnRm9yUmVzb3VyY2VPYmplY3QuZGVmYXVsdCcsXG4gICAgICAgICAgb3JkZXI6IHtcbiAgICAgICAgICAgIF9rZXk6ICdhc2MnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIG1hcFdpdGhHcm91cHMoXG4gICAgb3JnYW5pc2F0aW9uczogSW5jb21wbGV0ZU9yZ2FuaXphdGlvbltdLFxuICAgIGdyb3VwczogR3JvdXBBcGlNb2RlbFtdXG4gICk6IE9yZ2FuaXphdGlvbltdIHtcbiAgICByZXR1cm4gb3JnYW5pc2F0aW9ucy5tYXAoKG9yZ2FuaXNhdGlvbikgPT4ge1xuICAgICAgY29uc3QgZ3JvdXAgPVxuICAgICAgICBncm91cHMuZmluZCgoZ3JvdXApID0+XG4gICAgICAgICAgdGhpcy5lcXVhbHNOb3JtYWxpemVkU3RyaW5ncyhcbiAgICAgICAgICAgIGdyb3VwLmxhYmVsWydlbmcnXSA/IGdyb3VwLmxhYmVsWydlbmcnXSA6IGdyb3VwLm5hbWUsXG4gICAgICAgICAgICBvcmdhbmlzYXRpb24ubmFtZVxuICAgICAgICAgIClcbiAgICAgICAgKSA/P1xuICAgICAgICBncm91cHNcbiAgICAgICAgICAuZmlsdGVyKChncm91cCkgPT4gISFncm91cC5lbWFpbClcbiAgICAgICAgICAuZmluZCgoZ3JvdXApID0+XG4gICAgICAgICAgICBvcmdhbmlzYXRpb24uZW1haWxzXG4gICAgICAgICAgICAgIC5tYXAoKG1haWwpID0+IHRoaXMubm9ybWFsaXplU3RyaW5nKG1haWwsIGZhbHNlKSlcbiAgICAgICAgICAgICAgLmluY2x1ZGVzKHRoaXMubm9ybWFsaXplU3RyaW5nKGdyb3VwLmVtYWlsLCBmYWxzZSkpXG4gICAgICAgICAgKVxuICAgICAgY29uc3QgeyBlbWFpbHMsIC4uLmZ1bGxPcmcgfSA9IG9yZ2FuaXNhdGlvblxuICAgICAgaWYgKCFncm91cCkgcmV0dXJuIGZ1bGxPcmdcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmZ1bGxPcmcsXG4gICAgICAgIGVtYWlsOiBlbWFpbHNbMF0sXG4gICAgICAgIC4uLihncm91cC5kZXNjcmlwdGlvbiAmJiB7IGRlc2NyaXB0aW9uOiBncm91cC5kZXNjcmlwdGlvbiB9KSxcbiAgICAgICAgLi4uKGdyb3VwLmxvZ28gJiYgeyBsb2dvVXJsOiBnZXRBc1VybChgJHtJTUFHRV9VUkx9JHtncm91cC5sb2dvfWApIH0pLFxuICAgICAgICAuLi4oZ3JvdXAud2Vic2l0ZSAmJiB7IHdlYnNpdGU6IGdldEFzVXJsKGdyb3VwLndlYnNpdGUpIH0pLFxuICAgICAgICAuLi4oZ3JvdXAuZW1haWwgJiYgeyBlbWFpbDogZ3JvdXAuZW1haWwgfSksXG4gICAgICB9IGFzIE9yZ2FuaXphdGlvblxuICAgIH0pXG4gIH1cblxuICBnZXRGaWx0ZXJzRm9yT3JncyhvcmdhbmlzYXRpb25zOiBPcmdhbml6YXRpb25bXSk6IE9ic2VydmFibGU8RmllbGRGaWx0ZXJzPiB7XG4gICAgcmV0dXJuIHRoaXMucGxhdGZvcm1TZXJ2aWNlLmdldEFwaVZlcnNpb24oKS5waXBlKFxuICAgICAgbWFwKChnblZlcnNpb24pID0+IHtcbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gZ25WZXJzaW9uLnN0YXJ0c1dpdGgoJzQuMi4yJylcbiAgICAgICAgICA/ICdPcmdGb3JSZXNvdXJjZSdcbiAgICAgICAgICA6ICdPcmdGb3JSZXNvdXJjZU9iamVjdC5kZWZhdWx0J1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIFtmaWVsZE5hbWVdOiBvcmdhbmlzYXRpb25zLnJlZHVjZShcbiAgICAgICAgICAgIChwcmV2LCBjdXJyKSA9PiAoeyAuLi5wcmV2LCBbY3Vyci5uYW1lXTogdHJ1ZSB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKSxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRPcmdzRnJvbUZpbHRlcnMoZmlsdGVyczogRmllbGRGaWx0ZXJzKTogT2JzZXJ2YWJsZTxPcmdhbml6YXRpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLnBsYXRmb3JtU2VydmljZS5nZXRBcGlWZXJzaW9uKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoZ25WZXJzaW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGduVmVyc2lvbi5zdGFydHNXaXRoKCc0LjIuMicpXG4gICAgICAgICAgPyAnT3JnRm9yUmVzb3VyY2UnXG4gICAgICAgICAgOiAnT3JnRm9yUmVzb3VyY2VPYmplY3QuZGVmYXVsdCdcblxuICAgICAgICBpZiAoIShmaWVsZE5hbWUgaW4gZmlsdGVycykpIHJldHVybiBvZihbXSlcblxuICAgICAgICByZXR1cm4gdGhpcy5vcmdhbmlzYXRpb25zJC5waXBlKFxuICAgICAgICAgIG1hcCgob3JnczogSW5jb21wbGV0ZU9yZ2FuaXphdGlvbltdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvcmdOYW1lcyA9IE9iamVjdC5rZXlzKFxuICAgICAgICAgICAgICBmaWx0ZXJzW2ZpZWxkTmFtZV0gYXMgRmllbGRGaWx0ZXJCeVZhbHVlc1xuICAgICAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuIG9yZ05hbWVzLm1hcCgobmFtZSkgPT5cbiAgICAgICAgICAgICAgb3Jncy5maW5kKFxuICAgICAgICAgICAgICAgIChvcmc6IE9yZ2FuaXphdGlvbiB8IEluY29tcGxldGVPcmdhbml6YXRpb24pID0+XG4gICAgICAgICAgICAgICAgICBvcmcubmFtZSA9PT0gbmFtZVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBhZGRPcmdhbml6YXRpb25Ub1JlY29yZEZyb21Tb3VyY2UoXG4gICAgc291cmNlOiBNZXRhZGF0YU9iamVjdCxcbiAgICByZWNvcmQ6IENhdGFsb2dSZWNvcmRcbiAgKTogT2JzZXJ2YWJsZTxDYXRhbG9nUmVjb3JkPiB7XG4gICAgY29uc3QgY29udGFjdHM6IFNvdXJjZVdpdGhVbmtub3duUHJvcHNbXSA9IGdldEFzQXJyYXkoXG4gICAgICBzZWxlY3RGYWxsYmFjayhcbiAgICAgICAgc2VsZWN0VHJhbnNsYXRlZEZpZWxkKHNvdXJjZSwgJ2NvbnRhY3RPYmplY3QnLCB0aGlzLmxhbmdJbmRleCksXG4gICAgICAgIHNlbGVjdEZpZWxkKHNvdXJjZSwgJ2NvbnRhY3QnKVxuICAgICAgKVxuICAgIClcbiAgICBjb25zdCByZXNvdXJjZUNvbnRhY3RzOiBTb3VyY2VXaXRoVW5rbm93blByb3BzW10gPSBnZXRBc0FycmF5KFxuICAgICAgc2VsZWN0RmFsbGJhY2soXG4gICAgICAgIHNlbGVjdFRyYW5zbGF0ZWRGaWVsZChcbiAgICAgICAgICBzb3VyY2UsXG4gICAgICAgICAgJ2NvbnRhY3RGb3JSZXNvdXJjZU9iamVjdCcsXG4gICAgICAgICAgdGhpcy5sYW5nSW5kZXhcbiAgICAgICAgKSxcbiAgICAgICAgc2VsZWN0RmllbGQoc291cmNlLCAnY29udGFjdEZvclJlc291cmNlJylcbiAgICAgIClcbiAgICApXG4gICAgY29uc3QgYWxsQ29udGFjdE9yZ3MgPSByZXNvdXJjZUNvbnRhY3RzXG4gICAgICAuY29uY2F0KGNvbnRhY3RzKVxuICAgICAgLm1hcCgoY29udGFjdCkgPT4gbWFwT3JnYW5pemF0aW9uKGNvbnRhY3QsIHRoaXMubGFuZ0luZGV4KSlcblxuICAgIGlmICghYWxsQ29udGFjdE9yZ3MubGVuZ3RoKSByZXR1cm4gb2YocmVjb3JkKVxuXG4gICAgY29uc3Qgb3duZXJPcmdhbml6YXRpb24gPSBhbGxDb250YWN0T3Jnc1swXVxuXG4gICAgLy8gcmVhZCB0aGUgb3duZXIgZ3JvdXAgYXMgd2VsbCB0byBoYXZlIGEgZmFsbGJhY2sgbG9nb1xuICAgIGNvbnN0IGdyb3VwSWQgPSBzZWxlY3RGaWVsZChzb3VyY2UsICdncm91cE93bmVyJylcbiAgICBjb25zdCBncm91cCQgPSB0aGlzLmdyb3VwcyQucGlwZShcbiAgICAgIG1hcCgoZ3JvdXBzKSA9PlxuICAgICAgICBncm91cHMuZmluZCgoZ3JvdXApID0+IHtcbiAgICAgICAgICByZXR1cm4gZ3JvdXAuaWQgPT09IE51bWJlcihncm91cElkKVxuICAgICAgICB9KVxuICAgICAgKVxuICAgIClcblxuICAgIHJldHVybiB0aGlzLm9yZ2FuaXNhdGlvbnMkLnBpcGUoXG4gICAgICB0YWtlTGFzdCgxKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKGdyb3VwJCksXG4gICAgICBtYXAoKFtvcmdhbmlzYXRpb25zLCBncm91cF06IFtPcmdhbml6YXRpb25bXSwgR3JvdXBBcGlNb2RlbF0pID0+IHtcbiAgICAgICAgY29uc3QgcmVjb3JkT3JnYW5pc2F0aW9uID0gb3JnYW5pc2F0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgKG9yZykgPT4gb3JnLm5hbWUgPT09IG93bmVyT3JnYW5pemF0aW9uLm5hbWVcbiAgICAgICAgKVswXVxuICAgICAgICBjb25zdCBsb2dvVXJsID0gZ3JvdXA/LmxvZ28gJiYgZ2V0QXNVcmwoYCR7SU1BR0VfVVJMfSR7Z3JvdXAubG9nb31gKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnJlY29yZCxcbiAgICAgICAgICBvd25lck9yZ2FuaXphdGlvbjoge1xuICAgICAgICAgICAgbG9nb1VybCxcbiAgICAgICAgICAgIC4uLm93bmVyT3JnYW5pemF0aW9uLFxuICAgICAgICAgICAgLi4ucmVjb3JkT3JnYW5pc2F0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG4iXX0=
@@ -7,7 +7,7 @@ import { HttpClient, HttpEventType } from '@angular/common/http';
7
7
  import { noDuplicateFileName } from '../../../../../../../libs/util/shared/src';
8
8
  import { combineLatest, forkJoin, of, switchMap, throwError, } from 'rxjs';
9
9
  import { TranslateService } from '@ngx-translate/core';
10
- import { getLang3FromLang2 } from '../../../../../../../libs/util/i18n/src';
10
+ import { toLang3 } from '../../../../../../../libs/util/i18n/src';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "../../../../../../../libs/data-access/gn4/src";
13
13
  import * as i2 from "./gn4-platform.mapper";
@@ -16,7 +16,7 @@ import * as i4 from "@angular/common/http";
16
16
  const minApiVersion = '4.2.2';
17
17
  export class Gn4PlatformService {
18
18
  get lang3() {
19
- return getLang3FromLang2(this.translateService.currentLang);
19
+ return toLang3(this.translateService.currentLang);
20
20
  }
21
21
  constructor(siteApiService, meApi, usersApi, mapper, toolsApiService, registriesApiService, translateService, userfeedbackApiService, httpClient, recordsApiService) {
22
22
  this.siteApiService = siteApiService;
@@ -253,4 +253,4 @@ export class Gn4PlatformService {
253
253
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Gn4PlatformService, decorators: [{
254
254
  type: Injectable
255
255
  }], 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 }] });
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ240LXBsYXRmb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L3BsYXRmb3JtL2duNC1wbGF0Zm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ04sR0FBRyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUNMLFlBQVksRUFDWixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxlQUFlLEVBQ2Ysc0JBQXNCLEVBQ3RCLGVBQWUsR0FDaEIsTUFBTSwrQ0FBK0MsQ0FBQTtBQVl0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFNaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFDL0UsT0FBTyxFQUNMLGFBQWEsRUFDYixRQUFRLEVBRVIsRUFBRSxFQUNGLFNBQVMsRUFDVCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTs7Ozs7O0FBRTNFLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQTtBQUc3QixNQUFNLE9BQU8sa0JBQWtCO0lBK0M3QixJQUFZLEtBQUs7UUFDZixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxn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QVEsQ0FBQyxDQUFDLEVBQ3BFLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3RCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7WUFFMUIsSUFBSSxlQUFlLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDckQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ2xFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ2IsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7b0JBQ2hFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUE7Z0JBQzlDLENBQUMsQ0FBQyxDQUNILENBQUE7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFBO2dCQUM5RCxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtnQkFDckUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUM5QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7K0dBellVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgbWVyZ2VNYXAsXG4gIHNoYXJlUmVwbGF5LFxuICB0YXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHtcbiAgTWVBcGlTZXJ2aWNlLFxuICBSZWNvcmRzQXBpU2VydmljZSxcbiAgUmVnaXN0cmllc0FwaVNlcnZpY2UsXG4gIFNpdGVBcGlTZXJ2aWNlLFxuICBUb29sc0FwaVNlcnZpY2UsXG4gIFVzZXJmZWVkYmFja0FwaVNlcnZpY2UsXG4gIFVzZXJzQXBpU2VydmljZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9nbjQvc3JjJ1xuaW1wb3J0IHtcbiAgUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlLFxuICBVcGxvYWRFdmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvcGxhdGZvcm0uc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC91c2VyL3VzZXIubW9kZWwnXG5pbXBvcnQge1xuICBDYXRhbG9nUmVjb3JkLFxuICBLZXl3b3JkLFxuICBPcmdhbml6YXRpb24sXG4gIFVzZXJGZWVkYmFjayxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgR240UGxhdGZvcm1NYXBwZXIgfSBmcm9tICcuL2duNC1wbGF0Zm9ybS5tYXBwZXInXG5pbXBvcnQgeyBsdHIgfSBmcm9tICdzZW12ZXInXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQge1xuICBLZXl3b3JkQXBpUmVzcG9uc2UsXG4gIFRoZXNhdXJ1c0FwaVJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9tZXRhZGF0YS1jb252ZXJ0ZXIvc3JjJ1xuaW1wb3J0IHsgS2V5d29yZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC90aGVzYXVydXMnXG5pbXBvcnQgeyBub0R1cGxpY2F0ZUZpbGVOYW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQge1xuICBjb21iaW5lTGF0ZXN0LFxuICBmb3JrSm9pbixcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN3aXRjaE1hcCxcbiAgdGhyb3dFcnJvcixcbn0gZnJvbSAncnhqcydcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgZ2V0TGFuZzNGcm9tTGFuZzIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMnXG5cbmNvbnN0IG1pbkFwaVZlcnNpb24gPSAnNC4yLjInXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHbjRQbGF0Zm9ybVNlcnZpY2UgaW1wbGVtZW50cyBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHR5cGUgPSAnR2VvTmV0d29yaydcbiAgcHJpdmF0ZSByZWFkb25seSBtZSQ6IE9ic2VydmFibGU8VXNlck1vZGVsPlxuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJzJDogT2JzZXJ2YWJsZTxVc2VyTW9kZWxbXT5cbiAgcHJpdmF0ZSByZWFkb25seSBpc1VzZXJBbm9ueW1vdXMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG4gIHByaXZhdGUgcmVhZG9ubHkgZ25QYXJzZVZlcnNpb24gPSAnNC4yLjUnXG5cbiAgcHJpdmF0ZSBrZXlUcmFuc2xhdGlvbnMkID0gdGhpcy50b29sc0FwaVNlcnZpY2VcbiAgICAuZ2V0VHJhbnNsYXRpb25zUGFja2FnZTEoJ2dudWknKVxuICAgIC5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUud2FybignRXJyb3Igd2hpbGUgbG9hZGluZyBnbnVpIGxhbmd1YWdlIHBhY2thZ2UnKVxuICAgICAgICByZXR1cm4gb2Yoe30pXG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKVxuXG4gIHByaXZhdGUgc2V0dGluZ3MkID0gb2YodHJ1ZSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zaXRlQXBpU2VydmljZS5nZXRTaXRlT3JQb3J0YWxEZXNjcmlwdGlvbigpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgcHJpdmF0ZSByZWFkb25seSBhcGlWZXJzaW9uJCA9IHRoaXMuc2V0dGluZ3MkLnBpcGUoXG4gICAgbWFwKChpbmZvKSA9PiBpbmZvWydzeXN0ZW0vcGxhdGZvcm0vdmVyc2lvbiddIGFzIHN0cmluZyksXG4gICAgdGFwKCh2ZXJzaW9uKSA9PiB7XG4gICAgICBpZiAobHRyKHZlcnNpb24sIG1pbkFwaVZlcnNpb24pKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgR240IEFQSSB2ZXJzaW9uIGlzIG5vdCBjb21wYXRpYmxlLlxcbk1pbmltdW06ICR7bWluQXBpVmVyc2lvbn1cXG5Zb3VyIHZlcnNpb246ICR7dmVyc2lvbn1gXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgcHJpdmF0ZSByZWFkb25seSBhbGxvd0VkaXRIYXJ2ZXN0ZWRNZCQgPSB0aGlzLnNldHRpbmdzJC5waXBlKFxuICAgIG1hcCgoaW5mbykgPT4ge1xuICAgICAgcmV0dXJuIGluZm9bJ3N5c3RlbS9oYXJ2ZXN0ZXIvZW5hYmxlRWRpdGluZyddIGFzIGJvb2xlYW5cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIGFscmVhZHkgbG9hZGVkIHRoZXNhdXJpIChncm91cHMgb2Yga2V5d29yZHMpOyB0aGUga2V5IGlzIGEgVVJJXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGtleXdvcmRzQnlUaGVzYXVyaTogUmVjb3JkPHN0cmluZywgT2JzZXJ2YWJsZTxLZXl3b3JkW10+PiA9IHt9XG5cbiAgcHJpdmF0ZSBnZXQgbGFuZzMoKSB7XG4gICAgcmV0dXJuIGdldExhbmczRnJvbUxhbmcyKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZylcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2l0ZUFwaVNlcnZpY2U6IFNpdGVBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVBcGk6IE1lQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJzQXBpOiBVc2Vyc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtYXBwZXI6IEduNFBsYXRmb3JtTWFwcGVyLFxuICAgIHByaXZhdGUgdG9vbHNBcGlTZXJ2aWNlOiBUb29sc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWdpc3RyaWVzQXBpU2VydmljZTogUmVnaXN0cmllc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlcmZlZWRiYWNrQXBpU2VydmljZTogVXNlcmZlZWRiYWNrQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSByZWNvcmRzQXBpU2VydmljZTogUmVjb3Jkc0FwaVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5tZSQgPSB0aGlzLm1lQXBpLmdldE1lKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoYXBpVXNlcikgPT4gdGhpcy5tYXBwZXIudXNlckZyb21NZUFwaShhcGlVc2VyKSksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKVxuXG4gICAgdGhpcy5pc1VzZXJBbm9ueW1vdXMkID0gdGhpcy5tZSQucGlwZShcbiAgICAgIG1hcCgodXNlcikgPT4gIXVzZXIgfHwgISgnaWQnIGluIHVzZXIpKVxuICAgIClcblxuICAgIHRoaXMudXNlcnMkID0gdGhpcy51c2Vyc0FwaS5nZXRVc2VycygpLnBpcGUoXG4gICAgICBtYXAoKHVzZXJzKSA9PiB1c2Vycy5tYXAoKHVzZXIpID0+IHRoaXMubWFwcGVyLnVzZXJGcm9tQXBpKHVzZXIpKSksXG4gICAgICBzaGFyZVJlcGxheSgpXG4gICAgKVxuICB9XG5cbiAgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnR5cGVcbiAgfVxuXG4gIGdldEFwaVZlcnNpb24oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5hcGlWZXJzaW9uJFxuICB9XG5cbiAgZ2V0QWxsb3dFZGl0SGFydmVzdGVkTWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuYWxsb3dFZGl0SGFydmVzdGVkTWQkXG4gIH1cblxuICBnZXRNZSgpOiBPYnNlcnZhYmxlPFVzZXJNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLm1lJFxuICB9XG5cbiAgaXNBbm9ueW1vdXMoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuaXNVc2VyQW5vbnltb3VzJFxuICB9XG5cbiAgZ2V0T3JnYW5pemF0aW9ucygpOiBPYnNlcnZhYmxlPE9yZ2FuaXphdGlvbltdPiB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgZ2V0VXNlcnNCeU9yZ2FuaXphdGlvbihvcmdhbmlzYXRpb246IE9yZ2FuaXphdGlvbik6IE9ic2VydmFibGU8VXNlck1vZGVsW10+IHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBnZXRVc2VycygpOiBPYnNlcnZhYmxlPFVzZXJNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlcnMkXG4gIH1cblxuICB0cmFuc2xhdGVLZXkoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIC8vIGlmIHRoZSBrZXkgaXMgYSBVUkksIHVzZSB0aGUgcmVnaXN0cmllcyBBUEkgdG8gbG9vayBmb3IgdGhlIHRyYW5zbGF0aW9uXG4gICAgaWYgKGtleS5tYXRjaCgvXmh0dHBzPzpcXC9cXC8vKSkge1xuICAgICAgLy8gdGhlIHRoZXNhdXJ1cyBVUkkgaXMgaW5mZXJyZWQgYnkgcmVtb3ZpbmcgYSBwYXJ0IG9mIHRoZSBrZXl3b3JkIFVSSVxuICAgICAgLy8gdGhpcyBpcyBub3QgZXhhY3Qgc2NpZW5jZSBidXQgaXQncyBPSywgd2UnbGwgc3RpbGwgZW5kIHVwIGxvYWRpbmcgYSBidW5jaCBvZiBrZXl3b3JkcyBhdCBvbmNlIGFueXdheVxuICAgICAgY29uc3QgdGhlc2F1cnVzVXJpID0ga2V5LnJlcGxhY2UoL1xcLyhbXi9dKykkLywgJy8nKVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0S2V5d29yZHNCeVVyaSh0aGVzYXVydXNVcmkpLnBpcGUoXG4gICAgICAgIG1hcCgodGhlc2F1cnVzKSA9PiB7XG4gICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoZXNhdXJ1cykge1xuICAgICAgICAgICAgaWYgKGl0ZW0ua2V5ID09PSBrZXkpIHJldHVybiBpdGVtLmxhYmVsXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBrZXlcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMua2V5VHJhbnNsYXRpb25zJC5waXBlKG1hcCgodHJhbnNsYXRpb25zKSA9PiB0cmFuc2xhdGlvbnNba2V5XSkpXG4gIH1cblxuICBwcml2YXRlIGFsbFRoZXNhdXJ1cyQgPSB0aGlzLmh0dHBDbGllbnRcbiAgICAuZ2V0KFxuICAgICAgYCR7dGhpcy5yZWdpc3RyaWVzQXBpU2VydmljZS5jb25maWd1cmF0aW9uLmJhc2VQYXRofS90aGVzYXVydXM/X2NvbnRlbnRfdHlwZT1qc29uYFxuICAgIClcbiAgICAucGlwZShcbiAgICAgIG1hcCgodGhlc2F1cnVzKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGVzYXVydXNbMF0gYXMgVGhlc2F1cnVzQXBpUmVzcG9uc2VbXVxuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgIClcblxuICBzZWFyY2hLZXl3b3JkcyhcbiAgICBxdWVyeTogc3RyaW5nLFxuICAgIGtleXdvcmRUeXBlczogS2V5d29yZFR5cGVbXVxuICApOiBPYnNlcnZhYmxlPEtleXdvcmRbXT4ge1xuICAgIGNvbnN0IGtleXdvcmRzJDogT2JzZXJ2YWJsZTxLZXl3b3JkQXBpUmVzcG9uc2VbXT4gPSB0aGlzLmFsbFRoZXNhdXJ1cyQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodGhlc2F1cnVzKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVGhlc2F1cmkgPSBbXVxuICAgICAgICBrZXl3b3JkVHlwZXMubWFwKChrZXl3b3JkVHlwZSkgPT4ge1xuICAgICAgICAgIHNlbGVjdGVkVGhlc2F1cmkucHVzaChcbiAgICAgICAgICAgIC4uLnRoZXNhdXJ1cy5maWx0ZXIoKHRoZXMpID0+IHRoZXMuZG5hbWUgPT09IGtleXdvcmRUeXBlKVxuICAgICAgICAgIClcbiAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4gdGhpcy5yZWdpc3RyaWVzQXBpU2VydmljZS5zZWFyY2hLZXl3b3JkcyhcbiAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICB0aGlzLmxhbmczLFxuICAgICAgICAgIDEwLFxuICAgICAgICAgIDAsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBzZWxlY3RlZFRoZXNhdXJpLm1hcCgodGhlcykgPT4gdGhlcy5rZXkpLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgYCoke3F1ZXJ5fSpgXG4gICAgICAgICkgYXMgT2JzZXJ2YWJsZTxLZXl3b3JkQXBpUmVzcG9uc2VbXT5cbiAgICAgIH0pXG4gICAgKVxuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW2tleXdvcmRzJCwgdGhpcy5hbGxUaGVzYXVydXMkXSkucGlwZShcbiAgICAgIG1hcCgoW2tleXdvcmRzLCB0aGVzYXVydXNdKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcHBlci5rZXl3b3Jkc0Zyb21BcGkoa2V5d29yZHMsIHRoZXNhdXJ1cywgdGhpcy5sYW5nMylcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0S2V5d29yZHNCeVVyaSh1cmk6IHN0cmluZyk6IE9ic2VydmFibGU8S2V5d29yZFtdPiB7XG4gICAgaWYgKHRoaXMua2V5d29yZHNCeVRoZXNhdXJpW3VyaV0pIHtcbiAgICAgIHJldHVybiB0aGlzLmtleXdvcmRzQnlUaGVzYXVyaVt1cmldXG4gICAgfVxuICAgIGNvbnN0IGtleXdvcmRzJCA9IHRoaXMucmVnaXN0cmllc0FwaVNlcnZpY2Uuc2VhcmNoS2V5d29yZHMoXG4gICAgICBudWxsLFxuICAgICAgdGhpcy5sYW5nMyxcbiAgICAgIDEwMDAsXG4gICAgICAwLFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICBudWxsLFxuICAgICAgYCR7dXJpfSpgXG4gICAgKSBhcyBPYnNlcnZhYmxlPEtleXdvcmRBcGlSZXNwb25zZVtdPlxuXG4gICAgdGhpcy5rZXl3b3Jkc0J5VGhlc2F1cmlbdXJpXSA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAga2V5d29yZHMkLFxuICAgICAgdGhpcy5hbGxUaGVzYXVydXMkLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtrZXl3b3JkcywgdGhlc2F1cnVzXSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXBwZXIua2V5d29yZHNGcm9tQXBpKGtleXdvcmRzLCB0aGVzYXVydXMsIHRoaXMubGFuZzMpXG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKVxuXG4gICAgcmV0dXJuIHRoaXMua2V5d29yZHNCeVRoZXNhdXJpW3VyaV1cbiAgfVxuXG4gIHNlYXJjaEtleXdvcmRzSW5UaGVzYXVydXMocXVlcnk6IHN0cmluZywgdGhlc2F1cnVzSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFsbFRoZXNhdXJ1cyQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodGhlc2F1cmkpID0+IHtcbiAgICAgICAgY29uc3Qgc3RyaXBwZWRUaGVzYXVydXNJZCA9IHRoZXNhdXJ1c0lkLnJlcGxhY2UoXG4gICAgICAgICAgJ2dlb25ldHdvcmsudGhlc2F1cnVzLicsXG4gICAgICAgICAgJydcbiAgICAgICAgKVxuICAgICAgICBpZiAoIXRoZXNhdXJpLmZpbmQoKHRoZXMpID0+IHRoZXMua2V5ID09PSBzdHJpcHBlZFRoZXNhdXJ1c0lkKSlcbiAgICAgICAgICByZXR1cm4gb2YoW10pXG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJpZXNBcGlTZXJ2aWNlXG4gICAgICAgICAgLnNlYXJjaEtleXdvcmRzKFxuICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICB0aGlzLmxhbmczLFxuICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBbc3RyaXBwZWRUaGVzYXVydXNJZF0sXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICAgKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChrZXl3b3JkczogS2V5d29yZEFwaVJlc3BvbnNlW10pID0+XG4gICAgICAgICAgICAgIHRoaXMubWFwcGVyLmtleXdvcmRzRnJvbUFwaShrZXl3b3JkcywgdGhlc2F1cmksIHRoaXMubGFuZzMpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRVc2VyRmVlZGJhY2tzKHV1aWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlckZlZWRiYWNrW10+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyZmVlZGJhY2tBcGlTZXJ2aWNlLmdldFVzZXJDb21tZW50cyh1dWlkKS5waXBlKFxuICAgICAgbWFwKCh1c2VyRmVlZGJhY2tzKSA9PlxuICAgICAgICB1c2VyRmVlZGJhY2tzLm1hcCh0aGlzLm1hcHBlci51c2VyRmVlZGJhY2tzRnJvbUFwaSlcbiAgICAgICksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyB1c2VyIGZlZWRiYWNrczonLCBlcnJvcilcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcG9zdFVzZXJGZWVkYmFja3ModXNlckZlZWRiYWNrOiBVc2VyRmVlZGJhY2spOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBtYXBwZWRVc2VyRmVlZEJhY2sgPSB0aGlzLm1hcHBlci51c2VyRmVlZGJhY2tzVG9BcGkodXNlckZlZWRiYWNrKVxuICAgIHJldHVybiB0aGlzLnVzZXJmZWVkYmFja0FwaVNlcnZpY2UubmV3VXNlckZlZWRiYWNrKG1hcHBlZFVzZXJGZWVkQmFjaykucGlwZShcbiAgICAgIG1hcCgoKSA9PiB1bmRlZmluZWQpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcG9zdGluZyB1c2VyIGZlZWRiYWNrOicsIGVycm9yKVxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRSZWNvcmRBdHRhY2htZW50cyhyZWNvcmRVdWlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvcmRzQXBpU2VydmljZS5nZXRBbGxSZXNvdXJjZXMocmVjb3JkVXVpZCkucGlwZShcbiAgICAgIG1hcCgocmVzb3VyY2VzKSA9PlxuICAgICAgICByZXNvdXJjZXMubWFwKChyKSA9PiAoe1xuICAgICAgICAgIHVybDogbmV3IFVSTChyLnVybCksXG4gICAgICAgICAgZmlsZU5hbWU6IHIuZmlsZW5hbWUsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIGNsZWFuUmVjb3JkQXR0YWNobWVudHMocmVjb3JkOiBDYXRhbG9nUmVjb3JkKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5yZWNvcmRzQXBpU2VydmljZS5nZXRBc3NvY2lhdGVkUmVzb3VyY2VzKHJlY29yZC51bmlxdWVJZGVudGlmaWVyKSxcbiAgICAgIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZ2V0QWxsUmVzb3VyY2VzKHJlY29yZC51bmlxdWVJZGVudGlmaWVyKSxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbYXNzb2NpYXRlZCwgYXR0YWNobWVudHNdKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgb25saW5lcyA9IFtdLCB0aHVtYm5haWxzID0gW10gfSA9IGFzc29jaWF0ZWRcblxuICAgICAgICBjb25zdCB1cmxzVG9LZWVwID0gW1xuICAgICAgICAgIC4uLihBcnJheS5pc0FycmF5KG9ubGluZXMpID8gb25saW5lcyA6IFtdKSxcbiAgICAgICAgICAuLi4oQXJyYXkuaXNBcnJheSh0aHVtYm5haWxzKSA/IHRodW1ibmFpbHMgOiBbXSksXG4gICAgICAgIF0ubWFwKChyZXNvdXJjZSkgPT4gT2JqZWN0LnZhbHVlcyhyZXNvdXJjZS51cmwpWzBdKVxuICAgICAgICBjb25zdCBmaWxlVG9EZWxldGUgPSBhdHRhY2htZW50cy5yZWR1Y2U8c3RyaW5nW10+KChhY2MsIGF0dGFjaG1lbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdXJsc1RvS2VlcC5pbmNsdWRlcyhhdHRhY2htZW50LnVybCkgJiZcbiAgICAgICAgICAgIGF0dGFjaG1lbnQuZmlsZW5hbWUgIT09ICdkYXRhdml6Q29uZmlnLmpzb24nXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBhY2MucHVzaChhdHRhY2htZW50LmZpbGVuYW1lKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWNjXG4gICAgICAgIH0sIFtdKVxuXG4gICAgICAgIHJldHVybiBmaWxlVG9EZWxldGVcbiAgICAgIH0pLFxuICAgICAgbWVyZ2VNYXAoKGZpbGVzVG9EZWxldGUpID0+XG4gICAgICAgIGZpbGVzVG9EZWxldGUubGVuZ3RoXG4gICAgICAgICAgPyBmb3JrSm9pbihcbiAgICAgICAgICAgICAgZmlsZXNUb0RlbGV0ZS5tYXAoKGZpbGVuYW1lKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZGVsUmVzb3VyY2UoXG4gICAgICAgICAgICAgICAgICByZWNvcmQudW5pcXVlSWRlbnRpZmllcixcbiAgICAgICAgICAgICAgICAgIGZpbGVuYW1lXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLnBpcGUobWFwKCgpID0+IHVuZGVmaW5lZCkpXG4gICAgICAgICAgOiBvZih1bmRlZmluZWQpXG4gICAgICApLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igd2hpbGUgY2xlYW5pbmcgYXR0YWNobWVudHM6JywgZXJyb3IpXG4gICAgICAgIHRocm93IGVycm9yXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgdXBsb2FkRmlsZShyZWNvcmRVdWlkOiBzdHJpbmcsIGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPFVwbG9hZEV2ZW50PiB7XG4gICAgbGV0IHNpemVCeXRlcyA9IC0xXG4gICAgcmV0dXJuIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2VcbiAgICAgIC5wdXRSZXNvdXJjZShyZWNvcmRVdWlkLCBmaWxlLCAncHVibGljJywgdW5kZWZpbmVkLCAnZXZlbnRzJywgdHJ1ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgIHNpemVCeXRlcyA9IGV2ZW50LnRvdGFsXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0eXBlOiAncHJvZ3Jlc3MnLFxuICAgICAgICAgICAgICBwcm9ncmVzczogZXZlbnQudG90YWxcbiAgICAgICAgICAgICAgICA/IE1hdGgucm91bmQoKDEwMCAqIGV2ZW50LmxvYWRlZCkgLyBldmVudC50b3RhbClcbiAgICAgICAgICAgICAgICA6IDAsXG4gICAgICAgICAgICB9IGFzIFVwbG9hZEV2ZW50XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgICAgICAgIGF0dGFjaG1lbnQ6IHtcbiAgICAgICAgICAgICAgICB1cmw6IG5ldyBVUkwoZXZlbnQuYm9keS51cmwpLFxuICAgICAgICAgICAgICAgIGZpbGVOYW1lOiBldmVudC5ib2R5LmZpbGVuYW1lLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBzaXplQnl0ZXMsXG4gICAgICAgICAgICB9IGFzIFVwbG9hZEV2ZW50XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgfSksXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+ICEhZXZlbnQpLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFxuICAgICAgICAgICAgKCkgPT4gbmV3IEVycm9yKGVycm9yLmVycm9yPy5tZXNzYWdlID8/IGVycm9yLm1lc3NhZ2UpXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuICAgICAgKVxuICB9XG4gIGdldEZpbGVDb250ZW50KHVybDogVVJMIHwgc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KHVybC50b1N0cmluZygpLCB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pLFxuICAgICAgdGhpcy5nZXRBcGlWZXJzaW9uKCksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3RleHQsIHZlcnNpb25dKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UodGV4dClcblxuICAgICAgICBpZiAodmVyc2lvbiA+IHRoaXMuZ25QYXJzZVZlcnNpb24pIHtcbiAgICAgICAgICByZXR1cm4gcGFyc2VkXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWNvZGVkID0gdGhpcy5kZWNvZGVCYXNlNjQocGFyc2VkKVxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVkKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBkZWNvZGVCYXNlNjQoYmFzZTY0KSB7XG4gICAgY29uc3QgdGV4dCA9IGF0b2IoYmFzZTY0KVxuICAgIGNvbnN0IGxlbmd0aCA9IHRleHQubGVuZ3RoXG4gICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShsZW5ndGgpXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgYnl0ZXNbaV0gPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICB9XG4gICAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpXG4gICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGJ5dGVzKVxuICB9XG5cbiAgYXR0YWNoRmlsZVRvUmVjb3JkKFxuICAgIHJlY29yZFV1aWQ6IHN0cmluZyxcbiAgICBmaWxlOiBGaWxlLFxuICAgIHJlbW92ZUR1cGxpY2F0ZSA9IGZhbHNlXG4gICk6IE9ic2VydmFibGU8VXBsb2FkRXZlbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRSZWNvcmRBdHRhY2htZW50cyhyZWNvcmRVdWlkKS5waXBlKFxuICAgICAgbWFwKChyZWNvcmRBdHRhY2htZW50cykgPT4gcmVjb3JkQXR0YWNobWVudHMubWFwKChyKSA9PiByLmZpbGVOYW1lKSksXG4gICAgICBzd2l0Y2hNYXAoKGZpbGVOYW1lcykgPT4ge1xuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGZpbGUubmFtZVxuXG4gICAgICAgIGlmIChyZW1vdmVEdXBsaWNhdGUgJiYgZmlsZU5hbWVzLmluY2x1ZGVzKGZpbGUubmFtZSkpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZWNvcmRzQXBpU2VydmljZS5kZWxSZXNvdXJjZShyZWNvcmRVdWlkLCBmaWxlTmFtZSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVDb3B5ID0gbmV3IEZpbGUoW2ZpbGVdLCBmaWxlTmFtZSwgeyB0eXBlOiBmaWxlLnR5cGUgfSlcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkRmlsZShyZWNvcmRVdWlkLCBmaWxlQ29weSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGZpbmFsRmlsZU5hbWUgPSBub0R1cGxpY2F0ZUZpbGVOYW1lKGZpbGVOYW1lLCBmaWxlTmFtZXMpXG4gICAgICAgICAgY29uc3QgZmlsZUNvcHkgPSBuZXcgRmlsZShbZmlsZV0sIGZpbmFsRmlsZU5hbWUsIHsgdHlwZTogZmlsZS50eXBlIH0pXG4gICAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkRmlsZShyZWNvcmRVdWlkLCBmaWxlQ29weSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiJdfQ==
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ240LXBsYXRmb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvZ240L3BsYXRmb3JtL2duNC1wbGF0Zm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ04sR0FBRyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUNMLFlBQVksRUFDWixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxlQUFlLEVBQ2Ysc0JBQXNCLEVBQ3RCLGVBQWUsR0FDaEIsTUFBTSwrQ0FBK0MsQ0FBQTtBQVl0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQzVCLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFNaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFDL0UsT0FBTyxFQUNMLGFBQWEsRUFDYixRQUFRLEVBRVIsRUFBRSxFQUNGLFNBQVMsRUFDVCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUNBQXlDLENBQUE7Ozs7OztBQUVqRSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUE7QUFHN0IsTUFBTSxPQUFPLGtCQUFrQjtJQStDN0IsSUFBWSxLQUFLO1FBQ2YsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFn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QUFDLENBQUMsRUFDcEUsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDdEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQTtZQUUxQixJQUFJLGVBQWUsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNyRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDbEUsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDYixNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtvQkFDaEUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQTtnQkFDOUMsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUE7Z0JBQzlELE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2dCQUNyRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBQzlDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQzsrR0F6WVUsa0JBQWtCO21IQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIGNhdGNoRXJyb3IsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBtZXJnZU1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQge1xuICBNZUFwaVNlcnZpY2UsXG4gIFJlY29yZHNBcGlTZXJ2aWNlLFxuICBSZWdpc3RyaWVzQXBpU2VydmljZSxcbiAgU2l0ZUFwaVNlcnZpY2UsXG4gIFRvb2xzQXBpU2VydmljZSxcbiAgVXNlcmZlZWRiYWNrQXBpU2VydmljZSxcbiAgVXNlcnNBcGlTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL2duNC9zcmMnXG5pbXBvcnQge1xuICBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gIFVwbG9hZEV2ZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9wbGF0Zm9ybS5zZXJ2aWNlLmludGVyZmFjZSdcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3VzZXIvdXNlci5tb2RlbCdcbmltcG9ydCB7XG4gIENhdGFsb2dSZWNvcmQsXG4gIEtleXdvcmQsXG4gIE9yZ2FuaXphdGlvbixcbiAgVXNlckZlZWRiYWNrLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBHbjRQbGF0Zm9ybU1hcHBlciB9IGZyb20gJy4vZ240LXBsYXRmb3JtLm1hcHBlcidcbmltcG9ydCB7IGx0ciB9IGZyb20gJ3NlbXZlcidcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7XG4gIEtleXdvcmRBcGlSZXNwb25zZSxcbiAgVGhlc2F1cnVzQXBpUmVzcG9uc2UsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL21ldGFkYXRhLWNvbnZlcnRlci9zcmMnXG5pbXBvcnQgeyBLZXl3b3JkVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3RoZXNhdXJ1cydcbmltcG9ydCB7IG5vRHVwbGljYXRlRmlsZU5hbWUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7XG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZvcmtKb2luLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgc3dpdGNoTWFwLFxuICB0aHJvd0Vycm9yLFxufSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyB0b0xhbmczIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjJ1xuXG5jb25zdCBtaW5BcGlWZXJzaW9uID0gJzQuMi4yJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgR240UGxhdGZvcm1TZXJ2aWNlIGltcGxlbWVudHMgUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0eXBlID0gJ0dlb05ldHdvcmsnXG4gIHByaXZhdGUgcmVhZG9ubHkgbWUkOiBPYnNlcnZhYmxlPFVzZXJNb2RlbD5cbiAgcHJpdmF0ZSByZWFkb25seSB1c2VycyQ6IE9ic2VydmFibGU8VXNlck1vZGVsW10+XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNVc2VyQW5vbnltb3VzJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuICBwcml2YXRlIHJlYWRvbmx5IGduUGFyc2VWZXJzaW9uID0gJzQuMi41J1xuXG4gIHByaXZhdGUga2V5VHJhbnNsYXRpb25zJCA9IHRoaXMudG9vbHNBcGlTZXJ2aWNlXG4gICAgLmdldFRyYW5zbGF0aW9uc1BhY2thZ2UxKCdnbnVpJylcbiAgICAucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0Vycm9yIHdoaWxlIGxvYWRpbmcgZ251aSBsYW5ndWFnZSBwYWNrYWdlJylcbiAgICAgICAgcmV0dXJuIG9mKHt9KVxuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgIClcblxuICBwcml2YXRlIHNldHRpbmdzJCA9IG9mKHRydWUpLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuc2l0ZUFwaVNlcnZpY2UuZ2V0U2l0ZU9yUG9ydGFsRGVzY3JpcHRpb24oKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgYXBpVmVyc2lvbiQgPSB0aGlzLnNldHRpbmdzJC5waXBlKFxuICAgIG1hcCgoaW5mbykgPT4gaW5mb1snc3lzdGVtL3BsYXRmb3JtL3ZlcnNpb24nXSBhcyBzdHJpbmcpLFxuICAgIHRhcCgodmVyc2lvbikgPT4ge1xuICAgICAgaWYgKGx0cih2ZXJzaW9uLCBtaW5BcGlWZXJzaW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEduNCBBUEkgdmVyc2lvbiBpcyBub3QgY29tcGF0aWJsZS5cXG5NaW5pbXVtOiAke21pbkFwaVZlcnNpb259XFxuWW91ciB2ZXJzaW9uOiAke3ZlcnNpb259YFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWxsb3dFZGl0SGFydmVzdGVkTWQkID0gdGhpcy5zZXR0aW5ncyQucGlwZShcbiAgICBtYXAoKGluZm8pID0+IHtcbiAgICAgIHJldHVybiBpbmZvWydzeXN0ZW0vaGFydmVzdGVyL2VuYWJsZUVkaXRpbmcnXSBhcyBib29sZWFuXG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIC8qKlxuICAgKiBBIG1hcCBvZiBhbHJlYWR5IGxvYWRlZCB0aGVzYXVyaSAoZ3JvdXBzIG9mIGtleXdvcmRzKTsgdGhlIGtleSBpcyBhIFVSSVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBrZXl3b3Jkc0J5VGhlc2F1cmk6IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8S2V5d29yZFtdPj4gPSB7fVxuXG4gIHByaXZhdGUgZ2V0IGxhbmczKCkge1xuICAgIHJldHVybiB0b0xhbmczKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZylcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2l0ZUFwaVNlcnZpY2U6IFNpdGVBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVBcGk6IE1lQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJzQXBpOiBVc2Vyc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtYXBwZXI6IEduNFBsYXRmb3JtTWFwcGVyLFxuICAgIHByaXZhdGUgdG9vbHNBcGlTZXJ2aWNlOiBUb29sc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWdpc3RyaWVzQXBpU2VydmljZTogUmVnaXN0cmllc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlcmZlZWRiYWNrQXBpU2VydmljZTogVXNlcmZlZWRiYWNrQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSByZWNvcmRzQXBpU2VydmljZTogUmVjb3Jkc0FwaVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5tZSQgPSB0aGlzLm1lQXBpLmdldE1lKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoYXBpVXNlcikgPT4gdGhpcy5tYXBwZXIudXNlckZyb21NZUFwaShhcGlVc2VyKSksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKVxuXG4gICAgdGhpcy5pc1VzZXJBbm9ueW1vdXMkID0gdGhpcy5tZSQucGlwZShcbiAgICAgIG1hcCgodXNlcikgPT4gIXVzZXIgfHwgISgnaWQnIGluIHVzZXIpKVxuICAgIClcblxuICAgIHRoaXMudXNlcnMkID0gdGhpcy51c2Vyc0FwaS5nZXRVc2VycygpLnBpcGUoXG4gICAgICBtYXAoKHVzZXJzKSA9PiB1c2Vycy5tYXAoKHVzZXIpID0+IHRoaXMubWFwcGVyLnVzZXJGcm9tQXBpKHVzZXIpKSksXG4gICAgICBzaGFyZVJlcGxheSgpXG4gICAgKVxuICB9XG5cbiAgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnR5cGVcbiAgfVxuXG4gIGdldEFwaVZlcnNpb24oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5hcGlWZXJzaW9uJFxuICB9XG5cbiAgZ2V0QWxsb3dFZGl0SGFydmVzdGVkTWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuYWxsb3dFZGl0SGFydmVzdGVkTWQkXG4gIH1cblxuICBnZXRNZSgpOiBPYnNlcnZhYmxlPFVzZXJNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLm1lJFxuICB9XG5cbiAgaXNBbm9ueW1vdXMoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuaXNVc2VyQW5vbnltb3VzJFxuICB9XG5cbiAgZ2V0T3JnYW5pemF0aW9ucygpOiBPYnNlcnZhYmxlPE9yZ2FuaXphdGlvbltdPiB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgZ2V0VXNlcnNCeU9yZ2FuaXphdGlvbihvcmdhbmlzYXRpb246IE9yZ2FuaXphdGlvbik6IE9ic2VydmFibGU8VXNlck1vZGVsW10+IHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBnZXRVc2VycygpOiBPYnNlcnZhYmxlPFVzZXJNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlcnMkXG4gIH1cblxuICB0cmFuc2xhdGVLZXkoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIC8vIGlmIHRoZSBrZXkgaXMgYSBVUkksIHVzZSB0aGUgcmVnaXN0cmllcyBBUEkgdG8gbG9vayBmb3IgdGhlIHRyYW5zbGF0aW9uXG4gICAgaWYgKGtleS5tYXRjaCgvXmh0dHBzPzpcXC9cXC8vKSkge1xuICAgICAgLy8gdGhlIHRoZXNhdXJ1cyBVUkkgaXMgaW5mZXJyZWQgYnkgcmVtb3ZpbmcgYSBwYXJ0IG9mIHRoZSBrZXl3b3JkIFVSSVxuICAgICAgLy8gdGhpcyBpcyBub3QgZXhhY3Qgc2NpZW5jZSBidXQgaXQncyBPSywgd2UnbGwgc3RpbGwgZW5kIHVwIGxvYWRpbmcgYSBidW5jaCBvZiBrZXl3b3JkcyBhdCBvbmNlIGFueXdheVxuICAgICAgY29uc3QgdGhlc2F1cnVzVXJpID0ga2V5LnJlcGxhY2UoL1xcLyhbXi9dKykkLywgJy8nKVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0S2V5d29yZHNCeVVyaSh0aGVzYXVydXNVcmkpLnBpcGUoXG4gICAgICAgIG1hcCgodGhlc2F1cnVzKSA9PiB7XG4gICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoZXNhdXJ1cykge1xuICAgICAgICAgICAgaWYgKGl0ZW0ua2V5ID09PSBrZXkpIHJldHVybiBpdGVtLmxhYmVsXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBrZXlcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMua2V5VHJhbnNsYXRpb25zJC5waXBlKG1hcCgodHJhbnNsYXRpb25zKSA9PiB0cmFuc2xhdGlvbnNba2V5XSkpXG4gIH1cblxuICBwcml2YXRlIGFsbFRoZXNhdXJ1cyQgPSB0aGlzLmh0dHBDbGllbnRcbiAgICAuZ2V0KFxuICAgICAgYCR7dGhpcy5yZWdpc3RyaWVzQXBpU2VydmljZS5jb25maWd1cmF0aW9uLmJhc2VQYXRofS90aGVzYXVydXM/X2NvbnRlbnRfdHlwZT1qc29uYFxuICAgIClcbiAgICAucGlwZShcbiAgICAgIG1hcCgodGhlc2F1cnVzKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGVzYXVydXNbMF0gYXMgVGhlc2F1cnVzQXBpUmVzcG9uc2VbXVxuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgIClcblxuICBzZWFyY2hLZXl3b3JkcyhcbiAgICBxdWVyeTogc3RyaW5nLFxuICAgIGtleXdvcmRUeXBlczogS2V5d29yZFR5cGVbXVxuICApOiBPYnNlcnZhYmxlPEtleXdvcmRbXT4ge1xuICAgIGNvbnN0IGtleXdvcmRzJDogT2JzZXJ2YWJsZTxLZXl3b3JkQXBpUmVzcG9uc2VbXT4gPSB0aGlzLmFsbFRoZXNhdXJ1cyQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodGhlc2F1cnVzKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVGhlc2F1cmkgPSBbXVxuICAgICAgICBrZXl3b3JkVHlwZXMubWFwKChrZXl3b3JkVHlwZSkgPT4ge1xuICAgICAgICAgIHNlbGVjdGVkVGhlc2F1cmkucHVzaChcbiAgICAgICAgICAgIC4uLnRoZXNhdXJ1cy5maWx0ZXIoKHRoZXMpID0+IHRoZXMuZG5hbWUgPT09IGtleXdvcmRUeXBlKVxuICAgICAgICAgIClcbiAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4gdGhpcy5yZWdpc3RyaWVzQXBpU2VydmljZS5zZWFyY2hLZXl3b3JkcyhcbiAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICB0aGlzLmxhbmczLFxuICAgICAgICAgIDEwLFxuICAgICAgICAgIDAsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBzZWxlY3RlZFRoZXNhdXJpLm1hcCgodGhlcykgPT4gdGhlcy5rZXkpLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgYCoke3F1ZXJ5fSpgXG4gICAgICAgICkgYXMgT2JzZXJ2YWJsZTxLZXl3b3JkQXBpUmVzcG9uc2VbXT5cbiAgICAgIH0pXG4gICAgKVxuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW2tleXdvcmRzJCwgdGhpcy5hbGxUaGVzYXVydXMkXSkucGlwZShcbiAgICAgIG1hcCgoW2tleXdvcmRzLCB0aGVzYXVydXNdKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcHBlci5rZXl3b3Jkc0Zyb21BcGkoa2V5d29yZHMsIHRoZXNhdXJ1cywgdGhpcy5sYW5nMylcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0S2V5d29yZHNCeVVyaSh1cmk6IHN0cmluZyk6IE9ic2VydmFibGU8S2V5d29yZFtdPiB7XG4gICAgaWYgKHRoaXMua2V5d29yZHNCeVRoZXNhdXJpW3VyaV0pIHtcbiAgICAgIHJldHVybiB0aGlzLmtleXdvcmRzQnlUaGVzYXVyaVt1cmldXG4gICAgfVxuICAgIGNvbnN0IGtleXdvcmRzJCA9IHRoaXMucmVnaXN0cmllc0FwaVNlcnZpY2Uuc2VhcmNoS2V5d29yZHMoXG4gICAgICBudWxsLFxuICAgICAgdGhpcy5sYW5nMyxcbiAgICAgIDEwMDAsXG4gICAgICAwLFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICBudWxsLFxuICAgICAgYCR7dXJpfSpgXG4gICAgKSBhcyBPYnNlcnZhYmxlPEtleXdvcmRBcGlSZXNwb25zZVtdPlxuXG4gICAgdGhpcy5rZXl3b3Jkc0J5VGhlc2F1cmlbdXJpXSA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAga2V5d29yZHMkLFxuICAgICAgdGhpcy5hbGxUaGVzYXVydXMkLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtrZXl3b3JkcywgdGhlc2F1cnVzXSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXBwZXIua2V5d29yZHNGcm9tQXBpKGtleXdvcmRzLCB0aGVzYXVydXMsIHRoaXMubGFuZzMpXG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKVxuXG4gICAgcmV0dXJuIHRoaXMua2V5d29yZHNCeVRoZXNhdXJpW3VyaV1cbiAgfVxuXG4gIHNlYXJjaEtleXdvcmRzSW5UaGVzYXVydXMocXVlcnk6IHN0cmluZywgdGhlc2F1cnVzSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFsbFRoZXNhdXJ1cyQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodGhlc2F1cmkpID0+IHtcbiAgICAgICAgY29uc3Qgc3RyaXBwZWRUaGVzYXVydXNJZCA9IHRoZXNhdXJ1c0lkLnJlcGxhY2UoXG4gICAgICAgICAgJ2dlb25ldHdvcmsudGhlc2F1cnVzLicsXG4gICAgICAgICAgJydcbiAgICAgICAgKVxuICAgICAgICBpZiAoIXRoZXNhdXJpLmZpbmQoKHRoZXMpID0+IHRoZXMua2V5ID09PSBzdHJpcHBlZFRoZXNhdXJ1c0lkKSlcbiAgICAgICAgICByZXR1cm4gb2YoW10pXG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJpZXNBcGlTZXJ2aWNlXG4gICAgICAgICAgLnNlYXJjaEtleXdvcmRzKFxuICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICB0aGlzLmxhbmczLFxuICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBbc3RyaXBwZWRUaGVzYXVydXNJZF0sXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICAgKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChrZXl3b3JkczogS2V5d29yZEFwaVJlc3BvbnNlW10pID0+XG4gICAgICAgICAgICAgIHRoaXMubWFwcGVyLmtleXdvcmRzRnJvbUFwaShrZXl3b3JkcywgdGhlc2F1cmksIHRoaXMubGFuZzMpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRVc2VyRmVlZGJhY2tzKHV1aWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlckZlZWRiYWNrW10+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyZmVlZGJhY2tBcGlTZXJ2aWNlLmdldFVzZXJDb21tZW50cyh1dWlkKS5waXBlKFxuICAgICAgbWFwKCh1c2VyRmVlZGJhY2tzKSA9PlxuICAgICAgICB1c2VyRmVlZGJhY2tzLm1hcCh0aGlzLm1hcHBlci51c2VyRmVlZGJhY2tzRnJvbUFwaSlcbiAgICAgICksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyB1c2VyIGZlZWRiYWNrczonLCBlcnJvcilcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcG9zdFVzZXJGZWVkYmFja3ModXNlckZlZWRiYWNrOiBVc2VyRmVlZGJhY2spOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBtYXBwZWRVc2VyRmVlZEJhY2sgPSB0aGlzLm1hcHBlci51c2VyRmVlZGJhY2tzVG9BcGkodXNlckZlZWRiYWNrKVxuICAgIHJldHVybiB0aGlzLnVzZXJmZWVkYmFja0FwaVNlcnZpY2UubmV3VXNlckZlZWRiYWNrKG1hcHBlZFVzZXJGZWVkQmFjaykucGlwZShcbiAgICAgIG1hcCgoKSA9PiB1bmRlZmluZWQpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcG9zdGluZyB1c2VyIGZlZWRiYWNrOicsIGVycm9yKVxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRSZWNvcmRBdHRhY2htZW50cyhyZWNvcmRVdWlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvcmRzQXBpU2VydmljZS5nZXRBbGxSZXNvdXJjZXMocmVjb3JkVXVpZCkucGlwZShcbiAgICAgIG1hcCgocmVzb3VyY2VzKSA9PlxuICAgICAgICByZXNvdXJjZXMubWFwKChyKSA9PiAoe1xuICAgICAgICAgIHVybDogbmV3IFVSTChyLnVybCksXG4gICAgICAgICAgZmlsZU5hbWU6IHIuZmlsZW5hbWUsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIGNsZWFuUmVjb3JkQXR0YWNobWVudHMocmVjb3JkOiBDYXRhbG9nUmVjb3JkKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5yZWNvcmRzQXBpU2VydmljZS5nZXRBc3NvY2lhdGVkUmVzb3VyY2VzKHJlY29yZC51bmlxdWVJZGVudGlmaWVyKSxcbiAgICAgIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZ2V0QWxsUmVzb3VyY2VzKHJlY29yZC51bmlxdWVJZGVudGlmaWVyKSxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbYXNzb2NpYXRlZCwgYXR0YWNobWVudHNdKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgb25saW5lcyA9IFtdLCB0aHVtYm5haWxzID0gW10gfSA9IGFzc29jaWF0ZWRcblxuICAgICAgICBjb25zdCB1cmxzVG9LZWVwID0gW1xuICAgICAgICAgIC4uLihBcnJheS5pc0FycmF5KG9ubGluZXMpID8gb25saW5lcyA6IFtdKSxcbiAgICAgICAgICAuLi4oQXJyYXkuaXNBcnJheSh0aHVtYm5haWxzKSA/IHRodW1ibmFpbHMgOiBbXSksXG4gICAgICAgIF0ubWFwKChyZXNvdXJjZSkgPT4gT2JqZWN0LnZhbHVlcyhyZXNvdXJjZS51cmwpWzBdKVxuICAgICAgICBjb25zdCBmaWxlVG9EZWxldGUgPSBhdHRhY2htZW50cy5yZWR1Y2U8c3RyaW5nW10+KChhY2MsIGF0dGFjaG1lbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdXJsc1RvS2VlcC5pbmNsdWRlcyhhdHRhY2htZW50LnVybCkgJiZcbiAgICAgICAgICAgIGF0dGFjaG1lbnQuZmlsZW5hbWUgIT09ICdkYXRhdml6Q29uZmlnLmpzb24nXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBhY2MucHVzaChhdHRhY2htZW50LmZpbGVuYW1lKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWNjXG4gICAgICAgIH0sIFtdKVxuXG4gICAgICAgIHJldHVybiBmaWxlVG9EZWxldGVcbiAgICAgIH0pLFxuICAgICAgbWVyZ2VNYXAoKGZpbGVzVG9EZWxldGUpID0+XG4gICAgICAgIGZpbGVzVG9EZWxldGUubGVuZ3RoXG4gICAgICAgICAgPyBmb3JrSm9pbihcbiAgICAgICAgICAgICAgZmlsZXNUb0RlbGV0ZS5tYXAoKGZpbGVuYW1lKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2UuZGVsUmVzb3VyY2UoXG4gICAgICAgICAgICAgICAgICByZWNvcmQudW5pcXVlSWRlbnRpZmllcixcbiAgICAgICAgICAgICAgICAgIGZpbGVuYW1lXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLnBpcGUobWFwKCgpID0+IHVuZGVmaW5lZCkpXG4gICAgICAgICAgOiBvZih1bmRlZmluZWQpXG4gICAgICApLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igd2hpbGUgY2xlYW5pbmcgYXR0YWNobWVudHM6JywgZXJyb3IpXG4gICAgICAgIHRocm93IGVycm9yXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgdXBsb2FkRmlsZShyZWNvcmRVdWlkOiBzdHJpbmcsIGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPFVwbG9hZEV2ZW50PiB7XG4gICAgbGV0IHNpemVCeXRlcyA9IC0xXG4gICAgcmV0dXJuIHRoaXMucmVjb3Jkc0FwaVNlcnZpY2VcbiAgICAgIC5wdXRSZXNvdXJjZShyZWNvcmRVdWlkLCBmaWxlLCAncHVibGljJywgdW5kZWZpbmVkLCAnZXZlbnRzJywgdHJ1ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgIHNpemVCeXRlcyA9IGV2ZW50LnRvdGFsXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0eXBlOiAncHJvZ3Jlc3MnLFxuICAgICAgICAgICAgICBwcm9ncmVzczogZXZlbnQudG90YWxcbiAgICAgICAgICAgICAgICA/IE1hdGgucm91bmQoKDEwMCAqIGV2ZW50LmxvYWRlZCkgLyBldmVudC50b3RhbClcbiAgICAgICAgICAgICAgICA6IDAsXG4gICAgICAgICAgICB9IGFzIFVwbG9hZEV2ZW50XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgICAgICAgIGF0dGFjaG1lbnQ6IHtcbiAgICAgICAgICAgICAgICB1cmw6IG5ldyBVUkwoZXZlbnQuYm9keS51cmwpLFxuICAgICAgICAgICAgICAgIGZpbGVOYW1lOiBldmVudC5ib2R5LmZpbGVuYW1lLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBzaXplQnl0ZXMsXG4gICAgICAgICAgICB9IGFzIFVwbG9hZEV2ZW50XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgfSksXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+ICEhZXZlbnQpLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFxuICAgICAgICAgICAgKCkgPT4gbmV3IEVycm9yKGVycm9yLmVycm9yPy5tZXNzYWdlID8/IGVycm9yLm1lc3NhZ2UpXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuICAgICAgKVxuICB9XG4gIGdldEZpbGVDb250ZW50KHVybDogVVJMIHwgc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KHVybC50b1N0cmluZygpLCB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pLFxuICAgICAgdGhpcy5nZXRBcGlWZXJzaW9uKCksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3RleHQsIHZlcnNpb25dKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UodGV4dClcblxuICAgICAgICBpZiAodmVyc2lvbiA+IHRoaXMuZ25QYXJzZVZlcnNpb24pIHtcbiAgICAgICAgICByZXR1cm4gcGFyc2VkXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWNvZGVkID0gdGhpcy5kZWNvZGVCYXNlNjQocGFyc2VkKVxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVkKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBkZWNvZGVCYXNlNjQoYmFzZTY0KSB7XG4gICAgY29uc3QgdGV4dCA9IGF0b2IoYmFzZTY0KVxuICAgIGNvbnN0IGxlbmd0aCA9IHRleHQubGVuZ3RoXG4gICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShsZW5ndGgpXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgYnl0ZXNbaV0gPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICB9XG4gICAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpXG4gICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGJ5dGVzKVxuICB9XG5cbiAgYXR0YWNoRmlsZVRvUmVjb3JkKFxuICAgIHJlY29yZFV1aWQ6IHN0cmluZyxcbiAgICBmaWxlOiBGaWxlLFxuICAgIHJlbW92ZUR1cGxpY2F0ZSA9IGZhbHNlXG4gICk6IE9ic2VydmFibGU8VXBsb2FkRXZlbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRSZWNvcmRBdHRhY2htZW50cyhyZWNvcmRVdWlkKS5waXBlKFxuICAgICAgbWFwKChyZWNvcmRBdHRhY2htZW50cykgPT4gcmVjb3JkQXR0YWNobWVudHMubWFwKChyKSA9PiByLmZpbGVOYW1lKSksXG4gICAgICBzd2l0Y2hNYXAoKGZpbGVOYW1lcykgPT4ge1xuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGZpbGUubmFtZVxuXG4gICAgICAgIGlmIChyZW1vdmVEdXBsaWNhdGUgJiYgZmlsZU5hbWVzLmluY2x1ZGVzKGZpbGUubmFtZSkpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZWNvcmRzQXBpU2VydmljZS5kZWxSZXNvdXJjZShyZWNvcmRVdWlkLCBmaWxlTmFtZSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVDb3B5ID0gbmV3IEZpbGUoW2ZpbGVdLCBmaWxlTmFtZSwgeyB0eXBlOiBmaWxlLnR5cGUgfSlcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkRmlsZShyZWNvcmRVdWlkLCBmaWxlQ29weSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGZpbmFsRmlsZU5hbWUgPSBub0R1cGxpY2F0ZUZpbGVOYW1lKGZpbGVOYW1lLCBmaWxlTmFtZXMpXG4gICAgICAgICAgY29uc3QgZmlsZUNvcHkgPSBuZXcgRmlsZShbZmlsZV0sIGZpbmFsRmlsZU5hbWUsIHsgdHlwZTogZmlsZS50eXBlIH0pXG4gICAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkRmlsZShyZWNvcmRVdWlkLCBmaWxlQ29weSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const METADATA_LANGUAGE = new InjectionToken('metadata-language');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtbGFuZ3VhZ2UudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9yZXBvc2l0b3J5L3NyYy9saWIvbWV0YWRhdGEtbGFuZ3VhZ2UudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUs5QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FFakQsbUJBQW1CLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IExhbmd1YWdlQ29kZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxuZXhwb3J0IHR5cGUgTGFuZ3VhZ2VDb2RlRmFjdG9yeSA9ICgpID0+IExhbmd1YWdlQ29kZVxuXG5leHBvcnQgY29uc3QgTUVUQURBVEFfTEFOR1VBR0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48XG4gIExhbmd1YWdlQ29kZSB8IExhbmd1YWdlQ29kZUZhY3Rvcnlcbj4oJ21ldGFkYXRhLWxhbmd1YWdlJylcbiJdfQ==
@@ -51,4 +51,14 @@ export const RecordStatusValues = [
51
51
  'planned',
52
52
  'required',
53
53
  ];
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
54
+ marker('record.metadata.api.accessServiceProtocol.wms');
55
+ marker('record.metadata.api.accessServiceProtocol.wfs');
56
+ marker('record.metadata.api.accessServiceProtocol.wps');
57
+ marker('record.metadata.api.accessServiceProtocol.wmts');
58
+ marker('record.metadata.api.accessServiceProtocol.esriRest');
59
+ marker('record.metadata.api.accessServiceProtocol.ogcFeatures');
60
+ marker('record.metadata.api.accessServiceProtocol.GPFDL');
61
+ marker('record.metadata.api.accessServiceProtocol.tms');
62
+ marker('record.metadata.api.accessServiceProtocol.maplibre-style');
63
+ marker('record.metadata.api.accessServiceProtocol.other');
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQvbWV0YWRhdGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBZ0JoRSxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQTtBQUMvQyxNQUFNLENBQUMsMENBQTBDLENBQUMsQ0FBQTtBQUNsRCxNQUFNLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtBQUNoRCxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQTtBQUNqRCxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQTtBQUNqRCxNQUFNLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtBQUVoRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUN2QyxTQUFTO0lBQ1QsWUFBWTtJQUNaLFVBQVU7SUFDVixXQUFXO0lBQ1gsV0FBVztJQUNYLFVBQVU7SUFDVixPQUFPO0lBQ1AsUUFBUTtJQUNSLGFBQWE7SUFDYixhQUFhO0lBQ2IsU0FBUztJQUNULFdBQVc7SUFDWCxZQUFZO0lBQ1osVUFBVTtJQUNWLFlBQVk7Q0FDSixDQUFBO0FBSVYsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLENBQUE7QUFDM0MsTUFBTSxDQUFDLG9DQUFvQyxDQUFDLENBQUE7QUFDNUMsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUE7QUFDN0MsTUFBTSxDQUFDLG9DQUFvQyxDQUFDLENBQUE7QUFFNUMsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUE7QUFDN0MsTUFBTSxDQUFDLHNDQUFzQyxDQUFDLENBQUE7QUFDOUMsTUFBTSxDQUFDLDJDQUEyQyxDQUFDLENBQUE7QUFDbkQsTUFBTSxDQUFDLHVDQUF1QyxDQUFDLENBQUE7QUFDL0MsTUFBTSxDQUFDLHlDQUF5QyxDQUFDLENBQUE7QUFDakQsTUFBTSxDQUFDLDBDQUEwQyxDQUFDLENBQUE7QUFDbEQsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLENBQUE7QUFDaEQsTUFBTSxDQUFDLDJDQUEyQyxDQUFDLENBQUE7QUFDbkQsTUFBTSxDQUFDLDBDQUEwQyxDQUFDLENBQUE7QUFVbEQsTUFBTSxDQUFDLGdDQUFnQyxDQUFDLENBQUE7QUFDeEMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7QUFDdEMsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLENBQUE7QUFDaEQsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLENBQUE7QUFDekMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7QUFDdEMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7QUFDdEMsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUE7QUFFdkMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsV0FBVztJQUNYLFNBQVM7SUFDVCxtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLFNBQVM7SUFDVCxTQUFTO0lBQ1QsVUFBVTtDQUNYLENBQUE7QUFxRkQsTUFBTSxDQUFDLCtDQUErQyxDQUFDLENBQUE7QUFDdkQsTUFBTSxDQUFDLCtDQUErQyxDQUFDLENBQUE7QUFDdkQsTUFBTSxDQUFDLCtDQUErQyxDQUFDLENBQUE7QUFDdkQsTUFBTSxDQUFDLGdEQUFnRCxDQUFDLENBQUE7QUFDeEQsTUFBTSxDQUFDLG9EQUFvRCxDQUFDLENBQUE7QUFDNUQsTUFBTSxDQUFDLHVEQUF1RCxDQUFDLENBQUE7QUFDL0QsTUFBTSxDQUFDLGlEQUFpRCxDQUFDLENBQUE7QUFDekQsTUFBTSxDQUFDLCtDQUErQyxDQUFDLENBQUE7QUFDdkQsTUFBTSxDQUFDLDBEQUEwRCxDQUFDLENBQUE7QUFDbEUsTUFBTSxDQUFDLGlEQUFpRCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQgdHlwZSB7IEluZGl2aWR1YWwgfSBmcm9tICcuL2NvbnRhY3QubW9kZWwnXG5pbXBvcnQgdHlwZSB7IE9yZ2FuaXphdGlvbiB9IGZyb20gJy4vb3JnYW5pemF0aW9uLm1vZGVsJ1xuaW1wb3J0IHR5cGUgeyBHZW9tZXRyeSB9IGZyb20gJ2dlb2pzb24nXG5pbXBvcnQgeyBLZXl3b3JkVHlwZSwgVGhlc2F1cnVzTW9kZWwgfSBmcm9tICcuLi90aGVzYXVydXMnXG5pbXBvcnQge1xuICBDb25zdHJhaW50VHJhbnNsYXRpb25zLFxuICBLZXl3b3JkVHJhbnNsYXRpb25zLFxuICBMYW5ndWFnZUNvZGUsXG4gIE9ubGluZVJlc291cmNlVHJhbnNsYXRpb25zLFxuICBSZWNvcmRUcmFuc2xhdGlvbnMsXG4gIFNwYXRpYWxFeHRlbnRUcmFuc2xhdGlvbnMsXG59IGZyb20gJy4vdHJhbnNsYXRpb24ubW9kZWwnXG5cbnR5cGUgVXVpZCA9IHN0cmluZ1xuXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LnVua25vd24nKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5ub3RQbGFubmVkJylcbm1hcmtlcignZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kuYXNOZWVkZWQnKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5pcnJlZ3VsYXInKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5jb250aW51YWwnKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5wZXJpb2RpYycpXG5cbmV4cG9ydCBjb25zdCB1cGRhdGVGcmVxdWVuY3lDb2RlVmFsdWVzID0gW1xuICAndW5rbm93bicsXG4gICdub3RQbGFubmVkJyxcbiAgJ2FzTmVlZGVkJyxcbiAgJ2lycmVndWxhcicsXG4gICdjb250aW51YWwnLFxuICAncGVyaW9kaWMnLFxuICAnZGFpbHknLFxuICAnd2Vla2x5JyxcbiAgJ2ZvcnRuaWdodGx5JyxcbiAgJ3NlbWltb250aGx5JyxcbiAgJ21vbnRobHknLFxuICAncXVhcnRlcmx5JyxcbiAgJ2JpYW5udWFsbHknLFxuICAnYW5udWFsbHknLFxuICAnYmllbm5pYWxseScsXG5dIGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZUZyZXF1ZW5jeUNvZGUgPSAodHlwZW9mIHVwZGF0ZUZyZXF1ZW5jeUNvZGVWYWx1ZXMpW251bWJlcl1cblxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5kYXknKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS53ZWVrJylcbm1hcmtlcignZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kubW9udGgnKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS55ZWFyJylcblxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5kYWlseScpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LndlZWtseScpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LmZvcnRuaWdodGx5Jylcbm1hcmtlcignZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kubW9udGhseScpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LnF1YXJ0ZXJseScpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LmJpYW5udWFsbHknKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnVwZGF0ZUZyZXF1ZW5jeS5hbm51YWxseScpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQudXBkYXRlRnJlcXVlbmN5LnNlbWltb250aGx5Jylcbm1hcmtlcignZG9tYWluLnJlY29yZC51cGRhdGVGcmVxdWVuY3kuYmllbm5pYWxseScpXG5cbmV4cG9ydCB0eXBlIFVwZGF0ZUZyZXF1ZW5jeUN1c3RvbSA9IHtcbiAgdXBkYXRlZFRpbWVzOiBudW1iZXIgLy8gdGhpcyBzaG91bGQgYmUgYW4gaW50ZWdlclxuICBwZXI6ICdkYXknIHwgJ3dlZWsnIHwgJ21vbnRoJyB8ICd5ZWFyJ1xufVxuZXhwb3J0IHR5cGUgVXBkYXRlRnJlcXVlbmN5ID0gVXBkYXRlRnJlcXVlbmN5Q29kZSB8IFVwZGF0ZUZyZXF1ZW5jeUN1c3RvbVxuXG5leHBvcnQgdHlwZSBSZWNvcmRLaW5kID0gJ2RhdGFzZXQnIHwgJ3NlcnZpY2UnIHwgJ3JldXNlJ1xuXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQuc3RhdHVzLmNvbXBsZXRlZCcpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQuc3RhdHVzLm9uZ29pbmcnKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnN0YXR1cy51bmRlcl9kZXZlbG9wbWVudCcpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQuc3RhdHVzLmRlcHJlY2F0ZWQnKVxubWFya2VyKCdkb21haW4ucmVjb3JkLnN0YXR1cy5yZW1vdmVkJylcbm1hcmtlcignZG9tYWluLnJlY29yZC5zdGF0dXMucGxhbm5lZCcpXG5tYXJrZXIoJ2RvbWFpbi5yZWNvcmQuc3RhdHVzLnJlcXVpcmVkJylcblxuZXhwb3J0IGNvbnN0IFJlY29yZFN0YXR1c1ZhbHVlcyA9IFtcbiAgJ2NvbXBsZXRlZCcsXG4gICdvbmdvaW5nJyxcbiAgJ3VuZGVyX2RldmVsb3BtZW50JyxcbiAgJ2RlcHJlY2F0ZWQnLFxuICAncmVtb3ZlZCcsXG4gICdwbGFubmVkJyxcbiAgJ3JlcXVpcmVkJyxcbl1cbmV4cG9ydCB0eXBlIFJlY29yZFN0YXR1cyA9ICh0eXBlb2YgUmVjb3JkU3RhdHVzVmFsdWVzKVtudW1iZXJdXG5cbmV4cG9ydCB0eXBlIENvbnN0cmFpbnQgPSB7XG4gIHRleHQ6IHN0cmluZ1xuICB1cmw/OiBVUkxcblxuICB0cmFuc2xhdGlvbnM/OiBDb25zdHJhaW50VHJhbnNsYXRpb25zXG59XG5cbmV4cG9ydCB0eXBlIFNwYXRpYWxSZXByZXNlbnRhdGlvblR5cGUgPVxuICB8ICdncmlkJ1xuICB8ICd2ZWN0b3InXG4gIHwgJ3RpbidcbiAgfCAndGFibGUnXG4gIHwgJ3BvaW50J1xuXG5leHBvcnQgaW50ZXJmYWNlIEtleXdvcmQge1xuICBrZXk/OiBzdHJpbmdcbiAgbGFiZWw6IHN0cmluZ1xuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICB0eXBlOiBLZXl3b3JkVHlwZVxuICB0aGVzYXVydXM/OiBUaGVzYXVydXNNb2RlbFxuICBiYm94PzogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl1cblxuICB0cmFuc2xhdGlvbnM/OiBLZXl3b3JkVHJhbnNsYXRpb25zXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU5TUElSRV90aGVtZSB7XG4gIHZhbHVlOiBzdHJpbmdcbiAgbGFiZWw6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VSZWNvcmQge1xuICB1bmlxdWVJZGVudGlmaWVyOiBVdWlkXG4gIG93bmVyT3JnYW5pemF0aW9uOiBPcmdhbml6YXRpb25cbiAgY29udGFjdHM6IEFycmF5PEluZGl2aWR1YWw+XG4gIHRpdGxlOiBzdHJpbmdcbiAgYWJzdHJhY3Q6IHN0cmluZ1xuICByZWNvcmRDcmVhdGVkPzogRGF0ZVxuICByZWNvcmRQdWJsaXNoZWQ/OiBEYXRlXG4gIHJlY29yZFVwZGF0ZWQ6IERhdGVcbiAga2luZDogUmVjb3JkS2luZFxuICB0b3BpY3M6IEFycmF5PHN0cmluZz4gLy8gVE9ETzogaGFuZGxlIGNvZGVsaXN0c1xuICBrZXl3b3JkczogQXJyYXk8S2V5d29yZD5cbiAgbGljZW5zZXM6IEFycmF5PENvbnN0cmFpbnQ+XG4gIGxlZ2FsQ29uc3RyYWludHM6IEFycmF5PENvbnN0cmFpbnQ+XG4gIHNlY3VyaXR5Q29uc3RyYWludHM6IEFycmF5PENvbnN0cmFpbnQ+XG4gIG90aGVyQ29uc3RyYWludHM6IEFycmF5PENvbnN0cmFpbnQ+XG4gIG92ZXJ2aWV3czogQXJyYXk8R3JhcGhpY092ZXJ2aWV3PlxuICBleHRyYXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBsYW5kaW5nUGFnZT86IFVSTFxuICB1cGRhdGVGcmVxdWVuY3k/OiBVcGRhdGVGcmVxdWVuY3lcblxuICAvLyBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIHRoZSByZXNvdXJjZSAoZGF0YXNldCwgc2VydmljZSlcbiAgcmVzb3VyY2VJZGVudGlmaWVyPzogc3RyaW5nXG4gIGNvbnRhY3RzRm9yUmVzb3VyY2U6IEFycmF5PEluZGl2aWR1YWw+XG4gIHJlc291cmNlQ3JlYXRlZD86IERhdGVcbiAgcmVzb3VyY2VQdWJsaXNoZWQ/OiBEYXRlXG4gIHJlc291cmNlVXBkYXRlZD86IERhdGVcblxuICAvLyBtdWx0aWxpbmd1YWwgc3VwcG9ydFxuICBkZWZhdWx0TGFuZ3VhZ2U6IExhbmd1YWdlQ29kZVxuICBvdGhlckxhbmd1YWdlczogQXJyYXk8TGFuZ3VhZ2VDb2RlPiAvLyB0aGlzIHNob3VsZCBpbmNsdWRlIGFsbCBub24tZGVmYXVsdCBsYW5ndWFnZXMgcHJlc2VudCBpbiB0aGUgbWV0YWRhdGEsIGV2ZW4gaWYgaW5jb21wbGV0ZWx5IHRyYW5zbGF0ZWRcblxuICB0cmFuc2xhdGlvbnM/OiBSZWNvcmRUcmFuc2xhdGlvbnNcblxuICAvLyB0byBhZGQ6IGNhbm9uaWNhbCB1cmxcbiAgLy8gdG8gYWRkOiBzb3VyY2UgY2F0YWxvZyAoPz8pXG4gIC8vIHRvIGFkZDogaXMgb3BlbiBkYXRhID9cbn1cblxuLy8gVE9ETzogaGFuZGxlIGFjdHVhbCBjb2RlbGlzdHNcbmV4cG9ydCB0eXBlIFNlcnZpY2VQcm90b2NvbCA9XG4gIHwgJ3dtcydcbiAgfCAnd2ZzJ1xuICB8ICd3cHMnXG4gIHwgJ3dtdHMnXG4gIHwgJ2VzcmlSZXN0J1xuICB8ICdvZ2NGZWF0dXJlcydcbiAgfCAnR1BGREwnXG4gIHwgJ3RtcydcbiAgfCAnbWFwbGlicmUtc3R5bGUnXG4gIHwgJ290aGVyJ1xuXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5hcGkuYWNjZXNzU2VydmljZVByb3RvY29sLndtcycpXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5hcGkuYWNjZXNzU2VydmljZVByb3RvY29sLndmcycpXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5hcGkuYWNjZXNzU2VydmljZVByb3RvY29sLndwcycpXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5hcGkuYWNjZXNzU2VydmljZVByb3RvY29sLndtdHMnKVxubWFya2VyKCdyZWNvcmQubWV0YWRhdGEuYXBpLmFjY2Vzc1NlcnZpY2VQcm90b2NvbC5lc3JpUmVzdCcpXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5hcGkuYWNjZXNzU2VydmljZVByb3RvY29sLm9nY0ZlYXR1cmVzJylcbm1hcmtlcigncmVjb3JkLm1ldGFkYXRhLmFwaS5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wuR1BGREwnKVxubWFya2VyKCdyZWNvcmQubWV0YWRhdGEuYXBpLmFjY2Vzc1NlcnZpY2VQcm90b2NvbC50bXMnKVxubWFya2VyKCdyZWNvcmQubWV0YWRhdGEuYXBpLmFjY2Vzc1NlcnZpY2VQcm90b2NvbC5tYXBsaWJyZS1zdHlsZScpXG5tYXJrZXIoJ3JlY29yZC5tZXRhZGF0YS5hcGkuYWNjZXNzU2VydmljZVByb3RvY29sLm90aGVyJylcblxuZXhwb3J0IHR5cGUgT25saW5lUmVzb3VyY2VUeXBlID0gJ3NlcnZpY2UnIHwgJ2Rvd25sb2FkJyB8ICdsaW5rJyB8ICdlbmRwb2ludCdcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbiB7XG4gIHR5cGU6ICdzZXJ2aWNlJ1xuICB1cmw6IFVSTFxuICBhY2Nlc3NTZXJ2aWNlUHJvdG9jb2w6IFNlcnZpY2VQcm90b2NvbFxuICBpZGVudGlmaWVySW5TZXJ2aWNlPzogc3RyaW5nIC8vIHNob3VsZCB3ZSBrZWVwIHRoZSBpZGVudGlmaWVySW5TZXJ2aWNlPyByZWFkLXdyaXRlIGR1cGxpY2F0ZSB3aXRoIG5hbWVcbiAgbmFtZT86IHN0cmluZ1xuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICB0cmFuc2xhdGlvbnM/OiBPbmxpbmVSZXNvdXJjZVRyYW5zbGF0aW9uc1xuICBhY2Nlc3NSZXN0cmljdGVkPzogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbiB7XG4gIHR5cGU6ICdkb3dubG9hZCdcbiAgdXJsOiBVUkxcbiAgbWltZVR5cGU/OiBzdHJpbmdcbiAgc2l6ZUJ5dGVzPzogbnVtYmVyXG4gIC8vIHJlbW92ZWQgYmVjYXVzZSB3aGF0J3MgdGhlIHVzZT8gZW5jb2RpbmcgY2FuIGJlIGV4cG9zZWQgYnkgdGhlIGZpbGUgc2VydmVyIG9yXG4gIC8vIGV2ZW4gZm91bmQgb3V0IGJ5IHRyaWFsIGFuZCBlcnJvcjsgYmVzaWRlcyB3ZSBjYW4gcmVhc29uYWJseSBleHBlY3QgdW5pY29kZSBvciBpc28gbW9zdCBvZiB0aGUgdGltZVxuICAvLyB0ZXh0RW5jb2Rpbmc/OiBzdHJpbmdcbiAgbmFtZT86IHN0cmluZ1xuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICBhY2Nlc3NTZXJ2aWNlUHJvdG9jb2w/OiBTZXJ2aWNlUHJvdG9jb2xcbiAgdHJhbnNsYXRpb25zPzogT25saW5lUmVzb3VyY2VUcmFuc2xhdGlvbnNcbiAgYWNjZXNzUmVzdHJpY3RlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmxpbmVMaW5rUmVzb3VyY2Uge1xuICB0eXBlOiAnbGluaydcbiAgdXJsOiBVUkxcbiAgbmFtZT86IHN0cmluZ1xuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICB0cmFuc2xhdGlvbnM/OiBPbmxpbmVSZXNvdXJjZVRyYW5zbGF0aW9uc1xuICBtaW1lVHlwZT86IHN0cmluZ1xuICBhY2Nlc3NSZXN0cmljdGVkPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBEYXRhc2V0T25saW5lUmVzb3VyY2UgPSAoXG4gIHwgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgfCBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb25cbiAgfCBPbmxpbmVMaW5rUmVzb3VyY2VcbikgJiB7XG4gIHR5cGU6IE9ubGluZVJlc291cmNlVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyYXBoaWNPdmVydmlldyB7XG4gIHVybDogVVJMXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXNldFNwYXRpYWxFeHRlbnQge1xuICBiYm94PzogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl1cbiAgZ2VvbWV0cnk/OiBHZW9tZXRyeVxuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICB0cmFuc2xhdGlvbnM/OiBTcGF0aWFsRXh0ZW50VHJhbnNsYXRpb25zXG59XG5cbi8qKlxuICogUGVyaW9kIGlmIGJvdGggc3RhcnQgYW5kIGVuZCBhcmUgcHJvdmlkZWRcbiAqIEluc3RhbnQgaWYgb25seSBzdGFydCBpcyBwcm92aWRlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFzZXRUZW1wb3JhbEV4dGVudCB7XG4gIHN0YXJ0OiBEYXRlXG4gIGVuZD86IERhdGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhc2V0UmVjb3JkIGV4dGVuZHMgQmFzZVJlY29yZCB7XG4gIGtpbmQ6ICdkYXRhc2V0J1xuICBzdGF0dXM6IFJlY29yZFN0YXR1c1xuICBsaW5lYWdlOiBzdHJpbmcgLy8gRXhwbGFuYXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGlzIHJlY29yZCAoZS5nOiBob3csIHdoeSlcIlxuICBvbmxpbmVSZXNvdXJjZXM6IEFycmF5PERhdGFzZXRPbmxpbmVSZXNvdXJjZT5cbiAgc3BhdGlhbEV4dGVudHM6IEFycmF5PERhdGFzZXRTcGF0aWFsRXh0ZW50PlxuICB0ZW1wb3JhbEV4dGVudHM6IEFycmF5PERhdGFzZXRUZW1wb3JhbEV4dGVudD5cbiAgc3BhdGlhbFJlcHJlc2VudGF0aW9uPzogU3BhdGlhbFJlcHJlc2VudGF0aW9uVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VFbmRwb2ludCB7XG4gIHVybDogVVJMXG4gIGFjY2Vzc1NlcnZpY2VQcm90b2NvbDogU2VydmljZVByb3RvY29sXG4gIHR5cGU6ICdlbmRwb2ludCdcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgdHJhbnNsYXRpb25zPzogT25saW5lUmVzb3VyY2VUcmFuc2xhdGlvbnNcbn1cblxuZXhwb3J0IHR5cGUgU2VydmljZU9ubGluZVJlc291cmNlID0gKFNlcnZpY2VFbmRwb2ludCB8IE9ubGluZUxpbmtSZXNvdXJjZSkgJiB7XG4gIHR5cGU6IE9ubGluZVJlc291cmNlVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VSZWNvcmQgZXh0ZW5kcyBCYXNlUmVjb3JkIHtcbiAga2luZDogJ3NlcnZpY2UnXG4gIG9ubGluZVJlc291cmNlczogQXJyYXk8U2VydmljZU9ubGluZVJlc291cmNlPlxuICBzcGF0aWFsRXh0ZW50czogQXJyYXk8RGF0YXNldFNwYXRpYWxFeHRlbnQ+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmV1c2VSZWNvcmQgZXh0ZW5kcyBCYXNlUmVjb3JkIHtcbiAga2luZDogJ3JldXNlJ1xuICBsaW5lYWdlOiBzdHJpbmcgLy8gRXhwbGFuYXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGlzIHJlY29yZCAoZS5nOiBob3csIHdoeSlcIlxuICBvbmxpbmVSZXNvdXJjZXM6IEFycmF5PERhdGFzZXRPbmxpbmVSZXNvdXJjZT5cbiAgcmV1c2VUeXBlOiBSZXVzZVR5cGVcbiAgc3BhdGlhbEV4dGVudHM6IEFycmF5PERhdGFzZXRTcGF0aWFsRXh0ZW50PlxuICB0ZW1wb3JhbEV4dGVudHM6IEFycmF5PERhdGFzZXRUZW1wb3JhbEV4dGVudD5cbn1cblxuZXhwb3J0IHR5cGUgRGF0YXNldEZlYXR1cmVDYXRhbG9nID0ge1xuICBmZWF0dXJlVHlwZXM6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmdcbiAgICBkZWZpbml0aW9uOiBzdHJpbmdcbiAgICBhdHRyaWJ1dGVzOiBEYXRhc2V0RmVhdHVyZUF0dHJpYnV0ZVtdXG4gIH0+XG59XG5leHBvcnQgaW50ZXJmYWNlIERhdGFzZXRGZWF0dXJlQXR0cmlidXRlVmFsdWUge1xuICBjb2RlPzogc3RyaW5nXG4gIGRlZmluaXRpb24/OiBzdHJpbmdcbiAgbGFiZWw/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXNldEZlYXR1cmVBdHRyaWJ1dGUge1xuICBuYW1lOiBzdHJpbmdcbiAgZGVmaW5pdGlvbjogc3RyaW5nXG4gIHR5cGU6IHN0cmluZ1xuICBjb2RlOiBzdHJpbmdcbiAgdmFsdWVzPzogQXJyYXk8RGF0YXNldEZlYXR1cmVBdHRyaWJ1dGVWYWx1ZT5cbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXNldEZlYXR1cmVUeXBlIHtcbiAgYWxpYXNlczogc3RyaW5nXG4gIGNvZGU6IHN0cmluZ1xuICBpc0Fic3RyYWN0OiBzdHJpbmdcbiAgdHlwZU5hbWU6IHN0cmluZ1xuICBkZWZpbml0aW9uOiBzdHJpbmdcbiAgYXR0cmlidXRlVGFibGU6IEFycmF5PERhdGFzZXRGZWF0dXJlQXR0cmlidXRlPlxufVxuXG5leHBvcnQgdHlwZSBSZXVzZVR5cGUgPSAnYXBwbGljYXRpb24nIHwgJ21hcCcgfCAnb3RoZXInXG5cbmV4cG9ydCB0eXBlIE9ubGluZVJlc291cmNlID0gRGF0YXNldE9ubGluZVJlc291cmNlIHwgU2VydmljZU9ubGluZVJlc291cmNlXG5cbmV4cG9ydCB0eXBlIENhdGFsb2dSZWNvcmQgPSBEYXRhc2V0UmVjb3JkIHwgUmV1c2VSZWNvcmQgfCBTZXJ2aWNlUmVjb3JkXG5cbmV4cG9ydCB0eXBlIENhdGFsb2dSZWNvcmRLZXlzID1cbiAgfCBrZXlvZiBEYXRhc2V0UmVjb3JkXG4gIHwga2V5b2YgUmV1c2VSZWNvcmRcbiAgfCBrZXlvZiBTZXJ2aWNlUmVjb3JkXG4iXX0=
@@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
2
2
  import { SourcesApiService } from '../../../../../../libs/data-access/gn4/src';
3
3
  import { filter, map, shareReplay } from 'rxjs/operators';
4
4
  import { TranslateService } from '@ngx-translate/core';
5
- import { getLang3FromLang2 } from '../../../../../../libs/util/i18n/src';
5
+ import { toLang3 } from '../../../../../../libs/util/i18n/src';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "../../../../../../libs/data-access/gn4/src";
8
8
  import * as i2 from "@ngx-translate/core";
@@ -13,7 +13,7 @@ export class SourcesService {
13
13
  this.sources$ = this.sourcesApiService.getSubPortals1().pipe(shareReplay());
14
14
  }
15
15
  getSourceLabel(uuid) {
16
- return this.sources$.pipe(map((sources) => sources.filter((source) => source.uuid === uuid)[0]), filter((source) => !!source), map((source) => source.label[getLang3FromLang2(this.translateService.currentLang)]));
16
+ return this.sources$.pipe(map((sources) => sources.filter((source) => source.uuid === uuid)[0]), filter((source) => !!source), map((source) => source.label[toLang3(this.translateService.currentLang)]));
17
17
  }
18
18
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SourcesService, deps: [{ token: i1.SourcesApiService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
19
19
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SourcesService, providedIn: 'root' }); }
@@ -24,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
24
24
  providedIn: 'root',
25
25
  }]
26
26
  }], ctorParameters: () => [{ type: i1.SourcesApiService }, { type: i2.TranslateService }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2NhdGFsb2cvc3JjL2xpYi9zb3VyY2VzL3NvdXJjZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBRTlFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFBOzs7O0FBS3hFLE1BQU0sT0FBTyxjQUFjO0lBS3pCLFlBQ1UsaUJBQW9DLEVBQ3BDLGdCQUFrQztRQURsQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFONUMsYUFBUSxHQUNOLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQ3RDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFLbEIsQ0FBQztJQUVKLGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3ZCLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNyRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDNUIsR0FBRyxDQUNELENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDVCxNQUFNLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUNyRSxDQUNGLENBQUE7SUFDSCxDQUFDOytHQW5CVSxjQUFjO21IQUFkLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgU291cmNlc0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL2duNC9zcmMnXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgQ2F0YWxvZ1NvdXJjZSB9IGZyb20gJy4vc291cmNlcy5tb2RlbCdcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgZ2V0TGFuZzNGcm9tTGFuZzIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTb3VyY2VzU2VydmljZSB7XG4gIHNvdXJjZXMkOiBPYnNlcnZhYmxlPENhdGFsb2dTb3VyY2VbXT4gPSAoXG4gICAgdGhpcy5zb3VyY2VzQXBpU2VydmljZS5nZXRTdWJQb3J0YWxzMSgpIGFzIE9ic2VydmFibGU8Q2F0YWxvZ1NvdXJjZVtdPlxuICApLnBpcGUoc2hhcmVSZXBsYXkoKSlcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNvdXJjZXNBcGlTZXJ2aWNlOiBTb3VyY2VzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIGdldFNvdXJjZUxhYmVsKHV1aWQ6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuc291cmNlcyQucGlwZShcbiAgICAgIG1hcCgoc291cmNlcykgPT4gc291cmNlcy5maWx0ZXIoKHNvdXJjZSkgPT4gc291cmNlLnV1aWQgPT09IHV1aWQpWzBdKSxcbiAgICAgIGZpbHRlcigoc291cmNlKSA9PiAhIXNvdXJjZSksXG4gICAgICBtYXAoXG4gICAgICAgIChzb3VyY2UpID0+XG4gICAgICAgICAgc291cmNlLmxhYmVsW2dldExhbmczRnJvbUxhbmcyKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyldXG4gICAgICApXG4gICAgKVxuICB9XG59XG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2NhdGFsb2cvc3JjL2xpYi9zb3VyY2VzL3NvdXJjZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBRTlFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTs7OztBQUs5RCxNQUFNLE9BQU8sY0FBYztJQUt6QixZQUNVLGlCQUFvQyxFQUNwQyxnQkFBa0M7UUFEbEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBTjVDLGFBQVEsR0FDTixJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUN0QyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO0lBS2xCLENBQUM7SUFFSixjQUFjLENBQUMsSUFBWTtRQUN6QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN2QixHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDckUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQzVCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDMUUsQ0FBQTtJQUNILENBQUM7K0dBaEJVLGNBQWM7bUhBQWQsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBTb3VyY2VzQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3MvZ240L3NyYydcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBDYXRhbG9nU291cmNlIH0gZnJvbSAnLi9zb3VyY2VzLm1vZGVsJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyB0b0xhbmczIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2kxOG4vc3JjJ1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU291cmNlc1NlcnZpY2Uge1xuICBzb3VyY2VzJDogT2JzZXJ2YWJsZTxDYXRhbG9nU291cmNlW10+ID0gKFxuICAgIHRoaXMuc291cmNlc0FwaVNlcnZpY2UuZ2V0U3ViUG9ydGFsczEoKSBhcyBPYnNlcnZhYmxlPENhdGFsb2dTb3VyY2VbXT5cbiAgKS5waXBlKHNoYXJlUmVwbGF5KCkpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzb3VyY2VzQXBpU2VydmljZTogU291cmNlc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBnZXRTb3VyY2VMYWJlbCh1dWlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnNvdXJjZXMkLnBpcGUoXG4gICAgICBtYXAoKHNvdXJjZXMpID0+IHNvdXJjZXMuZmlsdGVyKChzb3VyY2UpID0+IHNvdXJjZS51dWlkID09PSB1dWlkKVswXSksXG4gICAgICBmaWx0ZXIoKHNvdXJjZSkgPT4gISFzb3VyY2UpLFxuICAgICAgbWFwKChzb3VyY2UpID0+IHNvdXJjZS5sYWJlbFt0b0xhbmczKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyldKVxuICAgIClcbiAgfVxufVxuIl19
@@ -0,0 +1,79 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AutocompleteComponent, BadgeComponent } from '../../../../../../../../../libs/ui/inputs/src';
4
+ import { NgIconComponent } from '@ng-icons/core';
5
+ import { INSPIRE_THEMES } from '../../../../fields.config';
6
+ import { TranslatePipe, TranslateService } from '@ngx-translate/core';
7
+ import { of } from 'rxjs';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@ngx-translate/core";
10
+ import * as i2 from "@angular/common";
11
+ export class FormFieldInspireThemeComponent {
12
+ set value(themes) {
13
+ this.themes = themes;
14
+ }
15
+ constructor(translateService) {
16
+ this.translateService = translateService;
17
+ this.themes = [];
18
+ this.valueChange = new EventEmitter();
19
+ this.availableThemes = INSPIRE_THEMES;
20
+ this.displayWithFn = (item) => {
21
+ return item?.title ? `${item.title}` : '';
22
+ };
23
+ this.autoCompleteAction = (query) => {
24
+ return of(this.availableThemes
25
+ .filter((theme) => theme.value.toLowerCase().includes(query.toLowerCase()))
26
+ .sort((a, b) => {
27
+ const aStarts = a.value.startsWith(query);
28
+ const bStarts = b.value.startsWith(query);
29
+ if (aStarts && !bStarts)
30
+ return -1;
31
+ if (!aStarts && bStarts)
32
+ return 1;
33
+ return 0;
34
+ })
35
+ .map((theme) => {
36
+ return {
37
+ title: this.translateService.instant(theme.label),
38
+ value: theme.value,
39
+ };
40
+ }));
41
+ };
42
+ }
43
+ handleItemSelection(item) {
44
+ this.addTheme(item.value);
45
+ }
46
+ addTheme(theme) {
47
+ const duplicatedTheme = this.themes.find((t) => t === theme);
48
+ if (!duplicatedTheme) {
49
+ this.themes = [...this.themes, theme];
50
+ this.valueChange.emit(this.themes);
51
+ }
52
+ }
53
+ removeTheme(theme) {
54
+ console.log(this.themes);
55
+ this.themes = this.themes.filter((t) => t !== theme);
56
+ this.valueChange.emit(this.themes);
57
+ }
58
+ getTranslatedTheme(theme) {
59
+ const themeKey = this.availableThemes.find((avail) => avail.value === theme)?.label;
60
+ return themeKey ? this.translateService.instant(themeKey) : '';
61
+ }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldInspireThemeComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldInspireThemeComponent, isStandalone: true, selector: "gn-ui-form-field-inspire-theme", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-col gap-4\">\n <gn-ui-autocomplete\n [placeholder]=\"'editor.record.form.inspire.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n ></gn-ui-autocomplete>\n <div class=\"flex gap-2 flex-wrap\">\n <gn-ui-badge\n *ngFor=\"let theme of themes\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeTheme(theme)\"\n >{{ getTranslatedTheme(theme) }}\n </gn-ui-badge>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: AutocompleteComponent, selector: "gn-ui-autocomplete", inputs: ["placeholder", "enterButton", "action", "value", "clearOnSelection", "preventCompleteOnSelection", "autoFocus", "minCharacterCount", "allowSubmit", "forceTrackPosition", "displayWithFn"], outputs: ["itemSelected", "inputSubmitted", "inputCleared", "isSearchActive"] }, { kind: "component", type: BadgeComponent, selector: "gn-ui-badge", inputs: ["clickable", "removable"], outputs: ["badgeRemoveClicked"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldInspireThemeComponent, decorators: [{
66
+ type: Component,
67
+ args: [{ selector: 'gn-ui-form-field-inspire-theme', standalone: true, imports: [
68
+ CommonModule,
69
+ AutocompleteComponent,
70
+ NgIconComponent,
71
+ BadgeComponent,
72
+ TranslatePipe,
73
+ ], template: "<div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-col gap-4\">\n <gn-ui-autocomplete\n [placeholder]=\"'editor.record.form.inspire.placeholder' | translate\"\n [displayWithFn]=\"displayWithFn\"\n [action]=\"autoCompleteAction\"\n (itemSelected)=\"handleItemSelection($event)\"\n [minCharacterCount]=\"1\"\n [clearOnSelection]=\"true\"\n ></gn-ui-autocomplete>\n <div class=\"flex gap-2 flex-wrap\">\n <gn-ui-badge\n *ngFor=\"let theme of themes\"\n [removable]=\"true\"\n (badgeRemoveClicked)=\"removeTheme(theme)\"\n >{{ getTranslatedTheme(theme) }}\n </gn-ui-badge>\n </div>\n </div>\n</div>\n" }]
74
+ }], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { value: [{
75
+ type: Input
76
+ }], valueChange: [{
77
+ type: Output
78
+ }] } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1pbnNwaXJlLXRoZW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3JlY29yZC1mb3JtL2Zvcm0tZmllbGQvZm9ybS1maWVsZC1pbnNwaXJlLWZpZWxkL2Zvcm0tZmllbGQtaW5zcGlyZS10aGVtZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtaW5zcGlyZS1maWVsZC9mb3JtLWZpZWxkLWluc3BpcmUtdGhlbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ3JHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7Ozs7QUFpQnpCLE1BQU0sT0FBTyw4QkFBOEI7SUFFekMsSUFBYSxLQUFLLENBQUMsTUFBZ0I7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFDdEIsQ0FBQztJQStCRCxZQUFvQixnQkFB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Q0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ2hFLENBQUM7K0dBNURVLDhCQUE4QjttR0FBOUIsOEJBQThCLCtKQ3ZCM0Msa3JCQW9CQSx5REROSSxZQUFZLDRKQUNaLHFCQUFxQixtVkFFckIsY0FBYyx3SEFDZCxhQUFhOzs0RkFLSiw4QkFBOEI7a0JBYjFDLFNBQVM7K0JBQ0UsZ0NBQWdDLGNBQzlCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGFBQWE7cUJBQ2Q7cUZBTVksS0FBSztzQkFBakIsS0FBSztnQkFHSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlQ29tcG9uZW50LCBCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IE5nSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgSU5TUElSRV9USEVNRVMgfSBmcm9tICcuLi8uLi8uLi8uLi9maWVsZHMuY29uZmlnJ1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnXG5cbnR5cGUgQXV0b2NvbXBsZXRlSXRlbSA9IHsgdGl0bGU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWZvcm0tZmllbGQtaW5zcGlyZS10aGVtZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1maWVsZC1pbnNwaXJlLXRoZW1lLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Zvcm0tZmllbGQtaW5zcGlyZS10aGVtZS5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkSW5zcGlyZVRoZW1lQ29tcG9uZW50IHtcbiAgdGhlbWVzID0gW11cbiAgQElucHV0KCkgc2V0IHZhbHVlKHRoZW1lczogc3RyaW5nW10pIHtcbiAgICB0aGlzLnRoZW1lcyA9IHRoZW1lc1xuICB9XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZ1tdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBhdmFpbGFibGVUaGVtZXMgPSBJTlNQSVJFX1RIRU1FU1xuXG4gIGRpc3BsYXlXaXRoRm4gPSAoaXRlbTogQXV0b2NvbXBsZXRlSXRlbSkgPT4ge1xuICAgIHJldHVybiBpdGVtPy50aXRsZSA/IGAke2l0ZW0udGl0bGV9YCA6ICcnXG4gIH1cblxuICBhdXRvQ29tcGxldGVBY3Rpb24gPSAocXVlcnk6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBvZihcbiAgICAgIHRoaXMuYXZhaWxhYmxlVGhlbWVzXG4gICAgICAgIC5maWx0ZXIoKHRoZW1lKSA9PlxuICAgICAgICAgIHRoZW1lLnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgIGNvbnN0IGFTdGFydHMgPSBhLnZhbHVlLnN0YXJ0c1dpdGgocXVlcnkpXG4gICAgICAgICAgY29uc3QgYlN0YXJ0cyA9IGIudmFsdWUuc3RhcnRzV2l0aChxdWVyeSlcblxuICAgICAgICAgIGlmIChhU3RhcnRzICYmICFiU3RhcnRzKSByZXR1cm4gLTFcbiAgICAgICAgICBpZiAoIWFTdGFydHMgJiYgYlN0YXJ0cykgcmV0dXJuIDFcbiAgICAgICAgICByZXR1cm4gMFxuICAgICAgICB9KVxuICAgICAgICAubWFwKCh0aGVtZSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhlbWUubGFiZWwpLFxuICAgICAgICAgICAgdmFsdWU6IHRoZW1lLnZhbHVlLFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICApXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgaGFuZGxlSXRlbVNlbGVjdGlvbihpdGVtOiBBdXRvY29tcGxldGVJdGVtKSB7XG4gICAgdGhpcy5hZGRUaGVtZShpdGVtLnZhbHVlKVxuICB9XG5cbiAgYWRkVGhlbWUodGhlbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGR1cGxpY2F0ZWRUaGVtZSA9IHRoaXMudGhlbWVzLmZpbmQoKHQpID0+IHQgPT09IHRoZW1lKVxuICAgIGlmICghZHVwbGljYXRlZFRoZW1lKSB7XG4gICAgICB0aGlzLnRoZW1lcyA9IFsuLi50aGlzLnRoZW1lcywgdGhlbWVdXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy50aGVtZXMpXG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlVGhlbWUodGhlbWU6IHN0cmluZykge1xuICAgIGNvbnNvbGUubG9nKHRoaXMudGhlbWVzKVxuICAgIHRoaXMudGhlbWVzID0gdGhpcy50aGVtZXMuZmlsdGVyKCh0KSA9PiB0ICE9PSB0aGVtZSlcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy50aGVtZXMpXG4gIH1cblxuICBnZXRUcmFuc2xhdGVkVGhlbWUodGhlbWU6IHN0cmluZykge1xuICAgIGNvbnN0IHRoZW1lS2V5ID0gdGhpcy5hdmFpbGFibGVUaGVtZXMuZmluZChcbiAgICAgIChhdmFpbCkgPT4gYXZhaWwudmFsdWUgPT09IHRoZW1lXG4gICAgKT8ubGFiZWxcbiAgICByZXR1cm4gdGhlbWVLZXkgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGVtZUtleSkgOiAnJ1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNFwiPlxuICAgIDxnbi11aS1hdXRvY29tcGxldGVcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInZWRpdG9yLnJlY29yZC5mb3JtLmluc3BpcmUucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtkaXNwbGF5V2l0aEZuXT1cImRpc3BsYXlXaXRoRm5cIlxuICAgICAgW2FjdGlvbl09XCJhdXRvQ29tcGxldGVBY3Rpb25cIlxuICAgICAgKGl0ZW1TZWxlY3RlZCk9XCJoYW5kbGVJdGVtU2VsZWN0aW9uKCRldmVudClcIlxuICAgICAgW21pbkNoYXJhY3RlckNvdW50XT1cIjFcIlxuICAgICAgW2NsZWFyT25TZWxlY3Rpb25dPVwidHJ1ZVwiXG4gICAgPjwvZ24tdWktYXV0b2NvbXBsZXRlPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yIGZsZXgtd3JhcFwiPlxuICAgICAgPGduLXVpLWJhZGdlXG4gICAgICAgICpuZ0Zvcj1cImxldCB0aGVtZSBvZiB0aGVtZXNcIlxuICAgICAgICBbcmVtb3ZhYmxlXT1cInRydWVcIlxuICAgICAgICAoYmFkZ2VSZW1vdmVDbGlja2VkKT1cInJlbW92ZVRoZW1lKHRoZW1lKVwiXG4gICAgICAgID57eyBnZXRUcmFuc2xhdGVkVGhlbWUodGhlbWUpIH19XG4gICAgICA8L2duLXVpLWJhZGdlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19