geonetwork-ui 2.8.0-dev.7ecc6ee1d → 2.8.0-dev.82b7031fa

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 (132) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/common/resource-types.mjs +6 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +6 -4
  3. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +2 -2
  4. package/esm2022/libs/feature/dataviz/src/index.mjs +1 -2
  5. package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +2 -2
  6. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +9 -2
  7. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +3 -3
  8. package/esm2022/libs/feature/map/src/lib/map-state-container/map-state-container.component.mjs +2 -2
  9. package/esm2022/libs/feature/record/src/index.mjs +2 -1
  10. package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +1 -1
  11. package/esm2022/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.mjs +4 -4
  12. package/esm2022/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.mjs +1 -1
  13. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +3 -3
  14. package/esm2022/libs/feature/record/src/lib/stac-view/stac-view.component.mjs +230 -0
  15. package/esm2022/libs/feature/record/src/lib/stac-view/utils.mjs +26 -0
  16. package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +2 -2
  17. package/esm2022/libs/feature/search/src/lib/constants.mjs +2 -2
  18. package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +36 -22
  19. package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +2 -1
  20. package/esm2022/libs/ui/elements/src/index.mjs +2 -1
  21. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +1 -1
  22. package/esm2022/libs/ui/elements/src/lib/stac-items-result-grid/stac-items-result-grid.component.mjs +18 -0
  23. package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
  24. package/esm2022/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.mjs +3 -3
  25. package/esm2022/libs/ui/inputs/src/lib/date-picker/date-picker.component.mjs +21 -7
  26. package/esm2022/libs/ui/inputs/src/lib/date-range-dropdown/date-range-dropdown.component.mjs +3 -3
  27. package/esm2022/libs/ui/inputs/src/lib/date-range-inputs/date-range-inputs.component.mjs +35 -0
  28. package/esm2022/libs/ui/layout/src/lib/paginable.interface.mjs +1 -1
  29. package/esm2022/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +13 -5
  30. package/esm2022/libs/ui/map/src/lib/components/map-container/map-container.component.mjs +86 -32
  31. package/esm2022/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.mjs +1 -1
  32. package/esm2022/libs/ui/widgets/src/lib/loading-mask/loading-mask.component.mjs +3 -3
  33. package/esm2022/translations/de.json +7 -3
  34. package/esm2022/translations/en.json +7 -3
  35. package/esm2022/translations/es.json +7 -3
  36. package/esm2022/translations/fr.json +7 -3
  37. package/esm2022/translations/it.json +7 -3
  38. package/esm2022/translations/nl.json +7 -3
  39. package/esm2022/translations/pt.json +7 -3
  40. package/esm2022/translations/sk.json +7 -3
  41. package/fesm2022/{geonetwork-ui-date-locales-MYnkDJ5h.mjs → geonetwork-ui-date-locales-DhlIiWpT.mjs} +2 -2
  42. package/fesm2022/{geonetwork-ui-date-locales-MYnkDJ5h.mjs.map → geonetwork-ui-date-locales-DhlIiWpT.mjs.map} +1 -1
  43. package/fesm2022/geonetwork-ui.mjs +563 -197
  44. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  45. package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts +3 -0
  46. package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts.map +1 -1
  47. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  48. package/libs/feature/dataviz/src/index.d.ts +0 -1
  49. package/libs/feature/dataviz/src/index.d.ts.map +1 -1
  50. package/libs/feature/dataviz/src/lib/service/data.service.d.ts +2 -1
  51. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  52. package/libs/feature/record/src/index.d.ts +1 -0
  53. package/libs/feature/record/src/index.d.ts.map +1 -1
  54. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +5 -1
  55. package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
  56. package/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.d.ts +12 -5
  57. package/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.d.ts.map +1 -1
  58. package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts +3 -1
  59. package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts.map +1 -1
  60. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +5 -1
  61. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  62. package/libs/feature/record/src/lib/stac-view/stac-view.component.d.ts +53 -0
  63. package/libs/feature/record/src/lib/stac-view/stac-view.component.d.ts.map +1 -0
  64. package/libs/feature/record/src/lib/stac-view/utils.d.ts +7 -0
  65. package/libs/feature/record/src/lib/stac-view/utils.d.ts.map +1 -0
  66. package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
  67. package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
  68. package/libs/ui/elements/src/index.d.ts +1 -0
  69. package/libs/ui/elements/src/index.d.ts.map +1 -1
  70. package/libs/ui/elements/src/lib/stac-items-result-grid/stac-items-result-grid.component.d.ts +8 -0
  71. package/libs/ui/elements/src/lib/stac-items-result-grid/stac-items-result-grid.component.d.ts.map +1 -0
  72. package/libs/ui/inputs/src/index.d.ts +1 -0
  73. package/libs/ui/inputs/src/index.d.ts.map +1 -1
  74. package/libs/ui/inputs/src/lib/date-picker/date-picker.component.d.ts +5 -0
  75. package/libs/ui/inputs/src/lib/date-picker/date-picker.component.d.ts.map +1 -1
  76. package/libs/ui/inputs/src/lib/date-range-inputs/date-range-inputs.component.d.ts +12 -0
  77. package/libs/ui/inputs/src/lib/date-range-inputs/date-range-inputs.component.d.ts.map +1 -0
  78. package/libs/ui/layout/src/lib/paginable.interface.d.ts +3 -3
  79. package/libs/ui/layout/src/lib/paginable.interface.d.ts.map +1 -1
  80. package/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts +2 -1
  81. package/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.d.ts.map +1 -1
  82. package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts +24 -14
  83. package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts.map +1 -1
  84. package/package.json +5 -5
  85. package/src/libs/api/metadata-converter/src/lib/common/resource-types.ts +11 -0
  86. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +11 -3
  87. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +1 -1
  88. package/src/libs/feature/dataviz/src/index.ts +0 -1
  89. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +14 -0
  90. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +1 -0
  91. package/src/libs/feature/record/src/index.ts +1 -0
  92. package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +5 -1
  93. package/src/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.ts +10 -8
  94. package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.ts +1 -1
  95. package/src/libs/feature/record/src/lib/map-view/map-view.component.html +1 -2
  96. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +5 -2
  97. package/src/libs/feature/record/src/lib/stac-view/stac-view.component.css +8 -0
  98. package/src/libs/feature/record/src/lib/stac-view/stac-view.component.html +87 -0
  99. package/src/libs/feature/record/src/lib/stac-view/stac-view.component.ts +339 -0
  100. package/src/libs/feature/record/src/lib/stac-view/utils.ts +57 -0
  101. package/src/libs/feature/record/src/lib/state/mdview.effects.ts +1 -1
  102. package/src/libs/feature/search/src/lib/constants.ts +1 -1
  103. package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +1 -0
  104. package/src/libs/feature/search/src/lib/utils/service/fields.ts +37 -33
  105. package/src/libs/ui/elements/src/index.ts +1 -0
  106. package/src/libs/ui/elements/src/lib/stac-items-result-grid/stac-items-result-grid.component.html +13 -0
  107. package/src/libs/ui/elements/src/lib/stac-items-result-grid/stac-items-result-grid.component.ts +15 -0
  108. package/src/libs/ui/inputs/src/index.ts +1 -0
  109. package/src/libs/ui/inputs/src/lib/check-toggle/check-toggle.component.html +3 -3
  110. package/src/libs/ui/inputs/src/lib/date-picker/date-picker.component.ts +17 -1
  111. package/src/libs/ui/inputs/src/lib/date-range-inputs/date-range-inputs.component.css +0 -0
  112. package/src/libs/ui/inputs/src/lib/date-range-inputs/date-range-inputs.component.html +15 -0
  113. package/src/libs/ui/inputs/src/lib/date-range-inputs/date-range-inputs.component.ts +41 -0
  114. package/src/libs/ui/layout/src/lib/paginable.interface.ts +3 -3
  115. package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.html +12 -6
  116. package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.ts +4 -1
  117. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.html +16 -14
  118. package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +144 -65
  119. package/translations/de.json +7 -3
  120. package/translations/en.json +7 -3
  121. package/translations/es.json +7 -3
  122. package/translations/fr.json +7 -3
  123. package/translations/it.json +7 -3
  124. package/translations/nl.json +7 -3
  125. package/translations/pt.json +7 -3
  126. package/translations/sk.json +7 -3
  127. package/esm2022/libs/feature/dataviz/src/lib/stac-view/stac-view.component.mjs +0 -51
  128. package/libs/feature/dataviz/src/lib/stac-view/stac-view.component.d.ts +0 -16
  129. package/libs/feature/dataviz/src/lib/stac-view/stac-view.component.d.ts.map +0 -1
  130. package/src/libs/feature/dataviz/src/lib/stac-view/stac-view.component.html +0 -40
  131. package/src/libs/feature/dataviz/src/lib/stac-view/stac-view.component.ts +0 -62
  132. /package/src/libs/{feature/dataviz/src/lib/stac-view/stac-view.component.css → ui/elements/src/lib/stac-items-result-grid/stac-items-result-grid.component.css} +0 -0
@@ -243,7 +243,7 @@ export class MultilingualPanelComponent {
243
243
  provideNgIconsConfig({
244
244
  size: '1.25em',
245
245
  }),
246
- ], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"flex flex-col h-full w-[302px] border-l border-gray-300 py-8 px-3 gap-6 overflow-auto\"\n style=\"background-color: #fafaf9\"\n>\n <div class=\"flex flex-row px-2 justify-between\">\n <span class=\"text-3xl font-title text-black/80\" translate\n >editor.record.form.multilingual.title</span\n >\n <button\n [title]=\"'editor.record.form.multilingual.open' | translate\"\n (click)=\"toggleLanguageSelection()\"\n *ngIf=\"isMultilingual\"\n data-test=\"activateSelection\"\n >\n <ng-icon class=\"mt-1\" name=\"iconoirSettings\"></ng-icon>\n </button>\n </div>\n <div class=\"flex flex-col gap-2\" *ngIf=\"editTranslations || !isMultilingual\">\n <gn-ui-check-toggle\n class=\"p-2\"\n [label]=\"'editor.record.form.multilingual.enable' | translate\"\n [color]=\"'primary'\"\n [(value)]=\"isMultilingual\"\n (toggled)=\"switchMultilingual($event)\"\n ></gn-ui-check-toggle>\n <div *ngIf=\"isMultilingual\" class=\"flex flex-col gap-2\">\n <div class=\"flex flex-row justify-between border-t border-gray-300 p-3\">\n <span class=\"mt-2 text-sm text-gray-600\" translate\n >editor.record.form.multilingual.activate</span\n >\n <gn-ui-button\n extraClass=\"w-16 h-8 font-bold\"\n type=\"gray\"\n (buttonClick)=\"validateTranslations()\"\n data-test=\"validateSelection\"\n >{{ 'editor.record.form.multilingual.validate' | translate }}\n </gn-ui-button>\n </div>\n <ng-container *ngIf=\"supportedLanguages$ | async as languages\">\n <div\n class=\"flex flex-col gap-2 w-full px-2\"\n data-test=\"langAvailable\"\n *ngFor=\"let lang of languages\"\n >\n <gn-ui-button\n [extraClass]=\"getExtraClass(lang)\"\n type=\"gray\"\n (buttonClick)=\"toggleLanguage(lang)\"\n [disabled]=\"lang === _record.defaultLanguage\"\n [title]=\"getToggleTitle(lang)\"\n >\n <span [class]=\"getIconClass(lang)\"></span>\n <span class=\"ml-2\">{{ 'language.' + lang | translate }}</span>\n </gn-ui-button>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"!editTranslations && isMultilingual\" class=\"flex flex-col gap-2\">\n <gn-ui-button\n *ngFor=\"let recordLang of sortLanguages(recordLanguages); let i = index\"\n extraClass=\"flex flex-row justify-between bg-white border border-white rounded mb-1 h-[34px] w-full\"\n [ngClass]=\"{\n 'mt-8': isFirstUnsupported(i),\n '': true,\n }\"\n (buttonClick)=\"switchFormLang(recordLang)\"\n type=\"outline\"\n data-test=\"langSwitch\"\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <ng-icon\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-primary mt-1\"\n name=\"iconoirCheckCircle\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"recordLang !== formLanguage\"\n class=\"text-gray-800 mt-1\"\n name=\"iconoirCircle\"\n ></ng-icon>\n <span\n *ngIf=\"recordLang.length === 2\"\n [class]=\"getIconClass(recordLang) + 'mt-1'\"\n ></span>\n <span [ngClass]=\"recordLang === formLanguage ? 'text-black' : ''\">{{\n isLangSupported(recordLang)\n ? ('language.' + recordLang | translate)\n : recordLang.toUpperCase()\n }}</span>\n </div>\n <div class=\"flex flex-row gap-2 items-center\">\n <span\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-xs text-base\"\n translate\n >editor.record.form.multilingual.default</span\n >\n <button\n (click)=\"\n openActionMenu(recordLang, template); $event.stopPropagation()\n \"\n cdkOverlayOrigin\n #actionMenuButton\n >\n <ng-icon class=\"pb-5\" name=\"matMoreHorizOutline\"></ng-icon>\n </button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDelete]=\"recordLang !== _record.defaultLanguage\"\n page=\"record\"\n (delete)=\"confirmDeleteAction(recordLang)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (switch)=\"switchDefaultLang(recordLang)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </div>\n </gn-ui-button>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "isDuplicating", "canDelete", "page"], outputs: ["duplicate", "delete", "closeActionMenu", "rollback", "switch"] }] }); }
246
+ ], viewQueries: [{ propertyName: "actionMenuButtons", predicate: ["actionMenuButton"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"flex flex-col h-full w-[302px] border-l border-gray-300 py-8 px-3 gap-6 overflow-auto\"\n style=\"background-color: #fafaf9\"\n>\n <div class=\"flex flex-row px-2 justify-between\">\n <span class=\"text-3xl font-title text-black/80\" translate\n >editor.record.form.multilingual.title</span\n >\n <button\n [title]=\"'editor.record.form.multilingual.open' | translate\"\n (click)=\"toggleLanguageSelection()\"\n *ngIf=\"isMultilingual\"\n data-test=\"activateSelection\"\n >\n <ng-icon class=\"mt-1\" name=\"iconoirSettings\"></ng-icon>\n </button>\n </div>\n <div class=\"flex flex-col gap-2\" *ngIf=\"editTranslations || !isMultilingual\">\n <gn-ui-check-toggle\n class=\"p-2\"\n [label]=\"'editor.record.form.multilingual.enable' | translate\"\n [color]=\"'primary'\"\n [(value)]=\"isMultilingual\"\n (toggled)=\"switchMultilingual($event)\"\n ></gn-ui-check-toggle>\n <div *ngIf=\"isMultilingual\" class=\"flex flex-col gap-2\">\n <div class=\"flex flex-row justify-between border-t border-gray-300 p-3\">\n <span class=\"mt-2 text-sm text-gray-600\" translate\n >editor.record.form.multilingual.activate</span\n >\n <gn-ui-button\n extraClass=\"w-16 h-8 font-bold\"\n type=\"gray\"\n (buttonClick)=\"validateTranslations()\"\n data-test=\"validateSelection\"\n >{{ 'editor.record.form.multilingual.validate' | translate }}\n </gn-ui-button>\n </div>\n <ng-container *ngIf=\"supportedLanguages$ | async as languages\">\n <div\n class=\"flex flex-col gap-2 w-full px-2\"\n data-test=\"langAvailable\"\n [attr.data-test-lang]=\"lang\"\n *ngFor=\"let lang of languages\"\n >\n <gn-ui-button\n [extraClass]=\"getExtraClass(lang)\"\n type=\"gray\"\n (buttonClick)=\"toggleLanguage(lang)\"\n [disabled]=\"lang === _record.defaultLanguage\"\n [title]=\"getToggleTitle(lang)\"\n >\n <span [class]=\"getIconClass(lang)\"></span>\n <span class=\"ml-2\">{{ 'language.' + lang | translate }}</span>\n </gn-ui-button>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"!editTranslations && isMultilingual\" class=\"flex flex-col gap-2\">\n <gn-ui-button\n *ngFor=\"let recordLang of sortLanguages(recordLanguages); let i = index\"\n extraClass=\"flex flex-row justify-between bg-white border border-white rounded mb-1 h-[34px] w-full\"\n [ngClass]=\"{\n 'mt-8': isFirstUnsupported(i),\n '': true,\n }\"\n (buttonClick)=\"switchFormLang(recordLang)\"\n type=\"outline\"\n data-test=\"langSwitch\"\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <ng-icon\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-primary mt-1\"\n name=\"iconoirCheckCircle\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"recordLang !== formLanguage\"\n class=\"text-gray-800 mt-1\"\n name=\"iconoirCircle\"\n ></ng-icon>\n <span\n *ngIf=\"recordLang.length === 2\"\n [class]=\"getIconClass(recordLang) + 'mt-1'\"\n ></span>\n <span [ngClass]=\"recordLang === formLanguage ? 'text-black' : ''\">{{\n isLangSupported(recordLang)\n ? ('language.' + recordLang | translate)\n : recordLang.toUpperCase()\n }}</span>\n </div>\n <div class=\"flex flex-row gap-2 items-center\">\n <span\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-xs text-base\"\n translate\n >editor.record.form.multilingual.default</span\n >\n <button\n (click)=\"\n openActionMenu(recordLang, template); $event.stopPropagation()\n \"\n cdkOverlayOrigin\n #actionMenuButton\n >\n <ng-icon class=\"pb-5\" name=\"matMoreHorizOutline\"></ng-icon>\n </button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDelete]=\"recordLang !== _record.defaultLanguage\"\n page=\"record\"\n (delete)=\"confirmDeleteAction(recordLang)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (switch)=\"switchDefaultLang(recordLang)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </div>\n </gn-ui-button>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "component", type: CheckToggleComponent, selector: "gn-ui-check-toggle", inputs: ["title", "label", "value", "color"], outputs: ["toggled"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ActionMenuComponent, selector: "gn-ui-action-menu", inputs: ["canDuplicate", "isDuplicating", "canDelete", "page"], outputs: ["duplicate", "delete", "closeActionMenu", "rollback", "switch"] }] }); }
247
247
  }
248
248
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MultilingualPanelComponent, decorators: [{
249
249
  type: Component,
@@ -265,11 +265,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
265
265
  provideNgIconsConfig({
266
266
  size: '1.25em',
267
267
  }),
268
- ], template: "<div\n class=\"flex flex-col h-full w-[302px] border-l border-gray-300 py-8 px-3 gap-6 overflow-auto\"\n style=\"background-color: #fafaf9\"\n>\n <div class=\"flex flex-row px-2 justify-between\">\n <span class=\"text-3xl font-title text-black/80\" translate\n >editor.record.form.multilingual.title</span\n >\n <button\n [title]=\"'editor.record.form.multilingual.open' | translate\"\n (click)=\"toggleLanguageSelection()\"\n *ngIf=\"isMultilingual\"\n data-test=\"activateSelection\"\n >\n <ng-icon class=\"mt-1\" name=\"iconoirSettings\"></ng-icon>\n </button>\n </div>\n <div class=\"flex flex-col gap-2\" *ngIf=\"editTranslations || !isMultilingual\">\n <gn-ui-check-toggle\n class=\"p-2\"\n [label]=\"'editor.record.form.multilingual.enable' | translate\"\n [color]=\"'primary'\"\n [(value)]=\"isMultilingual\"\n (toggled)=\"switchMultilingual($event)\"\n ></gn-ui-check-toggle>\n <div *ngIf=\"isMultilingual\" class=\"flex flex-col gap-2\">\n <div class=\"flex flex-row justify-between border-t border-gray-300 p-3\">\n <span class=\"mt-2 text-sm text-gray-600\" translate\n >editor.record.form.multilingual.activate</span\n >\n <gn-ui-button\n extraClass=\"w-16 h-8 font-bold\"\n type=\"gray\"\n (buttonClick)=\"validateTranslations()\"\n data-test=\"validateSelection\"\n >{{ 'editor.record.form.multilingual.validate' | translate }}\n </gn-ui-button>\n </div>\n <ng-container *ngIf=\"supportedLanguages$ | async as languages\">\n <div\n class=\"flex flex-col gap-2 w-full px-2\"\n data-test=\"langAvailable\"\n *ngFor=\"let lang of languages\"\n >\n <gn-ui-button\n [extraClass]=\"getExtraClass(lang)\"\n type=\"gray\"\n (buttonClick)=\"toggleLanguage(lang)\"\n [disabled]=\"lang === _record.defaultLanguage\"\n [title]=\"getToggleTitle(lang)\"\n >\n <span [class]=\"getIconClass(lang)\"></span>\n <span class=\"ml-2\">{{ 'language.' + lang | translate }}</span>\n </gn-ui-button>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"!editTranslations && isMultilingual\" class=\"flex flex-col gap-2\">\n <gn-ui-button\n *ngFor=\"let recordLang of sortLanguages(recordLanguages); let i = index\"\n extraClass=\"flex flex-row justify-between bg-white border border-white rounded mb-1 h-[34px] w-full\"\n [ngClass]=\"{\n 'mt-8': isFirstUnsupported(i),\n '': true,\n }\"\n (buttonClick)=\"switchFormLang(recordLang)\"\n type=\"outline\"\n data-test=\"langSwitch\"\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <ng-icon\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-primary mt-1\"\n name=\"iconoirCheckCircle\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"recordLang !== formLanguage\"\n class=\"text-gray-800 mt-1\"\n name=\"iconoirCircle\"\n ></ng-icon>\n <span\n *ngIf=\"recordLang.length === 2\"\n [class]=\"getIconClass(recordLang) + 'mt-1'\"\n ></span>\n <span [ngClass]=\"recordLang === formLanguage ? 'text-black' : ''\">{{\n isLangSupported(recordLang)\n ? ('language.' + recordLang | translate)\n : recordLang.toUpperCase()\n }}</span>\n </div>\n <div class=\"flex flex-row gap-2 items-center\">\n <span\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-xs text-base\"\n translate\n >editor.record.form.multilingual.default</span\n >\n <button\n (click)=\"\n openActionMenu(recordLang, template); $event.stopPropagation()\n \"\n cdkOverlayOrigin\n #actionMenuButton\n >\n <ng-icon class=\"pb-5\" name=\"matMoreHorizOutline\"></ng-icon>\n </button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDelete]=\"recordLang !== _record.defaultLanguage\"\n page=\"record\"\n (delete)=\"confirmDeleteAction(recordLang)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (switch)=\"switchDefaultLang(recordLang)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </div>\n </gn-ui-button>\n </div>\n</div>\n" }]
268
+ ], template: "<div\n class=\"flex flex-col h-full w-[302px] border-l border-gray-300 py-8 px-3 gap-6 overflow-auto\"\n style=\"background-color: #fafaf9\"\n>\n <div class=\"flex flex-row px-2 justify-between\">\n <span class=\"text-3xl font-title text-black/80\" translate\n >editor.record.form.multilingual.title</span\n >\n <button\n [title]=\"'editor.record.form.multilingual.open' | translate\"\n (click)=\"toggleLanguageSelection()\"\n *ngIf=\"isMultilingual\"\n data-test=\"activateSelection\"\n >\n <ng-icon class=\"mt-1\" name=\"iconoirSettings\"></ng-icon>\n </button>\n </div>\n <div class=\"flex flex-col gap-2\" *ngIf=\"editTranslations || !isMultilingual\">\n <gn-ui-check-toggle\n class=\"p-2\"\n [label]=\"'editor.record.form.multilingual.enable' | translate\"\n [color]=\"'primary'\"\n [(value)]=\"isMultilingual\"\n (toggled)=\"switchMultilingual($event)\"\n ></gn-ui-check-toggle>\n <div *ngIf=\"isMultilingual\" class=\"flex flex-col gap-2\">\n <div class=\"flex flex-row justify-between border-t border-gray-300 p-3\">\n <span class=\"mt-2 text-sm text-gray-600\" translate\n >editor.record.form.multilingual.activate</span\n >\n <gn-ui-button\n extraClass=\"w-16 h-8 font-bold\"\n type=\"gray\"\n (buttonClick)=\"validateTranslations()\"\n data-test=\"validateSelection\"\n >{{ 'editor.record.form.multilingual.validate' | translate }}\n </gn-ui-button>\n </div>\n <ng-container *ngIf=\"supportedLanguages$ | async as languages\">\n <div\n class=\"flex flex-col gap-2 w-full px-2\"\n data-test=\"langAvailable\"\n [attr.data-test-lang]=\"lang\"\n *ngFor=\"let lang of languages\"\n >\n <gn-ui-button\n [extraClass]=\"getExtraClass(lang)\"\n type=\"gray\"\n (buttonClick)=\"toggleLanguage(lang)\"\n [disabled]=\"lang === _record.defaultLanguage\"\n [title]=\"getToggleTitle(lang)\"\n >\n <span [class]=\"getIconClass(lang)\"></span>\n <span class=\"ml-2\">{{ 'language.' + lang | translate }}</span>\n </gn-ui-button>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"!editTranslations && isMultilingual\" class=\"flex flex-col gap-2\">\n <gn-ui-button\n *ngFor=\"let recordLang of sortLanguages(recordLanguages); let i = index\"\n extraClass=\"flex flex-row justify-between bg-white border border-white rounded mb-1 h-[34px] w-full\"\n [ngClass]=\"{\n 'mt-8': isFirstUnsupported(i),\n '': true,\n }\"\n (buttonClick)=\"switchFormLang(recordLang)\"\n type=\"outline\"\n data-test=\"langSwitch\"\n >\n <div class=\"flex flex-row gap-2 items-center\">\n <ng-icon\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-primary mt-1\"\n name=\"iconoirCheckCircle\"\n ></ng-icon>\n <ng-icon\n *ngIf=\"recordLang !== formLanguage\"\n class=\"text-gray-800 mt-1\"\n name=\"iconoirCircle\"\n ></ng-icon>\n <span\n *ngIf=\"recordLang.length === 2\"\n [class]=\"getIconClass(recordLang) + 'mt-1'\"\n ></span>\n <span [ngClass]=\"recordLang === formLanguage ? 'text-black' : ''\">{{\n isLangSupported(recordLang)\n ? ('language.' + recordLang | translate)\n : recordLang.toUpperCase()\n }}</span>\n </div>\n <div class=\"flex flex-row gap-2 items-center\">\n <span\n *ngIf=\"recordLang === formLanguage\"\n class=\"text-xs text-base\"\n translate\n >editor.record.form.multilingual.default</span\n >\n <button\n (click)=\"\n openActionMenu(recordLang, template); $event.stopPropagation()\n \"\n cdkOverlayOrigin\n #actionMenuButton\n >\n <ng-icon class=\"pb-5\" name=\"matMoreHorizOutline\"></ng-icon>\n </button>\n <ng-template #template>\n <gn-ui-action-menu\n [canDelete]=\"recordLang !== _record.defaultLanguage\"\n page=\"record\"\n (delete)=\"confirmDeleteAction(recordLang)\"\n (closeActionMenu)=\"closeActionMenu()\"\n (switch)=\"switchDefaultLang(recordLang)\"\n >\n </gn-ui-action-menu>\n </ng-template>\n </div>\n </gn-ui-button>\n </div>\n</div>\n" }]
269
269
  }], ctorParameters: () => [{ type: i1.EditorFacade }, { type: i2.MatDialog }, { type: i3.TranslateService }, { type: i4.RecordsRepositoryInterface }, { type: i5.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }], propDecorators: { record: [{
270
270
  type: Input
271
271
  }], actionMenuButtons: [{
272
272
  type: ViewChildren,
273
273
  args: ['actionMenuButton', { read: ElementRef }]
274
274
  }] } });
