@alfresco/adf-content-services 8.1.0-15902121227 → 8.1.0-15928551305

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 (76) hide show
  1. package/esm2022/lib/aspect-list/aspect-list-dialog.component.mjs +5 -6
  2. package/esm2022/lib/aspect-list/aspect-list.component.mjs +5 -6
  3. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +6 -7
  4. package/esm2022/lib/breadcrumb/dropdown-breadcrumb.component.mjs +4 -5
  5. package/esm2022/lib/category/categories-management/categories-management.component.mjs +10 -11
  6. package/esm2022/lib/content-metadata/components/content-metadata/content-metadata-header.component.mjs +4 -5
  7. package/esm2022/lib/content-metadata/components/content-metadata/content-metadata.component.mjs +6 -7
  8. package/esm2022/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.mjs +4 -5
  9. package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.mjs +8 -9
  10. package/esm2022/lib/content-node-selector/content-node-selector.component.mjs +6 -7
  11. package/esm2022/lib/content-node-selector/site-dropdown/sites-dropdown.component.mjs +4 -4
  12. package/esm2022/lib/content-node-share/content-node-share.dialog.mjs +11 -12
  13. package/esm2022/lib/content-type/content-type-dialog.component.mjs +7 -8
  14. package/esm2022/lib/content.module.mjs +2 -2
  15. package/esm2022/lib/dialogs/category-selector/category-selector.dialog.mjs +5 -6
  16. package/esm2022/lib/dialogs/folder/folder.dialog.mjs +7 -8
  17. package/esm2022/lib/dialogs/library/library.dialog.mjs +8 -9
  18. package/esm2022/lib/dialogs/node-lock/node-lock.dialog.mjs +9 -10
  19. package/esm2022/lib/directives/content-directive.module.mjs +2 -2
  20. package/esm2022/lib/directives/node-counter.directive.mjs +4 -5
  21. package/esm2022/lib/document-list/components/document-list.component.mjs +6 -7
  22. package/esm2022/lib/document-list/components/file-auto-download/file-auto-download.component.mjs +7 -8
  23. package/esm2022/lib/document-list/components/library-name-column/library-name-column.component.mjs +5 -7
  24. package/esm2022/lib/document-list/components/library-role-column/library-role-column.component.mjs +5 -7
  25. package/esm2022/lib/document-list/components/library-status-column/library-status-column.component.mjs +5 -7
  26. package/esm2022/lib/document-list/components/name-column/name-column.component.mjs +5 -7
  27. package/esm2022/lib/document-list/document-list.module.mjs +1 -5
  28. package/esm2022/lib/new-version-uploader/new-version-uploader.dialog.mjs +5 -6
  29. package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog.component.mjs +5 -6
  30. package/esm2022/lib/permission-manager/components/add-permission/add-permission-panel.component.mjs +7 -8
  31. package/esm2022/lib/permission-manager/components/add-permission/add-permission.component.mjs +4 -5
  32. package/esm2022/lib/permission-manager/components/permission-container/permission-container.component.mjs +6 -7
  33. package/esm2022/lib/permission-manager/components/permission-list/permission-list.component.mjs +5 -6
  34. package/esm2022/lib/permission-manager/components/user-role-column/user-role-column.component.mjs +4 -5
  35. package/esm2022/lib/search/components/search-check-list/search-check-list.component.mjs +6 -7
  36. package/esm2022/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.mjs +8 -9
  37. package/esm2022/lib/search/components/search-chip-list/search-chip-list.component.mjs +5 -6
  38. package/esm2022/lib/search/components/search-control.component.mjs +4 -5
  39. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.mjs +8 -9
  40. package/esm2022/lib/search/components/search-datetime-range/search-datetime-range.component.mjs +4 -5
  41. package/esm2022/lib/search/components/search-facet-field/search-facet-field.component.mjs +6 -7
  42. package/esm2022/lib/search/components/search-filter/search-filter-card/search-filter-card.component.mjs +5 -6
  43. package/esm2022/lib/search/components/search-filter/search-filter.component.mjs +4 -5
  44. package/esm2022/lib/search/components/search-filter-autocomplete-chips/search-filter-autocomplete-chips.component.mjs +5 -6
  45. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.mjs +6 -7
  46. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.mjs +6 -7
  47. package/esm2022/lib/search/components/search-filter-chips/search-filter-chips.component.mjs +4 -5
  48. package/esm2022/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.mjs +6 -7
  49. package/esm2022/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.mjs +6 -7
  50. package/esm2022/lib/search/components/search-filter-container/search-filter-container.component.mjs +5 -6
  51. package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tabbed.component.mjs +4 -5
  52. package/esm2022/lib/search/components/search-form/search-form.component.mjs +6 -7
  53. package/esm2022/lib/search/components/search-input/search-input.component.mjs +4 -5
  54. package/esm2022/lib/search/components/search-logical-filter/search-logical-filter.component.mjs +5 -6
  55. package/esm2022/lib/search/components/search-number-range/search-number-range.component.mjs +5 -6
  56. package/esm2022/lib/search/components/search-properties/search-properties.component.mjs +4 -4
  57. package/esm2022/lib/search/components/search-radio/search-radio.component.mjs +6 -7
  58. package/esm2022/lib/search/components/search-slider/search-slider.component.mjs +4 -5
  59. package/esm2022/lib/search/components/search-text/search-text.component.mjs +8 -9
  60. package/esm2022/lib/search/components/search.component.mjs +4 -5
  61. package/esm2022/lib/tag/tag-actions/tag-actions.component.mjs +6 -7
  62. package/esm2022/lib/tag/tags-creator/tags-creator.component.mjs +6 -7
  63. package/esm2022/lib/tree/components/tree.component.mjs +10 -11
  64. package/esm2022/lib/tree-view/components/tree-view.component.mjs +4 -5
  65. package/esm2022/lib/upload/components/file-uploading-dialog.component.mjs +6 -7
  66. package/esm2022/lib/upload/components/file-uploading-list-row.component.mjs +5 -6
  67. package/esm2022/lib/upload/components/upload-button.component.mjs +5 -6
  68. package/esm2022/lib/upload/components/upload-version-button.component.mjs +5 -6
  69. package/esm2022/lib/version-manager/version-comparison.component.mjs +4 -5
  70. package/esm2022/lib/version-manager/version-list.component.mjs +5 -6
  71. package/esm2022/lib/version-manager/version-manager.component.mjs +4 -5
  72. package/esm2022/lib/version-manager/version-upload.component.mjs +7 -8
  73. package/esm2022/lib/viewer/components/alfresco-viewer.component.mjs +6 -7
  74. package/fesm2022/adf-content-services.mjs +188 -192
  75. package/fesm2022/adf-content-services.mjs.map +1 -1
  76. package/package.json +4 -4
@@ -24,13 +24,12 @@ import { CommonModule } from '@angular/common';
24
24
  import { VersionComparisonComponent } from './version-comparison.component';
25
25
  import { VersionUploadComponent } from './version-upload.component';
26
26
  import { MatButtonModule } from '@angular/material/button';
27
- import { TranslateModule } from '@ngx-translate/core';
27
+ import { TranslatePipe } from '@ngx-translate/core';
28
28
  import * as i0 from "@angular/core";
29
29
  import * as i1 from "../common/services/content.service";
30
30
  import * as i2 from "../common/services/nodes-api.service";
31
31
  import * as i3 from "@angular/common";
32
32
  import * as i4 from "@angular/material/button";
