@eo-sdk/client 10.0.0-rc.2 → 10.0.0

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 (85) hide show
  1. package/app/eo-client/about-state/about-state.component.d.ts +2 -6
  2. package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
  3. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts +3 -2
  4. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts.map +1 -1
  5. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts.map +1 -1
  6. package/app/eo-client/settings/settings.component.d.ts.map +1 -1
  7. package/app/eo-framework/actions/action.module.d.ts +52 -62
  8. package/app/eo-framework/actions/action.module.d.ts.map +1 -1
  9. package/app/eo-framework/actions/actions/clipboard/clipboard-action.d.ts +5 -5
  10. package/app/eo-framework/actions/actions/clipboard/clipboard-action.d.ts.map +1 -1
  11. package/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.d.ts +31 -0
  12. package/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.d.ts.map +1 -0
  13. package/app/eo-framework/actions/actions/download-action/download-action.d.ts +5 -5
  14. package/app/eo-framework/actions/actions/download-action/download-action.d.ts.map +1 -1
  15. package/app/eo-framework/actions/actions/download-action/download-object-action/download-object-action.component.d.ts +26 -0
  16. package/app/eo-framework/actions/actions/download-action/download-object-action/download-object-action.component.d.ts.map +1 -0
  17. package/app/eo-framework/actions/actions/email/email/email.component.d.ts +30 -0
  18. package/app/eo-framework/actions/actions/email/email/email.component.d.ts.map +1 -0
  19. package/app/eo-framework/actions/actions/email/email-action.d.ts +5 -5
  20. package/app/eo-framework/actions/actions/email/email-action.d.ts.map +1 -1
  21. package/app/eo-framework/actions/actions/signature-action/signature/signature.component.d.ts.map +1 -1
  22. package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts +1 -1
  23. package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts.map +1 -1
  24. package/app/eo-framework/form-elements/date/date.component.d.ts +1 -0
  25. package/app/eo-framework/form-elements/date/date.component.d.ts.map +1 -1
  26. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts +2 -1
  27. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
  28. package/assets/_default/i18n/de.json +2 -3
  29. package/assets/_default/i18n/en.json +16 -17
  30. package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
  31. package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +4 -3
  32. package/esm2020/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +2 -2
  33. package/esm2020/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +6 -3
  34. package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +4 -3
  35. package/esm2020/app/eo-client/object-state/object-state/object-state.component.mjs +3 -3
  36. package/esm2020/app/eo-client/settings/settings.component.mjs +2 -3
  37. package/esm2020/app/eo-framework/actions/action.module.mjs +16 -36
  38. package/esm2020/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +6 -6
  39. package/esm2020/app/eo-framework/actions/actions/clipboard/clipboard-action.mjs +3 -5
  40. package/esm2020/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.mjs +95 -0
  41. package/esm2020/app/eo-framework/actions/actions/download-action/download-action.mjs +3 -4
  42. package/esm2020/app/eo-framework/actions/actions/download-action/download-object-action/download-object-action.component.mjs +58 -0
  43. package/esm2020/app/eo-framework/actions/actions/email/email/email.component.mjs +97 -0
  44. package/esm2020/app/eo-framework/actions/actions/email/email-action.mjs +3 -5
  45. package/esm2020/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +1 -2
  46. package/esm2020/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +3 -3
  47. package/esm2020/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +8 -16
  48. package/esm2020/app/eo-framework/form-elements/date/date.component.mjs +7 -5
  49. package/esm2020/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +39 -24
  50. package/esm2020/app/eo-framework/grid/filters/codesystem-filter.component.mjs +3 -3
  51. package/esm2020/app/eo-framework/grid/filters/datetime-filter.component.mjs +3 -3
  52. package/esm2020/app/eo-framework/prepare-details/prepare-details.component.mjs +2 -2
  53. package/esm2020/app/eo-framework/util/directive/trap-focus.directive.mjs +2 -2
  54. package/fesm2015/eo-sdk-client.mjs +353 -458
  55. package/fesm2015/eo-sdk-client.mjs.map +1 -1
  56. package/fesm2020/eo-sdk-client.mjs +353 -458
  57. package/fesm2020/eo-sdk-client.mjs.map +1 -1
  58. package/package.json +4 -4
  59. package/scss/_eo-variables.scss +1 -0
  60. package/styles.css +2 -1
  61. package/styles.scss +1 -1
  62. package/app/eo-framework/actions/actions/clipboard/clipboard-link-action.d.ts +0 -25
  63. package/app/eo-framework/actions/actions/clipboard/clipboard-link-action.d.ts.map +0 -1
  64. package/app/eo-framework/actions/actions/clipboard/clipboard-original-action.d.ts +0 -24
  65. package/app/eo-framework/actions/actions/clipboard/clipboard-original-action.d.ts.map +0 -1
  66. package/app/eo-framework/actions/actions/clipboard/clipboard-pdf-action.d.ts +0 -24
  67. package/app/eo-framework/actions/actions/clipboard/clipboard-pdf-action.d.ts.map +0 -1
  68. package/app/eo-framework/actions/actions/download-original-action/download-original-action.d.ts +0 -25
  69. package/app/eo-framework/actions/actions/download-original-action/download-original-action.d.ts.map +0 -1
  70. package/app/eo-framework/actions/actions/download-pdf-action/download-pdf-action.d.ts +0 -26
  71. package/app/eo-framework/actions/actions/download-pdf-action/download-pdf-action.d.ts.map +0 -1
  72. package/app/eo-framework/actions/actions/email/email-link-action.d.ts +0 -25
  73. package/app/eo-framework/actions/actions/email/email-link-action.d.ts.map +0 -1
  74. package/app/eo-framework/actions/actions/email/email-original-action.d.ts +0 -24
  75. package/app/eo-framework/actions/actions/email/email-original-action.d.ts.map +0 -1
  76. package/app/eo-framework/actions/actions/email/email-pdf-action.d.ts +0 -24
  77. package/app/eo-framework/actions/actions/email/email-pdf-action.d.ts.map +0 -1
  78. package/esm2020/app/eo-framework/actions/actions/clipboard/clipboard-link-action.mjs +0 -60
  79. package/esm2020/app/eo-framework/actions/actions/clipboard/clipboard-original-action.mjs +0 -45
  80. package/esm2020/app/eo-framework/actions/actions/clipboard/clipboard-pdf-action.mjs +0 -45
  81. package/esm2020/app/eo-framework/actions/actions/download-original-action/download-original-action.mjs +0 -39
  82. package/esm2020/app/eo-framework/actions/actions/download-pdf-action/download-pdf-action.mjs +0 -42
  83. package/esm2020/app/eo-framework/actions/actions/email/email-link-action.mjs +0 -64
  84. package/esm2020/app/eo-framework/actions/actions/email/email-original-action.mjs +0 -44
  85. package/esm2020/app/eo-framework/actions/actions/email/email-pdf-action.mjs +0 -45
@@ -325,18 +325,18 @@ let ObjectStateComponent = class ObjectStateComponent {
325
325
  }
326
326
  };
327
327
  ObjectStateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ObjectStateComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.PageTitleService }, { token: i3.SystemService }, { token: i3.DmsService }, { token: i4.SelectionService }, { token: i3.TranslateService }, { token: i5.ObjectStateService }, { token: i6.ActionService }, { token: i7.LocationService }, { token: i8.PendingChangesService }, { token: i3.EventService }, { token: i9.GridService }, { token: i10.LayoutService }], target: i0.ɵɵFactoryTarget.Component });
328
- ObjectStateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ObjectStateComponent, selector: "eo-object-state", outputs: { onTermFilterChange: "onTermFilterChange" }, providers: [ObjectStateService], viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<div class=\"file\" [ngClass]=\"{ready: context || context === null}\" *ngIf=\"!error; else errorTmpl\">\n\n <div class=\"file-head\" *ngIf=\"context && context.isContextFolder\">\n <div class=\"left\">\n <eo-icon class=\"type-icon\" [objectType]=\"context.type\"></eo-icon>\n <div class=\"title\" (click)=\"setupFrontPage()\" (contextmenu)=\"onContextMenuClicked($event)\">\n <div class=\"label\">{{context.title || '&nbsp;'}}</div>\n <div class=\"description\">{{context.description || '&nbsp;'}}</div>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"fold\">\n <span class=\"created-date\">{{context.created.on | localeDate}}</span>\n <span class=\"created-title\">{{context.created.by.title}}</span>\n </div>\n <div class=\"actions\">\n </div>\n </div>\n </div>\n\n <div class=\"file-body\">\n <div class=\"file-body-wrap\">\n\n <ng-container *ngIf=\"context !== null; else tplDetailsOnly\">\n\n <yvc-split-view [layoutSettingsID]=\"cacheLayout\">\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"20\" [visible]=\"true\">\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>\n eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onTermFilterChange.emit($event)\" />\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.tree.state\" *ngIf=\"contextTree\" [highlightedNodes]=\"highlightedNodes\"\n [treeUpdate]=\"contextTreeUpdate\" [(ngModel)]=\"selectedNodes\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\"\n translate>eo.state.object.tree.references</h3>\n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.treeRef.state\" *ngIf=\"contextTreeRef?.length\"\n [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"\n class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"35\" [visible]=\"true\">\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\"\n [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\">\n <eo-tab-plugin [type]=\"'object-state-details-tab.object'\"></eo-tab-plugin>\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\"\n [reference]=\"selectedNode?.isReference\" [searchResult]=\"searchResult\" [configType]=\"configType\"\n [configContext]=\"\" [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n </ng-template>\n\n <ng-template yvcSplitArea [size]=\"45\" [visible]=\"true\">\n <ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container>\n </ng-template>\n </yvc-split-view>\n\n </ng-container>\n\n <ng-template #tplDetailsOnly><ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container></ng-template>\n\n <ng-template #tplObjectDetails>\n <eo-object-details [applySelection]=\"{}\" [reference]=\"isReferenceActive\"\n [cacheLayout]=\"'object.state--' + typeName + '.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.object'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n </div>\n </div>\n</div>\n\n<ng-template #errorTmpl>\n <eo-error404></eo-error404>\n</ng-template>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding)}:host .eo-body.tree h3{margin:0;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) 0 var(--app-pane-padding);font-size:var(--font-subhead);font-weight:var(--font-weight-normal);color:var(--text-color-caption);border-top:1px solid var(--list-item-border-color)}:host .file{height:100%;display:flex;flex-flow:column}:host .file .file-head,:host .file .file-body{opacity:0;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host .file.ready .file-head,:host .file.ready .file-body{opacity:1}:host .file .empty-state{background:rgba(var(--color-white-rgb),.3);height:100%;display:flex;flex-flow:column;align-items:center;justify-content:center}:host .file.undocked .empty-state{background:var(--main-background)}:host .file-head{color:var(--text-color-caption);margin-bottom:calc(var(--app-pane-padding) / 4);display:flex;flex-flow:row nowrap;width:100%}:host .file-head eo-icon{padding:var(--app-pane-padding);box-sizing:content-box}:host .file-head .left,:host .file-head .right{border-bottom:4px solid var(--color-primary-3);box-sizing:border-box}:host .file-head .left{flex:0 0 auto;display:flex;flex-flow:row nowrap;background:var(--color-white);max-width:calc(100% - 350px)}:host .file-head .left div.title{flex:0 0 auto;padding:var(--app-pane-padding) 0;cursor:pointer}[dir=ltr] :host .file-head .left div.title{padding-right:calc(var(--app-pane-padding) * 2);padding-left:0}[dir=rtl] :host .file-head .left div.title{padding-left:calc(var(--app-pane-padding) * 2);padding-right:0}:host .file-head .left div.title .label,:host .file-head .left div.title .description{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host .file-head .left div.title .label{font-size:var(--font-title)}:host .file-head .right{flex:1 1 auto;display:flex;flex-flow:column;min-width:350px}:host .file-head .right .fold{flex:0 0 auto;background:var(--main-background);color:var(--text-color-caption);text-align:right;padding-bottom:calc(var(--app-pane-padding) / 2);display:flex;justify-content:flex-end}[dir=rtl] :host .file-head .right .fold{text-align:right;text-align:left}:host .file-head .right .fold .created-date{padding-right:5px}:host .file-head .right .actions{background:var(--color-white);flex:1 1 auto;display:flex;align-items:center;padding:0 var(--app-pane-padding);justify-content:flex-end}:host .file-body{flex:1 1 auto;position:relative}:host .file-body .file-body-wrap{position:absolute;inset:0;overflow:hidden}:host .file-body .file-body-wrap .frontPage{position:absolute;inset:0;overflow:hidden}:host ::ng-deep .tree .tree-panel-error{display:flex;height:100%;flex-flow:column;justify-content:center;align-items:center;color:var(--text-color-caption)}:host ::ng-deep .tree .eo-head{background-color:var(--color-primary-3)}:host ::ng-deep .tree .eo-head .eo-header-info{padding:0}:host ::ng-deep .tree .eo-head .eo-header-info h2{flex:1 1 auto;color:var(--color-white)}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form{width:61%;flex:0 0 auto;margin-bottom:var(--app-pane-padding);min-width:200px;align-self:flex-end}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form input{background-color:transparent;border:0;outline:0}:host ::ng-deep .tree eo-result-list .eo-head{background-color:var(--panel-background)}:host ::ng-deep yvc-split-view{height:100%}:host ::ng-deep eo-tree{padding:var(--app-pane-padding)}:host ::ng-deep eo-object-details{background:var(--panel-background-grey)}\n"], dependencies: [{ kind: "directive", type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i11.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i12.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i12.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: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i12.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i12.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i12.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i12.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i13.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i14.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i15.ResultListComponent, selector: "eo-result-list", inputs: ["title", "configType", "configContext", "clearAfterExecute", "emptyMessage", "selectFirst", "gridOptions", "hasIcon", "reference", "query", "searchResult"], outputs: ["onSelectionChanged", "onFocusChanged", "onDoubleClick", "onContextMenu", "onCountChanged", "onRefresh", "onResult", "onQueryInvalid"] }, { kind: "component", type: i16.ObjectDetailsComponent, selector: "eo-object-details", inputs: ["reference", "searchTerm", "enableCompare", "recyclebinTabs", "enableDiff", "enableSync", "cacheLayout", "emptyState", "params", "params2", "item", "item2", "applySelection", "parseDmsParams"], outputs: ["hasContent"] }, { kind: "component", type: i17.TreeComponent, selector: "eo-tree", inputs: ["options", "isDisplayed", "readonly", "selectionKey", "highlightedNodes", "tree", "treeUpdate"], outputs: ["expandedNodesChanged", "onSelected"] }, { kind: "component", type: i18.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i19.ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: i20.Error404Component, selector: "eo-error404" }, { kind: "component", type: i21.TabPluginComponent, selector: "eo-tab-plugin", inputs: ["type"] }, { kind: "component", type: i22.ObjectStateDetailsComponent, selector: "eo-object-state-details", inputs: ["context", "selectedItem", "seenItems", "frontPageData", "visible"], outputs: ["onTabChange"] }, { kind: "component", type: i23.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i23.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }, { kind: "pipe", type: i24.LocaleDatePipe, name: "localeDate" }], animations: [panelLoadingAnimations] });
328
+ ObjectStateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ObjectStateComponent, selector: "eo-object-state", outputs: { onTermFilterChange: "onTermFilterChange" }, providers: [ObjectStateService], viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<div class=\"file\" [ngClass]=\"{ready: context || context === null}\" *ngIf=\"!error; else errorTmpl\">\n\n <div class=\"file-head\" *ngIf=\"context && context.isContextFolder\">\n <div class=\"left\">\n <eo-icon class=\"type-icon\" [objectType]=\"context.type\"></eo-icon>\n <div class=\"title\" (click)=\"setupFrontPage()\" (contextmenu)=\"onContextMenuClicked($event)\">\n <div class=\"label\">{{context.title || '&nbsp;'}}</div>\n <div class=\"description\">{{context.description || '&nbsp;'}}</div>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"fold\">\n <span class=\"created-date\">{{context.created.on | localeDate}}</span>\n <span class=\"created-title\">{{context.created.by.title}}</span>\n </div>\n <div class=\"actions\">\n </div>\n </div>\n </div>\n\n <div class=\"file-body\">\n <div class=\"file-body-wrap\">\n\n <ng-container *ngIf=\"context !== null; else tplDetailsOnly\">\n\n <yvc-split-view *ngIf=\"cacheLayout\" [layoutSettingsID]=\"cacheLayout\">\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"20\" [visible]=\"true\">\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>\n eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onTermFilterChange.emit($event)\" />\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.tree.state\" *ngIf=\"contextTree\" [highlightedNodes]=\"highlightedNodes\"\n [treeUpdate]=\"contextTreeUpdate\" [(ngModel)]=\"selectedNodes\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\"\n translate>eo.state.object.tree.references</h3>\n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.treeRef.state\" *ngIf=\"contextTreeRef?.length\"\n [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"\n class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"35\" [visible]=\"true\">\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\"\n [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\">\n <eo-tab-plugin [type]=\"'object-state-details-tab.object'\"></eo-tab-plugin>\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\"\n [reference]=\"selectedNode?.isReference\" [searchResult]=\"searchResult\" [configType]=\"configType\"\n [configContext]=\"\" [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n </ng-template>\n\n <ng-template yvcSplitArea [size]=\"45\" [visible]=\"true\">\n <ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container>\n </ng-template>\n </yvc-split-view>\n\n </ng-container>\n\n <ng-template #tplDetailsOnly><ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container></ng-template>\n\n <ng-template #tplObjectDetails>\n <eo-object-details [applySelection]=\"{}\" [reference]=\"isReferenceActive\"\n [cacheLayout]=\"'object.state--' + typeName + '.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.object'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n </div>\n </div>\n</div>\n\n<ng-template #errorTmpl>\n <eo-error404></eo-error404>\n</ng-template>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding)}:host .eo-body.tree h3{margin:0;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) 0 var(--app-pane-padding);font-size:var(--font-subhead);font-weight:var(--font-weight-normal);color:var(--text-color-caption);border-top:1px solid var(--list-item-border-color)}:host .file{height:100%;display:flex;flex-flow:column}:host .file .file-head,:host .file .file-body{opacity:0;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host .file.ready .file-head,:host .file.ready .file-body{opacity:1}:host .file .empty-state{background:rgba(var(--color-white-rgb),.3);height:100%;display:flex;flex-flow:column;align-items:center;justify-content:center}:host .file.undocked .empty-state{background:var(--main-background)}:host .file-head{color:var(--text-color-caption);margin-bottom:calc(var(--app-pane-padding) / 4);display:flex;flex-flow:row nowrap;width:100%}:host .file-head eo-icon{padding:var(--app-pane-padding);box-sizing:content-box}:host .file-head .left,:host .file-head .right{border-bottom:4px solid var(--color-primary-3);box-sizing:border-box}:host .file-head .left{flex:0 0 auto;display:flex;flex-flow:row nowrap;background:var(--color-white);max-width:calc(100% - 350px)}:host .file-head .left div.title{flex:0 0 auto;padding:var(--app-pane-padding) 0;cursor:pointer}[dir=ltr] :host .file-head .left div.title{padding-right:calc(var(--app-pane-padding) * 2);padding-left:0}[dir=rtl] :host .file-head .left div.title{padding-left:calc(var(--app-pane-padding) * 2);padding-right:0}:host .file-head .left div.title .label,:host .file-head .left div.title .description{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host .file-head .left div.title .label{font-size:var(--font-title)}:host .file-head .right{flex:1 1 auto;display:flex;flex-flow:column;min-width:350px}:host .file-head .right .fold{flex:0 0 auto;background:var(--main-background);color:var(--text-color-caption);text-align:right;padding-bottom:calc(var(--app-pane-padding) / 2);display:flex;justify-content:flex-end}[dir=rtl] :host .file-head .right .fold{text-align:right;text-align:left}:host .file-head .right .fold .created-date{padding-right:5px}:host .file-head .right .actions{background:var(--color-white);flex:1 1 auto;display:flex;align-items:center;padding:0 var(--app-pane-padding);justify-content:flex-end}:host .file-body{flex:1 1 auto;position:relative}:host .file-body .file-body-wrap{position:absolute;inset:0;overflow:hidden}:host .file-body .file-body-wrap .frontPage{position:absolute;inset:0;overflow:hidden}:host ::ng-deep .tree .tree-panel-error{display:flex;height:100%;flex-flow:column;justify-content:center;align-items:center;color:var(--text-color-caption)}:host ::ng-deep .tree .eo-head{background-color:var(--color-primary-3)}:host ::ng-deep .tree .eo-head .eo-header-info{padding:0}:host ::ng-deep .tree .eo-head .eo-header-info h2{flex:1 1 auto;color:var(--color-white)}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form{width:61%;flex:0 0 auto;margin-bottom:var(--app-pane-padding);min-width:200px;align-self:flex-end}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form input{background-color:transparent;border:0;outline:0}:host ::ng-deep .tree eo-result-list .eo-head{background-color:var(--panel-background)}:host ::ng-deep yvc-split-view{height:100%}:host ::ng-deep eo-tree{padding:var(--app-pane-padding)}:host ::ng-deep eo-object-details{background:var(--panel-background-grey)}\n"], dependencies: [{ kind: "directive", type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i11.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i12.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i12.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: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i12.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i12.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i12.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i12.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i13.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i14.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i15.ResultListComponent, selector: "eo-result-list", inputs: ["title", "configType", "configContext", "clearAfterExecute", "emptyMessage", "selectFirst", "gridOptions", "hasIcon", "reference", "query", "searchResult"], outputs: ["onSelectionChanged", "onFocusChanged", "onDoubleClick", "onContextMenu", "onCountChanged", "onRefresh", "onResult", "onQueryInvalid"] }, { kind: "component", type: i16.ObjectDetailsComponent, selector: "eo-object-details", inputs: ["reference", "searchTerm", "enableCompare", "recyclebinTabs", "enableDiff", "enableSync", "cacheLayout", "emptyState", "params", "params2", "item", "item2", "applySelection", "parseDmsParams"], outputs: ["hasContent"] }, { kind: "component", type: i17.TreeComponent, selector: "eo-tree", inputs: ["options", "isDisplayed", "readonly", "selectionKey", "highlightedNodes", "tree", "treeUpdate"], outputs: ["expandedNodesChanged", "onSelected"] }, { kind: "component", type: i18.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i19.ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: i20.Error404Component, selector: "eo-error404" }, { kind: "component", type: i21.TabPluginComponent, selector: "eo-tab-plugin", inputs: ["type"] }, { kind: "component", type: i22.ObjectStateDetailsComponent, selector: "eo-object-state-details", inputs: ["context", "selectedItem", "seenItems", "frontPageData", "visible"], outputs: ["onTabChange"] }, { kind: "component", type: i23.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i23.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }, { kind: "pipe", type: i24.LocaleDatePipe, name: "localeDate" }], animations: [panelLoadingAnimations] });
329
329
  ObjectStateComponent = __decorate([
330
330
  UntilDestroy()
331
331
  ], ObjectStateComponent);
332
332
  export { ObjectStateComponent };