275
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsaW5ndWFsLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL211bHRpbGluZ3VhbC1wYW5lbC9tdWx0aWxpbmd1YWwtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGlsaW5ndWFsLXBhbmVsL211bHRpbGluZ3VhbC1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDL0YsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsZ0JBQWdCLEdBQ2pCLE1BQU0scUJBQXFCLENBQUE7QUFFNUIsT0FBTyxFQUNMLGVBQWUsRUFDZixZQUFZLEVBQ1osb0JBQW9CLEdBQ3JCLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsZUFBZSxHQUNoQixNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQUN2RixPQUFPLEVBQUUs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QUFJLEVBQUUsUUFBUTthQUNmLENBQUM7U0FDSCwrR0FtQnlDLFVBQVUsNkJDaEd0RCx5N0lBeUhBLHlERDlESSxZQUFZLG1aQUNaLG9CQUFvQixtSUFDcEIsa0JBQWtCLDZHQUNsQixhQUFhLGtEQUNiLGVBQWUsK0hBQ2YsZUFBZSw2R0FDZixtQkFBbUI7OzRGQWdCViwwQkFBMEI7a0JBMUJ0QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsbUJBQW1CO3FCQUNwQixhQUNVO3dCQUNULFlBQVksQ0FBQzs0QkFDWCxlQUFlOzRCQUNmLG1CQUFtQjs0QkFDbkIsa0JBQWtCOzRCQUNsQixhQUFhO3lCQUNkLENBQUM7d0JBQ0Ysb0JBQW9CLENBQUM7NEJBQ25CLElBQUksRUFBRSxRQUFRO3lCQUNmLENBQUM7cUJBQ0g7c1FBV1ksTUFBTTtzQkFBbEIsS0FBSztnQkFTTixpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCwgQ2hlY2tUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQge1xuICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gIFRyYW5zbGF0ZVBpcGUsXG4gIFRyYW5zbGF0ZVNlcnZpY2UsXG59IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7XG4gIGljb25vaXJDaGVja0NpcmNsZSxcbiAgaWNvbm9pckNpcmNsZSxcbiAgaWNvbm9pclNldHRpbmdzLFxufSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IG1hdE1vcmVIb3Jpek91dGxpbmUgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvb3V0bGluZSdcbmltcG9ydCB7IEVkaXRvckZhY2FkZSB9IGZyb20gJy4uLy4uLytzdGF0ZS9lZGl0b3IuZmFjYWRlJ1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMnXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnXG5pbXBvcnQgeyBSZWNvcmRzUmVwb3NpdG9yeUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL3JlcG9zaXRvcnkvcmVjb3Jkcy1yZXBvc2l0b3J5LmludGVyZmFjZSdcbmltcG9ydCB7IG1hcCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCdcbmltcG9ydCB7IEFjdGlvbk1lbnVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMnXG5cbmNvbnN0IGV4dHJhRmxhZ01hcDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgYXI6ICdhcmFiJyxcbiAgZW46ICdnYicsXG4gIGtvOiAna3InLFxuICBjczogJ2N6JyxcbiAgemg6ICdjbicsXG4gIGNhOiAnZXMtY3QnLFxuICBybTogJ2NoJyxcbiAgZGE6ICdkaycsXG4gIHN2OiAnc2UnLFxuICBjeTogJ2diLXdscycsXG4gIGh5OiAnYW0nLFxuICBrYTogJ2dlJyxcbiAgdWs6ICd1YScsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW11bHRpbGluZ3VhbC1wYW5lbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ2hlY2tUb2dnbGVDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgICBBY3Rpb25NZW51Q29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoe1xuICAgICAgaWNvbm9pclNldHRpbmdzLFxuICAgICAgbWF0TW9yZUhvcml6T3V0bGluZSxcbiAgICAgIGljb25vaXJDaGVja0NpcmNsZSxcbiAgICAgIGljb25vaXJDaXJjbGUsXG4gICAgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuMjVlbScsXG4gICAgfSksXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aWxpbmd1YWwtcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbXVsdGlsaW5ndWFsLXBhbmVsLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aWxpbmd1YWxQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGlzTXVsdGlsaW5ndWFsOiBib29sZWFuXG4gIF9yZWNvcmQ6IENhdGFsb2dSZWNvcmRcbiAgZWRpdFRyYW5zbGF0aW9uczogYm9vbGVhblxuICBzZWxlY3RlZExhbmd1YWdlcyA9IFtdXG4gIHJlY29yZExhbmd1YWdlcyA9IFtdXG4gIGZvcm1MYW5ndWFnZSA9ICcnXG4gIEBJbnB1dCgpIHNldCByZWNvcmQodmFsdWU6IENhdGFsb2dSZWNvcmQpIHtcbiAgICB0aGlzLl9yZWNvcmQgPSB2YWx1ZVxuICAgIHRoaXMuaXNNdWx0aWxpbmd1YWwgPSB2YWx1ZS5vdGhlckxhbmd1YWdlcy5sZW5ndGggPiAwXG4gICAgdGhpcy5lZGl0VHJhbnNsYXRpb25zID0gZmFsc2VcbiAgICB0aGlzLnJlY29yZExhbmd1YWdlcyA9IFsuLi52YWx1ZS5vdGhlckxhbmd1YWdlcywgdmFsdWUuZGVmYXVsdExhbmd1YWdlXVxuICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMgPSB0aGlzLnJlY29yZExhbmd1YWdlc1xuICAgIHRoaXMuZm9ybUxhbmd1YWdlID0gdmFsdWUuZGVmYXVsdExhbmd1YWdlXG4gIH1cbiAgQFZpZXdDaGlsZHJlbignYWN0aW9uTWVudUJ1dHRvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBhY3Rpb25NZW51QnV0dG9ucyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPlxuICBwcml2YXRlIG92ZXJsYXlSZWYhOiBPdmVybGF5UmVmXG5cbiAgaXNBY3Rpb25NZW51T3BlbiA9IGZhbHNlXG4gIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKVxuXG4gIHN1cHBvcnRlZExhbmd1YWdlcyQgPSB0aGlzLnJlY29yZHNSZXBvc2l0b3J5XG4gICAgLmdldEFwcGxpY2F0aW9uTGFuZ3VhZ2VzKClcbiAgICAucGlwZShtYXAoKGxhbmd1YWdlcykgPT4gdGhpcy5zb3J0TGFuZ3VhZ2VzKGxhbmd1YWdlcykpKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBmYWNhZGU6IEVkaXRvckZhY2FkZSxcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVjb3Jkc1JlcG9zaXRvcnk6IFJlY29yZHNSZXBvc2l0b3J5SW50ZXJmYWNlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gIH1cblxuICBzb3J0TGFuZ3VhZ2VzKGxhbmd1YWdlczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gbGFuZ3VhZ2VzXG4gICAgICAubWFwKChsYW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2xhbmd1YWdlLicgKyBsYW5nKVxuICAgICAgICBjb25zdCBpc1RyYW5zbGF0ZWQgPSBsYWJlbCAhPT0gJ2xhbmd1YWdlLicgKyBsYW5nXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsYW5nLFxuICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgIGlzVHJhbnNsYXRlZCxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIGlmIChhLmlzVHJhbnNsYXRlZCAmJiAhYi5pc1RyYW5zbGF0ZWQpIHJldHVybiAtMVxuICAgICAgICBpZiAoIWEuaXNUcmFuc2xhdGVkICYmIGIuaXNUcmFuc2xhdGVkKSByZXR1cm4gMVxuXG4gICAgICAgIHJldHVybiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbClcbiAgICAgIH0pXG4gICAgICAubWFwKChpdGVtKSA9PiBpdGVtLmxhbmcpXG4gIH1cblxuICB0b2dnbGVMYW5ndWFnZVNlbGVjdGlvbigpIHtcbiAgICB0aGlzLmVkaXRUcmFuc2xhdGlvbnMgPSAhdGhpcy5lZGl0VHJhbnNsYXRpb25zXG4gIH1cblxuICBnZXRJY29uQ2xhc3MobGFuZzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGV4dHJhRmxhZ01hcFtsYW5nXVxuICAgICAgPyBgZmkgZmktJHtleHRyYUZsYWdNYXBbbGFuZ119IHctNCBoLTNgXG4gICAgICA6IGBmaSBmaS0ke2xhbmd9IHctNCBoLTNgXG4gIH1cblxuICBzd2l0Y2hNdWx0aWxpbmd1YWwoKSB7XG4gICAgaWYgKHRoaXMuaXNNdWx0aWxpbmd1YWwgJiYgdGhpcy5zZWxlY3RlZExhbmd1YWdlcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aGlzLmNvbmZpcm1EZWxldGVBY3Rpb24oKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzTXVsdGlsaW5ndWFsID0gdHJ1ZVxuICAgICAgdGhpcy5lZGl0VHJhbnNsYXRpb25zID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGdldEV4dHJhQ2xhc3MobGFuZzogc3RyaW5nKSB7XG4gICAgY29uc3QgYmFzZUNsYXNzID0gJ2gtWzM0cHhdIHctZnVsbCBmb250LWJvbGQganVzdGlmeS1zdGFydCBob3ZlcjpiZy13aGl0ZSdcbiAgICBpZiAodGhpcy5zZWxlY3RlZExhbmd1YWdlcy5pbmNsdWRlcyhsYW5nKSkge1xuICAgICAgcmV0dXJuIGAke2Jhc2VDbGFzc30gYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ibGFja2BcbiAgICB9XG4gICAgcmV0dXJuIGJhc2VDbGFzc1xuICB9XG5cbiAgdG9nZ2xlTGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMuaW5jbHVkZXMobGFuZykpIHtcbiAgICAgIHRoaXMucmVtb3ZlU2VsZWN0ZWRMYW5ndWFnZShsYW5nKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzLnB1c2gobGFuZylcbiAgICB9XG4gIH1cblxuICByZW1vdmVTZWxlY3RlZExhbmd1YWdlKGxhbmc6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMgPSB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzLmZpbHRlcihcbiAgICAgIChsYW5ndWFnZSkgPT4gbGFuZ3VhZ2UgIT09IGxhbmdcbiAgICApXG4gIH1cblxuICB2YWxpZGF0ZVRyYW5zbGF0aW9ucygpIHtcbiAgICBjb25zdCBlcXVhbExlbmd0aCA9XG4gICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzLmxlbmd0aCA9PT0gdGhpcy5yZWNvcmRMYW5ndWFnZXMubGVuZ3RoXG4gICAgaWYgKFxuICAgICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlcy5sZW5ndGggPCB0aGlzLnJlY29yZExhbmd1YWdlcy5sZW5ndGggfHxcbiAgICAgIChlcXVhbExlbmd0aCAmJiB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzICE9PSB0aGlzLnJlY29yZExhbmd1YWdlcylcbiAgICApIHtcbiAgICAgIHRoaXMuY29uZmlybURlbGV0ZUFjdGlvbih0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwZGF0ZVRyYW5zbGF0aW9ucygpXG4gICAgfVxuICB9XG5cbiAgdXBkYXRlVHJhbnNsYXRpb25zKCkge1xuICAgIGNvbnN0IG5ld0xhbmd1YWdlU2VsZWN0aW9uID0gdGhpcy5zZWxlY3RlZExhbmd1YWdlcy5maWx0ZXIoXG4gICAgICAobGFuZykgPT4gbGFuZyAhPT0gdGhpcy5mb3JtTGFuZ3VhZ2VcbiAgICApXG4gICAgdGhpcy5mYWNhZGUudXBkYXRlUmVjb3JkTGFuZ3VhZ2VzKHRoaXMuZm9ybUxhbmd1YWdlLCBuZXdMYW5ndWFnZVNlbGVjdGlvbilcbiAgICB0aGlzLnJlY29yZExhbmd1YWdlcyA9IG5ld0xhbmd1YWdlU2VsZWN0aW9uXG4gICAgdGhpcy5lZGl0VHJhbnNsYXRpb25zID0gZmFsc2VcbiAgfVxuXG4gIHN3aXRjaEZvcm1MYW5nKGxhbmcpIHtcbiAgICAvLyBUTyBJTVBMRU1FTlQgRlVSVEhFUlxuICB9XG5cbiAgc3dpdGNoRGVmYXVsdExhbmcobGFuZzogc3RyaW5nKSB7XG4gICAgdGhpcy5mb3JtTGFuZ3VhZ2UgPSBsYW5nXG4gICAgdGhpcy5mYWNhZGUudXBkYXRlUmVjb3JkTGFuZ3VhZ2VzKFxuICAgICAgbGFuZyxcbiAgICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMuZmlsdGVyKChsYW5nKSA9PiBsYW5nICE9PSB0aGlzLmZvcm1MYW5ndWFnZSlcbiAgICApXG4gICAgdGhpcy5jbG9zZUFjdGlvbk1lbnUoKVxuICB9XG5cbiAgY29uZmlybURlbGV0ZUFjdGlvbihsYW5nPzogc3RyaW5nW10gfCBzdHJpbmcpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQubXVsdGlsaW5ndWFsLmNvbmZpcm1hdGlvbi50aXRsZSdcbiAgICAgICAgKSxcbiAgICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQubXVsdGlsaW5ndWFsLmNvbmZpcm1hdGlvbi5tZXNzYWdlJ1xuICAgICAgICApLFxuICAgICAgICBjb25maXJtVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQubXVsdGlsaW5ndWFsLmNvbmZpcm1hdGlvbi5jb25maXJtVGV4dCdcbiAgICAgICAgKSxcbiAgICAgICAgY2FuY2VsVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQubXVsdGlsaW5ndWFsLmNvbmZpcm1hdGlvbi5jYW5jZWxUZXh0J1xuICAgICAgICApLFxuICAgICAgICBmb2N1c0NhbmNlbDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICByZXN0b3JlRm9jdXM6IHRydWUsXG4gICAgfSlcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKGNvbmZpcm1lZCkgPT4ge1xuICAgICAgICBpZiAoY29uZmlybWVkKSB7XG4gICAgICAgICAgaWYgKGxhbmcpIHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShsYW5nKSkge1xuICAgICAgICAgICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkTGFuZ3VhZ2UobGFuZylcbiAgICAgICAgICAgICAgdGhpcy5jbG9zZUFjdGlvbk1lbnUoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2xhdGlvbnMoKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZhY2FkZS51cGRhdGVSZWNvcmRMYW5ndWFnZXModGhpcy5mb3JtTGFuZ3VhZ2UsIFtdKVxuICAgICAgICAgICAgdGhpcy5pc011bHRpbGluZ3VhbCA9IGZhbHNlXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzID0gW11cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc011bHRpbGluZ3VhbCA9IHRydWVcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzID0gdGhpcy5yZWNvcmRMYW5ndWFnZXNcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVkaXRUcmFuc2xhdGlvbnMgPSBmYWxzZVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBpc0ZpcnN0VW5zdXBwb3J0ZWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxhbmdzID0gdGhpcy5zb3J0TGFuZ3VhZ2VzKHRoaXMucmVjb3JkTGFuZ3VhZ2VzKVxuICAgIHJldHVybiAoXG4gICAgICBsYW5nc1tpbmRleF0ubGVuZ3RoID09PSAzICYmXG4gICAgICBsYW5ncy5zbGljZSgwLCBpbmRleCkuZXZlcnkoKGxhbmcpID0+IGxhbmcubGVuZ3RoICE9PSAzKVxuICAgIClcbiAgfVxuXG4gIGlzTGFuZ1N1cHBvcnRlZChsYW5nOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbGFuZy5sZW5ndGggPT09IDJcbiAgfVxuXG4gIGdldFRvZ2dsZVRpdGxlKGxhbmc6IHN0cmluZykge1xuICAgIGlmIChsYW5nID09PSB0aGlzLl9yZWNvcmQuZGVmYXVsdExhbmd1YWdlKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0ubXVsdGlsaW5ndWFsLmZvcmJpZGRlbidcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBvcGVuQWN0aW9uTWVudShpdGVtOiBzdHJpbmcsIHRlbXBsYXRlKSB7XG4gICAgdGhpcy5pc0FjdGlvbk1lbnVPcGVuID0gdHJ1ZVxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zb3J0TGFuZ3VhZ2VzKHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMpLmluZGV4T2YoaXRlbSlcbiAgICBjb25zdCBidXR0b25FbGVtZW50ID0gdGhpcy5hY3Rpb25NZW51QnV0dG9ucy50b0FycmF5KClbaW5kZXhdXG5cbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8oYnV0dG9uRWxlbWVudClcbiAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKHRydWUpXG4gICAgICAud2l0aFB1c2godHJ1ZSlcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICB9LFxuICAgICAgXSlcblxuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgfSlcblxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0ZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKVxuXG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlQWN0aW9uTWVudSgpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGNsb3NlQWN0aW9uTWVudSgpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLmlzQWN0aW9uTWVudU9wZW4gPSBmYWxzZVxuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKVxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtZnVsbCB3LVszMDJweF0gYm9yZGVyLWwgYm9yZGVyLWdyYXktMzAwIHB5LTggcHgtMyBnYXAtNiBvdmVyZmxvdy1hdXRvXCJcbiAgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWY5XCJcbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgcHgtMiBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQtM3hsIGZvbnQtdGl0bGUgdGV4dC1ibGFjay84MFwiIHRyYW5zbGF0ZVxuICAgICAgPmVkaXRvci5yZWNvcmQuZm9ybS5tdWx0aWxpbmd1YWwudGl0bGU8L3NwYW5cbiAgICA+XG4gICAgPGJ1dHRvblxuICAgICAgW3RpdGxlXT1cIidlZGl0b3IucmVjb3JkLmZvcm0ubXVsdGlsaW5ndWFsLm9wZW4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVMYW5ndWFnZVNlbGVjdGlvbigpXCJcbiAgICAgICpuZ0lmPVwiaXNNdWx0aWxpbmd1YWxcIlxuICAgICAgZGF0YS10ZXN0PVwiYWN0aXZhdGVTZWxlY3Rpb25cIlxuICAgID5cbiAgICAgIDxuZy1pY29uIGNsYXNzPVwibXQtMVwiIG5hbWU9XCJpY29ub2lyU2V0dGluZ3NcIj48L25nLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMlwiICpuZ0lmPVwiZWRpdFRyYW5zbGF0aW9ucyB8fCAhaXNNdWx0aWxpbmd1YWxcIj5cbiAgICA8Z24tdWktY2hlY2stdG9nZ2xlXG4gICAgICBjbGFzcz1cInAtMlwiXG4gICAgICBbbGFiZWxdPVwiJ2VkaXRvci5yZWNvcmQuZm9ybS5tdWx0aWxpbmd1YWwuZW5hYmxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbY29sb3JdPVwiJ3ByaW1hcnknXCJcbiAgICAgIFsodmFsdWUpXT1cImlzTXVsdGlsaW5ndWFsXCJcbiAgICAgICh0b2dnbGVkKT1cInN3aXRjaE11bHRpbGluZ3VhbCgkZXZlbnQpXCJcbiAgICA+PC9nbi11aS1jaGVjay10b2dnbGU+XG4gICAgPGRpdiAqbmdJZj1cImlzTXVsdGlsaW5ndWFsXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gYm9yZGVyLXQgYm9yZGVyLWdyYXktMzAwIHAtM1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm10LTIgdGV4dC1zbSB0ZXh0LWdyYXktNjAwXCIgdHJhbnNsYXRlXG4gICAgICAgICAgPmVkaXRvci5yZWNvcmQuZm9ybS5tdWx0aWxpbmd1YWwuYWN0aXZhdGU8L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgZXh0cmFDbGFzcz1cInctMTYgaC04IGZvbnQtYm9sZFwiXG4gICAgICAgICAgdHlwZT1cImdyYXlcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJ2YWxpZGF0ZVRyYW5zbGF0aW9ucygpXCJcbiAgICAgICAgICBkYXRhLXRlc3Q9XCJ2YWxpZGF0ZVNlbGVjdGlvblwiXG4gICAgICAgICAgPnt7ICdlZGl0b3IucmVjb3JkLmZvcm0ubXVsdGlsaW5ndWFsLnZhbGlkYXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN1cHBvcnRlZExhbmd1YWdlcyQgfCBhc3luYyBhcyBsYW5ndWFnZXNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMiB3LWZ1bGwgcHgtMlwiXG4gICAgICAgICAgZGF0YS10ZXN0PVwibGFuZ0F2YWlsYWJsZVwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGxhbmcgb2YgbGFuZ3VhZ2VzXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgICAgIFtleHRyYUNsYXNzXT1cImdldEV4dHJhQ2xhc3MobGFuZylcIlxuICAgICAgICAgICAgdHlwZT1cImdyYXlcIlxuICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZUxhbmd1YWdlKGxhbmcpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsYW5nID09PSBfcmVjb3JkLmRlZmF1bHRMYW5ndWFnZVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiZ2V0VG9nZ2xlVGl0bGUobGFuZylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJnZXRJY29uQ2xhc3MobGFuZylcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTJcIj57eyAnbGFuZ3VhZ2UuJyArIGxhbmcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIWVkaXRUcmFuc2xhdGlvbnMgJiYgaXNNdWx0aWxpbmd1YWxcIiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTJcIj5cbiAgICA8Z24tdWktYnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgcmVjb3JkTGFuZyBvZiBzb3J0TGFuZ3VhZ2VzKHJlY29yZExhbmd1YWdlcyk7IGxldCBpID0gaW5kZXhcIlxuICAgICAgZXh0cmFDbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGJnLXdoaXRlIGJvcmRlciBib3JkZXItd2hpdGUgcm91bmRlZCBtYi0xIGgtWzM0cHhdIHctZnVsbFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdtdC04JzogaXNGaXJzdFVuc3VwcG9ydGVkKGkpLFxuICAgICAgICAnJzogdHJ1ZSxcbiAgICAgIH1cIlxuICAgICAgKGJ1dHRvbkNsaWNrKT1cInN3aXRjaEZvcm1MYW5nKHJlY29yZExhbmcpXCJcbiAgICAgIHR5cGU9XCJvdXRsaW5lXCJcbiAgICAgIGRhdGEtdGVzdD1cImxhbmdTd2l0Y2hcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0yIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8bmctaWNvblxuICAgICAgICAgICpuZ0lmPVwicmVjb3JkTGFuZyA9PT0gZm9ybUxhbmd1YWdlXCJcbiAgICAgICAgICBjbGFzcz1cInRleHQtcHJpbWFyeSBtdC0xXCJcbiAgICAgICAgICBuYW1lPVwiaWNvbm9pckNoZWNrQ2lyY2xlXCJcbiAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgPG5nLWljb25cbiAgICAgICAgICAqbmdJZj1cInJlY29yZExhbmcgIT09IGZvcm1MYW5ndWFnZVwiXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LWdyYXktODAwIG10LTFcIlxuICAgICAgICAgIG5hbWU9XCJpY29ub2lyQ2lyY2xlXCJcbiAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cInJlY29yZExhbmcubGVuZ3RoID09PSAyXCJcbiAgICAgICAgICBbY2xhc3NdPVwiZ2V0SWNvbkNsYXNzKHJlY29yZExhbmcpICsgJ210LTEnXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwicmVjb3JkTGFuZyA9PT0gZm9ybUxhbmd1YWdlID8gJ3RleHQtYmxhY2snIDogJydcIj57e1xuICAgICAgICAgIGlzTGFuZ1N1cHBvcnRlZChyZWNvcmRMYW5nKVxuICAgICAgICAgICAgPyAoJ2xhbmd1YWdlLicgKyByZWNvcmRMYW5nIHwgdHJhbnNsYXRlKVxuICAgICAgICAgICAgOiByZWNvcmRMYW5nLnRvVXBwZXJDYXNlKClcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0yIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwicmVjb3JkTGFuZyA9PT0gZm9ybUxhbmd1YWdlXCJcbiAgICAgICAgICBjbGFzcz1cInRleHQteHMgdGV4dC1iYXNlXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICA+ZWRpdG9yLnJlY29yZC5mb3JtLm11bHRpbGluZ3VhbC5kZWZhdWx0PC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgIG9wZW5BY3Rpb25NZW51KHJlY29yZExhbmcsIHRlbXBsYXRlKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgICAgICAgI2FjdGlvbk1lbnVCdXR0b25cbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1pY29uIGNsYXNzPVwicGItNVwiIG5hbWU9XCJtYXRNb3JlSG9yaXpPdXRsaW5lXCI+PC9uZy1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgICAgICAgICA8Z24tdWktYWN0aW9uLW1lbnVcbiAgICAgICAgICAgIFtjYW5EZWxldGVdPVwicmVjb3JkTGFuZyAhPT0gX3JlY29yZC5kZWZhdWx0TGFuZ3VhZ2VcIlxuICAgICAgICAgICAgcGFnZT1cInJlY29yZFwiXG4gICAgICAgICAgICAoZGVsZXRlKT1cImNvbmZpcm1EZWxldGVBY3Rpb24ocmVjb3JkTGFuZylcIlxuICAgICAgICAgICAgKGNsb3NlQWN0aW9uTWVudSk9XCJjbG9zZUFjdGlvbk1lbnUoKVwiXG4gICAgICAgICAgICAoc3dpdGNoKT1cInN3aXRjaERlZmF1bHRMYW5nKHJlY29yZExhbmcpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9nbi11aS1hY3Rpb24tbWVudT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZ24tdWktYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
275
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsaW5ndWFsLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL211bHRpbGluZ3VhbC1wYW5lbC9tdWx0aWxpbmd1YWwtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGlsaW5ndWFsLXBhbmVsL211bHRpbGluZ3VhbC1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDL0YsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsZ0JBQWdCLEdBQ2pCLE1BQU0scUJBQXFCLENBQUE7QUFFNUIsT0FBTyxFQUNMLGVBQWUsRUFDZixZQUFZLEVBQ1osb0JBQW9CLEdBQ3JCLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsZUFBZSxHQUNoQixNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQUN2RixPQUFPLEVBQUUs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QUFJLEVBQUUsUUFBUTthQUNmLENBQUM7U0FDSCwrR0FtQnlDLFVBQVUsNkJDaEd0RCxtK0lBMEhBLHlERC9ESSxZQUFZLG1aQUNaLG9CQUFvQixtSUFDcEIsa0JBQWtCLDZHQUNsQixhQUFhLGtEQUNiLGVBQWUsK0hBQ2YsZUFBZSw2R0FDZixtQkFBbUI7OzRGQWdCViwwQkFBMEI7a0JBMUJ0QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsbUJBQW1CO3FCQUNwQixhQUNVO3dCQUNULFlBQVksQ0FBQzs0QkFDWCxlQUFlOzRCQUNmLG1CQUFtQjs0QkFDbkIsa0JBQWtCOzRCQUNsQixhQUFhO3lCQUNkLENBQUM7d0JBQ0Ysb0JBQW9CLENBQUM7NEJBQ25CLElBQUksRUFBRSxRQUFRO3lCQUNmLENBQUM7cUJBQ0g7c1FBV1ksTUFBTTtzQkFBbEIsS0FBSztnQkFTTixpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCwgQ2hlY2tUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQge1xuICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gIFRyYW5zbGF0ZVBpcGUsXG4gIFRyYW5zbGF0ZVNlcnZpY2UsXG59IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7XG4gIGljb25vaXJDaGVja0NpcmNsZSxcbiAgaWNvbm9pckNpcmNsZSxcbiAgaWNvbm9pclNldHRpbmdzLFxufSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IG1hdE1vcmVIb3Jpek91dGxpbmUgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvb3V0bGluZSdcbmltcG9ydCB7IEVkaXRvckZhY2FkZSB9IGZyb20gJy4uLy4uLytzdGF0ZS9lZGl0b3IuZmFjYWRlJ1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMnXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnXG5pbXBvcnQgeyBSZWNvcmRzUmVwb3NpdG9yeUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL3JlcG9zaXRvcnkvcmVjb3Jkcy1yZXBvc2l0b3J5LmludGVyZmFjZSdcbmltcG9ydCB7IG1hcCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCdcbmltcG9ydCB7IEFjdGlvbk1lbnVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3NlYXJjaC9zcmMnXG5cbmNvbnN0IGV4dHJhRmxhZ01hcDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgYXI6ICdhcmFiJyxcbiAgZW46ICdnYicsXG4gIGtvOiAna3InLFxuICBjczogJ2N6JyxcbiAgemg6ICdjbicsXG4gIGNhOiAnZXMtY3QnLFxuICBybTogJ2NoJyxcbiAgZGE6ICdkaycsXG4gIHN2OiAnc2UnLFxuICBjeTogJ2diLXdscycsXG4gIGh5OiAnYW0nLFxuICBrYTogJ2dlJyxcbiAgdWs6ICd1YScsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW11bHRpbGluZ3VhbC1wYW5lbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ2hlY2tUb2dnbGVDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgICBBY3Rpb25NZW51Q29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoe1xuICAgICAgaWNvbm9pclNldHRpbmdzLFxuICAgICAgbWF0TW9yZUhvcml6T3V0bGluZSxcbiAgICAgIGljb25vaXJDaGVja0NpcmNsZSxcbiAgICAgIGljb25vaXJDaXJjbGUsXG4gICAgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuMjVlbScsXG4gICAgfSksXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aWxpbmd1YWwtcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbXVsdGlsaW5ndWFsLXBhbmVsLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aWxpbmd1YWxQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGlzTXVsdGlsaW5ndWFsOiBib29sZWFuXG4gIF9yZWNvcmQ6IENhdGFsb2dSZWNvcmRcbiAgZWRpdFRyYW5zbGF0aW9uczogYm9vbGVhblxuICBzZWxlY3RlZExhbmd1YWdlcyA9IFtdXG4gIHJlY29yZExhbmd1YWdlcyA9IFtdXG4gIGZvcm1MYW5ndWFnZSA9ICcnXG4gIEBJbnB1dCgpIHNldCByZWNvcmQodmFsdWU6IENhdGFsb2dSZWNvcmQpIHtcbiAgICB0aGlzLl9yZWNvcmQgPSB2YWx1ZVxuICAgIHRoaXMuaXNNdWx0aWxpbmd1YWwgPSB2YWx1ZS5vdGhlckxhbmd1YWdlcy5sZW5ndGggPiAwXG4gICAgdGhpcy5lZGl0VHJhbnNsYXRpb25zID0gZmFsc2VcbiAgICB0aGlzLnJlY29yZExhbmd1YWdlcyA9IFsuLi52YWx1ZS5vdGhlckxhbmd1YWdlcywgdmFsdWUuZGVmYXVsdExhbmd1YWdlXVxuICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMgPSB0aGlzLnJlY29yZExhbmd1YWdlc1xuICAgIHRoaXMuZm9ybUxhbmd1YWdlID0gdmFsdWUuZGVmYXVsdExhbmd1YWdlXG4gIH1cbiAgQFZpZXdDaGlsZHJlbignYWN0aW9uTWVudUJ1dHRvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBhY3Rpb25NZW51QnV0dG9ucyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPlxuICBwcml2YXRlIG92ZXJsYXlSZWYhOiBPdmVybGF5UmVmXG5cbiAgaXNBY3Rpb25NZW51T3BlbiA9IGZhbHNlXG4gIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKVxuXG4gIHN1cHBvcnRlZExhbmd1YWdlcyQgPSB0aGlzLnJlY29yZHNSZXBvc2l0b3J5XG4gICAgLmdldEFwcGxpY2F0aW9uTGFuZ3VhZ2VzKClcbiAgICAucGlwZShtYXAoKGxhbmd1YWdlcykgPT4gdGhpcy5zb3J0TGFuZ3VhZ2VzKGxhbmd1YWdlcykpKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBmYWNhZGU6IEVkaXRvckZhY2FkZSxcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVjb3Jkc1JlcG9zaXRvcnk6IFJlY29yZHNSZXBvc2l0b3J5SW50ZXJmYWNlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gIH1cblxuICBzb3J0TGFuZ3VhZ2VzKGxhbmd1YWdlczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gbGFuZ3VhZ2VzXG4gICAgICAubWFwKChsYW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2xhbmd1YWdlLicgKyBsYW5nKVxuICAgICAgICBjb25zdCBpc1RyYW5zbGF0ZWQgPSBsYWJlbCAhPT0gJ2xhbmd1YWdlLicgKyBsYW5nXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsYW5nLFxuICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgIGlzVHJhbnNsYXRlZCxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIGlmIChhLmlzVHJhbnNsYXRlZCAmJiAhYi5pc1RyYW5zbGF0ZWQpIHJldHVybiAtMVxuICAgICAgICBpZiAoIWEuaXNUcmFuc2xhdGVkICYmIGIuaXNUcmFuc2xhdGVkKSByZXR1cm4gMVxuXG4gICAgICAgIHJldHVybiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbClcbiAgICAgIH0pXG4gICAgICAubWFwKChpdGVtKSA9PiBpdGVtLmxhbmcpXG4gIH1cblxuICB0b2dnbGVMYW5ndWFnZVNlbGVjdGlvbigpIHtcbiAgICB0aGlzLmVkaXRUcmFuc2xhdGlvbnMgPSAhdGhpcy5lZGl0VHJhbnNsYXRpb25zXG4gIH1cblxuICBnZXRJY29uQ2xhc3MobGFuZzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGV4dHJhRmxhZ01hcFtsYW5nXVxuICAgICAgPyBgZmkgZmktJHtleHRyYUZsYWdNYXBbbGFuZ119IHctNCBoLTNgXG4gICAgICA6IGBmaSBmaS0ke2xhbmd9IHctNCBoLTNgXG4gIH1cblxuICBzd2l0Y2hNdWx0aWxpbmd1YWwoKSB7XG4gICAgaWYgKHRoaXMuaXNNdWx0aWxpbmd1YWwgJiYgdGhpcy5zZWxlY3RlZExhbmd1YWdlcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aGlzLmNvbmZpcm1EZWxldGVBY3Rpb24oKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzTXVsdGlsaW5ndWFsID0gdHJ1ZVxuICAgICAgdGhpcy5lZGl0VHJhbnNsYXRpb25zID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGdldEV4dHJhQ2xhc3MobGFuZzogc3RyaW5nKSB7XG4gICAgY29uc3QgYmFzZUNsYXNzID0gJ2gtWzM0cHhdIHctZnVsbCBmb250LWJvbGQganVzdGlmeS1zdGFydCBob3ZlcjpiZy13aGl0ZSdcbiAgICBpZiAodGhpcy5zZWxlY3RlZExhbmd1YWdlcy5pbmNsdWRlcyhsYW5nKSkge1xuICAgICAgcmV0dXJuIGAke2Jhc2VDbGFzc30gYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ibGFja2BcbiAgICB9XG4gICAgcmV0dXJuIGJhc2VDbGFzc1xuICB9XG5cbiAgdG9nZ2xlTGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMuaW5jbHVkZXMobGFuZykpIHtcbiAgICAgIHRoaXMucmVtb3ZlU2VsZWN0ZWRMYW5ndWFnZShsYW5nKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzLnB1c2gobGFuZylcbiAgICB9XG4gIH1cblxuICByZW1vdmVTZWxlY3RlZExhbmd1YWdlKGxhbmc6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMgPSB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzLmZpbHRlcihcbiAgICAgIChsYW5ndWFnZSkgPT4gbGFuZ3VhZ2UgIT09IGxhbmdcbiAgICApXG4gIH1cblxuICB2YWxpZGF0ZVRyYW5zbGF0aW9ucygpIHtcbiAgICBjb25zdCBlcXVhbExlbmd0aCA9XG4gICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzLmxlbmd0aCA9PT0gdGhpcy5yZWNvcmRMYW5ndWFnZXMubGVuZ3RoXG4gICAgaWYgKFxuICAgICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlcy5sZW5ndGggPCB0aGlzLnJlY29yZExhbmd1YWdlcy5sZW5ndGggfHxcbiAgICAgIChlcXVhbExlbmd0aCAmJiB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzICE9PSB0aGlzLnJlY29yZExhbmd1YWdlcylcbiAgICApIHtcbiAgICAgIHRoaXMuY29uZmlybURlbGV0ZUFjdGlvbih0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwZGF0ZVRyYW5zbGF0aW9ucygpXG4gICAgfVxuICB9XG5cbiAgdXBkYXRlVHJhbnNsYXRpb25zKCkge1xuICAgIGNvbnN0IG5ld0xhbmd1YWdlU2VsZWN0aW9uID0gdGhpcy5zZWxlY3RlZExhbmd1YWdlcy5maWx0ZXIoXG4gICAgICAobGFuZykgPT4gbGFuZyAhPT0gdGhpcy5mb3JtTGFuZ3VhZ2VcbiAgICApXG4gICAgdGhpcy5mYWNhZGUudXBkYXRlUmVjb3JkTGFuZ3VhZ2VzKHRoaXMuZm9ybUxhbmd1YWdlLCBuZXdMYW5ndWFnZVNlbGVjdGlvbilcbiAgICB0aGlzLnJlY29yZExhbmd1YWdlcyA9IG5ld0xhbmd1YWdlU2VsZWN0aW9uXG4gICAgdGhpcy5lZGl0VHJhbnNsYXRpb25zID0gZmFsc2VcbiAgfVxuXG4gIHN3aXRjaEZvcm1MYW5nKGxhbmcpIHtcbiAgICAvLyBUTyBJTVBMRU1FTlQgRlVSVEhFUlxuICB9XG5cbiAgc3dpdGNoRGVmYXVsdExhbmcobGFuZzogc3RyaW5nKSB7XG4gICAgdGhpcy5mb3JtTGFuZ3VhZ2UgPSBsYW5nXG4gICAgdGhpcy5mYWNhZGUudXBkYXRlUmVjb3JkTGFuZ3VhZ2VzKFxuICAgICAgbGFuZyxcbiAgICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMuZmlsdGVyKChsYW5nKSA9PiBsYW5nICE9PSB0aGlzLmZvcm1MYW5ndWFnZSlcbiAgICApXG4gICAgdGhpcy5jbG9zZUFjdGlvbk1lbnUoKVxuICB9XG5cbiAgY29uZmlybURlbGV0ZUFjdGlvbihsYW5nPzogc3RyaW5nW10gfCBzdHJpbmcpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQubXVsdGlsaW5ndWFsLmNvbmZpcm1hdGlvbi50aXRsZSdcbiAgICAgICAgKSxcbiAgICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQubXVsdGlsaW5ndWFsLmNvbmZpcm1hdGlvbi5tZXNzYWdlJ1xuICAgICAgICApLFxuICAgICAgICBjb25maXJtVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQubXVsdGlsaW5ndWFsLmNvbmZpcm1hdGlvbi5jb25maXJtVGV4dCdcbiAgICAgICAgKSxcbiAgICAgICAgY2FuY2VsVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQubXVsdGlsaW5ndWFsLmNvbmZpcm1hdGlvbi5jYW5jZWxUZXh0J1xuICAgICAgICApLFxuICAgICAgICBmb2N1c0NhbmNlbDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICByZXN0b3JlRm9jdXM6IHRydWUsXG4gICAgfSlcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKGNvbmZpcm1lZCkgPT4ge1xuICAgICAgICBpZiAoY29uZmlybWVkKSB7XG4gICAgICAgICAgaWYgKGxhbmcpIHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShsYW5nKSkge1xuICAgICAgICAgICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkTGFuZ3VhZ2UobGFuZylcbiAgICAgICAgICAgICAgdGhpcy5jbG9zZUFjdGlvbk1lbnUoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc2xhdGlvbnMoKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZhY2FkZS51cGRhdGVSZWNvcmRMYW5ndWFnZXModGhpcy5mb3JtTGFuZ3VhZ2UsIFtdKVxuICAgICAgICAgICAgdGhpcy5pc011bHRpbGluZ3VhbCA9IGZhbHNlXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzID0gW11cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc011bHRpbGluZ3VhbCA9IHRydWVcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VzID0gdGhpcy5yZWNvcmRMYW5ndWFnZXNcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVkaXRUcmFuc2xhdGlvbnMgPSBmYWxzZVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBpc0ZpcnN0VW5zdXBwb3J0ZWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxhbmdzID0gdGhpcy5zb3J0TGFuZ3VhZ2VzKHRoaXMucmVjb3JkTGFuZ3VhZ2VzKVxuICAgIHJldHVybiAoXG4gICAgICBsYW5nc1tpbmRleF0ubGVuZ3RoID09PSAzICYmXG4gICAgICBsYW5ncy5zbGljZSgwLCBpbmRleCkuZXZlcnkoKGxhbmcpID0+IGxhbmcubGVuZ3RoICE9PSAzKVxuICAgIClcbiAgfVxuXG4gIGlzTGFuZ1N1cHBvcnRlZChsYW5nOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbGFuZy5sZW5ndGggPT09IDJcbiAgfVxuXG4gIGdldFRvZ2dsZVRpdGxlKGxhbmc6IHN0cmluZykge1xuICAgIGlmIChsYW5nID09PSB0aGlzLl9yZWNvcmQuZGVmYXVsdExhbmd1YWdlKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0ubXVsdGlsaW5ndWFsLmZvcmJpZGRlbidcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBvcGVuQWN0aW9uTWVudShpdGVtOiBzdHJpbmcsIHRlbXBsYXRlKSB7XG4gICAgdGhpcy5pc0FjdGlvbk1lbnVPcGVuID0gdHJ1ZVxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zb3J0TGFuZ3VhZ2VzKHRoaXMuc2VsZWN0ZWRMYW5ndWFnZXMpLmluZGV4T2YoaXRlbSlcbiAgICBjb25zdCBidXR0b25FbGVtZW50ID0gdGhpcy5hY3Rpb25NZW51QnV0dG9ucy50b0FycmF5KClbaW5kZXhdXG5cbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8oYnV0dG9uRWxlbWVudClcbiAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKHRydWUpXG4gICAgICAud2l0aFB1c2godHJ1ZSlcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICB9LFxuICAgICAgXSlcblxuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgfSlcblxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0ZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKVxuXG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlQWN0aW9uTWVudSgpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGNsb3NlQWN0aW9uTWVudSgpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLmlzQWN0aW9uTWVudU9wZW4gPSBmYWxzZVxuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKVxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKClcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtZnVsbCB3LVszMDJweF0gYm9yZGVyLWwgYm9yZGVyLWdyYXktMzAwIHB5LTggcHgtMyBnYXAtNiBvdmVyZmxvdy1hdXRvXCJcbiAgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWY5XCJcbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgcHgtMiBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICA8c3BhbiBjbGFzcz1cInRleHQtM3hsIGZvbnQtdGl0bGUgdGV4dC1ibGFjay84MFwiIHRyYW5zbGF0ZVxuICAgICAgPmVkaXRvci5yZWNvcmQuZm9ybS5tdWx0aWxpbmd1YWwudGl0bGU8L3NwYW5cbiAgICA+XG4gICAgPGJ1dHRvblxuICAgICAgW3RpdGxlXT1cIidlZGl0b3IucmVjb3JkLmZvcm0ubXVsdGlsaW5ndWFsLm9wZW4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVMYW5ndWFnZVNlbGVjdGlvbigpXCJcbiAgICAgICpuZ0lmPVwiaXNNdWx0aWxpbmd1YWxcIlxuICAgICAgZGF0YS10ZXN0PVwiYWN0aXZhdGVTZWxlY3Rpb25cIlxuICAgID5cbiAgICAgIDxuZy1pY29uIGNsYXNzPVwibXQtMVwiIG5hbWU9XCJpY29ub2lyU2V0dGluZ3NcIj48L25nLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMlwiICpuZ0lmPVwiZWRpdFRyYW5zbGF0aW9ucyB8fCAhaXNNdWx0aWxpbmd1YWxcIj5cbiAgICA8Z24tdWktY2hlY2stdG9nZ2xlXG4gICAgICBjbGFzcz1cInAtMlwiXG4gICAgICBbbGFiZWxdPVwiJ2VkaXRvci5yZWNvcmQuZm9ybS5tdWx0aWxpbmd1YWwuZW5hYmxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbY29sb3JdPVwiJ3ByaW1hcnknXCJcbiAgICAgIFsodmFsdWUpXT1cImlzTXVsdGlsaW5ndWFsXCJcbiAgICAgICh0b2dnbGVkKT1cInN3aXRjaE11bHRpbGluZ3VhbCgkZXZlbnQpXCJcbiAgICA+PC9nbi11aS1jaGVjay10b2dnbGU+XG4gICAgPGRpdiAqbmdJZj1cImlzTXVsdGlsaW5ndWFsXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gYm9yZGVyLXQgYm9yZGVyLWdyYXktMzAwIHAtM1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm10LTIgdGV4dC1zbSB0ZXh0LWdyYXktNjAwXCIgdHJhbnNsYXRlXG4gICAgICAgICAgPmVkaXRvci5yZWNvcmQuZm9ybS5tdWx0aWxpbmd1YWwuYWN0aXZhdGU8L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgZXh0cmFDbGFzcz1cInctMTYgaC04IGZvbnQtYm9sZFwiXG4gICAgICAgICAgdHlwZT1cImdyYXlcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJ2YWxpZGF0ZVRyYW5zbGF0aW9ucygpXCJcbiAgICAgICAgICBkYXRhLXRlc3Q9XCJ2YWxpZGF0ZVNlbGVjdGlvblwiXG4gICAgICAgICAgPnt7ICdlZGl0b3IucmVjb3JkLmZvcm0ubXVsdGlsaW5ndWFsLnZhbGlkYXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN1cHBvcnRlZExhbmd1YWdlcyQgfCBhc3luYyBhcyBsYW5ndWFnZXNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMiB3LWZ1bGwgcHgtMlwiXG4gICAgICAgICAgZGF0YS10ZXN0PVwibGFuZ0F2YWlsYWJsZVwiXG4gICAgICAgICAgW2F0dHIuZGF0YS10ZXN0LWxhbmddPVwibGFuZ1wiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGxhbmcgb2YgbGFuZ3VhZ2VzXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgICAgIFtleHRyYUNsYXNzXT1cImdldEV4dHJhQ2xhc3MobGFuZylcIlxuICAgICAgICAgICAgdHlwZT1cImdyYXlcIlxuICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZUxhbmd1YWdlKGxhbmcpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsYW5nID09PSBfcmVjb3JkLmRlZmF1bHRMYW5ndWFnZVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiZ2V0VG9nZ2xlVGl0bGUobGFuZylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJnZXRJY29uQ2xhc3MobGFuZylcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTJcIj57eyAnbGFuZ3VhZ2UuJyArIGxhbmcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIWVkaXRUcmFuc2xhdGlvbnMgJiYgaXNNdWx0aWxpbmd1YWxcIiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTJcIj5cbiAgICA8Z24tdWktYnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgcmVjb3JkTGFuZyBvZiBzb3J0TGFuZ3VhZ2VzKHJlY29yZExhbmd1YWdlcyk7IGxldCBpID0gaW5kZXhcIlxuICAgICAgZXh0cmFDbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGJnLXdoaXRlIGJvcmRlciBib3JkZXItd2hpdGUgcm91bmRlZCBtYi0xIGgtWzM0cHhdIHctZnVsbFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdtdC04JzogaXNGaXJzdFVuc3VwcG9ydGVkKGkpLFxuICAgICAgICAnJzogdHJ1ZSxcbiAgICAgIH1cIlxuICAgICAgKGJ1dHRvbkNsaWNrKT1cInN3aXRjaEZvcm1MYW5nKHJlY29yZExhbmcpXCJcbiAgICAgIHR5cGU9XCJvdXRsaW5lXCJcbiAgICAgIGRhdGEtdGVzdD1cImxhbmdTd2l0Y2hcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0yIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8bmctaWNvblxuICAgICAgICAgICpuZ0lmPVwicmVjb3JkTGFuZyA9PT0gZm9ybUxhbmd1YWdlXCJcbiAgICAgICAgICBjbGFzcz1cInRleHQtcHJpbWFyeSBtdC0xXCJcbiAgICAgICAgICBuYW1lPVwiaWNvbm9pckNoZWNrQ2lyY2xlXCJcbiAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgPG5nLWljb25cbiAgICAgICAgICAqbmdJZj1cInJlY29yZExhbmcgIT09IGZvcm1MYW5ndWFnZVwiXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LWdyYXktODAwIG10LTFcIlxuICAgICAgICAgIG5hbWU9XCJpY29ub2lyQ2lyY2xlXCJcbiAgICAgICAgPjwvbmctaWNvbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cInJlY29yZExhbmcubGVuZ3RoID09PSAyXCJcbiAgICAgICAgICBbY2xhc3NdPVwiZ2V0SWNvbkNsYXNzKHJlY29yZExhbmcpICsgJ210LTEnXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwicmVjb3JkTGFuZyA9PT0gZm9ybUxhbmd1YWdlID8gJ3RleHQtYmxhY2snIDogJydcIj57e1xuICAgICAgICAgIGlzTGFuZ1N1cHBvcnRlZChyZWNvcmRMYW5nKVxuICAgICAgICAgICAgPyAoJ2xhbmd1YWdlLicgKyByZWNvcmRMYW5nIHwgdHJhbnNsYXRlKVxuICAgICAgICAgICAgOiByZWNvcmRMYW5nLnRvVXBwZXJDYXNlKClcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0yIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwicmVjb3JkTGFuZyA9PT0gZm9ybUxhbmd1YWdlXCJcbiAgICAgICAgICBjbGFzcz1cInRleHQteHMgdGV4dC1iYXNlXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICA+ZWRpdG9yLnJlY29yZC5mb3JtLm11bHRpbGluZ3VhbC5kZWZhdWx0PC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgIG9wZW5BY3Rpb25NZW51KHJlY29yZExhbmcsIHRlbXBsYXRlKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgICAgICAgI2FjdGlvbk1lbnVCdXR0b25cbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1pY29uIGNsYXNzPVwicGItNVwiIG5hbWU9XCJtYXRNb3JlSG9yaXpPdXRsaW5lXCI+PC9uZy1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgICAgICAgICA8Z24tdWktYWN0aW9uLW1lbnVcbiAgICAgICAgICAgIFtjYW5EZWxldGVdPVwicmVjb3JkTGFuZyAhPT0gX3JlY29yZC5kZWZhdWx0TGFuZ3VhZ2VcIlxuICAgICAgICAgICAgcGFnZT1cInJlY29yZFwiXG4gICAgICAgICAgICAoZGVsZXRlKT1cImNvbmZpcm1EZWxldGVBY3Rpb24ocmVjb3JkTGFuZylcIlxuICAgICAgICAgICAgKGNsb3NlQWN0aW9uTWVudSk9XCJjbG9zZUFjdGlvbk1lbnUoKVwiXG4gICAgICAgICAgICAoc3dpdGNoKT1cInN3aXRjaERlZmF1bHRMYW5nKHJlY29yZExhbmcpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9nbi11aS1hY3Rpb24tbWVudT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZ24tdWktYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -18,10 +18,10 @@ export class MapStateContainerComponent {
18
18
  this.mapFacade.selectFeatures(features);
19
19
  }