33
- import * as i5 from "@ngx-translate/core";
34
33
  export class VersionManagerComponent {
35
34
  constructor(contentService, nodesApiService) {
36
35
  this.contentService = contentService;
@@ -95,7 +94,7 @@ export class VersionManagerComponent {
95
94
  return this.contentService.hasAllowableOperations(this.node, 'update');
96
95
  }
97
96
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VersionManagerComponent, deps: [{ token: i1.ContentService }, { token: i2.NodesApiService }], target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: VersionManagerComponent, isStandalone: true, selector: "adf-version-manager", inputs: { node: "node", newFileVersion: "newFileVersion", showComments: "showComments", showVersionComparison: "showVersionComparison", allowDownload: "allowDownload", showActions: "showActions", allowViewVersions: "allowViewVersions", allowVersionDelete: "allowVersionDelete" }, outputs: { uploadSuccess: "uploadSuccess", uploadError: "uploadError", uploadCancel: "uploadCancel", viewVersion: "viewVersion" }, viewQueries: [{ propertyName: "versionListComponent", first: true, predicate: ["versionList"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"adf-new-version-container\">\n <adf-version-comparison *ngIf=\"showVersionComparison\" [node]=\"node\" [newFileVersion]=\"newFileVersion\" />\n <div class=\"adf-new-version-uploader-container\" id=\"adf-new-version-uploader-container\" [@uploadToggle]=\"uploadState\">\n <table class=\"adf-version-upload\" *ngIf=\"uploadState !== 'close' && !versionList.isLoading\">\n <tr>\n <td>\n <adf-version-upload\n id=\"adf-version-upload-button\"\n [node]=\"node\"\n [newFileVersion]=\"newFileVersion\"\n [currentVersion]=\"versionList?.latestVersion?.entry\"\n (success)=\"onUploadSuccess($event)\"\n (cancel)=\"onUploadCancel()\"\n (error)=\"onUploadError($event)\" />\n </td>\n </tr>\n </table>\n </div>\n <div class=\"adf-version-list-container\">\n <div class=\"adf-version-list-table\">\n <div>\n <button mat-raised-button\n id=\"adf-show-version-upload-button\"\n class=\"adf-version-manager-upload-button\"\n (click)=\"toggleNewVersion()\" color=\"primary\"\n *ngIf=\"uploadState ==='close'\">{{ 'ADF_VERSION_LIST.ACTIONS.UPLOAD.ADD' | translate }}\n </button>\n </div>\n <div>\n <adf-version-list\n #versionList\n [node]=\"node\"\n [allowDownload]=\"allowDownload\"\n [showComments]=\"showComments\"\n [showActions]=\"showActions\"\n [allowViewVersions]=\"allowViewVersions\"\n [allowVersionDelete]=\"allowVersionDelete\"\n (deleted)=\"refresh($event)\"\n (restored)=\"refresh($event)\"\n (viewVersion)=\"onViewVersion($event)\" />\n </div>\n </div>\n </div>\n</div>\n", styles: ["adf-version-manager .adf-version-list .adf-version-list-item:has(.adf-version-list-item-line){height:auto;width:100%;padding:16px 0}.adf-version-list-item-comment.adf-version-list-item-line{height:100%;word-break:break-all;white-space:unset;overflow:unset}.adf-button.adf-upload-new-version{box-shadow:none;width:100%;height:175px;float:left;position:relative}.adf-new-version-container{height:inherit;overflow:hidden}.adf-new-version-container .adf-new-version-uploader-container{padding:16px 0;width:100%;height:0;float:left;position:relative}.adf-new-version-container .adf-version-list.adf-version-list-element{width:100%;float:left}.adf-version-list-table{width:100%}.adf-version-list-table .adf-version-manager-upload-button{margin-left:20px}.adf-version-list-table adf-version-list{display:flex;height:538px}.adf-version-upload-table{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: VersionComparisonComponent, selector: "adf-version-comparison", inputs: ["node", "newFileVersion"] }, { kind: "component", type: VersionUploadComponent, selector: "adf-version-upload", inputs: ["node", "newFileVersion", "showUploadButton", "showCancelButton", "currentVersion"], outputs: ["success", "error", "cancel", "versionChanged", "commentChanged", "uploadStarted"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "component", type: VersionListComponent, selector: "adf-version-list", inputs: ["node", "showComments", "allowDownload", "allowViewVersions", "showActions", "allowVersionDelete"], outputs: ["restored", "deleted", "viewVersion"] }], animations: [
97
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: VersionManagerComponent, isStandalone: true, selector: "adf-version-manager", inputs: { node: "node", newFileVersion: "newFileVersion", showComments: "showComments", showVersionComparison: "showVersionComparison", allowDownload: "allowDownload", showActions: "showActions", allowViewVersions: "allowViewVersions", allowVersionDelete: "allowVersionDelete" }, outputs: { uploadSuccess: "uploadSuccess", uploadError: "uploadError", uploadCancel: "uploadCancel", viewVersion: "viewVersion" }, viewQueries: [{ propertyName: "versionListComponent", first: true, predicate: ["versionList"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"adf-new-version-container\">\n <adf-version-comparison *ngIf=\"showVersionComparison\" [node]=\"node\" [newFileVersion]=\"newFileVersion\" />\n <div class=\"adf-new-version-uploader-container\" id=\"adf-new-version-uploader-container\" [@uploadToggle]=\"uploadState\">\n <table class=\"adf-version-upload\" *ngIf=\"uploadState !== 'close' && !versionList.isLoading\">\n <tr>\n <td>\n <adf-version-upload\n id=\"adf-version-upload-button\"\n [node]=\"node\"\n [newFileVersion]=\"newFileVersion\"\n [currentVersion]=\"versionList?.latestVersion?.entry\"\n (success)=\"onUploadSuccess($event)\"\n (cancel)=\"onUploadCancel()\"\n (error)=\"onUploadError($event)\" />\n </td>\n </tr>\n </table>\n </div>\n <div class=\"adf-version-list-container\">\n <div class=\"adf-version-list-table\">\n <div>\n <button mat-raised-button\n id=\"adf-show-version-upload-button\"\n class=\"adf-version-manager-upload-button\"\n (click)=\"toggleNewVersion()\" color=\"primary\"\n *ngIf=\"uploadState ==='close'\">{{ 'ADF_VERSION_LIST.ACTIONS.UPLOAD.ADD' | translate }}\n </button>\n </div>\n <div>\n <adf-version-list\n #versionList\n [node]=\"node\"\n [allowDownload]=\"allowDownload\"\n [showComments]=\"showComments\"\n [showActions]=\"showActions\"\n [allowViewVersions]=\"allowViewVersions\"\n [allowVersionDelete]=\"allowVersionDelete\"\n (deleted)=\"refresh($event)\"\n (restored)=\"refresh($event)\"\n (viewVersion)=\"onViewVersion($event)\" />\n </div>\n </div>\n </div>\n</div>\n", styles: ["adf-version-manager .adf-version-list .adf-version-list-item:has(.adf-version-list-item-line){height:auto;width:100%;padding:16px 0}.adf-version-list-item-comment.adf-version-list-item-line{height:100%;word-break:break-all;white-space:unset;overflow:unset}.adf-button.adf-upload-new-version{box-shadow:none;width:100%;height:175px;float:left;position:relative}.adf-new-version-container{height:inherit;overflow:hidden}.adf-new-version-container .adf-new-version-uploader-container{padding:16px 0;width:100%;height:0;float:left;position:relative}.adf-new-version-container .adf-version-list.adf-version-list-element{width:100%;float:left}.adf-version-list-table{width:100%}.adf-version-list-table .adf-version-manager-upload-button{margin-left:20px}.adf-version-list-table adf-version-list{display:flex;height:538px}.adf-version-upload-table{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: VersionComparisonComponent, selector: "adf-version-comparison", inputs: ["node", "newFileVersion"] }, { kind: "component", type: VersionUploadComponent, selector: "adf-version-upload", inputs: ["node", "newFileVersion", "showUploadButton", "showCancelButton", "currentVersion"], outputs: ["success", "error", "cancel", "versionChanged", "commentChanged", "uploadStarted"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: VersionListComponent, selector: "adf-version-list", inputs: ["node", "showComments", "allowDownload", "allowViewVersions", "showActions", "allowVersionDelete"], outputs: ["restored", "deleted", "viewVersion"] }], animations: [
99
98
  trigger('uploadToggle', [
100
99
  state('open', style({ height: '175px', opacity: 1, visibility: 'visible' })),
101
100
  state('close', style({ height: '0%', opacity: 0, visibility: 'hidden' })),
@@ -106,7 +105,7 @@ export class VersionManagerComponent {
106
105
  }
107
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VersionManagerComponent, decorators: [{
108
107
  type: Component,
109
- args: [{ selector: 'adf-version-manager', standalone: true, imports: [CommonModule, VersionComparisonComponent, VersionUploadComponent, MatButtonModule, TranslateModule, VersionListComponent], animations: [
108
+ args: [{ selector: 'adf-version-manager', standalone: true, imports: [CommonModule, VersionComparisonComponent, VersionUploadComponent, MatButtonModule, TranslatePipe, VersionListComponent], animations: [
110
109
  trigger('uploadToggle', [
111
110
  state('open', style({ height: '175px', opacity: 1, visibility: 'visible' })),
112
111
  state('close', style({ height: '0%', opacity: 0, visibility: 'hidden' })),
@@ -143,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
143
142
  type: ViewChild,
144
143
  args: ['versionList', { static: true }]
145
144
  }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1tYW5hZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvdmVyc2lvbi1tYW5hZ2VyL3ZlcnNpb24tbWFuYWdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3ZlcnNpb24tbWFuYWdlci92ZXJzaW9uLW1hbmFnZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQWtCdEQsTUFB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QyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDOzRCQUN6RSxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLHVDQUF1QyxDQUFDLENBQUMsQ0FBQzs0QkFDaEgsVUFBVSxDQUFDLGVBQWUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDLENBQUM7eUJBQ3BILENBQUM7cUJBQ0wsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSTtpSEFLckMsSUFBSTtzQkFESCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFLekIsY0FBYztzQkFEYixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFLTixxQkFBcUI7c0JBRHBCLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBS04sa0JBQWtCO3NCQURqQixLQUFLO2dCQUtOLGFBQWE7c0JBRFosTUFBTTtnQkFLUCxXQUFXO3NCQURWLE1BQU07Z0JBS1AsWUFBWTtzQkFEWCxNQUFNO2dCQUtQLFdBQVc7c0JBRFYsTUFBTTtnQkFJUCxvQkFBb0I7c0JBRG5CLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgVmVyc2lvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuL3ZlcnNpb24tbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb250ZW50U2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9zZXJ2aWNlcy9jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZXNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3NlcnZpY2VzL25vZGVzLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbGVVcGxvYWRFcnJvckV2ZW50IH0gZnJvbSAnLi4vY29tbW9uL2V2ZW50cy9maWxlLmV2ZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBWZXJzaW9uQ29tcGFyaXNvbkNvbXBvbmVudCB9IGZyb20gJy4vdmVyc2lvbi1jb21wYXJpc29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWZXJzaW9uVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi92ZXJzaW9uLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi12ZXJzaW9uLW1hbmFnZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVmVyc2lvbkNvbXBhcmlzb25Db21wb25lbnQsIFZlcnNpb25VcGxvYWRDb21wb25lbnQsIE1hdEJ1dHRvbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBWZXJzaW9uTGlzdENvbXBvbmVudF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ZlcnNpb24tbWFuYWdlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdmVyc2lvbi1tYW5hZ2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCd1cGxvYWRUb2dnbGUnLCBbXG4gICAgICAgICAgICBzdGF0ZSgnb3BlbicsIHN0eWxlKHsgaGVpZ2h0OiAnMTc1cHgnLCBvcGFjaXR5OiAxLCB2aXNpYmlsaXR5OiAndmlzaWJsZScgfSkpLFxuICAgICAgICAgICAgc3RhdGUoJ2Nsb3NlJywgc3R5bGUoeyBoZWlnaHQ6ICcwJScsIG9wYWNpdHk6IDAsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ29wZW4gPT4gY2xvc2UnLCBbc3R5bGUoeyB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9KSwgYW5pbWF0ZSgnMC40cyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScpXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCdjbG9zZSA9PiBvcGVuJywgW3N0eWxlKHsgdmlzaWJpbGl0eTogJ3Zpc2libGUnIH0pLCBhbmltYXRlKCcwLjRzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpJyldKVxuICAgICAgICBdKVxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBWZXJzaW9uTWFuYWdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqIFRhcmdldCBub2RlIHRvIG1hbmFnZSB2ZXJzaW9uIGhpc3RvcnkuICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBub2RlOiBOb2RlO1xuXG4gICAgLyoqIE5ldyBmaWxlIGZvciB1cGRhdGluZyBjdXJyZW50IHZlcnNpb24uICovXG4gICAgQElucHV0KClcbiAgICBuZXdGaWxlVmVyc2lvbjogRmlsZTtcblxuICAgIC8qKiBUb2dnbGVzIHNob3dpbmcvaGlkaW5nIG9mIGNvbW1lbnRzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0NvbW1lbnRzID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGVzIHNob3dpbmcvaGlkaW5nIHRoZSB2ZXJzaW9uIGNvbXBhcmlzb24gY29tcG9uZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1ZlcnNpb25Db21wYXJpc29uID0gZmFsc2U7XG5cbiAgICAvKiogRW5hYmxlL2Rpc2FibGUgZG93bmxvYWRpbmcgYSB2ZXJzaW9uIG9mIHRoZSBjdXJyZW50IG5vZGUuICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd0Rvd25sb2FkID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGVzIHNob3dpbmcvaGlkaW5nIG9mIHZlcnNpb24gYWN0aW9ucy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dBY3Rpb25zID0gdHJ1ZTtcblxuICAgIC8qKiBFbmFibGUvZGlzYWJsZSB2aWV3aW5nIHZlcnNpb25zIG9mIHRoZSBjdXJyZW50IG5vZGUuICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd1ZpZXdWZXJzaW9ucyA9IHRydWU7XG5cbiAgICAvKiogRW5hYmxlL2Rpc2FibGUgZGVsZXRpb24gb2YgdmVyc2lvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dWZXJzaW9uRGVsZXRlID0gdHJ1ZTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYSBmaWxlIGlzIHVwbG9hZGVkIHN1Y2Nlc3NmdWxseS4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB1cGxvYWRTdWNjZXNzID0gbmV3IEV2ZW50RW1pdHRlcjxOb2RlPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHVwbG9hZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB1cGxvYWRFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVVwbG9hZEVycm9yRXZlbnQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGFuIGNhbmNlbGxpbmcgZHVyaW5nIHVwbG9hZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB1cGxvYWRDYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHZpZXdpbmcgYSB2ZXJzaW9uLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHZpZXdWZXJzaW9uID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAVmlld0NoaWxkKCd2ZXJzaW9uTGlzdCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgdmVyc2lvbkxpc3RDb21wb25lbnQ6IFZlcnNpb25MaXN0Q29tcG9uZW50O1xuXG4gICAgdXBsb2FkU3RhdGU6IHN0cmluZyA9ICdjbG9zZSc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50U2VydmljZSwgcHJpdmF0ZSBub2Rlc0FwaVNlcnZpY2U6IE5vZGVzQXBpU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5uZXdGaWxlVmVyc2lvbikge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVOZXdWZXJzaW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWZyZXNoKG5vZGU6IE5vZGUpIHtcbiAgICAgICAgdGhpcy5ub2Rlc0FwaVNlcnZpY2Uubm9kZVVwZGF0ZWQubmV4dChub2RlKTtcbiAgICAgICAgdGhpcy52ZXJzaW9uTGlzdENvbXBvbmVudC5sb2FkVmVyc2lvbkhpc3RvcnkoKTtcbiAgICAgICAgdGhpcy51cGxvYWRTdWNjZXNzLmVtaXQobm9kZSk7XG4gICAgICAgIHRoaXMudXBsb2FkU3RhdGUgPSAnY2xvc2UnO1xuICAgIH1cblxuICAgIG9uVXBsb2FkU3VjY2VzcyhldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMuc2hvd1ZlcnNpb25Db21wYXJpc29uID0gZmFsc2U7XG4gICAgICAgIHRoaXMubmV3RmlsZVZlcnNpb24gPSBudWxsO1xuICAgICAgICB0aGlzLm5vZGVzQXBpU2VydmljZS5ub2RlVXBkYXRlZC5uZXh0KGV2ZW50LnZhbHVlLmVudHJ5KTtcbiAgICAgICAgdGhpcy52ZXJzaW9uTGlzdENvbXBvbmVudC5sb2FkVmVyc2lvbkhpc3RvcnkoKTtcbiAgICAgICAgdGhpcy51cGxvYWRTdWNjZXNzLmVtaXQoZXZlbnQudmFsdWUuZW50cnkpO1xuICAgICAgICB0aGlzLnVwbG9hZFN0YXRlID0gJ2Nsb3NlJztcbiAgICB9XG5cbiAgICBvblVwbG9hZEVycm9yKGV2ZW50OiBGaWxlVXBsb2FkRXJyb3JFdmVudCkge1xuICAgICAgICB0aGlzLnVwbG9hZEVycm9yLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uVXBsb2FkQ2FuY2VsKCkge1xuICAgICAgICB0aGlzLnVwbG9hZFN0YXRlID0gJ2Nsb3NlJztcbiAgICAgICAgdGhpcy5zaG93VmVyc2lvbkNvbXBhcmlzb24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5uZXdGaWxlVmVyc2lvbiA9IG51bGw7XG4gICAgICAgIHRoaXMudXBsb2FkQ2FuY2VsLmVtaXQodHJ1ZSk7XG4gICAgfVxuXG4gICAgb25WaWV3VmVyc2lvbih2ZXJzaW9uSWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnZpZXdWZXJzaW9uLmVtaXQodmVyc2lvbklkKTtcbiAgICB9XG5cbiAgICB0b2dnbGVOZXdWZXJzaW9uKCkge1xuICAgICAgICB0aGlzLnVwbG9hZFN0YXRlID0gdGhpcy51cGxvYWRTdGF0ZSA9PT0gJ29wZW4nID8gJ2Nsb3NlJyA6ICdvcGVuJztcbiAgICB9XG5cbiAgICBjYW5VcGRhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnRTZXJ2aWNlLmhhc0FsbG93YWJsZU9wZXJhdGlvbnModGhpcy5ub2RlLCAndXBkYXRlJyk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFkZi1uZXctdmVyc2lvbi1jb250YWluZXJcIj5cbiAgICA8YWRmLXZlcnNpb24tY29tcGFyaXNvbiAqbmdJZj1cInNob3dWZXJzaW9uQ29tcGFyaXNvblwiIFtub2RlXT1cIm5vZGVcIiBbbmV3RmlsZVZlcnNpb25dPVwibmV3RmlsZVZlcnNpb25cIiAvPlxuICAgIDxkaXYgY2xhc3M9XCJhZGYtbmV3LXZlcnNpb24tdXBsb2FkZXItY29udGFpbmVyXCIgaWQ9XCJhZGYtbmV3LXZlcnNpb24tdXBsb2FkZXItY29udGFpbmVyXCIgW0B1cGxvYWRUb2dnbGVdPVwidXBsb2FkU3RhdGVcIj5cbiAgICAgICAgPHRhYmxlIGNsYXNzPVwiYWRmLXZlcnNpb24tdXBsb2FkXCIgKm5nSWY9XCJ1cGxvYWRTdGF0ZSAhPT0gJ2Nsb3NlJyAmJiAhdmVyc2lvbkxpc3QuaXNMb2FkaW5nXCI+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICA8YWRmLXZlcnNpb24tdXBsb2FkXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFkZi12ZXJzaW9uLXVwbG9hZC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25vZGVdPVwibm9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmV3RmlsZVZlcnNpb25dPVwibmV3RmlsZVZlcnNpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2N1cnJlbnRWZXJzaW9uXT1cInZlcnNpb25MaXN0Py5sYXRlc3RWZXJzaW9uPy5lbnRyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoc3VjY2Vzcyk9XCJvblVwbG9hZFN1Y2Nlc3MoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2FuY2VsKT1cIm9uVXBsb2FkQ2FuY2VsKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIm9uVXBsb2FkRXJyb3IoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGFibGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImFkZi12ZXJzaW9uLWxpc3QtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtdmVyc2lvbi1saXN0LXRhYmxlXCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYWRmLXNob3ctdmVyc2lvbi11cGxvYWQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLXZlcnNpb24tbWFuYWdlci11cGxvYWQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVOZXdWZXJzaW9uKClcIiBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ1cGxvYWRTdGF0ZSA9PT0nY2xvc2UnXCI+e3sgJ0FERl9WRVJTSU9OX0xJU1QuQUNUSU9OUy5VUExPQUQuQUREJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxhZGYtdmVyc2lvbi1saXN0XG4gICAgICAgICAgICAgICAgICAgICN2ZXJzaW9uTGlzdFxuICAgICAgICAgICAgICAgICAgICBbbm9kZV09XCJub2RlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93RG93bmxvYWRdPVwiYWxsb3dEb3dubG9hZFwiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93Q29tbWVudHNdPVwic2hvd0NvbW1lbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dBY3Rpb25zXT1cInNob3dBY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93Vmlld1ZlcnNpb25zXT1cImFsbG93Vmlld1ZlcnNpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93VmVyc2lvbkRlbGV0ZV09XCJhbGxvd1ZlcnNpb25EZWxldGVcIlxuICAgICAgICAgICAgICAgICAgICAoZGVsZXRlZCk9XCJyZWZyZXNoKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAocmVzdG9yZWQpPVwicmVmcmVzaCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKHZpZXdWZXJzaW9uKT1cIm9uVmlld1ZlcnNpb24oJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1tYW5hZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvdmVyc2lvbi1tYW5hZ2VyL3ZlcnNpb24tbWFuYWdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3ZlcnNpb24tbWFuYWdlci92ZXJzaW9uLW1hbmFnZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBa0JwRCxNQUFN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LE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7NEJBQ3pFLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsdUNBQXVDLENBQUMsQ0FBQyxDQUFDOzRCQUNoSCxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLHVDQUF1QyxDQUFDLENBQUMsQ0FBQzt5QkFDcEgsQ0FBQztxQkFDTCxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJO2lIQUtyQyxJQUFJO3NCQURILEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUt6QixjQUFjO3NCQURiLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQUtOLHFCQUFxQjtzQkFEcEIsS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBS04sV0FBVztzQkFEVixLQUFLO2dCQUtOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFLTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixNQUFNO2dCQUtQLFdBQVc7c0JBRFYsTUFBTTtnQkFLUCxZQUFZO3NCQURYLE1BQU07Z0JBS1AsV0FBVztzQkFEVixNQUFNO2dCQUlQLG9CQUFvQjtzQkFEbkIsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBWZXJzaW9uTGlzdENvbXBvbmVudCB9IGZyb20gJy4vdmVyc2lvbi1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3NlcnZpY2VzL2NvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBOb2Rlc0FwaVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vc2VydmljZXMvbm9kZXMtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZEVycm9yRXZlbnQgfSBmcm9tICcuLi9jb21tb24vZXZlbnRzL2ZpbGUuZXZlbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFZlcnNpb25Db21wYXJpc29uQ29tcG9uZW50IH0gZnJvbSAnLi92ZXJzaW9uLWNvbXBhcmlzb24uY29tcG9uZW50JztcbmltcG9ydCB7IFZlcnNpb25VcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL3ZlcnNpb24tdXBsb2FkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi12ZXJzaW9uLW1hbmFnZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVmVyc2lvbkNvbXBhcmlzb25Db21wb25lbnQsIFZlcnNpb25VcGxvYWRDb21wb25lbnQsIE1hdEJ1dHRvbk1vZHVsZSwgVHJhbnNsYXRlUGlwZSwgVmVyc2lvbkxpc3RDb21wb25lbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi92ZXJzaW9uLW1hbmFnZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3ZlcnNpb24tbWFuYWdlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcigndXBsb2FkVG9nZ2xlJywgW1xuICAgICAgICAgICAgc3RhdGUoJ29wZW4nLCBzdHlsZSh7IGhlaWdodDogJzE3NXB4Jywgb3BhY2l0eTogMSwgdmlzaWJpbGl0eTogJ3Zpc2libGUnIH0pKSxcbiAgICAgICAgICAgIHN0YXRlKCdjbG9zZScsIHN0eWxlKHsgaGVpZ2h0OiAnMCUnLCBvcGFjaXR5OiAwLCB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9KSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCdvcGVuID0+IGNsb3NlJywgW3N0eWxlKHsgdmlzaWJpbGl0eTogJ2hpZGRlbicgfSksIGFuaW1hdGUoJzAuNHMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSknKV0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignY2xvc2UgPT4gb3BlbicsIFtzdHlsZSh7IHZpc2liaWxpdHk6ICd2aXNpYmxlJyB9KSwgYW5pbWF0ZSgnMC40cyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScpXSlcbiAgICAgICAgXSlcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgVmVyc2lvbk1hbmFnZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKiBUYXJnZXQgbm9kZSB0byBtYW5hZ2UgdmVyc2lvbiBoaXN0b3J5LiAqL1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgbm9kZTogTm9kZTtcblxuICAgIC8qKiBOZXcgZmlsZSBmb3IgdXBkYXRpbmcgY3VycmVudCB2ZXJzaW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmV3RmlsZVZlcnNpb246IEZpbGU7XG5cbiAgICAvKiogVG9nZ2xlcyBzaG93aW5nL2hpZGluZyBvZiBjb21tZW50cy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dDb21tZW50cyA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlcyBzaG93aW5nL2hpZGluZyB0aGUgdmVyc2lvbiBjb21wYXJpc29uIGNvbXBvbmVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dWZXJzaW9uQ29tcGFyaXNvbiA9IGZhbHNlO1xuXG4gICAgLyoqIEVuYWJsZS9kaXNhYmxlIGRvd25sb2FkaW5nIGEgdmVyc2lvbiBvZiB0aGUgY3VycmVudCBub2RlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dEb3dubG9hZCA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlcyBzaG93aW5nL2hpZGluZyBvZiB2ZXJzaW9uIGFjdGlvbnMuICovXG4gICAgQElucHV0KClcbiAgICBzaG93QWN0aW9ucyA9IHRydWU7XG5cbiAgICAvKiogRW5hYmxlL2Rpc2FibGUgdmlld2luZyB2ZXJzaW9ucyBvZiB0aGUgY3VycmVudCBub2RlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dWaWV3VmVyc2lvbnMgPSB0cnVlO1xuXG4gICAgLyoqIEVuYWJsZS9kaXNhYmxlIGRlbGV0aW9uIG9mIHZlcnNpb24gKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93VmVyc2lvbkRlbGV0ZSA9IHRydWU7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGEgZmlsZSBpcyB1cGxvYWRlZCBzdWNjZXNzZnVsbHkuICovXG4gICAgQE91dHB1dCgpXG4gICAgdXBsb2FkU3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXI8Tm9kZT4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB1cGxvYWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgdXBsb2FkRXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVVcGxvYWRFcnJvckV2ZW50PigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhbiBjYW5jZWxsaW5nIGR1cmluZyB1cGxvYWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgdXBsb2FkQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB2aWV3aW5nIGEgdmVyc2lvbi4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB2aWV3VmVyc2lvbiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQFZpZXdDaGlsZCgndmVyc2lvbkxpc3QnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHZlcnNpb25MaXN0Q29tcG9uZW50OiBWZXJzaW9uTGlzdENvbXBvbmVudDtcblxuICAgIHVwbG9hZFN0YXRlOiBzdHJpbmcgPSAnY2xvc2UnO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250ZW50U2VydmljZTogQ29udGVudFNlcnZpY2UsIHByaXZhdGUgbm9kZXNBcGlTZXJ2aWNlOiBOb2Rlc0FwaVNlcnZpY2UpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMubmV3RmlsZVZlcnNpb24pIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlTmV3VmVyc2lvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVmcmVzaChub2RlOiBOb2RlKSB7XG4gICAgICAgIHRoaXMubm9kZXNBcGlTZXJ2aWNlLm5vZGVVcGRhdGVkLm5leHQobm9kZSk7XG4gICAgICAgIHRoaXMudmVyc2lvbkxpc3RDb21wb25lbnQubG9hZFZlcnNpb25IaXN0b3J5KCk7XG4gICAgICAgIHRoaXMudXBsb2FkU3VjY2Vzcy5lbWl0KG5vZGUpO1xuICAgICAgICB0aGlzLnVwbG9hZFN0YXRlID0gJ2Nsb3NlJztcbiAgICB9XG5cbiAgICBvblVwbG9hZFN1Y2Nlc3MoZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLnNob3dWZXJzaW9uQ29tcGFyaXNvbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLm5ld0ZpbGVWZXJzaW9uID0gbnVsbDtcbiAgICAgICAgdGhpcy5ub2Rlc0FwaVNlcnZpY2Uubm9kZVVwZGF0ZWQubmV4dChldmVudC52YWx1ZS5lbnRyeSk7XG4gICAgICAgIHRoaXMudmVyc2lvbkxpc3RDb21wb25lbnQubG9hZFZlcnNpb25IaXN0b3J5KCk7XG4gICAgICAgIHRoaXMudXBsb2FkU3VjY2Vzcy5lbWl0KGV2ZW50LnZhbHVlLmVudHJ5KTtcbiAgICAgICAgdGhpcy51cGxvYWRTdGF0ZSA9ICdjbG9zZSc7XG4gICAgfVxuXG4gICAgb25VcGxvYWRFcnJvcihldmVudDogRmlsZVVwbG9hZEVycm9yRXZlbnQpIHtcbiAgICAgICAgdGhpcy51cGxvYWRFcnJvci5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvblVwbG9hZENhbmNlbCgpIHtcbiAgICAgICAgdGhpcy51cGxvYWRTdGF0ZSA9ICdjbG9zZSc7XG4gICAgICAgIHRoaXMuc2hvd1ZlcnNpb25Db21wYXJpc29uID0gZmFsc2U7XG4gICAgICAgIHRoaXMubmV3RmlsZVZlcnNpb24gPSBudWxsO1xuICAgICAgICB0aGlzLnVwbG9hZENhbmNlbC5lbWl0KHRydWUpO1xuICAgIH1cblxuICAgIG9uVmlld1ZlcnNpb24odmVyc2lvbklkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy52aWV3VmVyc2lvbi5lbWl0KHZlcnNpb25JZCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlTmV3VmVyc2lvbigpIHtcbiAgICAgICAgdGhpcy51cGxvYWRTdGF0ZSA9IHRoaXMudXBsb2FkU3RhdGUgPT09ICdvcGVuJyA/ICdjbG9zZScgOiAnb3Blbic7XG4gICAgfVxuXG4gICAgY2FuVXBkYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50U2VydmljZS5oYXNBbGxvd2FibGVPcGVyYXRpb25zKHRoaXMubm9kZSwgJ3VwZGF0ZScpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGYtbmV3LXZlcnNpb24tY29udGFpbmVyXCI+XG4gICAgPGFkZi12ZXJzaW9uLWNvbXBhcmlzb24gKm5nSWY9XCJzaG93VmVyc2lvbkNvbXBhcmlzb25cIiBbbm9kZV09XCJub2RlXCIgW25ld0ZpbGVWZXJzaW9uXT1cIm5ld0ZpbGVWZXJzaW9uXCIgLz5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLW5ldy12ZXJzaW9uLXVwbG9hZGVyLWNvbnRhaW5lclwiIGlkPVwiYWRmLW5ldy12ZXJzaW9uLXVwbG9hZGVyLWNvbnRhaW5lclwiIFtAdXBsb2FkVG9nZ2xlXT1cInVwbG9hZFN0YXRlXCI+XG4gICAgICAgIDx0YWJsZSBjbGFzcz1cImFkZi12ZXJzaW9uLXVwbG9hZFwiICpuZ0lmPVwidXBsb2FkU3RhdGUgIT09ICdjbG9zZScgJiYgIXZlcnNpb25MaXN0LmlzTG9hZGluZ1wiPlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgPGFkZi12ZXJzaW9uLXVwbG9hZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhZGYtdmVyc2lvbi11cGxvYWQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtub2RlXT1cIm5vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25ld0ZpbGVWZXJzaW9uXT1cIm5ld0ZpbGVWZXJzaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXJyZW50VmVyc2lvbl09XCJ2ZXJzaW9uTGlzdD8ubGF0ZXN0VmVyc2lvbj8uZW50cnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHN1Y2Nlc3MpPVwib25VcGxvYWRTdWNjZXNzKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNhbmNlbCk9XCJvblVwbG9hZENhbmNlbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJvblVwbG9hZEVycm9yKCRldmVudClcIiAvPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RhYmxlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJhZGYtdmVyc2lvbi1saXN0LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXZlcnNpb24tbGlzdC10YWJsZVwiPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFkZi1zaG93LXZlcnNpb24tdXBsb2FkLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi12ZXJzaW9uLW1hbmFnZXItdXBsb2FkLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlTmV3VmVyc2lvbigpXCIgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidXBsb2FkU3RhdGUgPT09J2Nsb3NlJ1wiPnt7ICdBREZfVkVSU0lPTl9MSVNULkFDVElPTlMuVVBMT0FELkFERCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8YWRmLXZlcnNpb24tbGlzdFxuICAgICAgICAgICAgICAgICAgICAjdmVyc2lvbkxpc3RcbiAgICAgICAgICAgICAgICAgICAgW25vZGVdPVwibm9kZVwiXG4gICAgICAgICAgICAgICAgICAgIFthbGxvd0Rvd25sb2FkXT1cImFsbG93RG93bmxvYWRcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd0NvbW1lbnRzXT1cInNob3dDb21tZW50c1wiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93QWN0aW9uc109XCJzaG93QWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIFthbGxvd1ZpZXdWZXJzaW9uc109XCJhbGxvd1ZpZXdWZXJzaW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIFthbGxvd1ZlcnNpb25EZWxldGVdPVwiYWxsb3dWZXJzaW9uRGVsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgKGRlbGV0ZWQpPVwicmVmcmVzaCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3RvcmVkKT1cInJlZnJlc2goJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICh2aWV3VmVyc2lvbik9XCJvblZpZXdWZXJzaW9uKCRldmVudClcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -21,7 +21,7 @@ import { UploadService } from '../common/services/upload.service';
21
21
  import { CommonModule } from '@angular/common';
22
22
  import { MatRadioModule } from '@angular/material/radio';
23
23
  import { FormsModule } from '@angular/forms';
24
- import { TranslateModule } from '@ngx-translate/core';
24
+ import { TranslatePipe } from '@ngx-translate/core';
25
25
  import { MatFormFieldModule } from '@angular/material/form-field';
26
26
  import { MatInputModule } from '@angular/material/input';
27
27
  import { MatButtonModule } from '@angular/material/button';
@@ -33,10 +33,9 @@ import * as i2 from "../common/services/upload.service";
33
33
  import * as i3 from "@angular/common";
34
34
  import * as i4 from "@angular/material/radio";
35
35
  import * as i5 from "@angular/forms";
36
- import * as i6 from "@ngx-translate/core";
37
- import * as i7 from "@angular/material/form-field";
38
- import * as i8 from "@angular/material/input";
39
- import * as i9 from "@angular/material/button";
36
+ import * as i6 from "@angular/material/form-field";
37
+ import * as i7 from "@angular/material/input";
38
+ import * as i8 from "@angular/material/button";
40
39
  export class VersionUploadComponent {
41
40
  /** Current version for a target node */
42
41
  set currentVersion(version) {
@@ -114,7 +113,7 @@ export class VersionUploadComponent {
114
113
  return { minor, major };
115
114
  }
116
115
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VersionUploadComponent, deps: [{ token: i1.ContentService }, { token: i2.UploadService }], target: i0.ɵɵFactoryTarget.Component }); }
117
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: VersionUploadComponent, isStandalone: true, selector: "adf-version-upload", inputs: { node: "node", newFileVersion: "newFileVersion", showUploadButton: "showUploadButton", showCancelButton: "showCancelButton", currentVersion: "currentVersion" }, outputs: { success: "success", error: "error", cancel: "cancel", versionChanged: "versionChanged", commentChanged: "commentChanged", uploadStarted: "uploadStarted" }, host: { classAttribute: "adf-version-upload" }, ngImport: i0, template: "<div class=\"adf-new-version-max-width\">\n <mat-radio-group class=\"adf-new-version-radio-group\" [(ngModel)]=\"semanticVersion\" (change)=\"onVersionChange()\">\n <mat-radio-button class=\"adf-new-version-radio-button\" id=\"adf-new-version-minor\" [value]=\"'minor'\">\n {{ 'ADF_VERSION_LIST.ACTIONS.UPLOAD.MINOR' | translate: { version: minorVersion } }}\n </mat-radio-button>\n <mat-radio-button class=\"adf-new-version-radio-button\" id=\"adf-new-version-major\" [value]=\"'major'\">\n {{ 'ADF_VERSION_LIST.ACTIONS.UPLOAD.MAJOR' | translate: { version: majorVersion } }}\n </mat-radio-button>\n </mat-radio-group>\n <mat-form-field class=\"adf-new-version-max-width\" subscriptSizing=\"dynamic\">\n <mat-label>{{'ADF_VERSION_LIST.ACTIONS.UPLOAD.COMMENT' | translate}}</mat-label>\n <textarea matInput\n [(ngModel)]=\"comment\"\n class=\"adf-new-version-text-area\" id=\"adf-new-version-text-area\"\n (change)=\"onCommentChange()\"></textarea>\n </mat-form-field>\n</div>\n<div class=\"adf-version-upload-buttons\">\n <adf-upload-version-button *ngIf=\"showUploadButton\"\n data-automation-id=\"adf-new-version-file-upload\"\n staticTitle=\"{{ 'ADF_VERSION_LIST.ACTIONS.UPLOAD.TITLE' | translate }}\"\n [node]=\"node\"\n [disabled]=\"!canUpload()\"\n [rootFolderId]=\"node.parentId\"\n tooltip=\"{{ 'ADF_VERSION_LIST.ACTIONS.UPLOAD.TOOLTIP' | translate }}\"\n [comment]=\"comment\"\n [versioning]=\"true\"\n [file]=\"newFileVersion\"\n [majorVersion]=\"isMajorVersion()\"\n (success)=\"onSuccess($event)\"\n (error)=\"onError($event)\" />\n <button mat-raised-button (click)=\"cancelUpload()\" id=\"adf-new-version-cancel\" *ngIf=\"showCancelButton\" >{{\n 'ADF_VERSION_LIST.ACTIONS.UPLOAD.CANCEL'| translate }}\n </button>\n</div>\n", styles: [".adf-new-version-radio-group{display:inline-flex;flex-direction:column}.adf-new-version-radio-button{margin:2px 5px 5px}.adf-version-upload-buttons{padding-top:18px;padding-bottom:5px;display:flex;float:right;justify-content:space-between;width:100%}.adf-version-upload .adf-new-version-max-width{padding-top:2px;width:100%;float:right}.adf-version-upload .adf-new-version-max-width .mdc-floating-label{padding-bottom:10px}.adf-version-upload .adf-new-version-max-width .mat-mdc-form-field-infix{padding-top:12px;padding-bottom:0}.adf-version-upload .adf-new-version-max-width .adf-new-version-text-area{resize:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i9.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: UploadVersionButtonComponent, selector: "adf-upload-version-button", inputs: ["node"] }], encapsulation: i0.ViewEncapsulation.None }); }
116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: VersionUploadComponent, isStandalone: true, selector: "adf-version-upload", inputs: { node: "node", newFileVersion: "newFileVersion", showUploadButton: "showUploadButton", showCancelButton: "showCancelButton", currentVersion: "currentVersion" }, outputs: { success: "success", error: "error", cancel: "cancel", versionChanged: "versionChanged", commentChanged: "commentChanged", uploadStarted: "uploadStarted" }, host: { classAttribute: "adf-version-upload" }, ngImport: i0, template: "<div class=\"adf-new-version-max-width\">\n <mat-radio-group class=\"adf-new-version-radio-group\" [(ngModel)]=\"semanticVersion\" (change)=\"onVersionChange()\">\n <mat-radio-button class=\"adf-new-version-radio-button\" id=\"adf-new-version-minor\" [value]=\"'minor'\">\n {{ 'ADF_VERSION_LIST.ACTIONS.UPLOAD.MINOR' | translate: { version: minorVersion } }}\n </mat-radio-button>\n <mat-radio-button class=\"adf-new-version-radio-button\" id=\"adf-new-version-major\" [value]=\"'major'\">\n {{ 'ADF_VERSION_LIST.ACTIONS.UPLOAD.MAJOR' | translate: { version: majorVersion } }}\n </mat-radio-button>\n </mat-radio-group>\n <mat-form-field class=\"adf-new-version-max-width\" subscriptSizing=\"dynamic\">\n <mat-label>{{'ADF_VERSION_LIST.ACTIONS.UPLOAD.COMMENT' | translate}}</mat-label>\n <textarea matInput\n [(ngModel)]=\"comment\"\n class=\"adf-new-version-text-area\" id=\"adf-new-version-text-area\"\n (change)=\"onCommentChange()\"></textarea>\n </mat-form-field>\n</div>\n<div class=\"adf-version-upload-buttons\">\n <adf-upload-version-button *ngIf=\"showUploadButton\"\n data-automation-id=\"adf-new-version-file-upload\"\n staticTitle=\"{{ 'ADF_VERSION_LIST.ACTIONS.UPLOAD.TITLE' | translate }}\"\n [node]=\"node\"\n [disabled]=\"!canUpload()\"\n [rootFolderId]=\"node.parentId\"\n tooltip=\"{{ 'ADF_VERSION_LIST.ACTIONS.UPLOAD.TOOLTIP' | translate }}\"\n [comment]=\"comment\"\n [versioning]=\"true\"\n [file]=\"newFileVersion\"\n [majorVersion]=\"isMajorVersion()\"\n (success)=\"onSuccess($event)\"\n (error)=\"onError($event)\" />\n <button mat-raised-button (click)=\"cancelUpload()\" id=\"adf-new-version-cancel\" *ngIf=\"showCancelButton\" >{{\n 'ADF_VERSION_LIST.ACTIONS.UPLOAD.CANCEL'| translate }}\n </button>\n</div>\n", styles: [".adf-new-version-radio-group{display:inline-flex;flex-direction:column}.adf-new-version-radio-button{margin:2px 5px 5px}.adf-version-upload-buttons{padding-top:18px;padding-bottom:5px;display:flex;float:right;justify-content:space-between;width:100%}.adf-version-upload .adf-new-version-max-width{padding-top:2px;width:100%;float:right}.adf-version-upload .adf-new-version-max-width .mdc-floating-label{padding-bottom:10px}.adf-version-upload .adf-new-version-max-width .mat-mdc-form-field-infix{padding-top:12px;padding-bottom:0}.adf-version-upload .adf-new-version-max-width .adf-new-version-text-area{resize:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: UploadVersionButtonComponent, selector: "adf-upload-version-button", inputs: ["node"] }], encapsulation: i0.ViewEncapsulation.None }); }
118
117
  }
119
118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VersionUploadComponent, decorators: [{
120
119
  type: Component,
@@ -122,7 +121,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
122
121
  CommonModule,
123
122
  MatRadioModule,
124
123
  FormsModule,
125
- TranslateModule,
124
+ TranslatePipe,
126
125
  MatFormFieldModule,
127
126
  MatInputModule,
128
127
  MatButtonModule,
@@ -152,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
152
151
  }], uploadStarted: [{
153
152
  type: Output
154
153
  }] } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi92ZXJzaW9uLW1hbmFnZXIvdmVyc2lvbi11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi92ZXJzaW9uLW1hbmFnZXIvdmVyc2lvbi11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxXQUFXLENBQUM7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d0JBQ2QsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLDRCQUE0QjtxQkFDL0IsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRTsrR0FZckMsSUFBSTtzQkFESCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFLekIsY0FBYztzQkFEYixLQUFLO2dCQUtOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUtOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUtGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBVU4sT0FBTztzQkFETixNQUFNO2dCQUtQLEtBQUs7c0JBREosTUFBTTtnQkFLUCxNQUFNO3NCQURMLE1BQU07Z0JBS1AsY0FBYztzQkFEYixNQUFNO2dCQUtQLGNBQWM7c0JBRGIsTUFBTTtnQkFLUCxhQUFhO3NCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRGVzdHJveVJlZiwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vZGUsIFZlcnNpb24gfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3NlcnZpY2VzL2NvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3NlcnZpY2VzL3VwbG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbGVVcGxvYWRFcnJvckV2ZW50LCBGaWxlVXBsb2FkRXZlbnQgfSBmcm9tICcuLi9jb21tb24vZXZlbnRzL2ZpbGUuZXZlbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgVXBsb2FkVmVyc2lvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL3VwbG9hZCc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLXZlcnNpb24tdXBsb2FkJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRSYWRpb01vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBVcGxvYWRWZXJzaW9uQnV0dG9uQ29tcG9uZW50XG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdmVyc2lvbi11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3ZlcnNpb24tdXBsb2FkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7IGNsYXNzOiAnYWRmLXZlcnNpb24tdXBsb2FkJyB9XG59KVxuZXhwb3J0IGNsYXNzIFZlcnNpb25VcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHNlbWFudGljVmVyc2lvbjogc3RyaW5nID0gJ21pbm9yJztcbiAgICBjb21tZW50OiBzdHJpbmc7XG4gICAgdXBsb2FkVmVyc2lvbjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgbWFqb3JWZXJzaW9uID0gJzIuMCc7XG4gICAgbWlub3JWZXJzaW9uID0gJzEuMSc7XG5cbiAgICAvKiogVGhlIHRhcmdldCBub2RlLiAqL1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgbm9kZTogTm9kZTtcblxuICAgIC8qKiBOZXcgZmlsZSBmb3IgdXBkYXRpbmcgY3VycmVudCB2ZXJzaW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmV3RmlsZVZlcnNpb246IEZpbGU7XG5cbiAgICAvKiogVG9nZ2xlcyBzaG93aW5nL2hpZGluZyB1cGxvYWQgYnV0dG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1VwbG9hZEJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlcyBzaG93aW5nL2hpZGluZyBvZiBjYW5jZWwgYnV0dG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0NhbmNlbEJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogQ3VycmVudCB2ZXJzaW9uIGZvciBhIHRhcmdldCBub2RlICovXG4gICAgQElucHV0KClcbiAgICBzZXQgY3VycmVudFZlcnNpb24odmVyc2lvbjogVmVyc2lvbikge1xuICAgICAgICBpZiAodmVyc2lvbikge1xuICAgICAgICAgICAgdGhpcy5taW5vclZlcnNpb24gPSB0aGlzLmdldE5leHRNaW5vclZlcnNpb24odmVyc2lvbi5pZCk7XG4gICAgICAgICAgICB0aGlzLm1ham9yVmVyc2lvbiA9IHRoaXMuZ2V0TmV4dE1ham9yVmVyc2lvbih2ZXJzaW9uLmlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGZpbGUgaXMgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5LiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGFuIGVycm9yIG9jY3Vycy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVVwbG9hZEVycm9yRXZlbnQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGFuIGNhbmNlbGxpbmcgZHVyaW5nIHVwbG9hZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB2ZXJzaW9uIGlzIGNoYW5nZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgdmVyc2lvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBjb21tZW50IGlzIGNoYW5nZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgY29tbWVudENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHVwbG9hZCBzdGFydHMgKi9cbiAgICBAT3V0cHV0KClcbiAgICB1cGxvYWRTdGFydGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlVXBsb2FkRXZlbnQ+KCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50U2VydmljZSwgcHJpdmF0ZSB1cGxvYWRTZXJ2aWNlOiBVcGxvYWRTZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudXBsb2FkU2VydmljZS5maWxlVXBsb2FkU3RhcnRpbmcucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKChldmVudDogRmlsZVVwbG9hZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkU3RhcnRlZC5lbWl0KGV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2FuVXBsb2FkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50U2VydmljZS5oYXNBbGxvd2FibGVPcGVyYXRpb25zKHRoaXMubm9kZSwgJ3VwZGF0ZScpICYmICF0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIGlzTWFqb3JWZXJzaW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZW1hbnRpY1ZlcnNpb24gIT09ICdtaW5vcic7XG4gICAgfVxuXG4gICAgY2FuY2VsVXBsb2FkKCkge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvblZlcnNpb25DaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMudmVyc2lvbkNoYW5nZWQuZW1pdCh0aGlzLmlzTWFqb3JWZXJzaW9uKCkpO1xuICAgIH1cblxuICAgIG9uQ29tbWVudENoYW5nZSgpIHtcbiAgICAgICAgdGhpcy5jb21tZW50Q2hhbmdlZC5lbWl0KHRoaXMuY29tbWVudCk7XG4gICAgfVxuXG4gICAgb25TdWNjZXNzKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uRXJyb3IoZXZlbnQ6IEZpbGVVcGxvYWRFcnJvckV2ZW50KSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lcnJvci5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBnZXROZXh0TWlub3JWZXJzaW9uKHZlcnNpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHsgbWFqb3IsIG1pbm9yIH0gPSB0aGlzLmdldFBhcnNlZFZlcnNpb24odmVyc2lvbik7XG4gICAgICAgIHJldHVybiBgJHttYWpvcn0uJHttaW5vciArIDF9YDtcbiAgICB9XG5cbiAgICBnZXROZXh0TWFqb3JWZXJzaW9uKHZlcnNpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHsgbWFqb3IgfSA9IHRoaXMuZ2V0UGFyc2VkVmVyc2lvbih2ZXJzaW9uKTtcbiAgICAgICAgcmV0dXJuIGAke21ham9yICsgMX0uMGA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQYXJzZWRWZXJzaW9uKHZlcnNpb246IHN0cmluZykge1xuICAgICAgICBjb25zdCBtaW5vciA9IHZlcnNpb24uaW5kZXhPZignLicpICE9PSAtMSA/IE51bWJlcih2ZXJzaW9uLnN1YnN0cih2ZXJzaW9uLmluZGV4T2YoJy4nKSArIDEpKSA6IDA7XG4gICAgICAgIGNvbnN0IG1ham9yID0gcGFyc2VJbnQodmVyc2lvbiwgMTApO1xuICAgICAgICByZXR1cm4geyBtaW5vciwgbWFqb3IgfTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWRmLW5ldy12ZXJzaW9uLW1heC13aWR0aFwiPlxuICAgIDxtYXQtcmFkaW8tZ3JvdXAgY2xhc3M9XCJhZGYtbmV3LXZlcnNpb24tcmFkaW8tZ3JvdXBcIiBbKG5nTW9kZWwpXT1cInNlbWFudGljVmVyc2lvblwiIChjaGFuZ2UpPVwib25WZXJzaW9uQ2hhbmdlKClcIj5cbiAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJhZGYtbmV3LXZlcnNpb24tcmFkaW8tYnV0dG9uXCIgaWQ9XCJhZGYtbmV3LXZlcnNpb24tbWlub3JcIiBbdmFsdWVdPVwiJ21pbm9yJ1wiPlxuICAgICAgICAgICAge3sgJ0FERl9WRVJTSU9OX0xJU1QuQUNUSU9OUy5VUExPQUQuTUlOT1InIHwgdHJhbnNsYXRlOiB7IHZlcnNpb246IG1pbm9yVmVyc2lvbiB9IH19XG4gICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJhZGYtbmV3LXZlcnNpb24tcmFkaW8tYnV0dG9uXCIgaWQ9XCJhZGYtbmV3LXZlcnNpb24tbWFqb3JcIiBbdmFsdWVdPVwiJ21ham9yJ1wiPlxuICAgICAgICAgICAge3sgJ0FERl9WRVJTSU9OX0xJU1QuQUNUSU9OUy5VUExPQUQuTUFKT1InIHwgdHJhbnNsYXRlOiB7IHZlcnNpb246IG1ham9yVmVyc2lvbiB9IH19XG4gICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICA8L21hdC1yYWRpby1ncm91cD5cbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhZGYtbmV3LXZlcnNpb24tbWF4LXdpZHRoXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgICA8bWF0LWxhYmVsPnt7J0FERl9WRVJTSU9OX0xJU1QuQUNUSU9OUy5VUExPQUQuQ09NTUVOVCcgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8dGV4dGFyZWEgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29tbWVudFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1uZXctdmVyc2lvbi10ZXh0LWFyZWFcIiBpZD1cImFkZi1uZXctdmVyc2lvbi10ZXh0LWFyZWFcIlxuICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNvbW1lbnRDaGFuZ2UoKVwiPjwvdGV4dGFyZWE+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImFkZi12ZXJzaW9uLXVwbG9hZC1idXR0b25zXCI+XG4gICAgPGFkZi11cGxvYWQtdmVyc2lvbi1idXR0b24gKm5nSWY9XCJzaG93VXBsb2FkQnV0dG9uXCJcbiAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLW5ldy12ZXJzaW9uLWZpbGUtdXBsb2FkXCJcbiAgICAgICAgc3RhdGljVGl0bGU9XCJ7eyAnQURGX1ZFUlNJT05fTElTVC5BQ1RJT05TLlVQTE9BRC5USVRMRScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBbbm9kZV09XCJub2RlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5VcGxvYWQoKVwiXG4gICAgICAgIFtyb290Rm9sZGVySWRdPVwibm9kZS5wYXJlbnRJZFwiXG4gICAgICAgIHRvb2x0aXA9XCJ7eyAnQURGX1ZFUlNJT05fTElTVC5BQ1RJT05TLlVQTE9BRC5UT09MVElQJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIFtjb21tZW50XT1cImNvbW1lbnRcIlxuICAgICAgICBbdmVyc2lvbmluZ109XCJ0cnVlXCJcbiAgICAgICAgW2ZpbGVdPVwibmV3RmlsZVZlcnNpb25cIlxuICAgICAgICBbbWFqb3JWZXJzaW9uXT1cImlzTWFqb3JWZXJzaW9uKClcIlxuICAgICAgICAoc3VjY2Vzcyk9XCJvblN1Y2Nlc3MoJGV2ZW50KVwiXG4gICAgICAgIChlcnJvcik9XCJvbkVycm9yKCRldmVudClcIiAvPlxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImNhbmNlbFVwbG9hZCgpXCIgaWQ9XCJhZGYtbmV3LXZlcnNpb24tY2FuY2VsXCIgICpuZ0lmPVwic2hvd0NhbmNlbEJ1dHRvblwiID57e1xuICAgICAgICAnQURGX1ZFUlNJT05fTElTVC5BQ1RJT05TLlVQTE9BRC5DQU5DRUwnfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi92ZXJzaW9uLW1hbmFnZXIvdmVyc2lvbi11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi92ZXJzaW9uLW1hbmFnZXIvdmVyc2lvbi11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxXQUFXLENBQUM7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QkFDZCxXQUFXO3dCQUNYLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsNEJBQTRCO3FCQUMvQixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFOytHQVlyQyxJQUFJO3NCQURILEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUt6QixjQUFjO3NCQURiLEtBQUs7Z0JBS04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBS04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBS0YsY0FBYztzQkFEakIsS0FBSztnQkFVTixPQUFPO3NCQUROLE1BQU07Z0JBS1AsS0FBSztzQkFESixNQUFNO2dCQUtQLE1BQU07c0JBREwsTUFBTTtnQkFLUCxjQUFjO3NCQURiLE1BQU07Z0JBS1AsY0FBYztzQkFEYixNQUFNO2dCQUtQLGFBQWE7c0JBRFosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9kZSwgVmVyc2lvbiB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgQ29udGVudFNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vc2VydmljZXMvY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFVwbG9hZFNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vc2VydmljZXMvdXBsb2FkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZEVycm9yRXZlbnQsIEZpbGVVcGxvYWRFdmVudCB9IGZyb20gJy4uL2NvbW1vbi9ldmVudHMvZmlsZS5ldmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgVXBsb2FkVmVyc2lvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL3VwbG9hZCc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLXZlcnNpb24tdXBsb2FkJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRSYWRpb01vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgVXBsb2FkVmVyc2lvbkJ1dHRvbkNvbXBvbmVudFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ZlcnNpb24tdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi92ZXJzaW9uLXVwbG9hZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi12ZXJzaW9uLXVwbG9hZCcgfVxufSlcbmV4cG9ydCBjbGFzcyBWZXJzaW9uVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBzZW1hbnRpY1ZlcnNpb246IHN0cmluZyA9ICdtaW5vcic7XG4gICAgY29tbWVudDogc3RyaW5nO1xuICAgIHVwbG9hZFZlcnNpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIG1ham9yVmVyc2lvbiA9ICcyLjAnO1xuICAgIG1pbm9yVmVyc2lvbiA9ICcxLjEnO1xuXG4gICAgLyoqIFRoZSB0YXJnZXQgbm9kZS4gKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIG5vZGU6IE5vZGU7XG5cbiAgICAvKiogTmV3IGZpbGUgZm9yIHVwZGF0aW5nIGN1cnJlbnQgdmVyc2lvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIG5ld0ZpbGVWZXJzaW9uOiBGaWxlO1xuXG4gICAgLyoqIFRvZ2dsZXMgc2hvd2luZy9oaWRpbmcgdXBsb2FkIGJ1dHRvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dVcGxvYWRCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZXMgc2hvd2luZy9oaWRpbmcgb2YgY2FuY2VsIGJ1dHRvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dDYW5jZWxCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIEN1cnJlbnQgdmVyc2lvbiBmb3IgYSB0YXJnZXQgbm9kZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGN1cnJlbnRWZXJzaW9uKHZlcnNpb246IFZlcnNpb24pIHtcbiAgICAgICAgaWYgKHZlcnNpb24pIHtcbiAgICAgICAgICAgIHRoaXMubWlub3JWZXJzaW9uID0gdGhpcy5nZXROZXh0TWlub3JWZXJzaW9uKHZlcnNpb24uaWQpO1xuICAgICAgICAgICAgdGhpcy5tYWpvclZlcnNpb24gPSB0aGlzLmdldE5leHRNYWpvclZlcnNpb24odmVyc2lvbi5pZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBmaWxlIGlzIHVwbG9hZGVkIHN1Y2Nlc3NmdWxseS4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBzdWNjZXNzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVVcGxvYWRFcnJvckV2ZW50PigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhbiBjYW5jZWxsaW5nIGR1cmluZyB1cGxvYWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdmVyc2lvbiBpcyBjaGFuZ2VkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHZlcnNpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgY29tbWVudCBpcyBjaGFuZ2VkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGNvbW1lbnRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB1cGxvYWQgc3RhcnRzICovXG4gICAgQE91dHB1dCgpXG4gICAgdXBsb2FkU3RhcnRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVVwbG9hZEV2ZW50PigpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250ZW50U2VydmljZTogQ29udGVudFNlcnZpY2UsIHByaXZhdGUgdXBsb2FkU2VydmljZTogVXBsb2FkU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuZmlsZVVwbG9hZFN0YXJ0aW5nLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoZXZlbnQ6IEZpbGVVcGxvYWRFdmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZFN0YXJ0ZWQuZW1pdChldmVudCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNhblVwbG9hZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudFNlcnZpY2UuaGFzQWxsb3dhYmxlT3BlcmF0aW9ucyh0aGlzLm5vZGUsICd1cGRhdGUnKSAmJiAhdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBpc01ham9yVmVyc2lvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VtYW50aWNWZXJzaW9uICE9PSAnbWlub3InO1xuICAgIH1cblxuICAgIGNhbmNlbFVwbG9hZCgpIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25WZXJzaW9uQ2hhbmdlKCkge1xuICAgICAgICB0aGlzLnZlcnNpb25DaGFuZ2VkLmVtaXQodGhpcy5pc01ham9yVmVyc2lvbigpKTtcbiAgICB9XG5cbiAgICBvbkNvbW1lbnRDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMuY29tbWVudENoYW5nZWQuZW1pdCh0aGlzLmNvbW1lbnQpO1xuICAgIH1cblxuICAgIG9uU3VjY2VzcyhldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkVycm9yKGV2ZW50OiBGaWxlVXBsb2FkRXJyb3JFdmVudCkge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXJyb3IuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgZ2V0TmV4dE1pbm9yVmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7IG1ham9yLCBtaW5vciB9ID0gdGhpcy5nZXRQYXJzZWRWZXJzaW9uKHZlcnNpb24pO1xuICAgICAgICByZXR1cm4gYCR7bWFqb3J9LiR7bWlub3IgKyAxfWA7XG4gICAgfVxuXG4gICAgZ2V0TmV4dE1ham9yVmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7IG1ham9yIH0gPSB0aGlzLmdldFBhcnNlZFZlcnNpb24odmVyc2lvbik7XG4gICAgICAgIHJldHVybiBgJHttYWpvciArIDF9LjBgO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UGFyc2VkVmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgbWlub3IgPSB2ZXJzaW9uLmluZGV4T2YoJy4nKSAhPT0gLTEgPyBOdW1iZXIodmVyc2lvbi5zdWJzdHIodmVyc2lvbi5pbmRleE9mKCcuJykgKyAxKSkgOiAwO1xuICAgICAgICBjb25zdCBtYWpvciA9IHBhcnNlSW50KHZlcnNpb24sIDEwKTtcbiAgICAgICAgcmV0dXJuIHsgbWlub3IsIG1ham9yIH07XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFkZi1uZXctdmVyc2lvbi1tYXgtd2lkdGhcIj5cbiAgICA8bWF0LXJhZGlvLWdyb3VwIGNsYXNzPVwiYWRmLW5ldy12ZXJzaW9uLXJhZGlvLWdyb3VwXCIgWyhuZ01vZGVsKV09XCJzZW1hbnRpY1ZlcnNpb25cIiAoY2hhbmdlKT1cIm9uVmVyc2lvbkNoYW5nZSgpXCI+XG4gICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwiYWRmLW5ldy12ZXJzaW9uLXJhZGlvLWJ1dHRvblwiIGlkPVwiYWRmLW5ldy12ZXJzaW9uLW1pbm9yXCIgW3ZhbHVlXT1cIidtaW5vcidcIj5cbiAgICAgICAgICAgIHt7ICdBREZfVkVSU0lPTl9MSVNULkFDVElPTlMuVVBMT0FELk1JTk9SJyB8IHRyYW5zbGF0ZTogeyB2ZXJzaW9uOiBtaW5vclZlcnNpb24gfSB9fVxuICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XG4gICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwiYWRmLW5ldy12ZXJzaW9uLXJhZGlvLWJ1dHRvblwiIGlkPVwiYWRmLW5ldy12ZXJzaW9uLW1ham9yXCIgW3ZhbHVlXT1cIidtYWpvcidcIj5cbiAgICAgICAgICAgIHt7ICdBREZfVkVSU0lPTl9MSVNULkFDVElPTlMuVVBMT0FELk1BSk9SJyB8IHRyYW5zbGF0ZTogeyB2ZXJzaW9uOiBtYWpvclZlcnNpb24gfSB9fVxuICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XG4gICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYWRmLW5ldy12ZXJzaW9uLW1heC13aWR0aFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgPG1hdC1sYWJlbD57eydBREZfVkVSU0lPTl9MSVNULkFDVElPTlMuVVBMT0FELkNPTU1FTlQnIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgPHRleHRhcmVhIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbW1lbnRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtbmV3LXZlcnNpb24tdGV4dC1hcmVhXCIgaWQ9XCJhZGYtbmV3LXZlcnNpb24tdGV4dC1hcmVhXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Db21tZW50Q2hhbmdlKClcIj48L3RleHRhcmVhPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJhZGYtdmVyc2lvbi11cGxvYWQtYnV0dG9uc1wiPlxuICAgIDxhZGYtdXBsb2FkLXZlcnNpb24tYnV0dG9uICpuZ0lmPVwic2hvd1VwbG9hZEJ1dHRvblwiXG4gICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1uZXctdmVyc2lvbi1maWxlLXVwbG9hZFwiXG4gICAgICAgIHN0YXRpY1RpdGxlPVwie3sgJ0FERl9WRVJTSU9OX0xJU1QuQUNUSU9OUy5VUExPQUQuVElUTEUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgW25vZGVdPVwibm9kZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuVXBsb2FkKClcIlxuICAgICAgICBbcm9vdEZvbGRlcklkXT1cIm5vZGUucGFyZW50SWRcIlxuICAgICAgICB0b29sdGlwPVwie3sgJ0FERl9WRVJTSU9OX0xJU1QuQUNUSU9OUy5VUExPQUQuVE9PTFRJUCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBbY29tbWVudF09XCJjb21tZW50XCJcbiAgICAgICAgW3ZlcnNpb25pbmddPVwidHJ1ZVwiXG4gICAgICAgIFtmaWxlXT1cIm5ld0ZpbGVWZXJzaW9uXCJcbiAgICAgICAgW21ham9yVmVyc2lvbl09XCJpc01ham9yVmVyc2lvbigpXCJcbiAgICAgICAgKHN1Y2Nlc3MpPVwib25TdWNjZXNzKCRldmVudClcIlxuICAgICAgICAoZXJyb3IpPVwib25FcnJvcigkZXZlbnQpXCIgLz5cbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjYW5jZWxVcGxvYWQoKVwiIGlkPVwiYWRmLW5ldy12ZXJzaW9uLWNhbmNlbFwiICAqbmdJZj1cInNob3dDYW5jZWxCdXR0b25cIiA+e3tcbiAgICAgICAgJ0FERl9WRVJTSU9OX0xJU1QuQUNUSU9OUy5VUExPQUQuQ0FOQ0VMJ3wgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -27,7 +27,7 @@ import { UploadService } from '../../common/services/upload.service';
27
27
  import { FileModel } from '../../common/models/file.model';
28
28
  import { NodeActionsService } from '../../document-list';
29
29
  import { CommonModule } from '@angular/common';
30
- import { TranslateModule } from '@ngx-translate/core';
30
+ import { TranslatePipe } from '@ngx-translate/core';
31
31
  import { MatButtonModule } from '@angular/material/button';
32
32
  import { MatIconModule } from '@angular/material/icon';
33
33
  import { NodeDownloadDirective } from '../../directives';
@@ -42,9 +42,8 @@ import * as i6 from "../../common/services/upload.service";
42
42
  import * as i7 from "@angular/material/dialog";
43
43
  import * as i8 from "../../document-list";
44
44
  import * as i9 from "@angular/common";
45
- import * as i10 from "@ngx-translate/core";
46
- import * as i11 from "@angular/material/button";
47
- import * as i12 from "@angular/material/icon";
45
+ import * as i10 from "@angular/material/button";
46
+ import * as i11 from "@angular/material/icon";
48
47
  export class AlfrescoViewerComponent {
49
48
  get sharedLinksApi() {
50
49
  this._sharedLinksApi = this._sharedLinksApi ?? new SharedlinksApi(this.apiService.getInstance());
@@ -323,11 +322,11 @@ export class AlfrescoViewerComponent {
323
322
  this.nodeActionsService.downloadNode(this.nodeEntry);
324
323
  }
325
324
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AlfrescoViewerComponent, deps: [{ token: i1.AlfrescoApiService }, { token: i2.NodesApiService }, { token: i3.RenditionService }, { token: i4.ViewUtilService }, { token: i5.ContentService }, { token: i6.UploadService }, { token: i7.MatDialog }, { token: i0.ChangeDetectorRef }, { token: i8.NodeActionsService }], target: i0.ɵɵFactoryTarget.Component }); }
326
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AlfrescoViewerComponent, isStandalone: true, selector: "adf-alfresco-viewer", inputs: { nodeId: "nodeId", versionId: "versionId", sharedLinkId: "sharedLinkId", showViewer: "showViewer", maxRetries: "maxRetries", allowGoBack: "allowGoBack", showToolbar: "showToolbar", overlayMode: "overlayMode", allowNavigate: "allowNavigate", canNavigateBefore: "canNavigateBefore", canNavigateNext: "canNavigateNext", allowLeftSidebar: "allowLeftSidebar", allowRightSidebar: "allowRightSidebar", showRightSidebar: "showRightSidebar", showLeftSidebar: "showLeftSidebar", allowDownload: "allowDownload", allowPrint: "allowPrint", allowFullScreen: "allowFullScreen", hideInfoButton: "hideInfoButton", closeButtonPosition: "closeButtonPosition", sidebarRightTemplate: "sidebarRightTemplate", sidebarLeftTemplate: "sidebarLeftTemplate", readOnly: "readOnly", showToolbarDividers: "showToolbarDividers" }, outputs: { invalidSharedLink: "invalidSharedLink", navigateBefore: "navigateBefore", navigateNext: "navigateNext", showViewerChange: "showViewerChange" }, host: { classAttribute: "adf-alfresco-viewer" }, providers: [ViewUtilService], queries: [{ propertyName: "toolbar", first: true, predicate: ViewerToolbarComponent, descendants: true }, { propertyName: "sidebar", first: true, predicate: ViewerSidebarComponent, descendants: true }, { propertyName: "toolbarActions", first: true, predicate: ViewerToolbarActionsComponent, descendants: true }, { propertyName: "moreActions", first: true, predicate: ViewerMoreActionsComponent, descendants: true }, { propertyName: "openWith", first: true, predicate: ViewerOpenWithComponent, descendants: true }, { propertyName: "viewerExtensions", first: true, predicate: ["viewerExtensions"], descendants: true }], viewQueries: [{ propertyName: "adfViewer", first: true, predicate: ["adfViewer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<adf-viewer\n #adfViewer\n [(showViewer)]=\"showViewer\"\n [allowGoBack]=\"allowGoBack\"\n [showToolbar]=\"showToolbar\"\n [overlayMode]=\"overlayMode\"\n [allowNavigate]=\"allowNavigate\"\n [canNavigateBefore]=\"canNavigateBefore\"\n [canNavigateNext]=\"canNavigateNext\"\n [allowLeftSidebar]=\"allowLeftSidebar\"\n [allowRightSidebar]=\"allowRightSidebar\"\n [showRightSidebar]=\"showRightSidebar\"\n [showLeftSidebar]=\"showLeftSidebar\"\n [allowFullScreen]=\"allowFullScreen\"\n [sidebarRightTemplate]=\"sidebarRightTemplate\"\n [sidebarLeftTemplate]=\"sidebarLeftTemplate\"\n [sidebarRightTemplateContext]=\"sidebarRightTemplateContext\"\n [sidebarLeftTemplateContext]=\"sidebarLeftTemplateContext\"\n [closeButtonPosition]=\"closeButtonPosition\"\n [hideInfoButton]=\"hideInfoButton\"\n [fileName]=\"fileName\"\n [mimeType]=\"mimeType\"\n [nodeMimeType]=\"nodeMimeType\"\n [urlFile]=\"urlFileContent\"\n [tracks]=\"tracks\"\n [readOnly]=\"readOnly || !canEditNode\"\n [showToolbarDividers]=\"showToolbarDividers\"\n [allowedEditActions]=\"allowedEditActions\"\n [viewerExtensions]=\"viewerExtensions\"\n [nodeId]=\"nodeId\"\n (downloadFile)=\"onDownloadFile()\"\n (navigateBefore)=\"onNavigateBeforeClick($event)\"\n (navigateNext)=\"onNavigateNextClick($event)\"\n (showViewerChange)=\"onClose()\"\n (submitFile)=\"onSubmitFile($event)\">\n\n <adf-viewer-toolbar *ngIf=\"toolbar\">\n <ng-content select=\"adf-viewer-toolbar\" />\n </adf-viewer-toolbar>\n\n <adf-viewer-toolbar-actions *ngIf=\"toolbarActions\">\n <ng-content select=\"adf-viewer-toolbar-actions\" />\n </adf-viewer-toolbar-actions>\n\n <adf-viewer-more-actions *ngIf=\"moreActions\">\n <ng-content select=\"adf-viewer-more-actions\" />\n </adf-viewer-more-actions>\n\n <adf-viewer-open-with *ngIf=\"openWith\">\n <ng-content select=\"adf-viewer-open-with\" />\n </adf-viewer-open-with>\n\n <adf-viewer-sidebar *ngIf=\"sidebar\">\n <ng-content select=\"adf-viewer-sidebar\" />\n </adf-viewer-sidebar>\n\n <adf-viewer-toolbar-custom-actions *ngIf=\"allowDownload || allowPrint\">\n <button id=\"adf-alfresco-viewer-download\"\n *ngIf=\"allowDownload\"\n mat-icon-button\n [attr.aria-label]=\"'ADF_VIEWER.ACTIONS.DOWNLOAD' | translate\"\n title=\"{{ 'ADF_VIEWER.ACTIONS.DOWNLOAD' | translate }}\"\n data-automation-id=\"adf-toolbar-download\"\n [adfNodeDownload]=\"nodeEntry\"\n [version]=\"versionEntry\">\n <mat-icon>file_download</mat-icon>\n </button>\n\n <button id=\"adf-alfresco-viewer-print\"\n *ngIf=\"allowPrint\"\n mat-icon-button\n [attr.aria-label]=\"'ADF_VIEWER.ACTIONS.PRINT' | translate\"\n title=\"{{ 'ADF_VIEWER.ACTIONS.PRINT' | translate }}\"\n data-automation-id=\"adf-toolbar-print\"\n (click)=\"onPrintContent($event)\">\n <mat-icon>print</mat-icon>\n </button>\n </adf-viewer-toolbar-custom-actions>\n</adf-viewer>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.ViewerToolbarComponent, selector: "adf-viewer-toolbar" }, { kind: "component", type: i4.ViewerSidebarComponent, selector: "adf-viewer-sidebar" }, { kind: "component", type: i4.ViewerOpenWithComponent, selector: "adf-viewer-open-with" }, { kind: "component", type: i4.ViewerMoreActionsComponent, selector: "adf-viewer-more-actions" }, { kind: "component", type: i4.ViewerToolbarActionsComponent, selector: "adf-viewer-toolbar-actions" }, { kind: "component", type: i4.ViewerComponent, selector: "adf-viewer", inputs: ["urlFile", "blobFile", "showViewer", "allowGoBack", "allowFullScreen", "showToolbar", "overlayMode", "allowNavigate", "canNavigateBefore", "canNavigateNext", "allowLeftSidebar", "allowRightSidebar", "showRightSidebar", "showLeftSidebar", "sidebarRightTemplate", "sidebarLeftTemplate", "readOnly", "allowedEditActions", "tracks", "mimeType", "sidebarRightTemplateContext", "sidebarLeftTemplateContext", "closeButtonPosition", "hideInfoButton", "viewerExtensions", "nodeId", "nodeMimeType", "customError", "showToolbarDividers", "fileName"], outputs: ["downloadFile", "navigateBefore", "navigateNext", "showViewerChange", "submitFile"] }, { kind: "component", type: i4.ViewerToolbarCustomActionsComponent, selector: "adf-viewer-toolbar-custom-actions" }, { kind: "directive", type: NodeDownloadDirective, selector: "[adfNodeDownload]", inputs: ["adfNodeDownload", "version"] }], encapsulation: i0.ViewEncapsulation.None }); }
325
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AlfrescoViewerComponent, isStandalone: true, selector: "adf-alfresco-viewer", inputs: { nodeId: "nodeId", versionId: "versionId", sharedLinkId: "sharedLinkId", showViewer: "showViewer", maxRetries: "maxRetries", allowGoBack: "allowGoBack", showToolbar: "showToolbar", overlayMode: "overlayMode", allowNavigate: "allowNavigate", canNavigateBefore: "canNavigateBefore", canNavigateNext: "canNavigateNext", allowLeftSidebar: "allowLeftSidebar", allowRightSidebar: "allowRightSidebar", showRightSidebar: "showRightSidebar", showLeftSidebar: "showLeftSidebar", allowDownload: "allowDownload", allowPrint: "allowPrint", allowFullScreen: "allowFullScreen", hideInfoButton: "hideInfoButton", closeButtonPosition: "closeButtonPosition", sidebarRightTemplate: "sidebarRightTemplate", sidebarLeftTemplate: "sidebarLeftTemplate", readOnly: "readOnly", showToolbarDividers: "showToolbarDividers" }, outputs: { invalidSharedLink: "invalidSharedLink", navigateBefore: "navigateBefore", navigateNext: "navigateNext", showViewerChange: "showViewerChange" }, host: { classAttribute: "adf-alfresco-viewer" }, providers: [ViewUtilService], queries: [{ propertyName: "toolbar", first: true, predicate: ViewerToolbarComponent, descendants: true }, { propertyName: "sidebar", first: true, predicate: ViewerSidebarComponent, descendants: true }, { propertyName: "toolbarActions", first: true, predicate: ViewerToolbarActionsComponent, descendants: true }, { propertyName: "moreActions", first: true, predicate: ViewerMoreActionsComponent, descendants: true }, { propertyName: "openWith", first: true, predicate: ViewerOpenWithComponent, descendants: true }, { propertyName: "viewerExtensions", first: true, predicate: ["viewerExtensions"], descendants: true }], viewQueries: [{ propertyName: "adfViewer", first: true, predicate: ["adfViewer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<adf-viewer\n #adfViewer\n [(showViewer)]=\"showViewer\"\n [allowGoBack]=\"allowGoBack\"\n [showToolbar]=\"showToolbar\"\n [overlayMode]=\"overlayMode\"\n [allowNavigate]=\"allowNavigate\"\n [canNavigateBefore]=\"canNavigateBefore\"\n [canNavigateNext]=\"canNavigateNext\"\n [allowLeftSidebar]=\"allowLeftSidebar\"\n [allowRightSidebar]=\"allowRightSidebar\"\n [showRightSidebar]=\"showRightSidebar\"\n [showLeftSidebar]=\"showLeftSidebar\"\n [allowFullScreen]=\"allowFullScreen\"\n [sidebarRightTemplate]=\"sidebarRightTemplate\"\n [sidebarLeftTemplate]=\"sidebarLeftTemplate\"\n [sidebarRightTemplateContext]=\"sidebarRightTemplateContext\"\n [sidebarLeftTemplateContext]=\"sidebarLeftTemplateContext\"\n [closeButtonPosition]=\"closeButtonPosition\"\n [hideInfoButton]=\"hideInfoButton\"\n [fileName]=\"fileName\"\n [mimeType]=\"mimeType\"\n [nodeMimeType]=\"nodeMimeType\"\n [urlFile]=\"urlFileContent\"\n [tracks]=\"tracks\"\n [readOnly]=\"readOnly || !canEditNode\"\n [showToolbarDividers]=\"showToolbarDividers\"\n [allowedEditActions]=\"allowedEditActions\"\n [viewerExtensions]=\"viewerExtensions\"\n [nodeId]=\"nodeId\"\n (downloadFile)=\"onDownloadFile()\"\n (navigateBefore)=\"onNavigateBeforeClick($event)\"\n (navigateNext)=\"onNavigateNextClick($event)\"\n (showViewerChange)=\"onClose()\"\n (submitFile)=\"onSubmitFile($event)\">\n\n <adf-viewer-toolbar *ngIf=\"toolbar\">\n <ng-content select=\"adf-viewer-toolbar\" />\n </adf-viewer-toolbar>\n\n <adf-viewer-toolbar-actions *ngIf=\"toolbarActions\">\n <ng-content select=\"adf-viewer-toolbar-actions\" />\n </adf-viewer-toolbar-actions>\n\n <adf-viewer-more-actions *ngIf=\"moreActions\">\n <ng-content select=\"adf-viewer-more-actions\" />\n </adf-viewer-more-actions>\n\n <adf-viewer-open-with *ngIf=\"openWith\">\n <ng-content select=\"adf-viewer-open-with\" />\n </adf-viewer-open-with>\n\n <adf-viewer-sidebar *ngIf=\"sidebar\">\n <ng-content select=\"adf-viewer-sidebar\" />\n </adf-viewer-sidebar>\n\n <adf-viewer-toolbar-custom-actions *ngIf=\"allowDownload || allowPrint\">\n <button id=\"adf-alfresco-viewer-download\"\n *ngIf=\"allowDownload\"\n mat-icon-button\n [attr.aria-label]=\"'ADF_VIEWER.ACTIONS.DOWNLOAD' | translate\"\n title=\"{{ 'ADF_VIEWER.ACTIONS.DOWNLOAD' | translate }}\"\n data-automation-id=\"adf-toolbar-download\"\n [adfNodeDownload]=\"nodeEntry\"\n [version]=\"versionEntry\">\n <mat-icon>file_download</mat-icon>\n </button>\n\n <button id=\"adf-alfresco-viewer-print\"\n *ngIf=\"allowPrint\"\n mat-icon-button\n [attr.aria-label]=\"'ADF_VIEWER.ACTIONS.PRINT' | translate\"\n title=\"{{ 'ADF_VIEWER.ACTIONS.PRINT' | translate }}\"\n data-automation-id=\"adf-toolbar-print\"\n (click)=\"onPrintContent($event)\">\n <mat-icon>print</mat-icon>\n </button>\n </adf-viewer-toolbar-custom-actions>\n</adf-viewer>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.ViewerToolbarComponent, selector: "adf-viewer-toolbar" }, { kind: "component", type: i4.ViewerSidebarComponent, selector: "adf-viewer-sidebar" }, { kind: "component", type: i4.ViewerOpenWithComponent, selector: "adf-viewer-open-with" }, { kind: "component", type: i4.ViewerMoreActionsComponent, selector: "adf-viewer-more-actions" }, { kind: "component", type: i4.ViewerToolbarActionsComponent, selector: "adf-viewer-toolbar-actions" }, { kind: "component", type: i4.ViewerComponent, selector: "adf-viewer", inputs: ["urlFile", "blobFile", "showViewer", "allowGoBack", "allowFullScreen", "showToolbar", "overlayMode", "allowNavigate", "canNavigateBefore", "canNavigateNext", "allowLeftSidebar", "allowRightSidebar", "showRightSidebar", "showLeftSidebar", "sidebarRightTemplate", "sidebarLeftTemplate", "readOnly", "allowedEditActions", "tracks", "mimeType", "sidebarRightTemplateContext", "sidebarLeftTemplateContext", "closeButtonPosition", "hideInfoButton", "viewerExtensions", "nodeId", "nodeMimeType", "customError", "showToolbarDividers", "fileName"], outputs: ["downloadFile", "navigateBefore", "navigateNext", "showViewerChange", "submitFile"] }, { kind: "component", type: i4.ViewerToolbarCustomActionsComponent, selector: "adf-viewer-toolbar-custom-actions" }, { kind: "directive", type: NodeDownloadDirective, selector: "[adfNodeDownload]", inputs: ["adfNodeDownload", "version"] }], encapsulation: i0.ViewEncapsulation.None }); }
327
326
  }
328
327
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AlfrescoViewerComponent, decorators: [{
329
328
  type: Component,
330
- args: [{ selector: 'adf-alfresco-viewer', standalone: true, imports: [CommonModule, TranslateModule, MatButtonModule, MatIconModule, ...VIEWER_DIRECTIVES, NodeDownloadDirective], host: { class: 'adf-alfresco-viewer' }, encapsulation: ViewEncapsulation.None, providers: [ViewUtilService], template: "<adf-viewer\n #adfViewer\n [(showViewer)]=\"showViewer\"\n [allowGoBack]=\"allowGoBack\"\n [showToolbar]=\"showToolbar\"\n [overlayMode]=\"overlayMode\"\n [allowNavigate]=\"allowNavigate\"\n [canNavigateBefore]=\"canNavigateBefore\"\n [canNavigateNext]=\"canNavigateNext\"\n [allowLeftSidebar]=\"allowLeftSidebar\"\n [allowRightSidebar]=\"allowRightSidebar\"\n [showRightSidebar]=\"showRightSidebar\"\n [showLeftSidebar]=\"showLeftSidebar\"\n [allowFullScreen]=\"allowFullScreen\"\n [sidebarRightTemplate]=\"sidebarRightTemplate\"\n [sidebarLeftTemplate]=\"sidebarLeftTemplate\"\n [sidebarRightTemplateContext]=\"sidebarRightTemplateContext\"\n [sidebarLeftTemplateContext]=\"sidebarLeftTemplateContext\"\n [closeButtonPosition]=\"closeButtonPosition\"\n [hideInfoButton]=\"hideInfoButton\"\n [fileName]=\"fileName\"\n [mimeType]=\"mimeType\"\n [nodeMimeType]=\"nodeMimeType\"\n [urlFile]=\"urlFileContent\"\n [tracks]=\"tracks\"\n [readOnly]=\"readOnly || !canEditNode\"\n [showToolbarDividers]=\"showToolbarDividers\"\n [allowedEditActions]=\"allowedEditActions\"\n [viewerExtensions]=\"viewerExtensions\"\n [nodeId]=\"nodeId\"\n (downloadFile)=\"onDownloadFile()\"\n (navigateBefore)=\"onNavigateBeforeClick($event)\"\n (navigateNext)=\"onNavigateNextClick($event)\"\n (showViewerChange)=\"onClose()\"\n (submitFile)=\"onSubmitFile($event)\">\n\n <adf-viewer-toolbar *ngIf=\"toolbar\">\n <ng-content select=\"adf-viewer-toolbar\" />\n </adf-viewer-toolbar>\n\n <adf-viewer-toolbar-actions *ngIf=\"toolbarActions\">\n <ng-content select=\"adf-viewer-toolbar-actions\" />\n </adf-viewer-toolbar-actions>\n\n <adf-viewer-more-actions *ngIf=\"moreActions\">\n <ng-content select=\"adf-viewer-more-actions\" />\n </adf-viewer-more-actions>\n\n <adf-viewer-open-with *ngIf=\"openWith\">\n <ng-content select=\"adf-viewer-open-with\" />\n </adf-viewer-open-with>\n\n <adf-viewer-sidebar *ngIf=\"sidebar\">\n <ng-content select=\"adf-viewer-sidebar\" />\n </adf-viewer-sidebar>\n\n <adf-viewer-toolbar-custom-actions *ngIf=\"allowDownload || allowPrint\">\n <button id=\"adf-alfresco-viewer-download\"\n *ngIf=\"allowDownload\"\n mat-icon-button\n [attr.aria-label]=\"'ADF_VIEWER.ACTIONS.DOWNLOAD' | translate\"\n title=\"{{ 'ADF_VIEWER.ACTIONS.DOWNLOAD' | translate }}\"\n data-automation-id=\"adf-toolbar-download\"\n [adfNodeDownload]=\"nodeEntry\"\n [version]=\"versionEntry\">\n <mat-icon>file_download</mat-icon>\n </button>\n\n <button id=\"adf-alfresco-viewer-print\"\n *ngIf=\"allowPrint\"\n mat-icon-button\n [attr.aria-label]=\"'ADF_VIEWER.ACTIONS.PRINT' | translate\"\n title=\"{{ 'ADF_VIEWER.ACTIONS.PRINT' | translate }}\"\n data-automation-id=\"adf-toolbar-print\"\n (click)=\"onPrintContent($event)\">\n <mat-icon>print</mat-icon>\n </button>\n </adf-viewer-toolbar-custom-actions>\n</adf-viewer>\n" }]
329
+ args: [{ selector: 'adf-alfresco-viewer', standalone: true, imports: [CommonModule, TranslatePipe, MatButtonModule, MatIconModule, ...VIEWER_DIRECTIVES, NodeDownloadDirective], host: { class: 'adf-alfresco-viewer' }, encapsulation: ViewEncapsulation.None, providers: [ViewUtilService], template: "<adf-viewer\n #adfViewer\n [(showViewer)]=\"showViewer\"\n [allowGoBack]=\"allowGoBack\"\n [showToolbar]=\"showToolbar\"\n [overlayMode]=\"overlayMode\"\n [allowNavigate]=\"allowNavigate\"\n [canNavigateBefore]=\"canNavigateBefore\"\n [canNavigateNext]=\"canNavigateNext\"\n [allowLeftSidebar]=\"allowLeftSidebar\"\n [allowRightSidebar]=\"allowRightSidebar\"\n [showRightSidebar]=\"showRightSidebar\"\n [showLeftSidebar]=\"showLeftSidebar\"\n [allowFullScreen]=\"allowFullScreen\"\n [sidebarRightTemplate]=\"sidebarRightTemplate\"\n [sidebarLeftTemplate]=\"sidebarLeftTemplate\"\n [sidebarRightTemplateContext]=\"sidebarRightTemplateContext\"\n [sidebarLeftTemplateContext]=\"sidebarLeftTemplateContext\"\n [closeButtonPosition]=\"closeButtonPosition\"\n [hideInfoButton]=\"hideInfoButton\"\n [fileName]=\"fileName\"\n [mimeType]=\"mimeType\"\n [nodeMimeType]=\"nodeMimeType\"\n [urlFile]=\"urlFileContent\"\n [tracks]=\"tracks\"\n [readOnly]=\"readOnly || !canEditNode\"\n [showToolbarDividers]=\"showToolbarDividers\"\n [allowedEditActions]=\"allowedEditActions\"\n [viewerExtensions]=\"viewerExtensions\"\n [nodeId]=\"nodeId\"\n (downloadFile)=\"onDownloadFile()\"\n (navigateBefore)=\"onNavigateBeforeClick($event)\"\n (navigateNext)=\"onNavigateNextClick($event)\"\n (showViewerChange)=\"onClose()\"\n (submitFile)=\"onSubmitFile($event)\">\n\n <adf-viewer-toolbar *ngIf=\"toolbar\">\n <ng-content select=\"adf-viewer-toolbar\" />\n </adf-viewer-toolbar>\n\n <adf-viewer-toolbar-actions *ngIf=\"toolbarActions\">\n <ng-content select=\"adf-viewer-toolbar-actions\" />\n </adf-viewer-toolbar-actions>\n\n <adf-viewer-more-actions *ngIf=\"moreActions\">\n <ng-content select=\"adf-viewer-more-actions\" />\n </adf-viewer-more-actions>\n\n <adf-viewer-open-with *ngIf=\"openWith\">\n <ng-content select=\"adf-viewer-open-with\" />\n </adf-viewer-open-with>\n\n <adf-viewer-sidebar *ngIf=\"sidebar\">\n <ng-content select=\"adf-viewer-sidebar\" />\n </adf-viewer-sidebar>\n\n <adf-viewer-toolbar-custom-actions *ngIf=\"allowDownload || allowPrint\">\n <button id=\"adf-alfresco-viewer-download\"\n *ngIf=\"allowDownload\"\n mat-icon-button\n [attr.aria-label]=\"'ADF_VIEWER.ACTIONS.DOWNLOAD' | translate\"\n title=\"{{ 'ADF_VIEWER.ACTIONS.DOWNLOAD' | translate }}\"\n data-automation-id=\"adf-toolbar-download\"\n [adfNodeDownload]=\"nodeEntry\"\n [version]=\"versionEntry\">\n <mat-icon>file_download</mat-icon>\n </button>\n\n <button id=\"adf-alfresco-viewer-print\"\n *ngIf=\"allowPrint\"\n mat-icon-button\n [attr.aria-label]=\"'ADF_VIEWER.ACTIONS.PRINT' | translate\"\n title=\"{{ 'ADF_VIEWER.ACTIONS.PRINT' | translate }}\"\n data-automation-id=\"adf-toolbar-print\"\n (click)=\"onPrintContent($event)\">\n <mat-icon>print</mat-icon>\n </button>\n </adf-viewer-toolbar-custom-actions>\n</adf-viewer>\n" }]
331
330
  }], ctorParameters: () => [{ type: i1.AlfrescoApiService }, { type: i2.NodesApiService }, { type: i3.RenditionService }, { type: i4.ViewUtilService }, { type: i5.ContentService }, { type: i6.UploadService }, { type: i7.MatDialog }, { type: i0.ChangeDetectorRef }, { type: i8.NodeActionsService }], propDecorators: { adfViewer: [{
332
331
  type: ViewChild,
333
332
  args: ['adfViewer']
@@ -406,4 +405,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
406
405
  }], showViewerChange: [{
407
406
  type: Output
408
407
  }] } });
409
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxmcmVzY28tdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvdmlld2VyL2NvbXBvbmVudHMvYWxmcmVzY28tdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvdmlld2VyL2NvbXBvbmVudHMvYWxmcmVzY28tdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxtQkFBbUIsRUFFbkIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0Qiw2QkFBNkIsRUFDN0Isc0JBQXNCLEVBQ3RCLGVBQWUsRUFDbEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsVUFBVSxFQUFtQixRQUFRLEVBQWtCLGNBQWMsRUFBeUIsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0ksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVloRSxNQUFNLE9BQU8sdUJBQXVCO0lBa0toQyxJQUFJLGNBQWM7UUFDZCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2pHLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBR0QsSUFBSSxXQUFXO1FBQ1gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN4RixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUdELElBQUksUUFBUTtRQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDL0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFHRCxJQUFJLFVBQVU7UUFDVixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3JGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBSUQsWUFDWSxVQUE4QixFQUM5QixlQUFnQyxFQUNoQyxnQkFBa0MsRUFDbEMsZUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIsYUFBNEIsRUFDN0IsTUFBaUIsRUFDaEIsR0FBc0IsRUFDdEIsa0JBQXNDO1FBUnRDLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQzlCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDN0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNoQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBOUtsRCxtQ0FBbUM7UUFFbkMsV0FBTSxHQUFXLElBQUksQ0FBQztRQUV0QixzQ0FBc0M7UUFFdEMsY0FBUyxHQUFXLElBQUksQ0FBQztRQUV6QiwrQ0FBK0M7UUFFL0MsaUJBQVksR0FBVyxJQUFJLENBQUM7UUFFNUIsOEJBQThCO1FBRTlCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFbEI7OztXQUdHO1FBRUgsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVoQiwrQkFBK0I7UUFFL0IsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFbkIsK0JBQStCO1FBRS9CLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRW5COzs7V0FHRztRQUVILGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCOzs7V0FHRztRQUVILGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXRCLGlGQUFpRjtRQUVqRixzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFFekIsNkVBQTZFO1FBRTdFLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRXZCLGtDQUFrQztRQUVsQyxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFekIsK0JBQStCO1FBRS9CLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUUxQiwwRkFBMEY7UUFFMUYscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCLHdGQUF3RjtRQUV4RixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4QiwyQkFBMkI7UUFFM0Isa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFFckIsd0JBQXdCO1FBRXhCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIseUNBQXlDO1FBRXpDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRXZCLGdDQUFnQztRQUVoQyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2QixrREFBa0Q7UUFFbEQsd0JBQW1CLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1FBRS9DLDhGQUE4RjtRQUU5Rix5QkFBb0IsR0FBcUIsSUFBSSxDQUFDO1FBRTlDLDZGQUE2RjtRQUU3Rix3QkFBbUIsR0FBcUIsSUFBSSxDQUFDO1FBRTdDLDJDQUEyQztRQUUzQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGtDQUFrQztRQUVsQyx3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFFM0Isc0RBQXNEO1FBRXRELHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFN0MsK0RBQStEO1FBRS9ELG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQThCLENBQUM7UUFFaEUsNkRBQTZEO1FBRTdELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQThCLENBQUM7UUFFOUQsb0NBQW9DO1FBRXBDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFVL0MsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQUNyQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3Qix1QkFBa0IsR0FBK0I7WUFDN0MsTUFBTSxFQUFFLElBQUk7WUFDWixJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUM7UUFFRixnQ0FBMkIsR0FBbUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDN0QsK0JBQTBCLEdBQW1CLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO1FBMEIzQyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBYTdDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ2xELENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXO2FBQzNCLElBQUksQ0FDRCxNQUFNLENBQ0YsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNMLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUNqSSxFQUNELGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDdEM7YUFDQSxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFVO1FBQ2xDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1lBRWpDLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHNCQUFzQixDQUFDLElBQVU7UUFDckMsT0FBTyxJQUFJLEVBQUUsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFTyxLQUFLLENBQUMsZUFBZTtRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUV6QixJQUFJLENBQUM7WUFDRCxNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNuRixNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUM7WUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDekMsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsU0FBUztRQUNuQixJQUFJLENBQUM7WUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hHLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ25GLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVFLENBQUM7aUJBQU0sQ0FBQztnQkFDSixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM3QixDQUFDO1FBQ0wsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUN6QyxDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBYyxFQUFFLFdBQXFCO1FBQzdELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEYsSUFBSSxRQUFnQixDQUFDO1FBQ3JCLElBQUksWUFBb0IsQ0FBQztRQUN6QixJQUFJLGNBQXNCLENBQUM7UUFFM0IsSUFBSSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDdkIsUUFBUSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQzVDLENBQUM7YUFBTSxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMxQixRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDekMsQ0FBQztRQUNELFlBQVksR0FBRyxRQUFRLENBQUM7UUFFeEIsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztZQUM3RSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkIsY0FBYyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlJLGNBQWMsR0FBRyxjQUFjLEdBQUcsR0FBRyxHQUFHLGtCQUFrQixDQUFDO1FBRTNELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUcsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRS9FLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzNCLElBQUksYUFBYSxDQUFDO1lBQ2xCLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2QsYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlGLENBQUM7aUJBQU0sQ0FBQztnQkFDSixhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlFLENBQUM7WUFDRCxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNoQixjQUFjLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQztnQkFFbkMsWUFBWSxHQUFHLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDO2dCQUMzQyxNQUFNLGlCQUFpQixHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUM7Z0JBQ2pELFFBQVEsR0FBRyxpQkFBaUIsSUFBSSxZQUFZLENBQUM7WUFDakQsQ0FBQztRQUNMLENBQUM7YUFBTSxJQUFJLFVBQVUsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RixDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDL0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ2pELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO0lBQ3BELENBQUM7SUFFTyxLQUFLLENBQUMsbUJBQW1CLENBQUMsT0FBWTtRQUMxQyxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDOUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDbkMsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUvRSxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMzQixDQUFDLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDekMsQ0FBQztJQUVPLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxRQUFnQjtRQUNqRCxJQUFJLENBQUM7WUFDRCxNQUFNLFNBQVMsR0FBbUIsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNsRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHlCQUF5QixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDbEYsT0FBTyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLENBQUM7WUFDaEUsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDO2dCQUNELE1BQU0sU0FBUyxHQUFtQixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO2dCQUMzRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUNsRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHlCQUF5QixDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztvQkFDekYsT0FBTyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDO2dCQUMxRCxDQUFDO1lBQ0wsQ0FBQztZQUFDLE9BQU8sY0FBYyxFQUFFLENBQUM7Z0JBQ3RCLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVPLHlCQUF5QjtRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWlCO1FBQzVCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZFLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxZQUFrQjtRQUMzQixJQUFJLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25FLE1BQU0sWUFBWSxHQUFTLElBQUksSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZJLE1BQU0sT0FBTyxHQUFHLElBQUksU0FBUyxDQUN6QixZQUFZLEVBQ1o7Z0JBQ0ksWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUTtnQkFDMUMsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRO2FBQ3RELEVBQ0QsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUM3QixDQUFDO1lBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9DLENBQUM7SUFDTCxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBaUM7UUFDbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQWlDO1FBQ2pELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxlQUFlO1FBQ1gsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1lBQ3BFLENBQUM7WUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsWUFBWSxLQUFLLE9BQU8sQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLENBQUM7Z0JBQ2pFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyQixDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDM0IsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7K0dBblpRLHVCQUF1QjttR0FBdkIsdUJBQXVCLHNqQ0FGckIsQ0FBQyxlQUFlLENBQUMsK0RBTWQsc0JBQXNCLDBFQUd0QixzQkFBc0IsaUZBR3RCLDZCQUE2Qiw4RUFHN0IsMEJBQTBCLDJFQUcxQix1QkFBdUIsb1JDeEZ6Qyw2cEdBK0VBLHlERGRjLFlBQVksa0lBQUUsZUFBZSw0RkFBRSxlQUFlLDRJQUFFLGFBQWEseThDQUF3QixxQkFBcUI7OzRGQU8zRyx1QkFBdUI7a0JBVm5DLFNBQVM7K0JBQ0kscUJBQXFCLGNBQ25CLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLGlCQUFpQixFQUFFLHFCQUFxQixDQUFDLFFBRy9HLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLGlCQUN2QixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsZUFBZSxDQUFDO29VQUk1QixTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVztnQkFJdEIsT0FBTztzQkFETixZQUFZO3VCQUFDLHNCQUFzQjtnQkFJcEMsT0FBTztzQkFETixZQUFZO3VCQUFDLHNCQUFzQjtnQkFJcEMsY0FBYztzQkFEYixZQUFZO3VCQUFDLDZCQUE2QjtnQkFJM0MsV0FBVztzQkFEVixZQUFZO3VCQUFDLDBCQUEwQjtnQkFJeEMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLHVCQUF1QjtnQkFJckMsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUtuRCxNQUFNO3NCQURMLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFLTixVQUFVO3NCQURULEtBQUs7Z0JBUU4sVUFBVTtzQkFEVCxLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBUU4sV0FBVztzQkFEVixLQUFLO2dCQVFOLGFBQWE7c0JBRFosS0FBSztnQkFLTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUtOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLO2dCQUtOLFVBQVU7c0JBRFQsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sY0FBYztzQkFEYixLQUFLO2dCQUtOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFLTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBS04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBS04saUJBQWlCO3NCQURoQixNQUFNO2dCQUtQLGNBQWM7c0JBRGIsTUFBTTtnQkFLUCxZQUFZO3NCQURYLE1BQU07Z0JBS1AsZ0JBQWdCO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENsb3NlQnV0dG9uUG9zaXRpb24sXG4gICAgVHJhY2ssXG4gICAgVklFV0VSX0RJUkVDVElWRVMsXG4gICAgVmlld2VyQ29tcG9uZW50LFxuICAgIFZpZXdlck1vcmVBY3Rpb25zQ29tcG9uZW50LFxuICAgIFZpZXdlck9wZW5XaXRoQ29tcG9uZW50LFxuICAgIFZpZXdlclNpZGViYXJDb21wb25lbnQsXG4gICAgVmlld2VyVG9vbGJhckFjdGlvbnNDb21wb25lbnQsXG4gICAgVmlld2VyVG9vbGJhckNvbXBvbmVudCxcbiAgICBWaWV3VXRpbFNlcnZpY2Vcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEFsZnJlc2NvQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsZnJlc2NvLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRlbnRBcGksIE5vZGUsIE5vZGVFbnRyeSwgTm9kZXNBcGksIFJlbmRpdGlvbkVudHJ5LCBTaGFyZWRsaW5rc0FwaSwgVmVyc2lvbiwgVmVyc2lvbkVudHJ5LCBWZXJzaW9uc0FwaSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgUmVuZGl0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy9yZW5kaXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVzQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy9ub2Rlcy1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL3VwbG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbGVNb2RlbCB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbHMvZmlsZS5tb2RlbCc7XG5pbXBvcnQgeyBOb2RlQWN0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9kb2N1bWVudC1saXN0JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBOb2RlRG93bmxvYWREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtYWxmcmVzY28tdmlld2VyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCAuLi5WSUVXRVJfRElSRUNUSVZFUywgTm9kZURvd25sb2FkRGlyZWN0aXZlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWxmcmVzY28tdmlld2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hbGZyZXNjby12aWV3ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7IGNsYXNzOiAnYWRmLWFsZnJlc2NvLXZpZXdlcicgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1ZpZXdVdGlsU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgQWxmcmVzY29WaWV3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgnYWRmVmlld2VyJylcbiAgICBhZGZWaWV3ZXI6IFZpZXdlckNvbXBvbmVudDx7IG5vZGU6IE5vZGUgfT47XG5cbiAgICBAQ29udGVudENoaWxkKFZpZXdlclRvb2xiYXJDb21wb25lbnQpXG4gICAgdG9vbGJhcjogVmlld2VyVG9vbGJhckNvbXBvbmVudDtcblxuICAgIEBDb250ZW50Q2hpbGQoVmlld2VyU2lkZWJhckNvbXBvbmVudClcbiAgICBzaWRlYmFyOiBWaWV3ZXJTaWRlYmFyQ29tcG9uZW50O1xuXG4gICAgQENvbnRlbnRDaGlsZChWaWV3ZXJUb29sYmFyQWN0aW9uc0NvbXBvbmVudClcbiAgICB0b29sYmFyQWN0aW9uczogVmlld2VyVG9vbGJhckFjdGlvbnNDb21wb25lbnQ7XG5cbiAgICBAQ29udGVudENoaWxkKFZpZXdlck1vcmVBY3Rpb25zQ29tcG9uZW50KVxuICAgIG1vcmVBY3Rpb25zOiBWaWV3ZXJNb3JlQWN0aW9uc0NvbXBvbmVudDtcblxuICAgIEBDb250ZW50Q2hpbGQoVmlld2VyT3BlbldpdGhDb21wb25lbnQpXG4gICAgb3BlbldpdGg6IFZpZXdlck9wZW5XaXRoQ29tcG9uZW50O1xuXG4gICAgQENvbnRlbnRDaGlsZCgndmlld2VyRXh0ZW5zaW9ucycsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHZpZXdlckV4dGVuc2lvbnM6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogTm9kZSBJZCBvZiB0aGUgZmlsZSB0byBsb2FkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbm9kZUlkOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgLyoqIFZlcnNpb24gSWQgb2YgdGhlIGZpbGUgdG8gbG9hZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHZlcnNpb25JZDogc3RyaW5nID0gbnVsbDtcblxuICAgIC8qKiBTaGFyZWQgbGluayBpZCAodG8gZGlzcGxheSBzaGFyZWQgZmlsZSkuICovXG4gICAgQElucHV0KClcbiAgICBzaGFyZWRMaW5rSWQ6IHN0cmluZyA9IG51bGw7XG5cbiAgICAvKiogSGlkZSBvciBzaG93IHRoZSB2aWV3ZXIgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dWaWV3ZXIgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogTnVtYmVyIG9mIHRpbWVzIHRoZSBWaWV3ZXIgd2lsbCByZXRyeSBmZXRjaGluZyBjb250ZW50IFJlbmRpdGlvbi5cbiAgICAgKiBUaGVyZSBpcyBhIGRlbGF5IG9mIGF0IGxlYXN0IG9uZSBzZWNvbmQgYmV0d2VlbiBhdHRlbXB0cy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG1heFJldHJpZXMgPSAzMDtcblxuICAgIC8qKiBBbGxvd3MgYGJhY2tgIG5hdmlnYXRpb24gKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93R29CYWNrID0gdHJ1ZTtcblxuICAgIC8qKiBIaWRlIG9yIHNob3cgdGhlIHRvb2xiYXIgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dUb29sYmFyID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIElmIGB0cnVlYCB0aGVuIHNob3cgdGhlIFZpZXdlciBhcyBhIGZ1bGwgcGFnZSBvdmVyIHRoZSBjdXJyZW50IGNvbnRlbnQuXG4gICAgICogT3RoZXJ3aXNlLCBmaXQgaW5zaWRlIHRoZSBwYXJlbnQgZGl2LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgb3ZlcmxheU1vZGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFRvZ2dsZXMgYmVmb3JlL25leHQgbmF2aWdhdGlvbi4gWW91IGNhbiB1c2UgdGhlIGFycm93IGJ1dHRvbnMgdG8gbmF2aWdhdGVcbiAgICAgKiBiZXR3ZWVuIGRvY3VtZW50cyBpbiB0aGUgY29sbGVjdGlvbi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93TmF2aWdhdGUgPSBmYWxzZTtcblxuICAgIC8qKiBUb2dnbGVzIHRoZSBcImJlZm9yZVwiIChcIjxcIikgYnV0dG9uLiBSZXF1aXJlcyBgYWxsb3dOYXZpZ2F0ZWAgdG8gYmUgZW5hYmxlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNhbk5hdmlnYXRlQmVmb3JlID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGVzIHRoZSBuZXh0IChcIj5cIikgYnV0dG9uLiBSZXF1aXJlcyBgYWxsb3dOYXZpZ2F0ZWAgdG8gYmUgZW5hYmxlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNhbk5hdmlnYXRlTmV4dCA9IHRydWU7XG5cbiAgICAvKiogQWxsb3cgdGhlIGxlZnQgdGhlIHNpZGViYXIuICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd0xlZnRTaWRlYmFyID0gZmFsc2U7XG5cbiAgICAvKiogQWxsb3cgdGhlIHJpZ2h0IHNpZGViYXIuICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd1JpZ2h0U2lkZWJhciA9IGZhbHNlO1xuXG4gICAgLyoqIFRvZ2dsZXMgcmlnaHQgc2lkZWJhciB2aXNpYmlsaXR5LiBSZXF1aXJlcyBgYWxsb3dSaWdodFNpZGViYXJgIHRvIGJlIHNldCB0byBgdHJ1ZWAuICovXG4gICAgQElucHV0KClcbiAgICBzaG93UmlnaHRTaWRlYmFyID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyBsZWZ0IHNpZGViYXIgdmlzaWJpbGl0eS4gUmVxdWlyZXMgYGFsbG93TGVmdFNpZGViYXJgIHRvIGJlIHNldCB0byBgdHJ1ZWAuICovXG4gICAgQElucHV0KClcbiAgICBzaG93TGVmdFNpZGViYXIgPSBmYWxzZTtcblxuICAgIC8qKiBUb2dnbGVzIGRvd25sb2FkaW5nLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dEb3dubG9hZCA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlcyBwcmludGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93UHJpbnQgPSBmYWxzZTtcblxuICAgIC8qKiBUb2dnbGVzIHRoZSAnRnVsbCBTY3JlZW4nIGZlYXR1cmUuICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd0Z1bGxTY3JlZW4gPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZXMgdGhlICdJbmZvIEJ1dHRvbicgKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZGVJbmZvQnV0dG9uID0gZmFsc2U7XG5cbiAgICAvKiogQ2hhbmdlIHRoZSBjbG9zZSBidXR0b24gcG9zaXRpb24gUmlnaHQvTGVmdCAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VCdXR0b25Qb3NpdGlvbiA9IENsb3NlQnV0dG9uUG9zaXRpb24uTGVmdDtcblxuICAgIC8qKiBUaGUgdGVtcGxhdGUgZm9yIHRoZSByaWdodCBzaWRlYmFyLiBUaGUgdGVtcGxhdGUgY29udGV4dCBjb250YWlucyB0aGUgbG9hZGVkIG5vZGUgZGF0YS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNpZGViYXJSaWdodFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcblxuICAgIC8qKiBUaGUgdGVtcGxhdGUgZm9yIHRoZSBsZWZ0IHNpZGViYXIuIFRoZSB0ZW1wbGF0ZSBjb250ZXh0IGNvbnRhaW5zIHRoZSBsb2FkZWQgbm9kZSBkYXRhLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2lkZWJhckxlZnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XG5cbiAgICAvKiogU2hvdWxkIHZpZXdlciB3b3JrIGluIHJlYWQgb25seSBtb2RlICovXG4gICAgQElucHV0KClcbiAgICByZWFkT25seSA9IGZhbHNlO1xuXG4gICAgLyoqIFRvZ2dsZXMgZGl2aWRlcnMgdmlzaWJpbGl0eSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1Rvb2xiYXJEaXZpZGVycyA9IHRydWU7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBzaGFyZWQgbGluayB1c2VkIGlzIG5vdCB2YWxpZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBpbnZhbGlkU2hhcmVkTGluayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdXNlciBjbGlja3MgJ05hdmlnYXRlIEJlZm9yZScgKFwiPFwiKSBidXR0b24uICovXG4gICAgQE91dHB1dCgpXG4gICAgbmF2aWdhdGVCZWZvcmUgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50PigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB1c2VyIGNsaWNrcyAnTmF2aWdhdGUgTmV4dCcgKFwiPlwiKSBidXR0b24uICovXG4gICAgQE91dHB1dCgpXG4gICAgbmF2aWdhdGVOZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHZpZXdlciBjbG9zZSAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHNob3dWaWV3ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBwcml2YXRlIGNhY2hlQnVzdGVyTnVtYmVyOiBudW1iZXI7XG5cbiAgICB2ZXJzaW9uRW50cnk6IFZlcnNpb25FbnRyeTtcbiAgICB1cmxGaWxlQ29udGVudDogc3RyaW5nO1xuICAgIGZpbGVOYW1lOiBzdHJpbmc7XG4gICAgbWltZVR5cGU6IHN0cmluZztcbiAgICBub2RlTWltZVR5cGU6IHN0cmluZztcbiAgICBub2RlRW50cnk6IE5vZGVFbnRyeTtcbiAgICB0cmFja3M6IFRyYWNrW10gPSBbXTtcbiAgICBjYW5FZGl0Tm9kZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGFsbG93ZWRFZGl0QWN0aW9uczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7XG4gICAgICAgIHJvdGF0ZTogdHJ1ZSxcbiAgICAgICAgY3JvcDogdHJ1ZVxuICAgIH07XG5cbiAgICBzaWRlYmFyUmlnaHRUZW1wbGF0ZUNvbnRleHQ6IHsgbm9kZTogTm9kZSB9ID0geyBub2RlOiBudWxsIH07XG4gICAgc2lkZWJhckxlZnRUZW1wbGF0ZUNvbnRleHQ6IHsgbm9kZTogTm9kZSB9ID0geyBub2RlOiBudWxsIH07XG5cbiAgICBwcml2YXRlIF9zaGFyZWRMaW5rc0FwaTogU2hhcmVkbGlua3NBcGk7XG4gICAgZ2V0IHNoYXJlZExpbmtzQXBpKCk6IFNoYXJlZGxpbmtzQXBpIHtcbiAgICAgICAgdGhpcy5fc2hhcmVkTGlua3NBcGkgPSB0aGlzLl9zaGFyZWRMaW5rc0FwaSA/PyBuZXcgU2hhcmVkbGlua3NBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fc2hhcmVkTGlua3NBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdmVyc2lvbnNBcGk6IFZlcnNpb25zQXBpO1xuICAgIGdldCB2ZXJzaW9uc0FwaSgpOiBWZXJzaW9uc0FwaSB7XG4gICAgICAgIHRoaXMuX3ZlcnNpb25zQXBpID0gdGhpcy5fdmVyc2lvbnNBcGkgPz8gbmV3IFZlcnNpb25zQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZlcnNpb25zQXBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX25vZGVzQXBpOiBOb2Rlc0FwaTtcbiAgICBnZXQgbm9kZXNBcGkoKTogTm9kZXNBcGkge1xuICAgICAgICB0aGlzLl9ub2Rlc0FwaSA9IHRoaXMuX25vZGVzQXBpID8/IG5ldyBOb2Rlc0FwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub2Rlc0FwaTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb250ZW50QXBpOiBDb250ZW50QXBpO1xuICAgIGdldCBjb250ZW50QXBpKCk6IENvbnRlbnRBcGkge1xuICAgICAgICB0aGlzLl9jb250ZW50QXBpID0gdGhpcy5fY29udGVudEFwaSA/PyBuZXcgQ29udGVudEFwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50QXBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFsZnJlc2NvQXBpU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBub2Rlc0FwaVNlcnZpY2U6IE5vZGVzQXBpU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZW5kaXRpb25TZXJ2aWNlOiBSZW5kaXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHZpZXdVdGlsU2VydmljZTogVmlld1V0aWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB1cGxvYWRTZXJ2aWNlOiBVcGxvYWRTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBub2RlQWN0aW9uc1NlcnZpY2U6IE5vZGVBY3Rpb25zU2VydmljZVxuICAgICkge1xuICAgICAgICByZW5kaXRpb25TZXJ2aWNlLm1heFJldHJpZXMgPSB0aGlzLm1heFJldHJpZXM7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMubm9kZXNBcGlTZXJ2aWNlLm5vZGVVcGRhdGVkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIChub2RlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSAmJiBub2RlLmlkID09PSB0aGlzLm5vZGVJZCAmJiB0aGlzLmdldE5vZGVWZXJzaW9uUHJvcGVydHkodGhpcy5ub2RlRW50cnkuZW50cnkpICE9PSB0aGlzLmdldE5vZGVWZXJzaW9uUHJvcGVydHkobm9kZSlcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChub2RlKSA9PiB0aGlzLm9uTm9kZVVwZGF0ZWQobm9kZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgb25Ob2RlVXBkYXRlZChub2RlOiBOb2RlKSB7XG4gICAgICAgIGlmIChub2RlICYmIG5vZGUuaWQgPT09IHRoaXMubm9kZUlkKSB7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRlQ2FjaGVCdXN0ZXJOdW1iZXIoKTtcblxuICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXRVcE5vZGVGaWxlKG5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROb2RlVmVyc2lvblByb3BlcnR5KG5vZGU6IE5vZGUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbm9kZT8ucHJvcGVydGllc1snY206dmVyc2lvbkxhYmVsJ10gPz8gJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBzZXR1cFNoYXJlZExpbmsoKSB7XG4gICAgICAgIHRoaXMuYWxsb3dHb0JhY2sgPSBmYWxzZTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgc2hhcmVkTGlua0VudHJ5ID0gYXdhaXQgdGhpcy5zaGFyZWRMaW5rc0FwaS5nZXRTaGFyZWRMaW5rKHRoaXMuc2hhcmVkTGlua0lkKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2V0VXBTaGFyZWRMaW5rRmlsZShzaGFyZWRMaW5rRW50cnkpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5pbnZhbGlkU2hhcmVkTGluay5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB0aGlzLm1pbWVUeXBlID0gJ2ludmFsaWQtbGluayc7XG4gICAgICAgICAgICB0aGlzLnVybEZpbGVDb250ZW50ID0gJ2ludmFsaWQtZmlsZSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHNldHVwTm9kZSgpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMubm9kZUVudHJ5ID0gYXdhaXQgdGhpcy5ub2Rlc0FwaS5nZXROb2RlKHRoaXMubm9kZUlkLCB7IGluY2x1ZGU6IFsnYWxsb3dhYmxlT3BlcmF0aW9ucyddIH0pO1xuICAgICAgICAgICAgaWYgKHRoaXMudmVyc2lvbklkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52ZXJzaW9uRW50cnkgPSBhd2FpdCB0aGlzLnZlcnNpb25zQXBpLmdldFZlcnNpb24odGhpcy5ub2RlSWQsIHRoaXMudmVyc2lvbklkKTtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNldFVwTm9kZUZpbGUodGhpcy5ub2RlRW50cnkuZW50cnksIHRoaXMudmVyc2lvbkVudHJ5LmVudHJ5KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXRVcE5vZGVGaWxlKHRoaXMubm9kZUVudHJ5LmVudHJ5KTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLnVybEZpbGVDb250ZW50ID0gJ2ludmFsaWQtbm9kZSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHNldFVwTm9kZUZpbGUobm9kZURhdGE6IE5vZGUsIHZlcnNpb25EYXRhPzogVmVyc2lvbik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmNhbkVkaXROb2RlID0gdGhpcy5jb250ZW50U2VydmljZS5oYXNBbGxvd2FibGVPcGVyYXRpb25zKG5vZGVEYXRhLCAndXBkYXRlJyk7XG4gICAgICAgIGxldCBtaW1lVHlwZTogc3RyaW5nO1xuICAgICAgICBsZXQgbm9kZU1pbWVUeXBlOiBzdHJpbmc7XG4gICAgICAgIGxldCB1cmxGaWxlQ29udGVudDogc3RyaW5nO1xuXG4gICAgICAgIGlmICh2ZXJzaW9uRGF0YT8uY29udGVudCkge1xuICAgICAgICAgICAgbWltZVR5cGUgPSB2ZXJzaW9uRGF0YS5jb250ZW50Lm1pbWVUeXBlO1xuICAgICAgICB9IGVsc2UgaWYgKG5vZGVEYXRhLmNvbnRlbnQpIHtcbiAgICAgICAgICAgIG1pbWVUeXBlID0gbm9kZURhdGEuY29udGVudC5taW1lVHlwZTtcbiAgICAgICAgfVxuICAgICAgICBub2RlTWltZVR5cGUgPSBtaW1lVHlwZTtcblxuICAgICAgICBjb25zdCBjdXJyZW50RmlsZVZlcnNpb24gPSB0aGlzLm5vZGVFbnRyeT8uZW50cnk/LnByb3BlcnRpZXM/LlsnY206dmVyc2lvbkxhYmVsJ11cbiAgICAgICAgICAgID8gZW5jb2RlVVJJKHRoaXMubm9kZUVudHJ5Py5lbnRyeT8ucHJvcGVydGllc1snY206dmVyc2lvbkxhYmVsJ10pXG4gICAgICAgICAgICA6IGVuY29kZVVSSSgnMS4wJyk7XG5cbiAgICAgICAgdXJsRmlsZUNvbnRlbnQgPSB2ZXJzaW9uRGF0YSA/IHRoaXMuY29udGVudEFwaS5nZXRWZXJzaW9uQ29udGVudFVybCh0aGlzLm5vZGVJZCwgdmVyc2lvbkRhdGEuaWQpIDogdGhpcy5jb250ZW50QXBpLmdldENvbnRlbnRVcmwodGhpcy5ub2RlSWQpO1xuICAgICAgICB1cmxGaWxlQ29udGVudCA9IHVybEZpbGVDb250ZW50ICsgJyYnICsgY3VycmVudEZpbGVWZXJzaW9uO1xuXG4gICAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSB0aGlzLnZpZXdVdGlsU2VydmljZS5nZXRGaWxlRXh0ZW5zaW9uKHZlcnNpb25EYXRhID8gdmVyc2lvbkRhdGEubmFtZSA6IG5vZGVEYXRhLm5hbWUpO1xuICAgICAgICBjb25zdCB2aWV3ZXJUeXBlID0gdGhpcy52aWV3VXRpbFNlcnZpY2UuZ2V0Vmlld2VyVHlwZShmaWxlRXh0ZW5zaW9uLCBtaW1lVHlwZSk7XG5cbiAgICAgICAgaWYgKHZpZXdlclR5cGUgPT09ICd1bmtub3duJykge1xuICAgICAgICAgICAgbGV0IG5vZGVSZW5kaXRpb247XG4gICAgICAgICAgICBpZiAodmVyc2lvbkRhdGEpIHtcbiAgICAgICAgICAgICAgICBub2RlUmVuZGl0aW9uID0gYXdhaXQgdGhpcy5yZW5kaXRpb25TZXJ2aWNlLmdldE5vZGVSZW5kaXRpb24obm9kZURhdGEuaWQsIHZlcnNpb25EYXRhLmlkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbm9kZVJlbmRpdGlvbiA9IGF3YWl0IHRoaXMucmVuZGl0aW9uU2VydmljZS5nZXROb2RlUmVuZGl0aW9uKG5vZGVEYXRhLmlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChub2RlUmVuZGl0aW9uKSB7XG4gICAgICAgICAgICAgICAgdXJsRmlsZUNvbnRlbnQgPSBub2RlUmVuZGl0aW9uLnVybDtcblxuICAgICAgICAgICAgICAgIG5vZGVNaW1lVHlwZSA9IG5vZGVEYXRhPy5jb250ZW50Py5taW1lVHlwZTtcbiAgICAgICAgICAgICAgICBjb25zdCByZW5kaXRpb25NaW1lVHlwZSA9IG5vZGVSZW5kaXRpb24ubWltZVR5cGU7XG4gICAgICAgICAgICAgICAgbWltZVR5cGUgPSByZW5kaXRpb25NaW1lVHlwZSB8fCBub2RlTWltZVR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodmlld2VyVHlwZSA9PT0gJ21lZGlhJykge1xuICAgICAgICAgICAgdGhpcy50cmFja3MgPSBhd2FpdCB0aGlzLnJlbmRpdGlvblNlcnZpY2UuZ2VuZXJhdGVNZWRpYVRyYWNrc1JlbmRpdGlvbih0aGlzLm5vZGVJZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1pbWVUeXBlID0gbWltZVR5cGU7XG4gICAgICAgIHRoaXMubm9kZU1pbWVUeXBlID0gbm9kZU1pbWVUeXBlO1xuICAgICAgICB0aGlzLmZpbGVOYW1lID0gdmVyc2lvbkRhdGEgPyB2ZXJzaW9uRGF0YS5uYW1lIDogbm9kZURhdGEubmFtZTtcbiAgICAgICAgdGhpcy51cmxGaWxlQ29udGVudCA9IHVybEZpbGVDb250ZW50ICsgKHRoaXMuY2FjaGVCdXN0ZXJOdW1iZXIgPyAnJicgKyB0aGlzLmNhY2hlQnVzdGVyTnVtYmVyIDogJycpO1xuICAgICAgICB0aGlzLnNpZGViYXJSaWdodFRlbXBsYXRlQ29udGV4dC5ub2RlID0gbm9kZURhdGE7XG4gICAgICAgIHRoaXMuc2lkZWJhckxlZnRUZW1wbGF0ZUNvbnRleHQubm9kZSA9IG5vZGVEYXRhO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgc2V0VXBTaGFyZWRMaW5rRmlsZShkZXRhaWxzOiBhbnkpIHtcbiAgICAgICAgbGV0IG1pbWVUeXBlID0gZGV0YWlscy5lbnRyeS5jb250ZW50Lm1pbWVUeXBlO1xuICAgICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gdGhpcy52aWV3VXRpbFNlcnZpY2UuZ2V0RmlsZUV4dGVuc2lvbihkZXRhaWxzLmVudHJ5Lm5hbWUpO1xuICAgICAgICB0aGlzLmZpbGVOYW1lID0gZGV0YWlscy5lbnRyeS5uYW1lO1xuICAgICAgICBsZXQgdXJsRmlsZUNvbnRlbnQgPSB0aGlzLmNvbnRlbnRBcGkuZ2V0U2hhcmVkTGlua0NvbnRlbnRVcmwodGhpcy5zaGFyZWRMaW5rSWQsIGZhbHNlKTtcbiAgICAgICAgY29uc3Qgdmlld2VyVHlwZSA9IHRoaXMudmlld1V0aWxTZXJ2aWNlLmdldFZpZXdlclR5cGUoZmlsZUV4dGVuc2lvbiwgbWltZVR5cGUpO1xuXG4gICAgICAgIGlmICh2aWV3ZXJUeXBlID09PSAndW5rbm93bicpIHtcbiAgICAgICAgICAgICh7IHVybDogdXJsRmlsZUNvbnRlbnQsIG1pbWVUeXBlIH0gPSBhd2FpdCB0aGlzLmdldFNoYXJlZExpbmtSZW5kaXRpb24odGhpcy5zaGFyZWRMaW5rSWQpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1pbWVUeXBlID0gbWltZVR5cGU7XG4gICAgICAgIHRoaXMudXJsRmlsZUNvbnRlbnQgPSB1cmxGaWxlQ29udGVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGdldFNoYXJlZExpbmtSZW5kaXRpb24oc2hhcmVkSWQ6IHN0cmluZyk6IFByb21pc2U8eyB1cmw6IHN0cmluZzsgbWltZVR5cGU6IHN0cmluZyB9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZW5kaXRpb246IFJlbmRpdGlvbkVudHJ5ID0gYXdhaXQgdGhpcy5zaGFyZWRMaW5rc0FwaS5nZXRTaGFyZWRMaW5rUmVuZGl0aW9uKHNoYXJlZElkLCAncGRmJyk7XG4gICAgICAgICAgICBpZiAocmVuZGl0aW9uLmVudHJ5LnN0YXR1cy50b1N0cmluZygpID09PSAnQ1JFQVRFRCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cmxGaWxlQ29udGVudCA9IHRoaXMuY29udGVudEFwaS5nZXRTaGFyZWRMaW5rUmVuZGl0aW9uVXJsKHNoYXJlZElkLCAncGRmJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdXJsOiB1cmxGaWxlQ29udGVudCwgbWltZVR5cGU6ICdhcHBsaWNhdGlvbi9wZGYnIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbmRpdGlvbjogUmVuZGl0aW9uRW50cnkgPSBhd2FpdCB0aGlzLnNoYXJlZExpbmtzQXBpLmdldFNoYXJlZExpbmtSZW5kaXRpb24oc2hhcmVkSWQsICdpbWdwcmV2aWV3Jyk7XG4gICAgICAgICAgICAgICAgaWYgKHJlbmRpdGlvbi5lbnRyeS5zdGF0dXMudG9TdHJpbmcoKSA9PT0gJ0NSRUFURUQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybEZpbGVDb250ZW50ID0gdGhpcy5jb250ZW50QXBpLmdldFNoYXJlZExpbmtSZW5kaXRpb25Vcmwoc2hhcmVkSWQsICdpbWdwcmV2aWV3Jyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHVybDogdXJsRmlsZUNvbnRlbnQsIG1pbWVUeXBlOiAnaW1hZ2UvcG5nJyB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKHJlbmRpdGlvbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdlbmVyYXRlQ2FjaGVCdXN0ZXJOdW1iZXIoKSB7XG4gICAgICAgIHRoaXMuY2FjaGVCdXN0ZXJOdW1iZXIgPSBEYXRlLm5vdygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNsb3NlIHRoZSB2aWV3ZXJcbiAgICAgKi9cbiAgICBvbkNsb3NlKCkge1xuICAgICAgICB0aGlzLnNob3dWaWV3ZXJDaGFuZ2UuZW1pdCh0aGlzLnNob3dWaWV3ZXIpO1xuICAgIH1cblxuICAgIG9uUHJpbnRDb250ZW50KGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmFsbG93UHJpbnQpIHtcbiAgICAgICAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGl0aW9uU2VydmljZS5wcmludEZpbGVHZW5lcmljKHRoaXMubm9kZUlkLCB0aGlzLm1pbWVUeXBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU3VibWl0RmlsZShuZXdJbWFnZUJsb2I6IEJsb2IpIHtcbiAgICAgICAgaWYgKHRoaXM/Lm5vZGVFbnRyeT8uZW50cnk/LmlkICYmICF0aGlzLnJlYWRPbmx5ICYmIHRoaXMuY2FuRWRpdE5vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0ltYWdlRmlsZTogRmlsZSA9IG5ldyBGaWxlKFtuZXdJbWFnZUJsb2JdLCB0aGlzPy5ub2RlRW50cnk/LmVudHJ5Py5uYW1lLCB7IHR5cGU6IHRoaXM/Lm5vZGVFbnRyeT8uZW50cnk/LmNvbnRlbnQ/Lm1pbWVUeXBlIH0pO1xuICAgICAgICAgICAgY29uc3QgbmV3RmlsZSA9IG5ldyBGaWxlTW9kZWwoXG4gICAgICAgICAgICAgICAgbmV3SW1hZ2VGaWxlLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbWFqb3JWZXJzaW9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbmV3VmVyc2lvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ6IHRoaXM/Lm5vZGVFbnRyeT8uZW50cnk/LnBhcmVudElkLFxuICAgICAgICAgICAgICAgICAgICBub2RlVHlwZTogdGhpcz8ubm9kZUVudHJ5Py5lbnRyeT8uY29udGVudD8ubWltZVR5cGVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRoaXM/Lm5vZGVFbnRyeT8uZW50cnk/LmlkXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLmFkZFRvUXVldWUoLi4uW25ld0ZpbGVdKTtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkU2VydmljZS51cGxvYWRGaWxlc0luVGhlUXVldWUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTmF2aWdhdGVCZWZvcmVDbGljayhldmVudDogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZUJlZm9yZS5uZXh0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbk5hdmlnYXRlTmV4dENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLm5hdmlnYXRlTmV4dC5uZXh0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBpc1NvdXJjZURlZmluZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhISh0aGlzLm5vZGVJZCB8fCB0aGlzLnNoYXJlZExpbmtJZCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAodGhpcy5zaG93Vmlld2VyKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNTb3VyY2VEZWZpbmVkKCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0EgY29udGVudCBzb3VyY2UgYXR0cmlidXRlIHZhbHVlIGlzIG1pc3NpbmcuJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjaGFuZ2VzLm5vZGVJZD8uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLm5vZGVJZD8ucHJldmlvdXNWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBOb2RlKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2hhcmVkTGlua0lkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXR1cFNoYXJlZExpbmsoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRG93bmxvYWRGaWxlKCkge1xuICAgICAgICB0aGlzLm5vZGVBY3Rpb25zU2VydmljZS5kb3dubG9hZE5vZGUodGhpcy5ub2RlRW50cnkpO1xuICAgIH1cbn1cbiIsIjxhZGYtdmlld2VyXG4gICAgI2FkZlZpZXdlclxuICAgIFsoc2hvd1ZpZXdlcildPVwic2hvd1ZpZXdlclwiXG4gICAgW2FsbG93R29CYWNrXT1cImFsbG93R29CYWNrXCJcbiAgICBbc2hvd1Rvb2xiYXJdPVwic2hvd1Rvb2xiYXJcIlxuICAgIFtvdmVybGF5TW9kZV09XCJvdmVybGF5TW9kZVwiXG4gICAgW2FsbG93TmF2aWdhdGVdPVwiYWxsb3dOYXZpZ2F0ZVwiXG4gICAgW2Nhbk5hdmlnYXRlQmVmb3JlXT1cImNhbk5hdmlnYXRlQmVmb3JlXCJcbiAgICBbY2FuTmF2aWdhdGVOZXh0XT1cImNhbk5hdmlnYXRlTmV4dFwiXG4gICAgW2FsbG93TGVmdFNpZGViYXJdPVwiYWxsb3dMZWZ0U2lkZWJhclwiXG4gICAgW2FsbG93UmlnaHRTaWRlYmFyXT1cImFsbG93UmlnaHRTaWRlYmFyXCJcbiAgICBbc2hvd1JpZ2h0U2lkZWJhcl09XCJzaG93UmlnaHRTaWRlYmFyXCJcbiAgICBbc2hvd0xlZnRTaWRlYmFyXT1cInNob3dMZWZ0U2lkZWJhclwiXG4gICAgW2FsbG93RnVsbFNjcmVlbl09XCJhbGxvd0Z1bGxTY3JlZW5cIlxuICAgIFtzaWRlYmFyUmlnaHRUZW1wbGF0ZV09XCJzaWRlYmFyUmlnaHRUZW1wbGF0ZVwiXG4gICAgW3NpZGViYXJMZWZ0VGVtcGxhdGVdPVwic2lkZWJhckxlZnRUZW1wbGF0ZVwiXG4gICAgW3NpZGViYXJSaWdodFRlbXBsYXRlQ29udGV4dF09XCJzaWRlYmFyUmlnaHRUZW1wbGF0ZUNvbnRleHRcIlxuICAgIFtzaWRlYmFyTGVmdFRlbXBsYXRlQ29udGV4dF09XCJzaWRlYmFyTGVmdFRlbXBsYXRlQ29udGV4dFwiXG4gICAgW2Nsb3NlQnV0dG9uUG9zaXRpb25dPVwiY2xvc2VCdXR0b25Qb3NpdGlvblwiXG4gICAgW2hpZGVJbmZvQnV0dG9uXT1cImhpZGVJbmZvQnV0dG9uXCJcbiAgICBbZmlsZU5hbWVdPVwiZmlsZU5hbWVcIlxuICAgIFttaW1lVHlwZV09XCJtaW1lVHlwZVwiXG4gICAgW25vZGVNaW1lVHlwZV09XCJub2RlTWltZVR5cGVcIlxuICAgIFt1cmxGaWxlXT1cInVybEZpbGVDb250ZW50XCJcbiAgICBbdHJhY2tzXT1cInRyYWNrc1wiXG4gICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5IHx8ICFjYW5FZGl0Tm9kZVwiXG4gICAgW3Nob3dUb29sYmFyRGl2aWRlcnNdPVwic2hvd1Rvb2xiYXJEaXZpZGVyc1wiXG4gICAgW2FsbG93ZWRFZGl0QWN0aW9uc109XCJhbGxvd2VkRWRpdEFjdGlvbnNcIlxuICAgIFt2aWV3ZXJFeHRlbnNpb25zXT1cInZpZXdlckV4dGVuc2lvbnNcIlxuICAgIFtub2RlSWRdPVwibm9kZUlkXCJcbiAgICAoZG93bmxvYWRGaWxlKT1cIm9uRG93bmxvYWRGaWxlKClcIlxuICAgIChuYXZpZ2F0ZUJlZm9yZSk9XCJvbk5hdmlnYXRlQmVmb3JlQ2xpY2soJGV2ZW50KVwiXG4gICAgKG5hdmlnYXRlTmV4dCk9XCJvbk5hdmlnYXRlTmV4dENsaWNrKCRldmVudClcIlxuICAgIChzaG93Vmlld2VyQ2hhbmdlKT1cIm9uQ2xvc2UoKVwiXG4gICAgKHN1Ym1pdEZpbGUpPVwib25TdWJtaXRGaWxlKCRldmVudClcIj5cblxuICAgIDxhZGYtdmlld2VyLXRvb2xiYXIgKm5nSWY9XCJ0b29sYmFyXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImFkZi12aWV3ZXItdG9vbGJhclwiIC8+XG4gICAgPC9hZGYtdmlld2VyLXRvb2xiYXI+XG5cbiAgICA8YWRmLXZpZXdlci10b29sYmFyLWFjdGlvbnMgKm5nSWY9XCJ0b29sYmFyQWN0aW9uc1wiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhZGYtdmlld2VyLXRvb2xiYXItYWN0aW9uc1wiIC8+XG4gICAgPC9hZGYtdmlld2VyLXRvb2xiYXItYWN0aW9ucz5cblxuICAgIDxhZGYtdmlld2VyLW1vcmUtYWN0aW9ucyAqbmdJZj1cIm1vcmVBY3Rpb25zXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImFkZi12aWV3ZXItbW9yZS1hY3Rpb25zXCIgLz5cbiAgICA8L2FkZi12aWV3ZXItbW9yZS1hY3Rpb25zPlxuXG4gICAgPGFkZi12aWV3ZXItb3Blbi13aXRoICpuZ0lmPVwib3BlbldpdGhcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYWRmLXZpZXdlci1vcGVuLXdpdGhcIiAvPlxuICAgIDwvYWRmLXZpZXdlci1vcGVuLXdpdGg+XG5cbiAgICA8YWRmLXZpZXdlci1zaWRlYmFyICpuZ0lmPVwic2lkZWJhclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhZGYtdmlld2VyLXNpZGViYXJcIiAvPlxuICAgIDwvYWRmLXZpZXdlci1zaWRlYmFyPlxuXG4gICAgPGFkZi12aWV3ZXItdG9vbGJhci1jdXN0b20tYWN0aW9ucyAqbmdJZj1cImFsbG93RG93bmxvYWQgfHwgYWxsb3dQcmludFwiPlxuICAgICAgICA8YnV0dG9uIGlkPVwiYWRmLWFsZnJlc2NvLXZpZXdlci1kb3dubG9hZFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJhbGxvd0Rvd25sb2FkXCJcbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBREZfVklFV0VSLkFDVElPTlMuRE9XTkxPQUQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdBREZfVklFV0VSLkFDVElPTlMuRE9XTkxPQUQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtdG9vbGJhci1kb3dubG9hZFwiXG4gICAgICAgICAgICAgICAgW2FkZk5vZGVEb3dubG9hZF09XCJub2RlRW50cnlcIlxuICAgICAgICAgICAgICAgIFt2ZXJzaW9uXT1cInZlcnNpb25FbnRyeVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uIGlkPVwiYWRmLWFsZnJlc2NvLXZpZXdlci1wcmludFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJhbGxvd1ByaW50XCJcbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBREZfVklFV0VSLkFDVElPTlMuUFJJTlQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdBREZfVklFV0VSLkFDVElPTlMuUFJJTlQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtdG9vbGJhci1wcmludFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUHJpbnRDb250ZW50KCRldmVudClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5wcmludDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvYWRmLXZpZXdlci10b29sYmFyLWN1c3RvbS1hY3Rpb25zPlxuPC9hZGYtdmlld2VyPlxuIl19
408
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxmcmVzY28tdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvdmlld2VyL2NvbXBvbmVudHMvYWxmcmVzY28tdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvdmlld2VyL2NvbXBvbmVudHMvYWxmcmVzY28tdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxtQkFBbUIsRUFFbkIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0Qiw2QkFBNkIsRUFDN0Isc0JBQXNCLEVBQ3RCLGVBQWUsRUFDbEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsVUFBVSxFQUFtQixRQUFRLEVBQWtCLGNBQWMsRUFBeUIsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0ksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0s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VixLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFRTixXQUFXO3NCQURWLEtBQUs7Z0JBUU4sYUFBYTtzQkFEWixLQUFLO2dCQUtOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBS04saUJBQWlCO3NCQURoQixLQUFLO2dCQUtOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUtOLGVBQWU7c0JBRGQsS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBS04sVUFBVTtzQkFEVCxLQUFLO2dCQUtOLGVBQWU7c0JBRGQsS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUs7Z0JBS04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtOLG9CQUFvQjtzQkFEbkIsS0FBSztnQkFLTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFLTixpQkFBaUI7c0JBRGhCLE1BQU07Z0JBS1AsY0FBYztzQkFEYixNQUFNO2dCQUtQLFlBQVk7c0JBRFgsTUFBTTtnQkFLUCxnQkFBZ0I7c0JBRGYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ2xvc2VCdXR0b25Qb3NpdGlvbixcbiAgICBUcmFjayxcbiAgICBWSUVXRVJfRElSRUNUSVZFUyxcbiAgICBWaWV3ZXJDb21wb25lbnQsXG4gICAgVmlld2VyTW9yZUFjdGlvbnNDb21wb25lbnQsXG4gICAgVmlld2VyT3BlbldpdGhDb21wb25lbnQsXG4gICAgVmlld2VyU2lkZWJhckNvbXBvbmVudCxcbiAgICBWaWV3ZXJUb29sYmFyQWN0aW9uc0NvbXBvbmVudCxcbiAgICBWaWV3ZXJUb29sYmFyQ29tcG9uZW50LFxuICAgIFZpZXdVdGlsU2VydmljZVxufSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQWxmcmVzY29BcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWxmcmVzY28tYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udGVudEFwaSwgTm9kZSwgTm9kZUVudHJ5LCBOb2Rlc0FwaSwgUmVuZGl0aW9uRW50cnksIFNoYXJlZGxpbmtzQXBpLCBWZXJzaW9uLCBWZXJzaW9uRW50cnksIFZlcnNpb25zQXBpIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBSZW5kaXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL3JlbmRpdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy9jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZXNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL25vZGVzLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IFVwbG9hZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvdXBsb2FkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVscy9maWxlLm1vZGVsJztcbmltcG9ydCB7IE5vZGVBY3Rpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL2RvY3VtZW50LWxpc3QnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBOb2RlRG93bmxvYWREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtYWxmcmVzY28tdmlld2VyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZVBpcGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgLi4uVklFV0VSX0RJUkVDVElWRVMsIE5vZGVEb3dubG9hZERpcmVjdGl2ZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FsZnJlc2NvLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYWxmcmVzY28tdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1hbGZyZXNjby12aWV3ZXInIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtWaWV3VXRpbFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEFsZnJlc2NvVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ2FkZlZpZXdlcicpXG4gICAgYWRmVmlld2VyOiBWaWV3ZXJDb21wb25lbnQ8eyBub2RlOiBOb2RlIH0+O1xuXG4gICAgQENvbnRlbnRDaGlsZChWaWV3ZXJUb29sYmFyQ29tcG9uZW50KVxuICAgIHRvb2xiYXI6IFZpZXdlclRvb2xiYXJDb21wb25lbnQ7XG5cbiAgICBAQ29udGVudENoaWxkKFZpZXdlclNpZGViYXJDb21wb25lbnQpXG4gICAgc2lkZWJhcjogVmlld2VyU2lkZWJhckNvbXBvbmVudDtcblxuICAgIEBDb250ZW50Q2hpbGQoVmlld2VyVG9vbGJhckFjdGlvbnNDb21wb25lbnQpXG4gICAgdG9vbGJhckFjdGlvbnM6IFZpZXdlclRvb2xiYXJBY3Rpb25zQ29tcG9uZW50O1xuXG4gICAgQENvbnRlbnRDaGlsZChWaWV3ZXJNb3JlQWN0aW9uc0NvbXBvbmVudClcbiAgICBtb3JlQWN0aW9uczogVmlld2VyTW9yZUFjdGlvbnNDb21wb25lbnQ7XG5cbiAgICBAQ29udGVudENoaWxkKFZpZXdlck9wZW5XaXRoQ29tcG9uZW50KVxuICAgIG9wZW5XaXRoOiBWaWV3ZXJPcGVuV2l0aENvbXBvbmVudDtcblxuICAgIEBDb250ZW50Q2hpbGQoJ3ZpZXdlckV4dGVuc2lvbnMnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICB2aWV3ZXJFeHRlbnNpb25zOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIE5vZGUgSWQgb2YgdGhlIGZpbGUgdG8gbG9hZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIG5vZGVJZDogc3RyaW5nID0gbnVsbDtcblxuICAgIC8qKiBWZXJzaW9uIElkIG9mIHRoZSBmaWxlIHRvIGxvYWQuICovXG4gICAgQElucHV0KClcbiAgICB2ZXJzaW9uSWQ6IHN0cmluZyA9IG51bGw7XG5cbiAgICAvKiogU2hhcmVkIGxpbmsgaWQgKHRvIGRpc3BsYXkgc2hhcmVkIGZpbGUpLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hhcmVkTGlua0lkOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgLyoqIEhpZGUgb3Igc2hvdyB0aGUgdmlld2VyICovXG4gICAgQElucHV0KClcbiAgICBzaG93Vmlld2VyID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIE51bWJlciBvZiB0aW1lcyB0aGUgVmlld2VyIHdpbGwgcmV0cnkgZmV0Y2hpbmcgY29udGVudCBSZW5kaXRpb24uXG4gICAgICogVGhlcmUgaXMgYSBkZWxheSBvZiBhdCBsZWFzdCBvbmUgc2Vjb25kIGJldHdlZW4gYXR0ZW1wdHMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXhSZXRyaWVzID0gMzA7XG5cbiAgICAvKiogQWxsb3dzIGBiYWNrYCBuYXZpZ2F0aW9uICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd0dvQmFjayA9IHRydWU7XG5cbiAgICAvKiogSGlkZSBvciBzaG93IHRoZSB0b29sYmFyICovXG4gICAgQElucHV0KClcbiAgICBzaG93VG9vbGJhciA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBJZiBgdHJ1ZWAgdGhlbiBzaG93IHRoZSBWaWV3ZXIgYXMgYSBmdWxsIHBhZ2Ugb3ZlciB0aGUgY3VycmVudCBjb250ZW50LlxuICAgICAqIE90aGVyd2lzZSwgZml0IGluc2lkZSB0aGUgcGFyZW50IGRpdi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG92ZXJsYXlNb2RlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGVzIGJlZm9yZS9uZXh0IG5hdmlnYXRpb24uIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBidXR0b25zIHRvIG5hdmlnYXRlXG4gICAgICogYmV0d2VlbiBkb2N1bWVudHMgaW4gdGhlIGNvbGxlY3Rpb24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd05hdmlnYXRlID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgXCJiZWZvcmVcIiAoXCI8XCIpIGJ1dHRvbi4gUmVxdWlyZXMgYGFsbG93TmF2aWdhdGVgIHRvIGJlIGVuYWJsZWQuICovXG4gICAgQElucHV0KClcbiAgICBjYW5OYXZpZ2F0ZUJlZm9yZSA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgbmV4dCAoXCI+XCIpIGJ1dHRvbi4gUmVxdWlyZXMgYGFsbG93TmF2aWdhdGVgIHRvIGJlIGVuYWJsZWQuICovXG4gICAgQElucHV0KClcbiAgICBjYW5OYXZpZ2F0ZU5leHQgPSB0cnVlO1xuXG4gICAgLyoqIEFsbG93IHRoZSBsZWZ0IHRoZSBzaWRlYmFyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dMZWZ0U2lkZWJhciA9IGZhbHNlO1xuXG4gICAgLyoqIEFsbG93IHRoZSByaWdodCBzaWRlYmFyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dSaWdodFNpZGViYXIgPSBmYWxzZTtcblxuICAgIC8qKiBUb2dnbGVzIHJpZ2h0IHNpZGViYXIgdmlzaWJpbGl0eS4gUmVxdWlyZXMgYGFsbG93UmlnaHRTaWRlYmFyYCB0byBiZSBzZXQgdG8gYHRydWVgLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1JpZ2h0U2lkZWJhciA9IGZhbHNlO1xuXG4gICAgLyoqIFRvZ2dsZXMgbGVmdCBzaWRlYmFyIHZpc2liaWxpdHkuIFJlcXVpcmVzIGBhbGxvd0xlZnRTaWRlYmFyYCB0byBiZSBzZXQgdG8gYHRydWVgLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0xlZnRTaWRlYmFyID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyBkb3dubG9hZGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93RG93bmxvYWQgPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZXMgcHJpbnRpbmcuICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd1ByaW50ID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgJ0Z1bGwgU2NyZWVuJyBmZWF0dXJlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dGdWxsU2NyZWVuID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGVzIHRoZSAnSW5mbyBCdXR0b24nICovXG4gICAgQElucHV0KClcbiAgICBoaWRlSW5mb0J1dHRvbiA9IGZhbHNlO1xuXG4gICAgLyoqIENoYW5nZSB0aGUgY2xvc2UgYnV0dG9uIHBvc2l0aW9uIFJpZ2h0L0xlZnQgKi9cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlQnV0dG9uUG9zaXRpb24gPSBDbG9zZUJ1dHRvblBvc2l0aW9uLkxlZnQ7XG5cbiAgICAvKiogVGhlIHRlbXBsYXRlIGZvciB0aGUgcmlnaHQgc2lkZWJhci4gVGhlIHRlbXBsYXRlIGNvbnRleHQgY29udGFpbnMgdGhlIGxvYWRlZCBub2RlIGRhdGEuICovXG4gICAgQElucHV0KClcbiAgICBzaWRlYmFyUmlnaHRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XG5cbiAgICAvKiogVGhlIHRlbXBsYXRlIGZvciB0aGUgbGVmdCBzaWRlYmFyLiBUaGUgdGVtcGxhdGUgY29udGV4dCBjb250YWlucyB0aGUgbG9hZGVkIG5vZGUgZGF0YS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNpZGViYXJMZWZ0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xuXG4gICAgLyoqIFNob3VsZCB2aWV3ZXIgd29yayBpbiByZWFkIG9ubHkgbW9kZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVhZE9ubHkgPSBmYWxzZTtcblxuICAgIC8qKiBUb2dnbGVzIGRpdmlkZXJzIHZpc2liaWxpdHkgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dUb29sYmFyRGl2aWRlcnMgPSB0cnVlO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgc2hhcmVkIGxpbmsgdXNlZCBpcyBub3QgdmFsaWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgaW52YWxpZFNoYXJlZExpbmsgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHVzZXIgY2xpY2tzICdOYXZpZ2F0ZSBCZWZvcmUnIChcIjxcIikgYnV0dG9uLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIG5hdmlnYXRlQmVmb3JlID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdXNlciBjbGlja3MgJ05hdmlnYXRlIE5leHQnIChcIj5cIikgYnV0dG9uLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIG5hdmlnYXRlTmV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB2aWV3ZXIgY2xvc2UgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzaG93Vmlld2VyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgcHJpdmF0ZSBjYWNoZUJ1c3Rlck51bWJlcjogbnVtYmVyO1xuXG4gICAgdmVyc2lvbkVudHJ5OiBWZXJzaW9uRW50cnk7XG4gICAgdXJsRmlsZUNvbnRlbnQ6IHN0cmluZztcbiAgICBmaWxlTmFtZTogc3RyaW5nO1xuICAgIG1pbWVUeXBlOiBzdHJpbmc7XG4gICAgbm9kZU1pbWVUeXBlOiBzdHJpbmc7XG4gICAgbm9kZUVudHJ5OiBOb2RlRW50cnk7XG4gICAgdHJhY2tzOiBUcmFja1tdID0gW107XG4gICAgY2FuRWRpdE5vZGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBhbGxvd2VkRWRpdEFjdGlvbnM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge1xuICAgICAgICByb3RhdGU6IHRydWUsXG4gICAgICAgIGNyb3A6IHRydWVcbiAgICB9O1xuXG4gICAgc2lkZWJhclJpZ2h0VGVtcGxhdGVDb250ZXh0OiB7IG5vZGU6IE5vZGUgfSA9IHsgbm9kZTogbnVsbCB9O1xuICAgIHNpZGViYXJMZWZ0VGVtcGxhdGVDb250ZXh0OiB7IG5vZGU6IE5vZGUgfSA9IHsgbm9kZTogbnVsbCB9O1xuXG4gICAgcHJpdmF0ZSBfc2hhcmVkTGlua3NBcGk6IFNoYXJlZGxpbmtzQXBpO1xuICAgIGdldCBzaGFyZWRMaW5rc0FwaSgpOiBTaGFyZWRsaW5rc0FwaSB7XG4gICAgICAgIHRoaXMuX3NoYXJlZExpbmtzQXBpID0gdGhpcy5fc2hhcmVkTGlua3NBcGkgPz8gbmV3IFNoYXJlZGxpbmtzQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NoYXJlZExpbmtzQXBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ZlcnNpb25zQXBpOiBWZXJzaW9uc0FwaTtcbiAgICBnZXQgdmVyc2lvbnNBcGkoKTogVmVyc2lvbnNBcGkge1xuICAgICAgICB0aGlzLl92ZXJzaW9uc0FwaSA9IHRoaXMuX3ZlcnNpb25zQXBpID8/IG5ldyBWZXJzaW9uc0FwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl92ZXJzaW9uc0FwaTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9ub2Rlc0FwaTogTm9kZXNBcGk7XG4gICAgZ2V0IG5vZGVzQXBpKCk6IE5vZGVzQXBpIHtcbiAgICAgICAgdGhpcy5fbm9kZXNBcGkgPSB0aGlzLl9ub2Rlc0FwaSA/PyBuZXcgTm9kZXNBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fbm9kZXNBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29udGVudEFwaTogQ29udGVudEFwaTtcbiAgICBnZXQgY29udGVudEFwaSgpOiBDb250ZW50QXBpIHtcbiAgICAgICAgdGhpcy5fY29udGVudEFwaSA9IHRoaXMuX2NvbnRlbnRBcGkgPz8gbmV3IENvbnRlbnRBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudEFwaTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBBbGZyZXNjb0FwaVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbm9kZXNBcGlTZXJ2aWNlOiBOb2Rlc0FwaVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVuZGl0aW9uU2VydmljZTogUmVuZGl0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB2aWV3VXRpbFNlcnZpY2U6IFZpZXdVdGlsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb250ZW50U2VydmljZTogQ29udGVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdXBsb2FkU2VydmljZTogVXBsb2FkU2VydmljZSxcbiAgICAgICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgbm9kZUFjdGlvbnNTZXJ2aWNlOiBOb2RlQWN0aW9uc1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgcmVuZGl0aW9uU2VydmljZS5tYXhSZXRyaWVzID0gdGhpcy5tYXhSZXRyaWVzO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLm5vZGVzQXBpU2VydmljZS5ub2RlVXBkYXRlZFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAobm9kZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUgJiYgbm9kZS5pZCA9PT0gdGhpcy5ub2RlSWQgJiYgdGhpcy5nZXROb2RlVmVyc2lvblByb3BlcnR5KHRoaXMubm9kZUVudHJ5LmVudHJ5KSAhPT0gdGhpcy5nZXROb2RlVmVyc2lvblByb3BlcnR5KG5vZGUpXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgobm9kZSkgPT4gdGhpcy5vbk5vZGVVcGRhdGVkKG5vZGUpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIG9uTm9kZVVwZGF0ZWQobm9kZTogTm9kZSkge1xuICAgICAgICBpZiAobm9kZSAmJiBub2RlLmlkID09PSB0aGlzLm5vZGVJZCkge1xuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZUNhY2hlQnVzdGVyTnVtYmVyKCk7XG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2V0VXBOb2RlRmlsZShub2RlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Tm9kZVZlcnNpb25Qcm9wZXJ0eShub2RlOiBOb2RlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIG5vZGU/LnByb3BlcnRpZXNbJ2NtOnZlcnNpb25MYWJlbCddID8/ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgc2V0dXBTaGFyZWRMaW5rKCkge1xuICAgICAgICB0aGlzLmFsbG93R29CYWNrID0gZmFsc2U7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHNoYXJlZExpbmtFbnRyeSA9IGF3YWl0IHRoaXMuc2hhcmVkTGlua3NBcGkuZ2V0U2hhcmVkTGluayh0aGlzLnNoYXJlZExpbmtJZCk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNldFVwU2hhcmVkTGlua0ZpbGUoc2hhcmVkTGlua0VudHJ5KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuaW52YWxpZFNoYXJlZExpbmsubmV4dCh1bmRlZmluZWQpO1xuICAgICAgICAgICAgdGhpcy5taW1lVHlwZSA9ICdpbnZhbGlkLWxpbmsnO1xuICAgICAgICAgICAgdGhpcy51cmxGaWxlQ29udGVudCA9ICdpbnZhbGlkLWZpbGUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBzZXR1cE5vZGUoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLm5vZGVFbnRyeSA9IGF3YWl0IHRoaXMubm9kZXNBcGkuZ2V0Tm9kZSh0aGlzLm5vZGVJZCwgeyBpbmNsdWRlOiBbJ2FsbG93YWJsZU9wZXJhdGlvbnMnXSB9KTtcbiAgICAgICAgICAgIGlmICh0aGlzLnZlcnNpb25JZCkge1xuICAgICAgICAgICAgICAgIHRoaXMudmVyc2lvbkVudHJ5ID0gYXdhaXQgdGhpcy52ZXJzaW9uc0FwaS5nZXRWZXJzaW9uKHRoaXMubm9kZUlkLCB0aGlzLnZlcnNpb25JZCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXRVcE5vZGVGaWxlKHRoaXMubm9kZUVudHJ5LmVudHJ5LCB0aGlzLnZlcnNpb25FbnRyeS5lbnRyeSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuc2V0VXBOb2RlRmlsZSh0aGlzLm5vZGVFbnRyeS5lbnRyeSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy51cmxGaWxlQ29udGVudCA9ICdpbnZhbGlkLW5vZGUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBzZXRVcE5vZGVGaWxlKG5vZGVEYXRhOiBOb2RlLCB2ZXJzaW9uRGF0YT86IFZlcnNpb24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5jYW5FZGl0Tm9kZSA9IHRoaXMuY29udGVudFNlcnZpY2UuaGFzQWxsb3dhYmxlT3BlcmF0aW9ucyhub2RlRGF0YSwgJ3VwZGF0ZScpO1xuICAgICAgICBsZXQgbWltZVR5cGU6IHN0cmluZztcbiAgICAgICAgbGV0IG5vZGVNaW1lVHlwZTogc3RyaW5nO1xuICAgICAgICBsZXQgdXJsRmlsZUNvbnRlbnQ6IHN0cmluZztcblxuICAgICAgICBpZiAodmVyc2lvbkRhdGE/LmNvbnRlbnQpIHtcbiAgICAgICAgICAgIG1pbWVUeXBlID0gdmVyc2lvbkRhdGEuY29udGVudC5taW1lVHlwZTtcbiAgICAgICAgfSBlbHNlIGlmIChub2RlRGF0YS5jb250ZW50KSB7XG4gICAgICAgICAgICBtaW1lVHlwZSA9IG5vZGVEYXRhLmNvbnRlbnQubWltZVR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgbm9kZU1pbWVUeXBlID0gbWltZVR5cGU7XG5cbiAgICAgICAgY29uc3QgY3VycmVudEZpbGVWZXJzaW9uID0gdGhpcy5ub2RlRW50cnk/LmVudHJ5Py5wcm9wZXJ0aWVzPy5bJ2NtOnZlcnNpb25MYWJlbCddXG4gICAgICAgICAgICA/IGVuY29kZVVSSSh0aGlzLm5vZGVFbnRyeT8uZW50cnk/LnByb3BlcnRpZXNbJ2NtOnZlcnNpb25MYWJlbCddKVxuICAgICAgICAgICAgOiBlbmNvZGVVUkkoJzEuMCcpO1xuXG4gICAgICAgIHVybEZpbGVDb250ZW50ID0gdmVyc2lvbkRhdGEgPyB0aGlzLmNvbnRlbnRBcGkuZ2V0VmVyc2lvbkNvbnRlbnRVcmwodGhpcy5ub2RlSWQsIHZlcnNpb25EYXRhLmlkKSA6IHRoaXMuY29udGVudEFwaS5nZXRDb250ZW50VXJsKHRoaXMubm9kZUlkKTtcbiAgICAgICAgdXJsRmlsZUNvbnRlbnQgPSB1cmxGaWxlQ29udGVudCArICcmJyArIGN1cnJlbnRGaWxlVmVyc2lvbjtcblxuICAgICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gdGhpcy52aWV3VXRpbFNlcnZpY2UuZ2V0RmlsZUV4dGVuc2lvbih2ZXJzaW9uRGF0YSA/IHZlcnNpb25EYXRhLm5hbWUgOiBub2RlRGF0YS5uYW1lKTtcbiAgICAgICAgY29uc3Qgdmlld2VyVHlwZSA9IHRoaXMudmlld1V0aWxTZXJ2aWNlLmdldFZpZXdlclR5cGUoZmlsZUV4dGVuc2lvbiwgbWltZVR5cGUpO1xuXG4gICAgICAgIGlmICh2aWV3ZXJUeXBlID09PSAndW5rbm93bicpIHtcbiAgICAgICAgICAgIGxldCBub2RlUmVuZGl0aW9uO1xuICAgICAgICAgICAgaWYgKHZlcnNpb25EYXRhKSB7XG4gICAgICAgICAgICAgICAgbm9kZVJlbmRpdGlvbiA9IGF3YWl0IHRoaXMucmVuZGl0aW9uU2VydmljZS5nZXROb2RlUmVuZGl0aW9uKG5vZGVEYXRhLmlkLCB2ZXJzaW9uRGF0YS5pZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5vZGVSZW5kaXRpb24gPSBhd2FpdCB0aGlzLnJlbmRpdGlvblNlcnZpY2UuZ2V0Tm9kZVJlbmRpdGlvbihub2RlRGF0YS5pZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobm9kZVJlbmRpdGlvbikge1xuICAgICAgICAgICAgICAgIHVybEZpbGVDb250ZW50ID0gbm9kZVJlbmRpdGlvbi51cmw7XG5cbiAgICAgICAgICAgICAgICBub2RlTWltZVR5cGUgPSBub2RlRGF0YT8uY29udGVudD8ubWltZVR5cGU7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVuZGl0aW9uTWltZVR5cGUgPSBub2RlUmVuZGl0aW9uLm1pbWVUeXBlO1xuICAgICAgICAgICAgICAgIG1pbWVUeXBlID0gcmVuZGl0aW9uTWltZVR5cGUgfHwgbm9kZU1pbWVUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHZpZXdlclR5cGUgPT09ICdtZWRpYScpIHtcbiAgICAgICAgICAgIHRoaXMudHJhY2tzID0gYXdhaXQgdGhpcy5yZW5kaXRpb25TZXJ2aWNlLmdlbmVyYXRlTWVkaWFUcmFja3NSZW5kaXRpb24odGhpcy5ub2RlSWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5taW1lVHlwZSA9IG1pbWVUeXBlO1xuICAgICAgICB0aGlzLm5vZGVNaW1lVHlwZSA9IG5vZGVNaW1lVHlwZTtcbiAgICAgICAgdGhpcy5maWxlTmFtZSA9IHZlcnNpb25EYXRhID8gdmVyc2lvbkRhdGEubmFtZSA6IG5vZGVEYXRhLm5hbWU7XG4gICAgICAgIHRoaXMudXJsRmlsZUNvbnRlbnQgPSB1cmxGaWxlQ29udGVudCArICh0aGlzLmNhY2hlQnVzdGVyTnVtYmVyID8gJyYnICsgdGhpcy5jYWNoZUJ1c3Rlck51bWJlciA6ICcnKTtcbiAgICAgICAgdGhpcy5zaWRlYmFyUmlnaHRUZW1wbGF0ZUNvbnRleHQubm9kZSA9IG5vZGVEYXRhO1xuICAgICAgICB0aGlzLnNpZGViYXJMZWZ0VGVtcGxhdGVDb250ZXh0Lm5vZGUgPSBub2RlRGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHNldFVwU2hhcmVkTGlua0ZpbGUoZGV0YWlsczogYW55KSB7XG4gICAgICAgIGxldCBtaW1lVHlwZSA9IGRldGFpbHMuZW50cnkuY29udGVudC5taW1lVHlwZTtcbiAgICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IHRoaXMudmlld1V0aWxTZXJ2aWNlLmdldEZpbGVFeHRlbnNpb24oZGV0YWlscy5lbnRyeS5uYW1lKTtcbiAgICAgICAgdGhpcy5maWxlTmFtZSA9IGRldGFpbHMuZW50cnkubmFtZTtcbiAgICAgICAgbGV0IHVybEZpbGVDb250ZW50ID0gdGhpcy5jb250ZW50QXBpLmdldFNoYXJlZExpbmtDb250ZW50VXJsKHRoaXMuc2hhcmVkTGlua0lkLCBmYWxzZSk7XG4gICAgICAgIGNvbnN0IHZpZXdlclR5cGUgPSB0aGlzLnZpZXdVdGlsU2VydmljZS5nZXRWaWV3ZXJUeXBlKGZpbGVFeHRlbnNpb24sIG1pbWVUeXBlKTtcblxuICAgICAgICBpZiAodmlld2VyVHlwZSA9PT0gJ3Vua25vd24nKSB7XG4gICAgICAgICAgICAoeyB1cmw6IHVybEZpbGVDb250ZW50LCBtaW1lVHlwZSB9ID0gYXdhaXQgdGhpcy5nZXRTaGFyZWRMaW5rUmVuZGl0aW9uKHRoaXMuc2hhcmVkTGlua0lkKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5taW1lVHlwZSA9IG1pbWVUeXBlO1xuICAgICAgICB0aGlzLnVybEZpbGVDb250ZW50ID0gdXJsRmlsZUNvbnRlbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBnZXRTaGFyZWRMaW5rUmVuZGl0aW9uKHNoYXJlZElkOiBzdHJpbmcpOiBQcm9taXNlPHsgdXJsOiBzdHJpbmc7IG1pbWVUeXBlOiBzdHJpbmcgfT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVuZGl0aW9uOiBSZW5kaXRpb25FbnRyeSA9IGF3YWl0IHRoaXMuc2hhcmVkTGlua3NBcGkuZ2V0U2hhcmVkTGlua1JlbmRpdGlvbihzaGFyZWRJZCwgJ3BkZicpO1xuICAgICAgICAgICAgaWYgKHJlbmRpdGlvbi5lbnRyeS5zdGF0dXMudG9TdHJpbmcoKSA9PT0gJ0NSRUFURUQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXJsRmlsZUNvbnRlbnQgPSB0aGlzLmNvbnRlbnRBcGkuZ2V0U2hhcmVkTGlua1JlbmRpdGlvblVybChzaGFyZWRJZCwgJ3BkZicpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHVybDogdXJsRmlsZUNvbnRlbnQsIG1pbWVUeXBlOiAnYXBwbGljYXRpb24vcGRmJyB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZW5kaXRpb246IFJlbmRpdGlvbkVudHJ5ID0gYXdhaXQgdGhpcy5zaGFyZWRMaW5rc0FwaS5nZXRTaGFyZWRMaW5rUmVuZGl0aW9uKHNoYXJlZElkLCAnaW1ncHJldmlldycpO1xuICAgICAgICAgICAgICAgIGlmIChyZW5kaXRpb24uZW50cnkuc3RhdHVzLnRvU3RyaW5nKCkgPT09ICdDUkVBVEVEJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmxGaWxlQ29udGVudCA9IHRoaXMuY29udGVudEFwaS5nZXRTaGFyZWRMaW5rUmVuZGl0aW9uVXJsKHNoYXJlZElkLCAnaW1ncHJldmlldycpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB1cmw6IHVybEZpbGVDb250ZW50LCBtaW1lVHlwZTogJ2ltYWdlL3BuZycgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChyZW5kaXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZUNhY2hlQnVzdGVyTnVtYmVyKCkge1xuICAgICAgICB0aGlzLmNhY2hlQnVzdGVyTnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjbG9zZSB0aGUgdmlld2VyXG4gICAgICovXG4gICAgb25DbG9zZSgpIHtcbiAgICAgICAgdGhpcy5zaG93Vmlld2VyQ2hhbmdlLmVtaXQodGhpcy5zaG93Vmlld2VyKTtcbiAgICB9XG5cbiAgICBvblByaW50Q29udGVudChldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5hbGxvd1ByaW50KSB7XG4gICAgICAgICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRpdGlvblNlcnZpY2UucHJpbnRGaWxlR2VuZXJpYyh0aGlzLm5vZGVJZCwgdGhpcy5taW1lVHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblN1Ym1pdEZpbGUobmV3SW1hZ2VCbG9iOiBCbG9iKSB7XG4gICAgICAgIGlmICh0aGlzPy5ub2RlRW50cnk/LmVudHJ5Py5pZCAmJiAhdGhpcy5yZWFkT25seSAmJiB0aGlzLmNhbkVkaXROb2RlKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdJbWFnZUZpbGU6IEZpbGUgPSBuZXcgRmlsZShbbmV3SW1hZ2VCbG9iXSwgdGhpcz8ubm9kZUVudHJ5Py5lbnRyeT8ubmFtZSwgeyB0eXBlOiB0aGlzPy5ub2RlRW50cnk/LmVudHJ5Py5jb250ZW50Py5taW1lVHlwZSB9KTtcbiAgICAgICAgICAgIGNvbnN0IG5ld0ZpbGUgPSBuZXcgRmlsZU1vZGVsKFxuICAgICAgICAgICAgICAgIG5ld0ltYWdlRmlsZSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG1ham9yVmVyc2lvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIG5ld1ZlcnNpb246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudElkOiB0aGlzPy5ub2RlRW50cnk/LmVudHJ5Py5wYXJlbnRJZCxcbiAgICAgICAgICAgICAgICAgICAgbm9kZVR5cGU6IHRoaXM/Lm5vZGVFbnRyeT8uZW50cnk/LmNvbnRlbnQ/Lm1pbWVUeXBlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0aGlzPy5ub2RlRW50cnk/LmVudHJ5Py5pZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkU2VydmljZS5hZGRUb1F1ZXVlKC4uLltuZXdGaWxlXSk7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZFNlcnZpY2UudXBsb2FkRmlsZXNJblRoZVF1ZXVlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk5hdmlnYXRlQmVmb3JlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMubmF2aWdhdGVCZWZvcmUubmV4dChldmVudCk7XG4gICAgfVxuXG4gICAgb25OYXZpZ2F0ZU5leHRDbGljayhldmVudDogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZU5leHQubmV4dChldmVudCk7XG4gICAgfVxuXG4gICAgaXNTb3VyY2VEZWZpbmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISEodGhpcy5ub2RlSWQgfHwgdGhpcy5zaGFyZWRMaW5rSWQpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvd1ZpZXdlcikge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzU291cmNlRGVmaW5lZCgpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIGNvbnRlbnQgc291cmNlIGF0dHJpYnV0ZSB2YWx1ZSBpcyBtaXNzaW5nLicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY2hhbmdlcy5ub2RlSWQ/LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5ub2RlSWQ/LnByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldHVwTm9kZSgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNoYXJlZExpbmtJZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBTaGFyZWRMaW5rKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkRvd25sb2FkRmlsZSgpIHtcbiAgICAgICAgdGhpcy5ub2RlQWN0aW9uc1NlcnZpY2UuZG93bmxvYWROb2RlKHRoaXMubm9kZUVudHJ5KTtcbiAgICB9XG59XG4iLCI8YWRmLXZpZXdlclxuICAgICNhZGZWaWV3ZXJcbiAgICBbKHNob3dWaWV3ZXIpXT1cInNob3dWaWV3ZXJcIlxuICAgIFthbGxvd0dvQmFja109XCJhbGxvd0dvQmFja1wiXG4gICAgW3Nob3dUb29sYmFyXT1cInNob3dUb29sYmFyXCJcbiAgICBbb3ZlcmxheU1vZGVdPVwib3ZlcmxheU1vZGVcIlxuICAgIFthbGxvd05hdmlnYXRlXT1cImFsbG93TmF2aWdhdGVcIlxuICAgIFtjYW5OYXZpZ2F0ZUJlZm9yZV09XCJjYW5OYXZpZ2F0ZUJlZm9yZVwiXG4gICAgW2Nhbk5hdmlnYXRlTmV4dF09XCJjYW5OYXZpZ2F0ZU5leHRcIlxuICAgIFthbGxvd0xlZnRTaWRlYmFyXT1cImFsbG93TGVmdFNpZGViYXJcIlxuICAgIFthbGxvd1JpZ2h0U2lkZWJhcl09XCJhbGxvd1JpZ2h0U2lkZWJhclwiXG4gICAgW3Nob3dSaWdodFNpZGViYXJdPVwic2hvd1JpZ2h0U2lkZWJhclwiXG4gICAgW3Nob3dMZWZ0U2lkZWJhcl09XCJzaG93TGVmdFNpZGViYXJcIlxuICAgIFthbGxvd0Z1bGxTY3JlZW5dPVwiYWxsb3dGdWxsU2NyZWVuXCJcbiAgICBbc2lkZWJhclJpZ2h0VGVtcGxhdGVdPVwic2lkZWJhclJpZ2h0VGVtcGxhdGVcIlxuICAgIFtzaWRlYmFyTGVmdFRlbXBsYXRlXT1cInNpZGViYXJMZWZ0VGVtcGxhdGVcIlxuICAgIFtzaWRlYmFyUmlnaHRUZW1wbGF0ZUNvbnRleHRdPVwic2lkZWJhclJpZ2h0VGVtcGxhdGVDb250ZXh0XCJcbiAgICBbc2lkZWJhckxlZnRUZW1wbGF0ZUNvbnRleHRdPVwic2lkZWJhckxlZnRUZW1wbGF0ZUNvbnRleHRcIlxuICAgIFtjbG9zZUJ1dHRvblBvc2l0aW9uXT1cImNsb3NlQnV0dG9uUG9zaXRpb25cIlxuICAgIFtoaWRlSW5mb0J1dHRvbl09XCJoaWRlSW5mb0J1dHRvblwiXG4gICAgW2ZpbGVOYW1lXT1cImZpbGVOYW1lXCJcbiAgICBbbWltZVR5cGVdPVwibWltZVR5cGVcIlxuICAgIFtub2RlTWltZVR5cGVdPVwibm9kZU1pbWVUeXBlXCJcbiAgICBbdXJsRmlsZV09XCJ1cmxGaWxlQ29udGVudFwiXG4gICAgW3RyYWNrc109XCJ0cmFja3NcIlxuICAgIFtyZWFkT25seV09XCJyZWFkT25seSB8fCAhY2FuRWRpdE5vZGVcIlxuICAgIFtzaG93VG9vbGJhckRpdmlkZXJzXT1cInNob3dUb29sYmFyRGl2aWRlcnNcIlxuICAgIFthbGxvd2VkRWRpdEFjdGlvbnNdPVwiYWxsb3dlZEVkaXRBY3Rpb25zXCJcbiAgICBbdmlld2VyRXh0ZW5zaW9uc109XCJ2aWV3ZXJFeHRlbnNpb25zXCJcbiAgICBbbm9kZUlkXT1cIm5vZGVJZFwiXG4gICAgKGRvd25sb2FkRmlsZSk9XCJvbkRvd25sb2FkRmlsZSgpXCJcbiAgICAobmF2aWdhdGVCZWZvcmUpPVwib25OYXZpZ2F0ZUJlZm9yZUNsaWNrKCRldmVudClcIlxuICAgIChuYXZpZ2F0ZU5leHQpPVwib25OYXZpZ2F0ZU5leHRDbGljaygkZXZlbnQpXCJcbiAgICAoc2hvd1ZpZXdlckNoYW5nZSk9XCJvbkNsb3NlKClcIlxuICAgIChzdWJtaXRGaWxlKT1cIm9uU3VibWl0RmlsZSgkZXZlbnQpXCI+XG5cbiAgICA8YWRmLXZpZXdlci10b29sYmFyICpuZ0lmPVwidG9vbGJhclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhZGYtdmlld2VyLXRvb2xiYXJcIiAvPlxuICAgIDwvYWRmLXZpZXdlci10b29sYmFyPlxuXG4gICAgPGFkZi12aWV3ZXItdG9vbGJhci1hY3Rpb25zICpuZ0lmPVwidG9vbGJhckFjdGlvbnNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYWRmLXZpZXdlci10b29sYmFyLWFjdGlvbnNcIiAvPlxuICAgIDwvYWRmLXZpZXdlci10b29sYmFyLWFjdGlvbnM+XG5cbiAgICA8YWRmLXZpZXdlci1tb3JlLWFjdGlvbnMgKm5nSWY9XCJtb3JlQWN0aW9uc1wiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhZGYtdmlld2VyLW1vcmUtYWN0aW9uc1wiIC8+XG4gICAgPC9hZGYtdmlld2VyLW1vcmUtYWN0aW9ucz5cblxuICAgIDxhZGYtdmlld2VyLW9wZW4td2l0aCAqbmdJZj1cIm9wZW5XaXRoXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImFkZi12aWV3ZXItb3Blbi13aXRoXCIgLz5cbiAgICA8L2FkZi12aWV3ZXItb3Blbi13aXRoPlxuXG4gICAgPGFkZi12aWV3ZXItc2lkZWJhciAqbmdJZj1cInNpZGViYXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYWRmLXZpZXdlci1zaWRlYmFyXCIgLz5cbiAgICA8L2FkZi12aWV3ZXItc2lkZWJhcj5cblxuICAgIDxhZGYtdmlld2VyLXRvb2xiYXItY3VzdG9tLWFjdGlvbnMgKm5nSWY9XCJhbGxvd0Rvd25sb2FkIHx8IGFsbG93UHJpbnRcIj5cbiAgICAgICAgPGJ1dHRvbiBpZD1cImFkZi1hbGZyZXNjby12aWV3ZXItZG93bmxvYWRcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYWxsb3dEb3dubG9hZFwiXG4gICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQURGX1ZJRVdFUi5BQ1RJT05TLkRPV05MT0FEJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQURGX1ZJRVdFUi5BQ1RJT05TLkRPV05MT0FEJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLXRvb2xiYXItZG93bmxvYWRcIlxuICAgICAgICAgICAgICAgIFthZGZOb2RlRG93bmxvYWRdPVwibm9kZUVudHJ5XCJcbiAgICAgICAgICAgICAgICBbdmVyc2lvbl09XCJ2ZXJzaW9uRW50cnlcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvbiBpZD1cImFkZi1hbGZyZXNjby12aWV3ZXItcHJpbnRcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYWxsb3dQcmludFwiXG4gICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQURGX1ZJRVdFUi5BQ1RJT05TLlBSSU5UJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQURGX1ZJRVdFUi5BQ1RJT05TLlBSSU5UJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLXRvb2xiYXItcHJpbnRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblByaW50Q29udGVudCgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+cHJpbnQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2FkZi12aWV3ZXItdG9vbGJhci1jdXN0b20tYWN0aW9ucz5cbjwvYWRmLXZpZXdlcj5cbiJdfQ==