333
333
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ObjectStateComponent, decorators: [{
334
334
  type: Component,
335
- args: [{ selector: 'eo-object-state', providers: [ObjectStateService], animations: [panelLoadingAnimations], template: "<div class=\"file\" [ngClass]=\"{ready: context || context === null}\" *ngIf=\"!error; else errorTmpl\">\n\n <div class=\"file-head\" *ngIf=\"context && context.isContextFolder\">\n <div class=\"left\">\n <eo-icon class=\"type-icon\" [objectType]=\"context.type\"></eo-icon>\n <div class=\"title\" (click)=\"setupFrontPage()\" (contextmenu)=\"onContextMenuClicked($event)\">\n <div class=\"label\">{{context.title || '&nbsp;'}}</div>\n <div class=\"description\">{{context.description || '&nbsp;'}}</div>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"fold\">\n <span class=\"created-date\">{{context.created.on | localeDate}}</span>\n <span class=\"created-title\">{{context.created.by.title}}</span>\n </div>\n <div class=\"actions\">\n </div>\n </div>\n </div>\n\n <div class=\"file-body\">\n <div class=\"file-body-wrap\">\n\n <ng-container *ngIf=\"context !== null; else tplDetailsOnly\">\n\n <yvc-split-view [layoutSettingsID]=\"cacheLayout\">\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"20\" [visible]=\"true\">\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>\n eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onTermFilterChange.emit($event)\" />\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.tree.state\" *ngIf=\"contextTree\" [highlightedNodes]=\"highlightedNodes\"\n [treeUpdate]=\"contextTreeUpdate\" [(ngModel)]=\"selectedNodes\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\"\n translate>eo.state.object.tree.references</h3>\n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.treeRef.state\" *ngIf=\"contextTreeRef?.length\"\n [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"\n class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"35\" [visible]=\"true\">\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\"\n [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\">\n <eo-tab-plugin [type]=\"'object-state-details-tab.object'\"></eo-tab-plugin>\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\"\n [reference]=\"selectedNode?.isReference\" [searchResult]=\"searchResult\" [configType]=\"configType\"\n [configContext]=\"\" [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n </ng-template>\n\n <ng-template yvcSplitArea [size]=\"45\" [visible]=\"true\">\n <ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container>\n </ng-template>\n </yvc-split-view>\n\n </ng-container>\n\n <ng-template #tplDetailsOnly><ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container></ng-template>\n\n <ng-template #tplObjectDetails>\n <eo-object-details [applySelection]=\"{}\" [reference]=\"isReferenceActive\"\n [cacheLayout]=\"'object.state--' + typeName + '.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.object'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n </div>\n </div>\n</div>\n\n<ng-template #errorTmpl>\n <eo-error404></eo-error404>\n</ng-template>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding)}:host .eo-body.tree h3{margin:0;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) 0 var(--app-pane-padding);font-size:var(--font-subhead);font-weight:var(--font-weight-normal);color:var(--text-color-caption);border-top:1px solid var(--list-item-border-color)}:host .file{height:100%;display:flex;flex-flow:column}:host .file .file-head,:host .file .file-body{opacity:0;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host .file.ready .file-head,:host .file.ready .file-body{opacity:1}:host .file .empty-state{background:rgba(var(--color-white-rgb),.3);height:100%;display:flex;flex-flow:column;align-items:center;justify-content:center}:host .file.undocked .empty-state{background:var(--main-background)}:host .file-head{color:var(--text-color-caption);margin-bottom:calc(var(--app-pane-padding) / 4);display:flex;flex-flow:row nowrap;width:100%}:host .file-head eo-icon{padding:var(--app-pane-padding);box-sizing:content-box}:host .file-head .left,:host .file-head .right{border-bottom:4px solid var(--color-primary-3);box-sizing:border-box}:host .file-head .left{flex:0 0 auto;display:flex;flex-flow:row nowrap;background:var(--color-white);max-width:calc(100% - 350px)}:host .file-head .left div.title{flex:0 0 auto;padding:var(--app-pane-padding) 0;cursor:pointer}[dir=ltr] :host .file-head .left div.title{padding-right:calc(var(--app-pane-padding) * 2);padding-left:0}[dir=rtl] :host .file-head .left div.title{padding-left:calc(var(--app-pane-padding) * 2);padding-right:0}:host .file-head .left div.title .label,:host .file-head .left div.title .description{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host .file-head .left div.title .label{font-size:var(--font-title)}:host .file-head .right{flex:1 1 auto;display:flex;flex-flow:column;min-width:350px}:host .file-head .right .fold{flex:0 0 auto;background:var(--main-background);color:var(--text-color-caption);text-align:right;padding-bottom:calc(var(--app-pane-padding) / 2);display:flex;justify-content:flex-end}[dir=rtl] :host .file-head .right .fold{text-align:right;text-align:left}:host .file-head .right .fold .created-date{padding-right:5px}:host .file-head .right .actions{background:var(--color-white);flex:1 1 auto;display:flex;align-items:center;padding:0 var(--app-pane-padding);justify-content:flex-end}:host .file-body{flex:1 1 auto;position:relative}:host .file-body .file-body-wrap{position:absolute;inset:0;overflow:hidden}:host .file-body .file-body-wrap .frontPage{position:absolute;inset:0;overflow:hidden}:host ::ng-deep .tree .tree-panel-error{display:flex;height:100%;flex-flow:column;justify-content:center;align-items:center;color:var(--text-color-caption)}:host ::ng-deep .tree .eo-head{background-color:var(--color-primary-3)}:host ::ng-deep .tree .eo-head .eo-header-info{padding:0}:host ::ng-deep .tree .eo-head .eo-header-info h2{flex:1 1 auto;color:var(--color-white)}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form{width:61%;flex:0 0 auto;margin-bottom:var(--app-pane-padding);min-width:200px;align-self:flex-end}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form input{background-color:transparent;border:0;outline:0}:host ::ng-deep .tree eo-result-list .eo-head{background-color:var(--panel-background)}:host ::ng-deep yvc-split-view{height:100%}:host ::ng-deep eo-tree{padding:var(--app-pane-padding)}:host ::ng-deep eo-object-details{background:var(--panel-background-grey)}\n"] }]
335
+ args: [{ selector: 'eo-object-state', providers: [ObjectStateService], animations: [panelLoadingAnimations], template: "<div class=\"file\" [ngClass]=\"{ready: context || context === null}\" *ngIf=\"!error; else errorTmpl\">\n\n <div class=\"file-head\" *ngIf=\"context && context.isContextFolder\">\n <div class=\"left\">\n <eo-icon class=\"type-icon\" [objectType]=\"context.type\"></eo-icon>\n <div class=\"title\" (click)=\"setupFrontPage()\" (contextmenu)=\"onContextMenuClicked($event)\">\n <div class=\"label\">{{context.title || '&nbsp;'}}</div>\n <div class=\"description\">{{context.description || '&nbsp;'}}</div>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"fold\">\n <span class=\"created-date\">{{context.created.on | localeDate}}</span>\n <span class=\"created-title\">{{context.created.by.title}}</span>\n </div>\n <div class=\"actions\">\n </div>\n </div>\n </div>\n\n <div class=\"file-body\">\n <div class=\"file-body-wrap\">\n\n <ng-container *ngIf=\"context !== null; else tplDetailsOnly\">\n\n <yvc-split-view *ngIf=\"cacheLayout\" [layoutSettingsID]=\"cacheLayout\">\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"20\" [visible]=\"true\">\n <div class=\"tree-panel-error\" *ngIf=\"loadingState.tree.isError(); else tplTree\" translate>\n eo.state.object.tree.error</div>\n\n <ng-template #tplTree>\n\n <eo-list-container #eoList [loading]=\"!contextTree\" [tabs]=\"false\">\n <div class=\"eo-header dark\">\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\" translate>eo.state.object.tree.title</h2>\n <form name=\"structureForm\" class=\"tree-filter-form\" [ngClass]=\"{active: !!termFilter}\">\n <eo-form-input [skipToggle]=\"true\" [label]=\" 'eo.state.object.tree.filter.label' | translate\">\n <input [(ngModel)]=\"termFilter\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onTermFilterChange.emit($event)\" />\n </eo-form-input>\n </form>\n </div>\n </div>\n <div class=\"eo-body tree\">\n <eo-tree [tree]=\"contextTree\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.tree.state\" *ngIf=\"contextTree\" [highlightedNodes]=\"highlightedNodes\"\n [treeUpdate]=\"contextTreeUpdate\" [(ngModel)]=\"selectedNodes\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\"></eo-tree>\n <h3 *ngIf=\"contextTreeRef?.length\" title=\"{{'eo.state.object.tree.references.tooltip'|translate}}\"\n translate>eo.state.object.tree.references</h3>\n <eo-tree [tree]=\"contextTreeRef\" [options]=\"{multiselect: false, disableDeselection: true}\"\n [@panelLoading]=\"loadingState.treeRef.state\" *ngIf=\"contextTreeRef?.length\"\n [highlightedNodes]=\"highlightedNodes\" [treeUpdate]=\"contextTreeRefUpdate\"\n [(ngModel)]=\"selectedNodes\" (ngModelChange)=\"onTreeSelectionChanged($event)\"\n class=\"reference\"></eo-tree>\n </div>\n </eo-list-container>\n\n </ng-template>\n </ng-template>\n\n <ng-template yvcSplitArea [panelClass]=\"'tree'\" [size]=\"35\" [visible]=\"true\">\n <eo-object-state-details *ngIf=\"context\" [context]=\"context\" [frontPageData]=\"frontPageData\"\n [visible]=\"frontPage\" (onTabChange)=\"setupFrontPage(true)\">\n <eo-tab-plugin [type]=\"'object-state-details-tab.object'\"></eo-tab-plugin>\n </eo-object-state-details>\n\n <eo-result-list *ngIf=\"!frontPage && searchResult\" [selectFirst]=\"false\" [title]=\"gridTitle\"\n [reference]=\"selectedNode?.isReference\" [searchResult]=\"searchResult\" [configType]=\"configType\"\n [configContext]=\"\" [emptyMessage]=\"'eo.state.object.list.error'\" (onRefresh)=\"refreshList()\">\n </eo-result-list>\n </ng-template>\n\n <ng-template yvcSplitArea [size]=\"45\" [visible]=\"true\">\n <ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container>\n </ng-template>\n </yvc-split-view>\n\n </ng-container>\n\n <ng-template #tplDetailsOnly><ng-container *ngTemplateOutlet=\"tplObjectDetails\"></ng-container></ng-template>\n\n <ng-template #tplObjectDetails>\n <eo-object-details [applySelection]=\"{}\" [reference]=\"isReferenceActive\"\n [cacheLayout]=\"'object.state--' + typeName + '.object-details'\">\n <eo-tab-plugin [type]=\"'object-details-tab.object'\"></eo-tab-plugin>\n </eo-object-details>\n </ng-template>\n </div>\n </div>\n</div>\n\n<ng-template #errorTmpl>\n <eo-error404></eo-error404>\n</ng-template>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding)}:host .eo-body.tree h3{margin:0;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) 0 var(--app-pane-padding);font-size:var(--font-subhead);font-weight:var(--font-weight-normal);color:var(--text-color-caption);border-top:1px solid var(--list-item-border-color)}:host .file{height:100%;display:flex;flex-flow:column}:host .file .file-head,:host .file .file-body{opacity:0;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}:host .file.ready .file-head,:host .file.ready .file-body{opacity:1}:host .file .empty-state{background:rgba(var(--color-white-rgb),.3);height:100%;display:flex;flex-flow:column;align-items:center;justify-content:center}:host .file.undocked .empty-state{background:var(--main-background)}:host .file-head{color:var(--text-color-caption);margin-bottom:calc(var(--app-pane-padding) / 4);display:flex;flex-flow:row nowrap;width:100%}:host .file-head eo-icon{padding:var(--app-pane-padding);box-sizing:content-box}:host .file-head .left,:host .file-head .right{border-bottom:4px solid var(--color-primary-3);box-sizing:border-box}:host .file-head .left{flex:0 0 auto;display:flex;flex-flow:row nowrap;background:var(--color-white);max-width:calc(100% - 350px)}:host .file-head .left div.title{flex:0 0 auto;padding:var(--app-pane-padding) 0;cursor:pointer}[dir=ltr] :host .file-head .left div.title{padding-right:calc(var(--app-pane-padding) * 2);padding-left:0}[dir=rtl] :host .file-head .left div.title{padding-left:calc(var(--app-pane-padding) * 2);padding-right:0}:host .file-head .left div.title .label,:host .file-head .left div.title .description{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host .file-head .left div.title .label{font-size:var(--font-title)}:host .file-head .right{flex:1 1 auto;display:flex;flex-flow:column;min-width:350px}:host .file-head .right .fold{flex:0 0 auto;background:var(--main-background);color:var(--text-color-caption);text-align:right;padding-bottom:calc(var(--app-pane-padding) / 2);display:flex;justify-content:flex-end}[dir=rtl] :host .file-head .right .fold{text-align:right;text-align:left}:host .file-head .right .fold .created-date{padding-right:5px}:host .file-head .right .actions{background:var(--color-white);flex:1 1 auto;display:flex;align-items:center;padding:0 var(--app-pane-padding);justify-content:flex-end}:host .file-body{flex:1 1 auto;position:relative}:host .file-body .file-body-wrap{position:absolute;inset:0;overflow:hidden}:host .file-body .file-body-wrap .frontPage{position:absolute;inset:0;overflow:hidden}:host ::ng-deep .tree .tree-panel-error{display:flex;height:100%;flex-flow:column;justify-content:center;align-items:center;color:var(--text-color-caption)}:host ::ng-deep .tree .eo-head{background-color:var(--color-primary-3)}:host ::ng-deep .tree .eo-head .eo-header-info{padding:0}:host ::ng-deep .tree .eo-head .eo-header-info h2{flex:1 1 auto;color:var(--color-white)}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form{width:61%;flex:0 0 auto;margin-bottom:var(--app-pane-padding);min-width:200px;align-self:flex-end}:host ::ng-deep .tree .eo-head .eo-header-info form.tree-filter-form input{background-color:transparent;border:0;outline:0}:host ::ng-deep .tree eo-result-list .eo-head{background-color:var(--panel-background)}:host ::ng-deep yvc-split-view{height:100%}:host ::ng-deep eo-tree{padding:var(--app-pane-padding)}:host ::ng-deep eo-object-details{background:var(--panel-background-grey)}\n"] }]
336
336
  }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.PageTitleService }, { type: i3.SystemService }, { type: i3.DmsService }, { type: i4.SelectionService }, { type: i3.TranslateService }, { type: i5.ObjectStateService }, { type: i6.ActionService }, { type: i7.LocationService }, { type: i8.PendingChangesService }, { type: i3.EventService }, { type: i9.GridService }, { type: i10.LayoutService }]; }, propDecorators: { eoGrid: [{
337
337
  type: ViewChild,
338
338
  args: ['eoGrid']
339
339
  }], onTermFilterChange: [{
340
340
  type: Output
341
341
  }] } });