20
20
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapStateContainerComponent, deps: [{ token: i1.MapFacade }], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapStateContainerComponent, isStandalone: true, selector: "gn-ui-map-state-container", ngImport: i0, template: "<gn-ui-map-container\n [context]=\"context$ | async\"\n (featuresClick)=\"handleFeaturesClicked($event)\"\n></gn-ui-map-container>\n", styles: [""], dependencies: [{ kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "sourceLoadError"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapStateContainerComponent, isStandalone: true, selector: "gn-ui-map-state-container", ngImport: i0, template: "<gn-ui-map-container\n [context]=\"context$ | async\"\n (featuresClick)=\"handleFeaturesClicked($event)\"\n></gn-ui-map-container>\n", styles: [""], dependencies: [{ kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "extentChange", "sourceLoadError", "resolvedExtentChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
22
  }
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapStateContainerComponent, decorators: [{
24
24
  type: Component,
25
25
  args: [{ selector: 'gn-ui-map-state-container', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MapContainerComponent, CommonModule], template: "<gn-ui-map-container\n [context]=\"context$ | async\"\n (featuresClick)=\"handleFeaturesClicked($event)\"\n></gn-ui-map-container>\n" }]
26
26
  }], ctorParameters: () => [{ type: i1.MapFacade }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXN0YXRlLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvbWFwLXN0YXRlLWNvbnRhaW5lci9tYXAtc3RhdGUtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9tYXAtc3RhdGUtY29udGFpbmVyL21hcC1zdGF0ZS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBOzs7O0FBVzlDLE1BQU0sT0FBTywwQkFBMEI7SUFHckMsWUFBb0IsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUZ4QyxhQUFRLEdBQTJCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFBO0lBRWYsQ0FBQztJQUU1QyxxQkFBcUIsQ0FBQyxRQUFtQjtRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtZQUN0QyxPQUFNO1FBQ1IsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3pDLENBQUM7K0dBWFUsMEJBQTBCO21HQUExQiwwQkFBMEIscUZDaEJ2Qyx3SUFJQSwwRERVWSxxQkFBcUIsZ0tBQUUsWUFBWTs7NEZBRWxDLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDRSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMscUJBQXFCLEVBQUUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IE1hcEZhY2FkZSB9IGZyb20gJy4uLytzdGF0ZS9tYXAuZmFjYWRlJ1xuaW1wb3J0IHsgTWFwQ29udGV4dCB9IGZyb20gJ0BnZW9zcGF0aWFsLXNkay9jb3JlJ1xuaW1wb3J0IHsgTWFwQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9tYXAvc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJ2dlb2pzb24nXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW1hcC1zdGF0ZS1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFwLXN0YXRlLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21hcC1zdGF0ZS1jb250YWluZXIuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hcENvbnRhaW5lckNvbXBvbmVudCwgQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTWFwU3RhdGVDb250YWluZXJDb21wb25lbnQge1xuICBjb250ZXh0JDogT2JzZXJ2YWJsZTxNYXBDb250ZXh0PiA9IHRoaXMubWFwRmFjYWRlLmNvbnRleHQkXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtYXBGYWNhZGU6IE1hcEZhY2FkZSkge31cblxuICBoYW5kbGVGZWF0dXJlc0NsaWNrZWQoZmVhdHVyZXM6IEZlYXR1cmVbXSkge1xuICAgIGlmICghZmVhdHVyZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLm1hcEZhY2FkZS5jbGVhckZlYXR1cmVTZWxlY3Rpb24oKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMubWFwRmFjYWRlLnNlbGVjdEZlYXR1cmVzKGZlYXR1cmVzKVxuICB9XG59XG4iLCI8Z24tdWktbWFwLWNvbnRhaW5lclxuICBbY29udGV4dF09XCJjb250ZXh0JCB8IGFzeW5jXCJcbiAgKGZlYXR1cmVzQ2xpY2spPVwiaGFuZGxlRmVhdHVyZXNDbGlja2VkKCRldmVudClcIlxuPjwvZ24tdWktbWFwLWNvbnRhaW5lcj5cbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXN0YXRlLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvbWFwLXN0YXRlLWNvbnRhaW5lci9tYXAtc3RhdGUtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9tYXAtc3RhdGUtY29udGFpbmVyL21hcC1zdGF0ZS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBOzs7O0FBVzlDLE1BQU0sT0FBTywwQkFBMEI7SUFHckMsWUFBb0IsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUZ4QyxhQUFRLEdBQTJCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFBO0lBRWYsQ0FBQztJQUU1QyxxQkFBcUIsQ0FBQyxRQUFtQjtRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtZQUN0QyxPQUFNO1FBQ1IsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3pDLENBQUM7K0dBWFUsMEJBQTBCO21HQUExQiwwQkFBMEIscUZDaEJ2Qyx3SUFJQSwwRERVWSxxQkFBcUIsd01BQUUsWUFBWTs7NEZBRWxDLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDRSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMscUJBQXFCLEVBQUUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IE1hcEZhY2FkZSB9IGZyb20gJy4uLytzdGF0ZS9tYXAuZmFjYWRlJ1xuaW1wb3J0IHsgTWFwQ29udGV4dCB9IGZyb20gJ0BnZW9zcGF0aWFsLXNkay9jb3JlJ1xuaW1wb3J0IHsgTWFwQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9tYXAvc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJ2dlb2pzb24nXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW1hcC1zdGF0ZS1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFwLXN0YXRlLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21hcC1zdGF0ZS1jb250YWluZXIuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hcENvbnRhaW5lckNvbXBvbmVudCwgQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTWFwU3RhdGVDb250YWluZXJDb21wb25lbnQge1xuICBjb250ZXh0JDogT2JzZXJ2YWJsZTxNYXBDb250ZXh0PiA9IHRoaXMubWFwRmFjYWRlLmNvbnRleHQkXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtYXBGYWNhZGU6IE1hcEZhY2FkZSkge31cblxuICBoYW5kbGVGZWF0dXJlc0NsaWNrZWQoZmVhdHVyZXM6IEZlYXR1cmVbXSkge1xuICAgIGlmICghZmVhdHVyZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLm1hcEZhY2FkZS5jbGVhckZlYXR1cmVTZWxlY3Rpb24oKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMubWFwRmFjYWRlLnNlbGVjdEZlYXR1cmVzKGZlYXR1cmVzKVxuICB9XG59XG4iLCI8Z24tdWktbWFwLWNvbnRhaW5lclxuICBbY29udGV4dF09XCJjb250ZXh0JCB8IGFzeW5jXCJcbiAgKGZlYXR1cmVzQ2xpY2spPVwiaGFuZGxlRmVhdHVyZXNDbGlja2VkKCRldmVudClcIlxuPjwvZ24tdWktbWFwLWNvbnRhaW5lcj5cbiJdfQ==
@@ -8,4 +8,5 @@ export * from './lib/external-viewer-button/external-viewer-button.component';
8
8
  export * from './lib/gpf-api-dl/gpf-api-dl.component';
9
9
  export * from './lib/map-view/map-view.component';
10
10
  export * from './lib/record-meta/record-meta.component';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvcmVjb3JkL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMsYUFBYSxDQUFBO0FBQzNCLGNBQWMseURBQXlELENBQUE7QUFDdkUsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMsaUVBQWlFLENBQUE7QUFDL0UsY0FBYywrREFBK0QsQ0FBQTtBQUM3RSxjQUFjLHVDQUF1QyxDQUFBO0FBQ3JELGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyx5Q0FBeUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2ZlYXR1cmUtcmVjb3JkLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXRlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS12aWV3LXBlcm1hbGluay9kYXRhLXZpZXctcGVybWFsaW5rLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEtdmlldy9kYXRhLXZpZXcuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS12aWV3LXNoYXJlL2RhdGEtdmlldy1zaGFyZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhLXZpZXctd2ViLWNvbXBvbmVudC9kYXRhLXZpZXctd2ViLWNvbXBvbmVudC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9leHRlcm5hbC12aWV3ZXItYnV0dG9uL2V4dGVybmFsLXZpZXdlci1idXR0b24uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ3BmLWFwaS1kbC9ncGYtYXBpLWRsLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hcC12aWV3L21hcC12aWV3LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlY29yZC1tZXRhL3JlY29yZC1tZXRhLmNvbXBvbmVudCdcbiJdfQ==
11
+ export * from './lib/stac-view/stac-view.component';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvcmVjb3JkL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMsYUFBYSxDQUFBO0FBQzNCLGNBQWMseURBQXlELENBQUE7QUFDdkUsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMsaUVBQWlFLENBQUE7QUFDL0UsY0FBYywrREFBK0QsQ0FBQTtBQUM3RSxjQUFjLHVDQUF1QyxDQUFBO0FBQ3JELGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLHFDQUFxQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZmVhdHVyZS1yZWNvcmQubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhLXZpZXctcGVybWFsaW5rL2RhdGEtdmlldy1wZXJtYWxpbmsuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS12aWV3L2RhdGEtdmlldy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhLXZpZXctc2hhcmUvZGF0YS12aWV3LXNoYXJlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEtdmlldy13ZWItY29tcG9uZW50L2RhdGEtdmlldy13ZWItY29tcG9uZW50LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2V4dGVybmFsLXZpZXdlci1idXR0b24vZXh0ZXJuYWwtdmlld2VyLWJ1dHRvbi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9ncGYtYXBpLWRsL2dwZi1hcGktZGwuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFwLXZpZXcvbWFwLXZpZXcuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVjb3JkLW1ldGEvcmVjb3JkLW1ldGEuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhYy12aWV3L3N0YWMtdmlldy5jb21wb25lbnQnXG4iXX0=
@@ -107,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
107
107
  }], linkSelected: [{
108
108
  type: Output
109
109
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9kYXRhLXZpZXcvZGF0YS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9kYXRhLXZpZXcvZGF0YS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsR0FDaEIsTUFBTSx3Q0FBd0MsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNyRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFHdkMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDaEYsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixrQkFBa0IsR0FDbkIsTUFBTSw0Q0FBNEMsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFBOzs7O0FBa0IzRSxNQUFNLE9BQU8saUJBQWlCO0lBRzVCLElBQWEsWUFBWSxDQUFDLEtBQWM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMs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QUMsYUFBYSxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM5QixDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDL0IsQ0FBQzsrR0FqRlUsaUJBQWlCO21HQUFqQixpQkFBaUIsMFNDMUM5QiwyZ0RBMkNBLHlERFZJLFlBQVksc1JBQ1oseUJBQXlCLHFOQUN6QixrQkFBa0IsZ0hBQ2xCLGtCQUFrQiw2R0FDbEIsYUFBYSxrREFDYixrQkFBa0Isb05BQ2xCLG1CQUFtQjs7NEZBR1YsaUJBQWlCO2tCQWhCN0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWix5QkFBeUI7d0JBQ3pCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3FCQUNwQjtpRkFHUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDTyxZQUFZO3NCQUF4QixLQUFLO2dCQU9PLFlBQVk7c0JBQXhCLEtBQUs7Z0JBTU8sYUFBYTtzQkFBekIsS0FBSztnQkFjSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBnZXRMaW5rSWQsXG4gIGdldExpbmtMYWJlbCxcbiAgZ2V0TGlua1ByaW9yaXR5LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgTWRWaWV3RmFjYWRlIH0gZnJvbSAnLi4vc3RhdGUnXG5pbXBvcnQgeyBEYXRhdml6Q2hhcnRDb25maWdNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL2RhdGF2aXovZGF0YXZpei1jb25maWd1cmF0aW9uLm1vZGVsJ1xuaW1wb3J0IHsgRGF0YXNldE9ubGluZVJlc291cmNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7XG4gIENoYXJ0Vmlld0NvbXBvbmVudCxcbiAgVGFibGVWaWV3Q29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZGF0YXZpei9zcmMnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBUcmFuc2xhdGVEaXJlY3RpdmUsIFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgUG9wdXBBbGVydENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvd2lkZ2V0cy9zcmMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWRhdGEtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhLXZpZXcuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICAgIFRhYmxlVmlld0NvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBDaGFydFZpZXdDb21wb25lbnQsXG4gICAgUG9wdXBBbGVydENvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YVZpZXdDb21wb25lbnQge1xuICBASW5wdXQoKSBtb2RlOiAndGFibGUnIHwgJ2NoYXJ0J1xuICBASW5wdXQoKSBkaXNwbGF5U291cmNlID0gdHJ1ZVxuICBASW5wdXQoKSBzZXQgZXhjZWVkc0xpbWl0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5leGNsdWRlV2ZzJC5uZXh0KHZhbHVlKVxuICB9XG4gIGxpbmtNYXA6IE1hcDxzdHJpbmcsIERhdGFzZXRPbmxpbmVSZXNvdXJjZT4gPSBuZXcgTWFwKClcbiAgX3NlbGVjdGVkVmlldyA9ICcnXG4gIF9jaGFydENvbmZpZyA9IG51bGxcbiAgX3NlbGVjdGVkQ2hvaWNlID0gbnVsbFxuICBASW5wdXQoKSBzZXQgc2VsZWN0ZWRWaWV3KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zZWxlY3RlZFZpZXcgPSB2YWx1ZVxuICAgIGlmICh0aGlzLm1vZGUgPT09IHZhbHVlKSB7XG4gICAgICB0aGlzLmxpbmtTZWxlY3RlZC5lbWl0KHRoaXMuc2VsZWN0ZWRMaW5rJC52YWx1ZSlcbiAgICB9XG4gIH1cbiAgQElucHV0KCkgc2V0IGRhdGF2aXpDb25maWcodmFsdWU6IGFueSkge1xuICAgIGlmICgodmFsdWUgJiYgdmFsdWUudmlldyA9PT0gJ3RhYmxlJykgfHwgdmFsdWUudmlldyA9PT0gJ2NoYXJ0Jykge1xuICAgICAgdGhpcy5fc2VsZWN0ZWRWaWV3ID0gdmFsdWUudmlld1xuICAgIH1cbiAgICBpZiAodGhpcy5tb2RlID09PSB2YWx1ZS52aWV3KSB7XG4gICAgICBpZiAoIXZhbHVlLnNvdXJjZSkge1xuICAgICAgICB0aGlzLmxpbmtTZWxlY3RlZC5lbWl0KHRoaXMuc2VsZWN0ZWRMaW5rJC52YWx1ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2NoYXJ0Q29uZmlnID0gdmFsdWUuY2hhcnRDb25maWdcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRDaG9pY2UgPSBnZXRMaW5rSWQodmFsdWUuc291cmNlKVxuICAgICAgICB0aGlzLnNlbGVjdGVkTGluayQubmV4dCh2YWx1ZS5zb3VyY2UpXG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBPdXRwdXQoKSBjaGFydENvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGF2aXpDaGFydENvbmZpZ01vZGVsPihudWxsKVxuICBAT3V0cHV0KCkgbGlua1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRhc2V0T25saW5lUmVzb3VyY2U+KClcbiAgY2FjaGVBY3RpdmUkID0gdGhpcy5tZFZpZXdGYWNhZGUuaXNIaWdoVXBkYXRlRnJlcXVlbmN5JC5waXBlKFxuICAgIG1hcCgoaGlnaEYpID0+ICFoaWdoRilcbiAgKVxuICBleGNsdWRlV2ZzJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpXG4gIGNvbXBhdGlibGVEYXRhTGlua3MkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5tZFZpZXdGYWNhZGUuZGF0YUxpbmtzJCxcbiAgICB0aGlzLm1kVmlld0ZhY2FkZS5nZW9EYXRhTGlua3MkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW2RhdGFMaW5rcywgZ2VvRGF0YUxpbmtzXSkgPT4ge1xuICAgICAgY29uc3QgYSA9IFsuLi5kYXRhTGlua3MsIC4uLmdlb0RhdGFMaW5rc11cbiAgICAgIGEuc29ydCgoYSwgYikgPT4gZ2V0TGlua1ByaW9yaXR5KGIpIC0gZ2V0TGlua1ByaW9yaXR5KGEpKVxuICAgICAgcmV0dXJuIGFcbiAgICB9KVxuICApXG4gIGRyb3Bkb3duQ2hvaWNlcyQgPSB0aGlzLmNvbXBhdGlibGVEYXRhTGlua3MkLnBpcGUoXG4gICAgdGFwKChsaW5rczogRGF0YXNldE9ubGluZVJlc291cmNlW10pID0+IHtcbiAgICAgIHRoaXMubGlua01hcC5jbGVhcigpXG4gICAgICBsaW5rcy5mb3JFYWNoKChsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpID0+XG4gICAgICAgIHRoaXMubGlua01hcC5zZXQoZ2V0TGlua0lkKGxpbmspLCBsaW5rKVxuICAgICAgKVxuICAgICAgaWYgKCFsaW5rcy5zb21lKChsKSA9PiBsLnVybCA9PT0gdGhpcy5zZWxlY3RlZExpbmskLnZhbHVlPy51cmwpKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0TGluayhnZXRMaW5rSWQobGlua3NbMF0pKVxuICAgICAgfVxuICAgIH0pLFxuICAgIG1hcCgobGlua3MpID0+XG4gICAgICBsaW5rcy5tYXAoKGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSkgPT4gKHtcbiAgICAgICAgbGFiZWw6IGdldExpbmtMYWJlbChsaW5rKSxcbiAgICAgICAgdmFsdWU6IGdldExpbmtJZChsaW5rKSxcbiAgICAgIH0pKVxuICAgIClcbiAgKVxuICBzZWxlY3RlZExpbmskID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhc2V0T25saW5lUmVzb3VyY2U+KG51bGwpXG5cbiAgaGlkZVByZXZpZXckID0gdGhpcy5leGNsdWRlV2ZzJC5waXBlKFxuICAgIG1hcCgoZXhjbHVkZVdmcykgPT4gdGhpcy5tb2RlID09PSAnY2hhcnQnICYmIGV4Y2x1ZGVXZnMpXG4gIClcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1kVmlld0ZhY2FkZTogTWRWaWV3RmFjYWRlKSB7fVxuXG4gIHNldENoYXJ0Q29uZmlnKGV2ZW50OiBEYXRhdml6Q2hhcnRDb25maWdNb2RlbCkge1xuICAgIHRoaXMubWRWaWV3RmFjYWRlLnNldENoYXJ0Q29uZmlnKGV2ZW50KVxuICB9XG5cbiAgc2VsZWN0TGluayhsaW5rSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGxpbmsgPSB0aGlzLmxpbmtNYXAuZ2V0KGxpbmtJZClcbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRWaWV3ICYmIHRoaXMuX3NlbGVjdGVkVmlldyA9PT0gdGhpcy5tb2RlKSB7XG4gICAgICB0aGlzLmxpbmtTZWxlY3RlZC5lbWl0KGxpbmspXG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRMaW5rJC5uZXh0KGxpbmspXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIGZsZXggZmxleC1jb2wgZ2FwLVsxM3B4XVwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJ3LWZ1bGwgcHktNCBweC01IGJnLXdoaXRlIGJvcmRlciBib3JkZXItY29sb3ItYm9yZGVyIHJvdW5kZWQtbGcgbXQtNlwiXG4gID5cbiAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgICpuZ0lmPVwiZHJvcGRvd25DaG9pY2VzJCB8IGFzeW5jIGFzIGNob2ljZXNcIlxuICAgICAgW25nQ2xhc3NdPVwieyBoaWRkZW46ICFkaXNwbGF5U291cmNlIH1cIlxuICAgICAgW3RpdGxlXT1cIid0YWJsZS5zZWxlY3QuZGF0YScgfCB0cmFuc2xhdGVcIlxuICAgICAgY2xhc3M9XCJoLVs0NHB4XSB3LWZ1bGxcIlxuICAgICAgZXh0cmFCdG5DbGFzcz1cImZvbnQtc2FucyBmb250LWJvbGRcIlxuICAgICAgW2Nob2ljZXNdPVwiY2hvaWNlc1wiXG4gICAgICBbc2VsZWN0ZWRdPVwiX3NlbGVjdGVkQ2hvaWNlXCJcbiAgICAgIChzZWxlY3RWYWx1ZSk9XCJzZWxlY3RMaW5rKCRldmVudClcIlxuICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICA8L2Rpdj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhpZGVQcmV2aWV3JCB8IGFzeW5jOyBlbHNlIGRhdGFWaWV3XCI+XG4gICAgPGduLXVpLXBvcHVwLWFsZXJ0XG4gICAgICB0eXBlPVwid2FybmluZ1wiXG4gICAgICBpY29uPVwibWF0RXJyb3JPdXRsaW5lT3V0bGluZVwiXG4gICAgICBjbGFzcz1cImJsb2NrIGgtMTIgcC0xXCJcbiAgICA+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLmZlYXR1cmUubGltaXQ8L3NwYW4+XG4gICAgPC9nbi11aS1wb3B1cC1hbGVydD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjZGF0YVZpZXc+XG4gICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGgtWzQ2MHB4XVwiPlxuICAgICAgPGduLXVpLXRhYmxlLXZpZXdcbiAgICAgICAgKm5nSWY9XCJtb2RlID09PSAndGFibGUnXCJcbiAgICAgICAgW2NhY2hlQWN0aXZlXT1cImNhY2hlQWN0aXZlJCB8IGFzeW5jXCJcbiAgICAgICAgW2xpbmtdPVwic2VsZWN0ZWRMaW5rJCB8IGFzeW5jXCJcbiAgICAgICAgW2ZlYXR1cmVDYXRhbG9nXT1cIm1kVmlld0ZhY2FkZS5mZWF0dXJlQ2F0YWxvZyQgfCBhc3luY1wiXG4gICAgICA+PC9nbi11aS10YWJsZS12aWV3PlxuICAgICAgPGduLXVpLWNoYXJ0LXZpZXdcbiAgICAgICAgKm5nSWY9XCJtb2RlID09PSAnY2hhcnQnXCJcbiAgICAgICAgKGNoYXJ0Q29uZmlnJCk9XCJzZXRDaGFydENvbmZpZygkZXZlbnQpXCJcbiAgICAgICAgW2NhY2hlQWN0aXZlXT1cImNhY2hlQWN0aXZlJCB8IGFzeW5jXCJcbiAgICAgICAgW2xpbmtdPVwic2VsZWN0ZWRMaW5rJCB8IGFzeW5jXCJcbiAgICAgICAgW2ZlYXR1cmVDYXRhbG9nXT1cIm1kVmlld0ZhY2FkZS5mZWF0dXJlQ2F0YWxvZyQgfCBhc3luY1wiXG4gICAgICAgIFt1c2VyQ2hhcnRDb25maWddPVwiX2NoYXJ0Q29uZmlnXCJcbiAgICAgID48L2duLXVpLWNoYXJ0LXZpZXc+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9kYXRhLXZpZXcvZGF0YS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9kYXRhLXZpZXcvZGF0YS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsR0FDaEIsTUFBTSx3Q0FBd0MsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNyRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFHdkMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDaEYsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixrQkFBa0IsR0FDbkIsTUFBTSw0Q0FBNEMsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFBOzs7O0FBa0IzRSxNQUFNLE9BQU8saUJBQWlCO0lBRzVCLElBQWEsWUFBWSxDQUFDLEtBQWM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMs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QUMsYUFBYSxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM5QixDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDL0IsQ0FBQzsrR0FyRlUsaUJBQWlCO21HQUFqQixpQkFBaUIsMFNDMUM5QiwyZ0RBMkNBLHlERFZJLFlBQVksc1JBQ1oseUJBQXlCLHFOQUN6QixrQkFBa0IsZ0hBQ2xCLGtCQUFrQiw2R0FDbEIsYUFBYSxrREFDYixrQkFBa0Isb05BQ2xCLG1CQUFtQjs7NEZBR1YsaUJBQWlCO2tCQWhCN0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWix5QkFBeUI7d0JBQ3pCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3FCQUNwQjtpRkFHUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDTyxZQUFZO3NCQUF4QixLQUFLO2dCQU9PLFlBQVk7c0JBQXhCLEtBQUs7Z0JBTU8sYUFBYTtzQkFBekIsS0FBSztnQkFrQkksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgZ2V0TGlua0lkLFxuICBnZXRMaW5rTGFiZWwsXG4gIGdldExpbmtQcmlvcml0eSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IE1kVmlld0ZhY2FkZSB9IGZyb20gJy4uL3N0YXRlJ1xuaW1wb3J0IHsgRGF0YXZpekNoYXJ0Q29uZmlnTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9kYXRhdml6L2RhdGF2aXotY29uZmlndXJhdGlvbi5tb2RlbCdcbmltcG9ydCB7IERhdGFzZXRPbmxpbmVSZXNvdXJjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQge1xuICBDaGFydFZpZXdDb21wb25lbnQsXG4gIFRhYmxlVmlld0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2RhdGF2aXovc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlRGlyZWN0aXZlLCBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IFBvcHVwQWxlcnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1kYXRhLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS12aWV3LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCxcbiAgICBUYWJsZVZpZXdDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgQ2hhcnRWaWV3Q29tcG9uZW50LFxuICAgIFBvcHVwQWxlcnRDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERhdGFWaWV3Q29tcG9uZW50IHtcbiAgQElucHV0KCkgbW9kZTogJ3RhYmxlJyB8ICdjaGFydCdcbiAgQElucHV0KCkgZGlzcGxheVNvdXJjZSA9IHRydWVcbiAgQElucHV0KCkgc2V0IGV4Y2VlZHNMaW1pdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZXhjbHVkZVdmcyQubmV4dCh2YWx1ZSlcbiAgfVxuICBsaW5rTWFwOiBNYXA8c3RyaW5nLCBEYXRhc2V0T25saW5lUmVzb3VyY2U+ID0gbmV3IE1hcCgpXG4gIF9zZWxlY3RlZFZpZXcgPSAnJ1xuICBfY2hhcnRDb25maWcgPSBudWxsXG4gIF9zZWxlY3RlZENob2ljZSA9IG51bGxcbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkVmlldyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWRWaWV3ID0gdmFsdWVcbiAgICBpZiAodGhpcy5tb2RlID09PSB2YWx1ZSkge1xuICAgICAgdGhpcy5saW5rU2VsZWN0ZWQuZW1pdCh0aGlzLnNlbGVjdGVkTGluayQudmFsdWUpXG4gICAgfVxuICB9XG4gIEBJbnB1dCgpIHNldCBkYXRhdml6Q29uZmlnKHZhbHVlOiB7XG4gICAgdmlldz86IHN0cmluZ1xuICAgIHNvdXJjZT86IERhdGFzZXRPbmxpbmVSZXNvdXJjZVxuICAgIGNoYXJ0Q29uZmlnPzogRGF0YXZpekNoYXJ0Q29uZmlnTW9kZWxcbiAgfSkge1xuICAgIGlmICgodmFsdWUgJiYgdmFsdWUudmlldyA9PT0gJ3RhYmxlJykgfHwgdmFsdWUudmlldyA9PT0gJ2NoYXJ0Jykge1xuICAgICAgdGhpcy5fc2VsZWN0ZWRWaWV3ID0gdmFsdWUudmlld1xuICAgIH1cbiAgICBpZiAodGhpcy5tb2RlID09PSB2YWx1ZS52aWV3KSB7XG4gICAgICBpZiAoIXZhbHVlLnNvdXJjZSkge1xuICAgICAgICB0aGlzLmxpbmtTZWxlY3RlZC5lbWl0KHRoaXMuc2VsZWN0ZWRMaW5rJC52YWx1ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2NoYXJ0Q29uZmlnID0gdmFsdWUuY2hhcnRDb25maWdcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRDaG9pY2UgPSBnZXRMaW5rSWQodmFsdWUuc291cmNlKVxuICAgICAgICB0aGlzLnNlbGVjdGVkTGluayQubmV4dCh2YWx1ZS5zb3VyY2UpXG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBPdXRwdXQoKSBjaGFydENvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGF2aXpDaGFydENvbmZpZ01vZGVsPihudWxsKVxuICBAT3V0cHV0KCkgbGlua1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRhc2V0T25saW5lUmVzb3VyY2U+KClcbiAgY2FjaGVBY3RpdmUkID0gdGhpcy5tZFZpZXdGYWNhZGUuaXNIaWdoVXBkYXRlRnJlcXVlbmN5JC5waXBlKFxuICAgIG1hcCgoaGlnaEYpID0+ICFoaWdoRilcbiAgKVxuICBleGNsdWRlV2ZzJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpXG4gIGNvbXBhdGlibGVEYXRhTGlua3MkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5tZFZpZXdGYWNhZGUuZGF0YUxpbmtzJCxcbiAgICB0aGlzLm1kVmlld0ZhY2FkZS5nZW9EYXRhTGlua3MkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW2RhdGFMaW5rcywgZ2VvRGF0YUxpbmtzXSkgPT4ge1xuICAgICAgY29uc3QgYSA9IFsuLi5kYXRhTGlua3MsIC4uLmdlb0RhdGFMaW5rc11cbiAgICAgIGEuc29ydCgoYSwgYikgPT4gZ2V0TGlua1ByaW9yaXR5KGIpIC0gZ2V0TGlua1ByaW9yaXR5KGEpKVxuICAgICAgcmV0dXJuIGFcbiAgICB9KVxuICApXG4gIGRyb3Bkb3duQ2hvaWNlcyQgPSB0aGlzLmNvbXBhdGlibGVEYXRhTGlua3MkLnBpcGUoXG4gICAgdGFwKChsaW5rczogRGF0YXNldE9ubGluZVJlc291cmNlW10pID0+IHtcbiAgICAgIHRoaXMubGlua01hcC5jbGVhcigpXG4gICAgICBsaW5rcy5mb3JFYWNoKChsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpID0+XG4gICAgICAgIHRoaXMubGlua01hcC5zZXQoZ2V0TGlua0lkKGxpbmspLCBsaW5rKVxuICAgICAgKVxuICAgICAgaWYgKCFsaW5rcy5zb21lKChsKSA9PiBsLnVybCA9PT0gdGhpcy5zZWxlY3RlZExpbmskLnZhbHVlPy51cmwpKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0TGluayhnZXRMaW5rSWQobGlua3NbMF0pKVxuICAgICAgfVxuICAgIH0pLFxuICAgIG1hcCgobGlua3MpID0+XG4gICAgICBsaW5rcy5tYXAoKGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSkgPT4gKHtcbiAgICAgICAgbGFiZWw6IGdldExpbmtMYWJlbChsaW5rKSxcbiAgICAgICAgdmFsdWU6IGdldExpbmtJZChsaW5rKSxcbiAgICAgIH0pKVxuICAgIClcbiAgKVxuICBzZWxlY3RlZExpbmskID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhc2V0T25saW5lUmVzb3VyY2U+KG51bGwpXG5cbiAgaGlkZVByZXZpZXckID0gdGhpcy5leGNsdWRlV2ZzJC5waXBlKFxuICAgIG1hcCgoZXhjbHVkZVdmcykgPT4gdGhpcy5tb2RlID09PSAnY2hhcnQnICYmIGV4Y2x1ZGVXZnMpXG4gIClcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1kVmlld0ZhY2FkZTogTWRWaWV3RmFjYWRlKSB7fVxuXG4gIHNldENoYXJ0Q29uZmlnKGV2ZW50OiBEYXRhdml6Q2hhcnRDb25maWdNb2RlbCkge1xuICAgIHRoaXMubWRWaWV3RmFjYWRlLnNldENoYXJ0Q29uZmlnKGV2ZW50KVxuICB9XG5cbiAgc2VsZWN0TGluayhsaW5rSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGxpbmsgPSB0aGlzLmxpbmtNYXAuZ2V0KGxpbmtJZClcbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRWaWV3ICYmIHRoaXMuX3NlbGVjdGVkVmlldyA9PT0gdGhpcy5tb2RlKSB7XG4gICAgICB0aGlzLmxpbmtTZWxlY3RlZC5lbWl0KGxpbmspXG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRMaW5rJC5uZXh0KGxpbmspXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIGZsZXggZmxleC1jb2wgZ2FwLVsxM3B4XVwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJ3LWZ1bGwgcHktNCBweC01IGJnLXdoaXRlIGJvcmRlciBib3JkZXItY29sb3ItYm9yZGVyIHJvdW5kZWQtbGcgbXQtNlwiXG4gID5cbiAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgICpuZ0lmPVwiZHJvcGRvd25DaG9pY2VzJCB8IGFzeW5jIGFzIGNob2ljZXNcIlxuICAgICAgW25nQ2xhc3NdPVwieyBoaWRkZW46ICFkaXNwbGF5U291cmNlIH1cIlxuICAgICAgW3RpdGxlXT1cIid0YWJsZS5zZWxlY3QuZGF0YScgfCB0cmFuc2xhdGVcIlxuICAgICAgY2xhc3M9XCJoLVs0NHB4XSB3LWZ1bGxcIlxuICAgICAgZXh0cmFCdG5DbGFzcz1cImZvbnQtc2FucyBmb250LWJvbGRcIlxuICAgICAgW2Nob2ljZXNdPVwiY2hvaWNlc1wiXG4gICAgICBbc2VsZWN0ZWRdPVwiX3NlbGVjdGVkQ2hvaWNlXCJcbiAgICAgIChzZWxlY3RWYWx1ZSk9XCJzZWxlY3RMaW5rKCRldmVudClcIlxuICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICA8L2Rpdj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhpZGVQcmV2aWV3JCB8IGFzeW5jOyBlbHNlIGRhdGFWaWV3XCI+XG4gICAgPGduLXVpLXBvcHVwLWFsZXJ0XG4gICAgICB0eXBlPVwid2FybmluZ1wiXG4gICAgICBpY29uPVwibWF0RXJyb3JPdXRsaW5lT3V0bGluZVwiXG4gICAgICBjbGFzcz1cImJsb2NrIGgtMTIgcC0xXCJcbiAgICA+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLmZlYXR1cmUubGltaXQ8L3NwYW4+XG4gICAgPC9nbi11aS1wb3B1cC1hbGVydD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjZGF0YVZpZXc+XG4gICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGgtWzQ2MHB4XVwiPlxuICAgICAgPGduLXVpLXRhYmxlLXZpZXdcbiAgICAgICAgKm5nSWY9XCJtb2RlID09PSAndGFibGUnXCJcbiAgICAgICAgW2NhY2hlQWN0aXZlXT1cImNhY2hlQWN0aXZlJCB8IGFzeW5jXCJcbiAgICAgICAgW2xpbmtdPVwic2VsZWN0ZWRMaW5rJCB8IGFzeW5jXCJcbiAgICAgICAgW2ZlYXR1cmVDYXRhbG9nXT1cIm1kVmlld0ZhY2FkZS5mZWF0dXJlQ2F0YWxvZyQgfCBhc3luY1wiXG4gICAgICA+PC9nbi11aS10YWJsZS12aWV3PlxuICAgICAgPGduLXVpLWNoYXJ0LXZpZXdcbiAgICAgICAgKm5nSWY9XCJtb2RlID09PSAnY2hhcnQnXCJcbiAgICAgICAgKGNoYXJ0Q29uZmlnJCk9XCJzZXRDaGFydENvbmZpZygkZXZlbnQpXCJcbiAgICAgICAgW2NhY2hlQWN0aXZlXT1cImNhY2hlQWN0aXZlJCB8IGFzeW5jXCJcbiAgICAgICAgW2xpbmtdPVwic2VsZWN0ZWRMaW5rJCB8IGFzeW5jXCJcbiAgICAgICAgW2ZlYXR1cmVDYXRhbG9nXT1cIm1kVmlld0ZhY2FkZS5mZWF0dXJlQ2F0YWxvZyQgfCBhc3luY1wiXG4gICAgICAgIFt1c2VyQ2hhcnRDb25maWddPVwiX2NoYXJ0Q29uZmlnXCJcbiAgICAgID48L2duLXVpLWNoYXJ0LXZpZXc+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
@@ -130,21 +130,21 @@ export class GpfApiDlComponent {
130
130
  this.choices = await this.getCapabilities();
131
131
  const tempZone = this.choices.zone.map((bucket) => ({
132
132
  value: bucket.term,
133
- label: bucket.label,
133
+ label: String(bucket.label),
134
134
  }));
135
135
  tempZone.sort((a, b) => (a.label > b.label ? 1 : -1));
136
136
  tempZone.unshift({ value: 'null', label: 'ZONE' });
137
137
  this.bucketPromisesZone = tempZone;
138
138
  const tempFormat = this.choices.format.map((bucket) => ({
139
139
  value: bucket.term,
140
- label: bucket.label,
140
+ label: String(bucket.label),
141
141
  }));
142
142
  tempFormat.sort((a, b) => (a.label > b.label ? 1 : -1));
143
143
  tempFormat.unshift({ value: 'null', label: 'FORMAT' });
144
144
  this.bucketPromisesFormat = tempFormat;
145
145
  const tempCrs = this.choices.category.map((bucket) => ({
146
146
  value: bucket.term,
147
- label: bucket.label,
147
+ label: String(bucket.label),
148
148
  }));
149
149
  tempCrs.sort((a, b) => (a.label > b.label ? 1 : -1));
150
150
  tempCrs.unshift({ value: 'null', label: 'CRS' });
@@ -166,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
166
166
  }], ctorParameters: () => [{ type: i1.HttpClient }], propDecorators: { apiLink: [{
167
167
  type: Input
168
168
  }] } });
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3BmLWFwaS1kbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvcmVjb3JkL3NyYy9saWIvZ3BmLWFwaS1kbC9ncGYtYXBpLWRsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9ncGYtYXBpLWRsL2dwZi1hcGktZGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFBVSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ3hGLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUN6QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFBOzs7O0FBb0RsRyxNQUFNLE9BQU8saUJBQWlCO0lBaUI1QixZQUFzQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBaEJ0QyxXQUFNLEdBQUcsS0FBSyxDQUFBO1FBQ2QsY0FBUyxHQUFHLEtBQUssQ0FBQTtRQUNqQixpQkFBWSxHQUFHLEVBQUUsQ0FBQTtRQUVqQixpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3RDLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FB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SyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1NBQ3BCLENBQUMsQ0FBQyxDQUFBO1FBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNwRCxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUVoRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFBO1FBRWhDLG9FQUFvRTtJQUN0RSxDQUFDOytHQTNMVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw0R0NqRTlCLDJxSkFvSUEscWdCRDFFSSxZQUFZLGlOQUNaLGtCQUFrQiw2R0FDbEIsYUFBYSxrREFDYix5QkFBeUIscU5BQ3pCLHlCQUF5Qjs7NEZBR2hCLGlCQUFpQjtrQkFkN0IsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IseUJBQXlCO3dCQUN6Qix5QkFBeUI7cUJBQzFCOytFQXFCWSxPQUFPO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIG1lcmdlTWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7IENob2ljZSwgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcydcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IFRyYW5zbGF0ZURpcmVjdGl2ZSwgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBHcGZBcGlEbExpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3BmLWFwaS1kbC1saXN0LWl0ZW0vZ3BmLWFwaS1kbC1saXN0LWl0ZW0uY29tcG9uZW50J1xuXG5leHBvcnQgaW50ZXJmYWNlIExhYmVsIHtcbiAgbGFiZWw6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1hdFByb2R1aXQge1xuICB0aXRsZTogc3RyaW5nXG4gIHVwZGF0ZTogc3RyaW5nXG4gIGZvcm1hdDogQXJyYXk8VGVybUJ1Y2tldD5cbiAgem9uZTogQXJyYXk8VGVybUJ1Y2tldD5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtYXRTb3J0aWVQcm9kdWl0IHtcbiAgbGFiZWw6IHN0cmluZ1xuICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyXG59XG5leHBvcnQgaW50ZXJmYWNlIExpc3RVcmwge1xuICB1cmw6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RDaG9pY2Uge1xuICB6b25lOiBDaG9pY2VbXVxuICBmb3JtYXQ6IENob2ljZVtdXG4gIGVkaXRpb25EYXRlOiBDaG9pY2VbXVxuICBjcnM6IENob2ljZVtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVybUJ1Y2tldCB7XG4gIHRlcm06IHN0cmluZ1xuICBsYWJlbDogc3RyaW5nIHwgbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGQge1xuICBlbnRyeTogQXJyYXk8YW55PlxuICBsaW5rOiBhbnlcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZ3BmLWFwaS1kbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncGYtYXBpLWRsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3BmLWFwaS1kbC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgICBUcmFuc2xhdGVQaXBlLFxuICAgIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG4gICAgR3BmQXBpRGxMaXN0SXRlbUNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR3BmQXBpRGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBpc09wZW4gPSBmYWxzZVxuICBjb2xsYXBzZWQgPSBmYWxzZVxuICBpbml0aWFsTGltaXQgPSA1MFxuICBhcGlCYXNlVXJsOiBzdHJpbmdcbiAgZWRpdGlvbkRhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJylcbiAgem9uZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKVxuICBmb3JtYXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJylcbiAgY3JzJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpXG4gIHBhZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgxKVxuICB1cmwgPVxuICAgICdodHRwczovL2RhdGEuZ2VvcGYuZnIvdGVsZWNoYXJnZW1lbnQvY2FwYWJpbGl0aWVzP291dHB1dEZvcm1hdD1hcHBsaWNhdGlvbi9qc29uJ1xuICBjaG9pY2VzOiBhbnlcbiAgYnVja2V0UHJvbWlzZXNab25lOiBDaG9pY2VbXVxuICBidWNrZXRQcm9taXNlc0Zvcm1hdDogQ2hvaWNlW11cbiAgYnVja2V0UHJvbWlzZXNDcnM6IENob2ljZVtdXG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQpIHt9XG5cbiAgQElucHV0KCkgc2V0IGFwaUxpbmsodmFsdWU6IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uKSB7XG4gICAgdGhpcy5hcGlCYXNlVXJsID0gdmFsdWUgPyB2YWx1ZS51cmwuaHJlZiA6IHVuZGVmaW5lZFxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5idWNrZXRQcm9taXNlc1pvbmUgPSBbeyB2YWx1ZTogJycsIGxhYmVsOiAnWk9ORScgfV1cbiAgICB0aGlzLmJ1Y2tldFByb21pc2VzRm9ybWF0ID0gW3sgdmFsdWU6ICcnLCBsYWJlbDogJ0ZPUk1BVCcgfV1cbiAgICB0aGlzLmJ1Y2tldFByb21pc2VzQ3JzID0gW3sgdmFsdWU6ICcnLCBsYWJlbDogJ0NSUycgfV1cbiAgICB0aGlzLmdldEZpZWxkcygpXG4gIH1cblxuICBhcGlRdWVyeVVybCQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLnpvbmUkLFxuICAgIHRoaXMuZm9ybWF0JCxcbiAgICB0aGlzLmVkaXRpb25EYXRlJCxcbiAgICB0aGlzLmNycyQsXG4gICAgdGhpcy5wYWdlJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFt6b25lLCBmb3JtYXQsIGVkaXRpb25EYXRlLCBjcnMsIHBhZ2VdKSA9PiB7XG4gICAgICBsZXQgb3V0cHV0VXJsXG4gICAgICBpZiAodGhpcy5hcGlCYXNlVXJsKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodGhpcy5hcGlCYXNlVXJsKSAvLyBpbml0aWFsaXNhdGlvbiBkZSBsJ3VybCBhdmVjIGwndXJsIGRlIGJhc2VcbiAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgIHpvbmU6IHpvbmUsXG4gICAgICAgICAgZm9ybWF0OiBmb3JtYXQsXG4gICAgICAgICAgZWRpdGlvbkRhdGU6IGVkaXRpb25EYXRlLFxuICAgICAgICAgIGNyczogY3JzLFxuICAgICAgICAgIHBhZ2U6IHBhZ2UsXG4gICAgICAgIH0gLy8gaW5pdGlhbGlzYXRpb24gZGVzIHBhcmFtw6h0cmVzIGRlIGZpbHRyZXNcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGFyYW1zKSkge1xuICAgICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gJ251bGwnKSB7XG4gICAgICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLnNldChrZXksIFN0cmluZyh2YWx1ZSkpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVybC5zZWFyY2hQYXJhbXMuZGVsZXRlKGtleSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb3V0cHV0VXJsID0gdXJsLnRvU3RyaW5nKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ2VycmV1ciBhcGliYXNlVXJsIG51bGwnKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG91dHB1dFVybFxuICAgIH0pXG4gIClcblxuICBsaXN0RmlsdGVyZWRQcm9kdWN0JCA9IHRoaXMuYXBpUXVlcnlVcmwkLnBpcGUoXG4gICAgbWVyZ2VNYXAoKHVybCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RmlsdGVyZWRQcm9kdWN0JCh1cmwpLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlWydlbnRyeSddKVxuICAgICAgKVxuICAgIH0pXG4gIClcblxuICBwYWdlTWF4JCA9IHRoaXMuYXBpUXVlcnlVcmwkLnBpcGUoXG4gICAgbWVyZ2VNYXAoKHVybCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RmlsdGVyZWRQcm9kdWN0JCh1cmwpLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+XG4gICAgICAgICAgTWF0aC5jZWlsKHJlc3BvbnNlWyd0b3RhbGVudHJpZXMnXSAvIE51bWJlcih0aGlzLmluaXRpYWxMaW1pdCkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICB9KVxuICApXG5cbiAgZ2V0RmlsdGVyZWRQcm9kdWN0JCh1cmwpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybClcbiAgfVxuXG4gIGdldExpbmtGb3JtYXQocHJvZHVpdCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHByb2R1aXRbJ2Zvcm1hdCddWzBdWydsYWJlbCddXG4gIH1cblxuICBzZXRFZGl0aW9uRGF0ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlLm1hdGNoKC9bMC05XXs0fS1bMC0xXVswLTldLVswLTNdWzAtOV0vKSkge1xuICAgICAgdGhpcy5lZGl0aW9uRGF0ZSQubmV4dCh2YWx1ZSlcbiAgICAgIHRoaXMucmVzZXRQYWdlKClcbiAgICB9XG4gIH1cblxuICBzZXRab25lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5idWNrZXRQcm9taXNlc1pvbmUubWFwKChjaG9pY2UpID0+IGNob2ljZS52YWx1ZSkuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICB0aGlzLnpvbmUkLm5leHQodmFsdWUpXG4gICAgICB0aGlzLnJlc2V0UGFnZSgpXG4gICAgfVxuICB9XG5cbiAgc2V0Q3JzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5idWNrZXRQcm9taXNlc0Nycy5tYXAoKGNob2ljZSkgPT4gY2hvaWNlLnZhbHVlKS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuY3JzJC5uZXh0KHZhbHVlKVxuICAgICAgdGhpcy5yZXNldFBhZ2UoKVxuICAgIH1cbiAgfVxuXG4gIHNldEZvcm1hdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5idWNrZXRQcm9taXNlc0Zvcm1hdC5tYXAoKGNob2ljZSkgPT4gY2hvaWNlLnZhbHVlKS5pbmNsdWRlcyh2YWx1ZSlcbiAgICApIHtcbiAgICAgIHRoaXMuZm9ybWF0JC5uZXh0KHZhbHVlKVxuICAgICAgdGhpcy5yZXNldFBhZ2UoKVxuICAgIH1cbiAgfVxuXG4gIHJlc2V0VXJsKCkge1xuICAgIHRoaXMuem9uZSQubmV4dCgnbnVsbCcpXG4gICAgdGhpcy5mb3JtYXQkLm5leHQoJ251bGwnKVxuICAgIHRoaXMuY3JzJC5uZXh0KCdudWxsJylcbiAgICB0aGlzLnBhZ2UkLm5leHQoMSlcbiAgfVxuICBtb3JlUmVzdWx0KCk6IHZvaWQge1xuICAgIHRoaXMucGFnZSQubmV4dCh0aGlzLnBhZ2UkLnZhbHVlICsgMSlcbiAgfVxuXG4gIGxlc3NSZXN1bHQoKTogdm9pZCB7XG4gICAgdGhpcy5wYWdlJC5uZXh0KHRoaXMucGFnZSQudmFsdWUgLSAxKVxuICB9XG5cbiAgcmVzZXRQYWdlKCk6IHZvaWQge1xuICAgIHRoaXMucGFnZSQubmV4dCgxKVxuICB9XG5cbiAgYXN5bmMgZ2V0Q2FwYWJpbGl0aWVzKCkge1xuICAgIGxldCBwYWdlID0gMFxuICAgIGxldCBjaG9pY2VzVGVzdCA9IHVuZGVmaW5lZFxuICAgIGxldCBwYWdlQ291bnQgPSAxXG5cbiAgICB3aGlsZSAoY2hvaWNlc1Rlc3QgPT09IHVuZGVmaW5lZCAmJiBwYWdlQ291bnQgPiBwYWdlKSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLmdldChcbiAgICAgICAgdGhpcy51cmwuY29uY2F0KGAmbGltaXQ9MjAwJnBhZ2U9JHtwYWdlfWApXG4gICAgICApXG5cbiAgICAgIGNob2ljZXNUZXN0ID0gcmVzcG9uc2UuZGF0YS5lbnRyeS5maWx0ZXIoXG4gICAgICAgIChlbGVtZW50KSA9PiBlbGVtZW50WydpZCddID09IHRoaXMuYXBpQmFzZVVybFxuICAgICAgKVswXVxuICAgICAgcGFnZSArPSAxXG4gICAgICBwYWdlQ291bnQgPSByZXNwb25zZS5kYXRhLnBhZ2Vjb3VudFxuICAgIH1cblxuICAgIHJldHVybiBjaG9pY2VzVGVzdFxuICB9XG4gIGFzeW5jIGdldEZpZWxkcygpIHtcbiAgICB0aGlzLmNob2ljZXMgPSBhd2FpdCB0aGlzLmdldENhcGFiaWxpdGllcygpXG5cbiAgICBjb25zdCB0ZW1wWm9uZSA9IHRoaXMuY2hvaWNlcy56b25lLm1hcCgoYnVja2V0KSA9PiAoe1xuICAgICAgdmFsdWU6IGJ1Y2tldC50ZXJtLFxuICAgICAgbGFiZWw6IGJ1Y2tldC5sYWJlbCxcbiAgICB9KSlcbiAgICB0ZW1wWm9uZS5zb3J0KChhLCBiKSA9PiAoYS5sYWJlbCA+IGIubGFiZWwgPyAxIDogLTEpKVxuICAgIHRlbXBab25lLnVuc2hpZnQoeyB2YWx1ZTogJ251bGwnLCBsYWJlbDogJ1pPTkUnIH0pXG5cbiAgICB0aGlzLmJ1Y2tldFByb21pc2VzWm9uZSA9IHRlbXBab25lXG5cbiAgICBjb25zdCB0ZW1wRm9ybWF0ID0gdGhpcy5jaG9pY2VzLmZvcm1hdC5tYXAoKGJ1Y2tldCkgPT4gKHtcbiAgICAgIHZhbHVlOiBidWNrZXQudGVybSxcbiAgICAgIGxhYmVsOiBidWNrZXQubGFiZWwsXG4gICAgfSkpXG4gICAgdGVtcEZvcm1hdC5zb3J0KChhLCBiKSA9PiAoYS5sYWJlbCA+IGIubGFiZWwgPyAxIDogLTEpKVxuICAgIHRlbXBGb3JtYXQudW5zaGlmdCh7IHZhbHVlOiAnbnVsbCcsIGxhYmVsOiAnRk9STUFUJyB9KVxuXG4gICAgdGhpcy5idWNrZXRQcm9taXNlc0Zvcm1hdCA9IHRlbXBGb3JtYXRcblxuICAgIGNvbnN0IHRlbXBDcnMgPSB0aGlzLmNob2ljZXMuY2F0ZWdvcnkubWFwKChidWNrZXQpID0+ICh7XG4gICAgICB2YWx1ZTogYnVja2V0LnRlcm0sXG4gICAgICBsYWJlbDogYnVja2V0LmxhYmVsLFxuICAgIH0pKVxuICAgIHRlbXBDcnMuc29ydCgoYSwgYikgPT4gKGEubGFiZWwgPiBiLmxhYmVsID8gMSA6IC0xKSlcbiAgICB0ZW1wQ3JzLnVuc2hpZnQoeyB2YWx1ZTogJ251bGwnLCBsYWJlbDogJ0NSUycgfSlcblxuICAgIHRoaXMuYnVja2V0UHJvbWlzZXNDcnMgPSB0ZW1wQ3JzXG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNiBwLTggYmctd2hpdGUgc2hhZG93LXhsIHJvdW5kZWQtbGdcIj5cbiAgPCEtLSBIZWFkZXIgd2l0aCBGaWx0ZXIgVGl0bGUgYW5kIFJlc2V0IEJ1dHRvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgIDxoMlxuICAgICAgY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtc2VtaWJvbGRcIlxuICAgICAgdHJhbnNsYXRlXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAncmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmZpbHRlckRlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZVxuICAgICAgXCJcbiAgICA+XG4gICAgICByZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0uZmlsdGVyXG4gICAgPC9oMj5cbiAgICA8YnV0dG9uXG4gICAgICAoY2xpY2spPVwicmVzZXRVcmwoKVwiXG4gICAgICBjbGFzcz1cImJnLXByaW1hcnktb3BhY2l0eS01MCBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtNCBweS0yIHRleHQtd2hpdGUgcm91bmRlZCBob3ZlcjpiZy1wcmltYXJ5IHRyYW5zaXRpb25cIlxuICAgICAgW2F0dHIudGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5yZXNldFRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5yZXNldFRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcbiAgICA+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLnJlc2V0PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8IS0tIERyb3Bkb3duIFNlbGVjdG9ycyAtLT5cbiAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTMgZ2FwLTRcIj5cbiAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgICN6b25lXG4gICAgICBbdGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS56b25lVGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtjaG9pY2VzXT1cImJ1Y2tldFByb21pc2VzWm9uZVwiXG4gICAgICAoc2VsZWN0VmFsdWUpPVwic2V0Wm9uZSgkZXZlbnQpXCJcbiAgICAgIFtzZWxlY3RlZF09XCJ6b25lJCB8IGFzeW5jXCJcbiAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgIFthdHRyLnRpdGxlXT1cIidyZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0uem9uZVRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS56b25lVG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxuICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuXG4gICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAjZm9ybWF0XG4gICAgICBbdGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5mb3JtYXRUaXRsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgW2Nob2ljZXNdPVwiYnVja2V0UHJvbWlzZXNGb3JtYXRcIlxuICAgICAgKHNlbGVjdFZhbHVlKT1cInNldEZvcm1hdCgkZXZlbnQpXCJcbiAgICAgIFtzZWxlY3RlZF09XCJmb3JtYXQkIHwgYXN5bmNcIlxuICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgW2F0dHIudGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5mb3JtYXRUb29sdGlwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidyZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0uZm9ybWF0VG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxuICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuXG4gICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAjY3JzXG4gICAgICBbdGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5jcnNUaXRsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgW2Nob2ljZXNdPVwiYnVja2V0UHJvbWlzZXNDcnNcIlxuICAgICAgKHNlbGVjdFZhbHVlKT1cInNldENycygkZXZlbnQpXCJcbiAgICAgIFtzZWxlY3RlZF09XCJjcnMkIHwgYXN5bmNcIlxuICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgW2F0dHIudGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5jcnNUb29sdGlwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidyZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0uY3JzVG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxuICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICA8L2Rpdj5cblxuICA8IS0tIEZpbHRlcmVkIEl0ZW1zIFNlY3Rpb24gLS0+XG4gIDxkaXYgY2xhc3M9XCJiZy1ncmF5LTUwIHAtNCByb3VuZGVkLWxnXCI+XG4gICAgPGgzXG4gICAgICBjbGFzcz1cInRleHQtbGcgZm9udC1tZWRpdW1cIlxuICAgICAgdHJhbnNsYXRlXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAncmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLml0ZW1zRGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlXG4gICAgICBcIlxuICAgID5cbiAgICAgIHJlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5pdGVtc1xuICAgIDwvaDM+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIG1heC1oLTYwXCJcbiAgICAgIFthdHRyLnRpdGxlXT1cIidyZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0uaXRlbXNUb29sdGlwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidyZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0uaXRlbXNUb29sdGlwJyB8IHRyYW5zbGF0ZVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdGb3I9XCJsZXQgbGluayBvZiBsaXN0RmlsdGVyZWRQcm9kdWN0JCB8IGFzeW5jXCJcbiAgICAgICAgY2xhc3M9XCJtYi0yIHNtOm1iLTNcIlxuICAgICAgPlxuICAgICAgICA8Z24tdWktZ3BmLWFwaS1kbC1saXN0LWl0ZW1cbiAgICAgICAgICBbbGlua109XCJsaW5rXCJcbiAgICAgICAgICBjb2xvcj1cInJnYigxMjQgNDUgMTgpXCJcbiAgICAgICAgICBbZm9ybWF0XT1cImdldExpbmtGb3JtYXQobGluaylcIlxuICAgICAgICAgIFtpc0Zyb21XZnNdPVwidHJ1ZVwiXG4gICAgICAgICAgW2F0dHIudGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5wcm9kdWN0VG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAncmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLnByb2R1Y3RUb29sdGlwJyB8IHRyYW5zbGF0ZVxuICAgICAgICAgIFwiXG4gICAgICAgID48L2duLXVpLWdwZi1hcGktZGwtbGlzdC1pdGVtPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gUGFnaW5hdGlvbiBTZWN0aW9uIC0tPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgPGJ1dHRvblxuICAgICAgKGNsaWNrKT1cImxlc3NSZXN1bHQoKVwiXG4gICAgICBbY2xhc3NdPVwiXG4gICAgICAgICdweC00IHB5LTIgdGV4dC13aGl0ZSByb3VuZGVkIHRyYW5zaXRpb24gJyArXG4gICAgICAgICgocGFnZSQgfCBhc3luYykgPD0gMVxuICAgICAgICAgID8gJ2JnLWdyYXktNDAwIGN1cnNvci1ub3QtYWxsb3dlZCAgJ1xuICAgICAgICAgIDogJ2JnLXByaW1hcnktb3BhY2l0eS01MCAgaG92ZXI6YmctcHJpbWFyeScpXG4gICAgICBcIlxuICAgICAgW2F0dHIudGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5wcmV2aW91c1BhZ2VUb29sdGlwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAncmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLnByZXZpb3VzUGFnZVRvb2x0aXAnIHwgdHJhbnNsYXRlXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0ucHJldmlvdXNQYWdlPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZm9udC1zZW1pYm9sZCBwbGFjZS1jb250ZW50LWNlbnRlclwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAncmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLnBhZ2luYXRpb25EZXNjcmlwdGlvbicgfCB0cmFuc2xhdGVcbiAgICAgIFwiXG4gICAgPlxuICAgICAge3sgcGFnZSQgfCBhc3luYyB9fS97eyBwYWdlTWF4JCB8IGFzeW5jIH19XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvblxuICAgICAgKGNsaWNrKT1cIm1vcmVSZXN1bHQoKVwiXG4gICAgICBbY2xhc3NdPVwiXG4gICAgICAgICdiZy1wcmltYXJ5LW9wYWNpdHktNTAgcHgtNCBweS0yIHRleHQtd2hpdGUgcm91bmRlZCB0cmFuc2l0aW9uICcgK1xuICAgICAgICAoKHBhZ2UkIHwgYXN5bmMpID49IChwYWdlTWF4JCB8IGFzeW5jKVxuICAgICAgICAgID8gJ2JnLWdyYXktNDAwIGN1cnNvci1ub3QtYWxsb3dlZCAgJ1xuICAgICAgICAgIDogJ2JnLXByaW1hcnktb3BhY2l0eS01MCAgaG92ZXI6YmctcHJpbWFyeScpXG4gICAgICBcIlxuICAgICAgW2F0dHIudGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5uZXh0UGFnZVRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5uZXh0UGFnZVRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcbiAgICA+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLm5leHRQYWdlPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3BmLWFwaS1kbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvcmVjb3JkL3NyYy9saWIvZ3BmLWFwaS1kbC9ncGYtYXBpLWRsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9ncGYtYXBpLWRsL2dwZi1hcGktZGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFBVSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ3hGLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUN6QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFBOzs7O0FBb0RsRyxNQUFNLE9BQU8saUJBQWlCO0lBaUI1QixZQUFzQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBaEJ0QyxXQUFNLEdBQUcsS0FBSyxDQUFBO1FBQ2QsY0FBUyxHQUFHLEtBQUssQ0FBQTtRQUNqQixpQkFBWSxHQUFHLEVBQUUsQ0FBQTtRQUVqQixpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3RDLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FB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RSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUM1QixDQUFDLENBQUMsQ0FBQTtRQUNILFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDckQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFFbEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQTtRQUVsQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEQsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2xCLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUM1QixDQUFDLENBQUMsQ0FBQTtRQUNILFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdkQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFFdEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFVBQVUsQ0FBQTtRQUV0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDckQsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2xCLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUM1QixDQUFDLENBQUMsQ0FBQTtRQUNILE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDcEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7UUFFaEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQTtRQUVoQyxvRUFBb0U7SUFDdEUsQ0FBQzsrR0E3TFUsaUJBQWlCO21HQUFqQixpQkFBaUIsNEdDakU5QiwycUpBb0lBLHFnQkQxRUksWUFBWSxpTkFDWixrQkFBa0IsNkdBQ2xCLGFBQWEsa0RBQ2IseUJBQXlCLHFOQUN6Qix5QkFBeUI7OzRGQUdoQixpQkFBaUI7a0JBZDdCLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLHlCQUF5Qjt3QkFDekIseUJBQXlCO3FCQUMxQjsrRUFxQlksT0FBTztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBDaG9pY2UsIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMnXG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBUcmFuc2xhdGVEaXJlY3RpdmUsIFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgR3BmQXBpRGxMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2dwZi1hcGktZGwtbGlzdC1pdGVtL2dwZi1hcGktZGwtbGlzdC1pdGVtLmNvbXBvbmVudCdcblxuZXhwb3J0IGludGVyZmFjZSBMYWJlbCB7XG4gIGxhYmVsOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtYXRQcm9kdWl0IHtcbiAgdGl0bGU6IHN0cmluZ1xuICB1cGRhdGU6IHN0cmluZ1xuICBmb3JtYXQ6IEFycmF5PFRlcm1CdWNrZXQ+XG4gIHpvbmU6IEFycmF5PFRlcm1CdWNrZXQ+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWF0U29ydGllUHJvZHVpdCB7XG4gIGxhYmVsOiBzdHJpbmdcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlclxufVxuZXhwb3J0IGludGVyZmFjZSBMaXN0VXJsIHtcbiAgdXJsOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0Q2hvaWNlIHtcbiAgem9uZTogQ2hvaWNlW11cbiAgZm9ybWF0OiBDaG9pY2VbXVxuICBlZGl0aW9uRGF0ZTogQ2hvaWNlW11cbiAgY3JzOiBDaG9pY2VbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlcm1CdWNrZXQge1xuICB0ZXJtOiBzdHJpbmdcbiAgbGFiZWw6IHN0cmluZyB8IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkIHtcbiAgZW50cnk6IEFycmF5PHVua25vd24+XG4gIGxpbms6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWdwZi1hcGktZGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3BmLWFwaS1kbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dwZi1hcGktZGwuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICAgIEdwZkFwaURsTGlzdEl0ZW1Db21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEdwZkFwaURsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgaXNPcGVuID0gZmFsc2VcbiAgY29sbGFwc2VkID0gZmFsc2VcbiAgaW5pdGlhbExpbWl0ID0gNTBcbiAgYXBpQmFzZVVybDogc3RyaW5nXG4gIGVkaXRpb25EYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpXG4gIHpvbmUkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJylcbiAgZm9ybWF0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpXG4gIGNycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKVxuICBwYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMSlcbiAgdXJsID1cbiAgICAnaHR0cHM6Ly9kYXRhLmdlb3BmLmZyL3RlbGVjaGFyZ2VtZW50L2NhcGFiaWxpdGllcz9vdXRwdXRGb3JtYXQ9YXBwbGljYXRpb24vanNvbidcbiAgY2hvaWNlczogeyB6b25lOiBUZXJtQnVja2V0W107IGZvcm1hdDogVGVybUJ1Y2tldFtdOyBjYXRlZ29yeTogVGVybUJ1Y2tldFtdIH1cbiAgYnVja2V0UHJvbWlzZXNab25lOiBDaG9pY2VbXVxuICBidWNrZXRQcm9taXNlc0Zvcm1hdDogQ2hvaWNlW11cbiAgYnVja2V0UHJvbWlzZXNDcnM6IENob2ljZVtdXG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQpIHt9XG5cbiAgQElucHV0KCkgc2V0IGFwaUxpbmsodmFsdWU6IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uKSB7XG4gICAgdGhpcy5hcGlCYXNlVXJsID0gdmFsdWUgPyB2YWx1ZS51cmwuaHJlZiA6IHVuZGVmaW5lZFxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5idWNrZXRQcm9taXNlc1pvbmUgPSBbeyB2YWx1ZTogJycsIGxhYmVsOiAnWk9ORScgfV1cbiAgICB0aGlzLmJ1Y2tldFByb21pc2VzRm9ybWF0ID0gW3sgdmFsdWU6ICcnLCBsYWJlbDogJ0ZPUk1BVCcgfV1cbiAgICB0aGlzLmJ1Y2tldFByb21pc2VzQ3JzID0gW3sgdmFsdWU6ICcnLCBsYWJlbDogJ0NSUycgfV1cbiAgICB0aGlzLmdldEZpZWxkcygpXG4gIH1cblxuICBhcGlRdWVyeVVybCQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLnpvbmUkLFxuICAgIHRoaXMuZm9ybWF0JCxcbiAgICB0aGlzLmVkaXRpb25EYXRlJCxcbiAgICB0aGlzLmNycyQsXG4gICAgdGhpcy5wYWdlJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFt6b25lLCBmb3JtYXQsIGVkaXRpb25EYXRlLCBjcnMsIHBhZ2VdKSA9PiB7XG4gICAgICBsZXQgb3V0cHV0VXJsXG4gICAgICBpZiAodGhpcy5hcGlCYXNlVXJsKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodGhpcy5hcGlCYXNlVXJsKSAvLyBpbml0aWFsaXNhdGlvbiBkZSBsJ3VybCBhdmVjIGwndXJsIGRlIGJhc2VcbiAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgIHpvbmU6IHpvbmUsXG4gICAgICAgICAgZm9ybWF0OiBmb3JtYXQsXG4gICAgICAgICAgZWRpdGlvbkRhdGU6IGVkaXRpb25EYXRlLFxuICAgICAgICAgIGNyczogY3JzLFxuICAgICAgICAgIHBhZ2U6IHBhZ2UsXG4gICAgICAgIH0gLy8gaW5pdGlhbGlzYXRpb24gZGVzIHBhcmFtw6h0cmVzIGRlIGZpbHRyZXNcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGFyYW1zKSkge1xuICAgICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gJ251bGwnKSB7XG4gICAgICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLnNldChrZXksIFN0cmluZyh2YWx1ZSkpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVybC5zZWFyY2hQYXJhbXMuZGVsZXRlKGtleSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb3V0cHV0VXJsID0gdXJsLnRvU3RyaW5nKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ2VycmV1ciBhcGliYXNlVXJsIG51bGwnKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG91dHB1dFVybFxuICAgIH0pXG4gIClcblxuICBsaXN0RmlsdGVyZWRQcm9kdWN0JCA9IHRoaXMuYXBpUXVlcnlVcmwkLnBpcGUoXG4gICAgbWVyZ2VNYXAoKHVybCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RmlsdGVyZWRQcm9kdWN0JCh1cmwpLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlWydlbnRyeSddKVxuICAgICAgKVxuICAgIH0pXG4gIClcblxuICBwYWdlTWF4JCA9IHRoaXMuYXBpUXVlcnlVcmwkLnBpcGUoXG4gICAgbWVyZ2VNYXAoKHVybCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RmlsdGVyZWRQcm9kdWN0JCh1cmwpLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+XG4gICAgICAgICAgTWF0aC5jZWlsKHJlc3BvbnNlWyd0b3RhbGVudHJpZXMnXSAvIE51bWJlcih0aGlzLmluaXRpYWxMaW1pdCkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICB9KVxuICApXG5cbiAgZ2V0RmlsdGVyZWRQcm9kdWN0JChcbiAgICB1cmxcbiAgKTogT2JzZXJ2YWJsZTx7IGVudHJ5OiB1bmtub3duW107IHRvdGFsZW50cmllczogbnVtYmVyIH0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDx7IGVudHJ5OiB1bmtub3duW107IHRvdGFsZW50cmllczogbnVtYmVyIH0+KHVybClcbiAgfVxuXG4gIGdldExpbmtGb3JtYXQocHJvZHVpdCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHByb2R1aXRbJ2Zvcm1hdCddWzBdWydsYWJlbCddXG4gIH1cblxuICBzZXRFZGl0aW9uRGF0ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlLm1hdGNoKC9bMC05XXs0fS1bMC0xXVswLTldLVswLTNdWzAtOV0vKSkge1xuICAgICAgdGhpcy5lZGl0aW9uRGF0ZSQubmV4dCh2YWx1ZSlcbiAgICAgIHRoaXMucmVzZXRQYWdlKClcbiAgICB9XG4gIH1cblxuICBzZXRab25lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5idWNrZXRQcm9taXNlc1pvbmUubWFwKChjaG9pY2UpID0+IGNob2ljZS52YWx1ZSkuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICB0aGlzLnpvbmUkLm5leHQodmFsdWUpXG4gICAgICB0aGlzLnJlc2V0UGFnZSgpXG4gICAgfVxuICB9XG5cbiAgc2V0Q3JzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5idWNrZXRQcm9taXNlc0Nycy5tYXAoKGNob2ljZSkgPT4gY2hvaWNlLnZhbHVlKS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuY3JzJC5uZXh0KHZhbHVlKVxuICAgICAgdGhpcy5yZXNldFBhZ2UoKVxuICAgIH1cbiAgfVxuXG4gIHNldEZvcm1hdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5idWNrZXRQcm9taXNlc0Zvcm1hdC5tYXAoKGNob2ljZSkgPT4gY2hvaWNlLnZhbHVlKS5pbmNsdWRlcyh2YWx1ZSlcbiAgICApIHtcbiAgICAgIHRoaXMuZm9ybWF0JC5uZXh0KHZhbHVlKVxuICAgICAgdGhpcy5yZXNldFBhZ2UoKVxuICAgIH1cbiAgfVxuXG4gIHJlc2V0VXJsKCkge1xuICAgIHRoaXMuem9uZSQubmV4dCgnbnVsbCcpXG4gICAgdGhpcy5mb3JtYXQkLm5leHQoJ251bGwnKVxuICAgIHRoaXMuY3JzJC5uZXh0KCdudWxsJylcbiAgICB0aGlzLnBhZ2UkLm5leHQoMSlcbiAgfVxuICBtb3JlUmVzdWx0KCk6IHZvaWQge1xuICAgIHRoaXMucGFnZSQubmV4dCh0aGlzLnBhZ2UkLnZhbHVlICsgMSlcbiAgfVxuXG4gIGxlc3NSZXN1bHQoKTogdm9pZCB7XG4gICAgdGhpcy5wYWdlJC5uZXh0KHRoaXMucGFnZSQudmFsdWUgLSAxKVxuICB9XG5cbiAgcmVzZXRQYWdlKCk6IHZvaWQge1xuICAgIHRoaXMucGFnZSQubmV4dCgxKVxuICB9XG5cbiAgYXN5bmMgZ2V0Q2FwYWJpbGl0aWVzKCkge1xuICAgIGxldCBwYWdlID0gMFxuICAgIGxldCBjaG9pY2VzVGVzdCA9IHVuZGVmaW5lZFxuICAgIGxldCBwYWdlQ291bnQgPSAxXG5cbiAgICB3aGlsZSAoY2hvaWNlc1Rlc3QgPT09IHVuZGVmaW5lZCAmJiBwYWdlQ291bnQgPiBwYWdlKSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLmdldChcbiAgICAgICAgdGhpcy51cmwuY29uY2F0KGAmbGltaXQ9MjAwJnBhZ2U9JHtwYWdlfWApXG4gICAgICApXG5cbiAgICAgIGNob2ljZXNUZXN0ID0gcmVzcG9uc2UuZGF0YS5lbnRyeS5maWx0ZXIoXG4gICAgICAgIChlbGVtZW50KSA9PiBlbGVtZW50WydpZCddID09IHRoaXMuYXBpQmFzZVVybFxuICAgICAgKVswXVxuICAgICAgcGFnZSArPSAxXG4gICAgICBwYWdlQ291bnQgPSByZXNwb25zZS5kYXRhLnBhZ2Vjb3VudFxuICAgIH1cblxuICAgIHJldHVybiBjaG9pY2VzVGVzdFxuICB9XG4gIGFzeW5jIGdldEZpZWxkcygpIHtcbiAgICB0aGlzLmNob2ljZXMgPSBhd2FpdCB0aGlzLmdldENhcGFiaWxpdGllcygpXG5cbiAgICBjb25zdCB0ZW1wWm9uZSA9IHRoaXMuY2hvaWNlcy56b25lLm1hcCgoYnVja2V0KSA9PiAoe1xuICAgICAgdmFsdWU6IGJ1Y2tldC50ZXJtLFxuICAgICAgbGFiZWw6IFN0cmluZyhidWNrZXQubGFiZWwpLFxuICAgIH0pKVxuICAgIHRlbXBab25lLnNvcnQoKGEsIGIpID0+IChhLmxhYmVsID4gYi5sYWJlbCA/IDEgOiAtMSkpXG4gICAgdGVtcFpvbmUudW5zaGlmdCh7IHZhbHVlOiAnbnVsbCcsIGxhYmVsOiAnWk9ORScgfSlcblxuICAgIHRoaXMuYnVja2V0UHJvbWlzZXNab25lID0gdGVtcFpvbmVcblxuICAgIGNvbnN0IHRlbXBGb3JtYXQgPSB0aGlzLmNob2ljZXMuZm9ybWF0Lm1hcCgoYnVja2V0KSA9PiAoe1xuICAgICAgdmFsdWU6IGJ1Y2tldC50ZXJtLFxuICAgICAgbGFiZWw6IFN0cmluZyhidWNrZXQubGFiZWwpLFxuICAgIH0pKVxuICAgIHRlbXBGb3JtYXQuc29ydCgoYSwgYikgPT4gKGEubGFiZWwgPiBiLmxhYmVsID8gMSA6IC0xKSlcbiAgICB0ZW1wRm9ybWF0LnVuc2hpZnQoeyB2YWx1ZTogJ251bGwnLCBsYWJlbDogJ0ZPUk1BVCcgfSlcblxuICAgIHRoaXMuYnVja2V0UHJvbWlzZXNGb3JtYXQgPSB0ZW1wRm9ybWF0XG5cbiAgICBjb25zdCB0ZW1wQ3JzID0gdGhpcy5jaG9pY2VzLmNhdGVnb3J5Lm1hcCgoYnVja2V0KSA9PiAoe1xuICAgICAgdmFsdWU6IGJ1Y2tldC50ZXJtLFxuICAgICAgbGFiZWw6IFN0cmluZyhidWNrZXQubGFiZWwpLFxuICAgIH0pKVxuICAgIHRlbXBDcnMuc29ydCgoYSwgYikgPT4gKGEubGFiZWwgPiBiLmxhYmVsID8gMSA6IC0xKSlcbiAgICB0ZW1wQ3JzLnVuc2hpZnQoeyB2YWx1ZTogJ251bGwnLCBsYWJlbDogJ0NSUycgfSlcblxuICAgIHRoaXMuYnVja2V0UHJvbWlzZXNDcnMgPSB0ZW1wQ3JzXG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNiBwLTggYmctd2hpdGUgc2hhZG93LXhsIHJvdW5kZWQtbGdcIj5cbiAgPCEtLSBIZWFkZXIgd2l0aCBGaWx0ZXIgVGl0bGUgYW5kIFJlc2V0IEJ1dHRvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgIDxoMlxuICAgICAgY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtc2VtaWJvbGRcIlxuICAgICAgdHJhbnNsYXRlXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAncmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmZpbHRlckRlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZVxuICAgICAgXCJcbiAgICA+XG4gICAgICByZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0uZmlsdGVyXG4gICAgPC9oMj5cbiAgICA8YnV0dG9uXG4gICAgICAoY2xpY2spPVwicmVzZXRVcmwoKVwiXG4gICAgICBjbGFzcz1cImJnLXByaW1hcnktb3BhY2l0eS01MCBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtNCBweS0yIHRleHQtd2hpdGUgcm91bmRlZCBob3ZlcjpiZy1wcmltYXJ5IHRyYW5zaXRpb25cIlxuICAgICAgW2F0dHIudGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5yZXNldFRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5yZXNldFRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcbiAgICA+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLnJlc2V0PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8IS0tIERyb3Bkb3duIFNlbGVjdG9ycyAtLT5cbiAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTMgZ2FwLTRcIj5cbiAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgICN6b25lXG4gICAgICBbdGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS56b25lVGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtjaG9pY2VzXT1cImJ1Y2tldFByb21pc2VzWm9uZVwiXG4gICAgICAoc2VsZWN0VmFsdWUpPVwic2V0Wm9uZSgkZXZlbnQpXCJcbiAgICAgIFtzZWxlY3RlZF09XCJ6b25lJCB8IGFzeW5jXCJcbiAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgIFthdHRyLnRpdGxlXT1cIidyZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0uem9uZVRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS56b25lVG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxuICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuXG4gICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAjZm9ybWF0XG4gICAgICBbdGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5mb3JtYXRUaXRsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgW2Nob2ljZXNdPVwiYnVja2V0UHJvbWlzZXNGb3JtYXRcIlxuICAgICAgKHNlbGVjdFZhbHVlKT1cInNldEZvcm1hdCgkZXZlbnQpXCJcbiAgICAgIFtzZWxlY3RlZF09XCJmb3JtYXQkIHwgYXN5bmNcIlxuICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgW2F0dHIudGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5mb3JtYXRUb29sdGlwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidyZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0uZm9ybWF0VG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxuICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuXG4gICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAjY3JzXG4gICAgICBbdGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5jcnNUaXRsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgW2Nob2ljZXNdPVwiYnVja2V0UHJvbWlzZXNDcnNcIlxuICAgICAgKHNlbGVjdFZhbHVlKT1cInNldENycygkZXZlbnQpXCJcbiAgICAgIFtzZWxlY3RlZF09XCJjcnMkIHwgYXN5bmNcIlxuICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgW2F0dHIudGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5jcnNUb29sdGlwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidyZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0uY3JzVG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxuICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICA8L2Rpdj5cblxuICA8IS0tIEZpbHRlcmVkIEl0ZW1zIFNlY3Rpb24gLS0+XG4gIDxkaXYgY2xhc3M9XCJiZy1ncmF5LTUwIHAtNCByb3VuZGVkLWxnXCI+XG4gICAgPGgzXG4gICAgICBjbGFzcz1cInRleHQtbGcgZm9udC1tZWRpdW1cIlxuICAgICAgdHJhbnNsYXRlXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAncmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLml0ZW1zRGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlXG4gICAgICBcIlxuICAgID5cbiAgICAgIHJlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5pdGVtc1xuICAgIDwvaDM+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIG1heC1oLTYwXCJcbiAgICAgIFthdHRyLnRpdGxlXT1cIidyZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0uaXRlbXNUb29sdGlwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidyZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0uaXRlbXNUb29sdGlwJyB8IHRyYW5zbGF0ZVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdGb3I9XCJsZXQgbGluayBvZiBsaXN0RmlsdGVyZWRQcm9kdWN0JCB8IGFzeW5jXCJcbiAgICAgICAgY2xhc3M9XCJtYi0yIHNtOm1iLTNcIlxuICAgICAgPlxuICAgICAgICA8Z24tdWktZ3BmLWFwaS1kbC1saXN0LWl0ZW1cbiAgICAgICAgICBbbGlua109XCJsaW5rXCJcbiAgICAgICAgICBjb2xvcj1cInJnYigxMjQgNDUgMTgpXCJcbiAgICAgICAgICBbZm9ybWF0XT1cImdldExpbmtGb3JtYXQobGluaylcIlxuICAgICAgICAgIFtpc0Zyb21XZnNdPVwidHJ1ZVwiXG4gICAgICAgICAgW2F0dHIudGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5wcm9kdWN0VG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAncmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLnByb2R1Y3RUb29sdGlwJyB8IHRyYW5zbGF0ZVxuICAgICAgICAgIFwiXG4gICAgICAgID48L2duLXVpLWdwZi1hcGktZGwtbGlzdC1pdGVtPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gUGFnaW5hdGlvbiBTZWN0aW9uIC0tPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgPGJ1dHRvblxuICAgICAgKGNsaWNrKT1cImxlc3NSZXN1bHQoKVwiXG4gICAgICBbY2xhc3NdPVwiXG4gICAgICAgICdweC00IHB5LTIgdGV4dC13aGl0ZSByb3VuZGVkIHRyYW5zaXRpb24gJyArXG4gICAgICAgICgocGFnZSQgfCBhc3luYykgPD0gMVxuICAgICAgICAgID8gJ2JnLWdyYXktNDAwIGN1cnNvci1ub3QtYWxsb3dlZCAgJ1xuICAgICAgICAgIDogJ2JnLXByaW1hcnktb3BhY2l0eS01MCAgaG92ZXI6YmctcHJpbWFyeScpXG4gICAgICBcIlxuICAgICAgW2F0dHIudGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5wcmV2aW91c1BhZ2VUb29sdGlwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAncmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLnByZXZpb3VzUGFnZVRvb2x0aXAnIHwgdHJhbnNsYXRlXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0ucHJldmlvdXNQYWdlPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZm9udC1zZW1pYm9sZCBwbGFjZS1jb250ZW50LWNlbnRlclwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAncmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLnBhZ2luYXRpb25EZXNjcmlwdGlvbicgfCB0cmFuc2xhdGVcbiAgICAgIFwiXG4gICAgPlxuICAgICAge3sgcGFnZSQgfCBhc3luYyB9fS97eyBwYWdlTWF4JCB8IGFzeW5jIH19XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvblxuICAgICAgKGNsaWNrKT1cIm1vcmVSZXN1bHQoKVwiXG4gICAgICBbY2xhc3NdPVwiXG4gICAgICAgICdiZy1wcmltYXJ5LW9wYWNpdHktNTAgcHgtNCBweS0yIHRleHQtd2hpdGUgcm91bmRlZCB0cmFuc2l0aW9uICcgK1xuICAgICAgICAoKHBhZ2UkIHwgYXN5bmMpID49IChwYWdlTWF4JCB8IGFzeW5jKVxuICAgICAgICAgID8gJ2JnLWdyYXktNDAwIGN1cnNvci1ub3QtYWxsb3dlZCAgJ1xuICAgICAgICAgIDogJ2JnLXByaW1hcnktb3BhY2l0eS01MCAgaG92ZXI6YmctcHJpbWFyeScpXG4gICAgICBcIlxuICAgICAgW2F0dHIudGl0bGVdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5uZXh0UGFnZVRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3JlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5uZXh0UGFnZVRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcbiAgICA+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLm5leHRQYWdlPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
55
55
  }], isFromWfs: [{
56
56
  type: Input
57
57
  }] } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3BmLWFwaS1kbC1saXN0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3JlY29yZC9zcmMvbGliL2dwZi1hcGktZGwtbGlzdC1pdGVtL2dwZi1hcGktZGwtbGlzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9ncGYtYXBpLWRsLWxpc3QtaXRlbS9ncGYtYXBpLWRsLWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFBO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFBOzs7O0FBaUIxRSxNQUFNLE9BQU8seUJBQXlCO0lBTXBDLFlBQXNCLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFBRyxDQUFDO0lBRzFDLFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJO2FBQ3BCLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSTthQUNOLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3BCLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUNwQyxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUNqQzthQUNBLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3pELENBQUM7SUFFRCxRQUFRLENBQUMsR0FBRztRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQ2hDLENBQUM7K0dBM0JVLHlCQUF5QjttR0FBekIseUJBQXlCLDZKQVR6QjtZQUNULFlBQVksQ0FBQztnQkFDWCx1QkFBdUI7YUFDeEIsQ0FBQztZQUNGLG9CQUFvQixDQUFDO2dCQUNuQixJQUFJLEVBQUUsT0FBTzthQUNkLENBQUM7U0FDSCwwQkNyQkgsK3VDQXFDQSx5RER4QlksWUFBWSxxVEFBRSxrQkFBa0IsNkdBQUUsYUFBYSxrREFBRSxNQUFNOzs0RkFVdEQseUJBQXlCO2tCQWZyQyxTQUFTOytCQUNFLDRCQUE0QixjQUcxQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUN2RDt3QkFDVCxZQUFZLENBQUM7NEJBQ1gsdUJBQXVCO3lCQUN4QixDQUFDO3dCQUNGLG9CQUFvQixDQUFDOzRCQUNuQixJQUFJLEVBQUUsT0FBTzt5QkFDZCxDQUFDO3FCQUNIOytFQUdRLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdJY29uLCBwcm92aWRlSWNvbnMsIHByb3ZpZGVOZ0ljb25zQ29uZmlnIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBUcmFuc2xhdGVEaXJlY3RpdmUsIFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgbWFwLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXRDbG91ZERvd25sb2FkT3V0bGluZSB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9vdXRsaW5lJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1ncGYtYXBpLWRsLWxpc3QtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncGYtYXBpLWRsLWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dwZi1hcGktZGwtbGlzdC1pdGVtLmNvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlRGlyZWN0aXZlLCBUcmFuc2xhdGVQaXBlLCBOZ0ljb25dLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoe1xuICAgICAgbWF0Q2xvdWREb3dubG9hZE91dGxpbmUsXG4gICAgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuNWVtJyxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR3BmQXBpRGxMaXN0SXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxpbmtcbiAgQElucHV0KCkgY29sb3I6IHN0cmluZ1xuICBASW5wdXQoKSBmb3JtYXQ6IHN0cmluZ1xuICBASW5wdXQoKSBpc0Zyb21XZnM6IGJvb2xlYW5cblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCkge31cbiAgbGlzdGUkOiBPYnNlcnZhYmxlPGFueT5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlJCA9IHRoaXMuaHR0cFxuICAgICAgLmdldCh0aGlzLmxpbmtbJ2lkJ10pXG4gICAgICAucGlwZShtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZVsnZW50cnknXSkpXG4gIH1cblxuICBkb3dubG9hZExpc3RlKCk6IHZvaWQge1xuICAgIHRoaXMuaHR0cFxuICAgICAgLmdldCh0aGlzLmxpbmtbJ2lkJ10pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2VbJ2VudHJ5J10pLFxuICAgICAgICBtZXJnZU1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgocmVwb25zZSkgPT4gdGhpcy5kb3dubG9hZChyZXBvbnNlWydpZCddKSlcbiAgfVxuXG4gIGRvd25sb2FkKHVybCk6IHZvaWQge1xuICAgIHRoaXMuaHR0cC5nZXQodXJsKS5zdWJzY3JpYmUoKVxuICB9XG59XG4iLCI8YVxuICBjbGFzcz1cImdyb3VwIGZsZXgganVzdGlmeS1iZXR3ZWVuIGNhcmQtc2hhZG93IHB4LTYgcHktNSBjdXJzb3ItcG9pbnRlclwiXG4gIHJlbD1cIm5vb3BlbmVyXCJcbj5cbiAgPGRpdiBjbGFzcz1cImdyb3ctMSB3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ0ZXh0LTE2IHRleHQtYmxhY2sgdHJ1bmNhdGUgZm9udC10aXRsZSB3LTExLzEyXCJcbiAgICAgIFt0aXRsZV09XCJsaW5rWyd0aXRsZSddIHx8IGxpbmsubmFtZVwiXG4gICAgPlxuICAgICAge3sgbGlua1sndGl0bGUnXSB8fCBsaW5rLm5hbWUgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicHQtMVwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHgtMiBweS0xIHRleHQtMTMgZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHRleHQtd2hpdGUgcm91bmRlZCB0cmFuc2l0aW9uLW9wYWNpdHkgb3BhY2l0eS03MCBncm91cC1ob3ZlcjpvcGFjaXR5LTEwMFwiXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImNvbG9yXCJcbiAgICAgICAgZGF0YS1jeT1cImRvd25sb2FkLWZvcm1hdFwiXG4gICAgICAgID57eyBmb3JtYXQgfHwgKCdkb3dubG9hZHMuZm9ybWF0LnVua25vd24nIHwgdHJhbnNsYXRlKSB9fTwvc3BhblxuICAgICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJwbC0yIGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciB0ZXh0LWdyYXktODAwIHRleHQtc21cIlxuICAgICAgICAqbmdJZj1cImlzRnJvbVdmc1wiXG4gICAgICAgIHRyYW5zbGF0ZT1cIlwiXG4gICAgICAgID5kYXRhaHViLnNlYXJjaC5maWx0ZXIuZ2VuZXJhdGVkQnlXZnM8L3NwYW5cbiAgICAgID5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBlbnRyeSBvZiBsaXN0ZSQgfCBhc3luY1wiPlxuICAgICAgPGEgW2hyZWZdPVwiZW50cnlbJ2xpbmsnXVswXVsnaHJlZiddXCJcbiAgICAgICAgPnt7IGVudHJ5WydsaW5rJ11bMF1bJ2hyZWYnXS5zcGxpdCgnLycpLnNsaWNlKC0xKSB9fVxuICAgICAgICA8bmctaWNvblxuICAgICAgICAgIGNsYXNzPVwidGV4dC1wcmltYXJ5IG9wYWNpdHktNDUgbXItM1wiXG4gICAgICAgICAgbmFtZT1cIm1hdENsb3VkRG93bmxvYWRPdXRsaW5lXCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLWljb24+XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9hPlxuIl19
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3BmLWFwaS1kbC1saXN0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3JlY29yZC9zcmMvbGliL2dwZi1hcGktZGwtbGlzdC1pdGVtL2dwZi1hcGktZGwtbGlzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9ncGYtYXBpLWRsLWxpc3QtaXRlbS9ncGYtYXBpLWRsLWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFBO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFBOzs7O0FBaUIxRSxNQUFNLE9BQU8seUJBQXlCO0lBTXBDLFlBQXNCLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFBRyxDQUFDO0lBRzFDLFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJO2FBQ3BCLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSTthQUNOLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3BCLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUNwQyxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUNqQzthQUNBLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3pELENBQUM7SUFFRCxRQUFRLENBQUMsR0FBRztRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQ2hDLENBQUM7K0dBM0JVLHlCQUF5QjttR0FBekIseUJBQXlCLDZKQVR6QjtZQUNULFlBQVksQ0FBQztnQkFDWCx1QkFBdUI7YUFDeEIsQ0FBQztZQUNGLG9CQUFvQixDQUFDO2dCQUNuQixJQUFJLEVBQUUsT0FBTzthQUNkLENBQUM7U0FDSCwwQkNyQkgsK3VDQXFDQSx5RER4QlksWUFBWSxxVEFBRSxrQkFBa0IsNkdBQUUsYUFBYSxrREFBRSxNQUFNOzs0RkFVdEQseUJBQXlCO2tCQWZyQyxTQUFTOytCQUNFLDRCQUE0QixjQUcxQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUN2RDt3QkFDVCxZQUFZLENBQUM7NEJBQ1gsdUJBQXVCO3lCQUN4QixDQUFDO3dCQUNGLG9CQUFvQixDQUFDOzRCQUNuQixJQUFJLEVBQUUsT0FBTzt5QkFDZCxDQUFDO3FCQUNIOytFQUdRLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdJY29uLCBwcm92aWRlSWNvbnMsIHByb3ZpZGVOZ0ljb25zQ29uZmlnIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBUcmFuc2xhdGVEaXJlY3RpdmUsIFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgbWFwLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXRDbG91ZERvd25sb2FkT3V0bGluZSB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9vdXRsaW5lJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1ncGYtYXBpLWRsLWxpc3QtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncGYtYXBpLWRsLWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dwZi1hcGktZGwtbGlzdC1pdGVtLmNvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlRGlyZWN0aXZlLCBUcmFuc2xhdGVQaXBlLCBOZ0ljb25dLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoe1xuICAgICAgbWF0Q2xvdWREb3dubG9hZE91dGxpbmUsXG4gICAgfSksXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuNWVtJyxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR3BmQXBpRGxMaXN0SXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxpbmtcbiAgQElucHV0KCkgY29sb3I6IHN0cmluZ1xuICBASW5wdXQoKSBmb3JtYXQ6IHN0cmluZ1xuICBASW5wdXQoKSBpc0Zyb21XZnM6IGJvb2xlYW5cblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCkge31cbiAgbGlzdGUkOiBPYnNlcnZhYmxlPHsgZW50cnk6IHVua25vd25bXSB9PlxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGUkID0gdGhpcy5odHRwXG4gICAgICAuZ2V0KHRoaXMubGlua1snaWQnXSlcbiAgICAgIC5waXBlKG1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlWydlbnRyeSddKSlcbiAgfVxuXG4gIGRvd25sb2FkTGlzdGUoKTogdm9pZCB7XG4gICAgdGhpcy5odHRwXG4gICAgICAuZ2V0KHRoaXMubGlua1snaWQnXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZVsnZW50cnknXSksXG4gICAgICAgIG1lcmdlTWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChyZXBvbnNlKSA9PiB0aGlzLmRvd25sb2FkKHJlcG9uc2VbJ2lkJ10pKVxuICB9XG5cbiAgZG93bmxvYWQodXJsKTogdm9pZCB7XG4gICAgdGhpcy5odHRwLmdldCh1cmwpLnN1YnNjcmliZSgpXG4gIH1cbn1cbiIsIjxhXG4gIGNsYXNzPVwiZ3JvdXAgZmxleCBqdXN0aWZ5LWJldHdlZW4gY2FyZC1zaGFkb3cgcHgtNiBweS01IGN1cnNvci1wb2ludGVyXCJcbiAgcmVsPVwibm9vcGVuZXJcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZ3Jvdy0xIHctZnVsbCBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInRleHQtMTYgdGV4dC1ibGFjayB0cnVuY2F0ZSBmb250LXRpdGxlIHctMTEvMTJcIlxuICAgICAgW3RpdGxlXT1cImxpbmtbJ3RpdGxlJ10gfHwgbGluay5uYW1lXCJcbiAgICA+XG4gICAgICB7eyBsaW5rWyd0aXRsZSddIHx8IGxpbmsubmFtZSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwdC0xXCI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweC0yIHB5LTEgdGV4dC0xMyBmb250LW1lZGl1bSBsZWFkaW5nLW5vbmUgdGV4dC13aGl0ZSByb3VuZGVkIHRyYW5zaXRpb24tb3BhY2l0eSBvcGFjaXR5LTcwIGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwXCJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiY29sb3JcIlxuICAgICAgICBkYXRhLWN5PVwiZG93bmxvYWQtZm9ybWF0XCJcbiAgICAgICAgPnt7IGZvcm1hdCB8fCAoJ2Rvd25sb2Fkcy5mb3JtYXQudW5rbm93bicgfCB0cmFuc2xhdGUpIH19PC9zcGFuXG4gICAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInBsLTIgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIHRleHQtZ3JheS04MDAgdGV4dC1zbVwiXG4gICAgICAgICpuZ0lmPVwiaXNGcm9tV2ZzXCJcbiAgICAgICAgdHJhbnNsYXRlPVwiXCJcbiAgICAgICAgPmRhdGFodWIuc2VhcmNoLmZpbHRlci5nZW5lcmF0ZWRCeVdmczwvc3BhblxuICAgICAgPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGVudHJ5IG9mIGxpc3RlJCB8IGFzeW5jXCI+XG4gICAgICA8YSBbaHJlZl09XCJlbnRyeVsnbGluayddWzBdWydocmVmJ11cIlxuICAgICAgICA+e3sgZW50cnlbJ2xpbmsnXVswXVsnaHJlZiddLnNwbGl0KCcvJykuc2xpY2UoLTEpIH19XG4gICAgICAgIDxuZy1pY29uXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgb3BhY2l0eS00NSBtci0zXCJcbiAgICAgICAgICBuYW1lPVwibWF0Q2xvdWREb3dubG9hZE91dGxpbmVcIlxuICAgICAgICA+XG4gICAgICAgIDwvbmctaWNvbj5cbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2E+XG4iXX0=