342
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXN0YXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L29iamVjdC1zdGF0ZS9vYmplY3Qtc3RhdGUvb2JqZWN0LXN0YXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L29iamVjdC1zdGF0ZS9vYmplY3Qtc3RhdGUvb2JqZWN0LXN0YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU1RixPQUFPLEVBQXdCLFVBQVUsRUFBMkUsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQy9JLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFXbkUsT0FBTyxFQUFDLFlBQVksRUFBRSxzQkFBc0IsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBRWpILE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVV6RSxJQUFNLG9CQUFvQixHQUExQixNQUFNLG9CQUFvQjtJQXNDL0IsWUFBb0IsS0FBcUIsRUFDL0IsWUFBOEIsRUFDOUIsYUFBNEIsRUFDNUIsVUFBc0IsRUFDdEIsU0FBMkIsRUFDNUIsU0FBMkIsRUFDM0IsV0FBK0IsRUFDOUIsYUFBNEIsRUFDNUIsUUFBeUIsRUFDekIsY0FBcUMsRUFDckMsWUFBMEIsRUFDMUIsV0FBd0IsRUFDeEIsYUFBNEI7UUFabEIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDL0IsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQTlDdEMsVUFBSyxHQUFHLEtBQUssQ0FBQztRQVlkLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUNsQixvQkFBZSxHQUFhLEVBQUUsQ0FBQztRQUV2QyxhQUFRLEdBQWEsRUFBRSxDQUFDO1FBRWQsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUlsRCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBR2pCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUVqQixpQkFBWSxHQUFHO1lBQ2IsSUFBSSxFQUFFLElBQUksWUFBWSxFQUFFO1lBQ3hCLE9BQU8sRUFBRSxJQUFJLFlBQVksRUFBRTtZQUMzQixJQUFJLEVBQUUsSUFBSSxZQUFZLEVBQUU7WUFDeEIsT0FBTyxFQUFFLElBQUksWUFBWSxFQUFFO1NBQzVCLENBQUM7UUFnQkEsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBZ0IsRUFBRSxDQUFDO1FBRW5DLElBQUksQ0FBQyxrQkFBa0I7YUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN4QixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFN0MsZ0RBQWdEO1FBQ2hELElBQUksQ0FBQyxXQUFXO2FBQ2IsS0FBSzthQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUIsU0FBUyxDQUFDLENBQUMsR0FBdUIsRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDdEIsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsbUNBQW1DO2dCQUNuQyxJQUFJLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBQyxHQUFHLEdBQUcsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFlLENBQUM7Z0JBQzlHLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO2FBQzVCO1lBRUQsa0NBQWtDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLO2FBQ25CLElBQUksQ0FDSCxjQUFjLENBQUMsSUFBSSxDQUFDLENBQ3JCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUTthQUN0QixJQUFJLENBQ0gsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUNyQjthQUNBLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU07YUFDbEIsSUFBSSxDQUNILGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FDckI7YUFDQSxTQUFTLENBQUMsQ0FBQyxJQUFlLEVBQUUsRUFBRTtZQUM3QixJQUFJLElBQUksRUFBRTtnQkFDUixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN6QjtZQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLHFDQUFxQztRQUN2QyxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxZQUFZO2FBQ2QsRUFBRSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQzthQUNqQyxJQUFJLENBQ0gsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUNyQjthQUNBLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFO29CQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztvQkFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7b0JBQ2xCLE9BQU87aUJBQ1I7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUNsQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7aUJBQ3ZCO2dCQUNELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLFlBQVk7YUFDZCxFQUFFLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDO2FBQ2pDLElBQUksQ0FDSCxjQUFjLENBQUMsSUFBSSxDQUFDLENBQ3JCO2FBQ0EsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFO2dCQUNuRSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7YUFDM0I7WUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDM0I7WUFDRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxZQUFZO2FBQ2QsRUFBRSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQzthQUNoQyxJQUFJLENBQ0gsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUNyQjthQUNBLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7WUFDOUUsSUFBSSxDQUFDLFdBQVc7aUJBQ2IsY0FBYyxDQUFNLEVBQUUsRUFBTyxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuRixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELHNCQUFzQixDQUFDLGFBQXVCO1FBQzVDLElBQUksQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsc0JBQXNCLENBQUMsSUFBYztRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDdEQ7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNuQztRQUNELElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5SCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUk7aUJBQ25CLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO2dCQUMvRixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25GO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsR0FBRyxFQUFFLEdBQUk7UUFDNUIsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTyxPQUFPLENBQUMsSUFBZSxFQUFFLFVBQVc7UUFDMUMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLHlGQUF5RjtZQUN6Riw2REFBNkQ7WUFDN0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3ZCO1lBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ3BELCtFQUErRTtZQUMvRSw2Q0FBNkM7WUFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFckQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBQyxVQUFVLEVBQUUsQ0FBQyxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDO2lCQUNoSSxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpGLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7U0FFM0I7YUFBTTtZQUNMLDJCQUEyQjtZQUMzQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7Z0JBQ2xFLElBQUksQ0FBQyxVQUFVO3FCQUNaLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDO3FCQUNqRixTQUFTLENBQUMsQ0FBQyxHQUFjLEVBQUUsRUFBRTtvQkFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM3QixDQUFDLENBQUMsQ0FBQzthQUNOO2lCQUFNO2dCQUNMLDRCQUE0QjtnQkFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO2dCQUN0Qix5QkFBeUI7Z0JBQ3pCLGlEQUFpRDthQUNsRDtTQUNGO1FBQ0QseUNBQXlDO0lBQzNDLENBQUM7SUFFRCxjQUFjLENBQUMsZUFBZSxHQUFHLEtBQUssRUFBRSxVQUFVLEdBQUcsS0FBSztRQUN4RCxJQUFJLENBQUMsV0FBVzthQUNiLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQzdCLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbkM7UUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRU8sYUFBYSxDQUFDLFVBQW1CLEVBQUUsVUFBZ0I7UUFDekQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUMsQ0FBQztRQUN2RyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDN0gsQ0FBQztJQUVPLFNBQVMsQ0FBQyxVQUFVO1FBQzFCLElBQUksVUFBVSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDOUIsUUFBUSxDQUFDO2dCQUNQLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUMsRUFBRSxFQUFFLFVBQVUsRUFBQyxDQUFDO2dCQUMxRixJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUMsRUFBRSxlQUFlLENBQUM7YUFDNUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUNsRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pFLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsV0FBVztpQkFDYixlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBQyxDQUFDO2lCQUNoRixTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0YsSUFBSSxDQUFDLFdBQVc7aUJBQ2IsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUMsRUFBRSxlQUFlLENBQUM7aUJBQ2pHLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckc7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUUsS0FBSyxHQUFHLEVBQUU7UUFDNUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqQixJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7Z0JBQ1gsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDbkI7WUFDRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3RDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsRUFBRTtRQUNsQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVPLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxFQUFFO1FBQ3JDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFdkUsQ0FBQztJQUVPLFdBQVcsQ0FBQyxRQUFRLEVBQUUsSUFBYyxFQUFFLFdBQVcsR0FBRyxLQUFLO1FBQy9ELE1BQU0sRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBQyxHQUFHLFFBQVEsQ0FBQztRQUM5RCwyRUFBMkU7UUFDM0UsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDL0IsSUFBSSxJQUFJLEdBQWE7WUFDbkIsRUFBRSxFQUFFLEdBQUc7WUFDUCxJQUFJLEVBQUUsS0FBSztZQUNYLElBQUksRUFBRSxDQUFDO1lBQ1AsUUFBUSxFQUFFLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN0RSxRQUFRLEVBQUUsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUMxRCxRQUFRLEVBQUUsS0FBSztZQUNmLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFdBQVc7WUFDWCxNQUFNLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDOUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLO2dCQUNwQyxRQUFRLEVBQUUsT0FBTzthQUNsQixDQUFDLENBQUM7WUFDSCxJQUFJLEVBQUUsUUFBUTtTQUNmLENBQUM7UUFFRixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7U0FDbEM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHO2FBQ1gsSUFBSSxDQUNILGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN0QixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFDdEIsNkNBQTZDO1lBQzdDLE1BQU0sRUFBQyxNQUFNLEVBQUUsV0FBVyxFQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDbEQsSUFBSSxNQUFNLENBQUMsRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBQyxDQUFDLENBQUM7Z0JBQy9ELElBQUksQ0FBQyxVQUFVO3FCQUNaLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQztxQkFDdkQsU0FBUyxDQUFDLENBQUMsR0FBYyxFQUFFLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO29CQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDNUIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO29CQUNsQixtQ0FBbUM7b0JBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ1A7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1Qsd0VBQXdFO1FBQ3hFLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7aUhBbldVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLGlHQUhwQixDQUFDLGtCQUFrQixDQUFDLDRIQzNCakMsbzZKQStGYyxpeVBEbkVBLENBQUMsc0JBQXNCLENBQUM7QUFFekIsb0JBQW9CO0lBUmhDLFlBQVksRUFBRTtHQVFGLG9CQUFvQixDQXFXaEM7U0FyV1ksb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0UsaUJBQWlCLGFBR2hCLENBQUMsa0JBQWtCLENBQUMsY0FDbkIsQ0FBQyxzQkFBc0IsQ0FBQzt3Y0FJZixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBbUJULGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7R3JpZE9wdGlvbnN9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtEbXNPYmplY3QsIERtc1NlcnZpY2UsIEVuYWlvRXZlbnQsIEV2ZW50U2VydmljZSwgT2JqZWN0VHlwZSwgU2VhcmNoUmVzdWx0LCBTeXN0ZW1TZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7Zm9ya0pvaW59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtHcmlkU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL2dyaWQuc2VydmljZSc7XG5pbXBvcnQge0xheW91dFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2xheW91dC9sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQge0xvY2F0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvbG9jYXRpb24vbG9jYXRpb24uc2VydmljZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQge1NlbGVjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge1BhZ2VUaXRsZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3RpdGxlL3BhZ2UtdGl0bGUuc2VydmljZSc7XG5pbXBvcnQge0FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay9hY3Rpb25zL2FjdGlvbi1zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7R3JpZENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQvZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmVlTm9kZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL3RyZWUvdHJlZS5jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7UGFuZWxMb2FkaW5nLCBwYW5lbExvYWRpbmdBbmltYXRpb25zfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvdWkvYW5pbWF0aW9ucy9wYW5lbC1sb2FkaW5nLmFuaW1hdGlvbic7XG5pbXBvcnQge0Zyb250UGFnZURhdGEsIE9iamVjdFNlYXJjaFJlc3VsdH0gZnJvbSAnLi4vb2JqZWN0LXN0YXRlLXNlcnZpY2Uvb2JqZWN0LXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQge09iamVjdFN0YXRlU2VydmljZX0gZnJvbSAnLi4vb2JqZWN0LXN0YXRlLXNlcnZpY2Uvb2JqZWN0LXN0YXRlLnNlcnZpY2UnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW9iamVjdC1zdGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3Qtc3RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vYmplY3Qtc3RhdGUuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbT2JqZWN0U3RhdGVTZXJ2aWNlXSxcbiAgYW5pbWF0aW9uczogW3BhbmVsTG9hZGluZ0FuaW1hdGlvbnNdXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdFN0YXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFBlbmRpbmdDaGFuZ2VzQ29tcG9uZW50IHtcblxuICBAVmlld0NoaWxkKCdlb0dyaWQnKSBlb0dyaWQ6IEdyaWRDb21wb25lbnQ7XG5cbiAgZXJyb3IgPSBmYWxzZTtcbiAgY29udGV4dDogRG1zT2JqZWN0O1xuICBzZWxlY3RlZEl0ZW06IERtc09iamVjdDtcbiAgZnJvbnRQYWdlOiBib29sZWFuO1xuICBmcm9udFBhZ2VEYXRhOiBGcm9udFBhZ2VEYXRhO1xuICBjb250ZXh0VHJlZTogVHJlZU5vZGVbXTtcbiAgY29udGV4dFRyZWVVcGRhdGU6IFRyZWVOb2RlW107XG4gIGNvbnRleHRUcmVlUmVmOiBUcmVlTm9kZVtdO1xuICBjb250ZXh0VHJlZVJlZlVwZGF0ZTogVHJlZU5vZGVbXTtcbiAgc2VsZWN0ZWROb2RlczogVHJlZU5vZGVbXTtcbiAgc2VsZWN0ZWROb2RlOiBUcmVlTm9kZTtcbiAgaGlnaGxpZ2h0ZWROb2Rlczogc3RyaW5nW107XG4gIGlzUmVmZXJlbmNlQWN0aXZlID0gZmFsc2U7XG4gIHByaXZhdGUgZXhwYW5kZWROb2RlSWRzOiBzdHJpbmdbXSA9IFtdO1xuICB0ZXJtRmlsdGVyOiBzdHJpbmc7XG4gIGFsbFR5cGVzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25maWdUeXBlOiBPYmplY3RUeXBlO1xuICBAT3V0cHV0KCkgb25UZXJtRmlsdGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucztcbiAgZ3JpZFRpdGxlOiBzdHJpbmc7XG4gIGVtcHR5R3JpZCA9IHRydWU7XG5cbiAgc2VhcmNoUmVzdWx0OiBTZWFyY2hSZXN1bHQ7XG4gIHR5cGVOYW1lID0gJyc7XG4gIGNhY2hlTGF5b3V0ID0gJyc7XG5cbiAgbG9hZGluZ1N0YXRlID0ge1xuICAgIHRyZWU6IG5ldyBQYW5lbExvYWRpbmcoKSxcbiAgICB0cmVlUmVmOiBuZXcgUGFuZWxMb2FkaW5nKCksXG4gICAgbGlzdDogbmV3IFBhbmVsTG9hZGluZygpLFxuICAgIGRldGFpbHM6IG5ldyBQYW5lbExvYWRpbmcoKSxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHRpdGxlU2VydmljZTogUGFnZVRpdGxlU2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkbXNTZXJ2aWNlOiBEbXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VsZWN0aW9uOiBTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIG9iamVjdFN0YXRlOiBPYmplY3RTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhY3Rpb25TZXJ2aWNlOiBBY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGdyaWRTZXJ2aWNlOiBHcmlkU2VydmljZSxcbiAgICBwcml2YXRlIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UpIHtcblxuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldEJhc2VUaXRsZShudWxsKTtcbiAgICB0aGlzLmdyaWRPcHRpb25zID0gPEdyaWRPcHRpb25zPnt9O1xuXG4gICAgdGhpcy5vblRlcm1GaWx0ZXJDaGFuZ2VcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDAwKSlcbiAgICAgIC5zdWJzY3JpYmUodiA9PiB0aGlzLnNldHVwRnJvbnRQYWdlKHRydWUpKTtcblxuICAgIC8vIHN1YnNjcmliZSBmb3IgZGF0YSBmcm9tIHRoZSBjb25uZWN0ZWQgc2VydmljZVxuICAgIHRoaXMub2JqZWN0U3RhdGVcbiAgICAgIC5saXN0JFxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IE9iamVjdFNlYXJjaFJlc3VsdCkgPT4ge1xuICAgICAgICB0aGlzLmZyb250UGFnZSA9ICFyZXM7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAvLyBzZXR1cCB0aGUgZ3JpZCB3aXRoIHRoZSBuZXcgZGF0YVxuICAgICAgICAgIGxldCB7bmFtZSwgcmVzdWx0fSA9IHJlcztcbiAgICAgICAgICB0aGlzLmVtcHR5R3JpZCA9IHJlc3VsdC5jb3VudC52YWx1ZSA9PT0gMDtcbiAgICAgICAgICB0aGlzLmdyaWRUaXRsZSA9IG5hbWU7XG4gICAgICAgICAgdGhpcy5jb25maWdUeXBlID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGUocmVzdWx0LnR5cGVOYW1lKSB8fCB7cW5hbWU6IHJlc3VsdC50eXBlTmFtZX0gYXMgT2JqZWN0VHlwZTtcbiAgICAgICAgICB0aGlzLnNlYXJjaFJlc3VsdCA9IHJlc3VsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1N0YXRlLmxpc3QucmVhZHkoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5vYmplY3RTdGF0ZS50cmVlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmJ1aWxkQ29udGV4dFRyZWUocmVzLmZvbGRlcikpO1xuXG4gICAgdGhpcy5vYmplY3RTdGF0ZS50cmVlUmVmJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmJ1aWxkQ29udGV4dFRyZWVSZWYocmVzLmZvbGRlcikpO1xuXG4gICAgdGhpcy5zZWxlY3Rpb24uZm9jdXMkXG4gICAgICAucGlwZShcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcylcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IERtc09iamVjdCkgPT4ge1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0KGl0ZW0uaWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbTtcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU3RhdGUuZGV0YWlscy5yZWFkeSgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLm9uKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9ERUxFVEVEKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuY29udGV4dCAmJiB0aGlzLmNvbnRleHQuaWQgPT09IGV2dC5kYXRhLmlkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLmZyb250UGFnZSkge1xuICAgICAgICAgICAgdGhpcy5zZXR1cEZyb250UGFnZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNvbnRleHRUcmVlKCk7XG4gICAgICAgIH0sIDEwMDApO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLm9uKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9VUERBVEVEKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCAmJiBldmVudC5kYXRhICYmIHRoaXMuY29udGV4dC5pZCA9PT0gZXZlbnQuZGF0YS5pZCkge1xuICAgICAgICAgIHRoaXMuY29udGV4dCA9IGV2ZW50LmRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZnJvbnRQYWdlKSB7XG4gICAgICAgICAgdGhpcy5zZXR1cEZyb250UGFnZSh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUNvbnRleHRUcmVlKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5ETVNfT0JKRUNUX1BBU1RFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5jbGlwYm9hcmQucGFzdGUucmVzdWx0bGlzdC5oZWFkbGluZScpO1xuICAgICAgICB0aGlzLm9iamVjdFN0YXRlXG4gICAgICAgICAgLnNlbGVjdFRyZWVOb2RlKDxhbnk+e30sIDxhbnk+e25hbWV9LCB7aWQ6IGV2dC5kYXRhLm1hcChkID0+IGQuaWQpfSkuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMudXBkYXRlQ29udGV4dFRyZWUoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgaGFzUGVuZGluZ0NoYW5nZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGVuZGluZ0NoYW5nZXMuaGFzUGVuZGluZ1Rhc2soKTtcbiAgfVxuXG4gIG9uRXhwYW5kZWROb2Rlc0NoYW5nZWQoZXhwYW5kZWROb2Rlczogc3RyaW5nW10pIHtcbiAgICB0aGlzLmV4cGFuZGVkTm9kZUlkcyA9IGV4cGFuZGVkTm9kZXM7XG4gIH1cblxuICAvLyBzZWxlY3QgYW4gZW50cnkgZnJvbSB0aGUgdHJlZVxuICBvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKG5vZGU6IFRyZWVOb2RlKSB7XG4gICAgdGhpcy5sb2NhdGlvbi5sZWF2ZSgpO1xuICAgIHRoaXMuc2VsZWN0ZWROb2RlID0gbm9kZTtcbiAgICBpZiAobm9kZS5kYXRhLnR5cGUpIHtcbiAgICAgIHRoaXMubG9jYXRpb24uZW50ZXIodGhpcy5jb250ZXh0LCB0aGlzLnNlbGVjdGVkTm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9jYXRpb24uZW50ZXIodGhpcy5jb250ZXh0KTtcbiAgICB9XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIHRoaXMuZ3JpZFNlcnZpY2UudXBkYXRlQ29udGV4dChub2RlLmlzUmVmZXJlbmNlIHx8IHRoaXMuYWxsVHlwZXMuaW5jbHVkZXMobm9kZS5kYXRhLnR5cGUpID8gW25vZGUuZGF0YS50eXBlXSA6IHRoaXMuYWxsVHlwZXMpO1xuICAgICAgdGhpcy5sb2FkaW5nU3RhdGUubGlzdFxuICAgICAgICAuc3Vic2NyaWJlKG5vZGUuaXNSZWZlcmVuY2UgP1xuICAgICAgICAgIHRoaXMub2JqZWN0U3RhdGUuc2VsZWN0VHJlZU5vZGUodGhpcy5jb250ZXh0LCBub2RlLCB7dGVybTogdGhpcy50ZXJtRmlsdGVyfSwgJ3JlZmVyZW5jZXZpZXcnKSA6XG4gICAgICAgICAgdGhpcy5vYmplY3RTdGF0ZS5zZWxlY3RUcmVlTm9kZSh0aGlzLmNvbnRleHQsIG5vZGUsIHt0ZXJtOiB0aGlzLnRlcm1GaWx0ZXJ9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0dXBGcm9udFBhZ2UoKTtcbiAgICB9XG4gIH1cblxuICBvbkNvbnRleHRNZW51Q2xpY2tlZChldnQsIGRvYz8pIHtcbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlLnNob3dBY3Rpb25zKFtkb2MgfHwgdGhpcy5jb250ZXh0XSwgJ0RNU19PQkpFQ1QnKTtcbiAgfVxuXG4gIHJlZnJlc2hMaXN0KCkge1xuICAgIHRoaXMub25UcmVlU2VsZWN0aW9uQ2hhbmdlZCh0aGlzLnNlbGVjdGVkTm9kZSk7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3MoaXRlbTogRG1zT2JqZWN0LCBzZWxlY3RlZElkPykge1xuICAgIGlmIChpdGVtLmlzQ29udGV4dEZvbGRlcikge1xuICAgICAgLy8gaWYgdGhlcmUgYWxyZWFkeSBpcyBhIGNvbnRleHQgc2V0LCB3ZSBuZWVkIHRvIGxlYXZlIGxvY2F0aW9uIGZvciB0aGUgb2xkIGNvbnRleHQgZmlyc3RcbiAgICAgIC8vIG90aGVyd2lzZSBVcGxvYWRUYXJnZXRzIHdpbGwgbm90IGJlIHVucmVnaXN0ZXJlZCBjb3JyZWN0bHlcbiAgICAgIGlmICh0aGlzLmNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5sb2NhdGlvbi5sZWF2ZSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5jb250ZXh0ID0gaXRlbTtcbiAgICAgIHRoaXMuY2FjaGVMYXlvdXQgPSAnb2JqZWN0LnN0YXRlLS0nICsgaXRlbS50eXBlTmFtZTtcbiAgICAgIC8vIGFkZCB0aGlzIGxvY2F0aW9uIHRvIHRoZSBsb2NhdGlvbiBzZXJ2aWNlLCB3aGljaCB3aWxsIHRyYWNrIGFjdGl2ZSBsb2NhdGlvbnNcbiAgICAgIC8vIGFuZCBoYW5kbGUgYSBoaXN0b3J5IG9mIHZpc2l0ZWQgbG9jYXRpb25zLlxuICAgICAgdGhpcy5sb2NhdGlvbi5lbnRlcih0aGlzLmNvbnRleHQsIHRoaXMuc2VsZWN0ZWROb2RlKTtcblxuICAgICAgdGhpcy5vYmplY3RTdGF0ZS5sb2FkVHJlZUJ5UXVlcnkodGhpcy5jb250ZXh0LmlkLCB0aGlzLmNvbnRleHQudHlwZU5hbWUsIHtkZWZpbml0aW9uOiBbe2ZpZWxkOiAndHlwZScsIGtleTogJ1R5cGVzJywgc2l6ZTogMTAwMH1dfSlcbiAgICAgICAgLnN1YnNjcmliZSh0eXBlcyA9PiAodGhpcy5hbGxUeXBlcyA9ICh0eXBlcy5mb2xkZXJbMF0uZm9sZGVyIHx8IFtdKS5tYXAodCA9PiB0LnR5cGUpKSk7XG5cbiAgICAgIHRoaXMuZmV0Y2hUcmVlRGF0YSgnJywgc2VsZWN0ZWRJZCk7XG4gICAgICB0aGlzLnNldHVwRnJvbnRQYWdlKHRydWUpO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGZldGNoIHRoZSBjb250ZXh0IGZvbGRlclxuICAgICAgaWYgKGl0ZW0uY29udGV4dEZvbGRlcikge1xuICAgICAgICB0aGlzLmNhY2hlTGF5b3V0ID0gJ29iamVjdC5zdGF0ZS0tJyArIGl0ZW0uY29udGV4dEZvbGRlci50eXBlTmFtZTtcbiAgICAgICAgdGhpcy5kbXNTZXJ2aWNlXG4gICAgICAgICAgLmdldERtc09iamVjdChpdGVtLmNvbnRleHRGb2xkZXIuaWQsIGl0ZW0uY29udGV4dEZvbGRlci50eXBlTmFtZSwgbnVsbCwgJ0RFVEFJTFMnKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogRG1zT2JqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3MocmVzLCBpdGVtLmlkKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGp1c3QgdGhlIGRvY3VtZW50IGluIHJvb3RcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5jYWNoZUxheW91dCA9ICcnO1xuICAgICAgICAvLyBoaWRlIGVtcHR5IHRyZWUgJiBsaXN0XG4gICAgICAgIC8vIHRoaXMubGF5b3V0U2VydmljZS5oaWRlQXJlYXMoKGEsIGkpID0+IGkgPCAyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gdGhpcy5sYXlvdXRTZXJ2aWNlLnZpc2liaWxpdHlVcGRhdGUoKTtcbiAgfVxuXG4gIHNldHVwRnJvbnRQYWdlKHVwZGF0ZVNlbGVjdGlvbiA9IGZhbHNlLCB1cGRhdGVUcmVlID0gZmFsc2UpIHtcbiAgICB0aGlzLm9iamVjdFN0YXRlXG4gICAgICAuc2VsZWN0RnJvbnRQYWdlKHRoaXMuY29udGV4dClcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5mcm9udFBhZ2UgPSB0cnVlO1xuICAgICAgICB0aGlzLmZyb250UGFnZURhdGEgPSBkYXRhO1xuICAgICAgfSk7XG5cbiAgICBpZiAoIXVwZGF0ZVNlbGVjdGlvbikge1xuICAgICAgdGhpcy5sb2NhdGlvbi5sZWF2ZSgpO1xuICAgICAgdGhpcy5zZWxlY3Rpb24uZm9jdXModGhpcy5jb250ZXh0KTtcbiAgICAgIHRoaXMubG9jYXRpb24uZW50ZXIodGhpcy5jb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAoIXVwZGF0ZVRyZWUpIHtcbiAgICAgIHRoaXMuZmV0Y2hUcmVlRGF0YSh0aGlzLnRlcm1GaWx0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hUcmVlRGF0YSh0ZXJtRmlsdGVyPzogc3RyaW5nLCBzZWxlY3RlZElkPzogYW55KSB7XG4gICAgdGhpcy5oaWdobGlnaHQoc2VsZWN0ZWRJZCk7XG4gICAgdGhpcy5sb2FkaW5nU3RhdGUudHJlZS5zdWJzY3JpYmUodGhpcy5vYmplY3RTdGF0ZS51cGRhdGVUcmVlQnlRdWVyeSh0aGlzLmNvbnRleHQsIHt0ZXJtOiB0ZXJtRmlsdGVyfSkpO1xuICAgIHRoaXMubG9hZGluZ1N0YXRlLnRyZWVSZWYuc3Vic2NyaWJlKHRoaXMub2JqZWN0U3RhdGUudXBkYXRlVHJlZUJ5UXVlcnkodGhpcy5jb250ZXh0LCB7dGVybTogdGVybUZpbHRlcn0sICdyZWZlcmVuY2V2aWV3JykpO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWdobGlnaHQoc2VsZWN0ZWRJZCkge1xuICAgIGlmIChzZWxlY3RlZElkICYmIHRoaXMuY29udGV4dCkge1xuICAgICAgZm9ya0pvaW4oW1xuICAgICAgICB0aGlzLm9iamVjdFN0YXRlLmxvYWRUcmVlQnlRdWVyeSh0aGlzLmNvbnRleHQuaWQsIHRoaXMuY29udGV4dC50eXBlTmFtZSwge2lkOiBzZWxlY3RlZElkfSksXG4gICAgICAgIHRoaXMub2JqZWN0U3RhdGUubG9hZFRyZWVCeVF1ZXJ5KHRoaXMuY29udGV4dC5pZCwgdGhpcy5jb250ZXh0LnR5cGVOYW1lLCB7aWQ6IHNlbGVjdGVkSWR9LCAncmVmZXJlbmNldmlldycpXG4gICAgICBdKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmhpZ2hsaWdodGVkTm9kZXMgPSB0aGlzLmhpZ2hsaWdodE5vZGVzKFsuLi5yZXNbMF0uZm9sZGVyLCAuLi5yZXNbMV0uZm9sZGVyXSk7XG4gICAgICAgIHRoaXMuaXNSZWZlcmVuY2VBY3RpdmUgPSAhIShyZXNbMV0udG90YWwudmFsdWUgJiYgIXJlc1swXS50b3RhbC52YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaWdobGlnaHRlZE5vZGVzID0gW107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250ZXh0VHJlZSgpIHtcbiAgICBpZiAodGhpcy5jb250ZXh0KSB7XG4gICAgICB0aGlzLm9iamVjdFN0YXRlXG4gICAgICAgIC5sb2FkVHJlZUJ5UXVlcnkodGhpcy5jb250ZXh0LmlkLCB0aGlzLmNvbnRleHQudHlwZU5hbWUsIHt0ZXJtOiB0aGlzLnRlcm1GaWx0ZXJ9KVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmNvbnRleHRUcmVlVXBkYXRlID0gcmVzLmZvbGRlci5tYXAoZiA9PiB0aGlzLmFkZFRyZWVOb2RlKGYsIFtdKSkpO1xuICAgICAgdGhpcy5vYmplY3RTdGF0ZVxuICAgICAgICAubG9hZFRyZWVCeVF1ZXJ5KHRoaXMuY29udGV4dC5pZCwgdGhpcy5jb250ZXh0LnR5cGVOYW1lLCB7dGVybTogdGhpcy50ZXJtRmlsdGVyfSwgJ3JlZmVyZW5jZXZpZXcnKVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmNvbnRleHRUcmVlUmVmVXBkYXRlID0gcmVzLmZvbGRlci5tYXAoZiA9PiB0aGlzLmFkZFRyZWVOb2RlKGYsIFtdLCB0cnVlKSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGlnaGxpZ2h0Tm9kZXMoZm9sZGVyID0gW10sIG5vZGVzID0gW10pIHtcbiAgICBmb2xkZXIuZm9yRWFjaChmID0+IHtcbiAgICAgIGlmIChmLmNvdW50KSB7XG4gICAgICAgIG5vZGVzLnB1c2goZi5rZXkpO1xuICAgICAgfVxuICAgICAgaWYgKGYuZm9sZGVyKSB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0Tm9kZXMoZi5mb2xkZXIsIG5vZGVzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbm9kZXM7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ29udGV4dFRyZWUoZm9sZGVyID0gW10pIHtcbiAgICB0aGlzLmNvbnRleHRUcmVlVXBkYXRlID0gbnVsbDtcbiAgICB0aGlzLmNvbnRleHRUcmVlID0gZm9sZGVyLm1hcChmID0+IHRoaXMuYWRkVHJlZU5vZGUoZiwgW10pKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDb250ZXh0VHJlZVJlZihmb2xkZXIgPSBbXSkge1xuICAgIHRoaXMuY29udGV4dFRyZWVSZWZVcGRhdGUgPSBudWxsO1xuICAgIHRoaXMuY29udGV4dFRyZWVSZWYgPSBmb2xkZXIubWFwKGYgPT4gdGhpcy5hZGRUcmVlTm9kZShmLCBbXSwgdHJ1ZSkpO1xuXG4gIH1cblxuICBwcml2YXRlIGFkZFRyZWVOb2RlKG5vZGVEYXRhLCBwYXRoOiBzdHJpbmdbXSwgaXNSZWZlcmVuY2UgPSBmYWxzZSkge1xuICAgIGNvbnN0IHtrZXksIHRpdGxlLCBmb2xkZXIsIGV4cGFuZGVkLCBjb3VudCwgc3RhdHN9ID0gbm9kZURhdGE7XG4gICAgLy8gaW1wb3J0YW50IHRvIGNyZWF0ZSBjbG9uZSBoZXJlLCBiZWNhdXNlIG90aGVyd2lzZSBwYXRoIHdpbGwgYmUgbWVzc2VkIHVwXG4gICAgY29uc3QgcCA9IHBhdGguY29uY2F0KFt0aXRsZV0pO1xuICAgIGxldCBub2RlOiBUcmVlTm9kZSA9IHtcbiAgICAgIGlkOiBrZXksXG4gICAgICBuYW1lOiB0aXRsZSxcbiAgICAgIHBhdGg6IHAsXG4gICAgICBjaGlsZHJlbjogKGZvbGRlciB8fCBbXSkubWFwKGYgPT4gdGhpcy5hZGRUcmVlTm9kZShmLCBwLCBpc1JlZmVyZW5jZSkpLFxuICAgICAgZXhwYW5kZWQ6IGV4cGFuZGVkIHx8ICEhfnRoaXMuZXhwYW5kZWROb2RlSWRzLmluZGV4T2Yoa2V5KSxcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgIHNlbGVjdGFibGU6IHRydWUsXG4gICAgICBpc1JlZmVyZW5jZSxcbiAgICAgIGJhZGdlczogKHN0YXRzIHx8IFtdKS5tYXAoc3RhdCA9PiBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgdmFsdWU6IHN0YXQudmFsdWUgKyAnICcgKyBzdGF0LnRpdGxlLFxuICAgICAgICBjc3NDbGFzczogJ3N0YXRzJ1xuICAgICAgfSkpLFxuICAgICAgZGF0YTogbm9kZURhdGFcbiAgICB9O1xuXG4gICAgaWYgKGNvdW50KSB7XG4gICAgICBub2RlLmJhZGdlcy5wdXNoKHt2YWx1ZTogY291bnR9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucm91dGUudXJsXG4gICAgICAucGlwZShcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jYWNoZUxheW91dCA9ICcnO1xuICAgICAgICAvLyB0aGlzLmxheW91dFNlcnZpY2UuaGlkZUFyZWFzKCgpID0+IGZhbHNlKTtcbiAgICAgICAgY29uc3Qge3BhcmFtcywgcXVlcnlQYXJhbXN9ID0gdGhpcy5yb3V0ZS5zbmFwc2hvdDtcbiAgICAgICAgaWYgKHBhcmFtcy5pZCkge1xuICAgICAgICAgIHRoaXMudHlwZU5hbWUgPSBxdWVyeVBhcmFtc1sndHlwZSddIHx8ICcnO1xuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzKHtpZDogcGFyYW1zLmlkLCB0eXBlTmFtZTogdGhpcy50eXBlTmFtZX0pO1xuICAgICAgICAgIHRoaXMuZG1zU2VydmljZVxuICAgICAgICAgICAgLmdldERtc09iamVjdChwYXJhbXMuaWQsIHRoaXMudHlwZU5hbWUsIG51bGwsICdERVRBSUxTJylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogRG1zT2JqZWN0KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzKHJlcyk7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzKHJlcyk7XG4gICAgICAgICAgICB9LCBVdGlscy50aHJvdygoKSA9PiB7XG4gICAgICAgICAgICAgIC8vIHRoaXMubGF5b3V0U2VydmljZS5zZXRBcmVhcyhbXSk7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQsIHdlIHRlbGwgdGhlIGxvY2F0aW9uIHNlcnZpY2UgdGhhdCB3ZVxuICAgIC8vIGxlZnQgdGhlIGxvY2F0aW9uXG4gICAgdGhpcy5sb2NhdGlvbi5sZWF2ZSgpO1xuICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImZpbGVcIiBbbmdDbGFzc109XCJ7cmVhZHk6IGNvbnRleHQgfHwgY29udGV4dCA9PT0gbnVsbH1cIiAqbmdJZj1cIiFlcnJvcjsgZWxzZSBlcnJvclRtcGxcIj5cblxuICA8ZGl2IGNsYXNzPVwiZmlsZS1oZWFkXCIgKm5nSWY9XCJjb250ZXh0ICYmIGNvbnRleHQuaXNDb250ZXh0Rm9sZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwidHlwZS1pY29uXCIgW29iamVjdFR5cGVdPVwiY29udGV4dC50eXBlXCI+PC9lby1pY29uPlxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCIgKGNsaWNrKT1cInNldHVwRnJvbnRQYWdlKClcIiAoY29udGV4dG1lbnUpPVwib25Db250ZXh0TWVudUNsaWNrZWQoJGV2ZW50KVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj57e2NvbnRleHQudGl0bGUgfHwgJyZuYnNwOyd9fTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj57e2NvbnRleHQuZGVzY3JpcHRpb24gfHwgJyZuYnNwOyd9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9sZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNyZWF0ZWQtZGF0ZVwiPnt7Y29udGV4dC5jcmVhdGVkLm9uIHwgbG9jYWxlRGF0ZX19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNyZWF0ZWQtdGl0bGVcIj57e2NvbnRleHQuY3JlYXRlZC5ieS50aXRsZX19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmaWxlLWJvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsZS1ib2R5LXdyYXBcIj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRleHQgIT09IG51bGw7IGVsc2UgdHBsRGV0YWlsc09ubHlcIj5cblxuICAgICAgICA8eXZjLXNwbGl0LXZpZXcgW2xheW91dFNldHRpbmdzSURdPVwiY2FjaGVMYXlvdXRcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtwYW5lbENsYXNzXT1cIid0cmVlJ1wiIFtzaXplXT1cIjIwXCIgW3Zpc2libGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyZWUtcGFuZWwtZXJyb3JcIiAqbmdJZj1cImxvYWRpbmdTdGF0ZS50cmVlLmlzRXJyb3IoKTsgZWxzZSB0cGxUcmVlXCIgdHJhbnNsYXRlPlxuICAgICAgICAgICAgICBlby5zdGF0ZS5vYmplY3QudHJlZS5lcnJvcjwvZGl2PlxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RwbFRyZWU+XG5cbiAgICAgICAgICAgICAgPGVvLWxpc3QtY29udGFpbmVyICNlb0xpc3QgW2xvYWRpbmddPVwiIWNvbnRleHRUcmVlXCIgW3RhYnNdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyIGRhcmtcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItaW5mb1wiPlxuICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJlby1oZWFkZXItdGl0bGVcIiB0cmFuc2xhdGU+ZW8uc3RhdGUub2JqZWN0LnRyZWUudGl0bGU8L2gyPlxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSBuYW1lPVwic3RydWN0dXJlRm9ybVwiIGNsYXNzPVwidHJlZS1maWx0ZXItZm9ybVwiIFtuZ0NsYXNzXT1cInthY3RpdmU6ICEhdGVybUZpbHRlcn1cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgW2xhYmVsXT1cIiAnZW8uc3RhdGUub2JqZWN0LnRyZWUuZmlsdGVyLmxhYmVsJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwidGVybUZpbHRlclwiIG1heGxlbmd0aD1cIjI1MFwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblRlcm1GaWx0ZXJDaGFuZ2UuZW1pdCgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlby1ib2R5IHRyZWVcIj5cbiAgICAgICAgICAgICAgICAgIDxlby10cmVlIFt0cmVlXT1cImNvbnRleHRUcmVlXCIgW29wdGlvbnNdPVwie211bHRpc2VsZWN0OiBmYWxzZSwgZGlzYWJsZURlc2VsZWN0aW9uOiB0cnVlfVwiXG4gICAgICAgICAgICAgICAgICAgIFtAcGFuZWxMb2FkaW5nXT1cImxvYWRpbmdTdGF0ZS50cmVlLnN0YXRlXCIgKm5nSWY9XCJjb250ZXh0VHJlZVwiIFtoaWdobGlnaHRlZE5vZGVzXT1cImhpZ2hsaWdodGVkTm9kZXNcIlxuICAgICAgICAgICAgICAgICAgICBbdHJlZVVwZGF0ZV09XCJjb250ZXh0VHJlZVVwZGF0ZVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWROb2Rlc1wiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVHJlZVNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiPjwvZW8tdHJlZT5cbiAgICAgICAgICAgICAgICAgIDxoMyAqbmdJZj1cImNvbnRleHRUcmVlUmVmPy5sZW5ndGhcIiB0aXRsZT1cInt7J2VvLnN0YXRlLm9iamVjdC50cmVlLnJlZmVyZW5jZXMudG9vbHRpcCd8dHJhbnNsYXRlfX1cIlxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGU+ZW8uc3RhdGUub2JqZWN0LnRyZWUucmVmZXJlbmNlczwvaDM+XG4gICAgICAgICAgICAgICAgICA8ZW8tdHJlZSBbdHJlZV09XCJjb250ZXh0VHJlZVJlZlwiIFtvcHRpb25zXT1cInttdWx0aXNlbGVjdDogZmFsc2UsIGRpc2FibGVEZXNlbGVjdGlvbjogdHJ1ZX1cIlxuICAgICAgICAgICAgICAgICAgICBbQHBhbmVsTG9hZGluZ109XCJsb2FkaW5nU3RhdGUudHJlZVJlZi5zdGF0ZVwiICpuZ0lmPVwiY29udGV4dFRyZWVSZWY/Lmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgIFtoaWdobGlnaHRlZE5vZGVzXT1cImhpZ2hsaWdodGVkTm9kZXNcIiBbdHJlZVVwZGF0ZV09XCJjb250ZXh0VHJlZVJlZlVwZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWROb2Rlc1wiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVHJlZVNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVmZXJlbmNlXCI+PC9lby10cmVlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2VvLWxpc3QtY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtwYW5lbENsYXNzXT1cIid0cmVlJ1wiIFtzaXplXT1cIjM1XCIgW3Zpc2libGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGVvLW9iamVjdC1zdGF0ZS1kZXRhaWxzICpuZ0lmPVwiY29udGV4dFwiIFtjb250ZXh0XT1cImNvbnRleHRcIiBbZnJvbnRQYWdlRGF0YV09XCJmcm9udFBhZ2VEYXRhXCJcbiAgICAgICAgICAgICAgW3Zpc2libGVdPVwiZnJvbnRQYWdlXCIgKG9uVGFiQ2hhbmdlKT1cInNldHVwRnJvbnRQYWdlKHRydWUpXCI+XG4gICAgICAgICAgICAgIDxlby10YWItcGx1Z2luIFt0eXBlXT1cIidvYmplY3Qtc3RhdGUtZGV0YWlscy10YWIub2JqZWN0J1wiPjwvZW8tdGFiLXBsdWdpbj5cbiAgICAgICAgICAgIDwvZW8tb2JqZWN0LXN0YXRlLWRldGFpbHM+XG5cbiAgICAgICAgICAgIDxlby1yZXN1bHQtbGlzdCAqbmdJZj1cIiFmcm9udFBhZ2UgJiYgc2VhcmNoUmVzdWx0XCIgW3NlbGVjdEZpcnN0XT1cImZhbHNlXCIgW3RpdGxlXT1cImdyaWRUaXRsZVwiXG4gICAgICAgICAgICAgIFtyZWZlcmVuY2VdPVwic2VsZWN0ZWROb2RlPy5pc1JlZmVyZW5jZVwiIFtzZWFyY2hSZXN1bHRdPVwic2VhcmNoUmVzdWx0XCIgW2NvbmZpZ1R5cGVdPVwiY29uZmlnVHlwZVwiXG4gICAgICAgICAgICAgIFtjb25maWdDb250ZXh0XT1cIlwiIFtlbXB0eU1lc3NhZ2VdPVwiJ2VvLnN0YXRlLm9iamVjdC5saXN0LmVycm9yJ1wiIChvblJlZnJlc2gpPVwicmVmcmVzaExpc3QoKVwiPlxuICAgICAgICAgICAgPC9lby1yZXN1bHQtbGlzdD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbc2l6ZV09XCI0NVwiIFt2aXNpYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxPYmplY3REZXRhaWxzXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC95dmMtc3BsaXQtdmlldz5cblxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdHBsRGV0YWlsc09ubHk+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRwbE9iamVjdERldGFpbHNcIj48L25nLWNvbnRhaW5lcj48L25nLXRlbXBsYXRlPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI3RwbE9iamVjdERldGFpbHM+XG4gICAgICAgIDxlby1vYmplY3QtZGV0YWlscyBbYXBwbHlTZWxlY3Rpb25dPVwie31cIiBbcmVmZXJlbmNlXT1cImlzUmVmZXJlbmNlQWN0aXZlXCJcbiAgICAgICAgICBbY2FjaGVMYXlvdXRdPVwiJ29iamVjdC5zdGF0ZS0tJyArIHR5cGVOYW1lICsgJy5vYmplY3QtZGV0YWlscydcIj5cbiAgICAgICAgICA8ZW8tdGFiLXBsdWdpbiBbdHlwZV09XCInb2JqZWN0LWRldGFpbHMtdGFiLm9iamVjdCdcIj48L2VvLXRhYi1wbHVnaW4+XG4gICAgICAgIDwvZW8tb2JqZWN0LWRldGFpbHM+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2Vycm9yVG1wbD5cbiAgPGVvLWVycm9yNDA0PjwvZW8tZXJyb3I0MDQ+XG48L25nLXRlbXBsYXRlPiJdfQ==
342
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXN0YXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L29iamVjdC1zdGF0ZS9vYmplY3Qtc3RhdGUvb2JqZWN0LXN0YXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L29iamVjdC1zdGF0ZS9vYmplY3Qtc3RhdGUvb2JqZWN0LXN0YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU1RixPQUFPLEVBQXdCLFVBQVUsRUFBMkUsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQy9JLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFXbkUsT0FBTyxFQUFDLFlBQVksRUFBRSxzQkFBc0IsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBRWpILE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVV6RSxJQUFNLG9CQUFvQixHQUExQixNQUFNLG9CQUFvQjtJQXNDL0IsWUFBb0IsS0FBcUIsRUFDL0IsWUFBOEIsRUFDOUIsYUFBNEIsRUFDNUIsVUFBc0IsRUFDdEIsU0FBMkIsRUFDNUIsU0FBMkIsRUFDM0IsV0FBK0IsRUFDOUIsYUFBNEIsRUFDNUIsUUFBeUIsRUFDekIsY0FBcUMsRUFDckMsWUFBMEIsRUFDMUIsV0FBd0IsRUFDeEIsYUFBNEI7UUFabEIsVUFBSyxHQUFMLEtBQUss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QUssQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO29CQUNsQixtQ0FBbUM7b0JBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ1A7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1Qsd0VBQXdFO1FBQ3hFLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7aUhBbldVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLGlHQUhwQixDQUFDLGtCQUFrQixDQUFDLDRIQzNCakMsMDdKQStGYyxpeVBEbkVBLENBQUMsc0JBQXNCLENBQUM7QUFFekIsb0JBQW9CO0lBUmhDLFlBQVksRUFBRTtHQVFGLG9CQUFvQixDQXFXaEM7U0FyV1ksb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0UsaUJBQWlCLGFBR2hCLENBQUMsa0JBQWtCLENBQUMsY0FDbkIsQ0FBQyxzQkFBc0IsQ0FBQzt3Y0FJZixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBbUJULGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7R3JpZE9wdGlvbnN9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtEbXNPYmplY3QsIERtc1NlcnZpY2UsIEVuYWlvRXZlbnQsIEV2ZW50U2VydmljZSwgT2JqZWN0VHlwZSwgU2VhcmNoUmVzdWx0LCBTeXN0ZW1TZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7Zm9ya0pvaW59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtHcmlkU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL2dyaWQuc2VydmljZSc7XG5pbXBvcnQge0xheW91dFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2xheW91dC9sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQge0xvY2F0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvbG9jYXRpb24vbG9jYXRpb24uc2VydmljZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQge1NlbGVjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge1BhZ2VUaXRsZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3RpdGxlL3BhZ2UtdGl0bGUuc2VydmljZSc7XG5pbXBvcnQge0FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay9hY3Rpb25zL2FjdGlvbi1zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7R3JpZENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQvZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmVlTm9kZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL3RyZWUvdHJlZS5jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7UGFuZWxMb2FkaW5nLCBwYW5lbExvYWRpbmdBbmltYXRpb25zfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvdWkvYW5pbWF0aW9ucy9wYW5lbC1sb2FkaW5nLmFuaW1hdGlvbic7XG5pbXBvcnQge0Zyb250UGFnZURhdGEsIE9iamVjdFNlYXJjaFJlc3VsdH0gZnJvbSAnLi4vb2JqZWN0LXN0YXRlLXNlcnZpY2Uvb2JqZWN0LXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQge09iamVjdFN0YXRlU2VydmljZX0gZnJvbSAnLi4vb2JqZWN0LXN0YXRlLXNlcnZpY2Uvb2JqZWN0LXN0YXRlLnNlcnZpY2UnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW9iamVjdC1zdGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3Qtc3RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vYmplY3Qtc3RhdGUuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbT2JqZWN0U3RhdGVTZXJ2aWNlXSxcbiAgYW5pbWF0aW9uczogW3BhbmVsTG9hZGluZ0FuaW1hdGlvbnNdXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdFN0YXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFBlbmRpbmdDaGFuZ2VzQ29tcG9uZW50IHtcblxuICBAVmlld0NoaWxkKCdlb0dyaWQnKSBlb0dyaWQ6IEdyaWRDb21wb25lbnQ7XG5cbiAgZXJyb3IgPSBmYWxzZTtcbiAgY29udGV4dDogRG1zT2JqZWN0O1xuICBzZWxlY3RlZEl0ZW06IERtc09iamVjdDtcbiAgZnJvbnRQYWdlOiBib29sZWFuO1xuICBmcm9udFBhZ2VEYXRhOiBGcm9udFBhZ2VEYXRhO1xuICBjb250ZXh0VHJlZTogVHJlZU5vZGVbXTtcbiAgY29udGV4dFRyZWVVcGRhdGU6IFRyZWVOb2RlW107XG4gIGNvbnRleHRUcmVlUmVmOiBUcmVlTm9kZVtdO1xuICBjb250ZXh0VHJlZVJlZlVwZGF0ZTogVHJlZU5vZGVbXTtcbiAgc2VsZWN0ZWROb2RlczogVHJlZU5vZGVbXTtcbiAgc2VsZWN0ZWROb2RlOiBUcmVlTm9kZTtcbiAgaGlnaGxpZ2h0ZWROb2Rlczogc3RyaW5nW107XG4gIGlzUmVmZXJlbmNlQWN0aXZlID0gZmFsc2U7XG4gIHByaXZhdGUgZXhwYW5kZWROb2RlSWRzOiBzdHJpbmdbXSA9IFtdO1xuICB0ZXJtRmlsdGVyOiBzdHJpbmc7XG4gIGFsbFR5cGVzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25maWdUeXBlOiBPYmplY3RUeXBlO1xuICBAT3V0cHV0KCkgb25UZXJtRmlsdGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucztcbiAgZ3JpZFRpdGxlOiBzdHJpbmc7XG4gIGVtcHR5R3JpZCA9IHRydWU7XG5cbiAgc2VhcmNoUmVzdWx0OiBTZWFyY2hSZXN1bHQ7XG4gIHR5cGVOYW1lID0gJyc7XG4gIGNhY2hlTGF5b3V0ID0gJyc7XG5cbiAgbG9hZGluZ1N0YXRlID0ge1xuICAgIHRyZWU6IG5ldyBQYW5lbExvYWRpbmcoKSxcbiAgICB0cmVlUmVmOiBuZXcgUGFuZWxMb2FkaW5nKCksXG4gICAgbGlzdDogbmV3IFBhbmVsTG9hZGluZygpLFxuICAgIGRldGFpbHM6IG5ldyBQYW5lbExvYWRpbmcoKSxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHRpdGxlU2VydmljZTogUGFnZVRpdGxlU2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkbXNTZXJ2aWNlOiBEbXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VsZWN0aW9uOiBTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIG9iamVjdFN0YXRlOiBPYmplY3RTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhY3Rpb25TZXJ2aWNlOiBBY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGdyaWRTZXJ2aWNlOiBHcmlkU2VydmljZSxcbiAgICBwcml2YXRlIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UpIHtcblxuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldEJhc2VUaXRsZShudWxsKTtcbiAgICB0aGlzLmdyaWRPcHRpb25zID0gPEdyaWRPcHRpb25zPnt9O1xuXG4gICAgdGhpcy5vblRlcm1GaWx0ZXJDaGFuZ2VcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDAwKSlcbiAgICAgIC5zdWJzY3JpYmUodiA9PiB0aGlzLnNldHVwRnJvbnRQYWdlKHRydWUpKTtcblxuICAgIC8vIHN1YnNjcmliZSBmb3IgZGF0YSBmcm9tIHRoZSBjb25uZWN0ZWQgc2VydmljZVxuICAgIHRoaXMub2JqZWN0U3RhdGVcbiAgICAgIC5saXN0JFxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IE9iamVjdFNlYXJjaFJlc3VsdCkgPT4ge1xuICAgICAgICB0aGlzLmZyb250UGFnZSA9ICFyZXM7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAvLyBzZXR1cCB0aGUgZ3JpZCB3aXRoIHRoZSBuZXcgZGF0YVxuICAgICAgICAgIGxldCB7bmFtZSwgcmVzdWx0fSA9IHJlcztcbiAgICAgICAgICB0aGlzLmVtcHR5R3JpZCA9IHJlc3VsdC5jb3VudC52YWx1ZSA9PT0gMDtcbiAgICAgICAgICB0aGlzLmdyaWRUaXRsZSA9IG5hbWU7XG4gICAgICAgICAgdGhpcy5jb25maWdUeXBlID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGUocmVzdWx0LnR5cGVOYW1lKSB8fCB7cW5hbWU6IHJlc3VsdC50eXBlTmFtZX0gYXMgT2JqZWN0VHlwZTtcbiAgICAgICAgICB0aGlzLnNlYXJjaFJlc3VsdCA9IHJlc3VsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1N0YXRlLmxpc3QucmVhZHkoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5vYmplY3RTdGF0ZS50cmVlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmJ1aWxkQ29udGV4dFRyZWUocmVzLmZvbGRlcikpO1xuXG4gICAgdGhpcy5vYmplY3RTdGF0ZS50cmVlUmVmJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmJ1aWxkQ29udGV4dFRyZWVSZWYocmVzLmZvbGRlcikpO1xuXG4gICAgdGhpcy5zZWxlY3Rpb24uZm9jdXMkXG4gICAgICAucGlwZShcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcylcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IERtc09iamVjdCkgPT4ge1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0KGl0ZW0uaWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbTtcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU3RhdGUuZGV0YWlscy5yZWFkeSgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLm9uKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9ERUxFVEVEKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuY29udGV4dCAmJiB0aGlzLmNvbnRleHQuaWQgPT09IGV2dC5kYXRhLmlkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLmZyb250UGFnZSkge1xuICAgICAgICAgICAgdGhpcy5zZXR1cEZyb250UGFnZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNvbnRleHRUcmVlKCk7XG4gICAgICAgIH0sIDEwMDApO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLm9uKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9VUERBVEVEKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCAmJiBldmVudC5kYXRhICYmIHRoaXMuY29udGV4dC5pZCA9PT0gZXZlbnQuZGF0YS5pZCkge1xuICAgICAgICAgIHRoaXMuY29udGV4dCA9IGV2ZW50LmRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZnJvbnRQYWdlKSB7XG4gICAgICAgICAgdGhpcy5zZXR1cEZyb250UGFnZSh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUNvbnRleHRUcmVlKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5ETVNfT0JKRUNUX1BBU1RFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5jbGlwYm9hcmQucGFzdGUucmVzdWx0bGlzdC5oZWFkbGluZScpO1xuICAgICAgICB0aGlzLm9iamVjdFN0YXRlXG4gICAgICAgICAgLnNlbGVjdFRyZWVOb2RlKDxhbnk+e30sIDxhbnk+e25hbWV9LCB7aWQ6IGV2dC5kYXRhLm1hcChkID0+IGQuaWQpfSkuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMudXBkYXRlQ29udGV4dFRyZWUoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgaGFzUGVuZGluZ0NoYW5nZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGVuZGluZ0NoYW5nZXMuaGFzUGVuZGluZ1Rhc2soKTtcbiAgfVxuXG4gIG9uRXhwYW5kZWROb2Rlc0NoYW5nZWQoZXhwYW5kZWROb2Rlczogc3RyaW5nW10pIHtcbiAgICB0aGlzLmV4cGFuZGVkTm9kZUlkcyA9IGV4cGFuZGVkTm9kZXM7XG4gIH1cblxuICAvLyBzZWxlY3QgYW4gZW50cnkgZnJvbSB0aGUgdHJlZVxuICBvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKG5vZGU6IFRyZWVOb2RlKSB7XG4gICAgdGhpcy5sb2NhdGlvbi5sZWF2ZSgpO1xuICAgIHRoaXMuc2VsZWN0ZWROb2RlID0gbm9kZTtcbiAgICBpZiAobm9kZS5kYXRhLnR5cGUpIHtcbiAgICAgIHRoaXMubG9jYXRpb24uZW50ZXIodGhpcy5jb250ZXh0LCB0aGlzLnNlbGVjdGVkTm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9jYXRpb24uZW50ZXIodGhpcy5jb250ZXh0KTtcbiAgICB9XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIHRoaXMuZ3JpZFNlcnZpY2UudXBkYXRlQ29udGV4dChub2RlLmlzUmVmZXJlbmNlIHx8IHRoaXMuYWxsVHlwZXMuaW5jbHVkZXMobm9kZS5kYXRhLnR5cGUpID8gW25vZGUuZGF0YS50eXBlXSA6IHRoaXMuYWxsVHlwZXMpO1xuICAgICAgdGhpcy5sb2FkaW5nU3RhdGUubGlzdFxuICAgICAgICAuc3Vic2NyaWJlKG5vZGUuaXNSZWZlcmVuY2UgP1xuICAgICAgICAgIHRoaXMub2JqZWN0U3RhdGUuc2VsZWN0VHJlZU5vZGUodGhpcy5jb250ZXh0LCBub2RlLCB7dGVybTogdGhpcy50ZXJtRmlsdGVyfSwgJ3JlZmVyZW5jZXZpZXcnKSA6XG4gICAgICAgICAgdGhpcy5vYmplY3RTdGF0ZS5zZWxlY3RUcmVlTm9kZSh0aGlzLmNvbnRleHQsIG5vZGUsIHt0ZXJtOiB0aGlzLnRlcm1GaWx0ZXJ9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0dXBGcm9udFBhZ2UoKTtcbiAgICB9XG4gIH1cblxuICBvbkNvbnRleHRNZW51Q2xpY2tlZChldnQsIGRvYz8pIHtcbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlLnNob3dBY3Rpb25zKFtkb2MgfHwgdGhpcy5jb250ZXh0XSwgJ0RNU19PQkpFQ1QnKTtcbiAgfVxuXG4gIHJlZnJlc2hMaXN0KCkge1xuICAgIHRoaXMub25UcmVlU2VsZWN0aW9uQ2hhbmdlZCh0aGlzLnNlbGVjdGVkTm9kZSk7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3MoaXRlbTogRG1zT2JqZWN0LCBzZWxlY3RlZElkPykge1xuICAgIGlmIChpdGVtLmlzQ29udGV4dEZvbGRlcikge1xuICAgICAgLy8gaWYgdGhlcmUgYWxyZWFkeSBpcyBhIGNvbnRleHQgc2V0LCB3ZSBuZWVkIHRvIGxlYXZlIGxvY2F0aW9uIGZvciB0aGUgb2xkIGNvbnRleHQgZmlyc3RcbiAgICAgIC8vIG90aGVyd2lzZSBVcGxvYWRUYXJnZXRzIHdpbGwgbm90IGJlIHVucmVnaXN0ZXJlZCBjb3JyZWN0bHlcbiAgICAgIGlmICh0aGlzLmNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5sb2NhdGlvbi5sZWF2ZSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5jb250ZXh0ID0gaXRlbTtcbiAgICAgIHRoaXMuY2FjaGVMYXlvdXQgPSAnb2JqZWN0LnN0YXRlLS0nICsgaXRlbS50eXBlTmFtZTtcbiAgICAgIC8vIGFkZCB0aGlzIGxvY2F0aW9uIHRvIHRoZSBsb2NhdGlvbiBzZXJ2aWNlLCB3aGljaCB3aWxsIHRyYWNrIGFjdGl2ZSBsb2NhdGlvbnNcbiAgICAgIC8vIGFuZCBoYW5kbGUgYSBoaXN0b3J5IG9mIHZpc2l0ZWQgbG9jYXRpb25zLlxuICAgICAgdGhpcy5sb2NhdGlvbi5lbnRlcih0aGlzLmNvbnRleHQsIHRoaXMuc2VsZWN0ZWROb2RlKTtcblxuICAgICAgdGhpcy5vYmplY3RTdGF0ZS5sb2FkVHJlZUJ5UXVlcnkodGhpcy5jb250ZXh0LmlkLCB0aGlzLmNvbnRleHQudHlwZU5hbWUsIHtkZWZpbml0aW9uOiBbe2ZpZWxkOiAndHlwZScsIGtleTogJ1R5cGVzJywgc2l6ZTogMTAwMH1dfSlcbiAgICAgICAgLnN1YnNjcmliZSh0eXBlcyA9PiAodGhpcy5hbGxUeXBlcyA9ICh0eXBlcy5mb2xkZXJbMF0uZm9sZGVyIHx8IFtdKS5tYXAodCA9PiB0LnR5cGUpKSk7XG5cbiAgICAgIHRoaXMuZmV0Y2hUcmVlRGF0YSgnJywgc2VsZWN0ZWRJZCk7XG4gICAgICB0aGlzLnNldHVwRnJvbnRQYWdlKHRydWUpO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGZldGNoIHRoZSBjb250ZXh0IGZvbGRlclxuICAgICAgaWYgKGl0ZW0uY29udGV4dEZvbGRlcikge1xuICAgICAgICB0aGlzLmNhY2hlTGF5b3V0ID0gJ29iamVjdC5zdGF0ZS0tJyArIGl0ZW0uY29udGV4dEZvbGRlci50eXBlTmFtZTtcbiAgICAgICAgdGhpcy5kbXNTZXJ2aWNlXG4gICAgICAgICAgLmdldERtc09iamVjdChpdGVtLmNvbnRleHRGb2xkZXIuaWQsIGl0ZW0uY29udGV4dEZvbGRlci50eXBlTmFtZSwgbnVsbCwgJ0RFVEFJTFMnKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogRG1zT2JqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3MocmVzLCBpdGVtLmlkKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGp1c3QgdGhlIGRvY3VtZW50IGluIHJvb3RcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5jYWNoZUxheW91dCA9ICcnO1xuICAgICAgICAvLyBoaWRlIGVtcHR5IHRyZWUgJiBsaXN0XG4gICAgICAgIC8vIHRoaXMubGF5b3V0U2VydmljZS5oaWRlQXJlYXMoKGEsIGkpID0+IGkgPCAyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gdGhpcy5sYXlvdXRTZXJ2aWNlLnZpc2liaWxpdHlVcGRhdGUoKTtcbiAgfVxuXG4gIHNldHVwRnJvbnRQYWdlKHVwZGF0ZVNlbGVjdGlvbiA9IGZhbHNlLCB1cGRhdGVUcmVlID0gZmFsc2UpIHtcbiAgICB0aGlzLm9iamVjdFN0YXRlXG4gICAgICAuc2VsZWN0RnJvbnRQYWdlKHRoaXMuY29udGV4dClcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5mcm9udFBhZ2UgPSB0cnVlO1xuICAgICAgICB0aGlzLmZyb250UGFnZURhdGEgPSBkYXRhO1xuICAgICAgfSk7XG5cbiAgICBpZiAoIXVwZGF0ZVNlbGVjdGlvbikge1xuICAgICAgdGhpcy5sb2NhdGlvbi5sZWF2ZSgpO1xuICAgICAgdGhpcy5zZWxlY3Rpb24uZm9jdXModGhpcy5jb250ZXh0KTtcbiAgICAgIHRoaXMubG9jYXRpb24uZW50ZXIodGhpcy5jb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAoIXVwZGF0ZVRyZWUpIHtcbiAgICAgIHRoaXMuZmV0Y2hUcmVlRGF0YSh0aGlzLnRlcm1GaWx0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hUcmVlRGF0YSh0ZXJtRmlsdGVyPzogc3RyaW5nLCBzZWxlY3RlZElkPzogYW55KSB7XG4gICAgdGhpcy5oaWdobGlnaHQoc2VsZWN0ZWRJZCk7XG4gICAgdGhpcy5sb2FkaW5nU3RhdGUudHJlZS5zdWJzY3JpYmUodGhpcy5vYmplY3RTdGF0ZS51cGRhdGVUcmVlQnlRdWVyeSh0aGlzLmNvbnRleHQsIHt0ZXJtOiB0ZXJtRmlsdGVyfSkpO1xuICAgIHRoaXMubG9hZGluZ1N0YXRlLnRyZWVSZWYuc3Vic2NyaWJlKHRoaXMub2JqZWN0U3RhdGUudXBkYXRlVHJlZUJ5UXVlcnkodGhpcy5jb250ZXh0LCB7dGVybTogdGVybUZpbHRlcn0sICdyZWZlcmVuY2V2aWV3JykpO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWdobGlnaHQoc2VsZWN0ZWRJZCkge1xuICAgIGlmIChzZWxlY3RlZElkICYmIHRoaXMuY29udGV4dCkge1xuICAgICAgZm9ya0pvaW4oW1xuICAgICAgICB0aGlzLm9iamVjdFN0YXRlLmxvYWRUcmVlQnlRdWVyeSh0aGlzLmNvbnRleHQuaWQsIHRoaXMuY29udGV4dC50eXBlTmFtZSwge2lkOiBzZWxlY3RlZElkfSksXG4gICAgICAgIHRoaXMub2JqZWN0U3RhdGUubG9hZFRyZWVCeVF1ZXJ5KHRoaXMuY29udGV4dC5pZCwgdGhpcy5jb250ZXh0LnR5cGVOYW1lLCB7aWQ6IHNlbGVjdGVkSWR9LCAncmVmZXJlbmNldmlldycpXG4gICAgICBdKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmhpZ2hsaWdodGVkTm9kZXMgPSB0aGlzLmhpZ2hsaWdodE5vZGVzKFsuLi5yZXNbMF0uZm9sZGVyLCAuLi5yZXNbMV0uZm9sZGVyXSk7XG4gICAgICAgIHRoaXMuaXNSZWZlcmVuY2VBY3RpdmUgPSAhIShyZXNbMV0udG90YWwudmFsdWUgJiYgIXJlc1swXS50b3RhbC52YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaWdobGlnaHRlZE5vZGVzID0gW107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250ZXh0VHJlZSgpIHtcbiAgICBpZiAodGhpcy5jb250ZXh0KSB7XG4gICAgICB0aGlzLm9iamVjdFN0YXRlXG4gICAgICAgIC5sb2FkVHJlZUJ5UXVlcnkodGhpcy5jb250ZXh0LmlkLCB0aGlzLmNvbnRleHQudHlwZU5hbWUsIHt0ZXJtOiB0aGlzLnRlcm1GaWx0ZXJ9KVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmNvbnRleHRUcmVlVXBkYXRlID0gcmVzLmZvbGRlci5tYXAoZiA9PiB0aGlzLmFkZFRyZWVOb2RlKGYsIFtdKSkpO1xuICAgICAgdGhpcy5vYmplY3RTdGF0ZVxuICAgICAgICAubG9hZFRyZWVCeVF1ZXJ5KHRoaXMuY29udGV4dC5pZCwgdGhpcy5jb250ZXh0LnR5cGVOYW1lLCB7dGVybTogdGhpcy50ZXJtRmlsdGVyfSwgJ3JlZmVyZW5jZXZpZXcnKVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmNvbnRleHRUcmVlUmVmVXBkYXRlID0gcmVzLmZvbGRlci5tYXAoZiA9PiB0aGlzLmFkZFRyZWVOb2RlKGYsIFtdLCB0cnVlKSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGlnaGxpZ2h0Tm9kZXMoZm9sZGVyID0gW10sIG5vZGVzID0gW10pIHtcbiAgICBmb2xkZXIuZm9yRWFjaChmID0+IHtcbiAgICAgIGlmIChmLmNvdW50KSB7XG4gICAgICAgIG5vZGVzLnB1c2goZi5rZXkpO1xuICAgICAgfVxuICAgICAgaWYgKGYuZm9sZGVyKSB7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0Tm9kZXMoZi5mb2xkZXIsIG5vZGVzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbm9kZXM7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ29udGV4dFRyZWUoZm9sZGVyID0gW10pIHtcbiAgICB0aGlzLmNvbnRleHRUcmVlVXBkYXRlID0gbnVsbDtcbiAgICB0aGlzLmNvbnRleHRUcmVlID0gZm9sZGVyLm1hcChmID0+IHRoaXMuYWRkVHJlZU5vZGUoZiwgW10pKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDb250ZXh0VHJlZVJlZihmb2xkZXIgPSBbXSkge1xuICAgIHRoaXMuY29udGV4dFRyZWVSZWZVcGRhdGUgPSBudWxsO1xuICAgIHRoaXMuY29udGV4dFRyZWVSZWYgPSBmb2xkZXIubWFwKGYgPT4gdGhpcy5hZGRUcmVlTm9kZShmLCBbXSwgdHJ1ZSkpO1xuXG4gIH1cblxuICBwcml2YXRlIGFkZFRyZWVOb2RlKG5vZGVEYXRhLCBwYXRoOiBzdHJpbmdbXSwgaXNSZWZlcmVuY2UgPSBmYWxzZSkge1xuICAgIGNvbnN0IHtrZXksIHRpdGxlLCBmb2xkZXIsIGV4cGFuZGVkLCBjb3VudCwgc3RhdHN9ID0gbm9kZURhdGE7XG4gICAgLy8gaW1wb3J0YW50IHRvIGNyZWF0ZSBjbG9uZSBoZXJlLCBiZWNhdXNlIG90aGVyd2lzZSBwYXRoIHdpbGwgYmUgbWVzc2VkIHVwXG4gICAgY29uc3QgcCA9IHBhdGguY29uY2F0KFt0aXRsZV0pO1xuICAgIGxldCBub2RlOiBUcmVlTm9kZSA9IHtcbiAgICAgIGlkOiBrZXksXG4gICAgICBuYW1lOiB0aXRsZSxcbiAgICAgIHBhdGg6IHAsXG4gICAgICBjaGlsZHJlbjogKGZvbGRlciB8fCBbXSkubWFwKGYgPT4gdGhpcy5hZGRUcmVlTm9kZShmLCBwLCBpc1JlZmVyZW5jZSkpLFxuICAgICAgZXhwYW5kZWQ6IGV4cGFuZGVkIHx8ICEhfnRoaXMuZXhwYW5kZWROb2RlSWRzLmluZGV4T2Yoa2V5KSxcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgIHNlbGVjdGFibGU6IHRydWUsXG4gICAgICBpc1JlZmVyZW5jZSxcbiAgICAgIGJhZGdlczogKHN0YXRzIHx8IFtdKS5tYXAoc3RhdCA9PiBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgdmFsdWU6IHN0YXQudmFsdWUgKyAnICcgKyBzdGF0LnRpdGxlLFxuICAgICAgICBjc3NDbGFzczogJ3N0YXRzJ1xuICAgICAgfSkpLFxuICAgICAgZGF0YTogbm9kZURhdGFcbiAgICB9O1xuXG4gICAgaWYgKGNvdW50KSB7XG4gICAgICBub2RlLmJhZGdlcy5wdXNoKHt2YWx1ZTogY291bnR9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucm91dGUudXJsXG4gICAgICAucGlwZShcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jYWNoZUxheW91dCA9ICcnO1xuICAgICAgICAvLyB0aGlzLmxheW91dFNlcnZpY2UuaGlkZUFyZWFzKCgpID0+IGZhbHNlKTtcbiAgICAgICAgY29uc3Qge3BhcmFtcywgcXVlcnlQYXJhbXN9ID0gdGhpcy5yb3V0ZS5zbmFwc2hvdDtcbiAgICAgICAgaWYgKHBhcmFtcy5pZCkge1xuICAgICAgICAgIHRoaXMudHlwZU5hbWUgPSBxdWVyeVBhcmFtc1sndHlwZSddIHx8ICcnO1xuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzKHtpZDogcGFyYW1zLmlkLCB0eXBlTmFtZTogdGhpcy50eXBlTmFtZX0pO1xuICAgICAgICAgIHRoaXMuZG1zU2VydmljZVxuICAgICAgICAgICAgLmdldERtc09iamVjdChwYXJhbXMuaWQsIHRoaXMudHlwZU5hbWUsIG51bGwsICdERVRBSUxTJylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogRG1zT2JqZWN0KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzKHJlcyk7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzKHJlcyk7XG4gICAgICAgICAgICB9LCBVdGlscy50aHJvdygoKSA9PiB7XG4gICAgICAgICAgICAgIC8vIHRoaXMubGF5b3V0U2VydmljZS5zZXRBcmVhcyhbXSk7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQsIHdlIHRlbGwgdGhlIGxvY2F0aW9uIHNlcnZpY2UgdGhhdCB3ZVxuICAgIC8vIGxlZnQgdGhlIGxvY2F0aW9uXG4gICAgdGhpcy5sb2NhdGlvbi5sZWF2ZSgpO1xuICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImZpbGVcIiBbbmdDbGFzc109XCJ7cmVhZHk6IGNvbnRleHQgfHwgY29udGV4dCA9PT0gbnVsbH1cIiAqbmdJZj1cIiFlcnJvcjsgZWxzZSBlcnJvclRtcGxcIj5cblxuICA8ZGl2IGNsYXNzPVwiZmlsZS1oZWFkXCIgKm5nSWY9XCJjb250ZXh0ICYmIGNvbnRleHQuaXNDb250ZXh0Rm9sZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwidHlwZS1pY29uXCIgW29iamVjdFR5cGVdPVwiY29udGV4dC50eXBlXCI+PC9lby1pY29uPlxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCIgKGNsaWNrKT1cInNldHVwRnJvbnRQYWdlKClcIiAoY29udGV4dG1lbnUpPVwib25Db250ZXh0TWVudUNsaWNrZWQoJGV2ZW50KVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj57e2NvbnRleHQudGl0bGUgfHwgJyZuYnNwOyd9fTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj57e2NvbnRleHQuZGVzY3JpcHRpb24gfHwgJyZuYnNwOyd9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9sZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNyZWF0ZWQtZGF0ZVwiPnt7Y29udGV4dC5jcmVhdGVkLm9uIHwgbG9jYWxlRGF0ZX19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNyZWF0ZWQtdGl0bGVcIj57e2NvbnRleHQuY3JlYXRlZC5ieS50aXRsZX19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmaWxlLWJvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsZS1ib2R5LXdyYXBcIj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRleHQgIT09IG51bGw7IGVsc2UgdHBsRGV0YWlsc09ubHlcIj5cblxuICAgICAgICA8eXZjLXNwbGl0LXZpZXcgKm5nSWY9XCJjYWNoZUxheW91dFwiIFtsYXlvdXRTZXR0aW5nc0lEXT1cImNhY2hlTGF5b3V0XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbcGFuZWxDbGFzc109XCIndHJlZSdcIiBbc2l6ZV09XCIyMFwiIFt2aXNpYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmVlLXBhbmVsLWVycm9yXCIgKm5nSWY9XCJsb2FkaW5nU3RhdGUudHJlZS5pc0Vycm9yKCk7IGVsc2UgdHBsVHJlZVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICAgICAgZW8uc3RhdGUub2JqZWN0LnRyZWUuZXJyb3I8L2Rpdj5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0cGxUcmVlPlxuXG4gICAgICAgICAgICAgIDxlby1saXN0LWNvbnRhaW5lciAjZW9MaXN0IFtsb2FkaW5nXT1cIiFjb250ZXh0VHJlZVwiIFt0YWJzXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlciBkYXJrXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWluZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZW8taGVhZGVyLXRpdGxlXCIgdHJhbnNsYXRlPmVvLnN0YXRlLm9iamVjdC50cmVlLnRpdGxlPC9oMj5cbiAgICAgICAgICAgICAgICAgICAgPGZvcm0gbmFtZT1cInN0cnVjdHVyZUZvcm1cIiBjbGFzcz1cInRyZWUtZmlsdGVyLWZvcm1cIiBbbmdDbGFzc109XCJ7YWN0aXZlOiAhIXRlcm1GaWx0ZXJ9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGVvLWZvcm0taW5wdXQgW3NraXBUb2dnbGVdPVwidHJ1ZVwiIFtsYWJlbF09XCIgJ2VvLnN0YXRlLm9iamVjdC50cmVlLmZpbHRlci5sYWJlbCcgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInRlcm1GaWx0ZXJcIiBtYXhsZW5ndGg9XCIyNTBcIiBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UZXJtRmlsdGVyQ2hhbmdlLmVtaXQoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW8tYm9keSB0cmVlXCI+XG4gICAgICAgICAgICAgICAgICA8ZW8tdHJlZSBbdHJlZV09XCJjb250ZXh0VHJlZVwiIFtvcHRpb25zXT1cInttdWx0aXNlbGVjdDogZmFsc2UsIGRpc2FibGVEZXNlbGVjdGlvbjogdHJ1ZX1cIlxuICAgICAgICAgICAgICAgICAgICBbQHBhbmVsTG9hZGluZ109XCJsb2FkaW5nU3RhdGUudHJlZS5zdGF0ZVwiICpuZ0lmPVwiY29udGV4dFRyZWVcIiBbaGlnaGxpZ2h0ZWROb2Rlc109XCJoaWdobGlnaHRlZE5vZGVzXCJcbiAgICAgICAgICAgICAgICAgICAgW3RyZWVVcGRhdGVdPVwiY29udGV4dFRyZWVVcGRhdGVcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTm9kZXNcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIj48L2VvLXRyZWU+XG4gICAgICAgICAgICAgICAgICA8aDMgKm5nSWY9XCJjb250ZXh0VHJlZVJlZj8ubGVuZ3RoXCIgdGl0bGU9XCJ7eydlby5zdGF0ZS5vYmplY3QudHJlZS5yZWZlcmVuY2VzLnRvb2x0aXAnfHRyYW5zbGF0ZX19XCJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlPmVvLnN0YXRlLm9iamVjdC50cmVlLnJlZmVyZW5jZXM8L2gzPlxuICAgICAgICAgICAgICAgICAgPGVvLXRyZWUgW3RyZWVdPVwiY29udGV4dFRyZWVSZWZcIiBbb3B0aW9uc109XCJ7bXVsdGlzZWxlY3Q6IGZhbHNlLCBkaXNhYmxlRGVzZWxlY3Rpb246IHRydWV9XCJcbiAgICAgICAgICAgICAgICAgICAgW0BwYW5lbExvYWRpbmddPVwibG9hZGluZ1N0YXRlLnRyZWVSZWYuc3RhdGVcIiAqbmdJZj1cImNvbnRleHRUcmVlUmVmPy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICBbaGlnaGxpZ2h0ZWROb2Rlc109XCJoaWdobGlnaHRlZE5vZGVzXCIgW3RyZWVVcGRhdGVdPVwiY29udGV4dFRyZWVSZWZVcGRhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTm9kZXNcIiAobmdNb2RlbENoYW5nZSk9XCJvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlZmVyZW5jZVwiPjwvZW8tdHJlZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9lby1saXN0LWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbcGFuZWxDbGFzc109XCIndHJlZSdcIiBbc2l6ZV09XCIzNVwiIFt2aXNpYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxlby1vYmplY3Qtc3RhdGUtZGV0YWlscyAqbmdJZj1cImNvbnRleHRcIiBbY29udGV4dF09XCJjb250ZXh0XCIgW2Zyb250UGFnZURhdGFdPVwiZnJvbnRQYWdlRGF0YVwiXG4gICAgICAgICAgICAgIFt2aXNpYmxlXT1cImZyb250UGFnZVwiIChvblRhYkNoYW5nZSk9XCJzZXR1cEZyb250UGFnZSh0cnVlKVwiPlxuICAgICAgICAgICAgICA8ZW8tdGFiLXBsdWdpbiBbdHlwZV09XCInb2JqZWN0LXN0YXRlLWRldGFpbHMtdGFiLm9iamVjdCdcIj48L2VvLXRhYi1wbHVnaW4+XG4gICAgICAgICAgICA8L2VvLW9iamVjdC1zdGF0ZS1kZXRhaWxzPlxuXG4gICAgICAgICAgICA8ZW8tcmVzdWx0LWxpc3QgKm5nSWY9XCIhZnJvbnRQYWdlICYmIHNlYXJjaFJlc3VsdFwiIFtzZWxlY3RGaXJzdF09XCJmYWxzZVwiIFt0aXRsZV09XCJncmlkVGl0bGVcIlxuICAgICAgICAgICAgICBbcmVmZXJlbmNlXT1cInNlbGVjdGVkTm9kZT8uaXNSZWZlcmVuY2VcIiBbc2VhcmNoUmVzdWx0XT1cInNlYXJjaFJlc3VsdFwiIFtjb25maWdUeXBlXT1cImNvbmZpZ1R5cGVcIlxuICAgICAgICAgICAgICBbY29uZmlnQ29udGV4dF09XCJcIiBbZW1wdHlNZXNzYWdlXT1cIidlby5zdGF0ZS5vYmplY3QubGlzdC5lcnJvcidcIiAob25SZWZyZXNoKT1cInJlZnJlc2hMaXN0KClcIj5cbiAgICAgICAgICAgIDwvZW8tcmVzdWx0LWxpc3Q+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiNDVcIiBbdmlzaWJsZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidHBsT2JqZWN0RGV0YWlsc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwveXZjLXNwbGl0LXZpZXc+XG5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI3RwbERldGFpbHNPbmx5PjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxPYmplY3REZXRhaWxzXCI+PC9uZy1jb250YWluZXI+PC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPG5nLXRlbXBsYXRlICN0cGxPYmplY3REZXRhaWxzPlxuICAgICAgICA8ZW8tb2JqZWN0LWRldGFpbHMgW2FwcGx5U2VsZWN0aW9uXT1cInt9XCIgW3JlZmVyZW5jZV09XCJpc1JlZmVyZW5jZUFjdGl2ZVwiXG4gICAgICAgICAgW2NhY2hlTGF5b3V0XT1cIidvYmplY3Quc3RhdGUtLScgKyB0eXBlTmFtZSArICcub2JqZWN0LWRldGFpbHMnXCI+XG4gICAgICAgICAgPGVvLXRhYi1wbHVnaW4gW3R5cGVdPVwiJ29iamVjdC1kZXRhaWxzLXRhYi5vYmplY3QnXCI+PC9lby10YWItcGx1Z2luPlxuICAgICAgICA8L2VvLW9iamVjdC1kZXRhaWxzPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNlcnJvclRtcGw+XG4gIDxlby1lcnJvcjQwND48L2VvLWVycm9yNDA0PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -159,9 +159,8 @@ let SettingsComponent = class SettingsComponent {
159
159
  this.profileImageOverlay.nativeElement.focus();
160
160
  }
161
161
  deleteUserImage() {
162
- const uploadURI = this.userService.getUserImageUri(this.userId);
163
162
  this.userService
164
- .delUserImage(uploadURI).subscribe({
163
+ .setUserImage(null).subscribe({
165
164
  next: () => {
166
165
  this.refreshUserImageHeaderBackground(this.userImageUri);
167
166
  this.eventService.trigger(EnaioEvent.SYSTEM_STATUS_IMAGE_CHANGE);
@@ -277,4 +276,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
277
276
  type: ViewChild,
278
277
  args: [NgForm]
279
278
  }] } });
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvc2V0dGluZ3Mvc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvc2V0dGluZ3Mvc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUF5QixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFDLE1BQU0sRUFBeUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RSxPQUFPLEVBS0wsVUFBVSxFQVNWLEtBQUssRUFDTixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBYSxRQUFRLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFDLElBQUksRUFBRSxjQUFjLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQWUsZUFBZSxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFFMUYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFHekYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT2pELElBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWlCO0lBNkM1QixZQUFvQixRQUFtQixFQUM5QixXQUF3QixFQUN4QixNQUFjLEVBQ2IsTUFBNEIsRUFDNUIsYUFBNEIsRUFDNUIsWUFBMEIsRUFDMUIsbUJBQXdDLEVBQ3hDLFVBQThCLEVBQzlCLFlBQThCLEVBQzlCLFlBQTBCLEVBQzFCLEVBQXNCLEVBQ3RCLFlBQTZCLEVBQzdCLG1CQUF3QyxFQUN4QyxjQUFtQyxFQUNw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WSxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxhQUFhO29rQkEwQ0gsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNLLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFDSSxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ1EsZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFDSyxtQkFBbUI7c0JBQXBELFNBQVM7dUJBQUMscUJBQXFCO2dCQUNiLFlBQVk7c0JBQTlCLFNBQVM7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nRm9ybSwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEFwcENhY2hlU2VydmljZSxcbiAgQ2FwYWJpbGl0aWVzLFxuICBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxuICBDb25maWcsXG4gIEVuYWlvRXZlbnQsXG4gIEVudmlyb25tZW50U2VydmljZSxcbiAgRW9Vc2VyLFxuICBFdmVudFNlcnZpY2UsXG4gIExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gIE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxuICBTeXN0ZW1TZXJ2aWNlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBVc2VyU2VydmljZSxcbiAgVXRpbHNcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgZm9ya0pvaW59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlLCB3aXRoTGF0ZXN0RnJvbX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBZ2VudFNlcnZpY2UsIGFnZW50Q29uZmlnS2V5c30gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYWdlbnQvYWdlbnQuc2VydmljZSc7XG5pbXBvcnQge1BhZ2VUaXRsZVNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3RpdGxlL3BhZ2UtdGl0bGUuc2VydmljZSc7XG5pbXBvcnQge1Jlc3VsdExpc3RDb21wb25lbnR9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay9yZXN1bHQtbGlzdC9yZXN1bHQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtVc2VyQXZhdGFyQ29tcG9uZW50fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsvdWkvdXNlci1hdmF0YXIvdXNlci1hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7TGlzdFNldHRpbmdzU2VydmljZX0gZnJvbSAnLi8uLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9leHRlbnNpb25zL3NlcnZpY2VzL2xpc3Qtc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQge0xvY2tTZXR0aW5nc30gZnJvbSAnLi9hZ2VudC1sb2NrLXNldHRpbmdzLmVudW0nO1xuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1zZXR0aW5ncycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXR0aW5ncy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NldHRpbmdzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICB1c2VyOiBFb1VzZXI7XG4gIGNhcGFiaWxpdGllczogQ2FwYWJpbGl0aWVzO1xuICBkZXB1dGllczoge1xuICAgIGRhdGE6IHN0cmluZ1tdLFxuICAgIGRhdGFNZXRhOiBhbnlbXVxuICB9O1xuICBzaG93Q2hhbmdlUGFzc3dvcmRGb3JtOiBib29sZWFuO1xuICBjbGllbnRMb2NhbGVzOiBhbnk7XG4gIHNjaGVtYUxvY2FsZXM6IGFueVtdO1xuICBwdWJsaWMgTG9ja1NldHRpbmdzID0gTG9ja1NldHRpbmdzO1xuICBhZ2VudExvY2tTZXR0aW5nczogTG9ja1NldHRpbmdzO1xuICB1c2VBZ2VudENvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgc2hvd0FnZW50Q29uZmlnOiBib29sZWFuID0gdHJ1ZTtcbiAgZGVmYXVsdExvY2tTZXR0aW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgdXNlciQgPSB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIkO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgdXNlcklkID0gJyc7XG4gIHNob3dEZWxldGVJY29uVHJhc2g6IGJvb2xlYW4gPSB0cnVlO1xuICB1c2VySW1hZ2VVcmkgPSAnJztcbiAgcHJldmlldzogc3RyaW5nO1xuICBmaWxlOiBhbnk7XG4gIGhvdmVyU2VsZWN0b3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2hvd1ByZXZpZXdEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2hvd0RlbGV0ZURpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xuICBzaG93RXJyb3JEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcbiAgTUFYX0ZJTEVfU0laRSA9IDUyNDI4ODtcbiAgdmlld01vZGU6IHN0cmluZyA9ICcnO1xuICBmaWxlTmFtZTogc3RyaW5nO1xuXG4gIGNhY2hlID0ge1xuICAgIHN5c3RlbTogdHJ1ZSxcbiAgICBoaXN0b3J5OiB0cnVlLFxuICAgIGxheW91dDogdHJ1ZVxuICB9O1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVzJykgZmlsZXM6IEVsZW1lbnRSZWYgPSB7fSBhcyBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdoZWFkZXJCZycpIGhlYWRlckJnO1xuICBAVmlld0NoaWxkKCd1c2VyQXZhdGFyJykgdXNlckF2YXRhcjogVXNlckF2YXRhckNvbXBvbmVudFxuICBAVmlld0NoaWxkKCdjb25maXJtRGVsZXRlQnRuJykgY29uZmlybURlbGV0ZUJ0bjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgncHJvZmlsZUltYWdlT3ZlcmxheScpIHByb2ZpbGVJbWFnZU92ZXJsYXk6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoTmdGb3JtKSBkZXB1dGllc0Zvcm06IE5nRm9ybTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHVibGljIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwdWJsaWMgY29uZmlnOiBDb25maWcsXG4gICAgcHJpdmF0ZSBub3RpZnk6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2FwYWJpbGl0aWVzU2VydmljZTogQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgICBwcml2YXRlIGVudlNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSxcbiAgICBwcml2YXRlIHRpdGxlU2VydmljZTogUGFnZVRpdGxlU2VydmljZSxcbiAgICBwcml2YXRlIGFnZW50U2VydmljZTogQWdlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGNhY2hlU2VydmljZTogQXBwQ2FjaGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGlzdFNldHRpbmdzU2VydmljZTogTGlzdFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25zU2VydmljZSkge1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldEJhc2VUaXRsZSh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5iYXIuYnV0dG9uLnNldHRpbmdzLnRpdGxlJykpO1xuICAgIHRoaXMuY2xpZW50TG9jYWxlcyA9IGNvbmZpZy5nZXRDbGllbnRMb2NhbGVzKCk7XG4gICAgdGhpcy5jYXBhYmlsaXRpZXMgPSB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2UuZ2V0Q2FwYWJpbGl0aWVzKCk7XG4gICAgdGhpcy5nZXRTY2hlbWFMb2NhbGVzKCk7XG4gICAgdGhpcy5nZXRVc2VyRGF0YSgpO1xuICAgIHRoaXMuYWdlbnRMb2NrU2V0dGluZ3MgPSB1c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLnVzZXJTZXR0aW5ncy5hbHdheXNsb2NrO1xuICAgIHRoaXMuYWdlbnRTZXJ2aWNlLmlzQ29ubmVjdGVkJC5waXBlKHRha2UoMSksIHdpdGhMYXRlc3RGcm9tKHRoaXMuYWdlbnRTZXJ2aWNlLmFnZW50Q29uZmlnJCkpLnN1YnNjcmliZSgoW2lzQ29ubmVjdGVkLCBjb25maWddKSA9PiB7XG4gICAgICB0aGlzLnVzZUFnZW50Q29udHJvbCA9IHRoaXMuZmIuY29udHJvbChpc0Nvbm5lY3RlZCk7XG4gICAgICBpZiAoY29uZmlnLmhhc093blByb3BlcnR5KGFnZW50Q29uZmlnS2V5cy5BVVRPQ09OTkVDVCkpIHtcbiAgICAgICAgdGhpcy5zaG93QWdlbnRDb25maWcgPSBjb25maWdbYWdlbnRDb25maWdLZXlzLkFVVE9DT05ORUNUXVxuICAgICAgICB0aGlzLnVzZUFnZW50Q29udHJvbC5kaXNhYmxlKClcbiAgICAgIH1cbiAgICAgIGlmIChjb25maWcuaGFzT3duUHJvcGVydHkoYWdlbnRDb25maWdLZXlzLkxPQ0tTRVRUSU5HUykgJiYgT2JqZWN0LnZhbHVlcyhMb2NrU2V0dGluZ3MpLmluY2x1ZGVzKGNvbmZpZ1thZ2VudENvbmZpZ0tleXMuTE9DS1NFVFRJTkdTXSkpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0TG9ja1NldHRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmFnZW50TG9ja1NldHRpbmdzID0gY29uZmlnW2FnZW50Q29uZmlnS2V5cy5MT0NLU0VUVElOR1NdO1xuICAgICAgfVxuICAgICAgdGhpcy51c2VBZ2VudENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmFnZW50U2VydmljZS5pc0Nvbm5lY3RlZCA9IHRoaXMudXNlQWdlbnRDb250cm9sLnZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG5cbiAgZ2V0IGlzU1NPKCkge1xuICAgIHJldHVybiB0aGlzLmNhcGFiaWxpdGllcyAmJiB0aGlzLmNhcGFiaWxpdGllcy5zc287XG4gIH1cblxuICBnZXQgYWdlbnRTdGF0dXMoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuYWdlbnRTZXJ2aWNlLmlzQ29ubmVjdGVkJDtcbiAgfVxuXG4gIGdldCBpc0Nsb3VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVudlNlcnZpY2UuaXNDbG91ZCgpO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZVNjaGVtYSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnVzZXIgJiYgdGhpcy51c2VyLmdldFNjaGVtYUxvY2FsZSgpO1xuICB9XG5cbiAgaGFzUHJpdmlsZWdlKHByaXZpbGVnZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UuaGFzUHJpdmlsZWdlKHByaXZpbGVnZSk7XG4gIH1cblxuICBjaGFuZ2VMb2NrU2V0dGluZ3MobG9ja1NldHRpbmdzOiBMb2NrU2V0dGluZ3MpIHtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLmNoYW5nZUxvY2tTZXR0aW5nKGxvY2tTZXR0aW5ncykuc3Vic2NyaWJlKCgpID0+IHRoaXMuYWdlbnRMb2NrU2V0dGluZ3MgPSBsb2NrU2V0dGluZ3MpO1xuICB9XG5cbiAgZ2V0U2NoZW1hTG9jYWxlcygpIHtcbiAgICB0aGlzLnN5c3RlbVNlcnZpY2Uuc3lzdGVtJC5zdWJzY3JpYmUoKHN5c3RlbURlZmluaXRpb24pID0+IHtcbiAgICAgIHRoaXMuc2NoZW1hTG9jYWxlcyA9IHN5c3RlbURlZmluaXRpb24ubG9jYWxlcy5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2Rpc3BsYXluYW1lJykpO1xuICAgIH0pO1xuICB9XG5cbiAgc2F2ZURlcHV0aWVzKCkge1xuICAgIHRoaXMudXNlclNlcnZpY2Uuc2V0RGVwdXRpZXModGhpcy5kZXB1dGllcy5kYXRhKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4gdGhpcy5kZXB1dGllc0Zvcm0ucmVzZXRGb3JtKHtkZXB1dGllczogdGhpcy5kZXB1dGllcy5kYXRhfSkpO1xuICB9XG5cbiAgcmVzZXREZXB1dGllcygpIHtcbiAgICB0aGlzLmRlcHV0aWVzRm9ybS5yZXNldEZvcm0oe2RlcHV0aWVzOiB0aGlzLnVzZXIuZGVwdXRpZXMubWFwKGQgPT4gZC5uYW1lKX0pXG4gIH1cblxuICBnZXRVc2VyRGF0YSgpIHtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIkLnN1YnNjcmliZSgodXNlcikgPT4ge1xuICAgICAgLy8gdGhpcy51c2VyID0gT2JqZWN0LmFzc2lnbih1c2VyLCB7Y2FwYWJpbGl0aWVzOiB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2UuZ2V0Q2FwYWJpbGl0aWVzKCl9KTtcbiAgICAgIHRoaXMudXNlciA9IHVzZXI7XG4gICAgICAvLyBkZXB1dGllc1xuICAgICAgdGhpcy5kZXB1dGllcyA9IHtcbiAgICAgICAgZGF0YTogdGhpcy51c2VyLmRlcHV0aWVzLm1hcChkID0+IGQubmFtZSksXG4gICAgICAgIGRhdGFNZXRhOiB0aGlzLnVzZXIuZGVwdXRpZXNcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBjYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93Q2hhbmdlUGFzc3dvcmRGb3JtID0gZmFsc2U7XG4gIH1cblxuICBjaGFuZ2VDbGllbnRMb2NhbGUoaXNvOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5jb25maWcuZ2V0U3VwcG9ydGVkQ2xpZW50TG9jYWxlcygpLmluY2x1ZGVzKGlzbykpIHtcbiAgICAgIHRoaXMudXNlclNlcnZpY2UuY2hhbmdlQ2xpZW50TG9jYWxlKGlzbyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubm90aWZ5LmVycm9yKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN0YXRlLnNldHRpbmdzLmxhbmd1YWdlLmVycm9yJykpO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVNjaGVtYUxvY2FsZShpc286IHN0cmluZykge1xuICAgIGlmICh0aGlzLnVzZXIuc2NoZW1hTG9jYWxlICE9PSBpc28pIHtcbiAgICAgIHRoaXMudXNlclNlcnZpY2UuY2hhbmdlU2NoZW1hTG9jYWxlKGlzbykuc3Vic2NyaWJlKFxuICAgICAgICBfID0+IFV0aWxzLnRocm93KG51bGwsXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8udXNlci5zZXJ2aWNlLnNjaGVtYS5sb2NhbGUuZXJyb3IudGl0bGUnKSxcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby51c2VyLnNlcnZpY2Uuc2NoZW1hLmxvY2FsZS5lcnJvci5kZXNjcmlwdGlvbicpKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5lbGVtUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignI3ByZXNlbmNlJykuZm9jdXMoKTtcbiAgICB0aGlzLnVzZXIkLnN1YnNjcmliZSh1c2VyID0+IHtcbiAgICAgIHRoaXMudXNlcklkID0gdXNlci5pZDtcbiAgICAgIHRoaXMudXNlckltYWdlVXJpID0gdGhpcy51c2VyU2VydmljZS5nZXRVc2VySW1hZ2VVcmkodGhpcy51c2VySWQpO1xuICAgICAgdGhpcy5yZWZyZXNoVXNlckltYWdlSGVhZGVyQmFja2dyb3VuZCh0aGlzLnVzZXJJbWFnZVVyaSk7XG4gICAgICB0aGlzLnNob3dEZWxldGVJY29uVHJhc2ggPSAhIXVzZXIuaW1hZ2VVcmk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRQcmVzZW5jZShiOiBib29sZWFuKSB7XG4gICAgdGhpcy51c2VyU2VydmljZS5zZXRQcmVzZW5jZShiKVxuICAgICAgLnN1YnNjcmliZShfID0+IHtcbiAgICAgIH0sIFV0aWxzLnRocm93KG51bGwsXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN0YXRlLnNldHRpbmdzLnByZXNlbmNlLmVycm9yLnRpdGxlJyksXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN0YXRlLnNldHRpbmdzLnByZXNlbmNlLmVycm9yLmRlc2NyaXB0aW9uJylcbiAgICAgIClcbiAgICAgICk7XG4gIH1cbiAgY2xvc2VQcmV2aWV3RGlhbG9nKCkge1xuICAgIHRoaXMuc2hvd1ByZXZpZXdEaWFsb2cgPSBmYWxzZTtcbiAgICB0aGlzLnByb2ZpbGVJbWFnZU92ZXJsYXkubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgZGVsZXRlVXNlckltYWdlKCkge1xuICAgIGNvbnN0IHVwbG9hZFVSSSA9IHRoaXMudXNlclNlcnZpY2UuZ2V0VXNlckltYWdlVXJpKHRoaXMudXNlcklkKTtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlXG4gICAgICAuZGVsVXNlckltYWdlKHVwbG9hZFVSSSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVmcmVzaFVzZXJJbWFnZUhlYWRlckJhY2tncm91bmQodGhpcy51c2VySW1hZ2VVcmkpO1xuICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5TWVNURU1fU1RBVFVTX0lNQUdFX0NIQU5HRSk7XG4gICAgICAgICAgdGhpcy5zaG93RGVsZXRlRGlhbG9nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5zaG93RGVsZXRlSWNvblRyYXNoID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uZXJyb3IoJycsIGVyci5lcnJvci5jYXVzZS5tZXNzYWdlc1swXSk7XG4gICAgICAgICAgdGhpcy5maWxlID0gbnVsbDtcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby51cGxvYWQuZ2xvYmFsLmVycm9yLnRpdGxlJyksXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8udXBsb2FkLmdsb2JhbC5lcnJvci5kZXNjcmlwdGlvbicpXG4gICAgICAgIH0sXG5cbiAgICAgIH0pO1xuXG4gIH1cblxuICBzZWxlY3RJbWFnZShldmVudCk6IHZvaWQge1xuICAgIHRoaXMuZmlsZSA9IGV2ZW50LmZpbGVzWzBdO1xuICAgIGlmICh0aGlzLmZpbGUpIHtcbiAgICAgIHRoaXMuZmlsZU5hbWUgPSB0aGlzLmZpbGUubmFtZTtcbiAgICAgIHN3aXRjaCAoZmFsc2UpIHtcblxuICAgICAgICBjYXNlICh0aGlzLmZpbGUudHlwZS5pbmNsdWRlcygnaW1hZ2UvJykgJiYgdGhpcy5maWxlLnR5cGUuaW5jbHVkZXMoJ2pwZWcnKSB8fCB0aGlzLmZpbGUudHlwZS5pbmNsdWRlcygncG5nJykpOlxuICAgICAgICAgIHRoaXMudmlld01vZGUgPSAnaW1hZ2UnO1xuICAgICAgICAgIHRoaXMuc2hvd0Vycm9yRGlhbG9nID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICh0aGlzLmZpbGUuc2l6ZSA8PSB0aGlzLk1BWF9GSUxFX1NJWkUpOlxuICAgICAgICAgIHRoaXMudmlld01vZGUgPSAnc2l6ZSc7XG4gICAgICAgICAgdGhpcy5zaG93RXJyb3JEaWFsb2cgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG5cbiAgICAgICAgICB0aGlzLnByZXZpZXcgPSAnJztcbiAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByZXZpZXcgPSBlLnRhcmdldC5yZXN1bHQ7XG4gICAgICAgICAgICB0aGlzLnNob3dQcmV2aWV3RGlhbG9nID0gdHJ1ZTtcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKHRoaXMuZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBsb2FkTmV3VXNlckltYWdlKCkge1xuXG4gICAgdGhpcy51c2VyU2VydmljZVxuICAgICAgLnNldFVzZXJJbWFnZSh0aGlzLmZpbGUpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnByb2ZpbGVJbWFnZU92ZXJsYXkubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgIHRoaXMucmVmcmVzaFVzZXJJbWFnZUhlYWRlckJhY2tncm91bmQodGhpcy51c2VySW1hZ2VVcmkpO1xuICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5TWVNURU1fU1RBVFVTX0lNQUdFX0NIQU5HRSk7XG4gICAgICAgICAgdGhpcy5jbG9zZVByZXZpZXdEaWFsb2coKTtcbiAgICAgICAgICB0aGlzLnNob3dEZWxldGVJY29uVHJhc2ggPSB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uLmVycm9yKCcnLCBlcnIuZXJyb3IuY2F1c2UubWVzc2FnZXNbMF0pO1xuICAgICAgICAgIHRoaXMuZmlsZSA9IG51bGw7XG4gICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8udXBsb2FkLmdsb2JhbC5lcnJvci50aXRsZScpLFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnVwbG9hZC5nbG9iYWwuZXJyb3IuZGVzY3JpcHRpb24nKVxuICAgICAgICB9LFxuICB9KVxufVxuXG4gIHRhYkFjdGlvbihpbnB1dDogSFRNTElucHV0RWxlbWVudCkge1xuICAgIGlucHV0LmJsdXIoKTtcbiAgICB0aGlzLmhvdmVyU2VsZWN0b3IgPSBmYWxzZTtcbiAgfVxuICBtb3VzZUVudGVyKCkge1xuICAgIHRoaXMuaG92ZXJTZWxlY3RvciA9IHRydWU7XG4gIH1cbiAgbW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLmhvdmVyU2VsZWN0b3IgPSBmYWxzZTtcbiAgfVxuICB0cmFzaEljb25DbGljaygpIHtcbiAgICB0aGlzLnNob3dEZWxldGVEaWFsb2cgPSB0cnVlO1xuICB9XG5cbiAgcmVmcmVzaFVzZXJJbWFnZUhlYWRlckJhY2tncm91bmQoaW1hZ2VVcmk6IHN0cmluZykge1xuICAgIGlmIChpbWFnZVVyaSkge1xuICAgICAgY29uc3QgdGltZXN0YW1wID0gbmV3IERhdGUoKS5nZXRUaW1lKCkudG9TdHJpbmcoKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5oZWFkZXJCZy5uYXRpdmVFbGVtZW50LCAnYmFja2dyb3VuZC1pbWFnZScsIGB1cmwoJHtpbWFnZVVyaSArICcmdD0nICsgdGltZXN0YW1wfSlgKTtcbiAgICB9XG4gIH1cblxuICBjbGVhckNhY2hlKCkge1xuICAgIGNvbnN0IGFjdGlvbnMgPSBbXG4gICAgICB0aGlzLmNhY2hlLmhpc3RvcnkgJiYgdGhpcy5saXN0U2V0dGluZ3NTZXJ2aWNlLmNsZWFyU2V0dGluZ3MoKSxcbiAgICAgIHRoaXMuY2FjaGUuaGlzdG9yeSAmJiB0aGlzLmNhY2hlU2VydmljZS5jbGVhcigoa2V5OiBzdHJpbmcpID0+ICFrZXkubWF0Y2goL15lby4rKGxheW91dCkvKSAmJiAha2V5Lm1hdGNoKC9eZW8uZnJhbWV3b3JrLmNhY2hlLykpLFxuICAgICAgdGhpcy5jYWNoZS5sYXlvdXQgJiYgdGhpcy5zdG9yYWdlU2VydmljZS5jbGVhcigoa2V5OiBzdHJpbmcpID0+IGtleSA9PT0gUmVzdWx0TGlzdENvbXBvbmVudC5DT0xVTU5TX0RFRklOSVRJT04pLFxuICAgICAgdGhpcy5jYWNoZS5sYXlvdXQgJiYgdGhpcy5jYWNoZVNlcnZpY2UuY2xlYXIoKGtleTogc3RyaW5nKSA9PiAhIWtleS5tYXRjaCgvXmVvLisobGF5b3V0KS8pKSxcbiAgICAgIHRoaXMuY2FjaGUuc3lzdGVtICYmIHRoaXMuc3lzdGVtU2VydmljZS5mZXRjaFN5c3RlbURlZmluaXRpb24odGhpcy51c2VyKSxcbiAgICBdLmZpbHRlcihhID0+IGEpO1xuXG4gICAgcmV0dXJuIGFjdGlvbnMubGVuZ3RoID8gZm9ya0pvaW4oYWN0aW9ucykuc3Vic2NyaWJlKFxuICAgICAgKCkgPT4gdGhpcy5ub3RpZnkuc3VjY2Vzcyh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zdGF0ZS5zZXR0aW5ncy5jYWNoZS5jbGVhci5zdWNjZXNzJykpLFxuICAgICAgKCkgPT4gdGhpcy5ub3RpZnkuZXJyb3IodGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3RhdGUuc2V0dGluZ3MuY2FjaGUuY2xlYXIuZXJyb3InKSlcbiAgICApICYmIHRydWUgOiBmYWxzZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVvLXNldHRpbmdzXCIgKm5nSWY9XCJ1c2VyXCIgZW9SdGxBd2FyZT5cblxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG5cbiAgICA8ZGl2ICNoZWFkZXJCZyBjbGFzcz1cImJnXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZpbGxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZXRhIHVzZXJuYW1lXCI+e3t1c2VyLm5hbWV9fTwvZGl2PlxuICAgICAgPGgxPnt7dXNlci5maXJzdG5hbWV9fSB7e3VzZXIubGFzdG5hbWV9fTwvaDE+XG4gICAgICA8ZGl2IGNsYXNzPVwibWV0YSBlbWFpbFwiPnt7dXNlci5lbWFpbH19PC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJwcmVzZW5jZVwiICpuZ0lmPVwiY2FwYWJpbGl0aWVzLmluYm94XCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJ0b2dnbGUgZGFyayBwcmVzZW50XCIgaWQ9XCJwcmVzZW5jZVwiIChjbGljayk9XCJzZXRQcmVzZW5jZSh0cnVlKVwiIFtuZ0NsYXNzXT1cInthY3RpdmU6IHVzZXIucHJlc2VudH1cIlxuICAgICAgICAgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLnByZXNlbmNlLnByZXNlbnQ8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRvZ2dsZSBkYXJrIGFic2VudFwiIChjbGljayk9XCJzZXRQcmVzZW5jZShmYWxzZSlcIiAoa2V5ZG93bi50YWIpPVwidGFiQWN0aW9uKCRldmVudC50YXJnZXQpXCIgW25nQ2xhc3NdPVwie2FjdGl2ZTogIXVzZXIucHJlc2VudH1cIlxuICAgICAgICAgIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5wcmVzZW5jZS5hYnNlbnQ8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKG1vdXNlZW50ZXIpPVwibW91c2VFbnRlcigpXCIgKG1vdXNlbGVhdmUpPVwibW91c2VMZWF2ZSgpXCIgKGtleWRvd24udGFiKT1cIm1vdXNlRW50ZXIoKVwiPlxuXG4gICAgICA8ZW8tdXNlci1hdmF0YXIgI3VzZXJBdmF0YXIgY2xhc3M9XCJ1c2VySW1hZ2VcIiB0YWJpbmRleD1cIi0xXCIgZW9SdGxBd2FyZT1cImZ1bGxcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImZpbGVcIiBhY2NlcHQ9XCIuanBnLCAucG5nXCIgc3R5bGU9XCJkaXNwbGF5Om5vbmU7XCIgI2ZpbGVzIChjaGFuZ2UpPVwic2VsZWN0SW1hZ2UoJGV2ZW50LnRhcmdldClcIiAoY2xpY2spPVwiJGV2ZW50LnRhcmdldC52YWx1ZT1udWxsXCI+XG4gICAgICA8L2VvLXVzZXItYXZhdGFyPlxuICAgICAgPGVvLWRpYWxvZyAgW3N0eWxlQ2xhc3NdPVwiJ3ZpZXcnXCIgW21pbldpZHRoXT1cIiczMDBweCdcIiBbdGl0bGVdPVwiJ2VvLnN0YXRlLnNldHRpbmdzLmRldGFpbHMudXBsb2FkLmRpYWxvZy50aXRsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbKHZpc2libGUpXT1cInNob3dQcmV2aWV3RGlhbG9nXCIgW2ZvY3VzT25TaG93XT1cImZhbHNlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50c1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXR0YVwiPlxuICAgICAgICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBbc3JjXT1cInByZXZpZXdcIj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWF2YXRhclwiICpuZ0lmPVwicHJldmlld1wiPlxuICAgICAgICAgICAgICAgIDxlby11c2VyLWF2YXRhciBjbGFzcz1cInByZXZpZXctcm91bmRcIiBbcHJldmlld1VyaV09XCJwcmV2aWV3XCI+PC9lby11c2VyLWF2YXRhcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWJsb2NrXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xvc2VQcmV2aWV3RGlhbG9nKClcIiBjbGFzcz1cImJ1dHRvbiBkYW5nZXJcIlxuICAgICAgICAgICAgICB0cmFuc2xhdGU+ZW8uc3RhdGUuc2V0dGluZ3MuZGV0YWlscy5kZWxldGUuZGlhbG9nLmNhbmNlbDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2RrRm9jdXNJbml0aWFsIChjbGljayk9XCJ1cGxvYWROZXdVc2VySW1hZ2UoKVwiIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIlxuICAgICAgICAgICAgICB0cmFuc2xhdGU+ZW8uc3RhdGUuc2V0dGluZ3MuZGV0YWlscy5kaWFsb2cuc2F2ZTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZW8tZGlhbG9nPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheVwiICNwcm9maWxlSW1hZ2VPdmVybGF5IHRhYmluZGV4PVwiMFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInVwZGF0ZU1lc3NhZ2VcIiAqbmdJZj1cImhvdmVyU2VsZWN0b3JcIj5cbiAgICAgICAgICA8ZW8taWNvbiB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bi5lbnRlcik9XCJmaWxlcy5jbGljaygpXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZWRpdC5zdmcnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJmaWxlcy5jbGljaygpXCI+PC9lby1pY29uPlxuICAgICAgICAgIDxlby1pY29uIHRhYmluZGV4PVwiMFwiIChrZXlkb3duLmVudGVyKT1cInRyYXNoSWNvbkNsaWNrKClcIiAqbmdJZj1cInNob3dEZWxldGVJY29uVHJhc2hcIlxuICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfdHJhc2guc3ZnJ1wiIGFyaWEtZGlzYWJsZWQ9XCJ0cnVlXCIgKGNsaWNrKT1cInRyYXNoSWNvbkNsaWNrKClcIj48L2VvLWljb24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJib2R5XCIgKGtleWRvd24udGFiKT1cInRhYkFjdGlvbigkZXZlbnQudGFyZ2V0KVwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImJvZHktd3JhcFwiPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbiBzZWN0aW9uLWRlcHV0aWVzXCIgKm5nSWY9XCJjYXBhYmlsaXRpZXMuYnBtICYmIGhhc1ByaXZpbGVnZSgnTUFOQUdFX0RFUFVUWV9MSVNUJylcIj5cbiAgICAgICAgPGgzIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5kZXB1dGllczwvaDM+XG5cbiAgICAgICAgPCEtLSBkZXB1dGllcyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVudHJ5IGRlcHV0aWVzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCIgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLmRlcHV0aWVzLmxhYmVsPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlc1wiPlxuICAgICAgICAgICAgPGZvcm0gI2RlcHV0aWVzRm9ybT1cIm5nRm9ybVwiIFtuZ0NsYXNzXT1cIntkaXJ0eTogZGVwdXRpZXNGb3JtLmRpcnR5fVwiPlxuICAgICAgICAgICAgICA8ZW8tb3JnYW5pemF0aW9uIG5hbWU9XCJkZXB1dGllc1wiIFtkYXRhTWV0YV09XCJkZXB1dGllcy5kYXRhTWV0YVwiIFtmaWx0ZXJPYmplY3RdPVwie3R5cGU6ICdVU0VSJ31cIlxuICAgICAgICAgICAgICAgIFtleGNlcHRpb25zXT1cIlt1c2VyLm5hbWVdXCIgW211bHRpc2VsZWN0XT1cInRydWVcIiB0YWJpbmRleD1cIjBcIiBbKG5nTW9kZWwpXT1cImRlcHV0aWVzLmRhdGFcIj48L2VvLW9yZ2FuaXphdGlvbj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIiAqbmdJZj1cImRlcHV0aWVzRm9ybS52YWxpZCAmJiBkZXB1dGllc0Zvcm0uZGlydHlcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cInJlc2V0RGVwdXRpZXMoKVwiIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5kZXB1dGllcy5jYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicHJpbWFyeVwiIChjbGljayk9XCJzYXZlRGVwdXRpZXMoKVwiIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5kZXB1dGllcy5zYXZlPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIHN1YnN0aXR1dGUgb2YgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbnRyeSBzdWJzdGl0dXRlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCIgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLmRlcHV0aWVzLnN1YnNpdHV0ZW9mLmxhYmVsPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlc1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCIgKm5nRm9yPVwibGV0IHN1YiBvZiB1c2VyLnN1YnN0aXR1dGVzT2ZcIiBbbmdDbGFzc109XCJ7cHJlc2VudDogc3ViLnByZXNlbnR9XCI+XG4gICAgICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiY2hpcCBzdWJzdGl0dXRlIHN1YnN0aXR1dGUtLXByZXNlbnRcIiAqbmdJZj1cInN1Yi5wcmVzZW50XCJcbiAgICAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19kb25lLnN2ZydcIj48L2VvLWljb24+XG4gICAgICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiY2hpcCBzdWJzdGl0dXRlIHN1YnN0aXR1dGUtLWF3YXlcIiAqbmdJZj1cIiFzdWIucHJlc2VudFwiXG4gICAgICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY2xlYXIuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgICAgICAgPHNwYW4+e3tzdWIudGl0bGV9fSAoe3tzdWIubmFtZX19KTwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBwYXNzd29yZCAtLT5cbiAgICAgIDxzZWN0aW9uICpuZ0lmPVwiIWlzQ2xvdWQgJiYgIWlzU1NPIHx8ICFpc0Nsb3VkICYmIGlzU1NPXCIgY2xhc3M9XCJzZWN0aW9uIHNlY3Rpb24tcGFzc3dvcmRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVudHJ5XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCIgdHJhbnNsYXRlPmVvLnBhc3N3b3JkLnJlc2V0PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlc1wiPlxuICAgICAgICAgICAgPGVvLXNpbXBsZS1hY2NvcmRpb24gI3NpbXBsZUFjYyBbaGVhZGVyXT1cIignZW8ucGFzc3dvcmQucmVzZXQnIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgIFtzdHlsZXNdPVwiJ3NldHRpbmdfX2NoYW5nZS1wYXNzd29yZCdcIiBbaGVhZGVyQ2xhc3NdPVwiJ3NldHRpbmdfX2NoYW5nZS1wYXNzd29yZC1oZWFkZXInXCI+XG5cbiAgICAgICAgICAgICAgPGVvLWNoYW5nZS1wYXNzd29yZC1mb3JtIChvbkZvcm1TdW1iaXQpPVwic2ltcGxlQWNjLnNlbGVjdGVkID0gZmFsc2VcIj48L2VvLWNoYW5nZS1wYXNzd29yZC1mb3JtPlxuICAgICAgICAgICAgPC9lby1zaW1wbGUtYWNjb3JkaW9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgPCEtLSBsYW5ndWFnZSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uIHNlY3Rpb24tbGFuZ1wiPlxuICAgICAgICA8aDMgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLmxhbmd1YWdlPC9oMz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVudHJ5IGxhbmctYXBwXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCIgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLmxhbmd1YWdlLmNsaWVudDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZXNcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ0b2dnbGVcIiAoY2xpY2spPVwiY2hhbmdlQ2xpZW50TG9jYWxlKGxvY2FsZS5pc28pXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie2FjdGl2ZTogdHJhbnNsYXRlLmN1cnJlbnRMYW5nID09PSBsb2NhbGUuaXNvfVwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsb2NhbGUgb2YgY2xpZW50TG9jYWxlc1wiPnt7bG9jYWxlLmxhYmVsfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW50cnkgbGFuZy1kZWZcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiB0cmFuc2xhdGU+ZW8uc3RhdGUuc2V0dGluZ3MubGFuZ3VhZ2Uuc2NoZW1hPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRvZ2dsZVwiIChjbGljayk9XCJjaGFuZ2VTY2hlbWFMb2NhbGUobG9jYWxlLmNvZGUpXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie2FjdGl2ZTogYWN0aXZlU2NoZW1hID09PSBsb2NhbGUuY29kZX1cIlxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbG9jYWxlIG9mIHNjaGVtYUxvY2FsZXNcIj57e2xvY2FsZS5kaXNwbGF5bmFtZX19PC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gcGVybWlzc2lvbnMgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbiBzZWN0aW9uLXBlcm1cIj5cbiAgICAgICAgPGgzIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5wZXJtaXNzaW9uPC9oMz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVudHJ5IHBlcm0tcm9sZXNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiB0cmFuc2xhdGU+ZW8uc3RhdGUuc2V0dGluZ3Mucm9sZXM8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVzIHJvbGVzXCI+XG4gICAgICAgICAgICA8ZW8tc2ltcGxlLWFjY29yZGlvbiBbaGVhZGVyXT1cIignZW8uc3RhdGUuc2V0dGluZ3Mucm9sZXMnIHwgdHJhbnNsYXRlKVwiPlxuICAgICAgICAgICAgICA8ZW8tcGVybWlzc2lvbnMgW3JvbGVzXT1cInVzZXIucm9sZXNcIj48L2VvLXBlcm1pc3Npb25zPlxuICAgICAgICAgICAgPC9lby1zaW1wbGUtYWNjb3JkaW9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIGFnZW50IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24gc2VjdGlvbi1vdGhlcnNcIj5cbiAgICAgICAgPGgzIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5vdGhlcnM8L2gzPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0FnZW50Q29uZmlnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVudHJ5XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiB0cmFuc2xhdGU+ZW8uc3RhdGUuc2V0dGluZ3MuYWdlbnQ8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZXNcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZS1hZ2VudFwiPlxuICAgICAgICAgICAgICAgIDxlby1jaGVja2JveCBbZm9ybUNvbnRyb2xdPVwidXNlQWdlbnRDb250cm9sXCIgW3JlYWRvbmx5XT1cInVzZUFnZW50Q29udHJvbC5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInVzZUFnZW50Q29udHJvbFwiPjwvZW8tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2UtYWdlbnQtbGFiZWxcIiB0cmFuc2xhdGU+ZW8uc3RhdGUuc2V0dGluZ3MuYWdlbnQudXNlPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwhLS0gPGEgaHJlZj1cImh0dHBzOi8vaGVscC5vcHRpbWFsLXN5c3RlbXMuY29tL3l1dXZpc1JBRC92NjAvdXNlci9jbGllbnQvZGUvY2xpZW50L2ludGVncmF0aW9uL2Nsbl90c2tfYWdlbnRfZ2xvYmFsLmh0bT9IaWdobGlnaHQ9YWdlbnRcIj5cbiAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImluZm8taWNvblwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2luZm8uc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgPC9hPiAtLT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVudHJ5IGxvY2stc2V0dGluZ3NcIiBbbmdDbGFzc109XCJ7J2xvY2stc2V0dGluZ3MtLXNob3cnOiAoYWdlbnRTdGF0dXMgfCBhc3luYyl9XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiB0cmFuc2xhdGU+ZW8uc3RhdGUuc2V0dGluZ3MubG9jazwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlc1wiPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwidG9nZ2xlIGJ1dHRvbi1lbmFibGVkXCIgKGNsaWNrKT1cImNoYW5nZUxvY2tTZXR0aW5ncyhMb2NrU2V0dGluZ3MuYWx3YXlzKVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie2FjdGl2ZTogYWdlbnRMb2NrU2V0dGluZ3MgPT09IExvY2tTZXR0aW5ncy5hbHdheXN9XCIgW2Rpc2FibGVkXT1cImRlZmF1bHRMb2NrU2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLmxvY2suZW5hYmxlPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ0b2dnbGUgYnV0dG9uLWRpc2FibGVkXCIgKGNsaWNrKT1cImNoYW5nZUxvY2tTZXR0aW5ncyhMb2NrU2V0dGluZ3MubmV2ZXIpXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7YWN0aXZlOiBhZ2VudExvY2tTZXR0aW5ncyA9PT0gTG9ja1NldHRpbmdzLm5ldmVyfVwiIFtkaXNhYmxlZF09XCJkZWZhdWx0TG9ja1NldHRpbmdcIlxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5sb2NrLmRpc2FibGU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRvZ2dsZSBidXR0b24tYXNrXCIgKGNsaWNrKT1cImNoYW5nZUxvY2tTZXR0aW5ncyhMb2NrU2V0dGluZ3MuYXNrKVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie2FjdGl2ZTogYWdlbnRMb2NrU2V0dGluZ3MgPT09IExvY2tTZXR0aW5ncy5hc2t9XCIgW2Rpc2FibGVkXT1cImRlZmF1bHRMb2NrU2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLmxvY2suYXNrPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbnRyeVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5jYWNoZTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZXNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXJvd1wiPlxuICAgICAgICAgICAgICA8YnV0dG9uIHRyYW5zbGF0ZSAoY2xpY2spPVwiY2xlYXJDYWNoZSgpXCI+ZW8uc3RhdGUuc2V0dGluZ3MuY2FjaGUuY2xlYXI8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhY2hlXCI+XG4gICAgICAgICAgICAgICAgPGVvLWZvcm0taW5wdXQgY2xhc3M9XCJjaGVja2JveFwiIFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5zdGF0ZS5zZXR0aW5ncy5jb25maWcuY2FjaGUuc3lzdGVtJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgPGVvLWNoZWNrYm94IFsobmdNb2RlbCldPVwiY2FjaGUuc3lzdGVtXCIgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCI+PC9lby1jaGVja2JveD5cbiAgICAgICAgICAgICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgICAgICAgICAgICAgPGVvLWZvcm0taW5wdXQgY2xhc3M9XCJjaGVja2JveFwiIFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5zdGF0ZS5zZXR0aW5ncy5jb25maWcuY2FjaGUuaGlzdG9yeScgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgICAgICAgIDxlby1jaGVja2JveCBbKG5nTW9kZWwpXT1cImNhY2hlLmhpc3RvcnlcIiBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIj48L2VvLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgICAgICAgICAgICA8ZW8tZm9ybS1pbnB1dCBjbGFzcz1cImNoZWNrYm94XCIgW3NraXBUb2dnbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLnN0YXRlLnNldHRpbmdzLmNvbmZpZy5jYWNoZS5sYXlvdXQnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgICAgICA8ZW8tY2hlY2tib3ggWyhuZ01vZGVsKV09XCJjYWNoZS5sYXlvdXRcIiBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIj48L2VvLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGVvLWRpYWxvZyBbdGl0bGVdPVwiJ2VvLnN0YXRlLnNldHRpbmdzLmRldGFpbHMuZGVsZXRlLmRpYWxvZy50aXRsZScgfCB0cmFuc2xhdGVcIiBbKHZpc2libGUpXT1cInNob3dEZWxldGVEaWFsb2dcIlxuICAgIFtmb2N1c09uU2hvd109XCJmYWxzZVwiIFttaW5XaWR0aF09XCI0MDBcIiBbc3R5bGVDbGFzc109XCInZGVsZXRlX19kaWFsb2cnXCI+XG4gICAgPGRpdj57eydlby5zdGF0ZS5zZXR0aW5ncy5kZXRhaWxzLmRlbGV0ZS5kaWFsb2cubWVzc2FnZScgfCB0cmFuc2xhdGV9fTwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zIGltYWdlLWRlbGV0ZS0tYWN0aW9uLWJ1dHRvbnMgZmxleC1yb3dcIiA+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ1dHRvbiBjYW5jZWxcIiAoY2xpY2spPVwic2hvd0RlbGV0ZURpYWxvZyA9IGZhbHNlXCJcbiAgICAgIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5kZXRhaWxzLmRlbGV0ZS5kaWFsb2cuY2FuY2VsPC9idXR0b24+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjZGtGb2N1c0luaXRpYWwgI2NvbmZpcm1EZWxldGVCdG4gKGNsaWNrKT1cImRlbGV0ZVVzZXJJbWFnZSgpXCIgY2xhc3M9XCJidXR0b24gcHJpbWFyeVwiXG4gICAgICAgIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5kZXRhaWxzLmRlbGV0ZS5kaWFsb2cub2s8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9lby1kaWFsb2c+XG5cbiAgPGVvLWRpYWxvZyBbdGl0bGVdPVwiJ2VvLnN0YXRlLnNldHRpbmdzLmRldGFpbHMudXBsb2FkLmRpYWxvZy50aXRsZScgfCB0cmFuc2xhdGVcIiBbKHZpc2libGUpXT1cInNob3dFcnJvckRpYWxvZ1wiXG4gICAgW2ZvY3VzT25TaG93XT1cImZhbHNlXCIgW21pbldpZHRoXT1cIjQwMFwiIFtzdHlsZUNsYXNzXT1cIidkZWxldGVfX2RpYWxvZydcIj5cblxuICAgIDxkaXY+XG4gICAgICA8cD57e2ZpbGVOYW1lfX08L3A+XG4gICAgICA8cCAqbmdJZj1cInZpZXdNb2RlID09PSdzaXplJ1wiIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5kZXRhaWxzLnVwbG9hZC5kaWFsb2cuc2l6ZUVycm9yPC9wPlxuICAgICAgPHAgKm5nSWY9XCJ2aWV3TW9kZSA9PT0naW1hZ2UnXCIgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLmRldGFpbHMudXBsb2FkLmRpYWxvZy5maWxlRXJyb3IgPC9wPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zIGltYWdlLWRlbGV0ZS0tYWN0aW9uLWJ1dHRvbnMgZmxleC1yb3dcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnV0dG9uIGNhbmNlbFwiIChjbGljayk9XCJzaG93RXJyb3JEaWFsb2cgPSBmYWxzZVwiXG4gICAgICAgIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5kZXRhaWxzLmRlbGV0ZS5kaWFsb2cuY2FuY2VsPC9idXR0b24+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjZGtGb2N1c0luaXRpYWwgKGNsaWNrKT1cImZpbGVzLmNsaWNrKCk7IHNob3dFcnJvckRpYWxvZyA9IGZhbHNlXCIgY2xhc3M9XCJidXR0b24gcHJpbWFyeVwiXG4gICAgICAgIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5kZXRhaWxzLnVwbG9hZC5kaWFsb2cuYmFjazwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2VvLWRpYWxvZz5cbjwvZGl2PlxuIl19
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvc2V0dGluZ3Mvc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvc2V0dGluZ3Mvc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUF5QixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFDLE1BQU0sRUFBeUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RSxPQUFPLEVBS0wsVUFBVSxFQVNWLEtBQUssRUFDTixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBYSxRQUFRLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFDLElBQUksRUFBRSxjQUFjLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQWUsZUFBZSxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFFMUYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFHekYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT2pELElBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWlCO0lBNkM1QixZQUFvQixRQUFtQixFQUM5QixXQUF3QixFQUN4QixNQUFjLEVBQ2IsTUFBNEIsRUFDNUIsYUFBNEIsRUFDNUIsWUFBMEIsRUFDMUIsbUJBQXdDLEVBQ3hDLFVBQThCLEVBQzlCLFlBQThCLEVBQzlCLFlBQTBCLEVBQzFCLEVBQXNCLEVBQ3RCLFlBQTZCLEVBQzdCLG1CQUF3QyxFQUN4QyxjQUFtQyxFQUNw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LE9BQU87Z0JBQ0ssUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNJLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFDUSxnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUNLLG1CQUFtQjtzQkFBcEQsU0FBUzt1QkFBQyxxQkFBcUI7Z0JBQ2IsWUFBWTtzQkFBOUIsU0FBUzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdGb3JtLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQXBwQ2FjaGVTZXJ2aWNlLFxuICBDYXBhYmlsaXRpZXMsXG4gIENhcGFiaWxpdGllc1NlcnZpY2UsXG4gIENvbmZpZyxcbiAgRW5haW9FdmVudCxcbiAgRW52aXJvbm1lbnRTZXJ2aWNlLFxuICBFb1VzZXIsXG4gIEV2ZW50U2VydmljZSxcbiAgTG9jYWxTdG9yYWdlU2VydmljZSxcbiAgTm90aWZpY2F0aW9uc1NlcnZpY2UsXG4gIFN5c3RlbVNlcnZpY2UsXG4gIFRyYW5zbGF0ZVNlcnZpY2UsXG4gIFVzZXJTZXJ2aWNlLFxuICBVdGlsc1xufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBmb3JrSm9pbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2UsIHdpdGhMYXRlc3RGcm9tfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0FnZW50U2VydmljZSwgYWdlbnRDb25maWdLZXlzfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9hZ2VudC9hZ2VudC5zZXJ2aWNlJztcbmltcG9ydCB7UGFnZVRpdGxlU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvdGl0bGUvcGFnZS10aXRsZS5zZXJ2aWNlJztcbmltcG9ydCB7UmVzdWx0TGlzdENvbXBvbmVudH0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrL3Jlc3VsdC1saXN0L3Jlc3VsdC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge1VzZXJBdmF0YXJDb21wb25lbnR9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay91aS91c2VyLWF2YXRhci91c2VyLWF2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHtMaXN0U2V0dGluZ3NTZXJ2aWNlfSBmcm9tICcuLy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2V4dGVuc2lvbnMvc2VydmljZXMvbGlzdC1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7TG9ja1NldHRpbmdzfSBmcm9tICcuL2FnZW50LWxvY2stc2V0dGluZ3MuZW51bSc7XG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLXNldHRpbmdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NldHRpbmdzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2V0dGluZ3MuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZXR0aW5nc0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIHVzZXI6IEVvVXNlcjtcbiAgY2FwYWJpbGl0aWVzOiBDYXBhYmlsaXRpZXM7XG4gIGRlcHV0aWVzOiB7XG4gICAgZGF0YTogc3RyaW5nW10sXG4gICAgZGF0YU1ldGE6IGFueVtdXG4gIH07XG4gIHNob3dDaGFuZ2VQYXNzd29yZEZvcm06IGJvb2xlYW47XG4gIGNsaWVudExvY2FsZXM6IGFueTtcbiAgc2NoZW1hTG9jYWxlczogYW55W107XG4gIHB1YmxpYyBMb2NrU2V0dGluZ3MgPSBMb2NrU2V0dGluZ3M7XG4gIGFnZW50TG9ja1NldHRpbmdzOiBMb2NrU2V0dGluZ3M7XG4gIHVzZUFnZW50Q29udHJvbDogVW50eXBlZEZvcm1Db250cm9sO1xuICBzaG93QWdlbnRDb25maWc6IGJvb2xlYW4gPSB0cnVlO1xuICBkZWZhdWx0TG9ja1NldHRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICB1c2VyJCA9IHRoaXMudXNlclNlcnZpY2UudXNlciQ7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICB1c2VySWQgPSAnJztcbiAgc2hvd0RlbGV0ZUljb25UcmFzaDogYm9vbGVhbiA9IHRydWU7XG4gIHVzZXJJbWFnZVVyaSA9ICcnO1xuICBwcmV2aWV3OiBzdHJpbmc7XG4gIGZpbGU6IGFueTtcbiAgaG92ZXJTZWxlY3RvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBzaG93UHJldmlld0RpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xuICBzaG93RGVsZXRlRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dFcnJvckRpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xuICBNQVhfRklMRV9TSVpFID0gNTI0Mjg4O1xuICB2aWV3TW9kZTogc3RyaW5nID0gJyc7XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG5cbiAgY2FjaGUgPSB7XG4gICAgc3lzdGVtOiB0cnVlLFxuICAgIGhpc3Rvcnk6IHRydWUsXG4gICAgbGF5b3V0OiB0cnVlXG4gIH07XG5cbiAgQFZpZXdDaGlsZCgnZmlsZXMnKSBmaWxlczogRWxlbWVudFJlZiA9IHt9IGFzIEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2hlYWRlckJnJykgaGVhZGVyQmc7XG4gIEBWaWV3Q2hpbGQoJ3VzZXJBdmF0YXInKSB1c2VyQXZhdGFyOiBVc2VyQXZhdGFyQ29tcG9uZW50XG4gIEBWaWV3Q2hpbGQoJ2NvbmZpcm1EZWxldGVCdG4nKSBjb25maXJtRGVsZXRlQnRuOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdwcm9maWxlSW1hZ2VPdmVybGF5JykgcHJvZmlsZUltYWdlT3ZlcmxheTogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZChOZ0Zvcm0pIGRlcHV0aWVzRm9ybTogTmdGb3JtO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb25maWc6IENvbmZpZyxcbiAgICBwcml2YXRlIG5vdGlmeTogTm90aWZpY2F0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzeXN0ZW1TZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYXBhYmlsaXRpZXNTZXJ2aWNlOiBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZW52U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBQYWdlVGl0bGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWdlbnRTZXJ2aWNlOiBBZ2VudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgY2FjaGVTZXJ2aWNlOiBBcHBDYWNoZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsaXN0U2V0dGluZ3NTZXJ2aWNlOiBMaXN0U2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1SZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbnNTZXJ2aWNlKSB7XG4gICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0QmFzZVRpdGxlKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmJhci5idXR0b24uc2V0dGluZ3MudGl0bGUnKSk7XG4gICAgdGhpcy5jbGllbnRMb2NhbGVzID0gY29uZmlnLmdldENsaWVudExvY2FsZXMoKTtcbiAgICB0aGlzLmNhcGFiaWxpdGllcyA9IHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZS5nZXRDYXBhYmlsaXRpZXMoKTtcbiAgICB0aGlzLmdldFNjaGVtYUxvY2FsZXMoKTtcbiAgICB0aGlzLmdldFVzZXJEYXRhKCk7XG4gICAgdGhpcy5hZ2VudExvY2tTZXR0aW5ncyA9IHVzZXJTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCkudXNlclNldHRpbmdzLmFsd2F5c2xvY2s7XG4gICAgdGhpcy5hZ2VudFNlcnZpY2UuaXNDb25uZWN0ZWQkLnBpcGUodGFrZSgxKSwgd2l0aExhdGVzdEZyb20odGhpcy5hZ2VudFNlcnZpY2UuYWdlbnRDb25maWckKSkuc3Vic2NyaWJlKChbaXNDb25uZWN0ZWQsIGNvbmZpZ10pID0+IHtcbiAgICAgIHRoaXMudXNlQWdlbnRDb250cm9sID0gdGhpcy5mYi5jb250cm9sKGlzQ29ubmVjdGVkKTtcbiAgICAgIGlmIChjb25maWcuaGFzT3duUHJvcGVydHkoYWdlbnRDb25maWdLZXlzLkFVVE9DT05ORUNUKSkge1xuICAgICAgICB0aGlzLnNob3dBZ2VudENvbmZpZyA9IGNvbmZpZ1thZ2VudENvbmZpZ0tleXMuQVVUT0NPTk5FQ1RdXG4gICAgICAgIHRoaXMudXNlQWdlbnRDb250cm9sLmRpc2FibGUoKVxuICAgICAgfVxuICAgICAgaWYgKGNvbmZpZy5oYXNPd25Qcm9wZXJ0eShhZ2VudENvbmZpZ0tleXMuTE9DS1NFVFRJTkdTKSAmJiBPYmplY3QudmFsdWVzKExvY2tTZXR0aW5ncykuaW5jbHVkZXMoY29uZmlnW2FnZW50Q29uZmlnS2V5cy5MT0NLU0VUVElOR1NdKSkge1xuICAgICAgICB0aGlzLmRlZmF1bHRMb2NrU2V0dGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuYWdlbnRMb2NrU2V0dGluZ3MgPSBjb25maWdbYWdlbnRDb25maWdLZXlzLkxPQ0tTRVRUSU5HU107XG4gICAgICB9XG4gICAgICB0aGlzLnVzZUFnZW50Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuYWdlbnRTZXJ2aWNlLmlzQ29ubmVjdGVkID0gdGhpcy51c2VBZ2VudENvbnRyb2wudmFsdWUpO1xuICAgIH0pO1xuICB9XG5cblxuICBnZXQgaXNTU08oKSB7XG4gICAgcmV0dXJuIHRoaXMuY2FwYWJpbGl0aWVzICYmIHRoaXMuY2FwYWJpbGl0aWVzLnNzbztcbiAgfVxuXG4gIGdldCBhZ2VudFN0YXR1cygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5hZ2VudFNlcnZpY2UuaXNDb25uZWN0ZWQkO1xuICB9XG5cbiAgZ2V0IGlzQ2xvdWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW52U2VydmljZS5pc0Nsb3VkKCk7XG4gIH1cblxuICBnZXQgYWN0aXZlU2NoZW1hKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudXNlciAmJiB0aGlzLnVzZXIuZ2V0U2NoZW1hTG9jYWxlKCk7XG4gIH1cblxuICBoYXNQcml2aWxlZ2UocHJpdmlsZWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5oYXNQcml2aWxlZ2UocHJpdmlsZWdlKTtcbiAgfVxuXG4gIGNoYW5nZUxvY2tTZXR0aW5ncyhsb2NrU2V0dGluZ3M6IExvY2tTZXR0aW5ncykge1xuICAgIHRoaXMudXNlclNlcnZpY2UuY2hhbmdlTG9ja1NldHRpbmcobG9ja1NldHRpbmdzKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5hZ2VudExvY2tTZXR0aW5ncyA9IGxvY2tTZXR0aW5ncyk7XG4gIH1cblxuICBnZXRTY2hlbWFMb2NhbGVzKCkge1xuICAgIHRoaXMuc3lzdGVtU2VydmljZS5zeXN0ZW0kLnN1YnNjcmliZSgoc3lzdGVtRGVmaW5pdGlvbikgPT4ge1xuICAgICAgdGhpcy5zY2hlbWFMb2NhbGVzID0gc3lzdGVtRGVmaW5pdGlvbi5sb2NhbGVzLnNvcnQoVXRpbHMuc29ydFZhbHVlcygnZGlzcGxheW5hbWUnKSk7XG4gICAgfSk7XG4gIH1cblxuICBzYXZlRGVwdXRpZXMoKSB7XG4gICAgdGhpcy51c2VyU2VydmljZS5zZXREZXB1dGllcyh0aGlzLmRlcHV0aWVzLmRhdGEpXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLmRlcHV0aWVzRm9ybS5yZXNldEZvcm0oe2RlcHV0aWVzOiB0aGlzLmRlcHV0aWVzLmRhdGF9KSk7XG4gIH1cblxuICByZXNldERlcHV0aWVzKCkge1xuICAgIHRoaXMuZGVwdXRpZXNGb3JtLnJlc2V0Rm9ybSh7ZGVwdXRpZXM6IHRoaXMudXNlci5kZXB1dGllcy5tYXAoZCA9PiBkLm5hbWUpfSlcbiAgfVxuXG4gIGdldFVzZXJEYXRhKCkge1xuICAgIHRoaXMudXNlclNlcnZpY2UudXNlciQuc3Vic2NyaWJlKCh1c2VyKSA9PiB7XG4gICAgICAvLyB0aGlzLnVzZXIgPSBPYmplY3QuYXNzaWduKHVzZXIsIHtjYXBhYmlsaXRpZXM6IHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZS5nZXRDYXBhYmlsaXRpZXMoKX0pO1xuICAgICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICAgIC8vIGRlcHV0aWVzXG4gICAgICB0aGlzLmRlcHV0aWVzID0ge1xuICAgICAgICBkYXRhOiB0aGlzLnVzZXIuZGVwdXRpZXMubWFwKGQgPT4gZC5uYW1lKSxcbiAgICAgICAgZGF0YU1ldGE6IHRoaXMudXNlci5kZXB1dGllc1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIGNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDaGFuZ2VQYXNzd29yZEZvcm0gPSBmYWxzZTtcbiAgfVxuXG4gIGNoYW5nZUNsaWVudExvY2FsZShpc286IHN0cmluZykge1xuICAgIGlmICh0aGlzLmNvbmZpZy5nZXRTdXBwb3J0ZWRDbGllbnRMb2NhbGVzKCkuaW5jbHVkZXMoaXNvKSkge1xuICAgICAgdGhpcy51c2VyU2VydmljZS5jaGFuZ2VDbGllbnRMb2NhbGUoaXNvKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ub3RpZnkuZXJyb3IodGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3RhdGUuc2V0dGluZ3MubGFuZ3VhZ2UuZXJyb3InKSk7XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlU2NoZW1hTG9jYWxlKGlzbzogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMudXNlci5zY2hlbWFMb2NhbGUgIT09IGlzbykge1xuICAgICAgdGhpcy51c2VyU2VydmljZS5jaGFuZ2VTY2hlbWFMb2NhbGUoaXNvKS5zdWJzY3JpYmUoXG4gICAgICAgIF8gPT4gVXRpbHMudGhyb3cobnVsbCxcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby51c2VyLnNlcnZpY2Uuc2NoZW1hLmxvY2FsZS5lcnJvci50aXRsZScpLFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnVzZXIuc2VydmljZS5zY2hlbWEubG9jYWxlLmVycm9yLmRlc2NyaXB0aW9uJykpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmVsZW1SZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcjcHJlc2VuY2UnKS5mb2N1cygpO1xuICAgIHRoaXMudXNlciQuc3Vic2NyaWJlKHVzZXIgPT4ge1xuICAgICAgdGhpcy51c2VySWQgPSB1c2VyLmlkO1xuICAgICAgdGhpcy51c2VySW1hZ2VVcmkgPSB0aGlzLnVzZXJTZXJ2aWNlLmdldFVzZXJJbWFnZVVyaSh0aGlzLnVzZXJJZCk7XG4gICAgICB0aGlzLnJlZnJlc2hVc2VySW1hZ2VIZWFkZXJCYWNrZ3JvdW5kKHRoaXMudXNlckltYWdlVXJpKTtcbiAgICAgIHRoaXMuc2hvd0RlbGV0ZUljb25UcmFzaCA9ICEhdXNlci5pbWFnZVVyaTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldFByZXNlbmNlKGI6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnNldFByZXNlbmNlKGIpXG4gICAgICAuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgfSwgVXRpbHMudGhyb3cobnVsbCxcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3RhdGUuc2V0dGluZ3MucHJlc2VuY2UuZXJyb3IudGl0bGUnKSxcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3RhdGUuc2V0dGluZ3MucHJlc2VuY2UuZXJyb3IuZGVzY3JpcHRpb24nKVxuICAgICAgKVxuICAgICAgKTtcbiAgfVxuICBjbG9zZVByZXZpZXdEaWFsb2coKSB7XG4gICAgdGhpcy5zaG93UHJldmlld0RpYWxvZyA9IGZhbHNlO1xuICAgIHRoaXMucHJvZmlsZUltYWdlT3ZlcmxheS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBkZWxldGVVc2VySW1hZ2UoKSB7XG4gICAgdGhpcy51c2VyU2VydmljZVxuICAgICAgLnNldFVzZXJJbWFnZShudWxsKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoVXNlckltYWdlSGVhZGVyQmFja2dyb3VuZCh0aGlzLnVzZXJJbWFnZVVyaSk7XG4gICAgICAgICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LlNZU1RFTV9TVEFUVVNfSU1BR0VfQ0hBTkdFKTtcbiAgICAgICAgICB0aGlzLnNob3dEZWxldGVEaWFsb2cgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnNob3dEZWxldGVJY29uVHJhc2ggPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5lcnJvcignJywgZXJyLmVycm9yLmNhdXNlLm1lc3NhZ2VzWzBdKTtcbiAgICAgICAgICB0aGlzLmZpbGUgPSBudWxsO1xuICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnVwbG9hZC5nbG9iYWwuZXJyb3IudGl0bGUnKSxcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby51cGxvYWQuZ2xvYmFsLmVycm9yLmRlc2NyaXB0aW9uJylcbiAgICAgICAgfSxcblxuICAgICAgfSk7XG5cbiAgfVxuXG4gIHNlbGVjdEltYWdlKGV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5maWxlID0gZXZlbnQuZmlsZXNbMF07XG4gICAgaWYgKHRoaXMuZmlsZSkge1xuICAgICAgdGhpcy5maWxlTmFtZSA9IHRoaXMuZmlsZS5uYW1lO1xuICAgICAgc3dpdGNoIChmYWxzZSkge1xuXG4gICAgICAgIGNhc2UgKHRoaXMuZmlsZS50eXBlLmluY2x1ZGVzKCdpbWFnZS8nKSAmJiB0aGlzLmZpbGUudHlwZS5pbmNsdWRlcygnanBlZycpIHx8IHRoaXMuZmlsZS50eXBlLmluY2x1ZGVzKCdwbmcnKSk6XG4gICAgICAgICAgdGhpcy52aWV3TW9kZSA9ICdpbWFnZSc7XG4gICAgICAgICAgdGhpcy5zaG93RXJyb3JEaWFsb2cgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgKHRoaXMuZmlsZS5zaXplIDw9IHRoaXMuTUFYX0ZJTEVfU0laRSk6XG4gICAgICAgICAgdGhpcy52aWV3TW9kZSA9ICdzaXplJztcbiAgICAgICAgICB0aGlzLnNob3dFcnJvckRpYWxvZyA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcblxuICAgICAgICAgIHRoaXMucHJldmlldyA9ICcnO1xuICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJldmlldyA9IGUudGFyZ2V0LnJlc3VsdDtcbiAgICAgICAgICAgIHRoaXMuc2hvd1ByZXZpZXdEaWFsb2cgPSB0cnVlO1xuICAgICAgICAgIH07XG4gICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwodGhpcy5maWxlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1cGxvYWROZXdVc2VySW1hZ2UoKSB7XG5cbiAgICB0aGlzLnVzZXJTZXJ2aWNlXG4gICAgICAuc2V0VXNlckltYWdlKHRoaXMuZmlsZSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMucHJvZmlsZUltYWdlT3ZlcmxheS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoVXNlckltYWdlSGVhZGVyQmFja2dyb3VuZCh0aGlzLnVzZXJJbWFnZVVyaSk7XG4gICAgICAgICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LlNZU1RFTV9TVEFUVVNfSU1BR0VfQ0hBTkdFKTtcbiAgICAgICAgICB0aGlzLmNsb3NlUHJldmlld0RpYWxvZygpO1xuICAgICAgICAgIHRoaXMuc2hvd0RlbGV0ZUljb25UcmFzaCA9IHRydWU7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uZXJyb3IoJycsIGVyci5lcnJvci5jYXVzZS5tZXNzYWdlc1swXSk7XG4gICAgICAgICAgdGhpcy5maWxlID0gbnVsbDtcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby51cGxvYWQuZ2xvYmFsLmVycm9yLnRpdGxlJyksXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8udXBsb2FkLmdsb2JhbC5lcnJvci5kZXNjcmlwdGlvbicpXG4gICAgICAgIH0sXG4gIH0pXG59XG5cbiAgdGFiQWN0aW9uKGlucHV0OiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgaW5wdXQuYmx1cigpO1xuICAgIHRoaXMuaG92ZXJTZWxlY3RvciA9IGZhbHNlO1xuICB9XG4gIG1vdXNlRW50ZXIoKSB7XG4gICAgdGhpcy5ob3ZlclNlbGVjdG9yID0gdHJ1ZTtcbiAgfVxuICBtb3VzZUxlYXZlKCkge1xuICAgIHRoaXMuaG92ZXJTZWxlY3RvciA9IGZhbHNlO1xuICB9XG4gIHRyYXNoSWNvbkNsaWNrKCkge1xuICAgIHRoaXMuc2hvd0RlbGV0ZURpYWxvZyA9IHRydWU7XG4gIH1cblxuICByZWZyZXNoVXNlckltYWdlSGVhZGVyQmFja2dyb3VuZChpbWFnZVVyaTogc3RyaW5nKSB7XG4gICAgaWYgKGltYWdlVXJpKSB7XG4gICAgICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKS50b1N0cmluZygpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhlYWRlckJnLm5hdGl2ZUVsZW1lbnQsICdiYWNrZ3JvdW5kLWltYWdlJywgYHVybCgke2ltYWdlVXJpICsgJyZ0PScgKyB0aW1lc3RhbXB9KWApO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyQ2FjaGUoKSB7XG4gICAgY29uc3QgYWN0aW9ucyA9IFtcbiAgICAgIHRoaXMuY2FjaGUuaGlzdG9yeSAmJiB0aGlzLmxpc3RTZXR0aW5nc1NlcnZpY2UuY2xlYXJTZXR0aW5ncygpLFxuICAgICAgdGhpcy5jYWNoZS5oaXN0b3J5ICYmIHRoaXMuY2FjaGVTZXJ2aWNlLmNsZWFyKChrZXk6IHN0cmluZykgPT4gIWtleS5tYXRjaCgvXmVvLisobGF5b3V0KS8pICYmICFrZXkubWF0Y2goL15lby5mcmFtZXdvcmsuY2FjaGUvKSksXG4gICAgICB0aGlzLmNhY2hlLmxheW91dCAmJiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmNsZWFyKChrZXk6IHN0cmluZykgPT4ga2V5ID09PSBSZXN1bHRMaXN0Q29tcG9uZW50LkNPTFVNTlNfREVGSU5JVElPTiksXG4gICAgICB0aGlzLmNhY2hlLmxheW91dCAmJiB0aGlzLmNhY2hlU2VydmljZS5jbGVhcigoa2V5OiBzdHJpbmcpID0+ICEha2V5Lm1hdGNoKC9eZW8uKyhsYXlvdXQpLykpLFxuICAgICAgdGhpcy5jYWNoZS5zeXN0ZW0gJiYgdGhpcy5zeXN0ZW1TZXJ2aWNlLmZldGNoU3lzdGVtRGVmaW5pdGlvbih0aGlzLnVzZXIpLFxuICAgIF0uZmlsdGVyKGEgPT4gYSk7XG5cbiAgICByZXR1cm4gYWN0aW9ucy5sZW5ndGggPyBmb3JrSm9pbihhY3Rpb25zKS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB0aGlzLm5vdGlmeS5zdWNjZXNzKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN0YXRlLnNldHRpbmdzLmNhY2hlLmNsZWFyLnN1Y2Nlc3MnKSksXG4gICAgICAoKSA9PiB0aGlzLm5vdGlmeS5lcnJvcih0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zdGF0ZS5zZXR0aW5ncy5jYWNoZS5jbGVhci5lcnJvcicpKVxuICAgICkgJiYgdHJ1ZSA6IGZhbHNlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZW8tc2V0dGluZ3NcIiAqbmdJZj1cInVzZXJcIiBlb1J0bEF3YXJlPlxuXG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cblxuICAgIDxkaXYgI2hlYWRlckJnIGNsYXNzPVwiYmdcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1ldGEgdXNlcm5hbWVcIj57e3VzZXIubmFtZX19PC9kaXY+XG4gICAgICA8aDE+e3t1c2VyLmZpcnN0bmFtZX19IHt7dXNlci5sYXN0bmFtZX19PC9oMT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZXRhIGVtYWlsXCI+e3t1c2VyLmVtYWlsfX08L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInByZXNlbmNlXCIgKm5nSWY9XCJjYXBhYmlsaXRpZXMuaW5ib3hcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRvZ2dsZSBkYXJrIHByZXNlbnRcIiBpZD1cInByZXNlbmNlXCIgKGNsaWNrKT1cInNldFByZXNlbmNlKHRydWUpXCIgW25nQ2xhc3NdPVwie2FjdGl2ZTogdXNlci5wcmVzZW50fVwiXG4gICAgICAgICB0cmFuc2xhdGU+ZW8uc3RhdGUuc2V0dGluZ3MucHJlc2VuY2UucHJlc2VudDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwidG9nZ2xlIGRhcmsgYWJzZW50XCIgKGNsaWNrKT1cInNldFByZXNlbmNlKGZhbHNlKVwiIChrZXlkb3duLnRhYik9XCJ0YWJBY3Rpb24oJGV2ZW50LnRhcmdldClcIiBbbmdDbGFzc109XCJ7YWN0aXZlOiAhdXNlci5wcmVzZW50fVwiXG4gICAgICAgICAgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLnByZXNlbmNlLmFic2VudDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAobW91c2VlbnRlcik9XCJtb3VzZUVudGVyKClcIiAobW91c2VsZWF2ZSk9XCJtb3VzZUxlYXZlKClcIiAoa2V5ZG93bi50YWIpPVwibW91c2VFbnRlcigpXCI+XG5cbiAgICAgIDxlby11c2VyLWF2YXRhciAjdXNlckF2YXRhciBjbGFzcz1cInVzZXJJbWFnZVwiIHRhYmluZGV4PVwiLTFcIiBlb1J0bEF3YXJlPVwiZnVsbFwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cIi5qcGcsIC5wbmdcIiBzdHlsZT1cImRpc3BsYXk6bm9uZTtcIiAjZmlsZXMgKGNoYW5nZSk9XCJzZWxlY3RJbWFnZSgkZXZlbnQudGFyZ2V0KVwiIChjbGljayk9XCIkZXZlbnQudGFyZ2V0LnZhbHVlPW51bGxcIj5cbiAgICAgIDwvZW8tdXNlci1hdmF0YXI+XG4gICAgICA8ZW8tZGlhbG9nICBbc3R5bGVDbGFzc109XCIndmlldydcIiBbbWluV2lkdGhdPVwiJzMwMHB4J1wiIFt0aXRsZV09XCInZW8uc3RhdGUuc2V0dGluZ3MuZGV0YWlscy51cGxvYWQuZGlhbG9nLnRpdGxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFsodmlzaWJsZSldPVwic2hvd1ByZXZpZXdEaWFsb2dcIiBbZm9jdXNPblNob3ddPVwiZmFsc2VcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnRzXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdHRhXCI+XG4gICAgICAgICAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwicHJldmlld1wiPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItYXZhdGFyXCIgKm5nSWY9XCJwcmV2aWV3XCI+XG4gICAgICAgICAgICAgICAgPGVvLXVzZXItYXZhdGFyIGNsYXNzPVwicHJldmlldy1yb3VuZFwiIFtwcmV2aWV3VXJpXT1cInByZXZpZXdcIj48L2VvLXVzZXItYXZhdGFyPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tYmxvY2tcIj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbG9zZVByZXZpZXdEaWFsb2coKVwiIGNsYXNzPVwiYnV0dG9uIGRhbmdlclwiXG4gICAgICAgICAgICAgIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5kZXRhaWxzLmRlbGV0ZS5kaWFsb2cuY2FuY2VsPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjZGtGb2N1c0luaXRpYWwgKGNsaWNrKT1cInVwbG9hZE5ld1VzZXJJbWFnZSgpXCIgY2xhc3M9XCJidXR0b24gcHJpbWFyeVwiXG4gICAgICAgICAgICAgIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5kZXRhaWxzLmRpYWxvZy5zYXZlPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9lby1kaWFsb2c+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5XCIgI3Byb2ZpbGVJbWFnZU92ZXJsYXkgdGFiaW5kZXg9XCIwXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidXBkYXRlTWVzc2FnZVwiICpuZ0lmPVwiaG92ZXJTZWxlY3RvclwiPlxuICAgICAgICAgIDxlby1pY29uIHRhYmluZGV4PVwiMFwiIChrZXlkb3duLmVudGVyKT1cImZpbGVzLmNsaWNrKClcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19lZGl0LnN2ZydcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImZpbGVzLmNsaWNrKClcIj48L2VvLWljb24+XG4gICAgICAgICAgPGVvLWljb24gdGFiaW5kZXg9XCIwXCIgKGtleWRvd24uZW50ZXIpPVwidHJhc2hJY29uQ2xpY2soKVwiICpuZ0lmPVwic2hvd0RlbGV0ZUljb25UcmFzaFwiXG4gICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY190cmFzaC5zdmcnXCIgYXJpYS1kaXNhYmxlZD1cInRydWVcIiAoY2xpY2spPVwidHJhc2hJY29uQ2xpY2soKVwiPjwvZW8taWNvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImJvZHlcIiAoa2V5ZG93bi50YWIpPVwidGFiQWN0aW9uKCRldmVudC50YXJnZXQpXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYm9keS13cmFwXCI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uIHNlY3Rpb24tZGVwdXRpZXNcIiAqbmdJZj1cImNhcGFiaWxpdGllcy5icG0gJiYgaGFzUHJpdmlsZWdlKCdNQU5BR0VfREVQVVRZX0xJU1QnKVwiPlxuICAgICAgICA8aDMgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLmRlcHV0aWVzPC9oMz5cblxuICAgICAgICA8IS0tIGRlcHV0aWVzIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW50cnkgZGVwdXRpZXNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiB0cmFuc2xhdGU+ZW8uc3RhdGUuc2V0dGluZ3MuZGVwdXRpZXMubGFiZWw8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVzXCI+XG4gICAgICAgICAgICA8Zm9ybSAjZGVwdXRpZXNGb3JtPVwibmdGb3JtXCIgW25nQ2xhc3NdPVwie2RpcnR5OiBkZXB1dGllc0Zvcm0uZGlydHl9XCI+XG4gICAgICAgICAgICAgIDxlby1vcmdhbml6YXRpb24gbmFtZT1cImRlcHV0aWVzXCIgW2RhdGFNZXRhXT1cImRlcHV0aWVzLmRhdGFNZXRhXCIgW2ZpbHRlck9iamVjdF09XCJ7dHlwZTogJ1VTRVInfVwiXG4gICAgICAgICAgICAgICAgW2V4Y2VwdGlvbnNdPVwiW3VzZXIubmFtZV1cIiBbbXVsdGlzZWxlY3RdPVwidHJ1ZVwiIHRhYmluZGV4PVwiMFwiIFsobmdNb2RlbCldPVwiZGVwdXRpZXMuZGF0YVwiPjwvZW8tb3JnYW5pemF0aW9uPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiICpuZ0lmPVwiZGVwdXRpZXNGb3JtLnZhbGlkICYmIGRlcHV0aWVzRm9ybS5kaXJ0eVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwicmVzZXREZXB1dGllcygpXCIgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLmRlcHV0aWVzLmNhbmNlbDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInNhdmVEZXB1dGllcygpXCIgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLmRlcHV0aWVzLnNhdmU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gc3Vic3RpdHV0ZSBvZiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVudHJ5IHN1YnN0aXR1dGVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiB0cmFuc2xhdGU+ZW8uc3RhdGUuc2V0dGluZ3MuZGVwdXRpZXMuc3Vic2l0dXRlb2YubGFiZWw8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVzXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIiAqbmdGb3I9XCJsZXQgc3ViIG9mIHVzZXIuc3Vic3RpdHV0ZXNPZlwiIFtuZ0NsYXNzXT1cIntwcmVzZW50OiBzdWIucHJlc2VudH1cIj5cbiAgICAgICAgICAgICAgPGVvLWljb24gY2xhc3M9XCJjaGlwIHN1YnN0aXR1dGUgc3Vic3RpdHV0ZS0tcHJlc2VudFwiICpuZ0lmPVwic3ViLnByZXNlbnRcIlxuICAgICAgICAgICAgICAgIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2RvbmUuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgICAgICAgPGVvLWljb24gY2xhc3M9XCJjaGlwIHN1YnN0aXR1dGUgc3Vic3RpdHV0ZS0tYXdheVwiICpuZ0lmPVwiIXN1Yi5wcmVzZW50XCJcbiAgICAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19jbGVhci5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgICAgICAgICA8c3Bhbj57e3N1Yi50aXRsZX19ICh7e3N1Yi5uYW1lfX0pPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIHBhc3N3b3JkIC0tPlxuICAgICAgPHNlY3Rpb24gKm5nSWY9XCIhaXNDbG91ZCAmJiAhaXNTU08gfHwgIWlzQ2xvdWQgJiYgaXNTU09cIiBjbGFzcz1cInNlY3Rpb24gc2VjdGlvbi1wYXNzd29yZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW50cnlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiB0cmFuc2xhdGU+ZW8ucGFzc3dvcmQucmVzZXQ8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVzXCI+XG4gICAgICAgICAgICA8ZW8tc2ltcGxlLWFjY29yZGlvbiAjc2ltcGxlQWNjIFtoZWFkZXJdPVwiKCdlby5wYXNzd29yZC5yZXNldCcgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgICAgICAgW3N0eWxlc109XCInc2V0dGluZ19fY2hhbmdlLXBhc3N3b3JkJ1wiIFtoZWFkZXJDbGFzc109XCInc2V0dGluZ19fY2hhbmdlLXBhc3N3b3JkLWhlYWRlcidcIj5cblxuICAgICAgICAgICAgICA8ZW8tY2hhbmdlLXBhc3N3b3JkLWZvcm0gKG9uRm9ybVN1bWJpdCk9XCJzaW1wbGVBY2Muc2VsZWN0ZWQgPSBmYWxzZVwiPjwvZW8tY2hhbmdlLXBhc3N3b3JkLWZvcm0+XG4gICAgICAgICAgICA8L2VvLXNpbXBsZS1hY2NvcmRpb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICA8IS0tIGxhbmd1YWdlIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24gc2VjdGlvbi1sYW5nXCI+XG4gICAgICAgIDxoMyB0cmFuc2xhdGU+ZW8uc3RhdGUuc2V0dGluZ3MubGFuZ3VhZ2U8L2gzPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW50cnkgbGFuZy1hcHBcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiB0cmFuc2xhdGU+ZW8uc3RhdGUuc2V0dGluZ3MubGFuZ3VhZ2UuY2xpZW50PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRvZ2dsZVwiIChjbGljayk9XCJjaGFuZ2VDbGllbnRMb2NhbGUobG9jYWxlLmlzbylcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7YWN0aXZlOiB0cmFuc2xhdGUuY3VycmVudExhbmcgPT09IGxvY2FsZS5pc299XCJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxvY2FsZSBvZiBjbGllbnRMb2NhbGVzXCI+e3tsb2NhbGUubGFiZWx9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbnRyeSBsYW5nLWRlZlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5sYW5ndWFnZS5zY2hlbWE8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVzXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwidG9nZ2xlXCIgKGNsaWNrKT1cImNoYW5nZVNjaGVtYUxvY2FsZShsb2NhbGUuY29kZSlcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7YWN0aXZlOiBhY3RpdmVTY2hlbWEgPT09IGxvY2FsZS5jb2RlfVwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsb2NhbGUgb2Ygc2NoZW1hTG9jYWxlc1wiPnt7bG9jYWxlLmRpc3BsYXluYW1lfX08L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBwZXJtaXNzaW9ucyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uIHNlY3Rpb24tcGVybVwiPlxuICAgICAgICA8aDMgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLnBlcm1pc3Npb248L2gzPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW50cnkgcGVybS1yb2xlc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5yb2xlczwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZXMgcm9sZXNcIj5cbiAgICAgICAgICAgIDxlby1zaW1wbGUtYWNjb3JkaW9uIFtoZWFkZXJdPVwiKCdlby5zdGF0ZS5zZXR0aW5ncy5yb2xlcycgfCB0cmFuc2xhdGUpXCI+XG4gICAgICAgICAgICAgIDxlby1wZXJtaXNzaW9ucyBbcm9sZXNdPVwidXNlci5yb2xlc1wiPjwvZW8tcGVybWlzc2lvbnM+XG4gICAgICAgICAgICA8L2VvLXNpbXBsZS1hY2NvcmRpb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gYWdlbnQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbiBzZWN0aW9uLW90aGVyc1wiPlxuICAgICAgICA8aDMgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLm90aGVyczwvaDM+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93QWdlbnRDb25maWdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW50cnlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5hZ2VudDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlc1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlLWFnZW50XCI+XG4gICAgICAgICAgICAgICAgPGVvLWNoZWNrYm94IFtmb3JtQ29udHJvbF09XCJ1c2VBZ2VudENvbnRyb2xcIiBbcmVhZG9ubHldPVwidXNlQWdlbnRDb250cm9sLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwidXNlQWdlbnRDb250cm9sXCI+PC9lby1jaGVja2JveD5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZS1hZ2VudC1sYWJlbFwiIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5hZ2VudC51c2U8L3NwYW4+XG4gICAgICAgICAgICAgICAgPCEtLSA8YSBocmVmPVwiaHR0cHM6Ly9oZWxwLm9wdGltYWwtc3lzdGVtcy5jb20veXV1dmlzUkFEL3Y2MC91c2VyL2NsaWVudC9kZS9jbGllbnQvaW50ZWdyYXRpb24vY2xuX3Rza19hZ2VudF9nbG9iYWwuaHRtP0hpZ2hsaWdodD1hZ2VudFwiPlxuICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiaW5mby1pY29uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfaW5mby5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgICA8L2E+IC0tPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW50cnkgbG9jay1zZXR0aW5nc1wiIFtuZ0NsYXNzXT1cInsnbG9jay1zZXR0aW5ncy0tc2hvdyc6IChhZ2VudFN0YXR1cyB8IGFzeW5jKX1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5sb2NrPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVzXCI+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ0b2dnbGUgYnV0dG9uLWVuYWJsZWRcIiAoY2xpY2spPVwiY2hhbmdlTG9ja1NldHRpbmdzKExvY2tTZXR0aW5ncy5hbHdheXMpXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7YWN0aXZlOiBhZ2VudExvY2tTZXR0aW5ncyA9PT0gTG9ja1NldHRpbmdzLmFsd2F5c31cIiBbZGlzYWJsZWRdPVwiZGVmYXVsdExvY2tTZXR0aW5nXCJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGU+ZW8uc3RhdGUuc2V0dGluZ3MubG9jay5lbmFibGU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRvZ2dsZSBidXR0b24tZGlzYWJsZWRcIiAoY2xpY2spPVwiY2hhbmdlTG9ja1NldHRpbmdzKExvY2tTZXR0aW5ncy5uZXZlcilcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInthY3RpdmU6IGFnZW50TG9ja1NldHRpbmdzID09PSBMb2NrU2V0dGluZ3MubmV2ZXJ9XCIgW2Rpc2FibGVkXT1cImRlZmF1bHRMb2NrU2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLmxvY2suZGlzYWJsZTwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwidG9nZ2xlIGJ1dHRvbi1hc2tcIiAoY2xpY2spPVwiY2hhbmdlTG9ja1NldHRpbmdzKExvY2tTZXR0aW5ncy5hc2spXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7YWN0aXZlOiBhZ2VudExvY2tTZXR0aW5ncyA9PT0gTG9ja1NldHRpbmdzLmFza31cIiBbZGlzYWJsZWRdPVwiZGVmYXVsdExvY2tTZXR0aW5nXCJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGU+ZW8uc3RhdGUuc2V0dGluZ3MubG9jay5hc2s8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVudHJ5XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCIgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLmNhY2hlPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgICAgICAgICAgIDxidXR0b24gdHJhbnNsYXRlIChjbGljayk9XCJjbGVhckNhY2hlKClcIj5lby5zdGF0ZS5zZXR0aW5ncy5jYWNoZS5jbGVhcjwvYnV0dG9uPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FjaGVcIj5cbiAgICAgICAgICAgICAgICA8ZW8tZm9ybS1pbnB1dCBjbGFzcz1cImNoZWNrYm94XCIgW3NraXBUb2dnbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLnN0YXRlLnNldHRpbmdzLmNvbmZpZy5jYWNoZS5zeXN0ZW0nIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgICAgICA8ZW8tY2hlY2tib3ggWyhuZ01vZGVsKV09XCJjYWNoZS5zeXN0ZW1cIiBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIj48L2VvLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgICAgICAgICAgICA8ZW8tZm9ybS1pbnB1dCBjbGFzcz1cImNoZWNrYm94XCIgW3NraXBUb2dnbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLnN0YXRlLnNldHRpbmdzLmNvbmZpZy5jYWNoZS5oaXN0b3J5JyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgPGVvLWNoZWNrYm94IFsobmdNb2RlbCldPVwiY2FjaGUuaGlzdG9yeVwiIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiPjwvZW8tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICAgIDxlby1mb3JtLWlucHV0IGNsYXNzPVwiY2hlY2tib3hcIiBbc2tpcFRvZ2dsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uc3RhdGUuc2V0dGluZ3MuY29uZmlnLmNhY2hlLmxheW91dCcgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgICAgICAgIDxlby1jaGVja2JveCBbKG5nTW9kZWwpXT1cImNhY2hlLmxheW91dFwiIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiPjwvZW8tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZW8tZGlhbG9nIFt0aXRsZV09XCInZW8uc3RhdGUuc2V0dGluZ3MuZGV0YWlscy5kZWxldGUuZGlhbG9nLnRpdGxlJyB8IHRyYW5zbGF0ZVwiIFsodmlzaWJsZSldPVwic2hvd0RlbGV0ZURpYWxvZ1wiXG4gICAgW2ZvY3VzT25TaG93XT1cImZhbHNlXCIgW21pbldpZHRoXT1cIjQwMFwiIFtzdHlsZUNsYXNzXT1cIidkZWxldGVfX2RpYWxvZydcIj5cbiAgICA8ZGl2Pnt7J2VvLnN0YXRlLnNldHRpbmdzLmRldGFpbHMuZGVsZXRlLmRpYWxvZy5tZXNzYWdlJyB8IHRyYW5zbGF0ZX19PC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnMgaW1hZ2UtZGVsZXRlLS1hY3Rpb24tYnV0dG9ucyBmbGV4LXJvd1wiID5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnV0dG9uIGNhbmNlbFwiIChjbGljayk9XCJzaG93RGVsZXRlRGlhbG9nID0gZmFsc2VcIlxuICAgICAgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLmRldGFpbHMuZGVsZXRlLmRpYWxvZy5jYW5jZWw8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNka0ZvY3VzSW5pdGlhbCAjY29uZmlybURlbGV0ZUJ0biAoY2xpY2spPVwiZGVsZXRlVXNlckltYWdlKClcIiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCJcbiAgICAgICAgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLmRldGFpbHMuZGVsZXRlLmRpYWxvZy5vazwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2VvLWRpYWxvZz5cblxuICA8ZW8tZGlhbG9nIFt0aXRsZV09XCInZW8uc3RhdGUuc2V0dGluZ3MuZGV0YWlscy51cGxvYWQuZGlhbG9nLnRpdGxlJyB8IHRyYW5zbGF0ZVwiIFsodmlzaWJsZSldPVwic2hvd0Vycm9yRGlhbG9nXCJcbiAgICBbZm9jdXNPblNob3ddPVwiZmFsc2VcIiBbbWluV2lkdGhdPVwiNDAwXCIgW3N0eWxlQ2xhc3NdPVwiJ2RlbGV0ZV9fZGlhbG9nJ1wiPlxuXG4gICAgPGRpdj5cbiAgICAgIDxwPnt7ZmlsZU5hbWV9fTwvcD5cbiAgICAgIDxwICpuZ0lmPVwidmlld01vZGUgPT09J3NpemUnXCIgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLmRldGFpbHMudXBsb2FkLmRpYWxvZy5zaXplRXJyb3I8L3A+XG4gICAgICA8cCAqbmdJZj1cInZpZXdNb2RlID09PSdpbWFnZSdcIiB0cmFuc2xhdGU+ZW8uc3RhdGUuc2V0dGluZ3MuZGV0YWlscy51cGxvYWQuZGlhbG9nLmZpbGVFcnJvciA8L3A+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnMgaW1hZ2UtZGVsZXRlLS1hY3Rpb24tYnV0dG9ucyBmbGV4LXJvd1wiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gY2FuY2VsXCIgKGNsaWNrKT1cInNob3dFcnJvckRpYWxvZyA9IGZhbHNlXCJcbiAgICAgICAgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLmRldGFpbHMuZGVsZXRlLmRpYWxvZy5jYW5jZWw8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNka0ZvY3VzSW5pdGlhbCAoY2xpY2spPVwiZmlsZXMuY2xpY2soKTsgc2hvd0Vycm9yRGlhbG9nID0gZmFsc2VcIiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCJcbiAgICAgICAgdHJhbnNsYXRlPmVvLnN0YXRlLnNldHRpbmdzLmRldGFpbHMudXBsb2FkLmRpYWxvZy5iYWNrPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZW8tZGlhbG9nPlxuPC9kaXY+XG4iXX0=